From: Ian Lance Taylor Date: Wed, 2 Dec 1998 05:59:07 +0000 (+0000) Subject: * elflink.h (elf_adjust_dynamic_symbol): Warn on an attempt to X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3ac83be0c79829d59dbf4cd4c2bcd39048949524;p=binutils-gdb.git * elflink.h (elf_adjust_dynamic_symbol): Warn on an attempt to link against a dynamic symbol with no type or size. --- diff --git a/bfd/elflink.h b/bfd/elflink.h index 40f45a0f245..841a8e72895 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -3119,6 +3119,18 @@ elf_adjust_dynamic_symbol (h, data) } } + /* If a symbol has no type and no size and does not require a PLT + entry, then we are probably about to do the wrong thing here: we + are probably going to create a COPY reloc for an empty object. + This case can arise when a shared object is built with assembly + code, and the assembly code fails to set the symbol type. */ + if (h->size == 0 + && h->type == STT_NOTYPE + && (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) == 0) + (*_bfd_error_handler) + (_("warning: type and size of dynamic symbol `%s' are not defined"), + h->root.root.string); + dynobj = elf_hash_table (eif->info)->dynobj; bed = get_elf_backend_data (dynobj); if (! (*bed->elf_backend_adjust_dynamic_symbol) (eif->info, h))