From 44caaa560b8527acba99bc493040600add0fdb74 Mon Sep 17 00:00:00 2001 From: Mans Rullgard <mans@mansr.com> Date: Sun, 16 Jan 2011 18:42:36 +0000 Subject: [PATCH] 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. --- configure | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 9a68b7359f3..123de515b56 100755 --- a/configure +++ b/configure @@ -2526,10 +2526,18 @@ elif enabled arm; then check_cflags -marm 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"); int main(void) { return 0; } 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. check_asm pld '"pld [r0]"' -- GitLab