aboutsummaryrefslogtreecommitdiff
path: root/ld/ldmain.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2014-08-12 10:43:33 +0930
committerAlan Modra <amodra@gmail.com>2014-08-12 20:47:36 +0930
commit4613510308cea27713e8c7424b2afee9b99f6226 (patch)
tree50a2534571a7e765830e335172d4f2fdfd6ff4fc /ld/ldmain.c
parent88d3f0870bdcb030d1b9f56f48e389860ff41918 (diff)
downloadfsf-binutils-gdb-4613510308cea27713e8c7424b2afee9b99f6226.zip
fsf-binutils-gdb-4613510308cea27713e8c7424b2afee9b99f6226.tar.gz
fsf-binutils-gdb-4613510308cea27713e8c7424b2afee9b99f6226.tar.bz2
Change ld "notice" interface for better handling of indirect symbols
The main aim of this change was to have non_ir_ref set correctly on new indirect symbols. I could have added a "copy" param to the "notice" function, so that indirect symbols could be created in plugin_notice, but it seemed cleaner to create indirect syms earlier and pass them rather than "string" to "notice". include/ * bfdlink.h (struct bfd_link_callbacks <notice>): Remove "string" param, add "inh". bfd/ * coff-aux.c (coff_m68k_aux_link_add_one_symbol): Only call "notice" here when not calling the generic add_symbol function. Formatting. Correct handling of indirect symbols. Update notice call. * elflink.c (_bfd_elf_notice_as_needed): Update notice call. * linker.c (_bfd_generic_link_add_one_symbol): Create indirect symbols early. Update notice call. Add comments regarding weak symbols vs. indirect. ld/ * ldmain.c (notice): Update args. * plugin.c (plugin_notice): Likewise. Follow warning sym link. Handle new indirect symbol.
Diffstat (limited to 'ld/ldmain.c')
-rw-r--r--ld/ldmain.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c
index ea25afe..77235d5 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -137,7 +137,7 @@ static bfd_boolean unattached_reloc
(struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma);
static bfd_boolean notice
(struct bfd_link_info *, struct bfd_link_hash_entry *,
- bfd *, asection *, bfd_vma, flagword, const char *);
+ struct bfd_link_hash_entry *, bfd *, asection *, bfd_vma, flagword);
static struct bfd_link_callbacks link_callbacks =
{
@@ -1461,11 +1461,11 @@ unattached_reloc (struct bfd_link_info *info ATTRIBUTE_UNUSED,
static bfd_boolean
notice (struct bfd_link_info *info,
struct bfd_link_hash_entry *h,
+ struct bfd_link_hash_entry *inh ATTRIBUTE_UNUSED,
bfd *abfd,
asection *section,
bfd_vma value,
- flagword flags ATTRIBUTE_UNUSED,
- const char *string ATTRIBUTE_UNUSED)
+ flagword flags ATTRIBUTE_UNUSED)
{
const char *name;