diff options
author | Sandra Loosemore <sandra@codesourcery.com> | 2011-07-24 19:22:41 -0400 |
---|---|---|
committer | Sandra Loosemore <sandra@gcc.gnu.org> | 2011-07-24 19:22:41 -0400 |
commit | df45fc34aa658555c252eee36a059d753d859610 (patch) | |
tree | ff68b0982803322915f57a7bfc275d261083dd9d /gcc/collect2.c | |
parent | 73645647f97029a05b08bdb5077d5da1592e088e (diff) | |
download | gcc-df45fc34aa658555c252eee36a059d753d859610.tar.gz |
configure.ac (demangler_in_ld): Default to yes.
2011-07-24 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* configure.ac (demangler_in_ld): Default to yes.
* configure: Regenerated.
* collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
--no-demangle options straight through to ld. When
HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
way that has the intended effect on Windows.
From-SVN: r176720
Diffstat (limited to 'gcc/collect2.c')
-rw-r--r-- | gcc/collect2.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/gcc/collect2.c b/gcc/collect2.c index dadf82d34b1..cd0fad792e2 100644 --- a/gcc/collect2.c +++ b/gcc/collect2.c @@ -1112,10 +1112,12 @@ main (int argc, char **argv) num_c_args = argc + 9; +#ifndef HAVE_LD_DEMANGLE no_demangle = !! getenv ("COLLECT_NO_DEMANGLE"); /* Suppress demangling by the real linker, which may be broken. */ - putenv (xstrdup ("COLLECT_NO_DEMANGLE=")); + putenv (xstrdup ("COLLECT_NO_DEMANGLE=1")); +#endif #if defined (COLLECT2_HOST_INITIALIZATION) /* Perform system dependent initialization, if necessary. */ @@ -1405,12 +1407,6 @@ main (int argc, char **argv) /* After the first file, put in the c++ rt0. */ first_file = 1; -#ifdef HAVE_LD_DEMANGLE - if (!demangle_flag && !no_demangle) - demangle_flag = "--demangle"; - if (demangle_flag) - *ld1++ = *ld2++ = demangle_flag; -#endif while ((arg = *++argv) != (char *) 0) { *ld1++ = *ld2++ = arg; @@ -1514,16 +1510,16 @@ main (int argc, char **argv) case '-': if (strcmp (arg, "--no-demangle") == 0) { - demangle_flag = arg; +#ifndef HAVE_LD_DEMANGLE no_demangle = 1; ld1--; ld2--; +#endif } else if (strncmp (arg, "--demangle", 10) == 0) { - demangle_flag = arg; - no_demangle = 0; #ifndef HAVE_LD_DEMANGLE + no_demangle = 0; if (arg[10] == '=') { enum demangling_styles style @@ -1533,9 +1529,9 @@ main (int argc, char **argv) else current_demangling_style = style; } -#endif ld1--; ld2--; +#endif } else if (strncmp (arg, "--sysroot=", 10) == 0) target_system_root = arg + 10; |