configure.ac (demangler_in_ld): Default to yes.
authorSandra Loosemore <sandra@codesourcery.com>
Sun, 24 Jul 2011 23:22:41 +0000 (19:22 -0400)
committerSandra Loosemore <sandra@gcc.gnu.org>
Sun, 24 Jul 2011 23:22:41 +0000 (19:22 -0400)
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

gcc/ChangeLog
gcc/collect2.c
gcc/configure
gcc/configure.ac

index 5913e219dd8d311dd99395f50da9a8268acb463d..207b097c6c86e0972d44621ac1aaa097b8b67cdd 100644 (file)
@@ -1,3 +1,13 @@
+2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * 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  <rth@redhat.com>
 
        * dwarf2cfi.c: Include basic-block.h.
index dadf82d34b143b8c25a6a39a89b4954494e2beaa..cd0fad792e28cb2c5fc60de94c398c1ae2714419 100644 (file)
@@ -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;
index e33fc1bfd4bd0cabf7f6040ba64ce84632245b1b..1a4c1b70448740aaeacc673092b24b48eb6a6ce6 100755 (executable)
@@ -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
 
 
index fb243272c79a5b2cd0940957c0039c242cd7f41b..9d7bb66be20babaa43b289a27fe8bbdf471b8914 100644 (file)
@@ -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