summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/patchsets/gcc/8.1.0/gentoo/95_all_ia64-TEXTREL.patch22
-rw-r--r--src/patchsets/gcc/8.1.0/gentoo/README.history2
2 files changed, 24 insertions, 0 deletions
diff --git a/src/patchsets/gcc/8.1.0/gentoo/95_all_ia64-TEXTREL.patch b/src/patchsets/gcc/8.1.0/gentoo/95_all_ia64-TEXTREL.patch
new file mode 100644
index 0000000000..706dbe5aa3
--- /dev/null
+++ b/src/patchsets/gcc/8.1.0/gentoo/95_all_ia64-TEXTREL.patch
@@ -0,0 +1,22 @@
+Fix textrels on -rdynamic binaries:
+Bug: https://gcc.gnu.org/PR84553
+Bug: https://bugs.gentoo.org/566118
+--- a/gcc/config/ia64/ia64.c
++++ a/gcc/config/ia64/ia64.c
+@@ -10838,12 +10838,14 @@ ia64_hpux_reloc_rw_mask (void)
+
+ /* For others, relax this so that relocations to local data goes in
+ read-only segments, but we still cannot allow global relocations
+- in read-only segments. */
++ in read-only segments. Except that use of -rdynamic at link time
++ may make any local data global, so we can't allow local data in
++ read-only segments either. */
+
+ static int
+ ia64_reloc_rw_mask (void)
+ {
+- return flag_pic ? 3 : 2;
++ return flag_pic ? 3 : 3;
+ }
+
+ /* Return the section to use for X. The only special thing we do here
diff --git a/src/patchsets/gcc/8.1.0/gentoo/README.history b/src/patchsets/gcc/8.1.0/gentoo/README.history
index 270225549c..862fe2ee9d 100644
--- a/src/patchsets/gcc/8.1.0/gentoo/README.history
+++ b/src/patchsets/gcc/8.1.0/gentoo/README.history
@@ -1,3 +1,5 @@
+1.3 TODO
+ + 95_all_ia64-TEXTREL.patch
1.2 06 May 2018
+ 93_all_arm-arch.patch
+ 94_all_mips-o32-asan.patch