I try to compile a new gcc, including binutils and glibc. Since I can not be root, I want to install it all in ~/local. I set these variables:
PREFIX=~/local && export PREFIX
PATH=~/local/bin:$PATH && export PATH
I built binutis, gcc and glibc (in exactly this order), with this configuration:
../binutils-2.22/configure --prefix=$PREFIX --with-sysroot
../gcc-4.7.3/configure --prefix=$PREFIX
CC='gcc --sysroot=~/local' ../glibc-2.15/configure --prefix=$PREFIX
My idea was that I'd first compile binutils, then compile a gcc which is linked with the new binutils, and finally, the two compile glibc (without need of my system's glibc of /usr/lib).
However, after binutils and gcc were compiled and installed correctly, gcc fails to compile a simple program while configuring glibc:
int main() { return 0; }
Output (shortened):
> gcc --sysroot=~/local/ test.cpp -o test
ld: cannot find crt1.o: No such file or directory
ld: cannot find crti.o: No such file or directory
ld: cannot find -lc
ld: cannot find crtn.o: No such file or directory
However, this displays no files:
find ~/local -name crti.o
Did I configure anything wrong?
My system is a server running a 64 bit Ubuntu 12.04 ("precise"), but I think it is not system related. The versions of the three toolchain components should fit each other, since openSuSE 12.2 has this combination.