Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Feb 2001 20:50:04 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Peter Wemm <peter@FreeBSD.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/conf Makefile.alpha Makefile.i386         Makefile.pc98
Message-ID:  <Pine.BSF.4.21.0102252031180.6924-100000@besplex.bde.org>
In-Reply-To: <200102250751.f1P7pLd95579@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 24 Feb 2001, Peter Wemm wrote:

> peter       2001/02/24 23:51:21 PST
> 
>   Modified files:
>     sys/conf             Makefile.alpha Makefile.i386 
>                          Makefile.pc98 
>   Log:
>   genassym.sh does not work with a.out because the sizes are rounded up
>   by the compiler.  ie: char foo[0] comes out as 4 bytes on a.out, and
>   we depended on it coming out as 0 for the script version. :-(
>   
>   Make double sure that genassym.o is built and nm'ed in elf mode.

Thanks for fixing all this.

I knew about the genassym.sh problem, but ISTR testing genassym.sh for
aout.  I think the rounding up is new behaviour.  My version of the aout
ld does alignment/padding stuff that is moot with the current behaviour.

Possible fix for genassym.sh: use initialized arrays.  This stuff is more
unportable than I first thought.  gcc does the right thing with the
following broken code:

    char x[0] = {};
    char y[0] = { 0 };		/* Excess initializers not reported! */
    char z[1] = {};

but Tendra C rejects all of these (0-sized arrays aren't in C90, and
aggregate initializers must be non-empty in C).

Bruce


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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0102252031180.6924-100000>