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. |
||
---|---|---|
.. | ||
abi32.sd | ||
abi32.xd | ||
abi64.sd | ||
abi64.xd | ||
abixx-noexp.sd | ||
cmpct1.sd | ||
cmpct1.xd | ||
crange-1.s | ||
crange-2a.s | ||
crange-2b.s | ||
crange-2c.s | ||
crange-2d.s | ||
crange-2e.s | ||
crange-2f.s | ||
crange-2g.s | ||
crange-2h.s | ||
crange-2i.s | ||
crange1.rd | ||
crange2.rd | ||
crange3-cmpct.rd | ||
crange3-media.rd | ||
crange3.dd | ||
crange3.rd | ||
crangerel1.rd | ||
crangerel2.rd | ||
dlsection-1.s | ||
dlsection.sd | ||
endian.dbd | ||
endian.dld | ||
endian.ld | ||
endian.s | ||
endian.sbd | ||
endian.sld | ||
gotplt.d | ||
gotplt.map | ||
gotplt.s | ||
init-cmpct.d | ||
init-media.d | ||
init.s | ||
init64.d | ||
mix1-noexp.sd | ||
mix1.sd | ||
mix1.xd | ||
mix2-noexp.sd | ||
mix2.sd | ||
mix2.xd | ||
rd-sh64.exp | ||
rel-1.s | ||
rel-2.s | ||
rel32.xd | ||
rel64.xd | ||
relax.exp | ||
relax1.s | ||
relax2.s | ||
relax3.s | ||
relax4.s | ||
reldl-1.s | ||
reldl-2.s | ||
reldl32.rd | ||
reldl64.rd | ||
relfail.exp | ||
relfail.s | ||
sh64-1.s | ||
sh64-2.s | ||
sh64.exp | ||
shcmp-1.s | ||
shdl-1.s | ||
shdl-2.s | ||
shdl32.xd | ||
shdl64.sd | ||
shdl64.xd | ||
shmix-1.s | ||
shmix-2.s | ||
shmix-3.s | ||
stobin-0-dso.d | ||
stobin-1.d | ||
stobin.s | ||
stolib.s |