elf: Copy elf_gnu_osabi_retain only for relocatable link
Copy elf_gnu_osabi_retain from input only for relocatable link since SHF_GNU_RETAIN has no impact on non-relocatable outputs. bfd/ PR ld/27091 * elflink.c (elf_link_input_bfd): Copy elf_gnu_osabi_retain from input only for relocatable link. ld/ PR ld/27091 * testsuite/ld-elf/retain7.s: New file. * testsuite/ld-elf/retain7a.d: Likewise. * testsuite/ld-elf/retain7b.d: Likewise.
This commit is contained in:
parent
3fafa2e26e
commit
04f8967487
@ -1,3 +1,9 @@
|
||||
2020-12-18 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/27091
|
||||
* elflink.c (elf_link_input_bfd): Copy elf_gnu_osabi_retain
|
||||
from input only for relocatable link.
|
||||
|
||||
2020-12-18 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elf32-microblaze.c (dbg): Delete unused variable.
|
||||
|
||||
@ -10806,7 +10806,9 @@ elf_link_input_bfd (struct elf_final_link_info *flinfo, bfd *input_bfd)
|
||||
|| bed->elf_osabi == ELFOSABI_GNU
|
||||
|| bed->elf_osabi == ELFOSABI_FREEBSD)
|
||||
elf_tdata (output_bfd)->has_gnu_osabi
|
||||
|= elf_tdata (input_bfd)->has_gnu_osabi;
|
||||
|= (elf_tdata (input_bfd)->has_gnu_osabi
|
||||
& (bfd_link_relocatable (flinfo->info)
|
||||
? -1 : ~elf_gnu_osabi_retain));
|
||||
|
||||
/* Read the local symbols. */
|
||||
isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
|
||||
|
||||
@ -1,3 +1,10 @@
|
||||
2020-12-18 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/27091
|
||||
* testsuite/ld-elf/retain7.s: New file.
|
||||
* testsuite/ld-elf/retain7a.d: Likewise.
|
||||
* testsuite/ld-elf/retain7b.d: Likewise.
|
||||
|
||||
2020-12-16 Howard Chu <hyc@symas.com>
|
||||
H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
|
||||
5
ld/testsuite/ld-elf/retain7.s
Normal file
5
ld/testsuite/ld-elf/retain7.s
Normal file
@ -0,0 +1,5 @@
|
||||
.type _start,"function"
|
||||
.section .text,"axR",%progbits
|
||||
.global _start
|
||||
_start:
|
||||
.nop
|
||||
11
ld/testsuite/ld-elf/retain7a.d
Normal file
11
ld/testsuite/ld-elf/retain7a.d
Normal file
@ -0,0 +1,11 @@
|
||||
#name: SHF_GNU_RETAIN 7a
|
||||
#source: retain7.s
|
||||
#ld: -e _start --gc-sections
|
||||
#notarget: ![supports_gnu_osabi] ![check_gc_sections_available]
|
||||
#readelf: -h
|
||||
|
||||
#failif
|
||||
ELF Header:
|
||||
#...
|
||||
OS/ABI: UNIX - GNU
|
||||
#pass
|
||||
10
ld/testsuite/ld-elf/retain7b.d
Normal file
10
ld/testsuite/ld-elf/retain7b.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: SHF_GNU_RETAIN 7a
|
||||
#source: retain7.s
|
||||
#ld: -r
|
||||
#notarget: ![supports_gnu_osabi] ![check_gc_sections_available]
|
||||
#readelf: -h
|
||||
|
||||
ELF Header:
|
||||
#...
|
||||
OS/ABI: UNIX - GNU
|
||||
#pass
|
||||
Loading…
Reference in New Issue
Block a user