rather than SEC_LOAD when aligning the file offset for the first
section in a segment.
Fixes the case in which . is set just before the .bss section in a
linker script.
handling V850 specific relocs.
(elf_v850_howto_table): Use the new function for some
relocations. Twiddle masks & shifts for some relocs.
Set partial_inplace where needed.
Fixing more stuff.
(elf_v850_howto_table): Add support for R_V850_{32,16,8}.
(v850_reloc_map): Add translation from BFD_RELOC_{32,16,8}
to R_V850_{32,16,8}.
So we don't get "reloc XXX not supported" messages anymore.
R_MIPS_32 and R_MIPS_REL32. Set sgot and g as soon as possible.
(mips_elf_size_dynamic_sections): Don't require .got to exist.
(mips_elf_finish_dynamic_sections): Likewise.
(ieee_data_struct): Change section_table to asection **. Add
section_table_size.
* ieee.c (get_section_entry): If the table isn't big enough, make
it bigger.
(ieee_slurp_sections): Remove assertion about number of sections.
(ieee_object_p): Adjust initialization of ieee to match changes to
the structure.
PR 10377.
* reloc.c: (BFD_RELOC_ARM_THUMB_ADD, BFD_RELOC_ARM_THUMB_IMM,
BFD_RELOC_ARM_THUMB_SHIFT, BFD_RELOC_ARM_THUMB_OFFSET):
Added, for internal use by the ARM gas.
* libbfd.h: Rebuilt
* bfd-in2.h: Rebuilt
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.
* libbfd.h: Rebuild.
* i386lynx.c (KEEPIT): Define as udata.i.
(NAME(lynx,swap_std_reloc_out)): Don't use stoi.
(NAME(lynx,swap_ext_reloc_out)): Likewise.
* riscix.c (riscix_swap_std_reloc_out): Use udata.i rather than
flags. Don't use stoi.
with XCOFF_DEF_DYNAMIC set is really defined.
(xcoff_link_check_dynamic_ar_symbols): Likewise.
The above is for PR 9997.
(xcoff_link_add_symbols): Only create special sections if using an
XCOFF hash table.
* elf64-alpha.c (struct alpha_elf_link_hash_entry): Add flags
field.
(ALPHA_ELF_LINK_HASH_LU_ADDR): Define.
(ALPHA_ELF_LINK_HASH_LU_MEM): Define.
(ALPHA_ELF_LINK_HASH_LU_FUNC): Define.
(elf64_alpha_link_hash_newfunc): Initialize flags field.
(elf64_alpha_check_relocs): Record types of LITUSE entries that
are found for LITERAL relocs.
(elf64_alpha_adjust_dynamic_symbol): If a symbol has its address
taken, we cannot generate a .plt entry for the symbol.