/* COFF specific linker code.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
return TRUE;
*pneeded = TRUE;
- return coff_link_add_object_symbols (abfd, info);
+ return bfd_link_add_symbols (abfd, info);
}
/* Add all the symbols from an object file to the hash table. */
case COFF_SYMBOL_GLOBAL:
flags = BSF_EXPORT | BSF_GLOBAL;
section = coff_section_from_bfd_index (abfd, sym.n_scnum);
- if (! obj_pe (abfd))
+ if (discarded_section (section))
+ section = bfd_und_section_ptr;
+ else if (! obj_pe (abfd))
value -= section->vma;
break;
case COFF_SYMBOL_PE_SECTION:
flags = BSF_SECTION_SYM | BSF_GLOBAL;
section = coff_section_from_bfd_index (abfd, sym.n_scnum);
+ if (discarded_section (section))
+ section = bfd_und_section_ptr;
break;
}
&& (*sym_hash)->root.type != bfd_link_hash_undefined
&& (*sym_hash)->root.type != bfd_link_hash_undefweak)
_bfd_error_handler
- (_("Warning: symbol `%s' is both section and non-section"),
+ (_("warning: symbol `%s' is both section and non-section"),
name);
addit = FALSE;
|| BTYPE (sym.n_type) == T_NULL)))
_bfd_error_handler
/* xgettext: c-format */
- (_("Warning: type of symbol `%s' changed"
+ (_("warning: type of symbol `%s' changed"
" from %d to %d in %pB"),
name, (*sym_hash)->type, sym.n_type, abfd);
case C_FCN:
if (obj_pe (input_bfd)
- && strcmp (isym.n_name, ".bf") != 0
+ && memcmp (isym.n_name, ".bf", sizeof ".bf") != 0
&& isym.n_scnum > 0)
{
/* For PE, .lf and .ef get their value left alone,
if (sec != NULL && discarded_section (sec))
{
_bfd_clear_contents (howto, input_bfd, input_section,
- contents + (rel->r_vaddr - input_section->vma));
+ contents, rel->r_vaddr - input_section->vma);
continue;
}