This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Absolute paths horror in gcc
- From: Bo Thorsen <bo at sonofthor dot dk>
- To: discuss at x86-64 dot org
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 18 Mar 2002 13:12:09 +0100
- Subject: Absolute paths horror in gcc
- Organization: SuSE Labs
I've been looking at the problem with hardcoded paths to link files in gcc.
The problem is this (config/i386/linux64.h):
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
"%{m32:%{!shared: \
%{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
%{!p:%{profile:gcrt1.o%s} %{!profile:crt1.o%s}}}} \
crti.o%s %{static:crtbeginT.o%s}\
%{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}} \
%{!m32:%{!shared: \
%{pg:/usr/lib64/gcrt1.o%s} %{!pg:%{p:/usr/lib64/gcrt1.o%s} \
%{!p:%{profile:/usr/lib64/gcrt1.o%s}
%{!profile:/usr/lib64/crt1.o%s}}}}\
/usr/lib64/crti.o%s %{static:crtbeginT.o%s} \
%{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}}"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "\
%{m32:%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s} \
%{!m32:%{!shared:crtend.o%s} %{shared:crtendS.o%s} /usr/lib64/crtn.o%s}"
The problem is that gcc doesn't have the infrastructure needed to make it
look in two different places for the crt files.
So, I was thinking that when someone is compiling on x86-64, I'd guess that
he was compiling for 64 bit most of the times. So why not change the problem
to be on the 32 bit side? Make the 64 bit default and the 32 bit ones have
hardcoded paths. This should also make crosscompilation be easier again
(right now it needs links from /usr/lib64/crtX.o to the files' real location).
Comments please.
Bo.
--
Bo Thorsen | Praestevejen 4
Free software developer | 5290 Marslev
SuSE Labs | Denmark