Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Oct 2006 14:31:24 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-hackers@freebsd.org
Cc:        freebsd-bugs@freebsd.org, Cheng-Lung Sung <clsung@freebsd.org>, FreeBSD-gnats-submit@freebsd.org, Bruce Evans <bde@zeta.org.au>, freebsd-current@freebsd.org
Subject:   Re: kern/104436: [PATCH] sys/sem.h should include sys/types.h
Message-ID:  <200610161431.25228.jhb@freebsd.org>
In-Reply-To: <20061016011559.W61639@delplex.bde.org>
References:  <20061015135710.A28897E98D@FreeBSD.csie.nctu.edu.tw> <20061016011559.W61639@delplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200610161431.25228.jhb>