Russ Allbery <r...@stanford.edu> writes: > Ian Lance Taylor <i...@google.com> writes: >> Nenad Vukicevic <ne...@intrepid.com> writes: > >>> Has anybody tried to build 4.7 on Ubuntu 11.10 system. I am getting the >>> following linking problem (no special configure switches): >>> >>> /usr/bin/ld: cannot find crt1.o: No such file or directory >>> /usr/bin/ld: cannot find crti.o: No such file or directory >>> /usr/bin/ld: cannot find -lgcc >>> /usr/bin/ld: cannot find -lgcc_s >>> >>> Noramly they under /usr/lib64, but 11.10 has them under >>> /usr/lib/x86_64-linux-gnu. > >> Yes. Debian moved everything for some reason. > > The reason, for the record, is because Debian wants to be able to support > multiarch with more than two architectures. The /lib32 vs. /lib64 > distinction doesn't allow one to use the same underlying machinery to > easily install, say, armel library and development packages because you're > doing development in a cross-compiled environment. The general > /lib/<triplet> layout allows you to install packages from as many > different architectures as you desire.
The GNU tools have handled cross-compilation for decades, so I don't find this answer convincing as stated. Nothing needed to change to make cross-compilation work. The lib64 directory does not exist for cross-compilation. It exists because the kernel supports two different native ABIs. I strongly support the idea of a compatibility symlink so that older gcc releases will continue to work. Ian