| Issue |
107830
|
| Summary |
[BOLT] "_end" symbol is relocated incorrectly
|
| Labels |
|
| Assignees |
|
| Reporter |
ARG-NK
|
BOLT relocates the linker script symbol "_end" to a new area, thus __bss_start and _end does not represent the actual bss section size anymore.
example:
Output ( readelf -S -W --dyn-sym lib.so)
Bss section size = **0x2480d0**
[27] .bss NOBITS 00000000011f89c0 11f89c0 **2480d0** 00 WA 0 0 16
379: **00000000025cd690 0 NOTYPE GLOBAL DEFAULT ABS _end**
440: 0000000001440a90 0 NOTYPE GLOBAL DEFAULT 27 __end__
465: 00000000011f89c0 0 NOTYPE GLOBAL DEFAULT 27 __bss_start__
492: 0000000001440a90 0 NOTYPE GLOBAL DEFAULT 27 _bss_end__
565: **00000000011f89c0 0 NOTYPE GLOBAL DEFAULT 27 __bss_start**
644: 0000000001440a90 0 NOTYPE GLOBAL DEFAULT 27 __bss_end__
Bss section size = _end - __bss_start = 0x25cd690 - 0x11f89c0 = 0x13D 4CD0 (Incorrect size)
Bss section size = _bss_end__ - __bss_start = 0x1440a90 - 0x11f89c0 = 0x24 80D0 (correct size)
(Note: this change was introduced in this commit:
https://github.com/llvm/llvm-project/commit/3a0d894fafddace75f03fa7df25022cadbe2dffc)
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs