https://sourceware.org/bugzilla/show_bug.cgi?id=16548
Bug ID: 16548 Summary: Ld does not handle arbitrary .plt/.got displacements Product: binutils Version: 2.25 (HEAD) Status: NEW Severity: normal Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: y.gribov at samsung dot com Currently BFD linker generates 3-word wide .plt entries for ARM targets: 0000825c <.plt>: ... 8270: e28fc600 add ip, pc, #0, 12 8274: e28cca08 add ip, ip, #8, 20 ; 0x8000 8278: e5bcf3e8 ldr pc, [ip, #1000]! ; 0x3e8 827c: e28fc600 add ip, pc, #0, 12 8280: e28cca08 add ip, ip, #8, 20 ; 0x8000 8284: e5bcf3e0 ldr pc, [ip, #992]! ; 0x3e0 These entries are only able to initialize first 28 bits of .plt/.got displacement. If .text and .rodata are bigger than 2 ^ 28 bytes (i.e. 256M) this may cause linker errors due to assert in elf32_arm_populate_plt_entry (in bfd/elf32-arm.c): BFD_ASSERT ((got_displacement & 0xf0000000) == 0); -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils