On 11 February 2016 at 04:45, Tom Close wrote: > Hi, > > I am trying to install a previous version of gcc (4.7.4) to a > non-standard location /environment/packages/gcc/4.7.4 (with 'src' and > 'build' dirs as sub-directories of it) on Ubuntu 14.04LTS. > > My configure options are pretty straightforward (from > /environment/packages/gcc/4.7.4/build) > > $PWD/../src/configure --prefix=/environment/packages/gcc/4.7.4/ > --enable-languages=c,c++,fortran,go,java,lto,objc,obj-c++ > > but when I go to make it I get the following error > > /environment/packages/gcc/4.7.4/build/./gcc/xgcc > -B/environment/packages/gcc/4.7.4/build/./gcc/ > -B/environment/packages/gcc/4.7.4/x86_64-unknown-linux-gnu/bin/ > -B/environment/packages/gcc/4.7.4/x86_64-unknown-linux-gnu/lib/ > -isystem /environment/packages/gcc/4.7.4/x86_64-unknown-linux-gnu/include > -isystem /environment/packages/gcc/4.7.4/x86_64-unknown-linux-gnu/sys-include > -g -O2 -m32 -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing > -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes > -Wold-style-definition -isystem ./include -fpic -g -DIN_LIBGCC2 > -fbuilding-libgcc -fno-stack-protector -fpic -I. -I. > -I../../.././gcc -I/environment/packages/gcc/4.7.4/build/../src/libgcc > -I/environment/packages/gcc/4.7.4/build/../src/libgcc/. > -I/environment/packages/gcc/4.7.4/build/../src/libgcc/../gcc > -I/environment/packages/gcc/4.7.4/build/../src/libgcc/../include > -I/environment/packages/gcc/4.7.4/build/../src/libgcc/config/libbid > -DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS -DUSE_TLS -o _muldi3.o -MT > _muldi3.o -MD -MP -MF _muldi3.dep -DL_muldi3 -c > /environment/packages/gcc/4.7.4/build/../src/libgcc/libgcc2.c > -fvisibility=hidden -DHIDE_EXPORTS > In file included from /usr/include/stdio.h:27:0, > from > /environment/packages/gcc/4.7.4/build/../src/libgcc/../gcc/tsystem.h:88, > from > /environment/packages/gcc/4.7.4/build/../src/libgcc/libgcc2.c:29: > /usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file > or directory > compilation terminated. > > I can find sys/cdefs.h here > > /usr/include/x86_64-linux-gnu/sys/cdefs.h > > but am not sure whether this is the version it should be looking for > and if so how I add it to the include path (I have tried CFLAGS, > CFLAGS_FOR_BUILD, XGCC_FOR_BUILD, CC_FOR_BUILD vars). > > Any suggestions would be most welcome. Firstly make sure you have the libc6-dev-i386 package installed if you're trying to build a compiler that can produce both 32-bit and 64-bit executables. Older GCC releases don't understand the MultiArch paths used by Ubuntu and Debian, I think you need the env vars given at https://gcc.gnu.org/ml/gcc/2012-02/msg00314.html (replacing i386 with x86_64).