diff mbox series

[arm] Fix architecture selection when building libatomic with automatic FPU selection

Message ID b6e11c86-dc04-eae5-a5e5-e278b3a844ac@arm.com
State New
Headers show
Series [arm] Fix architecture selection when building libatomic with automatic FPU selection | expand

Commit Message

Richard Earnshaw (lists) Oct. 20, 2017, 12:37 p.m. UTC
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.  This is some fallout
from the move to making the FPU be automatically detected from the
CPU/architecture.

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.  +fp is essentially the same as
the previous default behaviour of defaulting to the base FP architecture
in these circumstances.

	* Makefile.am: (IFUNC_OPTIONS): Set the architecture to
	-march=armv7-a+fp on Linux/Arm.
	* Makefile.in: Regenerated.

Committed to trunk.
diff mbox series

Patch

diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
index d731406..9c45700 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 f6eeab3..0f0382e 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)