OSDN Git Service

* config/i386/winnt.c (i386_pe_unique_section): Put read-only
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 1 Mar 1998 16:55:15 +0000 (16:55 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 1 Mar 1998 16:55:15 +0000 (16:55 +0000)
        data in the text section unless READONLY_DATA_SECTION is defined.

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

gcc/ChangeLog
gcc/config/i386/winnt.c

index dddba35..8a261c5 100644 (file)
@@ -1,3 +1,8 @@
+Sun Mar  1 17:57:34 1998  Mumit Khan <khan@xraylith.wisc.edu>
+
+       * config/i386/winnt.c (i386_pe_unique_section): Put read-only
+       data in the text section unless READONLY_DATA_SECTION is defined.
+
 Sun Mar  1 17:48:46 1998  Jeffrey A Law  (law@cygnus.com)
 
        * c-parse.in (undeclared variable error): Tweak error message to
index e8e5df3..8c35f39 100644 (file)
@@ -1,6 +1,6 @@
 /* Subroutines for insn-output.c for Windows NT.
    Contributed by Douglas Rupp (drupp@cs.washington.edu)
-   Copyright (C) 1995 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -19,8 +19,8 @@ along with GNU CC; see the file COPYING.  If not, write to
 the Free Software Foundation, 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-#include <stdio.h>
 #include "config.h"
+#include <stdio.h>
 #include "rtl.h"
 #include "regs.h"
 #include "hard-reg-set.h"
@@ -78,11 +78,18 @@ i386_pe_unique_section (decl, reloc)
 
   /* The object is put in, for example, section .text$foo.
      The linker will then ultimately place them in .text
-     (everything from the $ on is stripped).  */
+     (everything from the $ on is stripped). Don't put
+     read-only data in .rdata section to avoid a PE linker 
+     bug when .rdata$* grouped sections are used in code
+     without a .rdata section.  */
   if (TREE_CODE (decl) == FUNCTION_DECL)
     prefix = ".text$";
   else if (DECL_READONLY_SECTION (decl, reloc))
+#ifdef READONLY_DATA_SECTION
     prefix = ".rdata$";
+#else
+    prefix = ".text$";
+#endif
   else
     prefix = ".data$";
   len = strlen (name) + strlen (prefix);