aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorLuke Allardyce <lukeallardyce@gmail.com>2016-11-11 10:08:05 +0000
committerNick Clifton <nickc@redhat.com>2016-11-11 10:08:05 +0000
commit7103ad7639b7ed80bec170404185a8e39079446b (patch)
tree5a877387f5d9d60eedce566e04ab17e706e2349c /bfd
parent668e167446b2777869f413841ec05aed59473d9f (diff)
downloadfsf-binutils-gdb-7103ad7639b7ed80bec170404185a8e39079446b.zip
fsf-binutils-gdb-7103ad7639b7ed80bec170404185a8e39079446b.tar.gz
fsf-binutils-gdb-7103ad7639b7ed80bec170404185a8e39079446b.tar.bz2
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.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/coffcode.h5
2 files changed, 10 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index abfda75..b8a1ba4 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2016-11-11 Luke Allardyce <lukeallardyce@gmail.com>
+
+ PR ld/20722
+ * coffcode.h (coff_slurp_symbol_table): Accept C_HIDDEN symbols,
+ but treat them as debugging symbols.
+
2016-11-10 Jiong Wang <jiong.wang@arm.com>
PR target/20737
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 0862f66..b926c65 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;