https://sourceware.org/bugzilla/show_bug.cgi?id=17975
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
A NULL STT_FILE symbol is useful here:
[hjl@gnu-6 pr17975]$ cat foo.s
.data
foo:
.dc.a bar
[hjl@gnu-6 pr17975]$ cat bar.s
.data
foo:
.dc.a bar
[hjl@gnu-6 pr17975]$ cat global.s
.data
.hidden foo
.global foo
foo:
.dc.a bar
[hjl@gnu-6 pr17975]$ make hidden.so
as -o foo.o foo.s
as -o bar.o bar.s
as -o global.o global.s
./ld -shared -o hidden.so foo.o bar.o global.o
readelf -sW hidden.so
Symbol table '.dynsym' contains 6 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000002002f0 0 SECTION LOCAL DEFAULT 7
2: 0000000000200308 0 NOTYPE GLOBAL DEFAULT 7 __bss_start
3: 0000000000200308 0 NOTYPE GLOBAL DEFAULT 7 _edata
4: 0000000000200308 0 NOTYPE GLOBAL DEFAULT 7 _end
5: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar
Symbol table '.symtab' contains 20 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000000000e8 0 SECTION LOCAL DEFAULT 1
2: 0000000000000118 0 SECTION LOCAL DEFAULT 2
3: 00000000000001a8 0 SECTION LOCAL DEFAULT 3
4: 00000000000001c8 0 SECTION LOCAL DEFAULT 4
5: 0000000000000210 0 SECTION LOCAL DEFAULT 5
6: 0000000000200210 0 SECTION LOCAL DEFAULT 6
7: 00000000002002f0 0 SECTION LOCAL DEFAULT 7
8: 0000000000000000 0 FILE LOCAL DEFAULT ABS foo.o
9: 00000000002002f0 0 NOTYPE LOCAL DEFAULT 7 foo
10: 0000000000000000 0 FILE LOCAL DEFAULT ABS bar.o
11: 00000000002002f8 0 NOTYPE LOCAL DEFAULT 7 foo
12: 0000000000000000 0 FILE LOCAL DEFAULT ABS
13: 0000000000200210 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC
14: 0000000000200300 0 NOTYPE LOCAL DEFAULT 7 foo
15: 00000000002002f0 0 OBJECT LOCAL DEFAULT 7
_GLOBAL_OFFSET_TABLE_
16: 0000000000200308 0 NOTYPE GLOBAL DEFAULT 7 __bss_start
17: 0000000000200308 0 NOTYPE GLOBAL DEFAULT 7 _edata
18: 0000000000200308 0 NOTYPE GLOBAL DEFAULT 7 _end
19: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar
[hjl@gnu-6 pr17975]$
But not here
[hjl@gnu-6 pr17975]$ make lib.so
./ld -shared -o lib.so foo.o bar.o
readelf -sW lib.so
Symbol table '.dynsym' contains 6 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000002002d8 0 SECTION LOCAL DEFAULT 7
2: 00000000002002e8 0 NOTYPE GLOBAL DEFAULT 7 __bss_start
3: 00000000002002e8 0 NOTYPE GLOBAL DEFAULT 7 _edata
4: 00000000002002e8 0 NOTYPE GLOBAL DEFAULT 7 _end
5: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar
Symbol table '.symtab' contains 19 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000000000e8 0 SECTION LOCAL DEFAULT 1
2: 0000000000000118 0 SECTION LOCAL DEFAULT 2
3: 00000000000001a8 0 SECTION LOCAL DEFAULT 3
4: 00000000000001c8 0 SECTION LOCAL DEFAULT 4
5: 00000000000001f8 0 SECTION LOCAL DEFAULT 5
6: 00000000002001f8 0 SECTION LOCAL DEFAULT 6
7: 00000000002002d8 0 SECTION LOCAL DEFAULT 7
8: 0000000000000000 0 FILE LOCAL DEFAULT ABS foo.o
9: 00000000002002d8 0 NOTYPE LOCAL DEFAULT 7 foo
10: 0000000000000000 0 FILE LOCAL DEFAULT ABS bar.o
11: 00000000002002e0 0 NOTYPE LOCAL DEFAULT 7 foo
12: 0000000000000000 0 FILE LOCAL DEFAULT ABS
13: 00000000002001f8 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC
14: 00000000002002d8 0 OBJECT LOCAL DEFAULT 7
_GLOBAL_OFFSET_TABLE_
15: 00000000002002e8 0 NOTYPE GLOBAL DEFAULT 7 __bss_start
16: 00000000002002e8 0 NOTYPE GLOBAL DEFAULT 7 _edata
17: 00000000002002e8 0 NOTYPE GLOBAL DEFAULT 7 _end
18: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar
[hjl@gnu-6 pr17975]$
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-binutils