Fix definition of UNIQUE_SECTION so that zero initialised data is placed
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 22 Jan 2000 19:49:21 +0000 (19:49 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 22 Jan 2000 19:49:21 +0000 (19:49 +0000)
into .data.

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

gcc/ChangeLog
gcc/config/elfos.h
gcc/config/i386/interix.c
gcc/config/i386/winnt.c
gcc/config/mips/elf.h
gcc/config/mips/elf64.h

index 1b58f09..cd0077c 100644 (file)
@@ -1,3 +1,13 @@
+2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
+
+        * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
+        section naming to that prior to 2000-01-07 patch.
+       * config/mips/elf.h (UNIQUE_SECTION): Ditto.
+       * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
+       * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
+       * config/i386/interix.c (UNIQUE_SECTION): Ditto.
+       * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
+
 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
 
        * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
index 8476c2b..1021954 100644 (file)
@@ -359,23 +359,22 @@ dtors_section ()                                          \
       const char *name;                                                \
       char *string;                                            \
       const char *prefix;                                      \
-      static const char *prefixes[4][2] =                      \
+      static const char *prefixes[/*4*/3][2] =                 \
       {                                                                \
        { ".text.",   ".gnu.linkonce.t." },                     \
        { ".rodata.", ".gnu.linkonce.r." },                     \
-       { ".data.",   ".gnu.linkonce.d." },                     \
+       { ".data.",   ".gnu.linkonce.d." }                      \
        /* Do not generate unique sections for uninitialised    \
           data since we do not have support for this in the    \
           linker scripts yet...                                \
-        { ".bss.",    ".gnu.linkonce.b." }  */                 \
-       { "", "" }                                              \
+        ,{ ".bss.",    ".gnu.linkonce.b." }  */                        \
       };                                                       \
                                                                \
       if (TREE_CODE (DECL) == FUNCTION_DECL)                   \
        sec = 0;                                                \
-      else if (DECL_INITIAL (DECL) == 0                                \
+  /*  else if (DECL_INITIAL (DECL) == 0                                \
               || DECL_INITIAL (DECL) == error_mark_node)       \
-       sec = 3;                                                \
+        sec =  3; */                                           \
       else if (DECL_READONLY_SECTION (DECL, RELOC))            \
        sec = 1;                                                \
       else                                                     \
index 4f4f823..bec9287 100644 (file)
@@ -93,9 +93,9 @@ i386_pe_unique_section (decl, reloc)
      without a .rdata section.  */
   if (TREE_CODE (decl) == FUNCTION_DECL)
     prefix = ".text$";
-  else if (DECL_INITIAL (decl) == 0
+/* else if (DECL_INITIAL (decl) == 0
           || DECL_INITIAL (decl) == error_mark_node)
-    prefix = "";
+    prefix = ".bss"; */
   else if (DECL_READONLY_SECTION (decl, reloc))
 #ifdef READONLY_DATA_SECTION
     prefix = ".rdata$";
index 13701e2..32ab783 100644 (file)
@@ -480,9 +480,9 @@ i386_pe_unique_section (decl, reloc)
      without a .rdata section.  */
   if (TREE_CODE (decl) == FUNCTION_DECL)
     prefix = ".text$";
-  else if (DECL_INITIAL (decl) == 0
+/* else if (DECL_INITIAL (decl) == 0
           || DECL_INITIAL (decl) == error_mark_node)
-    prefix = "";
+    prefix = ".bss";  */
   else if (DECL_READONLY_SECTION (decl, reloc))
 #ifdef READONLY_DATA_SECTION
     prefix = ".rdata$";
index b265295..cd115c0 100644 (file)
@@ -212,12 +212,11 @@ do {                                                                       \
 do {                                                                      \
   int len, size, sec;                                                     \
   char *name, *string, *prefix;                                                   \
-  static char *prefixes[5][2] = {                                         \
+  static char *prefixes[4][2] = {                                         \
     { ".text.", ".gnu.linkonce.t." },                                     \
     { ".rodata.", ".gnu.linkonce.r." },                                           \
     { ".data.", ".gnu.linkonce.d." },                                     \
-    { ".sdata.", ".gnu.linkonce.s." },                                    \
-    { "", "" }                                                            \
+    { ".sdata.", ".gnu.linkonce.s." }                                     \
   };                                                                      \
                                                                           \
   name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL));                 \
@@ -229,7 +228,7 @@ do {                                                                           \
     sec = 0;                                                              \
   else if (DECL_INITIAL (DECL) == 0                                       \
            || DECL_INITIAL (DECL) == error_mark_node)                     \
-    sec = 4;                                                              \
+    sec = 2;                                                              \
   else if ((TARGET_EMBEDDED_PIC || TARGET_MIPS16)                         \
       && TREE_CODE (decl) == STRING_CST                                           \
       && !flag_writable_strings)                                          \
index fe5f147..25c88f6 100644 (file)
@@ -193,12 +193,11 @@ do {                                                                       \
 do {                                                                      \
   int len, size, sec;                                                     \
   char *name, *string, *prefix;                                                   \
-  static char *prefixes[5][2] = {                                         \
+  static char *prefixes[4][2] = {                                         \
     { ".text.", ".gnu.linkonce.t." },                                     \
     { ".rodata.", ".gnu.linkonce.r." },                                           \
     { ".data.", ".gnu.linkonce.d." },                                     \
-    { ".sdata.", ".gnu.linkonce.s." },                                    \
-    { "", "" }                                                            \
+    { ".sdata.", ".gnu.linkonce.s." }                                     \
   };                                                                      \
                                                                           \
   name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL));                 \
@@ -210,7 +209,7 @@ do {                                                                           \
     sec = 0;                                                              \
   else if (DECL_INITIAL (DECL) == 0                                       \
            || DECL_INITIAL (DECL) == error_mark_node)                     \
-    sec = 4;                                                              \
+    sec = 2;                                                              \
   else if ((TARGET_EMBEDDED_PIC || TARGET_MIPS16)                         \
       && TREE_CODE (decl) == STRING_CST                                           \
       && !flag_writable_strings)                                          \