I'm trying to build gcc 4.5.8 for cross-compilation on a relatively modern system and it fails on at least two points. The system is 64-bit Linux on Intel iron with gcc-6.4.0 as its native C/C++ compiler. Cross-binutils already installed. cd /tmp tar xfj gcc-4.5.8-tar.bz2 mkdir build cd build ../gcc-4.8.5/configure --target=arm-eabi --enable-languages=c,c++ --disable-libada --disable-libssp --disable-lto --disable-tls --without-headers make all-gcc It fails compiling except.c; the compiler command and error message is in the attached text file. As it turns out, 6.4.0 gcc barfs on redefining an inline function with the gnu_inline attribute, while apparently previous compiler version (at least up to 4.7.1) had no problem with that. Commenting out the offending line with the attribute redefinition in gcc-4.8.5/gcc/cp/cfns.h helps, but that's just a kludge and not a real solution. And even then, the compilation fails again when the texinfo manual is processed: ../../gcc-4.8.5/gcc/doc/gcc.texi:88: warning: @tex should only appear at the beginning of a line ../../gcc-4.8.5/gcc/doc/gcc.texi:208: no matching `@end tex' ../../gcc-4.8.5/gcc/doc/gcc.texi:208: no matching `@end multitable' ../../gcc-4.8.5/gcc/doc/gcc.texi:208: no matching `@end titlepage' The texinfo version spitting the dummy is 6.3 while 4.13 processes the file without a hitch. I'm looking for some advice, what's the canonical way of compiling older versions of gcc on more recent systems? Apart from hacking the source until the compile gets through, that is. Thanks, Zoltan
Attachment:
gccerror
Description: Binary data