aboutsummaryrefslogtreecommitdiff
path: root/ld/ldmain.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2006-07-19 01:50:23 +0000
committerAlan Modra <amodra@gmail.com>2006-07-19 01:50:23 +0000
commit5061a8853b6f8fb5af87b8ff4a0f7a2460ad333b (patch)
treeb5e392f1de6b43f8e366486604178ea4c1c29046 /ld/ldmain.c
parent9148c4581c6a76a5acfea144685fdd700a103dfe (diff)
downloadgdb-5061a8853b6f8fb5af87b8ff4a0f7a2460ad333b.zip
gdb-5061a8853b6f8fb5af87b8ff4a0f7a2460ad333b.tar.gz
gdb-5061a8853b6f8fb5af87b8ff4a0f7a2460ad333b.tar.bz2
bfd/
* bfd-in.h (enum notice_asneeded_action): Define. * bfd-in2.h: Regenerate. * elflink.c (elf_link_add_object_symbols): Call linker "notice" function with NULL name for as-needed handling. ld/ * ld.h (handle_asneeded_cref): Declare. * ldcref.c: Include objalloc.h. (old_table, old_count, old_tab, alloc_mark): New variables. (tabsize, entsize, refsize, old_symcount): Likewise. (add_cref): Use bfd_hash_allocate for refs. (handle_asneeded_cref): New function. * ldmain.c (notice): Call handle_asneeded_cref for NULL name.
Diffstat (limited to 'ld/ldmain.c')
-rw-r--r--ld/ldmain.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c
index ec31310..cb56a8d 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -1523,6 +1523,13 @@ notice (struct bfd_link_info *info,
asection *section,
bfd_vma value)
{
+ if (name == NULL)
+ {
+ if (command_line.cref || nocrossref_list != NULL)
+ return handle_asneeded_cref (abfd, value);
+ return TRUE;
+ }
+
if (! info->notice_all
|| (info->notice_hash != NULL
&& bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != NULL))