DragonFly kernel List (threaded) for 2009-05
DragonFly BSD
DragonFly kernel List (threaded) for 2009-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

unistd.h problem for C++ stuff and DragonFly


From: Hasso Tepper <hasso@xxxxxxxxx>
Date: Thu, 14 May 2009 12:25:23 +0300

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



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]