binutils-gdb/ld/testsuite
H.J. Lu eebad48efe elf: Strip unreferenced weak undefined symbols
Linker will resolve an undefined symbol only if it is referenced by
relocation.  Unreferenced weak undefined symbols serve no purpose.
Weak undefined symbols appear in the dynamic symbol table only when they
are referenced by dynamic relocation.  Mark symbols with relocation and
strip undefined weak symbols if they don't have relocation and aren't
in the dynamic symbol table.

bfd/

	PR ld/31652
	* elf-bfd.h (elf_link_hash_entry): Add has_reloc.
	* elf-vxworks.c (elf_vxworks_emit_relocs): Set has_reloc.
	* elflink.c (_bfd_elf_link_output_relocs): Likewise.
	(elf_link_output_extsym): Strip undefined weak symbols if they
	don't have relocation and aren't in the dynamic symbol table.

ld/

	PR ld/31652
	* testsuite/ld-elf/elf.exp: Run undefweak tests.
	* testsuite/ld-elf/undefweak-1.rd: New file.
	* testsuite/ld-elf/undefweak-1a.s: Likewise.
	* testsuite/ld-elf/undefweak-1b.s: Likewise.
	* testsuite/ld-x86-64/weakundef-1.nd: Likewise.
	* testsuite/ld-x86-64/weakundef-1a.s: Likewise.
	* testsuite/ld-x86-64/weakundef-1b.s: Likewise.
	* testsuite/ld-x86-64/x86-64.exp: Run undefweak tests.
2024-04-18 19:17:17 -07:00
..
config ld testsuite: Append NOSANITIZE_CFLAGS to CFLAGS_FOR_TARGET 2024-04-09 11:21:57 +09:30
ld-aarch64 Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-alpha Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-arc Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-arm Re: elf_backend_finish_dynamic_symbol returning false 2024-02-15 21:28:07 +10:30
ld-auto-import Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-avr Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-bootstrap Re: ld testsuite: Append NOSANITIZE_CFLAGS to CFLAGS_FOR_TARGET 2024-04-10 11:28:32 +09:30
ld-bpf Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-cdtest Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-checks Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-cris Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-crx Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-csky
ld-ctf Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-cygwin Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-d10v Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-discard Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-dynamic Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-elf elf: Strip unreferenced weak undefined symbols 2024-04-18 19:17:17 -07:00
ld-elfcomm Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-elfvers Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-elfweak Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-fastcall Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-frv Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-gc Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-h8300 Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-i386 Simplify readelf's RELR relocation display. 2024-04-16 13:17:35 +01:00
ld-ia64 Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-ifunc ld: Adjust x86 and x86-64 tests for -z mark-plt 2024-01-06 07:10:15 -08:00
ld-kvx Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-libs Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-linkonce Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-loongarch-elf LoongArch: ld: Move .got .got.plt before .data and protect .got with relro 2024-04-09 14:31:04 +08:00
ld-m68hc11 Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-m68k Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-mep Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-metag Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-mips-elf PR31458, FAIL: MIPS eh-frame 3 with --no-keep-memory 2024-04-02 17:29:58 +10:30
ld-misc Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-mmix Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-mn10300 Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-msp430-elf Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-nds32 Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-nios2
ld-or1k Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-pdp11 Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-pe Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-pie Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-plugin elf: Skip the archive if the symbol isn't referenced 2024-04-16 17:45:23 -07:00
ld-powerpc Simplify readelf's RELR relocation display. 2024-04-16 13:17:35 +01:00
ld-pru
ld-riscv-elf RISC-V: Removed privileged spec 1.9.1 support in assembler. 2024-03-28 09:26:13 +08:00
ld-s12z Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-s390 s390: Avoid reloc overflows on undefined weak symbols 2024-02-27 14:07:17 +01:00
ld-scripts Fix implementation of SUBALIGN. 2024-02-28 16:36:37 +00:00
ld-selective Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-sframe Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-sh Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-shared Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-size Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-sparc Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-spu Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-srec Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-tic6x Make is_relocatable_executable only affect dynamic section syms 2024-02-24 11:53:03 +10:30
ld-tilegx Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-tilepro Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-undefined Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-unique Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-v850 Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-vax-elf Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-visium Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-vsb Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-vxworks Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-x86-64 elf: Strip unreferenced weak undefined symbols 2024-04-18 19:17:17 -07:00
ld-xstormy16 Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-xtensa Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-z8k Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ld-z80 Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
lib Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-9303