summaryrefslogtreecommitdiff
path: root/debian/patches/pr90714.diff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2019-11-18 15:53:29 +0300
committerIgor Pashev <pashev.igor@gmail.com>2019-11-18 15:53:29 +0300
commit8f6c4b0033c72f8ac14694c419a99458339dd6a9 (patch)
tree06c106e622a58100aa85a381b9b65d222b076df4 /debian/patches/pr90714.diff
parent42156b5190f4fa150e1fab6777eb81e69d4db8c9 (diff)
downloadgcc-9-debian.tar.gz
Import gcc-9 (9.2.1-19)debian/9.2.1-19debian
Diffstat (limited to 'debian/patches/pr90714.diff')
-rw-r--r--debian/patches/pr90714.diff32
1 files changed, 32 insertions, 0 deletions
diff --git a/debian/patches/pr90714.diff b/debian/patches/pr90714.diff
new file mode 100644
index 0000000..3d4a36f
--- /dev/null
+++ b/debian/patches/pr90714.diff
@@ -0,0 +1,32 @@
+# DP: ia64: relocation truncated to fit: GPREL22
+
+The symbol is exposed to C by dso_handle.h, and since it's a single
+8-byte pointer, it is just within the threshold for being in the small
+data (or bss) section, so code accessing it will use GP-relative
+addressing. Therefore we must put it in .sdata/.sbss in case our other
+data sections grow too big and we overflow the 22-bit relocation.
+
+libgcc/
+ * config/ia64/crtbegin.S (__dso_handle): Put in .sdata/.sbss
+ rather than .data/.bss so it can be accessed via gp-relative
+ addressing.
+---
+ libgcc/config/ia64/crtbegin.S | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/src/libgcc/config/ia64/crtbegin.S
++++ b/src/libgcc/config/ia64/crtbegin.S
+@@ -45,11 +45,11 @@ dtor_ptr:
+ .type __dso_handle,@object
+ .size __dso_handle,8
+ #ifdef SHARED
+- .section .data
++ .section .sdata
+ __dso_handle:
+ data8 __dso_handle
+ #else
+- .section .bss
++ .section .sbss
+ .align 8
+ __dso_handle:
+ .skip 8