diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2017-10-20 12:33:39 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2017-10-20 12:33:39 +0000 |
commit | e64944ac65c3e0bb4115873f17b9c48f06c3813a (patch) | |
tree | 46cfe6bcfdeb5f89d75190f67fa79507e9e0abb7 /libatomic | |
parent | ffa3ce5322226f094d3762ee5f32a5aab8b6a149 (diff) |
[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
Diffstat (limited to 'libatomic')
-rw-r--r-- | libatomic/ChangeLog | 6 | ||||
-rw-r--r-- | libatomic/Makefile.am | 2 | ||||
-rw-r--r-- | 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 <rearnsha@arm.com> + + * Makefile.am: (IFUNC_OPTIONS): Set the architecture to + -march=armv7-a+fp on Linux/Arm. + * Makefile.in: Regenerated. + 2017-10-02 Martin Sebor <msebor@redhat.com> 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) |