diff options
author | H.J. Lu <hjl@lucon.org> | 2003-06-03 18:15:04 +0000 |
---|---|---|
committer | H.J. Lu <hjl@lucon.org> | 2003-06-03 18:15:04 +0000 |
commit | e4679eef7eedfa4d1fcee81705ddd77d5c812924 (patch) | |
tree | 5899cd53ad7256687485150174bc68ba48085efc | |
parent | 107bcfe916927f8df16eecac2b8f46a36cfd545a (diff) | |
download | gdb-e4679eef7eedfa4d1fcee81705ddd77d5c812924.tar.gz |
bfd/
2003-06-03 H.J. Lu <hongjiu.lu@intel.com>
* elflink.h (elf_link_input_bfd): Call linker error_handler
for discarded definitions.
include/
2003-06-03 H.J. Lu <hongjiu.lu@intel.com>
* bfdlink.h (LD_DEFINITION_IN_DISCARDED_SECTION): New.
ld/
2003-06-03 H.J. Lu <hongjiu.lu@intel.com>
* ldmisc.c: Include "bfdlink.h".
(error_handler): Handle LD_DEFINITION_IN_DISCARDED_SECTION
and -LD_DEFINITION_IN_DISCARDED_SECTION.
* Makefile.am: Rebuild dependency.
* Makefile.in: Regenerated.
ld/testsuite/
2003-06-03 H.J. Lu <hongjiu.lu@intel.com>
* ld-discard/extern.d: Updated.
* ld-discard/start.d: Likewise.
* ld-discard/static.d: Likewise.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elflink.h | 47 | ||||
-rw-r--r-- | include/ChangeLog | 4 | ||||
-rw-r--r-- | include/bfdlink.h | 3 |
4 files changed, 33 insertions, 26 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index cbd2b41e449..9ff266ae462 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2003-06-03 H.J. Lu <hongjiu.lu@intel.com> + + * elflink.h (elf_link_input_bfd): Call linker error_handler + for discarded definitions. + 2003-06-03 Elias Athanasopoulos <elathan@phys.uoa.gr> * syms.c (decode_section_type): Return 'n' if section flags are diff --git a/bfd/elflink.h b/bfd/elflink.h index e7019f3761e..a7ef7427bf3 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -5003,13 +5003,13 @@ elf_link_input_bfd (finfo, input_bfd) memset (rel, 0, sizeof (*rel)); } else - { - if (! ((*finfo->info->callbacks->undefined_symbol) - (finfo->info, h->root.root.string, - input_bfd, o, rel->r_offset, - TRUE))) - return FALSE; - } + finfo->info->callbacks->error_handler + (LD_DEFINITION_IN_DISCARDED_SECTION, + _("%T: discarded in section `%s' from %s\n"), + h->root.root.string, + h->root.root.string, + h->root.u.def.section->name, + bfd_archive_filename (h->root.u.def.section->owner)); } } else @@ -5028,26 +5028,21 @@ elf_link_input_bfd (finfo, input_bfd) } else { - bfd_boolean ok; - const char *msg - = _("local symbols in discarded section %s"); - bfd_size_type amt - = strlen (sec->name) + strlen (msg) - 1; - char *buf = (char *) bfd_malloc (amt); - - if (buf != NULL) - sprintf (buf, msg, sec->name); - else - buf = (char *) sec->name; - ok = (*finfo->info->callbacks - ->undefined_symbol) (finfo->info, buf, - input_bfd, o, - rel->r_offset, - TRUE); - if (buf != sec->name) + static int count; + int ok; + char *buf; + + ok = asprintf (&buf, "local symbol %d", + count++); + if (ok <= 0) + buf = (char *) "local symbol"; + finfo->info->callbacks->error_handler + (LD_DEFINITION_IN_DISCARDED_SECTION, + _("%T: discarded in section `%s' from %s\n"), + buf, buf, sec->name, + bfd_archive_filename (input_bfd)); + if (ok != -1) free (buf); - if (!ok) - return FALSE; } } } diff --git a/include/ChangeLog b/include/ChangeLog index 41e67bc3307..96f1777729e 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2003-06-03 H.J. Lu <hongjiu.lu@intel.com> + + * bfdlink.h (LD_DEFINITION_IN_DISCARDED_SECTION): New. + 2003-05-30 Ulrich Drepper <drepper@redhat.com> Jakub Jelinek <jakub@redhat.com> diff --git a/include/bfdlink.h b/include/bfdlink.h index 61fcf96f409..d68fe113f1f 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -495,6 +495,9 @@ struct bfd_link_callbacks ld. */ bfd_boolean (*error_handler) PARAMS ((int id, const char * fmt, ...)); + +/* Identifiers of linker error messages used by error_handler. */ +#define LD_DEFINITION_IN_DISCARDED_SECTION 1 }; /* The linker builds link_order structures which tell the code how to |