ld/ELF: refine fake STT_FILE symbol emission
authorJan Beulich <jbeulich@novell.com>
Tue, 29 Oct 2013 16:52:24 +0000 (17:52 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 29 Oct 2013 16:52:24 +0000 (17:52 +0100)
commit34a79995c4cc34f6f41e2a4b2df477db31b31f0c
treef85f8514b04cea06e4f013d80b869ec140dce61a
parentaee17e424f491173bb377b97c397bca1604bf5b8
ld/ELF: refine fake STT_FILE symbol emission

There's no real need to emit these always: They're needed only if we
indeed want to emit a localized symbol. Hence defer emission until we
at least did the basic early checks that would lead to no such symbol
getting emitted. This in particular avoids emitting such a symbol in
the majority of (if not all) "ld -r" cases.

I hope my set of cross build tests caught all the test cases needing
adjustment - please forgive if I missed a few.

bfd/
2013-10-29  Jan Beulich <jbeulich@suse.com>

* elflink.c (struct elf_outext_info): Add field file_sym_done.
(bfd_elf_final_link): Initialize new field. Move fake STT_FILE
symbol emission from here ...
(elf_link_output_extsym): ... to here.

gas/testsuite/
2013-10-29  Jan Beulich <jbeulich@suse.com>

* gas/microblaze/relax_size.elf: Drop expectation of no longer
present STT_FILE symbol.
* gas/microblaze/relax_size2.elf: Likewise.

ld/testsuite/
2013-10-29  Jan Beulich <jbeulich@suse.com>

* ld-cris/tls-e-tpoffcomm1.d: Drop expectation of no longer
present STT_FILE symbol.
* ld-mmix/bpo-18.d: Likewise.
* ld-mmix/bpo-22.d: Likewise.
* ld-mmix/greg-6.d: Likewise.
* ld-mmix/greg-7.d: Likewise.
* ld-mmix/loc4.d: Likewise.
* ld-mmix/local1.d: Likewise.
* ld-mmix/local3.d: Likewise.
* ld-mmix/local5.d: Likewise.
* ld-mmix/local7.d: Likewise.
* ld-mmix/loct-1.d: Likewise.
* ld-sh/sh64/abi32.xd: Likewise.
* ld-sh/sh64/abi64.xd: Likewise.
* ld-sh/sh64/cmpct1.xd: Likewise.
* ld-sh/sh64/crange1.rd: Likewise.
* ld-sh/sh64/crange2.rd: Likewise.
* ld-sh/sh64/crange3-cmpct.rd: Likewise.
* ld-sh/sh64/crange3-media.rd: Likewise.
* ld-sh/sh64/crange3.rd: Likewise.
* ld-sh/sh64/crangerel1.rd: Likewise.
* ld-sh/sh64/crangerel2.rd: Likewise.
* ld-sh/sh64/mix1.xd: Likewise.
* ld-sh/sh64/mix2.xd: Likewise.
* ld-sh/sh64/shdl32.xd: Likewise.
* ld-sh/sh64/shdl64.xd: Likewise.
31 files changed:
bfd/ChangeLog
bfd/elflink.c
gas/testsuite/ChangeLog
gas/testsuite/gas/microblaze/relax_size.elf
gas/testsuite/gas/microblaze/relax_size2.elf
ld/testsuite/ChangeLog
ld/testsuite/ld-cris/tls-e-tpoffcomm1.d
ld/testsuite/ld-mmix/bpo-18.d
ld/testsuite/ld-mmix/bpo-22.d
ld/testsuite/ld-mmix/greg-6.d
ld/testsuite/ld-mmix/greg-7.d
ld/testsuite/ld-mmix/loc4.d
ld/testsuite/ld-mmix/local1.d
ld/testsuite/ld-mmix/local3.d
ld/testsuite/ld-mmix/local5.d
ld/testsuite/ld-mmix/local7.d
ld/testsuite/ld-mmix/loct-1.d
ld/testsuite/ld-sh/sh64/abi32.xd
ld/testsuite/ld-sh/sh64/abi64.xd
ld/testsuite/ld-sh/sh64/cmpct1.xd
ld/testsuite/ld-sh/sh64/crange1.rd
ld/testsuite/ld-sh/sh64/crange2.rd
ld/testsuite/ld-sh/sh64/crange3-cmpct.rd
ld/testsuite/ld-sh/sh64/crange3-media.rd
ld/testsuite/ld-sh/sh64/crange3.rd
ld/testsuite/ld-sh/sh64/crangerel1.rd
ld/testsuite/ld-sh/sh64/crangerel2.rd
ld/testsuite/ld-sh/sh64/mix1.xd
ld/testsuite/ld-sh/sh64/mix2.xd
ld/testsuite/ld-sh/sh64/shdl32.xd
ld/testsuite/ld-sh/sh64/shdl64.xd