https://sourceware.org/bugzilla/show_bug.cgi?id=31850
Bug ID: 31850
Summary: aarch64: unnecessary GOT entries and relocations for
discarded references
Product: binutils
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: ld
Assignee: unassigned at sourceware dot org
Reporter: nsz at gcc dot gnu.org
Target Milestone: ---
there should be no GOT entries allocated and no dynamic relocations in the
following binary:
$ cat bug.ld
OUTPUT_ARCH(aarch64)
SECTIONS
{
/DISCARD/ : { *(.discard.*) }
. = 0x10000;
.text : { *(.text) }
. = 0x20000;
.got : { *(.got) }
}
$ cat bug3.s
.text
sym_local:
nop
.global sym_global
sym_global:
nop
.global sym_hidden
.hidden sym_hidden
sym_hidden:
nop
.section .discard.text,"ax"
discard_text:
adrp x0, :got:sym_local
adrp x0, :got:sym_global
// See bug 31847
// adrp x0, :got:sym_hidden
.section .discard.data,"a"
discard_data:
.xword sym_global
.xword sym_hidden
$ aarch64-none-linux-gnu-ld -shared -T bug.ld bug3.o
$ aarch64-none-linux-gnu-readelf -rW a.out
Relocation section '.rela.dyn' at offset 0x100a8 contains 4 entries:
Offset Info Type Symbol's Value
Symbol's Name + Addend
0000000000000000 0000000000000000 R_AARCH64_NONE 0
0000000000000000 0000000000000000 R_AARCH64_NONE 0
0000000000000000 0000000000000000 R_AARCH64_NONE 0
0000000000020010 0000000200000401 R_AARCH64_GLOB_DAT 0000000000010004
sym_global + 0
--
You are receiving this mail because:
You are on the CC list for the bug.