Symbol table '.dynsym' contains entries with LOCAL visibility and type SECTION
William Tambe
tambewilliam@gmail.com
Sun Mar 29 01:06:34 GMT 2020
More information about the Binutils mailing list
Sun Mar 29 01:06:34 GMT 2020
- Previous message (by thread): Symbol table '.dynsym' contains entries with LOCAL visibility and type SECTION
- Next message (by thread): Symbol table '.dynsym' contains entries with LOCAL visibility and type SECTION
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sat, Mar 28, 2020 at 7:41 PM Fangrui Song <i@maskray.me> wrote: > > On 2020-03-26, William Tambe via Binutils wrote: > >On Thu, Mar 26, 2020 at 8:51 PM William Tambe <tambewilliam@gmail.com> wrote: > >> > >> What could be the reason that entries with LOCAL visibility and type > >> SECTION are showing in the symbol table '.dynsym' as shown below ? > >> What could be done to prevent that ? > > > >Please, note that this is a custom binutils port for which we are > >implementing shared-library support. > >We are missing something that is causing entries with LOCAL visibility > >and type SECTION to show in the symbol table '.dynsym' . > > > >What could be done to prevent such behavior ? > > > >> > >> Symbol table '.dynsym' contains 14 entries: > >> Num: Value Size Type Bind Vis Ndx Name > >> 0: 00000000 0 NOTYPE LOCAL DEFAULT UND > >> 1: 000001f4 0 SECTION LOCAL DEFAULT 5 > >> 2: 00000216 0 SECTION LOCAL DEFAULT 6 > >> 3: 000003cc 0 SECTION LOCAL DEFAULT 7 > >> 4: 000013e8 0 SECTION LOCAL DEFAULT 8 > >> 5: 000013ec 0 SECTION LOCAL DEFAULT 9 > >> 6: 000013f4 0 SECTION LOCAL DEFAULT 10 > >> 7: 00001484 0 SECTION LOCAL DEFAULT 12 > >> 8: 0000149c 0 SECTION LOCAL DEFAULT 14 > >> 9: 00000000 0 NOTYPE GLOBAL DEFAULT UND foo2 > >> 10: 000001f4 0 FUNC GLOBAL DEFAULT 5 _init > >> 11: 000003cc 0 FUNC GLOBAL DEFAULT 7 _fini > >> 12: 00000364 42 FUNC GLOBAL DEFAULT 6 func > >> 13: 00000000 0 NOTYPE GLOBAL DEFAULT UND foo > > A STB_LOCAL .dynsym entry may be created if a dynamic relocation > references it. > > // a.c > char y; > struct{char _; const char *x; char *y;} __attribute__((packed)) _ = {'_', "a", &y}; > void _start() {} > > % powerpc64-linux-gnu-gcc -shared -nostdlib a.c -o a.so > % readelf -Wr a.so > > Relocation section '.rela.dyn' at offset 0x288 contains 4 entries: > Offset Info Type Symbol's Value Symbol's Name + Addend > 000000000001fee8 0000000000000016 R_PPC64_RELATIVE 2e8 > 000000000001fef0 0000000000000016 R_PPC64_RELATIVE 27f00 > 0000000000020001 000000010000002b R_PPC64_UADDR64 00000000000002e8 .text + 28 > 0000000000020009 000000040000002b R_PPC64_UADDR64 0000000000020011 y + 0 > > R_PPC64_RELATIVE cannot be used because 0x20001 is misaligned. > > sh fdpic also needs it: http://git.musl-libc.org/cgit/musl/commit/?id=7a9669e977e5f750cf72ccbd2614f8b72ce02c4c > > > But if you see a lot of STT_SECTION in your custom port, I guess you triggered some bugs. elf_backend_finish_dynamic_section() is the last place we thought we could iterate through all symbols and remove unwanted symbols, but we can't see the STT_SECTION symbols there; that means they are added later. Any pointers on how we could further debug this issue ?
- Previous message (by thread): Symbol table '.dynsym' contains entries with LOCAL visibility and type SECTION
- Next message (by thread): Symbol table '.dynsym' contains entries with LOCAL visibility and type SECTION
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list