From f156dc00ae702bae07cf0fdc86e3a11e91d93181 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Mon, 7 May 2018 12:47:01 +0000 Subject: ia64: fix textrels on -rdynamic binaries Bug: https://gcc.gnu.org/PR84553 Bug: https://bugs.gentoo.org/566118 --- .../gcc/8.1.0/gentoo/95_all_ia64-TEXTREL.patch | 22 ++++++++++++++++++++++ src/patchsets/gcc/8.1.0/gentoo/README.history | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 src/patchsets/gcc/8.1.0/gentoo/95_all_ia64-TEXTREL.patch 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 -- cgit v1.2.3-65-gdbad