https://sourceware.org/bugzilla/show_bug.cgi?id=16693
Bug ID: 16693 Summary: "exclude-libs" drops symbols that are exported through "dynamic-list" or "export-dynamic-symbol" Product: binutils Version: 2.25 (HEAD) Status: NEW Severity: normal Priority: P2 Component: gold Assignee: ian at airs dot com Reporter: ostap73 at gmail dot com CC: ccoutant at google dot com If "--exclude-libs=ALL" is specified, all symbols from static libraries will not be exported even if they are specified in "dynamic-list" or by "export-dynamic-symbol" parameter. By Cary Coutant: "I think it's a bug. The ld manual says: "Specifies a list of archive libraries from which symbols should not be automatically exported." The keyword here is "automatically". If you put a symbol in --dynamic-list, it should be exported regardless of that." Patch solving this from Cary Coutant: diff --git a/gold/symtab.cc b/gold/symtab.cc index 1a69f5b..d77747e 100644 --- a/gold/symtab.cc +++ b/gold/symtab.cc @@ -1219,8 +1219,10 @@ Symbol_table::add_from_relobj( // Fix up visibility if object has no-export set. if (relobj->no_export() - && (orig_st_shndx != elfcpp::SHN_UNDEF || !is_ordinary)) - { + && (orig_st_shndx != elfcpp::SHN_UNDEF || !is_ordinary) + && !(parameters->options().in_dynamic_list(name) + || parameters->options().is_export_dynamic_symbol(name))) + { // We may have copied symbol already above. if (psym != &sym2) { -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils