[PATCH 2_20 2/3] * elflink.c (elf_link_add_object_symbols): Improve error message generated when a symbol is left unresolved because a --no-add-needed command line option has prevented the inclusion of the DSO defining it.
Kirill Smelkov
kirr@landau.phys.spbu.ru
Sat Aug 7 14:31:00 GMT 2010
More information about the Binutils mailing list
Sat Aug 7 14:31:00 GMT 2010
- Previous message (by thread): [PATCH 2_20 3/3] * elflink.c (elf_link_add_object_symbols): Look up name of undefined symbol both before and after versioning has been applied. Do not bother with symbols that are weakly undefined.
- Next message (by thread): [PATCH 2_20 1/3] Fix %s that should be %B in several message formats.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
From: Nick Clifton <nickc@redhat.com> commit f332f7169a8ffc0252aac24ddc1db5662642e763 on trunk --- bfd/ChangeLog | 10 ++++++++++ bfd/elflink.c | 22 ++++++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 202f4ad..3755cad 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,6 +1,16 @@ 2010-08-07 Kirill Smelkov <kirr@landau.phys.spbu.ru> Backport from mainline: + 2009-11-05 Nick Clifton <nickc@redhat.com> + + * elflink.c (elf_link_add_object_symbols): Improve error + message generated when a symbol is left unresolved because a + --no-add-needed command line option has prevented the + inclusion of the DSO defining it. + +2010-08-07 Kirill Smelkov <kirr@landau.phys.spbu.ru> + + Backport from mainline: 2009-10-12 Roland McGrath <roland@frob.com> * elflink.c (elf_link_add_object_symbols, _bfd_elf_merge_symbol): diff --git a/bfd/elflink.c b/bfd/elflink.c index 4a348de..10eee8c 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -3866,6 +3866,7 @@ error_free_dyn: bfd_boolean common; unsigned int old_alignment; bfd *old_bfd; + bfd * undef_bfd = NULL; override = FALSE; @@ -4097,6 +4098,20 @@ error_free_dyn: name = newname; } + /* If this is a definition of a previously undefined symbol + make a note of the bfd that contained the reference in + case we need to refer to it later on in error messages. */ + if (! bfd_is_und_section (sec)) + { + h = elf_link_hash_lookup (elf_hash_table (info), name, FALSE, FALSE, FALSE); + + if (h != NULL + && (h->root.type == bfd_link_hash_undefined + || h->root.type == bfd_link_hash_undefweak) + && h->root.u.undef.abfd) + undef_bfd = h->root.u.undef.abfd; + } + if (!_bfd_elf_merge_symbol (abfd, info, name, isym, &sec, &value, &old_alignment, sym_hash, &skip, &override, @@ -4437,9 +4452,12 @@ error_free_dyn: if ((elf_dyn_lib_class (abfd) & DYN_NO_NEEDED) != 0) { (*_bfd_error_handler) - (_("%B: invalid DSO for symbol `%s' definition"), + (_("%B: undefined reference to symbol '%s'"), + undef_bfd == NULL ? info->output_bfd : undef_bfd, name); + (*_bfd_error_handler) + (_("note: '%s' is defined in DSO %B so try adding it to the linker command line"), abfd, name); - bfd_set_error (bfd_error_bad_value); + bfd_set_error (bfd_error_invalid_operation); goto error_free_vers; } -- 1.7.2.1.44.g721e7
- Previous message (by thread): [PATCH 2_20 3/3] * elflink.c (elf_link_add_object_symbols): Look up name of undefined symbol both before and after versioning has been applied. Do not bother with symbols that are weakly undefined.
- Next message (by thread): [PATCH 2_20 1/3] Fix %s that should be %B in several message formats.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list