blob: 3d4a36f5d1df9d8ac0a65c7210771cbe03af275a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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
|