failed gcc-4.0.3-1(Debian) bootstrap with ARM VFP and binutils-2.16.1cvs20060117-1

Daniel Jacobowitz dan@debian.org
Sun Mar 26 05:43:00 GMT 2006


On Fri, Mar 24, 2006 at 12:01:26PM +0100, peter.kourzanov@xs4all.nl wrote:
> "ld: *_s.o uses VFP instructions, whereas ./libgcc_s.so.1.tmp does not"
> 
> (Complete log in attachment).
> 
>   I found this message quite strange, as libgcc_s.so.1.tmp was the
> output of the linker, so it should have been created with the same
> modes as the objects it should contain.

It means that some earlier file in the link set the mode of
libgcc_s.so.1, and that file did not use VFP.  You might want to check
the other files included in the linker invocation.

>   Moreover, --msoft-float and --mfpu=vfp were explicitly passed to
> xgcc. However, looking at the log I see that collect2 does not get
> --msoft-float and --mfpu options. Could this be a problem? I tried
> to modify build/gcc/specs, to no avail...

No, this is not an issue.

> Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/arm-vfp-linux-gnu/include/c++/4.0.3 --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --with-float=soft --with-fpu=vfp --enable-checking=release --program-prefix=arm-vfp-linux-gnu- --includedir=/usr/arm-vfp-linux-gnu/include --build=i486-linux-gnu --host=i486-linux-gnu --target=arm-vfp-linux-gnu

>  /usr/src/Debian/gcc-4.0-4.0.3-1/build/gcc/collect2 --eh-frame-hdr -shared -dynamic-linker /lib/ld-linux.so.2 -X -m armelf_linux -p -o ./libgcc_s.so.1.tmp /usr/arm-vfp-linux-gnu/lib/crti.o /usr/src/Debian/gcc-4.0-4.0.3-1/build/gcc/crtbeginS.o -L/usr/src/Debian/gcc-4.0-4.0.3-1/build/gcc -L/usr/arm-vfp-linux-gnu/bin -L/usr/arm-vfp-linux-gnu/lib -L/usr/lib/gcc/../../arm-vfp-linux-gnu/lib --soname=libgcc_s.so.1 --version-script=libgcc/./libgcc.map -O1 libgcc/./_udivsi3_s.o libgcc/./_divsi3_s.o libgcc/./_umodsi3_s.o libgcc/./_modsi3_s.o libgcc/./_dvmd_lnx_s.o libgcc/./_muldi3_s.o libgcc/./_negdi2_s.o libgcc/./_lshrdi3_s.o libgcc/./_ashldi3_s.o libgcc/./_ashrdi3_s.o libgcc/./_cmpdi2_s.o libgcc/./_ucmpdi2_s.o libgcc/./_floatdidf_s.o libgcc/./_floatdisf_s.o libgcc/./_fixunsdfsi_s.o libgcc/./_fixunssfsi_s.o libgcc/./_fixunsdfdi_s.o libgcc/./_fixdfdi_s.o libgcc/./_fixunssfdi_s.o libgcc/./_fixsfdi_s.o libgcc/./_fixxfdi_s.o libgcc/./_fixunsxfdi_s.o libgcc/./_floatdixf_s.o libgcc/./_fixunsxfsi_s.o libgcc/./_fixtfdi_s.o libgcc/./_fixunstfdi_s.o libgcc/./_floatditf_s.o libgcc/./_clear_cache_s.o libgcc/./_enable_execute_stack_s.o libgcc/./_trampoline_s.o libgcc/./__main_s.o libgcc/./_absvsi2_s.o libgcc/./_absvdi2_s.o libgcc/./_addvsi3_s.o libgcc/./_addvdi3_s.o libgcc/./_subvsi3_s.o libgcc/./_subvdi3_s.o libgcc/./_mulvsi3_s.o libgcc/./_mulvdi3_s.o libgcc/./_negvsi2_s.o libgcc/./_negvdi2_s.o libgcc/./_ctors_s.o libgcc/./_ffssi2_s.o libgcc/./_ffsdi2_s.o libgcc/./_clz_s.o libgcc/./_clzsi2_s.o libgcc/./_clzdi2_s.o libgcc/./_ctzsi2_s.o libgcc/./_ctzdi2_s.o libgcc/./_popcount_tab_s.o libgcc/./_popcountsi2_s.o libgcc/./_popcountdi2_s.o libgcc/./_paritysi2_s.o libgcc/./_paritydi2_s.o libgcc/./_powisf2_s.o libgcc/./_powidf2_s.o libgcc/./_powixf2_s.o libgcc/./_powitf2_s.o libgcc/./_mulsc3_s.o libgcc/./_muldc3_s.o libgcc/./_mulxc3_s.o libgcc/./_multc3_s.o libgcc/./_divsc3_s.o libgcc/./_divdc3_s.o libgcc/./_divxc3_s.o libgcc/./_divtc3_s.o libgcc/./_divdi3_s.o libgcc/./_moddi3_s.o libgcc/./_udivdi3_s.o libgcc/./_umoddi3_s.o libgcc/./_udiv_w_sdiv_s.o libgcc/./_udivmoddi4_s.o libgcc/./unwind-dw2_s.o libgcc/./unwind-dw2-fde-glibc_s.o libgcc/./unwind-sjlj_s.o libgcc/./gthr-gnat_s.o libgcc/./unwind-c_s.o -lc /usr/src/Debian/gcc-4.0-4.0.3-1/build/gcc/crtendS.o /usr/arm-vfp-linux-gnu/lib/crtn.o
> /usr/arm-vfp-linux-gnu/bin/ld: ERROR: /usr/src/Debian/gcc-4.0-4.0.3-1/build/gcc/crtbeginS.o uses VFP instructions, whereas ./libgcc_s.so.1.tmp does not

Looks like you're using an installed crti.o.  I bet that's not built
with VFP.  You might want to look into e.g. crosstool; it knows how to
bootstrap a toolchain with particular options.


-- 
Daniel Jacobowitz
CodeSourcery



More information about the Binutils mailing list