diff options
author | Peter S. Mazinger <ps.m@gmx.net> | 2011-03-13 01:42:50 +0100 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2012-06-15 14:00:23 +0200 |
commit | ce69c1eab4077dc3a327fd35177dceb1a824c930 (patch) | |
tree | 680fe095d1a1a505a3afb705dc4b678d94632e59 | |
parent | 511f959892f039842feef9618738a8de9c860b92 (diff) |
arm: consistency check OABI v. EABI
added check in toolchain and config
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-rw-r--r-- | libc/sysdeps/linux/arm/Makefile.arch | 5 | ||||
-rw-r--r-- | 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 cc73c45c7..093eb2dbd 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 14621d9bd..8c43e5345 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 */ |