invoke.texi (fwritable-relocated-rdata): Document new Cygwin/MinGW target option.
authorKai Tietz <ktietz@redhat.com>
Wed, 7 Mar 2012 09:35:15 +0000 (10:35 +0100)
committerKai Tietz <ktietz@gcc.gnu.org>
Wed, 7 Mar 2012 09:35:15 +0000 (10:35 +0100)
        * doc/invoke.texi (fwritable-relocated-rdata): Document
        new Cygwin/MinGW target option.
        * config/i386/winnt.c (i386_pe_unique_section): Ignore
        reloc if flag -fwritable-relocated-rdata is not set.
        (i386_pe_section_type_flags): Likewise.
        * config/i386/cygming.opt (fwritable-relocated-rdata):
        Add new flag variable flag_writable_rel_rdata.

From-SVN: r185027

gcc/ChangeLog
gcc/config/i386/cygming.opt
gcc/config/i386/winnt.c
gcc/doc/invoke.texi

index c98c983e21d7a5cb4ace64df9a631c6dea86b10e..b38b16d78ea6475c35f7ec7c696efd94c548d426 100644 (file)
@@ -1,3 +1,13 @@
+2012-03-07  Kai Tietz  <ktietz@redhat.com>
+
+       * doc/invoke.texi (fwritable-relocated-rdata): Document
+       new Cygwin/MinGW target option.
+       * config/i386/winnt.c (i386_pe_unique_section): Ignore
+       reloc if flag -fwritable-relocated-rdata is not set.
+       (i386_pe_section_type_flags): Likewise.
+       * config/i386/cygming.opt (fwritable-relocated-rdata):
+       Add new flag variable flag_writable_rel_rdata.
+
 2012-03-07  Richard Guenther  <rguenther@suse.de>
 
        * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
index 2d2352370398cea7645a4a46d158ecdfe769c490..bcee9d4dc9185b87d6bb4ce3465006d037658548 100644 (file)
@@ -53,4 +53,8 @@ Compile code that relies on Cygwin DLL wrappers to support C++ operator new/dele
 posix
 Driver
 
+fwritable-relocated-rdata
+Common Report Var(flag_writable_rel_rdata) Init(0)
+Put relocated read-only data into .data section.
+
 ; Retain blank line above
index 79cbb6b4a2823471f46cbd9eb7c86e05eef981d7..c1ed1c0436923791996314a4d9a3da6329a46b65 100644 (file)
@@ -395,6 +395,10 @@ i386_pe_unique_section (tree decl, int reloc)
   const char *name, *prefix;
   char *string;
 
+  /* Ignore RELOC, if we are allowed to put relocated
+     const data into read-only section.  */
+  if (!flag_writable_rel_rdata)
+    reloc = 0;
   name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
   name = i386_pe_strip_name_encoding_full (name);
 
@@ -441,6 +445,10 @@ i386_pe_section_type_flags (tree decl, const char *name, int reloc)
   unsigned int flags;
   unsigned int **slot;
 
+  /* Ignore RELOC, if we are allowed to put relocated
+     const data into read-only section.  */
+  if (!flag_writable_rel_rdata)
+    reloc = 0;
   /* The names we put in the hashtable will always be the unique
      versions given to us by the stringtable, so we can just use
      their addresses as the keys.  */
index d10156b1292a555406e0add87cf1fd4a524880b6..969fcbe594b41b4ae035c846a7ac7be82b4f2196 100644 (file)
@@ -14014,6 +14014,13 @@ set. This is necessary for binaries running in kernel mode of
 Microsoft Windows, as there the User32 API, which is used to set executable
 privileges, isn't available.
 
+@item -fwritable-relocated-rdata
+@opindex fno-writable-relocated-rdata
+This option is available for MinGW and Cygwin targets.  It specifies
+that relocated-data in read-only section is put into .data
+section.  This is a necessary for older runtimes not supporting
+modification of .rdata sections for pseudo-relocation.
+
 @item -mpe-aligned-commons
 @opindex mpe-aligned-commons
 This option is available for Cygwin and MinGW targets.  It