structure.
* som.c (CPU_PA_RISC2_0): Define.
(_PA_RISC2_0_ID): Likewise.
(som_finish_writing): Use CPU_PA_RISC2_0 for the system_id as needed.
PA2.0 infrastructure.
* elf32-m68k.c: Include "elf/m68k.h". Remove definition of enum
reloc_type. Rename R_68K__max to R_68K_max.
(howto_table): Use _bfd_elf_rel_vtable_reloc_fn for a VTENTRY
reloc.
transform a defweak into a plt entry.
(elf64_alpha_calc_dynrel_sizes): Allow room for secondary
plt entry references to receive a RELATIVE reloc.
(elf64_alpha_finish_dynamic_symbol): Fill them in.
(elf64_alpha_relocate_section): Assert we don't overrun
the allocated relocation space.
* elf32-ppc.c (ppc_elf_relocate_section): Reverse output_offset
part of Vladimir's change of 1998-08-19. Make a R_PPC_SDAREL16
reloc to the wrong section a warning, not an error. .dynsbss
is not an output section, so there is no need to check for it.
* elf32-sparc.c (elf32_sparc_relocate_section): Properly adjust
the addend of a dynamic relocation referencing a section.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
(sparc64_elf_finish_dynamic_symbol): Fix the PLT relocation offset.
* elfcode.h (elf_object_p): Reject files of header type ET_CORE
(core files are treated differently than object files).
* elf-bfd.h (_bfd_elf_write_corefile_contents,
bfd_elf_mkcorefile): declare.
* elfxx-target.h (_bfd_elf_write_corefile_contents,
bfd_elf_mkcorefile): add to bfd_target vector.
* elfcore.h (elf_core_file_p): save the program header table,
and set the bfd architecture from the elf file header.
* elf.c (bfd_elf_mkcorefile): new function.
(_bfd_elf_write_corefile_contents): new function.
(assign_file_positions_for_segments): add cases for handling
PT_NOTE segments. (assign_file_positions_except_relocs):
core files should be handled the same as exec files.
(prep_headers): identify core files as type ET_CORE.
(copy_private_bfd_data): identify the sections belonging to
the PT_NOTE segment.
* elf32-sparc.c (elf32_sparc_final_write_processing):
add break statement to default case.
section (not input) will be in sections ".sbss", ".sbss2",
".sdata", and ".sdata" for R_PPC_SDAREL16, R_PPC_EMB_SDA2REL,
R_PPC_EMB_SDA21, R_PPC_EMB_RELSDA. In all these cases also ignore
output_offset for correct evaluation of addend.
PR16246
elf32_arm_allocate_interworking_sections and
elf32_arm_process_before_allocation.
* bfd-in.h: Ammend prototype for
elf32_arm_process_before_allocation to remove surplus third
argument.
* bfd-in2.h: Regenerate.
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Generate PLT
entries unless the symbol is defined in the executable; in
particular, undefined weak symbols get a PLT entry.
argument is_local. Add argument sym_flags. Check sym_flags
in R_ARM_ABS32 case. Include addend for R_ARM_THM_PC22 case.
(elf32_arm_relocate_section): Don't pass local sym and pass
sym_flags to elf32_arm_final_link_relocate.
.got if any relocation referrs to _GLOBAL_OFFSET_TABLE_.
(ppc_elf_relocate_section): Pull sgot and splt search to the start
of the function. Recognize no .plt as static linking.
* Makefile.in: Rebuild.
* config.bfd (arm-*-elf): Define targ_defvec and targ_selvecs.
(thumb-*-elf): Define targ_defvec and targ_selvecs.
* configure.in: Handle bfd_elf32_littlearm_vec and bfd_elf32_bigarm_vec.
* configure: Regenerate.
* elf.c: (prep_headers): Support arch_type of EM_ARM.
* targets.c: Support new targets bfd_elf32_bigarm_vec and
bfd_target bfd_elf32_littlearm_vec.
* elf32-arm.c: New file.
The value of R_MIPS15_S3 has changed:
* elf32-mips.c (elf_mips15_s3_howto): New static variable.
(mips_reloc_map): Remove BFD_RELOC_MIPS15_S3.
(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS15_S3
specially.
(mips_info_to_howto_rel): Handle R_MIPS15_S3 specially.
(mips_elf_relocate_section): Check for R_MIPS15_S3.
end-sanitize-r5900
* elf32-mips.c (elf_mips_howto_table): Add reloc types used on
Irix 6.
(bfd_elf32_bfd_reloc_type_lookup): Add default case.
* elf64-mips.c: Replace all uses of mips_elf64_reloc_type with
elf_mips_reloc_type defined in elf/mips.h.
* elf-m10300.c (elf32_mn10300_link_hash_entry): Add new field
"movm_stack_size".
(mn10300_elf_relax_section): Include stack space for register saves
in the imm8 field of a "call" instruction.
(compute_function_info): Determine how much stack is allocated by
the movm instruction. Fix typo.
(elf32_mn10300_link_hash_newfunc): Initialize movm_stack_size.
functionname_ptr to be const. Change line_ptr to be unsigned.
* coffcode.h (coff_link_output_has_begun): Simplify handling when
macro is not defined. Change second parameter from bfd_link_info
to coff_final_link_info. Add prototype.
(coff_final_link_postscript): Simplify handling when macro is not
defined. Add prototype.
* elf32-i386.c (elf_backend_got_header_size): Define.
(elf_backend_plt_header_size): Define.
* elf32-m68k.c, elf32-mips.c, elf32-ppc.c: Likewise.
* elf32-sparc.c, elf64-alpha.c, elf64-sparc.c: Likewise.
* elfxx-target.h: Provide a default of zero.
* elflink.c (_bfd_elf_create_got_section): Use got_header_size.
* elflink.h (elf_gc_common_finalize_got_offsets): Likewise.
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't remove a PLT
entry from an executable, even if the plt refcount goes to 0.
* aoutx.h (NAME(aout,find_nearest_line)): Also remember the
directory name at the line number.
* elf.c (_bfd_elf_find_nearest_line): Also consider symbols
with an unspecified type.
* elf32-m68k.c (elf_m68k_check_relocs): Also reference count
R_68K_PCxx and R_68K_xx relocations. Make sure that
ELF_LINK_HASH_NEEDS_PLT is always set for a PLT reloc reference.
(elf_m68k_gc_sweep_hook): Also reference count R_68K_PCxx and
R_68K_xx relocations.
(elf_m68k_adjust_dynamic_symbol): Reset the plt offset of a symbol
that has no plt entry.
(elf_m68k_relocate_section): Ignore the plt offset in a static
link.
* elflink.h (elf_adjust_dynamic_symbol): Reset the plt offset for
an ignored symbol.
(elf_gc_common_finalize_got_offsets): Set the got offsets also in
a static link.
* elf32-m68k.c (R_68K_GNU_VTINHERIT, R_68K_GNU_VTENTRY): New reloc
types.
(howto_table, reloc_map): Add entries for them.
(elf_m68k_check_relocs): Handle them. Implement reference
counting for got and plt entries.
(elf_m68k_gc_mark_hook, elf_m68k_gc_sweep_hook): New functions.
(elf_m68k_adjust_dynamic_symbol): Handle unreferenced plt
symbols.
(rtype_to_howto_rel, elf_info_to_howto_rel): Delete.
(elf_m68k_relocate_section): Handle the new reloc types.
(bfd_elf32_bfd_final_link, elf_backend_gc_mark_hook,
elf_backend_gc_sweep_hook, elf_backend_can_gc_sections): Define.
* elflink.h (elf_link_add_object_symbols): When creating an
indirect reference for symbol versioning also copy the plt
offset.
(elf_fix_symbol_flags): When clearing the ELF_LINK_HASH_NEEDS_PLT
flag also reset the plt offset.
(elf_link_assign_sym_version): Likewise.
(elf_gc_common_finalize_got_offsets): Increment the got offset by
the size of the entry in bytes.
(elf_gc_allocate_got_offsets): Likewise.
Tue Jul 14 11:18:14 1998 Ian Lance Taylor <ian@cygnus.com>
* elflink.h (elf_gc_sections): Return true rather than falling off
the bottom.