On Thu, 17 Feb 2000, Daniel Eischen wrote:

> On Thu, 17 Feb 2000, Thimble Smith wrote:
> 
> > Hi.  I recently updated from -stable to -current.  I notice now that
> > pthread.h relies on #defines that are in unistd.h; so in order to use
> > pthread_attr_setscope you have to include unistd.h before pthread.h.
> > 
> > Is this standard behaviour?  I'm working with MySQL, and unistd.h is
> > included after pthread.h; should I have that code changed, or should
> > FreeBSD somehow compensate for this?
> 
> I've read the POSIX spec, and it looks like pthread.h should include
> unistd.h so that the #defines you refer to are properly defined. 

It can't include <unistd.h> or even <sys/unistd.h>, at least in
POSX.1-1996, because even the latter defines names that are not reserved
for <pthread.h>.  E.g., <sys/unistd.h> defines SEEK_SET, but the only
non-implementation reserved for <pthread.h> are ones beginning with
pthread_ or PTHREAD_, or ending with _t.

However, including <sys/unistd.h> wouldn't add much to the existing
namespace violation from including <sys/types.h>, <sys/time.h>,
<sys/signal.h>, <limits.h> and <sched.h>.

> Solaris 2.5.1 pthread.h doesn't include <unistd.h> directly, but does
> include <sys/signal.h> which includes <unistd.h>.

This seems to be a bug Solaris 2.5.1.  Our <sys/signal.h> avoids
including <sys/unistd.h> by including <sys/_posix.h> to get more
fundamental feature test macros for the visibility of the POSIX.1b
extensions.

Bruce



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to