* elf.c (bfd_section_from_shdr): Allow SHN_BEFORE and SHN_AFTER
section link values in x86 binaries.
* elfcode.h (elf_object_p): Likewise.
* readelf.c (get_elf_section_flags): Allow SHN_BEFORE and
SHN_AFTER section link values in x86 binaries.
(process_section_headers): Likewise.
.rel.plt and .plt sections are removed.
(elf32_bfinfdpic_size_dynamic_sections): Remove empty .dynbss
section. Remove the duplicated removing of empty .rel.plt
section.
* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Extend previous
patch to handle the new personality relaxation.
ld/testsuite/
* ld-mips-elf/eh-frame5.d: Expect PC-relative encodings
to include DW_EH_PE_sdata4.
* elf-eh-frame.c (make_pc_relative): New function.
(_bfd_elf_write_section_eh_frame): Use it.
ld/testsuite/
* ld-mips-elf/eh-frame1-n32.d: Expect PC-relative encodings
to include DW_EH_PE_sdata4.
* ld-mips-elf/eh-frame2-n32.d: Likewise.
* ld-mips-elf/eh-frame1-n64.d: Expect PC-relative encodings
to include DW_EH_PE_sdata8.
* ld-mips-elf/eh-frame2-n64.d: Likewise.
* elf-bfd.h (eh_cie_fde): Add personality_offset and
make_per_encoding_relative to the CIE structure. Add a padding field.
* elf-eh-frame.c (_bfd_elf_eh_frame_section_offset): Use 0x70
rather than 0xf0 when masking out the base address encoding
Record the offset of personality data from the start of the CIE.
Remove a repeated elf_backend_can_make_relative_eh_frame check.
(find_merged_cie): Take an info argument. If the personality
binds locally, try converting an absolute personality into
a local one.
(_bfd_elf_discard_section_eh_frame): Use 0x70 rather than 0xf0
when masking out the base address encoding. Update the call to
find_merged_cie.
(_bfd_elf_eh_frame_section_offset): Discard relocations against
the personality data if we are converting into PC-relative form.
(_bfd_elf_write_section_eh_frame): Use 0x70 rather than 0xf0
when masking out the base address encoding. Handle
make_per_encoding_relative.
ld/testsuite/
* ld-mips-elf/eh-frame5.s, ld-mips-elf/eh-frame5.ld,
ld-mips-elf/eh-frame5.d: New test.
* ld-mips-elf/mips-elf.exp: Run it.
* elf32-ppc.c (ppc_elf_howto_raw): Make R_PPC_EMB_SDAI16 and
R_PPC_EMB_SDA2I16 complain_overflow_signed.
(create_sdata_sym): Pass info rather than htab.
Update all callers. Ensure symbols are hidden.
(ppc_elf_check_relocs): Allow SDAREL16 when shared.
(ppc_elf_size_dynamic_sections): When shared, equate _SDA_BASE_ to
_GLOBAL_OFFSET_TABLE_.
(elf_finish_pointer_linker_section): Don't assume that sdata base
symbol is always at 0x8000 offset. Don't subtract the addend here.
(is_static_defined): New function.
(ppc_elf_relocate_section): Verify symbol base used in SDA relocs
is statically defined. Clear addend for EMB_SDAI16 and EMB_SDA2I16
relocs. Downgrade error on unexpected section for EMB_SDA2REL
reloc symbols to a warning.
* elf64-ppc.c (follow_link, elf_follow_link, ppc_follow_link): New
functions. Use throughout.
(ppc64_elf_copy_indirect_symbol): Set direct symbol "oh" field
from indirect symbol.
(lookup_fdh): Rename from get_fdh. Follow indirect sym links.
(add_symbol_adjust): Simplify.
(defined_code_entry, defined_func_desc): New functions.
(ppc64_elf_gc_keep): Follow indirect sym links. Use defined_code_entry.
(ppc64_elf_gc_mark_dynamic_ref): Use defined_func_desc and
defined_code_entry to follow indirect sym links.
(ppc64_elf_gc_mark_hook, func_desc_adjust): Likewise.
(ppc_type_of_stub): Follow indirect sym links.
(toc_adjusting_stub_needed): Likewise.
(ppc_build_one_stub): Likewise. Make undefined dot-symbols weak
rather than defining them at stub.
(ppc64_elf_relocate_section): Rewrite call test to avoid multiple
assignments in test.
ld/testsuite/
* ld-powerpc/tlsso.d: Update.
* ld-powerpc/tlsso.r: Update.
* ld-powerpc/tlstocso.d: Update.
* ld-powerpc/tlstocso.r: Update.
* mach-o.h (bfd_mach_o_filetype): Add new constants from darwin10.
Reindent.
* mach-o.c (bfd_mach_o_cpu_name): Reindent.
(bfd_mach_o_filetype_name): Complete with new constants. Reindent.
(bfd_mach_o_print_private_header): Use fputs instead of fprintf
when possible to avoid warnings.
(bfd_mach_o_print_section_map): Ditto.
(bfd_mach_o_section_get_entry_size): New function.
(bfd_mach_o_section_get_nbr_indirect): Simplify using the newly
added function.
(bfd_mach_o_print_dysymtab): Print address of indirect symbols.
of input file, if not specified in input file itself; all callers
updated; `binary_architecture' hack removed.
(copy_archive, copy_file): New parameter `input_arch', for
`copy_object' usage.
(copy_main): Accept `-B' (`--binary-architecture') option also
for any arch-less input ifile format, not only `binary'; remove
bfd_external_binary_architecture hack; instead, add `input_arch'
to calls to `copy_file'.
* windres.c, windmc.c : Obsolete and useless external references
to `bfd_external_binary_architecture' or `bfd_external_machine'
removed.
* binary.c (binary_object_p): Remove bfd_external_binary_architecture
hack. objcopy `-B' (`--binary-architecture') option is now handled
in a generic way.
2009-09-09 Paolo Bonzini <bonzini@gnu.org>
* stdint.m4 (GCC_HEADER_STDINT): Revert changes to this macro in
the previous two patches.
bfd:
2009-09-09 Paolo Bonzini <bonzini@gnu.org>
* configure: Regenerate.
* elf32-arm.c (elf32_arm_final_link_relocate): Set sym_flags
for the mode of target PLT entries.
(allocate_dynrelocs): Only adjust symbol type if setting its
value.
ld/testsuite/
* ld-arm/farcall-mixed-lib.d: Update.
2009-09-09 Paolo Bonzini <bonzini@gnu.org>
* stdint.m4: Store temporary file in $tmp/_GCC_STDINT_H.
bfd:
2009-09-09 Paolo Bonzini <bonzini@gnu.org>
* configure: Regnerate.
* elf.c (bfd_section_from_shdr): Do not reject sparc binaries with
section headers containing sh_link values of SHN_BEFORE or
SHN_AFTER.
* elfcode.h (elf_object_p): Likewise.
readelf.c (get_elf_section_flags): Add support for SHF_EXCLUDE and
SHF_ORDERED.
(process_section_headers): Warn about out of range sh_link
values. When displaying detailed section header information
annote the SHN_BEFORE and SHN_AFTER values.