configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Thu, 9 Jun 2011 07:08:00 +0000 (07:08 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Thu, 9 Jun 2011 07:08:00 +0000 (07:08 +0000)
* configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
(gcc_cv_ld_hidden): Likewise.
* configure: Regenerate.
* config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
(ix86_stack_protect_fail): Mark unused.
(TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
* config/rs6000/rs6000.c (rs6000_assemble_visibility)
[TARGET_MACHO]: Don't define.
(TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
(TARGET_STACK_PROTECT_FAIL): Likewise.
(rs6000_stack_protect_fail): Mark unused.
* dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
USE_LINKONCE_INDIRECT.
Don't emit .hidden expicitly.

From-SVN: r174837

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/rs6000/rs6000.c
gcc/configure
gcc/configure.ac
gcc/dwarf2asm.c

index 1c9fa02276cab4155938229215022ad0ad9d0355..4f12db9e3e5c7db95e609bf5ca4352d24cc52807 100644 (file)
@@ -1,3 +1,20 @@
+2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
+       (gcc_cv_ld_hidden): Likewise.
+       * configure: Regenerate.
+       * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
+       (ix86_stack_protect_fail): Mark unused.
+       (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
+       * config/rs6000/rs6000.c (rs6000_assemble_visibility)
+       [TARGET_MACHO]: Don't define.
+       (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
+       (TARGET_STACK_PROTECT_FAIL): Likewise.
+       (rs6000_stack_protect_fail): Mark unused.
+       * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
+       USE_LINKONCE_INDIRECT.
+       Don't emit .hidden expicitly.
+
 2011-06-08  Andi Kleen  <ak@linux.intel.com>
 
        * varasm.c (get_section): Print location of other conflict
index db6a0d6e141db8bdfe39790b347e96af5039d9d0..0bcb2db11878a653601499bdf9a7ec3a71a365a1 100644 (file)
@@ -8725,7 +8725,7 @@ ix86_setup_frame_addresses (void)
 }
 \f
 #ifndef USE_HIDDEN_LINKONCE
-# if (defined(HAVE_GAS_HIDDEN) && (SUPPORTS_ONE_ONLY - 0)) || TARGET_MACHO
+# if defined(HAVE_GAS_HIDDEN) && (SUPPORTS_ONE_ONLY - 0)
 #  define USE_HIDDEN_LINKONCE 1
 # else
 #  define USE_HIDDEN_LINKONCE 0
@@ -32207,7 +32207,7 @@ ix86_mangle_type (const_tree type)
    __stack_chk_fail directly.  64-bit code doesn't need to setup any PIC
    register, so it is better to call __stack_chk_fail directly.  */
 
-static tree
+static tree ATTRIBUTE_UNUSED
 ix86_stack_protect_fail (void)
 {
   return TARGET_64BIT
@@ -35407,8 +35407,10 @@ ix86_autovectorize_vector_sizes (void)
 #undef TARGET_MANGLE_TYPE
 #define TARGET_MANGLE_TYPE ix86_mangle_type
 
+#ifndef TARGET_MACHO
 #undef TARGET_STACK_PROTECT_FAIL
 #define TARGET_STACK_PROTECT_FAIL ix86_stack_protect_fail
+#endif
 
 #undef TARGET_SUPPORTS_SPLIT_STACK
 #define TARGET_SUPPORTS_SPLIT_STACK ix86_supports_split_stack
index a21d85db7bbf31263b2b03f2699ef721c1071b18..4827c26f19d7901b501a6fdaf4a2c45da2207be2 100644 (file)
@@ -884,7 +884,7 @@ static bool legitimate_lo_sum_address_p (enum machine_mode, rtx, int);
 static struct machine_function * rs6000_init_machine_status (void);
 static bool rs6000_assemble_integer (rtx, unsigned int, int);
 static bool no_global_regs_above (int, bool);
-#ifdef HAVE_GAS_HIDDEN
+#if defined (HAVE_GAS_HIDDEN) && !defined (TARGET_MACHO)
 static void rs6000_assemble_visibility (tree, int);
 #endif
 static int rs6000_ra_ever_killed (void);
@@ -1349,7 +1349,7 @@ static const struct default_options rs6000_option_optimization_table[] =
 #undef TARGET_ASM_INTEGER
 #define TARGET_ASM_INTEGER rs6000_assemble_integer
 
-#ifdef HAVE_GAS_HIDDEN
+#if defined (HAVE_GAS_HIDDEN) && !defined (TARGET_MACHO)
 #undef TARGET_ASM_ASSEMBLE_VISIBILITY
 #define TARGET_ASM_ASSEMBLE_VISIBILITY rs6000_assemble_visibility
 #endif
@@ -1558,8 +1558,10 @@ static const struct default_options rs6000_option_optimization_table[] =
 #define TARGET_DEFAULT_TARGET_FLAGS \
   (TARGET_DEFAULT)
 
+#ifndef TARGET_MACHO
 #undef TARGET_STACK_PROTECT_FAIL
 #define TARGET_STACK_PROTECT_FAIL rs6000_stack_protect_fail
+#endif
 
 /* MPC604EUM 3.5.2 Weak Consistency between Multiple Processors
    The PowerPC architecture requires only weak consistency among
@@ -16390,7 +16392,7 @@ rs6000_assemble_integer (rtx x, unsigned int size, int aligned_p)
   return default_assemble_integer (x, size, aligned_p);
 }
 
-#ifdef HAVE_GAS_HIDDEN
+#if defined (HAVE_GAS_HIDDEN) && !defined (TARGET_MACHO)
 /* Emit an assembler directive to set symbol visibility for DECL to
    VISIBILITY_TYPE.  */
 
@@ -27323,7 +27325,7 @@ invalid_arg_for_unprototyped_fn (const_tree typelist, const_tree funcdecl, const
    calling __stack_chk_fail directly.  Otherwise it is better to call
    __stack_chk_fail directly.  */
 
-static tree
+static tree ATTRIBUTE_UNUSED
 rs6000_stack_protect_fail (void)
 {
   return (DEFAULT_ABI == ABI_V4 && TARGET_SECURE_PLT && flag_pic)
index a37351882804a794a1615964b4b19e4c255774ab..cc4843188d817d983850368d3080556ff512a06e 100755 (executable)
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_hidden" >&5
 $as_echo "$gcc_cv_as_hidden" >&6; }
 
+case "${target}" in
+  *-*-darwin*)
+    # Darwin as has some visibility support, though with a different syntax.
+    gcc_cv_as_hidden=yes
+    ;;
+esac
 
 # gnu_indirect_function type is an extension proposed at
 # http://groups.google/com/group/generic-abi/files. It allows dynamic runtime
@@ -21812,6 +21818,10 @@ else
     fi
   else
     case "${target}" in
+      *-*-darwin*)
+       # Darwin ld has some visibility support.
+       gcc_cv_ld_hidden=yes
+        ;;
       hppa64*-*-hpux* | ia64*-*-hpux*)
        gcc_cv_ld_hidden=yes
        ;;
index 5e414794a08964bed19cddd69f487c76ec11a2a5..70b3dbc6223f97999c2d043d3c22287fe8994c79 100644 (file)
@@ -2192,6 +2192,12 @@ EOF
     gcc_cv_as_hidden=yes
     ;;
 esac])
+case "${target}" in
+  *-*-darwin*)
+    # Darwin as has some visibility support, though with a different syntax.
+    gcc_cv_as_hidden=yes
+    ;;
+esac
 
 # gnu_indirect_function type is an extension proposed at
 # http://groups.google/com/group/generic-abi/files. It allows dynamic runtime
@@ -2291,6 +2297,10 @@ else
     fi
   else
     case "${target}" in
+      *-*-darwin*)
+       # Darwin ld has some visibility support.
+       gcc_cv_ld_hidden=yes
+        ;;
       hppa64*-*-hpux* | ia64*-*-hpux*)
        gcc_cv_ld_hidden=yes
        ;;
index a11470ff9af0312053235a517779c70739c1c2cd..4c1b6d4e66b29b60bd52078d83fd01e7b70286ba 100644 (file)
@@ -1,5 +1,5 @@
 /* Dwarf2 assembler output helper routines.
-   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
+   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -915,14 +915,13 @@ dw2_output_indirect_constant_1 (splay_tree_node node,
     {
       TREE_PUBLIC (decl) = 1;
       make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl));
+      if (USE_LINKONCE_INDIRECT)
+       DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN;
     }
   else
     TREE_STATIC (decl) = 1;
 
   sym_ref = gen_rtx_SYMBOL_REF (Pmode, sym);
-  sym = targetm.strip_name_encoding (sym);
-  if (TREE_PUBLIC (decl) && USE_LINKONCE_INDIRECT)
-    fprintf (asm_out_file, "\t.hidden %sDW.ref.%s\n", user_label_prefix, sym);
   assemble_variable (decl, 1, 1, 1);
   assemble_integer (sym_ref, POINTER_SIZE / BITS_PER_UNIT, POINTER_SIZE, 1);