This is similar to #14895. On arm-elf target, the compiler defaults to soft-float even when no option is passed. Binutils defaults to hard-float (it sets the SOFTFLOAT only if the soft-float option is given). When libgcc is built for soft-float, gas receives no option from gcc and therefore does not set the SOFTFLOAT flag.
This is shown using arm-elf-objdump -p on the libgcc.a file ([software FP] missing). A workaround is to provide an explicit --with-float=soft at configure time. In this case, this is added to configure_default_options, and OPTION_DEFAULT_SPECS saves us. Configured with: /home/nico/arm/gcc-arm-elf-4.3.2/src/configure --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --datadir=/usr/share --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --build=i486-linux-gnu --host=i486-linux-gnu --target=arm-elf --enable-languages=c --enable-shared --with-system-zlib --enable-nls --without-included-gettext --disable-checking --disable-libssp --enable-interwork --enable-multilib I use a customised t-arm-elf to build multilib with hard and soft float. Thanks. -- Summary: soft float flags missings from libgcc.a (and others) if no --with-float given at configure time Product: gcc Version: 4.3.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: schodet at efrei dot fr GCC build triplet: all GCC host triplet: all GCC target triplet: arm-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42100