This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: libgcc 4.3.0 fails to build: crti.o: No such file
- From: Brian Dessent <brian at dessent dot net>
- To: Shaun Jackman <sjackman at bcgsc dot ca>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Wed, 09 Apr 2008 17:54:52 -0700
- Subject: Re: libgcc 4.3.0 fails to build: crti.o: No such file
- References: <E7AAF00E-BB52-4A87-BEF1-AEDD683F1769@bcgsc.ca>
- Reply-to: gcc-help at gcc dot gnu dot org
Shaun Jackman wrote:
> I'm compiling
> binutils 2.18
> mpfr 2.3.1
> gcc 4.3.0
> with Red Hat Enterprise Linux WS release 4 (Nahant Update 4)
> and gcc 3.4.6 20060404 (Red Hat 3.4.6-3).
I'm assuming that host and target are x86_64-unknown-linux-gnu (those
are good to specify in a report.)
> /home/sjackman/src/gnu/gcc-4.3.0/_build/./gcc/xgcc -B/home/sjackman/
> src/gnu/gcc-4.3.0/_build/./gcc/ -B/home/sjackman/arch/xhost/x86_64-
> unknown-linux-gnu/bin/ -B/home/sjackman/arch/xhost/x86_64-unknown-
> linux-gnu/lib/ -isystem /home/sjackman/arch/xhost/x86_64-unknown-
> linux-gnu/include -isystem /home/sjackman/arch/xhost/x86_64-unknown-
> linux-gnu/sys-include -O2 -O2 -g -g -O2 -DIN_GCC -W -Wall -
> Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-
> definition -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -
> DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -shared -nodefaultlibs -Wl,--
> soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o 32/
> libgcc_s.so.1.tmp -g -fkeep-inline-functions -m32 -B./ _muldi3_s.o
Note -m32 in this command.
> emutls_s.o -lc && rm -f 32/libgcc_s.so && if [ -f 32/libgcc_s.so.1 ];
> then mv -f 32/libgcc_s.so.1 32/libgcc_s.so.1.backup; else true; fi &&
> mv 32/libgcc_s.so.1.tmp 32/libgcc_s.so.1 && ln -s libgcc_s.so.1 32/
> libgcc_s.so
> /home/sjackman/arch/xhost/x86_64-unknown-linux-gnu/bin/ld: crti.o: No
> such file: No such file or directory
It's trying to link a 32 bit libgcc, but you don't have the libc items
required to be able to link 32 bit code. By default gcc on x86_64-linux
is biarch and multilibbed, which means respectively that it accepts the
-m32/-m64 switches to select the mode and that it builds both 32 and 64
bit versions of all the support libraries.
You need to install your distro's 32 bit libc-dev package, or you need
to --disable-multilib which will result in a compiler that doesn't
support 32 bit mode.
Brian