if sym.n_numaux is not zero.
(_bfd_coff_link_input_bfd): Permit the symbol and the hash table
entry to disagree about the number of aux entries if the symbol
has zero.
section if it might be needed, not just if info->shared.
(mips_elf_adjust_dynamic_symbol): Make room for a null element at
the start of .rel.dyn if we are going to use it.
(mips_elf_finish_dynamic_sections): Only clear the first element
of .rel.dyn if the size is greater than zero.
Fix this case from c-torture:
extern int abort();
typedef int (*frob)();
frob f[] = {abort};
main()
{
exit(0);
}
undefined_symbol callback for a symbol, then don't issue any more
warnings about loader relocs.
(_bfd_ppc_xcoff_relocate_section): Don't do any further processing
after calling the undefined_symbol callback.
Change NO_FLAGS to BFD_NO_FLAGS to avoid conflict with an HPUX
include file.
* libbfd.c: Create dummy getpagesize() macro if HAVE_GETPAGESIZE
isn't defined.
* configure.in: Call BFD_NEEDED_DECLARATION on strstr and
realloc.
* acconfig.h (NEED_DECLARATION_STRSTR): New macro.
(NEED_DECLARATION_REALLOC): New macro.
* configure, config.in: Rebuild.
* sysdep.h (strstr): Declare if NEED_DECLARATION_STRSTR.
(realloc): Declare if NEED_DECLARATION_REALLOC.
* elf32-i386.c (enum reloc_type): Add FIRST_INVALID_RELOC,
LAST_INVALID_RELOC, R_386_16, R_386_PC16, R_386_8, R_386_PC8.
(elf_howto_table): Add entries for new relocs.
(elf_i386_reloc_type_lookup): Handle new relocs.
(elf_i386_info_to_howto): Just call abort.
(elf_i386_info_to_howto_rel): Check that the reloc type is valid.
(elf_i386_relocate_section): Likewise.
new segment to make them more comprehensible. If the relationship
between the LMA and the VMA changed, start a new segment. Don't
check dynsec when deciding whether to start a new segment for a
writeable section; -N will now handle this.
* som.c: Corresponding changes.
(som_bfd_derive_misc_symbol_info): Use ST_DATA for symbols
which don't have a SOM symbol type associated with them.
Reverses a 1994 change.
More PA EH tweakage (to get exception handling tables properly relocated
in shared libraries).
* elf.c (map_sections_to_segments): If D_PAGED is not set, set
phdr_in_section to false, and always use a single load segment.
(elf_sort_sections): Sort sections by LMA after VMA.
(assign_file_positions_for_segments): If D_PAGED is not set, don't
align to maxpagesize.
(assign_file_positions_except_relocs): Likewise.
* elfcode.h (elf_object_p): If a section is loaded but not page
aligned, clear D_PAGED.
(e_esel): Similarly.
* som.c (hppa_som_gen_reloc_type): If we encounter an e_esel,
then generate R_COMP2 (PUSH_SYM), R_DATA_EXPR fixup stream.
(som_write_fixups): Handle R_DATA_EXPR just like R_CODE_EXPR.
Making another stab at EH support on the PA.
Tue Jul 23 10:43:31 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* elf32-d10v.c (elf_d10v_howto_table): Changed all relocs to "long"
and fixed mask on R_D10V_10_PCREL_L.
end-sanitize-d10v
(mips_elf64_slurp_armap): New static function.
(mips_elf64_write_armap): New static function.
(bfd_elf64_archive_*): Define.
* elfxx-target.h (bfd_elfNN_archive_p): Define if not defined.
Use instead of bfd_generic_archive_p.
(bfd_elfNN_write_archive_contents): Define if not defined. Use
instead of _bfd_write_archive_contents.
(bfd_elfNN_mkdarchive): Define if not defined. Use instead of
_bfd_generic_mkarchive.
(TARGET_BIG_SYM): If bfd_elfNN_archive_functions is defined, use
bfd_elfNN_archive in BFD_JUMP_TABLE_ARCHIVE rather than
_bfd_archive_coff.
(TARGET_LITTLE_SYM): Likewise.
* archive.c (bfd_slurp_armap): Check for and reject an archive map
name of /SYM64/.
* Makefile.in: Rebuild dependencies.
* ecoff.c (ecoff_compute_section_file_positions): Copy
rdata_in_text from backend info to tdata. Clear it if any data
section comes before .rdata.
(_bfd_ecoff_write_object_contents): Use rdata_in_text field in
tdata rather than backend info.
symbol for a magic name.
(xcoff_link_input_bfd): Don't change the reloc symbol for an
XMC_TD symbol.
(_bfd_ppc_xcoff_relocate_section): Don't get the TOC offset for an
XMC_TD symbol.
value for R_RELBYTE.
Something -Wall caught.
* reloc16.c (bfd_coff_reloc16_relax_section): Only "shrinks"
array if one was allocated.
Something I ran into today.
* elf32-mips.c (struct mips_elf_link_hash_table): Add new fields
use_rld_obj_head and rld_value.
(mips_elf_link_hash_table_create): Initialize new fields.
(mips_elf_add_symbol_hook): Mark __rld_obj_head symbol as
dynamic.
(mips_elf_create_dynamic_sections): Create .rld_map section. If
__rld_obj_head symbol not seen, create an __rld_map symbol.
(mips_elf_size_dynamic_sections): Make space in .rld_map section.
Create a DT_MIPS_RLD_MAP entry rather than a DT_DEBUG entry.
(mips_elf_finish_dynamic_symbol): Save value of __rld_map or
__rld_obj_head symbol.
(mips_elf_finish_dynamic_sections): Handle DT_MIPS_RLD_MAP.
(mips_refhi_list): New static variable.
(mips_refhi_addr, mips_refhi_addend): Remove.
(mips_refhi_reloc): Maintain a list of unmatched REFHI relocs.
(mips_reflo_reloc): Process mips_refhi_list.
(mips_relhi_list): New static variable.
(mips_relhi_addr, mips_relhi_addend): Remove.
(mips_relhi_reloc): Maintain a list of unmatched RELHI relocs.
(mips_rello_reloc): Process mips_relhi_list.
(mips_relocate_section): Permit an arbitrary number of REFHI or
RELHI relocs before the associated REFLO or RELLO reloc.
PR 10050.