re PR target/24837 (move dynamic linker names out of LINK_SPEC and into new DYNAMIC_LINKER)
PR target/24837 * config.gcc: Define UCLIBC_DEFAULT to 0 or 1. * opth-gen.awk: Handle Var and InverseMask together. * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc). * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT. (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC. (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc used together. (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER): Define. (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER. * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define. (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option. * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. (TARGET_C99_FUNCTIONS): Don't define. * config/i386/linux.h (DYNAMIC_LINKER): Rename to GLIBC_DYNAMIC_LINKER. (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER. * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and LINUX_DYNAMIC_LINKER64. * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64 and LINUX_DYNAMIC_LINKER32. * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise. (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32. (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64. * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER): Define. (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE. * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and LINUX_DYNAMIC_LINKER64. * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define. (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32. (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64. (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * doc/invoke.texi (-muclibc): Remove caveat about supported targets. testsuite: * gcc.dg/glibc-uclibc-1.c, gcc.dg/glibc-uclibc-2.c: New tests. From-SVN: r111235
This commit is contained in:
parent
be8ac3e243
commit
7bd85ce0da
29 changed files with 276 additions and 80 deletions
|
@ -1,3 +1,84 @@
|
|||
2006-02-18 Joseph S. Myers <joseph@codesourcery.com>
|
||||
|
||||
PR target/24837
|
||||
* config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
|
||||
* opth-gen.awk: Handle Var and InverseMask together.
|
||||
* config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
|
||||
* config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
|
||||
(TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
|
||||
(CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
|
||||
used together.
|
||||
(UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
|
||||
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
|
||||
* config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
|
||||
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
||||
LINUX_DYNAMIC_LINKER): Define.
|
||||
(ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
|
||||
* config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
|
||||
TARGET_GLIBC.
|
||||
* config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||||
(CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
|
||||
* config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||||
(TARGET_C99_FUNCTIONS): Don't define.
|
||||
* config/i386/linux.h (DYNAMIC_LINKER): Rename to
|
||||
GLIBC_DYNAMIC_LINKER.
|
||||
(SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
|
||||
* config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
|
||||
GLIBC_DYNAMIC_LINKER64): Define.
|
||||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
|
||||
LINUX_DYNAMIC_LINKER64.
|
||||
* config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||||
* config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
|
||||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||||
* config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||||
* config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
|
||||
GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
|
||||
UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
|
||||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
|
||||
and LINUX_DYNAMIC_LINKER32.
|
||||
* config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||||
* config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||||
* config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
|
||||
TARGET_GLIBC.
|
||||
* config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
|
||||
(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
|
||||
UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
|
||||
CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
||||
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
|
||||
(LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
|
||||
(LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
|
||||
* config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
|
||||
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
||||
LINUX_DYNAMIC_LINKER): Define.
|
||||
(LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
|
||||
* config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
|
||||
GLIBC_DYNAMIC_LINKER64): Define.
|
||||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
|
||||
LINUX_DYNAMIC_LINKER64.
|
||||
* config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||||
(SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||||
* config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
|
||||
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
||||
LINUX_DYNAMIC_LINKER): Define.
|
||||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||||
(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
|
||||
* config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
|
||||
GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
|
||||
UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
|
||||
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
|
||||
(LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
|
||||
(LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
|
||||
(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
|
||||
* config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||||
* doc/invoke.texi (-muclibc): Remove caveat about supported
|
||||
targets.
|
||||
|
||||
2006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
|
||||
|
||||
* doc/cpp.texi (__TIMESTAMP__): Document.
|
||||
|
|
|
@ -455,7 +455,10 @@ case ${target} in
|
|||
tmake_file="t-slibgcc-elf-ver t-linux"
|
||||
case ${target} in
|
||||
*-*-*uclibc*)
|
||||
tm_defines="${tm_defines} UCLIBC_DEFAULT"
|
||||
tm_defines="${tm_defines} UCLIBC_DEFAULT=1"
|
||||
;;
|
||||
*)
|
||||
tm_defines="${tm_defines} UCLIBC_DEFAULT=0"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/* Definitions of target machine for GNU compiler
|
||||
for Alpha Linux-based GNU systems using ELF.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2006
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Richard Henderson.
|
||||
|
||||
This file is part of GCC.
|
||||
|
@ -27,7 +28,17 @@ Boston, MA 02110-1301, USA. */
|
|||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
|
||||
|
||||
#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
|
||||
#if UCLIBC_DEFAULT
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
|
||||
#else
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
|
||||
#endif
|
||||
#define LINUX_DYNAMIC_LINKER \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
|
||||
|
||||
#define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
|
||||
|
||||
#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
|
||||
%{O*:-O3} %{!O*:-O1} \
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Definitions of target machine for GNU compiler,
|
||||
for Alpha Linux-based GNU systems.
|
||||
Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005
|
||||
Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Richard Henderson.
|
||||
|
||||
|
@ -64,7 +64,7 @@ Boston, MA 02110-1301, USA. */
|
|||
|
||||
/* Determine whether the entire c99 runtime is present in the
|
||||
runtime library. */
|
||||
#define TARGET_C99_FUNCTIONS 1
|
||||
#define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
|
||||
|
||||
#define TARGET_POSIX_IO
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Definitions for GCC. Part of the machine description for CRIS.
|
||||
Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
|
||||
Contributed by Axis Communications. Written by Hans-Peter Nilsson.
|
||||
|
||||
This file is part of GCC.
|
||||
|
@ -76,6 +76,8 @@ Boston, MA 02110-1301, USA. */
|
|||
#undef CRIS_SUBTARGET_VERSION
|
||||
#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
|
||||
/* We need an -rpath-link to ld.so.1, and presumably to each directory
|
||||
specified with -B. */
|
||||
#undef CRIS_LINK_SUBTARGET_SPEC
|
||||
|
@ -84,7 +86,9 @@ Boston, MA 02110-1301, USA. */
|
|||
-rpath-link include/asm/../..%s\
|
||||
%{shared} %{static}\
|
||||
%{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
|
||||
%{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
|
||||
%{!shared:%{!static:\
|
||||
%{rdynamic:-export-dynamic}\
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}\
|
||||
%{!r:%{O2|O3: --gc-sections}}"
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Target macros for the FRV Linux port of GCC.
|
||||
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2006
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Red Hat Inc.
|
||||
|
||||
|
@ -36,12 +36,14 @@
|
|||
#define ENDFILE_SPEC \
|
||||
"%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \
|
||||
%{!shared: %{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
|
||||
%{static}}"
|
||||
|
||||
/* Support for compile-time default CPU. */
|
||||
|
@ -71,19 +73,4 @@ asm (TEXT_SECTION_ASM_OP);
|
|||
#undef Twrite
|
||||
#define Twrite __write
|
||||
|
||||
/* uClibc doesn't support many of the C90-reserved C99-defined math
|
||||
functions. Make sure we don't implicitly generate them unless C99
|
||||
support is explicitly requested. This will affect both frv-linux
|
||||
and frv-uclinux. Even though the glibc, the primary library for
|
||||
frv-linux, would enable better code to be generated with
|
||||
TARGET_C99_FUNCTIONS defined to 1, uClinux can be used as the
|
||||
library for frv-linux as well, and we'd better have that work
|
||||
correctly. Maybe we move this to a uclibc.h header in the future,
|
||||
and use that for frv-uclinux and frv-linux-uclibc? Define it here
|
||||
for now, such that we can still get exactly the same code out of
|
||||
both frv-linux-gcc and frv-uclinux-gcc, when feeding them the same
|
||||
preprocessed sources. */
|
||||
#undef TARGET_C99_FUNCTIONS
|
||||
#define TARGET_C99_FUNCTIONS 0
|
||||
|
||||
#endif /* __FRV_LINUX_H__ */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Definitions for Intel 386 running Linux-based GNU systems with ELF format.
|
||||
Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2004
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2004, 2005,
|
||||
2006 Free Software Foundation, Inc.
|
||||
Contributed by Eric Youngdale.
|
||||
Modified for stabs-in-ELF by H.J. Lu.
|
||||
|
||||
|
@ -100,12 +100,12 @@ Boston, MA 02110-1301, USA. */
|
|||
/* If ELF is the default format, we should not use /lib/elf. */
|
||||
|
||||
#define LINK_EMULATION "elf_i386"
|
||||
#define DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "link_emulation", LINK_EMULATION },\
|
||||
{ "dynamic_linker", DYNAMIC_LINKER }
|
||||
{ "dynamic_linker", LINUX_DYNAMIC_LINKER }
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Definitions for AMD x86-64 running Linux-based GNU systems with ELF format.
|
||||
Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001, 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
Contributed by Jan Hubicka <jh@suse.cz>, based on linux.h.
|
||||
|
||||
This file is part of GCC.
|
||||
|
@ -49,14 +49,17 @@ Boston, MA 02110-1301, USA. */
|
|||
When the -shared link option is used a final link is not being
|
||||
done. */
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
|
||||
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
|
||||
%{shared:-shared} \
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
|
||||
%{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
|
||||
%{m32:%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}} \
|
||||
%{!m32:%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}} \
|
||||
%{static:-static}}"
|
||||
|
||||
/* Similar to standard Linux, but adding -ffast-math support. */
|
||||
|
|
|
@ -37,13 +37,15 @@ do { \
|
|||
/* Define this for shared library support because it isn't in the main
|
||||
linux.h file. */
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{shared:-shared} \
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
|
||||
%{static:-static}}"
|
||||
|
||||
|
||||
|
|
|
@ -102,21 +102,28 @@ Boston, MA 02110-1301, USA. */
|
|||
/* Determine which dynamic linker to use depending on whether GLIBC or
|
||||
uClibc is the default C library and whether -muclibc or -mglibc has
|
||||
been passed to change the default. */
|
||||
#ifdef UCLIBC_DEFAULT
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
|
||||
#if UCLIBC_DEFAULT
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
|
||||
#else
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
|
||||
#endif
|
||||
|
||||
/* For most targets with a single dynamic linker the following
|
||||
definitions suffice; GLIBC_DYNAMIC_LINKER must be defined for each
|
||||
target using them. */
|
||||
/* For most targets the following definitions suffice;
|
||||
GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
|
||||
GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
|
||||
supporting both 32-bit and 64-bit compilation. */
|
||||
#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
|
||||
#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
|
||||
#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
|
||||
#define LINUX_DYNAMIC_LINKER \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
|
||||
#define LINUX_DYNAMIC_LINKER32 \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32)
|
||||
#define LINUX_DYNAMIC_LINKER64 \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
|
||||
|
||||
/* Determine whether the entire c99 runtime
|
||||
is present in the runtime library. */
|
||||
#define TARGET_C99_FUNCTIONS (TARGET_GLIBC)
|
||||
#define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
|
||||
|
||||
#define TARGET_POSIX_IO
|
||||
|
|
|
@ -21,9 +21,9 @@
|
|||
; 02110-1301, USA.
|
||||
|
||||
muclibc
|
||||
Target RejectNegative Report Mask(UCLIBC)
|
||||
Target RejectNegative Report Mask(UCLIBC) Var(linux_uclibc) Init(UCLIBC_DEFAULT ? OPTION_MASK_UCLIBC : 0)
|
||||
Use uClibc instead of GNU libc
|
||||
|
||||
mglibc
|
||||
Target RejectNegative Report InverseMask(UCLIBC, GLIBC)
|
||||
Target RejectNegative Report InverseMask(UCLIBC, GLIBC) Var(linux_uclibc) VarExists
|
||||
Use GNU libc instead of uClibc
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Definitions for Renesas M32R running Linux-based GNU systems using ELF.
|
||||
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
|
@ -59,6 +59,8 @@
|
|||
|
||||
/* If ELF is the default format, we should not use /lib/elf. */
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#if TARGET_LITTLE_ENDIAN
|
||||
#define LINK_SPEC "%(link_cpu) -m m32rlelf_linux %{shared:-shared} \
|
||||
|
@ -66,7 +68,7 @@
|
|||
%{!ibcs: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
|
||||
%{static:-static}}}"
|
||||
#else
|
||||
#define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \
|
||||
|
@ -74,7 +76,7 @@
|
|||
%{!ibcs: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
|
||||
%{static:-static}}}"
|
||||
#endif
|
||||
|
||||
|
|
|
@ -123,12 +123,14 @@ Boston, MA 02110-1301, USA. */
|
|||
|
||||
/* If ELF is the default format, we should not use /lib/elf. */
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "-m m68kelf %{shared} \
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
|
||||
%{!dynamic-linker*:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
|
||||
%{static}}"
|
||||
|
||||
/* For compatibility with linux/a.out */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Definitions for MIPS running Linux-based GNU systems with ELF format
|
||||
using n32/64 abi.
|
||||
Copyright 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
Copyright 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
|
@ -36,6 +36,13 @@ Boston, MA 02110-1301, USA. */
|
|||
%{!shared: %{pthread:-lpthread} \
|
||||
%{profile:-lc_p} %{!profile: -lc}}"
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
|
||||
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld.so.1"
|
||||
#define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1"
|
||||
#define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
|
||||
#define LINUX_DYNAMIC_LINKERN32 \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{mips4} \
|
||||
|
@ -47,9 +54,9 @@ Boston, MA 02110-1301, USA. */
|
|||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker: \
|
||||
%{mabi=n32: -dynamic-linker /lib32/ld.so.1} \
|
||||
%{mabi=64: -dynamic-linker /lib64/ld.so.1} \
|
||||
%{mabi=32: -dynamic-linker /lib/ld.so.1}}} \
|
||||
%{mabi=n32: -dynamic-linker " LINUX_DYNAMIC_LINKERN32 "} \
|
||||
%{mabi=64: -dynamic-linker " LINUX_DYNAMIC_LINKER64 "} \
|
||||
%{mabi=32: -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}} \
|
||||
%{static:-static}}} \
|
||||
%{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \
|
||||
%{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Definitions of taret machine for GNU compiler.
|
||||
Matsushita AM33/2.0
|
||||
Copyright 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
Copyright 2001, 2002, 2005, 2006 Free Software Foundation, Inc.
|
||||
Contributed by Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
This file is part of GCC.
|
||||
|
@ -33,11 +33,13 @@
|
|||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "%{Wa,*:%*}"
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
|
||||
%{static:-static}"
|
||||
|
||||
#undef PROCESSOR_DEFAULT
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/* Definitions for PA_RISC with ELF format
|
||||
Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
|
@ -44,13 +45,15 @@ Boston, MA 02110-1301, USA. */
|
|||
/* Define this for shared library support because it isn't in the main
|
||||
linux.h file. */
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{shared:-shared} \
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
|
||||
%{static:-static}}"
|
||||
|
||||
/* glibc's profiling functions don't need gcc to allocate counters. */
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
/* glibc has float and long double forms of math functions. */
|
||||
#undef TARGET_C99_FUNCTIONS
|
||||
#define TARGET_C99_FUNCTIONS 1
|
||||
#define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
|
||||
|
||||
#undef TARGET_OS_CPP_BUILTINS
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
|
|
|
@ -283,7 +283,7 @@ extern int dot_symbols;
|
|||
|
||||
/* glibc has float and long double forms of math functions. */
|
||||
#undef TARGET_C99_FUNCTIONS
|
||||
#define TARGET_C99_FUNCTIONS 1
|
||||
#define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
|
||||
|
||||
#undef TARGET_OS_CPP_BUILTINS
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
|
@ -336,13 +336,28 @@ extern int dot_symbols;
|
|||
#undef LINK_OS_DEFAULT_SPEC
|
||||
#define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
|
||||
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld64.so.1"
|
||||
#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
|
||||
#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
|
||||
#if UCLIBC_DEFAULT
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
|
||||
#else
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
|
||||
#endif
|
||||
#define LINUX_DYNAMIC_LINKER32 \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32)
|
||||
#define LINUX_DYNAMIC_LINKER64 \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
|
||||
|
||||
|
||||
#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}}"
|
||||
|
||||
#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}"
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}"
|
||||
|
||||
#undef TOC_SECTION_ASM_OP
|
||||
#define TOC_SECTION_ASM_OP \
|
||||
|
|
|
@ -909,9 +909,19 @@ extern int fixuplabelno;
|
|||
|
||||
#define LINK_START_LINUX_SPEC ""
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
|
||||
#if UCLIBC_DEFAULT
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
|
||||
#else
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
|
||||
#endif
|
||||
#define LINUX_DYNAMIC_LINKER \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
|
||||
|
||||
#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
|
||||
|
||||
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||
# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/* Definitions for Linux for S/390.
|
||||
Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
|
||||
Ulrich Weigand (uweigand@de.ibm.com).
|
||||
|
||||
|
@ -72,6 +73,9 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
|
|||
#define MULTILIB_DEFAULTS { "m31" }
|
||||
#endif
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
|
||||
#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC \
|
||||
"%{m31:-m elf_s390}%{m64:-m elf64_s390} \
|
||||
|
@ -81,8 +85,8 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
|
|||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker: \
|
||||
%{m31:-dynamic-linker /lib/ld.so.1} \
|
||||
%{m64:-dynamic-linker /lib/ld64.so.1}}}}"
|
||||
%{m31:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "} \
|
||||
%{m64:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}}"
|
||||
|
||||
|
||||
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Definitions for SH running Linux-based GNU systems using ELF
|
||||
Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005
|
||||
Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
|
||||
|
||||
|
@ -48,6 +48,8 @@ Boston, MA 02110-1301, USA. */
|
|||
|
||||
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
|
||||
#undef SUBTARGET_LINK_EMUL_SUFFIX
|
||||
#define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
|
||||
#undef SUBTARGET_LINK_SPEC
|
||||
|
@ -55,7 +57,7 @@ Boston, MA 02110-1301, USA. */
|
|||
"%{shared:-shared} \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
|
||||
%{static:-static}"
|
||||
|
||||
/* Output assembler code to STREAM to call the profiler. */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Definitions for SPARC running Linux-based GNU systems with ELF.
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Eddie C. Dost (ecd@skynet.be)
|
||||
|
||||
|
@ -121,6 +121,17 @@ Boston, MA 02110-1301, USA. */
|
|||
|
||||
/* If ELF is the default format, we should not use /lib/elf. */
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
|
||||
#if UCLIBC_DEFAULT
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
|
||||
#else
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
|
||||
#endif
|
||||
#define LINUX_DYNAMIC_LINKER \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
|
||||
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
|
||||
%{!mno-relax:%{!r:-relax}} \
|
||||
|
@ -128,7 +139,7 @@ Boston, MA 02110-1301, USA. */
|
|||
%{!ibcs: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
|
||||
%{static:-static}}}"
|
||||
|
||||
/* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
|
||||
|
@ -202,7 +213,7 @@ do { \
|
|||
|
||||
/* Determine whether the entire c99 runtime is present in the
|
||||
runtime library. */
|
||||
#define TARGET_C99_FUNCTIONS 1
|
||||
#define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
|
||||
|
||||
#define TARGET_POSIX_IO
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Definitions for 64-bit SPARC running Linux-based GNU systems with ELF.
|
||||
Copyright 1996, 1997, 1998, 2000, 2002, 2003, 2004, 2005
|
||||
Copyright 1996, 1997, 1998, 2000, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by David S. Miller (davem@caip.rutgers.edu)
|
||||
|
||||
|
@ -143,6 +143,20 @@ Boston, MA 02110-1301, USA. */
|
|||
|
||||
/* If ELF is the default format, we should not use /lib/elf. */
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
|
||||
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
|
||||
#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
|
||||
#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
|
||||
#if UCLIBC_DEFAULT
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
|
||||
#else
|
||||
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
|
||||
#endif
|
||||
#define LINUX_DYNAMIC_LINKER32 \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32)
|
||||
#define LINUX_DYNAMIC_LINKER64 \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
|
||||
|
||||
#ifdef SPARC_BI_ARCH
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
|
@ -151,13 +165,13 @@ Boston, MA 02110-1301, USA. */
|
|||
{ "link_arch64", LINK_ARCH64_SPEC }, \
|
||||
{ "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
|
||||
{ "link_arch", LINK_ARCH_SPEC },
|
||||
|
||||
|
||||
#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
|
||||
%{!shared: \
|
||||
%{!ibcs: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}} \
|
||||
%{static:-static}}} \
|
||||
"
|
||||
|
||||
|
@ -166,7 +180,7 @@ Boston, MA 02110-1301, USA. */
|
|||
%{!ibcs: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}} \
|
||||
%{static:-static}}} \
|
||||
"
|
||||
|
||||
|
@ -247,7 +261,7 @@ Boston, MA 02110-1301, USA. */
|
|||
%{!ibcs: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}} \
|
||||
%{static:-static}}} \
|
||||
%{mlittle-endian:-EL} \
|
||||
%{!mno-relax:%{!r:-relax}} \
|
||||
|
@ -330,7 +344,7 @@ do { \
|
|||
|
||||
/* Determine whether the entire c99 runtime is present in the
|
||||
runtime library. */
|
||||
#define TARGET_C99_FUNCTIONS 1
|
||||
#define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
|
||||
|
||||
#define TARGET_POSIX_IO
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Xtensa Linux configuration.
|
||||
Derived from the configuration for GCC for Intel i386 running Linux.
|
||||
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
|
@ -43,6 +43,8 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
|
|||
%{mlongcalls:--longcalls} \
|
||||
%{mno-longcalls:--no-longcalls}"
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC \
|
||||
"%{shared:-shared} \
|
||||
|
@ -50,7 +52,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
|
|||
%{!ibcs: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
|
||||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
|
||||
%{static:-static}}}"
|
||||
|
||||
#undef LOCAL_LABEL_PREFIX
|
||||
|
|
|
@ -8801,8 +8801,7 @@ on @samp{*-*-linux-*uclibc*} targets.
|
|||
@item -muclibc
|
||||
@opindex muclibc
|
||||
Use uClibc instead of the GNU C library. This is the default on
|
||||
@samp{*-*-linux-*uclibc*} targets. GCC currently only supports uClibc
|
||||
on ARM and 32-bit MIPS targets.
|
||||
@samp{*-*-linux-*uclibc*} targets.
|
||||
@end table
|
||||
|
||||
@node H8/300 Options
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (C) 2003,2004 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003,2004,2005,2006 Free Software Foundation, Inc.
|
||||
# Contributed by Kelley Cook, June 2004.
|
||||
# Original code from Neil Booth, May 2003.
|
||||
#
|
||||
|
@ -118,9 +118,18 @@ print ""
|
|||
|
||||
for (i = 0; i < n_opts; i++) {
|
||||
opt = opt_args("InverseMask", flags[i])
|
||||
if (opt ~ ",")
|
||||
print "#define TARGET_" nth_arg(1, opt) \
|
||||
" ((target_flags & MASK_" nth_arg(0, opt) ") == 0)"
|
||||
if (opt ~ ",") {
|
||||
vname = var_name(flags[i])
|
||||
macro = "OPTION_"
|
||||
mask = "OPTION_MASK_"
|
||||
if (vname == "") {
|
||||
vname = "target_flags"
|
||||
macro = "TARGET_"
|
||||
mask = "MASK_"
|
||||
}
|
||||
print "#define " macro nth_arg(1, opt) \
|
||||
" ((" vname " & " mask nth_arg(0, opt) ") == 0)"
|
||||
}
|
||||
}
|
||||
print ""
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2006-02-18 Joseph S. Myers <joseph@codesourcery.com>
|
||||
|
||||
* gcc.dg/glibc-uclibc-1.c, gcc.dg/glibc-uclibc-2.c: New tests.
|
||||
|
||||
2006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
|
||||
|
||||
* gcc.dg/cpp/undef3.c: New test.
|
||||
|
|
6
gcc/testsuite/gcc.dg/glibc-uclibc-1.c
Normal file
6
gcc/testsuite/gcc.dg/glibc-uclibc-1.c
Normal file
|
@ -0,0 +1,6 @@
|
|||
/* Test -mglibc and -muclibc not allowed together. */
|
||||
/* Origin: Joseph Myers <joseph@codesourcery.com> */
|
||||
/* { dg-do link { target *-*-linux* } } */
|
||||
/* { dg-options "-mglibc -muclibc" } */
|
||||
|
||||
/* { dg-error "-mglibc and -muclibc used together" "" { target *-*-* } 0 } */
|
6
gcc/testsuite/gcc.dg/glibc-uclibc-2.c
Normal file
6
gcc/testsuite/gcc.dg/glibc-uclibc-2.c
Normal file
|
@ -0,0 +1,6 @@
|
|||
/* Test -mglibc and -muclibc not allowed together. */
|
||||
/* Origin: Joseph Myers <joseph@codesourcery.com> */
|
||||
/* { dg-do link { target *-*-linux* } } */
|
||||
/* { dg-options "-muclibc -mglibc" } */
|
||||
|
||||
/* { dg-error "-mglibc and -muclibc used together" "" { target *-*-* } 0 } */
|
Loading…
Add table
Reference in a new issue