This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Avoid $(shell) in determining default ARM ABI
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: <libc-ports at sourceware dot org>
- Date: Wed, 21 Nov 2012 21:08:12 +0000
- Subject: Avoid $(shell) in determining default ARM ABI
I've applied this patch to avoid use of $(shell) when determining the
default ARM ABI, instead generating a makefile fragment from the configure
scripts, as previously requested by Roland. (I put the relevant code in
the configure fragment with the existing test for the ARM ABI, although
the only user is the Linux-specific makefile. That existing code is in
fact only for the benefit of the shlib-versions file, which is in
sysdeps/arm/shlib-versions although almost all the ports shlib-versions
files are in fact Linux-specific despite their sysdeps locations.)
2012-11-21 Joseph Myers <joseph@codesourcery.com>
* sysdeps/arm/configure.in: Generate default-abi.make with
definition of default-abi.
* sysdeps/arm/configure: Regenerated.
* sysdeps/unix/sysv/linux/arm/Makefile (default-abi-prog): Remove.
(default-abi): Likewise.
($(common-objpfx)default-abi.make): Include.
diff --git a/ports/sysdeps/arm/configure b/ports/sysdeps/arm/configure
index 385f295..91239cd 100644
--- a/ports/sysdeps/arm/configure
+++ b/ports/sysdeps/arm/configure
@@ -197,4 +197,7 @@ $as_echo "$libc_cv_arm_pcs_vfp" >&6; }
if test $libc_cv_arm_pcs_vfp = yes; then
$as_echo "#define HAVE_ARM_PCS_VFP 1" >>confdefs.h
+ echo "default-abi := hard" > default-abi.make
+else
+ echo "default-abi := soft" > default-abi.make
fi
diff --git a/ports/sysdeps/arm/configure.in b/ports/sysdeps/arm/configure.in
index 7e91332..6073d0e 100644
--- a/ports/sysdeps/arm/configure.in
+++ b/ports/sysdeps/arm/configure.in
@@ -40,4 +40,7 @@ AC_CACHE_CHECK([whether the compiler is using the ARM hard-float ABI],
], libc_cv_arm_pcs_vfp=yes, libc_cv_arm_pcs_vfp=no)])
if test $libc_cv_arm_pcs_vfp = yes; then
AC_DEFINE(HAVE_ARM_PCS_VFP)
+ echo "default-abi := hard" > default-abi.make
+else
+ echo "default-abi := soft" > default-abi.make
fi
diff --git a/ports/sysdeps/unix/sysv/linux/arm/Makefile b/ports/sysdeps/unix/sysv/linux/arm/Makefile
index bda3ea9..be7946e 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/Makefile
+++ b/ports/sysdeps/unix/sysv/linux/arm/Makefile
@@ -70,25 +70,16 @@ LDFLAGS-tst-rfc3484-2 += $(common-objpfx)csu/libc-do-syscall.o
LDFLAGS-tst-rfc3484-3 += $(common-objpfx)csu/libc-do-syscall.o
endif
-define default-abi-prog
-echo '#ifdef __ARM_PCS_VFP';
-echo 'hard';
-echo '#else';
-echo 'soft';
-echo '#endif'
-endef
-default-abi := $(strip $(shell \
- ($(default-abi-prog)) | $(CC) $(CFLAGS) $(CPPFLAGS) -E -P -))
-ifeq ($(default-abi),hard)
-# OK.
-else
-ifneq ($(default-abi),soft)
-Unknown ABI, must be "hard" or "soft".
-endif
+# Get value of default-abi.
+include $(common-objpfx)default-abi.make
+
+abi-variants := soft hard
+
+ifeq (,$(filter $(default-abi),$(abi-variants)))
+Unknown ABI, must be one of $(abi-variants)
endif
abi-includes :=
-abi-variants := soft hard
abi-soft-options := -U__ARM_PCS_VFP
abi-soft-condition := !defined __ARM_PCS_VFP
abi-soft-ld-soname := ld-linux.so.3
--
Joseph S. Myers
joseph@codesourcery.com