Re: machine/endian.h revision 1.33 breaks port x11-fm/gentoo
* Mike Barcroft [EMAIL PROTECTED] [2002-05-27 01:30]: Niels Chr. Bank-Pedersen [EMAIL PROTECTED] writes: On Sun, May 19, 2002 at 12:32:07AM +0200, Oliver Braun wrote: Hi, I am the ports maintainer of x11-fm/gentoo. Building gentoo dies since revision 1.33 of machine/endian.h with the following error: In file included from cmdseq.c:18: /usr/include/sys/wait.h:114: duplicate member `w_Filler' /usr/include/sys/wait.h:115: duplicate member `w_Retcode' /usr/include/sys/wait.h:116: duplicate member `w_Coredump' /usr/include/sys/wait.h:117: duplicate member `w_Termsig' /usr/include/sys/wait.h:132: duplicate member `w_Filler' /usr/include/sys/wait.h:133: duplicate member `w_Stopsig' /usr/include/sys/wait.h:134: duplicate member `w_Stopval' *** Error code 1 With machine/endian.h revision 1.32 it works. A workaround for x11-fm/gentoo is to declare the functions needed explicit and avoid including whole sys/wait.h. This is good. I was hoping fixing the namespace pollution in endian.h would expose more bugs. The bug in this case is that wait.h is depending on the old pollution of endian.h in the !__BSD_VISIBLE case. The solution is to use the underscored variants in wait.h. I'll commit the fix soon. I ran into another build problem later on. This time the bug was in the port itself. It was missing a string.h include, for the strdup() prototype. I think the previous GCC didn't complain about missing prototypes for built-ins, which is probably why this wasn't exposed earlier. Adding the include doesn't fix the problem because the program, via gentoo.h, specifies that it wants a POSIX environment (`#define _POSIX_C_SOURCE 3'). I think the value 3 is wrong here. The correct format is MM, which specifies the ratified date of the Standard. Nevertheless, our headers try and accomodate and provide a 1988 environment. strdup() wasn't added to POSIX until 2001. The solution would be to specify a Standard that provides the interface the application needs, or to not specify a Standard at all. The software does the latter in the NetBSD, et al cases. This patch below and the upcoming commit to sys/wait.h should fix this port. %%% --- gentoo.h.orig Sun May 26 19:20:42 2002 +++ gentoo.h Sun May 26 19:13:52 2002 @@ -13,7 +13,7 @@ #include config.h -#if !(defined __osf__ defined __alpha__) !defined __NetBSD__ +#if !(defined __osf__ defined __alpha__) !defined __NetBSD__ !defined __FreeBSD__ #define __EXTENSIONS__ #define _POSIX_C_SOURCE 3 /* This is for Solaris. */ #define POSIX_C_SOURCE3 %%% Thanks, it fixes the port. I have tested it and submitted it already. Regards, Olli -- IST IIS _ INF _ UniBwM http://ist.unibw-muenchen.de/People/obraun/ Tele-Consulting GmbH http://www.tele-consulting.com/ ___ obraun@ FreeBSD: The Power To Serve _ http://www.freebsd.org/ ___ To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: machine/endian.h revision 1.33 breaks port x11-fm/gentoo
There's a problem with coldsync port on -current which has to do with endian macros: cc -Wall -ansi -pedantic -O -pipe -march=pentiumpro -DHAVE_CONFIG_H -I. -I./.. - I./../include -I/usr/local/include -c PConnection_net.c In file included from /usr/include/arpa/nameser.h:446, from PConnection_net.c:11: /usr/include/arpa/nameser_compat.h:54: syntax error before string constant /usr/include/arpa/nameser_compat.h:82: duplicate member `rd' /usr/include/arpa/nameser_compat.h:83: duplicate member `tc' /usr/include/arpa/nameser_compat.h:84: duplicate member `aa' /usr/include/arpa/nameser_compat.h:85: duplicate member `opcode' /usr/include/arpa/nameser_compat.h:86: duplicate member `qr' /usr/include/arpa/nameser_compat.h:88: duplicate member `rcode' /usr/include/arpa/nameser_compat.h:89: duplicate member `cd' /usr/include/arpa/nameser_compat.h:90: duplicate member `ad' /usr/include/arpa/nameser_compat.h:91: duplicate member `unused' /usr/include/arpa/nameser_compat.h:92: duplicate member `ra' In file included from PConnection_net.c:12: /usr/include/resolv.h:130: field `in6a' has incomplete type *** Error code 1 Anybody cares to have a look? Bye, Andrea -- Tagline generated by 'gensig' mail-client-independent .signature generator. Get your copy at http://www.geeks.com/~robf/gensig/ To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: machine/endian.h revision 1.33 breaks port x11-fm/gentoo
Andrea Campi [EMAIL PROTECTED] writes: There's a problem with coldsync port on -current which has to do with endian macros: cc -Wall -ansi -pedantic -O -pipe -march=pentiumpro -DHAVE_CONFIG_H -I. -I./.. - I./../include -I/usr/local/include -c PConnection_net.c In file included from /usr/include/arpa/nameser.h:446, from PConnection_net.c:11: /usr/include/arpa/nameser_compat.h:54: syntax error before string constant /usr/include/arpa/nameser_compat.h:82: duplicate member `rd' /usr/include/arpa/nameser_compat.h:83: duplicate member `tc' /usr/include/arpa/nameser_compat.h:84: duplicate member `aa' /usr/include/arpa/nameser_compat.h:85: duplicate member `opcode' /usr/include/arpa/nameser_compat.h:86: duplicate member `qr' /usr/include/arpa/nameser_compat.h:88: duplicate member `rcode' /usr/include/arpa/nameser_compat.h:89: duplicate member `cd' /usr/include/arpa/nameser_compat.h:90: duplicate member `ad' /usr/include/arpa/nameser_compat.h:91: duplicate member `unused' /usr/include/arpa/nameser_compat.h:92: duplicate member `ra' In file included from PConnection_net.c:12: /usr/include/resolv.h:130: field `in6a' has incomplete type *** Error code 1 Anybody cares to have a look? Hmm, the application thinks it conforms to POSIX, but uses headers not defined in POSIX. Removing: #ifndef _POSIX_C_SOURCE # define _POSIX_C_SOURCE 2 #endif /* _POSIX_C_SOURCE */ ...from config.h will probably fix it. I may just change all the headers over to _BYTE_ORDER and friends, so that even confussed applications work. Best regards, Mike Barcroft To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: machine/endian.h revision 1.33 breaks port x11-fm/gentoo
On Sun, May 19, 2002 at 12:32:07AM +0200, Oliver Braun wrote: Hi, I am the ports maintainer of x11-fm/gentoo. Building gentoo dies since revision 1.33 of machine/endian.h with the following error: In file included from cmdseq.c:18: /usr/include/sys/wait.h:114: duplicate member `w_Filler' /usr/include/sys/wait.h:115: duplicate member `w_Retcode' /usr/include/sys/wait.h:116: duplicate member `w_Coredump' /usr/include/sys/wait.h:117: duplicate member `w_Termsig' /usr/include/sys/wait.h:132: duplicate member `w_Filler' /usr/include/sys/wait.h:133: duplicate member `w_Stopsig' /usr/include/sys/wait.h:134: duplicate member `w_Stopval' *** Error code 1 With machine/endian.h revision 1.32 it works. A workaround for x11-fm/gentoo is to declare the functions needed explicit and avoid including whole sys/wait.h. Same problem (and workaround) exists for comms/gnokii (not that the workaround matters too much, xgnokii still cores for me). [...] Olli /Niels Chr. -- Niels Christian Bank-Pedersen, NCB1-RIPE. Hey, are any of you guys out there actually *using* RFC 2549? To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: machine/endian.h revision 1.33 breaks port x11-fm/gentoo
[Sorry I missed the beginning of this thread.] Niels Chr. Bank-Pedersen [EMAIL PROTECTED] writes: On Sun, May 19, 2002 at 12:32:07AM +0200, Oliver Braun wrote: Hi, I am the ports maintainer of x11-fm/gentoo. Building gentoo dies since revision 1.33 of machine/endian.h with the following error: In file included from cmdseq.c:18: /usr/include/sys/wait.h:114: duplicate member `w_Filler' /usr/include/sys/wait.h:115: duplicate member `w_Retcode' /usr/include/sys/wait.h:116: duplicate member `w_Coredump' /usr/include/sys/wait.h:117: duplicate member `w_Termsig' /usr/include/sys/wait.h:132: duplicate member `w_Filler' /usr/include/sys/wait.h:133: duplicate member `w_Stopsig' /usr/include/sys/wait.h:134: duplicate member `w_Stopval' *** Error code 1 With machine/endian.h revision 1.32 it works. A workaround for x11-fm/gentoo is to declare the functions needed explicit and avoid including whole sys/wait.h. This is good. I was hoping fixing the namespace pollution in endian.h would expose more bugs. The bug in this case is that wait.h is depending on the old pollution of endian.h in the !__BSD_VISIBLE case. The solution is to use the underscored variants in wait.h. I'll commit the fix soon. I ran into another build problem later on. This time the bug was in the port itself. It was missing a string.h include, for the strdup() prototype. I think the previous GCC didn't complain about missing prototypes for built-ins, which is probably why this wasn't exposed earlier. Adding the include doesn't fix the problem because the program, via gentoo.h, specifies that it wants a POSIX environment (`#define _POSIX_C_SOURCE 3'). I think the value 3 is wrong here. The correct format is MM, which specifies the ratified date of the Standard. Nevertheless, our headers try and accomodate and provide a 1988 environment. strdup() wasn't added to POSIX until 2001. The solution would be to specify a Standard that provides the interface the application needs, or to not specify a Standard at all. The software does the latter in the NetBSD, et al cases. This patch below and the upcoming commit to sys/wait.h should fix this port. %%% --- gentoo.h.orig Sun May 26 19:20:42 2002 +++ gentoo.hSun May 26 19:13:52 2002 @@ -13,7 +13,7 @@ #include config.h -#if !(defined __osf__ defined __alpha__) !defined __NetBSD__ +#if !(defined __osf__ defined __alpha__) !defined __NetBSD__ !defined +__FreeBSD__ #define __EXTENSIONS__ #define _POSIX_C_SOURCE3 /* This is for Solaris. */ #definePOSIX_C_SOURCE3 %%% Best regards, Mike Barcroft To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message