kern/104436: [PATCH] sys/sem.h should include sys/types.h

John Baldwin jhb at freebsd.org
Mon Oct 16 12:20:50 PDT 2006


The following reply was made to PR kern/104436; it has been noted by GNATS.

From: John Baldwin <jhb at freebsd.org>
To: freebsd-hackers at freebsd.org
Cc: Bruce Evans <bde at zeta.org.au>, Cheng-Lung Sung <clsung at freebsd.org>,
        freebsd-current at freebsd.org, freebsd-bugs at freebsd.org,
        FreeBSD-gnats-submit at freebsd.org
Subject: Re: kern/104436: [PATCH] sys/sem.h should include sys/types.h
Date: Mon, 16 Oct 2006 14:31:24 -0400

 On Sunday 15 October 2006 11:21, Bruce Evans wrote:
 > On Sun, 15 Oct 2006, Cheng-Lung Sung wrote:
 > 
 > > System: FreeBSD.csie.nctu.edu.tw 6.1-STABLE FreeBSD 6.1-STABLE #9: Thu May 
 11 14:31:45 CST 2006     
 root at FreeBSD.csie.nctu.edu.tw:/home/usr.obj/usr/src/sys/FREEBSD  i386
 > >
 > >> Description:
 > > - sys/sem.h has included sys/ipc.h, which includes sys/_types.h
 > >  but it (and its including files) does not include sys/types.h
 > > - therefore, in sys/sem.h struct semid_ds declares "time_t 
 sem_otime;" ...etc
 > > - if we only compile a program which do not include sys/types.h, it will 
 fail.
 > 
 > Including sys/types.h would add lots of namespace pollution which
 > sys/ipc.h and sys/sem.h are trying hard to avoid.   sem.h is trying too
 > hard -- POSIX requires it to declare time_t (and pid_t, key_t and size_t,
 > which it already declares).
 
 Is this better?
 
 Index: sem.h
 ===================================================================
 RCS file: /usr/cvs/src/sys/sys/sem.h,v
 retrieving revision 1.29
 diff -c -r1.29 sem.h
 *** sem.h	17 Nov 2004 13:12:06 -0000	1.29
 --- sem.h	16 Oct 2006 18:30:05 -0000
 ***************
 *** 111,116 ****
 --- 111,121 ----
   #define _SIZE_T_DECLARED
   #endif
   
 + #ifndef _TIME_T_DECLARED
 + typedef	__time_t	time_t;
 + #define	_TIME_T_DECLARED
 + #endif
 + 
   #ifndef _PID_T_DECLARED
   typedef __pid_t         pid_t;
   #define _PID_T_DECLARED
 
 (it looks like pid_t should be before size_t in sem.h btw)
 
 -- 
 John Baldwin


More information about the freebsd-bugs mailing list