Subject: Re: another go at cross-building netbsd-1-6 on a netbsd-4 host
To: None <tech-toolchain@NetBSD.org>
From: Valeriy E. Ushakov <uwe@ptc.spbu.ru>
List: tech-toolchain
Date: 03/20/2007 05:26:42
On Mon, Mar 19, 2007 at 21:59:01 -0400, Greg A. Woods wrote:

> That line is:
> 
> 	extern const struct relax_type md_relax_table[];
> 
> So I'm guessing the definition for "struct relax_type" isn't in scope,
> and indeed it's not in that file anywhere.  I find it in ../as.h and
> ../tc.h, but I'm not a GCC hacker and I don't know what the right fix
> should be, nor do I understand why the same error doesn't occur when I
> build the 1.6 source on a 1.6 host

netbsd-4 has gcc4 as the system compiler and gcc4 no longer accepts
arrays of incompelte type.  gcc3 and earlier versions accepted them,
treating the name as struct foo * and would only report an error if
you try to do something that needs the complete definition.  gcc4
treats mere declaration of such struct as an error.  This is
apparently what C99 specifies.


SY, Uwe
-- 
uwe@ptc.spbu.ru                         |       Zu Grunde kommen
http://snark.ptc.spbu.ru/~uwe/          |       Ist zu Grunde gehen