unistd.h problem for C++ stuff and DragonFly
Hasso Tepper
hasso at estpak.ee
Thu May 14 02:37:10 PDT 2009
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
More information about the Kernel
mailing list