binutils-gdb/ld/testsuite/ld-scripts/segment-start.ld
Maciej W. Rozycki 6057dc97e4 LD: Always make a SEGMENT_START expression section-relative
Fix an issue with the SEGMENT_START builtin function where its result is
absolute when taken from the default supplied, and section-relative when
taken from a `-T' command-line override.  This is against documentation,
inconsistent and unexpected, and with PIE executables gives an incorrect
result with the `__executable_start' symbol.

Make the result of SEGMENT_START always section-relative then.

	ld/
	* ldexp.c (fold_binary): Always make the result of SEGMENT_START
	section-relative.
	* testsuite/ld-scripts/segment-start.d: New test.
	* testsuite/ld-scripts/segment-start.ld: New test linker script.
	* testsuite/ld-scripts/segment-start.s: New test source.
	* testsuite/ld-scripts/script.exp: Run the new test.
2018-09-14 20:22:56 +01:00

13 lines
292 B
Plaintext

SECTIONS
{
PROVIDE (__executable_start = SEGMENT_START ("text-segment", 0x10000000));
.text : { *(.text) }
.data : { *(.data) }
.bss : { *(.bss) }
.loader : { *(.loader) }
.symtab : { *(.symtab) }
.strtab : { *(.strtab) }
.shstrtab : { *(.shstrtab) }
/DISCARD/ : { *(*) }
}