OSDN Git Service

gcc:
authorro@138bc75d-0d04-0410-961f-82ee72b054a4 <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 31 Mar 2010 09:19:20 +0000 (09:19 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:15:37 +0000 (14:15 +0900)
* config/sol2.c: Include output.h.
(solaris_assemble_visibility): New function.
* config/t-sol2 (sol2.o): Add output.h dependency.
* config/sol2-protos.h (solaris_assemble_visibility): Declare.
* config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
Redefine.

gcc/testsuite:
* g++.dg/ext/visibility/pragma-override1.C: Allow for .hidden in
assembler output on *-*-solaris2*.
* g++.dg/ext/visibility/pragma-override2.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157856 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/sol2.c
gcc/config/sol2.h
gcc/testsuite/ChangeLog

index c60dd5f..930e000 100644 (file)
@@ -1,3 +1,12 @@
+2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/sol2.c: Include output.h.
+       (solaris_assemble_visibility): New function.
+       * config/t-sol2 (sol2.o): Add output.h dependency.
+       * config/sol2-protos.h (solaris_assemble_visibility): Declare.
+       * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
+       Redefine.
+
 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
 
        PR target/43580
index 7c5f647..32fa4f3 100644 (file)
@@ -122,10 +122,8 @@ solaris_output_init_fini (FILE *file, tree decl)
    the visibility type VIS, which must not be VISIBILITY_DEFAULT.  */
 
 void
-solaris_assemble_visibility (tree decl ATTRIBUTE_UNUSED,
-                            int vis ATTRIBUTE_UNUSED)
+solaris_assemble_visibility (tree decl, int vis)
 {
-#ifdef HAVE_GAS_HIDDEN
   /* Sun as uses .symbolic for STV_PROTECTED.  STV_INTERNAL is marked as
      `currently reserved', but the linker treats it like STV_HIDDEN.  Sun
      Studio 12.1 cc emits .hidden instead.
@@ -148,6 +146,9 @@ solaris_assemble_visibility (tree decl ATTRIBUTE_UNUSED,
   name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
   type = visibility_types[vis];
 
+  /* .hidden dates back before Solaris 2.5, but .symbolic was only added in
+     Solaris 9 12/02.  */
+#ifdef HAVE_GAS_HIDDEN
   fprintf (asm_out_file, "\t.%s\t", type);
   assemble_name (asm_out_file, name);
   fprintf (asm_out_file, "\n");
index e95686e..98e54e6 100644 (file)
@@ -292,6 +292,11 @@ __enable_execute_stack (void *addr)                                        \
     }                                                                  \
   while (0)
 
+#ifndef USE_GAS
+#undef TARGET_ASM_ASSEMBLE_VISIBILITY
+#define TARGET_ASM_ASSEMBLE_VISIBILITY solaris_assemble_visibility
+#endif
+
 extern GTY(()) tree solaris_pending_aligns;
 extern GTY(()) tree solaris_pending_inits;
 extern GTY(()) tree solaris_pending_finis;
index 23abb90..3489d8a 100644 (file)
@@ -1,3 +1,9 @@
+2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * g++.dg/ext/visibility/pragma-override1.C: Allow for .hidden in
+       assembler output on *-*-solaris2*.
+       * g++.dg/ext/visibility/pragma-override2.C: Likewise.
+
 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
 
        PR debug/43557