summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog17
-rw-r--r--gcc/config.gcc10
-rw-r--r--gcc/config/alpha/linux.h4
-rw-r--r--gcc/config/linux.h6
-rw-r--r--gcc/config/rs6000/linux.h4
-rw-r--r--gcc/config/rs6000/linux64.h4
6 files changed, 38 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dd2d71ed18d..c12643fb128 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,20 @@
+2010-12-20 Joseph Myers <joseph@codesourcery.com>
+
+ * config/alpha/linux.h (OPTION_GLIBC): Define differently if
+ SINGLE_LIBC.
+ * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC):
+ Define differently if SINGLE_LIBC.
+ * config/rs6000/linux.h (OPTION_GLIBC): Define differently if
+ SINGLE_LIBC.
+ * config/rs6000/linux64.h (OPTION_GLIBC): Define differently if
+ SINGLE_LIBC.
+ * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
+ *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Define
+ SINGLE_LIBC instead of OPTION_GLIBC.
+ (*-*-uclinux*): Define DEFAULT_LIBC and SINGLE_LIBC.
+ (bfin*-uclinux*, moxie-*-uclinux*, m68k-*-uclinux*): Don't define
+ DEFAULT_LIBC or use linux.opt.
+
2010-12-20 Richard Henderson <rth@redhat.com>
* config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Generate
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 2f75505eca1..4db688508f1 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -562,7 +562,7 @@ case ${target} in
*linux*)
extra_options="$extra_options linux.opt";;
*)
- tm_defines="$tm_defines OPTION_GLIBC=1";;
+ tm_defines="$tm_defines SINGLE_LIBC";;
esac
case $target in
*-*-*android*)
@@ -657,6 +657,7 @@ case ${target} in
;;
*-*-uclinux*)
use_gcc_stdint=wrap
+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
;;
*-*-solaris2*)
extra_options="${extra_options} sol2.opt"
@@ -909,8 +910,6 @@ bfin*-elf*)
bfin*-uclinux*)
tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h linux.h glibc-stdint.h bfin/uclinux.h"
tmake_file=bfin/t-bfin-uclinux
- tm_defines="${tm_defines} DEFAULT_LIBC=LIBC_UCLIBC"
- extra_options="${extra_options} linux.opt"
use_collect2=no
;;
bfin*-linux-uclibc*)
@@ -992,8 +991,6 @@ moxie-*-uclinux*)
tm_file="dbxelf.h elfos.h ${tm_file} linux.h glibc-stdint.h moxie/uclinux.h"
extra_parts="crti.o crtn.o crtbegin.o crtend.o"
tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp"
- tm_defines="${tm_defines} DEFAULT_LIBC=LIBC_UCLIBC"
- extra_options="${extra_options} linux.opt"
;;
moxie-*-rtems*)
tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp t-rtems"
@@ -1729,8 +1726,7 @@ m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
default_m68k_cpu=68020
default_cf_cpu=5206
tm_file="${tm_file} dbxelf.h elfos.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h"
- tm_defines="${tm_defines} MOTOROLA=1 DEFAULT_LIBC=LIBC_UCLIBC"
- extra_options="${extra_options} linux.opt"
+ tm_defines="${tm_defines} MOTOROLA=1"
tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
;;
m68k-*-linux*) # Motorola m68k's running GNU/Linux
diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h
index 86b6594f45b..a1881c8168b 100644
--- a/gcc/config/alpha/linux.h
+++ b/gcc/config/alpha/linux.h
@@ -61,7 +61,11 @@ along with GCC; see the file COPYING3. If not see
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
+#ifdef SINGLE_LIBC
+#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
+#else
#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
+#endif
/* Determine whether the entire c99 runtime is present in the
runtime library. */
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
index 1c4ea1c7bb0..d53468e4e2e 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -80,9 +80,15 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIB_SPEC LINUX_TARGET_LIB_SPEC
/* C libraries supported on Linux. */
+#ifdef SINGLE_LIBC
+#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
+#define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
+#define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
+#else
#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
#define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC)
#define OPTION_BIONIC (linux_libc == LIBC_BIONIC)
+#endif
#define LINUX_TARGET_OS_CPP_BUILTINS() \
do { \
diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
index 464cd8ee430..ed1d09ec14d 100644
--- a/gcc/config/rs6000/linux.h
+++ b/gcc/config/rs6000/linux.h
@@ -27,7 +27,11 @@
/* We use glibc _mcount for profiling. */
#define NO_PROFILE_COUNTERS 1
+#ifdef SINGLE_LIBC
+#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
+#else
#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
+#endif
/* glibc has float and long double forms of math functions. */
#undef TARGET_C99_FUNCTIONS
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index 20bd257975c..06e08a108c6 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -308,7 +308,11 @@ extern int dot_symbols;
process. */
#define OS_MISSING_POWERPC64 !TARGET_64BIT
+#ifdef SINGLE_LIBC
+#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
+#else
#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
+#endif
/* glibc has float and long double forms of math functions. */
#undef TARGET_C99_FUNCTIONS