This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
> The problem I'm facing is that the toolchain is missing crt1.o. I believe this > was supposed to be installed with gcc, but I'm not sure. I have found several > items on crt1.o on the net, but so far have been unable to resolve my > problem. I'm probably missing a very critical step somewhere, since there is > no crt1.o installed: I think I may have gotten to the bottom of this as much as I could given my limited knowledge. I ran into the same thing trying to cross compile mips. I'm using the crosstools scripts as a base, but obviously wasn't doing it exactly the same way. In my case I think the trouble comes from: gcc-3.3.3/gcc/config/linux.h Configure lists this, when configuring gcc, along with several other files. You can see these when gcc is configuring, they look like: Using the following target machine macro files: .../gcc-3.3.3/gcc/config/dbxelf.h .../gcc-3.3.3/gcc/config/elfos.h .../gcc-3.3.3/gcc/config/svr4.h .../gcc-3.3.3/gcc/config/linux.h .../gcc-3.3.3/gcc/config/mips/mips.h .../gcc-3.3.3/gcc/config/mips/linux.h That particular file contains the STARTFILE_SPEC macro, which documentation says is used to define startup files. The relevent lines in gcc-3.3.3/gcc/config/linux.h are: #undef STARTFILE_SPEC #ifdef USE_GNULIBC_1 #define STARTFILE_SPEC \ "%{!shared: \ %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \ %{!p:%{profile:gcrt1.o%s} \ %{!profile:crt1.o%s}}}} \ crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" #else #define STARTFILE_SPEC \ "%{!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}}" #endif I noticed that "%{!shared" along with "%{!profile"cause crt1.o to be included in the startup file spec . Experimenting leads me to believe those two are a reflection of the --disable-shared/--enable-shared and --disable-profile/--enable-profile configure options. So disabling shared libraries and profiling causes crt1.o to be included in the startup files. A search for crt1.[csS] leads me to believe that it isn't even a part of the gcc build. The bottom line is if your building a cross compiler and configure takes it's final STARTFILE_SPEC from this file, and you disable shared libraries and profiling you may encounter this problem. ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |