mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 07:22:33 +00:00
ae885a3978
SVN-Revision: 25698
82 lines
2.8 KiB
Diff
82 lines
2.8 KiB
Diff
Rely on the compiler to be properly setup for the default ABI.
|
|
|
|
When installing-headers, there are two cases:
|
|
- NPTL: no issue, a cross-compiler is already expected
|
|
- LinuxThreads: no issue, EABI/OABI has no impact on installed headers.
|
|
|
|
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
|
|
Cc: Khem Raj <raj.khem@gmail.com>
|
|
Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
|
|
---
|
|
extra/Configs/Config.arm | 11 -----------
|
|
libc/sysdeps/linux/arm/Makefile.arch | 9 +++++++--
|
|
libc/sysdeps/linux/arm/bits/huge_val.h | 4 ++--
|
|
3 files changed, 9 insertions(+), 15 deletions(-)
|
|
|
|
--- a/extra/Configs/Config.arm
|
|
+++ b/extra/Configs/Config.arm
|
|
@@ -12,17 +12,6 @@ config FORCE_OPTIONS_FOR_ARCH
|
|
default y
|
|
select ARCH_ANY_ENDIAN
|
|
|
|
-config CONFIG_ARM_EABI
|
|
- bool "Build for EABI"
|
|
- help
|
|
- If you say 'y' here, functions and constants required by the
|
|
- ARM EABI will be built into the library. You should say 'y'
|
|
- if your compiler uses the ARM EABI, in which case you will also
|
|
- need a kernel supporting the EABI system call interface.
|
|
-
|
|
- If you say 'n' here, then the library will be built for the
|
|
- old Linux ABI.
|
|
-
|
|
config COMPILE_IN_THUMB_MODE
|
|
bool "Build using Thumb mode"
|
|
select USE_BX
|
|
--- a/libc/sysdeps/linux/arm/Makefile.arch
|
|
+++ b/libc/sysdeps/linux/arm/Makefile.arch
|
|
@@ -24,7 +24,12 @@ ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
|
|
CSRC += posix_fadvise.c posix_fadvise64.c
|
|
endif
|
|
|
|
-ifeq ($(CONFIG_ARM_EABI),y)
|
|
+# Is our compiler set up for EABI ?
|
|
+IS_EABI:=$(shell $(CC) $(CFLAGS) -x c - -E -dM </dev/null 2>/dev/null \
|
|
+ |sed -r -e '/^\#[[:space:]]*define[[:space:]]+__ARM_EABI__([[:space:]]+1)?$$/!d; s/.+/y/;' \
|
|
+ )
|
|
+
|
|
+ifeq ($(IS_EABI),y)
|
|
CSRC += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
|
|
aeabi_localeconv.c aeabi_memclr.c aeabi_memcpy.c \
|
|
aeabi_memmove.c aeabi_memset.c find_exidx.c
|
|
@@ -37,7 +42,7 @@ else
|
|
CSRC += syscall.c
|
|
endif
|
|
|
|
-ifeq ($(CONFIG_ARM_EABI),y)
|
|
+ifeq ($(IS_EABI),y)
|
|
libc-static-y += $(ARCH_OUT)/aeabi_lcsts.o $(ARCH_OUT)/aeabi_math.o \
|
|
$(ARCH_OUT)/aeabi_sighandlers.o
|
|
libc-nonshared-y += $(ARCH_OUT)/aeabi_lcsts.os $(ARCH_OUT)/aeabi_math.os \
|
|
--- a/libc/sysdeps/linux/arm/bits/huge_val.h
|
|
+++ b/libc/sysdeps/linux/arm/bits/huge_val.h
|
|
@@ -32,7 +32,7 @@
|
|
# define HUGE_VAL (__extension__ 0x1.0p2047)
|
|
#elif defined __GNUC__
|
|
|
|
-#ifndef __CONFIG_ARM_EABI__
|
|
+#ifndef __ARM_EABI__
|
|
# define HUGE_VAL \
|
|
(__extension__ \
|
|
((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \
|
|
@@ -50,7 +50,7 @@
|
|
|
|
typedef union { unsigned char __c[8]; double __d; } __huge_val_t;
|
|
|
|
-#ifndef __CONFIG_ARM_EABI__
|
|
+#ifndef __ARM_EABI__
|
|
# if __BYTE_ORDER == __BIG_ENDIAN
|
|
# define __HUGE_VAL_bytes { 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 }
|
|
# endif
|