]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
ld: optionally emit _etext last, before .data
authorHans-Peter Nilsson <hp@bitrange.com>
Sun, 19 Jul 2020 04:08:07 +0000 (06:08 +0200)
committerHans-Peter Nilsson <hp@bitrange.com>
Sun, 19 Jul 2020 04:08:07 +0000 (06:08 +0200)
commit4609ada49f559880e85aecc2f37f377e5bff8696
treeba1f1bf3860b622dc0388ec9264be13775c31c32
parente10a07b32dc1faed25b5bbcbbc47d68e2ff537b9
ld: optionally emit _etext last, before .data

So, here's my suggestion for making _init .. __etext cover .text +
.rodata (including things like the read-only exception tables) for
elf64mmix.  A quick web search gives that __etext (and friends) isn't
well defined, so each target can interpret the "end of text segment"
to their own liking.  It seems likely this change is also a better fit
than the default for other ports, at least those with .rodata after
.text in the same segment.

The presence of a separate rodata-segment is optional (and not true
for elf64mmix).  This is reflected in the name as SEPARATE_TEXT /
SEPARATE_CODE isn't considered, to keep it simple; each target has to
make sure their settings of variables make sense.

ld:
* scripttempl/elf.sc (ETEXT_LAST_IN_RODATA_SEGMENT): New variable.
* emulparams/elf64mmix.sh (ETEXT_LAST_IN_RODATA_SEGMENT): Define.
* testsuite/ld-mmix/sec-1.d: Adjust.
ld/ChangeLog
ld/emulparams/elf64mmix.sh
ld/scripttempl/elf.sc
ld/testsuite/ld-mmix/sec-1.d