Allow a second -T<section>=<addr> to override a previous version on the same linker command line.

PR ld/20302
	* lexsup.c (set_segment_start): If resetting the start address of
	a section, remember to generate a new script element as well.
	* testsuite/ld-scripts/pr20302.d: New test.
	* testsuite/ld-scripts/scripts.exp: Run the new test.
This commit is contained in:
Nick Clifton 2016-06-27 16:35:58 +01:00
parent 95daf21060
commit 42b7a39bf6
4 changed files with 22 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2016-06-27 Nick Clifton <nickc@redhat.com>
PR ld/20302
* lexsup.c (set_segment_start): If resetting the start address of
a section, remember to generate a new script element as well.
* testsuite/ld-scripts/pr20302.d: New test.
* testsuite/ld-scripts/scripts.exp: Run the new test.
2016-06-24 Alan Modra <amodra@gmail.com>
* testsuite/ld-aarch64/aarch64-elf.exp (aarch64_choose_ilp32_emul):

View File

@ -1686,6 +1686,7 @@ set_segment_start (const char *section, char *valstr)
if (strcmp (seg->name, name) == 0)
{
seg->value = val;
lang_section_start (section, exp_intop (val), seg);
return;
}
/* There was no existing value so we must create a new segment

View File

@ -0,0 +1,12 @@
#ld: -Tdata=0x1000 -Tdata=0x2000 -Tcross2.t
#source: align2a.s
#objdump: -h
#notarget: rx-*-* *-*-aout *-*-netbsd x86_64-*-cygwin *-*-vms
# RX uses non standard section names.
# AOUT and NETBSD have fixed address for the data section.
# x86_64 Cygwin biases all start addresses to be > 2Gb.
# VMS targets need extra libraries.
#...
. \.data[ ]+0+[0-9a-f]+[ ]+0+02000[ ]+0+02000.*
#pass

View File

@ -230,3 +230,4 @@ foreach test_script $test_script_list {
}
run_dump_test "align-with-input"
run_dump_test "pr20302"