rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit lglobl if not weak.
authorDavid Edelsohn <dje.gcc@gmail.com>
Wed, 4 Sep 2013 21:24:56 +0000 (21:24 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Wed, 4 Sep 2013 21:24:56 +0000 (17:24 -0400)
        * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
        lglobl if not weak.

From-SVN: r202264

gcc/ChangeLog
gcc/config/rs6000/rs6000.h

index 286aed5..64e3421 100644 (file)
@@ -1,3 +1,8 @@
+2013-09-04  David Edelsohn  <dje.gcc@gmail.com>
+
+       * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
+       lglobl if not weak.
+
 2013-09-04  Easwaran Raman  <eraman@google.com>
 
        PR middle-end/57370
index 5acedfc..a5a7a85 100644 (file)
@@ -2139,12 +2139,15 @@ extern int toc_initialized;
            }                                                           \
          else if (TARGET_XCOFF)                                        \
            {                                                           \
-             fputs ("\t.lglobl\t.", FILE);                             \
-             RS6000_OUTPUT_BASENAME (FILE, alias);                     \
-             putc ('\n', FILE);                                        \
-             fputs ("\t.lglobl\t", FILE);                              \
-             RS6000_OUTPUT_BASENAME (FILE, alias);                     \
-             putc ('\n', FILE);                                        \
+             if (!RS6000_WEAK || !DECL_WEAK (DECL))                    \
+               {                                                       \
+                 fputs ("\t.lglobl\t.", FILE);                         \
+                 RS6000_OUTPUT_BASENAME (FILE, alias);                 \
+                 putc ('\n', FILE);                                    \
+                 fputs ("\t.lglobl\t", FILE);                          \
+                 RS6000_OUTPUT_BASENAME (FILE, alias);                 \
+                 putc ('\n', FILE);                                    \
+               }                                                       \
            }                                                           \
          fputs ("\t.set\t.", FILE);                                    \
          RS6000_OUTPUT_BASENAME (FILE, alias);                         \