Displaying 2 results from an estimated 2 matches for "_bfd_elf_gc_mark_hook".
2019 Dec 05
2
GC for defsym'd symbols in LLD
...t; GNU ld drops .text_foo
ld.bfd a.o --defsym 'd=bar-bar+foo' --gc-sections -o a => GNU ld drops
.text_foo
I traced its logic under a debugger. Here is the stack trace:
ld/ldlang.c:lang_gc_sections
bfd/elflink.c:bfd_elf_gc_sections
bfd/elflink.c:_bfd_elf_gc_mark_reloc
...
bfd/elflink.c:_bfd_elf_gc_mark_hook
asection *
_bfd_elf_gc_mark_hook (asection *sec,
...
case bfd_link_hash_defined:
case bfd_link_hash_defweak:
// It points to .text_foo for --defsym d=foo, but *ABS* for --defsym
d=bar-bar+foo or --defsym d=foo+3
return h->root.u.def.section;
GNU ld evaluates symbol assignments in...
2019 Dec 04
2
GC for defsym'd symbols in LLD
On Wed, 4 Dec 2019 at 07:05, Fāng-ruì Sòng <maskray at google.com> wrote:
>
> On Tue, Dec 3, 2019 at 7:02 PM Shoaib Meenai via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> >
> > LLD treats any symbol referenced from a linker script as a GC root, which makes sense. Unfortunately, it also processes --defsym as a linker script fragment internally, so all target