From 3e9310f4894ebe330b60eb5f07d55a7b9f854f2f Mon Sep 17 00:00:00 2001 From: Maxim Kuvyrkov Date: Sat, 7 Dec 2013 08:47:21 +0000 Subject: Cleanup definitions of libc-related target hooks. * config/bfin/uclinux.h, config/c6x/uclinux-elf.h, * config/lm32/uclinux-elf.h, config/m68k/uclinux.h, * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Move definitions to linux.h. * config/linux-android.h (TARGET_HAS_IFUNC_P): Move definition to linux.h. * config/linux.h (TARGET_LIBC_HAS_FUNCTION, TARGET_HAS_IFUNC_P): Define appropriately for Linux and uClinux targets. From-SVN: r205780 --- gcc/config/linux.h | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'gcc/config/linux.h') diff --git a/gcc/config/linux.h b/gcc/config/linux.h index 507471be938..d7ca300c8db 100644 --- a/gcc/config/linux.h +++ b/gcc/config/linux.h @@ -99,7 +99,31 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #undef TARGET_HAS_BIONIC #define TARGET_HAS_BIONIC (OPTION_BIONIC) +#if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ +/* This is a *uclinux* target. We don't define below macros to normal linux + versions, because doing so would require *uclinux* targets to include + linux.c, linux-protos.h, linux.opt, etc. We could, alternatively, add + these files to *uclinux* targets, but that would only pollute option list + (add -mglibc, etc.) without adding any useful support. */ + +/* Define TARGET_LIBC_HAS_FUNCTION for *uclinux* targets to + no_c99_libc_has_function, because uclibc does not, normally, have + c99 runtime. If, in special cases, uclibc does have c99 runtime, + this should be defined to a new hook. Also please note that for targets + like *-linux-uclibc that similar check will also need to be added to + linux_libc_has_function. */ +# undef TARGET_LIBC_HAS_FUNCTION +# define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function + +#else /* !uClinux, i.e., normal Linux */ + +/* IFUNCs are supportted by glibc, but not by uClibc or Bionic. */ +# undef TARGET_HAS_IFUNC_P +# define TARGET_HAS_IFUNC_P linux_has_ifunc_p + /* Determine what functions are present at the runtime; this includes full c99 runtime and sincos. */ -#undef TARGET_LIBC_HAS_FUNCTION -#define TARGET_LIBC_HAS_FUNCTION linux_libc_has_function +# undef TARGET_LIBC_HAS_FUNCTION +# define TARGET_LIBC_HAS_FUNCTION linux_libc_has_function + +#endif -- cgit v1.2.1