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

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 16, 2006 at 02:31:24PM -0400, John Baldwin wrote:
> On Sunday 15 October 2006 11:21, Bruce Evans wrote:
> > On Sun, 15 Oct 2006, Cheng-Lung Sung wrote:
> >=20
> > > System: FreeBSD.csie.nctu.edu.tw 6.1-STABLE FreeBSD 6.1-STABLE #9: Th=
u May=20
> 11 14:31:45 CST 2006    =20
> 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=20
> sem_otime;" ...etc
> > > - if we only compile a program which do not include sys/types.h, it w=
ill=20
> fail.
> >=20
> > 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).
>=20
> Is this better?
>=20
> Index: sem.h
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> 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
>  =20
> + #ifndef _TIME_T_DECLARED
> + typedef	__time_t	time_t;
> + #define	_TIME_T_DECLARED
> + #endif
> +=20
>   #ifndef _PID_T_DECLARED
>   typedef __pid_t         pid_t;
>   #define _PID_T_DECLARED
>=20
> (it looks like pid_t should be before size_t in sem.h btw)
>=20
> --=20
> John Baldwin

    Thanks, I didn't go through the whole sem.h.
    Also, it seems we should put these parts before 'sturct semid_ds'.=20
    or say, after we include sys/ipc.h (which include sys/_types.h)

--=20
Cheng-Lung Sung - clsung@



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