binutils-gdb/ld/testsuite/ld-mmix/sec-1.d
Hans-Peter Nilsson 4609ada49f 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.
2020-07-19 06:08:07 +02:00

45 lines
1.5 KiB
Makefile

#source: sec-1.s
#source: start.s
#ld: -m elf64mmix -u _etext -u _edata -u _end
#objcopy_linked_file: -O mmo
#objdump: -sht
# Test conversion from ELF to mmo with non-mmo-sections present,
# testing that support.
.*: file format mmo
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 secname 0+19 0+4 0+4 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 \.a\.fourth\.section 0+10 0+20 0+20 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 anothersec 0+13 2000000000000000 2000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, DATA
4 thirdsec 0+a 0+ 0+ 0+ 2\*\*2
CONTENTS, READONLY
SYMBOL TABLE:
#...
0+30 g +\*ABS\* _etext
#...
2000000000000013 g +\*ABS\* __bss_start
2000000000000013 g +\*ABS\* _edata
2000000000000018 g +\*ABS\* _end
Contents of section \.text:
0000 e3fd0001 .*
Contents of section secname:
0004 00000001 00000002 00000003 00000004 .*
0014 ffffffff fffff827 50 .*
Contents of section \.a\.fourth\.section:
0020 00000000 0087a238 00000000 302a55a8 .*
Contents of section anothersec:
2000000000000000 0000000a 00000009 00000008 00000007 .*
2000000000000010 252729 .*
Contents of section thirdsec:
0000 00030d41 000186a2 2628 .*