yann@402: Fix found here: http://www.freelists.org/archives/openbeos/11-2005/msg00090.html yann@402: yann@402: Fixes: yann@402: In file included from ./targ-cpu.h:1, yann@402: from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/config/obj-elf.h:42, yann@402: from ./obj-format.h:1, yann@402: from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/config/te-linux.h:4, yann@402: from ./targ-env.h:1, yann@402: from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/as.h:626, yann@402: from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/app.c:30: yann@402: /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/config/tc-i386.h:451: error: array type has incomplete element type yann@402: make[3]: *** [app.o] Error 1 yann@402: make[3]: Leaving directory `/home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/build-binutils/gas' yann@402: yann@402: when building binutils-2.15 with gcc-4.0 yann@402: yann@402: yann@402: diff -ur binutils-2.15.old/gas/as.h binutils-2.15/gas/as.h yann@402: --- binutils-2.15.old/gas/as.h 2003-11-22 18:14:21.000000000 -0800 yann@402: +++ binutils-2.15/gas/as.h 2006-02-14 22:05:35.000000000 -0800 yann@402: @@ -605,7 +605,26 @@ yann@402: struct expressionS; yann@402: struct fix; yann@402: typedef struct symbol symbolS; yann@402: -struct relax_type; yann@402: + yann@402: +/* JF moved this here from as.h under the theory that nobody except MACHINE.c yann@402: + and write.c care about it anyway. */ yann@402: +/* [zooey]: the above no longer holds with gcc4, as it keeps bugging about yann@402: + incomplete element types in arrays, if relax_type isn't defined yann@402: + here. So I moved the definition back from tc.h to here. */ yann@402: +struct relax_type yann@402: +{ yann@402: + /* Forward reach. Signed number. > 0. */ yann@402: + long rlx_forward; yann@402: + /* Backward reach. Signed number. < 0. */ yann@402: + long rlx_backward; yann@402: + yann@402: + /* Bytes length of this address. */ yann@402: + unsigned char rlx_length; yann@402: + yann@402: + /* Next longer relax-state. 0 means there is no 'next' relax-state. */ yann@402: + relax_substateT rlx_more; yann@402: +}; yann@402: + yann@402: typedef struct frag fragS; yann@402: yann@402: #ifdef BFD_ASSEMBLER yann@402: diff -ur binutils-2.15.old/gas/tc.h binutils-2.15/gas/tc.h yann@402: --- binutils-2.15.old/gas/tc.h 2003-12-03 15:39:38.000000000 -0800 yann@402: +++ binutils-2.15/gas/tc.h 2006-02-14 22:03:35.000000000 -0800 yann@402: @@ -24,23 +24,6 @@ yann@402: yann@402: extern const pseudo_typeS md_pseudo_table[]; yann@402: yann@402: -/* JF moved this here from as.h under the theory that nobody except MACHINE.c yann@402: - and write.c care about it anyway. */ yann@402: - yann@402: -struct relax_type yann@402: -{ yann@402: - /* Forward reach. Signed number. > 0. */ yann@402: - long rlx_forward; yann@402: - /* Backward reach. Signed number. < 0. */ yann@402: - long rlx_backward; yann@402: - yann@402: - /* Bytes length of this address. */ yann@402: - unsigned char rlx_length; yann@402: - yann@402: - /* Next longer relax-state. 0 means there is no 'next' relax-state. */ yann@402: - relax_substateT rlx_more; yann@402: -}; yann@402: - yann@402: typedef struct relax_type relax_typeS; yann@402: yann@402: extern const int md_reloc_size; /* Size of a relocation record */