a485e98ea0
Currently, section ordering differs a little for non-loaded reloc sections output by ld -emit-relocs or ld -r and that after passing such objects through objcopy. Not that it really matters, but it would be better for a simple objcopy to produce an unchanged output object file. Also, section headers are put somewhere in the middle of the non-loaded sections, again slightly differently for ld and objcopy. This patch fixes these discrepancies and puts section headers last, which is where gold puts them, and is where bfd_from_remote_memory wrongly assumed they will be found. bfd/ * elf.c (assign_file_positions_except_relocs): Move section header placement to.. (_bfd_elf_assign_file_positions_for_relocs): ..here. Make static. * elf-bfd.h (_bfd_elf_assign_file_positions_for_relocs): Delete. * elflink.c (bfd_elf_final_link): Don't call above function. gas/testsuite/ * gas/arm/got_prel.d: Adjust for changed section header placement. * gas/i386/ilp32/x86-64-size-1.d: Likewise. * gas/i386/ilp32/x86-64-size-3.d: Likewise. * gas/i386/ilp32/x86-64-size-5.d: Likewise. * gas/i386/ilp32/x86-64-unwind.d: Likewise. * gas/i386/size-1.d: Likewise. * gas/i386/size-3.d: Likewise. * gas/i386/x86-64-size-1.d: Likewise. * gas/i386/x86-64-size-3.d: Likewise. * gas/i386/x86-64-size-5.d: Likewise. * gas/i386/x86-64-unwind.d: Likewise. * gas/ia64/alias-ilp32.d: Likewise. * gas/ia64/alias.d: Likewise. * gas/ia64/group-1.d: Likewise. * gas/ia64/group-2.d: Likewise. * gas/ia64/secname-ilp32.d: Likewise. * gas/ia64/secname.d: Likewise. * gas/ia64/unwind-ilp32.d: Likewise. * gas/ia64/unwind.d: Likewise. * gas/mmix/bspec-1.d: Likewise. * gas/mmix/bspec-2.d: Likewise. * gas/mmix/byte-1.d: Likewise. * gas/mmix/loc-1.d: Likewise. * gas/mmix/loc-2.d: Likewise. * gas/mmix/loc-3.d: Likewise. * gas/mmix/loc-4.d: Likewise. * gas/mmix/loc-5.d: Likewise. * gas/tic6x/scomm-directive-4.d: Likewise. ld/testsuite/ * ld-aarch64/emit-relocs-local-addend.d: Adjust for changed section header placement. * ld-aarch64/local-addend-r.d: Likewise. * ld-mmix/bspec1.d: Likewise. * ld-mmix/bspec2.d: Likewise. * ld-mmix/local1.d: Likewise. * ld-mmix/local3.d: Likewise. * ld-mmix/local5.d: Likewise. * ld-mmix/local7.d: Likewise. * ld-mmix/undef-3.d: Likewise. * ld-sh/sh64/crange3-cmpct.rd: Likewise. * ld-sh/sh64/crange3-media.rd: Likewise. * ld-sh/sh64/crangerel1.rd: Likewise. * ld-sh/sh64/crangerel2.rd: Likewise. * ld-tic6x/common.d: Likewise. * ld-tic6x/shlib-1.rd: Likewise. * ld-tic6x/shlib-1b.rd: Likewise. * ld-tic6x/shlib-1r.rd: Likewise. * ld-tic6x/shlib-1rb.rd: Likewise. * ld-tic6x/shlib-app-1.rd: Likewise. * ld-tic6x/shlib-app-1b.rd: Likewise. * ld-tic6x/shlib-app-1r.rd: Likewise. * ld-tic6x/shlib-app-1rb.rd: Likewise. * ld-tic6x/shlib-noindex.rd: Likewise. * ld-tic6x/static-app-1.rd: Likewise. * ld-tic6x/static-app-1b.rd: Likewise. * ld-tic6x/static-app-1r.rd: Likewise. * ld-tic6x/static-app-1rb.rd: Likewise. * ld-x86-64/ilp32-4.d: Likewise. * ld-x86-64/split-by-file-nacl.rd: Likewise. * ld-x86-64/split-by-file.rd: Likewise.
51 lines
1.4 KiB
Makefile
51 lines
1.4 KiB
Makefile
#source: bspec1.s
|
|
#source: bspec2.s
|
|
#source: bspec1.s
|
|
#source: start.s
|
|
#source: ext1.s
|
|
#ld: -m elf64mmix
|
|
#readelf: -Ssr -x1 -x2 -x3
|
|
|
|
There are 7 section headers, starting at offset .*:
|
|
|
|
Section Headers:
|
|
+\[Nr\] Name +Type +Address +Offset
|
|
+Size +EntSize +Flags +Link +Info +Align
|
|
+\[ 0\] +NULL +0+ +0+
|
|
+0+ +0+ +0 +0 +0
|
|
+\[ 1\] \.text +PROGBITS +0+ +0+78
|
|
+0+4 +0+ +AX +0 +0 +4
|
|
+\[ 2\] \.MMIX\.spec_data\.2 PROGBITS +0+ +0+7c
|
|
+0+8 +0+ +0 +0 +4
|
|
+\[ 3\] \.MMIX\.spec_data\.3 PROGBITS +0+ +0+84
|
|
+0+4 +0+ +0 +0 +4
|
|
+\[ 4\] \.shstrtab +STRTAB +0+ +0+88
|
|
+0+45 +0+ +0 +0 +1
|
|
+\[ 5\] \.symtab +SYMTAB +0+ .*
|
|
+0+108 +0+18 +6 +4 +8
|
|
+\[ 6\] \.strtab +STRTAB +0+ .*
|
|
+0+32 +0+ +0 +0 +1
|
|
Key to Flags:
|
|
#...
|
|
|
|
There are no relocations in this file\.
|
|
|
|
Symbol table '\.symtab' contains 11 entries:
|
|
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
|
|
+0: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND
|
|
+1: 0+ +0 +SECTION +LOCAL +DEFAULT +1
|
|
+2: 0+ +0 +SECTION +LOCAL +DEFAULT +2
|
|
+3: 0+ +0 +SECTION +LOCAL +DEFAULT +3
|
|
+4: 0+ +0 +FUNC +GLOBAL +DEFAULT +1 Main
|
|
+5: 0+fc +0 +NOTYPE +GLOBAL +DEFAULT +ABS ext1
|
|
+6: 0+ +0 +NOTYPE +GLOBAL +DEFAULT +1 _start
|
|
#...
|
|
|
|
Hex dump of section '\.text':
|
|
0x0+ e3fd0001 .*
|
|
|
|
Hex dump of section '\.MMIX\.spec_data\.2':
|
|
0x0+ 0000002a 0000002a .*
|
|
|
|
Hex dump of section '\.MMIX\.spec_data\.3':
|
|
0x0+ 000000fc .*
|