aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
authorMatt Austern <austern@apple.com>2004-02-19 05:52:38 +0000
committerMatt Austern <austern@gcc.gnu.org>2004-02-19 05:52:38 +0000
commit328163dc0a1c6553bd8c40f91b21efb9b4351a80 (patch)
treed63bb9e0542c8e0ca57b196860b6d085ff143344 /gcc/gcc.c
parent23aa7aba4a93d068bc75ed006066005e82c25c90 (diff)
downloadgcc-328163dc0a1c6553bd8c40f91b21efb9b4351a80.zip
gcc-328163dc0a1c6553bd8c40f91b21efb9b4351a80.tar.gz
gcc-328163dc0a1c6553bd8c40f91b21efb9b4351a80.tar.bz2
gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined...
* gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC. (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is defined. Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc spec string. * doc/tm.texi (REAL_LIBGCC_SPEC): Document. From-SVN: r78072
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r--gcc/gcc.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 3403220..ebefeb8 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -345,7 +345,7 @@ static int execute (void);
static void alloc_args (void);
static void clear_args (void);
static void fatal_error (int);
-#ifdef ENABLE_SHARED_LIBGCC
+#if defined(ENABLE_SHARED_LIBGCC) && !defined(REAL_LIBGCC_SPEC)
static void init_gcc_specs (struct obstack *, const char *, const char *,
const char *);
#endif
@@ -598,7 +598,9 @@ proper position among the other output files. */
/* config.h can define LIBGCC_SPEC to override how and when libgcc.a is
included. */
#ifndef LIBGCC_SPEC
-#if defined(LINK_LIBGCC_SPECIAL) || defined(LINK_LIBGCC_SPECIAL_1)
+#if defined(REAL_LIBGCC_SPEC)
+#define LIBGCC_SPEC REAL_LIBGCC_SPEC
+#elif defined(LINK_LIBGCC_SPECIAL) || defined(LINK_LIBGCC_SPECIAL_1)
/* Have gcc do the search for libgcc.a. */
#define LIBGCC_SPEC "libgcc.a%s"
#else
@@ -1522,7 +1524,7 @@ static int processing_spec_function;
/* Add appropriate libgcc specs to OBSTACK, taking into account
various permutations of -shared-libgcc, -shared, and such. */
-#ifdef ENABLE_SHARED_LIBGCC
+#if defined(ENABLE_SHARED_LIBGCC) && !defined(REAL_LIBGCC_SPEC)
static void
init_gcc_specs (struct obstack *obstack, const char *shared_name,
const char *static_name, const char *eh_name)
@@ -1589,7 +1591,7 @@ init_spec (void)
next = sl;
}
-#ifdef ENABLE_SHARED_LIBGCC
+#if defined(ENABLE_SHARED_LIBGCC) && !defined(REAL_LIBGCC_SPEC)
/* ??? If neither -shared-libgcc nor --static-libgcc was
seen, then we should be making an educated guess. Some proposed
heuristics for ELF include: