Hello List,
I want to compile gcc452 on nocona processor to be able to build both 32
and 64bit code. My system is linux-from-scratch, so everything
including glibc and excluding binutils is compiled for 32bit.
I compile gcc with
../gcc-4.5.2/configure --enable-threads=posix --enable-languages=c,c++
--enable-targets=all --with-newlib
--with-build-time-tools=/usr/x86_64-elf/bin/
when building gcc425-build/i686-pc-linux-gnu/64/libgcc, ld says it
cannot find libc, or rahter a libc compiled for x86_64:
/src/gcc452-build/./gcc/xgcc -B/src/gcc452-build/./gcc/
-B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem
/usr/i686-pc-linux-gnu/include -isystem
/usr/i686-pc-linux-gnu/sys-include -m64 -O2 -g -O3 -march=nocona
-DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC
-g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
-Dinhibit_libc -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1
-Wl,--version-script=libgcc.map -o 64/libgcc_s.so.1.tmp -g -O3
-march=nocona -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o
_ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o
_enable_execute_stack_s.o _trampoline_s.o __main_s.o _absvsi2_s.o
_absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o
_mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o
_ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o
_ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o
_paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o
_mulsc3_s.o _muldc3_s.o _mulxc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o
_bswapsi2_s.o _bswapdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o
_fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o
_fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o
_floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o
_divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o
_udivmoddi4_s.o addtf3_s.o divtf3_s.o multf3_s.o negtf2_s.o subtf3_s.o
unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o
fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o
fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o
extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o
trunctfxf2_s.o getf2_s.o letf2_s.o eqtf2_s.o _divtc3_s.o _multc3_s.o
_powitf2_s.o unwind-dw2_s.o unwind-dw2-fde-glibc_s.o unwind-sjlj_s.o
gthr-gnat_s.o unwind-c_s.o emutls_s.o -lc && rm -f 64/libgcc_s.so && if
[ -f 64/libgcc_s.so.1 ]; then mv -f 64/libgcc_s.so.1
64/libgcc_s.so.1.backup; else true; fi && mv 64/libgcc_s.so.1.tmp
64/libgcc_s.so.1 && ln -s libgcc_s.so.1 64/libgcc_s.so
/usr/x86_64-elf/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
make: *** [libgcc_s.so] Error 1
I really do not have libc for x86_64, but in order to compile it, I need
gcc that can produce x86_64 code. But in order to have gcc that can
produce x86_64 code, I need x86_64-libc to build libgcc_s.so.1 and hence
gcc.
Could you please help me how to build libgcc in gcc without dependency
on libc, or how to build libc for x86_64 with gcc, that was not built
with --enable-targets=all ?
Thanks in advance for your feedback,
ÐÐÐÑÐ