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.
This commit is contained in:
Jan Beulich
2013-10-29 17:52:24 +01:00
committed by Jan Beulich
parent aee17e424f
commit 34a79995c4
31 changed files with 106 additions and 89 deletions

View File

@@ -1,3 +1,9 @@
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.
2013-10-18 Chao-ying Fu <Chao-ying.Fu@imgtec.com>
* gas/mips/micromips@msa-branch.d, gas/mips/msa-branch.d,

View File

@@ -1,5 +1,5 @@
Symbol table '.symtab' contains 29 entries:
Symbol table '.symtab' contains 28 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000050 0 SECTION LOCAL DEFAULT 1
@@ -7,26 +7,25 @@ Symbol table '.symtab' contains 29 entries:
3: 00000000 0 FILE LOCAL DEFAULT ABS relax_size.o
4: 00000050 8 NOTYPE LOCAL DEFAULT 1 func
5: 00000058 0 NOTYPE LOCAL DEFAULT 1 label
6: 00000000 0 FILE LOCAL DEFAULT ABS
7: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _fdata
8: 00000058 0 NOTYPE GLOBAL DEFAULT 1 _etext
9: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _essrw
10: 00000058 0 NOTYPE GLOBAL DEFAULT 1 _heap_end
11: 00000058 0 NOTYPE GLOBAL DEFAULT 1 _heap_start
12: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _ssro_size
13: 00000050 0 NOTYPE GLOBAL DEFAULT 1 _ftext
14: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _essro
15: 00000400 0 NOTYPE GLOBAL DEFAULT ABS _STACK_SIZE
16: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _HEAP_SIZE
17: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _ssrw_size
18: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _stack_end
19: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _edata
20: 00000458 0 NOTYPE GLOBAL DEFAULT 2 _end
21: 00000058 0 NOTYPE GLOBAL DEFAULT 1 _heap
22: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _ssro
23: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _ssrw
24: 00000458 0 NOTYPE GLOBAL DEFAULT 2 _stack
25: 00000050 0 NOTYPE GLOBAL DEFAULT ABS _TEXT_START_ADDR
26: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _frodata
27: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _fbss
28: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _erodata
6: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _fdata
7: 00000058 0 NOTYPE GLOBAL DEFAULT 1 _etext
8: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _essrw
9: 00000058 0 NOTYPE GLOBAL DEFAULT 1 _heap_end
10: 00000058 0 NOTYPE GLOBAL DEFAULT 1 _heap_start
11: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _ssro_size
12: 00000050 0 NOTYPE GLOBAL DEFAULT 1 _ftext
13: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _essro
14: 00000400 0 NOTYPE GLOBAL DEFAULT ABS _STACK_SIZE
15: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _HEAP_SIZE
16: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _ssrw_size
17: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _stack_end
18: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _edata
19: 00000458 0 NOTYPE GLOBAL DEFAULT 2 _end
20: 00000058 0 NOTYPE GLOBAL DEFAULT 1 _heap
21: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _ssro
22: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _ssrw
23: 00000458 0 NOTYPE GLOBAL DEFAULT 2 _stack
24: 00000050 0 NOTYPE GLOBAL DEFAULT ABS _TEXT_START_ADDR
25: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _frodata
26: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _fbss
27: 00000058 0 NOTYPE GLOBAL DEFAULT 2 _erodata

View File

@@ -1,5 +1,5 @@
Symbol table '.symtab' contains 31 entries:
Symbol table '.symtab' contains 30 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000050 0 SECTION LOCAL DEFAULT 1
@@ -9,26 +9,25 @@ Symbol table '.symtab' contains 31 entries:
5: 00000054 0 NOTYPE LOCAL DEFAULT 1 label
6: 00000054 8 NOTYPE LOCAL DEFAULT 1 func2
7: 0000005c 0 NOTYPE LOCAL DEFAULT 1 label2
8: 00000000 0 FILE LOCAL DEFAULT ABS
9: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _fdata
10: 0000005c 0 NOTYPE GLOBAL DEFAULT 1 _etext
11: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _essrw
12: 00000060 0 NOTYPE GLOBAL DEFAULT 1 _heap_end
13: 00000060 0 NOTYPE GLOBAL DEFAULT 1 _heap_start
14: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _ssro_size
15: 00000050 0 NOTYPE GLOBAL DEFAULT 1 _ftext
16: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _essro
17: 00000400 0 NOTYPE GLOBAL DEFAULT ABS _STACK_SIZE
18: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _HEAP_SIZE
19: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _ssrw_size
20: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _stack_end
21: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _edata
22: 00000460 0 NOTYPE GLOBAL DEFAULT 2 _end
23: 00000060 0 NOTYPE GLOBAL DEFAULT 1 _heap
24: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _ssro
25: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _ssrw
26: 00000460 0 NOTYPE GLOBAL DEFAULT 2 _stack
27: 00000050 0 NOTYPE GLOBAL DEFAULT ABS _TEXT_START_ADDR
28: 0000005c 0 NOTYPE GLOBAL DEFAULT 2 _frodata
29: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _fbss
30: 0000005c 0 NOTYPE GLOBAL DEFAULT 2 _erodata
8: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _fdata
9: 0000005c 0 NOTYPE GLOBAL DEFAULT 1 _etext
10: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _essrw
11: 00000060 0 NOTYPE GLOBAL DEFAULT 1 _heap_end
12: 00000060 0 NOTYPE GLOBAL DEFAULT 1 _heap_start
13: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _ssro_size
14: 00000050 0 NOTYPE GLOBAL DEFAULT 1 _ftext
15: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _essro
16: 00000400 0 NOTYPE GLOBAL DEFAULT ABS _STACK_SIZE
17: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _HEAP_SIZE
18: 00000000 0 NOTYPE GLOBAL DEFAULT ABS _ssrw_size
19: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _stack_end
20: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _edata
21: 00000460 0 NOTYPE GLOBAL DEFAULT 2 _end
22: 00000060 0 NOTYPE GLOBAL DEFAULT 1 _heap
23: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _ssro
24: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _ssrw
25: 00000460 0 NOTYPE GLOBAL DEFAULT 2 _stack
26: 00000050 0 NOTYPE GLOBAL DEFAULT ABS _TEXT_START_ADDR
27: 0000005c 0 NOTYPE GLOBAL DEFAULT 2 _frodata
28: 00000060 0 NOTYPE GLOBAL DEFAULT 2 _fbss
29: 0000005c 0 NOTYPE GLOBAL DEFAULT 2 _erodata