From a78fca7b57c5444ac23110c6d0f80abd966f0e90 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 29 Aug 2019 00:20:46 +0930 Subject: [PATCH] Segfault in ld building SPEC CPU2017 527.cam4_r with -flto Caused by the PR24406 fix. unwrap_hash_lookup shouldn't be called with link_info.wrap_hash NULL. PR ld/24406 * plugin.c (get_symbols): Test link_info.wrap_hash before calling unwrap_hash_lookup. --- ld/ChangeLog | 6 ++++++ ld/plugin.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index ed646acffae..b654eb9d363 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2019-08-29 Alan Modra + + PR ld/24406 + * plugin.c (get_symbols): Test link_info.wrap_hash before calling + unwrap_hash_lookup. + 2019-08-22 Tamar Christina PR ld/24601 diff --git a/ld/plugin.c b/ld/plugin.c index 0344da2df9e..47e5cea82ea 100644 --- a/ld/plugin.c +++ b/ld/plugin.c @@ -749,7 +749,7 @@ get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms, if (syms[n].def != LDPK_UNDEF && syms[n].def != LDPK_WEAKUNDEF) { blhe = h; - if (blhe) + if (blhe && link_info.wrap_hash != NULL) { /* Check if a symbol is a wrapper symbol. */ struct bfd_link_hash_entry *unwrap -- 2.30.2