>Submitter-Id: current-users >Originator: Cheng-Lung Sung >Organization: FreeBSD _at_ Taiwan >Confidential: no >Synopsis: [PATCH] sys/sem.h should include sys/types.h >Severity: non-critical >Priority: low >Category: kern >Class: sw-bug >Release: FreeBSD 6.1-PRERELEASE i386 >Environment: 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. >How-To-Repeat: test the following program (copy from devel/ruby-sysvipc), named conftest.c: 1: #include <sys/sem.h> 2: 3: /*top*/ 4: int 5: main () 6: { 7: if ((union semun *) 0) 8: return 0; 9: if (sizeof (union semun)) 10: return 0; 11: ; 12: return 0; 13: } We will got the following result: In file included from conftest.c:1: /usr/include/sys/sem.h:21: error: syntax error before "time_t" /usr/include/sys/sem.h:23: error: syntax error before "time_t" >Fix: Index: sys/sys/sem.h =================================================================== RCS file: /home/ncvs/src/sys/sys/sem.h,v retrieving revision 1.29 diff -u -r1.29 sem.h --- sys/sys/sem.h 17 Nov 2004 13:12:06 -0000 1.29 +++ sys/sys/sem.h 15 Oct 2006 13:47:37 -0000 _at__at_ -10,6 +10,7 _at__at_ #ifndef _SYS_SEM_H_ #define _SYS_SEM_H_ +#include <sys/types.h> #include <sys/ipc.h> struct sem;Received on Sun Oct 15 2006 - 11:56:40 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:01 UTC