Issue |
149689
|
Summary |
lld gets "relocation R_HEX_B22_PCREL out of range"
|
Labels |
lld,
backend:Hexagon
|
Assignees |
androm3da
|
Reporter |
androm3da
|
When building zig test cases for `hexagon` with `lld`, we encounter range limitations in the relocations, see below for errors. The limited range of these relocations is expected behavior, but for users making large programs it's undesirable. `lld` can make extensions using thunks/trampolines, but those aren't yet supported.
Note also that #116798 improved `lld` by correcting the range calculation - it was previously too small. But that fix alone is not effective for very large programs.
Thanks @alexrp for the bug report.
```
error: ld.lld: /home/alexrp/Source/ziglang/zig/.zig-cache/o/ef6d73811ed43e51b7ff5085bd10310c/test.o:(function os.linux.test.test.user and group ids: .text+0x138d57c): relocation R_HEX_B22_PCREL out of range: -11927916 is not in [-8388608, 8388607]; references 'getauxval'
note: referenced by test.zig:107 (/home/alexrp/Source/ziglang/zig/lib/std/os/linux/test.zig:107)
note: defined in /home/alexrp/Source/ziglang/zig/.zig-cache/o/ef6d73811ed43e51b7ff5085bd10310c/test.o
error: ld.lld: /home/alexrp/Source/ziglang/zig/.zig-cache/o/ef6d73811ed43e51b7ff5085bd10310c/test.o:(function os.linux.test.test.user and group ids: .text+0x138d5ec): relocation R_HEX_B22_PCREL out of range: -11928028 is not in [-8388608, 8388607]; references 'getauxval'
note: referenced by test.zig:108 (/home/alexrp/Source/ziglang/zig/lib/std/os/linux/test.zig:108)
note: defined in /home/alexrp/Source/ziglang/zig/.zig-cache/o/ef6d73811ed43e51b7ff5085bd10310c/test.o
error: ld.lld: /home/alexrp/Source/ziglang/zig/.zig-cache/o/ef6d73811ed43e51b7ff5085bd10310c/test.o:(function os.linux.test.test.user and group ids: .text+0x138d65c): relocation R_HEX_B22_PCREL out of range: -11928140 is not in [-8388608, 8388607]; references 'getauxval'
note: referenced by test.zig:109 (/home/alexrp/Source/ziglang/zig/lib/std/os/linux/test.zig:109)
note: defined in /home/alexrp/Source/ziglang/zig/.zig-cache/o/ef6d73811ed43e51b7ff5085bd10310c/test.o
error: ld.lld: /home/alexrp/Source/ziglang/zig/.zig-cache/o/ef6d73811ed43e51b7ff5085bd10310c/test.o:(function os.linux.test.test.user and group ids: .text+0x138d6cc): relocation R_HEX_B22_PCREL out of range: -11928252 is not in [-8388608, 8388607]; references 'getauxval'
note: referenced by test.zig:110 (/home/alexrp/Source/ziglang/zig/lib/std/os/linux/test.zig:110)
note: defined in /home/alexrp/Source/ziglang/zig/.zig-cache/o/ef6d73811ed43e51b7ff5085bd10310c/test.o
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs