From 463d5aa029d128de82fac1bfd85bd10376673808 Mon Sep 17 00:00:00 2001
From: Kai Tietz <ktietz@redhat.com>
Date: Wed, 4 Jul 2012 13:22:02 +0200
Subject: [PATCH] winnt.c (i386_pe_reloc_rw_mask): New function.

        * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function.
        * config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add
        prototype.
        * config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define
        as i386_pe_reloc_rw_mask.

From-SVN: r189254
---
 gcc/ChangeLog                 | 8 ++++++++
 gcc/config/i386/cygming.h     | 5 +++++
 gcc/config/i386/i386-protos.h | 2 ++
 gcc/config/i386/winnt.c       | 8 ++++++++
 4 files changed, 23 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ef3b9c40455d..b5110a6aa531 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2012-07-04  Kai Tietz  <ktietz@redhat.com>
+
+	* config/i386/winnt.c (i386_pe_reloc_rw_mask): New function.
+	* config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add
+	prototype.
+	* config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define
+	as i386_pe_reloc_rw_mask.
+
 2012-07-04  Richard Guenther  <rguenther@suse.de>
 
 	* tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h
index 2eccda9d81f2..b5f89c46e125 100644
--- a/gcc/config/i386/cygming.h
+++ b/gcc/config/i386/cygming.h
@@ -225,6 +225,11 @@ do {									\
 
 #define SUBTARGET_ENCODE_SECTION_INFO  i386_pe_encode_section_info
 
+/* Local and global relocs can be placed always into readonly memory
+   for PE-COFF targets.  */
+#undef TARGET_ASM_RELOC_RW_MASK
+#define TARGET_ASM_RELOC_RW_MASK i386_pe_reloc_rw_mask
+
 /* Output a common block.  */
 #undef ASM_OUTPUT_ALIGNED_DECL_COMMON
 #define ASM_OUTPUT_ALIGNED_DECL_COMMON \
diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h
index 581b25c51998..1d3aecc6a663 100644
--- a/gcc/config/i386/i386-protos.h
+++ b/gcc/config/i386/i386-protos.h
@@ -264,6 +264,8 @@ extern void i386_pe_adjust_class_at_definition (tree);
 extern bool i386_pe_type_dllimport_p (tree);
 extern bool i386_pe_type_dllexport_p (tree);
 
+extern int i386_pe_reloc_rw_mask (void);
+
 extern rtx maybe_get_pool_constant (rtx);
 
 extern char internal_label_prefix[16];
diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c
index 10cdee800223..5b71ccb0e13e 100644
--- a/gcc/config/i386/winnt.c
+++ b/gcc/config/i386/winnt.c
@@ -421,6 +421,14 @@ i386_pe_unique_section (tree decl, int reloc)
   DECL_SECTION_NAME (decl) = build_string (len, string);
 }
 
+/* Local and global relocs can be placed always into readonly memory for
+   memory for PE-COFF targets.  */
+int
+i386_pe_reloc_rw_mask (void)
+{
+  return 0;
+}
+
 /* Select a set of attributes for section NAME based on the properties
    of DECL and whether or not RELOC indicates that DECL's initializer
    might contain runtime relocations.
-- 
GitLab