diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 868406061e8b079f4915946f9e15eb8661630b52..4b349fadca5d97f9cfa98284e412fd1b6842b7d6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2011-11-02  Peter Bergner  <bergner@vnet.ibm.com>
+	    Iain Sandoe  <iains@gcc.gnu.org>
+
+	* config/rs6000/rs6000.c (USE_HIDDEN_LINKONCE): New define.
+	(get_ppc476_thunk_name): Use it.
+	(rs6000_code_end): Likewise.
+	(macho_branch_islands): Fix typo.
+
 2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
 	    Jason Merrill  <jason@redhat.com>
 
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 2430cdf9e659d6f80fb876d350f2dbe65d9d27ad..86fe85906e6d075277db41c2398bc66a3cd60079 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -25071,7 +25071,7 @@ macho_branch_islands (void)
 	  if (TARGET_LINK_STACK)
 	    {
 	      char name[32];
-	      get_ppc64_thunk_name (name);
+	      get_ppc476_thunk_name (name);
 	      strcat (tmp_buf, ":\n\tmflr r0\n\tbl ");
 	      strcat (tmp_buf, name);
 	      strcat (tmp_buf, "\n");
@@ -27949,6 +27949,12 @@ rs6000_save_toc_in_prologue_p (void)
   return (cfun && cfun->machine && cfun->machine->save_toc_in_prologue);
 }
 
+#ifdef HAVE_GAS_HIDDEN
+# define USE_HIDDEN_LINKONCE 1
+#else
+# define USE_HIDDEN_LINKONCE 0
+#endif
+
 /* Fills in the label name that should be used for a 476 link stack thunk.  */
 
 void
@@ -27956,7 +27962,7 @@ get_ppc476_thunk_name (char name[32])
 {
   gcc_assert (TARGET_LINK_STACK);
 
-  if (HAVE_GAS_HIDDEN)
+  if (USE_HIDDEN_LINKONCE)
     sprintf (name, "__ppc476.get_thunk");
   else
     ASM_GENERATE_INTERNAL_LABEL (name, "LPPC476_", 0);
@@ -27983,7 +27989,7 @@ rs6000_code_end (void)
   TREE_PUBLIC (decl) = 1;
   TREE_STATIC (decl) = 1;
 
-  if (HAVE_GAS_HIDDEN)
+  if (USE_HIDDEN_LINKONCE)
     {
       DECL_COMDAT_GROUP (decl) = DECL_ASSEMBLER_NAME (decl);
       targetm.asm_out.unique_section (decl, 0);