From df45fc34aa658555c252eee36a059d753d859610 Mon Sep 17 00:00:00 2001 From: Sandra Loosemore Date: Sun, 24 Jul 2011 19:22:41 -0400 Subject: [PATCH] configure.ac (demangler_in_ld): Default to yes. 2011-07-24 Sandra Loosemore 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 --- gcc/ChangeLog | 10 ++++++++++ gcc/collect2.c | 18 +++++++----------- gcc/configure | 2 +- gcc/configure.ac | 2 +- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5913e219dd8..207b097c6c8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2011-07-24 Sandra Loosemore + + * 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. + 2011-07-23 Richard Henderson * dwarf2cfi.c: Include basic-block.h. 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; diff --git a/gcc/configure b/gcc/configure index e33fc1bfd4b..1a4c1b70448 100755 --- a/gcc/configure +++ b/gcc/configure @@ -3413,7 +3413,7 @@ fi if test "${with_demangler_in_ld+set}" = set; then : withval=$with_demangler_in_ld; demangler_in_ld="$with_demangler_in_ld" else - demangler_in_ld=no + demangler_in_ld=yes fi diff --git a/gcc/configure.ac b/gcc/configure.ac index fb243272c79..9d7bb66be20 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -222,7 +222,7 @@ fi AC_ARG_WITH(demangler-in-ld, [AS_HELP_STRING([--with-demangler-in-ld], [try to use demangler in GNU ld])], demangler_in_ld="$with_demangler_in_ld", -demangler_in_ld=no) +demangler_in_ld=yes) # ---------------------- # Find default assembler -- 2.30.2