From 7103ad7639b7ed80bec170404185a8e39079446b Mon Sep 17 00:00:00 2001 From: Luke Allardyce Date: Fri, 11 Nov 2016 10:08:05 +0000 Subject: [PATCH] Accept hidden COFF symbols, but treat them as if they were debugging symbols. PR ld/20722 * coffcode.h (coff_slurp_symbol_table): Accept C_HIDDEN symbols, but treat them as debugging symbols. --- bfd/ChangeLog | 6 ++++++ bfd/coffcode.h | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index abfda75b2b3..b8a1ba42251 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2016-11-11 Luke Allardyce + + PR ld/20722 + * coffcode.h (coff_slurp_symbol_table): Accept C_HIDDEN symbols, + but treat them as debugging symbols. + 2016-11-10 Jiong Wang PR target/20737 diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 0862f665024..b926c65bbe3 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -5068,7 +5068,6 @@ coff_slurp_symbol_table (bfd * abfd) case C_UEXT: /* Tentative external definition. */ #endif case C_EXTLAB: /* External load time label. */ - case C_HIDDEN: /* Ext symbol in dmert public lib. */ default: _bfd_error_handler /* xgettext:c-format */ @@ -5076,6 +5075,10 @@ coff_slurp_symbol_table (bfd * abfd) abfd, src->u.syment.n_sclass, dst->symbol.section->name, dst->symbol.name); ret = FALSE; + /* Faal through. */ + case C_HIDDEN: /* Ext symbol in dmert public lib. */ + /* PR 20722: These symbols can also be generated by + building DLLs with --gc-sections enabled. */ dst->symbol.flags = BSF_DEBUGGING; dst->symbol.value = (src->u.syment.n_value); break; -- 2.30.2