title: C++ Compile error on NetBSD '::system' has not been declared
body: <p>I have some C++ code that compiles nicely on Linux but so far I'm having trouble getting it to compile correctly on NetBSD.</p>
  
  <p>These are my includes:</p>
  
  <pre><code>#include &lt;fstream&gt;
  #include &lt;iostream&gt;
  #include &lt;cstdlib&gt;
  #include &lt;unistd.h&gt;
  #include &lt;iomanip&gt;
  #include &lt;boost/regex.hpp&gt;
  </code></pre>
  
  <p>I compile with this command:</p>
  
  <pre><code>g++ -v -O2 -fno-strict-aliasing -I /usr/pkg/include \
  barefoot.cpp -o barefoot -L /usr/pkg/lib/ -lboost_regex \
  -L /usr/pkg/lib/ -lboost_regex -lpthreads
  </code></pre>
  
  <p>Which renders this output:</p>
  
  <pre><code>Using built-in specs.
  COLLECT_GCC=g++
  Target: x86_64--netbsd
  
  Configured with: /usr/src2/tools/gcc/../../external/gpl3/gcc/dist/configure --target=x86_64--netbsd --enable-long-long --enable-threads --with-bugurl=http://www.NetBSD.org/Misc/send-pr.html --with-pkgversion='NetBSD nb2 20111202' --enable-__cxa_atexit --with-tune=nocona --with-mpc=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr --with-mpfr=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr --with-gmp=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr --enable-tls --disable-multilib --disable-symvers --disable-libstdcxx-pch --build=x86_64-unknown-netbsd5.99.56 --host=x86_64--netbsd
  
  Thread model: posix
  
  gcc version 4.5.3 (NetBSD nb2 20110806) 
  COLLECT_GCC_OPTIONS='-v' '-O2' '-fno-strict-aliasing' '-I' '/usr/pkg/include/' '-o' 'a.out' '-L' '/usr/pkg/lib/' '-mtune=nocona' '-march=x86-64'
   /usr/libexec/cc1plus -quiet -v -I /usr/pkg/include/ barefoot.cpp -quiet -dumpbase barefoot.cpp -mtune=nocona -march=x86-64 -auxbase barefoot -O2 -version -fno-strict-aliasing -o /var/tmp//cc9Dcmwi.s
  GNU C++ (NetBSD nb2 20110806) version 4.5.3 (x86_64--netbsd)
          compiled by GNU C version 4.5.3, GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.9
  
  GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=131007
  #include "..." search starts here:
  #include &lt;...&gt; search starts here:
   /usr/pkg/include/
   /usr/include/g++
   /usr/include/g++/backward
   /usr/include/gcc-4.5
   /usr/include
  End of search list.
  
  GNU C++ (NetBSD nb2 20110806) version 4.5.3 (x86_64--netbsd)
          compiled by GNU C version 4.5.3, GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.9
  GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=131007
  Compiler executable checksum: a34e7d170f4dd8d4687d2b62e8dca4b7
  In file included from /usr/include/g++/bits/gthr.h:166:0,
                   from /usr/include/g++/ext/atomicity.h:34,
                   from /usr/include/g++/bits/ios_base.h:41,
                   from /usr/include/g++/ios:43,
                   from /usr/include/g++/istream:40,
                   from /usr/include/g++/fstream:40,
                   from barefoot.cpp:29:
  /usr/include/g++/bits/gthr-default.h:130:9: error: 'pthread_detach' was not declared in this scope
  /usr/include/g++/bits/gthr-default.h:130:1: error: invalid type in declaration before ';' token
  /usr/include/g++/bits/gthr-default.h: In function 'int __gthread_detach(pthread_st*)':
  /usr/include/g++/bits/gthr-default.h:668:46: error: '__gthrw_pthread_detach' cannot be used as a function
  In file included from /usr/pkg/include/boost/regex/v4/regex_workaround.hpp:25:0,
                   from /usr/pkg/include/boost/regex/v4/regex.hpp:32,
                   from /usr/pkg/include/boost/regex.hpp:31,
                   from barefoot.cpp:32:
  /usr/include/g++/cstdlib: At global scope:
  /usr/include/g++/cstdlib:132:11: error: '::system' has not been declared
  </code></pre>
  
  <p>I tried adding <code>-lpthread</code>, but that resulted in the same output. Not sure what to try next.</p>