Crossbuilding sparc64 and x86-64

Bo Thorsen bo@sonofthor.dk
Mon Mar 4 07:35:00 GMT 2002


Hi,

After I committed the change to i386/linux64.h which makes 64 and 32 bit gcc 
link against different crt*.o files, things have become more difficult.

It's done in the exact same way sparc/linux64.h does it: By setting absolute 
paths to the crt files in STARTFILE_SPEC. The 32 bit ones are not with 
absolute paths though, only the 64 bit ones.

Now, I'm just rebuilding the entire x86-64 linux, and this bit me. Setting up 
glibc headers and compiling binutils and gcc went as usual. Then when 
compiling glibc, it failed because it couldn't find /usr/lib64/crti.o. This 
is correct, since that file is a part of glibc and it's being compiled. This 
problem wasn't there before I added the 32/64 bit linking functionality.

So, the question: I have been looking at the other architectures that can 
also compile to both 32 and 64 bit and these seem to follow this scheme. Is 
there really no other way than doing this? It involves some truly horrible 
links to be set up temporarily in /usr/lib64 while compiling the toolchain.

If no other way presently exists, how about adding a 
-crtfiles="/work/.../crtfilesdir" switch? If this could be done, please give 
me a hint, since I don't know how to get arguments to the specs.

Other suggestions will be welcome too.

Bo.

-- 

     Bo Thorsen                 |   Praestevejen 4
     Free software developer    |   5290 Marslev
     SuSE Labs                  |   Denmark



More information about the Gcc mailing list