From 81023100d3ae76c0a71d83247aa5b9d35732448f Mon Sep 17 00:00:00 2001 From: Mumit Khan Date: Sun, 1 Mar 1998 16:55:15 +0000 Subject: winnt.c (i386_pe_unique_section): Put read-only data in the text section unless READONLY_DATA_SECTION is defined. * config/i386/winnt.c (i386_pe_unique_section): Put read-only data in the text section unless READONLY_DATA_SECTION is defined. From-SVN: r18342 --- gcc/config/i386/winnt.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'gcc/config/i386') diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c index e8e5df3..8c35f39 100644 --- a/gcc/config/i386/winnt.c +++ b/gcc/config/i386/winnt.c @@ -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 #include "config.h" +#include #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); -- cgit v1.1