AW: Canadian cross build fails

Titus von Boxberg
Mon Feb 9 13:07:00 GMT 2015


I had the same issue (with canadian for powerpc iirc).

If you look into the source file causing the error you see a comment similar to "XXX fixme" or so.

So the problem is known but a "real solution" is not at hand.
Thus, I have patched the definition of caddr_t away and it works for me.


-----Ursprüngliche Nachricht-----
Von: [] Im Auftrag von Matthias Weißer
Gesendet: Montag, 9. Februar 2015 13:25
Betreff: Canadian cross build fails

 [INFO ]  Installing final compiler for build: done in 223.82s (at 22:21) [INFO ]  =================================================================
[INFO ]  Installing final compiler
[EXTRA]    Configuring gcc
[EXTRA]    Building libiberty
[EXTRA]    Building gcc
[ALL  ]    arm-gs-linux-gnueabihf-cc   -mlittle-endian -march=armv7-a
-mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=vfpv3 -mhard-float -O2 -mlittle-endian -march=armv7-a  -mcpu=cortex-a9 -mtune=cortex-a9
-mfpu=vfpv3 -mhard-float  -DIN_GCC  -DCROSS_DIRECTORY_STRUCTU RE  -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include  -I. -I. -I../.././gcc -I/$LONGPATH/.build/src/gcc-4.9.2/libgcc
-I/$LONGPATH/.build/src/gcc-4.9.2/libgcc/../include   -g0
-finhibit-size-directive -fno-inline -fno-exceptions -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize -fno-stack-protector  -I. -I. -I../.././gcc -I/$LONGPATH/.build/src/gcc-4.9.2/libgcc
-I/$LONGPATH/.build/src/gcc-4.9.2/libgcc/../include  -o crtendS.o -MT crtendS.o -MD -MP -MF crtendS.dep  -fPIC -c /$LONGPATH/.build/src/gcc-4.9.2/libgcc/crtstuff.c -DCRT_END -DCRTSTUFFS_O
[ALL  ]    In file included from
[ERROR]    ../.././gcc/auto-host.h:1996:17: error: two or more data
types in declaration specifiers
[ALL  ]     #define caddr_t char *
[ALL  ]                     ^
[ALL  ]    In file included from
[ALL  ]                     from
[ERROR]    /$LONGPATH/output/arm-gs-linux-gnueabihf/sysroot/usr/include/sys/types.h:116:26:
error: expected identifier or '(' before ';' token
[ALL  ]     typedef __caddr_t caddr_t;
[ALL  ]                              ^

If I check google for that error I come across the following pages:

Both suggest patching gcc autoconf or the C library itself. I can't belive that this is the correct solution to this issue. Do I miss something? What is a bit unclear to me is that I don't have to (or I missed it) specify the path to the toolchain build in step 1 to the canadian build in step 3. I do pass the toolchain from step 2 into the crosstools config as host. This is my mini-defconfig of the step 3

More information about the crossgcc mailing list