From e64944ac65c3e0bb4115873f17b9c48f06c3813a Mon Sep 17 00:00:00 2001 From: Richard Earnshaw Date: Fri, 20 Oct 2017 12:33:39 +0000 Subject: [PATCH] [arm] Fix architecture selection when building libatomic with automatic FPU selection Libatomic builds a few functions for Arm with an explicit -march option. This option does not specify an FPU, which can lead to problems when targeting a hard-float or softfp environment since the architecture appears to be incompatible with the selected ABI. The fix is simple enough, just add +fp (the minimum floating point option) to the architecture. We don't use anything from the FP architecture, so it shouldn't really change anything; and if we are building for -mfloat-abi=soft the canonicalization process will remove the unnecessary fp attributes anyway. * Makefile.am: (IFUNC_OPTIONS): Set the architecture to -march=armv7-a+fp on Linux/Arm. * Makefile.in: Regenerated. From-SVN: r253935 --- libatomic/ChangeLog | 6 ++++++ libatomic/Makefile.am | 2 +- libatomic/Makefile.in | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libatomic/ChangeLog b/libatomic/ChangeLog index 835ea6c5093..eed12e63a68 100644 --- a/libatomic/ChangeLog +++ b/libatomic/ChangeLog @@ -1,3 +1,9 @@ +2017-10-20 Richard Earnshaw + + * Makefile.am: (IFUNC_OPTIONS): Set the architecture to + -march=armv7-a+fp on Linux/Arm. + * Makefile.in: Regenerated. + 2017-10-02 Martin Sebor PR c/81854 diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am index d731406fdbd..9c457008232 100644 --- a/libatomic/Makefile.am +++ b/libatomic/Makefile.am @@ -123,7 +123,7 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix _$(s)_.lo,$(SIZEOBJS))) ## On a target-specific basis, include alternates to be selected by IFUNC. if HAVE_IFUNC if ARCH_ARM_LINUX -IFUNC_OPTIONS = -march=armv7-a -DHAVE_KERNEL64 +IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64 libatomic_la_LIBADD += $(foreach s,$(SIZES),$(addsuffix _$(s)_1_.lo,$(SIZEOBJS))) libatomic_la_LIBADD += $(addsuffix _8_2_.lo,$(SIZEOBJS)) endif diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in index f6eeab312ea..0f0382e0713 100644 --- a/libatomic/Makefile.in +++ b/libatomic/Makefile.in @@ -346,7 +346,7 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files))) libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \ _$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \ $(am__append_3) -@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a -DHAVE_KERNEL64 +@ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64 @ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=i586 @ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -mcx16 libatomic_convenience_la_SOURCES = $(libatomic_la_SOURCES) -- 2.30.2