From c8bad65eee4667f731c4abcc4642c4a68c8601ca Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 5 Jan 2021 22:51:42 +1030 Subject: [PATCH] is_relocatable_executable --exclude-libs failure --exclude-libs makes symbols hidden, but that doesn't prevent them being made dynamic for is_relocatable_executable targets. Fix that. * elflink.c (bfd_elf_link_record_dynamic_symbol): Handle no_export for relocatable executable. --- bfd/ChangeLog | 5 +++++ bfd/elflink.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4eda3a1e57e..6c050b1c199 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2021-01-05 Alan Modra + + * elflink.c (bfd_elf_link_record_dynamic_symbol): Handle no_export + for relocatable executable. + 2021-01-05 Alan Modra * vms-alpha.c (_bfd_vms_slurp_egsd): Read flags after size check. diff --git a/bfd/elflink.c b/bfd/elflink.c index df5b997cf00..4c54b1a1591 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -534,7 +534,12 @@ bfd_elf_link_record_dynamic_symbol (struct bfd_link_info *info, && h->root.type != bfd_link_hash_undefweak) { h->forced_local = 1; - if (!elf_hash_table (info)->is_relocatable_executable) + if (!elf_hash_table (info)->is_relocatable_executable + || ((h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak) + && h->root.u.def.section->owner->no_export) + || (h->root.type == bfd_link_hash_common + && h->root.u.c.p->section->owner->no_export)) return TRUE; } -- 2.30.2