[git commit] arm: consistency check OABI v. EABI
Bernhard Reutner-Fischer
rep.dot.nop at gmail.com
Fri Jun 15 12:00:23 UTC 2012
commit: http://git.uclibc.org/uClibc/commit/?id=ce69c1eab4077dc3a327fd35177dceb1a824c930
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master
added check in toolchain and config
Signed-off-by: Peter S. Mazinger <ps.m at gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
---
libc/sysdeps/linux/arm/Makefile.arch | 5 ++---
libc/sysdeps/linux/arm/bits/uClibc_arch_features.h | 11 +++++++++++
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/libc/sysdeps/linux/arm/Makefile.arch b/libc/sysdeps/linux/arm/Makefile.arch
index cc73c45..093eb2d 100644
--- a/libc/sysdeps/linux/arm/Makefile.arch
+++ b/libc/sysdeps/linux/arm/Makefile.arch
@@ -21,9 +21,8 @@ CSRC += posix_fadvise.c posix_fadvise64.c
endif
# Is our compiler set up for EABI ?
-IS_EABI:=$(shell $(CC) $(CFLAGS) -x c - -E -dM </dev/null 2>/dev/null \
- | grep __ARM_EABI__ 2>&1 >/dev/null && echo 'y' \
- )
+CC_IS_EABI_CHECK = $(filter-out -include libc-symbols.h,$(CC) $(CFLAGS))
+$(eval $(call cache-output-var,IS_EABI,$(CC_IS_EABI_CHECK) -x c - -E -dM </dev/null 2>/dev/null | grep __ARM_EABI__ 2>&1 >/dev/null && echo 'y'))
ifeq ($(IS_EABI),y)
CSRC += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
diff --git a/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h b/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
index 14621d9..8c43e53 100644
--- a/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
+++ b/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
@@ -48,4 +48,15 @@
/* only weird assemblers generally need this */
#undef __UCLIBC_ASM_LINE_SEP__
+#ifdef __GNUC__
+# define __need_uClibc_config_h
+# include <bits/uClibc_config.h>
+# undef __need_uClibc_config_h
+# if defined __CONFIG_ARM_EABI__ && !defined __ARM_EABI__
+# error Your toolchain does not support EABI
+# elif !defined __CONFIG_ARM_EABI__ && defined __ARM_EABI__
+# error Your toolchain was built for EABI, but you have chosen OABI
+# endif
+#endif
+
#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
More information about the uClibc-cvs
mailing list