aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2002-01-31 10:46:24 +0000
committerHans-Peter Nilsson <hp@axis.com>2002-01-31 10:46:24 +0000
commite5dfef09182bd9e1523f6bc5e9a44e60171ff3c8 (patch)
tree9b583bc0b8249db5253f36b0aa610cf7cc53fb23
parentf7a2c2f698acd6554284d5e05a1f82724c306359 (diff)
downloadgdb-e5dfef09182bd9e1523f6bc5e9a44e60171ff3c8.zip
gdb-e5dfef09182bd9e1523f6bc5e9a44e60171ff3c8.tar.gz
gdb-e5dfef09182bd9e1523f6bc5e9a44e60171ff3c8.tar.bz2
* elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
unexport unreferenced symbols when --export-dynamic. Call _bfd_elf_strtab_delref when unexporting.
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf32-cris.c10
2 files changed, 14 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8781578..824e851 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2002-01-31 Hans-Peter Nilsson <hp@axis.com>
+
+ * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
+ unexport unreferenced symbols when --export-dynamic. Call
+ _bfd_elf_strtab_delref when unexporting.
+
2002-01-30 Daniel Jacobowitz <drow@mvista.com>
* bfd-in.h: Include <stdbool.h> if it is available.
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index 6feb292..c588adc 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -2936,8 +2936,14 @@ elf_cris_discard_excess_program_dynamics (h, inf)
/* If the locally-defined symbol isn't used by a DSO, then we don't
have to export it as a dynamic symbol. This was already done for
functions; doing this for all symbols would presumably not
- introduce new problems. */
- h->root.dynindx = -1;
+ introduce new problems. Of course we don't do this if we're
+ exporting all dynamic symbols. */
+ if (! info->export_dynamic)
+ {
+ h->root.dynindx = -1;
+ _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
+ h->root.dynstr_index);
+ }
}
return true;