binutils-gdb/ld/testsuite
Alan Modra 165f707ac8 PR22471, undefined reference to linker-defined symbols
This patch processes linker script assignment statements before ld
opens DT_NEEDED libraries, in order to define symbols like __bss_start
that might also be defined by a library, falsely triggering an error
about "DSO missing from command line".

The initial value won't be correct when assigning a symbol from dot,
and I make no attempt to handle all expressions.  For example, an
assignment like "_start_foo = ADDR (.foo)" isn't valid until sections
are laid out, so won't define _start_foo early.  What's here should be
enough for most common scripts, and hopefully won't perturb fragile
scripts.

bfd/
	PR 22471
	* elflink.c (_bfd_elf_merge_symbol): Allow weak symbols to override
	early passes over linker script symbols.
	* linker.c (_bfd_generic_link_add_one_symbol): Allow symbols to
	override early passes over linker script symbols.  Clear ldscript_def
	on symbol definitions.
ld/
	PR 22471
	* ldexp.c (struct definedness_hash_entry): Delete "by_script".  Make
	"iteration" an 8-bit field, and update mask in all uses.
	(definedness_newfunc): Don't init "by_script".
	(update_definedness): Test ldscript_def rather than by_script.
	(is_sym_value): Likewise.
	(fold_name <DEFINED>): Return a result for first phase.  Test
	ldscript_def.
	(fold_name <NAME>): Return a result for first phase.
	* ldlang.c (open_input_bfds): Process all assignments, not just
	defsym.
	(lang_process): Increment lang_statement_iteration before
	open_input_bfds.
	* testsuite/ld-mips-elf/tlsdyn-o32-1.d: Adjust for larger .dynsym.
	* testsuite/ld-mips-elf/tlsdyn-o32-1.got: Likewise.
	* testsuite/ld-mips-elf/tlsdyn-o32-2.d: Likewise.
	* testsuite/ld-mips-elf/tlsdyn-o32-2.got: Likewise.
	* testsuite/ld-mips-elf/tlsdyn-o32-3.d: Likewise.
	* testsuite/ld-mips-elf/tlsdyn-o32-3.got: Likewise.
2017-11-28 22:57:00 +10:30
..
config Fix handling of GNU Property notes that are not in a GNU NOTE PROPERTY section. 2017-11-20 15:32:55 +00:00
ld-aarch64 readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ld-alpha ld: Remove PF_X from PT_PHDR segment 2017-11-12 17:04:03 -08:00
ld-arc [ARC] Improve printing of pc-relative instructions. 2017-11-21 14:56:16 +01:00
ld-arm readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ld-auto-import Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-avr Add support to readelf and objdump for following links to separate debug information files. 2017-11-15 11:34:03 +00:00
ld-bootstrap Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-cdtest Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-checks ld-checks: tweak overflow checks. 2017-03-15 10:23:19 +01:00
ld-cris readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ld-crx Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-cygwin Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-d10v Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-discard Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-elf Update PR ld/21562 tests for underscore targets 2017-11-24 08:58:56 -08:00
ld-elfcomm Fix spelling typos. 2017-07-18 16:58:14 +01:00
ld-elfvers Add -rpath-link to various tests 2017-01-03 12:36:02 +10:30
ld-elfvsb Support different ld --hash-style in the ld testsuite 2017-08-07 22:10:51 +09:30
ld-elfweak Add -rpath-link to various tests 2017-01-03 12:36:02 +10:30
ld-fastcall Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-frv More support for ld --hash-style in the ld testsuite 2017-08-08 07:22:36 +09:30
ld-gc Remove pr19161 test hppa xfail 2017-08-23 08:58:42 +09:30
ld-h8300 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-i386 readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ld-ia64 ld: Remove PF_X from PT_PHDR segment 2017-11-12 17:04:03 -08:00
ld-ifunc ld-ifunc non-PIC tests 2017-11-14 19:53:35 +10:30
ld-libs Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-linkonce Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-m68hc11 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-m68k readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ld-mep Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-metag Support different ld --hash-style in the ld testsuite 2017-08-07 22:10:51 +09:30
ld-mips-elf PR22471, undefined reference to linker-defined symbols 2017-11-28 22:57:00 +10:30
ld-misc Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-mmix Make sure that undefined symbols added to the linker command line via the -u option appear in the output executable, if they have not been resolved. 2017-10-23 18:16:49 +01:00
ld-mn10300 Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-msp430-elf Improve MSP430 section placement. 2017-08-29 17:18:43 +01:00
ld-nds32 Fix address violation when disassembling a corrupt binary. 2017-06-14 16:50:03 +01:00
ld-nios2 Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-pe pe/coff: handle weak defined symbol for gc-sections. 2017-04-07 10:03:17 +02:00
ld-pie Don't run C tests in ld testsuite unless we have a C compiler 2017-01-03 11:47:47 +10:30
ld-plugin ld: Set non_ir_ref_regular on symbols referenced in regular objects 2017-11-28 03:48:44 -08:00
ld-powerpc ld: Remove PF_X from PT_PHDR segment 2017-11-12 17:04:03 -08:00
ld-pru PRU LD Port 2016-12-31 12:04:11 +10:30
ld-riscv-elf testsuite/ld-riscv-elf/ld-riscv-elf.exp: Fix typo for istarget. 2017-10-25 00:45:05 +02:00
ld-s390 ld: Remove PF_X from PT_PHDR segment 2017-11-12 17:04:03 -08:00
ld-scripts ld: Don't allow '~' as the first char in symbol name 2017-10-09 04:17:24 -07:00
ld-selective Support single digit GCC version 2017-07-11 08:41:22 -07:00
ld-sh readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ld-shared Support different ld --hash-style in the ld testsuite 2017-08-07 22:10:51 +09:30
ld-size Pass $NOPIE_LDFLAGS size tests 2017-06-21 14:45:57 -07:00
ld-sparc ld: Remove PF_X from PT_PHDR segment 2017-11-12 17:04:03 -08:00
ld-spu Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-srec Fix link time warning message when running the srec linker tests. 2017-10-09 15:32:09 +01:00
ld-tic6x readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ld-tilegx Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-tilepro Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-undefined LD/testsuite: Fix undefined symbol tests for MIPS and S+core targets 2017-09-26 12:09:50 +01:00
ld-unique Stop the v850 linker from converting to other output formats whilst linking. 2017-11-21 14:15:51 +00:00
ld-v850 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-vax-elf readelf ngettext fixes 2017-11-07 17:01:16 +10:30
ld-versados Run more ld tests when not native 2017-01-02 23:48:08 +10:30
ld-visium Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-vxworks Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-x86-64 x86-64: always use unsigned 32-bit reloc for 32-bit addressing w/o base reg 2017-11-23 11:02:30 +01:00
ld-xc16x Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-xstormy16 Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
ld-xtensa Support different ld --hash-style in the ld testsuite 2017-08-07 22:10:51 +09:30
ld-z8k Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
lib ld: Add "--" after regexp 2017-08-24 17:45:24 -07:00
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015 binutils ChangeLog rotation 2016-01-01 22:59:17 +10:30
ChangeLog-9303