At least Darwin needs a different name for the tm_clone_table section.

I'm wondering what a target without named sections does for this - is there some reason it needs to be in a separate section (from data)...

... perhaps what I'm missing here will help understand why the clone tests fail on *x68*-darwin :-)

comments/OK for trunk?
Iain

gcc:

        * defaults.h (TM_CLONE_TABLE_SECTION_NAME): Provide default
        tm clone section name.
        * varasm.c (dump_tm_clone_pairs): Use TM_CLONE_TABLE_SECTION_NAME.
        * config/darwin.h (TM_CLONE_TABLE_SECTION_NAME): Define.

Index: gcc/defaults.h
===================================================================
--- gcc/defaults.h      (revision 181476)
+++ gcc/defaults.h      (working copy)
@@ -392,6 +392,14 @@ see the files COPYING3 and COPYING.RUNTIME respect
 #endif
 #endif
 
+/* If we have named sections, provide a name for the transaction clone
+   table section.  */
+#if defined (TARGET_ASM_NAMED_SECTION)
+#ifndef TM_CLONE_TABLE_SECTION_NAME
+#define TM_CLONE_TABLE_SECTION_NAME ".tm_clone_table"
+#endif
+#endif
+
 /* If we have named section and we support weak symbols, then use the
    .jcr section for recording java classes which need to be registered
    at program start-up time.  */
Index: gcc/varasm.c
===================================================================
--- gcc/varasm.c        (revision 181476)
+++ gcc/varasm.c        (working copy)
@@ -5961,7 +5961,9 @@ dump_tm_clone_pairs (VEC(tm_alias_pair,heap) *tm_a
 
       if (!switched)
        {
-         switch_to_section (get_named_section (NULL, ".tm_clone_table", 3));
+         switch_to_section (get_named_section (NULL, 
+                                               TM_CLONE_TABLE_SECTION_NAME,
+                                               3));
          assemble_align (POINTER_SIZE);
          switched = true;
        }
Index: gcc/config/darwin.h
===================================================================
--- gcc/config/darwin.h (revision 181476)
+++ gcc/config/darwin.h (working copy)
@@ -692,6 +680,10 @@ extern GTY(()) section * darwin_sections[NUM_DARWI
 #define TARGET_ASM_UNIQUE_SECTION darwin_unique_section
 #undef  TARGET_ASM_FUNCTION_RODATA_SECTION
 #define TARGET_ASM_FUNCTION_RODATA_SECTION default_no_function_rodata_section
+
+#undef  TM_CLONE_TABLE_SECTION_NAME
+#define TM_CLONE_TABLE_SECTION_NAME "__DATA,__tm_clone_table"
+
 #undef  TARGET_ASM_RELOC_RW_MASK
 #define TARGET_ASM_RELOC_RW_MASK machopic_reloc_rw_mask
 



Reply via email to