diff options
Diffstat (limited to 'gcc/config/linux.h')
-rw-r--r-- | gcc/config/linux.h | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/gcc/config/linux.h b/gcc/config/linux.h index e5707d39623..59e3e8538f9 100644 --- a/gcc/config/linux.h +++ b/gcc/config/linux.h @@ -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 |