diff options
Diffstat (limited to 'src/patchsets/gcc/8.1.0/gentoo/95_all_ia64-TEXTREL.patch')
-rw-r--r-- | src/patchsets/gcc/8.1.0/gentoo/95_all_ia64-TEXTREL.patch | 22 |
1 files changed, 22 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 |