summaryrefslogtreecommitdiffstats
path: root/contrib/binutils/bfd
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2002-02-22 04:18:42 +0000
committerobrien <obrien@FreeBSD.org>2002-02-22 04:18:42 +0000
commit670387a18a22cf299c750186efe8ca24cebb7e05 (patch)
tree70c0d6a941b83c97839ec1237622c20ea8beb870 /contrib/binutils/bfd
parentfc89183cdc6be5afa8deb7250fd15a20832ab528 (diff)
downloadFreeBSD-src-670387a18a22cf299c750186efe8ca24cebb7e05.zip
FreeBSD-src-670387a18a22cf299c750186efe8ca24cebb7e05.tar.gz
Import of Binutils from the FSF 2.12 branch (pre-.0 release).
These bits are taken from the FSF anoncvs repo on 21-Feburary-2002 20:15 PST.
Diffstat (limited to 'contrib/binutils/bfd')
-rw-r--r--contrib/binutils/bfd/ChangeLog755
-rw-r--r--contrib/binutils/bfd/Makefile.am26
-rw-r--r--contrib/binutils/bfd/Makefile.in29
-rw-r--r--contrib/binutils/bfd/archures.c152
-rw-r--r--contrib/binutils/bfd/bfd-in.h86
-rw-r--r--contrib/binutils/bfd/bfd-in2.h981
-rw-r--r--contrib/binutils/bfd/bfd.c243
-rw-r--r--contrib/binutils/bfd/coff-arm.c19
-rw-r--r--contrib/binutils/bfd/coff-rs6000.c2
-rw-r--r--contrib/binutils/bfd/coff64-rs6000.c2633
-rw-r--r--contrib/binutils/bfd/coffcode.h33
-rwxr-xr-xcontrib/binutils/bfd/config.bfd37
-rwxr-xr-xcontrib/binutils/bfd/configure589
-rw-r--r--contrib/binutils/bfd/configure.in15
-rw-r--r--contrib/binutils/bfd/cpu-powerpc.c55
-rw-r--r--contrib/binutils/bfd/doc/ChangeLog38
-rw-r--r--contrib/binutils/bfd/doc/Makefile.am4
-rw-r--r--contrib/binutils/bfd/doc/Makefile.in5
-rw-r--r--contrib/binutils/bfd/doc/chew.c131
-rw-r--r--contrib/binutils/bfd/doc/proto.str2
-rw-r--r--contrib/binutils/bfd/dwarf2.c17
-rw-r--r--contrib/binutils/bfd/elf-eh-frame.c24
-rw-r--r--contrib/binutils/bfd/elf.c37
-rw-r--r--contrib/binutils/bfd/elf32-arm.h46
-rw-r--r--contrib/binutils/bfd/elf32-i386.c26
-rw-r--r--contrib/binutils/bfd/elf32-ppc.c11
-rw-r--r--contrib/binutils/bfd/elf32-sparc.c7
-rw-r--r--contrib/binutils/bfd/elf64-alpha.c79
-rw-r--r--contrib/binutils/bfd/elf64-ppc.c76
-rw-r--r--contrib/binutils/bfd/elf64-sparc.c28
-rw-r--r--contrib/binutils/bfd/elf64-x86-64.c10
-rw-r--r--contrib/binutils/bfd/elfcore.h16
-rw-r--r--contrib/binutils/bfd/elfxx-ia64.c2
-rw-r--r--contrib/binutils/bfd/ieee.c28
-rw-r--r--contrib/binutils/bfd/ihex.c2
-rw-r--r--contrib/binutils/bfd/libbfd.c35
-rw-r--r--contrib/binutils/bfd/libbfd.h50
-rw-r--r--contrib/binutils/bfd/osf-core.c4
-rw-r--r--contrib/binutils/bfd/peXXigen.c21
-rw-r--r--contrib/binutils/bfd/po/SRC-POTFILES.in5
-rw-r--r--contrib/binutils/bfd/po/bfd.pot950
-rw-r--r--contrib/binutils/bfd/reloc.c198
-rw-r--r--contrib/binutils/bfd/rs6000-core.c735
-rw-r--r--contrib/binutils/bfd/section.c43
-rw-r--r--contrib/binutils/bfd/syms.c142
-rw-r--r--contrib/binutils/bfd/targets.c124
-rw-r--r--contrib/binutils/bfd/trad-core.c2
-rw-r--r--contrib/binutils/bfd/version.h2
48 files changed, 6600 insertions, 1955 deletions
diff --git a/contrib/binutils/bfd/ChangeLog b/contrib/binutils/bfd/ChangeLog
index b7a2496..3858d5a 100644
--- a/contrib/binutils/bfd/ChangeLog
+++ b/contrib/binutils/bfd/ChangeLog
@@ -1,12 +1,761 @@
+2002-02-20 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
+
+ * osf-core.c (osf_core_vec): OSF/1 (Digital Unix) core files are
+ little endian.
+
+2002-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Enable
+ absptr -> pcrel optimization for shared libs.
+ Only create minimal .eh_frame_hdr if absptr FDE encoding in shared
+ library cannot be converted to pcrel.
+ (_bfd_elf_eh_frame_section_offset): Return -2 if making absptr
+ relative.
+ * elf32-i386.c (elf_i386_relocate_section): If
+ _bfd_elf_section_offset returned -2, skip, but make sure the
+ relocation is installed.
+ * elf32-arm.h (elf32_arm_final_link_relocate): Likewise.
+ * elf32-cris.c (cris_elf_relocate_section): Likewise.
+ * elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
+ * elf32-i370.c (i370_elf_relocate_section): Likewise.
+ * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+ * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+ * elf32-s390.c (elf_s390_relocate_section): Likewise.
+ * elf32-sh.c (sh_elf_relocate_section): Likewise.
+ * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+ * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+ * elf64-s390.c (elf_s390_relocate_section): Likewise.
+ * elf64-sh64.c (sh_elf64_relocate_section): Likewise.
+ * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+ * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+ * elf64-alpha.c (elf64_alpha_relocate_section): Handle
+ _bfd_elf_section_offset returning -2 the same way as -1.
+ * elfxx-ia64.c (elfNN_ia64_install_dyn_reloc): Likewise.
+ * elf32-mips.c (mips_elf_create_dynamic_relocation): Add FIXME
+ and BFD_ASSERT.
+ * elf64-mips.c (mips_elf64_create_dynamic_relocation): Likewise.
+
+2002-02-18 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * elf-hppa.h (elf_hppa_reloc_final_type): New function stripped
+ from _bfd_elf_hppa_gen_reloc_type.
+ (_bfd_elf_hppa_gen_reloc_type): Remove duplicate prototype.
+ * elf32-hppa.h (elf32_hppa_reloc_final_type): Add protptype.
+ * elf32-hppa.c: Include elf32-hppa.h before elf-hppa.h.
+ * elf64-hppa.h (elf64_hppa_reloc_final_type): Add protptype.
+
+2002-02-17 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * mmo.c: Correct and improve comments.
+ (mmo_write_chunk): Store trailing byte in bfd buffer; don't
+ zero-pad. Use input to fill up non-empty bfd buffer.
+ (mmo_flush_chunk): New function.
+ (mmo_write_loc_chunk): Add parameter last_vmap, all callers
+ changed. Don't emit location specifier if VMA is same as
+ *LAST_VMAP after omitting leading zero contents. Call
+ mmo_flush_chunk before emitting location specifier.
+ (mmo_write_loc_chunk_list): Call mmo_flush_chunk when finished
+ with mmo_write_loc_chunk calls.
+ (mmo_internal_write_section): Call mmo_flush_chunk after
+ mmo_write_chunk.
+ (mmo_write_symbols_and_terminator): Move :Main to first position
+ in symbol array. Add faked one if it does not exist if there are
+ other symbols. Don't add it if there are no symbols at all. Move
+ out test for value of :Main from symbol loop. Rename table
+ fakemain to maintable and variable mainsym to fakemain.
+
+2002-02-15 Richard Henderson <rth@redhat.com>
+
+ * elf64-alpha.c (elf64_alpha_relocate_section) [BRSGP]: A target
+ section with no got matches any got. Simplify error generaion.
+
+2002-02-14 Alan Modra <amodra@bigpond.net.au>
+
+ * elf.c (elf_fake_sections): Use SHT_NOBITS when SEC_NEVER_LOAD.
+
+2002-02-13 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * config.bfd (sh-*-linux*, sh-*-elf* | sh-*-rtemself*): Add sh64
+ vectors.
+ (sh-*-netbsdelf*): New, to trump sh*-*-netbsdelf* and add sh64
+ vectors.
+
+2002-02-13 Matt Fredette <fredette@netbsd.org>
+
+ * elf32-m68k.c (elf32_m68k_print_private_bfd_data): Recognize
+ EF_M68000.
+
+2002-02-12 Alexandre Oliva <aoliva@redhat.com>
+
+ * elf-m10300.c (mn10300_elf_relax_section): Skip section before
+ loading its contents if there's nothing to do in it.
+
+2002-02-12 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc64_elf_size_stubs): Correct test for crossing
+ 64k boundary.
+
+ * elf64-ppc.c (ppc64_elf_size_dynamic_sections): Add dynamic
+ DT_PPC64_OPD and DT_PPC64_OPDSZ tags.
+ (ppc64_elf_finish_dynamic_sections): Set values for them.
+
+2002-02-11 Alexandre Oliva <aoliva@redhat.com>
+
+ * elf32-sh.c: Added missing prototypes.
+ * elf32-sh64.c: Likewise.
+ (sh_elf_align_loads): Mark unused args as such.
+ * elf64-sh64.c: Added missing prototypes.
+ (struct elf_sh64_link_hash_entry): Fix typo.
+ (sh_elf64_relocate_section): Fix info argument passed to
+ _bfd_elf_section_offset.
+
+2002-02-10 Daniel Jacobowitz <drow@mvista.com>
+
+ * coff-rs6000.c (xcoff_generate_rtinit): Silence uninitialized
+ variable warnings.
+ * elf32-sh.c (sh_elf_relax_section): Silence signed/unsigned
+ comparison warning.
+ * trad-core.c (trad_unix_core_file_p): Silence pointer/integer
+ cast warnings for the common case.
+
+2002-02-09 Richard Henderson <rth@redhat.com>
+
+ * elf64-alpha.c (elf64_alpha_howto): Add R_ALPHA_BRSGP.
+ (elf64_alpha_reloc_map, elf64_alpha_check_relocs): Likewise.
+ (elf64_alpha_relocate_section): Likewise.
+ * reloc.c (BFD_RELOC_ALPHA_BRSGP): New.
+ * bfd-in2.h, libbfd.h: Rebuild.
+
+2002-02-09 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * elf64-mmix.c (_bfd_mmix_finalize_linker_allocated_gregs): Check
+ that base-plus-offset reloc accounting is consistent.
+ (mmix_elf_relax_section): Keep base-plus-offset reloc accounting
+ up to date for undefined symbols.
+
+2002-02-08 Eric Christopher <echristo@redhat.com>
+
+ From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * elf32-mips.c (_bfd_mips_elf_fake_sections): Don't create .rela
+ sections for the O32 ABI.
+
+2002-02-08 Chris Demetriou <cgd@broadcom.com>
+
+ * elf32-arm.h: Fix formatting of _("...").
+ * elf32-d10v.c: Likewise.
+ * elf32-m68k.c: Likewise.
+ * elf32-mips.c: Likewise.
+
+2002-02-08 Ivan Guzvinec <ivang@opencores.org>
+
+ * coff-or32.c: Fix compile time warning messages.
+
+2002-02-08 Alexandre Oliva <aoliva@redhat.com>
+
+ Contribute sh64-elf.
+ 2002-01-23 Alexandre Oliva <aoliva@redhat.com>
+ * reloc.c (R_SH_GOTPLT32, R_SH_GOT_LOW16, R_SH_GOT_MEDLOW16,
+ R_SH_GOT_MEDHI16, R_SH_GOT_HI16, R_SH_GOTPLT_LOW16,
+ R_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_HI16,
+ R_SH_PLT_LOW16, R_SH_PLT_MEDLOW16, R_SH_PLT_MEDHI16,
+ R_SH_PLT_HI16, R_SH_GOTOFF_LOW16, R_SH_GOTOFF_MEDLOW16,
+ R_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_HI16, R_SH_GOTPC_LOW16,
+ R_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDHI16, R_SH_GOTPC_HI16,
+ R_SH_GOT10BY4, R_SH_GOTPLT10BY4, R_SH_GOT10BY8, R_SH_GOTPLT10BY8,
+ R_SH_COPY64, R_SH_GLOB_DAT64, R_SH_JMP_SLOT64, R_SH_RELATIVE64):
+ New relocs.
+ * libbfd.h, bfd-in2.h: Rebuilt.
+ * elf32-sh.c (sh_elf_howto_table): Define new relocs.
+ (sh_reloc_map): Map them.
+ (PLT_ENTRY_SIZE, elf_sh_plt0_entry_be, elf_sh_plt0_entry_le,
+ elf_sh_plt_entry_be, elf_sh_plt_entry_le, elf_sh_pic_plt_entry_be,
+ elf_sh_pic_plt_entry_le, elf_sh_plt0_entry, elf_sh_plt_entry,
+ elf_sh_pic_plt_entry, elf_sh_sizeof_plt, elf_sh_plt_plt0_offset,
+ elf_sh_plt0_gotplt_offset, elf_sh_plt_temp_offset,
+ elf_sh_plt_symbol_offset, elf_sh_plt_reloc_offset,
+ movi_shori_putval) [INCLUDE_SHMEDIA]: New.
+ (elf_sh_link_hash_entry) [INCLUDE_SHMEDIA]: Add
+ datalabel_got_offset.
+ (sh_elf_link_hash_newfunc): Initialize it.
+ (sh_elf_relocate_section): Augment the scope of
+ seen_stt_datalabel. Introduce GOTPLT support. Extend GOTPC, PLT,
+ GOT and GOTOFF handling to new SHmedia relocation types. Support
+ GOT_BIAS.
+ (sh_elf_check_relocs): Likewise.
+ (sh_elf_finish_dynamic_symbol) [TARGET_SHMEDIA]: Set up values in
+ PLT entries using movi_shori_putval. Support GOT_BIAS.
+ (sh_elf_finish_dynamic_sections): Likewise.
+ * elf32-sh64.c (shmedia_prepare_reloc): Do not add addend to
+ relocation, it's now done by the caller.
+ (GOT_BIAS): New.
+ * elf64-sh64.c (GOT_BIAS, PLT_ENTRY_SIZE, elf_sh64_sizeof_plt,
+ elf_sh64_plt_plt0_offset, elf_sh64_plt0_gotplt_offset,
+ elf_sh64_plt_temp_offset, elf_sh64_plt_symbol_offset,
+ elf_sh64_plt_reloc_offset, ELF_DYNAMIC_INTERPRETER,
+ elf_sh64_pcrel_relocs_copied, elf_sh64_link_hash_entry,
+ elf_sh64_link_hash_table, sh64_elf64_link_hash_traverse,
+ sh64_elf64_hash_table): New.
+ (sh_elf64_howto_table): Introduce new relocs.
+ (sh_elf64_info_to_howto): Accept new PIC relocs.
+ (sh_elf64_relocate_section): Augment the scope of
+ seen_stt_datalabel. Support new PIC relocs.
+ (sh_elf64_check_relocs): Support new PIC relocs.
+ (elf_sh64_plt0_entry_be, elf_sh64_plt0_entry_le,
+ elf_sh64_plt_entry_be, elf_sh64_plt_entry_le,
+ elf_sh64_pic_plt_entry_be, elf_sh64_pic_plt_entry_le,
+ elf_sh64_plt0_entry, elf_sh64_plt_entry, elf_sh64_pic_plt_entry,
+ sh64_elf64_link_hash_newfunc, sh64_elf64_link_hash_table_create,
+ movi_shori_putval, movi_3shori_putval,
+ sh64_elf64_create_dynamic_sections,
+ sh64_elf64_adjust_dynamic_symbol, sh64_elf64_discard_copies,
+ sh64_elf64_size_dynamic_sections,
+ sh64_elf64_finish_dynamic_symbol,
+ sh64_elf64_finish_dynamic_sections): New.
+ (elf_backend_create_dynamic-sections,
+ bfd_elf64_bfd_link_hash_table_create,
+ elf_backend_adjust_dynamic_symbol,
+ elf_backend_size_dynamic_sections,
+ elf_backend_finish_dynamic_symbol,
+ elf_backend_finish_dynamic_sections, elf_backend_want_got_plt,
+ elf_backend_plt_readonly, elf_backend_want_plt_sym,
+ elf_backend_got_header_size, elf_backend_plt_header_size):
+ Define.
+ 2001-05-16 Alexandre Oliva <aoliva@redhat.com>
+ * elf32-sh.c: Renumbered and renamed some SH5 relocations to
+ match official numbers and names; moved unmaching ones to the
+ range 0xf2-0xff.
+ * elf32-sh64.c, elf64-sh64.c: Likewise.
+ 2001-03-12 DJ Delorie <dj@redhat.com>
+ * elf32-sh.c (sh_elf_relax_section): Don't relax SHmedia
+ sections.
+ 2001-03-12 DJ Delorie <dj@redhat.com>
+ * elf32-sh64.c (shmedia_prepare_reloc): Validate relocs that must
+ be aligned.
+ * elf64-sh64.c (sh_elf64_relocate_section): Ditto.
+ 2001-01-14 Hans-Peter Nilsson <hpn@cygnus.com>
+ * elf32-sh64.c (bfd_elf32_bfd_copy_private_section_data): Define.
+ (sh64_elf_fake_sections): Set type to SHT_SH5_CR_SORTED for a
+ .cranges section with SEC_SORT_ENTRIES set.
+ (sh64_backend_section_from_shdr): Set SEC_SORT_ENTRIES on an
+ incoming sorted .cranges section.
+ (sh64_bfd_elf_copy_private_section_data): New.
+ (sh64_elf_final_write_processing): Only sort .cranges and modify
+ start address if called by linker.
+ 2001-01-08 Ben Elliston <bje@redhat.com>
+ * elf32-sh64.c (sh64_elf_final_write_processing): Activate
+ Hans-Peter Nilsson's set bit 0 patch from 2001-01-06.
+ * elf64-sh64.c (sh64_elf64_final_write_processing): Ditto.
+ 2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com>
+ * elf64-sh64.c (sh_elf64_howto_table): No open brace at start of
+ line. Add comments before all entries.
+ <R_SH_PT_16, R_SH_SHMEDIA_CODE>: Correct and clarify describing
+ comment.
+ (sh_elf64_reloc): Correct head comment.
+ (sh_elf64_relocate_section): Correct spacing.
+ <relocating for a local symbol>: Do not honour STO_SH5_ISA32;
+ instead call reloc_dangerous callback.
+ <case R_SH_SHMEDIA_CODE>: New case.
+ (sh_elf64_gc_mark_hook): Correct spacing.
+ (sh_elf64_check_relocs): Ditto.
+ * elf32-sh64.c (shmedia_prepare_reloc) <case R_SH_SHMEDIA_CODE>:
+ New case.
+ * elf32-sh.c: Correct #endif comments for #ifndef-wrapped
+ functions.
+ (sh_elf_howto_table) <R_SH_PT_16, R_SH_SHMEDIA_CODE>: Correct,
+ clarify describing comment. Add comments before all entries.
+ (sh_elf_relocate_section) <relocating for a local symbol>: Do not
+ honour STO_SH5_ISA32; instead call reloc_dangerous callback.
+ 2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com>
+ Sort .cranges section in final link. Prepare to set bit 0 on
+ entry address.
+ * elf32-sh64.c (struct sh64_find_section_vma_data): New.
+ (sh64_elf_link_output_symbol_hook): Fix typo in prototype.
+ (sh64_elf_set_mach_from_flags): Set SEC_DEBUGGING on incoming
+ .cranges section.
+ (sh64_backend_section_from_shdr): New, to recognize
+ SHT_SH5_CR_SORTED on incoming .cranges section.
+ (elf_backend_section_from_shdr): Define.
+ (sh64_elf_final_write_processing): Sort outgoing .cranges
+ section. (New, temporarily disabled:) Set bit 0 on entry address
+ according to ISA type.
+ (sh64_find_section_for_address): New.
+ (crange_qsort_cmpb, crange_qsort_cmpl, crange_bsearch_cmpb,
+ crange_bsearch_cmpl): Move here from opcodes/sh64-dis.c.
+ (sh64_address_in_cranges): Move here from opcodes/sh64-dis.c. Use
+ bfd_malloc, not xmalloc.
+ (sh64_get_contents_type): Move here from opcodes/sh64-dis.c. Make
+ global.
+ * elf32-sh64.c (sh64_elf64_final_write_processing): New, (but
+ temporarily disabled) setting bit 0 on entry address.
+ (elf_backend_final_write_processing): Define.
+ 2001-01-05 Hans-Peter Nilsson <hpn@cygnus.com>
+ * elf32-sh.c (sh_elf_howto_table) <R_SH_PT_16>: Adjust fields to
+ be a proper relocation for PTA and PTB rather than a marker.
+ <R_SH_IMMU5, R_SH_IMMS6, R_SH_IMMU6, R_SH_IMMS10, R_SH_IMMS10BY2,
+ R_SH_IMMS10BY4, R_SH_IMMS10BY8, R_SH_IMMS16, R_SH_IMMU16,
+ R_SH_IMM_LOW16, R_SH_IMM_LOW16_PCREL, R_SH_IMM_MEDLOW16,
+ R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16_PCREL,
+ R_SH_IMM_HI16, R_SH_IMM_HI16_PCREL, R_SH_64, R_SH_64_PCREL>:
+ Zero src_mask.
+ * elf64-sh64.c: Ditto.
+ (sh_elf64_relocate_section) <case R_SH_PT_16>: New case.
+ * elf32-sh64.c: Include opcodes/sh64-opc.h
+ (shmedia_prepare_reloc): Take a bfd_link_info pointer as first
+ argument. Drop const qualifiers from "bfd *" and "bfd_byte *"
+ parameters. No unused parameters. Caller changed.
+ <case R_SH_PT_16>: New case.
+ * Makefile.am (elf32-sh64.lo): Add dependency on sh64-opc.h.
+ * Makefile.in: Regenerate.
+ 2000-12-30 Hans-Peter Nilsson <hpn@cygnus.com>
+ * elf64-sh64.c (sh64_elf64_fake_sections): Set SHF_SH5_ISA32 for
+ all code sections.
+ (sh_elf64_set_mach_from_flags): Change from EF_SH64 to EF_SH5.
+ (sh64_elf_merge_private_data): Ditto.
+ * elf32-sh64.c (sh64_elf_fake_sections): Use sh64_elf_section_data
+ to access stored section flags.
+ (sh64_elf_final_write_processing): Return immediately unless
+ called by linker. Use sh64_elf_section_data (cranges) to get size
+ of linker-generated cranges entries.
+ (sh64_elf_copy_private_data): Add missing "return true".
+ (sh64_elf_set_mach_from_flags): Change from EF_SH64 to EF_SH5.
+ (sh_elf64_merge_private_data): Ditto.
+ 2000-12-19 Hans-Peter Nilsson <hpn@cygnus.com>
+ * elf64-sh64.c (sh64_elf64_fake_sections): New, copy of
+ elf64-sh64.c:sh64_elf_fake_sections.
+ (elf_backend_fake_sections): Define as sh64_elf64_fake_sections.
+ 2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com>
+ * elf32-sh64.c (sh64_elf_copy_private_data_internal): Delete.
+ (sh64_elf_final_write_processing): New.
+ (elf_backend_final_write_processing): Define.
+ (sh64_elf_fake_sections): Get header flags from tdata field.
+ (sh64_elf_copy_private_data): Do not call
+ sh64_elf_copy_private_data_internal, just copy e_flags field.
+ (sh64_elf_merge_private_data): Do not call
+ sh64_elf_copy_private_data_internal.
+ 2000-12-12 Hans-Peter Nilsson <hpn@cygnus.com>
+ Remove EF_SH64_ABI64, let ELF size make difference.
+ Remove SH64-specific BFD section flag.
+ * elf32-sh64.c (sh64_elf_fake_sections): Recognize section as
+ containing SHmedia through elf_section_data (asect)->tdata
+ non-zero, not using a BFD section flag.
+ (sh64_elf_set_mach_from_flags): Don't recognize EF_SH64_ABI64.
+ (sh64_elf_merge_private_data): Similar.
+ (elf_backend_section_flags): Don't define.
+ (sh64_elf_backend_section_flags): Delete.
+ * elf64-sh64.c (sh_elf64_set_mach_from_flags): Recognize EF_SH64,
+ not EF_SH64_ABI64.
+ (sh_elf64_merge_private_data): Similar.
+ * section.c (Section flags definitions): Don't define
+ SEC_SH_ISA_SHMEDIA.
+ (bfd-in2.h): Regenerate.
+ 2000-12-09 Hans-Peter Nilsson <hpn@cygnus.com>
+ Make DataLabel references work with partial linking.
+ * elf32-sh64.c: Fix formatting.
+ (sh64_elf_link_output_symbol_hook): New.
+ (elf_backend_link_output_symbol_hook): Define to
+ sh64_elf_link_output_symbol_hook.
+ (sh64_elf_add_symbol_hook): Make DataLabel symbol just global
+ undefined if partial linking. Adjust sanity check.
+ * elf64-sh64.c (sh64_elf64_link_output_symbol_hook): New.
+ (elf_backend_link_output_symbol_hook): Define to
+ sh64_elf64_link_output_symbol_hook.
+ (sh64_elf64_add_symbol_hook): Make DataLabel symbol just global
+ undefined if partial linking. Adjust sanity check.
+ 2000-12-07 Hans-Peter Nilsson <hpn@cygnus.com>
+ Implement semantics for inter-file DataLabel references.
+ * elf64-sh64.c (DATALABEL_SUFFIX): Define.
+ (sh64_elf64_add_symbol_hook): New.
+ (sh_elf64_relocate_section): If passing an indirect symbol with
+ st_type STT_DATALABEL on the way to a symbol with st_other
+ STO_SH5_ISA32, do not bitor 1 to the relocation.
+ (elf_backend_add_symbol_hook): Define to
+ sh64_elf64_add_symbol_hook.
+ * elf64-sh32.c: Tweak comments.
+ (DATALABEL_SUFFIX): Define.
+ (sh64_elf_add_symbol_hook): New.
+ (elf_backend_add_symbol_hook): Define to sh64_elf_add_symbol_hook.
+ * elf32-sh.c (sh_elf_relocate_section): If passing an indirect
+ symbol with st_type STT_DATALABEL on the way to a symbol with
+ st_other STO_SH5_ISA32, do not bitor 1 to the relocation.
+ 2000-12-05 Hans-Peter Nilsson <hpn@cygnus.com>
+ Pass through STT_DATALABEL.
+ * elf32-sh64.c (sh64_elf_get_symbol_type): New.
+ (elf_backend_get_symbol_type): Define.
+ * elf64-sh64.c (sh64_elf64_get_symbol_type): New.
+ (elf_backend_get_symbol_type): Define.
+ 2000-11-30 Hans-Peter Nilsson <hpn@cygnus.com>
+ * elf32-sh64.c: Tweak comments.
+ (sh64_elf_copy_private_data_internal): Add prototype.
+ (bfd_elf32_bfd_set_private_flags): Define.
+ (sh64_elf_copy_private_data_internal): Compare machine name, not
+ textual BFD target name, to check whether to copy section flag
+ SHF_SH5_ISA32.
+ (sh64_elf_merge_private_data): Validize bfd_get_arch_size.
+ Tweak section-contents-type-mismatch message.
+ (shmedia_prepare_reloc): Add ATTRIBUTE_UNUSED markers.
+ Validize reloc-types.
+ * elf64-sh64.c: New file.
+ * targets.c (bfd_elf64_sh64_vec, bfd_elf64_sh64l_vec): Declare.
+ * Makefile.am (BFD64_BACKENDS): Add elf64-sh64.lo.
+ (BFD64_BACKENDS_CFILES): Add elf64-sh64.c.
+ Regenerate dependencies.
+ * Makefile.in: Regenerate.
+ * config.bfd (sh64-*-elf*): Add bfd_elf64_sh64_vec and
+ bfd_elf64_sh64l_vec.
+ * configure.in: Handle bfd_elf64_sh64_vec and
+ bfd_elf64_sh64l_vec.
+ * configure: Regenerate.
+ * po/POTFILES.in: Regenerate.
+ * po/bfd.pot: Regenerate.
+ 2000-11-29 Hans-Peter Nilsson <hpn@cygnus.com>
+ * elf32-sh64.c (sh64_elf_set_mach_from_flags): Do not recognize
+ anything else but EF_SH64 and EF_SH64_ABI64.
+ (sh64_elf_merge_private_data): Emit error for anything else but
+ EF_SH64 and EF_SH64_ABI64.
+ * config.bfd: Remove bfd_elf32_shblin_vec and bfd_elf32_shlin_vec
+ from targ_selvecs.
+ * configure.in: Add cofflink.lo to bfd_elf32_sh64_vec and
+ bfd_elf32_sh64l_vec as a temporary measure.
+ * configure: Regenerate.
+ 2000-11-27 Hans-Peter Nilsson <hpn@cygnus.com>
+ * cpu-sh.c (arch_info_struct): Include sh5 item
+ unconditionalized.
+ * config.bfd (sh64-*-elf*): Do not set targ_cflags.
+ Add targ_selvecs bfd_elf32_sh_vec, bfd_elf32_shl_vec,
+ bfd_elf32_shblin_vec and bfd_elf32_shlin_vec.
+ * elf32-sh64.c: Tweak comments.
+ (sh64_elf_set_mach_from_flags): Recognize all machine flags that
+ are proper subsets of SH64 as bfd_mach_sh5. Add EF_SH64_ABI64.
+ (sh64_elf_copy_private_data_internal): Wrap long line.
+ (sh64_elf_merge_private_data): Rewrite to allow objects from
+ SH64 subsets to be linked together.
+ (INCLUDE_SHMEDIA): Define.
+ * elf32-sh.c (sh_elf_relocate_section) <local symbol>:
+ Parenthesize plus-expression inside or-expression.
+ <global symbol>: Ditto.
+ (sh_elf_set_mach_from_flags): Remove code refusing
+ deleted EF_SH64_32BIT_ABI flag.
+ 2000-11-26 Hans-Peter Nilsson <hpn@cygnus.com>
+ * elf32-sh.c (sh_elf_howto_table) <R_SH_IMM_LOW16_PCREL,
+ R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16_PCREL,
+ R_SH_IMM_HI16_PCREL, R_SH_64_PCREL>: Set pcrel_offset to true.
+ (sh_elf_relocate_section) <local symbol>: Or 1 in
+ calculation of relocation if sym->st_other & STO_SH5_ISA32.
+ <global symbol>: Ditto if h->other & STO_SH5_ISA32.
+ * elf32-sh64.c (shmedia_prepare_reloc): Add rel->r_addend to
+ relocation.
+ 2000-11-24 Hans-Peter Nilsson <hpn@cygnus.com>
+ * Makefile.am (BFD32_BACKENDS): Add elf32-sh64.lo.
+ (BFD32_BACKENDS_CFILES): Add elf32-sh64.c.
+ Regenerate dependencies.
+ * Makefile.in: Regenerate.
+ * archures.c: Add bfd_mach_sh5.
+ * config.bfd: Map targ_cpu sh* to bfd_sh_arch.
+ Handle sh64-*-elf*. Set targ_cflags to -DINCLUDE_SHMEDIA.
+ * configure.in: Handle bfd_elf32_sh64_vec and bfd_elf32_sh64l_vec.
+ * configure: Regenerate.
+ * reloc.c (BFD_RELOC_SH_SHMEDIA_CODE, BFD_RELOC_SH_IMMU5,
+ BFD_RELOC_SH_IMMS6, BFD_RELOC_SH_IMMS6BY32, BFD_RELOC_SH_IMMU6,
+ BFD_RELOC_SH_IMMS10, BFD_RELOC_SH_IMMS10BY2,
+ BFD_RELOC_SH_IMMS10BY4, BFD_RELOC_SH_IMMS10BY8,
+ BFD_RELOC_SH_IMMS16, BFD_RELOC_SH_IMMU16, BFD_RELOC_SH_IMM_LOW16,
+ BFD_RELOC_SH_IMM_LOW16_PCREL, BFD_RELOC_SH_IMM_MEDLOW16,
+ BFD_RELOC_SH_IMM_MEDLOW16_PCREL, BFD_RELOC_SH_IMM_MEDHI16,
+ BFD_RELOC_SH_IMM_MEDHI16_PCREL, BFD_RELOC_SH_IMM_HI16,
+ BFD_RELOC_SH_IMM_HI16_PCREL, BFD_RELOC_SH_PT_16): New relocations.
+ * cpu-sh.c [INCLUDE_SHMEDIA] (arch_info_struct): Define and link
+ in item for SH5.
+ * elf32-sh.c [INCLUDE_SHMEDIA] (sh_elf_howto_table): Add howto items
+ for SHmedia relocs.
+ [INCLUDE_SHMEDIA] (sh_rel): Add mappings for SHmedia relocs.
+ [INCLUDE_SHMEDIA] (sh_elf_relocate_section) [default]: Call
+ shmedia_prepare_reloc, goto final_link_relocate if it returns
+ non-zero, else fail as before.
+ (sh_elf_set_mach_from_flags): Provide function only if not defined
+ as macro. Do not recognize objects with EF_SH64_32BIT_ABI set.
+ (sh_elf_set_private_flags): Provide function only if not defined
+ as a macro.
+ (sh_elf_copy_private_data): Similar.
+ (sh_elf_merge_private_data): Similar.
+ * section.c (SEC_SH_ISA_SHMEDIA): New.
+ * targets.c (bfd_elf32_sh64_vec, bfd_elf32_sh64l_vec): Declare.
+ * elf32-sh64.c: New file.
+ * libbfd.h: Regenerate.
+ * bfd-in2.h: Regenerate.
+ * po/POTFILES.in: Regenerate.
+ * po/bfd.pot: Regenerate.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+
+2002-02-07 Daniel Jacobowitz <drow@mvista.com>
+
+ * bfd-in.h: Update <stdbool.h> check to only see if <stdbool.h> has
+ been included, not drag it in.
+ * bfd-in2.h: Regenerate.
+
+2002-02-06 H.J. Lu (hjl@gnu.org)
+
+ * elf32-mips.c (_bfd_mips_elf_merge_private_bfd_data): Update
+ the mach and ISA fields if necessary.
+
+2002-02-06 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * coffcode.h (coff_set_arch_mach_hook): Select the highest known
+ ARM architecture when an F_ARM_5 flag is detected, since we cannot
+ be sure exactly which architecture this represents.
+
+2002-02-05 Nick Clifton <nickc@redhat.com>
+
+ * po/tr.po: Updated translation.
+
+2002-02-05 Alan Modra <amodra@bigpond.net.au>
+
+ From Jimi X <jimix@watson.ibm.com>
+ * archures (bfd_mach_ppc64): Define.
+ (bfd_powerpc_arch): Rename to bfd_powerpc_archs.
+ (bfd_powerpc_arch): Define.
+ * bfd-in2.h: Regenerate.
+ * cpu-powerpc.c (arch_info_struct): Rename to bfd_powerpc_archs.
+ (bfd_powerpc_arch): Move to tail of bfd_powerpc_archs.
+ (bfd_powerpc_archs): Add default powerpc64 arch.
+
+2002-02-05 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc64_elf_size_dynamic_sections): Check for relocs
+ against section syms in readonly sections. Don't do the global
+ sym check if we find one.
+ * elf64-s390.c (elf_s390_size_dynamic_sections): Likewise.
+ * elf32-hppa.c (elf32_hppa_size_dynamic_sections): Likewise.
+ * elf32-s390.c (elf_s390_size_dynamic_sections): Likewise.
+ (elf_s390_grok_prstatus): Add missing prototype.
+
+2002-02-04 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * elf64-mmix.c (mmix_dump_bpo_gregs): New function.
+ (mmix_elf_check_common_relocs) <case R_MMIX_BASE_PLUS_OFFSET>:
+ Call bfd_get_section_by_name only once. Initialize
+ bpodata->n_bpo_relocs_this_section.
+ (_bfd_mmix_prepare_linker_allocated_gregs): Remove comment
+ referring to DSOs.
+ (bpo_reloc_request_sort_fn): Don't use difference of values as
+ return-value.
+
+2002-02-02 David O'Brien <obrien@FreeBSD>
+
+ * configure.in: Tweak the FreeBSD 4.x recognition more. Only treat
+ version 4.5 and later the same as 5-CURRENT.
+ * configure: Re-generate.
+
+2002-02-02 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * config.bfd (hppa*-*-netbsd*): New target.
+
+2002-01-31 Philipp Thomas <pthomas@suse.de>
+
+ * coff-arm.c (coff_arm_merge_private_bfd_data): Move ERROR
+ to front of message. Unify messages with elf32-arm.h. Use
+ commas where neccessary.
+ * elf32-arm.h (elf32_arm_merge_private_bfd_data): Use all upcase
+ ERROR in messages. Unify messages with coff-arm.c. Correct
+ VFP/FPA error message.
+ (elf32_arm_print_private_bfd_data): Don't mark APCS-26 and
+ APCS-32 for translation.
+
+2002-02-01 Hans-Peter Nilsson <hp@bitrange.com>
+
+ Perform on-demand global register allocation from
+ R_MMIX_BASE_PLUS_OFFSET relocs.
+ * elf64-mmix.c (struct bpo_reloc_section_info, struct
+ bpo_reloc_request, struct bpo_greg_section_info): New.
+ (mmix_elf_check_common_relocs, mmix_elf_gc_sweep_hook,
+ bpo_reloc_request_sort_fn, mmix_elf_relax_section,
+ _bfd_mmix_check_all_relocs,
+ _bfd_mmix_prepare_linker_allocated_gregs,
+ _bfd_mmix_finalize_linker_allocated_gregs): New functions.
+ (elf_mmix_howto_table): Correct src_mask for most relocs.
+ (mmix_elf_perform_relocation) <case R_MMIX_BASE_PLUS_OFFSET>: New
+ case.
+ (mmix_final_link_relocate) <case R_MMIX_BASE_PLUS_OFFSET>: New
+ case. Fix typo in comment. New label do_mmix_reloc.
+ (mmix_elf_check_relocs): Abuse bfd_link_info member base_file to
+ store first object file with a base-plus-offset reloc. Call
+ mmix_elf_check_common_relocs for the part common with mmo.
+ (mmix_elf_final_link): Write out linker-allocated register
+ contents section.
+ (elf_backend_gc_sweep_hook): Define.
+ (bfd_elf64_bfd_relax_section): Define.
+
+ * mmo.c: Don't include <ctype.h>
+ (mmo_init): Correct init-once logic.
+
+2002-02-01 Tom Rix <trix@redhat.com>
+
+ * config.bfd: Conditionally support <aiaff> for pre AIX 4.3.
+
+2002-02-01 Alan Modra <amodra@bigpond.net.au>
+
+ * Makefile.am: Run "make dep-am"
+ * Makefile.in: Regenerate.
+
+2002-01-31 David O'Brien <obrien@FreeBSD>
+
+ * configure.in: Recognize the differences in core files from FreeBSD
+ 4.{0,1} and later versions of 4.x. This treats 4.2+ the same as
+ 5-CURRENT.
+ * configure: Regenerate.
+
+2002-01-31 Ivan Guzvinec <ivang@opencores.org>
+
+ * coff-or32.c: New file.
+ * cpu-or32.c: New file.
+ * elf32-or32.c: New file.
+ * archures.c: Add support for or32.
+ * targets.c: Add support for or32.
+ * bfd-in2.h: Regenerate.
+ * coffcode.h (coff_set_arch_mach_hook, coff_set_flags,
+ coff_write_object_contents): Add support for or32.
+ * config.bfd: Add target.
+ * configure.in: Add support for or32.
+ * configure: Regenerate.
+ * Makefile.am: Add support for or32.
+ * Makefile.in: Regenerate.
+ * po/SRC-POTFILES.in: Add or32 files.
+ * po/bfd.pot: Regenerate.
+
+2002-01-31 Nick Clifton <nickc@cambridge.redhat.com>
+ Don Lindsay <lindsayd@cisco.com>
+
+ * elf32-mips.c (mips_elf_calculate_relocation): Replace 'return
+ false' with a return of a bfd_reloc_ error code.
+
+2002-01-31 Hans-Peter Nilsson <hp@axis.com>
+
+ * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
+ unexport unreferenced symbols when --export-dynamic. Call
+ _bfd_elf_strtab_delref when unexporting.
+
+2002-01-30 Daniel Jacobowitz <drow@mvista.com>
+
+ * bfd-in.h: Include <stdbool.h> if it is available.
+ * bfd-in2.h: Regenerated.
+
+2002-01-31 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (func_desc_adjust): STV_PROTECTED functions should
+ not go via the plt.
+
+2002-01-30 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * archures.c: Tidy up formatting of embedded comments.
+ * bfd.c: Tidy up formatting of embedded comments.
+ * bfd-in.h: Fix formatting of comments.
+ * reloc.c: Tidy up formatting of ordinary & embedded comments.
+ * section.c: Tidy up formatting of embedded comments.
+ * syms.c: Tidy up formatting of embedded comments.
+ * targets.c: Tidy up formatting of embedded comments.
+
+ * bfd-in2.h: Regenerate.
+
+2002-01-30 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * vms-tir.c (cmd_name): New function.
+ (tir_cmd_name): New function.
+ (etir_sta, etir_sto, etir_opr, etir_stc): Use cmd_name().
+ (tir_opr, tir_ctl, tir_cmd): use tir_cmd_name().
+ Fix formatting.
+
+ * peXXigen.c (pe_print_idata): Rearrange message to aid in
+ translation.
+ (pe_print_pdata): Rearrange message to aid in translation.
+
+ * libbfd.c (warn_deprecated): Rearrange error message to aid in
+ translation.
+
+ * ihex.c (ihex_write_object_contents): Fix spelling typo.
+
+ * ieee.c (ieee_slurp_external_symbols): Remove spurious space.
+
+ * elf64-sparc.c (sparc64_elf_add_symbol_hook): Rearrange error
+ message to aid in translation.
+
+ * elf64-mmix.c (mmix_final_link_relocate): Rearrange error message
+ to aid in translation.
+
+ * elf32-arm.h (elf32_arm_merge_private_bfd_data): Fix typo.
+
+2002-01-30 Philipp Thomas <pthomas@suse.de>
+
+ * coff-arm.c, elf32-elf.h: Unify messages.
+
+2002-01-30 Nick Clifton <nickc@redhat.com>
+
+ * po/sv.po: Updated translation.
+
+2002-01-30 Philipp Thomas <pthomas@suse.de>
+
+ * dwarf2.c (read_abbrev): Use full section name in error message.
+ (decode_line_info): Likewise.
+
+ * elf.c (_bfd_elf_symbol_from_bfd_symbol): Don't translate debugging
+ message.
+
+2002-01-30 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (func_desc_adjust): Only provide missing function
+ descriptor symbols for undefined function code syms. Clear
+ ELF_LINK_NON_ELF so that they can stay weak.
+
+2002-01-29 Chris Demetriou <cgd@broadcom.com>
+ Mitch Lichtenberg <mpl@broadcom.com>
+
+ * bfd-in.h (bfd_mips_elf32_create_embedded_relocs): New prototype.
+ * elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): New function
+ to handle 32-bit ELF embedded reloc (ld --embedded-relocs)
+ generation.
+ * bfd-in2.h: Regenerate.
+
+2002-01-29 Chris Demetriou <cgd@broadcom.com>
+
+ * elf32-mips.c: Add additional comments about HI16 relocation
+ processing.
+ (_bfd_mips_elf_hi16_reloc): Don't subtract address here for
+ pc-relative relocations. (Reverts change made on 2001-10-31.)
+ (_bfd_mips_elf_lo16_reloc): Subtract address of LO16 part here
+ for pc-relative relocations.
+ (mips_elf_calculate_relocation): Add a comment about a kludge
+ in the R_MIPS_GNU_REL_HI16 handling.
+ (_bfd_mips_elf_relocate_section): Implement that kludge;
+ adjust pc-relative HI16 relocation for difference in HI16 and
+ LO16 addresses, since it can't easily be done in
+ mips_elf_calculate_relocation.
+
+2002-01-29 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * elf32-i386 (elf_i386_adjust_dynamic_symbol): Do not replace PLT32
+ relocations with PC32 relocations for undefined or weak symbols.
+ * elf32-s390 (elf_i386_adjust_dynamic_symbol): Likewise.
+ * elf64-s390x (elf_i386_adjust_dynamic_symbol): Likewise.
+
+2002-01-28 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * elfcore.h (elf_core_file_p): Improve comment for last change.
+
+2002-01-27 Daniel Jacobowitz <drow@mvista.com>
+
+ * configure: Regenerated.
+
+2002-01-27 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * elfcore.h (elf_core_file_p): Set the machine architecture
+ before processing the program headers.
+
2002-01-26 Hans-Peter Nilsson <hp@bitrange.com>
* configure.in <64-bit configuration>: If using gcc, check and
emit error for egcs-1.1.2.
* configure: Regenerate.
- * doc/Makefile.am (install): Depend on install-info.
- * doc/Makefile.in: Regenerate.
-
2002-01-26 Egor Duda <deo@logos-m.ru>
* elf.c (elfcore_grok_win32pstatus): Copy only as much information
diff --git a/contrib/binutils/bfd/Makefile.am b/contrib/binutils/bfd/Makefile.am
index c96f171..18438b3 100644
--- a/contrib/binutils/bfd/Makefile.am
+++ b/contrib/binutils/bfd/Makefile.am
@@ -73,6 +73,7 @@ ALL_MACHINES = \
cpu-mcore.lo \
cpu-mips.lo \
cpu-mmix.lo \
+ cpu-or32.lo \
cpu-ns32k.lo \
cpu-openrisc.lo \
cpu-pdp11.lo \
@@ -120,6 +121,7 @@ ALL_MACHINES_CFILES = \
cpu-mcore.c \
cpu-mips.c \
cpu-mmix.c \
+ cpu-or32.c \
cpu-ns32k.c \
cpu-openrisc.c \
cpu-pdp11.c \
@@ -168,6 +170,7 @@ BFD32_BACKENDS = \
coff-m68k.lo \
coff-m88k.lo \
coff-mips.lo \
+ coff-or32.lo \
coff-rs6000.lo \
coff-sh.lo \
coff-sparc.lo \
@@ -212,11 +215,13 @@ BFD32_BACKENDS = \
elf32-mcore.lo \
elf32-mips.lo \
elf32-openrisc.lo \
+ elf32-or32.lo \
elf32-pj.lo \
elf32-ppc.lo \
elf32-s390.lo \
elf32-sh.lo \
elf32-sh-lin.lo \
+ elf32-sh64.lo \
elf32-sh-nbsd.lo \
elf32-sparc.lo \
elf32-v850.lo \
@@ -313,6 +318,7 @@ BFD32_BACKENDS_CFILES = \
coff-m68k.c \
coff-m88k.c \
coff-mips.c \
+ coff-or32.c \
coff-rs6000.c \
coff-sh.c \
coff-sparc.c \
@@ -356,8 +362,10 @@ BFD32_BACKENDS_CFILES = \
elf32-mcore.c \
elf32-mips.c \
elf32-openrisc.c \
+ elf32-or32.c \
elf32-pj.c \
elf32-ppc.c \
+ elf32-sh64.c \
elf32-s390.c \
elf32-sh.c \
elf32-sh-lin.c \
@@ -445,6 +453,7 @@ BFD64_BACKENDS = \
elf64-gen.lo \
elf64-mips.lo \
elf64-mmix.lo \
+ elf64-sh64.lo \
elf64-ppc.lo \
elf64-s390.lo \
elf64-sparc.lo \
@@ -468,6 +477,7 @@ BFD64_BACKENDS_CFILES = \
elf64-mmix.c \
elf64-ppc.c \
elf64-s390.c \
+ elf64-sh64.c \
elf64-sparc.c \
elf64.c \
mmo.c \
@@ -850,6 +860,7 @@ cpu-m10300.lo: cpu-m10300.c $(INCDIR)/filenames.h
cpu-mcore.lo: cpu-mcore.c $(INCDIR)/filenames.h
cpu-mips.lo: cpu-mips.c $(INCDIR)/filenames.h
cpu-mmix.lo: cpu-mmix.c $(INCDIR)/filenames.h
+cpu-or32.lo: cpu-or32.c $(INCDIR)/filenames.h
cpu-ns32k.lo: cpu-ns32k.c $(INCDIR)/filenames.h ns32k.h
cpu-openrisc.lo: cpu-openrisc.c $(INCDIR)/filenames.h
cpu-pdp11.lo: cpu-pdp11.c $(INCDIR)/filenames.h
@@ -955,6 +966,9 @@ coff-mips.lo: coff-mips.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
$(INCDIR)/coff/internal.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \
$(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h $(INCDIR)/coff/external.h \
libcoff.h libecoff.h coffswap.h ecoffswap.h
+coff-or32.lo: coff-or32.c $(INCDIR)/filenames.h $(INCDIR)/coff/or32.h \
+ $(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/bfdlink.h \
+ coffcode.h coffswap.h
coff-rs6000.lo: coff-rs6000.c $(INCDIR)/filenames.h \
$(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/xcoff.h \
$(INCDIR)/coff/rs6000.h libcoff.h libxcoff.h coffcode.h \
@@ -1113,6 +1127,10 @@ elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/openrisc.h \
$(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \
elf32-target.h
+elf32-or32.lo: elf32-or32.c $(INCDIR)/filenames.h elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h $(INCDIR)/elf/or32.h $(INCDIR)/elf/reloc-macros.h \
+ $(INCDIR)/libiberty.h elf32-target.h
elf32-pj.lo: elf32-pj.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/reloc-macros.h \
@@ -1121,6 +1139,14 @@ elf32-ppc.lo: elf32-ppc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \
elf32-target.h
+elf32-sh64.lo: elf32-sh64.c $(INCDIR)/filenames.h elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h elf32-sh.c $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \
+ elf32-target.h $(srcdir)/../opcodes/sh64-opc.h
+elf64-sh64.lo: elf64-sh64.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
+ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
+ $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \
+ elf64-target.h
elf32-s390.lo: elf32-s390.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h \
diff --git a/contrib/binutils/bfd/Makefile.in b/contrib/binutils/bfd/Makefile.in
index 7333ca7..98c3435 100644
--- a/contrib/binutils/bfd/Makefile.in
+++ b/contrib/binutils/bfd/Makefile.in
@@ -199,6 +199,7 @@ ALL_MACHINES = \
cpu-mcore.lo \
cpu-mips.lo \
cpu-mmix.lo \
+ cpu-or32.lo \
cpu-ns32k.lo \
cpu-openrisc.lo \
cpu-pdp11.lo \
@@ -247,6 +248,7 @@ ALL_MACHINES_CFILES = \
cpu-mcore.c \
cpu-mips.c \
cpu-mmix.c \
+ cpu-or32.c \
cpu-ns32k.c \
cpu-openrisc.c \
cpu-pdp11.c \
@@ -296,6 +298,7 @@ BFD32_BACKENDS = \
coff-m68k.lo \
coff-m88k.lo \
coff-mips.lo \
+ coff-or32.lo \
coff-rs6000.lo \
coff-sh.lo \
coff-sparc.lo \
@@ -340,11 +343,13 @@ BFD32_BACKENDS = \
elf32-mcore.lo \
elf32-mips.lo \
elf32-openrisc.lo \
+ elf32-or32.lo \
elf32-pj.lo \
elf32-ppc.lo \
elf32-s390.lo \
elf32-sh.lo \
elf32-sh-lin.lo \
+ elf32-sh64.lo \
elf32-sh-nbsd.lo \
elf32-sparc.lo \
elf32-v850.lo \
@@ -442,6 +447,7 @@ BFD32_BACKENDS_CFILES = \
coff-m68k.c \
coff-m88k.c \
coff-mips.c \
+ coff-or32.c \
coff-rs6000.c \
coff-sh.c \
coff-sparc.c \
@@ -485,8 +491,10 @@ BFD32_BACKENDS_CFILES = \
elf32-mcore.c \
elf32-mips.c \
elf32-openrisc.c \
+ elf32-or32.c \
elf32-pj.c \
elf32-ppc.c \
+ elf32-sh64.c \
elf32-s390.c \
elf32-sh.c \
elf32-sh-lin.c \
@@ -575,6 +583,7 @@ BFD64_BACKENDS = \
elf64-gen.lo \
elf64-mips.lo \
elf64-mmix.lo \
+ elf64-sh64.lo \
elf64-ppc.lo \
elf64-s390.lo \
elf64-sparc.lo \
@@ -599,6 +608,7 @@ BFD64_BACKENDS_CFILES = \
elf64-mmix.c \
elf64-ppc.c \
elf64-s390.c \
+ elf64-sh64.c \
elf64-sparc.c \
elf64.c \
mmo.c \
@@ -717,7 +727,6 @@ LIBRARIES = $(noinst_LIBRARIES)
DEFS = @DEFS@ -I. -I$(srcdir) -I.
-#DEFS = @DEFS@ @elf_dynamic_interpreter@ -I. -I$(srcdir) -I.
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
@@ -741,7 +750,7 @@ configure.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-TAR = tar
+TAR = gtar
GZIP_ENV = --best
SOURCES = $(libbfd_a_SOURCES) $(libbfd_la_SOURCES)
OBJECTS = $(libbfd_a_OBJECTS) $(libbfd_la_OBJECTS)
@@ -1395,6 +1404,7 @@ cpu-m10300.lo: cpu-m10300.c $(INCDIR)/filenames.h
cpu-mcore.lo: cpu-mcore.c $(INCDIR)/filenames.h
cpu-mips.lo: cpu-mips.c $(INCDIR)/filenames.h
cpu-mmix.lo: cpu-mmix.c $(INCDIR)/filenames.h
+cpu-or32.lo: cpu-or32.c $(INCDIR)/filenames.h
cpu-ns32k.lo: cpu-ns32k.c $(INCDIR)/filenames.h ns32k.h
cpu-openrisc.lo: cpu-openrisc.c $(INCDIR)/filenames.h
cpu-pdp11.lo: cpu-pdp11.c $(INCDIR)/filenames.h
@@ -1500,6 +1510,9 @@ coff-mips.lo: coff-mips.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
$(INCDIR)/coff/internal.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \
$(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h $(INCDIR)/coff/external.h \
libcoff.h libecoff.h coffswap.h ecoffswap.h
+coff-or32.lo: coff-or32.c $(INCDIR)/filenames.h $(INCDIR)/coff/or32.h \
+ $(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/bfdlink.h \
+ coffcode.h coffswap.h
coff-rs6000.lo: coff-rs6000.c $(INCDIR)/filenames.h \
$(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/xcoff.h \
$(INCDIR)/coff/rs6000.h libcoff.h libxcoff.h coffcode.h \
@@ -1658,6 +1671,10 @@ elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/openrisc.h \
$(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \
elf32-target.h
+elf32-or32.lo: elf32-or32.c $(INCDIR)/filenames.h elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h $(INCDIR)/elf/or32.h $(INCDIR)/elf/reloc-macros.h \
+ $(INCDIR)/libiberty.h elf32-target.h
elf32-pj.lo: elf32-pj.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/reloc-macros.h \
@@ -1666,6 +1683,14 @@ elf32-ppc.lo: elf32-ppc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \
elf32-target.h
+elf32-sh64.lo: elf32-sh64.c $(INCDIR)/filenames.h elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h elf32-sh.c $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \
+ elf32-target.h $(srcdir)/../opcodes/sh64-opc.h
+elf64-sh64.lo: elf64-sh64.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
+ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
+ $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \
+ elf64-target.h
elf32-s390.lo: elf32-s390.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h \
diff --git a/contrib/binutils/bfd/archures.c b/contrib/binutils/bfd/archures.c
index 19d862e..1caac7f 100644
--- a/contrib/binutils/bfd/archures.c
+++ b/contrib/binutils/bfd/archures.c
@@ -1,6 +1,6 @@
/* BFD library support routines for architectures.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001
+ 2000, 2001, 2002
Free Software Foundation, Inc.
Hacked by John Gilmore and Steve Chamberlain of Cygnus Support.
@@ -69,8 +69,8 @@ DESCRIPTION
.enum bfd_architecture
.{
-. bfd_arch_unknown, {* File arch not known *}
-. bfd_arch_obscure, {* Arch known, not one of these *}
+. bfd_arch_unknown, {* File arch not known. *}
+. bfd_arch_obscure, {* Arch known, not one of these. *}
. bfd_arch_m68k, {* Motorola 68xxx *}
.#define bfd_mach_m68000 1
.#define bfd_mach_m68008 2
@@ -92,7 +92,7 @@ DESCRIPTION
. available to machines with higher numbers.
. The exception is the "ca", which is
. incompatible with all other machines except
-. "core". *}
+. "core". *}
.
.#define bfd_mach_i960_core 1
.#define bfd_mach_i960_ka_sa 2
@@ -103,6 +103,8 @@ DESCRIPTION
.#define bfd_mach_i960_jx 7
.#define bfd_mach_i960_hx 8
.
+. bfd_arch_or32, {* OpenRISC 32 *}
+.
. bfd_arch_a29k, {* AMD 29000 *}
. bfd_arch_sparc, {* SPARC *}
.#define bfd_mach_sparc 1
@@ -110,12 +112,12 @@ DESCRIPTION
.#define bfd_mach_sparc_sparclet 2
.#define bfd_mach_sparc_sparclite 3
.#define bfd_mach_sparc_v8plus 4
-.#define bfd_mach_sparc_v8plusa 5 {* with ultrasparc add'ns *}
+.#define bfd_mach_sparc_v8plusa 5 {* with ultrasparc add'ns. *}
.#define bfd_mach_sparc_sparclite_le 6
.#define bfd_mach_sparc_v9 7
-.#define bfd_mach_sparc_v9a 8 {* with ultrasparc add'ns *}
-.#define bfd_mach_sparc_v8plusb 9 {* with cheetah add'ns *}
-.#define bfd_mach_sparc_v9b 10 {* with cheetah add'ns *}
+.#define bfd_mach_sparc_v9a 8 {* with ultrasparc add'ns. *}
+.#define bfd_mach_sparc_v8plusb 9 {* with cheetah add'ns. *}
+.#define bfd_mach_sparc_v9b 10 {* with cheetah add'ns. *}
.{* Nonzero if MACH has the v9 instruction set. *}
.#define bfd_mach_sparc_v9_p(mach) \
. ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
@@ -163,6 +165,7 @@ DESCRIPTION
. bfd_arch_pdp11, {* DEC PDP-11 *}
. bfd_arch_powerpc, {* PowerPC *}
.#define bfd_mach_ppc 0
+.#define bfd_mach_ppc64 1
.#define bfd_mach_ppc_403 403
.#define bfd_mach_ppc_403gc 4030
.#define bfd_mach_ppc_505 505
@@ -204,11 +207,12 @@ DESCRIPTION
.#define bfd_mach_sh3_dsp 0x3d
.#define bfd_mach_sh3e 0x3e
.#define bfd_mach_sh4 0x40
+.#define bfd_mach_sh5 0x50
. bfd_arch_alpha, {* Dec Alpha *}
.#define bfd_mach_alpha_ev4 0x10
.#define bfd_mach_alpha_ev5 0x20
.#define bfd_mach_alpha_ev6 0x30
-. bfd_arch_arm, {* Advanced Risc Machines ARM *}
+. bfd_arch_arm, {* Advanced Risc Machines ARM. *}
.#define bfd_mach_arm_2 1
.#define bfd_mach_arm_2a 2
.#define bfd_mach_arm_3 3
@@ -234,7 +238,7 @@ DESCRIPTION
.#define bfd_mach_arc_7 2
.#define bfd_mach_arc_8 3
. bfd_arch_m32r, {* Mitsubishi M32R/D *}
-.#define bfd_mach_m32r 0 {* backwards compatibility *}
+.#define bfd_mach_m32r 0 {* For backwards compatibility. *}
.#define bfd_mach_m32rx 'x'
. bfd_arch_mn10200, {* Matsushita MN10200 *}
. bfd_arch_mn10300, {* Matsushita MN10300 *}
@@ -247,7 +251,7 @@ DESCRIPTION
.#define bfd_mach_ia64_elf64 0
.#define bfd_mach_ia64_elf32 1
. bfd_arch_pj,
-. bfd_arch_avr, {* Atmel AVR microcontrollers *}
+. bfd_arch_avr, {* Atmel AVR microcontrollers. *}
.#define bfd_mach_avr1 1
.#define bfd_mach_avr2 2
.#define bfd_mach_avr3 3
@@ -258,7 +262,7 @@ DESCRIPTION
.#define bfd_mach_s390_esa 0
.#define bfd_mach_s390_esame 1
. bfd_arch_openrisc, {* OpenRISC *}
-. bfd_arch_mmix, {* Donald Knuth's educational processor *}
+. bfd_arch_mmix, {* Donald Knuth's educational processor. *}
. bfd_arch_xstormy16,
.#define bfd_mach_xstormy16 0
. bfd_arch_last
@@ -293,16 +297,20 @@ DESCRIPTION
. boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
.
. const struct bfd_arch_info *next;
-.} bfd_arch_info_type;
+.}
+.bfd_arch_info_type;
+.
*/
extern const bfd_arch_info_type bfd_a29k_arch;
extern const bfd_arch_info_type bfd_alpha_arch;
extern const bfd_arch_info_type bfd_arc_arch;
extern const bfd_arch_info_type bfd_arm_arch;
+extern const bfd_arch_info_type bfd_avr_arch;
extern const bfd_arch_info_type bfd_cris_arch;
extern const bfd_arch_info_type bfd_d10v_arch;
extern const bfd_arch_info_type bfd_d30v_arch;
+extern const bfd_arch_info_type bfd_fr30_arch;
extern const bfd_arch_info_type bfd_h8300_arch;
extern const bfd_arch_info_type bfd_h8500_arch;
extern const bfd_arch_info_type bfd_hppa_arch;
@@ -310,86 +318,88 @@ extern const bfd_arch_info_type bfd_i370_arch;
extern const bfd_arch_info_type bfd_i386_arch;
extern const bfd_arch_info_type bfd_i860_arch;
extern const bfd_arch_info_type bfd_i960_arch;
+extern const bfd_arch_info_type bfd_ia64_arch;
extern const bfd_arch_info_type bfd_m32r_arch;
extern const bfd_arch_info_type bfd_m68hc11_arch;
extern const bfd_arch_info_type bfd_m68hc12_arch;
extern const bfd_arch_info_type bfd_m68k_arch;
extern const bfd_arch_info_type bfd_m88k_arch;
+extern const bfd_arch_info_type bfd_mcore_arch;
extern const bfd_arch_info_type bfd_mips_arch;
+extern const bfd_arch_info_type bfd_mmix_arch;
extern const bfd_arch_info_type bfd_mn10200_arch;
extern const bfd_arch_info_type bfd_mn10300_arch;
+extern const bfd_arch_info_type bfd_ns32k_arch;
+extern const bfd_arch_info_type bfd_openrisc_arch;
+extern const bfd_arch_info_type bfd_or32_arch;
extern const bfd_arch_info_type bfd_pdp11_arch;
-extern const bfd_arch_info_type bfd_powerpc_arch;
-extern const bfd_arch_info_type bfd_rs6000_arch;
extern const bfd_arch_info_type bfd_pj_arch;
+extern const bfd_arch_info_type bfd_powerpc_archs[];
+#define bfd_powerpc_arch bfd_powerpc_archs[0]
+extern const bfd_arch_info_type bfd_rs6000_arch;
+extern const bfd_arch_info_type bfd_s390_arch;
extern const bfd_arch_info_type bfd_sh_arch;
extern const bfd_arch_info_type bfd_sparc_arch;
extern const bfd_arch_info_type bfd_tic30_arch;
extern const bfd_arch_info_type bfd_tic54x_arch;
extern const bfd_arch_info_type bfd_tic80_arch;
+extern const bfd_arch_info_type bfd_v850_arch;
extern const bfd_arch_info_type bfd_vax_arch;
extern const bfd_arch_info_type bfd_we32k_arch;
-extern const bfd_arch_info_type bfd_z8k_arch;
-extern const bfd_arch_info_type bfd_ns32k_arch;
extern const bfd_arch_info_type bfd_w65_arch;
-extern const bfd_arch_info_type bfd_v850_arch;
-extern const bfd_arch_info_type bfd_fr30_arch;
-extern const bfd_arch_info_type bfd_mcore_arch;
-extern const bfd_arch_info_type bfd_avr_arch;
-extern const bfd_arch_info_type bfd_ia64_arch;
-extern const bfd_arch_info_type bfd_s390_arch;
-extern const bfd_arch_info_type bfd_openrisc_arch;
-extern const bfd_arch_info_type bfd_mmix_arch;
extern const bfd_arch_info_type bfd_xstormy16_arch;
+extern const bfd_arch_info_type bfd_z8k_arch;
-static const bfd_arch_info_type * const bfd_archures_list[] = {
+static const bfd_arch_info_type * const bfd_archures_list[] =
+ {
#ifdef SELECT_ARCHITECTURES
- SELECT_ARCHITECTURES,
+ SELECT_ARCHITECTURES,
#else
- &bfd_a29k_arch,
- &bfd_alpha_arch,
- &bfd_arc_arch,
- &bfd_arm_arch,
- &bfd_cris_arch,
- &bfd_d10v_arch,
- &bfd_d30v_arch,
- &bfd_h8300_arch,
- &bfd_h8500_arch,
- &bfd_hppa_arch,
- &bfd_i370_arch,
- &bfd_i386_arch,
- &bfd_i860_arch,
- &bfd_i960_arch,
- &bfd_m32r_arch,
- &bfd_m68hc11_arch,
- &bfd_m68hc12_arch,
- &bfd_m68k_arch,
- &bfd_m88k_arch,
- &bfd_mips_arch,
- &bfd_mn10200_arch,
- &bfd_mn10300_arch,
- &bfd_pdp11_arch,
- &bfd_powerpc_arch,
- &bfd_rs6000_arch,
- &bfd_sh_arch,
- &bfd_sparc_arch,
- &bfd_tic30_arch,
- &bfd_tic54x_arch,
- &bfd_tic80_arch,
- &bfd_vax_arch,
- &bfd_we32k_arch,
- &bfd_z8k_arch,
- &bfd_ns32k_arch,
- &bfd_w65_arch,
- &bfd_v850_arch,
- &bfd_fr30_arch,
- &bfd_mcore_arch,
- &bfd_avr_arch,
- &bfd_ia64_arch,
- &bfd_s390_arch,
- &bfd_openrisc_arch,
- &bfd_mmix_arch,
- &bfd_xstormy16_arch,
+ &bfd_a29k_arch,
+ &bfd_alpha_arch,
+ &bfd_arc_arch,
+ &bfd_arm_arch,
+ &bfd_avr_arch,
+ &bfd_cris_arch,
+ &bfd_d10v_arch,
+ &bfd_d30v_arch,
+ &bfd_fr30_arch,
+ &bfd_h8300_arch,
+ &bfd_h8500_arch,
+ &bfd_hppa_arch,
+ &bfd_i370_arch,
+ &bfd_i386_arch,
+ &bfd_i860_arch,
+ &bfd_i960_arch,
+ &bfd_ia64_arch,
+ &bfd_m32r_arch,
+ &bfd_m68hc11_arch,
+ &bfd_m68hc12_arch,
+ &bfd_m68k_arch,
+ &bfd_m88k_arch,
+ &bfd_mcore_arch,
+ &bfd_mips_arch,
+ &bfd_mmix_arch,
+ &bfd_mn10200_arch,
+ &bfd_mn10300_arch,
+ &bfd_ns32k_arch,
+ &bfd_openrisc_arch,
+ &bfd_or32_arch,
+ &bfd_pdp11_arch,
+ &bfd_powerpc_arch,
+ &bfd_rs6000_arch,
+ &bfd_s390_arch,
+ &bfd_sh_arch,
+ &bfd_sparc_arch,
+ &bfd_tic30_arch,
+ &bfd_tic54x_arch,
+ &bfd_tic80_arch,
+ &bfd_v850_arch,
+ &bfd_vax_arch,
+ &bfd_w65_arch,
+ &bfd_we32k_arch,
+ &bfd_xstormy16_arch,
+ &bfd_z8k_arch,
#endif
0
};
diff --git a/contrib/binutils/bfd/bfd-in.h b/contrib/binutils/bfd/bfd-in.h
index c6f2b41..bd8a915 100644
--- a/contrib/binutils/bfd/bfd-in.h
+++ b/contrib/binutils/bfd/bfd-in.h
@@ -1,6 +1,6 @@
/* Main header file for the bfd library -- portable access to object files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001
+ 2000, 2001, 2002
Free Software Foundation, Inc.
Contributed by Cygnus Support.
@@ -71,7 +71,7 @@ extern "C" {
#endif
#endif
-/* forward declaration */
+/* Forward declaration. */
typedef struct _bfd bfd;
/* To squelch erroneous compiler warnings ("illegal pointer
@@ -88,8 +88,16 @@ typedef struct _bfd bfd;
/* Yup, SVR4 has a "typedef enum boolean" in <sys/types.h> -fnf */
/* It gets worse if the host also defines a true/false enum... -sts */
/* And even worse if your compiler has built-in boolean types... -law */
+/* And even worse if your compiler provides a stdbool.h that conflicts
+ with these definitions... gcc 2.95 and later do. If so, it must
+ be included first. -drow */
#if defined (__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6))
#define TRUE_FALSE_ALREADY_DEFINED
+#else
+#if defined (__bool_true_false_are_defined)
+/* We have <stdbool.h>. */
+#define TRUE_FALSE_ALREADY_DEFINED
+#endif
#endif
#ifdef MPW
/* Pre-emptive strike - get the file with the enum. */
@@ -191,15 +199,17 @@ extern void bfd_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma));
typedef unsigned int flagword; /* 32 bits of flags */
typedef unsigned char bfd_byte;
-/** File formats */
+/* File formats. */
-typedef enum bfd_format {
- bfd_unknown = 0, /* file format is unknown */
- bfd_object, /* linker/assember/compiler output */
- bfd_archive, /* object archive file */
- bfd_core, /* core dump */
- bfd_type_end} /* marks the end; don't use it! */
- bfd_format;
+typedef enum bfd_format
+{
+ bfd_unknown = 0, /* File format is unknown. */
+ bfd_object, /* Linker/assember/compiler output. */
+ bfd_archive, /* Object archive file. */
+ bfd_core, /* Core dump. */
+ bfd_type_end /* Marks the end; don't use it! */
+}
+bfd_format;
/* Values that may appear in the flags field of a BFD. These also
appear in the object_flags field of the bfd_target structure, where
@@ -258,7 +268,7 @@ typedef enum bfd_format {
memory. If this is set, iostream points to a bfd_in_memory struct. */
#define BFD_IN_MEMORY 0x800
-/* symbols and relocation */
+/* Symbols and relocation. */
/* A count of carsyms (canonical archive symbols). */
typedef unsigned long symindex;
@@ -282,33 +292,40 @@ typedef const struct reloc_howto_struct reloc_howto_type;
#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
/* A canonical archive symbol. */
-/* This is a type pun with struct ranlib on purpose! */
-typedef struct carsym {
+/* This is a type pun with struct ranlib on purpose! */
+typedef struct carsym
+{
char *name;
- file_ptr file_offset; /* look here to find the file */
-} carsym; /* to make these you call a carsymogen */
+ file_ptr file_offset; /* Look here to find the file. */
+}
+carsym; /* To make these you call a carsymogen. */
/* Used in generating armaps (archive tables of contents).
- Perhaps just a forward definition would do? */
-struct orl { /* output ranlib */
- char **name; /* symbol name */
- union {
+ Perhaps just a forward definition would do? */
+struct orl /* Output ranlib. */
+{
+ char **name; /* Symbol name. */
+ union
+ {
file_ptr pos;
bfd *abfd;
- } u; /* bfd* or file position */
- int namidx; /* index into string table */
+ } u; /* bfd* or file position. */
+ int namidx; /* Index into string table. */
};
-/* Linenumber stuff */
-typedef struct lineno_cache_entry {
- unsigned int line_number; /* Linenumber from start of function*/
- union {
- struct symbol_cache_entry *sym; /* Function name */
- bfd_vma offset; /* Offset into section */
+/* Linenumber stuff. */
+typedef struct lineno_cache_entry
+{
+ unsigned int line_number; /* Linenumber from start of function. */
+ union
+ {
+ struct symbol_cache_entry *sym; /* Function name. */
+ bfd_vma offset; /* Offset into section. */
} u;
-} alent;
+}
+alent;
-/* object and core file sections */
+/* Object and core file sections. */
#define align_power(addr, align) \
( ((addr) + ((1<<(align))-1)) & (-1 << (align)))
@@ -447,7 +464,7 @@ extern void bfd_hash_traverse PARAMS ((struct bfd_hash_table *,
#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table
-/* User program access to BFD facilities */
+/* User program access to BFD facilities. */
/* Direct I/O routines, for programs which know more about the object
file than BFD does. Use higher level routines if possible. */
@@ -663,6 +680,9 @@ extern int bfd_get_sign_extend_vma PARAMS ((bfd *));
extern boolean bfd_m68k_elf32_create_embedded_relocs
PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
char **));
+extern boolean bfd_mips_elf32_create_embedded_relocs
+ PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
+ char **));
/* SunOS shared library support routines for the linker. */
@@ -688,7 +708,8 @@ extern boolean bfd_sparclinux_size_dynamic_sections
struct _bfd_window_internal;
typedef struct _bfd_window_internal bfd_window_internal;
-typedef struct _bfd_window {
+typedef struct _bfd_window
+{
/* What the user asked for. */
PTR data;
bfd_size_type size;
@@ -699,7 +720,8 @@ typedef struct _bfd_window {
application; don't want to give the same region back when the
application wants two writable copies! */
struct _bfd_window_internal *i;
-} bfd_window;
+}
+bfd_window;
extern void bfd_init_window PARAMS ((bfd_window *));
extern void bfd_free_window PARAMS ((bfd_window *));
diff --git a/contrib/binutils/bfd/bfd-in2.h b/contrib/binutils/bfd/bfd-in2.h
index e48a20d..ff4ba0d 100644
--- a/contrib/binutils/bfd/bfd-in2.h
+++ b/contrib/binutils/bfd/bfd-in2.h
@@ -6,7 +6,7 @@
/* Main header file for the bfd library -- portable access to object files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001
+ 2000, 2001, 2002
Free Software Foundation, Inc.
Contributed by Cygnus Support.
@@ -77,7 +77,7 @@ extern "C" {
#endif
#endif
-/* forward declaration */
+/* Forward declaration. */
typedef struct _bfd bfd;
/* To squelch erroneous compiler warnings ("illegal pointer
@@ -94,8 +94,16 @@ typedef struct _bfd bfd;
/* Yup, SVR4 has a "typedef enum boolean" in <sys/types.h> -fnf */
/* It gets worse if the host also defines a true/false enum... -sts */
/* And even worse if your compiler has built-in boolean types... -law */
+/* And even worse if your compiler provides a stdbool.h that conflicts
+ with these definitions... gcc 2.95 and later do. If so, it must
+ be included first. -drow */
#if defined (__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6))
#define TRUE_FALSE_ALREADY_DEFINED
+#else
+#if defined (__bool_true_false_are_defined)
+/* We have <stdbool.h>. */
+#define TRUE_FALSE_ALREADY_DEFINED
+#endif
#endif
#ifdef MPW
/* Pre-emptive strike - get the file with the enum. */
@@ -197,15 +205,17 @@ extern void bfd_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma));
typedef unsigned int flagword; /* 32 bits of flags */
typedef unsigned char bfd_byte;
-/** File formats */
+/* File formats. */
-typedef enum bfd_format {
- bfd_unknown = 0, /* file format is unknown */
- bfd_object, /* linker/assember/compiler output */
- bfd_archive, /* object archive file */
- bfd_core, /* core dump */
- bfd_type_end} /* marks the end; don't use it! */
- bfd_format;
+typedef enum bfd_format
+{
+ bfd_unknown = 0, /* File format is unknown. */
+ bfd_object, /* Linker/assember/compiler output. */
+ bfd_archive, /* Object archive file. */
+ bfd_core, /* Core dump. */
+ bfd_type_end /* Marks the end; don't use it! */
+}
+bfd_format;
/* Values that may appear in the flags field of a BFD. These also
appear in the object_flags field of the bfd_target structure, where
@@ -264,7 +274,7 @@ typedef enum bfd_format {
memory. If this is set, iostream points to a bfd_in_memory struct. */
#define BFD_IN_MEMORY 0x800
-/* symbols and relocation */
+/* Symbols and relocation. */
/* A count of carsyms (canonical archive symbols). */
typedef unsigned long symindex;
@@ -288,33 +298,40 @@ typedef const struct reloc_howto_struct reloc_howto_type;
#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
/* A canonical archive symbol. */
-/* This is a type pun with struct ranlib on purpose! */
-typedef struct carsym {
+/* This is a type pun with struct ranlib on purpose! */
+typedef struct carsym
+{
char *name;
- file_ptr file_offset; /* look here to find the file */
-} carsym; /* to make these you call a carsymogen */
+ file_ptr file_offset; /* Look here to find the file. */
+}
+carsym; /* To make these you call a carsymogen. */
/* Used in generating armaps (archive tables of contents).
- Perhaps just a forward definition would do? */
-struct orl { /* output ranlib */
- char **name; /* symbol name */
- union {
+ Perhaps just a forward definition would do? */
+struct orl /* Output ranlib. */
+{
+ char **name; /* Symbol name. */
+ union
+ {
file_ptr pos;
bfd *abfd;
- } u; /* bfd* or file position */
- int namidx; /* index into string table */
+ } u; /* bfd* or file position. */
+ int namidx; /* Index into string table. */
};
-/* Linenumber stuff */
-typedef struct lineno_cache_entry {
- unsigned int line_number; /* Linenumber from start of function*/
- union {
- struct symbol_cache_entry *sym; /* Function name */
- bfd_vma offset; /* Offset into section */
+/* Linenumber stuff. */
+typedef struct lineno_cache_entry
+{
+ unsigned int line_number; /* Linenumber from start of function. */
+ union
+ {
+ struct symbol_cache_entry *sym; /* Function name. */
+ bfd_vma offset; /* Offset into section. */
} u;
-} alent;
+}
+alent;
-/* object and core file sections */
+/* Object and core file sections. */
#define align_power(addr, align) \
( ((addr) + ((1<<(align))-1)) & (-1 << (align)))
@@ -453,7 +470,7 @@ extern void bfd_hash_traverse PARAMS ((struct bfd_hash_table *,
#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table
-/* User program access to BFD facilities */
+/* User program access to BFD facilities. */
/* Direct I/O routines, for programs which know more about the object
file than BFD does. Use higher level routines if possible. */
@@ -669,6 +686,9 @@ extern int bfd_get_sign_extend_vma PARAMS ((bfd *));
extern boolean bfd_m68k_elf32_create_embedded_relocs
PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
char **));
+extern boolean bfd_mips_elf32_create_embedded_relocs
+ PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
+ char **));
/* SunOS shared library support routines for the linker. */
@@ -694,7 +714,8 @@ extern boolean bfd_sparclinux_size_dynamic_sections
struct _bfd_window_internal;
typedef struct _bfd_window_internal bfd_window_internal;
-typedef struct _bfd_window {
+typedef struct _bfd_window
+{
/* What the user asked for. */
PTR data;
bfd_size_type size;
@@ -705,7 +726,8 @@ typedef struct _bfd_window {
application; don't want to give the same region back when the
application wants two writable copies! */
struct _bfd_window_internal *i;
-} bfd_window;
+}
+bfd_window;
extern void bfd_init_window PARAMS ((bfd_window *));
extern void bfd_free_window PARAMS ((bfd_window *));
@@ -982,25 +1004,20 @@ typedef struct sec
{
/* The name of the section; the name isn't a copy, the pointer is
the same as that passed to bfd_make_section. */
-
const char *name;
/* A unique sequence number. */
-
int id;
/* Which section in the bfd; 0..n-1 as sections are created in a bfd. */
-
int index;
/* The next section in the list belonging to the BFD, or NULL. */
-
struct sec *next;
/* The field flags contains attributes of the section. Some
flags are read in from the object file, and some are
synthesized from other information. */
-
flagword flags;
#define SEC_NO_FLAGS 0x000
@@ -1209,25 +1226,21 @@ typedef struct sec
backend can assign addresses (for example, in <<a.out>>, where
the default address for <<.data>> is dependent on the specific
target and various flags). */
-
bfd_vma vma;
/* The load address of the section - where it would be in a
rom image; really only used for writing section header
- information. */
-
+ information. */
bfd_vma lma;
/* The size of the section in octets, as it will be output.
Contains a value even if the section has no contents (e.g., the
size of <<.bss>>). This will be filled in after relocation. */
-
bfd_size_type _cooked_size;
/* The original size on disk of the section, in octets. Normally this
value is the same as the size, but if some relaxing has
been done, then this value will be bigger. */
-
bfd_size_type _raw_size;
/* If this section is going to be output, then this value is the
@@ -1237,49 +1250,39 @@ typedef struct sec
100th octet (8-bit quantity) in the output section, this value
would be 100. However, if the target byte size is 16 bits
(bfd_octets_per_byte is "2"), this value would be 50. */
-
bfd_vma output_offset;
/* The output section through which to map on output. */
-
struct sec *output_section;
/* The alignment requirement of the section, as an exponent of 2 -
e.g., 3 aligns to 2^3 (or 8). */
-
unsigned int alignment_power;
/* If an input section, a pointer to a vector of relocation
records for the data in this section. */
-
struct reloc_cache_entry *relocation;
/* If an output section, a pointer to a vector of pointers to
relocation records for the data in this section. */
-
struct reloc_cache_entry **orelocation;
- /* The number of relocation records in one of the above */
-
+ /* The number of relocation records in one of the above. */
unsigned reloc_count;
/* Information below is back end specific - and not always used
or updated. */
/* File position of section data. */
-
file_ptr filepos;
/* File position of relocation info. */
-
file_ptr rel_filepos;
/* File position of line data. */
-
file_ptr line_filepos;
/* Pointer to data for applications. */
-
PTR userdata;
/* If the SEC_IN_MEMORY flag is set, this points to the actual
@@ -1287,48 +1290,40 @@ typedef struct sec
unsigned char *contents;
/* Attached line number information. */
-
alent *lineno;
/* Number of line number records. */
-
unsigned int lineno_count;
/* Entity size for merging purposes. */
-
unsigned int entsize;
/* Optional information about a COMDAT entry; NULL if not COMDAT. */
-
struct bfd_comdat_info *comdat;
/* When a section is being output, this value changes as more
linenumbers are written out. */
-
file_ptr moving_line_filepos;
/* What the section number is in the target world. */
-
int target_index;
PTR used_by_bfd;
/* If this is a constructor section then here is a list of the
relocations created to relocate items within it. */
-
struct relent_chain *constructor_chain;
/* The BFD which owns the section. */
-
bfd *owner;
- /* A symbol which points at this section only */
+ /* A symbol which points at this section only. */
struct symbol_cache_entry *symbol;
struct symbol_cache_entry **symbol_ptr_ptr;
struct bfd_link_order *link_order_head;
struct bfd_link_order *link_order_tail;
-} asection ;
+} asection;
/* These sections are global, and are managed by BFD. The application
and target back end are not permitted to change the values in
@@ -1340,18 +1335,18 @@ typedef struct sec
#define BFD_COM_SECTION_NAME "*COM*"
#define BFD_IND_SECTION_NAME "*IND*"
-/* the absolute section */
+/* The absolute section. */
extern const asection bfd_abs_section;
#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
-/* Pointer to the undefined section */
+/* Pointer to the undefined section. */
extern const asection bfd_und_section;
#define bfd_und_section_ptr ((asection *) &bfd_und_section)
#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
-/* Pointer to the common section */
+/* Pointer to the common section. */
extern const asection bfd_com_section;
#define bfd_com_section_ptr ((asection *) &bfd_com_section)
-/* Pointer to the indirect section */
+/* Pointer to the indirect section. */
extern const asection bfd_ind_section;
#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
@@ -1453,8 +1448,8 @@ _bfd_strip_section_from_output PARAMS ((struct bfd_link_info *info, asection *se
enum bfd_architecture
{
- bfd_arch_unknown, /* File arch not known */
- bfd_arch_obscure, /* Arch known, not one of these */
+ bfd_arch_unknown, /* File arch not known. */
+ bfd_arch_obscure, /* Arch known, not one of these. */
bfd_arch_m68k, /* Motorola 68xxx */
#define bfd_mach_m68000 1
#define bfd_mach_m68008 2
@@ -1476,7 +1471,7 @@ enum bfd_architecture
available to machines with higher numbers.
The exception is the "ca", which is
incompatible with all other machines except
- "core". */
+ "core". */
#define bfd_mach_i960_core 1
#define bfd_mach_i960_ka_sa 2
@@ -1487,6 +1482,8 @@ enum bfd_architecture
#define bfd_mach_i960_jx 7
#define bfd_mach_i960_hx 8
+ bfd_arch_or32, /* OpenRISC 32 */
+
bfd_arch_a29k, /* AMD 29000 */
bfd_arch_sparc, /* SPARC */
#define bfd_mach_sparc 1
@@ -1494,12 +1491,12 @@ enum bfd_architecture
#define bfd_mach_sparc_sparclet 2
#define bfd_mach_sparc_sparclite 3
#define bfd_mach_sparc_v8plus 4
-#define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns */
+#define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */
#define bfd_mach_sparc_sparclite_le 6
#define bfd_mach_sparc_v9 7
-#define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns */
-#define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns */
-#define bfd_mach_sparc_v9b 10 /* with cheetah add'ns */
+#define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */
+#define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */
+#define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */
/* Nonzero if MACH has the v9 instruction set. */
#define bfd_mach_sparc_v9_p(mach) \
((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
@@ -1547,6 +1544,7 @@ enum bfd_architecture
bfd_arch_pdp11, /* DEC PDP-11 */
bfd_arch_powerpc, /* PowerPC */
#define bfd_mach_ppc 0
+#define bfd_mach_ppc64 1
#define bfd_mach_ppc_403 403
#define bfd_mach_ppc_403gc 4030
#define bfd_mach_ppc_505 505
@@ -1588,11 +1586,12 @@ enum bfd_architecture
#define bfd_mach_sh3_dsp 0x3d
#define bfd_mach_sh3e 0x3e
#define bfd_mach_sh4 0x40
+#define bfd_mach_sh5 0x50
bfd_arch_alpha, /* Dec Alpha */
#define bfd_mach_alpha_ev4 0x10
#define bfd_mach_alpha_ev5 0x20
#define bfd_mach_alpha_ev6 0x30
- bfd_arch_arm, /* Advanced Risc Machines ARM */
+ bfd_arch_arm, /* Advanced Risc Machines ARM. */
#define bfd_mach_arm_2 1
#define bfd_mach_arm_2a 2
#define bfd_mach_arm_3 3
@@ -1618,7 +1617,7 @@ enum bfd_architecture
#define bfd_mach_arc_7 2
#define bfd_mach_arc_8 3
bfd_arch_m32r, /* Mitsubishi M32R/D */
-#define bfd_mach_m32r 0 /* backwards compatibility */
+#define bfd_mach_m32r 0 /* For backwards compatibility. */
#define bfd_mach_m32rx 'x'
bfd_arch_mn10200, /* Matsushita MN10200 */
bfd_arch_mn10300, /* Matsushita MN10300 */
@@ -1631,7 +1630,7 @@ enum bfd_architecture
#define bfd_mach_ia64_elf64 0
#define bfd_mach_ia64_elf32 1
bfd_arch_pj,
- bfd_arch_avr, /* Atmel AVR microcontrollers */
+ bfd_arch_avr, /* Atmel AVR microcontrollers. */
#define bfd_mach_avr1 1
#define bfd_mach_avr2 2
#define bfd_mach_avr3 3
@@ -1642,7 +1641,7 @@ enum bfd_architecture
#define bfd_mach_s390_esa 0
#define bfd_mach_s390_esame 1
bfd_arch_openrisc, /* OpenRISC */
- bfd_arch_mmix, /* Donald Knuth's educational processor */
+ bfd_arch_mmix, /* Donald Knuth's educational processor. */
bfd_arch_xstormy16,
#define bfd_mach_xstormy16 0
bfd_arch_last
@@ -1667,7 +1666,9 @@ typedef struct bfd_arch_info
boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
const struct bfd_arch_info *next;
-} bfd_arch_info_type;
+}
+bfd_arch_info_type;
+
const char *
bfd_printable_name PARAMS ((bfd *abfd));
@@ -1717,25 +1718,25 @@ bfd_arch_mach_octets_per_byte PARAMS ((enum bfd_architecture arch,
typedef enum bfd_reloc_status
{
- /* No errors detected */
+ /* No errors detected. */
bfd_reloc_ok,
- /* The relocation was performed, but there was an overflow. */
+ /* The relocation was performed, but there was an overflow. */
bfd_reloc_overflow,
- /* The address to relocate was not within the section supplied. */
+ /* The address to relocate was not within the section supplied. */
bfd_reloc_outofrange,
- /* Used by special functions */
+ /* Used by special functions. */
bfd_reloc_continue,
- /* Unsupported relocation size requested. */
+ /* Unsupported relocation size requested. */
bfd_reloc_notsupported,
- /* Unused */
+ /* Unused. */
bfd_reloc_other,
- /* The symbol to relocate against was undefined. */
+ /* The symbol to relocate against was undefined. */
bfd_reloc_undefined,
/* The relocation was performed, but may not be ok - presently
@@ -1749,34 +1750,36 @@ typedef enum bfd_reloc_status
typedef struct reloc_cache_entry
{
- /* A pointer into the canonical table of pointers */
+ /* A pointer into the canonical table of pointers. */
struct symbol_cache_entry **sym_ptr_ptr;
- /* offset in section */
+ /* offset in section. */
bfd_size_type address;
- /* addend for relocation value */
+ /* addend for relocation value. */
bfd_vma addend;
- /* Pointer to how to perform the required relocation */
+ /* Pointer to how to perform the required relocation. */
reloc_howto_type *howto;
-} arelent;
+}
+arelent;
+
enum complain_overflow
{
- /* Do not complain on overflow. */
+ /* Do not complain on overflow. */
complain_overflow_dont,
/* Complain if the bitfield overflows, whether it is considered
- as signed or unsigned. */
+ as signed or unsigned. */
complain_overflow_bitfield,
/* Complain if the value overflows when considered as signed
- number. */
+ number. */
complain_overflow_signed,
/* Complain if the value overflows when considered as an
- unsigned number. */
+ unsigned number. */
complain_overflow_unsigned
};
@@ -1868,6 +1871,7 @@ struct reloc_howto_struct
empty (e.g., m88k bcs); this flag signals the fact. */
boolean pcrel_offset;
};
+
#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
{ (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
@@ -1892,6 +1896,7 @@ struct reloc_howto_struct
} \
} \
}
+
unsigned int
bfd_get_reloc_size PARAMS ((reloc_howto_type *));
@@ -1899,7 +1904,9 @@ typedef struct relent_chain
{
arelent relent;
struct relent_chain *next;
-} arelent_chain;
+}
+arelent_chain;
+
bfd_reloc_status_type
bfd_check_overflow PARAMS ((enum complain_overflow how,
unsigned int bitsize,
@@ -1926,7 +1933,7 @@ enum bfd_reloc_code_real {
_dummy_first_bfd_reloc_code_real,
-/* Basic absolute relocations of N bits. */
+/* Basic absolute relocations of N bits. */
BFD_RELOC_64,
BFD_RELOC_32,
BFD_RELOC_26,
@@ -1939,7 +1946,7 @@ enum bfd_reloc_code_real {
of the relocation itself; sometimes they are relative to the start of
the section containing the relocation. It depends on the specific target.
-The 24-bit relocation is used in some Intel 960 configurations. */
+The 24-bit relocation is used in some Intel 960 configurations. */
BFD_RELOC_64_PCREL,
BFD_RELOC_32_PCREL,
BFD_RELOC_24_PCREL,
@@ -1947,7 +1954,7 @@ The 24-bit relocation is used in some Intel 960 configurations. */
BFD_RELOC_12_PCREL,
BFD_RELOC_8_PCREL,
-/* For ELF. */
+/* For ELF. */
BFD_RELOC_32_GOT_PCREL,
BFD_RELOC_16_GOT_PCREL,
BFD_RELOC_8_GOT_PCREL,
@@ -1970,12 +1977,12 @@ The 24-bit relocation is used in some Intel 960 configurations. */
BFD_RELOC_HI16_S_PLTOFF,
BFD_RELOC_8_PLTOFF,
-/* Relocations used by 68K ELF. */
+/* Relocations used by 68K ELF. */
BFD_RELOC_68K_GLOB_DAT,
BFD_RELOC_68K_JMP_SLOT,
BFD_RELOC_68K_RELATIVE,
-/* Linkage-table relative. */
+/* Linkage-table relative. */
BFD_RELOC_32_BASEREL,
BFD_RELOC_16_BASEREL,
BFD_RELOC_LO16_BASEREL,
@@ -1984,7 +1991,7 @@ The 24-bit relocation is used in some Intel 960 configurations. */
BFD_RELOC_8_BASEREL,
BFD_RELOC_RVA,
-/* Absolute 8-bit relocation, but used to form an address like 0xFFnn. */
+/* Absolute 8-bit relocation, but used to form an address like 0xFFnn. */
BFD_RELOC_8_FFnn,
/* These PC-relative relocations are stored as word displacements --
@@ -1992,28 +1999,28 @@ i.e., byte displacements shifted right two bits. The 30-bit word
displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The
signed 16-bit displacement is used on the MIPS, and the 23-bit
-displacement is used on the Alpha. */
+displacement is used on the Alpha. */
BFD_RELOC_32_PCREL_S2,
BFD_RELOC_16_PCREL_S2,
BFD_RELOC_23_PCREL_S2,
/* High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
-the target word. These are used on the SPARC. */
+the target word. These are used on the SPARC. */
BFD_RELOC_HI22,
BFD_RELOC_LO10,
/* For systems that allocate a Global Pointer register, these are
displacements off that register. These relocation types are
handled specially, because the value the register will have is
-decided relatively late. */
+decided relatively late. */
BFD_RELOC_GPREL16,
BFD_RELOC_GPREL32,
-/* Reloc types used for i960/b.out. */
+/* Reloc types used for i960/b.out. */
BFD_RELOC_I960_CALLJ,
/* SPARC ELF relocations. There is probably some overlap with other
-relocation types already defined. */
+relocation types already defined. */
BFD_RELOC_NONE,
BFD_RELOC_SPARC_WDISP22,
BFD_RELOC_SPARC22,
@@ -2032,11 +2039,11 @@ relocation types already defined. */
BFD_RELOC_SPARC_UA32,
BFD_RELOC_SPARC_UA64,
-/* I think these are specific to SPARC a.out (e.g., Sun 4). */
+/* I think these are specific to SPARC a.out (e.g., Sun 4). */
BFD_RELOC_SPARC_BASE13,
BFD_RELOC_SPARC_BASE22,
-/* SPARC64 relocations */
+/* SPARC64 relocations */
#define BFD_RELOC_SPARC_64 BFD_RELOC_64
BFD_RELOC_SPARC_10,
BFD_RELOC_SPARC_11,
@@ -2062,7 +2069,7 @@ relocation types already defined. */
BFD_RELOC_SPARC_L44,
BFD_RELOC_SPARC_REGISTER,
-/* SPARC little endian relocation */
+/* SPARC little endian relocation */
BFD_RELOC_SPARC_REV32,
/* Alpha ECOFF and ELF relocations. Some of these treat the symbol or
@@ -2070,18 +2077,18 @@ relocation types already defined. */
For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
writing; when reading, it will be the absolute section symbol. The
addend is the displacement in bytes of the "lda" instruction from
-the "ldah" instruction (which is at the address of this reloc). */
+the "ldah" instruction (which is at the address of this reloc). */
BFD_RELOC_ALPHA_GPDISP_HI16,
/* For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
with GPDISP_HI16 relocs. The addend is ignored when writing the
relocations out, and is filled in with the file's GP value on
-reading, for convenience. */
+reading, for convenience. */
BFD_RELOC_ALPHA_GPDISP_LO16,
/* The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
relocation except that there is no accompanying GPDISP_LO16
-relocation. */
+relocation. */
BFD_RELOC_ALPHA_GPDISP,
/* The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
@@ -2106,61 +2113,66 @@ as the absolute section symbol), and the "addend" indicates the type
of instruction using the register:
1 - "memory" fmt insn
2 - byte-manipulation (byte offset reg)
-3 - jsr (target of branch) */
+3 - jsr (target of branch) */
BFD_RELOC_ALPHA_LITERAL,
BFD_RELOC_ALPHA_ELF_LITERAL,
BFD_RELOC_ALPHA_LITUSE,
/* The HINT relocation indicates a value that should be filled into the
"hint" field of a jmp/jsr/ret instruction, for possible branch-
-prediction logic which may be provided on some processors. */
+prediction logic which may be provided on some processors. */
BFD_RELOC_ALPHA_HINT,
/* The LINKAGE relocation outputs a linkage pair in the object file,
-which is filled by the linker. */
+which is filled by the linker. */
BFD_RELOC_ALPHA_LINKAGE,
/* The CODEADDR relocation outputs a STO_CA in the object file,
-which is filled by the linker. */
+which is filled by the linker. */
BFD_RELOC_ALPHA_CODEADDR,
/* The GPREL_HI/LO relocations together form a 32-bit offset from the
-GP register. */
+GP register. */
BFD_RELOC_ALPHA_GPREL_HI16,
BFD_RELOC_ALPHA_GPREL_LO16,
+/* Like BFD_RELOC_23_PCREL_S2, except that the source and target must
+share a common GP, and the target address is adjusted for
+STO_ALPHA_STD_GPLOAD. */
+ BFD_RELOC_ALPHA_BRSGP,
+
/* Bits 27..2 of the relocation address shifted right 2 bits;
-simple reloc otherwise. */
+simple reloc otherwise. */
BFD_RELOC_MIPS_JMP,
-/* The MIPS16 jump instruction. */
+/* The MIPS16 jump instruction. */
BFD_RELOC_MIPS16_JMP,
-/* MIPS16 GP relative reloc. */
+/* MIPS16 GP relative reloc. */
BFD_RELOC_MIPS16_GPREL,
-/* High 16 bits of 32-bit value; simple reloc. */
+/* High 16 bits of 32-bit value; simple reloc. */
BFD_RELOC_HI16,
/* High 16 bits of 32-bit value but the low 16 bits will be sign
extended and added to form the final result. If the low 16
bits form a negative number, we need to add one to the high value
-to compensate for the borrow when the low bits are added. */
+to compensate for the borrow when the low bits are added. */
BFD_RELOC_HI16_S,
-/* Low 16 bits. */
+/* Low 16 bits. */
BFD_RELOC_LO16,
-/* Like BFD_RELOC_HI16_S, but PC relative. */
+/* Like BFD_RELOC_HI16_S, but PC relative. */
BFD_RELOC_PCREL_HI16_S,
-/* Like BFD_RELOC_LO16, but PC relative. */
+/* Like BFD_RELOC_LO16, but PC relative. */
BFD_RELOC_PCREL_LO16,
-/* Relocation against a MIPS literal section. */
+/* Relocation against a MIPS literal section. */
BFD_RELOC_MIPS_LITERAL,
-/* MIPS ELF relocations. */
+/* MIPS ELF relocations. */
BFD_RELOC_MIPS_GOT16,
BFD_RELOC_MIPS_CALL16,
BFD_RELOC_MIPS_GOT_HI16,
@@ -2182,9 +2194,58 @@ to compensate for the borrow when the low bits are added. */
BFD_RELOC_MIPS_REL16,
BFD_RELOC_MIPS_RELGOT,
BFD_RELOC_MIPS_JALR,
-
-
-/* i386/elf relocations */
+ BFD_RELOC_SH_GOT_LOW16,
+ BFD_RELOC_SH_GOT_MEDLOW16,
+ BFD_RELOC_SH_GOT_MEDHI16,
+ BFD_RELOC_SH_GOT_HI16,
+ BFD_RELOC_SH_GOTPLT_LOW16,
+ BFD_RELOC_SH_GOTPLT_MEDLOW16,
+ BFD_RELOC_SH_GOTPLT_MEDHI16,
+ BFD_RELOC_SH_GOTPLT_HI16,
+ BFD_RELOC_SH_PLT_LOW16,
+ BFD_RELOC_SH_PLT_MEDLOW16,
+ BFD_RELOC_SH_PLT_MEDHI16,
+ BFD_RELOC_SH_PLT_HI16,
+ BFD_RELOC_SH_GOTOFF_LOW16,
+ BFD_RELOC_SH_GOTOFF_MEDLOW16,
+ BFD_RELOC_SH_GOTOFF_MEDHI16,
+ BFD_RELOC_SH_GOTOFF_HI16,
+ BFD_RELOC_SH_GOTPC_LOW16,
+ BFD_RELOC_SH_GOTPC_MEDLOW16,
+ BFD_RELOC_SH_GOTPC_MEDHI16,
+ BFD_RELOC_SH_GOTPC_HI16,
+ BFD_RELOC_SH_COPY64,
+ BFD_RELOC_SH_GLOB_DAT64,
+ BFD_RELOC_SH_JMP_SLOT64,
+ BFD_RELOC_SH_RELATIVE64,
+ BFD_RELOC_SH_GOT10BY4,
+ BFD_RELOC_SH_GOT10BY8,
+ BFD_RELOC_SH_GOTPLT10BY4,
+ BFD_RELOC_SH_GOTPLT10BY8,
+ BFD_RELOC_SH_GOTPLT32,
+ BFD_RELOC_SH_SHMEDIA_CODE,
+ BFD_RELOC_SH_IMMU5,
+ BFD_RELOC_SH_IMMS6,
+ BFD_RELOC_SH_IMMS6BY32,
+ BFD_RELOC_SH_IMMU6,
+ BFD_RELOC_SH_IMMS10,
+ BFD_RELOC_SH_IMMS10BY2,
+ BFD_RELOC_SH_IMMS10BY4,
+ BFD_RELOC_SH_IMMS10BY8,
+ BFD_RELOC_SH_IMMS16,
+ BFD_RELOC_SH_IMMU16,
+ BFD_RELOC_SH_IMM_LOW16,
+ BFD_RELOC_SH_IMM_LOW16_PCREL,
+ BFD_RELOC_SH_IMM_MEDLOW16,
+ BFD_RELOC_SH_IMM_MEDLOW16_PCREL,
+ BFD_RELOC_SH_IMM_MEDHI16,
+ BFD_RELOC_SH_IMM_MEDHI16_PCREL,
+ BFD_RELOC_SH_IMM_HI16,
+ BFD_RELOC_SH_IMM_HI16_PCREL,
+ BFD_RELOC_SH_PT_16,
+
+
+/* i386/elf relocations */
BFD_RELOC_386_GOT32,
BFD_RELOC_386_PLT32,
BFD_RELOC_386_COPY,
@@ -2194,7 +2255,7 @@ to compensate for the borrow when the low bits are added. */
BFD_RELOC_386_GOTOFF,
BFD_RELOC_386_GOTPC,
-/* x86-64/elf relocations */
+/* x86-64/elf relocations */
BFD_RELOC_X86_64_GOT32,
BFD_RELOC_X86_64_PLT32,
BFD_RELOC_X86_64_COPY,
@@ -2204,7 +2265,7 @@ to compensate for the borrow when the low bits are added. */
BFD_RELOC_X86_64_GOTPCREL,
BFD_RELOC_X86_64_32S,
-/* ns32k relocations */
+/* ns32k relocations */
BFD_RELOC_NS32K_IMM_8,
BFD_RELOC_NS32K_IMM_16,
BFD_RELOC_NS32K_IMM_32,
@@ -2218,11 +2279,11 @@ to compensate for the borrow when the low bits are added. */
BFD_RELOC_NS32K_DISP_16_PCREL,
BFD_RELOC_NS32K_DISP_32_PCREL,
-/* PDP11 relocations */
+/* PDP11 relocations */
BFD_RELOC_PDP11_DISP_8_PCREL,
BFD_RELOC_PDP11_DISP_6_PCREL,
-/* Picojava relocs. Not all of these appear in object files. */
+/* Picojava relocs. Not all of these appear in object files. */
BFD_RELOC_PJ_CODE_HI16,
BFD_RELOC_PJ_CODE_LO16,
BFD_RELOC_PJ_CODE_DIR16,
@@ -2230,7 +2291,7 @@ to compensate for the borrow when the low bits are added. */
BFD_RELOC_PJ_CODE_REL16,
BFD_RELOC_PJ_CODE_REL32,
-/* Power(rs6000) and PowerPC relocations. */
+/* Power(rs6000) and PowerPC relocations. */
BFD_RELOC_PPC_B26,
BFD_RELOC_PPC_BA26,
BFD_RELOC_PPC_TOC16,
@@ -2285,30 +2346,30 @@ to compensate for the borrow when the low bits are added. */
BFD_RELOC_PPC64_PLTGOT16_DS,
BFD_RELOC_PPC64_PLTGOT16_LO_DS,
-/* IBM 370/390 relocations */
+/* IBM 370/390 relocations */
BFD_RELOC_I370_D12,
/* The type of reloc used to build a contructor table - at the moment
probably a 32 bit wide absolute relocation, but the target can choose.
-It generally does map to one of the other relocation types. */
+It generally does map to one of the other relocation types. */
BFD_RELOC_CTOR,
/* ARM 26 bit pc-relative branch. The lowest two bits must be zero and are
-not stored in the instruction. */
+not stored in the instruction. */
BFD_RELOC_ARM_PCREL_BRANCH,
/* ARM 26 bit pc-relative branch. The lowest bit must be zero and is
not stored in the instruction. The 2nd lowest bit comes from a 1 bit
-field in the instruction. */
+field in the instruction. */
BFD_RELOC_ARM_PCREL_BLX,
/* Thumb 22 bit pc-relative branch. The lowest bit must be zero and is
not stored in the instruction. The 2nd lowest bit comes from a 1 bit
-field in the instruction. */
+field in the instruction. */
BFD_RELOC_THUMB_PCREL_BLX,
/* These relocs are only used within the ARM assembler. They are not
-(at present) written to any object files. */
+(at present) written to any object files. */
BFD_RELOC_ARM_IMMEDIATE,
BFD_RELOC_ARM_ADRL_IMMEDIATE,
BFD_RELOC_ARM_OFFSET_IMM,
@@ -2336,7 +2397,7 @@ field in the instruction. */
BFD_RELOC_ARM_GOTOFF,
BFD_RELOC_ARM_GOTPC,
-/* Hitachi SH relocs. Not all of these appear in object files. */
+/* Hitachi SH relocs. Not all of these appear in object files. */
BFD_RELOC_SH_PCDISP8BY2,
BFD_RELOC_SH_PCDISP12BY2,
BFD_RELOC_SH_IMM4,
@@ -2364,7 +2425,7 @@ field in the instruction. */
BFD_RELOC_SH_GOTPC,
/* Thumb 23-, 12- and 9-bit pc-relative branches. The lowest bit must
-be zero and is not stored in the instruction. */
+be zero and is not stored in the instruction. */
BFD_RELOC_THUMB_PCREL_BRANCH9,
BFD_RELOC_THUMB_PCREL_BRANCH12,
BFD_RELOC_THUMB_PCREL_BRANCH23,
@@ -2372,234 +2433,234 @@ be zero and is not stored in the instruction. */
/* ARC Cores relocs.
ARC 22 bit pc-relative branch. The lowest two bits must be zero and are
not stored in the instruction. The high 20 bits are installed in bits 26
-through 7 of the instruction. */
+through 7 of the instruction. */
BFD_RELOC_ARC_B22_PCREL,
/* ARC 26 bit absolute branch. The lowest two bits must be zero and are not
stored in the instruction. The high 24 bits are installed in bits 23
-through 0. */
+through 0. */
BFD_RELOC_ARC_B26,
/* Mitsubishi D10V relocs.
This is a 10-bit reloc with the right 2 bits
-assumed to be 0. */
+assumed to be 0. */
BFD_RELOC_D10V_10_PCREL_R,
/* Mitsubishi D10V relocs.
This is a 10-bit reloc with the right 2 bits
assumed to be 0. This is the same as the previous reloc
except it is in the left container, i.e.,
-shifted left 15 bits. */
+shifted left 15 bits. */
BFD_RELOC_D10V_10_PCREL_L,
/* This is an 18-bit reloc with the right 2 bits
-assumed to be 0. */
+assumed to be 0. */
BFD_RELOC_D10V_18,
/* This is an 18-bit reloc with the right 2 bits
-assumed to be 0. */
+assumed to be 0. */
BFD_RELOC_D10V_18_PCREL,
/* Mitsubishi D30V relocs.
-This is a 6-bit absolute reloc. */
+This is a 6-bit absolute reloc. */
BFD_RELOC_D30V_6,
/* This is a 6-bit pc-relative reloc with
-the right 3 bits assumed to be 0. */
+the right 3 bits assumed to be 0. */
BFD_RELOC_D30V_9_PCREL,
/* This is a 6-bit pc-relative reloc with
the right 3 bits assumed to be 0. Same
as the previous reloc but on the right side
-of the container. */
+of the container. */
BFD_RELOC_D30V_9_PCREL_R,
/* This is a 12-bit absolute reloc with the
-right 3 bitsassumed to be 0. */
+right 3 bitsassumed to be 0. */
BFD_RELOC_D30V_15,
/* This is a 12-bit pc-relative reloc with
-the right 3 bits assumed to be 0. */
+the right 3 bits assumed to be 0. */
BFD_RELOC_D30V_15_PCREL,
/* This is a 12-bit pc-relative reloc with
the right 3 bits assumed to be 0. Same
as the previous reloc but on the right side
-of the container. */
+of the container. */
BFD_RELOC_D30V_15_PCREL_R,
/* This is an 18-bit absolute reloc with
-the right 3 bits assumed to be 0. */
+the right 3 bits assumed to be 0. */
BFD_RELOC_D30V_21,
/* This is an 18-bit pc-relative reloc with
-the right 3 bits assumed to be 0. */
+the right 3 bits assumed to be 0. */
BFD_RELOC_D30V_21_PCREL,
/* This is an 18-bit pc-relative reloc with
the right 3 bits assumed to be 0. Same
as the previous reloc but on the right side
-of the container. */
+of the container. */
BFD_RELOC_D30V_21_PCREL_R,
-/* This is a 32-bit absolute reloc. */
+/* This is a 32-bit absolute reloc. */
BFD_RELOC_D30V_32,
-/* This is a 32-bit pc-relative reloc. */
+/* This is a 32-bit pc-relative reloc. */
BFD_RELOC_D30V_32_PCREL,
/* Mitsubishi M32R relocs.
-This is a 24 bit absolute address. */
+This is a 24 bit absolute address. */
BFD_RELOC_M32R_24,
-/* This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0. */
+/* This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0. */
BFD_RELOC_M32R_10_PCREL,
-/* This is an 18-bit reloc with the right 2 bits assumed to be 0. */
+/* This is an 18-bit reloc with the right 2 bits assumed to be 0. */
BFD_RELOC_M32R_18_PCREL,
-/* This is a 26-bit reloc with the right 2 bits assumed to be 0. */
+/* This is a 26-bit reloc with the right 2 bits assumed to be 0. */
BFD_RELOC_M32R_26_PCREL,
/* This is a 16-bit reloc containing the high 16 bits of an address
-used when the lower 16 bits are treated as unsigned. */
+used when the lower 16 bits are treated as unsigned. */
BFD_RELOC_M32R_HI16_ULO,
/* This is a 16-bit reloc containing the high 16 bits of an address
-used when the lower 16 bits are treated as signed. */
+used when the lower 16 bits are treated as signed. */
BFD_RELOC_M32R_HI16_SLO,
-/* This is a 16-bit reloc containing the lower 16 bits of an address. */
+/* This is a 16-bit reloc containing the lower 16 bits of an address. */
BFD_RELOC_M32R_LO16,
/* This is a 16-bit reloc containing the small data area offset for use in
-add3, load, and store instructions. */
+add3, load, and store instructions. */
BFD_RELOC_M32R_SDA16,
-/* This is a 9-bit reloc */
+/* This is a 9-bit reloc */
BFD_RELOC_V850_9_PCREL,
-/* This is a 22-bit reloc */
+/* This is a 22-bit reloc */
BFD_RELOC_V850_22_PCREL,
-/* This is a 16 bit offset from the short data area pointer. */
+/* This is a 16 bit offset from the short data area pointer. */
BFD_RELOC_V850_SDA_16_16_OFFSET,
/* This is a 16 bit offset (of which only 15 bits are used) from the
-short data area pointer. */
+short data area pointer. */
BFD_RELOC_V850_SDA_15_16_OFFSET,
-/* This is a 16 bit offset from the zero data area pointer. */
+/* This is a 16 bit offset from the zero data area pointer. */
BFD_RELOC_V850_ZDA_16_16_OFFSET,
/* This is a 16 bit offset (of which only 15 bits are used) from the
-zero data area pointer. */
+zero data area pointer. */
BFD_RELOC_V850_ZDA_15_16_OFFSET,
/* This is an 8 bit offset (of which only 6 bits are used) from the
-tiny data area pointer. */
+tiny data area pointer. */
BFD_RELOC_V850_TDA_6_8_OFFSET,
/* This is an 8bit offset (of which only 7 bits are used) from the tiny
-data area pointer. */
+data area pointer. */
BFD_RELOC_V850_TDA_7_8_OFFSET,
-/* This is a 7 bit offset from the tiny data area pointer. */
+/* This is a 7 bit offset from the tiny data area pointer. */
BFD_RELOC_V850_TDA_7_7_OFFSET,
-/* This is a 16 bit offset from the tiny data area pointer. */
+/* This is a 16 bit offset from the tiny data area pointer. */
BFD_RELOC_V850_TDA_16_16_OFFSET,
/* This is a 5 bit offset (of which only 4 bits are used) from the tiny
-data area pointer. */
+data area pointer. */
BFD_RELOC_V850_TDA_4_5_OFFSET,
-/* This is a 4 bit offset from the tiny data area pointer. */
+/* This is a 4 bit offset from the tiny data area pointer. */
BFD_RELOC_V850_TDA_4_4_OFFSET,
/* This is a 16 bit offset from the short data area pointer, with the
-bits placed non-contigously in the instruction. */
+bits placed non-contigously in the instruction. */
BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET,
/* This is a 16 bit offset from the zero data area pointer, with the
-bits placed non-contigously in the instruction. */
+bits placed non-contigously in the instruction. */
BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET,
-/* This is a 6 bit offset from the call table base pointer. */
+/* This is a 6 bit offset from the call table base pointer. */
BFD_RELOC_V850_CALLT_6_7_OFFSET,
-/* This is a 16 bit offset from the call table base pointer. */
+/* This is a 16 bit offset from the call table base pointer. */
BFD_RELOC_V850_CALLT_16_16_OFFSET,
/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
-instruction. */
+instruction. */
BFD_RELOC_MN10300_32_PCREL,
/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
-instruction. */
+instruction. */
BFD_RELOC_MN10300_16_PCREL,
/* This is a 8bit DP reloc for the tms320c30, where the most
significant 8 bits of a 24 bit word are placed into the least
-significant 8 bits of the opcode. */
+significant 8 bits of the opcode. */
BFD_RELOC_TIC30_LDP,
/* This is a 7bit reloc for the tms320c54x, where the least
significant 7 bits of a 16 bit word are placed into the least
-significant 7 bits of the opcode. */
+significant 7 bits of the opcode. */
BFD_RELOC_TIC54X_PARTLS7,
/* This is a 9bit DP reloc for the tms320c54x, where the most
significant 9 bits of a 16 bit word are placed into the least
-significant 9 bits of the opcode. */
+significant 9 bits of the opcode. */
BFD_RELOC_TIC54X_PARTMS9,
-/* This is an extended address 23-bit reloc for the tms320c54x. */
+/* This is an extended address 23-bit reloc for the tms320c54x. */
BFD_RELOC_TIC54X_23,
/* This is a 16-bit reloc for the tms320c54x, where the least
significant 16 bits of a 23-bit extended address are placed into
-the opcode. */
+the opcode. */
BFD_RELOC_TIC54X_16_OF_23,
/* This is a reloc for the tms320c54x, where the most
significant 7 bits of a 23-bit extended address are placed into
-the opcode. */
+the opcode. */
BFD_RELOC_TIC54X_MS7_OF_23,
-/* This is a 48 bit reloc for the FR30 that stores 32 bits. */
+/* This is a 48 bit reloc for the FR30 that stores 32 bits. */
BFD_RELOC_FR30_48,
/* This is a 32 bit reloc for the FR30 that stores 20 bits split up into
-two sections. */
+two sections. */
BFD_RELOC_FR30_20,
/* This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
-4 bits. */
+4 bits. */
BFD_RELOC_FR30_6_IN_4,
/* This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
-into 8 bits. */
+into 8 bits. */
BFD_RELOC_FR30_8_IN_8,
/* This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
-into 8 bits. */
+into 8 bits. */
BFD_RELOC_FR30_9_IN_8,
/* This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
-into 8 bits. */
+into 8 bits. */
BFD_RELOC_FR30_10_IN_8,
/* This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
-short offset into 8 bits. */
+short offset into 8 bits. */
BFD_RELOC_FR30_9_PCREL,
/* This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
-short offset into 11 bits. */
+short offset into 11 bits. */
BFD_RELOC_FR30_12_PCREL,
-/* Motorola Mcore relocations. */
+/* Motorola Mcore relocations. */
BFD_RELOC_MCORE_PCREL_IMM8BY4,
BFD_RELOC_MCORE_PCREL_IMM11BY2,
BFD_RELOC_MCORE_PCREL_IMM4BY2,
@@ -2607,171 +2668,171 @@ short offset into 11 bits. */
BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2,
BFD_RELOC_MCORE_RVA,
-/* These are relocations for the GETA instruction. */
+/* These are relocations for the GETA instruction. */
BFD_RELOC_MMIX_GETA,
BFD_RELOC_MMIX_GETA_1,
BFD_RELOC_MMIX_GETA_2,
BFD_RELOC_MMIX_GETA_3,
-/* These are relocations for a conditional branch instruction. */
+/* These are relocations for a conditional branch instruction. */
BFD_RELOC_MMIX_CBRANCH,
BFD_RELOC_MMIX_CBRANCH_J,
BFD_RELOC_MMIX_CBRANCH_1,
BFD_RELOC_MMIX_CBRANCH_2,
BFD_RELOC_MMIX_CBRANCH_3,
-/* These are relocations for the PUSHJ instruction. */
+/* These are relocations for the PUSHJ instruction. */
BFD_RELOC_MMIX_PUSHJ,
BFD_RELOC_MMIX_PUSHJ_1,
BFD_RELOC_MMIX_PUSHJ_2,
BFD_RELOC_MMIX_PUSHJ_3,
-/* These are relocations for the JMP instruction. */
+/* These are relocations for the JMP instruction. */
BFD_RELOC_MMIX_JMP,
BFD_RELOC_MMIX_JMP_1,
BFD_RELOC_MMIX_JMP_2,
BFD_RELOC_MMIX_JMP_3,
/* This is a relocation for a relative address as in a GETA instruction or
-a branch. */
+a branch. */
BFD_RELOC_MMIX_ADDR19,
-/* This is a relocation for a relative address as in a JMP instruction. */
+/* This is a relocation for a relative address as in a JMP instruction. */
BFD_RELOC_MMIX_ADDR27,
/* This is a relocation for an instruction field that may be a general
-register or a value 0..255. */
+register or a value 0..255. */
BFD_RELOC_MMIX_REG_OR_BYTE,
/* This is a relocation for an instruction field that may be a general
-register. */
+register. */
BFD_RELOC_MMIX_REG,
/* This is a relocation for two instruction fields holding a register and
-an offset, the equivalent of the relocation. */
+an offset, the equivalent of the relocation. */
BFD_RELOC_MMIX_BASE_PLUS_OFFSET,
/* This relocation is an assertion that the expression is not allocated as
-a global register. It does not modify contents. */
+a global register. It does not modify contents. */
BFD_RELOC_MMIX_LOCAL,
/* This is a 16 bit reloc for the AVR that stores 8 bit pc relative
-short offset into 7 bits. */
+short offset into 7 bits. */
BFD_RELOC_AVR_7_PCREL,
/* This is a 16 bit reloc for the AVR that stores 13 bit pc relative
-short offset into 12 bits. */
+short offset into 12 bits. */
BFD_RELOC_AVR_13_PCREL,
/* This is a 16 bit reloc for the AVR that stores 17 bit value (usually
-program memory address) into 16 bits. */
+program memory address) into 16 bits. */
BFD_RELOC_AVR_16_PM,
/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
-data memory address) into 8 bit immediate value of LDI insn. */
+data memory address) into 8 bit immediate value of LDI insn. */
BFD_RELOC_AVR_LO8_LDI,
/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
-of data memory address) into 8 bit immediate value of LDI insn. */
+of data memory address) into 8 bit immediate value of LDI insn. */
BFD_RELOC_AVR_HI8_LDI,
/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
-of program memory address) into 8 bit immediate value of LDI insn. */
+of program memory address) into 8 bit immediate value of LDI insn. */
BFD_RELOC_AVR_HH8_LDI,
/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
-(usually data memory address) into 8 bit immediate value of SUBI insn. */
+(usually data memory address) into 8 bit immediate value of SUBI insn. */
BFD_RELOC_AVR_LO8_LDI_NEG,
/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
(high 8 bit of data memory address) into 8 bit immediate value of
-SUBI insn. */
+SUBI insn. */
BFD_RELOC_AVR_HI8_LDI_NEG,
/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
(most high 8 bit of program memory address) into 8 bit immediate value
-of LDI or SUBI insn. */
+of LDI or SUBI insn. */
BFD_RELOC_AVR_HH8_LDI_NEG,
/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
-command address) into 8 bit immediate value of LDI insn. */
+command address) into 8 bit immediate value of LDI insn. */
BFD_RELOC_AVR_LO8_LDI_PM,
/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
-of command address) into 8 bit immediate value of LDI insn. */
+of command address) into 8 bit immediate value of LDI insn. */
BFD_RELOC_AVR_HI8_LDI_PM,
/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
-of command address) into 8 bit immediate value of LDI insn. */
+of command address) into 8 bit immediate value of LDI insn. */
BFD_RELOC_AVR_HH8_LDI_PM,
/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
-(usually command address) into 8 bit immediate value of SUBI insn. */
+(usually command address) into 8 bit immediate value of SUBI insn. */
BFD_RELOC_AVR_LO8_LDI_PM_NEG,
/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
(high 8 bit of 16 bit command address) into 8 bit immediate value
-of SUBI insn. */
+of SUBI insn. */
BFD_RELOC_AVR_HI8_LDI_PM_NEG,
/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
(high 6 bit of 22 bit command address) into 8 bit immediate
-value of SUBI insn. */
+value of SUBI insn. */
BFD_RELOC_AVR_HH8_LDI_PM_NEG,
/* This is a 32 bit reloc for the AVR that stores 23 bit value
-into 22 bits. */
+into 22 bits. */
BFD_RELOC_AVR_CALL,
-/* Direct 12 bit. */
+/* Direct 12 bit. */
BFD_RELOC_390_12,
-/* 12 bit GOT offset. */
+/* 12 bit GOT offset. */
BFD_RELOC_390_GOT12,
-/* 32 bit PC relative PLT address. */
+/* 32 bit PC relative PLT address. */
BFD_RELOC_390_PLT32,
-/* Copy symbol at runtime. */
+/* Copy symbol at runtime. */
BFD_RELOC_390_COPY,
-/* Create GOT entry. */
+/* Create GOT entry. */
BFD_RELOC_390_GLOB_DAT,
-/* Create PLT entry. */
+/* Create PLT entry. */
BFD_RELOC_390_JMP_SLOT,
-/* Adjust by program base. */
+/* Adjust by program base. */
BFD_RELOC_390_RELATIVE,
-/* 32 bit PC relative offset to GOT. */
+/* 32 bit PC relative offset to GOT. */
BFD_RELOC_390_GOTPC,
-/* 16 bit GOT offset. */
+/* 16 bit GOT offset. */
BFD_RELOC_390_GOT16,
-/* PC relative 16 bit shifted by 1. */
+/* PC relative 16 bit shifted by 1. */
BFD_RELOC_390_PC16DBL,
-/* 16 bit PC rel. PLT shifted by 1. */
+/* 16 bit PC rel. PLT shifted by 1. */
BFD_RELOC_390_PLT16DBL,
-/* PC relative 32 bit shifted by 1. */
+/* PC relative 32 bit shifted by 1. */
BFD_RELOC_390_PC32DBL,
-/* 32 bit PC rel. PLT shifted by 1. */
+/* 32 bit PC rel. PLT shifted by 1. */
BFD_RELOC_390_PLT32DBL,
-/* 32 bit PC rel. GOT shifted by 1. */
+/* 32 bit PC rel. GOT shifted by 1. */
BFD_RELOC_390_GOTPCDBL,
-/* 64 bit GOT offset. */
+/* 64 bit GOT offset. */
BFD_RELOC_390_GOT64,
-/* 64 bit PC relative PLT address. */
+/* 64 bit PC relative PLT address. */
BFD_RELOC_390_PLT64,
-/* 32 bit rel. offset to GOT entry. */
+/* 32 bit rel. offset to GOT entry. */
BFD_RELOC_390_GOTENT,
/* These two relocations are used by the linker to determine which of
@@ -2790,11 +2851,11 @@ virtual function table entry. The reloc's symbol should refer to the
table of the class mentioned in the code. Off of that base, an offset
describes the entry that is being used. For Rela hosts, this offset
is stored in the reloc's addend. For Rel hosts, we are forced to put
-this offset in the reloc's section offset. */
+this offset in the reloc's section offset. */
BFD_RELOC_VTABLE_INHERIT,
BFD_RELOC_VTABLE_ENTRY,
-/* Intel IA64 Relocations. */
+/* Intel IA64 Relocations. */
BFD_RELOC_IA64_IMM14,
BFD_RELOC_IA64_IMM22,
BFD_RELOC_IA64_IMM64,
@@ -2863,53 +2924,53 @@ this offset in the reloc's section offset. */
BFD_RELOC_IA64_LDXMOV,
/* Motorola 68HC11 reloc.
-This is the 8 bits high part of an absolute address. */
+This is the 8 bits high part of an absolute address. */
BFD_RELOC_M68HC11_HI8,
/* Motorola 68HC11 reloc.
-This is the 8 bits low part of an absolute address. */
+This is the 8 bits low part of an absolute address. */
BFD_RELOC_M68HC11_LO8,
/* Motorola 68HC11 reloc.
-This is the 3 bits of a value. */
+This is the 3 bits of a value. */
BFD_RELOC_M68HC11_3B,
/* These relocs are only used within the CRIS assembler. They are not
-(at present) written to any object files. */
+(at present) written to any object files. */
BFD_RELOC_CRIS_BDISP8,
BFD_RELOC_CRIS_UNSIGNED_5,
BFD_RELOC_CRIS_SIGNED_6,
BFD_RELOC_CRIS_UNSIGNED_6,
BFD_RELOC_CRIS_UNSIGNED_4,
-/* Relocs used in ELF shared libraries for CRIS. */
+/* Relocs used in ELF shared libraries for CRIS. */
BFD_RELOC_CRIS_COPY,
BFD_RELOC_CRIS_GLOB_DAT,
BFD_RELOC_CRIS_JUMP_SLOT,
BFD_RELOC_CRIS_RELATIVE,
-/* 32-bit offset to symbol-entry within GOT. */
+/* 32-bit offset to symbol-entry within GOT. */
BFD_RELOC_CRIS_32_GOT,
-/* 16-bit offset to symbol-entry within GOT. */
+/* 16-bit offset to symbol-entry within GOT. */
BFD_RELOC_CRIS_16_GOT,
-/* 32-bit offset to symbol-entry within GOT, with PLT handling. */
+/* 32-bit offset to symbol-entry within GOT, with PLT handling. */
BFD_RELOC_CRIS_32_GOTPLT,
-/* 16-bit offset to symbol-entry within GOT, with PLT handling. */
+/* 16-bit offset to symbol-entry within GOT, with PLT handling. */
BFD_RELOC_CRIS_16_GOTPLT,
-/* 32-bit offset to symbol, relative to GOT. */
+/* 32-bit offset to symbol, relative to GOT. */
BFD_RELOC_CRIS_32_GOTREL,
-/* 32-bit offset to symbol with PLT entry, relative to GOT. */
+/* 32-bit offset to symbol with PLT entry, relative to GOT. */
BFD_RELOC_CRIS_32_PLT_GOTREL,
-/* 32-bit offset to symbol with PLT entry, relative to this relocation. */
+/* 32-bit offset to symbol with PLT entry, relative to this relocation. */
BFD_RELOC_CRIS_32_PLT_PCREL,
-/* Intel i860 Relocations. */
+/* Intel i860 Relocations. */
BFD_RELOC_860_COPY,
BFD_RELOC_860_GLOB_DAT,
BFD_RELOC_860_JUMP_SLOT,
@@ -2943,18 +3004,18 @@ This is the 3 bits of a value. */
BFD_RELOC_860_HIGOT,
BFD_RELOC_860_HIGOTOFF,
-/* OpenRISC Relocations. */
+/* OpenRISC Relocations. */
BFD_RELOC_OPENRISC_ABS_26,
BFD_RELOC_OPENRISC_REL_26,
-/* H8 elf Relocations. */
+/* H8 elf Relocations. */
BFD_RELOC_H8_DIR16A8,
BFD_RELOC_H8_DIR16R8,
BFD_RELOC_H8_DIR24A8,
BFD_RELOC_H8_DIR24R8,
BFD_RELOC_H8_DIR32A16,
-/* Sony Xstormy16 Relocations. */
+/* Sony Xstormy16 Relocations. */
BFD_RELOC_XSTORMY16_REL_12,
BFD_RELOC_XSTORMY16_24,
BFD_RELOC_XSTORMY16_FPTR16,
@@ -2969,128 +3030,128 @@ bfd_get_reloc_code_name PARAMS ((bfd_reloc_code_real_type code));
typedef struct symbol_cache_entry
{
- /* A pointer to the BFD which owns the symbol. This information
- is necessary so that a back end can work out what additional
- information (invisible to the application writer) is carried
- with the symbol.
-
- This field is *almost* redundant, since you can use section->owner
- instead, except that some symbols point to the global sections
- bfd_{abs,com,und}_section. This could be fixed by making
- these globals be per-bfd (or per-target-flavor). FIXME. */
-
- struct _bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */
-
- /* The text of the symbol. The name is left alone, and not copied; the
- application may not alter it. */
+ /* A pointer to the BFD which owns the symbol. This information
+ is necessary so that a back end can work out what additional
+ information (invisible to the application writer) is carried
+ with the symbol.
+
+ This field is *almost* redundant, since you can use section->owner
+ instead, except that some symbols point to the global sections
+ bfd_{abs,com,und}_section. This could be fixed by making
+ these globals be per-bfd (or per-target-flavor). FIXME. */
+ struct _bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */
+
+ /* The text of the symbol. The name is left alone, and not copied; the
+ application may not alter it. */
const char *name;
- /* The value of the symbol. This really should be a union of a
- numeric value with a pointer, since some flags indicate that
- a pointer to another symbol is stored here. */
+ /* The value of the symbol. This really should be a union of a
+ numeric value with a pointer, since some flags indicate that
+ a pointer to another symbol is stored here. */
symvalue value;
- /* Attributes of a symbol: */
-
+ /* Attributes of a symbol. */
#define BSF_NO_FLAGS 0x00
- /* The symbol has local scope; <<static>> in <<C>>. The value
- is the offset into the section of the data. */
+ /* The symbol has local scope; <<static>> in <<C>>. The value
+ is the offset into the section of the data. */
#define BSF_LOCAL 0x01
- /* The symbol has global scope; initialized data in <<C>>. The
- value is the offset into the section of the data. */
+ /* The symbol has global scope; initialized data in <<C>>. The
+ value is the offset into the section of the data. */
#define BSF_GLOBAL 0x02
- /* The symbol has global scope and is exported. The value is
- the offset into the section of the data. */
-#define BSF_EXPORT BSF_GLOBAL /* no real difference */
+ /* The symbol has global scope and is exported. The value is
+ the offset into the section of the data. */
+#define BSF_EXPORT BSF_GLOBAL /* No real difference. */
- /* A normal C symbol would be one of:
- <<BSF_LOCAL>>, <<BSF_FORT_COMM>>, <<BSF_UNDEFINED>> or
- <<BSF_GLOBAL>> */
+ /* A normal C symbol would be one of:
+ <<BSF_LOCAL>>, <<BSF_FORT_COMM>>, <<BSF_UNDEFINED>> or
+ <<BSF_GLOBAL>>. */
- /* The symbol is a debugging record. The value has an arbitary
- meaning, unless BSF_DEBUGGING_RELOC is also set. */
+ /* The symbol is a debugging record. The value has an arbitary
+ meaning, unless BSF_DEBUGGING_RELOC is also set. */
#define BSF_DEBUGGING 0x08
- /* The symbol denotes a function entry point. Used in ELF,
- perhaps others someday. */
+ /* The symbol denotes a function entry point. Used in ELF,
+ perhaps others someday. */
#define BSF_FUNCTION 0x10
- /* Used by the linker. */
+ /* Used by the linker. */
#define BSF_KEEP 0x20
#define BSF_KEEP_G 0x40
- /* A weak global symbol, overridable without warnings by
- a regular global symbol of the same name. */
+ /* A weak global symbol, overridable without warnings by
+ a regular global symbol of the same name. */
#define BSF_WEAK 0x80
- /* This symbol was created to point to a section, e.g. ELF's
- STT_SECTION symbols. */
+ /* This symbol was created to point to a section, e.g. ELF's
+ STT_SECTION symbols. */
#define BSF_SECTION_SYM 0x100
- /* The symbol used to be a common symbol, but now it is
- allocated. */
+ /* The symbol used to be a common symbol, but now it is
+ allocated. */
#define BSF_OLD_COMMON 0x200
- /* The default value for common data. */
+ /* The default value for common data. */
#define BFD_FORT_COMM_DEFAULT_VALUE 0
- /* In some files the type of a symbol sometimes alters its
- location in an output file - ie in coff a <<ISFCN>> symbol
- which is also <<C_EXT>> symbol appears where it was
- declared and not at the end of a section. This bit is set
- by the target BFD part to convey this information. */
-
+ /* In some files the type of a symbol sometimes alters its
+ location in an output file - ie in coff a <<ISFCN>> symbol
+ which is also <<C_EXT>> symbol appears where it was
+ declared and not at the end of a section. This bit is set
+ by the target BFD part to convey this information. */
#define BSF_NOT_AT_END 0x400
- /* Signal that the symbol is the label of constructor section. */
+ /* Signal that the symbol is the label of constructor section. */
#define BSF_CONSTRUCTOR 0x800
- /* Signal that the symbol is a warning symbol. The name is a
- warning. The name of the next symbol is the one to warn about;
- if a reference is made to a symbol with the same name as the next
- symbol, a warning is issued by the linker. */
+ /* Signal that the symbol is a warning symbol. The name is a
+ warning. The name of the next symbol is the one to warn about;
+ if a reference is made to a symbol with the same name as the next
+ symbol, a warning is issued by the linker. */
#define BSF_WARNING 0x1000
- /* Signal that the symbol is indirect. This symbol is an indirect
- pointer to the symbol with the same name as the next symbol. */
+ /* Signal that the symbol is indirect. This symbol is an indirect
+ pointer to the symbol with the same name as the next symbol. */
#define BSF_INDIRECT 0x2000
- /* BSF_FILE marks symbols that contain a file name. This is used
- for ELF STT_FILE symbols. */
+ /* BSF_FILE marks symbols that contain a file name. This is used
+ for ELF STT_FILE symbols. */
#define BSF_FILE 0x4000
- /* Symbol is from dynamic linking information. */
+ /* Symbol is from dynamic linking information. */
#define BSF_DYNAMIC 0x8000
- /* The symbol denotes a data object. Used in ELF, and perhaps
- others someday. */
+ /* The symbol denotes a data object. Used in ELF, and perhaps
+ others someday. */
#define BSF_OBJECT 0x10000
- /* This symbol is a debugging symbol. The value is the offset
- into the section of the data. BSF_DEBUGGING should be set
- as well. */
+ /* This symbol is a debugging symbol. The value is the offset
+ into the section of the data. BSF_DEBUGGING should be set
+ as well. */
#define BSF_DEBUGGING_RELOC 0x20000
flagword flags;
- /* A pointer to the section to which this symbol is
- relative. This will always be non NULL, there are special
- sections for undefined and absolute symbols. */
+ /* A pointer to the section to which this symbol is
+ relative. This will always be non NULL, there are special
+ sections for undefined and absolute symbols. */
struct sec *section;
- /* Back end special data. */
+ /* Back end special data. */
union
{
PTR p;
bfd_vma i;
- } udata;
+ }
+ udata;
+}
+asymbol;
-} asymbol;
#define bfd_get_symtab_upper_bound(abfd) \
BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
+
boolean
bfd_is_local_label PARAMS ((bfd *abfd, asymbol *sym));
@@ -3099,9 +3160,11 @@ bfd_is_local_label_name PARAMS ((bfd *abfd, const char *name));
#define bfd_is_local_label_name(abfd, name) \
BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
+
#define bfd_canonicalize_symtab(abfd, location) \
BFD_SEND (abfd, _bfd_canonicalize_symtab,\
(abfd, location))
+
boolean
bfd_set_symtab PARAMS ((bfd *abfd, asymbol **location, unsigned int count));
@@ -3110,11 +3173,13 @@ bfd_print_symbol_vandf PARAMS ((bfd *abfd, PTR file, asymbol *symbol));
#define bfd_make_empty_symbol(abfd) \
BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
+
asymbol *
_bfd_generic_make_empty_symbol PARAMS ((bfd *));
#define bfd_make_debug_symbol(abfd,ptr,size) \
BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
+
int
bfd_decode_symclass PARAMS ((asymbol *symbol));
@@ -3130,129 +3195,121 @@ bfd_copy_private_symbol_data PARAMS ((bfd *ibfd, asymbol *isym, bfd *obfd, asymb
#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
(ibfd, isymbol, obfd, osymbol))
+
struct _bfd
{
- /* The filename the application opened the BFD with. */
- const char *filename;
-
- /* A pointer to the target jump table. */
- const struct bfd_target *xvec;
-
- /* To avoid dragging too many header files into every file that
- includes `<<bfd.h>>', IOSTREAM has been declared as a "char
- *", and MTIME as a "long". Their correct types, to which they
- are cast when used, are "FILE *" and "time_t". The iostream
- is the result of an fopen on the filename. However, if the
- BFD_IN_MEMORY flag is set, then iostream is actually a pointer
- to a bfd_in_memory struct. */
- PTR iostream;
-
- /* Is the file descriptor being cached? That is, can it be closed as
- needed, and re-opened when accessed later? */
-
- boolean cacheable;
-
- /* Marks whether there was a default target specified when the
- BFD was opened. This is used to select which matching algorithm
- to use to choose the back end. */
-
- boolean target_defaulted;
-
- /* The caching routines use these to maintain a
- least-recently-used list of BFDs */
-
- struct _bfd *lru_prev, *lru_next;
-
- /* When a file is closed by the caching routines, BFD retains
- state information on the file here: */
-
- ufile_ptr where;
-
- /* and here: (``once'' means at least once) */
-
- boolean opened_once;
+ /* The filename the application opened the BFD with. */
+ const char *filename;
- /* Set if we have a locally maintained mtime value, rather than
- getting it from the file each time: */
+ /* A pointer to the target jump table. */
+ const struct bfd_target *xvec;
- boolean mtime_set;
+ /* To avoid dragging too many header files into every file that
+ includes `<<bfd.h>>', IOSTREAM has been declared as a "char *",
+ and MTIME as a "long". Their correct types, to which they
+ are cast when used, are "FILE *" and "time_t". The iostream
+ is the result of an fopen on the filename. However, if the
+ BFD_IN_MEMORY flag is set, then iostream is actually a pointer
+ to a bfd_in_memory struct. */
+ PTR iostream;
- /* File modified time, if mtime_set is true: */
+ /* Is the file descriptor being cached? That is, can it be closed as
+ needed, and re-opened when accessed later? */
+ boolean cacheable;
- long mtime;
+ /* Marks whether there was a default target specified when the
+ BFD was opened. This is used to select which matching algorithm
+ to use to choose the back end. */
+ boolean target_defaulted;
- /* Reserved for an unimplemented file locking extension.*/
+ /* The caching routines use these to maintain a
+ least-recently-used list of BFDs. */
+ struct _bfd *lru_prev, *lru_next;
- int ifd;
+ /* When a file is closed by the caching routines, BFD retains
+ state information on the file here... */
+ ufile_ptr where;
- /* The format which belongs to the BFD. (object, core, etc.) */
+ /* ... and here: (``once'' means at least once). */
+ boolean opened_once;
- bfd_format format;
+ /* Set if we have a locally maintained mtime value, rather than
+ getting it from the file each time. */
+ boolean mtime_set;
- /* The direction the BFD was opened with*/
+ /* File modified time, if mtime_set is true. */
+ long mtime;
- enum bfd_direction {no_direction = 0,
- read_direction = 1,
- write_direction = 2,
- both_direction = 3} direction;
+ /* Reserved for an unimplemented file locking extension. */
+ int ifd;
- /* Format_specific flags*/
+ /* The format which belongs to the BFD. (object, core, etc.) */
+ bfd_format format;
- flagword flags;
-
- /* Currently my_archive is tested before adding origin to
- anything. I believe that this can become always an add of
- origin, with origin set to 0 for non archive files. */
-
- ufile_ptr origin;
+ /* The direction with which the BFD was opened. */
+ enum bfd_direction
+ {
+ no_direction = 0,
+ read_direction = 1,
+ write_direction = 2,
+ both_direction = 3
+ }
+ direction;
+
+ /* Format_specific flags. */
+ flagword flags;
- /* Remember when output has begun, to stop strange things
- from happening. */
- boolean output_has_begun;
+ /* Currently my_archive is tested before adding origin to
+ anything. I believe that this can become always an add of
+ origin, with origin set to 0 for non archive files. */
+ ufile_ptr origin;
- /* A hash table for section names. */
- struct bfd_hash_table section_htab;
+ /* Remember when output has begun, to stop strange things
+ from happening. */
+ boolean output_has_begun;
- /* Pointer to linked list of sections. */
- struct sec *sections;
+ /* A hash table for section names. */
+ struct bfd_hash_table section_htab;
- /* The place where we add to the section list. */
- struct sec **section_tail;
+ /* Pointer to linked list of sections. */
+ struct sec *sections;
- /* The number of sections */
- unsigned int section_count;
+ /* The place where we add to the section list. */
+ struct sec **section_tail;
- /* Stuff only useful for object files:
- The start address. */
- bfd_vma start_address;
+ /* The number of sections. */
+ unsigned int section_count;
- /* Used for input and output*/
- unsigned int symcount;
+ /* Stuff only useful for object files:
+ The start address. */
+ bfd_vma start_address;
- /* Symbol table for output BFD (with symcount entries) */
- struct symbol_cache_entry **outsymbols;
+ /* Used for input and output. */
+ unsigned int symcount;
- /* Pointer to structure which contains architecture information*/
- const struct bfd_arch_info *arch_info;
+ /* Symbol table for output BFD (with symcount entries). */
+ struct symbol_cache_entry **outsymbols;
- /* Stuff only useful for archives:*/
- PTR arelt_data;
- struct _bfd *my_archive; /* The containing archive BFD. */
- struct _bfd *next; /* The next BFD in the archive. */
- struct _bfd *archive_head; /* The first BFD in the archive. */
- boolean has_armap;
+ /* Pointer to structure which contains architecture information. */
+ const struct bfd_arch_info *arch_info;
- /* A chain of BFD structures involved in a link. */
- struct _bfd *link_next;
+ /* Stuff only useful for archives. */
+ PTR arelt_data;
+ struct _bfd *my_archive; /* The containing archive BFD. */
+ struct _bfd *next; /* The next BFD in the archive. */
+ struct _bfd *archive_head; /* The first BFD in the archive. */
+ boolean has_armap;
- /* A field used by _bfd_generic_link_add_archive_symbols. This will
- be used only for archive elements. */
- int archive_pass;
+ /* A chain of BFD structures involved in a link. */
+ struct _bfd *link_next;
- /* Used by the back end to hold private data. */
+ /* A field used by _bfd_generic_link_add_archive_symbols. This will
+ be used only for archive elements. */
+ int archive_pass;
- union
- {
+ /* Used by the back end to hold private data. */
+ union
+ {
struct aout_data_struct *aout_data;
struct artdata *aout_ar_data;
struct _oasys_data *oasys_obj_data;
@@ -3283,15 +3340,16 @@ struct _bfd
struct versados_data_struct *versados_data;
struct netbsd_core_struct *netbsd_core_data;
PTR any;
- } tdata;
+ }
+ tdata;
- /* Used by the application to hold private data*/
- PTR usrdata;
+ /* Used by the application to hold private data. */
+ PTR usrdata;
/* Where all the allocated stuff under this BFD goes. This is a
struct objalloc *, but we use PTR to avoid requiring the inclusion of
objalloc.h. */
- PTR memory;
+ PTR memory;
};
typedef enum bfd_error
@@ -3316,7 +3374,8 @@ typedef enum bfd_error
bfd_error_file_truncated,
bfd_error_file_too_big,
bfd_error_invalid_error_code
-} bfd_error_type;
+}
+bfd_error_type;
bfd_error_type
bfd_get_error PARAMS ((void));
@@ -3354,9 +3413,7 @@ bfd_canonicalize_reloc PARAMS ((bfd *abfd,
asymbol **syms));
void
-bfd_set_reloc PARAMS ((bfd *abfd, asection *sec, arelent **rel, unsigned int count)
-
- );
+bfd_set_reloc PARAMS ((bfd *abfd, asection *sec, arelent **rel, unsigned int count));
boolean
bfd_set_file_flags PARAMS ((bfd *abfd, flagword flags));
@@ -3511,7 +3568,9 @@ core_file_matches_executable_p PARAMS ((bfd *core_bfd, bfd *exec_bfd));
(((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
(bfd_assert (__FILE__,__LINE__), NULL))
#endif
-enum bfd_flavour {
+
+enum bfd_flavour
+{
bfd_target_unknown_flavour,
bfd_target_aout_flavour,
bfd_target_coff_flavour,
@@ -3540,15 +3599,40 @@ typedef struct bfd_link_info _bfd_link_info;
typedef struct bfd_target
{
+ /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */
char *name;
+
+ /* The "flavour" of a back end is a general indication about
+ the contents of a file. */
enum bfd_flavour flavour;
+
+ /* The order of bytes within the data area of a file. */
enum bfd_endian byteorder;
+
+ /* The order of bytes within the header parts of a file. */
enum bfd_endian header_byteorder;
+
+ /* A mask of all the flags which an executable may have set -
+ from the set <<BFD_NO_FLAGS>>, <<HAS_RELOC>>, ...<<D_PAGED>>. */
flagword object_flags;
+
+ /* A mask of all the flags which a section may have set - from
+ the set <<SEC_NO_FLAGS>>, <<SEC_ALLOC>>, ...<<SET_NEVER_LOAD>>. */
flagword section_flags;
+
+ /* The character normally found at the front of a symbol.
+ (if any), perhaps `_'. */
char symbol_leading_char;
+
+ /* The pad character for file names within an archive header. */
char ar_pad_char;
+
+ /* The maximum number of characters in an archive header. */
unsigned short ar_max_namelen;
+
+ /* Entries for byte swapping for data. These are different from the
+ other entry points, since they don't take a BFD asthe first argument.
+ Certain other handlers could do the same. */
bfd_vma (*bfd_getx64) PARAMS ((const bfd_byte *));
bfd_signed_vma (*bfd_getx_signed_64) PARAMS ((const bfd_byte *));
void (*bfd_putx64) PARAMS ((bfd_vma, bfd_byte *));
@@ -3558,6 +3642,8 @@ typedef struct bfd_target
bfd_vma (*bfd_getx16) PARAMS ((const bfd_byte *));
bfd_signed_vma (*bfd_getx_signed_16) PARAMS ((const bfd_byte *));
void (*bfd_putx16) PARAMS ((bfd_vma, bfd_byte *));
+
+ /* Byte swapping for the headers. */
bfd_vma (*bfd_h_getx64) PARAMS ((const bfd_byte *));
bfd_signed_vma (*bfd_h_getx_signed_64) PARAMS ((const bfd_byte *));
void (*bfd_h_putx64) PARAMS ((bfd_vma, bfd_byte *));
@@ -3567,10 +3653,20 @@ typedef struct bfd_target
bfd_vma (*bfd_h_getx16) PARAMS ((const bfd_byte *));
bfd_signed_vma (*bfd_h_getx_signed_16) PARAMS ((const bfd_byte *));
void (*bfd_h_putx16) PARAMS ((bfd_vma, bfd_byte *));
+
+ /* Format dependent routines: these are vectors of entry points
+ within the target vector structure, one for each format to check. */
+
+ /* Check the format of a file being read. Return a <<bfd_target *>> or zero. */
const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *));
+
+ /* Set the format of a file being written. */
boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *));
+
+ /* Write cached information into a file being written, at <<bfd_close>>. */
boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *));
+
/* Generic entry points. */
#define BFD_JUMP_TABLE_GENERIC(NAME) \
CONCAT2 (NAME,_close_and_cleanup), \
@@ -3613,10 +3709,10 @@ CONCAT2 (NAME,_bfd_print_private_bfd_data) \
to another. */
boolean (*_bfd_copy_private_symbol_data) PARAMS ((bfd *, asymbol *,
bfd *, asymbol *));
- /* Called to set private backend flags */
+ /* Called to set private backend flags. */
boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
- /* Called to print private BFD data */
+ /* Called to print private BFD data. */
boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR));
/* Core file entry points. */
@@ -3766,7 +3862,7 @@ CONCAT2 (NAME,_get_dynamic_symtab_upper_bound), \
CONCAT2 (NAME,_canonicalize_dynamic_symtab), \
CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \
CONCAT2 (NAME,_canonicalize_dynamic_reloc)
- /* Get the amount of memory required to hold the dynamic symbols. */
+ /* Get the amount of memory required to hold the dynamic symbols. */
long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *));
/* Read in the dynamic symbols. */
long (*_bfd_canonicalize_dynamic_symtab)
@@ -3777,12 +3873,15 @@ CONCAT2 (NAME,_canonicalize_dynamic_reloc)
long (*_bfd_canonicalize_dynamic_reloc)
PARAMS ((bfd *, arelent **, struct symbol_cache_entry **));
- /* Opposite endian version of this target. */
- const struct bfd_target * alternative_target;
+ /* Opposite endian version of this target. */
+ const struct bfd_target * alternative_target;
- PTR backend_data;
+ /* Data for use by back-end routines, which isn't
+ generic enough to belong in this structure. */
+ PTR backend_data;
} bfd_target;
+
boolean
bfd_set_default_target PARAMS ((const char *name));
diff --git a/contrib/binutils/bfd/bfd.c b/contrib/binutils/bfd/bfd.c
index 122f523..73bb17e 100644
--- a/contrib/binutils/bfd/bfd.c
+++ b/contrib/binutils/bfd/bfd.c
@@ -1,6 +1,6 @@
/* Generic BFD library interface and support routines.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001
+ 2000, 2001, 2002
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -36,127 +36,118 @@ CODE_FRAGMENT
.
.struct _bfd
.{
-. {* The filename the application opened the BFD with. *}
-. const char *filename;
+. {* The filename the application opened the BFD with. *}
+. const char *filename;
.
-. {* A pointer to the target jump table. *}
-. const struct bfd_target *xvec;
+. {* A pointer to the target jump table. *}
+. const struct bfd_target *xvec;
.
-. {* To avoid dragging too many header files into every file that
-. includes `<<bfd.h>>', IOSTREAM has been declared as a "char
-. *", and MTIME as a "long". Their correct types, to which they
-. are cast when used, are "FILE *" and "time_t". The iostream
-. is the result of an fopen on the filename. However, if the
-. BFD_IN_MEMORY flag is set, then iostream is actually a pointer
-. to a bfd_in_memory struct. *}
-. PTR iostream;
+. {* To avoid dragging too many header files into every file that
+. includes `<<bfd.h>>', IOSTREAM has been declared as a "char *",
+. and MTIME as a "long". Their correct types, to which they
+. are cast when used, are "FILE *" and "time_t". The iostream
+. is the result of an fopen on the filename. However, if the
+. BFD_IN_MEMORY flag is set, then iostream is actually a pointer
+. to a bfd_in_memory struct. *}
+. PTR iostream;
+.
+. {* Is the file descriptor being cached? That is, can it be closed as
+. needed, and re-opened when accessed later? *}
+. boolean cacheable;
+.
+. {* Marks whether there was a default target specified when the
+. BFD was opened. This is used to select which matching algorithm
+. to use to choose the back end. *}
+. boolean target_defaulted;
+.
+. {* The caching routines use these to maintain a
+. least-recently-used list of BFDs. *}
+. struct _bfd *lru_prev, *lru_next;
+.
+. {* When a file is closed by the caching routines, BFD retains
+. state information on the file here... *}
+. ufile_ptr where;
+.
+. {* ... and here: (``once'' means at least once). *}
+. boolean opened_once;
+.
+. {* Set if we have a locally maintained mtime value, rather than
+. getting it from the file each time. *}
+. boolean mtime_set;
+.
+. {* File modified time, if mtime_set is true. *}
+. long mtime;
+.
+. {* Reserved for an unimplemented file locking extension. *}
+. int ifd;
+.
+. {* The format which belongs to the BFD. (object, core, etc.) *}
+. bfd_format format;
+.
+. {* The direction with which the BFD was opened. *}
+. enum bfd_direction
+. {
+. no_direction = 0,
+. read_direction = 1,
+. write_direction = 2,
+. both_direction = 3
+. }
+. direction;
+.
+. {* Format_specific flags. *}
+. flagword flags;
+.
+. {* Currently my_archive is tested before adding origin to
+. anything. I believe that this can become always an add of
+. origin, with origin set to 0 for non archive files. *}
+. ufile_ptr origin;
+.
+. {* Remember when output has begun, to stop strange things
+. from happening. *}
+. boolean output_has_begun;
+.
+. {* A hash table for section names. *}
+. struct bfd_hash_table section_htab;
+.
+. {* Pointer to linked list of sections. *}
+. struct sec *sections;
+.
+. {* The place where we add to the section list. *}
+. struct sec **section_tail;
+.
+. {* The number of sections. *}
+. unsigned int section_count;
+.
+. {* Stuff only useful for object files:
+. The start address. *}
+. bfd_vma start_address;
+.
+. {* Used for input and output. *}
+. unsigned int symcount;
+.
+. {* Symbol table for output BFD (with symcount entries). *}
+. struct symbol_cache_entry **outsymbols;
+.
+. {* Pointer to structure which contains architecture information. *}
+. const struct bfd_arch_info *arch_info;
+.
+. {* Stuff only useful for archives. *}
+. PTR arelt_data;
+. struct _bfd *my_archive; {* The containing archive BFD. *}
+. struct _bfd *next; {* The next BFD in the archive. *}
+. struct _bfd *archive_head; {* The first BFD in the archive. *}
+. boolean has_armap;
.
-. {* Is the file descriptor being cached? That is, can it be closed as
-. needed, and re-opened when accessed later? *}
-.
-. boolean cacheable;
-.
-. {* Marks whether there was a default target specified when the
-. BFD was opened. This is used to select which matching algorithm
-. to use to choose the back end. *}
-.
-. boolean target_defaulted;
-.
-. {* The caching routines use these to maintain a
-. least-recently-used list of BFDs *}
-.
-. struct _bfd *lru_prev, *lru_next;
-.
-. {* When a file is closed by the caching routines, BFD retains
-. state information on the file here: *}
-.
-. ufile_ptr where;
-.
-. {* and here: (``once'' means at least once) *}
-.
-. boolean opened_once;
-.
-. {* Set if we have a locally maintained mtime value, rather than
-. getting it from the file each time: *}
-.
-. boolean mtime_set;
-.
-. {* File modified time, if mtime_set is true: *}
-.
-. long mtime;
-.
-. {* Reserved for an unimplemented file locking extension.*}
-.
-. int ifd;
-.
-. {* The format which belongs to the BFD. (object, core, etc.) *}
-.
-. bfd_format format;
-.
-. {* The direction the BFD was opened with*}
-.
-. enum bfd_direction {no_direction = 0,
-. read_direction = 1,
-. write_direction = 2,
-. both_direction = 3} direction;
-.
-. {* Format_specific flags*}
-.
-. flagword flags;
-.
-. {* Currently my_archive is tested before adding origin to
-. anything. I believe that this can become always an add of
-. origin, with origin set to 0 for non archive files. *}
-.
-. ufile_ptr origin;
-.
-. {* Remember when output has begun, to stop strange things
-. from happening. *}
-. boolean output_has_begun;
-.
-. {* A hash table for section names. *}
-. struct bfd_hash_table section_htab;
-.
-. {* Pointer to linked list of sections. *}
-. struct sec *sections;
-.
-. {* The place where we add to the section list. *}
-. struct sec **section_tail;
-.
-. {* The number of sections *}
-. unsigned int section_count;
-.
-. {* Stuff only useful for object files:
-. The start address. *}
-. bfd_vma start_address;
-.
-. {* Used for input and output*}
-. unsigned int symcount;
-.
-. {* Symbol table for output BFD (with symcount entries) *}
-. struct symbol_cache_entry **outsymbols;
-.
-. {* Pointer to structure which contains architecture information*}
-. const struct bfd_arch_info *arch_info;
-.
-. {* Stuff only useful for archives:*}
-. PTR arelt_data;
-. struct _bfd *my_archive; {* The containing archive BFD. *}
-. struct _bfd *next; {* The next BFD in the archive. *}
-. struct _bfd *archive_head; {* The first BFD in the archive. *}
-. boolean has_armap;
-.
-. {* A chain of BFD structures involved in a link. *}
-. struct _bfd *link_next;
-.
-. {* A field used by _bfd_generic_link_add_archive_symbols. This will
-. be used only for archive elements. *}
-. int archive_pass;
-.
-. {* Used by the back end to hold private data. *}
-.
-. union
-. {
+. {* A chain of BFD structures involved in a link. *}
+. struct _bfd *link_next;
+.
+. {* A field used by _bfd_generic_link_add_archive_symbols. This will
+. be used only for archive elements. *}
+. int archive_pass;
+.
+. {* Used by the back end to hold private data. *}
+. union
+. {
. struct aout_data_struct *aout_data;
. struct artdata *aout_ar_data;
. struct _oasys_data *oasys_obj_data;
@@ -187,15 +178,16 @@ CODE_FRAGMENT
. struct versados_data_struct *versados_data;
. struct netbsd_core_struct *netbsd_core_data;
. PTR any;
-. } tdata;
+. }
+. tdata;
.
-. {* Used by the application to hold private data*}
-. PTR usrdata;
+. {* Used by the application to hold private data. *}
+. PTR usrdata;
.
. {* Where all the allocated stuff under this BFD goes. This is a
. struct objalloc *, but we use PTR to avoid requiring the inclusion of
. objalloc.h. *}
-. PTR memory;
+. PTR memory;
.};
.
*/
@@ -270,7 +262,8 @@ CODE_FRAGMENT
. bfd_error_file_truncated,
. bfd_error_file_too_big,
. bfd_error_invalid_error_code
-.} bfd_error_type;
+.}
+.bfd_error_type;
.
*/
@@ -632,7 +625,7 @@ FUNCTION
SYNOPSIS
void bfd_set_reloc
- (bfd *abfd, asection *sec, arelent **rel, unsigned int count)
+ (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
DESCRIPTION
Set the relocation pointer and count within
diff --git a/contrib/binutils/bfd/coff-arm.c b/contrib/binutils/bfd/coff-arm.c
index df2be76..ca08131 100644
--- a/contrib/binutils/bfd/coff-arm.c
+++ b/contrib/binutils/bfd/coff-arm.c
@@ -2232,7 +2232,7 @@ coff_arm_merge_private_bfd_data (ibfd, obfd)
{
_bfd_error_handler
/* xgettext: c-format */
- (_("%s: ERROR: compiled for APCS-%d whereas target %s uses APCS-%d"),
+ (_("ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d"),
bfd_archive_filename (ibfd), APCS_26_FLAG (ibfd) ? 26 : 32,
bfd_get_filename (obfd), APCS_26_FLAG (obfd) ? 26 : 32
);
@@ -2247,10 +2247,10 @@ coff_arm_merge_private_bfd_data (ibfd, obfd)
if (APCS_FLOAT_FLAG (ibfd))
/* xgettext: c-format */
- msg = _("%s: ERROR: passes floats in float registers whereas target %s uses integer registers");
+ msg = _("ERROR: %s passes floats in float registers, whereas %s passes them in integer registers");
else
/* xgettext: c-format */
- msg = _("%s: ERROR: passes floats in integer registers whereas target %s uses float registers");
+ msg = _("ERROR: %s passes floats in integer registers, whereas %s passes them in float registers");
_bfd_error_handler (msg, bfd_archive_filename (ibfd),
bfd_get_filename (obfd));
@@ -2265,10 +2265,10 @@ coff_arm_merge_private_bfd_data (ibfd, obfd)
if (PIC_FLAG (ibfd))
/* xgettext: c-format */
- msg = _("%s: ERROR: compiled as position independent code, whereas target %s is absolute position");
+ msg = _("ERROR: %s is compiled as position independent code, whereas target %s is absolute position");
else
/* xgettext: c-format */
- msg = _("%s: ERROR: compiled as absolute position code, whereas target %s is position independent");
+ msg = _("ERROR: %s is compiled as absolute position code, whereas target %s is position independent");
_bfd_error_handler (msg, bfd_archive_filename (ibfd),
bfd_get_filename (obfd));
@@ -2297,10 +2297,10 @@ coff_arm_merge_private_bfd_data (ibfd, obfd)
if (INTERWORK_FLAG (ibfd))
/* xgettext: c-format */
- msg = _("Warning: input file %s supports interworking, whereas %s does not.");
+ msg = _("Warning: %s supports interworking, whereas %s does not");
else
/* xgettext: c-format */
- msg = _("Warning: input file %s does not support interworking, whereas %s does.");
+ msg = _("Warning: %s does not support interworking, whereas %s does");
_bfd_error_handler (msg, bfd_archive_filename (ibfd),
bfd_get_filename (obfd));
@@ -2398,7 +2398,7 @@ _bfd_coff_arm_set_private_flags (abfd, flags)
{
if (flag)
/* xgettext: c-format */
- _bfd_error_handler (_("Warning: Not setting interworking flag of %s, since it has already been specified as non-interworking"),
+ _bfd_error_handler (_("Warning: Not setting interworking flag of %s since it has already been specified as non-interworking"),
bfd_archive_filename (abfd));
else
/* xgettext: c-format */
@@ -2461,7 +2461,8 @@ coff_arm_copy_private_bfd_data (src, dest)
if (INTERWORK_FLAG (dest))
{
/* xgettext:c-format */
- _bfd_error_handler (("Warning: Clearing the interworking bit of %s, because the non-interworking code in %s has been copied into it"),
+ _bfd_error_handler (("\
+Warning: Clearing the interworking flag of %s because non-interworking code in %s has been linked with it"),
bfd_get_filename (dest),
bfd_archive_filename (src));
}
diff --git a/contrib/binutils/bfd/coff-rs6000.c b/contrib/binutils/bfd/coff-rs6000.c
index 2d6d6e9..2772929 100644
--- a/contrib/binutils/bfd/coff-rs6000.c
+++ b/contrib/binutils/bfd/coff-rs6000.c
@@ -3062,7 +3062,7 @@ xcoff_generate_rtinit (abfd, init, fini)
bfd_byte reloc_ext[RELSZ * 2];
bfd_byte *data_buffer;
bfd_size_type data_buffer_size;
- bfd_byte *string_table, *st_tmp;
+ bfd_byte *string_table = NULL, *st_tmp = NULL;
bfd_size_type string_table_size;
bfd_vma val;
size_t initsz, finisz;
diff --git a/contrib/binutils/bfd/coff64-rs6000.c b/contrib/binutils/bfd/coff64-rs6000.c
new file mode 100644
index 0000000..d66a70e
--- /dev/null
+++ b/contrib/binutils/bfd/coff64-rs6000.c
@@ -0,0 +1,2633 @@
+/* BFD back-end for IBM RS/6000 "XCOFF64" files.
+ Copyright 2000, 2001
+ Free Software Foundation, Inc.
+ Written Clinton Popetz.
+ Contributed by Cygnus Support.
+
+This file is part of BFD, the Binary File Descriptor library.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "bfdlink.h"
+#include "libbfd.h"
+#include "coff/internal.h"
+#include "coff/xcoff.h"
+#include "coff/rs6k64.h"
+#include "libcoff.h"
+#include "libxcoff.h"
+
+#define GET_FILEHDR_SYMPTR H_GET_64
+#define PUT_FILEHDR_SYMPTR H_PUT_64
+#define GET_AOUTHDR_DATA_START H_GET_64
+#define PUT_AOUTHDR_DATA_START H_PUT_64
+#define GET_AOUTHDR_TEXT_START H_GET_64
+#define PUT_AOUTHDR_TEXT_START H_PUT_64
+#define GET_AOUTHDR_TSIZE H_GET_64
+#define PUT_AOUTHDR_TSIZE H_PUT_64
+#define GET_AOUTHDR_DSIZE H_GET_64
+#define PUT_AOUTHDR_DSIZE H_PUT_64
+#define GET_AOUTHDR_BSIZE H_GET_64
+#define PUT_AOUTHDR_BSIZE H_PUT_64
+#define GET_AOUTHDR_ENTRY H_GET_64
+#define PUT_AOUTHDR_ENTRY H_PUT_64
+#define GET_SCNHDR_PADDR H_GET_64
+#define PUT_SCNHDR_PADDR H_PUT_64
+#define GET_SCNHDR_VADDR H_GET_64
+#define PUT_SCNHDR_VADDR H_PUT_64
+#define GET_SCNHDR_SIZE H_GET_64
+#define PUT_SCNHDR_SIZE H_PUT_64
+#define GET_SCNHDR_SCNPTR H_GET_64
+#define PUT_SCNHDR_SCNPTR H_PUT_64
+#define GET_SCNHDR_RELPTR H_GET_64
+#define PUT_SCNHDR_RELPTR H_PUT_64
+#define GET_SCNHDR_LNNOPTR H_GET_64
+#define PUT_SCNHDR_LNNOPTR H_PUT_64
+#define GET_SCNHDR_NRELOC H_GET_32
+#define MAX_SCNHDR_NRELOC 0xffffffff
+#define PUT_SCNHDR_NRELOC H_PUT_32
+#define GET_SCNHDR_NLNNO H_GET_32
+#define MAX_SCNHDR_NLNNO 0xffffffff
+#define PUT_SCNHDR_NLNNO H_PUT_32
+#define GET_RELOC_VADDR H_GET_64
+#define PUT_RELOC_VADDR H_PUT_64
+
+#define COFF_FORCE_SYMBOLS_IN_STRINGS
+#define COFF_DEBUG_STRING_WIDE_PREFIX
+
+
+#define COFF_ADJUST_SCNHDR_OUT_POST(ABFD, INT, EXT) \
+ do \
+ { \
+ memset (((SCNHDR *) EXT)->s_pad, 0, \
+ sizeof (((SCNHDR *) EXT)->s_pad)); \
+ } \
+ while (0)
+
+#define NO_COFF_LINENOS
+
+#define coff_SWAP_lineno_in _bfd_xcoff64_swap_lineno_in
+#define coff_SWAP_lineno_out _bfd_xcoff64_swap_lineno_out
+
+static void _bfd_xcoff64_swap_lineno_in PARAMS ((bfd *, PTR, PTR));
+static unsigned int _bfd_xcoff64_swap_lineno_out PARAMS ((bfd *, PTR, PTR));
+static boolean _bfd_xcoff64_put_ldsymbol_name
+ PARAMS ((bfd *, struct xcoff_loader_info *, struct internal_ldsym *,
+ const char *));
+static void _bfd_xcoff64_swap_sym_in PARAMS ((bfd *, PTR, PTR));
+static unsigned int _bfd_xcoff64_swap_sym_out PARAMS ((bfd *, PTR, PTR));
+static void _bfd_xcoff64_swap_aux_in
+ PARAMS ((bfd *, PTR, int, int, int, int, PTR));
+static unsigned int _bfd_xcoff64_swap_aux_out
+ PARAMS ((bfd *, PTR, int, int, int, int, PTR));
+extern boolean _bfd_xcoff_mkobject PARAMS ((bfd *));
+extern boolean _bfd_xcoff_copy_private_bfd_data PARAMS ((bfd *, bfd *));
+extern boolean _bfd_xcoff_is_local_label_name PARAMS ((bfd *, const char *));
+extern void xcoff64_rtype2howto
+ PARAMS ((arelent *, struct internal_reloc *));
+extern reloc_howto_type * xcoff64_reloc_type_lookup
+ PARAMS ((bfd *, bfd_reloc_code_real_type));
+extern boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *));
+extern PTR _bfd_xcoff_read_ar_hdr PARAMS ((bfd *));
+extern bfd *_bfd_xcoff_openr_next_archived_file PARAMS ((bfd *, bfd *));
+extern int _bfd_xcoff_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
+extern boolean _bfd_xcoff_write_armap
+ PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
+extern boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *));
+extern int _bfd_xcoff_sizeof_headers PARAMS ((bfd *, boolean));
+extern void _bfd_xcoff_swap_sym_in PARAMS ((bfd *, PTR, PTR));
+extern unsigned int _bfd_xcoff_swap_sym_out PARAMS ((bfd *, PTR, PTR));
+extern void _bfd_xcoff_swap_aux_in
+ PARAMS ((bfd *, PTR, int, int, int, int, PTR));
+extern unsigned int _bfd_xcoff_swap_aux_out
+ PARAMS ((bfd *, PTR, int, int, int, int, PTR));
+static void xcoff64_swap_ldhdr_in
+ PARAMS ((bfd *, const PTR, struct internal_ldhdr *));
+static void xcoff64_swap_ldhdr_out
+ PARAMS ((bfd *, const struct internal_ldhdr *, PTR d));
+static void xcoff64_swap_ldsym_in
+ PARAMS ((bfd *, const PTR, struct internal_ldsym *));
+static void xcoff64_swap_ldsym_out
+ PARAMS ((bfd *, const struct internal_ldsym *, PTR d));
+static void xcoff64_swap_ldrel_in
+ PARAMS ((bfd *, const PTR, struct internal_ldrel *));
+static void xcoff64_swap_ldrel_out
+ PARAMS ((bfd *, const struct internal_ldrel *, PTR d));
+static boolean xcoff64_write_object_contents PARAMS ((bfd *));
+static boolean xcoff64_ppc_relocate_section
+ PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
+ struct internal_reloc *, struct internal_syment *,
+ asection **sections));
+static boolean xcoff64_slurp_armap PARAMS ((bfd *));
+static const bfd_target *xcoff64_archive_p PARAMS ((bfd *));
+static bfd *xcoff64_openr_next_archived_file PARAMS ((bfd *, bfd *));
+static int xcoff64_sizeof_headers PARAMS ((bfd *, boolean));
+static asection *xcoff64_create_csect_from_smclas
+ PARAMS ((bfd *, union internal_auxent *, const char *));
+static boolean xcoff64_is_lineno_count_overflow PARAMS ((bfd *, bfd_vma));
+static boolean xcoff64_is_reloc_count_overflow PARAMS ((bfd *, bfd_vma));
+static bfd_vma xcoff64_loader_symbol_offset
+ PARAMS ((bfd *, struct internal_ldhdr *));
+static bfd_vma xcoff64_loader_reloc_offset
+ PARAMS ((bfd *, struct internal_ldhdr *));
+static boolean xcoff64_generate_rtinit
+ PARAMS((bfd *, const char *, const char *));
+
+
+/* coffcode.h needs these to be defined */
+/* Internalcoff.h and coffcode.h modify themselves based on these flags. */
+#define XCOFF64
+#define RS6000COFF_C 1
+
+#define SELECT_RELOC(internal, howto) \
+ { \
+ internal.r_type = howto->type; \
+ internal.r_size = \
+ ((howto->complain_on_overflow == complain_overflow_signed \
+ ? 0x80 \
+ : 0) \
+ | (howto->bitsize - 1)); \
+ }
+
+#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (3)
+#define COFF_LONG_FILENAMES
+#define NO_COFF_SYMBOLS
+#define RTYPE2HOWTO(cache_ptr, dst) xcoff64_rtype2howto (cache_ptr, dst)
+#define coff_mkobject _bfd_xcoff_mkobject
+#define coff_bfd_copy_private_bfd_data _bfd_xcoff_copy_private_bfd_data
+#define coff_bfd_is_local_label_name _bfd_xcoff_is_local_label_name
+#define coff_bfd_reloc_type_lookup xcoff64_reloc_type_lookup
+#ifdef AIX_CORE
+extern const bfd_target * rs6000coff_core_p ();
+extern boolean rs6000coff_core_file_matches_executable_p ();
+extern char *rs6000coff_core_file_failing_command PARAMS ((bfd *abfd));
+extern int rs6000coff_core_file_failing_signal PARAMS ((bfd *abfd));
+#define CORE_FILE_P rs6000coff_core_p
+#define coff_core_file_failing_command \
+ rs6000coff_core_file_failing_command
+#define coff_core_file_failing_signal \
+ rs6000coff_core_file_failing_signal
+#define coff_core_file_matches_executable_p \
+ rs6000coff_core_file_matches_executable_p
+#else
+#define CORE_FILE_P _bfd_dummy_target
+#define coff_core_file_failing_command \
+ _bfd_nocore_core_file_failing_command
+#define coff_core_file_failing_signal \
+ _bfd_nocore_core_file_failing_signal
+#define coff_core_file_matches_executable_p \
+ _bfd_nocore_core_file_matches_executable_p
+#endif
+#define coff_SWAP_sym_in _bfd_xcoff64_swap_sym_in
+#define coff_SWAP_sym_out _bfd_xcoff64_swap_sym_out
+#define coff_SWAP_aux_in _bfd_xcoff64_swap_aux_in
+#define coff_SWAP_aux_out _bfd_xcoff64_swap_aux_out
+
+
+#include "coffcode.h"
+
+/* For XCOFF64, the effective width of symndx changes depending on
+ whether we are the first entry. Sigh. */
+static void
+_bfd_xcoff64_swap_lineno_in (abfd, ext1, in1)
+ bfd *abfd;
+ PTR ext1;
+ PTR in1;
+{
+ LINENO *ext = (LINENO *) ext1;
+ struct internal_lineno *in = (struct internal_lineno *) in1;
+
+ in->l_lnno = H_GET_32 (abfd, (ext->l_lnno));
+ if (in->l_lnno == 0)
+ in->l_addr.l_symndx = H_GET_32 (abfd, ext->l_addr.l_symndx);
+ else
+ in->l_addr.l_paddr = H_GET_64 (abfd, ext->l_addr.l_paddr);
+}
+
+static unsigned int
+_bfd_xcoff64_swap_lineno_out (abfd, inp, outp)
+ bfd *abfd;
+ PTR inp;
+ PTR outp;
+{
+ struct internal_lineno *in = (struct internal_lineno *) inp;
+ struct external_lineno *ext = (struct external_lineno *) outp;
+
+ H_PUT_32 (abfd, in->l_addr.l_symndx, ext->l_addr.l_symndx);
+ H_PUT_32 (abfd, in->l_lnno, (ext->l_lnno));
+
+ if (in->l_lnno == 0)
+ H_PUT_32 (abfd, in->l_addr.l_symndx, ext->l_addr.l_symndx);
+ else
+ H_PUT_64 (abfd, in->l_addr.l_paddr, ext->l_addr.l_paddr);
+
+ return bfd_coff_linesz (abfd);
+}
+
+static void
+_bfd_xcoff64_swap_sym_in (abfd, ext1, in1)
+ bfd *abfd;
+ PTR ext1;
+ PTR in1;
+{
+ struct external_syment *ext = (struct external_syment *) ext1;
+ struct internal_syment *in = (struct internal_syment *) in1;
+
+ in->_n._n_n._n_zeroes = 0;
+ in->_n._n_n._n_offset = H_GET_32 (abfd, ext->e_offset);
+ in->n_value = H_GET_64 (abfd, ext->e_value);
+ in->n_scnum = H_GET_16 (abfd, ext->e_scnum);
+ in->n_type = H_GET_16 (abfd, ext->e_type);
+ in->n_sclass = H_GET_8 (abfd, ext->e_sclass);
+ in->n_numaux = H_GET_8 (abfd, ext->e_numaux);
+}
+
+static unsigned int
+_bfd_xcoff64_swap_sym_out (abfd, inp, extp)
+ bfd *abfd;
+ PTR inp;
+ PTR extp;
+{
+ struct internal_syment *in = (struct internal_syment *) inp;
+ struct external_syment *ext = (struct external_syment *) extp;
+
+ H_PUT_32 (abfd, in->_n._n_n._n_offset, ext->e_offset);
+ H_PUT_64 (abfd, in->n_value, ext->e_value);
+ H_PUT_16 (abfd, in->n_scnum, ext->e_scnum);
+ H_PUT_16 (abfd, in->n_type, ext->e_type);
+ H_PUT_8 (abfd, in->n_sclass, ext->e_sclass);
+ H_PUT_8 (abfd, in->n_numaux, ext->e_numaux);
+ return bfd_coff_symesz (abfd);
+}
+
+static void
+_bfd_xcoff64_swap_aux_in (abfd, ext1, type, class, indx, numaux, in1)
+ bfd *abfd;
+ PTR ext1;
+ int type;
+ int class;
+ int indx;
+ int numaux;
+ PTR in1;
+{
+ union external_auxent *ext = (union external_auxent *) ext1;
+ union internal_auxent *in = (union internal_auxent *) in1;
+
+ switch (class)
+ {
+ case C_FILE:
+ if (ext->x_file.x_n.x_zeroes == 0)
+ {
+ in->x_file.x_n.x_zeroes = 0;
+ in->x_file.x_n.x_offset = H_GET_32 (abfd, ext->x_file.x_n.x_offset);
+ }
+ else
+ {
+ memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN);
+ }
+ goto end;
+
+ /* RS/6000 "csect" auxents */
+ case C_EXT:
+ case C_HIDEXT:
+ if (indx + 1 == numaux)
+ {
+ bfd_signed_vma h = 0;
+ bfd_vma l = 0;
+
+ h = H_GET_S32 (abfd, ext->x_csect.x_scnlen_hi);
+ l = H_GET_32 (abfd, ext->x_csect.x_scnlen_lo);
+
+ in->x_csect.x_scnlen.l = h << 32 | (l & 0xffffffff);
+
+ in->x_csect.x_parmhash = H_GET_32 (abfd, ext->x_csect.x_parmhash);
+ in->x_csect.x_snhash = H_GET_16 (abfd, ext->x_csect.x_snhash);
+ /* We don't have to hack bitfields in x_smtyp because it's
+ defined by shifts-and-ands, which are equivalent on all
+ byte orders. */
+ in->x_csect.x_smtyp = H_GET_8 (abfd, ext->x_csect.x_smtyp);
+ in->x_csect.x_smclas = H_GET_8 (abfd, ext->x_csect.x_smclas);
+ goto end;
+ }
+ break;
+
+ case C_STAT:
+ case C_LEAFSTAT:
+ case C_HIDDEN:
+ if (type == T_NULL)
+ {
+ /* PE defines some extra fields; we zero them out for
+ safety. */
+ in->x_scn.x_checksum = 0;
+ in->x_scn.x_associated = 0;
+ in->x_scn.x_comdat = 0;
+
+ goto end;
+ }
+ break;
+ }
+
+ if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
+ {
+ in->x_sym.x_fcnary.x_fcn.x_lnnoptr
+ = H_GET_64 (abfd, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
+ in->x_sym.x_fcnary.x_fcn.x_endndx.l
+ = H_GET_32 (abfd, ext->x_sym.x_fcnary.x_fcn.x_endndx);
+ }
+ if (ISFCN (type))
+ {
+ in->x_sym.x_misc.x_fsize
+ = H_GET_32 (abfd, ext->x_sym.x_fcnary.x_fcn.x_fsize);
+ }
+ else
+ {
+ in->x_sym.x_misc.x_lnsz.x_lnno
+ = H_GET_32 (abfd, ext->x_sym.x_fcnary.x_lnsz.x_lnno);
+ in->x_sym.x_misc.x_lnsz.x_size
+ = H_GET_16 (abfd, ext->x_sym.x_fcnary.x_lnsz.x_size);
+ }
+
+ end: ;
+}
+
+static unsigned int
+_bfd_xcoff64_swap_aux_out (abfd, inp, type, class, indx, numaux, extp)
+ bfd *abfd;
+ PTR inp;
+ int type;
+ int class;
+ int indx ATTRIBUTE_UNUSED;
+ int numaux ATTRIBUTE_UNUSED;
+ PTR extp;
+{
+ union internal_auxent *in = (union internal_auxent *) inp;
+ union external_auxent *ext = (union external_auxent *) extp;
+
+ memset ((PTR) ext, 0, bfd_coff_auxesz (abfd));
+ switch (class)
+ {
+ case C_FILE:
+ if (ext->x_file.x_n.x_zeroes == 0)
+ {
+ H_PUT_32 (abfd, 0, ext->x_file.x_n.x_zeroes);
+ H_PUT_32 (abfd, in->x_file.x_n.x_offset, ext->x_file.x_n.x_offset);
+ }
+ else
+ {
+ memcpy (ext->x_file.x_fname, in->x_file.x_fname, FILNMLEN);
+ }
+ H_PUT_8 (abfd, _AUX_FILE, ext->x_auxtype.x_auxtype);
+ goto end;
+
+ /* RS/6000 "csect" auxents */
+ case C_EXT:
+ case C_HIDEXT:
+ if (indx + 1 == numaux)
+ {
+ bfd_vma temp;
+
+ temp = in->x_csect.x_scnlen.l & 0xffffffff;
+ H_PUT_32 (abfd, temp, ext->x_csect.x_scnlen_lo);
+ temp = in->x_csect.x_scnlen.l >> 32;
+ H_PUT_32 (abfd, temp, ext->x_csect.x_scnlen_hi);
+ H_PUT_32 (abfd, in->x_csect.x_parmhash, ext->x_csect.x_parmhash);
+ H_PUT_16 (abfd, in->x_csect.x_snhash, ext->x_csect.x_snhash);
+ /* We don't have to hack bitfields in x_smtyp because it's
+ defined by shifts-and-ands, which are equivalent on all
+ byte orders. */
+ H_PUT_8 (abfd, in->x_csect.x_smtyp, ext->x_csect.x_smtyp);
+ H_PUT_8 (abfd, in->x_csect.x_smclas, ext->x_csect.x_smclas);
+ H_PUT_8 (abfd, _AUX_CSECT, ext->x_auxtype.x_auxtype);
+ goto end;
+ }
+ break;
+
+ case C_STAT:
+ case C_LEAFSTAT:
+ case C_HIDDEN:
+ if (type == T_NULL)
+ {
+ goto end;
+ }
+ break;
+ }
+
+ if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
+ {
+ H_PUT_64 (abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr,
+ ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
+ H_PUT_8 (abfd, _AUX_FCN,
+ ext->x_auxtype.x_auxtype);
+ H_PUT_32 (abfd, in->x_sym.x_fcnary.x_fcn.x_endndx.l,
+ ext->x_sym.x_fcnary.x_fcn.x_endndx);
+ }
+ if (ISFCN (type))
+ {
+ H_PUT_32 (abfd, in->x_sym.x_misc.x_fsize,
+ ext->x_sym.x_fcnary.x_fcn.x_fsize);
+ }
+ else
+ {
+ H_PUT_32 (abfd, in->x_sym.x_misc.x_lnsz.x_lnno,
+ ext->x_sym.x_fcnary.x_lnsz.x_lnno);
+ H_PUT_16 (abfd, in->x_sym.x_misc.x_lnsz.x_size,
+ ext->x_sym.x_fcnary.x_lnsz.x_size);
+ }
+
+ end:
+
+ return bfd_coff_auxesz (abfd);
+}
+
+static boolean
+_bfd_xcoff64_put_symbol_name (bfd *abfd, struct bfd_strtab_hash *strtab,
+ struct internal_syment *sym,
+ const char *name) {
+ boolean hash;
+ bfd_size_type indx;
+
+ hash = true;
+
+ if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
+ hash = false;
+
+ indx = _bfd_stringtab_add (strtab, name, hash, false);
+
+ if (indx == (bfd_size_type) -1)
+ return false;
+
+ sym->_n._n_n._n_zeroes = 0;
+ sym->_n._n_n._n_offset = STRING_SIZE_SIZE + indx;
+
+ return true;
+}
+
+static boolean
+_bfd_xcoff64_put_ldsymbol_name (abfd, ldinfo, ldsym, name)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ struct xcoff_loader_info *ldinfo;
+ struct internal_ldsym *ldsym;
+ const char *name;
+{
+
+ size_t len;
+ len = strlen (name);
+
+ if (ldinfo->string_size + len + 3 > ldinfo->string_alc)
+ {
+ bfd_size_type newalc;
+ bfd_byte *newstrings;
+
+ newalc = ldinfo->string_alc * 2;
+ if (newalc == 0)
+ newalc = 32;
+ while (ldinfo->string_size + len + 3 > newalc)
+ newalc *= 2;
+
+ newstrings = ((bfd_byte *)
+ bfd_realloc ((PTR) ldinfo->strings, newalc));
+ if (newstrings == NULL)
+ {
+ ldinfo->failed = true;
+ return false;
+ }
+ ldinfo->string_alc = newalc;
+ ldinfo->strings = newstrings;
+ }
+
+ bfd_put_16 (ldinfo->output_bfd, (bfd_vma) (len + 1),
+ ldinfo->strings + ldinfo->string_size);
+ strcpy (ldinfo->strings + ldinfo->string_size + 2, name);
+ ldsym->_l._l_l._l_zeroes = 0;
+ ldsym->_l._l_l._l_offset = ldinfo->string_size + 2;
+ ldinfo->string_size += len + 3;
+
+ return true;
+}
+
+/* Routines to swap information in the XCOFF .loader section. If we
+ ever need to write an XCOFF loader, this stuff will need to be
+ moved to another file shared by the linker (which XCOFF calls the
+ ``binder'') and the loader. */
+
+/* Swap in the ldhdr structure. */
+
+static void
+xcoff64_swap_ldhdr_in (abfd, s, dst)
+ bfd *abfd;
+ const PTR s;
+ struct internal_ldhdr *dst;
+{
+ const struct external_ldhdr *src = (const struct external_ldhdr *) s;
+
+ dst->l_version = bfd_get_32 (abfd, src->l_version);
+ dst->l_nsyms = bfd_get_32 (abfd, src->l_nsyms);
+ dst->l_nreloc = bfd_get_32 (abfd, src->l_nreloc);
+ dst->l_istlen = bfd_get_32 (abfd, src->l_istlen);
+ dst->l_nimpid = bfd_get_32 (abfd, src->l_nimpid);
+ dst->l_stlen = bfd_get_32 (abfd, src->l_stlen);
+ dst->l_impoff = bfd_get_64 (abfd, src->l_impoff);
+ dst->l_stoff = bfd_get_64 (abfd, src->l_stoff);
+ dst->l_symoff = bfd_get_64 (abfd, src->l_symoff);
+ dst->l_rldoff = bfd_get_64 (abfd, src->l_rldoff);
+}
+
+/* Swap out the ldhdr structure. */
+
+static void
+xcoff64_swap_ldhdr_out (abfd, src, d)
+ bfd *abfd;
+ const struct internal_ldhdr *src;
+ PTR d;
+{
+ struct external_ldhdr *dst = (struct external_ldhdr *) d;
+
+ bfd_put_32 (abfd, (bfd_vma) src->l_version, dst->l_version);
+ bfd_put_32 (abfd, src->l_nsyms, dst->l_nsyms);
+ bfd_put_32 (abfd, src->l_nreloc, dst->l_nreloc);
+ bfd_put_32 (abfd, src->l_istlen, dst->l_istlen);
+ bfd_put_32 (abfd, src->l_nimpid, dst->l_nimpid);
+ bfd_put_32 (abfd, src->l_stlen, dst->l_stlen);
+ bfd_put_64 (abfd, src->l_impoff, dst->l_impoff);
+ bfd_put_64 (abfd, src->l_stoff, dst->l_stoff);
+ bfd_put_64 (abfd, src->l_symoff, dst->l_symoff);
+ bfd_put_64 (abfd, src->l_rldoff, dst->l_rldoff);
+}
+
+/* Swap in the ldsym structure. */
+
+static void
+xcoff64_swap_ldsym_in (abfd, s, dst)
+ bfd *abfd;
+ const PTR s;
+ struct internal_ldsym *dst;
+{
+ const struct external_ldsym *src = (const struct external_ldsym *) s;
+ /* XCOFF64 does not use l_zeroes like XCOFF32
+ Set the internal l_zeroes to 0 so the common 32/64 code uses l_value
+ as an offset into the loader symbol table. */
+ dst->_l._l_l._l_zeroes = 0;
+ dst->_l._l_l._l_offset = bfd_get_32 (abfd, src->l_offset);
+ dst->l_value = bfd_get_64 (abfd, src->l_value);
+ dst->l_scnum = bfd_get_16 (abfd, src->l_scnum);
+ dst->l_smtype = bfd_get_8 (abfd, src->l_smtype);
+ dst->l_smclas = bfd_get_8 (abfd, src->l_smclas);
+ dst->l_ifile = bfd_get_32 (abfd, src->l_ifile);
+ dst->l_parm = bfd_get_32 (abfd, src->l_parm);
+}
+
+/* Swap out the ldsym structure. */
+
+static void
+xcoff64_swap_ldsym_out (abfd, src, d)
+ bfd *abfd;
+ const struct internal_ldsym *src;
+ PTR d;
+{
+ struct external_ldsym *dst = (struct external_ldsym *) d;
+
+ bfd_put_64 (abfd, src->l_value, dst->l_value);
+ bfd_put_32 (abfd, (bfd_vma) src->_l._l_l._l_offset, dst->l_offset);
+ bfd_put_16 (abfd, (bfd_vma) src->l_scnum, dst->l_scnum);
+ bfd_put_8 (abfd, src->l_smtype, dst->l_smtype);
+ bfd_put_8 (abfd, src->l_smclas, dst->l_smclas);
+ bfd_put_32 (abfd, src->l_ifile, dst->l_ifile);
+ bfd_put_32 (abfd, src->l_parm, dst->l_parm);
+}
+
+/* Swap in the ldrel structure. */
+
+static void
+xcoff64_swap_ldrel_in (abfd, s, dst)
+ bfd *abfd;
+ const PTR s;
+ struct internal_ldrel *dst;
+{
+ const struct external_ldrel *src = (const struct external_ldrel *) s;
+
+ dst->l_vaddr = bfd_get_64 (abfd, src->l_vaddr);
+ dst->l_symndx = bfd_get_32 (abfd, src->l_symndx);
+ dst->l_rtype = bfd_get_16 (abfd, src->l_rtype);
+ dst->l_rsecnm = bfd_get_16 (abfd, src->l_rsecnm);
+}
+
+/* Swap out the ldrel structure. */
+
+static void
+xcoff64_swap_ldrel_out (abfd, src, d)
+ bfd *abfd;
+ const struct internal_ldrel *src;
+ PTR d;
+{
+ struct external_ldrel *dst = (struct external_ldrel *) d;
+
+ bfd_put_64 (abfd, src->l_vaddr, dst->l_vaddr);
+ bfd_put_16 (abfd, (bfd_vma) src->l_rtype, dst->l_rtype);
+ bfd_put_16 (abfd, (bfd_vma) src->l_rsecnm, dst->l_rsecnm);
+ bfd_put_32 (abfd, src->l_symndx, dst->l_symndx);
+}
+
+static boolean
+xcoff64_write_object_contents (abfd)
+ bfd * abfd;
+{
+ asection *current;
+ boolean hasrelocs = false;
+ boolean haslinno = false;
+ file_ptr scn_base;
+ file_ptr reloc_base;
+ file_ptr lineno_base;
+ file_ptr sym_base;
+ unsigned long reloc_size = 0;
+ unsigned long lnno_size = 0;
+ boolean long_section_names;
+ asection *text_sec = ((void *) 0);
+ asection *data_sec = ((void *) 0);
+ asection *bss_sec = ((void *) 0);
+ struct internal_filehdr internal_f;
+ struct internal_aouthdr internal_a;
+
+ bfd_set_error (bfd_error_system_call);
+
+ if (abfd->output_has_begun == false)
+ {
+ if (! bfd_coff_compute_section_file_positions (abfd))
+ return false;
+ }
+
+ /* Work out the size of the reloc and linno areas */
+ reloc_base = obj_relocbase (abfd);
+
+ for (current = abfd->sections; current != NULL; current = current->next)
+ reloc_size += current->reloc_count * bfd_coff_relsz (abfd);
+
+ lineno_base = reloc_base + reloc_size;
+
+ /* Make a pass through the symbol table to count line number entries and
+ put them into the correct asections */
+ lnno_size = coff_count_linenumbers (abfd) * bfd_coff_linesz (abfd);
+
+ sym_base = lineno_base + lnno_size;
+
+ /* Indicate in each section->line_filepos its actual file address */
+ for (current = abfd->sections; current != NULL; current = current->next)
+ {
+ if (current->lineno_count)
+ {
+ current->line_filepos = lineno_base;
+ current->moving_line_filepos = lineno_base;
+ lineno_base += current->lineno_count * bfd_coff_linesz (abfd);
+ }
+ else
+ {
+ current->line_filepos = 0;
+ }
+
+ if (current->reloc_count)
+ {
+ current->rel_filepos = reloc_base;
+ reloc_base += current->reloc_count * bfd_coff_relsz (abfd);
+ }
+ else
+ {
+ current->rel_filepos = 0;
+ }
+ }
+
+ if ((abfd->flags & EXEC_P) != 0)
+ {
+ scn_base = bfd_coff_filhsz (abfd) + bfd_coff_aoutsz (abfd);
+ internal_f.f_opthdr = bfd_coff_aoutsz (abfd);
+ }
+ else
+ {
+ scn_base = bfd_coff_filhsz (abfd);
+ internal_f.f_opthdr = 0;
+ }
+
+ internal_f.f_nscns = 0;
+
+ if (bfd_seek (abfd, scn_base, SEEK_SET) != 0)
+ return false;
+
+ long_section_names = false;
+ for (current = abfd->sections; current != NULL; current = current->next)
+ {
+ struct internal_scnhdr section;
+ struct external_scnhdr buff;
+ bfd_size_type amount;
+
+ internal_f.f_nscns++;
+
+ strncpy (section.s_name, current->name, SCNNMLEN);
+
+ section.s_vaddr = current->vma;
+ section.s_paddr = current->lma;
+ section.s_size = current->_raw_size;
+
+ /* If this section has no size or is unloadable then the scnptr
+ will be 0 too. */
+ if (current->_raw_size == 0
+ || (current->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
+ {
+ section.s_scnptr = 0;
+ }
+ else
+ {
+ section.s_scnptr = current->filepos;
+ }
+
+ section.s_relptr = current->rel_filepos;
+ section.s_lnnoptr = current->line_filepos;
+ section.s_nreloc = current->reloc_count;
+
+ section.s_nlnno = current->lineno_count;
+ if (current->reloc_count != 0)
+ hasrelocs = true;
+ if (current->lineno_count != 0)
+ haslinno = true;
+
+ section.s_flags = sec_to_styp_flags (current->name, current->flags);
+
+ if (!strcmp (current->name, _TEXT))
+ {
+ text_sec = current;
+ }
+ else if (!strcmp (current->name, _DATA))
+ {
+ data_sec = current;
+ }
+ else if (!strcmp (current->name, _BSS))
+ {
+ bss_sec = current;
+ }
+
+ amount = bfd_coff_scnhsz (abfd);
+ if (bfd_coff_swap_scnhdr_out (abfd, &section, &buff) == 0
+ || bfd_bwrite ((PTR) (&buff), amount, abfd) != amount)
+ return false;
+ }
+
+ internal_f.f_timdat = 0;
+
+ internal_f.f_flags = 0;
+
+ if (!hasrelocs)
+ internal_f.f_flags |= F_RELFLG;
+ if (!haslinno)
+ internal_f.f_flags |= F_LNNO;
+ if (abfd->flags & EXEC_P)
+ internal_f.f_flags |= F_EXEC;
+
+ /* FIXME: this is wrong for PPC_PE! */
+ if (bfd_little_endian (abfd))
+ internal_f.f_flags |= F_AR32WR;
+ else
+ internal_f.f_flags |= F_AR32W;
+
+ if ((abfd->flags & DYNAMIC) != 0)
+ internal_f.f_flags |= F_SHROBJ;
+ if (bfd_get_section_by_name (abfd, _LOADER) != NULL)
+ internal_f.f_flags |= F_DYNLOAD;
+
+ memset (&internal_a, 0, sizeof internal_a);
+
+
+ /* This can only be called from the xcoff64 backend so the magic #
+ must be for xcoff64. */
+ internal_f.f_magic = 0757;
+
+ internal_a.magic = (abfd->flags & D_PAGED) ? RS6K_AOUTHDR_ZMAGIC :
+ (abfd->flags & WP_TEXT) ? RS6K_AOUTHDR_NMAGIC :
+ RS6K_AOUTHDR_OMAGIC;
+
+ /* FIXME: Does anybody ever set this to another value? */
+ internal_a.vstamp = 0;
+
+ /* Now should write relocs, strings, syms */
+ obj_sym_filepos (abfd) = sym_base;
+
+ internal_f.f_symptr = 0;
+ internal_f.f_nsyms = 0;
+
+ /* If bfd_get_symcount (abfd) != 0, then we are not using the COFF
+ backend linker, and obj_raw_syment_count is not valid until after
+ coff_write_symbols is called. */
+ if (bfd_get_symcount (abfd) != 0)
+ {
+ int firstundef;
+
+ if (!coff_renumber_symbols (abfd, &firstundef))
+ return false;
+ coff_mangle_symbols (abfd);
+ if (! coff_write_symbols (abfd))
+ return false;
+ if (! coff_write_linenumbers (abfd))
+ return false;
+ if (! coff_write_relocs (abfd, firstundef))
+ return false;
+
+ internal_f.f_symptr = sym_base;
+ internal_f.f_nsyms = bfd_get_symcount (abfd);
+ }
+ else if (obj_raw_syment_count (abfd) != 0)
+ {
+ internal_f.f_symptr = sym_base;
+
+ /* AIX appears to require that F_RELFLG not be set if there are
+ local symbols but no relocations. */
+ internal_f.f_flags &=~ F_RELFLG;
+ }
+ else
+ {
+ internal_f.f_flags |= F_LSYMS;
+ }
+
+ if (text_sec)
+ {
+ internal_a.tsize = bfd_get_section_size_before_reloc (text_sec);
+ internal_a.text_start = internal_a.tsize ? text_sec->vma : 0;
+ }
+
+ if (data_sec)
+ {
+ internal_a.dsize = bfd_get_section_size_before_reloc (data_sec);
+ internal_a.data_start = internal_a.dsize ? data_sec->vma : 0;
+ }
+
+ if (bss_sec)
+ {
+ internal_a.bsize = bfd_get_section_size_before_reloc (bss_sec);
+ if (internal_a.bsize && bss_sec->vma < internal_a.data_start)
+ internal_a.data_start = bss_sec->vma;
+ }
+
+ internal_a.entry = bfd_get_start_address (abfd);
+ internal_f.f_nsyms = obj_raw_syment_count (abfd);
+
+ if (xcoff_data (abfd)->full_aouthdr)
+ {
+ bfd_vma toc;
+ asection *loader_sec;
+
+ internal_a.vstamp = 1;
+
+ internal_a.o_snentry = xcoff_data (abfd)->snentry;
+ if (internal_a.o_snentry == 0)
+ internal_a.entry = (bfd_vma) -1;
+
+ if (text_sec != NULL)
+ {
+ internal_a.o_sntext = text_sec->target_index;
+ internal_a.o_algntext = bfd_get_section_alignment (abfd, text_sec);
+ }
+ else
+ {
+ internal_a.o_sntext = 0;
+ internal_a.o_algntext = 0;
+ }
+
+ if (data_sec != NULL)
+ {
+ internal_a.o_sndata = data_sec->target_index;
+ internal_a.o_algndata = bfd_get_section_alignment (abfd, data_sec);
+ }
+ else
+ {
+ internal_a.o_sndata = 0;
+ internal_a.o_algndata = 0;
+ }
+
+ loader_sec = bfd_get_section_by_name (abfd, ".loader");
+ if (loader_sec != NULL)
+ internal_a.o_snloader = loader_sec->target_index;
+ else
+ internal_a.o_snloader = 0;
+ if (bss_sec != NULL)
+ internal_a.o_snbss = bss_sec->target_index;
+ else
+ internal_a.o_snbss = 0;
+
+ toc = xcoff_data (abfd)->toc;
+ internal_a.o_toc = toc;
+ internal_a.o_sntoc = xcoff_data (abfd)->sntoc;
+
+ internal_a.o_modtype = xcoff_data (abfd)->modtype;
+ if (xcoff_data (abfd)->cputype != -1)
+ internal_a.o_cputype = xcoff_data (abfd)->cputype;
+ else
+ {
+ switch (bfd_get_arch (abfd))
+ {
+ case bfd_arch_rs6000:
+ internal_a.o_cputype = 4;
+ break;
+ case bfd_arch_powerpc:
+ if (bfd_get_mach (abfd) == 0)
+ internal_a.o_cputype = 3;
+ else
+ internal_a.o_cputype = 1;
+ break;
+ default:
+ abort ();
+ }
+ }
+ internal_a.o_maxstack = xcoff_data (abfd)->maxstack;
+ internal_a.o_maxdata = xcoff_data (abfd)->maxdata;
+ }
+
+ if (bfd_seek (abfd, (file_ptr) 0, 0) != 0)
+ return false;
+
+ {
+ char * buff;
+ bfd_size_type amount = bfd_coff_filhsz (abfd);
+
+ buff = bfd_malloc (amount);
+ if (buff == NULL)
+ return false;
+
+ bfd_coff_swap_filehdr_out (abfd, (PTR) &internal_f, (PTR) buff);
+ amount = bfd_bwrite ((PTR) buff, amount, abfd);
+
+ free (buff);
+
+ if (amount != bfd_coff_filhsz (abfd))
+ return false;
+ }
+
+ if (abfd->flags & EXEC_P)
+ {
+ char * buff;
+ bfd_size_type amount = bfd_coff_aoutsz (abfd);
+
+ buff = bfd_malloc (amount);
+ if (buff == NULL)
+ return false;
+
+ bfd_coff_swap_aouthdr_out (abfd, (PTR) & internal_a, (PTR) buff);
+ amount = bfd_bwrite ((PTR) buff, amount, abfd);
+
+ free (buff);
+
+ if (amount != bfd_coff_aoutsz (abfd))
+ return false;
+ }
+
+ return true;
+}
+
+/* This is the relocation function for the RS/6000/POWER/PowerPC.
+ This is currently the only processor which uses XCOFF; I hope that
+ will never change. */
+
+static boolean
+xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
+ input_section, contents, relocs, syms,
+ sections)
+ bfd *output_bfd;
+ struct bfd_link_info *info;
+ bfd *input_bfd;
+ asection *input_section;
+ bfd_byte *contents;
+ struct internal_reloc *relocs;
+ struct internal_syment *syms;
+ asection **sections;
+{
+ struct internal_reloc *rel;
+ struct internal_reloc *relend;
+
+ rel = relocs;
+ relend = rel + input_section->reloc_count;
+ for (; rel < relend; rel++)
+ {
+ long symndx;
+ struct xcoff_link_hash_entry *h;
+ struct internal_syment *sym;
+ bfd_vma addend;
+ bfd_vma val;
+ struct reloc_howto_struct howto;
+ bfd_reloc_status_type rstat;
+
+ /* Relocation type R_REF is a special relocation type which is
+ merely used to prevent garbage collection from occurring for
+ the csect including the symbol which it references. */
+ if (rel->r_type == R_REF)
+ continue;
+
+ symndx = rel->r_symndx;
+
+ if (symndx == -1)
+ {
+ h = NULL;
+ sym = NULL;
+ addend = 0;
+ }
+ else
+ {
+ h = obj_xcoff_sym_hashes (input_bfd)[symndx];
+ sym = syms + symndx;
+ addend = - sym->n_value;
+ }
+
+ /* We build the howto information on the fly. */
+
+ howto.type = rel->r_type;
+ howto.rightshift = 0;
+ howto.size = 4;
+ howto.bitsize = (rel->r_size & 0x3f) + 1;
+ howto.pc_relative = false;
+ howto.bitpos = 0;
+ if ((rel->r_size & 0x80) != 0)
+ howto.complain_on_overflow = complain_overflow_signed;
+ else
+ howto.complain_on_overflow = complain_overflow_bitfield;
+ howto.special_function = NULL;
+ howto.name = "internal";
+ howto.partial_inplace = true;
+
+ if (howto.bitsize == 64)
+ {
+ howto.src_mask = howto.dst_mask = MINUS_ONE;
+ }
+ else if (howto.bitsize == 32)
+ {
+ howto.src_mask = howto.dst_mask = 0xffffffff;
+ }
+ else
+ {
+ howto.src_mask = howto.dst_mask = (1 << howto.bitsize) - 1;
+ if (howto.bitsize == 16)
+ howto.size = 1;
+ }
+ howto.pcrel_offset = false;
+
+ val = 0;
+
+ if (h == NULL)
+ {
+ asection *sec;
+
+ if (symndx == -1)
+ {
+ sec = bfd_abs_section_ptr;
+ val = 0;
+ }
+ else
+ {
+ sec = sections[symndx];
+ /* Hack to make sure we use the right TOC anchor value
+ if this reloc is against the TOC anchor. */
+ if (sec->name[3] == '0'
+ && strcmp (sec->name, ".tc0") == 0)
+ val = xcoff_data (output_bfd)->toc;
+ else
+ val = (sec->output_section->vma
+ + sec->output_offset
+ + sym->n_value
+ - sec->vma);
+ }
+
+ }
+ else
+ {
+
+ if (h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak)
+ {
+ asection *sec;
+
+ sec = h->root.u.def.section;
+ val = (h->root.u.def.value
+ + sec->output_section->vma
+ + sec->output_offset);
+
+ }
+ else if (h->root.type == bfd_link_hash_common)
+ {
+ asection *sec;
+
+ sec = h->root.u.c.p->section;
+ val = (sec->output_section->vma
+ + sec->output_offset);
+ }
+ else if ((h->flags & XCOFF_DEF_DYNAMIC) != 0
+ || (h->flags & XCOFF_IMPORT) != 0)
+ {
+ /* Every symbol in a shared object is defined somewhere. */
+ val = 0;
+ }
+ else if (! info->relocateable)
+ {
+ if (! ((*info->callbacks->undefined_symbol)
+ (info, h->root.root.string, input_bfd, input_section,
+ rel->r_vaddr - input_section->vma, true)))
+ return false;
+
+ /* Don't try to process the reloc. It can't help, and
+ it may generate another error. */
+ continue;
+ }
+ }
+
+ /* I took the relocation type definitions from two documents:
+ the PowerPC AIX Version 4 Application Binary Interface, First
+ Edition (April 1992), and the PowerOpen ABI, Big-Endian
+ 32-Bit Hardware Implementation (June 30, 1994). Differences
+ between the documents are noted below. */
+
+ switch (rel->r_type)
+ {
+ case R_RTB:
+ case R_RRTBI:
+ case R_RRTBA:
+ /* These relocs are defined by the PowerPC ABI to be
+ relative branches which use half of the difference
+ between the symbol and the program counter. I can't
+ quite figure out when this is useful. These relocs are
+ not defined by the PowerOpen ABI. */
+ default:
+ (*_bfd_error_handler)
+ (_("%s: unsupported relocation type 0x%02x"),
+ bfd_archive_filename (input_bfd), (unsigned int) rel->r_type);
+ bfd_set_error (bfd_error_bad_value);
+ return false;
+ case R_POS:
+ /* Simple positive relocation. */
+ break;
+ case R_NEG:
+ /* Simple negative relocation. */
+ val = - val;
+ break;
+ case R_REL:
+ /* Simple PC relative relocation. */
+ howto.pc_relative = true;
+ break;
+ case R_TOC:
+ /* TOC relative relocation. The value in the instruction in
+ the input file is the offset from the input file TOC to
+ the desired location. We want the offset from the final
+ TOC to the desired location. We have:
+ isym = iTOC + in
+ iinsn = in + o
+ osym = oTOC + on
+ oinsn = on + o
+ so we must change insn by on - in.
+ */
+ case R_GL:
+ /* Global linkage relocation. The value of this relocation
+ is the address of the entry in the TOC section. */
+ case R_TCL:
+ /* Local object TOC address. I can't figure out the
+ difference between this and case R_GL. */
+ case R_TRL:
+ /* TOC relative relocation. A TOC relative load instruction
+ which may be changed to a load address instruction.
+ FIXME: We don't currently implement this optimization. */
+ case R_TRLA:
+ /* TOC relative relocation. This is a TOC relative load
+ address instruction which may be changed to a load
+ instruction. FIXME: I don't know if this is the correct
+ implementation. */
+ if (h != NULL && h->smclas != XMC_TD)
+ {
+ if (h->toc_section == NULL)
+ {
+ (*_bfd_error_handler)
+ (_("%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"),
+ bfd_archive_filename (input_bfd), rel->r_vaddr,
+ h->root.root.string);
+ bfd_set_error (bfd_error_bad_value);
+ return false;
+ }
+
+ BFD_ASSERT ((h->flags & XCOFF_SET_TOC) == 0);
+ val = (h->toc_section->output_section->vma
+ + h->toc_section->output_offset);
+ }
+
+ val = ((val - xcoff_data (output_bfd)->toc)
+ - (sym->n_value - xcoff_data (input_bfd)->toc));
+
+ addend = 0;
+ break;
+ case R_BA:
+ /* Absolute branch. We don't want to mess with the lower
+ two bits of the instruction. */
+ case R_CAI:
+ /* The PowerPC ABI defines this as an absolute call which
+ may be modified to become a relative call. The PowerOpen
+ ABI does not define this relocation type. */
+ case R_RBA:
+ /* Absolute branch which may be modified to become a
+ relative branch. */
+ case R_RBAC:
+ /* The PowerPC ABI defines this as an absolute branch to a
+ fixed address which may be modified to an absolute branch
+ to a symbol. The PowerOpen ABI does not define this
+ relocation type. */
+ case R_RBRC:
+ /* The PowerPC ABI defines this as an absolute branch to a
+ fixed address which may be modified to a relative branch.
+ The PowerOpen ABI does not define this relocation type. */
+ howto.src_mask &= ~3;
+ howto.dst_mask = howto.src_mask;
+ break;
+ case R_BR:
+ /* Relative branch. We don't want to mess with the lower
+ two bits of the instruction. */
+ case R_CREL:
+ /* The PowerPC ABI defines this as a relative call which may
+ be modified to become an absolute call. The PowerOpen
+ ABI does not define this relocation type. */
+ case R_RBR:
+ /* A relative branch which may be modified to become an
+ absolute branch. FIXME: We don't implement this,
+ although we should for symbols of storage mapping class
+ XMC_XO. */
+ howto.pc_relative = true;
+ howto.src_mask &= ~3;
+ howto.dst_mask = howto.src_mask;
+ howto.size = 2;
+ howto.complain_on_overflow = complain_overflow_bitfield;
+ break;
+ case R_RL:
+ /* The PowerPC AIX ABI describes this as a load which may be
+ changed to a load address. The PowerOpen ABI says this
+ is the same as case R_POS. */
+ break;
+ case R_RLA:
+ /* The PowerPC AIX ABI describes this as a load address
+ which may be changed to a load. The PowerOpen ABI says
+ this is the same as R_POS. */
+ break;
+ }
+
+ /* If we see an R_BR or R_RBR reloc which is jumping to global
+ linkage code, and it is followed by an appropriate cror nop
+ instruction, we replace the cror with ld r2,40(r1). This
+ restores the TOC after the glink code. Contrariwise, if the
+ call is followed by a ld r2,40(r1), but the call is not
+ going to global linkage code, we can replace the load with a
+ cror. */
+ if ((rel->r_type == R_BR || rel->r_type == R_RBR)
+ && h != NULL
+ && h->root.type == bfd_link_hash_defined
+ && (rel->r_vaddr - input_section->vma + 8
+ <= input_section->_cooked_size))
+ {
+ bfd_byte *pnext;
+ unsigned long next;
+
+ pnext = contents + (rel->r_vaddr - input_section->vma) + 4;
+ next = bfd_get_32 (input_bfd, pnext);
+
+
+ /* The _ptrgl function is magic. It is used by the AIX
+ * compiler to call a function through a pointer.
+ *
+ * special case XMC_GL, global linkage
+ */
+ if (h->smclas == XMC_GL
+ || strcmp (h->root.root.string, "._ptrgl") == 0)
+ {
+ if (next == 0x4def7b82 /* cror 15,15,15 */
+ || next == 0x4ffffb82 /* cror 31,31,31 */
+ || next == 0x60000000 /* ori r0,r0,0 */)
+ bfd_put_32 (input_bfd, (bfd_vma) 0xe8410028 /* ld r2,40(r1) */,
+ pnext);
+ }
+ else
+ {
+ if (next == 0xe8410028 /* ld r2,40(r1) */)
+ bfd_put_32 (input_bfd, (bfd_vma) 0x60000000 /* ori r0,r0,0 */,
+ pnext);
+ }
+ }
+
+ /* A PC relative reloc includes the section address. */
+ if (howto.pc_relative)
+ addend += input_section->vma;
+
+ rstat = _bfd_final_link_relocate (&howto, input_bfd, input_section,
+ contents,
+ rel->r_vaddr - input_section->vma,
+ val, addend);
+
+ switch (rstat)
+ {
+ default:
+ abort ();
+ case bfd_reloc_ok:
+ break;
+ case bfd_reloc_overflow:
+ {
+ const char *name;
+ char buf[SYMNMLEN + 1];
+ char howto_name[10];
+
+ if (symndx == -1)
+ name = "*ABS*";
+ else if (h != NULL)
+ name = h->root.root.string;
+ else
+ {
+ name = _bfd_coff_internal_syment_name (input_bfd, sym, buf);
+ if (name == NULL)
+ return false;
+ }
+ sprintf (howto_name, "0x%02x", rel->r_type);
+
+ if (! ((*info->callbacks->reloc_overflow)
+ (info, name, howto_name, (bfd_vma) 0, input_bfd,
+ input_section, rel->r_vaddr - input_section->vma)))
+ return false;
+ }
+ }
+ }
+
+ return true;
+}
+
+
+
+/* The XCOFF reloc table. Actually, XCOFF relocations specify the
+ bitsize and whether they are signed or not, along with a
+ conventional type. This table is for the types, which are used for
+ different algorithms for putting in the reloc. Many of these
+ relocs need special_function entries, which I have not written. */
+
+
+reloc_howto_type xcoff64_howto_table[] =
+{
+ /* Standard 64 bit relocation. */
+ HOWTO (0, /* type */
+ 0, /* rightshift */
+ 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 64, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_POS", /* name */
+ true, /* partial_inplace */
+ MINUS_ONE, /* src_mask */
+ MINUS_ONE, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* 64 bit relocation, but store negative value. */
+ HOWTO (1, /* type */
+ 0, /* rightshift */
+ -4, /* size (0 = byte, 1 = short, 2 = long) */
+ 64, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_NEG", /* name */
+ true, /* partial_inplace */
+ MINUS_ONE, /* src_mask */
+ MINUS_ONE, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* 32 bit PC relative relocation. */
+ HOWTO (2, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ true, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_signed, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_REL", /* name */
+ true, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* 16 bit TOC relative relocation. */
+ HOWTO (3, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_TOC", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* I don't really know what this is. */
+ HOWTO (4, /* type */
+ 1, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_RTB", /* name */
+ true, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* External TOC relative symbol. */
+ HOWTO (5, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_GL", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* Local TOC relative symbol. */
+ HOWTO (6, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_TCL", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ EMPTY_HOWTO (7),
+
+ /* Non modifiable absolute branch. */
+ HOWTO (8, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 26, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_BA", /* name */
+ true, /* partial_inplace */
+ 0x3fffffc, /* src_mask */
+ 0x3fffffc, /* dst_mask */
+ false), /* pcrel_offset */
+
+ EMPTY_HOWTO (9),
+
+ /* Non modifiable relative branch. */
+ HOWTO (0xa, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 26, /* bitsize */
+ true, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_signed, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_BR", /* name */
+ true, /* partial_inplace */
+ 0x3fffffc, /* src_mask */
+ 0x3fffffc, /* dst_mask */
+ false), /* pcrel_offset */
+
+ EMPTY_HOWTO (0xb),
+
+ /* Indirect load. */
+ HOWTO (0xc, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_RL", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* Load address. */
+ HOWTO (0xd, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_RLA", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ EMPTY_HOWTO (0xe),
+
+ /* Non-relocating reference. */
+ HOWTO (0xf, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_REF", /* name */
+ false, /* partial_inplace */
+ 0, /* src_mask */
+ 0, /* dst_mask */
+ false), /* pcrel_offset */
+
+ EMPTY_HOWTO (0x10),
+ EMPTY_HOWTO (0x11),
+
+ /* TOC relative indirect load. */
+ HOWTO (0x12, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_TRL", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* TOC relative load address. */
+ HOWTO (0x13, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_TRLA", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* Modifiable relative branch. */
+ HOWTO (0x14, /* type */
+ 1, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_RRTBI", /* name */
+ true, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* Modifiable absolute branch. */
+ HOWTO (0x15, /* type */
+ 1, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_RRTBA", /* name */
+ true, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* Modifiable call absolute indirect. */
+ HOWTO (0x16, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_CAI", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* Modifiable call relative. */
+ HOWTO (0x17, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_CREL", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* Modifiable branch absolute. */
+ HOWTO (0x18, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 26, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_RBA", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* Modifiable branch absolute. */
+ HOWTO (0x19, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_RBAC", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* Modifiable branch relative. */
+ HOWTO (0x1a, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 26, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_signed, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_RBR", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* Modifiable branch absolute. */
+ HOWTO (0x1b, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_RBRC", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ HOWTO (0, /* type */
+ 0, /* rightshift */
+ 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 64, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_POS", /* name */
+ true, /* partial_inplace */
+ MINUS_ONE, /* src_mask */
+ MINUS_ONE, /* dst_mask */
+ false) /* pcrel_offset */
+};
+
+void
+xcoff64_rtype2howto (relent, internal)
+ arelent *relent;
+ struct internal_reloc *internal;
+{
+ relent->howto = xcoff64_howto_table + internal->r_type;
+
+ /* Check for relocs we don't know of. */
+ if (internal->r_type
+ >= sizeof (xcoff64_howto_table) / sizeof (xcoff64_howto_table[0]))
+ abort ();
+ if (internal->r_type != relent->howto->type)
+ abort ();
+
+ /* The r_size field of an XCOFF reloc encodes the bitsize of the
+ relocation, as well as indicating whether it is signed or not.
+ Doublecheck that the relocation information gathered from the
+ type matches this information. The bitsize is not significant
+ for R_REF relocs. */
+ if (relent->howto->dst_mask != 0
+ && (relent->howto->bitsize
+ != ((unsigned int) internal->r_size & 0x3f) + 1))
+ abort ();
+#if 0
+ if ((internal->r_size & 0x80) != 0
+ ? (relent->howto->complain_on_overflow != complain_overflow_signed)
+ : (relent->howto->complain_on_overflow != complain_overflow_bitfield))
+ abort ();
+#endif
+}
+
+reloc_howto_type *
+xcoff64_reloc_type_lookup (abfd, code)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ bfd_reloc_code_real_type code;
+{
+ switch (code)
+ {
+ case BFD_RELOC_PPC_B26:
+ return &xcoff64_howto_table[0xa];
+ case BFD_RELOC_PPC_BA26:
+ return &xcoff64_howto_table[8];
+ case BFD_RELOC_PPC_TOC16:
+ return &xcoff64_howto_table[3];
+ case BFD_RELOC_32:
+ case BFD_RELOC_CTOR:
+ return &xcoff64_howto_table[0];
+ case BFD_RELOC_64:
+ return &xcoff64_howto_table[0x1c];
+ default:
+ return NULL;
+ }
+}
+
+
+
+/* Read in the armap of an XCOFF archive. */
+
+static boolean
+xcoff64_slurp_armap (abfd)
+ bfd *abfd;
+{
+ file_ptr off;
+ size_t namlen;
+ bfd_size_type sz, amt;
+ bfd_byte *contents, *cend;
+ bfd_vma c, i;
+ carsym *arsym;
+ bfd_byte *p;
+ file_ptr pos;
+
+ /* This is for the new format. */
+ struct xcoff_ar_hdr_big hdr;
+
+ if (xcoff_ardata (abfd) == NULL)
+ {
+ bfd_has_map (abfd) = false;
+ return true;
+ }
+
+ off = strtol (xcoff_ardata_big (abfd)->symoff64, (char **) NULL, 10);
+ if (off == 0)
+ {
+ bfd_has_map (abfd) = false;
+ return true;
+ }
+
+ if (bfd_seek (abfd, off, SEEK_SET) != 0)
+ return false;
+
+ /* The symbol table starts with a normal archive header. */
+ if (bfd_bread ((PTR) &hdr, (bfd_size_type) SIZEOF_AR_HDR_BIG, abfd)
+ != SIZEOF_AR_HDR_BIG)
+ return false;
+
+ /* Skip the name (normally empty). */
+ namlen = strtol (hdr.namlen, (char **) NULL, 10);
+ pos = ((namlen + 1) & ~(size_t) 1) + SXCOFFARFMAG;
+ if (bfd_seek (abfd, pos, SEEK_CUR) != 0)
+ return false;
+
+ /* XXX This actually has to be a call to strtoll (at least on 32-bit
+ machines) since the field width is 20 and there numbers with more
+ than 32 bits can be represented. */
+ sz = strtol (hdr.size, (char **) NULL, 10);
+
+ /* Read in the entire symbol table. */
+ contents = (bfd_byte *) bfd_alloc (abfd, sz);
+ if (contents == NULL)
+ return false;
+ if (bfd_bread ((PTR) contents, sz, abfd) != sz)
+ return false;
+
+ /* The symbol table starts with an eight byte count. */
+ c = H_GET_64 (abfd, contents);
+
+ if (c * 8 >= sz)
+ {
+ bfd_set_error (bfd_error_bad_value);
+ return false;
+ }
+ amt = c;
+ amt *= sizeof (carsym);
+ bfd_ardata (abfd)->symdefs = (carsym *) bfd_alloc (abfd, amt);
+ if (bfd_ardata (abfd)->symdefs == NULL)
+ return false;
+
+ /* After the count comes a list of eight byte file offsets. */
+ for (i = 0, arsym = bfd_ardata (abfd)->symdefs, p = contents + 8;
+ i < c;
+ ++i, ++arsym, p += 8)
+ arsym->file_offset = H_GET_64 (abfd, p);
+
+ /* After the file offsets come null terminated symbol names. */
+ cend = contents + sz;
+ for (i = 0, arsym = bfd_ardata (abfd)->symdefs;
+ i < c;
+ ++i, ++arsym, p += strlen ((char *) p) + 1)
+ {
+ if (p >= cend)
+ {
+ bfd_set_error (bfd_error_bad_value);
+ return false;
+ }
+ arsym->name = (char *) p;
+ }
+
+ bfd_ardata (abfd)->symdef_count = c;
+ bfd_has_map (abfd) = true;
+
+ return true;
+}
+
+
+/* See if this is an NEW XCOFF archive. */
+
+static const bfd_target *
+xcoff64_archive_p (abfd)
+ bfd *abfd;
+{
+ char magic[SXCOFFARMAG];
+ /* This is the new format. */
+ struct xcoff_ar_file_hdr_big hdr;
+ bfd_size_type amt = SXCOFFARMAG;
+
+ if (bfd_bread ((PTR) magic, amt, abfd) != amt)
+ {
+ if (bfd_get_error () != bfd_error_system_call)
+ bfd_set_error (bfd_error_wrong_format);
+ return NULL;
+ }
+
+ if (strncmp (magic, XCOFFARMAGBIG, SXCOFFARMAG) != 0)
+ {
+ bfd_set_error (bfd_error_wrong_format);
+ return NULL;
+ }
+
+ /* We are setting bfd_ardata(abfd) here, but since bfd_ardata
+ involves a cast, we can't do it as the left operand of
+ assignment. */
+ amt = sizeof (struct artdata);
+ abfd->tdata.aout_ar_data = (struct artdata *) bfd_zalloc (abfd, amt);
+
+ if (bfd_ardata (abfd) == (struct artdata *) NULL)
+ return NULL;
+
+ bfd_ardata (abfd)->cache = NULL;
+ bfd_ardata (abfd)->archive_head = NULL;
+ bfd_ardata (abfd)->symdefs = NULL;
+ bfd_ardata (abfd)->extended_names = NULL;
+
+ /* Copy over the magic string. */
+ memcpy (hdr.magic, magic, SXCOFFARMAG);
+
+ /* Now read the rest of the file header. */
+ if (bfd_bread ((PTR) &hdr.memoff,
+ (bfd_size_type) (SIZEOF_AR_FILE_HDR_BIG - SXCOFFARMAG),
+ abfd) != SIZEOF_AR_FILE_HDR_BIG - SXCOFFARMAG)
+ {
+ if (bfd_get_error () != bfd_error_system_call)
+ bfd_set_error (bfd_error_wrong_format);
+ return NULL;
+ }
+
+ /* XXX This actually has to be a call to strtoll (at least on 32-bit
+ machines) since the field width is 20 and there numbers with more
+ than 32 bits can be represented. */
+ bfd_ardata (abfd)->first_file_filepos = strtol (hdr.firstmemoff,
+ (char **) NULL, 10);
+
+ amt = SIZEOF_AR_FILE_HDR_BIG;
+ bfd_ardata (abfd)->tdata = bfd_zalloc (abfd, amt);
+ if (bfd_ardata (abfd)->tdata == NULL)
+ return NULL;
+
+ memcpy (bfd_ardata (abfd)->tdata, &hdr, SIZEOF_AR_FILE_HDR_BIG);
+
+ if (! xcoff64_slurp_armap (abfd))
+ {
+ bfd_release (abfd, bfd_ardata (abfd));
+ abfd->tdata.aout_ar_data = (struct artdata *) NULL;
+ return NULL;
+ }
+
+ return abfd->xvec;
+}
+
+
+/* Open the next element in an XCOFF archive. */
+
+static bfd *
+xcoff64_openr_next_archived_file (archive, last_file)
+ bfd *archive;
+ bfd *last_file;
+{
+ file_ptr filestart;
+
+ if ((xcoff_ardata (archive) == NULL)
+ || ! xcoff_big_format_p (archive))
+ {
+ bfd_set_error (bfd_error_invalid_operation);
+ return NULL;
+ }
+
+ if (last_file == NULL)
+ {
+ filestart = bfd_ardata (archive)->first_file_filepos;
+ }
+ else
+ {
+ /* XXX These actually have to be a calls to strtoll (at least
+ on 32-bit machines) since the fields's width is 20 and
+ there numbers with more than 32 bits can be represented. */
+ filestart = strtol (arch_xhdr_big (last_file)->nextoff, (char **) NULL,
+ 10);
+ }
+ /* XXX These actually have to be calls to strtoll (at least on 32-bit
+ machines) since the fields's width is 20 and there numbers with more
+ than 32 bits can be represented. */
+ if (filestart == 0
+ || filestart == strtol (xcoff_ardata_big (archive)->memoff,
+ (char **) NULL, 10)
+ || filestart == strtol (xcoff_ardata_big (archive)->symoff,
+ (char **) NULL, 10))
+ {
+ bfd_set_error (bfd_error_no_more_archived_files);
+ return NULL;
+ }
+
+ return _bfd_get_elt_at_filepos (archive, filestart);
+}
+
+/* We can't use the usual coff_sizeof_headers routine, because AIX
+ always uses an a.out header. */
+
+/*ARGSUSED*/
+static int
+xcoff64_sizeof_headers (abfd, reloc)
+ bfd *abfd;
+ boolean reloc ATTRIBUTE_UNUSED;
+{
+ int size;
+
+ size = bfd_coff_filhsz (abfd);
+
+ /* Don't think the small aout header can be used since some of the
+ old elements have been reordered past the end of the old coff
+ small aout size. */
+
+ if (xcoff_data (abfd)->full_aouthdr)
+ size += bfd_coff_aoutsz (abfd);
+
+ size += abfd->section_count * bfd_coff_scnhsz (abfd);
+ return size;
+}
+
+
+
+static asection *
+xcoff64_create_csect_from_smclas (abfd, aux, symbol_name)
+ bfd *abfd;
+ union internal_auxent *aux;
+ const char *symbol_name;
+{
+ asection *return_value = NULL;
+
+ /* Changes from 32 :
+ .sv == 8, is only for 32 bit programs
+ .ti == 12 and .tb == 13 are now reserved. */
+ static const char *names[19] =
+ {
+ ".pr", ".ro", ".db", ".tc", ".ua", ".rw", ".gl", ".xo",
+ NULL, ".bs", ".ds", ".uc", NULL, NULL, NULL, ".tc0",
+ ".td", ".sv64", ".sv3264"
+ };
+
+ if ((19 >= aux->x_csect.x_smclas)
+ && (NULL != names[aux->x_csect.x_smclas]))
+ {
+
+ return_value = bfd_make_section_anyway
+ (abfd, names[aux->x_csect.x_smclas]);
+
+ }
+ else
+ {
+ (*_bfd_error_handler)
+ (_("%s: symbol `%s' has unrecognized smclas %d"),
+ bfd_archive_filename (abfd), symbol_name, aux->x_csect.x_smclas);
+ bfd_set_error (bfd_error_bad_value);
+ }
+
+ return return_value;
+}
+
+static boolean
+xcoff64_is_lineno_count_overflow (abfd, value)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ bfd_vma value ATTRIBUTE_UNUSED;
+{
+ return false;
+}
+
+static boolean
+xcoff64_is_reloc_count_overflow (abfd, value)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ bfd_vma value ATTRIBUTE_UNUSED;
+{
+ return false;
+}
+
+static bfd_vma
+xcoff64_loader_symbol_offset (abfd, ldhdr)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ struct internal_ldhdr *ldhdr;
+{
+ return (ldhdr->l_symoff);
+}
+
+static bfd_vma
+xcoff64_loader_reloc_offset (abfd, ldhdr)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ struct internal_ldhdr *ldhdr;
+{
+ return (ldhdr->l_rldoff);
+}
+
+static boolean
+xcoff64_generate_rtinit (abfd, init, fini)
+ bfd *abfd;
+ const char *init;
+ const char *fini;
+{
+ bfd_byte filehdr_ext[FILHSZ];
+ bfd_byte scnhdr_ext[SCNHSZ];
+ bfd_byte syment_ext[SYMESZ * 8];
+ bfd_byte reloc_ext[RELSZ * 2];
+ bfd_byte *data_buffer;
+ bfd_size_type data_buffer_size;
+ bfd_byte *string_table, *st_tmp;
+ bfd_size_type string_table_size;
+ bfd_vma val;
+ size_t initsz, finisz;
+ struct internal_filehdr filehdr;
+ struct internal_scnhdr scnhdr;
+ struct internal_syment syment;
+ union internal_auxent auxent;
+ struct internal_reloc reloc;
+
+ char *data_name = ".data";
+ char *rtinit_name = "__rtinit";
+
+ if (! bfd_xcoff_rtinit_size (abfd)
+ || (init == NULL && fini == NULL))
+ return false;
+
+ initsz = (init == NULL ? 0 : 1 + strlen (init));
+ finisz = (fini == NULL ? 0 : 1 + strlen (fini));
+
+ /* file header */
+ memset (filehdr_ext, 0, FILHSZ);
+ memset (&filehdr, 0, sizeof (struct internal_filehdr));
+ filehdr.f_magic = bfd_xcoff_magic_number (abfd);
+ filehdr.f_nscns = 1;
+ filehdr.f_timdat = 0;
+ filehdr.f_nsyms = 0; /* at least 6, no more than 8 */
+ filehdr.f_symptr = 0; /* set below */
+ filehdr.f_opthdr = 0;
+ filehdr.f_flags = 0;
+
+ /* section header */
+ memset (scnhdr_ext, 0, SCNHSZ);
+ memset (&scnhdr, 0, sizeof (struct internal_scnhdr));
+ memcpy (scnhdr.s_name, data_name, strlen (data_name));
+ scnhdr.s_paddr = 0;
+ scnhdr.s_vaddr = 0;
+ scnhdr.s_size = 0; /* set below */
+ scnhdr.s_scnptr = FILHSZ + SCNHSZ;
+ scnhdr.s_relptr = 0; /* set below */
+ scnhdr.s_lnnoptr = 0;
+ scnhdr.s_nreloc = 0; /* either 1 or 2 */
+ scnhdr.s_nlnno = 0;
+ scnhdr.s_flags = STYP_DATA;
+
+ /* .data
+ 0x0000 0x00000000 : rtl
+ 0x0004 0x00000000 :
+ 0x0008 0x00000018 : offset to init, or 0
+ 0x000C 0x00000038 : offset to fini, or 0
+ 0x0010 0x00000010 : size of descriptor
+ 0x0014 0x00000000 : pad
+ 0x0018 0x00000000 : init, needs a reloc
+ 0x001C 0x00000000 :
+ 0x0020 0x00000058 : offset to init name
+ 0x0024 0x00000000 : flags, padded to a word
+ 0x0028 0x00000000 : empty init
+ 0x002C 0x00000000 :
+ 0x0030 0x00000000 :
+ 0x0034 0x00000000 :
+ 0x0038 0x00000000 : fini, needs a reloc
+ 0x003C 0x00000000 :
+ 0x0040 0x00000??? : offset to fini name
+ 0x0044 0x00000000 : flags, padded to a word
+ 0x0048 0x00000000 : empty fini
+ 0x004C 0x00000000 :
+ 0x0050 0x00000000 :
+ 0x0054 0x00000000 :
+ 0x0058 init name
+ 0x0058 + initsz fini name */
+
+ data_buffer_size = 0x0058 + initsz + finisz;
+ data_buffer_size += (data_buffer_size & 7) ? 8 - (data_buffer_size & 7) : 0;
+ data_buffer = NULL;
+ data_buffer = (bfd_byte *)bfd_malloc (data_buffer_size);
+ if (data_buffer == NULL)
+ return false;
+
+ memset (data_buffer, 0, data_buffer_size);
+
+ if (initsz)
+ {
+ val = 0x18;
+ bfd_put_32 (abfd, val, &data_buffer[0x08]);
+ val = 0x58;
+ bfd_put_32 (abfd, val, &data_buffer[0x20]);
+ memcpy (&data_buffer[val], init, initsz);
+ }
+
+ if (finisz)
+ {
+ val = 0x38;
+ bfd_put_32 (abfd, val, &data_buffer[0x0C]);
+ val = 0x58 + initsz;
+ bfd_put_32 (abfd, val, &data_buffer[0x40]);
+ memcpy (&data_buffer[val], fini, finisz);
+ }
+
+ val = 0x10;
+ bfd_put_32 (abfd, val, &data_buffer[0x10]);
+ scnhdr.s_size = data_buffer_size;
+
+ /* string table */
+ string_table_size = 4;
+ string_table_size += strlen (data_name) + 1;
+ string_table_size += strlen (rtinit_name) + 1;
+ string_table_size += initsz;
+ string_table_size += finisz;
+
+ string_table = (bfd_byte *)bfd_malloc (string_table_size);
+ memset (string_table, 0, string_table_size);
+ val = string_table_size;
+ bfd_put_32 (abfd, val, &string_table[0]);
+ st_tmp = string_table + 4;
+
+ /* symbols
+ 0. .data csect
+ 2. __rtinit
+ 4. init function
+ 6. fini function */
+ memset (syment_ext, 0, 8 * SYMESZ);
+ memset (reloc_ext, 0, 2 * RELSZ);
+
+ /* .data csect */
+ memset (&syment, 0, sizeof (struct internal_syment));
+ memset (&auxent, 0, sizeof (union internal_auxent));
+
+ syment._n._n_n._n_offset = st_tmp - string_table;
+ memcpy (st_tmp, data_name, strlen (data_name));
+ st_tmp += strlen (data_name) + 1;
+
+ syment.n_scnum = 1;
+ syment.n_sclass = C_HIDEXT;
+ syment.n_numaux = 1;
+ auxent.x_csect.x_scnlen.l = data_buffer_size;
+ auxent.x_csect.x_smtyp = 3 << 3 | XTY_SD;
+ auxent.x_csect.x_smclas = XMC_RW;
+ bfd_coff_swap_sym_out (abfd, &syment,
+ &syment_ext[filehdr.f_nsyms * SYMESZ]);
+ bfd_coff_swap_aux_out (abfd, &auxent, syment.n_type, syment.n_sclass, 0,
+ syment.n_numaux,
+ &syment_ext[(filehdr.f_nsyms + 1) * SYMESZ]);
+ filehdr.f_nsyms += 2;
+
+ /* __rtinit */
+ memset (&syment, 0, sizeof (struct internal_syment));
+ memset (&auxent, 0, sizeof (union internal_auxent));
+ syment._n._n_n._n_offset = st_tmp - string_table;
+ memcpy (st_tmp, rtinit_name, strlen (rtinit_name));
+ st_tmp += strlen (rtinit_name) + 1;
+
+ syment.n_scnum = 1;
+ syment.n_sclass = C_EXT;
+ syment.n_numaux = 1;
+ auxent.x_csect.x_smtyp = XTY_LD;
+ auxent.x_csect.x_smclas = XMC_RW;
+ bfd_coff_swap_sym_out (abfd, &syment,
+ &syment_ext[filehdr.f_nsyms * SYMESZ]);
+ bfd_coff_swap_aux_out (abfd, &auxent, syment.n_type, syment.n_sclass, 0,
+ syment.n_numaux,
+ &syment_ext[(filehdr.f_nsyms + 1) * SYMESZ]);
+ filehdr.f_nsyms += 2;
+
+ /* init */
+ if (initsz)
+ {
+ memset (&syment, 0, sizeof (struct internal_syment));
+ memset (&auxent, 0, sizeof (union internal_auxent));
+
+ syment._n._n_n._n_offset = st_tmp - string_table;
+ memcpy (st_tmp, init, initsz);
+ st_tmp += initsz;
+
+ syment.n_sclass = C_EXT;
+ syment.n_numaux = 1;
+ bfd_coff_swap_sym_out (abfd, &syment,
+ &syment_ext[filehdr.f_nsyms * SYMESZ]);
+ bfd_coff_swap_aux_out (abfd, &auxent, syment.n_type, syment.n_sclass, 0,
+ syment.n_numaux,
+ &syment_ext[(filehdr.f_nsyms + 1) * SYMESZ]);
+ /* reloc */
+ memset (&reloc, 0, sizeof (struct internal_reloc));
+ reloc.r_vaddr = 0x0018;
+ reloc.r_symndx = filehdr.f_nsyms;
+ reloc.r_type = R_POS;
+ reloc.r_size = 63;
+ bfd_coff_swap_reloc_out (abfd, &reloc, &reloc_ext[0]);
+
+ filehdr.f_nsyms += 2;
+ scnhdr.s_nreloc += 1;
+ }
+
+ /* finit */
+ if (finisz)
+ {
+ memset (&syment, 0, sizeof (struct internal_syment));
+ memset (&auxent, 0, sizeof (union internal_auxent));
+
+ syment._n._n_n._n_offset = st_tmp - string_table;
+ memcpy (st_tmp, fini, finisz);
+ st_tmp += finisz;
+
+ syment.n_sclass = C_EXT;
+ syment.n_numaux = 1;
+ bfd_coff_swap_sym_out (abfd, &syment,
+ &syment_ext[filehdr.f_nsyms * SYMESZ]);
+ bfd_coff_swap_aux_out (abfd, &auxent, syment.n_type, syment.n_sclass, 0,
+ syment.n_numaux,
+ &syment_ext[(filehdr.f_nsyms + 1) * SYMESZ]);
+
+ /* reloc */
+ memset (&reloc, 0, sizeof (struct internal_reloc));
+ reloc.r_vaddr = 0x0038;
+ reloc.r_symndx = filehdr.f_nsyms;
+ reloc.r_type = R_POS;
+ reloc.r_size = 63;
+ bfd_coff_swap_reloc_out (abfd, &reloc,
+ &reloc_ext[scnhdr.s_nreloc * RELSZ]);
+
+ filehdr.f_nsyms += 2;
+ scnhdr.s_nreloc += 1;
+ }
+
+ scnhdr.s_relptr = scnhdr.s_scnptr + data_buffer_size;
+ filehdr.f_symptr = scnhdr.s_relptr + scnhdr.s_nreloc * RELSZ;
+
+ bfd_coff_swap_filehdr_out (abfd, &filehdr, filehdr_ext);
+ bfd_bwrite (filehdr_ext, FILHSZ, abfd);
+ bfd_coff_swap_scnhdr_out (abfd, &scnhdr, scnhdr_ext);
+ bfd_bwrite (scnhdr_ext, SCNHSZ, abfd);
+ bfd_bwrite (data_buffer, data_buffer_size, abfd);
+ bfd_bwrite (reloc_ext, scnhdr.s_nreloc * RELSZ, abfd);
+ bfd_bwrite (syment_ext, filehdr.f_nsyms * SYMESZ, abfd);
+ bfd_bwrite (string_table, string_table_size, abfd);
+
+ free (data_buffer);
+ data_buffer = NULL;
+
+ return true;
+}
+
+/* The typical dynamic reloc. */
+
+static reloc_howto_type xcoff64_dynamic_reloc =
+HOWTO (0, /* type */
+ 0, /* rightshift */
+ 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 64, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ 0, /* special_function */
+ "R_POS", /* name */
+ true, /* partial_inplace */
+ MINUS_ONE, /* src_mask */
+ MINUS_ONE, /* dst_mask */
+ false); /* pcrel_offset */
+
+static unsigned long xcoff64_glink_code[10] =
+{
+ 0xe9820000, /* ld r12,0(r2) */
+ 0xf8410028, /* std r2,40(r1) */
+ 0xe80c0000, /* ld r0,0(r12) */
+ 0xe84c0008, /* ld r0,8(r12) */
+ 0x7c0903a6, /* mtctr r0 */
+ 0x4e800420, /* bctr */
+ 0x00000000, /* start of traceback table */
+ 0x000ca000, /* traceback table */
+ 0x00000000, /* traceback table */
+ 0x00000018, /* ??? */
+};
+
+static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
+{
+ { /* COFF backend, defined in libcoff.h */
+ _bfd_xcoff64_swap_aux_in, /* _bfd_coff_swap_aux_in */
+ _bfd_xcoff64_swap_sym_in, /* _bfd_coff_swap_sym_in */
+ _bfd_xcoff64_swap_lineno_in, /* _bfd_coff_swap_lineno_in */
+ _bfd_xcoff64_swap_aux_out, /* _bfd_swap_aux_out */
+ _bfd_xcoff64_swap_sym_out, /* _bfd_swap_sym_out */
+ _bfd_xcoff64_swap_lineno_out, /* _bfd_swap_lineno_out */
+ coff_swap_reloc_out, /* _bfd_swap_reloc_out */
+ coff_swap_filehdr_out, /* _bfd_swap_filehdr_out */
+ coff_swap_aouthdr_out, /* _bfd_swap_aouthdr_out */
+ coff_swap_scnhdr_out, /* _bfd_swap_scnhdr_out */
+ FILHSZ, /* _bfd_filhsz */
+ AOUTSZ, /* _bfd_aoutsz */
+ SCNHSZ, /* _bfd_scnhsz */
+ SYMESZ, /* _bfd_symesz */
+ AUXESZ, /* _bfd_auxesz */
+ RELSZ, /* _bfd_relsz */
+ LINESZ, /* _bfd_linesz */
+ FILNMLEN, /* _bfd_filnmlen */
+ true, /* _bfd_coff_long_filenames */
+ false, /* _bfd_coff_long_section_names */
+ (3), /* _bfd_coff_default_section_alignment_power */
+ true, /* _bfd_coff_force_symnames_in_strings */
+ 4, /* _bfd_coff_debug_string_prefix_length */
+ coff_swap_filehdr_in, /* _bfd_coff_swap_filehdr_in */
+ coff_swap_aouthdr_in, /* _bfd_swap_aouthdr_in */
+ coff_swap_scnhdr_in, /* _bfd_swap_scnhdr_in */
+ coff_swap_reloc_in, /* _bfd_reloc_in */
+ coff_bad_format_hook, /* _bfd_bad_format_hook */
+ coff_set_arch_mach_hook, /* _bfd_set_arch_mach_hook */
+ coff_mkobject_hook, /* _bfd_mkobject_hook */
+ styp_to_sec_flags, /* _bfd_syp_to_sec_flags */
+ coff_set_alignment_hook, /* _bfd_set_alignment_hook */
+ coff_slurp_symbol_table, /* _bfd_coff_slurp_symbol_table */
+ symname_in_debug_hook, /* _coff_symname_in_debug_hook */
+ coff_pointerize_aux_hook, /* _bfd_coff_pointerize_aux_hook */
+ coff_print_aux, /* bfd_coff_print_aux */
+ dummy_reloc16_extra_cases, /* _bfd_coff_reloc16_extra_cases */
+ dummy_reloc16_estimate, /* _bfd_coff_reloc16_estimate */
+ NULL, /* bfd_coff_sym_is_global */
+ /* _bfd_coff_compute_section_file_positions */
+ coff_compute_section_file_positions,
+ NULL , /* _bfd_coff_start_final_link */
+ xcoff64_ppc_relocate_section, /* _bfd_coff_relocate_section */
+ coff_rtype_to_howto, /* _bfd_coff_rtype_to_howto */
+ NULL , /* _bfd_coff_addust_symndx */
+ _bfd_generic_link_add_one_symbol, /* _bfd_coff_add_one_symbol */
+ coff_link_output_has_begun, /* _bfd_coff_link_output_has_begun */
+ coff_final_link_postscript /* _bfd_coff_final_link_postscript */
+ },
+
+ 0x01EF, /* magic number */
+ bfd_arch_powerpc, /* architecture */
+ bfd_mach_ppc_620, /* machine */
+
+ /* function pointers to xcoff specific swap routines */
+ xcoff64_swap_ldhdr_in, /* _xcoff_swap_ldhdr_in */
+ xcoff64_swap_ldhdr_out, /* _xcoff_swap_ldhdr_out */
+ xcoff64_swap_ldsym_in, /* _xcoff_swap_ldsym_in */
+ xcoff64_swap_ldsym_out, /* _xcoff_swap_ldsym_out */
+ xcoff64_swap_ldrel_in, /* _xcoff_swap_ldrel_in */
+ xcoff64_swap_ldrel_out, /* _xcoff_swap_ldrel_out */
+
+ /* sizes */
+ LDHDRSZ, /* _xcoff_ldhdrsz */
+ LDSYMSZ, /* _xcoff_ldsymsz */
+ LDRELSZ, /* _xcoff_ldrelsz */
+ 24, /* _xcoff_function_descriptor_size */
+ 0, /* _xcoff_small_aout_header_size */
+ /* versions */
+ 2, /* _xcoff_ldhdr_version */
+
+ /* xcoff vs xcoff64 putting symbol names */
+ _bfd_xcoff64_put_symbol_name, /* _xcoff_put_symbol_name */
+ _bfd_xcoff64_put_ldsymbol_name, /* _xcoff_put_ldsymbol_name */
+
+ /* dynamic reloc howto */
+ &xcoff64_dynamic_reloc,
+
+ xcoff64_create_csect_from_smclas,
+
+ /* lineno and reloc count overflow */
+ xcoff64_is_lineno_count_overflow,
+ xcoff64_is_reloc_count_overflow,
+
+ xcoff64_loader_symbol_offset,
+ xcoff64_loader_reloc_offset,
+
+ /* glink */
+ &xcoff64_glink_code[0],
+ 40, /* _xcoff_glink_size */
+
+ /* rtinit */
+ 88, /* _xcoff_rtinit_size */
+ xcoff64_generate_rtinit, /* _xcoff_generate_rtinit */
+
+};
+
+/* The transfer vector that leads the outside world to all of the above. */
+const bfd_target rs6000coff64_vec =
+{
+ "aixcoff64-rs6000",
+ bfd_target_xcoff_flavour,
+ BFD_ENDIAN_BIG, /* data byte order is big */
+ BFD_ENDIAN_BIG, /* header byte order is big */
+
+ (HAS_RELOC | EXEC_P | /* object flags */
+ HAS_LINENO | HAS_DEBUG | DYNAMIC |
+ HAS_SYMS | HAS_LOCALS | WP_TEXT),
+
+ (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
+ 0, /* leading char */
+ '/', /* ar_pad_char */
+ 15, /* ar_max_namelen??? FIXMEmgo */
+
+ /* data */
+ bfd_getb64, /* bfd_getx64 */
+ bfd_getb_signed_64, /* bfd_getx_signed_64 */
+ bfd_putb64, /* bfd_putx64 */
+ bfd_getb32, /* bfd_getx32 */
+ bfd_getb_signed_32, /* bfd_getx_signed_32 */
+ bfd_putb32, /* bfd_putx32 */
+ bfd_getb16, /* bfd_getx16 */
+ bfd_getb_signed_16, /* bfd_getx_signed_16 */
+ bfd_putb16, /* bfd_putx16 */
+
+ /* hdrs */
+ bfd_getb64, /* bfd_h_getx64 */
+ bfd_getb_signed_64, /* bfd_h_getx_signed_64 */
+ bfd_putb64, /* bfd_h_putx64 */
+ bfd_getb32, /* bfd_h_getx32 */
+ bfd_getb_signed_32, /* bfd_h_getx_signed_32 */
+ bfd_putb32, /* bfd_h_putx32 */
+ bfd_getb16, /* bfd_h_getx16 */
+ bfd_getb_signed_16, /* bfd_h_getx_signed_16 */
+ bfd_putb16, /* bfd_h_putx16 */
+
+ { /* bfd_check_format */
+ _bfd_dummy_target,
+ coff_object_p,
+ xcoff64_archive_p,
+ CORE_FILE_P
+ },
+
+ { /* bfd_set_format */
+ bfd_false,
+ coff_mkobject,
+ _bfd_generic_mkarchive,
+ bfd_false
+ },
+
+ {/* bfd_write_contents */
+ bfd_false,
+ xcoff64_write_object_contents,
+ _bfd_xcoff_write_archive_contents,
+ bfd_false
+ },
+
+ /* Generic */
+ bfd_true, /* _close_and_cleanup */
+ bfd_true, /* _bfd_free_cached_info */
+ coff_new_section_hook, /* _new_section_hook */
+ _bfd_generic_get_section_contents, /* _bfd_get_section_contents */
+ /* _bfd_get_section_contents_in_window */
+ _bfd_generic_get_section_contents_in_window,
+
+ /* Copy */
+ _bfd_xcoff_copy_private_bfd_data, /* _bfd_copy_private_bfd */
+ /* _bfd_merge_private_bfd_data */
+ ((boolean (*) (bfd *, bfd *)) bfd_true),
+ /* _bfd_copy_pivate_section_data */
+ ((boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
+ /* _bfd_copy_private_symbol_data */
+ ((boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
+ ((boolean (*) (bfd *, flagword)) bfd_true), /* _bfd_set_private_flags */
+ ((boolean (*) (bfd *, void * )) bfd_true), /* _bfd_print_private_bfd_data */
+
+ /* Core */
+ coff_core_file_failing_command, /* _core_file_failing_command */
+ coff_core_file_failing_signal, /* _core_file_failing_signal */
+ /* _core_file_matches_executable_p */
+ coff_core_file_matches_executable_p,
+
+ /* Archive */
+ xcoff64_slurp_armap, /* _slurp_armap */
+ /* XCOFF archives do not have
+ anything which corresponds to
+ an extended name table. */
+ bfd_false, /* _slurp_extended_name_table */
+ /* _construct_extended_name_table */
+ ((boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
+ bfd_dont_truncate_arname, /* _truncate_arname */
+ _bfd_xcoff_write_armap, /* _write_armap */
+ _bfd_xcoff_read_ar_hdr, /* _read_ar_hdr */
+ xcoff64_openr_next_archived_file, /* _openr_next_archived_file */
+ _bfd_generic_get_elt_at_index, /* _get_elt_at_index */
+ _bfd_xcoff_generic_stat_arch_elt, /* _generic_dtat_arch_elt */
+ /* XCOFF archives do not have
+ a timestamp. */
+ bfd_true, /* _update_armap_timestamp */
+
+ /* Symbols */
+ coff_get_symtab_upper_bound, /* _get_symtab_upper_bound */
+ coff_get_symtab, /* _get_symtab */
+ coff_make_empty_symbol, /* _make_empty_symbol */
+ coff_print_symbol, /* _print_symbol */
+ coff_get_symbol_info, /* _get_symbol_info */
+ _bfd_xcoff_is_local_label_name, /* _bfd_is_local_label_name */
+ coff_get_lineno, /* _get_lineno */
+ coff_find_nearest_line, /* _find_nearest_line */
+ coff_bfd_make_debug_symbol, /* _bfd_make_debug_symbol */
+ _bfd_generic_read_minisymbols, /* _read_minisymbols */
+ _bfd_generic_minisymbol_to_symbol, /* _minsymbol_to_symbol */
+
+ /* Reloc */
+ coff_get_reloc_upper_bound, /* _get_reloc_upper_bound */
+ coff_canonicalize_reloc, /* _cononicalize_reloc */
+ xcoff64_reloc_type_lookup, /* _bfd_reloc_type_lookup */
+
+ /* Write */
+ coff_set_arch_mach, /* _set_arch_mach */
+ coff_set_section_contents, /* _set_section_contents */
+
+ /* Link */
+ xcoff64_sizeof_headers, /* _sizeof_headers */
+ /* _bfd_get_relocated_section_contents */
+ bfd_generic_get_relocated_section_contents,
+ bfd_generic_relax_section, /* _bfd_relax_section */
+ _bfd_xcoff_bfd_link_hash_table_create, /* _bfd_link_hash_table_create */
+ _bfd_xcoff_bfd_link_add_symbols, /* _bfd_link_add_symbols */
+ _bfd_xcoff_bfd_final_link, /* _bfd_filnal_link */
+ _bfd_generic_link_split_section, /* _bfd_link_split_section */
+ bfd_generic_gc_sections, /* _bfd_gc_sections */
+ bfd_generic_merge_sections, /* _bfd_merge_sections */
+
+ /* Dynamic */
+ /* _get_dynamic_symtab_upper_bound */
+ _bfd_xcoff_get_dynamic_symtab_upper_bound,
+ _bfd_xcoff_canonicalize_dynamic_symtab, /* _cononicalize_dynamic_symtab */
+ _bfd_xcoff_get_dynamic_reloc_upper_bound,/* _get_dynamic_reloc_upper_bound */
+ _bfd_xcoff_canonicalize_dynamic_reloc, /* _cononicalize_dynamic_reloc */
+
+ /* Opposite endian version, none exists */
+ NULL,
+
+ /* back end data */
+ (void *) &bfd_xcoff_backend_data,
+};
diff --git a/contrib/binutils/bfd/coffcode.h b/contrib/binutils/bfd/coffcode.h
index 0b185a5..f0a2c5e 100644
--- a/contrib/binutils/bfd/coffcode.h
+++ b/contrib/binutils/bfd/coffcode.h
@@ -1787,7 +1787,7 @@ coff_mkobject_hook (abfd, filehdr, aouthdr)
#endif
#ifdef ARM
- /* Set the flags field from the COFF header read in */
+ /* Set the flags field from the COFF header read in. */
if (! _bfd_coff_arm_set_private_flags (abfd, internal_f->f_flags))
coff->flags = 0;
#endif
@@ -1822,6 +1822,13 @@ coff_set_arch_mach_hook (abfd, filehdr)
machine = 0;
switch (internal_f->f_magic)
{
+#ifdef OR32_MAGIC_BIG
+ case OR32_MAGIC_BIG:
+ case OR32_MAGIC_LITTLE:
+ arch = bfd_arch_or32;
+ machine = 0;
+ break;
+#endif
#ifdef PPCMAGIC
case PPCMAGIC:
arch = bfd_arch_powerpc;
@@ -1864,7 +1871,12 @@ coff_set_arch_mach_hook (abfd, filehdr)
case F_ARM_3M: machine = bfd_mach_arm_3M; break;
case F_ARM_4: machine = bfd_mach_arm_4; break;
case F_ARM_4T: machine = bfd_mach_arm_4T; break;
- case F_ARM_5: machine = bfd_mach_arm_5; break;
+ /* The COFF header does not have enough bits available
+ to cover all the different ARM architectures. So
+ we interpret F_ARM_5, the highest flag value to mean
+ "the highest ARM architecture known to BFD" which is
+ currently the XScale. */
+ case F_ARM_5: machine = bfd_mach_arm_XScale; break;
}
break;
#endif
@@ -2617,7 +2629,8 @@ coff_set_flags (abfd, magicp, flagsp)
case bfd_mach_arm_4: * flagsp |= F_ARM_4; break;
case bfd_mach_arm_4T: * flagsp |= F_ARM_4T; break;
case bfd_mach_arm_5: * flagsp |= F_ARM_5; break;
- /* FIXME: we do not have F_ARM vaues greater than F_ARM_5. */
+ /* FIXME: we do not have F_ARM vaues greater than F_ARM_5.
+ See also the comment in coff_set_arch_mach_hook(). */
case bfd_mach_arm_5T: * flagsp |= F_ARM_5; break;
case bfd_mach_arm_5TE: * flagsp |= F_ARM_5; break;
case bfd_mach_arm_XScale: * flagsp |= F_ARM_5; break;
@@ -2779,6 +2792,15 @@ coff_set_flags (abfd, magicp, flagsp)
return true;
#endif
+#ifdef OR32_MAGIC_BIG
+ case bfd_arch_or32:
+ if (bfd_big_endian (abfd))
+ * magicp = OR32_MAGIC_BIG;
+ else
+ * magicp = OR32_MAGIC_LITTLE;
+ return true;
+#endif
+
default: /* Unknown architecture. */
/* Fall through to "return false" below, to avoid
"statement never reached" errors on the one below. */
@@ -3830,6 +3852,11 @@ coff_write_object_contents (abfd)
internal_a.magic = MIPS_PE_MAGIC;
#endif
+#ifdef OR32
+#define __A_MAGIC_SET__
+ internal_a.magic = NMAGIC; /* Assume separate i/d. */
+#endif
+
#ifndef __A_MAGIC_SET__
#include "Your aouthdr magic number is not being set!"
#else
diff --git a/contrib/binutils/bfd/config.bfd b/contrib/binutils/bfd/config.bfd
index 0fe7464..58c7315 100755
--- a/contrib/binutils/bfd/config.bfd
+++ b/contrib/binutils/bfd/config.bfd
@@ -43,6 +43,7 @@ m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch" ;;
m68*) targ_archs=bfd_m68k_arch ;;
m88*) targ_archs=bfd_m88k_arch ;;
mips*) targ_archs=bfd_mips_arch ;;
+or32*) targ_archs=bfd_or32_arch ;;
pdp11*) targ_archs=bfd_pdp11_arch ;;
pj*) targ_archs="bfd_pj_arch bfd_i386_arch";;
powerpc*) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
@@ -56,6 +57,7 @@ v850*) targ_archs=bfd_v850_arch ;;
x86_64) targ_archs=bfd_i386_arch ;;
xscale*) targ_archs=bfd_arm_arch ;;
z8k*) targ_archs=bfd_z8k_arch ;;
+sh*) targ_archs=bfd_sh_arch ;;
*) targ_archs=bfd_${targ_cpu}_arch ;;
esac
@@ -301,7 +303,7 @@ case "${targ}" in
targ_defvec=bfd_elf32_hppa_linux_vec
targ_selvecs=bfd_elf32_hppa_vec
;;
- hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems*)
+ hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-netbsd* | hppa*-*-sysv4* | hppa*-*-rtems*)
targ_defvec=bfd_elf32_hppa_vec
targ_selvecs=bfd_elf32_hppa_linux_vec
;;
@@ -759,6 +761,15 @@ case "${targ}" in
targ_defvec=bfd_elf32_openrisc_vec
;;
+ or32-*-coff | or32-*-rtems*)
+ targ_defvec=or32coff_big_vec
+ targ_underscore=yes
+ ;;
+
+ or32-*-elf)
+ targ_defvec=bfd_elf32_or32_big_vec
+ ;;
+
pdp11-*-*)
targ_defvec=pdp11_aout_vec
targ_underscore=yes
@@ -780,6 +791,9 @@ case "${targ}" in
case "${targ}" in
*-*-aix4.[3456789]* | *-*-aix[56789]*)
want64=true;;
+
+ *)
+ targ_cflags=-DSMALL_ARCHIVE;;
esac
;;
#ifdef BFD64
@@ -832,9 +846,20 @@ case "${targ}" in
;;
#endif
+#ifdef BFD64
+ sh64-*-elf*)
+ targ_defvec=bfd_elf32_sh64_vec
+ targ_selvecs="bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec bfd_elf32_sh_vec bfd_elf32_shl_vec"
+ targ_underscore=yes
+ ;;
+#endif /* BFD64 */
+
sh-*-linux*)
targ_defvec=bfd_elf32_shblin_vec
targ_selvecs=bfd_elf32_shlin_vec
+#ifdef BFD64
+ targ_selvecs="${targ_selvecs} bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
+#endif
;;
sh*eb-*-linux*)
targ_defvec=bfd_elf32_shblin_vec
@@ -847,6 +872,13 @@ case "${targ}" in
targ_defvec=bfd_elf32_shlnbsd_vec
targ_selvecs="bfd_elf32_shnbsd_vec shcoff_vec shlcoff_vec"
;;
+ sh-*-netbsdelf*)
+ targ_defvec=bfd_elf32_shnbsd_vec
+ targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec"
+#ifdef BFD64
+ targ_selvecs="${targ_selvecs} bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
+#endif
+ ;;
sh*-*-netbsdelf*)
targ_defvec=bfd_elf32_shnbsd_vec
targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec"
@@ -855,6 +887,9 @@ case "${targ}" in
sh-*-elf* | sh-*-rtemself*)
targ_defvec=bfd_elf32_sh_vec
targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
+#ifdef BFD64
+ targ_selvecs="${targ_selvecs} bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
+#endif
targ_underscore=yes
;;
sh-*-pe)
diff --git a/contrib/binutils/bfd/configure b/contrib/binutils/bfd/configure
index 2176f31..0dde688 100755
--- a/contrib/binutils/bfd/configure
+++ b/contrib/binutils/bfd/configure
@@ -57,6 +57,7 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
+sitefile=
srcdir=
target=NONE
verbose=
@@ -171,6 +172,7 @@ Configuration:
--help print this message
--no-create do not create output files
--quiet, --silent do not print \`checking...' messages
+ --site-file=FILE use FILE as the site file
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
@@ -341,6 +343,11 @@ EOF
-site=* | --site=* | --sit=*)
site="$ac_optarg" ;;
+ -site-file | --site-file | --site-fil | --site-fi | --site-f)
+ ac_prev=sitefile ;;
+ -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
+ sitefile="$ac_optarg" ;;
+
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
@@ -506,12 +513,16 @@ fi
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+if test -z "$sitefile"; then
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
fi
+else
+ CONFIG_SITE="$sitefile"
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
@@ -550,12 +561,12 @@ else
fi
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:554: checking for Cygwin environment" >&5
+echo "configure:565: checking for Cygwin environment" >&5
if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 559 "configure"
+#line 570 "configure"
#include "confdefs.h"
int main() {
@@ -566,7 +577,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:570: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:581: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -583,19 +594,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:587: checking for mingw32 environment" >&5
+echo "configure:598: checking for mingw32 environment" >&5
if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 592 "configure"
+#line 603 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:599: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:610: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -660,7 +671,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:664: checking host system type" >&5
+echo "configure:675: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -681,7 +692,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:685: checking target system type" >&5
+echo "configure:696: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -699,7 +710,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$target" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:703: checking build system type" >&5
+echo "configure:714: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -724,7 +735,7 @@ test "$host_alias" != "$target_alias" &&
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:728: checking for $ac_word" >&5
+echo "configure:739: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -754,7 +765,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:758: checking for $ac_word" >&5
+echo "configure:769: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -805,7 +816,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:809: checking for $ac_word" >&5
+echo "configure:820: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -837,7 +848,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:841: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:852: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -848,12 +859,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 852 "configure"
+#line 863 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -879,12 +890,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:883: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:894: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:888: checking whether we are using GNU C" >&5
+echo "configure:899: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -893,7 +904,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:897: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:908: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -912,7 +923,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:916: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:927: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -944,7 +955,7 @@ else
fi
echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:948: checking for POSIXized ISC" >&5
+echo "configure:959: checking for POSIXized ISC" >&5
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
@@ -977,7 +988,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:981: checking for a BSD compatible install" >&5
+echo "configure:992: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1030,7 +1041,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:1034: checking whether build environment is sane" >&5
+echo "configure:1045: checking whether build environment is sane" >&5
# Just in case
sleep 1
echo timestamp > conftestfile
@@ -1087,7 +1098,7 @@ test "$program_suffix" != NONE &&
test "$program_transform_name" = "" && program_transform_name="s,x,x,"
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1091: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1102: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1133,7 +1144,7 @@ EOF
missing_dir=`cd $ac_aux_dir && pwd`
echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:1137: checking for working aclocal" >&5
+echo "configure:1148: checking for working aclocal" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -1146,7 +1157,7 @@ else
fi
echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:1150: checking for working autoconf" >&5
+echo "configure:1161: checking for working autoconf" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -1159,7 +1170,7 @@ else
fi
echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:1163: checking for working automake" >&5
+echo "configure:1174: checking for working automake" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -1172,7 +1183,7 @@ else
fi
echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:1176: checking for working autoheader" >&5
+echo "configure:1187: checking for working autoheader" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -1185,7 +1196,7 @@ else
fi
echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:1189: checking for working makeinfo" >&5
+echo "configure:1200: checking for working makeinfo" >&5
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
@@ -1221,7 +1232,7 @@ fi
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1225: checking for $ac_word" >&5
+echo "configure:1236: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1253,7 +1264,7 @@ fi
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1257: checking for $ac_word" >&5
+echo "configure:1268: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1285,7 +1296,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1289: checking for $ac_word" >&5
+echo "configure:1300: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1400,7 +1411,7 @@ ac_prog=ld
if test "$GCC" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1404: checking for ld used by GCC" >&5
+echo "configure:1415: checking for ld used by GCC" >&5
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
@@ -1430,10 +1441,10 @@ echo "configure:1404: checking for ld used by GCC" >&5
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1434: checking for GNU ld" >&5
+echo "configure:1445: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1437: checking for non-GNU ld" >&5
+echo "configure:1448: checking for non-GNU ld" >&5
fi
if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1468,7 +1479,7 @@ else
fi
test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1472: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1483: checking if the linker ($LD) is GNU ld" >&5
if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1485,7 +1496,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1489: checking for $LD option to reload object files" >&5
+echo "configure:1500: checking for $LD option to reload object files" >&5
if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1497,7 +1508,7 @@ reload_flag=$lt_cv_ld_reload_flag
test -n "$reload_flag" && reload_flag=" $reload_flag"
echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1501: checking for BSD-compatible nm" >&5
+echo "configure:1512: checking for BSD-compatible nm" >&5
if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1535,7 +1546,7 @@ NM="$lt_cv_path_NM"
echo "$ac_t""$NM" 1>&6
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1539: checking whether ln -s works" >&5
+echo "configure:1550: checking whether ln -s works" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1556,7 +1567,7 @@ else
fi
echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1560: checking how to recognise dependant libraries" >&5
+echo "configure:1571: checking how to recognise dependant libraries" >&5
if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1628,9 +1639,18 @@ gnu*)
;;
hpux10.20*|hpux11*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ case $host_cpu in
+ hppa*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ esac
;;
irix5* | irix6*)
@@ -1720,13 +1740,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1724: checking for object suffix" >&5
+echo "configure:1744: checking for object suffix" >&5
if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
rm -f conftest*
echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:1730: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1750: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
for ac_file in conftest.*; do
case $ac_file in
*.c) ;;
@@ -1746,7 +1766,7 @@ ac_objext=$ac_cv_objext
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1750: checking for executable suffix" >&5
+echo "configure:1770: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1756,10 +1776,10 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:1760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:1780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
- *.c | *.o | *.obj) ;;
+ *.c | *.o | *.obj | *.ilk | *.pdb) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac
done
@@ -1783,7 +1803,7 @@ case $deplibs_check_method in
file_magic*)
if test "$file_magic_cmd" = '$MAGIC_CMD'; then
echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
-echo "configure:1787: checking for ${ac_tool_prefix}file" >&5
+echo "configure:1807: checking for ${ac_tool_prefix}file" >&5
if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1845,7 +1865,7 @@ fi
if test -z "$lt_cv_path_MAGIC_CMD"; then
if test -n "$ac_tool_prefix"; then
echo $ac_n "checking for file""... $ac_c" 1>&6
-echo "configure:1849: checking for file" >&5
+echo "configure:1869: checking for file" >&5
if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1916,7 +1936,7 @@ esac
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1920: checking for $ac_word" >&5
+echo "configure:1940: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1948,7 +1968,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1952: checking for $ac_word" >&5
+echo "configure:1972: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1983,7 +2003,7 @@ fi
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1987: checking for $ac_word" >&5
+echo "configure:2007: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2015,7 +2035,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2019: checking for $ac_word" >&5
+echo "configure:2039: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2082,8 +2102,8 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
case $host in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 2086 "configure"' > conftest.$ac_ext
- if { (eval echo configure:2087: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 2106 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:2107: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
@@ -2099,12 +2119,28 @@ case $host in
rm -rf conftest*
;;
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo configure:2126: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ case "`/usr/bin/file conftest.o`" in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2108: checking whether the C compiler needs -belf" >&5
+echo "configure:2144: checking whether the C compiler needs -belf" >&5
if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2117,14 +2153,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 2121 "configure"
+#line 2157 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_needs_belf=yes
else
@@ -2314,7 +2350,7 @@ if test -z "$target" ; then
fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:2318: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:2354: checking whether to enable maintainer-specific portions of Makefiles" >&5
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then
enableval="$enable_maintainer_mode"
@@ -2339,7 +2375,7 @@ fi
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:2343: checking for executable suffix" >&5
+echo "configure:2379: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2349,10 +2385,10 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:2353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:2389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
- *.c | *.o | *.obj) ;;
+ *.c | *.o | *.obj | *.ilk | *.pdb) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac
done
@@ -2379,7 +2415,7 @@ bfd_default_target_size=32
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2383: checking for $ac_word" >&5
+echo "configure:2419: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2409,7 +2445,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2413: checking for $ac_word" >&5
+echo "configure:2449: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2460,7 +2496,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2464: checking for $ac_word" >&5
+echo "configure:2500: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2492,7 +2528,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2496: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2532: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -2503,12 +2539,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 2507 "configure"
+#line 2543 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:2512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -2534,12 +2570,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:2538: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2574: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:2543: checking whether we are using GNU C" >&5
+echo "configure:2579: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2548,7 +2584,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2552: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2588: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -2567,7 +2603,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:2571: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2607: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2601,7 +2637,7 @@ fi
ALL_LINGUAS="fr tr ja es sv"
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2605: checking how to run the C preprocessor" >&5
+echo "configure:2641: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -2616,13 +2652,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 2620 "configure"
+#line 2656 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2626: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -2633,13 +2669,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 2637 "configure"
+#line 2673 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2643: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2679: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -2650,13 +2686,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 2654 "configure"
+#line 2690 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2696: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -2683,7 +2719,7 @@ echo "$ac_t""$CPP" 1>&6
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2687: checking for $ac_word" >&5
+echo "configure:2723: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2711,12 +2747,12 @@ else
fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2715: checking for ANSI C header files" >&5
+echo "configure:2751: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2720 "configure"
+#line 2756 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -2724,7 +2760,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2728: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2764: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2741,7 +2777,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2745 "configure"
+#line 2781 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -2759,7 +2795,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2763 "configure"
+#line 2799 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -2780,7 +2816,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 2784 "configure"
+#line 2820 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2791,7 +2827,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:2795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -2815,12 +2851,12 @@ EOF
fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:2819: checking for working const" >&5
+echo "configure:2855: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2824 "configure"
+#line 2860 "configure"
#include "confdefs.h"
int main() {
@@ -2869,7 +2905,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:2873: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2909: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -2890,21 +2926,21 @@ EOF
fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:2894: checking for inline" >&5
+echo "configure:2930: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 2901 "configure"
+#line 2937 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:2908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2944: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -2930,12 +2966,12 @@ EOF
esac
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:2934: checking for off_t" >&5
+echo "configure:2970: checking for off_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2939 "configure"
+#line 2975 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -2963,12 +2999,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:2967: checking for size_t" >&5
+echo "configure:3003: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2972 "configure"
+#line 3008 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -2998,19 +3034,19 @@ fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:3002: checking for working alloca.h" >&5
+echo "configure:3038: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3007 "configure"
+#line 3043 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:3014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -3031,12 +3067,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:3035: checking for alloca" >&5
+echo "configure:3071: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3040 "configure"
+#line 3076 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -3064,7 +3100,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:3068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3104: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -3096,12 +3132,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:3100: checking whether alloca needs Cray hooks" >&5
+echo "configure:3136: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3105 "configure"
+#line 3141 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -3126,12 +3162,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3130: checking for $ac_func" >&5
+echo "configure:3166: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3135 "configure"
+#line 3171 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3154,7 +3190,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3181,7 +3217,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:3185: checking stack direction for C alloca" >&5
+echo "configure:3221: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3189,7 +3225,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 3193 "configure"
+#line 3229 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -3208,7 +3244,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:3212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -3233,17 +3269,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3237: checking for $ac_hdr" >&5
+echo "configure:3273: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3242 "configure"
+#line 3278 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3247: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3283: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3272,12 +3308,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3276: checking for $ac_func" >&5
+echo "configure:3312: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3281 "configure"
+#line 3317 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3300,7 +3336,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3325,7 +3361,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:3329: checking for working mmap" >&5
+echo "configure:3365: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3333,7 +3369,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 3337 "configure"
+#line 3373 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -3473,7 +3509,7 @@ main()
}
EOF
-if { (eval echo configure:3477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -3501,17 +3537,17 @@ unistd.h values.h sys/param.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3505: checking for $ac_hdr" >&5
+echo "configure:3541: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3510 "configure"
+#line 3546 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3551: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3541,12 +3577,12 @@ done
__argz_count __argz_stringify __argz_next
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3545: checking for $ac_func" >&5
+echo "configure:3581: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3550 "configure"
+#line 3586 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3569,7 +3605,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3598,12 +3634,12 @@ done
for ac_func in stpcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3602: checking for $ac_func" >&5
+echo "configure:3638: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3607 "configure"
+#line 3643 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3626,7 +3662,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3660,19 +3696,19 @@ EOF
if test $ac_cv_header_locale_h = yes; then
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:3664: checking for LC_MESSAGES" >&5
+echo "configure:3700: checking for LC_MESSAGES" >&5
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3669 "configure"
+#line 3705 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
-if { (eval echo configure:3676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_val_LC_MESSAGES=yes
else
@@ -3693,7 +3729,7 @@ EOF
fi
fi
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:3697: checking whether NLS is requested" >&5
+echo "configure:3733: checking whether NLS is requested" >&5
# Check whether --enable-nls or --disable-nls was given.
if test "${enable_nls+set}" = set; then
enableval="$enable_nls"
@@ -3713,7 +3749,7 @@ fi
EOF
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:3717: checking whether included gettext is requested" >&5
+echo "configure:3753: checking whether included gettext is requested" >&5
# Check whether --with-included-gettext or --without-included-gettext was given.
if test "${with_included_gettext+set}" = set; then
withval="$with_included_gettext"
@@ -3732,17 +3768,17 @@ fi
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:3736: checking for libintl.h" >&5
+echo "configure:3772: checking for libintl.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3741 "configure"
+#line 3777 "configure"
#include "confdefs.h"
#include <libintl.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3746: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3782: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3759,19 +3795,19 @@ fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
-echo "configure:3763: checking for gettext in libc" >&5
+echo "configure:3799: checking for gettext in libc" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3768 "configure"
+#line 3804 "configure"
#include "confdefs.h"
#include <libintl.h>
int main() {
return (int) gettext ("")
; return 0; }
EOF
-if { (eval echo configure:3775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libc=yes
else
@@ -3787,7 +3823,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
if test "$gt_cv_func_gettext_libc" != "yes"; then
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
-echo "configure:3791: checking for bindtextdomain in -lintl" >&5
+echo "configure:3827: checking for bindtextdomain in -lintl" >&5
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3795,7 +3831,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3799 "configure"
+#line 3835 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3806,7 +3842,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
-if { (eval echo configure:3810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3822,19 +3858,19 @@ fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
-echo "configure:3826: checking for gettext in libintl" >&5
+echo "configure:3862: checking for gettext in libintl" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3831 "configure"
+#line 3867 "configure"
#include "confdefs.h"
int main() {
return (int) gettext ("")
; return 0; }
EOF
-if { (eval echo configure:3838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libintl=yes
else
@@ -3862,7 +3898,7 @@ EOF
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3866: checking for $ac_word" >&5
+echo "configure:3902: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3896,12 +3932,12 @@ fi
for ac_func in dcgettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3900: checking for $ac_func" >&5
+echo "configure:3936: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3905 "configure"
+#line 3941 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3924,7 +3960,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3951,7 +3987,7 @@ done
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3955: checking for $ac_word" >&5
+echo "configure:3991: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3987,7 +4023,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3991: checking for $ac_word" >&5
+echo "configure:4027: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4019,7 +4055,7 @@ else
fi
cat > conftest.$ac_ext <<EOF
-#line 4023 "configure"
+#line 4059 "configure"
#include "confdefs.h"
int main() {
@@ -4027,7 +4063,7 @@ extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr
; return 0; }
EOF
-if { (eval echo configure:4031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
CATOBJEXT=.gmo
DATADIRNAME=share
@@ -4059,7 +4095,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4063: checking for $ac_word" >&5
+echo "configure:4099: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4093,7 +4129,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4097: checking for $ac_word" >&5
+echo "configure:4133: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4129,7 +4165,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4133: checking for $ac_word" >&5
+echo "configure:4169: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4219,7 +4255,7 @@ fi
LINGUAS=
else
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:4223: checking for catalogs to be installed" >&5
+echo "configure:4259: checking for catalogs to be installed" >&5
NEW_LINGUAS=
for lang in ${LINGUAS=$ALL_LINGUAS}; do
case "$ALL_LINGUAS" in
@@ -4247,17 +4283,17 @@ echo "configure:4223: checking for catalogs to be installed" >&5
if test "$CATOBJEXT" = ".cat"; then
ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
-echo "configure:4251: checking for linux/version.h" >&5
+echo "configure:4287: checking for linux/version.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4256 "configure"
+#line 4292 "configure"
#include "confdefs.h"
#include <linux/version.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4261: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4297: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4335,7 +4371,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:4339: checking for a BSD compatible install" >&5
+echo "configure:4375: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4418,7 +4454,7 @@ if test "x$cross_compiling" = "xno"; then
EXEEXT_FOR_BUILD='$(EXEEXT)'
else
echo $ac_n "checking for build system executable suffix""... $ac_c" 1>&6
-echo "configure:4422: checking for build system executable suffix" >&5
+echo "configure:4458: checking for build system executable suffix" >&5
if eval "test \"`echo '$''{'bfd_cv_build_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4446,17 +4482,17 @@ for ac_hdr in stddef.h string.h strings.h stdlib.h time.h unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4450: checking for $ac_hdr" >&5
+echo "configure:4486: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4455 "configure"
+#line 4491 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4460: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4496: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4486,17 +4522,17 @@ for ac_hdr in fcntl.h sys/file.h sys/time.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4490: checking for $ac_hdr" >&5
+echo "configure:4526: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4495 "configure"
+#line 4531 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4500: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4536: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4523,12 +4559,12 @@ fi
done
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:4527: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:4563: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4532 "configure"
+#line 4568 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -4537,7 +4573,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:4541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4577: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@@ -4562,12 +4598,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:4566: checking for $ac_hdr that defines DIR" >&5
+echo "configure:4602: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4571 "configure"
+#line 4607 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@@ -4575,7 +4611,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
-if { (eval echo configure:4579: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4615: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@@ -4600,7 +4636,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:4604: checking for opendir in -ldir" >&5
+echo "configure:4640: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4608,7 +4644,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4612 "configure"
+#line 4648 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4619,7 +4655,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:4623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4641,7 +4677,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:4645: checking for opendir in -lx" >&5
+echo "configure:4681: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4649,7 +4685,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4653 "configure"
+#line 4689 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4660,7 +4696,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:4664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4685,12 +4721,12 @@ fi
for ac_func in fcntl getpagesize setitimer sysconf fdopen getuid getgid
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4689: checking for $ac_func" >&5
+echo "configure:4725: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4694 "configure"
+#line 4730 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4713,7 +4749,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4748,12 +4784,12 @@ EOF
esac
echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6
-echo "configure:4752: checking whether strstr must be declared" >&5
+echo "configure:4788: checking whether strstr must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4757 "configure"
+#line 4793 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -4774,7 +4810,7 @@ int main() {
char *(*pfn) = (char *(*)) strstr
; return 0; }
EOF
-if { (eval echo configure:4778: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4814: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_strstr=no
else
@@ -4795,12 +4831,12 @@ EOF
fi
echo $ac_n "checking whether malloc must be declared""... $ac_c" 1>&6
-echo "configure:4799: checking whether malloc must be declared" >&5
+echo "configure:4835: checking whether malloc must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_malloc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4804 "configure"
+#line 4840 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -4821,7 +4857,7 @@ int main() {
char *(*pfn) = (char *(*)) malloc
; return 0; }
EOF
-if { (eval echo configure:4825: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4861: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_malloc=no
else
@@ -4842,12 +4878,12 @@ EOF
fi
echo $ac_n "checking whether realloc must be declared""... $ac_c" 1>&6
-echo "configure:4846: checking whether realloc must be declared" >&5
+echo "configure:4882: checking whether realloc must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_realloc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4851 "configure"
+#line 4887 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -4868,7 +4904,7 @@ int main() {
char *(*pfn) = (char *(*)) realloc
; return 0; }
EOF
-if { (eval echo configure:4872: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_realloc=no
else
@@ -4889,12 +4925,12 @@ EOF
fi
echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6
-echo "configure:4893: checking whether free must be declared" >&5
+echo "configure:4929: checking whether free must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_free'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4898 "configure"
+#line 4934 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -4915,7 +4951,7 @@ int main() {
char *(*pfn) = (char *(*)) free
; return 0; }
EOF
-if { (eval echo configure:4919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4955: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_free=no
else
@@ -4936,12 +4972,12 @@ EOF
fi
echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6
-echo "configure:4940: checking whether getenv must be declared" >&5
+echo "configure:4976: checking whether getenv must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_getenv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4945 "configure"
+#line 4981 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -4962,7 +4998,7 @@ int main() {
char *(*pfn) = (char *(*)) getenv
; return 0; }
EOF
-if { (eval echo configure:4966: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5002: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_getenv=no
else
@@ -5023,7 +5059,7 @@ if test "${target}" = "${host}"; then
i[3456]86-*-bsdi)
COREFILE=
;;
- i[3456]86-*-bsd* | i[34567]86-*-freebsd[1234] | i[34567]86-*-freebsd[1234]\.* | i[34567]86-*-freebsd*aout*)
+ i[3456]86-*-bsd* | i[34567]86-*-freebsd[123] | i[34567]86-*-freebsd[123]\.* | i[34567]86-*-freebsd4\.[01234]* | i[34567]86-*-freebsd*aout*)
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/i386bsd.h"'
;;
@@ -5188,17 +5224,17 @@ if test "${target}" = "${host}"; then
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5192: checking for $ac_hdr" >&5
+echo "configure:5228: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5197 "configure"
+#line 5233 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5202: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5238: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -5226,12 +5262,12 @@ done
if test "$ac_cv_header_sys_procfs_h" = yes; then
echo $ac_n "checking for prstatus_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5230: checking for prstatus_t in sys/procfs.h" >&5
+echo "configure:5266: checking for prstatus_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prstatus_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5235 "configure"
+#line 5271 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5240,7 +5276,7 @@ int main() {
prstatus_t avar
; return 0; }
EOF
-if { (eval echo configure:5244: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5280: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_prstatus_t=yes
else
@@ -5262,12 +5298,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_prstatus_t" 1>&6
echo $ac_n "checking for prstatus32_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5266: checking for prstatus32_t in sys/procfs.h" >&5
+echo "configure:5302: checking for prstatus32_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prstatus32_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5271 "configure"
+#line 5307 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5276,7 +5312,7 @@ int main() {
prstatus32_t avar
; return 0; }
EOF
-if { (eval echo configure:5280: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_prstatus32_t=yes
else
@@ -5298,12 +5334,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_prstatus32_t" 1>&6
echo $ac_n "checking for prstatus_t.pr_who in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5302: checking for prstatus_t.pr_who in sys/procfs.h" >&5
+echo "configure:5338: checking for prstatus_t.pr_who in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5307 "configure"
+#line 5343 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5312,7 +5348,7 @@ int main() {
prstatus_t avar; void* aref = (void*) &avar.pr_who
; return 0; }
EOF
-if { (eval echo configure:5316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5352: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who=yes
else
@@ -5334,12 +5370,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who" 1>&6
echo $ac_n "checking for prstatus32_t.pr_who in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5338: checking for prstatus32_t.pr_who in sys/procfs.h" >&5
+echo "configure:5374: checking for prstatus32_t.pr_who in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5343 "configure"
+#line 5379 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5348,7 +5384,7 @@ int main() {
prstatus32_t avar; void* aref = (void*) &avar.pr_who
; return 0; }
EOF
-if { (eval echo configure:5352: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who=yes
else
@@ -5370,12 +5406,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who" 1>&6
echo $ac_n "checking for pstatus_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5374: checking for pstatus_t in sys/procfs.h" >&5
+echo "configure:5410: checking for pstatus_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pstatus_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5379 "configure"
+#line 5415 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5384,7 +5420,7 @@ int main() {
pstatus_t avar
; return 0; }
EOF
-if { (eval echo configure:5388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5424: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_pstatus_t=yes
else
@@ -5406,12 +5442,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_pstatus_t" 1>&6
echo $ac_n "checking for pxstatus_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5410: checking for pxstatus_t in sys/procfs.h" >&5
+echo "configure:5446: checking for pxstatus_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pxstatus_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5415 "configure"
+#line 5451 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5420,7 +5456,7 @@ int main() {
pxstatus_t avar
; return 0; }
EOF
-if { (eval echo configure:5424: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_pxstatus_t=yes
else
@@ -5442,12 +5478,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_pxstatus_t" 1>&6
echo $ac_n "checking for pstatus32_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5446: checking for pstatus32_t in sys/procfs.h" >&5
+echo "configure:5482: checking for pstatus32_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pstatus32_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5451 "configure"
+#line 5487 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5456,7 +5492,7 @@ int main() {
pstatus32_t avar
; return 0; }
EOF
-if { (eval echo configure:5460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_pstatus32_t=yes
else
@@ -5478,12 +5514,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_pstatus32_t" 1>&6
echo $ac_n "checking for prpsinfo_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5482: checking for prpsinfo_t in sys/procfs.h" >&5
+echo "configure:5518: checking for prpsinfo_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prpsinfo_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5487 "configure"
+#line 5523 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5492,7 +5528,7 @@ int main() {
prpsinfo_t avar
; return 0; }
EOF
-if { (eval echo configure:5496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5532: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_prpsinfo_t=yes
else
@@ -5514,12 +5550,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_prpsinfo_t" 1>&6
echo $ac_n "checking for prpsinfo32_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5518: checking for prpsinfo32_t in sys/procfs.h" >&5
+echo "configure:5554: checking for prpsinfo32_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prpsinfo32_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5523 "configure"
+#line 5559 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5528,7 +5564,7 @@ int main() {
prpsinfo32_t avar
; return 0; }
EOF
-if { (eval echo configure:5532: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_prpsinfo32_t=yes
else
@@ -5550,12 +5586,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_prpsinfo32_t" 1>&6
echo $ac_n "checking for psinfo_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5554: checking for psinfo_t in sys/procfs.h" >&5
+echo "configure:5590: checking for psinfo_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_psinfo_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5559 "configure"
+#line 5595 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5564,7 +5600,7 @@ int main() {
psinfo_t avar
; return 0; }
EOF
-if { (eval echo configure:5568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_psinfo_t=yes
else
@@ -5586,12 +5622,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_psinfo_t" 1>&6
echo $ac_n "checking for psinfo32_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5590: checking for psinfo32_t in sys/procfs.h" >&5
+echo "configure:5626: checking for psinfo32_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_psinfo32_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5595 "configure"
+#line 5631 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5600,7 +5636,7 @@ int main() {
psinfo32_t avar
; return 0; }
EOF
-if { (eval echo configure:5604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_psinfo32_t=yes
else
@@ -5622,12 +5658,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_psinfo32_t" 1>&6
echo $ac_n "checking for lwpstatus_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5626: checking for lwpstatus_t in sys/procfs.h" >&5
+echo "configure:5662: checking for lwpstatus_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_lwpstatus_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5631 "configure"
+#line 5667 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5636,7 +5672,7 @@ int main() {
lwpstatus_t avar
; return 0; }
EOF
-if { (eval echo configure:5640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5676: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_lwpstatus_t=yes
else
@@ -5658,12 +5694,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_lwpstatus_t" 1>&6
echo $ac_n "checking for lwpxstatus_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5662: checking for lwpxstatus_t in sys/procfs.h" >&5
+echo "configure:5698: checking for lwpxstatus_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_lwpxstatus_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5667 "configure"
+#line 5703 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5672,7 +5708,7 @@ int main() {
lwpxstatus_t avar
; return 0; }
EOF
-if { (eval echo configure:5676: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5712: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_lwpxstatus_t=yes
else
@@ -5694,12 +5730,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_lwpxstatus_t" 1>&6
echo $ac_n "checking for lwpstatus_t.pr_context in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5698: checking for lwpstatus_t.pr_context in sys/procfs.h" >&5
+echo "configure:5734: checking for lwpstatus_t.pr_context in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5703 "configure"
+#line 5739 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5708,7 +5744,7 @@ int main() {
lwpstatus_t avar; void* aref = (void*) &avar.pr_context
; return 0; }
EOF
-if { (eval echo configure:5712: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5748: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context=yes
else
@@ -5730,12 +5766,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context" 1>&6
echo $ac_n "checking for lwpstatus_t.pr_reg in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5734: checking for lwpstatus_t.pr_reg in sys/procfs.h" >&5
+echo "configure:5770: checking for lwpstatus_t.pr_reg in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5739 "configure"
+#line 5775 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5744,7 +5780,7 @@ int main() {
lwpstatus_t avar; void* aref = (void*) &avar.pr_reg
; return 0; }
EOF
-if { (eval echo configure:5748: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg=yes
else
@@ -5766,12 +5802,12 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg" 1>&6
echo $ac_n "checking for win32_pstatus_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5770: checking for win32_pstatus_t in sys/procfs.h" >&5
+echo "configure:5806: checking for win32_pstatus_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_win32_pstatus_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5775 "configure"
+#line 5811 "configure"
#include "confdefs.h"
#define _SYSCALL32
@@ -5780,7 +5816,7 @@ int main() {
win32_pstatus_t avar
; return 0; }
EOF
-if { (eval echo configure:5784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5820: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_win32_pstatus_t=yes
else
@@ -5922,6 +5958,17 @@ do
# This list is alphabetized to make it easy to compare
# with the two vector lists in targets.c. For the same reason,
# use one entry per line, even though this leads to long lines.
+ # FIXME: We include cofflink.lo not because it's needed for
+ # bfd_elf32_sh64[l]_vec, but because we include bfd_elf32_sh[l]_vec
+ # which needs it but does not list it. Should be fixed in right place.
+ bfd_elf32_sh64_vec) tb="$tb elf32-sh64.lo elf32.lo $elf cofflink.lo"
+ target_size=64 ;;
+ bfd_elf32_sh64l_vec) tb="$tb elf32-sh64.lo elf32.lo $elf cofflink.lo"
+ target_size=64 ;;
+ bfd_elf64_sh64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf"
+ target_size=64 ;;
+ bfd_elf64_sh64l_vec) tb="$tb elf64-sh64.lo elf64.lo $elf"
+ target_size=64 ;;
a29kcoff_big_vec) tb="$tb coff-a29k.lo cofflink.lo" ;;
a_out_adobe_vec) tb="$tb aout-adobe.lo aout32.lo" ;;
aout0_big_vec) tb="$tb aout0.lo aout32.lo" ;;
@@ -5980,6 +6027,7 @@ do
bfd_elf32_mn10200_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;;
bfd_elf32_mn10300_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;;
bfd_elf32_openrisc_vec) tb="$tb elf32-openrisc.lo elf32.lo $elf" ;;
+ bfd_elf32_or32_big_vec) tb="$tb elf32-or32.lo elf32.lo $elf" ;;
bfd_elf32_pj_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
bfd_elf32_pjl_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.lo elf32.lo $elf" ;;
@@ -6076,6 +6124,7 @@ do
nlm32_i386_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
nlm32_powerpc_vec) tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;;
nlm32_sparc_vec) tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;;
+ or32coff_big_vec) tb="$tb coff-or32.lo cofflink.lo" ;;
pc532machaout_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
pc532netbsd_vec) tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;;
pdp11_aout_vec) tb="$tb pdp11.lo" ;;
@@ -6185,10 +6234,10 @@ case ${host64}-${target64}-${want64} in
if test -n "$GCC" ; then
bad_64bit_gcc=no;
echo $ac_n "checking for gcc version with buggy 64-bit support""... $ac_c" 1>&6
-echo "configure:6189: checking for gcc version with buggy 64-bit support" >&5
+echo "configure:6238: checking for gcc version with buggy 64-bit support" >&5
# Add more tests for gcc versions with non-working 64-bit support here.
cat > conftest.$ac_ext <<EOF
-#line 6192 "configure"
+#line 6241 "configure"
#include "confdefs.h"
:__GNUC__:__GNUC_MINOR__:__i386__:
EOF
@@ -6233,17 +6282,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6237: checking for $ac_hdr" >&5
+echo "configure:6286: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6242 "configure"
+#line 6291 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6247: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6296: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -6272,12 +6321,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6276: checking for $ac_func" >&5
+echo "configure:6325: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6281 "configure"
+#line 6330 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6300,7 +6349,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6325,7 +6374,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:6329: checking for working mmap" >&5
+echo "configure:6378: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6333,7 +6382,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 6337 "configure"
+#line 6386 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -6473,7 +6522,7 @@ main()
}
EOF
-if { (eval echo configure:6477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -6498,12 +6547,12 @@ fi
for ac_func in madvise mprotect
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6502: checking for $ac_func" >&5
+echo "configure:6551: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6507 "configure"
+#line 6556 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6526,7 +6575,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
diff --git a/contrib/binutils/bfd/configure.in b/contrib/binutils/bfd/configure.in
index 239bde8..c2dc8d5 100644
--- a/contrib/binutils/bfd/configure.in
+++ b/contrib/binutils/bfd/configure.in
@@ -196,7 +196,7 @@ changequote([,])dnl
COREFILE=
;;
changequote(,)dnl
- i[3456]86-*-bsd* | i[34567]86-*-freebsd[1234] | i[34567]86-*-freebsd[1234]\.* | i[34567]86-*-freebsd*aout*)
+ i[3456]86-*-bsd* | i[34567]86-*-freebsd[123] | i[34567]86-*-freebsd[123]\.* | i[34567]86-*-freebsd4\.[01234]* | i[34567]86-*-freebsd*aout*)
changequote([,])dnl
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/i386bsd.h"'
@@ -515,6 +515,17 @@ do
# This list is alphabetized to make it easy to compare
# with the two vector lists in targets.c. For the same reason,
# use one entry per line, even though this leads to long lines.
+ # FIXME: We include cofflink.lo not because it's needed for
+ # bfd_elf32_sh64[l]_vec, but because we include bfd_elf32_sh[l]_vec
+ # which needs it but does not list it. Should be fixed in right place.
+ bfd_elf32_sh64_vec) tb="$tb elf32-sh64.lo elf32.lo $elf cofflink.lo"
+ target_size=64 ;;
+ bfd_elf32_sh64l_vec) tb="$tb elf32-sh64.lo elf32.lo $elf cofflink.lo"
+ target_size=64 ;;
+ bfd_elf64_sh64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf"
+ target_size=64 ;;
+ bfd_elf64_sh64l_vec) tb="$tb elf64-sh64.lo elf64.lo $elf"
+ target_size=64 ;;
a29kcoff_big_vec) tb="$tb coff-a29k.lo cofflink.lo" ;;
a_out_adobe_vec) tb="$tb aout-adobe.lo aout32.lo" ;;
aout0_big_vec) tb="$tb aout0.lo aout32.lo" ;;
@@ -573,6 +584,7 @@ do
bfd_elf32_mn10200_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;;
bfd_elf32_mn10300_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;;
bfd_elf32_openrisc_vec) tb="$tb elf32-openrisc.lo elf32.lo $elf" ;;
+ bfd_elf32_or32_big_vec) tb="$tb elf32-or32.lo elf32.lo $elf" ;;
bfd_elf32_pj_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
bfd_elf32_pjl_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.lo elf32.lo $elf" ;;
@@ -669,6 +681,7 @@ do
nlm32_i386_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
nlm32_powerpc_vec) tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;;
nlm32_sparc_vec) tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;;
+ or32coff_big_vec) tb="$tb coff-or32.lo cofflink.lo" ;;
pc532machaout_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
pc532netbsd_vec) tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;;
pdp11_aout_vec) tb="$tb pdp11.lo" ;;
diff --git a/contrib/binutils/bfd/cpu-powerpc.c b/contrib/binutils/bfd/cpu-powerpc.c
index 3e7a51c..d812618 100644
--- a/contrib/binutils/bfd/cpu-powerpc.c
+++ b/contrib/binutils/bfd/cpu-powerpc.c
@@ -1,5 +1,6 @@
/* BFD PowerPC CPU definition
- Copyright 1994, 1995, 1996, 2000, 2001 Free Software Foundation, Inc.
+ Copyright 1994, 1995, 1996, 2000, 2001, 2002
+ Free Software Foundation, Inc.
Contributed by Ian Lance Taylor, Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -47,7 +48,7 @@ powerpc_compatible (a,b)
/*NOTREACHED*/
}
-static const bfd_arch_info_type arch_info_struct[] =
+const bfd_arch_info_type bfd_powerpc_archs[] =
{
{
32, /* 32 bits in a word */
@@ -61,7 +62,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[1]
+ &bfd_powerpc_archs[1]
},
{
32, /* 32 bits in a word */
@@ -75,7 +76,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[2]
+ &bfd_powerpc_archs[2]
},
{
32, /* 32 bits in a word */
@@ -89,7 +90,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[3]
+ &bfd_powerpc_archs[3]
},
{
32, /* 32 bits in a word */
@@ -103,7 +104,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[4]
+ &bfd_powerpc_archs[4]
},
{
32, /* 32 bits in a word */
@@ -117,7 +118,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[5]
+ &bfd_powerpc_archs[5]
},
{
64, /* 64 bits in a word */
@@ -128,10 +129,10 @@ static const bfd_arch_info_type arch_info_struct[] =
"powerpc",
"powerpc:620",
3,
- BFD_DEFAULT_TARGET_SIZE == 64, /* default for 64 bit target */
+ false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[6]
+ &bfd_powerpc_archs[6]
},
{
64, /* 64 bits in a word */
@@ -145,7 +146,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[7]
+ &bfd_powerpc_archs[7]
},
{
64, /* 64 bits in a word */
@@ -159,7 +160,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[8]
+ &bfd_powerpc_archs[8]
},
{
64, /* 64 bits in a word */
@@ -173,7 +174,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[9]
+ &bfd_powerpc_archs[9]
},
{
64, /* 64 bits in a word */
@@ -187,7 +188,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[10]
+ &bfd_powerpc_archs[10]
},
{
32, /* 32 bits in a word */
@@ -201,7 +202,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[11]
+ &bfd_powerpc_archs[11]
},
{
32, /* 32 bits in a word */
@@ -215,11 +216,22 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- 0
- }
-};
-
-const bfd_arch_info_type bfd_powerpc_arch =
+ &bfd_powerpc_archs[12]
+ },
+ {
+ 64, /* 64 bits in a word */
+ 64, /* 64 bits in an address */
+ 8, /* 8 bits in a byte */
+ bfd_arch_powerpc,
+ bfd_mach_ppc64,
+ "powerpc",
+ "powerpc:common64",
+ 3,
+ BFD_DEFAULT_TARGET_SIZE == 64, /* default for 64 bit target */
+ powerpc_compatible,
+ bfd_default_scan,
+ &bfd_powerpc_archs[13]
+ },
{
32, /* 32 bits in a word */
32, /* 32 bits in an address */
@@ -232,5 +244,6 @@ const bfd_arch_info_type bfd_powerpc_arch =
BFD_DEFAULT_TARGET_SIZE != 64, /* default for 32 bit target */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[0]
- };
+ 0
+ }
+};
diff --git a/contrib/binutils/bfd/doc/ChangeLog b/contrib/binutils/bfd/doc/ChangeLog
index 2f3db6f..3ddeee9 100644
--- a/contrib/binutils/bfd/doc/ChangeLog
+++ b/contrib/binutils/bfd/doc/ChangeLog
@@ -1,9 +1,26 @@
+2002-02-01 Alan Modra <amodra@bigpond.net.au>
+
+ * chew.c (WORD): Eliminate.
+
+2002-01-31 Ivan Guzvinec <ivang@opencores.org>
+
+ * Makefile.in: Regenerate.
+
+2002-01-31 Alan Modra <amodra@bigpond.net.au>
+
+ * chew.c (courierize): Don't modify @command params.
+
+2002-01-30 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * proto.str (ENUMDOC): Place two spaces between the end of
+ the text and the closing comment marker.
+
2001-10-30 Hans-Peter Nilsson <hp@bitrange.com>
- * doc/bfdint.texi (BFD target vector miscellaneous): Add
+ * bfdint.texi (BFD target vector miscellaneous): Add
bfd_target_mmo_flavour.
- * doc/bfd.texinfo (BFD back ends): Add entry for mmo.
- * doc/Makefile.am (DOCFILES): Add mmo.texi.
+ * bfd.texinfo (BFD back ends): Add entry for mmo.
+ * Makefile.am (DOCFILES): Add mmo.texi.
(SRCDOC): Add mmo.c.
(s-mmo, mmo.texi): New rules.
@@ -16,6 +33,11 @@
* bfd.texinfo: Change footer to refer to FSF. Change subtitle
to refer to original creation date.
+2002-01-26 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * Makefile.am (install): Depend on install-info.
+ * Makefile.in: Regenerate.
+
2001-10-03 Alan Modra <amodra@bigpond.net.au>
* Makefile.am (BFD_H_DEP): Add ../version.h.
@@ -179,7 +201,7 @@ Tue Jul 22 14:44:00 1997 Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE
* Makefile.in: Change stamp-* files to s-* files. Use bfdt.texi
rather than bfd.texi.
- (DOCFILES): Change bfd.texi to bfdt.texi.
+ (DOCFILES): Change bfd.texi to bfdt.texi.
* bfd.texinfo: Include bfdt.texi, not bfd.texi.
Mon Jun 16 15:33:15 1997 Ian Lance Taylor <ian@cygnus.com>
@@ -222,7 +244,7 @@ Tue Jan 30 14:10:46 1996 Ian Lance Taylor <ian@cygnus.com>
Fri Nov 3 14:46:48 1995 Fred Fish <fnf@cygnus.com>
- * Makefile.in (SRCDOC, SRCPROT, core.texi, bfd.h): Use corefile.c,
+ * Makefile.in (SRCDOC, SRCPROT, core.texi, bfd.h): Use corefile.c,
renamed from core.c.
Wed Nov 1 14:28:23 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de>
@@ -342,7 +364,7 @@ Thu Jun 24 13:48:13 1993 David J. Mackenzie (djm@thepub.cygnus.com)
Mon Jun 14 12:07:07 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com)
- * Makefile.in (install-info): remove parentdir cruft,
+ * Makefile.in (install-info): remove parentdir cruft,
Wed Jun 9 16:00:32 1993 Jim Kingdon (kingdon@cygnus.com)
@@ -405,7 +427,7 @@ Thu Nov 5 03:13:55 1992 John Gilmore (gnu@cygnus.com)
Cleanup: Replace all uses of EXFUN in the BFD sources, with PARAMS.
- * chew.c (exfunstuff): Eliminate.
+ * chew.c (exfunstuff): Eliminate.
(paramstuff): Replace exfunstuff with function to generate PARAMS.
* proto.str: Use paramstuff rather than exfunstuff.
@@ -420,7 +442,7 @@ Fri Jun 19 18:59:54 1992 John Gilmore (gnu at cygnus.com)
Mon May 11 18:55:59 1992 John Gilmore (gnu at cygnus.com)
* chew.c: exit() should be declared by config files, not by
- portable source code. Its type could be int or void function.
+ portable source code. Its type could be int or void function.
Mon May 4 13:45:57 1992 K. Richard Pixley (rich@rtl.cygnus.com)
diff --git a/contrib/binutils/bfd/doc/Makefile.am b/contrib/binutils/bfd/doc/Makefile.am
index 075c9f3..cbfd342 100644
--- a/contrib/binutils/bfd/doc/Makefile.am
+++ b/contrib/binutils/bfd/doc/Makefile.am
@@ -272,3 +272,7 @@ CLEANFILES = s-* *.p *.ip
DISTCLEANFILES = bfd.?? bfd.??? bfd.h libbfd.h libcoff.h texput.log
MAINTAINERCLEANFILES = $(DOCFILES)
+
+# We want install to imply install-info as per GNU standards, despite the
+# cygnus option.
+install: install-info
diff --git a/contrib/binutils/bfd/doc/Makefile.in b/contrib/binutils/bfd/doc/Makefile.in
index dc85d4b..e0ce81f 100644
--- a/contrib/binutils/bfd/doc/Makefile.in
+++ b/contrib/binutils/bfd/doc/Makefile.in
@@ -116,6 +116,7 @@ WIN32LIBADD = @WIN32LIBADD@
all_backends = @all_backends@
bfd_backends = @bfd_backends@
bfd_default_target_size = @bfd_default_target_size@
+bfd_libs = @bfd_libs@
bfd_machines = @bfd_machines@
bfd_version = @bfd_version@
bfd_version_date = @bfd_version_date@
@@ -631,6 +632,10 @@ bfd.h: $(BFD_H_DEP)
echo "#endif" >> $@
echo "#endif" >> $@
+# We want install to imply install-info as per GNU standards, despite the
+# cygnus option.
+install: install-info
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/contrib/binutils/bfd/doc/chew.c b/contrib/binutils/bfd/doc/chew.c
index 843e441..11554eb 100644
--- a/contrib/binutils/bfd/doc/chew.c
+++ b/contrib/binutils/bfd/doc/chew.c
@@ -1,5 +1,6 @@
/* chew
- Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001,
+ 2002
Free Software Foundation, Inc.
Contributed by steve chamberlain @cygnus
@@ -289,8 +290,6 @@ struct dict_struct
typedef struct dict_struct dict_type;
-#define WORD(x) static void x()
-
static void
die (msg)
char *msg;
@@ -362,7 +361,8 @@ exec (word)
(*pc) ();
}
-WORD (call)
+static void
+call ()
{
stinst_type *oldpc = pc;
dict_type *e;
@@ -371,7 +371,8 @@ WORD (call)
pc = oldpc + 2;
}
-WORD (remchar)
+static void
+remchar ()
{
if (tos->write_idx)
tos->write_idx--;
@@ -388,7 +389,8 @@ strip_trailing_newlines ()
pc++;
}
-WORD (push_number)
+static void
+push_number ()
{
isp++;
icheck_range ();
@@ -397,7 +399,8 @@ WORD (push_number)
pc++;
}
-WORD (push_text)
+static void
+push_text ()
{
tos++;
check_range ();
@@ -551,7 +554,8 @@ paramstuff (void)
/* turn {*
and *} into comments */
-WORD (translatecomments)
+static void
+translatecomments ()
{
unsigned int idx = 0;
string_type out;
@@ -587,7 +591,8 @@ WORD (translatecomments)
/* turn everything not starting with a . into a comment */
-WORD (manglecomments)
+static void
+manglecomments ()
{
unsigned int idx = 0;
string_type out;
@@ -665,7 +670,8 @@ outputdots (void)
}
/* Find lines starting with . and | and put example around them on tos */
-WORD (courierize)
+static void
+courierize ()
{
string_type out;
unsigned int idx = 0;
@@ -686,37 +692,47 @@ WORD (courierize)
while (at (tos, idx) && at (tos, idx) != '\n')
{
- if (at (tos, idx) == '{' && at (tos, idx + 1) == '*')
+ if (command > 1)
+ {
+ /* We are inside {} parameters of some command;
+ Just pass through until matching brace. */
+ if (at (tos, idx) == '{')
+ ++command;
+ else if (at (tos, idx) == '}')
+ --command;
+ }
+ else if (command != 0)
+ {
+ if (at (tos, idx) == '{')
+ ++command;
+ else if (!islower ((unsigned char) at (tos, idx)))
+ --command;
+ }
+ else if (at (tos, idx) == '@'
+ && islower ((unsigned char) at (tos, idx + 1)))
+ {
+ ++command;
+ }
+ else if (at (tos, idx) == '{' && at (tos, idx + 1) == '*')
{
cattext (&out, "/*");
idx += 2;
+ continue;
}
else if (at (tos, idx) == '*' && at (tos, idx + 1) == '}')
{
cattext (&out, "*/");
idx += 2;
+ continue;
}
- else if (at (tos, idx) == '{' && !command)
+ else if (at (tos, idx) == '{'
+ || at (tos, idx) == '}')
{
- cattext (&out, "@{");
- idx++;
- }
- else if (at (tos, idx) == '}' && !command)
- {
- cattext (&out, "@}");
- idx++;
- }
- else
- {
- if (at (tos, idx) == '@')
- command = 1;
- else if (isspace ((unsigned char) at (tos, idx))
- || at (tos, idx) == '}')
- command = 0;
- catchar (&out, at (tos, idx));
- idx++;
+ catchar (&out, '@');
}
+ catchar (&out, at (tos, idx));
+ idx++;
}
catchar (&out, '\n');
}
@@ -741,7 +757,8 @@ WORD (courierize)
on @itemize @bullet, and @items each of them. Then ends with @end
itemize, inplace at TOS*/
-WORD (bulletize)
+static void
+bulletize ()
{
unsigned int idx = 0;
int on = 0;
@@ -795,7 +812,8 @@ WORD (bulletize)
/* Turn <<foo>> into @code{foo} in place at TOS*/
-WORD (do_fancy_stuff)
+static void
+do_fancy_stuff ()
{
unsigned int idx = 0;
string_type out;
@@ -891,7 +909,8 @@ copy_past_newline (ptr, idx, dst)
}
-WORD (icopy_past_newline)
+static void
+icopy_past_newline ()
{
tos++;
check_range ();
@@ -903,7 +922,8 @@ WORD (icopy_past_newline)
/* indent
Take the string at the top of the stack, do some prettying. */
-WORD (kill_bogus_lines)
+static void
+kill_bogus_lines ()
{
int sl;
@@ -989,7 +1009,8 @@ WORD (kill_bogus_lines)
}
-WORD (indent)
+static void
+indent ()
{
string_type out;
int tab = 0;
@@ -1039,7 +1060,8 @@ WORD (indent)
}
-WORD (get_stuff_in_command)
+static void
+get_stuff_in_command ()
{
tos++;
check_range ();
@@ -1054,7 +1076,8 @@ WORD (get_stuff_in_command)
pc++;
}
-WORD (swap)
+static void
+swap ()
{
string_type t;
@@ -1064,7 +1087,8 @@ WORD (swap)
pc++;
}
-WORD (other_dup)
+static void
+other_dup ()
{
tos++;
check_range ();
@@ -1073,21 +1097,24 @@ WORD (other_dup)
pc++;
}
-WORD (drop)
+static void
+drop ()
{
tos--;
check_range ();
pc++;
}
-WORD (idrop)
+static void
+idrop ()
{
isp--;
icheck_range ();
pc++;
}
-WORD (icatstr)
+static void
+icatstr ()
{
tos--;
check_range ();
@@ -1096,7 +1123,8 @@ WORD (icatstr)
pc++;
}
-WORD (skip_past_newline)
+static void
+skip_past_newline ()
{
while (at (ptr, idx)
&& at (ptr, idx) != '\n')
@@ -1105,7 +1133,8 @@ WORD (skip_past_newline)
pc++;
}
-WORD (internalmode)
+static void
+internalmode ()
{
internal_mode = *(isp);
isp--;
@@ -1113,7 +1142,8 @@ WORD (internalmode)
pc++;
}
-WORD (maybecatstr)
+static void
+maybecatstr ()
{
if (internal_wanted == internal_mode)
{
@@ -1390,19 +1420,22 @@ bang (void)
pc++;
}
-WORD (atsign)
+static void
+atsign ()
{
isp[0] = *(long *) (isp[0]);
pc++;
}
-WORD (hello)
+static void
+hello ()
{
printf ("hello\n");
pc++;
}
-WORD (stdout_)
+static void
+stdout_ ()
{
isp++;
icheck_range ();
@@ -1410,7 +1443,8 @@ WORD (stdout_)
pc++;
}
-WORD (stderr_)
+static void
+stderr_ ()
{
isp++;
icheck_range ();
@@ -1418,7 +1452,8 @@ WORD (stderr_)
pc++;
}
-WORD (print)
+static void
+print ()
{
if (*isp == 1)
write_buffer (tos, stdout);
diff --git a/contrib/binutils/bfd/doc/proto.str b/contrib/binutils/bfd/doc/proto.str
index 8431c16..702d9f5 100644
--- a/contrib/binutils/bfd/doc/proto.str
+++ b/contrib/binutils/bfd/doc/proto.str
@@ -114,7 +114,7 @@
skip_past_newline
get_stuff_in_command
strip_trailing_newlines
- "\n{* " swap catstr " *}\n" catstr
+ "\n{* " swap catstr " *}\n" catstr
translatecomments
- discard it if we're doing internal mode
"" swap 0 internalmode maybecatstr
diff --git a/contrib/binutils/bfd/dwarf2.c b/contrib/binutils/bfd/dwarf2.c
index 6398d4e..550f005 100644
--- a/contrib/binutils/bfd/dwarf2.c
+++ b/contrib/binutils/bfd/dwarf2.c
@@ -1,5 +1,5 @@
/* DWARF 2 support.
- Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+ Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
Adapted from gdb/dwarf2read.c by Gavin Koch of Cygnus Solutions
@@ -396,7 +396,7 @@ read_indirect_string (unit, buf, bytes_read_ptr)
if (offset >= stash->dwarf_str_size)
{
(*_bfd_error_handler) (_("Dwarf Error: DW_FORM_strp offset (%u) greater than or equal to .debug_str size (%u)."),
- offset, stash->dwarf_str_size );
+ offset, stash->dwarf_str_size);
bfd_set_error (bfd_error_bad_value);
return NULL;
}
@@ -556,8 +556,8 @@ read_abbrevs (abfd, offset, stash)
if (offset >= stash->dwarf_abbrev_size)
{
- (*_bfd_error_handler) (_("Dwarf Error: Abbrev offset (%u) greater than or equal to abbrev size (%u)."),
- offset, stash->dwarf_abbrev_size );
+ (*_bfd_error_handler) (_("Dwarf Error: Abbrev offset (%u) greater than or equal to .debug_abbrev size (%u)."),
+ offset, stash->dwarf_abbrev_size);
bfd_set_error (bfd_error_bad_value);
return 0;
}
@@ -949,7 +949,7 @@ decode_line_info (unit, stash)
below. */
if (unit->line_offset >= stash->dwarf_line_size)
{
- (*_bfd_error_handler) (_("Dwarf Error: Line offset (%u) greater than or equal to line size (%u)."),
+ (*_bfd_error_handler) (_("Dwarf Error: Line offset (%u) greater than or equal to .debug_line size (%u)."),
unit->line_offset, stash->dwarf_line_size);
bfd_set_error (bfd_error_bad_value);
return 0;
@@ -1456,16 +1456,13 @@ parse_comp_unit (abfd, stash, unit_length, offset_size)
unsigned int offset_size;
{
struct comp_unit* unit;
-
unsigned short version;
unsigned int abbrev_offset = 0;
unsigned char addr_size;
struct abbrev_info** abbrevs;
-
unsigned int abbrev_number, bytes_read, i;
struct abbrev_info *abbrev;
struct attribute attr;
-
char *info_ptr = stash->info_ptr;
char *end_ptr = info_ptr + unit_length;
bfd_size_type amt;
@@ -1490,7 +1487,7 @@ parse_comp_unit (abfd, stash, unit_length, offset_size)
if (version != 2)
{
- (*_bfd_error_handler) (_("Dwarf Error: found dwarf version '%hu', this reader only handles version 2 information."), version );
+ (*_bfd_error_handler) (_("Dwarf Error: found dwarf version '%hu', this reader only handles version 2 information."), version);
bfd_set_error (bfd_error_bad_value);
return 0;
}
@@ -1506,7 +1503,7 @@ parse_comp_unit (abfd, stash, unit_length, offset_size)
if (addr_size != 2 && addr_size != 4 && addr_size != 8)
{
- (*_bfd_error_handler) ("Dwarf Error: found address size '%u', this reader can only handle address sizes '2', '4' and '8'.", addr_size );
+ (*_bfd_error_handler) ("Dwarf Error: found address size '%u', this reader can only handle address sizes '2', '4' and '8'.", addr_size);
bfd_set_error (bfd_error_bad_value);
return 0;
}
diff --git a/contrib/binutils/bfd/elf-eh-frame.c b/contrib/binutils/bfd/elf-eh-frame.c
index b479c00..20cbfb2 100644
--- a/contrib/binutils/bfd/elf-eh-frame.c
+++ b/contrib/binutils/bfd/elf-eh-frame.c
@@ -586,16 +586,12 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec, ehdrsec,
}
/* For shared libraries, try to get rid of as many RELATIVE relocs
- as possible.
- FIXME: For this to work, ELF backends need to perform the
- relocation if omitting dynamic relocs, not skip it. */
- if (0
- && info->shared
+ as possible. */
+ if (info->shared
&& (cie.fde_encoding & 0xf0) == DW_EH_PE_absptr)
cie.make_relative = 1;
- if (0
- && info->shared
+ if (info->shared
&& (cie.lsda_encoding & 0xf0) == DW_EH_PE_absptr)
cie.make_lsda_relative = 1;
@@ -636,6 +632,16 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec, ehdrsec,
}
else
{
+ if (info->shared
+ && (cie.fde_encoding & 0xf0) == DW_EH_PE_absptr
+ && cie.make_relative == 0)
+ {
+ /* If shared library uses absolute pointers
+ which we cannot turn into PC relative,
+ don't create the binary search table,
+ since it is affected by runtime relocations. */
+ hdr_info->table = false;
+ }
cie_usage_count++;
hdr_info->fde_count++;
}
@@ -856,7 +862,7 @@ _bfd_elf_eh_frame_section_offset (output_bfd, sec, offset)
if (sec_info->entry[mid].make_relative
&& ! sec_info->entry[mid].cie
&& offset == sec_info->entry[mid].offset + 8)
- return (bfd_vma) -1;
+ return (bfd_vma) -2;
/* If converting LSDA pointers to DW_EH_PE_pcrel, there will be no need
for run-time relocation against LSDA field. */
@@ -865,7 +871,7 @@ _bfd_elf_eh_frame_section_offset (output_bfd, sec, offset)
&& (offset
== (sec_info->entry[mid].offset + 8
+ sec_info->entry[mid].lsda_offset)))
- return (bfd_vma) -1;
+ return (bfd_vma) -2;
return (offset + sec_info->entry[mid].new_offset
- sec_info->entry[mid].offset);
diff --git a/contrib/binutils/bfd/elf.c b/contrib/binutils/bfd/elf.c
index 29c08d7..8c6da10 100644
--- a/contrib/binutils/bfd/elf.c
+++ b/contrib/binutils/bfd/elf.c
@@ -2,25 +2,24 @@
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
-This file is part of BFD, the Binary File Descriptor library.
+ This file is part of BFD, the Binary File Descriptor library.
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-/*
-
-SECTION
+/* SECTION
+
ELF backends
BFD support for ELF formats is being worked on.
@@ -29,8 +28,7 @@ SECTION
Documentation of the internals of the support code still needs
to be written. The code is changing quickly enough that we
- haven't bothered yet.
- */
+ haven't bothered yet. */
/* For sparc64-cross-sparc32. */
#define _SYSCALL32
@@ -2216,7 +2214,8 @@ elf_fake_sections (abfd, asect, failedptrarg)
this_hdr->sh_entsize = 4;
}
else if ((asect->flags & SEC_ALLOC) != 0
- && ((asect->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0))
+ && (((asect->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
+ || (asect->flags & SEC_NEVER_LOAD) != 0))
this_hdr->sh_type = SHT_NOBITS;
else
this_hdr->sh_type = SHT_PROGBITS;
@@ -4150,7 +4149,7 @@ _bfd_elf_symbol_from_bfd_symbol (abfd, asym_ptr_ptr)
#if DEBUG & 4
{
fprintf (stderr,
- _("elf_symbol_from_bfd_symbol 0x%.8lx, name = %s, sym num = %d, flags = 0x%.8lx%s\n"),
+ "elf_symbol_from_bfd_symbol 0x%.8lx, name = %s, sym num = %d, flags = 0x%.8lx%s\n",
(long) asym_ptr, asym_ptr->name, idx, flags,
elf_symbol_flags (flags));
fflush (stderr);
diff --git a/contrib/binutils/bfd/elf32-arm.h b/contrib/binutils/bfd/elf32-arm.h
index ab8a6b3..a452465e 100644
--- a/contrib/binutils/bfd/elf32-arm.h
+++ b/contrib/binutils/bfd/elf32-arm.h
@@ -1148,26 +1148,24 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
}
skip = false;
+ relocate = false;
outrel.r_offset =
_bfd_elf_section_offset (output_bfd, info, input_section,
rel->r_offset);
if (outrel.r_offset == (bfd_vma) -1)
skip = true;
+ else if (outrel.r_offset == (bfd_vma) -2)
+ skip = true, relocate = true;
outrel.r_offset += (input_section->output_section->vma
+ input_section->output_offset);
if (skip)
- {
- memset (&outrel, 0, sizeof outrel);
- relocate = false;
- }
+ memset (&outrel, 0, sizeof outrel);
else if (r_type == R_ARM_PC24)
{
BFD_ASSERT (h != NULL && h->dynindx != -1);
- if ((input_section->flags & SEC_ALLOC) != 0)
- relocate = false;
- else
+ if ((input_section->flags & SEC_ALLOC) == 0)
relocate = true;
outrel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_PC24);
}
@@ -1184,9 +1182,7 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
else
{
BFD_ASSERT (h->dynindx != -1);
- if ((input_section->flags & SEC_ALLOC) != 0)
- relocate = false;
- else
+ if ((input_section->flags & SEC_ALLOC) == 0)
relocate = true;
outrel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_ABS32);
}
@@ -2112,11 +2108,11 @@ elf32_arm_set_private_flags (abfd, flags)
{
if (flags & EF_ARM_INTERWORK)
(*_bfd_error_handler) (_("\
-Warning: Not setting interwork flag of %s since it has already been specified as non-interworking"),
+Warning: Not setting interworking flag of %s since it has already been specified as non-interworking"),
bfd_archive_filename (abfd));
else
_bfd_error_handler (_("\
-Warning: Clearing the interwork flag of %s due to outside request"),
+Warning: Clearing the interworking flag of %s due to outside request"),
bfd_archive_filename (abfd));
}
}
@@ -2164,7 +2160,7 @@ elf32_arm_copy_private_bfd_data (ibfd, obfd)
{
if (out_flags & EF_ARM_INTERWORK)
_bfd_error_handler (_("\
-Warning: Clearing the interwork flag in %s because non-interworking code in %s has been linked with it"),
+Warning: Clearing the interworking flag of %s because non-interworking code in %s has been linked with it"),
bfd_get_filename (obfd),
bfd_archive_filename (ibfd));
@@ -2259,7 +2255,7 @@ elf32_arm_merge_private_bfd_data (ibfd, obfd)
if (EF_ARM_EABI_VERSION (in_flags) != EF_ARM_EABI_VERSION (out_flags))
{
_bfd_error_handler (_("\
-Error: %s compiled for EABI version %d, whereas %s is compiled for version %d"),
+ERROR: %s is compiled for EABI version %d, whereas %s is compiled for version %d"),
bfd_archive_filename (ibfd),
(in_flags & EF_ARM_EABIMASK) >> 24,
bfd_get_filename (obfd),
@@ -2273,7 +2269,7 @@ Error: %s compiled for EABI version %d, whereas %s is compiled for version %d"),
if ((in_flags & EF_ARM_APCS_26) != (out_flags & EF_ARM_APCS_26))
{
_bfd_error_handler (_("\
-Error: %s compiled for APCS-%d, whereas %s is compiled for APCS-%d"),
+ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d"),
bfd_archive_filename (ibfd),
in_flags & EF_ARM_APCS_26 ? 26 : 32,
bfd_get_filename (obfd),
@@ -2285,12 +2281,12 @@ Error: %s compiled for APCS-%d, whereas %s is compiled for APCS-%d"),
{
if (in_flags & EF_ARM_APCS_FLOAT)
_bfd_error_handler (_("\
-Error: %s passes floats in FP registers, whereas %s passes them in integer registers"),
+ERROR: %s passes floats in float registers, whereas %s passes them in integer registers"),
bfd_archive_filename (ibfd),
bfd_get_filename (obfd));
else
_bfd_error_handler (_("\
-Error: %s passes floats in integer registers, whereas %s passes them in FP registers"),
+ERROR: %s passes floats in integer registers, whereas %s passes them in float registers"),
bfd_archive_filename (ibfd),
bfd_get_filename (obfd));
@@ -2301,12 +2297,12 @@ Error: %s passes floats in integer registers, whereas %s passes them in FP regis
{
if (in_flags & EF_ARM_VFP_FLOAT)
_bfd_error_handler (_("\
-Error: %s uses VFP instructions, whereas %s FPA instructions"),
+ERROR: %s uses VFP instructions, whereas %s uses FPA instructions"),
bfd_archive_filename (ibfd),
bfd_get_filename (obfd));
else
_bfd_error_handler (_("\
-Error: %s uses FPA instructions, whereas %s VFP instructions"),
+ERROR: %s uses FPA instructions, whereas %s uses VFP instructions"),
bfd_archive_filename (ibfd),
bfd_get_filename (obfd));
@@ -2325,13 +2321,13 @@ Error: %s uses FPA instructions, whereas %s VFP instructions"),
|| (in_flags & EF_ARM_VFP_FLOAT) == 0)
{
if (in_flags & EF_ARM_SOFT_FLOAT)
- _bfd_error_handler (_ ("\
-Error: %s uses software FP, whereas %s uses hardware FP"),
+ _bfd_error_handler (_("\
+ERROR: %s uses software FP, whereas %s uses hardware FP"),
bfd_archive_filename (ibfd),
bfd_get_filename (obfd));
else
- _bfd_error_handler (_ ("\
-Error: %s uses hardware FP, whereas %s uses software FP"),
+ _bfd_error_handler (_("\
+ERROR: %s uses hardware FP, whereas %s uses software FP"),
bfd_archive_filename (ibfd),
bfd_get_filename (obfd));
@@ -2395,9 +2391,9 @@ elf32_arm_print_private_bfd_data (abfd, ptr)
fprintf (file, _(" [interworking enabled]"));
if (flags & EF_ARM_APCS_26)
- fprintf (file, _(" [APCS-26]"));
+ fprintf (file, " [APCS-26]");
else
- fprintf (file, _(" [APCS-32]"));
+ fprintf (file, " [APCS-32]");
if (flags & EF_ARM_VFP_FLOAT)
fprintf (file, _(" [VFP float format]"));
diff --git a/contrib/binutils/bfd/elf32-i386.c b/contrib/binutils/bfd/elf32-i386.c
index 236e167..7e6588c 100644
--- a/contrib/binutils/bfd/elf32-i386.c
+++ b/contrib/binutils/bfd/elf32-i386.c
@@ -1108,7 +1108,9 @@ elf_i386_adjust_dynamic_symbol (info, h)
if (h->plt.refcount <= 0
|| (! info->shared
&& (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0
- && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0))
+ && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0
+ && h->root.type != bfd_link_hash_undefweak
+ && h->root.type != bfd_link_hash_undefined))
{
/* This case can occur if we saw a PLT32 reloc in an input
file, but the symbol was never referred to by a dynamic
@@ -1498,10 +1500,12 @@ elf_i386_size_dynamic_sections (output_bfd, info)
linker script /DISCARD/, so we'll be discarding
the relocs too. */
}
- else
+ else if (p->count != 0)
{
srel = elf_section_data (p->sec)->sreloc;
srel->_raw_size += p->count * sizeof (Elf32_External_Rel);
+ if ((p->sec->output_section->flags & SEC_READONLY) != 0)
+ info->flags |= DF_TEXTREL;
}
}
}
@@ -1623,7 +1627,9 @@ elf_i386_size_dynamic_sections (output_bfd, info)
/* If any dynamic relocs apply to a read-only section,
then we need a DT_TEXTREL entry. */
- elf_link_hash_traverse (&htab->elf, readonly_dynrelocs, (PTR) info);
+ if ((info->flags & DF_TEXTREL) == 0)
+ elf_link_hash_traverse (&htab->elf, readonly_dynrelocs,
+ (PTR) info);
if ((info->flags & DF_TEXTREL) != 0)
{
@@ -2000,20 +2006,20 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
time. */
skip = false;
+ relocate = false;
outrel.r_offset =
_bfd_elf_section_offset (output_bfd, info, input_section,
rel->r_offset);
if (outrel.r_offset == (bfd_vma) -1)
skip = true;
+ else if (outrel.r_offset == (bfd_vma) -2)
+ skip = true, relocate = true;
outrel.r_offset += (input_section->output_section->vma
+ input_section->output_offset);
if (skip)
- {
- memset (&outrel, 0, sizeof outrel);
- relocate = false;
- }
+ memset (&outrel, 0, sizeof outrel);
else if (h != NULL
&& h->dynindx != -1
&& (r_type == R_386_PC32
@@ -2021,11 +2027,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
|| !info->symbolic
|| (h->elf_link_hash_flags
& ELF_LINK_HASH_DEF_REGULAR) == 0))
-
- {
- relocate = false;
- outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
- }
+ outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
else
{
/* This symbol is local, or marked to become local. */
diff --git a/contrib/binutils/bfd/elf32-ppc.c b/contrib/binutils/bfd/elf32-ppc.c
index 4c9ff82..be6cfab 100644
--- a/contrib/binutils/bfd/elf32-ppc.c
+++ b/contrib/binutils/bfd/elf32-ppc.c
@@ -3152,7 +3152,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
if (info->shared && r_symndx != 0)
{
Elf_Internal_Rela outrel;
- boolean skip;
+ int skip;
#ifdef DEBUG
fprintf (stderr, "ppc_elf_relocate_section need to create relocation for %s\n",
@@ -3183,13 +3183,14 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
BFD_ASSERT (sreloc != NULL);
}
- skip = false;
+ skip = 0;
outrel.r_offset =
_bfd_elf_section_offset (output_bfd, info, input_section,
rel->r_offset);
- if (outrel.r_offset == (bfd_vma) -1)
- skip = true;
+ if (outrel.r_offset == (bfd_vma) -1
+ || outrel.r_offset == (bfd_vma) -2)
+ skip = (int) outrel.r_offset;
outrel.r_offset += (input_section->output_section->vma
+ input_section->output_offset);
@@ -3260,7 +3261,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
/* This reloc will be computed at runtime, so there's no
need to do anything now, unless this is a RELATIVE
reloc in an unallocated section. */
- if (skip
+ if (skip != -1
|| (input_section->flags & SEC_ALLOC) != 0
|| ELF32_R_TYPE (outrel.r_info) != R_PPC_RELATIVE)
continue;
diff --git a/contrib/binutils/bfd/elf32-sparc.c b/contrib/binutils/bfd/elf32-sparc.c
index f0f9746..e944f00 100644
--- a/contrib/binutils/bfd/elf32-sparc.c
+++ b/contrib/binutils/bfd/elf32-sparc.c
@@ -1438,7 +1438,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
&& (input_section->flags & SEC_ALLOC))
{
Elf_Internal_Rela outrel;
- boolean skip;
+ boolean skip, relocate = false;
/* When generating a shared object, these relocations
are copied into the output file to be resolved at run
@@ -1471,6 +1471,8 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
rel->r_offset);
if (outrel.r_offset == (bfd_vma) -1)
skip = true;
+ else if (outrel.r_offset == (bfd_vma) -2)
+ skip = true, relocate = true;
outrel.r_offset += (input_section->output_section->vma
+ input_section->output_offset);
@@ -1571,7 +1573,8 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
/* This reloc will be computed at runtime, so there's no
need to do anything now. */
- continue;
+ if (! relocate)
+ continue;
}
break;
diff --git a/contrib/binutils/bfd/elf64-alpha.c b/contrib/binutils/bfd/elf64-alpha.c
index ef6e853..ae19873 100644
--- a/contrib/binutils/bfd/elf64-alpha.c
+++ b/contrib/binutils/bfd/elf64-alpha.c
@@ -732,7 +732,22 @@ static reloc_howto_type elf64_alpha_howto_table[] =
false,
0,
0,
- true)
+ true),
+
+ /* A 21 bit branch that adjusts for gp loads. */
+ HOWTO (R_ALPHA_BRSGP, /* type */
+ 2, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 21, /* bitsize */
+ true, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_signed, /* complain_on_overflow */
+ 0, /* special_function */
+ "BRSGP", /* name */
+ false, /* partial_inplace */
+ 0x1fffff, /* src_mask */
+ 0x1fffff, /* dst_mask */
+ true), /* pcrel_offset */
};
/* A relocation function which doesn't do anything. */
@@ -886,6 +901,7 @@ static const struct elf_reloc_map elf64_alpha_reloc_map[] =
{BFD_RELOC_ALPHA_GPREL_HI16, R_ALPHA_GPRELHIGH},
{BFD_RELOC_ALPHA_GPREL_LO16, R_ALPHA_GPRELLOW},
{BFD_RELOC_GPREL16, R_ALPHA_GPREL16},
+ {BFD_RELOC_ALPHA_BRSGP, R_ALPHA_BRSGP},
};
/* Given a BFD reloc type, return a HOWTO structure. */
@@ -2414,6 +2430,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
case R_ALPHA_GPREL32:
case R_ALPHA_GPRELHIGH:
case R_ALPHA_GPRELLOW:
+ case R_ALPHA_BRSGP:
/* We don't actually use the .got here, but the sections must
be created before the linker maps input sections to output
sections. */
@@ -3555,6 +3572,64 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
addend -= 4;
goto default_reloc;
+ case R_ALPHA_BRSGP:
+ {
+ int other;
+ const char *name;
+
+ /* The regular PC-relative stuff measures from the start of
+ the instruction rather than the end. */
+ addend -= 4;
+
+ /* The source and destination gp must be the same. Note that
+ the source will always have an assigned gp, since we forced
+ one in check_relocs, but that the destination may not, as
+ it might not have had any relocations at all. Also take
+ care not to crash if H is an undefined symbol. */
+ if (h != NULL && sec != NULL
+ && alpha_elf_tdata (sec->owner)->gotobj
+ && gotobj != alpha_elf_tdata (sec->owner)->gotobj)
+ {
+ (*_bfd_error_handler)
+ (_("%s: change in gp: BRSGP %s"),
+ bfd_archive_filename (input_bfd), h->root.root.root.string);
+ ret_val = false;
+ }
+
+ /* The symbol should be marked either NOPV or STD_GPLOAD. */
+ if (h != NULL)
+ other = h->root.other;
+ else
+ other = sym->st_other;
+ switch (other & STO_ALPHA_STD_GPLOAD)
+ {
+ case STO_ALPHA_NOPV:
+ break;
+ case STO_ALPHA_STD_GPLOAD:
+ addend += 8;
+ break;
+ default:
+ if (h != NULL)
+ name = h->root.root.root.string;
+ else
+ {
+ name = (bfd_elf_string_from_elf_section
+ (input_bfd, symtab_hdr->sh_link, sym->st_name));
+ if (name == NULL)
+ name = _("<unknown>");
+ else if (name[0] == 0)
+ name = bfd_section_name (input_bfd, sec);
+ }
+ (*_bfd_error_handler)
+ (_("%s: !samegp reloc against symbol without .prologue: %s"),
+ bfd_archive_filename (input_bfd), name);
+ ret_val = false;
+ break;
+ }
+
+ goto default_reloc;
+ }
+
case R_ALPHA_REFLONG:
case R_ALPHA_REFQUAD:
{
@@ -3596,7 +3671,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
outrel.r_offset =
_bfd_elf_section_offset (output_bfd, info, input_section,
rel->r_offset);
- if (outrel.r_offset != (bfd_vma) -1)
+ if ((outrel.r_offset | 1) != (bfd_vma) -1)
outrel.r_offset += (input_section->output_section->vma
+ input_section->output_offset);
else
diff --git a/contrib/binutils/bfd/elf64-ppc.c b/contrib/binutils/bfd/elf64-ppc.c
index da339bb..097231a 100644
--- a/contrib/binutils/bfd/elf64-ppc.c
+++ b/contrib/binutils/bfd/elf64-ppc.c
@@ -156,11 +156,8 @@ static boolean ppc64_elf_finish_dynamic_sections
/* Since .opd is an array of descriptors and each entry will end up
with identical R_PPC64_RELATIVE relocs, there is really no need to
propagate .opd relocs; The dynamic linker should be taught to
- relocate .opd without reloc entries. FIXME: the dynamic linker
- will need to know where and how large .opd is via a couple of new
- DT_PPC64_* tags, or perhaps just with one reloc that specifies the
- start of .opd via its offset and the size via its addend. Also,
- .opd should be trimmed of unused values. */
+ relocate .opd without reloc entries. FIXME: .opd should be trimmed
+ of unused values. */
#ifndef NO_OPD_RELOCS
#define NO_OPD_RELOCS 0
#endif
@@ -2500,20 +2497,15 @@ func_desc_adjust (h, inf)
fdh = elf_link_hash_lookup (&htab->elf, h->root.root.string + 1,
false, false, true);
- if (fdh == NULL && info->shared)
+ if (fdh == NULL
+ && info->shared
+ && (h->root.type == bfd_link_hash_undefined
+ || h->root.type == bfd_link_hash_undefweak))
{
bfd *abfd;
asymbol *newsym;
- /* Create it as undefined. */
- if (h->root.type == bfd_link_hash_undefined
- || h->root.type == bfd_link_hash_undefweak)
- abfd = h->root.u.undef.abfd;
- else if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- abfd = h->root.u.def.section->owner;
- else
- abort ();
+ abfd = h->root.u.undef.abfd;
newsym = bfd_make_empty_symbol (abfd);
newsym->name = h->root.root.string + 1;
newsym->section = bfd_und_section_ptr;
@@ -2529,6 +2521,7 @@ func_desc_adjust (h, inf)
{
return false;
}
+ fdh->elf_link_hash_flags &= ~ELF_LINK_NON_ELF;
}
if (fdh != NULL
@@ -2540,13 +2533,16 @@ func_desc_adjust (h, inf)
if (fdh->dynindx == -1)
if (! bfd_elf64_link_record_dynamic_symbol (info, fdh))
return false;
- fdh->plt.refcount = h->plt.refcount;
fdh->elf_link_hash_flags |= (h->elf_link_hash_flags
& (ELF_LINK_HASH_REF_REGULAR
| ELF_LINK_HASH_REF_DYNAMIC
| ELF_LINK_HASH_REF_REGULAR_NONWEAK
| ELF_LINK_NON_GOT_REF));
- fdh->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
+ if (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
+ {
+ fdh->plt.refcount = h->plt.refcount;
+ fdh->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
+ }
((struct ppc_link_hash_entry *) fdh)->is_func_descriptor = 1;
fdh->root.root.string = h->root.root.string + 1;
}
@@ -2557,7 +2553,7 @@ func_desc_adjust (h, inf)
This prevents a shared library from exporting syms that have
been imported from another library. Function code syms that
are really in the library we must leave global to prevent the
- linker dragging a definition in from a static library. */
+ linker dragging in a definition from a static library. */
force_local = (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0;
_bfd_elf_link_hash_hide_symbol (info, h, force_local);
}
@@ -2996,10 +2992,12 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
linker script /DISCARD/, so we'll be discarding
the relocs too. */
}
- else
+ else if (p->count != 0)
{
srel = elf_section_data (p->sec)->sreloc;
srel->_raw_size += p->count * sizeof (Elf64_External_Rela);
+ if ((p->sec->output_section->flags & SEC_READONLY) != 0)
+ info->flags |= DF_TEXTREL;
}
}
}
@@ -3127,6 +3125,13 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
return false;
}
+ if (NO_OPD_RELOCS)
+ {
+ if (!add_dynamic_entry (DT_PPC64_OPD, 0)
+ || !add_dynamic_entry (DT_PPC64_OPDSZ, 0))
+ return false;
+ }
+
if (relocs)
{
if (!add_dynamic_entry (DT_RELA, 0)
@@ -3136,7 +3141,9 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
/* If any dynamic relocs apply to a read-only section,
then we need a DT_TEXTREL entry. */
- elf_link_hash_traverse (&htab->elf, readonly_dynrelocs, (PTR) info);
+ if ((info->flags & DF_TEXTREL) == 0)
+ elf_link_hash_traverse (&htab->elf, readonly_dynrelocs,
+ (PTR) info);
if ((info->flags & DF_TEXTREL) != 0)
{
@@ -3248,7 +3255,7 @@ ppc64_elf_size_stubs (obfd, info, changed)
/* If the .plt doesn't have any entries crossing a 64k boundary,
then there is no need for bigger stubs. */
- if (next_64k <= plt_offset + htab->splt->_raw_size)
+ if (plt_offset + htab->splt->_raw_size <= next_64k)
return true;
/* OK, so we have at least one transition. Since .plt entries are
@@ -3955,22 +3962,21 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
time. */
skip = false;
+ relocate = false;
outrel.r_offset =
_bfd_elf_section_offset (output_bfd, info, input_section,
rel->r_offset);
if (outrel.r_offset == (bfd_vma) -1)
skip = true;
-
+ else if (outrel.r_offset == (bfd_vma) -2)
+ skip = true, relocate = true;
outrel.r_offset += (input_section->output_section->vma
+ input_section->output_offset);
outrel.r_addend = addend;
if (skip)
- {
- relocate = false;
- memset (&outrel, 0, sizeof outrel);
- }
+ memset (&outrel, 0, sizeof outrel);
else if (h != NULL
&& h->dynindx != -1
&& !is_opd
@@ -3979,10 +3985,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|| !info->symbolic
|| (h->elf_link_hash_flags
& ELF_LINK_HASH_DEF_REGULAR) == 0))
- {
- relocate = false;
- outrel.r_info = ELF64_R_INFO (h->dynindx, r_type);
- }
+ outrel.r_info = ELF64_R_INFO (h->dynindx, r_type);
else
{
/* This symbol is local, or marked to become local,
@@ -4351,6 +4354,7 @@ ppc64_elf_finish_dynamic_sections (output_bfd, info)
for (; dyncon < dynconend; dyncon++)
{
Elf_Internal_Dyn dyn;
+ asection *s;
bfd_elf64_swap_dyn_in (dynobj, dyncon, &dyn);
@@ -4364,6 +4368,18 @@ ppc64_elf_finish_dynamic_sections (output_bfd, info)
+ htab->sglink->output_offset);
break;
+ case DT_PPC64_OPD:
+ s = bfd_get_section_by_name (output_bfd, ".opd");
+ if (s != NULL)
+ dyn.d_un.d_ptr = s->vma;
+ break;
+
+ case DT_PPC64_OPDSZ:
+ s = bfd_get_section_by_name (output_bfd, ".opd");
+ if (s != NULL)
+ dyn.d_un.d_val = s->_raw_size;
+ break;
+
case DT_PLTGOT:
dyn.d_un.d_ptr = (htab->splt->output_section->vma
+ htab->splt->output_offset);
diff --git a/contrib/binutils/bfd/elf64-sparc.c b/contrib/binutils/bfd/elf64-sparc.c
index 07c78bc..0f81fa2 100644
--- a/contrib/binutils/bfd/elf64-sparc.c
+++ b/contrib/binutils/bfd/elf64-sparc.c
@@ -1331,11 +1331,9 @@ sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
if (p->name != NULL && strcmp (p->name, *namep))
{
(*_bfd_error_handler)
- (_("Register %%g%d used incompatibly: %s in %s"),
+ (_("Register %%g%d used incompatibly: %s in %s, previously %s in %s"),
(int) sym->st_value,
- **namep ? *namep : "#scratch", bfd_archive_filename (abfd));
- (*_bfd_error_handler)
- (_(" previously %s in %s"),
+ **namep ? *namep : "#scratch", bfd_archive_filename (abfd),
*p->name ? p->name : "#scratch", bfd_archive_filename (p->abfd));
return false;
}
@@ -1356,10 +1354,8 @@ sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
if (type > STT_FUNC)
type = 0;
(*_bfd_error_handler)
- (_("Symbol `%s' has differing types: %s in %s"),
- *namep, "REGISTER", bfd_archive_filename (abfd));
- (*_bfd_error_handler)
- (_(" previously %s in %s"),
+ (_("Symbol `%s' has differing types: REGISTER in %s, previously %s in %s"),
+ *namep, bfd_archive_filename (abfd),
stt_types[type], bfd_archive_filename (p->abfd));
return false;
}
@@ -1405,11 +1401,9 @@ sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
if (type > STT_FUNC)
type = 0;
(*_bfd_error_handler)
- (_("Symbol `%s' has differing types: %s in %s"),
- *namep, stt_types[type], bfd_archive_filename (abfd));
- (*_bfd_error_handler)
- (_(" previously %s in %s"),
- "REGISTER", bfd_archive_filename (p->abfd));
+ (_("Symbol `%s' has differing types: %s in %s, previously REGISTER in %s"),
+ *namep, stt_types[type], bfd_archive_filename (abfd),
+ bfd_archive_filename (p->abfd));
return false;
}
}
@@ -2167,7 +2161,7 @@ do_dynreloc:
case R_SPARC_UA16:
{
Elf_Internal_Rela outrel;
- boolean skip;
+ boolean skip, relocate;
if (sreloc == NULL)
{
@@ -2190,12 +2184,15 @@ do_dynreloc:
}
skip = false;
+ relocate = false;
outrel.r_offset =
_bfd_elf_section_offset (output_bfd, info, input_section,
rel->r_offset);
if (outrel.r_offset == (bfd_vma) -1)
skip = true;
+ else if (outrel.r_offset == (bfd_vma) -2)
+ skip = true, relocate = true;
outrel.r_offset += (input_section->output_section->vma
+ input_section->output_offset);
@@ -2307,7 +2304,8 @@ do_dynreloc:
/* This reloc will be computed at runtime, so there's no
need to do anything now. */
- continue;
+ if (! relocate)
+ continue;
}
break;
}
diff --git a/contrib/binutils/bfd/elf64-x86-64.c b/contrib/binutils/bfd/elf64-x86-64.c
index 4bbbb08..cdd36d1 100644
--- a/contrib/binutils/bfd/elf64-x86-64.c
+++ b/contrib/binutils/bfd/elf64-x86-64.c
@@ -1466,21 +1466,21 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
}
skip = false;
+ relocate = false;
outrel.r_offset =
_bfd_elf_section_offset (output_bfd, info, input_section,
rela->r_offset);
if (outrel.r_offset == (bfd_vma) -1)
skip = true;
+ else if (outrel.r_offset == (bfd_vma) -1)
+ skip = true, relocate = true;
outrel.r_offset += (input_section->output_section->vma
+ input_section->output_offset);
if (skip)
- {
- memset (&outrel, 0, sizeof outrel);
- relocate = false;
- }
+ memset (&outrel, 0, sizeof outrel);
/* h->dynindx may be -1 if this symbol was marked to
become local. */
else if (h != NULL
@@ -1489,7 +1489,6 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
& ELF_LINK_HASH_DEF_REGULAR) == 0))
{
BFD_ASSERT (h->dynindx != -1);
- relocate = false;
outrel.r_info = ELF64_R_INFO (h->dynindx, r_type);
outrel.r_addend = relocation + rela->r_addend;
}
@@ -1530,7 +1529,6 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
BFD_ASSERT (sindx > 0);
}
- relocate = false;
outrel.r_info = ELF64_R_INFO (sindx, r_type);
outrel.r_addend = relocation + rela->r_addend;
}
diff --git a/contrib/binutils/bfd/elfcore.h b/contrib/binutils/bfd/elfcore.h
index 2a795a9..c206af5 100644
--- a/contrib/binutils/bfd/elfcore.h
+++ b/contrib/binutils/bfd/elfcore.h
@@ -220,18 +220,20 @@ elf_core_file_p (abfd)
elf_swap_phdr_in (abfd, &x_phdr, i_phdrp + phindex);
}
- /* Process each program header. */
- for (phindex = 0; phindex < i_ehdrp->e_phnum; ++phindex)
+ /* Set the machine architecture. Do this before processing the
+ program headers since we need to know the architecture type
+ when processing the notes of some systems' core files. */
+ if (! bfd_default_set_arch_mach (abfd, ebd->arch, 0))
{
- if (! bfd_section_from_phdr (abfd, i_phdrp + phindex, (int) phindex))
+ /* It's OK if this fails for the generic target. */
+ if (ebd->elf_machine_code != EM_NONE)
goto fail;
}
- /* Set the machine architecture. */
- if (! bfd_default_set_arch_mach (abfd, ebd->arch, 0))
+ /* Process each program header. */
+ for (phindex = 0; phindex < i_ehdrp->e_phnum; ++phindex)
{
- /* It's OK if this fails for the generic target. */
- if (ebd->elf_machine_code != EM_NONE)
+ if (! bfd_section_from_phdr (abfd, i_phdrp + phindex, (int) phindex))
goto fail;
}
diff --git a/contrib/binutils/bfd/elfxx-ia64.c b/contrib/binutils/bfd/elfxx-ia64.c
index 7c4e139..e458477 100644
--- a/contrib/binutils/bfd/elfxx-ia64.c
+++ b/contrib/binutils/bfd/elfxx-ia64.c
@@ -3107,7 +3107,7 @@ elfNN_ia64_install_dyn_reloc (abfd, info, sec, srel, offset, type,
outrel.r_info = ELFNN_R_INFO (dynindx, type);
outrel.r_addend = addend;
outrel.r_offset = _bfd_elf_section_offset (abfd, info, sec, offset);
- if (outrel.r_offset == (bfd_vma) -1)
+ if ((outrel.r_offset | 1) == (bfd_vma) -1)
{
/* Run for the hills. We shouldn't be outputting a relocation
for this. So do what everyone else does and output a no-op. */
diff --git a/contrib/binutils/bfd/ieee.c b/contrib/binutils/bfd/ieee.c
index 546f12c..df7cfd6 100644
--- a/contrib/binutils/bfd/ieee.c
+++ b/contrib/binutils/bfd/ieee.c
@@ -1,25 +1,25 @@
/* BFD back-end for ieee-695 objects.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001
+ 2000, 2001, 2002
Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support.
-This file is part of BFD, the Binary File Descriptor library.
+ This file is part of BFD, the Binary File Descriptor library.
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define KEEPMINUSPCININST 0
@@ -874,7 +874,7 @@ ieee_slurp_external_symbols (abfd)
break;
default:
(*_bfd_error_handler)
- (_("%s: unimplemented ATI record %u for symbol %u"),
+ (_("%s: unimplemented ATI record %u for symbol %u"),
bfd_archive_filename (abfd), symbol_attribute_def,
symbol_name_index);
bfd_set_error (bfd_error_bad_value);
diff --git a/contrib/binutils/bfd/ihex.c b/contrib/binutils/bfd/ihex.c
index 8bb5134..0b02e6d 100644
--- a/contrib/binutils/bfd/ihex.c
+++ b/contrib/binutils/bfd/ihex.c
@@ -860,7 +860,7 @@ ihex_write_object_contents (abfd)
sprintf_vma (buf, where);
(*_bfd_error_handler)
- (_("%s: address 0x%s out of range for Intex Hex file"),
+ (_("%s: address 0x%s out of range for Intel Hex file"),
bfd_get_filename (abfd), buf);
bfd_set_error (bfd_error_bad_value);
return false;
diff --git a/contrib/binutils/bfd/libbfd.c b/contrib/binutils/bfd/libbfd.c
index 5aa51ae..8560d2f 100644
--- a/contrib/binutils/bfd/libbfd.c
+++ b/contrib/binutils/bfd/libbfd.c
@@ -1,24 +1,24 @@
/* Assorted BFD support routines, only used internally.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001
+ 2000, 2001, 2002
Free Software Foundation, Inc.
Written by Cygnus Support.
-This file is part of BFD, the Binary File Descriptor library.
+ This file is part of BFD, the Binary File Descriptor library.
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "bfd.h"
#include "sysdep.h"
@@ -1448,6 +1448,7 @@ _bfd_generic_verify_endian_match (ibfd, obfd)
/* Give a warning at runtime if someone compiles code which calls
old routines. */
+
void
warn_deprecated (what, file, line, func)
const char *what;
@@ -1460,11 +1461,13 @@ warn_deprecated (what, file, line, func)
if (~(size_t) func & ~mask)
{
- fprintf (stderr, _("Deprecated %s called"), what);
+ /* Note: seperate sentances in order to allow
+ for translation into other languages. */
if (func)
- fprintf (stderr, _(" at %s line %d in %s\n"), file, line, func);
+ fprintf (stderr, _("Deprecated %s called at %s line %d in %s\n"),
+ what, file, line, func);
else
- fprintf (stderr, "\n");
+ fprintf (stderr, _("Deprecated %s called\n"), what);
mask |= ~(size_t) func;
}
}
diff --git a/contrib/binutils/bfd/libbfd.h b/contrib/binutils/bfd/libbfd.h
index d055651..d864b22 100644
--- a/contrib/binutils/bfd/libbfd.h
+++ b/contrib/binutils/bfd/libbfd.h
@@ -721,6 +721,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_ALPHA_CODEADDR",
"BFD_RELOC_ALPHA_GPREL_HI16",
"BFD_RELOC_ALPHA_GPREL_LO16",
+ "BFD_RELOC_ALPHA_BRSGP",
"BFD_RELOC_MIPS_JMP",
"BFD_RELOC_MIPS16_JMP",
"BFD_RELOC_MIPS16_GPREL",
@@ -751,6 +752,55 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_MIPS_REL16",
"BFD_RELOC_MIPS_RELGOT",
"BFD_RELOC_MIPS_JALR",
+ "BFD_RELOC_SH_GOT_LOW16",
+ "BFD_RELOC_SH_GOT_MEDLOW16",
+ "BFD_RELOC_SH_GOT_MEDHI16",
+ "BFD_RELOC_SH_GOT_HI16",
+ "BFD_RELOC_SH_GOTPLT_LOW16",
+ "BFD_RELOC_SH_GOTPLT_MEDLOW16",
+ "BFD_RELOC_SH_GOTPLT_MEDHI16",
+ "BFD_RELOC_SH_GOTPLT_HI16",
+ "BFD_RELOC_SH_PLT_LOW16",
+ "BFD_RELOC_SH_PLT_MEDLOW16",
+ "BFD_RELOC_SH_PLT_MEDHI16",
+ "BFD_RELOC_SH_PLT_HI16",
+ "BFD_RELOC_SH_GOTOFF_LOW16",
+ "BFD_RELOC_SH_GOTOFF_MEDLOW16",
+ "BFD_RELOC_SH_GOTOFF_MEDHI16",
+ "BFD_RELOC_SH_GOTOFF_HI16",
+ "BFD_RELOC_SH_GOTPC_LOW16",
+ "BFD_RELOC_SH_GOTPC_MEDLOW16",
+ "BFD_RELOC_SH_GOTPC_MEDHI16",
+ "BFD_RELOC_SH_GOTPC_HI16",
+ "BFD_RELOC_SH_COPY64",
+ "BFD_RELOC_SH_GLOB_DAT64",
+ "BFD_RELOC_SH_JMP_SLOT64",
+ "BFD_RELOC_SH_RELATIVE64",
+ "BFD_RELOC_SH_GOT10BY4",
+ "BFD_RELOC_SH_GOT10BY8",
+ "BFD_RELOC_SH_GOTPLT10BY4",
+ "BFD_RELOC_SH_GOTPLT10BY8",
+ "BFD_RELOC_SH_GOTPLT32",
+ "BFD_RELOC_SH_SHMEDIA_CODE",
+ "BFD_RELOC_SH_IMMU5",
+ "BFD_RELOC_SH_IMMS6",
+ "BFD_RELOC_SH_IMMS6BY32",
+ "BFD_RELOC_SH_IMMU6",
+ "BFD_RELOC_SH_IMMS10",
+ "BFD_RELOC_SH_IMMS10BY2",
+ "BFD_RELOC_SH_IMMS10BY4",
+ "BFD_RELOC_SH_IMMS10BY8",
+ "BFD_RELOC_SH_IMMS16",
+ "BFD_RELOC_SH_IMMU16",
+ "BFD_RELOC_SH_IMM_LOW16",
+ "BFD_RELOC_SH_IMM_LOW16_PCREL",
+ "BFD_RELOC_SH_IMM_MEDLOW16",
+ "BFD_RELOC_SH_IMM_MEDLOW16_PCREL",
+ "BFD_RELOC_SH_IMM_MEDHI16",
+ "BFD_RELOC_SH_IMM_MEDHI16_PCREL",
+ "BFD_RELOC_SH_IMM_HI16",
+ "BFD_RELOC_SH_IMM_HI16_PCREL",
+ "BFD_RELOC_SH_PT_16",
"BFD_RELOC_386_GOT32",
"BFD_RELOC_386_PLT32",
diff --git a/contrib/binutils/bfd/osf-core.c b/contrib/binutils/bfd/osf-core.c
index edf5470..862342e 100644
--- a/contrib/binutils/bfd/osf-core.c
+++ b/contrib/binutils/bfd/osf-core.c
@@ -191,8 +191,8 @@ const bfd_target osf_core_vec =
{
"osf-core",
bfd_target_unknown_flavour,
- BFD_ENDIAN_BIG, /* target byte order */
- BFD_ENDIAN_BIG, /* target headers byte order */
+ BFD_ENDIAN_LITTLE, /* target byte order */
+ BFD_ENDIAN_LITTLE, /* target headers byte order */
(HAS_RELOC | EXEC_P | /* object flags */
HAS_LINENO | HAS_DEBUG |
HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
diff --git a/contrib/binutils/bfd/peXXigen.c b/contrib/binutils/bfd/peXXigen.c
index 37f4d1a..04b7419 100644
--- a/contrib/binutils/bfd/peXXigen.c
+++ b/contrib/binutils/bfd/peXXigen.c
@@ -1,5 +1,5 @@
/* Support for the generic parts of PE/PEI; the common executable parts.
- Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001
+ Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
Written by Cygnus Solutions.
@@ -22,8 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Most of this hacked by Steve Chamberlain <sac@cygnus.com>.
PE/PEI rearrangement (and code added): Donn Terry
- Softway Systems, Inc.
-*/
+ Softway Systems, Inc. */
/* Hey look, some documentation [and in a place you expect to find it]!
@@ -51,8 +50,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
FIXME: Please add more docs here so the next poor fool that has to hack
on this code has a chance of getting something accomplished without
- wasting too much time.
-*/
+ wasting too much time. */
/* This expands into COFF_WITH_pe or COFF_WITH_pep depending on whether
we're compiling for straight PE or PE+. */
@@ -1129,9 +1127,9 @@ pe_print_idata (abfd, vfile)
_("\nThe Import Tables (interpreted %s section contents)\n"),
section->name);
fprintf (file,
- _(" vma: Hint Time Forward DLL First\n"));
- fprintf (file,
- _(" Table Stamp Chain Name Thunk\n"));
+ _("\
+ vma: Hint Time Forward DLL First\n\
+ Table Stamp Chain Name Thunk\n"));
amt = dataoff + datasize;
data = (bfd_byte *) bfd_malloc (amt);
@@ -1539,10 +1537,9 @@ pe_print_pdata (abfd, vfile)
fprintf (file,
_(" vma:\t\t\tBegin Address End Address Unwind Info\n"));
#else
- fprintf (file,
- _(" vma:\t\tBegin End EH EH PrologEnd Exception\n"));
- fprintf (file,
- _(" \t\tAddress Address Handler Data Address Mask\n"));
+ fprintf (file, _("\
+ vma:\t\tBegin End EH EH PrologEnd Exception\n\
+ \t\tAddress Address Handler Data Address Mask\n"));
#endif
datasize = bfd_section_size (abfd, section);
diff --git a/contrib/binutils/bfd/po/SRC-POTFILES.in b/contrib/binutils/bfd/po/SRC-POTFILES.in
index 0ef9b4a..f3f1d26 100644
--- a/contrib/binutils/bfd/po/SRC-POTFILES.in
+++ b/contrib/binutils/bfd/po/SRC-POTFILES.in
@@ -37,6 +37,7 @@ coff-i960.c
coff-m68k.c
coff-m88k.c
coff-mips.c
+coff-or32.c
coff-rs6000.c
coff-sh.c
coff-sparc.c
@@ -84,6 +85,7 @@ cpu-mips.c
cpu-mmix.c
cpu-ns32k.c
cpu-openrisc.c
+cpu-or32.c
cpu-pdp11.c
cpu-pj.c
cpu-powerpc.c
@@ -138,12 +140,14 @@ elf32-m88k.c
elf32-mcore.c
elf32-mips.c
elf32-openrisc.c
+elf32-or32.c
elf32-pj.c
elf32-ppc.c
elf32-s390.c
elf32-sh-lin.c
elf32-sh-nbsd.c
elf32-sh.c
+elf32-sh64.c
elf32-sparc.c
elf32-v850.c
elf32-xstormy16.c
@@ -156,6 +160,7 @@ elf64-mips.c
elf64-mmix.c
elf64-ppc.c
elf64-s390.c
+elf64-sh64.c
elf64-sparc.c
elf64-x86-64.c
elf64.c
diff --git a/contrib/binutils/bfd/po/bfd.pot b/contrib/binutils/bfd/po/bfd.pot
index bb8a425..8471c0c 100644
--- a/contrib/binutils/bfd/po/bfd.pot
+++ b/contrib/binutils/bfd/po/bfd.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-01-17 12:55+0000\n"
+"POT-Creation-Date: 2002-02-08 03:22-0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -67,102 +67,102 @@ msgstr ""
msgid "Writing updated armap timestamp"
msgstr ""
-#: bfd.c:281
+#: bfd.c:274
msgid "No error"
msgstr ""
-#: bfd.c:282
+#: bfd.c:275
msgid "System call error"
msgstr ""
-#: bfd.c:283
+#: bfd.c:276
msgid "Invalid bfd target"
msgstr ""
-#: bfd.c:284
+#: bfd.c:277
msgid "File in wrong format"
msgstr ""
-#: bfd.c:285
+#: bfd.c:278
msgid "Archive object file in wrong format"
msgstr ""
-#: bfd.c:286
+#: bfd.c:279
msgid "Invalid operation"
msgstr ""
-#: bfd.c:287
+#: bfd.c:280
msgid "Memory exhausted"
msgstr ""
-#: bfd.c:288
+#: bfd.c:281
msgid "No symbols"
msgstr ""
-#: bfd.c:289
+#: bfd.c:282
msgid "Archive has no index; run ranlib to add one"
msgstr ""
-#: bfd.c:290
+#: bfd.c:283
msgid "No more archived files"
msgstr ""
-#: bfd.c:291
+#: bfd.c:284
msgid "Malformed archive"
msgstr ""
-#: bfd.c:292
+#: bfd.c:285
msgid "File format not recognized"
msgstr ""
-#: bfd.c:293
+#: bfd.c:286
msgid "File format is ambiguous"
msgstr ""
-#: bfd.c:294
+#: bfd.c:287
msgid "Section has no contents"
msgstr ""
-#: bfd.c:295
+#: bfd.c:288
msgid "Nonrepresentable section on output"
msgstr ""
-#: bfd.c:296
+#: bfd.c:289
msgid "Symbol needs debug section which does not exist"
msgstr ""
-#: bfd.c:297
+#: bfd.c:290
msgid "Bad value"
msgstr ""
-#: bfd.c:298
+#: bfd.c:291
msgid "File truncated"
msgstr ""
-#: bfd.c:299
+#: bfd.c:292
msgid "File too big"
msgstr ""
-#: bfd.c:300
+#: bfd.c:293
msgid "#<Invalid error code>"
msgstr ""
-#: bfd.c:707
+#: bfd.c:700
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr ""
-#: bfd.c:726
+#: bfd.c:719
#, c-format
msgid "BFD %s internal error, aborting at %s line %d in %s\n"
msgstr ""
-#: bfd.c:730
+#: bfd.c:723
#, c-format
-msgid "BFD %sinternal error, aborting at %s line %d\n"
+msgid "BFD %s internal error, aborting at %s line %d\n"
msgstr ""
-#: bfd.c:732
+#: bfd.c:725
msgid "Please report this bug.\n"
msgstr ""
@@ -179,7 +179,7 @@ msgstr ""
msgid "Missing IHIHALF"
msgstr ""
-#: coff-a29k.c:212
+#: coff-a29k.c:212 coff-or32.c:228
msgid "Unrecognized reloc"
msgstr ""
@@ -191,7 +191,7 @@ msgstr ""
msgid "missing IHIHALF reloc"
msgstr ""
-#: coff-alpha.c:881 coff-alpha.c:918
+#: coff-alpha.c:881 coff-alpha.c:918 coff-alpha.c:1989 coff-mips.c:1433
msgid "GP relative relocation used when GP not defined"
msgstr ""
@@ -199,10 +199,6 @@ msgstr ""
msgid "using multiple gp values"
msgstr ""
-#: coff-alpha.c:1989 coff-mips.c:1433
-msgid "GP relative relocation when GP not defined"
-msgstr ""
-
#: coff-arm.c:1051 elf32-arm.h:285
#, c-format
msgid "%s: unable to find THUMB glue '%s' for `%s'"
@@ -244,45 +240,45 @@ msgstr ""
#: coff-arm.c:2235
#, c-format
-msgid "%s: ERROR: compiled for APCS-%d whereas target %s uses APCS-%d"
+msgid "ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d"
msgstr ""
-#: coff-arm.c:2250
+#: coff-arm.c:2250 elf32-arm.h:2287
#, c-format
msgid ""
-"%s: ERROR: passes floats in float registers whereas target %s uses integer "
-"registers"
+"ERROR: %s passes floats in float registers, whereas %s passes them in "
+"integer registers"
msgstr ""
-#: coff-arm.c:2253
+#: coff-arm.c:2253 elf32-arm.h:2292
#, c-format
msgid ""
-"%s: ERROR: passes floats in integer registers whereas target %s uses float "
-"registers"
+"ERROR: %s passes floats in integer registers, whereas %s passes them in "
+"float registers"
msgstr ""
#: coff-arm.c:2268
#, c-format
msgid ""
-"%s: ERROR: compiled as position independent code, whereas target %s is "
+"ERROR: %s is compiled as position independent code, whereas target %s is "
"absolute position"
msgstr ""
#: coff-arm.c:2271
#, c-format
msgid ""
-"%s: ERROR: compiled as absolute position code, whereas target %s is position "
-"independent"
+"ERROR: %s is compiled as absolute position code, whereas target %s is "
+"position independent"
msgstr ""
-#: coff-arm.c:2300
+#: coff-arm.c:2300 elf32-arm.h:2348
#, c-format
-msgid "Warning: input file %s supports interworking, whereas %s does not."
+msgid "Warning: %s supports interworking, whereas %s does not"
msgstr ""
-#: coff-arm.c:2303
+#: coff-arm.c:2303 elf32-arm.h:2355
#, c-format
-msgid "Warning: input file %s does not support interworking, whereas %s does."
+msgid "Warning: %s does not support interworking, whereas %s does"
msgstr ""
#: coff-arm.c:2330
@@ -318,14 +314,14 @@ msgstr ""
msgid " [interworking not supported]"
msgstr ""
-#: coff-arm.c:2401
+#: coff-arm.c:2401 elf32-arm.h:2114
#, c-format
msgid ""
-"Warning: Not setting interworking flag of %s, since it has already been "
+"Warning: Not setting interworking flag of %s since it has already been "
"specified as non-interworking"
msgstr ""
-#: coff-arm.c:2405
+#: coff-arm.c:2405 elf32-arm.h:2118
#, c-format
msgid "Warning: Clearing the interworking flag of %s due to outside request"
msgstr ""
@@ -334,11 +330,11 @@ msgstr ""
msgid "uncertain calling convention for non-COFF symbol"
msgstr ""
-#: coff-m68k.c:481 coff-mips.c:2431 elf32-m68k.c:2212
+#: coff-m68k.c:481 coff-mips.c:2431 elf32-m68k.c:2212 elf32-mips.c:9967
msgid "unsupported reloc type"
msgstr ""
-#: coff-mips.c:875 elf32-mips.c:1987 elf64-mips.c:1739
+#: coff-mips.c:875 elf32-mips.c:1997 elf64-mips.c:1739
msgid "GP relative relocation when _gp not defined"
msgstr ""
@@ -372,7 +368,7 @@ msgstr ""
msgid "Unrecognized reloc type 0x%x"
msgstr ""
-#: coff-tic54x.c:390 coffcode.h:4847
+#: coff-tic54x.c:390 coffcode.h:4874
#, c-format
msgid "%s: warning: illegal symbol index %ld in relocs"
msgstr ""
@@ -387,32 +383,32 @@ msgstr ""
msgid "%s (%s): Section flag %s (0x%x) ignored"
msgstr ""
-#: coffcode.h:2125
+#: coffcode.h:2137
#, c-format
msgid "Unrecognized TI COFF target id '0x%x'"
msgstr ""
-#: coffcode.h:4236
+#: coffcode.h:4263
#, c-format
msgid "%s: warning: illegal symbol index %ld in line numbers"
msgstr ""
-#: coffcode.h:4250
+#: coffcode.h:4277
#, c-format
msgid "%s: warning: duplicate line number information for `%s'"
msgstr ""
-#: coffcode.h:4609
+#: coffcode.h:4636
#, c-format
msgid "%s: Unrecognized storage class %d for %s symbol `%s'"
msgstr ""
-#: coffcode.h:4740
+#: coffcode.h:4767
#, c-format
msgid "warning: %s: local symbol `%s' has no section"
msgstr ""
-#: coffcode.h:4885
+#: coffcode.h:4912
#, c-format
msgid "%s: illegal relocation type %d at address 0x%lx"
msgstr ""
@@ -422,11 +418,6 @@ msgstr ""
msgid "%s: bad string table size %lu"
msgstr ""
-#: coffgen.c:2138
-#, c-format
-msgid "AUX tagndx %ld ttlsiz 0x%lx lnnos %ld next %ld"
-msgstr ""
-
#: cofflink.c:536 elflink.h:1967
#, c-format
msgid "Warning: type of symbol `%s' changed from %d to %d in %s"
@@ -465,7 +456,8 @@ msgstr ""
#: dwarf2.c:559
#, c-format
msgid ""
-"Dwarf Error: Abbrev offset (%u) greater than or equal to abbrev size (%u)."
+"Dwarf Error: Abbrev offset (%u) greater than or equal to .debug_abbrev size "
+"(%u)."
msgstr ""
#: dwarf2.c:756
@@ -483,33 +475,34 @@ msgstr ""
#: dwarf2.c:952
#, c-format
-msgid "Dwarf Error: Line offset (%u) greater than or equal to line size (%u)."
+msgid ""
+"Dwarf Error: Line offset (%u) greater than or equal to .debug_line size (%u)."
msgstr ""
#: dwarf2.c:1143
msgid "Dwarf Error: mangled line number section."
msgstr ""
-#: dwarf2.c:1318 dwarf2.c:1532
+#: dwarf2.c:1318 dwarf2.c:1529
#, c-format
msgid "Dwarf Error: Could not find abbrev number %d."
msgstr ""
-#: dwarf2.c:1493
+#: dwarf2.c:1490
#, c-format
msgid ""
"Dwarf Error: found dwarf version '%hu', this reader only handles version 2 "
"information."
msgstr ""
-#: dwarf2.c:1500
+#: dwarf2.c:1497
#, c-format
msgid ""
"Dwarf Error: found address size '%u', this reader can not handle sizes "
"greater than '%u'."
msgstr ""
-#: dwarf2.c:1523
+#: dwarf2.c:1520
#, c-format
msgid "Dwarf Error: Bad abbrev number: %d."
msgstr ""
@@ -575,128 +568,121 @@ msgid ""
" Type: %s"
msgstr ""
-#: elf-hppa.h:1366 elf-hppa.h:1399 elf32-ppc.c:3062 elf32-sh.c:3201
-#: elf64-x86-64.c:1275
+#: elf-hppa.h:1366 elf-hppa.h:1399 elf32-ppc.c:3062 elf32-sh.c:4286
+#: elf64-sh64.c:1640 elf64-x86-64.c:1275
#, c-format
msgid ""
"%s: warning: unresolvable relocation against symbol `%s' from %s section"
msgstr ""
#: elf-m10200.c:463 elf-m10300.c:673 elf32-arm.h:2074 elf32-avr.c:835
-#: elf32-cris.c:1392 elf32-d10v.c:482 elf32-fr30.c:653 elf32-h8300.c:547
-#: elf32-i860.c:1048 elf32-m32r.c:1281 elf32-openrisc.c:455 elf32-v850.c:1691
-#: elf64-mmix.c:1164
+#: elf32-cris.c:1406 elf32-d10v.c:482 elf32-fr30.c:653 elf32-h8300.c:547
+#: elf32-i860.c:1048 elf32-m32r.c:1280 elf32-openrisc.c:455 elf32-v850.c:1691
+#: elf32-xstormy16.c:976 elf64-mmix.c:1302
msgid "internal error: out of range error"
msgstr ""
#: elf-m10200.c:467 elf-m10300.c:677 elf32-arm.h:2078 elf32-avr.c:839
-#: elf32-cris.c:1396 elf32-d10v.c:486 elf32-fr30.c:657 elf32-h8300.c:551
-#: elf32-i860.c:1052 elf32-m32r.c:1285 elf32-mips.c:7565 elf32-openrisc.c:459
-#: elf32-v850.c:1695 elf64-mips.c:4464 elf64-mmix.c:1168
+#: elf32-cris.c:1410 elf32-d10v.c:486 elf32-fr30.c:657 elf32-h8300.c:551
+#: elf32-i860.c:1052 elf32-m32r.c:1284 elf32-mips.c:7600 elf32-openrisc.c:459
+#: elf32-v850.c:1695 elf32-xstormy16.c:980 elf64-mips.c:4464 elf64-mmix.c:1306
msgid "internal error: unsupported relocation error"
msgstr ""
#: elf-m10200.c:471 elf-m10300.c:681 elf32-arm.h:2082 elf32-d10v.c:490
-#: elf32-h8300.c:555 elf32-m32r.c:1289
+#: elf32-h8300.c:555 elf32-m32r.c:1288
msgid "internal error: dangerous error"
msgstr ""
#: elf-m10200.c:475 elf-m10300.c:685 elf32-arm.h:2086 elf32-avr.c:847
-#: elf32-cris.c:1404 elf32-d10v.c:494 elf32-fr30.c:665 elf32-h8300.c:559
-#: elf32-i860.c:1060 elf32-m32r.c:1293 elf32-openrisc.c:467 elf32-v850.c:1715
-#: elf64-mmix.c:1176
+#: elf32-cris.c:1418 elf32-d10v.c:494 elf32-fr30.c:665 elf32-h8300.c:559
+#: elf32-i860.c:1060 elf32-m32r.c:1292 elf32-openrisc.c:467 elf32-v850.c:1715
+#: elf32-xstormy16.c:988 elf64-mmix.c:1314
msgid "internal error: unknown error"
msgstr ""
-#: elf.c:345
+#: elf.c:343
#, c-format
msgid "%s: invalid string offset %u >= %lu for section `%s'"
msgstr ""
-#: elf.c:450
+#: elf.c:448
#, c-format
msgid "%s: invalid SHT_GROUP entry"
msgstr ""
-#: elf.c:531
+#: elf.c:529
#, c-format
msgid "%s: no group info for section %s"
msgstr ""
-#: elf.c:842
+#: elf.c:840
msgid ""
"\n"
"Program Header:\n"
msgstr ""
-#: elf.c:891
+#: elf.c:889
msgid ""
"\n"
"Dynamic Section:\n"
msgstr ""
-#: elf.c:1020
+#: elf.c:1018
msgid ""
"\n"
"Version definitions:\n"
msgstr ""
-#: elf.c:1043
+#: elf.c:1041
msgid ""
"\n"
"Version References:\n"
msgstr ""
-#: elf.c:1048
+#: elf.c:1046
#, c-format
msgid " required from %s:\n"
msgstr ""
-#: elf.c:1675
+#: elf.c:1682
#, c-format
msgid "%s: invalid link %lu for reloc section %s (index %u)"
msgstr ""
-#: elf.c:3289
+#: elf.c:3296
#, c-format
msgid "%s: Not enough room for program headers (allocated %u, need %u)"
msgstr ""
-#: elf.c:3393
+#: elf.c:3400
#, c-format
msgid "%s: Not enough room for program headers, try linking with -N"
msgstr ""
-#: elf.c:3518
+#: elf.c:3525
#, c-format
msgid ""
"Error: First section in segment (%s) starts at 0x%x whereas the segment "
"starts at 0x%x"
msgstr ""
-#: elf.c:3804
+#: elf.c:3811
#, c-format
msgid "%s: warning: allocated section `%s' not in segment"
msgstr ""
-#: elf.c:4138
+#: elf.c:4142
#, c-format
msgid "%s: symbol `%s' required but not present"
msgstr ""
-#: elf.c:4147
-#, c-format
-msgid ""
-"elf_symbol_from_bfd_symbol 0x%.8lx, name = %s, sym num = %d, flags = 0x%.8lx%"
-"s\n"
-msgstr ""
-
-#: elf.c:4391
+#: elf.c:4395
#, c-format
msgid "%s: warning: Empty loadable segment detected\n"
msgstr ""
-#: elf.c:5804
+#: elf.c:5808
#, c-format
msgid "%s: unsupported relocation type %s"
msgstr ""
@@ -711,7 +697,7 @@ msgstr ""
msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'."
msgstr ""
-#: elf32-arm.h:1904 elf32-i386.c:1776 elf32-sh.c:3133
+#: elf32-arm.h:1904 elf32-i386.c:1782 elf32-sh.c:4198
#, c-format
msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section"
msgstr ""
@@ -722,83 +708,48 @@ msgid ""
"%s: warning: unresolvable relocation %d against symbol `%s' from %s section"
msgstr ""
-#: elf32-arm.h:2114
-#, c-format
-msgid ""
-"Warning: Not setting interwork flag of %s since it has already been "
-"specified as non-interworking"
-msgstr ""
-
-#: elf32-arm.h:2118
-#, c-format
-msgid "Warning: Clearing the interwork flag of %s due to outside request"
-msgstr ""
-
#: elf32-arm.h:2166
#, c-format
msgid ""
-"Warning: Clearing the interwork flag in %s because non-interworking code in %"
-"s has been linked with it"
+"Warning: Clearing the interworking flag of %s because non-interworking code "
+"in %s has been linked with it"
msgstr ""
#: elf32-arm.h:2261
#, c-format
msgid ""
-"Error: %s compiled for EABI version %d, whereas %s is compiled for version %d"
+"ERROR: %s is compiled for EABI version %d, whereas %s is compiled for "
+"version %d"
msgstr ""
#: elf32-arm.h:2275
#, c-format
-msgid "Error: %s compiled for APCS-%d, whereas %s is compiled for APCS-%d"
-msgstr ""
-
-#: elf32-arm.h:2287
-#, c-format
-msgid ""
-"Error: %s passes floats in FP registers, whereas %s passes them in integer "
-"registers"
-msgstr ""
-
-#: elf32-arm.h:2292
-#, c-format
-msgid ""
-"Error: %s passes floats in integer registers, whereas %s passes them in FP "
-"registers"
+msgid "ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d"
msgstr ""
#: elf32-arm.h:2303
#, c-format
-msgid "Error: %s uses VFP instructions, whereas %s FPA instructions"
+msgid "ERROR: %s uses VFP instructions, whereas %s uses FPA instructions"
msgstr ""
#: elf32-arm.h:2308
#, c-format
-msgid "Error: %s uses FPA instructions, whereas %s VFP instructions"
+msgid "ERROR: %s uses FPA instructions, whereas %s uses VFP instructions"
msgstr ""
#: elf32-arm.h:2328
#, c-format
-msgid "Error: %s uses software FP, whereas %s uses hardware FP"
+msgid "ERROR: %s uses software FP, whereas %s uses hardware FP"
msgstr ""
#: elf32-arm.h:2333
#, c-format
-msgid "Error: %s uses hardware FP, whereas %s uses software FP"
-msgstr ""
-
-#: elf32-arm.h:2348
-#, c-format
-msgid "Warning: %s supports interworking, whereas %s does not"
-msgstr ""
-
-#: elf32-arm.h:2355
-#, c-format
-msgid "Warning: %s does not support interworking, whereas %s does"
+msgid "ERROR: %s uses hardware FP, whereas %s uses software FP"
msgstr ""
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elf32-arm.h:2386 elf32-cris.c:2970 elf32-m68k.c:410 elf32-mips.c:3232
+#: elf32-arm.h:2386 elf32-cris.c:2991 elf32-m68k.c:410 elf32-mips.c:3255
#, c-format
msgid "private flags = %lx:"
msgstr ""
@@ -807,14 +758,6 @@ msgstr ""
msgid " [interworking enabled]"
msgstr ""
-#: elf32-arm.h:2398
-msgid " [APCS-26]"
-msgstr ""
-
-#: elf32-arm.h:2400
-msgid " [APCS-32]"
-msgstr ""
-
#: elf32-arm.h:2403
msgid " [VFP float format]"
msgstr ""
@@ -875,8 +818,9 @@ msgstr ""
msgid "<Unrecognised flag bits set>"
msgstr ""
-#: elf32-avr.c:843 elf32-cris.c:1400 elf32-fr30.c:661 elf32-i860.c:1056
-#: elf32-openrisc.c:463 elf32-v850.c:1699 elf64-mmix.c:1172
+#: elf32-avr.c:843 elf32-cris.c:1414 elf32-fr30.c:661 elf32-i860.c:1056
+#: elf32-openrisc.c:463 elf32-v850.c:1699 elf32-xstormy16.c:984
+#: elf64-mmix.c:1310
msgid "internal error: dangerous relocation"
msgstr ""
@@ -914,28 +858,33 @@ msgid ""
"%s: relocation %s is not allowed for global symbol: `%s' from %s section"
msgstr ""
-#: elf32-cris.c:1275
+#: elf32-cris.c:1171
+#, c-format
+msgid "%s: relocation %s in section %s with no GOT created"
+msgstr ""
+
+#: elf32-cris.c:1289
#, c-format
msgid "%s: Internal inconsistency; no relocation section %s"
msgstr ""
-#: elf32-cris.c:2508
+#: elf32-cris.c:2523
#, c-format
msgid ""
"%s, section %s:\n"
" relocation %s should not be used in a shared object; recompile with -fPIC"
msgstr ""
-#: elf32-cris.c:2973
+#: elf32-cris.c:2994
msgid " [symbols have a _ prefix]"
msgstr ""
-#: elf32-cris.c:3012
+#: elf32-cris.c:3033
#, c-format
msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols"
msgstr ""
-#: elf32-cris.c:3013
+#: elf32-cris.c:3034
#, c-format
msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols"
msgstr ""
@@ -950,7 +899,7 @@ msgstr ""
msgid "%s: cannot create stub entry %s"
msgstr ""
-#: elf32-hppa.c:937 elf32-hppa.c:3540
+#: elf32-hppa.c:937 elf32-hppa.c:3549
#, c-format
msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections"
msgstr ""
@@ -974,22 +923,22 @@ msgstr ""
msgid "Could not find relocation section for %s"
msgstr ""
-#: elf32-hppa.c:2862
+#: elf32-hppa.c:2871
#, c-format
msgid "%s: duplicate export stub %s"
msgstr ""
-#: elf32-hppa.c:3424
+#: elf32-hppa.c:3433
#, c-format
msgid "%s(%s+0x%lx): fixing %s"
msgstr ""
-#: elf32-hppa.c:4064
+#: elf32-hppa.c:4073
#, c-format
msgid "%s(%s+0x%lx): cannot handle %s for %s"
msgstr ""
-#: elf32-hppa.c:4403
+#: elf32-hppa.c:4412
msgid ".got section not immediately after .plt section"
msgstr ""
@@ -998,55 +947,55 @@ msgstr ""
msgid "%s: invalid relocation type %d"
msgstr ""
-#: elf32-i386.c:718 elf32-s390.c:636 elf64-s390.c:595
+#: elf32-i386.c:718 elf32-s390.c:637 elf64-s390.c:595
#, c-format
msgid "%s: bad symbol index: %d"
msgstr ""
-#: elf32-i386.c:863 elf32-s390.c:790 elf64-ppc.c:2085 elf64-s390.c:759
+#: elf32-i386.c:863 elf32-s390.c:791 elf64-ppc.c:2198 elf64-s390.c:759
#, c-format
msgid "%s: bad relocation section name `%s'"
msgstr ""
-#: elf32-i386.c:2067 elf32-s390.c:1949 elf64-ppc.c:3908 elf64-s390.c:1953
+#: elf32-i386.c:2073 elf32-s390.c:1956 elf64-ppc.c:4128 elf64-s390.c:1959
#, c-format
msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'"
msgstr ""
-#: elf32-i386.c:2105 elf32-s390.c:1987 elf64-s390.c:1991
+#: elf32-i386.c:2111 elf32-s390.c:1994 elf64-s390.c:1997
#, c-format
msgid "%s(%s+0x%lx): reloc against `%s': error %d"
msgstr ""
-#: elf32-m32r.c:924
+#: elf32-m32r.c:923
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr ""
-#: elf32-ia64.c:3538 elf32-m32r.c:1008 elf32-ppc.c:2930 elf64-ia64.c:3538
+#: elf32-ia64.c:3537 elf32-m32r.c:1007 elf32-ppc.c:2930 elf64-ia64.c:3537
#, c-format
msgid "%s: unknown relocation type %d"
msgstr ""
-#: elf32-m32r.c:1224
+#: elf32-m32r.c:1223
#, c-format
msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
msgstr ""
-#: elf32-m32r.c:2001
+#: elf32-m32r.c:2000
#, c-format
msgid "%s: Instruction set mismatch with previous modules"
msgstr ""
-#: elf32-m32r.c:2024
+#: elf32-m32r.c:2023
#, c-format
msgid "private flags = %lx"
msgstr ""
-#: elf32-m32r.c:2029
+#: elf32-m32r.c:2028
msgid ": m32r instructions"
msgstr ""
-#: elf32-m32r.c:2030
+#: elf32-m32r.c:2029
msgid ": m32rx instructions"
msgstr ""
@@ -1064,152 +1013,152 @@ msgstr ""
msgid "%s: Unknown relocation type %d\n"
msgstr ""
-#: elf32-mips.c:2146 elf64-mips.c:1972
+#: elf32-mips.c:2156 elf64-mips.c:1972
msgid "32bits gp relative relocation occurs for an external symbol"
msgstr ""
-#: elf32-mips.c:2295
+#: elf32-mips.c:2305
#, c-format
msgid "Linking mips16 objects into %s format is not supported"
msgstr ""
-#: elf32-mips.c:3119
+#: elf32-mips.c:3129
#, c-format
msgid "%s: linking PIC files with non-PIC files"
msgstr ""
-#: elf32-mips.c:3129
+#: elf32-mips.c:3139
#, c-format
msgid "%s: linking abicalls files with non-abicalls files"
msgstr ""
-#: elf32-mips.c:3158
+#: elf32-mips.c:3168
#, c-format
msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"
msgstr ""
-#: elf32-mips.c:3167
+#: elf32-mips.c:3190
#, c-format
msgid "%s: ISA mismatch (%d) with previous modules (%d)"
msgstr ""
-#: elf32-mips.c:3190
+#: elf32-mips.c:3213
#, c-format
msgid "%s: ABI mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elf32-mips.c:3204 elf32-ppc.c:1470 elf64-ppc.c:1538 elf64-sparc.c:3033
+#: elf32-mips.c:3227 elf32-ppc.c:1470 elf64-ppc.c:1556 elf64-sparc.c:3027
#, c-format
msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
msgstr ""
-#: elf32-mips.c:3235
+#: elf32-mips.c:3258
msgid " [abi=O32]"
msgstr ""
-#: elf32-mips.c:3237
+#: elf32-mips.c:3260
msgid " [abi=O64]"
msgstr ""
-#: elf32-mips.c:3239
+#: elf32-mips.c:3262
msgid " [abi=EABI32]"
msgstr ""
-#: elf32-mips.c:3241
+#: elf32-mips.c:3264
msgid " [abi=EABI64]"
msgstr ""
-#: elf32-mips.c:3243
+#: elf32-mips.c:3266
msgid " [abi unknown]"
msgstr ""
-#: elf32-mips.c:3245
+#: elf32-mips.c:3268
msgid " [abi=N32]"
msgstr ""
-#: elf32-mips.c:3247
+#: elf32-mips.c:3270
msgid " [abi=64]"
msgstr ""
-#: elf32-mips.c:3249
+#: elf32-mips.c:3272
msgid " [no abi set]"
msgstr ""
-#: elf32-mips.c:3252
+#: elf32-mips.c:3275
msgid " [mips1]"
msgstr ""
-#: elf32-mips.c:3254
+#: elf32-mips.c:3277
msgid " [mips2]"
msgstr ""
-#: elf32-mips.c:3256
+#: elf32-mips.c:3279
msgid " [mips3]"
msgstr ""
-#: elf32-mips.c:3258
+#: elf32-mips.c:3281
msgid " [mips4]"
msgstr ""
-#: elf32-mips.c:3260
+#: elf32-mips.c:3283
msgid " [mips5]"
msgstr ""
-#: elf32-mips.c:3262
+#: elf32-mips.c:3285
msgid " [mips32]"
msgstr ""
-#: elf32-mips.c:3264
+#: elf32-mips.c:3287
msgid " [mips64]"
msgstr ""
-#: elf32-mips.c:3266
+#: elf32-mips.c:3289
msgid " [unknown ISA]"
msgstr ""
-#: elf32-mips.c:3269
+#: elf32-mips.c:3292
msgid " [32bitmode]"
msgstr ""
-#: elf32-mips.c:3271
+#: elf32-mips.c:3294
msgid " [not 32bitmode]"
msgstr ""
-#: elf32-mips.c:4947
+#: elf32-mips.c:4967
msgid "static procedure (no name)"
msgstr ""
-#: elf32-mips.c:5565 elf64-mips.c:6694
+#: elf32-mips.c:5585 elf64-mips.c:6694
#, c-format
msgid "%s: illegal section name `%s'"
msgstr ""
-#: elf32-mips.c:6132 elf64-mips.c:3150
+#: elf32-mips.c:6152 elf64-mips.c:3150
msgid "not enough GOT space for local GOT entries"
msgstr ""
-#: elf32-mips.c:7238 elf64-mips.c:4203
+#: elf32-mips.c:7263 elf64-mips.c:4203
#, c-format
msgid "%s: %s+0x%lx: jump to stub routine which is not jal"
msgstr ""
-#: elf32-mips.c:8237 elf64-mips.c:5891
+#: elf32-mips.c:8272 elf64-mips.c:5891
#, c-format
msgid "%s: Malformed reloc detected for section %s"
msgstr ""
-#: elf32-mips.c:8315 elf64-mips.c:5969
+#: elf32-mips.c:8350 elf64-mips.c:5969
#, c-format
msgid "%s: CALL16 reloc at 0x%lx not against global symbol"
msgstr ""
-#: elf32-ppc.c:1436 elf64-ppc.c:1503
+#: elf32-ppc.c:1436 elf64-ppc.c:1521
#, c-format
msgid ""
"%s: compiled with -mrelocatable and linked with modules compiled normally"
msgstr ""
-#: elf32-ppc.c:1444 elf64-ppc.c:1511
+#: elf32-ppc.c:1444 elf64-ppc.c:1529
#, c-format
msgid ""
"%s: compiled normally and linked with modules compiled with -mrelocatable"
@@ -1225,7 +1174,7 @@ msgstr ""
msgid "%s: relocation %s cannot be used when making a shared object"
msgstr ""
-#: elf32-ppc.c:3097 elf64-ppc.c:3500
+#: elf32-ppc.c:3097 elf64-ppc.c:3720
#, c-format
msgid "%s: unknown relocation type %d for symbol %s"
msgstr ""
@@ -1241,52 +1190,104 @@ msgstr ""
msgid "%s: Relocation %s is not yet supported for symbol %s."
msgstr ""
-#: elf32-sh.c:1101
+#: elf32-sh.c:1971
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES offset"
msgstr ""
-#: elf32-sh.c:1113
+#: elf32-sh.c:1983
#, c-format
msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
msgstr ""
-#: elf32-sh.c:1130
+#: elf32-sh.c:2000
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES load offset"
msgstr ""
-#: elf32-sh.c:1145
+#: elf32-sh.c:2015
#, c-format
msgid "%s: 0x%lx: warning: could not find expected reloc"
msgstr ""
-#: elf32-sh.c:1202
+#: elf32-sh.c:2072
#, c-format
msgid "%s: 0x%lx: warning: symbol in unexpected section"
msgstr ""
-#: elf32-sh.c:1323
+#: elf32-sh.c:2193
#, c-format
msgid "%s: 0x%lx: warning: could not find expected COUNT reloc"
msgstr ""
-#: elf32-sh.c:1332
+#: elf32-sh.c:2202
#, c-format
msgid "%s: 0x%lx: warning: bad count"
msgstr ""
-#: elf32-sh.c:1741 elf32-sh.c:2132
+#: elf32-sh.c:2611 elf32-sh.c:3002
#, c-format
msgid "%s: 0x%lx: fatal: reloc overflow while relaxing"
msgstr ""
-#: elf32-sh.c:3267
+#: elf32-sh.c:4146 elf64-sh64.c:1557
+msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
+msgstr ""
+
+#: elf32-sh.c:4357
#, c-format
msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation"
msgstr ""
-#: elf32-sparc.c:1554 elf64-sparc.c:2286
+#: elf32-sh64.c:211 elf64-sh64.c:2391
+#, c-format
+msgid "%s: compiled as 32-bit object and %s is 64-bit"
+msgstr ""
+
+#: elf32-sh64.c:214 elf64-sh64.c:2394
+#, c-format
+msgid "%s: compiled as 64-bit object and %s is 32-bit"
+msgstr ""
+
+#: elf32-sh64.c:216 elf64-sh64.c:2396
+#, c-format
+msgid "%s: object size does not match that of target %s"
+msgstr ""
+
+#: elf32-sh64.c:447 elf64-sh64.c:2973
+#, c-format
+msgid "%s: encountered datalabel symbol in input"
+msgstr ""
+
+#: elf32-sh64.c:530
+msgid "PTB mismatch: a SHmedia address (bit 0 == 1)"
+msgstr ""
+
+#: elf32-sh64.c:533
+msgid "PTA mismatch: a SHcompact address (bit 0 == 0)"
+msgstr ""
+
+#: elf32-sh64.c:551
+#, c-format
+msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16"
+msgstr ""
+
+#: elf32-sh64.c:600 elf64-sh64.c:1684
+#, c-format
+msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
+msgstr ""
+
+#: elf32-sh64.c:684
+#, c-format
+msgid "%s: could not write out added .cranges entries"
+msgstr ""
+
+#: elf32-sh64.c:745
+#, c-format
+msgid "%s: could not write out sorted .cranges entries"
+msgstr ""
+
+#: elf32-sparc.c:1554 elf64-sparc.c:2280
#, c-format
msgid "%s: probably compiled without -fPIC?"
msgstr ""
@@ -1368,6 +1369,10 @@ msgstr ""
msgid "v850ea architecture"
msgstr ""
+#: elf32-ia64.c:2247 elf32-xstormy16.c:414 elf64-ia64.c:2247
+msgid "non-zero addend in @fptr reloc"
+msgstr ""
+
#: elf64-alpha.c:858
msgid "GPDISP relocation did not find ldah and lda instructions"
msgstr ""
@@ -1387,63 +1392,83 @@ msgstr ""
msgid "stub entry for %s cannot load .plt, dp offset = %ld"
msgstr ""
-#: elf64-mmix.c:1268
+#: elf64-mmix.c:1002
#, c-format
-msgid "%s: register relocation against non-register symbol: %s in %s"
+msgid ""
+"%s: Internal inconsistency error for value for\n"
+" linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%"
+"08lx\n"
+msgstr ""
+
+#: elf64-mmix.c:1386
+#, c-format
+msgid ""
+"%s: base-plus-offset relocation against register symbol: (unknown) in %s"
msgstr ""
-#: elf64-mmix.c:1270
-msgid "(unknown)"
+#: elf64-mmix.c:1391
+#, c-format
+msgid "%s: base-plus-offset relocation against register symbol: %s in %s"
+msgstr ""
+
+#: elf64-mmix.c:1435
+#, c-format
+msgid "%s: register relocation against non-register symbol: (unknown) in %s"
+msgstr ""
+
+#: elf64-mmix.c:1440
+#, c-format
+msgid "%s: register relocation against non-register symbol: %s in %s"
msgstr ""
-#: elf64-mmix.c:1305
+#: elf64-mmix.c:1477
#, c-format
msgid "%s: directive LOCAL valid only with a register or absolute value"
msgstr ""
-#: elf64-mmix.c:1333
+#: elf64-mmix.c:1505
#, c-format
msgid ""
"%s: LOCAL directive: Register $%ld is not a local register. First global "
"register is $%ld."
msgstr ""
-#: elf64-mmix.c:1609
+#: elf64-mmix.c:1967
#, c-format
msgid ""
"%s: Error: multiple definition of `%s'; start of %s is set in a earlier "
"linked file\n"
msgstr ""
-#: elf64-mmix.c:1668
+#: elf64-mmix.c:2026
msgid "Register section has contents\n"
msgstr ""
-#: elf64-ppc.c:1466 libbfd.c:1436
+#: elf64-ppc.c:1484 libbfd.c:1436
#, c-format
msgid "%s: compiled for a big endian system and target is little endian"
msgstr ""
-#: elf64-ppc.c:1468 libbfd.c:1438
+#: elf64-ppc.c:1486 libbfd.c:1438
#, c-format
msgid "%s: compiled for a little endian system and target is big endian"
msgstr ""
-#: elf64-ppc.c:3166
+#: elf64-ppc.c:3354
#, c-format
-msgid "linkage table overflow against `%s'"
+msgid "linkage table error against `%s'"
msgstr ""
-#: elf64-ppc.c:3244
+#: elf64-ppc.c:3436
msgid "stub section size doesn't match calculated size"
msgstr ""
-#: elf64-ppc.c:3845
+#: elf64-ppc.c:4065
#, c-format
msgid "%s: Relocation %s is not supported for symbol %s."
msgstr ""
-#: elf64-ppc.c:3889
+#: elf64-ppc.c:4109
#, c-format
msgid "%s: error: relocation %s not a multiple of 4"
msgstr ""
@@ -1460,20 +1485,20 @@ msgstr ""
#: elf64-sparc.c:1334
#, c-format
-msgid "Register %%g%d used incompatibly: %s in %s"
+msgid "Register %%g%d used incompatibly: %s in %s, previously %s in %s"
msgstr ""
-#: elf64-sparc.c:1338 elf64-sparc.c:1362 elf64-sparc.c:1411
+#: elf64-sparc.c:1357
#, c-format
-msgid " previously %s in %s"
+msgid "Symbol `%s' has differing types: REGISTER in %s, previously %s in %s"
msgstr ""
-#: elf64-sparc.c:1359 elf64-sparc.c:1408
+#: elf64-sparc.c:1404
#, c-format
-msgid "Symbol `%s' has differing types: %s in %s"
+msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s"
msgstr ""
-#: elf64-sparc.c:3014
+#: elf64-sparc.c:3008
#, c-format
msgid "%s: linking UltraSPARC specific with HAL specific code"
msgstr ""
@@ -1508,38 +1533,38 @@ msgstr ""
msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s"
msgstr ""
-#: elflink.h:4020
+#: elflink.h:4014
#, c-format
msgid "warning: type and size of dynamic symbol `%s' are not defined"
msgstr ""
-#: elflink.h:4329
+#: elflink.h:4320
#, c-format
msgid "%s: undefined versioned symbol name %s"
msgstr ""
-#: elflink.h:4559 elflink.h:4567 elflink.h:6218 elflink.h:7295
+#: elflink.h:4544 elflink.h:4552 elflink.h:6203 elflink.h:7280
msgid "Error: out of memory"
msgstr ""
-#: elflink.h:4729
+#: elflink.h:4714
msgid "Not enough memory to sort relocations"
msgstr ""
-#: elflink.h:5995
+#: elflink.h:5980
#, c-format
msgid "%s: could not find output section %s for input section %s"
msgstr ""
-#: elflink.h:6568
+#: elflink.h:6553
msgid "warning: relocation against removed section; zeroing"
msgstr ""
-#: elflink.h:6598
+#: elflink.h:6583
msgid "warning: relocation against removed section"
msgstr ""
-#: elflink.h:6611
+#: elflink.h:6596
#, c-format
msgid "local symbols in discarded section %s"
msgstr ""
@@ -1576,7 +1601,7 @@ msgstr ""
#: ieee.c:877
#, c-format
-msgid "%s: unimplemented ATI record %u for symbol %u"
+msgid "%s: unimplemented ATI record %u for symbol %u"
msgstr ""
#: ieee.c:902
@@ -1636,7 +1661,7 @@ msgstr ""
#: ihex.c:863
#, c-format
-msgid "%s: address 0x%s out of range for Intex Hex file"
+msgid "%s: address 0x%s out of range for Intel Hex file"
msgstr ""
#: libbfd.c:492
@@ -1648,14 +1673,14 @@ msgstr ""
msgid "not mapping: env var not set\n"
msgstr ""
-#: libbfd.c:1463
+#: libbfd.c:1467
#, c-format
-msgid "Deprecated %s called"
+msgid "Deprecated %s called at %s line %d in %s\n"
msgstr ""
-#: libbfd.c:1465
+#: libbfd.c:1470
#, c-format
-msgid " at %s line %d in %s\n"
+msgid "Deprecated %s called\n"
msgstr ""
#: linker.c:1849
@@ -1673,142 +1698,142 @@ msgstr ""
msgid "%s: access beyond end of merged section (%ld + %ld)"
msgstr ""
-#: mmo.c:460
+#: mmo.c:459
#, c-format
msgid "%s: No core to allocate section name %s\n"
msgstr ""
-#: mmo.c:537
+#: mmo.c:535
#, c-format
msgid "%s: No core to allocate a symbol %d bytes long\n"
msgstr ""
-#: mmo.c:1190
+#: mmo.c:1188
#, c-format
msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n"
msgstr ""
-#: mmo.c:1336
+#: mmo.c:1334
#, c-format
msgid ""
"%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name "
"starting with `%s'\n"
msgstr ""
-#: mmo.c:1571
+#: mmo.c:1569
#, c-format
msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
msgstr ""
-#: mmo.c:1581
+#: mmo.c:1579
#, c-format
msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
msgstr ""
-#: mmo.c:1617
+#: mmo.c:1615
#, c-format
msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
msgstr ""
-#: mmo.c:1663
+#: mmo.c:1661
#, c-format
msgid ""
"%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
msgstr ""
-#: mmo.c:1702
+#: mmo.c:1700
#, c-format
msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
msgstr ""
-#: mmo.c:1711
+#: mmo.c:1709
#, c-format
msgid ""
"%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
msgstr ""
-#: mmo.c:1734
+#: mmo.c:1732
#, c-format
msgid ""
"%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d "
"for lop_fixrx\n"
msgstr ""
-#: mmo.c:1757
+#: mmo.c:1755
#, c-format
msgid "%s: cannot allocate file name for file number %d, %d bytes\n"
msgstr ""
-#: mmo.c:1777
+#: mmo.c:1775
#, c-format
msgid ""
"%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
msgstr ""
-#: mmo.c:1790
+#: mmo.c:1788
#, c-format
msgid ""
"%s: invalid mmo file: file name for number %d was not specified before use\n"
msgstr ""
-#: mmo.c:1896
+#: mmo.c:1894
#, c-format
msgid ""
"%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
msgstr ""
-#: mmo.c:1932
+#: mmo.c:1930
#, c-format
msgid "%s: invalid mmo file: lop_end not last item in file\n"
msgstr ""
-#: mmo.c:1945
+#: mmo.c:1943
#, c-format
msgid ""
"%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras "
"to the preceding lop_stab (%ld)\n"
msgstr ""
-#: mmo.c:2610
+#: mmo.c:2608
#, c-format
msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
msgstr ""
-#: mmo.c:2898
+#: mmo.c:2896
#, c-format
msgid ""
"%s: Bad symbol definition: `Main' set to %s rather than the start address %"
"s\n"
msgstr ""
-#: mmo.c:2932
+#: mmo.c:2930
#, c-format
msgid ""
"%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: "
"%d. Only `Main' will be emitted.\n"
msgstr ""
-#: mmo.c:2977
+#: mmo.c:2975
#, c-format
msgid "%s: internal error, symbol table changed size from %d to %d words\n"
msgstr ""
-#: mmo.c:3032
+#: mmo.c:3030
#, c-format
msgid "%s: internal error, internal register section %s had contents\n"
msgstr ""
-#: mmo.c:3084
+#: mmo.c:3082
#, c-format
msgid "%s: no initialized registers; section length 0\n"
msgstr ""
-#: mmo.c:3090
+#: mmo.c:3088
#, c-format
msgid "%s: too many initialized registers; section length %ld\n"
msgstr ""
-#: mmo.c:3095
+#: mmo.c:3093
#, c-format
msgid ""
"%s: invalid start address for initialized registers of length %ld: 0x%lx%"
@@ -1945,7 +1970,7 @@ msgstr ""
msgid "%s:%d: Unexpected character `%s' in S-record file\n"
msgstr ""
-#: syms.c:996
+#: syms.c:998
msgid "Unsupported .stab relocation"
msgstr ""
@@ -2000,193 +2025,110 @@ msgstr ""
msgid "failed to enter %s"
msgstr ""
-#: vms-tir.c:78
+#: vms-tir.c:81
msgid "No Mem !"
msgstr ""
-#: vms-tir.c:313
-msgid "Bad section index in ETIR_S_C_STA_PQ"
-msgstr ""
-
-#: vms-tir.c:328
+#: vms-tir.c:362
#, c-format
-msgid "Unsupported STA cmd %d"
+msgid "bad section index in %s"
msgstr ""
-#: vms-tir.c:333 vms-tir.c:1301
+#: vms-tir.c:375
#, c-format
-msgid "Reserved STA cmd %d"
+msgid "unsupported STA cmd %s"
msgstr ""
-#: vms-tir.c:443
+#: vms-tir.c:380 vms-tir.c:1240
#, c-format
-msgid "ETIR_S_C_STO_GBL: no symbol \"%s\""
+msgid "reserved STA cmd %d"
msgstr ""
-#: vms-tir.c:465
+#: vms-tir.c:491 vms-tir.c:514
#, c-format
-msgid "ETIR_S_C_STO_CA: no symbol \"%s\""
-msgstr ""
-
-#: vms-tir.c:478
-msgid "ETIR_S_C_STO_RB/AB: Not supported"
-msgstr ""
-
-#: vms-tir.c:538
-msgid "ETIR_S_C_STO_LP_PSB: Not supported"
+msgid "%s: no symbol \"%s\""
msgstr ""
-#: vms-tir.c:544
-msgid "ETIR_S_C_STO_HINT_GBL: not implemented"
-msgstr ""
-
-#: vms-tir.c:550
-msgid "ETIR_S_C_STO_HINT_PS: not implemented"
-msgstr ""
-
-#: vms-tir.c:554 vms-tir.c:1473
+#. unsigned shift
+#. rotate
+#. Redefine symbol to current location.
+#. Define a literal.
+#: vms-tir.c:581 vms-tir.c:693 vms-tir.c:803 vms-tir.c:821 vms-tir.c:829
+#: vms-tir.c:838 vms-tir.c:1563
#, c-format
-msgid "Reserved STO cmd %d"
-msgstr ""
-
-#: vms-tir.c:667
-msgid "ETIR_S_C_OPR_INSV: Not supported"
-msgstr ""
-
-#: vms-tir.c:685
-msgid "ETIR_S_C_OPR_USH: Not supported"
-msgstr ""
-
-#: vms-tir.c:691
-msgid "ETIR_S_C_OPR_ROT: Not supported"
-msgstr ""
-
-#: vms-tir.c:710
-msgid "ETIR_S_C_OPR_REDEF: Not supported"
-msgstr ""
-
-#: vms-tir.c:716
-msgid "ETIR_S_C_OPR_DFLIT: Not supported"
+msgid "%s: not supported"
msgstr ""
-#: vms-tir.c:720 vms-tir.c:1668
+#: vms-tir.c:586 vms-tir.c:1418
#, c-format
-msgid "Reserved OPR cmd %d"
+msgid "%s: not implemented"
msgstr ""
-#: vms-tir.c:788 vms-tir.c:1737
+#: vms-tir.c:590 vms-tir.c:1422
#, c-format
-msgid "Reserved CTL cmd %d"
+msgid "reserved STO cmd %d"
msgstr ""
-#: vms-tir.c:816
-msgid "ETIR_S_C_STC_LP: not supported"
-msgstr ""
-
-#: vms-tir.c:834
-msgid "ETIR_S_C_STC_GBL: not supported"
-msgstr ""
-
-#: vms-tir.c:842
-msgid "ETIR_S_C_STC_GCA: not supported"
+#: vms-tir.c:708 vms-tir.c:1568
+#, c-format
+msgid "reserved OPR cmd %d"
msgstr ""
-#: vms-tir.c:851
-msgid "ETIR_S_C_STC_PS: not supported"
+#: vms-tir.c:776 vms-tir.c:1632
+#, c-format
+msgid "reserved CTL cmd %d"
msgstr ""
-#.
-#. * stack byte from image
-#. * arg: -
-#. *
-#.
-#: vms-tir.c:1199
-msgid "Stack-from-image not implemented"
+#. stack byte from image
+#. arg: none.
+#: vms-tir.c:1148
+msgid "stack-from-image not implemented"
msgstr ""
-#: vms-tir.c:1219
-msgid "Stack-entry-mask not fully implemented"
+#: vms-tir.c:1166
+msgid "stack-entry-mask not fully implemented"
msgstr ""
+#. compare procedure argument
+#. arg: cs symbol name
+#. by argument index
+#. da argument descriptor
#.
-#. * compare procedure argument
-#. * arg: cs symbol name
-#. * by argument index
-#. * da argument descriptor
-#. *
-#. * compare argument descriptor with symbol argument (ARG$V_PASSMECH)
-#. * and stack TRUE (args match) or FALSE (args dont match) value
-#.
-#: vms-tir.c:1235
+#. compare argument descriptor with symbol argument (ARG$V_PASSMECH)
+#. and stack TRUE (args match) or FALSE (args dont match) value.
+#: vms-tir.c:1180
msgid "PASSMECH not fully implemented"
msgstr ""
-#: vms-tir.c:1256
-msgid "Stack-local-symbol not fully implemented"
+#: vms-tir.c:1199
+msgid "stack-local-symbol not fully implemented"
msgstr ""
-#: vms-tir.c:1271
-msgid "Stack-literal not fully implemented"
+#: vms-tir.c:1212
+msgid "stack-literal not fully implemented"
msgstr ""
-#: vms-tir.c:1294
-msgid "Stack-local-symbol-entry-point-mask not fully implemented"
+#: vms-tir.c:1233
+msgid "stack-local-symbol-entry-point-mask not fully implemented"
msgstr ""
-#: vms-tir.c:1469
+#: vms-tir.c:1510 vms-tir.c:1522 vms-tir.c:1534 vms-tir.c:1546 vms-tir.c:1611
+#: vms-tir.c:1619 vms-tir.c:1627
#, c-format
-msgid "Unimplemented STO cmd %d"
-msgstr ""
-
-#: vms-tir.c:1608
-msgid "TIR_S_C_OPR_ASH incomplete"
-msgstr ""
-
-#: vms-tir.c:1622
-msgid "TIR_S_C_OPR_USH incomplete"
-msgstr ""
-
-#: vms-tir.c:1636
-msgid "TIR_S_C_OPR_ROT incomplete"
-msgstr ""
-
-#.
-#. * redefine symbol to current location
-#.
-#: vms-tir.c:1657
-msgid "TIR_S_C_OPR_REDEF not supported"
-msgstr ""
-
-#.
-#. * define a literal
-#.
-#: vms-tir.c:1664
-msgid "TIR_S_C_OPR_DFLIT not supported"
-msgstr ""
-
-#: vms-tir.c:1718
-msgid "TIR_S_C_CTL_DFLOC not fully implemented"
-msgstr ""
-
-#: vms-tir.c:1726
-msgid "TIR_S_C_CTL_STLOC not fully implemented"
-msgstr ""
-
-#: vms-tir.c:1734
-msgid "TIR_S_C_CTL_STKDL not fully implemented"
+msgid "%s: not fully implemented"
msgstr ""
-#: vms-tir.c:1791
+#: vms-tir.c:1684
#, c-format
-msgid "Obj code %d not found"
+msgid "obj code %d not found"
msgstr ""
-#: vms-tir.c:2137
+#: vms-tir.c:2019
#, c-format
msgid "SEC_RELOC with no relocs in section %s"
msgstr ""
-#: vms-tir.c:2424
+#: vms-tir.c:2307
#, c-format
msgid "Unhandled relocation %s"
msgstr ""
@@ -2275,226 +2217,220 @@ msgstr ""
msgid "%s: loader reloc in read-only section %s"
msgstr ""
-#: elf32-ia64.c:2190 elf64-ia64.c:2190
+#: elf32-ia64.c:2189 elf64-ia64.c:2189
msgid "@pltoff reloc against local symbol"
msgstr ""
-#: elf32-ia64.c:2248 elf64-ia64.c:2248
-msgid "non-zero addend in @fptr reloc"
-msgstr ""
-
-#: elf32-ia64.c:3414 elf64-ia64.c:3414
+#: elf32-ia64.c:3413 elf64-ia64.c:3413
#, c-format
msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
msgstr ""
-#: elf32-ia64.c:3425 elf64-ia64.c:3425
+#: elf32-ia64.c:3424 elf64-ia64.c:3424
#, c-format
msgid "%s: __gp does not cover short data segment"
msgstr ""
-#: elf32-ia64.c:3729 elf64-ia64.c:3729
+#: elf32-ia64.c:3728 elf64-ia64.c:3728
#, c-format
msgid "%s: linking non-pic code in a shared library"
msgstr ""
-#: elf32-ia64.c:3762 elf64-ia64.c:3762
+#: elf32-ia64.c:3761 elf64-ia64.c:3761
#, c-format
msgid "%s: @gprel relocation against dynamic symbol %s"
msgstr ""
-#: elf32-ia64.c:3901 elf64-ia64.c:3901
+#: elf32-ia64.c:3900 elf64-ia64.c:3900
#, c-format
msgid "%s: dynamic relocation against speculation fixup"
msgstr ""
-#: elf32-ia64.c:3909 elf64-ia64.c:3909
+#: elf32-ia64.c:3908 elf64-ia64.c:3908
#, c-format
msgid "%s: speculation fixup against undefined weak symbol"
msgstr ""
-#: elf32-ia64.c:4093 elf64-ia64.c:4093
+#: elf32-ia64.c:4092 elf64-ia64.c:4092
msgid "unsupported reloc"
msgstr ""
-#: elf32-ia64.c:4373 elf64-ia64.c:4373
+#: elf32-ia64.c:4372 elf64-ia64.c:4372
#, c-format
msgid "%s: linking trap-on-NULL-dereference with non-trapping files"
msgstr ""
-#: elf32-ia64.c:4382 elf64-ia64.c:4382
+#: elf32-ia64.c:4381 elf64-ia64.c:4381
#, c-format
msgid "%s: linking big-endian files with little-endian files"
msgstr ""
-#: elf32-ia64.c:4391 elf64-ia64.c:4391
+#: elf32-ia64.c:4390 elf64-ia64.c:4390
#, c-format
msgid "%s: linking 64-bit files with 32-bit files"
msgstr ""
-#: elf32-ia64.c:4400 elf64-ia64.c:4400
+#: elf32-ia64.c:4399 elf64-ia64.c:4399
#, c-format
msgid "%s: linking constant-gp files with non-constant-gp files"
msgstr ""
-#: elf32-ia64.c:4410 elf64-ia64.c:4410
+#: elf32-ia64.c:4409 elf64-ia64.c:4409
#, c-format
msgid "%s: linking auto-pic files with non-auto-pic files"
msgstr ""
-#: peigen.c:964 pepigen.c:964
+#: peigen.c:962 pepigen.c:962
#, c-format
msgid "%s: line number overflow: 0x%lx > 0xffff"
msgstr ""
-#: peigen.c:981 pepigen.c:981
+#: peigen.c:979 pepigen.c:979
#, c-format
msgid "%s: reloc overflow 1: 0x%lx > 0xffff"
msgstr ""
-#: peigen.c:995 pepigen.c:995
+#: peigen.c:993 pepigen.c:993
msgid "Export Directory [.edata (or where ever we found it)]"
msgstr ""
-#: peigen.c:996 pepigen.c:996
+#: peigen.c:994 pepigen.c:994
msgid "Import Directory [parts of .idata]"
msgstr ""
-#: peigen.c:997 pepigen.c:997
+#: peigen.c:995 pepigen.c:995
msgid "Resource Directory [.rsrc]"
msgstr ""
-#: peigen.c:998 pepigen.c:998
+#: peigen.c:996 pepigen.c:996
msgid "Exception Directory [.pdata]"
msgstr ""
-#: peigen.c:999 pepigen.c:999
+#: peigen.c:997 pepigen.c:997
msgid "Security Directory"
msgstr ""
-#: peigen.c:1000 pepigen.c:1000
+#: peigen.c:998 pepigen.c:998
msgid "Base Relocation Directory [.reloc]"
msgstr ""
-#: peigen.c:1001 pepigen.c:1001
+#: peigen.c:999 pepigen.c:999
msgid "Debug Directory"
msgstr ""
-#: peigen.c:1002 pepigen.c:1002
+#: peigen.c:1000 pepigen.c:1000
msgid "Description Directory"
msgstr ""
-#: peigen.c:1003 pepigen.c:1003
+#: peigen.c:1001 pepigen.c:1001
msgid "Special Directory"
msgstr ""
-#: peigen.c:1004 pepigen.c:1004
+#: peigen.c:1002 pepigen.c:1002
msgid "Thread Storage Directory [.tls]"
msgstr ""
-#: peigen.c:1005 pepigen.c:1005
+#: peigen.c:1003 pepigen.c:1003
msgid "Load Configuration Directory"
msgstr ""
-#: peigen.c:1006 pepigen.c:1006
+#: peigen.c:1004 pepigen.c:1004
msgid "Bound Import Directory"
msgstr ""
-#: peigen.c:1007 pepigen.c:1007
+#: peigen.c:1005 pepigen.c:1005
msgid "Import Address Table Directory"
msgstr ""
-#: peigen.c:1008 pepigen.c:1008
+#: peigen.c:1006 pepigen.c:1006
msgid "Delay Import Directory"
msgstr ""
-#: peigen.c:1009 peigen.c:1010 pepigen.c:1009 pepigen.c:1010
+#: peigen.c:1007 peigen.c:1008 pepigen.c:1007 pepigen.c:1008
msgid "Reserved"
msgstr ""
-#: peigen.c:1073 pepigen.c:1073
+#: peigen.c:1071 pepigen.c:1071
msgid ""
"\n"
"There is an import table, but the section containing it could not be found\n"
msgstr ""
-#: peigen.c:1078 pepigen.c:1078
+#: peigen.c:1076 pepigen.c:1076
#, c-format
msgid ""
"\n"
"There is an import table in %s at 0x%lx\n"
msgstr ""
-#: peigen.c:1115 pepigen.c:1115
+#: peigen.c:1113 pepigen.c:1113
#, c-format
msgid ""
"\n"
"Function descriptor located at the start address: %04lx\n"
msgstr ""
-#: peigen.c:1118 pepigen.c:1118
+#: peigen.c:1116 pepigen.c:1116
#, c-format
msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
msgstr ""
-#: peigen.c:1124 pepigen.c:1124
+#: peigen.c:1122 pepigen.c:1122
msgid ""
"\n"
"No reldata section! Function descriptor not decoded.\n"
msgstr ""
-#: peigen.c:1129 pepigen.c:1129
+#: peigen.c:1127 pepigen.c:1127
#, c-format
msgid ""
"\n"
"The Import Tables (interpreted %s section contents)\n"
msgstr ""
-#: peigen.c:1132 pepigen.c:1132
-msgid " vma: Hint Time Forward DLL First\n"
-msgstr ""
-
-#: peigen.c:1134 pepigen.c:1134
-msgid " Table Stamp Chain Name Thunk\n"
+#: peigen.c:1130 pepigen.c:1130
+msgid ""
+" vma: Hint Time Forward DLL First\n"
+" Table Stamp Chain Name Thunk\n"
msgstr ""
-#: peigen.c:1182 pepigen.c:1182
+#: peigen.c:1180 pepigen.c:1180
#, c-format
msgid ""
"\n"
"\tDLL Name: %s\n"
msgstr ""
-#: peigen.c:1186 peigen.c:1249 pepigen.c:1186 pepigen.c:1249
+#: peigen.c:1184 peigen.c:1247 pepigen.c:1184 pepigen.c:1247
msgid "\tvma: Hint/Ord Member-Name\n"
msgstr ""
-#: peigen.c:1248 pepigen.c:1248
+#: peigen.c:1246 pepigen.c:1246
msgid "\tThe Import Address Table (difference found)\n"
msgstr ""
-#: peigen.c:1255 pepigen.c:1255
+#: peigen.c:1253 pepigen.c:1253
msgid "\t>>> Ran out of IAT members!\n"
msgstr ""
-#: peigen.c:1273 pepigen.c:1273
+#: peigen.c:1271 pepigen.c:1271
msgid "\tThe Import Address Table is identical\n"
msgstr ""
-#: peigen.c:1345 pepigen.c:1345
+#: peigen.c:1343 pepigen.c:1343
msgid ""
"\n"
"There is an export table, but the section containing it could not be found\n"
msgstr ""
-#: peigen.c:1350 pepigen.c:1350
+#: peigen.c:1348 pepigen.c:1348
#, c-format
msgid ""
"\n"
"There is an export table in %s at 0x%lx\n"
msgstr ""
-#: peigen.c:1381 pepigen.c:1381
+#: peigen.c:1379 pepigen.c:1379
#, c-format
msgid ""
"\n"
@@ -2502,131 +2438,129 @@ msgid ""
"\n"
msgstr ""
-#: peigen.c:1385 pepigen.c:1385
+#: peigen.c:1383 pepigen.c:1383
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr ""
-#: peigen.c:1388 pepigen.c:1388
+#: peigen.c:1386 pepigen.c:1386
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr ""
-#: peigen.c:1391 pepigen.c:1391
+#: peigen.c:1389 pepigen.c:1389
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr ""
-#: peigen.c:1394 pepigen.c:1394
+#: peigen.c:1392 pepigen.c:1392
msgid "Name \t\t\t\t"
msgstr ""
-#: peigen.c:1400 pepigen.c:1400
+#: peigen.c:1398 pepigen.c:1398
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr ""
-#: peigen.c:1403 pepigen.c:1403
+#: peigen.c:1401 pepigen.c:1401
msgid "Number in:\n"
msgstr ""
-#: peigen.c:1406 pepigen.c:1406
+#: peigen.c:1404 pepigen.c:1404
#, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr ""
-#: peigen.c:1410 pepigen.c:1410
+#: peigen.c:1408 pepigen.c:1408
#, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr ""
-#: peigen.c:1413 pepigen.c:1413
+#: peigen.c:1411 pepigen.c:1411
msgid "Table Addresses\n"
msgstr ""
-#: peigen.c:1416 pepigen.c:1416
+#: peigen.c:1414 pepigen.c:1414
msgid "\tExport Address Table \t\t"
msgstr ""
-#: peigen.c:1421 pepigen.c:1421
+#: peigen.c:1419 pepigen.c:1419
msgid "\tName Pointer Table \t\t"
msgstr ""
-#: peigen.c:1426 pepigen.c:1426
+#: peigen.c:1424 pepigen.c:1424
msgid "\tOrdinal Table \t\t\t"
msgstr ""
-#: peigen.c:1441 pepigen.c:1441
+#: peigen.c:1439 pepigen.c:1439
#, c-format
msgid ""
"\n"
"Export Address Table -- Ordinal Base %ld\n"
msgstr ""
-#: peigen.c:1460 pepigen.c:1460
+#: peigen.c:1458 pepigen.c:1458
msgid "Forwarder RVA"
msgstr ""
-#: peigen.c:1471 pepigen.c:1471
+#: peigen.c:1469 pepigen.c:1469
msgid "Export RVA"
msgstr ""
-#: peigen.c:1478 pepigen.c:1478
+#: peigen.c:1476 pepigen.c:1476
msgid ""
"\n"
"[Ordinal/Name Pointer] Table\n"
msgstr ""
-#: peigen.c:1533 pepigen.c:1533
+#: peigen.c:1531 pepigen.c:1531
#, c-format
msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr ""
-#: peigen.c:1537 pepigen.c:1537
+#: peigen.c:1535 pepigen.c:1535
msgid ""
"\n"
"The Function Table (interpreted .pdata section contents)\n"
msgstr ""
-#: peigen.c:1540 pepigen.c:1540
+#: peigen.c:1538 pepigen.c:1538
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr ""
-#: peigen.c:1543 pepigen.c:1543
-msgid " vma:\t\tBegin End EH EH PrologEnd Exception\n"
-msgstr ""
-
-#: peigen.c:1545 pepigen.c:1545
-msgid " \t\tAddress Address Handler Data Address Mask\n"
+#: peigen.c:1540 pepigen.c:1540
+msgid ""
+" vma:\t\tBegin End EH EH PrologEnd Exception\n"
+" \t\tAddress Address Handler Data Address Mask\n"
msgstr ""
-#: peigen.c:1613 pepigen.c:1613
+#: peigen.c:1610 pepigen.c:1610
msgid " Register save millicode"
msgstr ""
-#: peigen.c:1616 pepigen.c:1616
+#: peigen.c:1613 pepigen.c:1613
msgid " Register restore millicode"
msgstr ""
-#: peigen.c:1619 pepigen.c:1619
+#: peigen.c:1616 pepigen.c:1616
msgid " Glue code sequence"
msgstr ""
-#: peigen.c:1671 pepigen.c:1671
+#: peigen.c:1668 pepigen.c:1668
msgid ""
"\n"
"\n"
"PE File Base Relocations (interpreted .reloc section contents)\n"
msgstr ""
-#: peigen.c:1701 pepigen.c:1701
+#: peigen.c:1698 pepigen.c:1698
#, c-format
msgid ""
"\n"
"Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n"
msgstr ""
-#: peigen.c:1714 pepigen.c:1714
+#: peigen.c:1711 pepigen.c:1711
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr ""
@@ -2634,7 +2568,7 @@ msgstr ""
#. The MS dumpbin program reportedly ands with 0xff0f before
#. printing the characteristics field. Not sure why. No reason to
#. emulate it here.
-#: peigen.c:1754 pepigen.c:1754
+#: peigen.c:1751 pepigen.c:1751
#, c-format
msgid ""
"\n"
diff --git a/contrib/binutils/bfd/reloc.c b/contrib/binutils/bfd/reloc.c
index d73ad24..559a351 100644
--- a/contrib/binutils/bfd/reloc.c
+++ b/contrib/binutils/bfd/reloc.c
@@ -1,6 +1,6 @@
/* BFD support for handling relocation entries.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001
+ 2000, 2001, 2002
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -65,25 +65,25 @@ CODE_FRAGMENT
.
.typedef enum bfd_reloc_status
.{
-. {* No errors detected *}
+. {* No errors detected. *}
. bfd_reloc_ok,
.
-. {* The relocation was performed, but there was an overflow. *}
+. {* The relocation was performed, but there was an overflow. *}
. bfd_reloc_overflow,
.
-. {* The address to relocate was not within the section supplied. *}
+. {* The address to relocate was not within the section supplied. *}
. bfd_reloc_outofrange,
.
-. {* Used by special functions *}
+. {* Used by special functions. *}
. bfd_reloc_continue,
.
-. {* Unsupported relocation size requested. *}
+. {* Unsupported relocation size requested. *}
. bfd_reloc_notsupported,
.
-. {* Unused *}
+. {* Unused. *}
. bfd_reloc_other,
.
-. {* The symbol to relocate against was undefined. *}
+. {* The symbol to relocate against was undefined. *}
. bfd_reloc_undefined,
.
. {* The relocation was performed, but may not be ok - presently
@@ -97,20 +97,21 @@ CODE_FRAGMENT
.
.typedef struct reloc_cache_entry
.{
-. {* A pointer into the canonical table of pointers *}
+. {* A pointer into the canonical table of pointers. *}
. struct symbol_cache_entry **sym_ptr_ptr;
.
-. {* offset in section *}
+. {* offset in section. *}
. bfd_size_type address;
.
-. {* addend for relocation value *}
+. {* addend for relocation value. *}
. bfd_vma addend;
.
-. {* Pointer to how to perform the required relocation *}
+. {* Pointer to how to perform the required relocation. *}
. reloc_howto_type *howto;
.
-.} arelent;
-
+.}
+.arelent;
+.
*/
/*
@@ -250,19 +251,19 @@ CODE_FRAGMENT
.
.enum complain_overflow
.{
-. {* Do not complain on overflow. *}
+. {* Do not complain on overflow. *}
. complain_overflow_dont,
.
. {* Complain if the bitfield overflows, whether it is considered
-. as signed or unsigned. *}
+. as signed or unsigned. *}
. complain_overflow_bitfield,
.
. {* Complain if the value overflows when considered as signed
-. number. *}
+. number. *}
. complain_overflow_signed,
.
. {* Complain if the value overflows when considered as an
-. unsigned number. *}
+. unsigned number. *}
. complain_overflow_unsigned
.};
@@ -276,7 +277,7 @@ SUBSUBSECTION
information that libbfd needs to know to tie up a back end's data.
CODE_FRAGMENT
-.struct symbol_cache_entry; {* Forward declaration *}
+.struct symbol_cache_entry; {* Forward declaration. *}
.
.struct reloc_howto_struct
.{
@@ -366,7 +367,7 @@ CODE_FRAGMENT
. empty (e.g., m88k bcs); this flag signals the fact. *}
. boolean pcrel_offset;
.};
-
+.
*/
/*
@@ -413,7 +414,7 @@ DESCRIPTION
. } \
. } \
. }
-
+.
*/
/*
@@ -457,8 +458,9 @@ DESCRIPTION
.{
. arelent relent;
. struct relent_chain *next;
-.} arelent_chain;
-
+.}
+.arelent_chain;
+.
*/
/* N_ONES produces N one bits, without overflowing machine arithmetic. */
@@ -819,11 +821,9 @@ space consuming. For each target:
bfd_arch_bits_per_address (abfd),
relocation);
- /*
- Either we are relocating all the way, or we don't want to apply
- the relocation to the reloc entry (probably because there isn't
- any room in the output format to describe addends to relocs)
- */
+ /* Either we are relocating all the way, or we don't want to apply
+ the relocation to the reloc entry (probably because there isn't
+ any room in the output format to describe addends to relocs). */
/* The cast to bfd_vma avoids a bug in the Alpha OSF/1 C compiler
(OSF version 1.3, compiler version 3.11). It miscompiles the
@@ -850,11 +850,10 @@ space consuming. For each target:
relocation >>= (bfd_vma) howto->rightshift;
- /* Shift everything up to where it's going to be used */
-
+ /* Shift everything up to where it's going to be used. */
relocation <<= (bfd_vma) howto->bitpos;
- /* Wait for the day when all have the mask in them */
+ /* Wait for the day when all have the mask in them. */
/* What we do:
i instruction to be left alone
@@ -975,7 +974,6 @@ DESCRIPTION
For now, this function should be considered reserved for the
assembler.
-
*/
bfd_reloc_status_type
@@ -1105,7 +1103,6 @@ bfd_install_relocation (abfd, reloc_entry, data_start, data_start_offset,
If we've relocated with a symbol with a section, change
into a ref to the section belonging to the symbol. */
-
reloc_entry->address += input_section->output_offset;
/* WTF?? */
@@ -1181,8 +1178,7 @@ space consuming. For each target:
6) if the resulting object files are the same, you have at least
made it no worse
7) if they are different you have to figure out which version is
- right
-*/
+ right. */
relocation -= reloc_entry->addend;
#endif
reloc_entry->addend = 0;
@@ -1207,11 +1203,9 @@ space consuming. For each target:
bfd_arch_bits_per_address (abfd),
relocation);
- /*
- Either we are relocating all the way, or we don't want to apply
- the relocation to the reloc entry (probably because there isn't
- any room in the output format to describe addends to relocs)
- */
+ /* Either we are relocating all the way, or we don't want to apply
+ the relocation to the reloc entry (probably because there isn't
+ any room in the output format to describe addends to relocs). */
/* The cast to bfd_vma avoids a bug in the Alpha OSF/1 C compiler
(OSF version 1.3, compiler version 3.11). It miscompiles the
@@ -1238,11 +1232,10 @@ space consuming. For each target:
relocation >>= (bfd_vma) howto->rightshift;
- /* Shift everything up to where it's going to be used */
-
+ /* Shift everything up to where it's going to be used. */
relocation <<= (bfd_vma) howto->bitpos;
- /* Wait for the day when all have the mask in them */
+ /* Wait for the day when all have the mask in them. */
/* What we do:
i instruction to be left alone
@@ -1963,6 +1956,13 @@ ENUMDOC
GP register.
ENUM
+ BFD_RELOC_ALPHA_BRSGP
+ENUMDOC
+ Like BFD_RELOC_23_PCREL_S2, except that the source and target must
+ share a common GP, and the target address is adjusted for
+ STO_ALPHA_STD_GPLOAD.
+
+ENUM
BFD_RELOC_MIPS_JMP
ENUMDOC
Bits 27..2 of the relocation address shifted right 2 bits;
@@ -2050,6 +2050,107 @@ ENUMX
ENUMX
BFD_RELOC_MIPS_JALR
COMMENT
+COMMENT
+ENUMX
+ BFD_RELOC_SH_GOT_LOW16
+ENUMX
+ BFD_RELOC_SH_GOT_MEDLOW16
+ENUMX
+ BFD_RELOC_SH_GOT_MEDHI16
+ENUMX
+ BFD_RELOC_SH_GOT_HI16
+ENUMX
+ BFD_RELOC_SH_GOTPLT_LOW16
+ENUMX
+ BFD_RELOC_SH_GOTPLT_MEDLOW16
+ENUMX
+ BFD_RELOC_SH_GOTPLT_MEDHI16
+ENUMX
+ BFD_RELOC_SH_GOTPLT_HI16
+ENUMX
+ BFD_RELOC_SH_PLT_LOW16
+ENUMX
+ BFD_RELOC_SH_PLT_MEDLOW16
+ENUMX
+ BFD_RELOC_SH_PLT_MEDHI16
+ENUMX
+ BFD_RELOC_SH_PLT_HI16
+ENUMX
+ BFD_RELOC_SH_GOTOFF_LOW16
+ENUMX
+ BFD_RELOC_SH_GOTOFF_MEDLOW16
+ENUMX
+ BFD_RELOC_SH_GOTOFF_MEDHI16
+ENUMX
+ BFD_RELOC_SH_GOTOFF_HI16
+ENUMX
+ BFD_RELOC_SH_GOTPC_LOW16
+ENUMX
+ BFD_RELOC_SH_GOTPC_MEDLOW16
+ENUMX
+ BFD_RELOC_SH_GOTPC_MEDHI16
+ENUMX
+ BFD_RELOC_SH_GOTPC_HI16
+ENUMX
+ BFD_RELOC_SH_COPY64
+ENUMX
+ BFD_RELOC_SH_GLOB_DAT64
+ENUMX
+ BFD_RELOC_SH_JMP_SLOT64
+ENUMX
+ BFD_RELOC_SH_RELATIVE64
+ENUMX
+ BFD_RELOC_SH_GOT10BY4
+ENUMX
+ BFD_RELOC_SH_GOT10BY8
+ENUMX
+ BFD_RELOC_SH_GOTPLT10BY4
+ENUMX
+ BFD_RELOC_SH_GOTPLT10BY8
+ENUMX
+ BFD_RELOC_SH_GOTPLT32
+COMMENT
+ENUMX
+ BFD_RELOC_SH_SHMEDIA_CODE
+ENUMX
+ BFD_RELOC_SH_IMMU5
+ENUMX
+ BFD_RELOC_SH_IMMS6
+ENUMX
+ BFD_RELOC_SH_IMMS6BY32
+ENUMX
+ BFD_RELOC_SH_IMMU6
+ENUMX
+ BFD_RELOC_SH_IMMS10
+ENUMX
+ BFD_RELOC_SH_IMMS10BY2
+ENUMX
+ BFD_RELOC_SH_IMMS10BY4
+ENUMX
+ BFD_RELOC_SH_IMMS10BY8
+ENUMX
+ BFD_RELOC_SH_IMMS16
+ENUMX
+ BFD_RELOC_SH_IMMU16
+ENUMX
+ BFD_RELOC_SH_IMM_LOW16
+ENUMX
+ BFD_RELOC_SH_IMM_LOW16_PCREL
+ENUMX
+ BFD_RELOC_SH_IMM_MEDLOW16
+ENUMX
+ BFD_RELOC_SH_IMM_MEDLOW16_PCREL
+ENUMX
+ BFD_RELOC_SH_IMM_MEDHI16
+ENUMX
+ BFD_RELOC_SH_IMM_MEDHI16_PCREL
+ENUMX
+ BFD_RELOC_SH_IMM_HI16
+ENUMX
+ BFD_RELOC_SH_IMM_HI16_PCREL
+ENUMX
+ BFD_RELOC_SH_PT_16
+COMMENT
ENUMDOC
MIPS ELF relocations.
@@ -3374,7 +3475,6 @@ DESCRIPTION
don't do relaxing -- i.e., does nothing.
*/
-/*ARGSUSED*/
boolean
bfd_generic_relax_section (abfd, section, link_info, again)
bfd *abfd ATTRIBUTE_UNUSED;
@@ -3399,7 +3499,6 @@ DESCRIPTION
don't do section gc -- i.e., does nothing.
*/
-/*ARGSUSED*/
boolean
bfd_generic_gc_sections (abfd, link_info)
bfd *abfd ATTRIBUTE_UNUSED;
@@ -3421,7 +3520,6 @@ DESCRIPTION
which don't have SEC_MERGE support -- i.e., does nothing.
*/
-/*ARGSUSED*/
boolean
bfd_generic_merge_sections (abfd, link_info)
bfd *abfd ATTRIBUTE_UNUSED;
@@ -3459,7 +3557,7 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
boolean relocateable;
asymbol **symbols;
{
- /* Get enough memory to hold the stuff */
+ /* Get enough memory to hold the stuff. */
bfd *input_bfd = link_order->u.indirect.section->owner;
asection *input_section = link_order->u.indirect.section;
@@ -3474,7 +3572,7 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
if (reloc_vector == NULL && reloc_size != 0)
goto error_return;
- /* read in the section */
+ /* Read in the section. */
if (!bfd_get_section_contents (input_bfd,
input_section,
(PTR) data,
@@ -3482,7 +3580,7 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
input_section->_raw_size))
goto error_return;
- /* We're not relaxing the section, so just copy the size info */
+ /* We're not relaxing the section, so just copy the size info. */
input_section->_cooked_size = input_section->_raw_size;
input_section->reloc_done = true;
@@ -3512,7 +3610,7 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
{
asection *os = input_section->output_section;
- /* A partial link, so keep the relocs */
+ /* A partial link, so keep the relocs. */
os->orelocation[os->reloc_count] = *parent;
os->reloc_count++;
}
diff --git a/contrib/binutils/bfd/rs6000-core.c b/contrib/binutils/bfd/rs6000-core.c
new file mode 100644
index 0000000..19ff4a4
--- /dev/null
+++ b/contrib/binutils/bfd/rs6000-core.c
@@ -0,0 +1,735 @@
+/* IBM RS/6000 "XCOFF" back-end for BFD.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
+ 2001, 2002
+ Free Software Foundation, Inc.
+ FIXME: Can someone provide a transliteration of this name into ASCII?
+ Using the following chars caused a compiler warning on HIUX (so I replaced
+ them with octal escapes), and isn't useful without an understanding of what
+ character set it is.
+ Written by Metin G. Ozisik, Mimi Ph\373\364ng-Th\345o V\365,
+ and John Gilmore.
+ Archive support from Damon A. Permezel.
+ Contributed by IBM Corporation and Cygnus Support.
+
+This file is part of BFD, the Binary File Descriptor library.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+/* This port currently only handles reading object files, except when
+ compiled on an RS/6000 host. -- no archive support, no core files.
+ In all cases, it does not support writing.
+
+ This is in a separate file from coff-rs6000.c, because it includes
+ system include files that conflict with coff/rs6000.h. */
+
+/* Internalcoff.h and coffcode.h modify themselves based on this flag. */
+#define RS6000COFF_C 1
+
+/* The AIX 4.1 kernel is obviously compiled with -D_LONG_LONG, so
+ we have to define _LONG_LONG for older versions of gcc to get the
+ proper alignments in the user structure. */
+#if defined(_AIX41) && !defined(_LONG_LONG)
+#define _LONG_LONG
+#endif
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "libbfd.h"
+
+#ifdef AIX_CORE
+
+/* AOUTHDR is defined by the above. We need another defn of it, from the
+ system include files. Punt the old one and get us a new name for the
+ typedef in the system include files. */
+#ifdef AOUTHDR
+#undef AOUTHDR
+#endif
+#define AOUTHDR second_AOUTHDR
+
+#undef SCNHDR
+
+/* ------------------------------------------------------------------------ */
+/* Support for core file stuff.. */
+/* ------------------------------------------------------------------------ */
+
+#include <sys/user.h>
+#define __LDINFO_PTRACE32__ /* for __ld_info32 */
+#define __LDINFO_PTRACE64__ /* for __ld_info64 */
+#include <sys/ldr.h>
+#include <sys/core.h>
+#include <sys/systemcfg.h>
+
+#define core_hdr(bfd) ((CoreHdr *) bfd->tdata.any)
+
+/* AIX 4.1 changed the names and locations of a few items in the core file.
+ AIX 4.3 defined an entirely new structure, core_dumpx, but kept support for
+ the previous 4.1 structure, core_dump.
+
+ AIX_CORE_DUMPX_CORE is defined (by configure) on AIX 4.3+, and
+ CORE_VERSION_1 is defined (by AIX core.h) as 2 on AIX 4.3+ and as 1 on AIX
+ 4.1 and 4.2. AIX pre-4.1 (aka 3.x) either doesn't define CORE_VERSION_1
+ or else defines it as 0. */
+
+#if defined(CORE_VERSION_1) && !CORE_VERSION_1
+# undef CORE_VERSION_1
+#endif
+
+/* The following union and macros allow this module to compile on all AIX
+ versions and to handle both core_dumpx and core_dump on 4.3+. CNEW_*()
+ and COLD_*() macros respectively retrieve core_dumpx and core_dump
+ values. */
+
+/* Union of 32-bit and 64-bit versions of ld_info. */
+
+typedef union {
+#ifdef __ld_info32
+ struct __ld_info32 l32;
+ struct __ld_info64 l64;
+#else
+ struct ld_info l32;
+ struct ld_info l64;
+#endif
+} LdInfo;
+
+/* Union of old and new core dump structures. */
+
+typedef union {
+#ifdef AIX_CORE_DUMPX_CORE
+ struct core_dumpx new; /* new AIX 4.3+ core dump */
+#else
+ struct core_dump new; /* for simpler coding */
+#endif
+ struct core_dump old; /* old AIX 4.2- core dump, still used on
+ 4.3+ with appropriate SMIT config */
+} CoreHdr;
+
+/* Union of old and new vm_info structures. */
+
+#ifdef CORE_VERSION_1
+typedef union {
+#ifdef AIX_CORE_DUMPX_CORE
+ struct vm_infox new;
+#else
+ struct vm_info new;
+#endif
+ struct vm_info old;
+} VmInfo;
+#endif
+
+/* Return whether CoreHdr C is in new or old format. */
+
+#ifdef AIX_CORE_DUMPX_CORE
+# define CORE_NEW(c) (!(c).old.c_entries)
+#else
+# define CORE_NEW(c) 0
+#endif
+
+/* Return the c_stackorg field from struct core_dumpx C. */
+
+#ifdef AIX_CORE_DUMPX_CORE
+# define CNEW_STACKORG(c) (c).c_stackorg
+#else
+# define CNEW_STACKORG(c) 0
+#endif
+
+/* Return the offset to the loader region from struct core_dump C. */
+
+#ifdef AIX_CORE_DUMPX_CORE
+# define CNEW_LOADER(c) (c).c_loader
+#else
+# define CNEW_LOADER(c) 0
+#endif
+
+/* Return the offset to the loader region from struct core_dump C. */
+
+#define COLD_LOADER(c) (c).c_tab
+
+/* Return the c_lsize field from struct core_dumpx C. */
+
+#ifdef AIX_CORE_DUMPX_CORE
+# define CNEW_LSIZE(c) (c).c_lsize
+#else
+# define CNEW_LSIZE(c) 0
+#endif
+
+/* Return the c_dataorg field from struct core_dumpx C. */
+
+#ifdef AIX_CORE_DUMPX_CORE
+# define CNEW_DATAORG(c) (c).c_dataorg
+#else
+# define CNEW_DATAORG(c) 0
+#endif
+
+/* Return the c_datasize field from struct core_dumpx C. */
+
+#ifdef AIX_CORE_DUMPX_CORE
+# define CNEW_DATASIZE(c) (c).c_datasize
+#else
+# define CNEW_DATASIZE(c) 0
+#endif
+
+/* Return the c_impl field from struct core_dumpx C. */
+
+#ifdef AIX_CORE_DUMPX_CORE
+# define CNEW_IMPL(c) (c).c_impl
+#else
+# define CNEW_IMPL(c) 0
+#endif
+
+/* Return the command string from struct core_dumpx C. */
+
+#ifdef AIX_CORE_DUMPX_CORE
+# define CNEW_COMM(c) (c).c_u.U_proc.pi_comm
+#else
+# define CNEW_COMM(c) 0
+#endif
+
+/* Return the command string from struct core_dump C. */
+
+#ifdef CORE_VERSION_1
+# define COLD_COMM(c) (c).c_u.U_comm
+#else
+# define COLD_COMM(c) (c).c_u.u_comm
+#endif
+
+/* Return the struct __context64 pointer from struct core_dumpx C. */
+
+#ifdef AIX_CORE_DUMPX_CORE
+# define CNEW_CONTEXT64(c) (c).c_flt.hctx.r64
+#else
+# define CNEW_CONTEXT64(c) c
+#endif
+
+/* Return the struct mstsave pointer from struct core_dumpx C. */
+
+#ifdef AIX_CORE_DUMPX_CORE
+# define CNEW_MSTSAVE(c) (c).c_flt.hctx.r32
+#else
+# define CNEW_MSTSAVE(c) c
+#endif
+
+/* Return the struct mstsave pointer from struct core_dump C. */
+
+#ifdef CORE_VERSION_1
+# define COLD_MSTSAVE(c) (c).c_mst
+#else
+# define COLD_MSTSAVE(c) (c).c_u.u_save
+#endif
+
+/* Return whether struct core_dumpx is from a 64-bit process. */
+
+#ifdef AIX_CORE_DUMPX_CORE
+# define CNEW_PROC64(c) IS_PROC64(&(c).c_u.U_proc)
+#else
+# define CNEW_PROC64(c) 0
+#endif
+
+/* Magic end-of-stack addresses for old core dumps. This is _very_ fragile,
+ but I don't see any easy way to get that info right now. */
+
+#ifdef CORE_VERSION_1
+# define COLD_STACKEND 0x2ff23000
+#else
+# define COLD_STACKEND 0x2ff80000
+#endif
+
+/* Size of the leading portion that old and new core dump structures have in
+ common. */
+#define CORE_COMMONSZ ((int) &((struct core_dump *) 0)->c_entries \
+ + sizeof (((struct core_dump *) 0)->c_entries))
+
+/* Try to read into CORE the header from the core file associated with ABFD.
+ Return success. */
+
+static boolean
+read_hdr (bfd *abfd, CoreHdr *core)
+{
+ bfd_size_type size;
+
+ if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
+ return false;
+
+ /* Read the leading portion that old and new core dump structures have in
+ common. */
+ size = CORE_COMMONSZ;
+ if (bfd_bread (core, size, abfd) != size)
+ return false;
+
+ /* Read the trailing portion of the structure. */
+ if (CORE_NEW (*core))
+ size = sizeof (core->new);
+ else
+ size = sizeof (core->old);
+ size -= CORE_COMMONSZ;
+ return bfd_bread ((char *) core + CORE_COMMONSZ, size, abfd) == size;
+}
+
+static asection *
+make_bfd_asection (abfd, name, flags, _raw_size, vma, filepos)
+ bfd *abfd;
+ const char *name;
+ flagword flags;
+ bfd_size_type _raw_size;
+ bfd_vma vma;
+ file_ptr filepos;
+{
+ asection *asect;
+
+ asect = bfd_make_section_anyway (abfd, name);
+ if (!asect)
+ return NULL;
+
+ asect->flags = flags;
+ asect->_raw_size = _raw_size;
+ asect->vma = vma;
+ asect->filepos = filepos;
+ asect->alignment_power = 8;
+
+ return asect;
+}
+
+/* Decide if a given bfd represents a `core' file or not. There really is no
+ magic number or anything like, in rs6000coff. */
+
+const bfd_target *
+rs6000coff_core_p (abfd)
+ bfd *abfd;
+{
+ CoreHdr core;
+ struct stat statbuf;
+ bfd_size_type size;
+ char *tmpptr;
+
+ /* Values from new and old core structures. */
+ int c_flag;
+ file_ptr c_stack, c_regoff, c_loader;
+ bfd_size_type c_size, c_regsize, c_lsize;
+ bfd_vma c_stackend;
+ void *c_regptr;
+ int proc64;
+
+ if (!read_hdr (abfd, &core))
+ {
+ if (bfd_get_error () != bfd_error_system_call)
+ bfd_set_error (bfd_error_wrong_format);
+ return NULL;
+ }
+
+ /* Copy fields from new or old core structure. */
+ if (CORE_NEW (core))
+ {
+ c_flag = core.new.c_flag;
+ c_stack = (file_ptr) core.new.c_stack;
+ c_size = core.new.c_size;
+ c_stackend = CNEW_STACKORG (core.new) + c_size;
+ c_lsize = CNEW_LSIZE (core.new);
+ c_loader = CNEW_LOADER (core.new);
+ proc64 = CNEW_PROC64 (core.new);
+ }
+ else
+ {
+ c_flag = core.old.c_flag;
+ c_stack = (file_ptr) core.old.c_stack;
+ c_size = core.old.c_size;
+ c_stackend = COLD_STACKEND;
+ c_lsize = 0x7ffffff;
+ c_loader = (file_ptr) COLD_LOADER (core.old);
+ proc64 = 0;
+ }
+
+ if (proc64)
+ {
+ c_regsize = sizeof (CNEW_CONTEXT64 (core.new));
+ c_regptr = &CNEW_CONTEXT64 (core.new);
+ }
+ else if (CORE_NEW (core))
+ {
+ c_regsize = sizeof (CNEW_MSTSAVE (core.new));
+ c_regptr = &CNEW_MSTSAVE (core.new);
+ }
+ else
+ {
+ c_regsize = sizeof (COLD_MSTSAVE (core.old));
+ c_regptr = &COLD_MSTSAVE (core.old);
+ }
+ c_regoff = (char *) c_regptr - (char *) &core;
+
+ if (bfd_stat (abfd, &statbuf) < 0)
+ {
+ bfd_set_error (bfd_error_system_call);
+ return NULL;
+ }
+
+ /* If the core file ulimit is too small, the system will first
+ omit the data segment, then omit the stack, then decline to
+ dump core altogether (as far as I know UBLOCK_VALID and LE_VALID
+ are always set) (this is based on experimentation on AIX 3.2).
+ Now, the thing is that GDB users will be surprised
+ if segments just silently don't appear (well, maybe they would
+ think to check "info files", I don't know).
+
+ For the data segment, we have no choice but to keep going if it's
+ not there, since the default behavior is not to dump it (regardless
+ of the ulimit, it's based on SA_FULLDUMP). But for the stack segment,
+ if it's not there, we refuse to have anything to do with this core
+ file. The usefulness of a core dump without a stack segment is pretty
+ limited anyway. */
+
+ if (!(c_flag & UBLOCK_VALID)
+ || !(c_flag & LE_VALID))
+ {
+ bfd_set_error (bfd_error_wrong_format);
+ return NULL;
+ }
+
+ if (!(c_flag & USTACK_VALID))
+ {
+ bfd_set_error (bfd_error_file_truncated);
+ return NULL;
+ }
+
+ /* Don't check the core file size for a full core, AIX 4.1 includes
+ additional shared library sections in a full core. */
+ if (!(c_flag & (FULL_CORE | CORE_TRUNC)))
+ {
+ /* If the size is wrong, it means we're misinterpreting something. */
+ if (c_stack + (file_ptr) c_size != statbuf.st_size)
+ {
+ bfd_set_error (bfd_error_wrong_format);
+ return NULL;
+ }
+ }
+
+ /* Sanity check on the c_tab field. */
+ if (!CORE_NEW (core) && (c_loader < (file_ptr) sizeof core.old ||
+ c_loader >= statbuf.st_size ||
+ c_loader >= c_stack))
+ {
+ bfd_set_error (bfd_error_wrong_format);
+ return NULL;
+ }
+
+ /* Issue warning if the core file was truncated during writing. */
+ if (c_flag & CORE_TRUNC)
+ (*_bfd_error_handler) (_("%s: warning core file truncated"),
+ bfd_get_filename (abfd));
+
+ /* Allocate core file header. */
+ size = CORE_NEW (core) ? sizeof (core.new) : sizeof (core.old);
+ tmpptr = (char *) bfd_zalloc (abfd, (bfd_size_type) size);
+ if (!tmpptr)
+ return NULL;
+
+ /* Copy core file header. */
+ memcpy (tmpptr, &core, size);
+ set_tdata (abfd, tmpptr);
+
+ /* Set architecture. */
+ if (CORE_NEW (core))
+ {
+ enum bfd_architecture arch;
+ unsigned long mach;
+
+ switch (CNEW_IMPL (core.new))
+ {
+ case POWER_RS1:
+ case POWER_RSC:
+ case POWER_RS2:
+ arch = bfd_arch_rs6000;
+ mach = bfd_mach_rs6k;
+ break;
+ default:
+ arch = bfd_arch_powerpc;
+ mach = bfd_mach_ppc;
+ break;
+ }
+ bfd_default_set_arch_mach (abfd, arch, mach);
+ }
+
+ /* .stack section. */
+ if (!make_bfd_asection (abfd, ".stack",
+ SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS,
+ c_size, c_stackend - c_size, c_stack))
+ goto fail;
+
+ /* .reg section for all registers. */
+ if (!make_bfd_asection (abfd, ".reg",
+ SEC_HAS_CONTENTS,
+ c_regsize, (bfd_vma) 0, c_regoff))
+ goto fail;
+
+ /* .ldinfo section.
+ To actually find out how long this section is in this particular
+ core dump would require going down the whole list of struct ld_info's.
+ See if we can just fake it. */
+ if (!make_bfd_asection (abfd, ".ldinfo",
+ SEC_HAS_CONTENTS,
+ c_lsize, (bfd_vma) 0, c_loader))
+ goto fail;
+
+#ifndef CORE_VERSION_1
+ /* .data section if present.
+ AIX 3 dumps the complete data section and sets FULL_CORE if the
+ ulimit is large enough, otherwise the data section is omitted.
+ AIX 4 sets FULL_CORE even if the core file is truncated, we have
+ to examine core.c_datasize below to find out the actual size of
+ the .data section. */
+ if (c_flag & FULL_CORE)
+ {
+ if (!make_bfd_asection (abfd, ".data",
+ SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS,
+ (bfd_size_type) core.old.c_u.u_dsize,
+ (bfd_vma)
+ CDATA_ADDR (core.old.c_u.u_dsize),
+ c_stack + c_size))
+ goto fail;
+ }
+#endif
+
+#ifdef CORE_VERSION_1
+ /* AIX 4 adds data sections from loaded objects to the core file,
+ which can be found by examining ldinfo, and anonymously mmapped
+ regions. */
+ {
+ LdInfo ldinfo;
+ bfd_size_type ldi_datasize;
+ file_ptr ldi_core;
+ uint ldi_next;
+ bfd_vma ldi_dataorg;
+
+ /* Fields from new and old core structures. */
+ bfd_size_type c_datasize, c_vmregions;
+ file_ptr c_data, c_vmm;
+
+ if (CORE_NEW (core))
+ {
+ c_datasize = CNEW_DATASIZE (core.new);
+ c_data = (file_ptr) core.new.c_data;
+ c_vmregions = core.new.c_vmregions;
+ c_vmm = (file_ptr) core.new.c_vmm;
+ }
+ else
+ {
+ c_datasize = core.old.c_datasize;
+ c_data = (file_ptr) core.old.c_data;
+ c_vmregions = core.old.c_vmregions;
+ c_vmm = (file_ptr) core.old.c_vmm;
+ }
+
+ /* .data section from executable. */
+ if (c_datasize)
+ {
+ if (!make_bfd_asection (abfd, ".data",
+ SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS,
+ c_datasize,
+ (bfd_vma) CDATA_ADDR (c_datasize),
+ c_data))
+ goto fail;
+ }
+
+ /* .data sections from loaded objects. */
+ if (proc64)
+ size = (int) ((LdInfo *) 0)->l64.ldinfo_filename;
+ else
+ size = (int) ((LdInfo *) 0)->l32.ldinfo_filename;
+
+ while (1)
+ {
+ if (bfd_seek (abfd, c_loader, SEEK_SET) != 0)
+ goto fail;
+ if (bfd_bread (&ldinfo, size, abfd) != size)
+ goto fail;
+
+ if (proc64)
+ {
+ ldi_core = ldinfo.l64.ldinfo_core;
+ ldi_datasize = ldinfo.l64.ldinfo_datasize;
+ ldi_dataorg = (bfd_vma) ldinfo.l64.ldinfo_dataorg;
+ ldi_next = ldinfo.l64.ldinfo_next;
+ }
+ else
+ {
+ ldi_core = ldinfo.l32.ldinfo_core;
+ ldi_datasize = ldinfo.l32.ldinfo_datasize;
+ ldi_dataorg = (bfd_vma) (long) ldinfo.l32.ldinfo_dataorg;
+ ldi_next = ldinfo.l32.ldinfo_next;
+ }
+
+ if (ldi_core)
+ if (!make_bfd_asection (abfd, ".data",
+ SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS,
+ ldi_datasize, ldi_dataorg, ldi_core))
+ goto fail;
+
+ if (ldi_next == 0)
+ break;
+ c_loader += ldi_next;
+ }
+
+ /* .vmdata sections from anonymously mmapped regions. */
+ if (c_vmregions)
+ {
+ bfd_size_type i;
+
+ if (bfd_seek (abfd, c_vmm, SEEK_SET) != 0)
+ goto fail;
+
+ for (i = 0; i < c_vmregions; i++)
+ {
+ VmInfo vminfo;
+ bfd_size_type vminfo_size;
+ file_ptr vminfo_offset;
+ bfd_vma vminfo_addr;
+
+ size = CORE_NEW (core) ? sizeof (vminfo.new) : sizeof (vminfo.old);
+ if (bfd_bread (&vminfo, size, abfd) != size)
+ goto fail;
+
+ if (CORE_NEW (core))
+ {
+ vminfo_addr = (bfd_vma) vminfo.new.vminfo_addr;
+ vminfo_size = vminfo.new.vminfo_size;
+ vminfo_offset = vminfo.new.vminfo_offset;
+ }
+ else
+ {
+ vminfo_addr = (bfd_vma) (long) vminfo.old.vminfo_addr;
+ vminfo_size = vminfo.old.vminfo_size;
+ vminfo_offset = vminfo.old.vminfo_offset;
+ }
+
+ if (vminfo_offset)
+ if (!make_bfd_asection (abfd, ".vmdata",
+ SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS,
+ vminfo_size, vminfo_addr,
+ vminfo_offset))
+ goto fail;
+ }
+ }
+ }
+#endif
+
+ return abfd->xvec; /* This is garbage for now. */
+
+ fail:
+ bfd_release (abfd, abfd->tdata.any);
+ abfd->tdata.any = NULL;
+ bfd_section_list_clear (abfd);
+ return NULL;
+}
+
+/* Return `true' if given core is from the given executable. */
+
+boolean
+rs6000coff_core_file_matches_executable_p (core_bfd, exec_bfd)
+ bfd *core_bfd;
+ bfd *exec_bfd;
+{
+ CoreHdr core;
+ bfd_size_type size;
+ char *path, *s;
+ size_t alloc;
+ const char *str1, *str2;
+ boolean ret;
+ file_ptr c_loader;
+
+ if (!read_hdr (core_bfd, &core))
+ return false;
+
+ if (CORE_NEW (core))
+ c_loader = CNEW_LOADER (core.new);
+ else
+ c_loader = (file_ptr) COLD_LOADER (core.old);
+
+ if (CORE_NEW (core) && CNEW_PROC64 (core.new))
+ size = (int) ((LdInfo *) 0)->l64.ldinfo_filename;
+ else
+ size = (int) ((LdInfo *) 0)->l32.ldinfo_filename;
+
+ if (bfd_seek (core_bfd, c_loader + size, SEEK_SET) != 0)
+ return false;
+
+ alloc = 100;
+ path = bfd_malloc ((bfd_size_type) alloc);
+ if (path == NULL)
+ return false;
+ s = path;
+
+ while (1)
+ {
+ if (bfd_bread (s, (bfd_size_type) 1, core_bfd) != 1)
+ {
+ free (path);
+ return false;
+ }
+ if (*s == '\0')
+ break;
+ ++s;
+ if (s == path + alloc)
+ {
+ char *n;
+
+ alloc *= 2;
+ n = bfd_realloc (path, (bfd_size_type) alloc);
+ if (n == NULL)
+ {
+ free (path);
+ return false;
+ }
+ s = n + (path - s);
+ path = n;
+ }
+ }
+
+ str1 = strrchr (path, '/');
+ str2 = strrchr (exec_bfd->filename, '/');
+
+ /* step over character '/' */
+ str1 = str1 != NULL ? str1 + 1 : path;
+ str2 = str2 != NULL ? str2 + 1 : exec_bfd->filename;
+
+ if (strcmp (str1, str2) == 0)
+ ret = true;
+ else
+ ret = false;
+
+ free (path);
+
+ return ret;
+}
+
+char *
+rs6000coff_core_file_failing_command (abfd)
+ bfd *abfd;
+{
+ CoreHdr *core = core_hdr (abfd);
+ char *com = CORE_NEW (*core) ?
+ CNEW_COMM (core->new) : COLD_COMM (core->old);
+
+ if (*com)
+ return com;
+ else
+ return 0;
+}
+
+int
+rs6000coff_core_file_failing_signal (abfd)
+ bfd *abfd;
+{
+ CoreHdr *core = core_hdr (abfd);
+ return CORE_NEW (*core) ? core->new.c_signo : core->old.c_signo;
+}
+
+#endif /* AIX_CORE */
diff --git a/contrib/binutils/bfd/section.c b/contrib/binutils/bfd/section.c
index c1dc0b1..076a012 100644
--- a/contrib/binutils/bfd/section.c
+++ b/contrib/binutils/bfd/section.c
@@ -170,25 +170,20 @@ CODE_FRAGMENT
.{
. {* The name of the section; the name isn't a copy, the pointer is
. the same as that passed to bfd_make_section. *}
-.
. const char *name;
.
. {* A unique sequence number. *}
-.
. int id;
.
. {* Which section in the bfd; 0..n-1 as sections are created in a bfd. *}
-.
. int index;
.
. {* The next section in the list belonging to the BFD, or NULL. *}
-.
. struct sec *next;
.
. {* The field flags contains attributes of the section. Some
. flags are read in from the object file, and some are
. synthesized from other information. *}
-.
. flagword flags;
.
.#define SEC_NO_FLAGS 0x000
@@ -397,25 +392,21 @@ CODE_FRAGMENT
. backend can assign addresses (for example, in <<a.out>>, where
. the default address for <<.data>> is dependent on the specific
. target and various flags). *}
-.
. bfd_vma vma;
.
. {* The load address of the section - where it would be in a
. rom image; really only used for writing section header
-. information. *}
-.
+. information. *}
. bfd_vma lma;
.
. {* The size of the section in octets, as it will be output.
. Contains a value even if the section has no contents (e.g., the
. size of <<.bss>>). This will be filled in after relocation. *}
-.
. bfd_size_type _cooked_size;
.
. {* The original size on disk of the section, in octets. Normally this
. value is the same as the size, but if some relaxing has
. been done, then this value will be bigger. *}
-.
. bfd_size_type _raw_size;
.
. {* If this section is going to be output, then this value is the
@@ -425,49 +416,39 @@ CODE_FRAGMENT
. 100th octet (8-bit quantity) in the output section, this value
. would be 100. However, if the target byte size is 16 bits
. (bfd_octets_per_byte is "2"), this value would be 50. *}
-.
. bfd_vma output_offset;
.
. {* The output section through which to map on output. *}
-.
. struct sec *output_section;
.
. {* The alignment requirement of the section, as an exponent of 2 -
. e.g., 3 aligns to 2^3 (or 8). *}
-.
. unsigned int alignment_power;
.
. {* If an input section, a pointer to a vector of relocation
. records for the data in this section. *}
-.
. struct reloc_cache_entry *relocation;
.
. {* If an output section, a pointer to a vector of pointers to
. relocation records for the data in this section. *}
-.
. struct reloc_cache_entry **orelocation;
.
-. {* The number of relocation records in one of the above *}
-.
+. {* The number of relocation records in one of the above. *}
. unsigned reloc_count;
.
. {* Information below is back end specific - and not always used
. or updated. *}
.
. {* File position of section data. *}
-.
. file_ptr filepos;
.
. {* File position of relocation info. *}
-.
. file_ptr rel_filepos;
.
. {* File position of line data. *}
-.
. file_ptr line_filepos;
.
. {* Pointer to data for applications. *}
-.
. PTR userdata;
.
. {* If the SEC_IN_MEMORY flag is set, this points to the actual
@@ -475,48 +456,40 @@ CODE_FRAGMENT
. unsigned char *contents;
.
. {* Attached line number information. *}
-.
. alent *lineno;
.
. {* Number of line number records. *}
-.
. unsigned int lineno_count;
.
. {* Entity size for merging purposes. *}
-.
. unsigned int entsize;
.
. {* Optional information about a COMDAT entry; NULL if not COMDAT. *}
-.
. struct bfd_comdat_info *comdat;
.
. {* When a section is being output, this value changes as more
. linenumbers are written out. *}
-.
. file_ptr moving_line_filepos;
.
. {* What the section number is in the target world. *}
-.
. int target_index;
.
. PTR used_by_bfd;
.
. {* If this is a constructor section then here is a list of the
. relocations created to relocate items within it. *}
-.
. struct relent_chain *constructor_chain;
.
. {* The BFD which owns the section. *}
-.
. bfd *owner;
.
-. {* A symbol which points at this section only *}
+. {* A symbol which points at this section only. *}
. struct symbol_cache_entry *symbol;
. struct symbol_cache_entry **symbol_ptr_ptr;
.
. struct bfd_link_order *link_order_head;
. struct bfd_link_order *link_order_tail;
-.} asection ;
+.} asection;
.
.{* These sections are global, and are managed by BFD. The application
. and target back end are not permitted to change the values in
@@ -528,18 +501,18 @@ CODE_FRAGMENT
.#define BFD_COM_SECTION_NAME "*COM*"
.#define BFD_IND_SECTION_NAME "*IND*"
.
-.{* the absolute section *}
+.{* The absolute section. *}
.extern const asection bfd_abs_section;
.#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
.#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
-.{* Pointer to the undefined section *}
+.{* Pointer to the undefined section. *}
.extern const asection bfd_und_section;
.#define bfd_und_section_ptr ((asection *) &bfd_und_section)
.#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
-.{* Pointer to the common section *}
+.{* Pointer to the common section. *}
.extern const asection bfd_com_section;
.#define bfd_com_section_ptr ((asection *) &bfd_com_section)
-.{* Pointer to the indirect section *}
+.{* Pointer to the indirect section. *}
.extern const asection bfd_ind_section;
.#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
.#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
diff --git a/contrib/binutils/bfd/syms.c b/contrib/binutils/bfd/syms.c
index 9ec9dd8..b25306e 100644
--- a/contrib/binutils/bfd/syms.c
+++ b/contrib/binutils/bfd/syms.c
@@ -1,6 +1,6 @@
/* Generic symbol-table support for the BFD library.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001
+ 2000, 2001, 2002
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -183,126 +183,125 @@ CODE_FRAGMENT
.
.typedef struct symbol_cache_entry
.{
-. {* A pointer to the BFD which owns the symbol. This information
-. is necessary so that a back end can work out what additional
-. information (invisible to the application writer) is carried
-. with the symbol.
+. {* A pointer to the BFD which owns the symbol. This information
+. is necessary so that a back end can work out what additional
+. information (invisible to the application writer) is carried
+. with the symbol.
.
-. This field is *almost* redundant, since you can use section->owner
-. instead, except that some symbols point to the global sections
-. bfd_{abs,com,und}_section. This could be fixed by making
-. these globals be per-bfd (or per-target-flavor). FIXME. *}
+. This field is *almost* redundant, since you can use section->owner
+. instead, except that some symbols point to the global sections
+. bfd_{abs,com,und}_section. This could be fixed by making
+. these globals be per-bfd (or per-target-flavor). FIXME. *}
+. struct _bfd *the_bfd; {* Use bfd_asymbol_bfd(sym) to access this field. *}
.
-. struct _bfd *the_bfd; {* Use bfd_asymbol_bfd(sym) to access this field. *}
-.
-. {* The text of the symbol. The name is left alone, and not copied; the
-. application may not alter it. *}
+. {* The text of the symbol. The name is left alone, and not copied; the
+. application may not alter it. *}
. const char *name;
.
-. {* The value of the symbol. This really should be a union of a
-. numeric value with a pointer, since some flags indicate that
-. a pointer to another symbol is stored here. *}
+. {* The value of the symbol. This really should be a union of a
+. numeric value with a pointer, since some flags indicate that
+. a pointer to another symbol is stored here. *}
. symvalue value;
.
-. {* Attributes of a symbol: *}
-.
+. {* Attributes of a symbol. *}
.#define BSF_NO_FLAGS 0x00
.
-. {* The symbol has local scope; <<static>> in <<C>>. The value
-. is the offset into the section of the data. *}
+. {* The symbol has local scope; <<static>> in <<C>>. The value
+. is the offset into the section of the data. *}
.#define BSF_LOCAL 0x01
.
-. {* The symbol has global scope; initialized data in <<C>>. The
-. value is the offset into the section of the data. *}
+. {* The symbol has global scope; initialized data in <<C>>. The
+. value is the offset into the section of the data. *}
.#define BSF_GLOBAL 0x02
.
-. {* The symbol has global scope and is exported. The value is
-. the offset into the section of the data. *}
-.#define BSF_EXPORT BSF_GLOBAL {* no real difference *}
+. {* The symbol has global scope and is exported. The value is
+. the offset into the section of the data. *}
+.#define BSF_EXPORT BSF_GLOBAL {* No real difference. *}
.
-. {* A normal C symbol would be one of:
-. <<BSF_LOCAL>>, <<BSF_FORT_COMM>>, <<BSF_UNDEFINED>> or
-. <<BSF_GLOBAL>> *}
+. {* A normal C symbol would be one of:
+. <<BSF_LOCAL>>, <<BSF_FORT_COMM>>, <<BSF_UNDEFINED>> or
+. <<BSF_GLOBAL>>. *}
.
-. {* The symbol is a debugging record. The value has an arbitary
-. meaning, unless BSF_DEBUGGING_RELOC is also set. *}
+. {* The symbol is a debugging record. The value has an arbitary
+. meaning, unless BSF_DEBUGGING_RELOC is also set. *}
.#define BSF_DEBUGGING 0x08
.
-. {* The symbol denotes a function entry point. Used in ELF,
-. perhaps others someday. *}
+. {* The symbol denotes a function entry point. Used in ELF,
+. perhaps others someday. *}
.#define BSF_FUNCTION 0x10
.
-. {* Used by the linker. *}
+. {* Used by the linker. *}
.#define BSF_KEEP 0x20
.#define BSF_KEEP_G 0x40
.
-. {* A weak global symbol, overridable without warnings by
-. a regular global symbol of the same name. *}
+. {* A weak global symbol, overridable without warnings by
+. a regular global symbol of the same name. *}
.#define BSF_WEAK 0x80
.
-. {* This symbol was created to point to a section, e.g. ELF's
-. STT_SECTION symbols. *}
+. {* This symbol was created to point to a section, e.g. ELF's
+. STT_SECTION symbols. *}
.#define BSF_SECTION_SYM 0x100
.
-. {* The symbol used to be a common symbol, but now it is
-. allocated. *}
+. {* The symbol used to be a common symbol, but now it is
+. allocated. *}
.#define BSF_OLD_COMMON 0x200
.
-. {* The default value for common data. *}
+. {* The default value for common data. *}
.#define BFD_FORT_COMM_DEFAULT_VALUE 0
.
-. {* In some files the type of a symbol sometimes alters its
-. location in an output file - ie in coff a <<ISFCN>> symbol
-. which is also <<C_EXT>> symbol appears where it was
-. declared and not at the end of a section. This bit is set
-. by the target BFD part to convey this information. *}
-.
+. {* In some files the type of a symbol sometimes alters its
+. location in an output file - ie in coff a <<ISFCN>> symbol
+. which is also <<C_EXT>> symbol appears where it was
+. declared and not at the end of a section. This bit is set
+. by the target BFD part to convey this information. *}
.#define BSF_NOT_AT_END 0x400
.
-. {* Signal that the symbol is the label of constructor section. *}
+. {* Signal that the symbol is the label of constructor section. *}
.#define BSF_CONSTRUCTOR 0x800
.
-. {* Signal that the symbol is a warning symbol. The name is a
-. warning. The name of the next symbol is the one to warn about;
-. if a reference is made to a symbol with the same name as the next
-. symbol, a warning is issued by the linker. *}
+. {* Signal that the symbol is a warning symbol. The name is a
+. warning. The name of the next symbol is the one to warn about;
+. if a reference is made to a symbol with the same name as the next
+. symbol, a warning is issued by the linker. *}
.#define BSF_WARNING 0x1000
.
-. {* Signal that the symbol is indirect. This symbol is an indirect
-. pointer to the symbol with the same name as the next symbol. *}
+. {* Signal that the symbol is indirect. This symbol is an indirect
+. pointer to the symbol with the same name as the next symbol. *}
.#define BSF_INDIRECT 0x2000
.
-. {* BSF_FILE marks symbols that contain a file name. This is used
-. for ELF STT_FILE symbols. *}
+. {* BSF_FILE marks symbols that contain a file name. This is used
+. for ELF STT_FILE symbols. *}
.#define BSF_FILE 0x4000
.
-. {* Symbol is from dynamic linking information. *}
+. {* Symbol is from dynamic linking information. *}
.#define BSF_DYNAMIC 0x8000
.
-. {* The symbol denotes a data object. Used in ELF, and perhaps
-. others someday. *}
+. {* The symbol denotes a data object. Used in ELF, and perhaps
+. others someday. *}
.#define BSF_OBJECT 0x10000
.
-. {* This symbol is a debugging symbol. The value is the offset
-. into the section of the data. BSF_DEBUGGING should be set
-. as well. *}
+. {* This symbol is a debugging symbol. The value is the offset
+. into the section of the data. BSF_DEBUGGING should be set
+. as well. *}
.#define BSF_DEBUGGING_RELOC 0x20000
.
. flagword flags;
.
-. {* A pointer to the section to which this symbol is
-. relative. This will always be non NULL, there are special
-. sections for undefined and absolute symbols. *}
+. {* A pointer to the section to which this symbol is
+. relative. This will always be non NULL, there are special
+. sections for undefined and absolute symbols. *}
. struct sec *section;
.
-. {* Back end special data. *}
+. {* Back end special data. *}
. union
. {
. PTR p;
. bfd_vma i;
-. } udata;
+. }
+. udata;
+.}
+.asymbol;
.
-.} asymbol;
*/
#include "bfd.h"
@@ -335,7 +334,7 @@ DESCRIPTION
.#define bfd_get_symtab_upper_bound(abfd) \
. BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
-
+.
*/
/*
@@ -380,6 +379,7 @@ DESCRIPTION
.#define bfd_is_local_label_name(abfd, name) \
. BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
+.
*/
/*
@@ -396,7 +396,7 @@ DESCRIPTION
.#define bfd_canonicalize_symtab(abfd, location) \
. BFD_SEND (abfd, _bfd_canonicalize_symtab,\
. (abfd, location))
-
+.
*/
/*
@@ -492,6 +492,7 @@ DESCRIPTION
.#define bfd_make_empty_symbol(abfd) \
. BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
+.
*/
/*
@@ -530,6 +531,7 @@ DESCRIPTION
.#define bfd_make_debug_symbol(abfd,ptr,size) \
. BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
+.
*/
struct section_to_type
@@ -716,7 +718,7 @@ DESCRIPTION
.#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
. BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
. (ibfd, isymbol, obfd, osymbol))
-
+.
*/
/* The generic version of the function which returns mini symbols.
diff --git a/contrib/binutils/bfd/targets.c b/contrib/binutils/bfd/targets.c
index 352571a..78b4bbb 100644
--- a/contrib/binutils/bfd/targets.c
+++ b/contrib/binutils/bfd/targets.c
@@ -125,7 +125,7 @@ DESCRIPTION
. (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
. (bfd_assert (__FILE__,__LINE__), NULL))
.#endif
-
+.
This is the structure which defines the type of BFD this is. The
<<xvec>> member of the struct <<bfd>> itself points here. Each
module that implements access to a different target under BFD,
@@ -135,7 +135,8 @@ DESCRIPTION
the entry points which call them. Too bad we can't have one
macro to define them both!
-.enum bfd_flavour {
+.enum bfd_flavour
+.{
. bfd_target_unknown_flavour,
. bfd_target_aout_flavour,
. bfd_target_coff_flavour,
@@ -164,51 +165,40 @@ DESCRIPTION
.
.typedef struct bfd_target
.{
-
-Identifies the kind of target, e.g., SunOS4, Ultrix, etc.
-
+. {* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. *}
. char *name;
-
-The "flavour" of a back end is a general indication about the contents
-of a file.
-
+.
+. {* The "flavour" of a back end is a general indication about
+. the contents of a file. *}
. enum bfd_flavour flavour;
-
-The order of bytes within the data area of a file.
-
+.
+. {* The order of bytes within the data area of a file. *}
. enum bfd_endian byteorder;
-
-The order of bytes within the header parts of a file.
-
+.
+. {* The order of bytes within the header parts of a file. *}
. enum bfd_endian header_byteorder;
-
-A mask of all the flags which an executable may have set -
-from the set <<BFD_NO_FLAGS>>, <<HAS_RELOC>>, ...<<D_PAGED>>.
-
+.
+. {* A mask of all the flags which an executable may have set -
+. from the set <<BFD_NO_FLAGS>>, <<HAS_RELOC>>, ...<<D_PAGED>>. *}
. flagword object_flags;
-
-A mask of all the flags which a section may have set - from
-the set <<SEC_NO_FLAGS>>, <<SEC_ALLOC>>, ...<<SET_NEVER_LOAD>>.
-
+.
+. {* A mask of all the flags which a section may have set - from
+. the set <<SEC_NO_FLAGS>>, <<SEC_ALLOC>>, ...<<SET_NEVER_LOAD>>. *}
. flagword section_flags;
-
-The character normally found at the front of a symbol
-(if any), perhaps `_'.
-
+.
+. {* The character normally found at the front of a symbol.
+. (if any), perhaps `_'. *}
. char symbol_leading_char;
-
-The pad character for file names within an archive header.
-
+.
+. {* The pad character for file names within an archive header. *}
. char ar_pad_char;
-
-The maximum number of characters in an archive header.
-
+.
+. {* The maximum number of characters in an archive header. *}
. unsigned short ar_max_namelen;
-
-Entries for byte swapping for data. These are different from the other
-entry points, since they don't take a BFD asthe first argument.
-Certain other handlers could do the same.
-
+.
+. {* Entries for byte swapping for data. These are different from the
+. other entry points, since they don't take a BFD asthe first argument.
+. Certain other handlers could do the same. *}
. bfd_vma (*bfd_getx64) PARAMS ((const bfd_byte *));
. bfd_signed_vma (*bfd_getx_signed_64) PARAMS ((const bfd_byte *));
. void (*bfd_putx64) PARAMS ((bfd_vma, bfd_byte *));
@@ -218,9 +208,8 @@ Certain other handlers could do the same.
. bfd_vma (*bfd_getx16) PARAMS ((const bfd_byte *));
. bfd_signed_vma (*bfd_getx_signed_16) PARAMS ((const bfd_byte *));
. void (*bfd_putx16) PARAMS ((bfd_vma, bfd_byte *));
-
-Byte swapping for the headers
-
+.
+. {* Byte swapping for the headers. *}
. bfd_vma (*bfd_h_getx64) PARAMS ((const bfd_byte *));
. bfd_signed_vma (*bfd_h_getx_signed_64) PARAMS ((const bfd_byte *));
. void (*bfd_h_putx64) PARAMS ((bfd_vma, bfd_byte *));
@@ -230,25 +219,21 @@ Byte swapping for the headers
. bfd_vma (*bfd_h_getx16) PARAMS ((const bfd_byte *));
. bfd_signed_vma (*bfd_h_getx_signed_16) PARAMS ((const bfd_byte *));
. void (*bfd_h_putx16) PARAMS ((bfd_vma, bfd_byte *));
-
-Format dependent routines: these are vectors of entry points
-within the target vector structure, one for each format to check.
-
-Check the format of a file being read. Return a <<bfd_target *>> or zero.
-
+.
+. {* Format dependent routines: these are vectors of entry points
+. within the target vector structure, one for each format to check. *}
+.
+. {* Check the format of a file being read. Return a <<bfd_target *>> or zero. *}
. const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *));
-
-Set the format of a file being written.
-
+.
+. {* Set the format of a file being written. *}
. boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *));
-
-Write cached information into a file being written, at <<bfd_close>>.
-
+.
+. {* Write cached information into a file being written, at <<bfd_close>>. *}
. boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *));
-
+.
The general target vector. These vectors are initialized using the
BFD_JUMP_TABLE macros.
-
.
. {* Generic entry points. *}
Do not "beautify" the CONCAT* macro args. Traditional C will not
@@ -295,10 +280,10 @@ the tokens.
. to another. *}
. boolean (*_bfd_copy_private_symbol_data) PARAMS ((bfd *, asymbol *,
. bfd *, asymbol *));
-. {* Called to set private backend flags *}
+. {* Called to set private backend flags. *}
. boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
.
-. {* Called to print private BFD data *}
+. {* Called to print private BFD data. *}
. boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR));
.
. {* Core file entry points. *}
@@ -448,7 +433,7 @@ the tokens.
.CONCAT2 (NAME,_canonicalize_dynamic_symtab), \
.CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \
.CONCAT2 (NAME,_canonicalize_dynamic_reloc)
-. {* Get the amount of memory required to hold the dynamic symbols. *}
+. {* Get the amount of memory required to hold the dynamic symbols. *}
. long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *));
. {* Read in the dynamic symbols. *}
. long (*_bfd_canonicalize_dynamic_symtab)
@@ -466,17 +451,16 @@ and little endian code, and target chosen by the linker has the wrong
endianness. The function open_output() in ld/ldlang.c uses this field
to find an alternative output format that is suitable.
-. {* Opposite endian version of this target. *}
-. const struct bfd_target * alternative_target;
+. {* Opposite endian version of this target. *}
+. const struct bfd_target * alternative_target;
.
-Data for use by back-end routines, which isn't generic enough to belong
-in this structure.
-
-. PTR backend_data;
+. {* Data for use by back-end routines, which isn't
+. generic enough to belong in this structure. *}
+. PTR backend_data;
.
.} bfd_target;
-
+.
*/
/* All known xvecs (even those that don't compile on all systems).
@@ -541,6 +525,7 @@ extern const bfd_target bfd_elf32_mcore_little_vec;
extern const bfd_target bfd_elf32_mn10200_vec;
extern const bfd_target bfd_elf32_mn10300_vec;
extern const bfd_target bfd_elf32_openrisc_vec;
+extern const bfd_target bfd_elf32_or32_big_vec;
extern const bfd_target bfd_elf32_pj_vec;
extern const bfd_target bfd_elf32_pjl_vec;
extern const bfd_target bfd_elf32_powerpc_vec;
@@ -637,6 +622,7 @@ extern const bfd_target nlm32_i386_vec;
extern const bfd_target nlm32_powerpc_vec;
extern const bfd_target nlm32_sparc_vec;
extern const bfd_target oasys_vec;
+extern const bfd_target or32coff_big_vec;
extern const bfd_target pc532machaout_vec;
extern const bfd_target pc532netbsd_vec;
extern const bfd_target pdp11_aout_vec;
@@ -696,6 +682,10 @@ extern const bfd_target ptrace_core_vec;
extern const bfd_target sco5_core_vec;
extern const bfd_target trad_core_vec;
+extern const bfd_target bfd_elf32_sh64_vec;
+extern const bfd_target bfd_elf32_sh64l_vec;
+extern const bfd_target bfd_elf64_sh64_vec;
+extern const bfd_target bfd_elf64_sh64l_vec;
static const bfd_target * const _bfd_target_vector[] = {
#ifdef SELECT_VECS
@@ -786,6 +776,7 @@ static const bfd_target * const _bfd_target_vector[] = {
&bfd_elf32_mn10200_vec,
&bfd_elf32_mn10300_vec,
&bfd_elf32_openrisc_vec,
+ &bfd_elf32_or32_big_vec,
&bfd_elf32_pj_vec,
&bfd_elf32_pjl_vec,
&bfd_elf32_powerpc_vec,
@@ -919,6 +910,9 @@ static const bfd_target * const _bfd_target_vector[] = {
can be annoying target mis-matches. */
&oasys_vec,
#endif
+ /* Entry for the OpenRISC family. */
+ &or32coff_big_vec,
+
&pc532machaout_vec,
&pc532netbsd_vec,
&pdp11_aout_vec,
diff --git a/contrib/binutils/bfd/trad-core.c b/contrib/binutils/bfd/trad-core.c
index aed0b50..e27cd35 100644
--- a/contrib/binutils/bfd/trad-core.c
+++ b/contrib/binutils/bfd/trad-core.c
@@ -211,7 +211,7 @@ trad_unix_core_file_p (abfd)
0 is at the place pointed to by u_ar0 (by setting the vma of the start
of the section to -u_ar0). GDB uses this info to locate the regs,
using minor trickery to get around the offset-or-absolute-addr problem. */
- core_regsec (abfd)->vma = - (bfd_vma) u.u_ar0;
+ core_regsec (abfd)->vma = - (bfd_vma) (unsigned long) u.u_ar0;
core_datasec (abfd)->filepos = NBPG * UPAGES;
core_stacksec (abfd)->filepos = (NBPG * UPAGES) + NBPG * u.u_dsize
diff --git a/contrib/binutils/bfd/version.h b/contrib/binutils/bfd/version.h
index 55d8900..959429c 100644
--- a/contrib/binutils/bfd/version.h
+++ b/contrib/binutils/bfd/version.h
@@ -1 +1 @@
-#define BFD_VERSION_DATE 20020127
+#define BFD_VERSION_DATE 20020209
OpenPOWER on IntegriCloud