https://sourceware.org/bugzilla/show_bug.cgi?id=20267
Bug ID: 20267
Summary: ld.bfd crash when link with LLVMgold.so plugin
Product: binutils
Version: unspecified
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: ld
Assignee: unassigned at sourceware dot org
Reporter: zyfwong at gmail dot com
Target Milestone: ---
=== foo.c ====
int global_var;
=== main.c ====
int global_var;
int main(void)
{
return global_var;
}
void _start()
{
main();
}
=== Compile ===
$ clang -emit-llvm -Os foo.c -c foo.o
$ ar rs --plugin LLVMgold.so foo.a foo.o
$ clang -emit-llvm -Os main.c -c main.o
$ ld --plugin LLVMgold.so main.o foo.a
segmentation fault (core dumped)
ld.bfd will crash in `elf_link_is_defined_archive_symbol`.
The original code:
/* Return FALSE if the object has been claimed by plugin. */
if (abfd->plugin_format == bfd_plugin_yes)
return FALSE;
if (! bfd_check_format (abfd, bfd_object))
return FALSE;
If I add one more check after `bfd_check_format`, it seems that the problem is
fixed:
if (abfd->plugin_format == bfd_plugin_yes)
return FALSE;
--
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