ARM: improve VFP ABI check

Recent gcc versions define __ARM_PCS or __ARM_PCS_VFP to indicate the
VFP ABI in use, and ARM RVCT defines __SOFTFP__ when using this ABI.
If none of these are defined, check $cross_prefix and $cc for the
substring "hardfloat", and finally fall back to a linker test.  This
gives the correct result in most configurations.
oldabi
Mans Rullgard 14 years ago
parent b0c1b66a4b
commit 44caaa560b
  1. 10
      configure

10
configure vendored

@ -2526,10 +2526,18 @@ elif enabled arm; then
check_cflags -marm check_cflags -marm
nogas=die nogas=die
check_ld <<EOF && enable vfp_args if check_cpp_condition stddef.h "defined __ARM_PCS_VFP"; then
enable vfp_args
elif ! check_cpp_condition stddef.h "defined __ARM_PCS || defined __SOFTFP__"; then
case "${cross_prefix:-$cc}" in
*hardfloat*) enable vfp_args; fpabi=vfp ;;
*) check_ld <<EOF && enable vfp_args && fpabi=vfp || fpabi=soft ;;
__asm__ (".eabi_attribute 28, 1"); __asm__ (".eabi_attribute 28, 1");
int main(void) { return 0; } int main(void) { return 0; }
EOF EOF
esac
warn "Compiler does not indicate floating-point ABI, guessing $fpabi."
fi
# We have to check if pld is a nop and disable it. # We have to check if pld is a nop and disable it.
check_asm pld '"pld [r0]"' check_asm pld '"pld [r0]"'

Loading…
Cancel
Save