Date: Fri, 12 Apr 2002 10:24:31 -0400 (EDT) From: John Baldwin <jhb@FreeBSD.org> To: current@FreeBSD.org Subject: World broken? Message-ID: <XFMail.20020412102431.jhb@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
I've seen this twice now on both alpha and sparc64.  It looks to be related to
the ENDIAN macro changes:
===> usr.bin/ldd
/arch/sparc64/hosted/bin/gcc -O -pipe  -Wall    -c
/home/john/work/p4/sparc64/usr.bin/ldd/ldd.c
In file included from /home/john/work/p4/sparc64/usr.bin/ldd/ldd.c:36:
/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'
/home/john/work/p4/sparc64/usr.bin/ldd/ldd.c: In function `main':
/home/john/work/p4/sparc64/usr.bin/ldd/ldd.c:141: warning: implicit declaration
of function `ntohl'
*** Error code 1
Stop in /home/john/work/p4/sparc64/usr.bin/ldd.
*** Error code 1
Stop in /home/john/work/p4/sparc64/usr.bin.
*** Error code 1
Stop in /home/john/work/p4/sparc64.
*** Error code 1
In sys/wait.h:
union wait {
        int     w_status;               /* used in syscall */
        /*
         * Terminated process status.
         */
        struct {
#if BYTE_ORDER == LITTLE_ENDIAN
                unsigned int    w_Termsig:7,    /* termination signal */
                                w_Coredump:1,   /* core dump indicator */
                                w_Retcode:8,    /* exit code if w_termsig==0 */
                                w_Filler:16;    /* upper bits filler */
#endif
#if BYTE_ORDER == BIG_ENDIAN
                unsigned int    w_Filler:16,    /* upper bits filler */
                                w_Retcode:8,    /* exit code if w_termsig==0 */
                                w_Coredump:1,   /* core dump indicator */
                                w_Termsig:7;    /* termination signal */
#endif
        } w_T;
I guess all of those symbols are not defined or something and so have values of
0 and 0 == 0?
sys/wait.h includes machine/endian.h right before it defines this union, so
something must be broke in there.
-- 
John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20020412102431.jhb>
