I've already mentioned it in the list, but will summarize it again. The problem is that many C++ programs compile just fine on other platforms (mainly NetBSD is interesting), but don't on DragonFly due to declarations from unistd.h not being available. I still think that not including unistd.h is a problem in these applications, but this doesn't mean we haven't a problem in DragonFly.
I tracked it down to the threading stuff in the compiler. The unistd.h header is included by accident actually on other systems via bits/gthr-default.h. The point is that it's not included in DragonFly. Relevant snippet from preprocessor output on DragonFly: # 1 "/usr/include/c++/4.1/bits/gthr.h" 1 3 # 33 "/usr/include/c++/4.1/bits/gthr.h" 3 #pragma _GLIBCPP_GCC visibility push(default) # 118 "/usr/include/c++/4.1/bits/gthr.h" 3 # 1 "/usr/include/c++/4.1/bits/gthr-single.h" 1 3 The same snippet from NetBSD NetBSD 5.0/i386 (thanks to Beket): # 1 "/usr/include/g++/bits/gthr.h" 1 3 # 37 "/usr/include/g++/bits/gthr.h" 3 #pragma GCC visibility push(default) # 118 "/usr/include/g++/bits/gthr.h" 3 # 1 "/usr/include/g++/bits/gthr-default.h" 1 3 Now please someone tell me why it's so and what it means. -- Hasso Tepper
