Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Apr 1999 20:33:56 +0200 (CEST)
From:      Wilko Bulte <wilko@yedi.iaf.nl>
To:        jobaldwi@vt.edu (John Baldwin)
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: Is it ok to include sys/signal.h directly?
Message-ID:  <199904201833.UAA01002@yedi.iaf.nl>
In-Reply-To: <XFMail.990419234219.jobaldwi@vt.edu> from John Baldwin at "Apr 19, 1999 11:42:19 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
As John Baldwin wrote ...

> Well, no response on -questions, so I figured I'd try -hackers. :)


Well, in case it is any consolation compiling netatalk (netatalk-1.4b2
to be exact) fails exactly in the same fashion:

gcc -p -DBSD4_4 -O2 -I../../include -c asp_getsess.c
In file included from asp_getsess.c:7:
/usr/include/sys/signal.h:163: parse error before `size_t'
/usr/include/sys/signal.h:163: warning: no semicolon at end of struct or
union
/usr/include/sys/signal.h:165: parse error before `}'

Tried this yesterday evening and have not tried to find out why.
On 2.2.8-stable this worked like a charm, on 3.1-stable it does not

Wilko

> 
> -----FW: Is it ok to include sys/signal.h directly?-----
> 
> I've a question, should programs always include /usr/include/signal.h or is it
> ok for them to include /usr/include/sys/signal.h directly?  Currently on 3.0+
> programs that include sys/signal.h fail to compile.  I.e.:
> 
> > cat temp.c
> #include <sys/signal.h>
> #include <stdio.h>
> 
> void main()
> {
>   printf("foobar\n");
> }
> > make temp.o
> cc -O -pipe -c temp.c
> In file included from temp.c:1:
> /usr/include/sys/signal.h:163: parse error before `size_t'
> /usr/include/sys/signal.h:163: warning: no semicolon at end of struct or union
> /usr/include/sys/signal.h:165: parse error before `}'
> *** Error code 1
> 
> Stop.
> 
> They die because size_t is not defined when the sigaltstack struct is defined. 
> In /usr/include/signal.h, machine/ansi.h is #include'd before sys/signal.h so
> that this problem is avoided.  If it is desirable for programs to include just
> sys/signal.h by itself, then this patch would fix the problem:
> 
> --- signal.h.orig       Sat Apr 17 15:33:02 1999
> +++ signal.h    Sat Apr 17 15:33:37 1999
> @@ -45,6 +45,7 @@
>  #include <sys/cdefs.h>
>  #include <sys/_posix.h>
>  #include <machine/signal.h>    /* sig_atomic_t; trap codes; sigcontext */
> +#include <machine/ansi.h>
>  
>  #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
>  #define NSIG   32              /* counting 0; could be 33 (mask is 1-32) */
> 
> Note that these programs worked fine on 2.2.x, AFAIK.  At least, one of the
> ports (devel/cccc) #include'd sys/signal.h, and it was broken in 3.0 but worked
> in 2.2.

Groeten / Cheers,
Wilko
_     ______________________________________________________________________
 |   / o / /  _  				Arnhem, The Netherlands
 |/|/ / / /( (_) Bulte 				WWW  : http://www.tcja.nl
_______________________ Powered by FreeBSD ___  http://www.freebsd.org _____


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




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