From ce69c1eab4077dc3a327fd35177dceb1a824c930 Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Sun, 13 Mar 2011 01:42:50 +0100 Subject: arm: consistency check OABI v. EABI added check in toolchain and config Signed-off-by: Peter S. Mazinger Signed-off-by: Bernhard Reutner-Fischer --- 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 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 \ - | 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 | 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 +# 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 */ -- cgit v1.2.3