diff options
author | obrien <obrien@FreeBSD.org> | 2002-02-22 04:18:42 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2002-02-22 04:18:42 +0000 |
commit | 6ae47c1bef8362d817116c7376af5dac2261c399 (patch) | |
tree | 020a76725880962eb5e7216c9058115435da59ff /contrib | |
parent | 80237bc8330990124d812157db632d43a8bee36b (diff) | |
parent | 670387a18a22cf299c750186efe8ca24cebb7e05 (diff) | |
download | FreeBSD-src-6ae47c1bef8362d817116c7376af5dac2261c399.zip FreeBSD-src-6ae47c1bef8362d817116c7376af5dac2261c399.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r91041,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib')
147 files changed, 12853 insertions, 3875 deletions
diff --git a/contrib/binutils/ChangeLog b/contrib/binutils/ChangeLog index 03b39e0..b9df8cb 100644 --- a/contrib/binutils/ChangeLog +++ b/contrib/binutils/ChangeLog @@ -1,3 +1,35 @@ +2002-02-09 Alexandre Oliva <aoliva@redhat.com> + + Contribute sh64-elf. + 2000-12-01 Alexandre Oliva <aoliva@redhat.com> + * configure.in: Added sh64-*-*. + +2002-02-04 Jeff Johnston <jjohnstn@redhat.com> + + * COPYING.NEWLIB: Remove advertising clause from + Berkeley and Red Hat licenses. + +2002-02-01 Mo DeJong <supermo@bayarea.net> + + * Makefile.in: Add all-tix to deps for all-snavigator + so that tix is built when building snavigator. + +2002-02-01 Ben Elliston <bje@redhat.com> + + * config.guess: Import from master sources, rev 1.229. + * config.sub: Import from master sources, rev 1.240. + +2002-01-27 Daniel Jacobowitz <drow@mvista.com> + + From Steve Ellcey <sje@cup.hp.com>: + * libtool.m4 (HPUX_IA64_MODE): Set to 32 or 64 based on ABI. + (lt_cv_deplibs_check_method, lt_cv_file_magic_cmd, + lt_cv_file_magic_test_file): Set to appropriate values for HP-UX + IA64. + * ltcf-c.sh (archive_cmds, hardcode_*): Ditto. + * ltconfig (shlibpath_*, dynamic_linker, library_names_spec, + soname_spec, sys_lib_search_path_spec): Ditto. + 2002-01-26 Jason Thorpe <thorpej@wasabisystems.com> * configure.in (*-*-netbsd*): New. Skip target-newlib, diff --git a/contrib/binutils/Makefile.in b/contrib/binutils/Makefile.in index e48d98a..1a1494c 100644 --- a/contrib/binutils/Makefile.in +++ b/contrib/binutils/Makefile.in @@ -1799,7 +1799,7 @@ all-send-pr: all-prms all-shellutils: all-sid: all-tcl all-tk all-sim: all-libiberty all-bfd all-opcodes all-readline all-cgen -all-snavigator: all-tcl all-tk all-itcl all-db all-grep all-libgui +all-snavigator: all-tcl all-tk all-itcl all-tix all-db all-grep all-libgui all-tar: all-libiberty all-tcl: all-tcl8.1: 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, §ion, &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/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-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-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 diff --git a/contrib/binutils/binutils/ChangeLog b/contrib/binutils/binutils/ChangeLog index f091a47..16f9fc7 100644 --- a/contrib/binutils/binutils/ChangeLog +++ b/contrib/binutils/binutils/ChangeLog @@ -1,3 +1,79 @@ +2002-02-15 Hans-Peter Nilsson <hp@bitrange.com> + + * NEWS: Mention support for MMIX. + +2002-02-13 Matt Fredette <fredette@netbsd.org> + + * readelf.c (get_machine_flags): Recognize EF_M68000. + +2002-02-12 Alexandre Oliva <aoliva@redhat.com> + + * MAINTAINERS: Added self as MN10300 co-maintainer. + +2002-02-12 Alan Modra <amodra@bigpond.net.au> + + * readelf.c (get_ppc64_dynamic_type): Handle DT_PPC64_OPD and + DT_PPC64_OPDSZ. + +2002-02-11 Daniel Jacobowitz <drow@mvista.com> + + * MAINTAINERS: List myself as branch maintainer. + +2002-02-11 Alan Modra <amodra@bigpond.net.au> + + * objcopy.c (MKDIR): Define. + (copy_archive): Make name_list.name const. Use MKDIR. + Handle duplicate files in archives by making more temp dirs. + +2002-02-10 Daniel Jacobowitz <drow@mvista.com> + + * nlmconv.c: Back out localtime PARAMS change. + +2002-02-10 Daniel Jacobowitz <drow@mvista.com> + + * coffdump.c: Include "getopt.h" after "bucomm.h" + so that macros are defined correctly. + * nlmconv.c: Add PARAMS ((const time_t *)) to localtime + prototype. Prototype main. + * nlmheader.y: Add PARAMS ((int)) to strerror prototype. + +2002-02-06 Alexandre Oliva <aoliva@redhat.com> + + * MAINTAINERS: Added self as SH co-maintainer. + +2002-02-05 Nick Clifton <nickc@redhat.com> + + * po/tr.po: Updated translation. + +2002-02-01 Alan Modra <amodra@bigpond.net.au> + + * Makefile.am: Run "make dep-am" + * Makefile.in: Regenerate. + +2002-01-29 Daniel Jacobowitz <drow@mvista.com> + + * nm.c (print_value): Mark abfd unused. + +2002-01-29 Daniel Jacobowitz <drow@mvista.com> + + * unwind-ia64.c (unw_decoder): Change second argument + to unsigned int, to match function prototypes. + +2002-01-29 Daniel Jacobowitz <drow@mvista.com> + + * objdump.c: Include "getopt.h" after "bucomm.h" so that + __GNU_LIBRARY__ will be defined. + * size.c: Likewise. + +2002-01-27 Daniel Jacobowitz <drow@mvista.com> + + * configure: Regenerated. + +2002-01-26 Hans-Peter Nilsson <hp@bitrange.com> + + * doc/Makefile.am (install): Depend on install-info. + * doc/Makefile.in: Regenerate. + 2002-01-25 Jason R. Thorpe <thorpej@wasabisystems.com> * objcopy.c (strip_usage): Document -d as an alias diff --git a/contrib/binutils/binutils/MAINTAINERS b/contrib/binutils/binutils/MAINTAINERS index b930f9c..e1a3f53 100644 --- a/contrib/binutils/binutils/MAINTAINERS +++ b/contrib/binutils/binutils/MAINTAINERS @@ -67,6 +67,7 @@ responsibility among the other maintainers. ix86 INTEL MODE Diego Novillo <dnovillo@redhat.com> M68HC11 M68HC12 Stephane Carrez <Stephane.Carrez@worldnet.fr> MN10300 Eric Christopher <echristo@redhat.com> + MN10300 Alexandre Oliva <aoliva@redhat.com> MIPS Eric Christopher <echristo@redhat.com> M88k Ben Elliston <bje@redhat.com> MMIX Hans-Peter Nilsson <hp@bitrange.com> @@ -75,6 +76,7 @@ responsibility among the other maintainers. s390, s390x Martin Schwidefsky <schwidefsky@de.ibm.com> SH Jörn Rennecke <amylaar@onetel.net.uk> SH Hans-Peter Nilsson <hp@bitrange.com> + SH Alexandre Oliva <aoliva@redhat.com> SPARC Jakub Jelinek <jakub@redhat.com> TIC54X Timothy Wall <twall@alum.mit.edu> z8k Christian Groessler <cpg@aladdin.de> @@ -126,4 +128,4 @@ burden of maintaining the branch in sync with the mainline becomes too great). If you are uncertain as to whether a patch is appropriate for the branch, ask the branch maintainer. This is: - Philip Blundell <philb@gnu.org> + Daniel Jacobowitz <dan@debian.org> diff --git a/contrib/binutils/binutils/Makefile.am b/contrib/binutils/binutils/Makefile.am index 366f544..94369cd 100644 --- a/contrib/binutils/binutils/Makefile.am +++ b/contrib/binutils/binutils/Makefile.am @@ -415,10 +415,10 @@ objcopy.o: objcopy.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \ budbg.h $(INCDIR)/filenames.h objdump.o: objdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h $(INCDIR)/getopt.h $(INCDIR)/progress.h \ - bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ - $(INCDIR)/safe-ctype.h $(INCDIR)/dis-asm.h $(INCDIR)/libiberty.h \ - $(INCDIR)/demangle.h debug.h budbg.h $(INCDIR)/aout/aout64.h + $(INCDIR)/symcat.h $(INCDIR)/progress.h bucomm.h config.h \ + $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/safe-ctype.h \ + $(INCDIR)/dis-asm.h $(INCDIR)/libiberty.h $(INCDIR)/demangle.h \ + debug.h budbg.h $(INCDIR)/aout/aout64.h prdbg.o: prdbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \ @@ -433,8 +433,8 @@ rddbg.o: rddbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \ budbg.h size.o: size.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ - $(INCDIR)/getopt.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h + bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ + $(INCDIR)/libiberty.h srconv.o: srconv.c bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h sysroff.h coffgrok.h $(INCDIR)/coff/internal.h \ $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h sysroff.c @@ -481,18 +481,18 @@ winduni.o: winduni.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/fopen-same.h winduni.h $(INCDIR)/safe-ctype.h readelf.o: readelf.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/dwarf2.h $(INCDIR)/elf/i386.h \ - $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/v850.h $(INCDIR)/elf/ppc.h \ - $(INCDIR)/elf/mips.h $(INCDIR)/elf/alpha.h $(INCDIR)/elf/arm.h \ - $(INCDIR)/elf/m68k.h $(INCDIR)/elf/sparc.h $(INCDIR)/elf/m32r.h \ - $(INCDIR)/elf/d10v.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/sh.h \ - $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/hppa.h \ - $(INCDIR)/elf/h8.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/fr30.h \ - $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mmix.h $(INCDIR)/elf/i960.h \ - $(INCDIR)/elf/pj.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/ia64.h \ - $(INCDIR)/elf/cris.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/x86-64.h \ - $(INCDIR)/elf/s390.h $(INCDIR)/elf/xstormy16.h bucomm.h \ - config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/dwarf2.h $(INCDIR)/elf/alpha.h \ + $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h \ + $(INCDIR)/elf/avr.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/d10v.h \ + $(INCDIR)/elf/d30v.h $(INCDIR)/elf/fr30.h $(INCDIR)/elf/h8.h \ + $(INCDIR)/elf/hppa.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/i860.h \ + $(INCDIR)/elf/i960.h $(INCDIR)/elf/ia64.h $(INCDIR)/elf/m32r.h \ + $(INCDIR)/elf/m68k.h $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mips.h \ + $(INCDIR)/elf/mmix.h $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h \ + $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h \ + $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/sparc.h \ + $(INCDIR)/elf/v850.h $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h \ + bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ unwind-ia64.h resres.o: resres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ diff --git a/contrib/binutils/binutils/Makefile.in b/contrib/binutils/binutils/Makefile.in index 0521329..3bda86e 100644 --- a/contrib/binutils/binutils/Makefile.in +++ b/contrib/binutils/binutils/Makefile.in @@ -1,6 +1,6 @@ -# Makefile.in generated automatically by automake 1.4 from Makefile.am +# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am -# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -667,7 +667,7 @@ maintainer-clean-recursive: dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ - test "$$subdir" = "." && dot_seen=yes; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ @@ -1134,10 +1134,10 @@ objcopy.o: objcopy.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \ budbg.h $(INCDIR)/filenames.h objdump.o: objdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h $(INCDIR)/getopt.h $(INCDIR)/progress.h \ - bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ - $(INCDIR)/safe-ctype.h $(INCDIR)/dis-asm.h $(INCDIR)/libiberty.h \ - $(INCDIR)/demangle.h debug.h budbg.h $(INCDIR)/aout/aout64.h + $(INCDIR)/symcat.h $(INCDIR)/progress.h bucomm.h config.h \ + $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/safe-ctype.h \ + $(INCDIR)/dis-asm.h $(INCDIR)/libiberty.h $(INCDIR)/demangle.h \ + debug.h budbg.h $(INCDIR)/aout/aout64.h prdbg.o: prdbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \ @@ -1152,8 +1152,8 @@ rddbg.o: rddbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \ budbg.h size.o: size.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ - $(INCDIR)/getopt.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h + bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ + $(INCDIR)/libiberty.h srconv.o: srconv.c bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h sysroff.h coffgrok.h $(INCDIR)/coff/internal.h \ $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h sysroff.c @@ -1200,18 +1200,18 @@ winduni.o: winduni.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/fopen-same.h winduni.h $(INCDIR)/safe-ctype.h readelf.o: readelf.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/dwarf2.h $(INCDIR)/elf/i386.h \ - $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/v850.h $(INCDIR)/elf/ppc.h \ - $(INCDIR)/elf/mips.h $(INCDIR)/elf/alpha.h $(INCDIR)/elf/arm.h \ - $(INCDIR)/elf/m68k.h $(INCDIR)/elf/sparc.h $(INCDIR)/elf/m32r.h \ - $(INCDIR)/elf/d10v.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/sh.h \ - $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/hppa.h \ - $(INCDIR)/elf/h8.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/fr30.h \ - $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mmix.h $(INCDIR)/elf/i960.h \ - $(INCDIR)/elf/pj.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/ia64.h \ - $(INCDIR)/elf/cris.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/x86-64.h \ - $(INCDIR)/elf/s390.h $(INCDIR)/elf/xstormy16.h bucomm.h \ - config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/dwarf2.h $(INCDIR)/elf/alpha.h \ + $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h \ + $(INCDIR)/elf/avr.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/d10v.h \ + $(INCDIR)/elf/d30v.h $(INCDIR)/elf/fr30.h $(INCDIR)/elf/h8.h \ + $(INCDIR)/elf/hppa.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/i860.h \ + $(INCDIR)/elf/i960.h $(INCDIR)/elf/ia64.h $(INCDIR)/elf/m32r.h \ + $(INCDIR)/elf/m68k.h $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mips.h \ + $(INCDIR)/elf/mmix.h $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h \ + $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h \ + $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/sparc.h \ + $(INCDIR)/elf/v850.h $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h \ + bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ unwind-ia64.h resres.o: resres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ diff --git a/contrib/binutils/binutils/NEWS b/contrib/binutils/binutils/NEWS index a2f7abb..fcdc571 100644 --- a/contrib/binutils/binutils/NEWS +++ b/contrib/binutils/binutils/NEWS @@ -1,5 +1,7 @@ -*- text -*- +* Support for Don Knuth's MMIX, by Hans-Peter Nilsson. + * size: Add --totals to display summary of sizes (Berkeley format only). * readelf: Add --wide option to not break section header or segment listing diff --git a/contrib/binutils/binutils/coffdump.c b/contrib/binutils/binutils/coffdump.c index db5034e..065e9e1 100644 --- a/contrib/binutils/binutils/coffdump.c +++ b/contrib/binutils/binutils/coffdump.c @@ -24,11 +24,11 @@ it out so we can test the grokker. */ #include <bfd.h> -#include <getopt.h> #include <libiberty.h> #include "coffgrok.h" #include "bucomm.h" +#include "getopt.h" static int atnl; diff --git a/contrib/binutils/binutils/configure b/contrib/binutils/binutils/configure index 1ba4285..317ef76 100755 --- a/contrib/binutils/binutils/configure +++ b/contrib/binutils/binutils/configure @@ -1527,9 +1527,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*) @@ -1619,13 +1628,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:1623: checking for object suffix" >&5 +echo "configure:1632: 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:1629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1638: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -1645,7 +1654,7 @@ ac_objext=$ac_cv_objext echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1649: checking for executable suffix" >&5 +echo "configure:1658: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1655,7 +1664,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:1659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:1668: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -1688,7 +1697,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:1692: checking for ${ac_tool_prefix}file" >&5 +echo "configure:1701: 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 @@ -1750,7 +1759,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:1754: checking for file" >&5 +echo "configure:1763: 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 @@ -1821,7 +1830,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:1825: checking for $ac_word" >&5 +echo "configure:1834: 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 @@ -1853,7 +1862,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:1857: checking for $ac_word" >&5 +echo "configure:1866: 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 @@ -1888,7 +1897,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:1892: checking for $ac_word" >&5 +echo "configure:1901: 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 @@ -1920,7 +1929,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:1924: checking for $ac_word" >&5 +echo "configure:1933: 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 @@ -1987,8 +1996,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 1991 "configure"' > conftest.$ac_ext - if { (eval echo configure:1992: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 2000 "configure"' > conftest.$ac_ext + if { (eval echo configure:2001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" @@ -2004,12 +2013,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:2020: \"$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:2013: checking whether the C compiler needs -belf" >&5 +echo "configure:2038: 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 @@ -2022,14 +2047,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 2026 "configure" +#line 2051 "configure" #include "confdefs.h" int main() { ; return 0; } EOF -if { (eval echo configure:2033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2058: \"$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 @@ -2202,7 +2227,7 @@ fi # 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:2206: checking for $ac_word" >&5 +echo "configure:2231: 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 @@ -2232,7 +2257,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:2236: checking for $ac_word" >&5 +echo "configure:2261: 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 @@ -2283,7 +2308,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:2287: checking for $ac_word" >&5 +echo "configure:2312: 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 @@ -2315,7 +2340,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2319: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2344: 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. @@ -2326,12 +2351,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 2330 "configure" +#line 2355 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2360: \"$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 @@ -2357,12 +2382,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:2361: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2386: 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:2366: checking whether we are using GNU C" >&5 +echo "configure:2391: 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 @@ -2371,7 +2396,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2375: \"$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:2400: \"$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 @@ -2390,7 +2415,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:2394: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2419: 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 @@ -2427,7 +2452,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2431: checking for $ac_word" >&5 +echo "configure:2456: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2458,7 +2483,7 @@ done test -n "$YACC" || YACC="yacc" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:2462: checking how to run the C preprocessor" >&5 +echo "configure:2487: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2473,13 +2498,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 2477 "configure" +#line 2502 "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:2483: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2508: \"$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 : @@ -2490,13 +2515,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 2494 "configure" +#line 2519 "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:2500: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2525: \"$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 : @@ -2507,13 +2532,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext <<EOF -#line 2511 "configure" +#line 2536 "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:2517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2542: \"$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 : @@ -2543,7 +2568,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2547: checking for $ac_word" >&5 +echo "configure:2572: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2576,7 +2601,7 @@ test -n "$LEX" || LEX="$missing_dir/missing flex" # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2580: checking for $ac_word" >&5 +echo "configure:2605: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2610,7 +2635,7 @@ then *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 -echo "configure:2614: checking for yywrap in -l$ac_lib" >&5 +echo "configure:2639: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2618,7 +2643,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext <<EOF -#line 2622 "configure" +#line 2647 "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 @@ -2629,7 +2654,7 @@ int main() { yywrap() ; return 0; } EOF -if { (eval echo configure:2633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2658: \"$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 @@ -2652,7 +2677,7 @@ fi fi echo $ac_n "checking lex output file root""... $ac_c" 1>&6 -echo "configure:2656: checking lex output file root" >&5 +echo "configure:2681: checking lex output file root" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2673,7 +2698,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6 -echo "configure:2677: checking whether yytext is a pointer" >&5 +echo "configure:2702: checking whether yytext is a pointer" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2685,14 +2710,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c ac_save_LIBS="$LIBS" LIBS="$LIBS $LEXLIB" cat > conftest.$ac_ext <<EOF -#line 2689 "configure" +#line 2714 "configure" #include "confdefs.h" `cat $LEX_OUTPUT_ROOT.c` int main() { ; return 0; } EOF -if { (eval echo configure:2696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_prog_lex_yytext_pointer=yes else @@ -2718,7 +2743,7 @@ ALL_LINGUAS="fr tr ja es" # 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:2722: checking for $ac_word" >&5 +echo "configure:2747: 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 @@ -2746,12 +2771,12 @@ else fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:2750: checking for ANSI C header files" >&5 +echo "configure:2775: 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 2755 "configure" +#line 2780 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -2759,7 +2784,7 @@ else #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2763: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2788: \"$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* @@ -2776,7 +2801,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 2780 "configure" +#line 2805 "configure" #include "confdefs.h" #include <string.h> EOF @@ -2794,7 +2819,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 2798 "configure" +#line 2823 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -2815,7 +2840,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext <<EOF -#line 2819 "configure" +#line 2844 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -2826,7 +2851,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:2830: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -2850,12 +2875,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2854: checking for working const" >&5 +echo "configure:2879: 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 2859 "configure" +#line 2884 "configure" #include "confdefs.h" int main() { @@ -2904,7 +2929,7 @@ ccp = (char const *const *) p; ; return 0; } EOF -if { (eval echo configure:2908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2925,21 +2950,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:2929: checking for inline" >&5 +echo "configure:2954: 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 2936 "configure" +#line 2961 "configure" #include "confdefs.h" int main() { } $ac_kw foo() { ; return 0; } EOF -if { (eval echo configure:2943: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2968: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -2965,12 +2990,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:2969: checking for off_t" >&5 +echo "configure:2994: 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 2974 "configure" +#line 2999 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -2998,12 +3023,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3002: checking for size_t" >&5 +echo "configure:3027: 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 3007 "configure" +#line 3032 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3033,19 +3058,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:3037: checking for working alloca.h" >&5 +echo "configure:3062: 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 3042 "configure" +#line 3067 "configure" #include "confdefs.h" #include <alloca.h> int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:3049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3074: \"$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 @@ -3066,12 +3091,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:3070: checking for alloca" >&5 +echo "configure:3095: 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 3075 "configure" +#line 3100 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -3099,7 +3124,7 @@ int main() { char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:3103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3128: \"$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 @@ -3131,12 +3156,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:3135: checking whether alloca needs Cray hooks" >&5 +echo "configure:3160: 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 3140 "configure" +#line 3165 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -3161,12 +3186,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:3165: checking for $ac_func" >&5 +echo "configure:3190: 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 3170 "configure" +#line 3195 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3189,7 +3214,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3218: \"$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 @@ -3216,7 +3241,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:3220: checking stack direction for C alloca" >&5 +echo "configure:3245: 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 @@ -3224,7 +3249,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <<EOF -#line 3228 "configure" +#line 3253 "configure" #include "confdefs.h" find_stack_direction () { @@ -3243,7 +3268,7 @@ main () exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:3247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3272: \"$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 @@ -3264,21 +3289,21 @@ EOF fi -for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h +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:3272: checking for $ac_hdr" >&5 +echo "configure:3297: 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 3277 "configure" +#line 3302 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3282: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3307: \"$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* @@ -3307,12 +3332,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3311: checking for $ac_func" >&5 +echo "configure:3336: 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 3316 "configure" +#line 3341 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3335,7 +3360,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3364: \"$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 @@ -3360,7 +3385,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:3364: checking for working mmap" >&5 +echo "configure:3389: 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 @@ -3368,7 +3393,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <<EOF -#line 3372 "configure" +#line 3397 "configure" #include "confdefs.h" /* Thanks to Mike Haertel and Jim Avera for this test. @@ -3396,24 +3421,11 @@ else #include <fcntl.h> #include <sys/mman.h> -#if HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif - -#if HAVE_STDLIB_H -# include <stdlib.h> -#endif - -#if HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif - -#if HAVE_UNISTD_H -# include <unistd.h> -#endif - /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE +# ifdef HAVE_UNISTD_H +# include <unistd.h> +# endif /* Assume that all systems that can run configure have sys/param.h. */ # ifndef HAVE_SYS_PARAM_H @@ -3521,7 +3533,7 @@ main() } EOF -if { (eval echo configure:3525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3537: \"$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 @@ -3549,17 +3561,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:3553: checking for $ac_hdr" >&5 +echo "configure:3565: 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 3558 "configure" +#line 3570 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3563: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3575: \"$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* @@ -3589,12 +3601,12 @@ done __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3593: checking for $ac_func" >&5 +echo "configure:3605: 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 3598 "configure" +#line 3610 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3617,7 +3629,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3621: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3633: \"$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 @@ -3646,12 +3658,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3650: checking for $ac_func" >&5 +echo "configure:3662: 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 3655 "configure" +#line 3667 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3674,7 +3686,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3690: \"$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 @@ -3708,19 +3720,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:3712: checking for LC_MESSAGES" >&5 +echo "configure:3724: 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 3717 "configure" +#line 3729 "configure" #include "confdefs.h" #include <locale.h> int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:3724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3736: \"$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 @@ -3741,7 +3753,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:3745: checking whether NLS is requested" >&5 +echo "configure:3757: 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" @@ -3761,7 +3773,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:3765: checking whether included gettext is requested" >&5 +echo "configure:3777: 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" @@ -3780,17 +3792,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:3784: checking for libintl.h" >&5 +echo "configure:3796: 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 3789 "configure" +#line 3801 "configure" #include "confdefs.h" #include <libintl.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3794: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3806: \"$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* @@ -3807,19 +3819,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:3811: checking for gettext in libc" >&5 +echo "configure:3823: 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 3816 "configure" +#line 3828 "configure" #include "confdefs.h" #include <libintl.h> int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:3823: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3835: \"$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 @@ -3835,7 +3847,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:3839: checking for bindtextdomain in -lintl" >&5 +echo "configure:3851: 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 @@ -3843,7 +3855,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <<EOF -#line 3847 "configure" +#line 3859 "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 @@ -3854,7 +3866,7 @@ int main() { bindtextdomain() ; return 0; } EOF -if { (eval echo configure:3858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3870: \"$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 @@ -3870,19 +3882,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:3874: checking for gettext in libintl" >&5 +echo "configure:3886: 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 3879 "configure" +#line 3891 "configure" #include "confdefs.h" int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:3886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3898: \"$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 @@ -3910,7 +3922,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:3914: checking for $ac_word" >&5 +echo "configure:3926: 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 @@ -3944,12 +3956,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3948: checking for $ac_func" >&5 +echo "configure:3960: 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 3953 "configure" +#line 3965 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3972,7 +3984,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3988: \"$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 @@ -3999,7 +4011,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:4003: checking for $ac_word" >&5 +echo "configure:4015: 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 @@ -4035,7 +4047,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:4039: checking for $ac_word" >&5 +echo "configure:4051: 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 @@ -4067,7 +4079,7 @@ else fi cat > conftest.$ac_ext <<EOF -#line 4071 "configure" +#line 4083 "configure" #include "confdefs.h" int main() { @@ -4075,7 +4087,7 @@ extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:4079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -4107,7 +4119,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:4111: checking for $ac_word" >&5 +echo "configure:4123: 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 @@ -4141,7 +4153,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:4145: checking for $ac_word" >&5 +echo "configure:4157: 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 @@ -4177,7 +4189,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:4181: checking for $ac_word" >&5 +echo "configure:4193: 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 @@ -4267,7 +4279,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:4271: checking for catalogs to be installed" >&5 +echo "configure:4283: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -4295,17 +4307,17 @@ echo "configure:4271: 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:4299: checking for linux/version.h" >&5 +echo "configure:4311: 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 4304 "configure" +#line 4316 "configure" #include "confdefs.h" #include <linux/version.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4309: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4321: \"$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* @@ -4368,7 +4380,7 @@ fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:4372: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:4384: 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" @@ -4393,7 +4405,7 @@ fi echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:4397: checking for executable suffix" >&5 +echo "configure:4409: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4403,7 +4415,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:4407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:4419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -4446,7 +4458,7 @@ AR=${AR-ar} # 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:4450: checking for $ac_word" >&5 +echo "configure:4462: 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 @@ -4485,7 +4497,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:4489: checking for a BSD compatible install" >&5 +echo "configure:4501: 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 @@ -4552,7 +4564,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:4556: checking for build system executable suffix" >&5 +echo "configure:4568: 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 @@ -4587,17 +4599,17 @@ for ac_hdr in string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4591: checking for $ac_hdr" >&5 +echo "configure:4603: 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 4596 "configure" +#line 4608 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4601: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4613: \"$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* @@ -4624,12 +4636,12 @@ fi done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:4628: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:4640: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4633 "configure" +#line 4645 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/wait.h> @@ -4645,7 +4657,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:4649: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4661: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -4668,19 +4680,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:4672: checking for working alloca.h" >&5 +echo "configure:4684: 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 4677 "configure" +#line 4689 "configure" #include "confdefs.h" #include <alloca.h> int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:4684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4696: \"$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 @@ -4701,12 +4713,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:4705: checking for alloca" >&5 +echo "configure:4717: 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 4710 "configure" +#line 4722 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -4734,7 +4746,7 @@ int main() { char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:4738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4750: \"$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 @@ -4766,12 +4778,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:4770: checking whether alloca needs Cray hooks" >&5 +echo "configure:4782: 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 4775 "configure" +#line 4787 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -4796,12 +4808,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:4800: checking for $ac_func" >&5 +echo "configure:4812: 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 4805 "configure" +#line 4817 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4824,7 +4836,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4840: \"$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 @@ -4851,7 +4863,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:4855: checking stack direction for C alloca" >&5 +echo "configure:4867: 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 @@ -4859,7 +4871,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <<EOF -#line 4863 "configure" +#line 4875 "configure" #include "confdefs.h" find_stack_direction () { @@ -4878,7 +4890,7 @@ main () exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:4882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4894: \"$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 @@ -4902,12 +4914,12 @@ fi for ac_func in sbrk utimes setmode getc_unlocked do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4906: checking for $ac_func" >&5 +echo "configure:4918: 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 4911 "configure" +#line 4923 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4930,7 +4942,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4946: \"$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 @@ -4958,19 +4970,19 @@ done # Check whether fopen64 is available and whether _LARGEFILE64_SOURCE # needs to be defined for it echo $ac_n "checking for fopen64""... $ac_c" 1>&6 -echo "configure:4962: checking for fopen64" >&5 +echo "configure:4974: checking for fopen64" >&5 if eval "test \"`echo '$''{'bu_cv_have_fopen64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4967 "configure" +#line 4979 "configure" #include "confdefs.h" #include <stdio.h> int main() { FILE *f = fopen64 ("/tmp/foo","r"); ; return 0; } EOF -if { (eval echo configure:4974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4986: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* bu_cv_have_fopen64=yes else @@ -4980,14 +4992,14 @@ else saved_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE" cat > conftest.$ac_ext <<EOF -#line 4984 "configure" +#line 4996 "configure" #include "confdefs.h" #include <stdio.h> int main() { FILE *f = fopen64 ("/tmp/foo","r"); ; return 0; } EOF -if { (eval echo configure:4991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* bu_cv_have_fopen64="need -D_LARGEFILE64_SOURCE" else @@ -5019,14 +5031,14 @@ fi # Some systems have frexp only in -lm, not in -lc. echo $ac_n "checking for library containing frexp""... $ac_c" 1>&6 -echo "configure:5023: checking for library containing frexp" >&5 +echo "configure:5035: checking for library containing frexp" >&5 if eval "test \"`echo '$''{'ac_cv_search_frexp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_frexp="no" cat > conftest.$ac_ext <<EOF -#line 5030 "configure" +#line 5042 "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 @@ -5037,7 +5049,7 @@ int main() { frexp() ; return 0; } EOF -if { (eval echo configure:5041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_frexp="none required" else @@ -5048,7 +5060,7 @@ rm -f conftest* test "$ac_cv_search_frexp" = "no" && for i in m; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 5052 "configure" +#line 5064 "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 @@ -5059,7 +5071,7 @@ int main() { frexp() ; return 0; } EOF -if { (eval echo configure:5063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_frexp="-l$i" break @@ -5081,19 +5093,19 @@ else : fi echo $ac_n "checking for time_t in time.h""... $ac_c" 1>&6 -echo "configure:5085: checking for time_t in time.h" >&5 +echo "configure:5097: checking for time_t in time.h" >&5 if eval "test \"`echo '$''{'bu_cv_decl_time_t_time_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5090 "configure" +#line 5102 "configure" #include "confdefs.h" #include <time.h> int main() { time_t i; ; return 0; } EOF -if { (eval echo configure:5097: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5109: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bu_cv_decl_time_t_time_h=yes else @@ -5114,19 +5126,19 @@ EOF fi echo $ac_n "checking for time_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:5118: checking for time_t in sys/types.h" >&5 +echo "configure:5130: checking for time_t in sys/types.h" >&5 if eval "test \"`echo '$''{'bu_cv_decl_time_t_types_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5123 "configure" +#line 5135 "configure" #include "confdefs.h" #include <sys/types.h> int main() { time_t i; ; return 0; } EOF -if { (eval echo configure:5130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bu_cv_decl_time_t_types_h=yes else @@ -5149,12 +5161,12 @@ fi # Under Next 3.2 <utime.h> apparently does not define struct utimbuf # by default. echo $ac_n "checking for utime.h""... $ac_c" 1>&6 -echo "configure:5153: checking for utime.h" >&5 +echo "configure:5165: checking for utime.h" >&5 if eval "test \"`echo '$''{'bu_cv_header_utime_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5158 "configure" +#line 5170 "configure" #include "confdefs.h" #include <sys/types.h> #ifdef HAVE_TIME_H @@ -5165,7 +5177,7 @@ int main() { struct utimbuf s; ; return 0; } EOF -if { (eval echo configure:5169: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5181: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bu_cv_header_utime_h=yes else @@ -5186,12 +5198,12 @@ EOF fi echo $ac_n "checking whether fprintf must be declared""... $ac_c" 1>&6 -echo "configure:5190: checking whether fprintf must be declared" >&5 +echo "configure:5202: checking whether fprintf must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_fprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5195 "configure" +#line 5207 "configure" #include "confdefs.h" #include <stdio.h> @@ -5212,7 +5224,7 @@ int main() { char *(*pfn) = (char *(*)) fprintf ; return 0; } EOF -if { (eval echo configure:5216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_fprintf=no else @@ -5233,12 +5245,12 @@ EOF fi echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6 -echo "configure:5237: checking whether strstr must be declared" >&5 +echo "configure:5249: 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 5242 "configure" +#line 5254 "configure" #include "confdefs.h" #include <stdio.h> @@ -5259,7 +5271,7 @@ int main() { char *(*pfn) = (char *(*)) strstr ; return 0; } EOF -if { (eval echo configure:5263: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5275: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_strstr=no else @@ -5280,12 +5292,12 @@ EOF fi echo $ac_n "checking whether sbrk must be declared""... $ac_c" 1>&6 -echo "configure:5284: checking whether sbrk must be declared" >&5 +echo "configure:5296: checking whether sbrk must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_sbrk'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5289 "configure" +#line 5301 "configure" #include "confdefs.h" #include <stdio.h> @@ -5306,7 +5318,7 @@ int main() { char *(*pfn) = (char *(*)) sbrk ; return 0; } EOF -if { (eval echo configure:5310: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_sbrk=no else @@ -5327,12 +5339,12 @@ EOF fi echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6 -echo "configure:5331: checking whether getenv must be declared" >&5 +echo "configure:5343: 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 5336 "configure" +#line 5348 "configure" #include "confdefs.h" #include <stdio.h> @@ -5353,7 +5365,7 @@ int main() { char *(*pfn) = (char *(*)) getenv ; return 0; } EOF -if { (eval echo configure:5357: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_getenv=no else @@ -5374,12 +5386,12 @@ EOF fi echo $ac_n "checking whether environ must be declared""... $ac_c" 1>&6 -echo "configure:5378: checking whether environ must be declared" >&5 +echo "configure:5390: checking whether environ must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_environ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5383 "configure" +#line 5395 "configure" #include "confdefs.h" #include <stdio.h> @@ -5400,7 +5412,7 @@ int main() { char *(*pfn) = (char *(*)) environ ; return 0; } EOF -if { (eval echo configure:5404: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5416: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_environ=no else diff --git a/contrib/binutils/binutils/doc/Makefile.am b/contrib/binutils/binutils/doc/Makefile.am index 8fc8c08..9db5819 100644 --- a/contrib/binutils/binutils/doc/Makefile.am +++ b/contrib/binutils/binutils/doc/Makefile.am @@ -155,6 +155,10 @@ $(DEMANGLER_NAME).1: cxxfilt.man Makefile -e 's/cxxfilt/$(DEMANGLER_NAME)/' < $$man \ > $(DEMANGLER_NAME).1 +# We want install to imply install-info as per GNU standards, despite the +# cygnus option. +install: install-info + # Maintenance # We need it for the taz target in ../../Makefile.in. diff --git a/contrib/binutils/binutils/doc/Makefile.in b/contrib/binutils/binutils/doc/Makefile.in index ec18241..5d96d27 100644 --- a/contrib/binutils/binutils/doc/Makefile.in +++ b/contrib/binutils/binutils/doc/Makefile.in @@ -547,6 +547,10 @@ $(DEMANGLER_NAME).1: cxxfilt.man Makefile -e 's/cxxfilt/$(DEMANGLER_NAME)/' < $$man \ > $(DEMANGLER_NAME).1 +# We want install to imply install-info as per GNU standards, despite the +# cygnus option. +install: install-info + # Maintenance # We need it for the taz target in ../../Makefile.in. diff --git a/contrib/binutils/binutils/objcopy.c b/contrib/binutils/binutils/objcopy.c index 1a819e8..371e337 100644 --- a/contrib/binutils/binutils/objcopy.c +++ b/contrib/binutils/binutils/objcopy.c @@ -1,6 +1,6 @@ /* objcopy.c -- copy object file from input to output, optionally massaging it. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001 + 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -1268,6 +1268,13 @@ copy_object (ibfd, obfd) } } +#undef MKDIR +#if defined (_WIN32) && !defined (__CYGWIN32__) +#define MKDIR(DIR, MODE) mkdir (DIR) +#else +#define MKDIR(DIR, MODE) mkdir (DIR, MODE) +#endif + /* Read each archive element in turn from IBFD, copy the contents to temp file, and keep the temp file handle. */ @@ -1280,7 +1287,7 @@ copy_archive (ibfd, obfd, output_target) struct name_list { struct name_list *next; - char *name; + const char *name; bfd *obfd; } *list, *l; bfd **ptr = &obfd->archive_head; @@ -1288,11 +1295,7 @@ copy_archive (ibfd, obfd, output_target) char *dir = make_tempname (bfd_get_filename (obfd)); /* Make a temp directory to hold the contents. */ -#if defined (_WIN32) && !defined (__CYGWIN32__) - if (mkdir (dir) != 0) -#else - if (mkdir (dir, 0700) != 0) -#endif + if (MKDIR (dir, 0700) != 0) { fatal (_("cannot mkdir %s for archive copying (error: %s)"), dir, strerror (errno)); @@ -1308,14 +1311,35 @@ copy_archive (ibfd, obfd, output_target) while (!status && this_element != (bfd *) NULL) { - /* Create an output file for this member. */ - char *output_name = concat (dir, "/", bfd_get_filename (this_element), - (char *) NULL); - bfd *output_bfd = bfd_openw (output_name, output_target); + char *output_name; + bfd *output_bfd; bfd *last_element; struct stat buf; int stat_status = 0; + /* Create an output file for this member. */ + output_name = concat (dir, "/", + bfd_get_filename (this_element), (char *) 0); + + /* If the file already exists, make another temp dir. */ + if (stat (output_name, &buf) >= 0) + { + output_name = make_tempname (output_name); + if (MKDIR (output_name, 0700) != 0) + { + fatal (_("cannot mkdir %s for archive copying (error: %s)"), + output_name, strerror (errno)); + } + l = (struct name_list *) xmalloc (sizeof (struct name_list)); + l->name = output_name; + l->next = list; + l->obfd = NULL; + list = l; + output_name = concat (output_name, "/", + bfd_get_filename (this_element), (char *) 0); + } + + output_bfd = bfd_openw (output_name, output_target); if (preserve_dates) { stat_status = bfd_stat_arch_elt (this_element, &buf); @@ -1371,8 +1395,13 @@ copy_archive (ibfd, obfd, output_target) /* Delete all the files that we opened. */ for (l = list; l != NULL; l = l->next) { - bfd_close (l->obfd); - unlink (l->name); + if (l->obfd == NULL) + rmdir (l->name); + else + { + bfd_close (l->obfd); + unlink (l->name); + } } rmdir (dir); } diff --git a/contrib/binutils/binutils/objdump.c b/contrib/binutils/binutils/objdump.c index 2b422b0..535e0cd 100644 --- a/contrib/binutils/binutils/objdump.c +++ b/contrib/binutils/binutils/objdump.c @@ -20,9 +20,9 @@ along with this program; if not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "bfd.h" -#include "getopt.h" #include "progress.h" #include "bucomm.h" +#include "getopt.h" #include "safe-ctype.h" #include "dis-asm.h" #include "libiberty.h" diff --git a/contrib/binutils/binutils/readelf.c b/contrib/binutils/binutils/readelf.c index 2480c76..3bd67ba 100644 --- a/contrib/binutils/binutils/readelf.c +++ b/contrib/binutils/binutils/readelf.c @@ -49,34 +49,35 @@ #define RELOC_MACROS_GEN_FUNC -#include "elf/i386.h" -#include "elf/v850.h" -#include "elf/ppc.h" -#include "elf/mips.h" #include "elf/alpha.h" +#include "elf/arc.h" #include "elf/arm.h" -#include "elf/m68k.h" -#include "elf/sparc.h" -#include "elf/m32r.h" +#include "elf/avr.h" +#include "elf/cris.h" #include "elf/d10v.h" #include "elf/d30v.h" -#include "elf/sh.h" -#include "elf/mn10200.h" -#include "elf/mn10300.h" -#include "elf/hppa.h" -#include "elf/h8.h" -#include "elf/arc.h" #include "elf/fr30.h" +#include "elf/h8.h" +#include "elf/hppa.h" +#include "elf/i386.h" +#include "elf/i860.h" +#include "elf/i960.h" +#include "elf/ia64.h" +#include "elf/m32r.h" +#include "elf/m68k.h" #include "elf/mcore.h" +#include "elf/mips.h" #include "elf/mmix.h" -#include "elf/i960.h" +#include "elf/mn10200.h" +#include "elf/mn10300.h" +#include "elf/or32.h" #include "elf/pj.h" -#include "elf/avr.h" -#include "elf/ia64.h" -#include "elf/cris.h" -#include "elf/i860.h" -#include "elf/x86-64.h" +#include "elf/ppc.h" #include "elf/s390.h" +#include "elf/sh.h" +#include "elf/sparc.h" +#include "elf/v850.h" +#include "elf/x86-64.h" #include "elf/xstormy16.h" #include "bucomm.h" @@ -596,6 +597,8 @@ guess_is_rela (e_machine) case EM_386: case EM_486: case EM_960: + case EM_OPENRISC: + case EM_OR32: case EM_M32R: case EM_CYGNUS_M32R: case EM_D10V: @@ -1027,6 +1030,11 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela) rtype = elf_h8_reloc_type (type); break; + case EM_OPENRISC: + case EM_OR32: + rtype = elf_or32_reloc_type (type); + break; + case EM_PJ: case EM_PJ_OLD: rtype = elf_pj_reloc_type (type); @@ -1185,6 +1193,8 @@ get_ppc64_dynamic_type (type) switch (type) { case DT_PPC64_GLINK: return "PPC64_GLINK"; + case DT_PPC64_OPD: return "PPC64_OPD"; + case DT_PPC64_OPDSZ: return "PPC64_OPDSZ"; default: return NULL; } @@ -1458,6 +1468,8 @@ get_machine_name (e_machine) case EM_S390_OLD: case EM_S390: return "IBM S/390"; case EM_XSTORMY16: return "Sanyo Xstormy16 CPU core"; + case EM_OPENRISC: + case EM_OR32: return "OpenRISC"; default: sprintf (buff, _("<unknown>: %x"), e_machine); return buff; @@ -1629,6 +1641,8 @@ get_machine_flags (e_flags, e_machine) case EM_68K: if (e_flags & EF_CPU32) strcat (buf, ", cpu32"); + if (e_flags & EF_M68000) + strcat (buf, ", m68000"); break; case EM_PPC: diff --git a/contrib/binutils/binutils/size.c b/contrib/binutils/binutils/size.c index 3293e44..3da7520 100644 --- a/contrib/binutils/binutils/size.c +++ b/contrib/binutils/binutils/size.c @@ -29,9 +29,9 @@ out of luck; there's no --compatibility or --pedantic option. */ #include "bfd.h" -#include "getopt.h" #include "bucomm.h" #include "libiberty.h" +#include "getopt.h" #ifndef BSD_DEFAULT #define BSD_DEFAULT 1 diff --git a/contrib/binutils/config.guess b/contrib/binutils/config.guess index aa6ea3f..83c544d 100755 --- a/contrib/binutils/config.guess +++ b/contrib/binutils/config.guess @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002 Free Software Foundation, Inc. -timestamp='2002-01-10' +timestamp='2002-01-30' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -837,7 +837,9 @@ EOF # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. - ld_supported_targets=`cd /; ld --help 2>&1 \ + # Export LANG=C to prevent ld from outputting information in other + # languages. + ld_supported_targets=`LANG=C; export LANG; cd /; ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// @@ -874,8 +876,12 @@ EOF LIBC=gnulibc1 # endif #else + #ifdef __INTEL_COMPILER + LIBC=gnu + #else LIBC=gnuaout #endif + #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` rm -f $dummy.c @@ -1061,8 +1067,10 @@ EOF *:procnto*:*:* | *:QNX:[0123456789]*:*) if test "${UNAME_MACHINE}" = "x86pc"; then UNAME_MACHINE=pc + echo i386-${UNAME_MACHINE}-nto-qnx + else + echo `uname -p`-${UNAME_MACHINE}-nto-qnx fi - echo `uname -p`-${UNAME_MACHINE}-nto-qnx exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx diff --git a/contrib/binutils/config.sub b/contrib/binutils/config.sub index 1657334..c840398 100755 --- a/contrib/binutils/config.sub +++ b/contrib/binutils/config.sub @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002 Free Software Foundation, Inc. -timestamp='2002-01-02' +timestamp='2002-02-01' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -242,11 +242,11 @@ case $basic_machine in | mipsisa32 \ | mn10200 | mn10300 \ | ns16k | ns32k \ - | openrisc \ + | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[34] | sh[34]eb | shbe | shle \ + | sh | sh[34] | sh[34]eb | shbe | shle | sh64 \ | sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic80 | tron \ @@ -305,7 +305,7 @@ case $basic_machine in | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \ + | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \ | sparc-* | sparc64-* | sparc86x-* | sparclite-* \ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* \ | t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \ @@ -714,6 +714,10 @@ case $basic_machine in basic_machine=hppa1.1-oki os=-proelf ;; + or32 | or32-*) + basic_machine=or32-unknown + os=-coff + ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose @@ -1006,6 +1010,9 @@ case $basic_machine in sh3 | sh4 | sh3eb | sh4eb) basic_machine=sh-unknown ;; + sh64) + basic_machine=sh64-unknown + ;; sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; @@ -1259,6 +1266,9 @@ case $basic_machine in mips*-*) os=-elf ;; + or32-*) + os=-coff + ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; diff --git a/contrib/binutils/configure b/contrib/binutils/configure index e55339f..477bbe0 100755 --- a/contrib/binutils/configure +++ b/contrib/binutils/configure @@ -3,7 +3,7 @@ ### WARNING: this file contains embedded tabs. Do not run untabify on this file. # Configuration script -# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001 +# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1999 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -804,57 +804,46 @@ fi # If CC and CXX are not set in the environment, and the Makefile # exists, try to extract them from it. This is to handle running -# ./config.status by hand. Do the same for various Makefile fragments -# so that they can specify these vars. -for file in Mafefile ${package_makefile_rules_frag} \ - ${site:+config/ms-${site}} ${host_makefile_frag} \ - ${target_makefile_frag} ${package_makefile_frag} -do - if ! test -r $file; then - file=${srcdir}/${file} - if ! test -r $file; then continue; fi - fi - - if [ -z "${CC}" ]; then - sed -n -e ':loop +# ./config.status by hand. +if [ -z "${CC}" ] && [ -r Makefile ]; then + sed -n -e ':loop /\\$/ N s/\\\n//g t loop -/^CC[ ]*=/ s/CC[ ]*=[ ]*\(.*\)/\1/p' < $file > Makefile.cc - CC=`tail -1 Makefile.cc` - rm -f Makefile.cc - fi +/^CC[ ]*=/ s/CC[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc + CC=`tail -1 Makefile.cc` + rm -f Makefile.cc +fi - if [ -z "${CFLAGS}" ]; then - sed -n -e ':loop +if [ -z "${CFLAGS}" ] && [ -r Makefile ]; then + sed -n -e ':loop /\\$/ N s/\\\n//g t loop -/^CFLAGS[ ]*=/ s/CFLAGS[ ]*=[ ]*\(.*\)/\1/p' < $file > Makefile.cc - CFLAGS=`tail -1 Makefile.cc` - rm -f Makefile.cc - fi +/^CFLAGS[ ]*=/ s/CFLAGS[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc + CFLAGS=`tail -1 Makefile.cc` + rm -f Makefile.cc +fi - if [ -z "${CXX}" ]; then - sed -n -e ':loop +if [ -z "${CXX}" ] && [ -r Makefile ]; then + sed -n -e ':loop /\\$/ N s/\\\n//g t loop -/^CXX[ ]*=/ s/CXX[ ]*=[ ]*\(.*\)/\1/p' < $file > Makefile.cc - CXX=`tail -1 Makefile.cc` - rm -f Makefile.cc - fi +/^CXX[ ]*=/ s/CXX[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc + CXX=`tail -1 Makefile.cc` + rm -f Makefile.cc +fi - if [ -z "${CXXFLAGS}" ]; then - sed -n -e ':loop +if [ -z "${CXXFLAGS}" ] && [ -r Makefile ]; then + sed -n -e ':loop /\\$/ N s/\\\n//g t loop -/^CXXFLAGS[ ]*=/ s/CXXFLAGS[ ]*=[ ]*\(.*\)/\1/p' < $file > Makefile.cc - CXXFLAGS=`tail -1 Makefile.cc` - rm -f Makefile.cc - fi -done +/^CXXFLAGS[ ]*=/ s/CXXFLAGS[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc + CXXFLAGS=`tail -1 Makefile.cc` + rm -f Makefile.cc +fi # Generate a default definition for YACC. This is used if the makefile can't # locate bison or byacc in objdir. diff --git a/contrib/binutils/configure.in b/contrib/binutils/configure.in index a9219bb..c533c44 100644 --- a/contrib/binutils/configure.in +++ b/contrib/binutils/configure.in @@ -904,6 +904,9 @@ case "${target}" in esac noconfigdirs="$noconfigdirs target-libgloss target-libffi" ;; + sh64-*-*) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; sparc-*-elf*) if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-libstub target-cygmon" diff --git a/contrib/binutils/gas/ChangeLog b/contrib/binutils/gas/ChangeLog index 10a0688..6d22e26 100644 --- a/contrib/binutils/gas/ChangeLog +++ b/contrib/binutils/gas/ChangeLog @@ -1,3 +1,726 @@ +2002-02-21 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * config/tc-mips.c (md_parse_option): Complain about invalid -mabi + option input. + +2002-02-18 Daniel Jacobowitz <drow@mvista.com> + + * config/obj-coff.h: Check !target_big_endian, not shl, for coff-sh. + +2002-02-18 John David Anglin <dave@hiauly1.hia.nrc.ca> + + * config/tc-hppa.c (hppa_fix_adjustable): Don't adjust final types + that implicitly use LR and RR selectors. + +2002-02-16 Nick Clifton <nickc@cambridge.redhat.com> + + * doc/as.texinfo (Machine Dependencies): Fix typo: MMIX used + instead of CRIS. + +2002-02-15 Chris Demetriou <cgd@broadcom.com> + + * config/tc-mips.c (md_estimate_size_before_relax): Really + make sure we treat weak like extern only for ELF. (Fixes + patch from 2001-07-25.) + +2002-02-15 Ben Elliston <bje@redhat.com> + + * doc/as.texinfo: Add duplicate directory entry so that "info gas" + works as expected. + +Fri Feb 15 15:18:51 CET 2002 Jan Hubicka <jh@suse.cz> + + * i386.c (md_assemble): Support 32bit address prefix. + (i386_displacement): Likewise. + (i386_index_check): Accept 32bit addressing in 64bit mode. + +2002-02-15 Hans-Peter Nilsson <hp@bitrange.com> + + * NEWS: Mention support for MMIX. + +2002-02-13 Chris Demetriou <cgd@broadcom.com> + + * config/tc-mips.c (mips_need_elf_addend_fixup): Restructure into + a sequence of indpendent 'if' statements for easier debugging + and future modification. + +2002-02-13 Matt Fredette <fredette@netbsd.org> + + * config/tc-m68k.c (md_show_usage): No longer display a + hard-coded "68020" for the default CPU, instead display the + canonical name of the true, configured default CPU. + (m68k_elf_final_processing): Mark objects for sub-68020 + CPUs with the new EF_M68000 flag. + +2002-02-13 Andreas Schwab <schwab@suse.de> + + * config/tc-i386.c (tc_i386_fix_adjustable): Don't adjust + pc-relative relocations to merge sections in 64-bit mode. + +2002-02-12 Alexandre Oliva <aoliva@redhat.com> + + * config/tc-mn10300.c (other_registers): Added `epsw'. Mark `pc' + and `epsw' as available on AM33 and above only. + (other_register_name): Add logic to handle machine type encoded in + reg_number. + +2002-02-11 Tom Rix <trix@redhat.com> + + * config/tc-ppc.c (md_apply_fix3): Check for insert fop invalid for + xcoff64. + +2002-02-11 Alexandre Oliva <aoliva@redhat.com> + + * config/tc-sparc.c (U0x80000000, U0xffffffff): New constants. + Use all over. + +2002-02-11 Alexandre Oliva <aoliva@redhat.com> + + * config/tc-sh.c (dot): Removed unused function. + +2002-02-10 Richard Henderson <rth@redhat.com> + + * doc/c-alpha.texi: New file. + * doc/Makefile.am (CPU_DOCS): Add it. + * doc/all.texi, doc/as.texinfo: Add hooks for Alpha. + +2002-02-09 Richard Henderson <rth@redhat.com> + + * config/tc-alpha.c (O_samegp): New. + (USER_RELOC_P): Include it. + (alpha_reloc_op_tag, debug_exp, find_macro_match): Add it. + (md_apply_fix3): Handle BFD_RELOC_ALPHA_BRSGP. + (alpha_force_relocation, alpha_fix_adjustable): Likewise. + (alpha_validate_fix): New. + * config/tc-alpha.h (TC_VALIDATE_FIX): New. + +2002-02-09 Hans-Peter Nilsson <hp@axis.com> + + * doc/c-cris.texi: New. + * doc/all.texi: @set CRIS. + * doc/as.texinfo: Ditto. Add CRIS gas manpage option overview. + Include c-cris.texi. + * doc/Makefile.am (CPU_DOCS): Add c-cris.texi + * doc/Makefile.in: Regenerate. + +2002-02-08 Chris Demetriou <cgd@broadcom.com> + + * config/tc-mips.c (IS_SEXT_32BIT_NUM): New macro to + determine if a number is a sign-extended 32-bit number. + (load_register): Use IS_SEXT_32BIT_NUM. + (macro): Check if load/store macro handling is using a + constant 32-bit address on 64-bit address systems, and if + so optimize the generation of that address. + +2002-02-08 Richard Henderson <rth@redhat.com> + + * config/tc-alpha.c (alpha_force_relocation): Don't assert that + we've eliminated all foreign relocation types yet. + (alpha_fix_adjustable): Likewise. + +2002-02-08 Alexandre Oliva <aoliva@redhat.com> + + Contribute sh64-elf. + 2002-02-08 Alexandre Oliva <aoliva@redhat.com> + Stephen Clarke <Stephen.Clarke@st.com> + * doc/c-sh64.texi: Fix citation of SH64 architecture manual. + 2002-01-31 Alexandre Oliva <aoliva@redhat.com> + * config/tc-sh.c (md_relax_table): Added default sizes for + non-PC-relative UNDEF_MOVI, and relaxation sequences for + MOVI_16, MOVI_32 and MOVI_48. + * config/tc-sh64.c (shmedia_md_apply_fix3): Fix warning. + (shmedia_md_convert_frag): Handle non-PC-relative UNDEF_MOVI + and MOVI_16. + (shmedia_md_estimate_size_before_relax): Remove redundant + blocks. Set fragP->fr_var even if relaxation type unchanged. + Retain UNDEF_MOVI until expression decays to number. + 2002-01-24 Alexandre Oliva <aoliva@redhat.com> + * config/tc-sh64.c (shmedia_init_reloc): Handle new SHmedia PIC + relocation types. Take fixP->fx_addnumber into account too. + (shmedia_md_apply_fix): Likewise. + (shmedia_md_convert_frag): Likewise. + (shmedia_build_Mytes): Likewise. + (sh64_consume_datalabel): Complain about nested datalabel. + Support PIC relocs. Call sh_parse_name. + * config/tc-sh64.h (TC_RELOC_RTSYM_LOC_FIXUP): Extend definition + in tc-sh.h to SHmedia reloc types. + * config/tc-sh.c (SH64PCRELPLT, MOVI_PLT, MOVI_GOTOFF, + MOVI_GOTPC): New relaxation constants. + (md_relax_table): Introduce relaxation directives for PIC-related + constants. + (sh_PIC_related_p): Handle datalabel. + (sh_check_fixup): Choose SH5 PIC relocations. + (sh_cons_fix_new): Added BDF_RELOC_64. + (md_apply_fix3, sh_parse_name): Handle GOTPLT. + 2002-01-18 Alexandre Oliva <aoliva@redhat.com> + * config/tc-sh64.c (sh64_max_mem_for_rs_align_code): If the + current ISA is SHmedia, get 7 bytes. + 2001-11-28 Nick Clifton <nickc@cambridge.redhat.com> + * config/tc-sh.c (md_apply_fix3): Treat shmedia_md_apply_fix3 as a + void function. + * config/tc-sh64.c (shmedia_apply_fix): Rename to + shmedia_apply_fix3 and make void. + 2001-05-17 Alexandre Oliva <aoliva@redhat.com> + * config/tc-sh64.c (s_sh64_abi): Remove unused arguments passed to + as_bad. + 2001-04-12 Alexandre Oliva <aoliva@redhat.com> + * config/tc-sh64.h (md_parse_name): Take &c as argument. + 2001-03-14 DJ Delorie <dj@redhat.com> + * doc/Makefile.am (CPU_DOCS): Added c-sh64.texi + * doc/Makefile.in(CPU_DOCS): Ditto. + * doc/c-sh64.texi: New file. + * doc/as.texinfo: Add SH64 support. + 2001-03-13 DJ Delorie <dj@redhat.com> + * config/tc-sh64.c (shmedia_get_operands): Rename A_RESV_Fx to + A_REUSE_PREV so that its purpose is more obvious. + (shmedia_build_Mytes): Ditto. + 2001-03-07 DJ Delorie <dj@redhat.com> + * config/tc-sh64.c (sh64_vtable_entry): New, strip datalabels + before processing. + (sh64_vtable_inherit): Ditto. + (strip_datalabels): New, strip "datalabel" from given line. + * config/tc-sh.c (md_pseudo_table): Add sh64-specific vtable + pseudos. + 2001-03-06 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c (shmedia_md_assemble): Move dwarf2_emit_insn + call ... + (shmedia_build_Mytes): ... to here. + 2001-03-06 DJ Delorie <dj@redhat.com> + * config/tc-sh.c: Remove sh64-specific uaquad now that there + is a generic one. + 2001-01-21 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.h (DWARF2_LINE_MIN_INSN_LENGTH): Override. + * config/tc-sh64.c (shmedia_md_assemble): Offset recorded insn + address by one in call to dwarf2_emit_insn. + 2001-01-13 Hans-Peter Nilsson <hpn@cygnus.com> + Implement ".abi" pseudo and correct .cranges descriptors. Correct + alignment handling broken by imported changes. + * config/tc-sh64.h (HANDLE_ALIGN): Override definition in tc-sh.h. + (sh64_handle_align): Declare. + (MAX_MEM_FOR_RS_ALIGN_CODE): Override definition in tc-sh.h. + (sh64_max_mem_for_rs_align_code): Declare. + (enum sh64_isa_values): Moved here from tc-sh64.c. + (md_do_align): Define. + (sh64_do_align): Declare. + (struct sh64_tc_frag_data): New. + (TC_FRAG_TYPE): Change to struct sh64_tc_frag_data. Users + changed. + (TC_FRAG_INIT): Change to set new datatype. + (struct sh64_segment_info_type): Rename member + last_flushed_location to last_contents_mark. All users changed. + (md_elf_section_change_hook, TC_CONS_FIX_NEW): Do not define. + (shmedia_elf_new_section, sh64_tc_cons_fix_new): Do not prototype. + * config/tc-sh.c (md_pseudo_table): Add ".abi". + (sh_elf_cons) [HAVE_SH64]: Call sh64_update_contents_mark instead + of unsetting seen_insn. + (md_assemble) [HAVE_SH64] <before new SHcompact sequence>: Also + call sh64_update_contents_mark. + (sh_handle_align): Remove HAVE_SH64-conditioned code. + * config/tc-sh64.c (sh64_isa_mode): Correct type from boolean to + enum sh64_isa_values. + (sh64_set_contents_type): Drop segT parameter. All callers changed. + (emitting_crange): Boolean guard moved to file scope from function + scope in sh64_set_contents_type. + (s_sh64_abi): New. + (sh64_update_contents_mark): New; most split out from + sh64_flush_pending_output. + (shmedia_md_end): Call sh64_update_contents_mark. Set + sh64_isa_mode to sh64_isa_sh5_guard unless sh64_isa_unspecified. + (sh64_do_align): New function. + (sh64_max_mem_for_rs_align_code): New function. + (sh64_handle_align): Rename from shmedia_do_align. Make + non-static. Add head comment. Emit zero bytes for n bytes modulo + four. Change return-type to void. + (shmedia_elf_new_section): Remove. + (shmedia_md_assemble): Call sh64_update_contents_mark. + (s_sh64_mode): Ditto. Do not call md_flush_pending_output. Make + new frag. Call sh64_update_contents_mark after making the new + frag. + (sh64_flush_pending_output): Just call sh64_update_contents_mark + and sh_flush_pending_output. + (sh64_flag_output): Also call md_flush_pending_output, but add + condition on not emitting_crange. + (sh64_tc_cons_fix_new): Remove. + 2001-01-12 Nick Clifton <nickc@redhat.com> + * config/tc-sh64.c (shmedia_do_align): Fix to work with new + alignment handling scheme imported from sourceware. + 2001-01-12 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.h (TARGET_FORMAT): Define. + (sh64_target_format): Prototype. + * config/tc-sh64.c (sh64_target_mach): New function. + 2001-01-07 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c (shmedia_md_end): When equating a symbol, use + zero_address_frag instead of copying the frag of the symbol. + (shmedia_frob_file_before_adjust): Ditto. + (shmedia_md_apply_fix) <case BFD_RELOC_SH_IMM_MEDLOW16>: Cast mask + to valueT to remove signedness. + (shmedia_md_convert_frag): Add parameter final. Rename parameter + headers to output_bfd. Do not evaluate symbols if final is false; + do emit fixups. + (shmedia_md_estimate_size_before_relax) <case C (MOVI_IMM_32, + UNDEF_MOVI) et al>: If symbol cannot be modified to be PC-relative + to the current frag, call shmedia_md_convert_frag to emit fixups + and make frag_wane neutralize the frag. Update comments. + * config/tc-sh.c (md_convert_frag): Change caller of + shmedia_md_convert_frag. + 2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.h: Tweak comments and correct formatting. + * config/tc-sh64.c: Ditto. + (shmedia_md_convert_frag) <PT/PTA/PTB 32, 48 and 64 bit + expansion, MOVI pcrel expansion>: Fix thinko calculating offset + for the no-relocation case. + (shmedia_check_limits): Fix range check being off-by-one for PTA. + * config/tc-sh.c: Ditto. Add proper comments to #ifdef/#ifndef + wrappers. + (SH64PCREL16_F): Increment for proper max-PTA handling. Update + comment. + (SH64PCREL16_M, MOVI_16_M): Correct range thinko. + (SH64PCREL48_M, MOVI_48_M): Similar; don't count in length of + expansion. + (SH64PCREL32_M, MOVI_32_M): Ditto; handle overflowing expression. + Correct comment. + 2001-01-05 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c (shmedia_md_apply_fix) <second switch, case + BFD_RELOC_SH_PT_16>: Set lowest bit in field to be relocated to 1. + (shmedia_md_convert_frag) <case C (SH64PCREL16_32, SH64PCREL16) et + al>: Set lowest bit of field to relocate to 1 and rest to empty, + if reloc is emitted. + 2000-12-31 Hans-Peter Nilsson <hpn@cygnus.com> + New options plus bugfixes. + * config/tc-sh.c (md_longopts): New options "-no-expand" and + "-expand-pt32". + (md_parse_option): Handle new options. + (md_show_usage): Add blurb for new options. + * config/tc-sh64.c (SHMEDIA_BFD_RELOC_PT): New macro. + (sh64_expand, sh64_pt32): New variables. + (shmedia_init_reloc): Handle BFD_RELOC_SH_PT_16. + (shmedia_md_apply_fix): Hold original fixP->fx_r_type in + orig_fx_r_type. Change SHMEDIA_BFD_RELOC_PT into + BFD_RELOC_SH_PT_16. Handle BFD_RELOC_SH_PT_16 as pc-relative. + <resolved previously-pc-relative relocs>: Handle + SHMEDIA_BFD_RELOC_PT and BFD_RELOC_SH_PT_16. + (shmedia_md_convert_frag) <case C (SH64PCREL16PT_64, SH64PCREL16), + case C (SH64PCREL16PT_32, SH64PCREL16)>: Modify to PTB if operand + points to SHcompact code. + <case C (SH64PCREL16_32, SH64PCREL16), case C (SH64PCREL16_64, + SH64PCREL16)>: Check that ISA of what operand points at and + PTA/PTB matches, or emit error. + (shmedia_check_limits): Handle BFD_RELOC_SH_PT_16 and + SHMEDIA_BFD_RELOC_PT. + (shmedia_immediate_op): If pcrel, emit fixup also for constant + operand. + (shmedia_build_Mytes) <case A_IMMS16>: Also check sh64_expand in + condition for MOVI expansion. + <case A_PCIMMS16BY4>: Handle expansion to 32 bits only, if + sh64_pt32. Emit only a BFD_RELOC_SH_PT_16 fixup if not + sh64_expand. + <case A_PCIMMS16BY4_PT>: Likewise, but emit a SHMEDIA_BFD_RELOC_PT + fixup. + (sh64_target_format): Error-check setting of sh64_pt32 and + sh64_expand. Fix typo in check for sh64_shcompact_const_crange. + (shmedia_md_pcrel_from_section): Handle BFD_RELOC_SH_PT_16 and + SHMEDIA_BFD_RELOC_PT as coming from SHmedia code. + 2000-12-31 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c: Improve comments. + (shmedia_md_convert_frag): Remove inactive is_pt_variant code. Do + not say the linker will check correctness of PTA/PTB expansion. + (shmedia_md_end): Make non-static. + * config/tc-sh64.h (md_end): Define to shmedia_md_end. Add + prototype. + * config/tc-sh.c (sh_finalize): Remove. + * config/tc-sh.h (md_end): Do not define. + Remove prototype for sh_finalize. + 2000-12-30 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c (shmedia_frob_section_type): Use a struct + sh64_section_data container when storing section type in tdata + field in elf_section_data. + * config/tc-sh.c (sh_elf_final_processing): Change from EF_SH64 to + EF_SH5. + * Makefile.am: Update dependencies. + * Makefile.in: Regenerate. + 2000-12-22 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c (shmedia_md_assemble): Don't protect + dwarf2_emit_insn call with test on debug_type. + 2000-12-19 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c (sh64_set_contents_type): Make contents-type + CRT_SH5_ISA32 sticky for 64-bit. + 2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com> + Generate .crange sections when switching ISA mode or emitting + constants in same section as code. + * config/tc-sh64.c: Reformat structure definitions. + (sh64_end_of_assembly, sh64_mix, sh64_shcompact_const_crange): New + variables. + (sh64_set_contents_type): Rename from sh64_init_section. Rewrite + to emit a .cranges descriptor when contents type changes. Only + emit error if changing contents type and -no-mix is in effect. + (sh64_emit_crange, sh64_flush_last_crange, sh64_flag_output, + sh64_flush_pending_output, sh64_tc_cons_fix_new): New functions. + (shmedia_md_end): Set sh64_end_of_assembly. Pass + sh64_flush_last_crange over sections. + When checking main symbol of datalabel symbol, check for + STO_SH5_ISA32, not ISA type of section in definition. + (shmedia_frob_file_before_adjust): Check main symbol for + STO_SH5_ISA32; don't check ISA type of section in definition. + (shmedia_frob_section_type): Adjust for .cranges; set section flag + to SHF_SH5_ISA32_MIXED or SHF_SH5_ISA32 according to whether + .cranges entries have been output. + (shmedia_elf_new_section): Just call md_flush_pending_output. + (shmedia_md_assemble): Do not emit a BFD_RELOC_SH_SHMEDIA_CODE + fix. Do not set tc_segment_info_data.in_code for section. Call + sh64_set_contents_type for SHmedia code. + (s_sh64_mode): Do not call sh64_init_section or set seen_insn to + false. Call md_flush_pending_output. + (sh64_target_format): Check that -no-mix and + -shcompact-const-crange are used in sane combination with other + options. + (shmedia_md_pcrel_from_section): Check type of fix for how to + adjust pc-relative. + (sh64_consume_datalabel): Check symbol for having STO_SH5_ISA32, + not ISA type of section in definition. + * config/tc-sh64.h (struct sh64_segment_info_type): Rewrite to + hold contents-type state. + (md_flush_pending_output): Redefine to sh64_flush_pending_output. + (sh64_flush_pending_output): Declare. + (TC_CONS_FIX_NEW): Define to sh64_tc_cons_fix_new. + (sh64_tc_cons_fix_new): Declare. + * config/tc-sh.c (sh_elf_cons) [HAVE_SH64]: Unset seen_insn and + call sh64_flag_output. + (md_assemble) [HAVE_SH64]: Do not emit BFD_RELOC_SH_CODE. Just + call sh64_set_contents_type to mark SHcompact code and set + seen_insn. + (md_longopts): New options "-no-mix" and + "-shcompact-const-crange". + (md_parse_option): Handle new options. + (md_show_usage): Add blurb for new options. + (md_number_to_chars) [HAVE_SH64]: Call sh64_flag_output. + 2000-12-15 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c: Delete investigated and obsolete fixme:s. + (sh64_last_insn_frag): New. + (shmedia_md_convert_frag): Use tc_frag_data field of incoming frag + to get frag for insn opcode for generating fixups; do not assume it + is the same frag. + (shmedia_build_Mytes): Set sh64_last_insn_frag after growing frag + for new insn. + * config/tc-sh64.h (ELF_TC_SPECIAL_SECTIONS): Define for .cranges + section. + (TC_FRAG_TYPE): Define as fragS *. + (TC_FRAG_INIT): Define to set tc_frag_data to sh64_last_insn_frag. + (sh64_last_insn_frag): Declare. + (sh64_consume_datalabel): Fix typo; check for seginfo != NULL, + not == NULL before dereferencing. + 2000-12-12 Hans-Peter Nilsson <hpn@cygnus.com> + Get rid of BFD section flag and EF_SH64_ABI64. + * config/tc-sh64.c (shmedia_frob_section_type): Use + elf_section_data (sec)->tdata, not a specific BFD section flag, to + communicate the section as containing SHmedia code. Describe why. + * config/tc-sh.c (sh_elf_final_processing): Tweak comment. Set + EF_SH64 regardless of ABI. + * config/tc-sh64.c (shmedia_md_apply_fix): Decapitalize "invalid" + in error message. Handle resolved expressions for + BFD_RELOC_SH_IMMS10, BFD_RELOC_SH_IMMS10BY2, + BFD_RELOC_SH_IMMS10BY4 and BFD_RELOC_64. + (shmedia_check_limits): Handle BFD_RELOC_64. + (sh64_adjust_symtab): Do not decrement the GAS symbol value for + a STO_SH5_ISA32 symbol, only the BFD value. + 2000-12-11 Ben Elliston <bje@redhat.com> + * config/tc-sh64.c: Call dwarf2_emit_insn, not the defunct + dwarf2_generate_asm_lineno. + 2000-12-11 Hans-Peter Nilsson <hpn@cygnus.com> + Handle PC-relative MOVI expansions with assembler relaxation. + Generate PC-relative relocs from 16-bit PC-relative expressions. + * config/tc-sh64.c (SHMEDIA_MD_PCREL_FROM_FIX): Break out from... + (shmedia_md_pcrel_from_section): ...here. + (shmedia_md_apply_fix): Handle fixups for 16-bit operands that has + turned completely resolved. Adjust relocation type for 16-bit + immediate operands that has turned PC-relative. Adjust back for + MD_PCREL_FROM_SECTION being applied twice. + (shmedia_md_convert_frag): Always emit reloc for expression with + global or weak symbol. Handle relaxation result for PC-relative + expressions. + (shmedia_md_estimate_size_before_relax): An expression with a weak + or global symbol can not be relaxed. Break out tests for + relaxable symbol into variable sym_relaxable. + <cases C (MOVI_IMM_64, UNDEF_MOVI) and C (MOVI_IMM_32, + UNDEF_MOVI)>: Break out any PC-relative expression and change + relaxation type. + (shmedia_build_Mytes): CSE &operands->operands[j] into variable + opjp. + <case A_IMMS16>: Fix typo for initial minor relaxation type of + MOVI expansion. If X_op_symbol of the immediate expression is + set, make an expression symbol for the argument to frag_var. + * config/tc-sh.c (MOVI_IMM_32_PCREL, MOVI_IMM_64_PCREL): New + relaxations. + (END): Adjust for new relaxations. + (md_relax_table): Add entries for new relaxations. + 2000-12-07 Ben Elliston <bje@redhat.com> + * config/tc-sh64.c (shmedia_parse_reg): Initialize variable len. + 2000-12-07 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c (shmedia_md_convert_frag): Correct all MOVI and + SHORI operand offsets in PT/PTA/PTB expansions. + 2000-12-05 Hans-Peter Nilsson <hpn@cygnus.com> + Implement DataLabel semantics. + * config/tc-sh.c (sh_frob_file) [HAVE_SH64]: Call + shmedia_frob_file_before_adjust. + * config/tc-sh64.c [! OBJ_ELF]: Emit #error. + (DATALABEL_SUFFIX): Define. + (shmedia_md_end) <before adjusting STO_SH5_ISA32 symbols>: Walk + symbol list to update "datalabel" symbols to their main symbol + counterparts. + (shmedia_frob_file_before_adjust): New. + (sh64_adjust_symtab): For remaining datalabel symbols, set to + undefined and set STT_DATALABEL. + (sh64_frob_label): Initialize TC symbol field. + (sh64_consume_datalabel): Actually implement semantics. New + parameter operandf, call it instead of expression. + (sh64_exclude_symbol): New. + * config/tc-sh64.h (md_parse_name): Pass on the function operand + to sh64_consume_datalabel. + (tc_symbol_new_hook): Define to tc_frob_symbol. + (TC_SYMFIELD_TYPE): Define to symbolS *. + (tc_frob_symbol): Define to call sh64_exclude_symbol. + 2000-12-01 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c (shmedia_init_reloc): Tweak comment for default + case. + (shmedia_md_assemble): Call dwarf2_generate_asm_lineno if + generating dwarf2 debug information. + 2000-11-30 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c (sh64_target_format): Use elf64-sh64l and + elf64-sh64 for the 64-bit ABI. + * config/tc-sh.c (md_show_usage): Tweak usage output for -abi=* + option. + 2000-11-29 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh.c: Remove conditionalizing on HAVE_SH64 for + case-insensitivity. + 2000-11-27 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c: Tweak comments, formatting and error messages. + (enum sh64_abi_values): New type. + (enum sh64_isa_values): New type. + (sh64_isa_mode): Replace shmedia_mode. All referers changed. + (seen_shcompact_mode, seen_shmedia_mode): Delete. + (sh64_abi): Replace shmedia_64. + (shmedia_md_convert_frag) <C (MOVI_IMM_64, MOVI_64), + C (MOVI_IMM_32, MOVI_32)>: Correct register number handling. + (s_sh64_mode): Check validity for this target. + (sh64_target_format): Initialize defaults for ISA and ABI. + Fallback to old object format if no SH64 ISA or ABI has been + specified. + * config/tc-sh.c (md_parse_option): Check combinations for errors. + (sh_elf_final_processing): Change to have EF_SH64_ABI64 for 64-bit + ABI and EF_SH64 for 32-bit ABI, if SH64 options are specified. + * config/tc-sh64.h: Fix typo in comment. + 2000-11-25 Hans-Peter Nilsson <hpn@cygnus.com> + * config/tc-sh64.c (shmedia_md_estimate_size_before_relax) + <PT fixups for absolute values>: Size will be longest, not + shortest. + (shmedia_md_convert_frag): Disable PTB-warning machinery. Correct + all MOVI and SHORI operand offsets in PT/PTA/PTB expansions. + * config/tc-sh.c (parse_reg) [HAVE_SH64]: Add local variables l0 + and l1 to hold lowercase of two first characters. Change all + remaining TO_LOWER to tolower. + * config/tc-sh64.c (TO_LOWER): Delete. + (shmedia_find_cooked_opcode): Use tolower, not TO_LOWER. + (md_parse_name): Define. + (sh64_consume_datalabel): Declare. + (DOLLAR_DOT): Define. + * config/tc-sh64.c (shmedia_parse_exp): New. + (sh64_consume_datalabel): New; just ignoring datalabel semantics. + (shmedia_parse_reg): Remove const from src + parameter. + (shmedia_get_operands): Ditto for args parameter and ptr variable. + (shmedia_md_assemble): Ditto for op_end variable. + (shmedia_get_operand): Ditto for ptr parameter and src variable. + Use shmedia_parse_exp, not parse_exp. + * config/tc-sh64.c (shmedia_parse_reg): Add shmedia_arg_type + parameter. All callers changed. + (shmedia_get_operand): Add shmedia_arg_type parameter. All + callers changed. + (shmedia_parse_reg): Put first two character in local variables. + Use tolower, not TO_LOWER. If no register is found and argtype + indicates a control register, scan shmedia_creg_table + case-insensitive. + 2000-11-24 Hans-Peter Nilsson <hpn@cygnus.com> + * Makefile.am (CPU_TYPES): Add sh64. + (TARGET_CPU_CFILES): Add config/tc-sh64.c. + (TARGET_CPU_HFILES): Add config/tc-sh64.h. + Regenerate dependencies. + * Makefile.in: Regenerate. + * configure.in: Add support for sh64-*-elf*. + * configure: Regenerate. + * config/tc-sh64.h: New. + * config/tc-sh64.c: New. + * config/tc-sh.c (md_pseudo_table) [HAVE_SH64]: New pseudos + .mode, .isa and .uaquad. + [HAVE_SH64] (SH64PCREL16_32, SH64PCREL16_64, SH64PCREL16PT_32, + SH64PCREL16PT_64, MOVI_IMM_32, MOVI_IMM_64): Define. + [HAVE_SH64] (END): Define as 10. + [HAVE_SH64] (UNDEF_SH64PCREL, SH64PCREL16, SH64PCREL32, + SH64PCREL48, SH64PCREL64, UNDEF_MOVI, MOVI_16, MOVI_32, MOVI_48, + MOVI_64): Define. + [HAVE_SH64] (SH64PCREL16_F, SH64PCREL16_M, SH64PCREL16_LENGTH, + SH64PCREL32_F, SH64PCREL32_M, SH64PCREL32_LENGTH, SH64PCREL48_F, + SH64PCREL48_M, SH64PCREL48_LENGTH, SH64PCREL64_LENGTH, + MOVI_16_LENGTH, MOVI_32_LENGTH, MOVI_48_LENGTH, MOVI_64_LENGTH): + Define. + (md_relax_table) [HAVE_SH64]: Provide relaxations for SHmedia. + (md_begin) [HAVE_SH64]: Call shmedia_md_begin. + (parse_reg) [HAVE_SH64]: Parse register names case-insensitive. + (md_assemble) [HAVE_SH64]: Call shmedia_md_assemble if assembling + SHmedia instructions. Handle state-change after switching to + SHcompact. + (md_longopts) [HAVE_SH64]: New options --isa=* and --abi=*. + (md_parse_option) [HAVE_SH64]: Parse new options. + (md_show_usage) [HAVE_SH64]: Show usage of new options. + (md_convert_frag) [HAVE_SH64] <default>: Call + shmedia_md_convert_frag instead of abort. + (sh_force_relocation) [HAVE_SH64]: Also force relocation for + BFD_RELOC_SH_SHMEDIA_CODE. + (sh_elf_final_processing) [HAVE_SH64]: Set flags identifying + SHcompact or SHmedia code. + (md_apply_fix) [HAVE_SH64] <default>: Return result from calling + shmedia_md_apply_fix instead of abort. + (md_estimate_size_before_relax) [HAVE_SH64] <default>: Return + result from calling shmedia_md_estimate_size_before_relax instead + of calling abort. + (sh_do_align) [HAVE_SH64]: If shmedia_mode, let shmedia_do_align + do the work. + (tc_gen_reloc) [HAVE_SH64]: For unrecognized relocs, call + shmedia_init_reloc and do nothing more if it returns non-zero. + (sh_finalize) [HAVE_SH64]: Call shmedia_md_end. + * po/POTFILES.in: Regenerate. + * po/gas.pot: Regenerate. + +2002-02-06 Alexandre Oliva <aoliva@redhat.com> + + * config/tc-sh.c (parse_at): Install the correct version of + 2002-02-04's patch. + + * config/tc-sh.c (md_apply_fix3) <BFD_RELOC_32_PLT_PCREL>: Don't + assume fixP->fx_subsy is non-NULL. + +2002-02-04 Alexandre Oliva <aoliva@redhat.com> + + * config/tc-sh.c (parse_at): Set arg type of @(expr,pc) to + A_DISP_PC_ABS, and adjust it by -4. + (get_specific): Accept A_DISP_PC_ABS where A_DISP_PC is + expected. + (build_Mytes): Mark PCRELIMM fix-ups as pc-relative only if + the operand type is not A_DISP_PC_ABS. + +2002-02-04 Hans-Peter Nilsson <hp@bitrange.com> + + * config/tc-mmix.c (tc_gen_reloc): Don't try and take the value of + common and weak symbols. Handle common and weak symbols as + undefined symbols with regards to GREG handling and merging. + (mmix_frob_file): Ditto. + +2002-02-02 Jason Thorpe <thorpej@wasabisystems.com> + + * configure.in (hppa-*-netbsd*): New target. + * configure: Regenerate. + * config/tc-hppa.h: Also define WARN_COMMENTS if TE_NetBSD. + +2002-02-02 Alan Modra <amodra@bigpond.net.au> + + * config/tc-v850.c: Add missing prototypes amd use old-style + function definitions. + (AREA_ZDA, AREA_SDA, AREA_TDA): Delete. + (sdata_section tdata_section, zdata_section, sbss_section, + tbss_section, zbss_section, rosdata_section, rozdata_section, + scommon_section, tcommon_section, zcommon_section, + call_table_data_section, call_table_text_section): Delete. + (v850_sdata, v850_tdata, v850_zdata, v850_sbss, v850_tbss, + v850_zbss, v850_bss, v850_rosdata, v850_rozdata, + v850_call_table_data, v850_call_table_text): Delete. + (struct v850_seg_entry): New. + (v850_seg_table): New. + (SDATA_SECTION TDATA_SECTION, ZDATA_SECTION, SBSS_SECTION, + TBSS_SECTION, ZBSS_SECTION, BSS_SECTION, ROSDATA_SECTION, + ROZDATA_SECTION, SCOMMON_SECTION, TCOMMON_SECTION, ZCOMMON_SECTION, + CALL_TABLE_DATA_SECTION, CALL_TABLE_TEXT_SECTION): Define. + (do_v850_seg): New. + (v850_seg): New. + (v850_comm): Use do_v850_seg and v850_seg_table. Simplify + recording of alignment. + (md_pseudo_table): Use v850_seg. + (md_begin): Don't init .call_table_data and .call_table_text here. + Set v850_seg_table bss entry. + +2002-02-01 Hans-Peter Nilsson <hp@bitrange.com> + + Support on-demand global register allocation by passing on + base-plus-offset relocs to the linker. + * config/tc-mmix.c: Tweak and fix typos in comments. + (allocate_undefined_gregs_in_linker): New variable. + (OPTION_LINKER_ALLOCATED_GREGS): New option macro. + (md_longopts): Add --linker-allocated-gregs. + (md_parse_option) <case 'x'>: Imply --linker-allocated-gregs. + <case OPTION_LINKER_ALLOCATED_GREGS>: New. + (md_show_usage): Update text for -x. Add text for + --linker-allocated-gregs. + (tc_gen_reloc): Derive default value for addend from val and + baddsy. Use addsec and bfd_is_abs_section in more places. Don't + emit error for BFD_RELOC_MMIX_BASE_PLUS_OFFSET without suitable + GREG if allocate_undefined_gregs_in_linker. + * doc/as.texinfo (Overview) <Target MMIX options>: Add + --linker-allocated-gregs. + * doc/c-mmix.texi (MMIX-Opts): Add blurb about + --linker-allocated-gregs. Mention that it's implied by -x. + (MMIX-Pseudos) <GREG>: Mention when and how a GREG can be omitted. + (MMIX-mmixal): Clarify dated comparison and location of MMIXware. + + * config/tc-mmix.h (md_parse_name): Use ISUPPER, not isupper. + +2002-02-01 Alan Modra <amodra@bigpond.net.au> + + * Makefile.am: Run "make dep-am" + * Makefile.in: Regenerate. + +2002-01-31 Ivan Guzvinec <ivang@opencores.org> + + * config/tc-or32.c: New file. + * config/tc-or32.h: New file. + * configure.in: Add support for or32 targets. + * configure: Regenerate. + * config/obj-coff.c: Add support for or32 targets. + * config/obj-coff.h: Add support for or32 targets. + * Makefile.am: Add support for or32 targets. + * Makefile.in: Regenerate. + * NEWS: Mention support for OpenRISC. + * doc/Makefile.in: Regenerate. + * po/POTFILES.in: Regenerate. + * po/gas.pot: Regenerate. + +2002-01-30 Richard Sandiford <rsandifo@redhat.com> + + * config/tc-sh.c (parse_reg): Fix end-of-word check for is, ix, iy + and mod. + +2002-01-29 Chris Demetriou <cgd@broadcom.com> + + * config/tc-mips.c (tc_gen_reloc): Arrange for + BFD_RELOC_PCREL_HI16_S relocations to be output relative to + their LO16 parts, even for ELF. + +2002-01-29 Daniel Jacobowitz <drow@mvista.com> + + * config/tc-i386.c: Protect definitions of true and false + from redefinition. + +2002-01-28 Jakub Jelinek <jakub@redhat.com> + + * config/obj-elf.c (elf_frob_file_before_adjust): Remove symbols + made because of .weak, if they are neither defined nor used in any + way. + +2002-01-27 Daniel Jacobowitz <drow@mvista.com> + + * configure: Regenerated. + +2002-01-26 Hans-Peter Nilsson <hp@bitrange.com> + + * doc/Makefile.am (install): Depend on install-info. + * doc/Makefile.in: Regenerate. + 2002-01-26 Nick Clifton <nick@redhat.com> * po/fr.po: Updated version diff --git a/contrib/binutils/gas/Makefile.am b/contrib/binutils/gas/Makefile.am index 304189d..a0262e8 100644 --- a/contrib/binutils/gas/Makefile.am +++ b/contrib/binutils/gas/Makefile.am @@ -65,6 +65,7 @@ CPU_TYPES = \ mn10300 \ ns32k \ openrisc \ + or32 \ pdp11 \ pj \ ppc \ @@ -78,6 +79,7 @@ CPU_TYPES = \ vax \ w65 \ v850 \ + sh64 \ xstormy16 \ z8k @@ -251,11 +253,13 @@ TARGET_CPU_CFILES = \ config/tc-mn10300.c \ config/tc-ns32k.c \ config/tc-openrisc.c \ + config/tc-or32.c \ config/tc-pdp11.c \ config/tc-pj.c \ config/tc-ppc.c \ config/tc-s390.c \ config/tc-sh.c \ + config/tc-sh64.c \ config/tc-sparc.c \ config/tc-tahoe.c \ config/tc-tic30.c \ @@ -296,11 +300,13 @@ TARGET_CPU_HFILES = \ config/tc-mn10300.h \ config/tc-ns32k.h \ config/tc-openrisc.h \ + config/tc-or32.h \ config/tc-pdp11.h \ config/tc-pj.h \ config/tc-ppc.h \ config/tc-s390.h \ config/tc-sh.h \ + config/tc-sh64.h \ config/tc-sparc.h \ config/tc-tahoe.h \ config/tc-tic30.h \ @@ -1262,6 +1268,16 @@ DEPTC_openrisc_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ subsegs.h $(INCDIR)/obstack.h $(srcdir)/../opcodes/openrisc-desc.h \ $(INCDIR)/opcode/cgen.h $(srcdir)/../opcodes/openrisc-opc.h \ cgen.h +DEPTC_or32_coff = $(INCDIR)/safe-ctype.h $(INCDIR)/symcat.h \ + $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-or32.h \ + $(INCDIR)/coff/internal.h $(INCDIR)/coff/or32.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/opcode/or32.h $(INCDIR)/elf/or32.h \ + $(INCDIR)/elf/reloc-macros.h +DEPTC_or32_elf = $(INCDIR)/safe-ctype.h $(INCDIR)/symcat.h \ + $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ + $(srcdir)/config/tc-or32.h $(INCDIR)/opcode/or32.h \ + $(INCDIR)/elf/or32.h $(INCDIR)/elf/reloc-macros.h DEPTC_pdp11_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-pdp11.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/safe-ctype.h $(INCDIR)/opcode/pdp11.h @@ -1714,6 +1730,15 @@ DEPOBJ_openrisc_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-openrisc.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ $(INCDIR)/aout/aout64.h +DEPOBJ_or32_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ + $(srcdir)/config/tc-or32.h $(INCDIR)/coff/internal.h \ + $(INCDIR)/coff/or32.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h \ + $(INCDIR)/obstack.h subsegs.h +DEPOBJ_or32_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-or32.h \ + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + $(INCDIR)/aout/aout64.h DEPOBJ_pdp11_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-pdp11.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/aout/aout64.h $(INCDIR)/obstack.h @@ -1762,6 +1787,20 @@ DEPOBJ_sh_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-sh.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ $(INCDIR)/aout/aout64.h +DEPTC_sh64_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ + $(INCDIR)/bfdlink.h $(srcdir)/config/tc-sh64.h $(srcdir)/config/tc-sh.h \ + $(srcdir)/../opcodes/sh64-opc.h $(srcdir)/config/tc-sh.c \ + subsegs.h $(INCDIR)/obstack.h $(srcdir)/../opcodes/sh-opc.h \ + struc-symbol.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ + dwarf2dbg.h $(INCDIR)/symcat.h +DEPOBJ_sh64_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ + $(INCDIR)/bfdlink.h $(srcdir)/config/tc-sh64.h $(srcdir)/config/tc-sh.h \ + subsegs.h $(INCDIR)/obstack.h $(INCDIR)/aout/aout64.h $(INCDIR)/elf/sh.h +DEP_sh64_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ + $(INCDIR)/bfdlink.h $(srcdir)/config/tc-sh64.h $(srcdir)/config/tc-sh.h DEPOBJ_sparc_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-sparc.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/aout/aout64.h $(INCDIR)/obstack.h @@ -2058,6 +2097,12 @@ DEP_openrisc_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-openrisc.h \ DEP_openrisc_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-openrisc.h +DEP_or32_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-or32.h \ + $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/or32.h \ + $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h +DEP_or32_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-or32.h DEP_pdp11_aout = $(srcdir)/config/obj-aout.h $(srcdir)/config/tc-pdp11.h \ $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h DEP_pdp11_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-pdp11.h \ diff --git a/contrib/binutils/gas/Makefile.in b/contrib/binutils/gas/Makefile.in index 5664979..a184acf 100644 --- a/contrib/binutils/gas/Makefile.in +++ b/contrib/binutils/gas/Makefile.in @@ -176,6 +176,7 @@ CPU_TYPES = \ mn10300 \ ns32k \ openrisc \ + or32 \ pdp11 \ pj \ ppc \ @@ -189,6 +190,7 @@ CPU_TYPES = \ vax \ w65 \ v850 \ + sh64 \ xstormy16 \ z8k @@ -368,11 +370,13 @@ TARGET_CPU_CFILES = \ config/tc-mn10300.c \ config/tc-ns32k.c \ config/tc-openrisc.c \ + config/tc-or32.c \ config/tc-pdp11.c \ config/tc-pj.c \ config/tc-ppc.c \ config/tc-s390.c \ config/tc-sh.c \ + config/tc-sh64.c \ config/tc-sparc.c \ config/tc-tahoe.c \ config/tc-tic30.c \ @@ -414,11 +418,13 @@ TARGET_CPU_HFILES = \ config/tc-mn10300.h \ config/tc-ns32k.h \ config/tc-openrisc.h \ + config/tc-or32.h \ config/tc-pdp11.h \ config/tc-pj.h \ config/tc-ppc.h \ config/tc-s390.h \ config/tc-sh.h \ + config/tc-sh64.h \ config/tc-sparc.h \ config/tc-tahoe.h \ config/tc-tic30.h \ @@ -1033,6 +1039,18 @@ DEPTC_openrisc_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(INCDIR)/opcode/cgen.h $(srcdir)/../opcodes/openrisc-opc.h \ cgen.h +DEPTC_or32_coff = $(INCDIR)/safe-ctype.h $(INCDIR)/symcat.h \ + $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-or32.h \ + $(INCDIR)/coff/internal.h $(INCDIR)/coff/or32.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/opcode/or32.h $(INCDIR)/elf/or32.h \ + $(INCDIR)/elf/reloc-macros.h + +DEPTC_or32_elf = $(INCDIR)/safe-ctype.h $(INCDIR)/symcat.h \ + $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ + $(srcdir)/config/tc-or32.h $(INCDIR)/opcode/or32.h \ + $(INCDIR)/elf/or32.h $(INCDIR)/elf/reloc-macros.h + DEPTC_pdp11_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-pdp11.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/safe-ctype.h $(INCDIR)/opcode/pdp11.h @@ -1589,6 +1607,17 @@ DEPOBJ_openrisc_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ $(INCDIR)/aout/aout64.h +DEPOBJ_or32_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ + $(srcdir)/config/tc-or32.h $(INCDIR)/coff/internal.h \ + $(INCDIR)/coff/or32.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h \ + $(INCDIR)/obstack.h subsegs.h + +DEPOBJ_or32_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-or32.h \ + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + $(INCDIR)/aout/aout64.h + DEPOBJ_pdp11_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-pdp11.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/aout/aout64.h $(INCDIR)/obstack.h @@ -1648,6 +1677,23 @@ DEPOBJ_sh_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ $(INCDIR)/aout/aout64.h +DEPTC_sh64_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ + $(INCDIR)/bfdlink.h $(srcdir)/config/tc-sh64.h $(srcdir)/config/tc-sh.h \ + $(srcdir)/../opcodes/sh64-opc.h $(srcdir)/config/tc-sh.c \ + subsegs.h $(INCDIR)/obstack.h $(srcdir)/../opcodes/sh-opc.h \ + struc-symbol.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ + dwarf2dbg.h $(INCDIR)/symcat.h + +DEPOBJ_sh64_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ + $(INCDIR)/bfdlink.h $(srcdir)/config/tc-sh64.h $(srcdir)/config/tc-sh.h \ + subsegs.h $(INCDIR)/obstack.h $(INCDIR)/aout/aout64.h $(INCDIR)/elf/sh.h + +DEP_sh64_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ + $(INCDIR)/bfdlink.h $(srcdir)/config/tc-sh64.h $(srcdir)/config/tc-sh.h + DEPOBJ_sparc_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-sparc.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/aout/aout64.h $(INCDIR)/obstack.h @@ -2035,6 +2081,14 @@ DEP_openrisc_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-openrisc.h +DEP_or32_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-or32.h \ + $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/or32.h \ + $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h + +DEP_or32_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-or32.h + DEP_pdp11_aout = $(srcdir)/config/obj-aout.h $(srcdir)/config/tc-pdp11.h \ $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h @@ -2228,7 +2282,7 @@ configure configure.in gdbinit.in itbl-lex.c itbl-parse.c DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = tar +TAR = gtar GZIP_ENV = --best SOURCES = $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) $(gasp_new_SOURCES) OBJECTS = $(itbl_test_OBJECTS) $(as_new_OBJECTS) $(gasp_new_OBJECTS) diff --git a/contrib/binutils/gas/NEWS b/contrib/binutils/gas/NEWS index 950f63b..df3033e 100644 --- a/contrib/binutils/gas/NEWS +++ b/contrib/binutils/gas/NEWS @@ -1,4 +1,8 @@ -*- text -*- +Support for Don Knuth's MMIX, by Hans-Peter Nilsson. + +Support for the OpenRISC 32-bit embedded processor by OpenCores. + The ARM assembler now accepts -march=..., -mcpu=... and -mfpu=... for specifying the target instruction set. The old method of specifying the target processor has been deprecated, but is still accepted for diff --git a/contrib/binutils/gas/aclocal.m4 b/contrib/binutils/gas/aclocal.m4 index 2a3ccb7..be1c188 100644 --- a/contrib/binutils/gas/aclocal.m4 +++ b/contrib/binutils/gas/aclocal.m4 @@ -203,7 +203,7 @@ dnl AM_PROG_LEX dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT AC_DEFUN(AM_PROG_LEX, [missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1) -AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex") +AC_CHECK_PROGS(LEX, flex lex, $missing_dir/missing flex) AC_PROG_LEX AC_DECL_YYTEXT]) diff --git a/contrib/binutils/gas/config/obj-coff.c b/contrib/binutils/gas/config/obj-coff.c index 759389a..c956d62 100644 --- a/contrib/binutils/gas/config/obj-coff.c +++ b/contrib/binutils/gas/config/obj-coff.c @@ -1,6 +1,6 @@ /* coff object file format Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001 + 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS. @@ -1889,7 +1889,7 @@ count_entries_in_chain (idx) { if (fixup_ptr->fx_done == 0 && TC_COUNT_RELOC (fixup_ptr)) { -#ifdef TC_A29K +#if defined(TC_A29K) || defined(TC_OR32) if (fixup_ptr->fx_r_type == RELOC_CONSTH) nrelocs += 2; else @@ -2048,6 +2048,20 @@ do_relocs_for (abfd, h, file_cursor) ext_ptr++; } #endif +#if defined(TC_OR32) + /* The or32 has a special kludge for the high 16 bit + reloc. Two relocations are emited, R_IHIHALF, + and R_IHCONST. The second one doesn't contain a + symbol, but uses the value for offset. */ + if (intr.r_type == R_IHIHALF) + { + /* Now emit the second bit. */ + intr.r_type = R_IHCONST; + intr.r_symndx = fix_ptr->fx_addnumber; + (void) bfd_coff_swap_reloc_out (abfd, & intr, ext_ptr); + ext_ptr ++; + } +#endif } fix_ptr = fix_ptr->fx_next; @@ -2127,6 +2141,7 @@ fill_section (abfd, h, file_cursor) COFF_NOLOAD_PROBLEM, and have only one test here. */ #ifndef TC_I386 #ifndef TC_A29K +#ifndef TC_OR32 #ifndef COFF_NOLOAD_PROBLEM /* Apparently the SVR3 linker (and exec syscall) and UDI mondfe progrem are confused by noload sections. */ @@ -2134,6 +2149,7 @@ fill_section (abfd, h, file_cursor) #endif #endif #endif +#endif } else if (strcmp (s->s_name, ".lit") == 0) s->s_flags = STYP_LIT | STYP_TEXT; @@ -4420,7 +4436,7 @@ fixup_segment (segP, this_segment_type) break; default: -#if defined(TC_A29K) || (defined(TE_PE) && defined(TC_I386)) || defined(TC_M88K) +#if defined(TC_A29K) || (defined(TE_PE) && defined(TC_I386)) || defined(TC_M88K) || defined(TC_OR32) /* This really should be handled in the linker, but backward compatibility forbids. */ add_number += S_GET_VALUE (add_symbolP); @@ -4466,7 +4482,7 @@ fixup_segment (segP, this_segment_type) if (pcrel) { -#if !defined(TC_M88K) && !(defined(TE_PE) && defined(TC_I386)) && !defined(TC_A29K) +#if !defined(TC_M88K) && !(defined(TE_PE) && defined(TC_I386)) && !defined(TC_A29K) && !defined(TC_OR32) /* This adjustment is not correct on the m88k, for which the linker does all the computation. */ add_number -= md_pcrel_from (fixP); diff --git a/contrib/binutils/gas/config/obj-coff.h b/contrib/binutils/gas/config/obj-coff.h index 98948be..8d2ae73 100644 --- a/contrib/binutils/gas/config/obj-coff.h +++ b/contrib/binutils/gas/config/obj-coff.h @@ -1,6 +1,6 @@ /* coff object file format Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000 + 1999, 2000, 2002 Free Software Foundation, Inc. This file is part of GAS. @@ -90,6 +90,11 @@ #define TARGET_FORMAT "coff-a29k-big" #endif +#ifdef TC_OR32 +#include "coff/or32.h" +#define TARGET_FORMAT "coff-or32-big" +#endif + #ifdef TC_I960 #include "coff/i960.h" #define TARGET_FORMAT "coff-Intel-little" @@ -122,15 +127,10 @@ #define TARGET_FORMAT "pe-shl" #else -#if 0 /* FIXME: The "shl" varaible does not appear to exist. What happened to it ? */ #define TARGET_FORMAT \ - (shl \ + (!target_big_endian \ ? (sh_small ? "coff-shl-small" : "coff-shl") \ : (sh_small ? "coff-sh-small" : "coff-sh")) -#else -#define TARGET_FORMAT \ - (sh_small ? "coff-shl-small" : "coff-shl") -#endif #endif #endif @@ -190,9 +190,7 @@ extern void coff_obj_symbol_new_hook PARAMS ((symbolS *)); extern void coff_obj_read_begin_hook PARAMS ((void)); #define obj_read_begin_hook coff_obj_read_begin_hook -/* *********************************************************************** - - This file really contains two implementations of the COFF back end. +/* This file really contains two implementations of the COFF back end. They are in the process of being merged, but this is only a preliminary, mechanical merging. Many definitions that are identical between the two are still found in both versions. @@ -226,9 +224,7 @@ extern void coff_obj_read_begin_hook PARAMS ((void)); See doc/internals.texi for a brief discussion of the history, if you care. - Ken Raeburn, 5 May 1994 - - *********************************************************************** */ + Ken Raeburn, 5 May 1994. */ #ifdef BFD_ASSEMBLER @@ -257,10 +253,10 @@ extern void coff_obj_read_begin_hook PARAMS ((void)); extern void obj_coff_section PARAMS ((int)); -/* The number of auxiliary entries */ +/* The number of auxiliary entries. */ #define S_GET_NUMBER_AUXILIARY(s) \ (coffsymbol (symbol_get_bfdsym (s))->native->u.syment.n_numaux) -/* The number of auxiliary entries */ +/* The number of auxiliary entries. */ #define S_SET_NUMBER_AUXILIARY(s,v) (S_GET_NUMBER_AUXILIARY (s) = (v)) /* True if a symbol name is in the string table, i.e. its length is > 8. */ @@ -271,9 +267,9 @@ extern int S_SET_STORAGE_CLASS PARAMS ((symbolS *, int)); extern int S_GET_STORAGE_CLASS PARAMS ((symbolS *)); extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *)); -/* Auxiliary entry macros. SA_ stands for symbol auxiliary */ -/* Omit the tv related fields */ -/* Accessors */ +/* Auxiliary entry macros. SA_ stands for symbol auxiliary. */ +/* Omit the tv related fields. */ +/* Accessors. */ #define SA_GET_SYM_TAGNDX(s) (SYM_AUXENT (s)->x_sym.x_tagndx.l) #define SA_GET_SYM_LNNO(s) (SYM_AUXENT (s)->x_sym.x_misc.x_lnsz.x_lnno) @@ -297,15 +293,13 @@ extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *)); #define SA_SET_SCN_NRELOC(s,v) (SYM_AUXENT (s)->x_scn.x_nreloc=(v)) #define SA_SET_SCN_NLINNO(s,v) (SYM_AUXENT (s)->x_scn.x_nlinno=(v)) -/* - * Internal use only definitions. SF_ stands for symbol flags. - * - * These values can be assigned to sy_symbol.ost_flags field of a symbolS. - * - * You'll break i960 if you shift the SYSPROC bits anywhere else. for - * more on the balname/callname hack, see tc-i960.h. b.out is done - * differently. - */ +/* Internal use only definitions. SF_ stands for symbol flags. + + These values can be assigned to sy_symbol.ost_flags field of a symbolS. + + You'll break i960 if you shift the SYSPROC bits anywhere else. for + more on the balname/callname hack, see tc-i960.h. b.out is done + differently. */ #define SF_I960_MASK (0x000001ff) /* Bits 0-8 are used by the i960 port. */ #define SF_SYSPROC (0x0000003f) /* bits 0-5 are used to store the sysproc number */ @@ -330,7 +324,7 @@ extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *)); #define SF_GET_SEGMENT (0x00200000) /* Get the section of the forward symbol. */ /* All other bits are unused. */ -/* Accessors */ +/* Accessors. */ #define SF_GET(s) (*symbol_get_obj (s)) #define SF_GET_DEBUG(s) (symbol_get_bfdsym (s)->flags & BSF_DEBUGGING) #define SF_SET_DEBUG(s) (symbol_get_bfdsym (s)->flags |= BSF_DEBUGGING) @@ -352,7 +346,7 @@ extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *)); #define SF_GET_IS_SYSPROC(s) (SF_GET (s) & SF_IS_SYSPROC) /* used by i960 */ #define SF_GET_SYSPROC(s) (SF_GET (s) & SF_SYSPROC) /* used by i960 */ -/* Modifiers */ +/* Modifiers. */ #define SF_SET(s,v) (SF_GET (s) = (v)) #define SF_SET_NORMAL_FIELD(s,v) (SF_GET (s) |= ((v) & SF_NORMAL_MASK)) #define SF_SET_DEBUG_FIELD(s,v) (SF_GET (s) |= ((v) & SF_DEBUG_MASK)) @@ -414,7 +408,7 @@ extern symbolS *coff_last_function; #endif #endif -/* sanity check */ +/* Sanity check. */ #ifdef TC_I960 #ifndef C_LEAFSTAT @@ -424,8 +418,8 @@ hey ! Where is the C_LEAFSTAT definition ? i960 - coff support is depending on i #else /* not BFD_ASSEMBLER */ -#ifdef TC_A29K -/* Allow translate from aout relocs to coff relocs */ +#if defined TC_A29K || defined TC_OR32 +/* Allow translate from aout relocs to coff relocs. */ #define NO_RELOC 20 #define RELOC_32 1 #define RELOC_8 2 @@ -447,7 +441,7 @@ extern const segT N_TYPE_seg[]; /* SYMBOL TABLE */ -/* Symbol table entry data type */ +/* Symbol table entry data type. */ typedef struct { @@ -455,18 +449,17 @@ typedef struct struct internal_syment ost_entry; /* Auxiliary entry. */ union internal_auxent ost_auxent[OBJ_COFF_MAX_AUXENTRIES]; - /* obj_coff internal use only flags */ + /* obj_coff internal use only flags. */ unsigned int ost_flags; } obj_symbol_type; #ifndef DO_NOT_STRIP #define DO_NOT_STRIP 0 #endif -/* Symbol table macros and constants */ +/* Symbol table macros and constants. */ /* Possible and usefull section number in symbol table - * The values of TEXT, DATA and BSS may not be portable. - */ + The values of TEXT, DATA and BSS may not be portable. */ #define C_ABS_SECTION N_ABS #define C_UNDEF_SECTION N_UNDEF @@ -475,27 +468,25 @@ typedef struct #define C_PTV_SECTION P_TV #define C_REGISTER_SECTION 50 -/* - * Macros to extract information from a symbol table entry. - * This syntaxic indirection allows independence regarding a.out or coff. - * The argument (s) of all these macros is a pointer to a symbol table entry. - */ +/* Macros to extract information from a symbol table entry. + This syntaxic indirection allows independence regarding a.out or coff. + The argument (s) of all these macros is a pointer to a symbol table entry. */ -/* Predicates */ -/* True if the symbol is external */ +/* Predicates. */ +/* True if the symbol is external. */ #define S_IS_EXTERNAL(s) ((s)->sy_symbol.ost_entry.n_scnum == C_UNDEF_SECTION) /* True if symbol has been defined, ie : section > 0 (DATA, TEXT or BSS) - section == 0 and value > 0 (external bss symbol) */ + section == 0 and value > 0 (external bss symbol). */ #define S_IS_DEFINED(s) \ ((s)->sy_symbol.ost_entry.n_scnum > C_UNDEF_SECTION \ || ((s)->sy_symbol.ost_entry.n_scnum == C_UNDEF_SECTION \ && S_GET_VALUE (s) > 0) \ || ((s)->sy_symbol.ost_entry.n_scnum == C_ABS_SECTION)) -/* True if a debug special symbol entry */ +/* True if a debug special symbol entry. */ #define S_IS_DEBUG(s) ((s)->sy_symbol.ost_entry.n_scnum == C_DEBUG_SECTION) -/* True if a symbol is local symbol name */ -/* A symbol name whose name includes ^A is a gas internal pseudo symbol */ +/* True if a symbol is local symbol name. */ +/* A symbol name whose name includes ^A is a gas internal pseudo symbol. */ #define S_IS_LOCAL(s) \ ((s)->sy_symbol.ost_entry.n_scnum == C_REGISTER_SECTION \ || (S_LOCAL_NAME(s) && ! flag_keep_locals && ! S_IS_DEBUG (s)) \ @@ -504,13 +495,11 @@ typedef struct || (flag_strip_local_absolute \ && !S_IS_EXTERNAL(s) \ && (s)->sy_symbol.ost_entry.n_scnum == C_ABS_SECTION)) -/* True if a symbol is not defined in this file */ +/* True if a symbol is not defined in this file. */ #define S_IS_EXTERN(s) ((s)->sy_symbol.ost_entry.n_scnum == 0 \ && S_GET_VALUE (s) == 0) -/* - * True if a symbol can be multiply defined (bss symbols have this def - * though it is bad practice) - */ +/* True if a symbol can be multiply defined (bss symbols have this def + though it is bad practice). */ #define S_IS_COMMON(s) ((s)->sy_symbol.ost_entry.n_scnum == 0 \ && S_GET_VALUE (s) != 0) /* True if a symbol name is in the string table, i.e. its length is > 8. */ @@ -526,41 +515,41 @@ typedef struct ((s)->sy_symbol.ost_entry.n_sclass == C_WEAKEXT) #endif -/* Accessors */ -/* The name of the symbol */ +/* Accessors. */ +/* The name of the symbol. */ #define S_GET_NAME(s) ((char*) (s)->sy_symbol.ost_entry.n_offset) -/* The pointer to the string table */ +/* The pointer to the string table. */ #define S_GET_OFFSET(s) ((s)->sy_symbol.ost_entry.n_offset) -/* The numeric value of the segment */ +/* The numeric value of the segment. */ #define S_GET_SEGMENT(s) s_get_segment(s) -/* The data type */ +/* The data type. */ #define S_GET_DATA_TYPE(s) ((s)->sy_symbol.ost_entry.n_type) -/* The storage class */ +/* The storage class. */ #define S_GET_STORAGE_CLASS(s) ((s)->sy_symbol.ost_entry.n_sclass) -/* The number of auxiliary entries */ +/* The number of auxiliary entries. */ #define S_GET_NUMBER_AUXILIARY(s) ((s)->sy_symbol.ost_entry.n_numaux) -/* Modifiers */ -/* Set the name of the symbol */ +/* Modifiers. */ +/* Set the name of the symbol. */ #define S_SET_NAME(s,v) ((s)->sy_symbol.ost_entry.n_offset = (unsigned long) (v)) -/* Set the offset of the symbol */ +/* Set the offset of the symbol. */ #define S_SET_OFFSET(s,v) ((s)->sy_symbol.ost_entry.n_offset = (v)) -/* The numeric value of the segment */ +/* The numeric value of the segment. */ #define S_SET_SEGMENT(s,v) ((s)->sy_symbol.ost_entry.n_scnum = SEGMENT_TO_SYMBOL_TYPE(v)) -/* The data type */ +/* The data type. */ #define S_SET_DATA_TYPE(s,v) ((s)->sy_symbol.ost_entry.n_type = (v)) -/* The storage class */ +/* The storage class. */ #define S_SET_STORAGE_CLASS(s,v) ((s)->sy_symbol.ost_entry.n_sclass = (v)) -/* The number of auxiliary entries */ +/* The number of auxiliary entries. */ #define S_SET_NUMBER_AUXILIARY(s,v) ((s)->sy_symbol.ost_entry.n_numaux = (v)) -/* Additional modifiers */ -/* The symbol is external (does not mean undefined) */ +/* Additional modifiers. */ +/* The symbol is external (does not mean undefined). */ #define S_SET_EXTERNAL(s) { S_SET_STORAGE_CLASS(s, C_EXT) ; SF_CLEAR_LOCAL(s); } -/* Auxiliary entry macros. SA_ stands for symbol auxiliary */ -/* Omit the tv related fields */ -/* Accessors */ +/* Auxiliary entry macros. SA_ stands for symbol auxiliary. */ +/* Omit the tv related fields. */ +/* Accessors. */ #define SYM_AUXENT(S) (&(S)->sy_symbol.ost_auxent[0]) #define SA_GET_SYM_TAGNDX(s) (SYM_AUXENT (s)->x_sym.x_tagndx.l) @@ -577,7 +566,7 @@ typedef struct #define SA_GET_SCN_NRELOC(s) (SYM_AUXENT (s)->x_scn.x_nreloc) #define SA_GET_SCN_NLINNO(s) (SYM_AUXENT (s)->x_scn.x_nlinno) -/* Modifiers */ +/* Modifiers. */ #define SA_SET_SYM_TAGNDX(s,v) (SYM_AUXENT (s)->x_sym.x_tagndx.l=(v)) #define SA_SET_SYM_LNNO(s,v) (SYM_AUXENT (s)->x_sym.x_misc.x_lnsz.x_lnno=(v)) #define SA_SET_SYM_SIZE(s,v) (SYM_AUXENT (s)->x_sym.x_misc.x_lnsz.x_size=(v)) @@ -592,15 +581,13 @@ typedef struct #define SA_SET_SCN_NRELOC(s,v) (SYM_AUXENT (s)->x_scn.x_nreloc=(v)) #define SA_SET_SCN_NLINNO(s,v) (SYM_AUXENT (s)->x_scn.x_nlinno=(v)) -/* - * Internal use only definitions. SF_ stands for symbol flags. - * - * These values can be assigned to sy_symbol.ost_flags field of a symbolS. - * - * You'll break i960 if you shift the SYSPROC bits anywhere else. for - * more on the balname/callname hack, see tc-i960.h. b.out is done - * differently. - */ +/* Internal use only definitions. SF_ stands for symbol flags. + + These values can be assigned to sy_symbol.ost_flags field of a symbolS. + + You'll break i960 if you shift the SYSPROC bits anywhere else. for + more on the balname/callname hack, see tc-i960.h. b.out is done + differently. */ #define SF_I960_MASK (0x000001ff) /* Bits 0-8 are used by the i960 port. */ #define SF_SYSPROC (0x0000003f) /* bits 0-5 are used to store the sysproc number */ @@ -626,7 +613,7 @@ typedef struct #define SF_ADJ_LNNOPTR (0x00400000) /* Has a lnnoptr */ /* All other bits are unused. */ -/* Accessors */ +/* Accessors. */ #define SF_GET(s) ((s)->sy_symbol.ost_flags) #define SF_GET_NORMAL_FIELD(s) (SF_GET (s) & SF_NORMAL_MASK) #define SF_GET_DEBUG_FIELD(s) (SF_GET (s) & SF_DEBUG_MASK) @@ -648,7 +635,7 @@ typedef struct #define SF_GET_IS_SYSPROC(s) (SF_GET (s) & SF_IS_SYSPROC) /* used by i960 */ #define SF_GET_SYSPROC(s) (SF_GET (s) & SF_SYSPROC) /* used by i960 */ -/* Modifiers */ +/* Modifiers. */ #define SF_SET(s,v) (SF_GET (s) = (v)) #define SF_SET_NORMAL_FIELD(s,v) (SF_GET (s) |= ((v) & SF_NORMAL_MASK)) #define SF_SET_DEBUG_FIELD(s,v) (SF_GET (s) |= ((v) & SF_DEBUG_MASK)) @@ -671,12 +658,10 @@ typedef struct #define SF_SET_IS_SYSPROC(s) (SF_GET (s) |= SF_IS_SYSPROC) /* used by i960 */ #define SF_SET_SYSPROC(s,v) (SF_GET (s) |= ((v) & SF_SYSPROC)) /* used by i960 */ -/* File header macro and type definition */ +/* File header macro and type definition. */ -/* - * File position calculators. Beware to use them when all the - * appropriate fields are set in the header. - */ +/* File position calculators. Beware to use them when all the + appropriate fields are set in the header. */ #ifdef OBJ_COFF_OMIT_OPTIONAL_HEADER #define OBJ_COFF_AOUTHDRSZ (0) @@ -714,8 +699,8 @@ typedef struct H_GET_TEXT_SIZE(h) + H_GET_DATA_SIZE(h) + \ H_GET_RELOCATION_SIZE(h) + H_GET_LINENO_SIZE(h)) -/* Accessors */ -/* aouthdr */ +/* Accessors. */ +/* aouthdr. */ #define H_GET_MAGIC_NUMBER(h) ((h)->aouthdr.magic) #define H_GET_VERSION_STAMP(h) ((h)->aouthdr.vstamp) #define H_GET_TEXT_SIZE(h) ((h)->aouthdr.tsize) @@ -724,7 +709,7 @@ typedef struct #define H_GET_ENTRY_POINT(h) ((h)->aouthdr.entry) #define H_GET_TEXT_START(h) ((h)->aouthdr.text_start) #define H_GET_DATA_START(h) ((h)->aouthdr.data_start) -/* filehdr */ +/* filehdr. */ #define H_GET_FILE_MAGIC_NUMBER(h) ((h)->filehdr.f_magic) #define H_GET_NUMBER_OF_SECTIONS(h) ((h)->filehdr.f_nscns) #define H_GET_TIME_STAMP(h) ((h)->filehdr.f_timdat) @@ -733,7 +718,7 @@ typedef struct #define H_GET_SYMBOL_TABLE_SIZE(h) (H_GET_SYMBOL_COUNT(h) * SYMESZ) #define H_GET_SIZEOF_OPTIONAL_HEADER(h) ((h)->filehdr.f_opthdr) #define H_GET_FLAGS(h) ((h)->filehdr.f_flags) -/* Extra fields to achieve bsd a.out compatibility and for convenience */ +/* Extra fields to achieve bsd a.out compatibility and for convenience. */ #define H_GET_RELOCATION_SIZE(h) ((h)->relocation_size) #define H_GET_STRING_SIZE(h) ((h)->string_table_size) #define H_GET_LINENO_SIZE(h) ((h)->lineno_size) @@ -750,8 +735,8 @@ typedef struct #define H_GET_TEXT_RELOCATION_SIZE(h) (text_section_header.s_nreloc * RELSZ) #define H_GET_DATA_RELOCATION_SIZE(h) (data_section_header.s_nreloc * RELSZ) -/* Modifiers */ -/* aouthdr */ +/* Modifiers. */ +/* aouthdr. */ #define H_SET_MAGIC_NUMBER(h,v) ((h)->aouthdr.magic = (v)) #define H_SET_VERSION_STAMP(h,v) ((h)->aouthdr.vstamp = (v)) #define H_SET_TEXT_SIZE(h,v) ((h)->aouthdr.tsize = (v)) @@ -760,7 +745,7 @@ typedef struct #define H_SET_ENTRY_POINT(h,v) ((h)->aouthdr.entry = (v)) #define H_SET_TEXT_START(h,v) ((h)->aouthdr.text_start = (v)) #define H_SET_DATA_START(h,v) ((h)->aouthdr.data_start = (v)) -/* filehdr */ +/* filehdr. */ #define H_SET_FILE_MAGIC_NUMBER(h,v) ((h)->filehdr.f_magic = (v)) #define H_SET_NUMBER_OF_SECTIONS(h,v) ((h)->filehdr.f_nscns = (v)) #define H_SET_TIME_STAMP(h,v) ((h)->filehdr.f_timdat = (v)) @@ -768,30 +753,30 @@ typedef struct #define H_SET_SYMBOL_TABLE_SIZE(h,v) ((h)->filehdr.f_nsyms = (v)) #define H_SET_SIZEOF_OPTIONAL_HEADER(h,v) ((h)->filehdr.f_opthdr = (v)) #define H_SET_FLAGS(h,v) ((h)->filehdr.f_flags = (v)) -/* Extra fields to achieve bsd a.out compatibility and for convinience */ +/* Extra fields to achieve bsd a.out compatibility and for convinience. */ #define H_SET_RELOCATION_SIZE(h,t,d) ((h)->relocation_size = (t)+(d)) #define H_SET_STRING_SIZE(h,v) ((h)->string_table_size = (v)) #define H_SET_LINENO_SIZE(h,v) ((h)->lineno_size = (v)) -/* Segment flipping */ +/* Segment flipping. */ typedef struct { struct internal_aouthdr aouthdr; /* a.out header */ struct internal_filehdr filehdr; /* File header, not machine dep. */ - long string_table_size; /* names + '\0' + sizeof (int) */ - long relocation_size; /* Cumulated size of relocation - information for all sections in - bytes. */ - long lineno_size; /* Size of the line number information - table in bytes */ + long string_table_size; /* names + '\0' + sizeof (int) */ + long relocation_size; /* Cumulated size of relocation + information for all sections in + bytes. */ + long lineno_size; /* Size of the line number information + table in bytes. */ } object_headers; struct lineno_list { struct bfd_internal_lineno line; - char *frag; /* Frag to which the line number is related */ - struct lineno_list *next; /* Forward chain pointer */ + char *frag; /* Frag to which the line number is related. */ + struct lineno_list *next; /* Forward chain pointer. */ }; #define obj_segment_name(i) (segment_info[(int) (i)].scnhdr.s_name) @@ -823,7 +808,7 @@ extern void c_section_header PARAMS ((struct internal_scnhdr * header, void tc_coff_symbol_emit_hook PARAMS ((symbolS *)); #endif -/* sanity check */ +/* Sanity check. */ #ifdef TC_I960 #ifndef C_LEAFSTAT diff --git a/contrib/binutils/gas/config/obj-elf.c b/contrib/binutils/gas/config/obj-elf.c index 6ec0882..13c7482 100644 --- a/contrib/binutils/gas/config/obj-elf.c +++ b/contrib/binutils/gas/config/obj-elf.c @@ -1995,9 +1995,9 @@ elf_frob_file_before_adjust () symbolS *symp; for (symp = symbol_rootP; symp; symp = symbol_next (symp)) - if (symbol_get_obj (symp)->versioned_name) + if (!S_IS_DEFINED (symp)) { - if (!S_IS_DEFINED (symp)) + if (symbol_get_obj (symp)->versioned_name) { char *p; @@ -2017,6 +2017,14 @@ elf_frob_file_before_adjust () && symbol_used_in_reloc_p (symp) == 0) symbol_remove (symp, &symbol_rootP, &symbol_lastP); } + + /* If there was .weak foo, but foo was neither defined nor + used anywhere, remove it. */ + + else if (S_IS_WEAK (symp) + && symbol_used_p (symp) == 0 + && symbol_used_in_reloc_p (symp) == 0) + symbol_remove (symp, &symbol_rootP, &symbol_lastP); } } } diff --git a/contrib/binutils/gas/config/tc-alpha.c b/contrib/binutils/gas/config/tc-alpha.c index b1a3471..ae6f76b 100644 --- a/contrib/binutils/gas/config/tc-alpha.c +++ b/contrib/binutils/gas/config/tc-alpha.c @@ -117,6 +117,7 @@ struct alpha_macro { #define O_gprelhigh O_md9 /* !gprelhigh relocation */ #define O_gprellow O_md10 /* !gprellow relocation */ #define O_gprel O_md11 /* !gprel relocation */ +#define O_samegp O_md12 /* !samegp relocation */ #define DUMMY_RELOC_LITUSE_ADDR (BFD_RELOC_UNUSED + 1) #define DUMMY_RELOC_LITUSE_BASE (BFD_RELOC_UNUSED + 2) @@ -128,7 +129,7 @@ struct alpha_macro { #define LITUSE_BYTOFF 2 #define LITUSE_JSR 3 -#define USER_RELOC_P(R) ((R) >= O_literal && (R) <= O_gprel) +#define USER_RELOC_P(R) ((R) >= O_literal && (R) <= O_samegp) /* Macros for extracting the type and number of encoded register tokens */ @@ -498,7 +499,8 @@ static const struct alpha_reloc_op_tag { DEF(gpdisp, BFD_RELOC_ALPHA_GPDISP, 1, 1), DEF(gprelhigh, BFD_RELOC_ALPHA_GPREL_HI16, 0, 0), DEF(gprellow, BFD_RELOC_ALPHA_GPREL_LO16, 0, 0), - DEF(gprel, BFD_RELOC_GPREL16, 0, 0) + DEF(gprel, BFD_RELOC_GPREL16, 0, 0), + DEF(samegp, BFD_RELOC_ALPHA_BRSGP, 0, 0) }; #undef DEF @@ -1219,6 +1221,11 @@ md_apply_fix3 (fixP, valP, seg) } return; +#ifdef OBJ_ELF + case BFD_RELOC_ALPHA_BRSGP: + return; +#endif + #ifdef OBJ_ECOFF case BFD_RELOC_ALPHA_LITERAL: md_number_to_chars (fixpos, value, 2); @@ -1364,6 +1371,49 @@ alpha_define_label (sym) alpha_insn_label = sym; } +/* If we have a BRSGP reloc to a local symbol, adjust it to BRADDR and + let it get resolved at assembly time. */ + +void +alpha_validate_fix (f) + fixS *f; +{ +#ifdef OBJ_ELF + int offset = 0; + const char *name; + + if (f->fx_r_type != BFD_RELOC_ALPHA_BRSGP) + return; + + if (! S_IS_DEFINED (f->fx_addsy)) + return; + + switch (S_GET_OTHER (f->fx_addsy) & STO_ALPHA_STD_GPLOAD) + { + case STO_ALPHA_NOPV: + break; + case STO_ALPHA_STD_GPLOAD: + offset = 8; + break; + default: + if (S_IS_LOCAL (f->fx_addsy)) + name = "<local>"; + else + name = S_GET_NAME (f->fx_addsy); + as_bad_where (f->fx_file, f->fx_line, + _("!samegp reloc against symbol without .prologue: %s"), + name); + break; + } + + if (! (S_IS_EXTERN (f->fx_addsy) || S_IS_WEAK (f->fx_addsy))) + { + f->fx_r_type = BFD_RELOC_23_PCREL_S2; + f->fx_offset += offset; + } +#endif +} + /* Return true if we must always emit a reloc for a type and false if there is some hope of resolving it at assembly time. */ @@ -1388,6 +1438,7 @@ alpha_force_relocation (f) case BFD_RELOC_ALPHA_GPREL_LO16: case BFD_RELOC_ALPHA_LINKAGE: case BFD_RELOC_ALPHA_CODEADDR: + case BFD_RELOC_ALPHA_BRSGP: case BFD_RELOC_VTABLE_INHERIT: case BFD_RELOC_VTABLE_ENTRY: return 1; @@ -1399,8 +1450,6 @@ alpha_force_relocation (f) return 0; default: - assert ((int) f->fx_r_type < 0 - && -(int) f->fx_r_type < (int) alpha_num_operands); return 0; } } @@ -1424,6 +1473,7 @@ alpha_fix_adjustable (f) case BFD_RELOC_ALPHA_GPDISP_HI16: case BFD_RELOC_ALPHA_GPDISP_LO16: case BFD_RELOC_ALPHA_GPDISP: + case BFD_RELOC_ALPHA_BRSGP: return 0; case BFD_RELOC_ALPHA_LITERAL: @@ -1448,8 +1498,6 @@ alpha_fix_adjustable (f) return 1; default: - assert ((int) f->fx_r_type < 0 - && - (int) f->fx_r_type < (int) alpha_num_operands); return 1; } /*NOTREACHED*/ @@ -1767,6 +1815,7 @@ debug_exp (tok, ntok) case O_pregister: name = "O_pregister"; break; case O_cpregister: name = "O_cpregister"; break; case O_literal: name = "O_literal"; break; + case O_lituse_addr: name = "O_lituse_addr"; break; case O_lituse_base: name = "O_lituse_base"; break; case O_lituse_bytoff: name = "O_lituse_bytoff"; break; case O_lituse_jsr: name = "O_lituse_jsr"; break; @@ -1774,8 +1823,7 @@ debug_exp (tok, ntok) case O_gprelhigh: name = "O_gprelhigh"; break; case O_gprellow: name = "O_gprellow"; break; case O_gprel: name = "O_gprel"; break; - case O_md11: name = "O_md11"; break; - case O_md12: name = "O_md12"; break; + case O_samegp: name = "O_samegp"; break; case O_md13: name = "O_md13"; break; case O_md14: name = "O_md14"; break; case O_md15: name = "O_md15"; break; @@ -2170,6 +2218,7 @@ find_macro_match (first_macro, tok, pntok) case O_gprelhigh: case O_gprellow: case O_gprel: + case O_samegp: goto match_failed; default: diff --git a/contrib/binutils/gas/config/tc-alpha.h b/contrib/binutils/gas/config/tc-alpha.h index fb428f9..5505861 100644 --- a/contrib/binutils/gas/config/tc-alpha.h +++ b/contrib/binutils/gas/config/tc-alpha.h @@ -39,12 +39,14 @@ #define NEED_LITERAL_POOL #define REPEAT_CONS_EXPRESSIONS +extern void alpha_validate_fix PARAMS ((struct fix *)); extern int alpha_force_relocation PARAMS ((struct fix *)); extern int alpha_fix_adjustable PARAMS ((struct fix *)); extern unsigned long alpha_gprmask, alpha_fprmask; extern valueT alpha_gp_value; +#define TC_VALIDATE_FIX(FIXP,SEGTYPE,SKIP) alpha_validate_fix (FIXP) #define TC_FORCE_RELOCATION(FIXP) alpha_force_relocation (FIXP) #define tc_fix_adjustable(FIXP) alpha_fix_adjustable (FIXP) #define RELOC_REQUIRES_SYMBOL diff --git a/contrib/binutils/gas/config/tc-ppc.c b/contrib/binutils/gas/config/tc-ppc.c index 8bf09db..5a3f68b 100644 --- a/contrib/binutils/gas/config/tc-ppc.c +++ b/contrib/binutils/gas/config/tc-ppc.c @@ -5165,7 +5165,7 @@ md_apply_fix3 (fixP, valP, seg) if ((operand->flags & PPC_OPERAND_PARENS) != 0 && operand->bits == 16 && operand->shift == 0 - && operand->insert == NULL + && (operand->insert == NULL || ppc_xcoff64) && fixP->fx_addsy != NULL && symbol_get_tc (fixP->fx_addsy)->subseg != 0 && symbol_get_tc (fixP->fx_addsy)->class != XMC_TC diff --git a/contrib/binutils/gas/config/tc-sparc.c b/contrib/binutils/gas/config/tc-sparc.c index fe9f3f7..2d75fef 100644 --- a/contrib/binutils/gas/config/tc-sparc.c +++ b/contrib/binutils/gas/config/tc-sparc.c @@ -1,6 +1,6 @@ /* tc-sparc.c -- Assemble for the SPARC Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001 + 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -32,6 +32,12 @@ #include "dwarf2dbg.h" #endif +/* Some ancient Sun C compilers would not take such hex constants as + unsigned, and would end up sign-extending them to form an offsetT, + so use these constants instead. */ +#define U0xffffffff ((((unsigned long) 1 << 16) << 16) - 1) +#define U0x80000000 ((((unsigned long) 1 << 16) << 15)) + static struct sparc_arch *lookup_arch PARAMS ((char *)); static void init_default_arch PARAMS ((void)); static int sparc_ip PARAMS ((char *, const struct sparc_opcode **)); @@ -916,7 +922,7 @@ in_signed_range (val, max) if (sparc_arch_size == 32) { bfd_signed_vma sign = (bfd_signed_vma) 1 << 31; - val = ((val & 0xffffffff) ^ sign) - sign; + val = ((val & U0xffffffff) ^ sign) - sign; } if (val > max) return 0; @@ -1019,14 +1025,14 @@ synthetize_setuw (insn) { if (sizeof (offsetT) > 4 && (the_insn.exp.X_add_number < 0 - || the_insn.exp.X_add_number > (offsetT) 0xffffffff)) + || the_insn.exp.X_add_number > (offsetT) U0xffffffff)) as_warn (_("set: number not in 0..4294967295 range")); } else { if (sizeof (offsetT) > 4 - && (the_insn.exp.X_add_number < -(offsetT) 0x80000000 - || the_insn.exp.X_add_number > (offsetT) 0xffffffff)) + && (the_insn.exp.X_add_number < -(offsetT) U0x80000000 + || the_insn.exp.X_add_number > (offsetT) U0xffffffff)) as_warn (_("set: number not in -2147483648..4294967295 range")); the_insn.exp.X_add_number = (int) the_insn.exp.X_add_number; } @@ -1085,8 +1091,8 @@ synthetize_setsw (insn) } if (sizeof (offsetT) > 4 - && (the_insn.exp.X_add_number < -(offsetT) 0x80000000 - || the_insn.exp.X_add_number > (offsetT) 0xffffffff)) + && (the_insn.exp.X_add_number < -(offsetT) U0x80000000 + || the_insn.exp.X_add_number > (offsetT) U0xffffffff)) as_warn (_("setsw: number not in -2147483648..4294967295 range")); low32 = the_insn.exp.X_add_number; @@ -1128,7 +1134,7 @@ synthetize_setx (insn) int need_hh22_p = 0, need_hm10_p = 0, need_hi22_p = 0, need_lo10_p = 0; int need_xor10_p = 0; -#define SIGNEXT32(x) ((((x) & 0xffffffff) ^ 0x80000000) - 0x80000000) +#define SIGNEXT32(x) ((((x) & U0xffffffff) ^ U0x80000000) - U0x80000000) lower32 = SIGNEXT32 (the_insn.exp.X_add_number); upper32 = SIGNEXT32 (BSR (the_insn.exp.X_add_number, 32)); #undef SIGNEXT32 diff --git a/contrib/binutils/gas/doc/Makefile.am b/contrib/binutils/gas/doc/Makefile.am index 566038c..a526dde 100644 --- a/contrib/binutils/gas/doc/Makefile.am +++ b/contrib/binutils/gas/doc/Makefile.am @@ -25,9 +25,11 @@ asconfig.texi: $(CONFIG).texi CPU_DOCS = \ c-a29k.texi \ + c-alpha.texi \ c-arc.texi \ c-arm.texi \ c-d10v.texi \ + c-cris.texi \ c-h8300.texi \ c-h8500.texi \ c-hppa.texi \ @@ -46,6 +48,7 @@ CPU_DOCS = \ c-pj.texi \ c-ppc.texi \ c-sh.texi \ + c-sh64.texi \ c-sparc.texi \ c-tic54x.texi \ c-vax.texi \ @@ -59,6 +62,10 @@ gasver.texi: Makefile as.info: $(srcdir)/as.texinfo asconfig.texi gasver.texi $(CPU_DOCS) as.dvi: $(srcdir)/as.texinfo asconfig.texi gasver.texi $(CPU_DOCS) +# We want install to imply install-info as per GNU standards, despite the +# cygnus option. +install: install-info + # This one isn't ready for prime time yet. Not even a little bit. noinst_TEXINFOS = internals.texi diff --git a/contrib/binutils/gas/doc/Makefile.in b/contrib/binutils/gas/doc/Makefile.in index 147c5e7..58e08e6 100644 --- a/contrib/binutils/gas/doc/Makefile.in +++ b/contrib/binutils/gas/doc/Makefile.in @@ -136,9 +136,11 @@ info_TEXINFOS = as.texinfo gasp.texi CPU_DOCS = \ c-a29k.texi \ + c-alpha.texi \ c-arc.texi \ c-arm.texi \ c-d10v.texi \ + c-cris.texi \ c-h8300.texi \ c-h8500.texi \ c-hppa.texi \ @@ -157,6 +159,7 @@ CPU_DOCS = \ c-pj.texi \ c-ppc.texi \ c-sh.texi \ + c-sh64.texi \ c-sparc.texi \ c-tic54x.texi \ c-vax.texi \ @@ -460,6 +463,10 @@ gasver.texi: Makefile as.info: $(srcdir)/as.texinfo asconfig.texi gasver.texi $(CPU_DOCS) as.dvi: $(srcdir)/as.texinfo asconfig.texi gasver.texi $(CPU_DOCS) +# We want install to imply install-info as per GNU standards, despite the +# cygnus option. +install: install-info + # Maintenance # We need it for the taz target in ../../Makefile.in. diff --git a/contrib/binutils/gas/doc/all.texi b/contrib/binutils/gas/doc/all.texi index 9253203..0642dfd 100644 --- a/contrib/binutils/gas/doc/all.texi +++ b/contrib/binutils/gas/doc/all.texi @@ -1,4 +1,4 @@ -@c Copyright 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001 +@c Copyright 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, 2002 @c Free Software Foundation, Inc. @c This file is part of the documentation for the GAS manual @@ -27,8 +27,10 @@ @c CPUs of interest @c ================ @set A29K +@set ALPHA @set ARC @set ARM +@set CRIS @set D10V @set D30V @set H8/300 diff --git a/contrib/binutils/gas/doc/as.texinfo b/contrib/binutils/gas/doc/as.texinfo index 3d7fef5..2e21a63 100644 --- a/contrib/binutils/gas/doc/as.texinfo +++ b/contrib/binutils/gas/doc/as.texinfo @@ -1,6 +1,6 @@ \input texinfo @c -*-Texinfo-*- @c Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -@c 2001 +@c 2001, 2002 @c Free Software Foundation, Inc. @c UPDATE!! On future updates-- @c (1) check for new machine-dep cmdline options in @@ -29,8 +29,10 @@ @set TARGET TARGET @set GENERIC @set A29K +@set ALPHA @set ARC @set ARM +@set CRIS @set D10V @set D30V @set H8/300 @@ -116,6 +118,7 @@ @format START-INFO-DIR-ENTRY * As: (as). The GNU assembler. +* Gas: (as). The GNU assembler. END-INFO-DIR-ENTRY @end format @end ifinfo @@ -127,7 +130,7 @@ END-INFO-DIR-ENTRY This file documents the GNU Assembler "@value{AS}". @c man begin COPYRIGHT -Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc. +Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 @@ -180,7 +183,7 @@ done. @end tex @vskip 0pt plus 1filll -Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc. +Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 @@ -265,6 +268,14 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. @ifset A29K @c am29k has no machine-dependent assembler options @end ifset +@ifset ALPHA + +@emph{Target Alpha options:} + [@b{-m@var{cpu}}] + [@b{-mdebug} | @b{-no-mdebug}] + [@b{-relax}] [@b{-g}] [@b{-G@var{size}}] + [@b{-F}] [@b{-32addr}] +@end ifset @ifset ARC @emph{Target ARC options:} @@ -284,6 +295,15 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. @b{-mapcs-reentrant}] [@b{-mthumb-interwork}] [@b{-moabi}] [@b{-k}] @end ifset +@ifset CRIS + +@emph{Target CRIS options:} + [@b{--underscore} | @b{--no-underscore}] + [@b{--pic}] [@b{-N}] + [@b{--emulation=criself} | @b{--emulation=crisaout}] +@c Deprecated -- deliberately not documented. +@c [@b{-h}] [@b{-H}] +@end ifset @ifset D10V @emph{Target D10V options:} @@ -354,6 +374,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. [@b{--fixed-special-register-names}] [@b{--globalize-symbols}] [@b{--gnu-syntax}] [@b{--relax}] [@b{--no-predefined-symbols}] [@b{--no-expand}] [@b{--no-merge-gregs}] [@b{-x}] + [@b{--linker-allocated-gregs}] @end ifset @ifset PDP11 @@ -581,6 +602,10 @@ Specify that PIC code has been generated. @end table @end ifset +@ifset CRIS +See the info pages for documentation of the CRIS-specific options. +@end ifset + @ifset D10V The following options are available when @value{AS} is configured for a D10V processor. @@ -5571,12 +5596,18 @@ subject, see the hardware manufacturer's manual. @ifset A29K * AMD29K-Dependent:: AMD 29K Dependent Features @end ifset +@ifset ALPHA +* Alpha-Dependent:: Alpha Dependent Features +@end ifset @ifset ARC * ARC-Dependent:: ARC Dependent Features @end ifset @ifset ARM * ARM-Dependent:: ARM Dependent Features @end ifset +@ifset CRIS +* CRIS-Dependent:: CRIS Dependent Features +@end ifset @ifset D10V * D10V-Dependent:: D10V Dependent Features @end ifset @@ -5624,6 +5655,7 @@ subject, see the hardware manufacturer's manual. @end ifset @ifset SH * SH-Dependent:: Hitachi SH Dependent Features +* SH64-Dependent:: Hitachi SH64 Dependent Features @end ifset @ifset PDP11 * PDP-11-Dependent:: PDP-11 Dependent Features @@ -5662,18 +5694,26 @@ subject, see the hardware manufacturer's manual. @c node and sectioning commands; hence the repetition of @chapter BLAH @c in both conditional blocks. -@ifset ARC -@include c-arc.texi -@end ifset - @ifset A29K @include c-a29k.texi @end ifset +@ifset ALPHA +@include c-alpha.texi +@end ifset + +@ifset ARC +@include c-arc.texi +@end ifset + @ifset ARM @include c-arm.texi @end ifset +@ifset CRIS +@include c-cris.texi +@end ifset + @ifset Hitachi-all @ifclear GENERIC @node Machine Dependencies @@ -5771,6 +5811,7 @@ family. @ifset SH @include c-sh.texi +@include c-sh64.texi @end ifset @ifset SPARC diff --git a/contrib/binutils/gas/doc/c-alpha.texi b/contrib/binutils/gas/doc/c-alpha.texi new file mode 100644 index 0000000..f3c1888 --- /dev/null +++ b/contrib/binutils/gas/doc/c-alpha.texi @@ -0,0 +1,396 @@ +@c Copyright 2002 +@c Free Software Foundation, Inc. +@c This is part of the GAS manual. +@c For copying conditions, see the file as.texinfo. + +@ifset GENERIC +@page +@node Alpha-Dependent +@chapter Alpha Dependent Features +@end ifset + +@ifclear GENERIC +@node Machine Dependencies +@chapter Alpha Dependent Features +@end ifclear + +@cindex Alpha support +@menu +* Alpha Notes:: Notes +* Alpha Options:: Options +* Alpha Syntax:: Syntax +* Alpha Floating Point:: Floating Point +* Alpha Directives:: Alpha Machine Directives +* Alpha Opcodes:: Opcodes +@end menu + +@node Alpha Notes +@section Notes +@cindex Alpha notes +@cindex notes for Alpha + +The documentation here is primarily for the ELF object format. +@code{@value{AS}} also supports the ECOFF and EVAX formats, but +features specific to these formats are not yet documented. + +@node Alpha Options +@section Options +@cindex Alpha options +@cindex options for Alpha + +@table @option +@cindex @code{-m@var{cpu}} command line option, Alpha +@item -m@var{cpu} +This option specifies the target processor. If an attempt is made to +assemble an instruction which will not execute on the target processor, +the assembler may either expand the instruction as a macro or issue an +error message. This option is equivalent to the @code{.arch} directive. + +The following processor names are recognized: +@code{21064}, +@code{21064a}, +@code{21066}, +@code{21068}, +@code{21164}, +@code{21164a}, +@code{21164pc}, +@code{21264}, +@code{ev4}, +@code{ev5}, +@code{lca45}, +@code{ev5}, +@code{ev56}, +@code{pca56}, +@code{ev6}. +The special name @code{all} may be used to allow the assembler to accept +instructions valid for any Alpha processor. + +In order to support existing practice in OSF/1 with respect to @code{.arch}, +and existing practice within @command{MILO} (the Linux ARC bootloader), the +numbered processor names (e.g.@: 21064) enable the processor-specific PALcode +instructions, while the ``electro-vlasic'' names (e.g.@: @code{ev4}) do not. + +@cindex @code{-mdebug} command line option, Alpha +@cindex @code{-no-mdebug} command line option, Alpha +@item -mdebug +@itemx -no-mdebug +Enables or disables the generation of @code{.mdebug} encapsulation for +stabs directives and procedure descriptors. The default is to automatically +enable @code{.mdebug} when the first stabs directive is seen. + +@cindex @code{-relax} command line option, Alpha +@item -relax +This option forces all relocations to be put into the object file, instead +of saving space and resolving some relocations at assembly time. Note that +this option does not propagate all symbol arithmetic into the object file, +because not all symbol arithmetic can be represented. However, the option +can still be useful in specific applications. + +@cindex @code{-g} command line option, Alpha +@item -g +This option is used when the compiler generates debug information. When +@command{gcc} is using @command{mips-tfile} to generate debug +information for ECOFF, local labels must be passed through to the object +file. Otherwise this option has no effect. + +@cindex @code{-G} command line option, Alpha +@item -G@var{size} +A local common symbol larger than @var{size} is placed in @code{.bss}, +while smaller symbols are placed in @code{.sbss}. + +@cindex @code{-F} command line option, Alpha +@cindex @code{-32addr} command line option, Alpha +@item -F +@itemx -32addr +These options are ignored for backward compatibility. +@end table + +@cindex Alpha Syntax +@node Alpha Syntax +@section Syntax +The assembler syntax closely follow the Alpha Reference Manual; +assembler directives and general syntax closely follow the OSF/1 and +OpenVMS syntax, with a few differences for ELF. + +@menu +* Alpha-Chars:: Special Characters +* Alpha-Regs:: Register Names +* Alpha-Relocs:: Relocations +@end menu + +@node Alpha-Chars +@subsection Special Characters + +@cindex line comment character, Alpha +@cindex Alpha line comment character +@samp{#} is the line comment character. + +@cindex line separator, Alpha +@cindex statement separator, Alpha +@cindex Alpha line separator +@samp{;} can be used instead of a newline to separate statements. + +@node Alpha-Regs +@subsection Register Names +@cindex Alpha registers +@cindex register names, Alpha + +The 32 integer registers are refered to as @samp{$@var{n}} or +@samp{$r@var{n}}. In addition, registers 15, 28, 29, and 30 may +be refered to by the symbols @samp{$fp}, @samp{$at}, @samp{$gp}, +and @samp{$sp} respectively. + +The 32 floating-point registers are refered to as @samp{$f@var{n}}. + +@node Alpha-Relocs +@subsection Relocations +@cindex Alpha relocations +@cindex relocations, Alpha + +Some of these relocations are available for ECOFF, but mostly +only for ELF. They are modeled after the relocation format +introduced in Digial Unix 4.0, but there are additions. + +The format is @samp{!@var{tag}} or @samp{!@var{tag}!@var{number}} +where @var{tag} is the name of the relocation. In some cases +@var{number} is used to relate specific instructions. + +The relocation is placed at the end of the instruction like so: + +@example +ldah $0,a($29) !gprelhigh +lda $0,a($0) !gprellow +ldq $1,b($29) !literal!100 +ldl $2,0($1) !lituse_base!100 +@end example + +@table @code +@item !literal +@itemx !literal!@var{N} +Used with an @code{ldq} instruction to load the address of a symbol +from the GOT. + +A sequence number @var{N} is optional, and if present is used to pair +@code{lituse} relocations with this @code{literal} relocation. The +@code{lituse} relocations are used by the linker to optimize the code +based on the final location of the symbol. + +Note that these optimizations are dependent on the data flow of the +program. Therefore, if @emph{any} @code{lituse} is paired with a +@code{literal} relocation, then @emph{all} uses of the register set by +the @code{literal} instruction must also be marked with @code{lituse} +relocations. This is because the original @code{literal} instruction +may be deleted or transformed into another instruction. + +Also note that there may be a one-to-many relationship between +@code{literal} and @code{lituse}, but not a many-to-one. That is, if +there are two code paths that load up the same address and feed the +value to a single use, then the use may not use a @code{lituse} +relocation. + +@item !lituse_base!@var{N} +Used with any memory format instruction (e.g.@: @code{ldl}) to indicate +that the literal is used for an address load. The offset field of the +instruction must be zero. During relaxation, the code may be altered +to use a gp-relative load. + +@item !lituse_jsr!@var{N} +Used with a register branch format instruction (e.g.@: @code{jsr}) to +indicate that the literal is used for a call. During relaxation, the +code may be altered to use a direct branch (e.g.@: @code{bsr}). + +@item !lituse_bytoff!@var{N} +Used with a byte mask instruction (e.g.@: @code{extbl}) to indicate +that only the low 3 bits of the address are relevant. During relaxation, +the code may be altered to use an immediate instead of a register shift. + +@item !lituse_addr!@var{N} +Used with any other instruction to indicate that the original address +is in fact used, and the original @code{ldq} instruction may not be +altered or deleted. This is useful in conjunction with @code{lituse_jsr} +to test whether a weak symbol is defined. + +@example +ldq $27,foo($29) !literal!1 +beq $27,is_undef !lituse_addr!1 +jsr $26,($27),foo !lituse_jsr!1 +@end example + +@item !gpdisp!@var{N} +Used with @code{ldah} and @code{lda} to load the GP from the current +address, a-la the @code{ldgp} macro. The source register for the +@code{ldah} instruction must contain the address of the @code{ldah} +instruction. There must be exactly one @code{lda} instruction paired +with the @code{ldah} instruction, though it may appear anywhere in +the instruction stream. The immediate operands must be zero. + +@example +bsr $26,foo +ldah $29,0($26) !gpdisp!1 +lda $29,0($29) !gpdisp!1 +@end example + +@item !gprelhigh +Used with an @code{ldah} instruction to add the high 16 bits of a +32-bit displacement from the GP. + +@item !gprellow +Used with any memory format instruction to add the low 16 bits of a +32-bit displacement from the GP. + +@item !gprel +Used with any memory format instruction to add a 16-bit displacement +from the GP. + +@item !samegp +Used with any branch format instruction to skip the GP load at the +target address. The referenced symbol must have the same GP as the +source object file, and it must be declared to either not use @code{$27} +or perform a standard GP load in the first two instructions via the +@code{.prologue} directive. +@end table + +@node Alpha Floating Point +@section Floating Point +@cindex floating point, Alpha (@sc{ieee}) +@cindex Alpha floating point (@sc{ieee}) +The Alpha family uses both @sc{ieee} and VAX floating-point numbers. + +@node Alpha Directives +@section Alpha Assembler Directives + +@command{@value{AS}} for the Alpha supports many additional directives for +compatibility with the native assembler. This section describes them only +briefly. + +@cindex Alpha-only directives +These are the additional directives in @code{@value{AS}} for the Alpha: + +@table @code +@item .arch @var{cpu} +Specifies the target processor. This is equivalent to the +@option{-m@var{cpu}} command-line option. @xref{Alpha Options, Options}, +for a list of values for @var{cpu}. + +@item .ent @var{function}[, @var{n}] +Mark the beginning of @var{function}. An optional number may follow for +compatibility with the OSF/1 assembler, but is ignored. When generating +@code{.mdebug} information, this will create a procedure descriptor for +the function. In ELF, it will mark the symbol as a function a-la the +generic @code{.type} directive. + +@item .end @var{function} +Mark the end of @var{function}. In ELF, it will set the size of the symbol +a-la the generic @code{.size} directive. + +@item .mask @var{mask}, @var{offset} +Indicate which of the integer registers are saved in the current +function's stack frame. @var{mask} is interpreted a bit mask in which +bit @var{n} set indicates that register @var{n} is saved. The registers +are saved in a block located @var{offset} bytes from the @dfn{canonical +frame address} (CFA) which is the value of the stack pointer on entry to +the function. The registers are saved sequentially, except that the +return address register (normally @code{$26}) is saved first. + +This and the other directives that describe the stack frame are +currently only used when generating @code{.mdebug} information. They +may in the future be used to generate DWARF2 @code{.debug_frame} unwind +information for hand written assembly. + +@item .fmask @var{mask}, @var{offset} +Indicate which of the floating-point registers are saved in the current +stack frame. The @var{mask} and @var{offset} parameters are interpreted +as with @code{.mask}. + +@item .frame @var{framereg}, @var{frameoffset}, @var{retreg}[, @var{argoffset}] +Describes the shape of the stack frame. The frame pointer in use is +@var{framereg}; normally this is either @code{$fp} or @code{$sp}. The +frame pointer is @var{frameoffset} bytes below the CFA. The return +address is initially located in @var{retreg} until it is saved as +indicated in @code{.mask}. For compatibility with OSF/1 an optional +@var{argoffset} parameter is accepted and ignored. It is believed to +indicate the offset from the CFA to the saved argument registers. + +@item .prologue @var{n} +Indicate that the stack frame is set up and all registers have been +spilled. The argument @var{n} indicates whether and how the function +uses the incoming @dfn{procedure vector} (the address of the called +function) in @code{$27}. 0 indicates that @code{$27} is not used; 1 +indicates that the first two instructions of the function use @code{$27} +to perform a load of the GP register; 2 indicates that @code{$27} is +used in some non-standard way and so the linker cannot elide the load of +the procedure vector during relaxation. + +@item .gprel32 @var{expression} +Computes the difference between the address in @var{expression} and the +GP for the current object file, and stores it in 4 bytes. In addition +to being smaller than a full 8 byte address, this also does not require +a dynamic relocation when used in a shared library. + +@item .t_floating @var{expression} +Stores @var{expression} as an @sc{ieee} double precision value. + +@item .s_floating @var{expression} +Stores @var{expression} as an @sc{ieee} single precision value. + +@item .f_floating @var{expression} +Stores @var{expression} as a VAX F format value. + +@item .g_floating @var{expression} +Stores @var{expression} as a VAX G format value. + +@item .d_floating @var{expression} +Stores @var{expression} as a VAX D format value. + +@item .set @var{feature} +Enables or disables various assembler features. Using the positive +name of the feature enables while using @samp{no@var{feature}} disables. + +@table @code +@item at +Indicates that macro expansions may clobber the @dfn{assembler +temporary} (@code{$at} or @code{$28}) register. Some macros may not be +expanded without this and will generate an error message if @code{noat} +is in effect. When @code{at} is in effect, a warning will be generated +if @code{$at} is used by the programmer. + +@item macro +Enables the expasion of macro instructions. Note that variants of real +instructions, such as @code{br label} vs @code{br $31,label} are +considered alternate forms and not macros. + +@item move +@itemx reorder +@itemx volatile +These control whether and how the assembler may re-order instructions. +Accepted for compatibility with the OSF/1 assembler, but @command{@value{AS}} +does not do instruction scheduling, so these features are ignored. +@end table +@end table + +The following directives are recognized for compatibility with the OSF/1 +assembler but are ignored. + +@example +.proc .aproc +.reguse .livereg +.option .aent +.ugen .eflag +.alias .noalias +@end example + +@node Alpha Opcodes +@section Opcodes +For detailed information on the Alpha machine instruction set, see the +@c Attempt to work around a very overfull hbox. +@iftex +Alpha Architecture Handbook located at +@smallfonts +@example +ftp://ftp.digital.com/pub/Digital/info/semiconductor/literature/alphaahb.pdf +@end example +@textfonts +@end iftex +@ifnottex +@uref{ftp://ftp.digital.com/pub/Digital/info/semiconductor/literature/alphaahb.pdf,Alpha Architecture Handbook}. +@end ifnottex diff --git a/contrib/binutils/gas/po/POTFILES.in b/contrib/binutils/gas/po/POTFILES.in index d1d5c97..9003f27 100644 --- a/contrib/binutils/gas/po/POTFILES.in +++ b/contrib/binutils/gas/po/POTFILES.in @@ -96,6 +96,8 @@ config/tc-ns32k.c config/tc-ns32k.h config/tc-openrisc.c config/tc-openrisc.h +config/tc-or32.c +config/tc-or32.h config/tc-pdp11.c config/tc-pdp11.h config/tc-pj.c @@ -106,6 +108,8 @@ config/tc-s390.c config/tc-s390.h config/tc-sh.c config/tc-sh.h +config/tc-sh64.c +config/tc-sh64.h config/tc-sparc.c config/tc-sparc.h config/tc-tahoe.c diff --git a/contrib/binutils/gas/po/gas.pot b/contrib/binutils/gas/po/gas.pot index f477568..cf36185 100644 --- a/contrib/binutils/gas/po/gas.pot +++ b/contrib/binutils/gas/po/gas.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-01-17 12:56+0000\n" +"POT-Creation-Date: 2002-02-08 04:20-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" @@ -258,7 +258,7 @@ msgid "GNU assembler %s\n" msgstr "" #: as.c:528 -msgid "Copyright 2001 Free Software Foundation, Inc.\n" +msgid "Copyright 2002 Free Software Foundation, Inc.\n" msgstr "" #: as.c:529 gasp.c:3627 @@ -444,7 +444,7 @@ msgstr "" msgid "%s: bad type for weak symbol" msgstr "" -#: config/obj-aout.c:458 config/obj-coff.c:2940 write.c:1933 +#: config/obj-aout.c:458 config/obj-coff.c:2956 write.c:1933 #, c-format msgid "%s: global symbols not supported in common sections" msgstr "" @@ -473,7 +473,7 @@ msgstr "" msgid "Line numbers must be positive integers\n" msgstr "" -#: config/obj-coff.c:503 config/obj-coff.c:2355 +#: config/obj-coff.c:503 config/obj-coff.c:2371 msgid ".ln pseudo-op inside .def/.endef: ignored." msgstr "" @@ -485,11 +485,11 @@ msgstr "" msgid ".loc pseudo-op inside .def/.endef: ignored." msgstr "" -#: config/obj-coff.c:641 config/obj-coff.c:2412 +#: config/obj-coff.c:641 config/obj-coff.c:2428 msgid ".def pseudo-op used inside of .def/.endef: ignored." msgstr "" -#: config/obj-coff.c:687 config/obj-coff.c:2464 +#: config/obj-coff.c:687 config/obj-coff.c:2480 msgid ".endef pseudo-op used outside of .def/.endef: ignored." msgstr "" @@ -498,49 +498,49 @@ msgstr "" msgid "`%s' symbol without preceding function" msgstr "" -#: config/obj-coff.c:812 config/obj-coff.c:2539 +#: config/obj-coff.c:812 config/obj-coff.c:2555 #, c-format msgid "unexpected storage class %d" msgstr "" -#: config/obj-coff.c:925 config/obj-coff.c:2646 +#: config/obj-coff.c:925 config/obj-coff.c:2662 msgid ".dim pseudo-op used outside of .def/.endef: ignored." msgstr "" -#: config/obj-coff.c:945 config/obj-coff.c:2666 +#: config/obj-coff.c:945 config/obj-coff.c:2682 msgid "badly formed .dim directive ignored" msgstr "" -#: config/obj-coff.c:996 config/obj-coff.c:2729 +#: config/obj-coff.c:996 config/obj-coff.c:2745 msgid ".size pseudo-op used outside of .def/.endef ignored." msgstr "" -#: config/obj-coff.c:1012 config/obj-coff.c:2745 +#: config/obj-coff.c:1012 config/obj-coff.c:2761 msgid ".scl pseudo-op used outside of .def/.endef ignored." msgstr "" -#: config/obj-coff.c:1030 config/obj-coff.c:2763 +#: config/obj-coff.c:1030 config/obj-coff.c:2779 msgid ".tag pseudo-op used outside of .def/.endef ignored." msgstr "" -#: config/obj-coff.c:1049 config/obj-coff.c:2781 +#: config/obj-coff.c:1049 config/obj-coff.c:2797 #, c-format msgid "tag not found for .tag %s" msgstr "" -#: config/obj-coff.c:1064 config/obj-coff.c:2796 +#: config/obj-coff.c:1064 config/obj-coff.c:2812 msgid ".type pseudo-op used outside of .def/.endef ignored." msgstr "" -#: config/obj-coff.c:1086 config/obj-coff.c:2818 +#: config/obj-coff.c:1086 config/obj-coff.c:2834 msgid ".val pseudo-op used outside of .def/.endef ignored." msgstr "" -#: config/obj-coff.c:1231 config/obj-coff.c:3013 +#: config/obj-coff.c:1231 config/obj-coff.c:3029 msgid "mismatched .eb" msgstr "" -#: config/obj-coff.c:1252 config/obj-coff.c:3053 +#: config/obj-coff.c:1252 config/obj-coff.c:3069 msgid "C_EFCN symbol out of scope" msgstr "" @@ -552,12 +552,12 @@ msgstr "" msgid "unsupported section attribute '%c'" msgstr "" -#: config/obj-coff.c:1481 config/obj-coff.c:3758 config/tc-ppc.c:4211 +#: config/obj-coff.c:1481 config/obj-coff.c:3774 config/tc-ppc.c:4211 #, c-format msgid "unknown section attribute '%c'" msgstr "" -#: config/obj-coff.c:1511 config/tc-ppc.c:4229 config/tc-tic54x.c:4130 +#: config/obj-coff.c:1511 config/tc-ppc.c:4229 config/tc-tic54x.c:4133 #: read.c:2555 #, c-format msgid "error setting flags for \"%s\": %s" @@ -577,62 +577,62 @@ msgstr "" msgid "Out of step\n" msgstr "" -#: config/obj-coff.c:2271 +#: config/obj-coff.c:2287 msgid "bfd_coff_swap_scnhdr_out failed" msgstr "" -#: config/obj-coff.c:2496 +#: config/obj-coff.c:2512 msgid "`.bf' symbol without preceding function\n" msgstr "" -#: config/obj-coff.c:3450 config/obj-ieee.c:507 +#: config/obj-coff.c:3466 config/obj-ieee.c:507 #, c-format msgid "FATAL: Can't create %s" msgstr "" -#: config/obj-coff.c:3632 +#: config/obj-coff.c:3648 #, c-format msgid "Can't close %s: %s" msgstr "" -#: config/obj-coff.c:3666 +#: config/obj-coff.c:3682 #, c-format msgid "Too many new sections; can't add \"%s\"" msgstr "" -#: config/obj-coff.c:4073 config/tc-sparc.c:3537 +#: config/obj-coff.c:4089 config/tc-sparc.c:3537 msgid "Expected comma after name" msgstr "" -#: config/obj-coff.c:4079 +#: config/obj-coff.c:4095 msgid "Missing size expression" msgstr "" -#: config/obj-coff.c:4085 +#: config/obj-coff.c:4101 #, c-format msgid "lcomm length (%d.) <0! Ignored." msgstr "" -#: config/obj-coff.c:4113 +#: config/obj-coff.c:4129 #, c-format msgid "Symbol %s already defined" msgstr "" -#: config/obj-coff.c:4208 config/tc-i960.c:3206 +#: config/obj-coff.c:4224 config/tc-i960.c:3206 #, c-format msgid "No 'bal' entry point for leafproc %s" msgstr "" -#: config/obj-coff.c:4287 +#: config/obj-coff.c:4303 #, c-format msgid "Negative of non-absolute symbol %s" msgstr "" -#: config/obj-coff.c:4308 +#: config/obj-coff.c:4324 msgid "callj to difference of 2 symbols" msgstr "" -#: config/obj-coff.c:4354 +#: config/obj-coff.c:4370 #, c-format msgid "Can't emit reloc {- %s-seg symbol \"%s\"} @ file address %ld." msgstr "" @@ -640,16 +640,16 @@ msgstr "" #. This is a COBR instruction. They have only a 13-bit #. displacement and are only to be used for local branches: #. flag as error, don't generate relocation. -#: config/obj-coff.c:4443 config/tc-i960.c:3226 write.c:2826 +#: config/obj-coff.c:4459 config/tc-i960.c:3226 write.c:2826 msgid "can't use COBR format with external label" msgstr "" -#: config/obj-coff.c:4518 +#: config/obj-coff.c:4534 #, c-format msgid "Value of %ld too large for field of %d bytes at 0x%lx" msgstr "" -#: config/obj-coff.c:4532 +#: config/obj-coff.c:4548 #, c-format msgid "Signed .word overflow; switch may be too large; %ld at 0x%lx" msgstr "" @@ -690,7 +690,7 @@ msgstr "" msgid "common alignment not a power of 2" msgstr "" -#: config/obj-elf.c:438 config/tc-sparc.c:3832 config/tc-v850.c:565 +#: config/obj-elf.c:438 config/tc-sparc.c:3832 config/tc-v850.c:450 #, c-format msgid "bad .common segment %s" msgstr "" @@ -817,17 +817,17 @@ msgstr "" msgid "can't create group: %s" msgstr "" -#: config/obj-elf.c:2068 +#: config/obj-elf.c:2076 #, c-format msgid "failed to set up debugging information: %s" msgstr "" -#: config/obj-elf.c:2088 +#: config/obj-elf.c:2096 #, c-format msgid "can't start writing .mdebug section: %s" msgstr "" -#: config/obj-elf.c:2096 +#: config/obj-elf.c:2104 #, c-format msgid "could not write .mdebug section: %s" msgstr "" @@ -1011,15 +1011,16 @@ msgstr "" #. Probably a memory allocation problem? Give up now. #: config/tc-a29k.c:330 config/tc-hppa.c:1462 config/tc-mips.c:1251 -#: config/tc-mips.c:1293 config/tc-sparc.c:847 +#: config/tc-mips.c:1293 config/tc-or32.c:230 config/tc-sparc.c:847 msgid "Broken assembler. No assembly attempted." msgstr "" #: config/tc-a29k.c:375 config/tc-avr.c:1131 config/tc-d10v.c:540 #: config/tc-d30v.c:552 config/tc-h8300.c:313 config/tc-h8500.c:284 -#: config/tc-mcore.c:655 config/tc-mmix.c:468 config/tc-mn10200.c:940 -#: config/tc-mn10300.c:1311 config/tc-ppc.c:2106 config/tc-s390.c:1054 -#: config/tc-sh.c:869 config/tc-tic80.c:283 config/tc-v850.c:2073 +#: config/tc-mcore.c:655 config/tc-mmix.c:475 config/tc-mn10200.c:940 +#: config/tc-mn10300.c:1311 config/tc-or32.c:336 config/tc-or32.c:392 +#: config/tc-ppc.c:2106 config/tc-s390.c:1054 config/tc-sh.c:1287 +#: config/tc-sh64.c:2228 config/tc-tic80.c:283 config/tc-v850.c:1984 #: config/tc-w65.c:241 config/tc-z8k.c:343 msgid "missing operand" msgstr "" @@ -1051,7 +1052,7 @@ msgstr "" msgid "failed sanity check." msgstr "" -#: config/tc-a29k.c:889 +#: config/tc-a29k.c:889 config/tc-or32.c:1046 config/tc-or32.c:1180 #, c-format msgid "bad relocation type: 0x%02x" msgstr "" @@ -1069,12 +1070,12 @@ msgstr "" msgid "a29k_estimate_size_before_relax\n" msgstr "" -#: config/tc-a29k.c:1092 +#: config/tc-a29k.c:1092 config/tc-or32.c:1375 #, c-format msgid "label \"$%d\" redefined" msgstr "" -#: config/tc-a29k.c:1165 +#: config/tc-a29k.c:1165 config/tc-or32.c:1470 #, c-format msgid "Invalid expression after %%%%\n" msgstr "" @@ -1097,10 +1098,10 @@ msgstr "" msgid "syntax error" msgstr "" -#: config/tc-alpha.c:980 config/tc-h8300.c:1413 config/tc-h8500.c:1187 +#: config/tc-alpha.c:980 config/tc-h8300.c:1421 config/tc-h8500.c:1187 #: config/tc-hppa.c:4017 config/tc-i860.c:931 config/tc-m68hc11.c:500 #: config/tc-m68k.c:4201 config/tc-m88k.c:1011 config/tc-ns32k.c:1663 -#: config/tc-sparc.c:2831 config/tc-z8k.c:1321 +#: config/tc-or32.c:912 config/tc-sparc.c:2831 config/tc-z8k.c:1321 msgid "Bad call to MD_ATOF()" msgstr "" @@ -1212,8 +1213,8 @@ msgstr "" #: config/tc-alpha.c:2338 config/tc-alpha.c:2362 config/tc-d10v.c:629 #: config/tc-d30v.c:640 config/tc-mn10200.c:995 config/tc-mn10300.c:1382 #: config/tc-ppc.c:2072 config/tc-ppc.c:2256 config/tc-ppc.c:2268 -#: config/tc-s390.c:1064 config/tc-s390.c:1121 config/tc-v850.c:1853 -#: config/tc-v850.c:1876 config/tc-v850.c:2096 +#: config/tc-s390.c:1064 config/tc-s390.c:1121 config/tc-v850.c:1764 +#: config/tc-v850.c:1787 config/tc-v850.c:2007 msgid "too many fixups" msgstr "" @@ -1294,7 +1295,7 @@ msgstr "" msgid ".COMMon length (%ld.) <0! Ignored." msgstr "" -#: config/tc-alpha.c:4071 config/tc-sparc.c:3700 config/tc-v850.c:283 +#: config/tc-alpha.c:4071 config/tc-sparc.c:3700 config/tc-v850.c:254 msgid "Ignoring attempt to re-define symbol" msgstr "" @@ -1432,7 +1433,7 @@ msgstr "" msgid "Bad .section directive: want a,s,w,x,M,S in string" msgstr "" -#: config/tc-arc.c:1616 config/tc-arm.c:10246 +#: config/tc-arc.c:1616 config/tc-arm.c:10344 msgid "md_estimate_size_before_relax\n" msgstr "" @@ -1440,764 +1441,1060 @@ msgstr "" msgid "md_convert_frag\n" msgstr "" -#: config/tc-arm.c:664 +#: config/tc-arm.c:681 msgid "ARM register expected" msgstr "" -#: config/tc-arm.c:665 config/tc-arm.c:2814 +#: config/tc-arm.c:682 config/tc-arm.c:2843 msgid "bad or missing co-processor number" msgstr "" #. In the few cases where we might be able to accept something else #. this error can be overridden. -#: config/tc-arm.c:666 config/tc-arm.c:2869 +#: config/tc-arm.c:683 config/tc-arm.c:2898 msgid "co-processor register expected" msgstr "" -#: config/tc-arm.c:667 +#: config/tc-arm.c:684 msgid "FPA register expected" msgstr "" -#: config/tc-arm.c:668 +#: config/tc-arm.c:685 msgid "VFP single precision register expected" msgstr "" -#: config/tc-arm.c:669 +#: config/tc-arm.c:686 msgid "VFP double precision register expected" msgstr "" -#: config/tc-arm.c:670 +#: config/tc-arm.c:687 msgid "Maverick MVF register expected" msgstr "" -#: config/tc-arm.c:671 +#: config/tc-arm.c:688 msgid "Maverick MVD register expected" msgstr "" -#: config/tc-arm.c:672 config/tc-arm.c:673 +#: config/tc-arm.c:689 config/tc-arm.c:690 msgid "Maverick MVFX register expected" msgstr "" -#: config/tc-arm.c:674 +#: config/tc-arm.c:691 msgid "Maverick MVAX register expected" msgstr "" -#: config/tc-arm.c:675 +#: config/tc-arm.c:692 msgid "Maverick DSPSC register expected" msgstr "" -#: config/tc-arm.c:2013 +#: config/tc-arm.c:2036 msgid "bad arguments to instruction" msgstr "" -#: config/tc-arm.c:2014 +#: config/tc-arm.c:2037 msgid "r15 not allowed here" msgstr "" -#: config/tc-arm.c:2015 +#: config/tc-arm.c:2038 msgid "instruction is not conditional" msgstr "" -#: config/tc-arm.c:2016 +#: config/tc-arm.c:2039 msgid "acc0 expected" msgstr "" -#: config/tc-arm.c:2155 +#: config/tc-arm.c:2184 msgid "literal pool overflow" msgstr "" -#: config/tc-arm.c:2297 +#: config/tc-arm.c:2326 msgid "invalid syntax for .req directive" msgstr "" -#: config/tc-arm.c:2372 +#: config/tc-arm.c:2401 #, c-format msgid "alignment too large: %d assumed" msgstr "" -#: config/tc-arm.c:2375 +#: config/tc-arm.c:2404 msgid "alignment negative. 0 assumed." msgstr "" -#: config/tc-arm.c:2459 +#: config/tc-arm.c:2488 #, c-format msgid "expected comma after name \"%s\"" msgstr "" -#: config/tc-arm.c:2509 config/tc-m32r.c:418 +#: config/tc-arm.c:2538 config/tc-m32r.c:418 #, c-format msgid "symbol `%s' already defined" msgstr "" -#: config/tc-arm.c:2580 +#: config/tc-arm.c:2609 msgid "selected processor does not support THUMB opcodes" msgstr "" -#: config/tc-arm.c:2593 +#: config/tc-arm.c:2622 msgid "selected processor does not support ARM opcodes" msgstr "" -#: config/tc-arm.c:2605 +#: config/tc-arm.c:2634 #, c-format msgid "invalid instruction size selected (%d)" msgstr "" -#: config/tc-arm.c:2640 +#: config/tc-arm.c:2669 #, c-format msgid "invalid operand to .code directive (%d) (expecting 16 or 32)" msgstr "" -#: config/tc-arm.c:2651 +#: config/tc-arm.c:2680 msgid "garbage following instruction" msgstr "" #. In the few cases where we might be able to accept something else #. this error can be overridden. -#: config/tc-arm.c:2701 +#: config/tc-arm.c:2730 #, c-format msgid "register expected, not '%.100s'" msgstr "" #. In the few cases where we might be able to accept #. something else this error can be overridden. -#: config/tc-arm.c:2773 +#: config/tc-arm.c:2802 msgid "flag for {c}psr instruction expected" msgstr "" -#: config/tc-arm.c:2807 +#: config/tc-arm.c:2836 msgid "illegal co-processor number" msgstr "" -#: config/tc-arm.c:2839 config/tc-arm.c:3877 config/tc-arm.c:4059 +#: config/tc-arm.c:2868 config/tc-arm.c:3928 config/tc-arm.c:4110 msgid "bad or missing expression" msgstr "" -#: config/tc-arm.c:2845 +#: config/tc-arm.c:2874 msgid "immediate co-processor expression too large" msgstr "" #. In the few cases where we might be able to accept something else #. this error can be overridden. -#: config/tc-arm.c:2892 +#: config/tc-arm.c:2921 msgid "floating point register expected" msgstr "" -#: config/tc-arm.c:2909 +#: config/tc-arm.c:2938 msgid "immediate expression expected" msgstr "" -#: config/tc-arm.c:2924 +#: config/tc-arm.c:2953 msgid "co-processor address must be word aligned" msgstr "" -#: config/tc-arm.c:2930 +#: config/tc-arm.c:2959 msgid "offset too large" msgstr "" -#: config/tc-arm.c:2979 +#: config/tc-arm.c:3008 msgid "pc may not be used in post-increment" msgstr "" -#: config/tc-arm.c:2995 config/tc-arm.c:3440 config/tc-arm.c:4228 -#: config/tc-arm.c:5095 config/tc-arm.c:5429 +#: config/tc-arm.c:3024 config/tc-arm.c:3469 config/tc-arm.c:4279 +#: config/tc-arm.c:5146 config/tc-arm.c:5480 msgid "pre-indexed expression expected" msgstr "" -#: config/tc-arm.c:3008 config/tc-arm.c:3453 config/tc-arm.c:4239 -#: config/tc-arm.c:5107 config/tc-arm.c:5441 config/tc-arm.c:5790 -#: config/tc-arm.c:8452 config/tc-arm.c:8467 +#: config/tc-arm.c:3037 config/tc-arm.c:3482 config/tc-arm.c:4290 +#: config/tc-arm.c:5158 config/tc-arm.c:5492 config/tc-arm.c:5841 +#: config/tc-arm.c:8503 config/tc-arm.c:8518 msgid "missing ]" msgstr "" -#: config/tc-arm.c:3018 +#: config/tc-arm.c:3047 msgid "pc may not be used with write-back" msgstr "" -#: config/tc-arm.c:3070 +#: config/tc-arm.c:3099 msgid "comma expected after register name" msgstr "" -#: config/tc-arm.c:3089 +#: config/tc-arm.c:3118 msgid "CPSR or SPSR expected" msgstr "" -#: config/tc-arm.c:3115 +#: config/tc-arm.c:3144 msgid "comma missing after psr flags" msgstr "" -#: config/tc-arm.c:3131 config/tc-arm.c:3141 +#: config/tc-arm.c:3160 config/tc-arm.c:3170 msgid "only a register or immediate value can follow a psr flag" msgstr "" -#: config/tc-arm.c:3152 +#: config/tc-arm.c:3181 msgid "immediate value cannot be used to set this field" msgstr "" -#: config/tc-arm.c:3170 config/tc-arm.c:4455 config/tc-arm.c:4735 -#: config/tc-arm.c:4755 config/tc-i960.c:1924 +#: config/tc-arm.c:3199 config/tc-arm.c:4506 config/tc-arm.c:4786 +#: config/tc-arm.c:4806 config/tc-i960.c:1924 msgid "invalid constant" msgstr "" -#: config/tc-arm.c:3218 +#: config/tc-arm.c:3247 msgid "rdhi, rdlo and rm must all be different" msgstr "" -#: config/tc-arm.c:3272 +#: config/tc-arm.c:3301 msgid "rd and rm should be different in mul" msgstr "" -#: config/tc-arm.c:3326 +#: config/tc-arm.c:3355 msgid "rd and rm should be different in mla" msgstr "" -#: config/tc-arm.c:3374 +#: config/tc-arm.c:3403 #, c-format msgid "acc0 expected, not '%.100s'" msgstr "" -#: config/tc-arm.c:3552 +#: config/tc-arm.c:3581 msgid "rdhi and rdlo must be different" msgstr "" -#: config/tc-arm.c:3660 +#: config/tc-arm.c:3689 msgid "Warning: instruction unpredictable when using r15" msgstr "" -#: config/tc-arm.c:3886 config/tc-arm.c:4068 config/tc-arm.c:7395 -#: config/tc-arm.c:7428 config/tc-arm.c:7438 +#: config/tc-arm.c:3904 +msgid "use of r15 in bxj is not really useful" +msgstr "" + +#: config/tc-arm.c:3937 config/tc-arm.c:4119 config/tc-arm.c:7446 +#: config/tc-arm.c:7479 config/tc-arm.c:7489 msgid "immediate value out of range" msgstr "" -#: config/tc-arm.c:4191 +#: config/tc-arm.c:4242 msgid "'[' expected after PLD mnemonic" msgstr "" -#: config/tc-arm.c:4213 +#: config/tc-arm.c:4264 msgid "post-indexed expression used in preload instruction" msgstr "" -#: config/tc-arm.c:4218 config/tc-arm.c:4248 +#: config/tc-arm.c:4269 config/tc-arm.c:4299 msgid "writeback used in preload instruction" msgstr "" -#: config/tc-arm.c:4290 +#: config/tc-arm.c:4341 msgid "destination register must be even" msgstr "" -#: config/tc-arm.c:4296 +#: config/tc-arm.c:4347 msgid "r14 not allowed here" msgstr "" -#: config/tc-arm.c:4303 +#: config/tc-arm.c:4354 msgid "pre/post-indexing used when modified address register is destination" msgstr "" -#: config/tc-arm.c:4313 +#: config/tc-arm.c:4364 msgid "ldrd destination registers must not overlap index register" msgstr "" -#: config/tc-arm.c:4439 +#: config/tc-arm.c:4490 msgid "bad_segment" msgstr "" -#: config/tc-arm.c:4476 expr.c:1314 read.c:2198 +#: config/tc-arm.c:4527 expr.c:1314 read.c:2198 msgid "bad expression" msgstr "" -#: config/tc-arm.c:4499 config/tc-arm.c:4510 +#: config/tc-arm.c:4550 config/tc-arm.c:4561 msgid "shift expression expected" msgstr "" -#: config/tc-arm.c:4534 +#: config/tc-arm.c:4585 msgid "shift requires register or #expression" msgstr "" -#: config/tc-arm.c:4535 +#: config/tc-arm.c:4586 msgid "shift requires #expression" msgstr "" -#: config/tc-arm.c:4565 +#: config/tc-arm.c:4616 msgid "shift of 0 ignored." msgstr "" -#: config/tc-arm.c:4571 +#: config/tc-arm.c:4622 msgid "invalid immediate shift" msgstr "" -#: config/tc-arm.c:4726 config/tc-arm.c:5143 config/tc-arm.c:5478 -#: config/tc-arm.c:6087 config/tc-v850.c:1956 config/tc-v850.c:1977 +#: config/tc-arm.c:4777 config/tc-arm.c:5194 config/tc-arm.c:5529 +#: config/tc-arm.c:6138 config/tc-v850.c:1867 config/tc-v850.c:1888 msgid "constant expression expected" msgstr "" -#: config/tc-arm.c:4768 +#: config/tc-arm.c:4819 msgid "register or shift expression expected" msgstr "" -#: config/tc-arm.c:4821 +#: config/tc-arm.c:4872 msgid "invalid floating point immediate expression" msgstr "" -#: config/tc-arm.c:4825 +#: config/tc-arm.c:4876 msgid "floating point register or immediate expression expected" msgstr "" -#: config/tc-arm.c:4979 config/tc-arm.c:5309 +#: config/tc-arm.c:5030 config/tc-arm.c:5360 msgid "address offset too large" msgstr "" -#: config/tc-arm.c:5037 config/tc-arm.c:5227 config/tc-arm.c:5369 +#: config/tc-arm.c:5088 config/tc-arm.c:5278 config/tc-arm.c:5420 msgid "address expected" msgstr "" -#: config/tc-arm.c:5067 config/tc-arm.c:5079 config/tc-arm.c:5116 -#: config/tc-arm.c:5245 config/tc-arm.c:5399 config/tc-arm.c:5413 -#: config/tc-arm.c:5450 +#: config/tc-arm.c:5118 config/tc-arm.c:5130 config/tc-arm.c:5167 +#: config/tc-arm.c:5296 config/tc-arm.c:5450 config/tc-arm.c:5464 +#: config/tc-arm.c:5501 #, c-format msgid "%s register same as write-back base" msgstr "" -#: config/tc-arm.c:5069 config/tc-arm.c:5081 config/tc-arm.c:5118 -#: config/tc-arm.c:5247 config/tc-arm.c:5401 config/tc-arm.c:5415 -#: config/tc-arm.c:5452 +#: config/tc-arm.c:5120 config/tc-arm.c:5132 config/tc-arm.c:5169 +#: config/tc-arm.c:5298 config/tc-arm.c:5452 config/tc-arm.c:5466 +#: config/tc-arm.c:5503 msgid "destination" msgstr "" -#: config/tc-arm.c:5069 config/tc-arm.c:5081 config/tc-arm.c:5118 -#: config/tc-arm.c:5247 config/tc-arm.c:5401 config/tc-arm.c:5415 -#: config/tc-arm.c:5452 +#: config/tc-arm.c:5120 config/tc-arm.c:5132 config/tc-arm.c:5169 +#: config/tc-arm.c:5298 config/tc-arm.c:5452 config/tc-arm.c:5466 +#: config/tc-arm.c:5503 msgid "source" msgstr "" -#: config/tc-arm.c:5128 config/tc-arm.c:5462 config/tc-arm.c:7699 +#: config/tc-arm.c:5179 config/tc-arm.c:5513 config/tc-arm.c:7750 msgid "invalid pseudo operation" msgstr "" -#: config/tc-arm.c:5180 config/tc-arm.c:5513 +#: config/tc-arm.c:5231 config/tc-arm.c:5564 msgid "literal pool insertion failed" msgstr "" -#: config/tc-arm.c:5275 config/tc-arm.c:5281 +#: config/tc-arm.c:5326 config/tc-arm.c:5332 msgid "post-indexed expression expected" msgstr "" -#: config/tc-arm.c:5579 +#: config/tc-arm.c:5630 msgid "bad range in register list" msgstr "" -#: config/tc-arm.c:5587 config/tc-arm.c:5596 config/tc-arm.c:5638 +#: config/tc-arm.c:5638 config/tc-arm.c:5647 config/tc-arm.c:5689 #, c-format msgid "Warning: duplicated register (r%d) in register list" msgstr "" -#: config/tc-arm.c:5599 +#: config/tc-arm.c:5650 msgid "Warning: register range not in ascending order" msgstr "" -#: config/tc-arm.c:5611 +#: config/tc-arm.c:5662 msgid "missing `}'" msgstr "" -#: config/tc-arm.c:5627 +#: config/tc-arm.c:5678 msgid "invalid register mask" msgstr "" -#: config/tc-arm.c:5648 config/tc-arm.c:8709 config/tc-arm.c:8809 +#: config/tc-arm.c:5699 config/tc-arm.c:8760 config/tc-arm.c:8860 #: config/tc-avr.c:860 config/tc-cris.c:3006 config/tc-d10v.c:1563 #: config/tc-d30v.c:1863 config/tc-mips.c:3641 config/tc-mips.c:4630 #: config/tc-mips.c:5486 config/tc-mips.c:6091 config/tc-ppc.c:5143 -#: config/tc-v850.c:2376 +#: config/tc-v850.c:2287 config/tc-xstormy16.c:479 msgid "expression too complex" msgstr "" -#: config/tc-arm.c:5686 +#: config/tc-arm.c:5737 msgid "r15 not allowed as base register" msgstr "" -#: config/tc-arm.c:5750 config/tc-arm.c:5764 +#: config/tc-arm.c:5801 config/tc-arm.c:5815 msgid "r15 not allowed in swap" msgstr "" -#: config/tc-arm.c:5859 +#: config/tc-arm.c:5910 msgid "use of r15 in bx in ARM mode is not really useful" msgstr "" -#: config/tc-arm.c:6093 +#: config/tc-arm.c:6144 msgid "constant value required for number of registers" msgstr "" -#: config/tc-arm.c:6101 +#: config/tc-arm.c:6152 msgid "number of registers must be in the range [1:4]" msgstr "" -#: config/tc-arm.c:6162 +#: config/tc-arm.c:6213 msgid "r15 not allowed as base register with write-back" msgstr "" -#: config/tc-arm.c:6544 +#: config/tc-arm.c:6595 msgid "only two consecutive VFP SP registers allowed here" msgstr "" -#: config/tc-arm.c:6712 +#: config/tc-arm.c:6763 msgid "VFP system register expected" msgstr "" -#: config/tc-arm.c:6850 config/tc-arm.c:6889 config/tc-arm.c:6902 -#: config/tc-arm.c:6963 config/tc-arm.c:7002 config/tc-arm.c:7015 +#: config/tc-arm.c:6901 config/tc-arm.c:6940 config/tc-arm.c:6953 +#: config/tc-arm.c:7014 config/tc-arm.c:7053 config/tc-arm.c:7066 #: config/tc-mips.c:9060 config/tc-mips.c:9090 msgid "invalid register list" msgstr "" -#: config/tc-arm.c:6856 config/tc-arm.c:6969 +#: config/tc-arm.c:6907 config/tc-arm.c:7020 msgid "register list not in ascending order" msgstr "" -#: config/tc-arm.c:6881 config/tc-arm.c:6994 +#: config/tc-arm.c:6932 config/tc-arm.c:7045 msgid "register range not in ascending order" msgstr "" -#: config/tc-arm.c:6919 config/tc-arm.c:7032 +#: config/tc-arm.c:6970 config/tc-arm.c:7083 msgid "non-contiguous register range" msgstr "" -#: config/tc-arm.c:7062 config/tc-arm.c:7099 +#: config/tc-arm.c:7113 config/tc-arm.c:7150 msgid "this addressing mode requires base-register writeback" msgstr "" -#: config/tc-arm.c:7259 +#: config/tc-arm.c:7310 msgid "lo register required" msgstr "" -#: config/tc-arm.c:7267 +#: config/tc-arm.c:7318 msgid "hi register required" msgstr "" -#: config/tc-arm.c:7337 config/tc-arm.c:8541 +#: config/tc-arm.c:7388 config/tc-arm.c:8592 msgid "dest and source1 must be the same register" msgstr "" -#: config/tc-arm.c:7344 +#: config/tc-arm.c:7395 msgid "subtract valid only on lo regs" msgstr "" -#: config/tc-arm.c:7368 +#: config/tc-arm.c:7419 msgid "invalid Hi register with immediate" msgstr "" -#: config/tc-arm.c:7406 +#: config/tc-arm.c:7457 msgid "invalid immediate value for stack adjust" msgstr "" -#: config/tc-arm.c:7417 +#: config/tc-arm.c:7468 msgid "invalid immediate for address calculation" msgstr "" -#: config/tc-arm.c:7504 +#: config/tc-arm.c:7555 msgid "source1 and dest must be same register" msgstr "" -#: config/tc-arm.c:7538 +#: config/tc-arm.c:7589 msgid "invalid immediate for shift" msgstr "" -#: config/tc-arm.c:7617 +#: config/tc-arm.c:7668 msgid "only lo regs allowed with immediate" msgstr "" -#: config/tc-arm.c:7636 +#: config/tc-arm.c:7687 msgid "invalid immediate" msgstr "" -#: config/tc-arm.c:7690 +#: config/tc-arm.c:7741 msgid "expected ']'" msgstr "" -#: config/tc-arm.c:7763 +#: config/tc-arm.c:7814 msgid "byte or halfword not valid for base register" msgstr "" -#: config/tc-arm.c:7768 +#: config/tc-arm.c:7819 msgid "r15 based store not allowed" msgstr "" -#: config/tc-arm.c:7773 +#: config/tc-arm.c:7824 msgid "invalid base register for register offset" msgstr "" -#: config/tc-arm.c:7791 config/tc-arm.c:7826 +#: config/tc-arm.c:7842 config/tc-arm.c:7877 msgid "invalid offset" msgstr "" -#: config/tc-arm.c:7802 +#: config/tc-arm.c:7853 msgid "invalid base register in load/store" msgstr "" -#: config/tc-arm.c:8345 +#: config/tc-arm.c:8396 msgid "expecting immediate, 7bit operand" msgstr "" -#: config/tc-arm.c:8360 +#: config/tc-arm.c:8411 msgid "immediate out of range" msgstr "" -#: config/tc-arm.c:8403 +#: config/tc-arm.c:8454 msgid "offset expected" msgstr "" -#: config/tc-arm.c:8412 config/tc-pj.c:528 config/tc-sh.c:3030 +#: config/tc-arm.c:8463 config/tc-pj.c:528 config/tc-sh.c:3573 msgid "offset out of range" msgstr "" -#: config/tc-arm.c:8549 +#: config/tc-arm.c:8600 msgid "Rs and Rd must be different in MUL" msgstr "" -#: config/tc-arm.c:8693 +#: config/tc-arm.c:8744 msgid "" "inserted missing '!': load/store multiple always writes back base register" msgstr "" -#: config/tc-arm.c:8715 +#: config/tc-arm.c:8766 msgid "only lo-regs valid in load/store multiple" msgstr "" -#: config/tc-arm.c:8761 +#: config/tc-arm.c:8812 msgid "syntax: ldrs[b] Rd, [Rb, Ro]" msgstr "" -#: config/tc-arm.c:8825 +#: config/tc-arm.c:8876 msgid "invalid register list to push/pop instruction" msgstr "" -#: config/tc-arm.c:8937 config/tc-arm.c:9115 +#: config/tc-arm.c:8988 config/tc-arm.c:9166 msgid "virtual memory exhausted" msgstr "" -#: config/tc-arm.c:9018 +#: config/tc-arm.c:9069 #, c-format msgid "register '%s' does not exist\n" msgstr "" -#: config/tc-arm.c:9022 +#: config/tc-arm.c:9073 #, c-format msgid "" "ignoring redefinition of register alias '%s' to non-existant register '%s'" msgstr "" -#: config/tc-arm.c:9031 +#: config/tc-arm.c:9082 #, c-format msgid "ignoring redefinition of register alias '%s'" msgstr "" -#: config/tc-arm.c:9037 +#: config/tc-arm.c:9088 msgid "ignoring incomplete .req pseuso op" msgstr "" -#: config/tc-arm.c:9312 +#: config/tc-arm.c:9190 +msgid "use of old and new-style options to set CPU type" +msgstr "" + +#: config/tc-arm.c:9200 +msgid "use of old and new-style options to set FPU type" +msgstr "" + +#: config/tc-arm.c:9410 msgid "bad call to MD_ATOF()" msgstr "" -#: config/tc-arm.c:9542 +#: config/tc-arm.c:9640 #, c-format msgid "invalid constant (%lx) after fixup" msgstr "" -#: config/tc-arm.c:9578 +#: config/tc-arm.c:9676 #, c-format msgid "unable to compute ADRL instructions for PC offset of 0x%lx" msgstr "" -#: config/tc-arm.c:9608 +#: config/tc-arm.c:9706 #, c-format msgid "bad immediate value for offset (%ld)" msgstr "" -#: config/tc-arm.c:9630 config/tc-arm.c:9652 +#: config/tc-arm.c:9728 config/tc-arm.c:9750 msgid "invalid literal constant: pool needs to be closer" msgstr "" -#: config/tc-arm.c:9632 +#: config/tc-arm.c:9730 #, c-format msgid "bad immediate value for half-word offset (%ld)" msgstr "" -#: config/tc-arm.c:9669 +#: config/tc-arm.c:9767 msgid "shift expression is too large" msgstr "" -#: config/tc-arm.c:9688 config/tc-arm.c:9697 +#: config/tc-arm.c:9786 config/tc-arm.c:9795 msgid "invalid swi expression" msgstr "" -#: config/tc-arm.c:9707 +#: config/tc-arm.c:9805 msgid "invalid expression in load/store multiple" msgstr "" -#: config/tc-arm.c:9760 +#: config/tc-arm.c:9858 msgid "GAS can't handle same-section branch dest >= 0x04000000" msgstr "" -#: config/tc-arm.c:9769 +#: config/tc-arm.c:9867 msgid "out of range branch" msgstr "" -#: config/tc-arm.c:9802 config/tc-arm.c:9818 +#: config/tc-arm.c:9900 config/tc-arm.c:9916 msgid "branch out of range" msgstr "" -#: config/tc-arm.c:9841 +#: config/tc-arm.c:9939 msgid "branch with link out of range" msgstr "" -#: config/tc-arm.c:9917 +#: config/tc-arm.c:10015 msgid "illegal value for co-processor offset" msgstr "" -#: config/tc-arm.c:9941 +#: config/tc-arm.c:10039 #, c-format msgid "invalid offset, target not word aligned (0x%08X)" msgstr "" -#: config/tc-arm.c:9947 config/tc-arm.c:9956 config/tc-arm.c:9963 -#: config/tc-arm.c:9970 config/tc-arm.c:9977 +#: config/tc-arm.c:10045 config/tc-arm.c:10054 config/tc-arm.c:10061 +#: config/tc-arm.c:10068 config/tc-arm.c:10075 #, c-format msgid "invalid offset, value too big (0x%08lX)" msgstr "" -#: config/tc-arm.c:10016 +#: config/tc-arm.c:10114 msgid "invalid immediate for stack address calculation" msgstr "" -#: config/tc-arm.c:10025 +#: config/tc-arm.c:10123 #, c-format msgid "invalid immediate for address calculation (value = 0x%08lX)" msgstr "" -#: config/tc-arm.c:10035 +#: config/tc-arm.c:10133 msgid "invalid 8bit immediate" msgstr "" -#: config/tc-arm.c:10043 +#: config/tc-arm.c:10141 msgid "invalid 3bit immediate" msgstr "" -#: config/tc-arm.c:10059 +#: config/tc-arm.c:10157 #, c-format msgid "invalid immediate: %ld is too large" msgstr "" -#: config/tc-arm.c:10074 +#: config/tc-arm.c:10172 #, c-format msgid "illegal Thumb shift value: %ld" msgstr "" -#: config/tc-arm.c:10088 +#: config/tc-arm.c:10186 #, c-format msgid "bad relocation fixup type (%d)" msgstr "" -#: config/tc-arm.c:10159 +#: config/tc-arm.c:10257 msgid "literal referenced across section boundary (Implicit dump?)" msgstr "" -#: config/tc-arm.c:10172 +#: config/tc-arm.c:10270 #, c-format msgid "internal relocation (type %d) not fixed up (IMMEDIATE)" msgstr "" -#: config/tc-arm.c:10178 +#: config/tc-arm.c:10276 msgid "ADRL used for a symbol not defined in the same file" msgstr "" -#: config/tc-arm.c:10183 +#: config/tc-arm.c:10281 #, c-format msgid "internal_relocation (type %d) not fixed up (OFFSET_IMM)" msgstr "" -#: config/tc-arm.c:10204 config/tc-cris.c:2940 config/tc-mcore.c:2104 -#: config/tc-mmix.c:2840 config/tc-ns32k.c:2350 +#: config/tc-arm.c:10302 config/tc-cris.c:2940 config/tc-mcore.c:2104 +#: config/tc-mmix.c:2868 config/tc-ns32k.c:2350 msgid "<unknown>" msgstr "" -#: config/tc-arm.c:10207 config/tc-arm.c:10228 +#: config/tc-arm.c:10305 config/tc-arm.c:10326 #, c-format msgid "cannot represent %s relocation in this object file format" msgstr "" -#: config/tc-arm.c:10325 +#: config/tc-arm.c:10423 #, c-format msgid "no operator -- statement `%s'\n" msgstr "" -#: config/tc-arm.c:10343 config/tc-arm.c:10368 +#: config/tc-arm.c:10441 config/tc-arm.c:10466 #, c-format msgid "selected processor does not support `%s'" msgstr "" -#: config/tc-arm.c:10385 +#: config/tc-arm.c:10483 #, c-format msgid "bad instruction `%s'" msgstr "" -#: config/tc-arm.c:10583 +#: config/tc-arm.c:10584 +msgid "generate PIC code" +msgstr "" + +#: config/tc-arm.c:10585 +msgid "assemble Thumb code" +msgstr "" + +#: config/tc-arm.c:10586 +msgid "support ARM/Thumb interworking" +msgstr "" + +#: config/tc-arm.c:10588 +msgid "use old ABI (ELF only)" +msgstr "" + +#: config/tc-arm.c:10589 +msgid "code uses 32-bit program counter" +msgstr "" + +#: config/tc-arm.c:10590 +msgid "code uses 26-bit program counter" +msgstr "" + +#: config/tc-arm.c:10591 +msgid "floating point args are in fp regs" +msgstr "" + +#: config/tc-arm.c:10593 +msgid "re-entrant code" +msgstr "" + +#: config/tc-arm.c:10594 +msgid "code is ATPCS conformant" +msgstr "" + +#: config/tc-arm.c:10595 +msgid "assemble for big-endian" +msgstr "" + +#: config/tc-arm.c:10596 +msgid "assemble for little-endian" +msgstr "" + +#. These are recognized by the assembler, but have no affect on code. +#: config/tc-arm.c:10600 +msgid "use frame pointer" +msgstr "" + +#: config/tc-arm.c:10601 +msgid "use stack size checking" +msgstr "" + +#. DON'T add any new processors to this list -- we want the whole list +#. to go away... Add them to the processors table instead. +#: config/tc-arm.c:10605 config/tc-arm.c:10606 +msgid "use -mcpu=arm1" +msgstr "" + +#: config/tc-arm.c:10607 config/tc-arm.c:10608 +msgid "use -mcpu=arm2" +msgstr "" + +#: config/tc-arm.c:10609 config/tc-arm.c:10610 +msgid "use -mcpu=arm250" +msgstr "" + +#: config/tc-arm.c:10611 config/tc-arm.c:10612 +msgid "use -mcpu=arm3" +msgstr "" + +#: config/tc-arm.c:10613 config/tc-arm.c:10614 +msgid "use -mcpu=arm6" +msgstr "" + +#: config/tc-arm.c:10615 config/tc-arm.c:10616 +msgid "use -mcpu=arm600" +msgstr "" + +#: config/tc-arm.c:10617 config/tc-arm.c:10618 +msgid "use -mcpu=arm610" +msgstr "" + +#: config/tc-arm.c:10619 config/tc-arm.c:10620 +msgid "use -mcpu=arm620" +msgstr "" + +#: config/tc-arm.c:10621 config/tc-arm.c:10622 +msgid "use -mcpu=arm7" +msgstr "" + +#: config/tc-arm.c:10623 config/tc-arm.c:10624 +msgid "use -mcpu=arm70" +msgstr "" + +#: config/tc-arm.c:10625 config/tc-arm.c:10626 +msgid "use -mcpu=arm700" +msgstr "" + +#: config/tc-arm.c:10627 config/tc-arm.c:10628 +msgid "use -mcpu=arm700i" +msgstr "" + +#: config/tc-arm.c:10629 config/tc-arm.c:10630 +msgid "use -mcpu=arm710" +msgstr "" + +#: config/tc-arm.c:10631 config/tc-arm.c:10632 +msgid "use -mcpu=arm710c" +msgstr "" + +#: config/tc-arm.c:10633 config/tc-arm.c:10634 +msgid "use -mcpu=arm720" +msgstr "" + +#: config/tc-arm.c:10635 config/tc-arm.c:10636 +msgid "use -mcpu=arm7d" +msgstr "" + +#: config/tc-arm.c:10637 config/tc-arm.c:10638 +msgid "use -mcpu=arm7di" +msgstr "" + +#: config/tc-arm.c:10639 config/tc-arm.c:10640 +msgid "use -mcpu=arm7m" +msgstr "" + +#: config/tc-arm.c:10641 config/tc-arm.c:10642 +msgid "use -mcpu=arm7dm" +msgstr "" + +#: config/tc-arm.c:10643 config/tc-arm.c:10644 +msgid "use -mcpu=arm7dmi" +msgstr "" + +#: config/tc-arm.c:10645 config/tc-arm.c:10646 +msgid "use -mcpu=arm7100" +msgstr "" + +#: config/tc-arm.c:10647 config/tc-arm.c:10648 +msgid "use -mcpu=arm7500" +msgstr "" + +#: config/tc-arm.c:10649 config/tc-arm.c:10650 +msgid "use -mcpu=arm7500fe" +msgstr "" + +#: config/tc-arm.c:10651 config/tc-arm.c:10652 config/tc-arm.c:10653 +#: config/tc-arm.c:10654 +msgid "use -mcpu=arm7tdmi" +msgstr "" + +#: config/tc-arm.c:10655 config/tc-arm.c:10656 +msgid "use -mcpu=arm710t" +msgstr "" + +#: config/tc-arm.c:10657 config/tc-arm.c:10658 +msgid "use -mcpu=arm720t" +msgstr "" + +#: config/tc-arm.c:10659 config/tc-arm.c:10660 +msgid "use -mcpu=arm740t" +msgstr "" + +#: config/tc-arm.c:10661 config/tc-arm.c:10662 +msgid "use -mcpu=arm8" +msgstr "" + +#: config/tc-arm.c:10663 config/tc-arm.c:10664 +msgid "use -mcpu=arm810" +msgstr "" + +#: config/tc-arm.c:10665 config/tc-arm.c:10666 +msgid "use -mcpu=arm9" +msgstr "" + +#: config/tc-arm.c:10667 config/tc-arm.c:10668 +msgid "use -mcpu=arm9tdmi" +msgstr "" + +#: config/tc-arm.c:10669 config/tc-arm.c:10670 +msgid "use -mcpu=arm920" +msgstr "" + +#: config/tc-arm.c:10671 config/tc-arm.c:10672 +msgid "use -mcpu=arm940" +msgstr "" + +#: config/tc-arm.c:10673 +msgid "use -mcpu=strongarm" +msgstr "" + +#: config/tc-arm.c:10675 +msgid "use -mcpu=strongarm110" +msgstr "" + +#: config/tc-arm.c:10677 +msgid "use -mcpu=strongarm1100" +msgstr "" + +#: config/tc-arm.c:10679 +msgid "use -mcpu=strongarm1110" +msgstr "" + +#: config/tc-arm.c:10680 +msgid "use -mcpu=xscale" +msgstr "" + +#: config/tc-arm.c:10681 +msgid "use -mcpu=all" +msgstr "" + +#. Architecture variants -- don't add any more to this list either. +#: config/tc-arm.c:10684 config/tc-arm.c:10685 +msgid "use -march=armv2" +msgstr "" + +#: config/tc-arm.c:10686 config/tc-arm.c:10687 +msgid "use -march=armv2a" +msgstr "" + +#: config/tc-arm.c:10688 config/tc-arm.c:10689 +msgid "use -march=armv3" +msgstr "" + +#: config/tc-arm.c:10690 config/tc-arm.c:10691 +msgid "use -march=armv3m" +msgstr "" + +#: config/tc-arm.c:10692 config/tc-arm.c:10693 +msgid "use -march=armv4" +msgstr "" + +#: config/tc-arm.c:10694 config/tc-arm.c:10695 +msgid "use -march=armv4t" +msgstr "" + +#: config/tc-arm.c:10696 config/tc-arm.c:10697 +msgid "use -march=armv5" +msgstr "" + +#: config/tc-arm.c:10698 config/tc-arm.c:10699 +msgid "use -march=armv5t" +msgstr "" + +#: config/tc-arm.c:10700 config/tc-arm.c:10701 +msgid "use -march=armv5te" +msgstr "" + +#. Floating point variants -- don't add any more to this list either. +#: config/tc-arm.c:10704 +msgid "use -mfpu=fpe" +msgstr "" + +#: config/tc-arm.c:10705 +msgid "use -mfpu=fpa10" +msgstr "" + +#: config/tc-arm.c:10706 +msgid "use -mfpu=fpa11" +msgstr "" + +#: config/tc-arm.c:10708 +msgid "use either -mfpu=softfpa or -mfpu=softvfp" +msgstr "" + +#: config/tc-arm.c:10888 +msgid "invalid architectural extension" +msgstr "" + +#: config/tc-arm.c:10902 +msgid "missing architectural extension" +msgstr "" + +#: config/tc-arm.c:10915 #, c-format -msgid "unrecognised APCS switch -m%s" +msgid "unknown architectural extnsion `%s'" msgstr "" -#: config/tc-arm.c:10738 config/tc-arm.c:10751 config/tc-arm.c:10764 -#: config/tc-arm.c:10777 config/tc-arm.c:10783 +#: config/tc-arm.c:10940 #, c-format -msgid "invalid architecture variant -m%s" +msgid "missing cpu name `%s'" msgstr "" -#: config/tc-arm.c:10790 +#: config/tc-arm.c:10956 #, c-format -msgid "invalid processor variant -m%s" +msgid "unknown cpu `%s'" msgstr "" -#: config/tc-arm.c:10813 -msgid "" -" ARM Specific Assembler Options:\n" -" -m[arm][<processor name>] select processor variant\n" -" -m[arm]v[2|2a|3|3m|4|4t|5[t][e]] select architecture variant\n" -" -marm9e allow Cirrus/DSP instructions\n" -" -mthumb only allow Thumb instructions\n" -" -mthumb-interwork mark the assembled code as supporting " -"interworking\n" -" -mall allow any instruction\n" -" -mfpa10, -mfpa11 select floating point architecture\n" -" -mfpe-old don't allow floating-point multiple " -"instructions\n" -" -mvfpxd allow vfp single-precision instructions\n" -" -mvfp allow all vfp instructions\n" -" -mno-fpu don't allow any floating-point instructions.\n" -" -k generate PIC code.\n" -msgstr "" - -#: config/tc-arm.c:10828 -msgid "" -" -mapcs-32, -mapcs-26 specify which ARM Procedure Calling Standard to " -"use\n" -" -matpcs use ARM/Thumb Procedure Calling Standard\n" -" -mapcs-float floating point args are passed in FP regs\n" -" -mapcs-reentrant the code is position independent/reentrant\n" +#: config/tc-arm.c:10975 +#, c-format +msgid "missing architecture name `%s'" msgstr "" -#: config/tc-arm.c:10835 -msgid " -moabi support the old ELF ABI\n" +#: config/tc-arm.c:10992 +#, c-format +msgid "unknown architecture `%s'\n" msgstr "" -#: config/tc-arm.c:10839 -msgid "" -" -EB assemble code for a big endian cpu\n" -" -EL assemble code for a little endian cpu\n" +#: config/tc-arm.c:11009 +#, c-format +msgid "unknown floating point format `%s'\n" +msgstr "" + +#: config/tc-arm.c:11015 +msgid "<cpu name>\t assemble for CPU <cpu name>" +msgstr "" + +#: config/tc-arm.c:11017 +msgid "<arch name>\t assemble for architecture <arch name>" msgstr "" -#: config/tc-arm.c:11023 +#: config/tc-arm.c:11019 +msgid "<fpu name>\t assemble for FPU architecture <fpu name>" +msgstr "" + +#: config/tc-arm.c:11061 config/tc-arm.c:11083 +#, c-format +msgid "option `-%c%s' is deprecated: %s" +msgstr "" + +#: config/tc-arm.c:11092 +#, c-format +msgid "unrecognized option `-%c%s'" +msgstr "" + +#: config/tc-arm.c:11106 +msgid " ARM-specific assembler options:\n" +msgstr "" + +#: config/tc-arm.c:11117 +msgid " -EB assemble code for a big-endian cpu\n" +msgstr "" + +#: config/tc-arm.c:11122 +msgid " -EL assemble code for a little-endian cpu\n" +msgstr "" + +#: config/tc-arm.c:11305 #, c-format msgid "%s: unexpected function type: %d" msgstr "" -#: config/tc-arm.c:11389 +#: config/tc-arm.c:11671 msgid "alignments greater than 32 bytes not supported in .text sections." msgstr "" @@ -2242,9 +2539,9 @@ msgid "redefinition of mcu type `%s' to `%s'" msgstr "" #: config/tc-avr.c:384 config/tc-d10v.c:314 config/tc-d30v.c:366 -#: config/tc-mips.c:9586 config/tc-mmix.c:2233 config/tc-mn10200.c:361 -#: config/tc-pj.c:357 config/tc-ppc.c:4803 config/tc-sh.c:2090 -#: config/tc-v850.c:1292 +#: config/tc-mips.c:9586 config/tc-mmix.c:2249 config/tc-mn10200.c:361 +#: config/tc-pj.c:357 config/tc-ppc.c:4803 config/tc-sh.c:2518 +#: config/tc-v850.c:1194 msgid "bad call to md_atof" msgstr "" @@ -2338,15 +2635,15 @@ msgid "only constant expression allowed" msgstr "" #: config/tc-avr.c:1067 config/tc-d10v.c:1498 config/tc-d30v.c:1807 -#: config/tc-mn10200.c:1240 config/tc-mn10300.c:1774 config/tc-ppc.c:5534 -#: config/tc-v850.c:2296 +#: config/tc-mn10200.c:1240 config/tc-mn10300.c:1774 config/tc-or32.c:1622 +#: config/tc-ppc.c:5534 config/tc-v850.c:2207 #, c-format msgid "reloc %d not supported by object file format" msgstr "" #: config/tc-avr.c:1091 config/tc-d10v.c:1100 config/tc-d10v.c:1114 -#: config/tc-h8300.c:1275 config/tc-h8500.c:1088 config/tc-mcore.c:988 -#: config/tc-pj.c:266 config/tc-sh.c:1670 config/tc-z8k.c:1192 +#: config/tc-h8300.c:1283 config/tc-h8500.c:1088 config/tc-mcore.c:988 +#: config/tc-pj.c:266 config/tc-sh.c:2096 config/tc-z8k.c:1192 msgid "can't find opcode " msgstr "" @@ -2595,7 +2892,7 @@ msgstr "" #: config/tc-d10v.c:538 config/tc-d30v.c:550 config/tc-mn10200.c:937 #: config/tc-mn10300.c:1308 config/tc-ppc.c:2104 config/tc-s390.c:1052 -#: config/tc-tic80.c:279 config/tc-v850.c:2070 +#: config/tc-tic80.c:279 config/tc-v850.c:1981 msgid "illegal operand" msgstr "" @@ -2841,7 +3138,7 @@ msgid "Addend to unresolved symbol not on word boundary." msgstr "" #: config/tc-fr30.c:540 config/tc-i960.c:773 config/tc-m32r.c:1867 -#: config/tc-openrisc.c:468 +#: config/tc-openrisc.c:468 config/tc-xstormy16.c:635 msgid "Bad call to md_atof()" msgstr "" @@ -2873,93 +3170,95 @@ msgstr "" msgid "expect :8 or :16 here" msgstr "" -#: config/tc-h8300.c:818 +#: config/tc-h8300.c:826 #, c-format msgid "operand %s0x%lx out of range." msgstr "" -#: config/tc-h8300.c:906 +#: config/tc-h8300.c:914 msgid "Can't work out size of operand.\n" msgstr "" -#: config/tc-h8300.c:954 +#: config/tc-h8300.c:962 #, c-format msgid "Opcode `%s' with these operand types not available in H8/300 mode" msgstr "" -#: config/tc-h8300.c:1005 config/tc-h8300.c:1025 +#: config/tc-h8300.c:1013 config/tc-h8300.c:1033 msgid "Need #1 or #2 here" msgstr "" -#: config/tc-h8300.c:1020 +#: config/tc-h8300.c:1028 msgid "#4 not valid on H8/300." msgstr "" -#: config/tc-h8300.c:1107 config/tc-h8300.c:1157 +#: config/tc-h8300.c:1115 config/tc-h8300.c:1165 #, c-format msgid "branch operand has odd offset (%lx)\n" msgstr "" -#: config/tc-h8300.c:1195 +#: config/tc-h8300.c:1203 msgid "destination operand must be 16 bit register" msgstr "" -#: config/tc-h8300.c:1204 +#: config/tc-h8300.c:1212 msgid "source operand must be 8 bit register" msgstr "" -#: config/tc-h8300.c:1212 +#: config/tc-h8300.c:1220 msgid "destination operand must be 16bit absolute address" msgstr "" -#: config/tc-h8300.c:1219 +#: config/tc-h8300.c:1227 msgid "destination operand must be 8 bit register" msgstr "" -#: config/tc-h8300.c:1227 +#: config/tc-h8300.c:1235 msgid "source operand must be 16bit absolute address" msgstr "" #. This seems more sane than saying "too many operands". We'll #. get here only if the trailing trash starts with a comma. -#: config/tc-h8300.c:1235 config/tc-mmix.c:452 config/tc-mmix.c:464 -#: config/tc-mmix.c:2485 config/tc-mmix.c:2509 config/tc-mmix.c:2774 +#: config/tc-h8300.c:1243 config/tc-mmix.c:459 config/tc-mmix.c:471 +#: config/tc-mmix.c:2501 config/tc-mmix.c:2525 config/tc-mmix.c:2802 +#: config/tc-or32.c:642 config/tc-or32.c:856 msgid "invalid operands" msgstr "" -#: config/tc-h8300.c:1286 config/tc-h8500.c:1094 config/tc-mips.c:8649 -#: config/tc-sh.c:1907 config/tc-w65.c:733 config/tc-z8k.c:1202 +#: config/tc-h8300.c:1294 config/tc-h8500.c:1094 config/tc-mips.c:8649 +#: config/tc-sh.c:2353 config/tc-sh64.c:2811 config/tc-w65.c:733 +#: config/tc-z8k.c:1202 msgid "unknown opcode" msgstr "" -#: config/tc-h8300.c:1332 +#: config/tc-h8300.c:1340 msgid "mismatch between opcode size and operand size" msgstr "" -#: config/tc-h8300.c:1344 config/tc-h8500.c:1121 config/tc-sh.c:2045 +#: config/tc-h8300.c:1352 config/tc-h8500.c:1121 config/tc-sh.c:2473 #: config/tc-w65.c:763 config/tc-z8k.c:1255 msgid "call to tc_crawl_symbol_chain \n" msgstr "" -#: config/tc-h8300.c:1360 config/tc-h8500.c:1135 config/tc-sh.c:2052 +#: config/tc-h8300.c:1368 config/tc-h8500.c:1135 config/tc-sh.c:2480 #: config/tc-w65.c:777 config/tc-z8k.c:1269 msgid "call to tc_headers_hook \n" msgstr "" -#: config/tc-h8300.c:1452 config/tc-h8500.c:1225 config/tc-z8k.c:1383 +#: config/tc-h8300.c:1460 config/tc-h8500.c:1225 config/tc-z8k.c:1383 msgid "call to tc_aout_fix_to_chars \n" msgstr "" -#: config/tc-h8300.c:1466 config/tc-z8k.c:1393 +#: config/tc-h8300.c:1474 config/tc-z8k.c:1393 msgid "call to md_convert_frag \n" msgstr "" -#: config/tc-h8300.c:1528 config/tc-z8k.c:1479 +#: config/tc-h8300.c:1536 config/tc-z8k.c:1479 msgid "call tomd_estimate_size_before_relax \n" msgstr "" -#: config/tc-h8300.c:1649 config/tc-mcore.c:2413 config/tc-pj.c:572 -#: config/tc-sh.c:3367 +#: config/tc-h8300.c:1657 config/tc-mcore.c:2413 config/tc-pj.c:572 +#: config/tc-sh.c:3931 #, c-format msgid "Cannot represent relocation type %s" msgstr "" @@ -2992,7 +3291,7 @@ msgstr "" msgid "@Rn needs word register" msgstr "" -#: config/tc-h8500.c:828 config/tc-sh.c:1403 +#: config/tc-h8500.c:828 config/tc-sh.c:1827 #, c-format msgid "unhandled %d\n" msgstr "" @@ -3002,12 +3301,12 @@ msgstr "" msgid "operand must be absolute in range %d..%d" msgstr "" -#: config/tc-h8500.c:945 config/tc-sh.c:1610 +#: config/tc-h8500.c:945 config/tc-sh.c:2036 #, c-format msgid "failed for %d\n" msgstr "" -#: config/tc-h8500.c:1110 config/tc-sh.c:1711 config/tc-sh.c:1956 +#: config/tc-h8500.c:1110 config/tc-sh.c:2137 config/tc-sh.c:2402 #: config/tc-w65.c:752 msgid "invalid operands for opcode" msgstr "" @@ -3425,362 +3724,362 @@ msgstr "" msgid "No memory for symbol name." msgstr "" -#: config/tc-i386.c:594 +#: config/tc-i386.c:598 #, c-format msgid "%s shortened to %s" msgstr "" -#: config/tc-i386.c:649 +#: config/tc-i386.c:653 msgid "same type of prefix used twice" msgstr "" -#: config/tc-i386.c:667 +#: config/tc-i386.c:671 msgid "64bit mode not supported on this CPU." msgstr "" -#: config/tc-i386.c:671 +#: config/tc-i386.c:675 msgid "32bit mode not supported on this CPU." msgstr "" -#: config/tc-i386.c:704 +#: config/tc-i386.c:708 msgid "bad argument to syntax directive." msgstr "" -#: config/tc-i386.c:748 +#: config/tc-i386.c:752 #, c-format msgid "no such architecture: `%s'" msgstr "" -#: config/tc-i386.c:753 +#: config/tc-i386.c:757 msgid "missing cpu architecture" msgstr "" -#: config/tc-i386.c:767 +#: config/tc-i386.c:771 #, c-format msgid "no such architecture modifier: `%s'" msgstr "" -#: config/tc-i386.c:821 config/tc-i386.c:4628 +#: config/tc-i386.c:825 config/tc-i386.c:4632 msgid "Unknown architecture" msgstr "" -#: config/tc-i386.c:856 config/tc-i386.c:879 config/tc-m68k.c:3826 +#: config/tc-i386.c:860 config/tc-i386.c:883 config/tc-m68k.c:3826 #, c-format msgid "Internal Error: Can't hash %s: %s" msgstr "" -#: config/tc-i386.c:1132 +#: config/tc-i386.c:1136 msgid "There are no unsigned pc-relative relocations" msgstr "" -#: config/tc-i386.c:1139 config/tc-i386.c:4827 +#: config/tc-i386.c:1143 config/tc-i386.c:4831 #, c-format msgid "can not do %d byte pc-relative relocation" msgstr "" -#: config/tc-i386.c:1156 +#: config/tc-i386.c:1160 #, c-format msgid "can not do %s %d byte relocation" msgstr "" -#: config/tc-i386.c:1263 config/tc-i386.c:1357 +#: config/tc-i386.c:1267 config/tc-i386.c:1361 #, c-format msgid "no such instruction: `%s'" msgstr "" -#: config/tc-i386.c:1273 config/tc-i386.c:1389 +#: config/tc-i386.c:1277 config/tc-i386.c:1393 #, c-format msgid "invalid character %s in mnemonic" msgstr "" -#: config/tc-i386.c:1280 +#: config/tc-i386.c:1284 msgid "expecting prefix; got nothing" msgstr "" -#: config/tc-i386.c:1282 +#: config/tc-i386.c:1286 msgid "expecting mnemonic; got nothing" msgstr "" -#: config/tc-i386.c:1300 +#: config/tc-i386.c:1304 #, c-format msgid "redundant %s prefix" msgstr "" -#: config/tc-i386.c:1398 +#: config/tc-i386.c:1402 #, c-format msgid "`%s' is not supported on `%s'" msgstr "" -#: config/tc-i386.c:1403 +#: config/tc-i386.c:1407 msgid "use .code16 to ensure correct addressing mode" msgstr "" -#: config/tc-i386.c:1410 +#: config/tc-i386.c:1414 #, c-format msgid "expecting string instruction after `%s'" msgstr "" -#: config/tc-i386.c:1431 +#: config/tc-i386.c:1435 #, c-format msgid "invalid character %s before operand %d" msgstr "" -#: config/tc-i386.c:1445 +#: config/tc-i386.c:1449 #, c-format msgid "unbalanced parenthesis in operand %d." msgstr "" -#: config/tc-i386.c:1448 +#: config/tc-i386.c:1452 #, c-format msgid "unbalanced brackets in operand %d." msgstr "" -#: config/tc-i386.c:1457 +#: config/tc-i386.c:1461 #, c-format msgid "invalid character %s in operand %d" msgstr "" -#: config/tc-i386.c:1484 +#: config/tc-i386.c:1488 #, c-format msgid "spurious operands; (%d operands/instruction max)" msgstr "" -#: config/tc-i386.c:1507 +#: config/tc-i386.c:1511 msgid "expecting operand after ','; got nothing" msgstr "" -#: config/tc-i386.c:1512 +#: config/tc-i386.c:1516 msgid "expecting operand before ','; got nothing" msgstr "" #. We found no match. -#: config/tc-i386.c:1856 +#: config/tc-i386.c:1860 #, c-format msgid "suffix or operands invalid for `%s'" msgstr "" -#: config/tc-i386.c:1867 +#: config/tc-i386.c:1871 #, c-format msgid "indirect %s without `*'" msgstr "" #. Warn them that a data or address size prefix doesn't #. affect assembly of the next line of code. -#: config/tc-i386.c:1875 +#: config/tc-i386.c:1879 #, c-format msgid "stand-alone `%s' prefix" msgstr "" -#: config/tc-i386.c:1911 config/tc-i386.c:1926 +#: config/tc-i386.c:1915 config/tc-i386.c:1930 #, c-format msgid "`%s' operand %d must use `%%es' segment" msgstr "" #. Prohibit these changes in the 64bit mode, since #. the lowering is more complicated. -#: config/tc-i386.c:1999 config/tc-i386.c:2053 config/tc-i386.c:2068 -#: config/tc-i386.c:2096 config/tc-i386.c:2124 +#: config/tc-i386.c:2003 config/tc-i386.c:2057 config/tc-i386.c:2072 +#: config/tc-i386.c:2100 config/tc-i386.c:2128 #, c-format msgid "Incorrect register `%%%s' used with`%c' suffix" msgstr "" -#: config/tc-i386.c:2005 config/tc-i386.c:2058 config/tc-i386.c:2129 +#: config/tc-i386.c:2009 config/tc-i386.c:2062 config/tc-i386.c:2133 #, c-format msgid "using `%%%s' instead of `%%%s' due to `%c' suffix" msgstr "" -#: config/tc-i386.c:2021 config/tc-i386.c:2039 config/tc-i386.c:2083 -#: config/tc-i386.c:2110 +#: config/tc-i386.c:2025 config/tc-i386.c:2043 config/tc-i386.c:2087 +#: config/tc-i386.c:2114 #, c-format msgid "`%%%s' not allowed with `%s%c'" msgstr "" -#: config/tc-i386.c:2170 +#: config/tc-i386.c:2174 msgid "no instruction mnemonic suffix given; can't determine immediate size" msgstr "" -#: config/tc-i386.c:2196 +#: config/tc-i386.c:2200 #, c-format msgid "" "no instruction mnemonic suffix given; can't determine immediate size %x %c" msgstr "" -#: config/tc-i386.c:2221 +#: config/tc-i386.c:2225 msgid "" "no instruction mnemonic suffix given and no register operands; can't size " "instruction" msgstr "" -#: config/tc-i386.c:2269 +#: config/tc-i386.c:2273 msgid "64bit operations available only in 64bit modes." msgstr "" #. Reversed arguments on faddp, fsubp, etc. -#: config/tc-i386.c:2337 +#: config/tc-i386.c:2341 #, c-format msgid "translating to `%s %%%s,%%%s'" msgstr "" #. Extraneous `l' suffix on fp insn. -#: config/tc-i386.c:2344 +#: config/tc-i386.c:2348 #, c-format msgid "translating to `%s %%%s'" msgstr "" -#: config/tc-i386.c:2617 +#: config/tc-i386.c:2621 #, c-format msgid "you can't `pop %%cs'" msgstr "" #. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc. -#: config/tc-i386.c:2650 +#: config/tc-i386.c:2654 #, c-format msgid "translating to `%sp'" msgstr "" -#: config/tc-i386.c:2693 +#: config/tc-i386.c:2697 #, c-format msgid "" "Can't encode registers '%%%s' in the instruction requiring REX prefix.\n" msgstr "" -#: config/tc-i386.c:2755 config/tc-i386.c:2845 config/tc-i386.c:2881 +#: config/tc-i386.c:2759 config/tc-i386.c:2849 config/tc-i386.c:2885 msgid "skipping prefixes on this instruction" msgstr "" -#: config/tc-i386.c:2901 +#: config/tc-i386.c:2905 msgid "16-bit jump out of range" msgstr "" -#: config/tc-i386.c:2910 +#: config/tc-i386.c:2914 #, c-format msgid "can't handle non absolute segment in `%s'" msgstr "" -#: config/tc-i386.c:3217 +#: config/tc-i386.c:3221 #, c-format msgid "@%s reloc is not supported in %s bit mode" msgstr "" -#: config/tc-i386.c:3293 +#: config/tc-i386.c:3297 msgid "only 1 or 2 immediate operands are allowed" msgstr "" -#: config/tc-i386.c:3316 config/tc-i386.c:3504 +#: config/tc-i386.c:3320 config/tc-i386.c:3508 #, c-format msgid "junk `%s' after expression" msgstr "" #. Missing or bad expr becomes absolute 0. -#: config/tc-i386.c:3327 +#: config/tc-i386.c:3331 #, c-format msgid "missing or invalid immediate expression `%s' taken as 0" msgstr "" -#: config/tc-i386.c:3358 config/tc-i386.c:3565 +#: config/tc-i386.c:3362 config/tc-i386.c:3569 #, c-format msgid "unimplemented segment %s in operand" msgstr "" -#: config/tc-i386.c:3360 config/tc-i386.c:3567 +#: config/tc-i386.c:3364 config/tc-i386.c:3571 #, c-format msgid "unimplemented segment type %d in operand" msgstr "" -#: config/tc-i386.c:3404 config/tc-i386.c:5588 +#: config/tc-i386.c:3408 config/tc-i386.c:5592 #, c-format msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'" msgstr "" -#: config/tc-i386.c:3411 +#: config/tc-i386.c:3415 #, c-format msgid "scale factor of %d without an index register" msgstr "" -#: config/tc-i386.c:3524 +#: config/tc-i386.c:3528 #, c-format msgid "bad expression used with @%s" msgstr "" #. Missing or bad expr becomes absolute 0. -#: config/tc-i386.c:3546 +#: config/tc-i386.c:3550 #, c-format msgid "missing or invalid displacement expression `%s' taken as 0" msgstr "" -#: config/tc-i386.c:3652 +#: config/tc-i386.c:3656 #, c-format msgid "`%s' is not a valid base/index expression" msgstr "" -#: config/tc-i386.c:3656 +#: config/tc-i386.c:3660 #, c-format msgid "`%s' is not a valid %s bit base/index expression" msgstr "" -#: config/tc-i386.c:3731 +#: config/tc-i386.c:3735 #, c-format msgid "bad memory operand `%s'" msgstr "" -#: config/tc-i386.c:3746 +#: config/tc-i386.c:3750 #, c-format msgid "junk `%s' after register" msgstr "" -#: config/tc-i386.c:3755 config/tc-i386.c:3870 config/tc-i386.c:3908 +#: config/tc-i386.c:3759 config/tc-i386.c:3874 config/tc-i386.c:3912 #, c-format msgid "bad register name `%s'" msgstr "" -#: config/tc-i386.c:3763 +#: config/tc-i386.c:3767 msgid "immediate operand illegal with absolute jump" msgstr "" -#: config/tc-i386.c:3785 +#: config/tc-i386.c:3789 #, c-format msgid "too many memory references for `%s'" msgstr "" -#: config/tc-i386.c:3863 +#: config/tc-i386.c:3867 #, c-format msgid "expecting `,' or `)' after index register in `%s'" msgstr "" -#: config/tc-i386.c:3887 +#: config/tc-i386.c:3891 #, c-format msgid "expecting `)' after scale factor in `%s'" msgstr "" -#: config/tc-i386.c:3894 +#: config/tc-i386.c:3898 #, c-format msgid "expecting index register or scale factor after `,'; got '%c'" msgstr "" -#: config/tc-i386.c:3901 +#: config/tc-i386.c:3905 #, c-format msgid "expecting `,' or `)' after base register in `%s'" msgstr "" #. It's not a memory operand; argh! -#: config/tc-i386.c:3942 +#: config/tc-i386.c:3946 #, c-format msgid "invalid char %s beginning operand %d `%s'" msgstr "" -#: config/tc-i386.c:4117 +#: config/tc-i386.c:4121 msgid "long jump required" msgstr "" -#: config/tc-i386.c:4417 +#: config/tc-i386.c:4421 msgid "Bad call to md_atof ()" msgstr "" -#: config/tc-i386.c:4581 +#: config/tc-i386.c:4585 msgid "No compiled in support for x86_64" msgstr "" -#: config/tc-i386.c:4602 +#: config/tc-i386.c:4606 msgid "" " -Q ignored\n" " -V print assembler version number\n" @@ -3789,63 +4088,63 @@ msgid "" " -s ignored\n" msgstr "" -#: config/tc-i386.c:4609 +#: config/tc-i386.c:4613 msgid " -q quieten some warnings\n" msgstr "" -#: config/tc-i386.c:4710 config/tc-s390.c:1592 +#: config/tc-i386.c:4714 config/tc-s390.c:1592 msgid "GOT already in symbol table" msgstr "" -#: config/tc-i386.c:4842 +#: config/tc-i386.c:4846 #, c-format msgid "can not do %d byte relocation" msgstr "" -#: config/tc-i386.c:4894 config/tc-s390.c:1957 +#: config/tc-i386.c:4898 config/tc-s390.c:1957 #, c-format msgid "cannot represent relocation type %s" msgstr "" -#: config/tc-i386.c:5190 +#: config/tc-i386.c:5194 #, c-format msgid "too many memory references for '%s'" msgstr "" -#: config/tc-i386.c:5353 +#: config/tc-i386.c:5357 #, c-format msgid "Unknown operand modifier `%s'\n" msgstr "" -#: config/tc-i386.c:5560 +#: config/tc-i386.c:5564 #, c-format msgid "`%s' is not a valid segment register" msgstr "" -#: config/tc-i386.c:5570 config/tc-i386.c:5691 +#: config/tc-i386.c:5574 config/tc-i386.c:5695 msgid "Register scaling only allowed in memory operands." msgstr "" -#: config/tc-i386.c:5601 +#: config/tc-i386.c:5605 msgid "Too many register references in memory operand.\n" msgstr "" -#: config/tc-i386.c:5670 +#: config/tc-i386.c:5674 #, c-format msgid "Syntax error. Expecting a constant. Got `%s'.\n" msgstr "" -#: config/tc-i386.c:5740 +#: config/tc-i386.c:5744 #, c-format msgid "Unrecognized token '%s'" msgstr "" -#: config/tc-i386.c:5757 +#: config/tc-i386.c:5761 #, c-format msgid "Unexpected token `%s'\n" msgstr "" -#: config/tc-i386.c:5901 +#: config/tc-i386.c:5905 #, c-format msgid "Unrecognized token `%s'\n" msgstr "" @@ -4393,7 +4692,7 @@ msgstr "" msgid "ignoring bad alignment" msgstr "" -#: config/tc-m32r.c:1288 config/tc-ppc.c:1630 config/tc-v850.c:383 +#: config/tc-m32r.c:1288 config/tc-ppc.c:1630 config/tc-v850.c:333 msgid "Common alignment not a power of 2" msgstr "" @@ -4753,7 +5052,7 @@ msgstr "" msgid "Unable to produce reloc against symbol '%s'" msgstr "" -#: config/tc-m68k.c:948 config/tc-mips.c:12429 +#: config/tc-m68k.c:948 config/tc-mips.c:12440 #, c-format msgid "Cannot make %s relocation PC relative" msgstr "" @@ -4795,7 +5094,7 @@ msgid "operands mismatch" msgstr "" #: config/tc-m68k.c:1949 config/tc-m68k.c:1955 config/tc-m68k.c:1961 -#: config/tc-mmix.c:2448 config/tc-mmix.c:2472 +#: config/tc-mmix.c:2464 config/tc-mmix.c:2488 msgid "operand out of range" msgstr "" @@ -5435,7 +5734,7 @@ msgstr "" msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n" msgstr "" -#: config/tc-mips.c:2012 config/tc-mips.c:12574 +#: config/tc-mips.c:2012 config/tc-mips.c:12585 msgid "extended instruction in delay slot" msgstr "" @@ -5979,293 +6278,301 @@ msgstr "" msgid "Double check fx_r_type in tc-mips.c:tc_gen_reloc" msgstr "" -#: config/tc-mips.c:12461 config/tc-sh.c:3218 +#: config/tc-mips.c:12472 config/tc-sh.c:3771 #, c-format msgid "Can not represent %s relocation in this object file format" msgstr "" -#: config/tc-mips.c:12800 +#: config/tc-mips.c:12811 msgid "missing .end at end of assembly" msgstr "" -#: config/tc-mips.c:12815 +#: config/tc-mips.c:12826 msgid "expected simple number" msgstr "" -#: config/tc-mips.c:12841 +#: config/tc-mips.c:12852 #, c-format msgid " *input_line_pointer == '%c' 0x%02x\n" msgstr "" -#: config/tc-mips.c:12843 +#: config/tc-mips.c:12854 msgid "invalid number" msgstr "" -#: config/tc-mips.c:12901 +#: config/tc-mips.c:12912 msgid ".end not in text section" msgstr "" -#: config/tc-mips.c:12905 +#: config/tc-mips.c:12916 msgid ".end directive without a preceding .ent directive." msgstr "" -#: config/tc-mips.c:12914 +#: config/tc-mips.c:12925 msgid ".end symbol does not match .ent symbol." msgstr "" -#: config/tc-mips.c:12917 +#: config/tc-mips.c:12928 msgid ".end directive missing or unknown symbol" msgstr "" -#: config/tc-mips.c:12990 +#: config/tc-mips.c:13001 msgid ".ent or .aent not in text section." msgstr "" -#: config/tc-mips.c:12993 +#: config/tc-mips.c:13004 msgid "missing .end" msgstr "" -#: config/tc-mips.c:13030 ecoff.c:3202 +#: config/tc-mips.c:13041 ecoff.c:3202 msgid ".frame outside of .ent" msgstr "" -#: config/tc-mips.c:13041 +#: config/tc-mips.c:13052 msgid "Bad .frame directive" msgstr "" -#: config/tc-mips.c:13071 +#: config/tc-mips.c:13082 msgid ".mask/.fmask outside of .ent" msgstr "" -#: config/tc-mips.c:13078 +#: config/tc-mips.c:13089 msgid "Bad .mask/.fmask directive" msgstr "" -#: config/tc-mmix.c:669 +#: config/tc-mmix.c:681 msgid " MMIX-specific command line options:\n" msgstr "" -#: config/tc-mmix.c:670 +#: config/tc-mmix.c:682 msgid "" " -fixed-special-register-names\n" " Allow only the original special register names.\n" msgstr "" -#: config/tc-mmix.c:673 +#: config/tc-mmix.c:685 msgid " -globalize-symbols Make all symbols global.\n" msgstr "" -#: config/tc-mmix.c:675 +#: config/tc-mmix.c:687 msgid " -gnu-syntax Turn off mmixal syntax compatibility.\n" msgstr "" -#: config/tc-mmix.c:677 +#: config/tc-mmix.c:689 msgid " -relax Create linker relaxable code.\n" msgstr "" -#: config/tc-mmix.c:679 +#: config/tc-mmix.c:691 msgid "" " -no-predefined-syms Do not provide mmixal built-in constants.\n" " Implies -fixed-special-register-names.\n" msgstr "" -#: config/tc-mmix.c:682 +#: config/tc-mmix.c:694 msgid "" " -no-expand Do not expand GETA, branches, PUSHJ or JUMP\n" " into multiple instructions.\n" msgstr "" -#: config/tc-mmix.c:685 +#: config/tc-mmix.c:697 msgid "" " -no-merge-gregs Do not merge GREG definitions with nearby values.\n" msgstr "" -#: config/tc-mmix.c:687 +#: config/tc-mmix.c:699 +msgid "" +" -linker-allocated-gregs If there's no suitable GREG definition for " +"the operands of an instruction, let the linker " +"resolve.\n" +msgstr "" + +#: config/tc-mmix.c:702 msgid "" " -x Do not warn when an operand to GETA, a branch,\n" " PUSHJ or JUMP is not known to be within range.\n" -" The linker will catch any errors.\n" +" The linker will catch any errors. Implies\n" +" -linker-allocated-gregs." msgstr "" -#: config/tc-mmix.c:813 +#: config/tc-mmix.c:829 #, c-format msgid "unknown opcode: `%s'" msgstr "" -#: config/tc-mmix.c:935 config/tc-mmix.c:950 +#: config/tc-mmix.c:951 config/tc-mmix.c:966 msgid "specified location wasn't TETRA-aligned" msgstr "" -#: config/tc-mmix.c:937 config/tc-mmix.c:952 config/tc-mmix.c:4055 -#: config/tc-mmix.c:4071 +#: config/tc-mmix.c:953 config/tc-mmix.c:968 config/tc-mmix.c:4085 +#: config/tc-mmix.c:4101 msgid "unaligned data at an absolute location is not supported" msgstr "" -#: config/tc-mmix.c:1062 +#: config/tc-mmix.c:1078 #, c-format msgid "invalid operand to opcode %s: `%s'" msgstr "" -#: config/tc-mmix.c:1084 config/tc-mmix.c:1111 config/tc-mmix.c:1144 -#: config/tc-mmix.c:1152 config/tc-mmix.c:1169 config/tc-mmix.c:1197 -#: config/tc-mmix.c:1218 config/tc-mmix.c:1243 config/tc-mmix.c:1291 -#: config/tc-mmix.c:1389 config/tc-mmix.c:1414 config/tc-mmix.c:1446 -#: config/tc-mmix.c:1478 config/tc-mmix.c:1508 config/tc-mmix.c:1561 -#: config/tc-mmix.c:1578 config/tc-mmix.c:1605 config/tc-mmix.c:1633 -#: config/tc-mmix.c:1660 config/tc-mmix.c:1686 config/tc-mmix.c:1702 -#: config/tc-mmix.c:1728 config/tc-mmix.c:1744 config/tc-mmix.c:1760 -#: config/tc-mmix.c:1823 config/tc-mmix.c:1839 +#: config/tc-mmix.c:1100 config/tc-mmix.c:1127 config/tc-mmix.c:1160 +#: config/tc-mmix.c:1168 config/tc-mmix.c:1185 config/tc-mmix.c:1213 +#: config/tc-mmix.c:1234 config/tc-mmix.c:1259 config/tc-mmix.c:1307 +#: config/tc-mmix.c:1405 config/tc-mmix.c:1430 config/tc-mmix.c:1462 +#: config/tc-mmix.c:1494 config/tc-mmix.c:1524 config/tc-mmix.c:1577 +#: config/tc-mmix.c:1594 config/tc-mmix.c:1621 config/tc-mmix.c:1649 +#: config/tc-mmix.c:1676 config/tc-mmix.c:1702 config/tc-mmix.c:1718 +#: config/tc-mmix.c:1744 config/tc-mmix.c:1760 config/tc-mmix.c:1776 +#: config/tc-mmix.c:1839 config/tc-mmix.c:1855 #, c-format msgid "invalid operands to opcode %s: `%s'" msgstr "" -#: config/tc-mmix.c:1816 +#: config/tc-mmix.c:1832 #, c-format msgid "unsupported operands to %s: `%s'" msgstr "" -#: config/tc-mmix.c:1944 +#: config/tc-mmix.c:1960 msgid "internal: mmix_prefix_name but empty prefix" msgstr "" -#: config/tc-mmix.c:1989 +#: config/tc-mmix.c:2005 #, c-format msgid "too many GREG registers allocated (max %d)" msgstr "" -#: config/tc-mmix.c:2049 +#: config/tc-mmix.c:2065 msgid "BSPEC already active. Nesting is not supported." msgstr "" -#: config/tc-mmix.c:2058 +#: config/tc-mmix.c:2074 msgid "invalid BSPEC expression" msgstr "" -#: config/tc-mmix.c:2074 +#: config/tc-mmix.c:2090 #, c-format msgid "can't create section %s" msgstr "" -#: config/tc-mmix.c:2079 +#: config/tc-mmix.c:2095 #, c-format msgid "can't set section flags for section %s" msgstr "" -#: config/tc-mmix.c:2101 +#: config/tc-mmix.c:2117 msgid "ESPEC without preceding BSPEC" msgstr "" -#: config/tc-mmix.c:2131 +#: config/tc-mmix.c:2147 msgid "missing local expression" msgstr "" -#: config/tc-mmix.c:2346 +#: config/tc-mmix.c:2362 msgid "operand out of range, instruction expanded" msgstr "" #. The BFD_RELOC_MMIX_LOCAL-specific message is supposed to be #. user-friendly, though a little bit non-substantial. -#: config/tc-mmix.c:2598 +#: config/tc-mmix.c:2620 msgid "directive LOCAL must be placed in code or data" msgstr "" -#: config/tc-mmix.c:2599 +#: config/tc-mmix.c:2621 msgid "internal confusion: relocation in a section without contents" msgstr "" -#: config/tc-mmix.c:2714 +#: config/tc-mmix.c:2734 msgid "internal: BFD_RELOC_MMIX_BASE_PLUS_OFFSET not resolved to section" msgstr "" -#: config/tc-mmix.c:2754 +#: config/tc-mmix.c:2782 msgid "no suitable GREG definition for operands" msgstr "" -#: config/tc-mmix.c:2813 +#: config/tc-mmix.c:2841 msgid "operands were not reducible at assembly-time" msgstr "" -#: config/tc-mmix.c:2841 +#: config/tc-mmix.c:2869 #, c-format msgid "cannot generate relocation type for symbol %s, code %s" msgstr "" -#: config/tc-mmix.c:2861 +#: config/tc-mmix.c:2889 #, c-format msgid "internal: unhandled label %s" msgstr "" -#: config/tc-mmix.c:2915 +#: config/tc-mmix.c:2943 msgid "[0-9]H labels may not appear alone on a line" msgstr "" -#: config/tc-mmix.c:2924 +#: config/tc-mmix.c:2952 msgid "[0-9]H labels do not mix with dot-pseudos" msgstr "" -#: config/tc-mmix.c:2988 +#: config/tc-mmix.c:3016 msgid "invalid characters in input" msgstr "" -#: config/tc-mmix.c:3092 +#: config/tc-mmix.c:3120 msgid "empty label field for IS" msgstr "" -#: config/tc-mmix.c:3342 +#: config/tc-mmix.c:3370 #, c-format msgid "internal: unexpected relax type %d:%d" msgstr "" -#: config/tc-mmix.c:3364 +#: config/tc-mmix.c:3392 msgid "BSPEC without ESPEC." msgstr "" -#: config/tc-mmix.c:3566 +#: config/tc-mmix.c:3594 msgid "GREG expression too complicated" msgstr "" -#: config/tc-mmix.c:3579 +#: config/tc-mmix.c:3609 msgid "internal: GREG expression not resolved to section" msgstr "" -#: config/tc-mmix.c:3630 +#: config/tc-mmix.c:3660 msgid "register section has contents\n" msgstr "" -#: config/tc-mmix.c:3808 +#: config/tc-mmix.c:3838 msgid "section change from within a BSPEC/ESPEC pair is not supported" msgstr "" -#: config/tc-mmix.c:3830 +#: config/tc-mmix.c:3860 msgid "directive LOC from within a BSPEC/ESPEC pair is not supported" msgstr "" -#: config/tc-mmix.c:3841 +#: config/tc-mmix.c:3871 msgid "invalid LOC expression" msgstr "" -#: config/tc-mmix.c:3866 config/tc-mmix.c:3892 +#: config/tc-mmix.c:3896 config/tc-mmix.c:3922 msgid "LOC expression stepping backwards is not supported" msgstr "" #. We will only get here in rare cases involving #NO_APP, #. where the unterminated string is not recognized by the #. preformatting pass. -#: config/tc-mmix.c:3976 config/tc-mmix.c:4137 +#: config/tc-mmix.c:4006 config/tc-mmix.c:4167 msgid "unterminated string" msgstr "" -#: config/tc-mmix.c:3993 +#: config/tc-mmix.c:4023 msgid "BYTE expression not a pure number" msgstr "" #. Note that mmixal does not allow negative numbers in #. BYTE sequences, so neither should we. -#: config/tc-mmix.c:4002 +#: config/tc-mmix.c:4032 msgid "BYTE expression not in the range 0..255" msgstr "" -#: config/tc-mmix.c:4053 config/tc-mmix.c:4069 +#: config/tc-mmix.c:4083 config/tc-mmix.c:4099 msgid "data item with alignment larger than location" msgstr "" @@ -6282,19 +6589,19 @@ msgid "" msgstr "" #: config/tc-mn10200.c:793 config/tc-mn10300.c:929 config/tc-ppc.c:1867 -#: config/tc-s390.c:1290 config/tc-v850.c:1725 +#: config/tc-s390.c:1290 config/tc-v850.c:1636 #, c-format msgid "Unrecognized opcode: `%s'" msgstr "" #: config/tc-mn10200.c:1036 config/tc-mn10300.c:1452 config/tc-ppc.c:2305 -#: config/tc-s390.c:1216 config/tc-v850.c:2149 +#: config/tc-s390.c:1216 config/tc-v850.c:2060 #, c-format msgid "junk at end of line: `%s'" msgstr "" #: config/tc-mn10200.c:1349 config/tc-mn10300.c:2076 config/tc-ppc.c:1299 -#: config/tc-v850.c:1654 +#: config/tc-v850.c:1565 #, c-format msgid "operand out of range (%s not between %ld and %ld)" msgstr "" @@ -6486,6 +6793,46 @@ msgstr "" msgid "Cannot find relocation type for symbol %s, code %d" msgstr "" +#: config/tc-or32.c:467 config/tc-or32.c:682 +#, c-format +msgid "unknown opcode1: `%s'" +msgstr "" + +#: config/tc-or32.c:473 config/tc-or32.c:688 +#, c-format +msgid "unknown opcode2 `%s'." +msgstr "" + +#: config/tc-or32.c:512 config/tc-or32.c:727 +#, c-format +msgid "instruction not allowed: %s" +msgstr "" + +#: config/tc-or32.c:515 config/tc-or32.c:730 +#, c-format +msgid "too many operands: %s" +msgstr "" + +#: config/tc-or32.c:605 config/tc-or32.c:821 +msgid "call/jmp target out of range (1)" +msgstr "" + +#: config/tc-or32.c:1018 config/tc-or32.c:1135 +msgid "the linker will not handle this relocation correctly (1)" +msgstr "" + +#: config/tc-or32.c:1027 config/tc-or32.c:1144 +msgid "call/jmp target out of range (2)" +msgstr "" + +#: config/tc-or32.c:1437 +msgid "register out of range" +msgstr "" + +#: config/tc-or32.c:1482 +msgid "invalid register in & expression" +msgstr "" + #: config/tc-pj.c:67 config/tc-pj.c:75 msgid "confusing relocation expressions" msgstr "" @@ -6506,8 +6853,8 @@ msgid "" "-big\t\t\tgenerate big endian code\n" msgstr "" -#: config/tc-pj.c:460 config/tc-sh.c:2922 config/tc-sh.c:2929 -#: config/tc-sh.c:2936 config/tc-sh.c:2943 +#: config/tc-pj.c:460 config/tc-sh.c:3454 config/tc-sh.c:3461 +#: config/tc-sh.c:3468 config/tc-sh.c:3475 msgid "pcrel too far" msgstr "" @@ -6584,7 +6931,7 @@ msgstr "" msgid "identifier+constant@got means identifier@got+constant" msgstr "" -#: config/tc-ppc.c:1505 config/tc-sh.c:388 config/tc-sh.c:416 +#: config/tc-ppc.c:1505 #, c-format msgid "%s relocations do not fit in %d bytes\n" msgstr "" @@ -6741,7 +7088,8 @@ msgstr "" msgid "symbol in .toc does not match any .tc" msgstr "" -#: config/tc-ppc.c:5246 config/tc-s390.c:1797 config/tc-v850.c:2420 +#: config/tc-ppc.c:5246 config/tc-s390.c:1797 config/tc-v850.c:2331 +#: config/tc-xstormy16.c:536 msgid "unresolved expression that must be resolved" msgstr "" @@ -6864,117 +7212,154 @@ msgstr "" msgid "unsupported relocation type" msgstr "" -#: config/tc-sh.c:89 +#: config/tc-sh.c:91 msgid "directive .big encountered when option -big required" msgstr "" -#: config/tc-sh.c:100 +#: config/tc-sh.c:102 msgid "directive .little encountered when option -little required" msgstr "" -#: config/tc-sh.c:909 +#: config/tc-sh.c:780 +msgid "Invalid PIC expression." +msgstr "" + +#: config/tc-sh.c:809 read.c:3749 +#, c-format +msgid "unsupported BFD relocation size %u" +msgstr "" + +#: config/tc-sh.c:1292 +msgid "misplaced PIC operand" +msgstr "" + +#: config/tc-sh.c:1333 msgid "illegal register after @-" msgstr "" -#: config/tc-sh.c:925 +#: config/tc-sh.c:1349 msgid "must be @(r0,...)" msgstr "" -#: config/tc-sh.c:949 +#: config/tc-sh.c:1373 msgid "syntax error in @(r0,...)" msgstr "" -#: config/tc-sh.c:954 +#: config/tc-sh.c:1378 msgid "syntax error in @(r0...)" msgstr "" -#: config/tc-sh.c:987 config/tc-sh.c:992 +#: config/tc-sh.c:1408 config/tc-sh.c:1413 msgid "syntax error in @(disp,[Rn, gbr, pc])" msgstr "" -#: config/tc-sh.c:997 +#: config/tc-sh.c:1418 msgid "expecting )" msgstr "" -#: config/tc-sh.c:1005 +#: config/tc-sh.c:1426 msgid "illegal register after @" msgstr "" -#: config/tc-sh.c:1553 +#: config/tc-sh.c:1977 #, c-format msgid "Invalid register: 'r%d'" msgstr "" -#: config/tc-sh.c:1716 +#: config/tc-sh.c:2142 msgid "insn can't be combined with parallel processing insn" msgstr "" -#: config/tc-sh.c:1723 config/tc-sh.c:1734 +#: config/tc-sh.c:2149 config/tc-sh.c:2160 msgid "multiple movx specifications" msgstr "" -#: config/tc-sh.c:1728 config/tc-sh.c:1755 +#: config/tc-sh.c:2154 config/tc-sh.c:2181 msgid "multiple movy specifications" msgstr "" -#: config/tc-sh.c:1736 +#: config/tc-sh.c:2162 msgid "invalid movx address register" msgstr "" -#: config/tc-sh.c:1742 config/tc-sh.c:1747 +#: config/tc-sh.c:2168 config/tc-sh.c:2173 msgid "invalid movx dsp register" msgstr "" -#: config/tc-sh.c:1764 config/tc-sh.c:1769 +#: config/tc-sh.c:2190 config/tc-sh.c:2195 msgid "invalid movy dsp register" msgstr "" -#: config/tc-sh.c:1773 +#: config/tc-sh.c:2199 msgid "invalid movy address register" msgstr "" -#: config/tc-sh.c:1779 +#: config/tc-sh.c:2205 msgid "dsp immediate shift value not constant" msgstr "" -#: config/tc-sh.c:1786 config/tc-sh.c:1799 +#: config/tc-sh.c:2212 config/tc-sh.c:2225 msgid "multiple parallel processing specifications" msgstr "" -#: config/tc-sh.c:1792 +#: config/tc-sh.c:2218 msgid "multiple condition specifications" msgstr "" -#: config/tc-sh.c:1808 +#: config/tc-sh.c:2234 msgid "insn cannot be combined with pmuls" msgstr "" -#: config/tc-sh.c:1825 +#: config/tc-sh.c:2251 msgid "bad padd / psub pmuls output operand" msgstr "" -#: config/tc-sh.c:1835 +#: config/tc-sh.c:2261 msgid "condition not followed by conditionalizable insn" msgstr "" -#: config/tc-sh.c:1845 +#: config/tc-sh.c:2271 msgid "unrecognized characters at end of parallel processing insn" msgstr "" -#: config/tc-sh.c:1961 +#: config/tc-sh.c:2407 #, c-format msgid "excess operands: '%s'" msgstr "" -#: config/tc-sh.c:2131 +#: config/tc-sh.c:2559 msgid ".uses pseudo-op seen when not relaxing" msgstr "" -#: config/tc-sh.c:2137 +#: config/tc-sh.c:2565 msgid "bad .uses format" msgstr "" -#: config/tc-sh.c:2203 +#: config/tc-sh.c:2640 +msgid "Invalid combination: --isa=SHcompact with --isa=SHmedia" +msgstr "" + +#: config/tc-sh.c:2646 +msgid "Invalid combination: --isa=SHmedia with --isa=SHcompact" +msgstr "" + +#: config/tc-sh.c:2648 +msgid "Invalid combination: --abi=64 with --isa=SHcompact" +msgstr "" + +#: config/tc-sh.c:2659 +msgid "Invalid combination: --abi=32 with --abi=64" +msgstr "" + +#: config/tc-sh.c:2665 +msgid "Invalid combination: --abi=64 with --abi=32" +msgstr "" + +#: config/tc-sh.c:2667 +msgid "Invalid combination: --isa=SHcompact with --abi=64" +msgstr "" + +#: config/tc-sh.c:2702 msgid "" "SH options:\n" "-little\t\t\tgenerate little endian code\n" @@ -6984,60 +7369,259 @@ msgid "" "-dsp\t\t\tenable sh-dsp insns, and disable sh3e / sh4 insns.\n" msgstr "" -#: config/tc-sh.c:2292 +#: config/tc-sh.c:2710 +msgid "" +"-isa=[shmedia\t\tset default instruction set for SH64\n" +" | SHmedia\n" +" | shcompact\n" +" | SHcompact]\n" +"-abi=[32|64]\t\tset size of expanded SHmedia operands and object\n" +"\t\t\tfile type\n" +"-shcompact-const-crange\temit code-range descriptors for constants in\n" +"\t\t\tSHcompact code sections\n" +"-no-mix\t\t\tdisallow SHmedia code in the same section as\n" +"\t\t\tconstants and SHcompact code\n" +"-no-expand\t\tdo not expand MOVI, PT, PTA or PTB instructions\n" +"-expand-pt32\t\twith -abi=64, expand PT, PTA and PTB instructions\n" +"\t\t\tto 32 bits only" +msgstr "" + +#: config/tc-sh.c:2807 msgid ".uses does not refer to a local symbol in the same section" msgstr "" -#: config/tc-sh.c:2311 +#: config/tc-sh.c:2826 msgid "can't find fixup pointed to by .uses" msgstr "" -#: config/tc-sh.c:2334 +#: config/tc-sh.c:2849 msgid ".uses target does not refer to a local symbol in the same section" msgstr "" -#: config/tc-sh.c:2432 +#: config/tc-sh.c:2951 msgid "displacement overflows 12-bit field" msgstr "" -#: config/tc-sh.c:2435 +#: config/tc-sh.c:2954 #, c-format msgid "displacement to defined symbol %s overflows 12-bit field" msgstr "" -#: config/tc-sh.c:2439 +#: config/tc-sh.c:2958 #, c-format msgid "displacement to undefined symbol %s overflows 12-bit field" msgstr "" -#: config/tc-sh.c:2517 +#: config/tc-sh.c:3036 msgid "displacement overflows 8-bit field" msgstr "" -#: config/tc-sh.c:2520 +#: config/tc-sh.c:3039 #, c-format msgid "displacement to defined symbol %s overflows 8-bit field" msgstr "" -#: config/tc-sh.c:2524 +#: config/tc-sh.c:3043 #, c-format msgid "displacement to undefined symbol %s overflows 8-bit field " msgstr "" -#: config/tc-sh.c:2537 +#: config/tc-sh.c:3060 #, c-format msgid "overflow in branch to %s; converted into longer instruction sequence" msgstr "" -#: config/tc-sh.c:2612 config/tc-sh.c:2660 config/tc-sparc.c:4093 +#: config/tc-sh.c:3135 config/tc-sh.c:3183 config/tc-sparc.c:4093 #: config/tc-sparc.c:4118 msgid "misaligned data" msgstr "" -#: config/tc-sh.c:3022 +#: config/tc-sh.c:3565 msgid "misaligned offset" msgstr "" +#: config/tc-sh64.c:570 +msgid "This operand must be constant at assembly time" +msgstr "" + +#: config/tc-sh64.c:685 +msgid "Invalid operand expression" +msgstr "" + +#: config/tc-sh64.c:772 config/tc-sh64.c:878 +msgid "PTB operand is a SHmedia symbol" +msgstr "" + +#: config/tc-sh64.c:775 config/tc-sh64.c:875 +msgid "PTA operand is a SHcompact symbol" +msgstr "" + +#: config/tc-sh64.c:791 +msgid "invalid expression in operand" +msgstr "" + +#: config/tc-sh64.c:1488 +#, c-format +msgid "invalid operand, not a 5-bit unsigned value: %d" +msgstr "" + +#: config/tc-sh64.c:1493 +#, c-format +msgid "invalid operand, not a 6-bit signed value: %d" +msgstr "" + +#: config/tc-sh64.c:1498 +#, c-format +msgid "invalid operand, not a 6-bit unsigned value: %d" +msgstr "" + +#: config/tc-sh64.c:1503 config/tc-sh64.c:1515 +#, c-format +msgid "invalid operand, not a 11-bit signed value: %d" +msgstr "" + +#: config/tc-sh64.c:1505 +#, c-format +msgid "invalid operand, not a multiple of 32: %d" +msgstr "" + +#: config/tc-sh64.c:1510 +#, c-format +msgid "invalid operand, not a 10-bit signed value: %d" +msgstr "" + +#: config/tc-sh64.c:1517 +#, c-format +msgid "invalid operand, not an even value: %d" +msgstr "" + +#: config/tc-sh64.c:1522 +#, c-format +msgid "invalid operand, not a 12-bit signed value: %d" +msgstr "" + +#: config/tc-sh64.c:1524 +#, c-format +msgid "invalid operand, not a multiple of 4: %d" +msgstr "" + +#: config/tc-sh64.c:1529 +#, c-format +msgid "invalid operand, not a 13-bit signed value: %d" +msgstr "" + +#: config/tc-sh64.c:1531 +#, c-format +msgid "invalid operand, not a multiple of 8: %d" +msgstr "" + +#: config/tc-sh64.c:1536 +#, c-format +msgid "invalid operand, not a 16-bit signed value: %d" +msgstr "" + +#: config/tc-sh64.c:1541 +#, c-format +msgid "invalid operand, not an 16-bit unsigned value: %d" +msgstr "" + +#: config/tc-sh64.c:1547 +msgid "operand out of range for PT, PTA and PTB" +msgstr "" + +#: config/tc-sh64.c:1549 +#, c-format +msgid "operand not a multiple of 4 for PT, PTA or PTB: %d" +msgstr "" + +#: config/tc-sh64.c:2077 +#, c-format +msgid "MOVI operand is not a 32-bit signed value: 0x%8x%08x" +msgstr "" + +#: config/tc-sh64.c:2440 config/tc-sh64.c:2605 config/tc-sh64.c:2620 +msgid "invalid PIC reference" +msgstr "" + +#: config/tc-sh64.c:2498 +msgid "can't find opcode" +msgstr "" + +#: config/tc-sh64.c:2828 +#, c-format +msgid "invalid operands to %s" +msgstr "" + +#: config/tc-sh64.c:2834 +#, c-format +msgid "excess operands to %s" +msgstr "" + +#: config/tc-sh64.c:2880 +#, c-format +msgid "The `.mode %s' directive is not valid with this architecture" +msgstr "" + +#: config/tc-sh64.c:2888 +#, c-format +msgid "Invalid argument to .mode: %s" +msgstr "" + +#: config/tc-sh64.c:2919 +#, c-format +msgid "The `.abi %s' directive is not valid with this architecture" +msgstr "" + +#: config/tc-sh64.c:2925 +msgid "`.abi 64' but command-line options do not specify 64-bit ABI" +msgstr "" + +#: config/tc-sh64.c:2930 +msgid "`.abi 32' but command-line options do not specify 32-bit ABI" +msgstr "" + +#: config/tc-sh64.c:2933 +#, c-format +msgid "Invalid argument to .abi: %s" +msgstr "" + +#: config/tc-sh64.c:2966 +msgid "-no-mix is invalid without specifying SHcompact or SHmedia" +msgstr "" + +#: config/tc-sh64.c:2971 +msgid "-shcompact-const-crange is invalid without SHcompact" +msgstr "" + +#: config/tc-sh64.c:2974 +msgid "-expand-pt32 only valid with -abi=64" +msgstr "" + +#: config/tc-sh64.c:2977 +msgid "-no-expand only valid with SHcompact or SHmedia" +msgstr "" + +#: config/tc-sh64.c:2980 +msgid "-expand-pt32 invalid together with -no-expand" +msgstr "" + +#: config/tc-sh64.c:3190 +msgid "" +"SHmedia code not allowed in same section as constants and SHcompact code" +msgstr "" + +#: config/tc-sh64.c:3208 +msgid "No segment info for current section" +msgstr "" + +#: config/tc-sh64.c:3250 +msgid "duplicate datalabel operator ignored" +msgstr "" + +#: config/tc-sh64.c:3320 +msgid "Invalid DataLabel expression" +msgstr "" + #: config/tc-sparc.c:281 msgid "Invalid default architecture, broken assembler." msgstr "" @@ -7354,11 +7938,11 @@ msgstr "" msgid "alignment not a power of 2" msgstr "" -#: config/tc-sparc.c:3680 config/tc-v850.c:260 +#: config/tc-sparc.c:3680 config/tc-v850.c:231 msgid "Expected comma after symbol-name" msgstr "" -#: config/tc-sparc.c:3708 config/tc-v850.c:293 +#: config/tc-sparc.c:3708 config/tc-v850.c:264 #, c-format msgid "Length of .comm \"%s\" is already %ld. Not changed to %d." msgstr "" @@ -7845,243 +8429,249 @@ msgstr "" msgid "Invalid dmad syntax '%s'" msgstr "" -#: config/tc-tic54x.c:3707 +#: config/tc-tic54x.c:3658 +#, c-format +msgid "" +"Use the .mmregs directive to use memory-mapped register names such as '%s'" +msgstr "" + +#: config/tc-tic54x.c:3710 msgid "Address mode *+ARx is write-only. Results of reading are undefined." msgstr "" -#: config/tc-tic54x.c:3727 +#: config/tc-tic54x.c:3730 #, c-format msgid "Unrecognized indirect address format \"%s\"" msgstr "" -#: config/tc-tic54x.c:3762 +#: config/tc-tic54x.c:3765 #, c-format msgid "Operand '%s' out of range (%d <= x <= %d)" msgstr "" -#: config/tc-tic54x.c:3782 +#: config/tc-tic54x.c:3785 msgid "Error in relocation handling" msgstr "" -#: config/tc-tic54x.c:3801 config/tc-tic54x.c:3863 config/tc-tic54x.c:3889 +#: config/tc-tic54x.c:3804 config/tc-tic54x.c:3866 config/tc-tic54x.c:3892 #, c-format msgid "Unrecognized condition code \"%s\"" msgstr "" -#: config/tc-tic54x.c:3818 +#: config/tc-tic54x.c:3821 #, c-format msgid "Condition \"%s\" does not match preceding group" msgstr "" -#: config/tc-tic54x.c:3826 +#: config/tc-tic54x.c:3829 #, c-format msgid "" "Condition \"%s\" uses a different accumulator from a preceding condition" msgstr "" -#: config/tc-tic54x.c:3833 +#: config/tc-tic54x.c:3836 msgid "Only one comparison conditional allowed" msgstr "" -#: config/tc-tic54x.c:3838 +#: config/tc-tic54x.c:3841 msgid "Only one overflow conditional allowed" msgstr "" -#: config/tc-tic54x.c:3846 +#: config/tc-tic54x.c:3849 #, c-format msgid "Duplicate %s conditional" msgstr "" -#: config/tc-tic54x.c:3876 +#: config/tc-tic54x.c:3879 msgid "Invalid auxiliary register (use AR0-AR7)" msgstr "" -#: config/tc-tic54x.c:3909 +#: config/tc-tic54x.c:3912 msgid "lk addressing modes are invalid for memory-mapped register addressing" msgstr "" -#: config/tc-tic54x.c:3917 +#: config/tc-tic54x.c:3920 msgid "" "Address mode *+ARx is not allowed in memory-mapped register addressing. " "Resulting behavior is undefined." msgstr "" -#: config/tc-tic54x.c:3943 +#: config/tc-tic54x.c:3946 msgid "" "Destination accumulator for each part of this parallel instruction must be " "different" msgstr "" -#: config/tc-tic54x.c:3992 +#: config/tc-tic54x.c:3995 #, c-format msgid "Memory mapped register \"%s\" out of range" msgstr "" -#: config/tc-tic54x.c:4031 +#: config/tc-tic54x.c:4034 msgid "Invalid operand (use 1, 2, or 3)" msgstr "" -#: config/tc-tic54x.c:4056 +#: config/tc-tic54x.c:4059 msgid "A status register or status bit name is required" msgstr "" -#: config/tc-tic54x.c:4066 +#: config/tc-tic54x.c:4069 #, c-format msgid "Unrecognized status bit \"%s\"" msgstr "" -#: config/tc-tic54x.c:4089 +#: config/tc-tic54x.c:4092 #, c-format msgid "Invalid status register \"%s\"" msgstr "" -#: config/tc-tic54x.c:4101 +#: config/tc-tic54x.c:4104 #, c-format msgid "Operand \"%s\" out of range (use 1 or 2)" msgstr "" -#: config/tc-tic54x.c:4302 +#: config/tc-tic54x.c:4305 #, c-format msgid "Unrecognized instruction \"%s\"" msgstr "" -#: config/tc-tic54x.c:4331 +#: config/tc-tic54x.c:4334 #, c-format msgid "Unrecognized operand list '%s' for instruction '%s'" msgstr "" -#: config/tc-tic54x.c:4360 +#: config/tc-tic54x.c:4363 #, c-format msgid "Unrecognized parallel instruction \"%s\"" msgstr "" -#: config/tc-tic54x.c:4410 +#: config/tc-tic54x.c:4413 #, c-format msgid "Invalid operand (s) for parallel instruction \"%s\"" msgstr "" -#: config/tc-tic54x.c:4413 +#: config/tc-tic54x.c:4416 #, c-format msgid "Unrecognized parallel instruction combination \"%s || %s\"" msgstr "" -#: config/tc-tic54x.c:4645 +#: config/tc-tic54x.c:4648 #, c-format msgid "%s symbol recursion stopped at second appearance of '%s'" msgstr "" -#: config/tc-tic54x.c:4684 +#: config/tc-tic54x.c:4687 msgid "Unrecognized substitution symbol function" msgstr "" -#: config/tc-tic54x.c:4689 +#: config/tc-tic54x.c:4692 msgid "Missing '(' after substitution symbol function" msgstr "" -#: config/tc-tic54x.c:4703 +#: config/tc-tic54x.c:4706 msgid "Expecting second argument" msgstr "" -#: config/tc-tic54x.c:4716 config/tc-tic54x.c:4765 +#: config/tc-tic54x.c:4719 config/tc-tic54x.c:4768 msgid "Extra junk in function call, expecting ')'" msgstr "" -#: config/tc-tic54x.c:4741 +#: config/tc-tic54x.c:4744 msgid "Function expects two arguments" msgstr "" -#: config/tc-tic54x.c:4754 +#: config/tc-tic54x.c:4757 msgid "Expecting character constant argument" msgstr "" -#: config/tc-tic54x.c:4760 +#: config/tc-tic54x.c:4763 msgid "Both arguments must be substitution symbols" msgstr "" -#: config/tc-tic54x.c:4813 +#: config/tc-tic54x.c:4816 #, c-format msgid "Invalid subscript (use 1 to %d)" msgstr "" -#: config/tc-tic54x.c:4823 +#: config/tc-tic54x.c:4826 #, c-format msgid "Invalid length (use 0 to %d" msgstr "" -#: config/tc-tic54x.c:4833 +#: config/tc-tic54x.c:4836 msgid "Missing ')' in subscripted substitution symbol expression" msgstr "" -#: config/tc-tic54x.c:4853 +#: config/tc-tic54x.c:4856 msgid "Missing forced substitution terminator ':'" msgstr "" -#: config/tc-tic54x.c:5026 +#: config/tc-tic54x.c:5029 #, c-format msgid "" "Instruction does not fit in available delay slots (%d-word insn, %d slots " "left)" msgstr "" -#: config/tc-tic54x.c:5067 +#: config/tc-tic54x.c:5070 #, c-format msgid "Unrecognized parallel instruction '%s'" msgstr "" -#: config/tc-tic54x.c:5079 +#: config/tc-tic54x.c:5082 #, c-format msgid "Instruction '%s' requires an LP cpu version" msgstr "" -#: config/tc-tic54x.c:5086 +#: config/tc-tic54x.c:5089 #, c-format msgid "Instruction '%s' requires far mode addressing" msgstr "" -#: config/tc-tic54x.c:5098 +#: config/tc-tic54x.c:5101 #, c-format msgid "" "Instruction does not fit in available delay slots (%d-word insn, %d slots " "left). Resulting behavior is undefined." msgstr "" -#: config/tc-tic54x.c:5108 +#: config/tc-tic54x.c:5111 msgid "" "Instructions which cause PC discontinuity are not allowed in a delay slot. " "Resulting behavior is undefined." msgstr "" -#: config/tc-tic54x.c:5119 +#: config/tc-tic54x.c:5122 #, c-format msgid "'%s' is not repeatable. Resulting behavior is undefined." msgstr "" -#: config/tc-tic54x.c:5123 +#: config/tc-tic54x.c:5126 msgid "" "Instructions using long offset modifiers or absolute addresses are not " "repeatable. Resulting behavior is undefined." msgstr "" -#: config/tc-tic54x.c:5314 +#: config/tc-tic54x.c:5317 #, c-format msgid "Unsupported relocation size %d" msgstr "" -#: config/tc-tic54x.c:5468 +#: config/tc-tic54x.c:5471 msgid "non-absolute value used with .space/.bes" msgstr "" -#: config/tc-tic54x.c:5472 +#: config/tc-tic54x.c:5475 #, c-format msgid "negative value ignored in %s" msgstr "" -#: config/tc-tic54x.c:5559 +#: config/tc-tic54x.c:5562 #, c-format msgid "attempt to .space/.bes backwards? (%ld)" msgstr "" -#: config/tc-tic54x.c:5592 +#: config/tc-tic54x.c:5595 #, c-format msgid "Invalid label '%s'" msgstr "" @@ -8159,162 +8749,162 @@ msgstr "" msgid "md_convert_frag() not implemented yet" msgstr "" -#: config/tc-v850.c:271 +#: config/tc-v850.c:242 #, c-format msgid ".COMMon length (%d.) < 0! Ignored." msgstr "" -#: config/tc-v850.c:320 +#: config/tc-v850.c:291 msgid "Common alignment negative; 0 assumed" msgstr "" -#: config/tc-v850.c:1014 +#: config/tc-v850.c:916 #, c-format msgid "unknown operand shift: %x\n" msgstr "" -#: config/tc-v850.c:1015 +#: config/tc-v850.c:917 msgid "internal failure in parse_register_list" msgstr "" -#: config/tc-v850.c:1032 +#: config/tc-v850.c:934 msgid "constant expression or register list expected" msgstr "" -#: config/tc-v850.c:1037 config/tc-v850.c:1050 config/tc-v850.c:1069 +#: config/tc-v850.c:939 config/tc-v850.c:952 config/tc-v850.c:971 msgid "high bits set in register list expression" msgstr "" -#: config/tc-v850.c:1109 config/tc-v850.c:1173 +#: config/tc-v850.c:1011 config/tc-v850.c:1075 msgid "illegal register included in list" msgstr "" -#: config/tc-v850.c:1116 +#: config/tc-v850.c:1018 msgid "system registers cannot be included in list" msgstr "" -#: config/tc-v850.c:1121 +#: config/tc-v850.c:1023 msgid "PSW cannot be included in list" msgstr "" -#: config/tc-v850.c:1128 +#: config/tc-v850.c:1030 msgid "High value system registers cannot be included in list" msgstr "" -#: config/tc-v850.c:1152 +#: config/tc-v850.c:1054 msgid "second register should follow dash in register list" msgstr "" -#: config/tc-v850.c:1199 +#: config/tc-v850.c:1101 msgid " V850 options:\n" msgstr "" -#: config/tc-v850.c:1200 +#: config/tc-v850.c:1102 msgid " -mwarn-signed-overflow Warn if signed immediate values overflow\n" msgstr "" -#: config/tc-v850.c:1201 +#: config/tc-v850.c:1103 msgid "" " -mwarn-unsigned-overflow Warn if unsigned immediate values overflow\n" msgstr "" -#: config/tc-v850.c:1202 +#: config/tc-v850.c:1104 msgid " -mv850 The code is targeted at the v850\n" msgstr "" -#: config/tc-v850.c:1203 +#: config/tc-v850.c:1105 msgid " -mv850e The code is targeted at the v850e\n" msgstr "" -#: config/tc-v850.c:1204 +#: config/tc-v850.c:1106 msgid " -mv850ea The code is targeted at the v850ea\n" msgstr "" -#: config/tc-v850.c:1205 +#: config/tc-v850.c:1107 msgid "" " -mv850any The code is generic, despite any processor " "specific instructions\n" msgstr "" -#: config/tc-v850.c:1217 config/tc-v850.c:1255 +#: config/tc-v850.c:1119 config/tc-v850.c:1157 #, c-format msgid "unknown command line option: -%c%s\n" msgstr "" -#: config/tc-v850.c:1405 +#: config/tc-v850.c:1306 #, c-format msgid "Unable to determine default target processor from string: %s" msgstr "" -#: config/tc-v850.c:1453 +#: config/tc-v850.c:1344 msgid "ctoff() relocation used on an instruction which does not support it" msgstr "" -#: config/tc-v850.c:1475 +#: config/tc-v850.c:1370 msgid "sdaoff() relocation used on an instruction which does not support it" msgstr "" -#: config/tc-v850.c:1497 +#: config/tc-v850.c:1396 msgid "zdaoff() relocation used on an instruction which does not support it" msgstr "" -#: config/tc-v850.c:1530 +#: config/tc-v850.c:1433 msgid "tdaoff() relocation used on an instruction which does not support it" msgstr "" -#: config/tc-v850.c:1746 +#: config/tc-v850.c:1657 msgid "Target processor does not support this instruction." msgstr "" -#: config/tc-v850.c:1836 config/tc-v850.c:1866 config/tc-v850.c:2054 +#: config/tc-v850.c:1747 config/tc-v850.c:1777 config/tc-v850.c:1965 msgid "immediate operand is too large" msgstr "" -#: config/tc-v850.c:1848 +#: config/tc-v850.c:1759 msgid "AAARG -> unhandled constant reloc" msgstr "" -#: config/tc-v850.c:1892 +#: config/tc-v850.c:1803 msgid "invalid register name" msgstr "" -#: config/tc-v850.c:1897 +#: config/tc-v850.c:1808 msgid "register r0 cannot be used here" msgstr "" -#: config/tc-v850.c:1909 +#: config/tc-v850.c:1820 msgid "invalid system register name" msgstr "" -#: config/tc-v850.c:1922 +#: config/tc-v850.c:1833 msgid "expected EP register" msgstr "" -#: config/tc-v850.c:1939 +#: config/tc-v850.c:1850 msgid "invalid condition code name" msgstr "" -#: config/tc-v850.c:1960 config/tc-v850.c:1964 +#: config/tc-v850.c:1871 config/tc-v850.c:1875 msgid "constant too big to fit into instruction" msgstr "" -#: config/tc-v850.c:2017 +#: config/tc-v850.c:1928 msgid "syntax error: value is missing before the register name" msgstr "" -#: config/tc-v850.c:2019 +#: config/tc-v850.c:1930 msgid "syntax error: register not expected" msgstr "" -#: config/tc-v850.c:2033 +#: config/tc-v850.c:1944 msgid "syntax error: system register not expected" msgstr "" -#: config/tc-v850.c:2038 +#: config/tc-v850.c:1949 msgid "syntax error: condition code not expected" msgstr "" -#: config/tc-v850.c:2079 +#: config/tc-v850.c:1990 msgid "invalid operand" msgstr "" @@ -8525,6 +9115,15 @@ msgstr "" msgid "call to tc_Nout_fix_to_chars \n" msgstr "" +#: config/tc-xstormy16.c:80 +msgid " XSTORMY16 specific command line options:\n" +msgstr "" + +#: config/tc-xstormy16.c:561 +#, c-format +msgid "internal error: can't install fix for reloc type %d (`%s')" +msgstr "" + #: config/tc-z8k.c:285 #, c-format msgid "register rr%d, out of range." @@ -9681,11 +10280,6 @@ msgstr "" msgid "bignum truncated to %d bytes" msgstr "" -#: read.c:3749 -#, c-format -msgid "unsupported BFD relocation size %u" -msgstr "" - #: read.c:3839 msgid "using a bit field width of zero" msgstr "" diff --git a/contrib/binutils/include/ChangeLog b/contrib/binutils/include/ChangeLog index 0ec6eb8..c0fd95b 100644 --- a/contrib/binutils/include/ChangeLog +++ b/contrib/binutils/include/ChangeLog @@ -1,7 +1,38 @@ -2002-01-15 Richard Earnshaw <rearnsha@arm.com> +2002-02-08 Alexandre Oliva <aoliva@redhat.com> - * coff/arm.h (F_VFP_FLOAT): Define. - * elf/arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define. + Contribute sh64-elf. + 2000-11-25 Hans-Peter Nilsson <hpn@cygnus.com> + * dis-asm.h (print_insn_sh64): New prototype. + (print_insn_sh64l): New prototype. + (print_insn_sh64x_media): New prototype. + +2002-02-05 Frank Ch. Eigler <fche@redhat.com> + + * dis-asm.h (disassemble_info): New field `insn_sets'. + (INIT_DISASSEMBLE_INFO): Clear it. + +2002-02-05 Jason Merrill <jason@redhat.com> + + * demangle.h (cplus_demangle_v3): Add "options" parm. + (cplus_demangle_v3_type): Remove prototype. + (DMGL_VERBOSE): New macro. + (DMGL_TYPES): New macro. + +2002-02-02 H.J. Lu (hjl@gnu.org) + + * demangle.h (cplus_demangle_v3_type): New prototype. + +2002-01-31 Ivan Guzvinec <ivang@opencores.org> + + * dis-asm.h : Add support for or32 targets + +2002-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * libiberty.h (C_alloca): Add ATTRIBUTE_MALLOC. + +2002-01-27 David O'Brien <obrien@FreeBSD.org> + + * cgen.h (BFD_VERSION): Use BFD_VERSION_DATE instead. 2001-12-14 Nick Clifton <nickc@cambridge.redhat.com> @@ -10,7 +41,6 @@ 2001-12-13 Jakub Jelinek <jakub@redhat.com> - * elf/common.h (PT_GNU_EH_FRAME): Define. * bfdlink.h (struct bfd_link_info): Add eh_frame_hdr field. 2001-12-07 Geoffrey Keating <geoffk@redhat.com> @@ -36,7 +66,7 @@ 2001-10-24 Neil Booth <neil@daikokuya.demon.co.uk> - * include/safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New. + * safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New. 2001-10-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> @@ -79,11 +109,6 @@ * libiberty.h (ASTRDUP): New macro. libiberty_optr, libiberty_nptr, libiberty_len): Declare. -2001-09-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * libiberty.h (ASTRDUP): New macro. - libiberty_optr, libiberty_nptr, libiberty_len): Declare. - 2001-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * ansidecl.h: Update comments reflecting previous change. @@ -143,17 +168,11 @@ * hashtab.h (htab_hash_string): Declare. -2001-06-13 Andrew Cagney <ac131313@redhat.com> +2001-08-10 Andrew Cagney <ac131313@redhat.com> * libiberty.h (lbasename): Change function declaration to return a const char pointer. -2001-08-10 Richard Sandiford <rsandifo@redhat.com> - - * opcode/mips.h (INSN_GP32): Remove. - (OPCODE_IS_MEMBER): Remove gp32 parameter. - (M_MOVE): New macro identifier. - 2001-08-02 Mark Kettenis <kettenis@gnu.org> * xregex.h (_REGEX_RE_COMP): Define. @@ -165,19 +184,10 @@ * bfdlink.h (struct bfd_link_info): add new boolean field pei386_auto_import. -2001-08-01 Aldy Hernandez <aldyh@redhat.com> - - * opcode/mips.h (INSN_ISA_MASK): Nuke bits 12-15. - 2001-07-18 Andreas Jaeger <aj@suse.de> * xregex2.h: Place under LGPL version 2.1. -2001-07-12 Jeff Johnston <jjohnstn@redhat.com> - - * opcode/cgen.h (CGEN_INSN): Add regex support. - (build_insn_regex): Declare. - 2001-07-10 Jeff Johnston <jjohnstn@redhat.com> * xregex.h: New file to support libiberty regex. @@ -195,11 +205,6 @@ * ansidecl.h (NULL_PTR): Delete. -2001-05-11 Jakub Jelinek <jakub@redhat.com> - - * elf/ia64.h (ELF_STRING_ia64_unwind_once): Define. - (ELF_STRING_ia64_unwind_info_once): Define. - 2001-05-07 Zack Weinberg <zackw@stanford.edu> * demangle.h: Use PARAMS for all prototypes. @@ -312,11 +317,11 @@ * getopt.h obstack.h: Standarize copyright statement. -2000-12-05 Richard Henderson <rth@redhat.com> +2000-12-04 Richard Henderson <rth@redhat.com> * demangle.h: Change "new_abi" to "v3" everywhere. -2000-11-29 Zack Weinberg <zack@wolery.stanford.edu> +2000-11-22 Zack Weinberg <zack@wolery.stanford.edu> * libiberty.h: Move #includes to top. Prototype xmalloc_failed. diff --git a/contrib/binutils/include/coff/ChangeLog b/contrib/binutils/include/coff/ChangeLog index b8882bc..79e8e18 100644 --- a/contrib/binutils/include/coff/ChangeLog +++ b/contrib/binutils/include/coff/ChangeLog @@ -1,3 +1,11 @@ +2002-02-01 Tom Rix <trix@redhat.com> + + * xcoff.h: Conditionally support <aiaff> for pre AIX 4.3. + +2002-01-31 Ivan Guzvinec <ivang@opencores.org> + + * or32.h: New file. + 2001-12-24 Tom Rix <trix@redhat.com> * xcoff.h (xcoff_big_format_p): Make <bigaf> the default archive @@ -5,7 +13,6 @@ (XCOFFARMAG_ELEMENT_SIZE, XCOFFARMAGBIG_ELEMENT_SIZE): Define for archive header ascii elements. - 2001-12-17 Tom Rix <trix@redhat.com> * xcoff.h : Add .except and .typchk section string and styp flags. @@ -15,6 +22,10 @@ * xcoff.h : Clean up formatting. +2002-01-15 Richard Earnshaw <rearnsha@arm.com> + + * arm.h (F_VFP_FLOAT): Define. + 2001-11-11 Timothy Wall <twall@alum.mit.edu> * ti.h: Move arch-specific stuff from here... diff --git a/contrib/binutils/include/demangle.h b/contrib/binutils/include/demangle.h index a898218..ad0569a 100644 --- a/contrib/binutils/include/demangle.h +++ b/contrib/binutils/include/demangle.h @@ -29,6 +29,8 @@ #define DMGL_PARAMS (1 << 0) /* Include function args */ #define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */ #define DMGL_JAVA (1 << 2) /* Demangle as Java rather than C++. */ +#define DMGL_VERBOSE (1 << 3) /* Include implementation details. */ +#define DMGL_TYPES (1 << 4) /* Also try to demangle type encodings. */ #define DMGL_AUTO (1 << 8) #define DMGL_GNU (1 << 9) @@ -125,7 +127,7 @@ cplus_demangle_name_to_style PARAMS ((const char *name)); /* V3 ABI demangling entry points, defined in cp-demangle.c. */ extern char* -cplus_demangle_v3 PARAMS ((const char* mangled)); +cplus_demangle_v3 PARAMS ((const char* mangled, int options)); extern char* java_demangle_v3 PARAMS ((const char* mangled)); diff --git a/contrib/binutils/include/dis-asm.h b/contrib/binutils/include/dis-asm.h index 4e16ed3..decc863 100644 --- a/contrib/binutils/include/dis-asm.h +++ b/contrib/binutils/include/dis-asm.h @@ -1,6 +1,6 @@ /* Interface between the opcode library and its callers. - Copyright 2001 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. 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 @@ -73,6 +73,11 @@ typedef struct disassemble_info { unsigned long mach; /* Endianness (for bi-endian cpus). Mono-endian cpus can ignore this. */ enum bfd_endian endian; + /* An arch/mach-specific bitmask of selected instruction subsets, mainly + for processors with run-time-switchable instruction sets. The default, + zero, means that there is no constraint. CGEN-based opcodes ports + may use ISA_foo masks. */ + unsigned long insn_sets; /* Some targets need information about the current section to accurately display insns. If this is NULL, the target disassembler function @@ -212,6 +217,8 @@ extern int print_insn_mn10200 PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_mn10300 PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_ns32k PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_openrisc PARAMS ((bfd_vma, disassemble_info*)); +extern int print_insn_big_or32 PARAMS ((bfd_vma, disassemble_info*)); +extern int print_insn_little_or32 PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_pdp11 PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_pj PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_big_powerpc PARAMS ((bfd_vma, disassemble_info*)); @@ -227,6 +234,9 @@ extern int print_insn_v850 PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_vax PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_w65 PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_xstormy16 PARAMS ((bfd_vma, disassemble_info*)); +extern int print_insn_sh64 PARAMS ((bfd_vma, disassemble_info *)); +extern int print_insn_sh64l PARAMS ((bfd_vma, disassemble_info *)); +extern int print_insn_sh64x_media PARAMS ((bfd_vma, disassemble_info *)); extern disassembler_ftype arc_get_disassembler PARAMS ((void *)); extern disassembler_ftype cris_get_disassembler PARAMS ((bfd *)); @@ -273,6 +283,7 @@ extern int generic_symbol_at_address (INFO).flavour = bfd_target_unknown_flavour, \ (INFO).arch = bfd_arch_unknown, \ (INFO).mach = 0, \ + (INFO).insn_sets = 0, \ (INFO).endian = BFD_ENDIAN_UNKNOWN, \ (INFO).octets_per_byte = 1, \ INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC) diff --git a/contrib/binutils/include/elf/ChangeLog b/contrib/binutils/include/elf/ChangeLog index a0b4f71..e70f7fd 100644 --- a/contrib/binutils/include/elf/ChangeLog +++ b/contrib/binutils/include/elf/ChangeLog @@ -1,7 +1,91 @@ +2002-02-13 Matt Fredette <fredette@netbsd.org> + + * m68k.h (EF_M68000): Define. + +2002-02-12 Alan Modra <amodra@bigpond.net.au> + + * ppc.h (DT_PPC64_OPD, DT_PPC64_OPDSZ): Define. + +2002-02-09 Richard Henderson <rth@redhat.com> + + * alpha.h (R_ALPHA_BRSGP): New. + +2002-02-08 Alexandre Oliva <aoliva@redhat.com> + + Contribute sh64-elf. + 2002-01-23 Alexandre Oliva <aoliva@redhat.com> + * sh.h (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. + (R_SH_FIRST_INVALID_RELOC_4): Adjust. + 2001-05-16 Alexandre Oliva <aoliva@redhat.com> + * sh.h: Renumbered and renamed some SH5 relocations to match + official numbers and names; moved unmaching ones to the range + 0xf2-0xff. + 2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com> + * sh.h (sh64_get_contents_type): Declare. + (sh64_address_is_shmedia): Likewise. + 2000-12-30 Hans-Peter Nilsson <hpn@cygnus.com> + * sh.h (sh64_elf_crange): New type. + (struct sh64_section_data): New. + (sh64_elf_section_data): New macro. + (EF_SH5): Rename back from EF_SH64. + 2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com> + * sh.h (SHF_SH5_ISA32_MIXED, SHT_SH5_CR_SORTED, + SH64_CRANGES_SECTION_NAME, SH64_CRANGE_SIZE, + SH64_CRANGE_CR_ADDR_OFFSET, SH64_CRANGE_CR_SIZE_OFFSET, + SH64_CRANGE_CR_TYPE_OFFSET): New macros. + 2000-12-12 Hans-Peter Nilsson <hpn@cygnus.com> + * sh.h (EF_SH64): Don't define EF_SH64_ABI64. + 2000-11-27 Hans-Peter Nilsson <hpn@cygnus.com> + * sh.h (EF_SH64_32BIT_ABI, EF_SH64_64BIT_ABI): Delete. + (EF_SH64_ABI64): New. + 2000-11-23 Hans-Peter Nilsson <hpn@cygnus.com> + * sh.h (EF_SH64): Rename from EF_SH5. + (EF_SH64_32BIT_ABI): New. + (EF_SH64_64BIT_ABI): New. + (R_SH_PT_16, R_SH_SHMEDIA_CODE + 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): New + relocs. + 2000-09-01 Ben Elliston <bje@redhat.com> + * sh.h (EF_SH5): Define. + +2002-02-01 Hans-Peter Nilsson <hp@bitrange.com> + + * mmix.h: Tweak comments. + (MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME): New. + [BFD_ARCH_SIZE] (_bfd_mmix_prepare_linker_allocated_gregs, + _bfd_mmix_finalize_linker_allocated_gregs, + _bfd_mmix_check_all_relocs): Provide prototypes. + +2002-01-31 Ivan Guzvinec <ivang@opencores.org> + + * or32.h: New file. + * common.h: Add support for or32 targets. + +2002-01-28 Jason Merrill <jason@redhat.com> + + * dwarf2.h: Sync with gcc version. + 2002-01-16 Alan Modra <amodra@bigpond.net.au> * ppc.h (DT_PPC64_GLINK): Define. +2002-01-15 Richard Earnshaw <rearnsha@arm.com> + + * arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define. + 2002-01-09 Jason Thorpe <thorpej@wasabisystems.com> * common.h: Update copyright years. @@ -24,6 +108,10 @@ unsigned int. * common.h (SHN_BAD): Define. +2001-12-13 Jakub Jelinek <jakub@redhat.com> + + * elf/common.h (PT_GNU_EH_FRAME): Define. + 2001-12-11 Alan Modra <amodra@bigpond.net.au> * common.h (SHN_XINDEX): Comment typo fix. @@ -90,7 +178,7 @@ (E_H8_MACH_H8300, E_H8_MACH_H8300H, E_H8_MACH_H8300S): New machine types. -Tue Aug 26 23:32:34 2001 J"orn Rennecke <amylaar@redhat.com> +2001-08-26 J"orn Rennecke <amylaar@redhat.com> * h8.h: New file. @@ -118,6 +206,11 @@ Tue Aug 26 23:32:34 2001 J"orn Rennecke <amylaar@redhat.com> * common.h: Remove definition of EM_MIPS_RS4_BE. The constant was never in active use and is used otherwise by the ABI. +2001-05-11 Jakub Jelinek <jakub@redhat.com> + + * ia64.h (ELF_STRING_ia64_unwind_once): Define. + (ELF_STRING_ia64_unwind_info_once): Define. + 2001-05-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> * external.h: Fix typo. @@ -390,8 +483,8 @@ Tue Aug 26 23:32:34 2001 J"orn Rennecke <amylaar@redhat.com> (ELFOSABI_MODESTO): Defined. (ELFOSABI_OPENBSD): Likewise. -Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com> - David Mosberger <davidm@hpl.hp.com> +2000-04-21 Richard Henderson <rth@cygnus.com> + David Mosberger <davidm@hpl.hp.com> * ia64.h: New file. @@ -425,7 +518,7 @@ Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com> (PF_ARM_PI): Define. (PF_ARM_ABS): Define. -Wed Apr 5 22:08:59 2000 J"orn Rennecke <amylaar@cygnus.co.uk> +2000-04-05 J"orn Rennecke <amylaar@cygnus.co.uk> * sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs. @@ -454,7 +547,7 @@ Wed Apr 5 22:08:59 2000 J"orn Rennecke <amylaar@cygnus.co.uk> * common.h (ELFOSABI_LINUX): Define. -Thu Feb 17 00:18:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk> +2000-02-17 J"orn Rennecke <amylaar@cygnus.co.uk> * sh.h: (EF_SH_MACH_MASK, EF_SH_UNKNOWN, EF_SH1, EF_SH2): New macros. (EF_SH3, EF_SH_HAS_DSP, EF_SH_DSP, EF_SH3_DSP): Likewise. diff --git a/contrib/binutils/include/elf/alpha.h b/contrib/binutils/include/elf/alpha.h index ab429d4..e937b81 100644 --- a/contrib/binutils/include/elf/alpha.h +++ b/contrib/binutils/include/elf/alpha.h @@ -94,6 +94,11 @@ START_RELOC_NUMBERS (elf_alpha_reloc_type) RELOC_NUMBER (R_ALPHA_JMP_SLOT, 26) /* Create PLT entry */ RELOC_NUMBER (R_ALPHA_RELATIVE, 27) /* Adjust by program base */ + /* Like BRADDR, but assert that the source and target object file + share the same GP value, and adjust the target address for + STO_ALPHA_STD_GPLOAD. */ + RELOC_NUMBER (R_ALPHA_BRSGP, 28) + END_RELOC_NUMBERS (R_ALPHA_max) #endif /* _ELF_ALPHA_H */ diff --git a/contrib/binutils/include/elf/common.h b/contrib/binutils/include/elf/common.h index 289d3f2..d6e45fc 100644 --- a/contrib/binutils/include/elf/common.h +++ b/contrib/binutils/include/elf/common.h @@ -199,6 +199,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Old version of PowerPC, this should be removed shortly. */ #define EM_PPC_OLD 17 +/* (Depreciated) Temporary number for the OpenRISC processor. */ +#define EM_OR32 0x8472 + /* Cygnus M32R ELF backend. Written in the absence of an ABI. */ #define EM_CYGNUS_M32R 0x9041 diff --git a/contrib/binutils/include/elf/dwarf2.h b/contrib/binutils/include/elf/dwarf2.h index a99dca7..53eb655 100644 --- a/contrib/binutils/include/elf/dwarf2.h +++ b/contrib/binutils/include/elf/dwarf2.h @@ -1,6 +1,6 @@ /* Declarations and definitions of codes relating to the DWARF2 symbolic debugging information format. - Copyright 1992, 1993, 1995, 1996, 1999, 2000, 2001 + Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Gary Funck (gary@intrepid.com) The Ada Joint Program @@ -10,21 +10,22 @@ Derived from the DWARF 1 implementation written by Ron Guilmette (rfg@netcom.com), November 1990. -This file is part of GNU CC. +This file is part of GCC. -GNU CC 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, or (at your option) any -later version. +GCC 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, or (at your option) any later +version. -GNU CC is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +GCC 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 GNU CC; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +along with GCC; see the file COPYING. If not, write to the Free +Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. */ /* This file is derived from the DWARF specification (a public document) Revision 2.0.0 (July 27, 1993) developed by the UNIX International @@ -32,7 +33,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * by UNIX International. Copies of this specification are available from UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. - This file also now contains definitions from the DWARF 2.1 specification. */ + This file also now contains definitions from the DWARF 3 specification. */ /* This file is shared between GCC and GDB, and should not contain prototypes. */ @@ -177,7 +178,7 @@ enum dwarf_tag DW_TAG_variant_part = 0x33, DW_TAG_variable = 0x34, DW_TAG_volatile_type = 0x35, - /* DWARF 2.1. */ + /* DWARF 3. */ DW_TAG_dwarf_procedure = 0x36, DW_TAG_restrict_type = 0x37, DW_TAG_interface_type = 0x38, @@ -190,8 +191,8 @@ enum dwarf_tag DW_TAG_MIPS_loop = 0x4081, /* GNU extensions. */ DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */ - DW_TAG_function_template = 0x4102, /* for C++ */ - DW_TAG_class_template = 0x4103, /* for C++ */ + DW_TAG_function_template = 0x4102, /* For C++. */ + DW_TAG_class_template = 0x4103, /* For C++. */ DW_TAG_GNU_BINCL = 0x4104, DW_TAG_GNU_EINCL = 0x4105 }; @@ -295,7 +296,7 @@ enum dwarf_attribute DW_AT_variable_parameter = 0x4b, DW_AT_virtuality = 0x4c, DW_AT_vtable_elem_location = 0x4d, - /* DWARF 2.1 values. */ + /* DWARF 3 values. */ DW_AT_allocated = 0x4e, DW_AT_associated = 0x4f, DW_AT_data_location = 0x50, @@ -326,7 +327,9 @@ enum dwarf_attribute DW_AT_mac_info = 0x2103, DW_AT_src_coords = 0x2104, DW_AT_body_begin = 0x2105, - DW_AT_body_end = 0x2106 + DW_AT_body_end = 0x2106, + /* VMS Extensions. */ + DW_AT_VMS_rtnbeg_pd_address = 0x2201 }; #define DW_AT_lo_user 0x2000 /* Implementation-defined range start. */ @@ -480,10 +483,10 @@ enum dwarf_location_atom DW_OP_deref_size = 0x94, DW_OP_xderef_size = 0x95, DW_OP_nop = 0x96, - /* DWARF 2.1 extensions. */ + /* DWARF 3 extensions. */ DW_OP_push_object_address = 0x97, - DW_OP_call2 = 0x98, /* 1 2-byte offset of DIE. */ - DW_OP_call4 = 0x99, /* 1 4-byte offset of DIE. */ + DW_OP_call2 = 0x98, + DW_OP_call4 = 0x99, DW_OP_calli = 0x9a }; @@ -502,7 +505,7 @@ enum dwarf_type DW_ATE_signed_char = 0x6, DW_ATE_unsigned = 0x7, DW_ATE_unsigned_char = 0x8, - /* DWARF 2.1. */ + /* DWARF 3. */ DW_ATE_imaginary_float = 0x9 }; @@ -589,7 +592,7 @@ enum dwarf_line_number_ops DW_LNS_set_basic_block = 7, DW_LNS_const_add_pc = 8, DW_LNS_fixed_advance_pc = 9, - /* DWARF 3 */ + /* DWARF 3. */ DW_LNS_set_prologue_end = 10, DW_LNS_set_epilogue_begin = 11, DW_LNS_set_isa = 12 @@ -624,9 +627,10 @@ enum dwarf_call_frame_info DW_CFA_def_cfa = 0x0c, DW_CFA_def_cfa_register = 0x0d, DW_CFA_def_cfa_offset = 0x0e, + + /* DWARF 3. */ DW_CFA_def_cfa_expression = 0x0f, DW_CFA_expression = 0x10, - /* Dwarf 2.1. */ DW_CFA_offset_extended_sf = 0x11, DW_CFA_def_cfa_sf = 0x12, DW_CFA_def_cfa_offset_sf = 0x13, @@ -666,7 +670,7 @@ enum dwarf_source_language DW_LANG_Pascal83 = 0x0009, DW_LANG_Modula2 = 0x000a, DW_LANG_Java = 0x000b, - /* DWARF 2.1. */ + /* DWARF 3. */ DW_LANG_C99 = 0x000c, DW_LANG_Ada95 = 0x000d, DW_LANG_Fortran95 = 0x000e, diff --git a/contrib/binutils/include/elf/m68k.h b/contrib/binutils/include/elf/m68k.h index 03bf465..7769c59 100644 --- a/contrib/binutils/include/elf/m68k.h +++ b/contrib/binutils/include/elf/m68k.h @@ -53,5 +53,6 @@ START_RELOC_NUMBERS (elf_m68k_reloc_type) END_RELOC_NUMBERS (R_68K_max) #define EF_CPU32 0x00810000 +#define EF_M68000 0x01000000 #endif diff --git a/contrib/binutils/include/elf/mmix.h b/contrib/binutils/include/elf/mmix.h index fa367e5..e3be26b 100644 --- a/contrib/binutils/include/elf/mmix.h +++ b/contrib/binutils/include/elf/mmix.h @@ -1,5 +1,5 @@ /* MMIX support for BFD. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -82,7 +82,10 @@ START_RELOC_NUMBERS (elf_mmix_reloc_type) /* A general register. */ RELOC_NUMBER (R_MMIX_REG, 33) - /* A global register and an offset, equivalent of the expression. */ + /* A global register and an offset, the global register (allocated at + link time) contents plus the offset made equivalent to the relocation + expression at link time. The relocation must point at the Y field of + an instruction. */ RELOC_NUMBER (R_MMIX_BASE_PLUS_OFFSET, 34) /* A LOCAL assertion. */ @@ -107,6 +110,11 @@ END_RELOC_NUMBERS (R_MMIX_max) unspecified) ABI. */ #define MMIX_REG_CONTENTS_SECTION_NAME ".MMIX.reg_contents" +/* At link time, a section by this name is created, expected to be + included in MMIX_REG_CONTENTS_SECTION_NAME in the output. */ +#define MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME \ + ".MMIX.reg_contents.linker_allocated" + /* This is a faked section holding symbols with SHN_REGISTER. Don't confuse it with MMIX_REG_CONTENTS_SECTION_NAME; this one has no contents, just values. It is an error for a value in this section to @@ -148,4 +156,13 @@ END_RELOC_NUMBERS (R_MMIX_max) #define MMO_SEC_IS_COMMON 0x8000 #define MMO_SEC_DEBUGGING 0x10000 +#ifdef BFD_ARCH_SIZE +extern boolean _bfd_mmix_prepare_linker_allocated_gregs + PARAMS ((bfd *, struct bfd_link_info *)); +extern boolean _bfd_mmix_finalize_linker_allocated_gregs + PARAMS ((bfd *, struct bfd_link_info *)); +extern boolean _bfd_mmix_check_all_relocs + PARAMS ((bfd *, struct bfd_link_info *)); +#endif + #endif /* ELF_MMIX_H */ diff --git a/contrib/binutils/include/elf/or32.h b/contrib/binutils/include/elf/or32.h new file mode 100644 index 0000000..14884f3 --- /dev/null +++ b/contrib/binutils/include/elf/or32.h @@ -0,0 +1,62 @@ +/* OR1K ELF support for BFD. Derived from ppc.h. + Copyright (C) 2002 Free Software Foundation, Inc. + Contributed by Ivan Guzvinec <ivang@opencores.org> + + 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. */ + +#ifndef _ELF_OR1K_H +#define _ELF_OR1K_H + +#include "elf/reloc-macros.h" + +/* Relocations. */ +START_RELOC_NUMBERS (elf_or32_reloc_type) + RELOC_NUMBER (R_OR32_NONE, 0) + RELOC_NUMBER (R_OR32_32, 1) + RELOC_NUMBER (R_OR32_16, 2) + RELOC_NUMBER (R_OR32_8, 3) + RELOC_NUMBER (R_OR32_CONST, 4) + RELOC_NUMBER (R_OR32_CONSTH, 5) + RELOC_NUMBER (R_OR32_JUMPTARG, 6) + RELOC_NUMBER (R_OR32_GNU_VTENTRY, 7) + RELOC_NUMBER (R_OR32_GNU_VTINHERIT, 8) +END_RELOC_NUMBERS (R_OR32_max) + +/* Four bit OR32 machine type field. */ +#define EF_OR32_MACH 0x0000000f + +/* Various CPU types. */ +#define E_OR32_MACH_BASE 0x00000000 +#define E_OR32_MACH_UNUSED1 0x00000001 +#define E_OR32_MACH_UNUSED2 0x00000002 +#define E_OR32_MACH_UNUSED4 0x00000003 + +/* Processor specific section headers, sh_type field */ +#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \ + entries in this section \ + based on the address \ + specified in the associated \ + symbol table entry. */ + +/* Processor specific section flags, sh_flags field */ +#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude \ + this section from executable \ + and shared objects that it \ + builds when those objects \ + are not to be furhter \ + relocated. */ +#endif /* _ELF_OR1K_H */ diff --git a/contrib/binutils/include/elf/ppc.h b/contrib/binutils/include/elf/ppc.h index 8e4af62f..dfb43f4 100644 --- a/contrib/binutils/include/elf/ppc.h +++ b/contrib/binutils/include/elf/ppc.h @@ -174,6 +174,10 @@ END_RELOC_NUMBERS (R_PPC_max) /* Specify the start of the .glink section. */ #define DT_PPC64_GLINK DT_LOPROC +/* Specify the start and size of the .opd section. */ +#define DT_PPC64_OPD (DT_LOPROC + 1) +#define DT_PPC64_OPDSZ (DT_LOPROC + 2) + /* Processor specific flags for the ELF header e_flags field. */ #define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag. */ diff --git a/contrib/binutils/include/elf/sh.h b/contrib/binutils/include/elf/sh.h index 700ca3e..1480f49 100644 --- a/contrib/binutils/include/elf/sh.h +++ b/contrib/binutils/include/elf/sh.h @@ -1,5 +1,5 @@ /* SH ELF support for BFD. - Copyright 1998, 2000 Free Software Foundation, Inc. + Copyright 1998, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -34,6 +34,9 @@ #define EF_SH3E 8 #define EF_SH4 9 +/* This one can only mix in objects from other EF_SH5 objects. */ +#define EF_SH5 10 + #define EF_SH_MERGE_MACH(mach1, mach2) \ (((((mach1) == EF_SH3 || (mach1) == EF_SH_UNKNOWN) && (mach2) == EF_SH_DSP) \ || ((mach1) == EF_SH_DSP \ @@ -47,6 +50,77 @@ ? EF_SH4 \ : ((mach1) > (mach2) ? (mach1) : (mach2))) +/* Flags for the st_other symbol field. + Keep away from the STV_ visibility flags (bit 0..1). */ + +/* A reference to this symbol should by default add 1. */ +#define STO_SH5_ISA32 (1 << 2) + +/* Section contains only SHmedia code (no SHcompact code). */ +#define SHF_SH5_ISA32 0x40000000 + +/* Section contains both SHmedia and SHcompact code, and possibly also + constants. */ +#define SHF_SH5_ISA32_MIXED 0x20000000 + +/* If applied to a .cranges section, marks that the section is sorted by + increasing cr_addr values. */ +#define SHT_SH5_CR_SORTED 0x80000001 + +/* Symbol should be handled as DataLabel (attached to global SHN_UNDEF + symbols). */ +#define STT_DATALABEL STT_LOPROC + +#define SH64_CRANGES_SECTION_NAME ".cranges" +enum sh64_elf_cr_type { + CRT_NONE = 0, + CRT_DATA = 1, + CRT_SH5_ISA16 = 2, + CRT_SH5_ISA32 = 3 +}; + +/* The official definition is this: + + typedef struct { + Elf32_Addr cr_addr; + Elf32_Word cr_size; + Elf32_Half cr_type; + } Elf32_CRange; + + but we have no use for that exact type. Instead we use this struct for + the internal representation. */ +typedef struct { + bfd_vma cr_addr; + bfd_size_type cr_size; + enum sh64_elf_cr_type cr_type; +} sh64_elf_crange; + +#define SH64_CRANGE_SIZE (4 + 4 + 2) +#define SH64_CRANGE_CR_ADDR_OFFSET 0 +#define SH64_CRANGE_CR_SIZE_OFFSET 4 +#define SH64_CRANGE_CR_TYPE_OFFSET (4 + 4) + +/* Get the contents type of an arbitrary address, or return CRT_NONE. */ +extern enum sh64_elf_cr_type sh64_get_contents_type + PARAMS ((asection *, bfd_vma, sh64_elf_crange *)); + +/* Simpler interface. + FIXME: This seems redundant now that we export the interface above. */ +extern boolean sh64_address_is_shmedia PARAMS ((asection *, bfd_vma)); + +/* We put this in elf_section_data (section)->tdata. */ +struct sh64_section_data +{ + flagword contents_flags; + + /* Only used in the cranges section, but we don't have an official + backend-specific bfd field. */ + bfd_size_type cranges_growth; +}; + +#define sh64_elf_section_data(sec) \ + ((struct sh64_section_data *) ((elf_section_data (sec))->tdata)) + #include "elf/reloc-macros.h" /* Relocations. */ @@ -79,7 +153,16 @@ START_RELOC_NUMBERS (elf_sh_reloc_type) RELOC_NUMBER (R_SH_LOOP_START, 36) RELOC_NUMBER (R_SH_LOOP_END, 37) FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_2, 38) - FAKE_RELOC (R_SH_LAST_INVALID_RELOC_2, 159) + FAKE_RELOC (R_SH_LAST_INVALID_RELOC_2, 44) + RELOC_NUMBER (R_SH_DIR5U, 45) + RELOC_NUMBER (R_SH_DIR6U, 46) + RELOC_NUMBER (R_SH_DIR6S, 47) + RELOC_NUMBER (R_SH_DIR10S, 48) + RELOC_NUMBER (R_SH_DIR10SW, 49) + RELOC_NUMBER (R_SH_DIR10SL, 50) + RELOC_NUMBER (R_SH_DIR10SQ, 51) + FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_3, 52) + FAKE_RELOC (R_SH_LAST_INVALID_RELOC_3, 159) RELOC_NUMBER (R_SH_GOT32, 160) RELOC_NUMBER (R_SH_PLT32, 161) RELOC_NUMBER (R_SH_COPY, 162) @@ -88,6 +171,51 @@ START_RELOC_NUMBERS (elf_sh_reloc_type) RELOC_NUMBER (R_SH_RELATIVE, 165) RELOC_NUMBER (R_SH_GOTOFF, 166) RELOC_NUMBER (R_SH_GOTPC, 167) + RELOC_NUMBER (R_SH_GOTPLT32, 168) + RELOC_NUMBER (R_SH_GOT_LOW16, 169) + RELOC_NUMBER (R_SH_GOT_MEDLOW16, 170) + RELOC_NUMBER (R_SH_GOT_MEDHI16, 171) + RELOC_NUMBER (R_SH_GOT_HI16, 172) + RELOC_NUMBER (R_SH_GOTPLT_LOW16, 173) + RELOC_NUMBER (R_SH_GOTPLT_MEDLOW16, 174) + RELOC_NUMBER (R_SH_GOTPLT_MEDHI16, 175) + RELOC_NUMBER (R_SH_GOTPLT_HI16, 176) + RELOC_NUMBER (R_SH_PLT_LOW16, 177) + RELOC_NUMBER (R_SH_PLT_MEDLOW16, 178) + RELOC_NUMBER (R_SH_PLT_MEDHI16, 179) + RELOC_NUMBER (R_SH_PLT_HI16, 180) + RELOC_NUMBER (R_SH_GOTOFF_LOW16, 181) + RELOC_NUMBER (R_SH_GOTOFF_MEDLOW16, 182) + RELOC_NUMBER (R_SH_GOTOFF_MEDHI16, 183) + RELOC_NUMBER (R_SH_GOTOFF_HI16, 184) + RELOC_NUMBER (R_SH_GOTPC_LOW16, 185) + RELOC_NUMBER (R_SH_GOTPC_MEDLOW16, 186) + RELOC_NUMBER (R_SH_GOTPC_MEDHI16, 187) + RELOC_NUMBER (R_SH_GOTPC_HI16, 188) + RELOC_NUMBER (R_SH_GOT10BY4, 189) + RELOC_NUMBER (R_SH_GOTPLT10BY4, 190) + RELOC_NUMBER (R_SH_GOT10BY8, 191) + RELOC_NUMBER (R_SH_GOTPLT10BY8, 192) + RELOC_NUMBER (R_SH_COPY64, 193) + RELOC_NUMBER (R_SH_GLOB_DAT64, 194) + RELOC_NUMBER (R_SH_JMP_SLOT64, 195) + RELOC_NUMBER (R_SH_RELATIVE64, 196) + FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_4, 197) + FAKE_RELOC (R_SH_LAST_INVALID_RELOC_4, 241) + RELOC_NUMBER (R_SH_SHMEDIA_CODE, 242) + RELOC_NUMBER (R_SH_PT_16, 243) + RELOC_NUMBER (R_SH_IMMS16, 244) + RELOC_NUMBER (R_SH_IMMU16, 245) + RELOC_NUMBER (R_SH_IMM_LOW16, 246) + RELOC_NUMBER (R_SH_IMM_LOW16_PCREL, 247) + RELOC_NUMBER (R_SH_IMM_MEDLOW16, 248) + RELOC_NUMBER (R_SH_IMM_MEDLOW16_PCREL, 249) + RELOC_NUMBER (R_SH_IMM_MEDHI16, 250) + RELOC_NUMBER (R_SH_IMM_MEDHI16_PCREL, 251) + RELOC_NUMBER (R_SH_IMM_HI16, 252) + RELOC_NUMBER (R_SH_IMM_HI16_PCREL, 253) + RELOC_NUMBER (R_SH_64, 254) + RELOC_NUMBER (R_SH_64_PCREL, 255) END_RELOC_NUMBERS (R_SH_max) #endif diff --git a/contrib/binutils/include/libiberty.h b/contrib/binutils/include/libiberty.h index 455643d..3e0ca09 100644 --- a/contrib/binutils/include/libiberty.h +++ b/contrib/binutils/include/libiberty.h @@ -1,6 +1,6 @@ /* Function declarations for libiberty. - Copyright 2001 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. Note - certain prototypes declared in this header file are for functions whoes implementation copyright does not belong to the @@ -283,7 +283,7 @@ extern int vasprintf PARAMS ((char **, const char *, va_list)) USE_C_ALLOCA yourself. The canonical autoconf macro C_ALLOCA is also set/unset as it is often used to indicate whether code needs to call alloca(0). */ -extern PTR C_alloca PARAMS((size_t)); +extern PTR C_alloca PARAMS ((size_t)) ATTRIBUTE_MALLOC; #undef alloca #if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA # define alloca(x) __builtin_alloca(x) diff --git a/contrib/binutils/include/opcode/ChangeLog b/contrib/binutils/include/opcode/ChangeLog index dcde56b..9703eee 100644 --- a/contrib/binutils/include/opcode/ChangeLog +++ b/contrib/binutils/include/opcode/ChangeLog @@ -1,3 +1,22 @@ +Mon Feb 18 17:26:10 CET 2002 Jan Hubicka <jh@suse.cz> + + * i386.h (push,pop): Fix Reg64 to WordReg to allow 16bit operands. + +Fri Feb 15 15:16:40 CET 2002 Jan Hubicka <jh@suse.cz> + + * i386.h (push,pop): Allow 16bit operands in 64bit mode. + (xchg): Fix. + (in, out): Disable 64bit operands. + (call, jmp): Avoid REX prefixes. + (jcxz): Prohibit in 64bit mode + (jrcxz, loop): Add 64bit variants. + (movq): Fix patterns. + (movmskps, pextrw, pinstrw): Add 64bit variants. + +2002-01-31 Ivan Guzvinec <ivang@opencores.org> + + * or32.h: New file. + 2002-01-22 Graydon Hoare <graydon@redhat.com> * cgen.h (CGEN_MAYBE_MULTI_IFLD): New structure. @@ -118,11 +137,26 @@ Mon Dec 31 16:45:41 2001 Jeffrey A Law (law@cygnus.com) * ppc.h: Revert 2001-08-08. +2001-08-10 Richard Sandiford <rsandifo@redhat.com> + + * mips.h (INSN_GP32): Remove. + (OPCODE_IS_MEMBER): Remove gp32 parameter. + (M_MOVE): New macro identifier. + 2001-08-08 Alan Modra <amodra@one.net.au> 1999-10-25 Torbjorn Granlund <tege@swox.com> * ppc.h (struct powerpc_operand): New field `reloc'. +2001-08-01 Aldy Hernandez <aldyh@redhat.com> + + * mips.h (INSN_ISA_MASK): Nuke bits 12-15. + +2001-07-12 Jeff Johnston <jjohnstn@redhat.com> + + * cgen.h (CGEN_INSN): Add regex support. + (build_insn_regex): Declare. + 2001-07-11 Frank Ch. Eigler <fche@redhat.com> * cgen.h (CGEN_MACH): Add insn_chunk_bitsize field. diff --git a/contrib/binutils/include/opcode/cgen.h b/contrib/binutils/include/opcode/cgen.h index e603b55..09c5cbf 100644 --- a/contrib/binutils/include/opcode/cgen.h +++ b/contrib/binutils/include/opcode/cgen.h @@ -26,7 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc., Perhaps the definition of bfd_vma can be moved outside of bfd.h. Or perhaps one could duplicate its definition in another file. Until such time, this file conditionally compiles definitions that require - bfd_vma using BFD_VERSION. */ + bfd_vma using BFD_VERSION_DATE. */ /* Enums must be defined before they can be used. Allow them to be used in struct definitions, even though the enum must @@ -276,7 +276,7 @@ typedef const char * (cgen_parse_fn) PC is the pc value of the insn. The result is an error message or NULL if success. */ -#ifdef BFD_VERSION +#ifdef BFD_VERSION_DATE typedef const char * (cgen_insert_fn) PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_, CGEN_FIELDS *fields_, CGEN_INSN_BYTES_PTR insnp_, @@ -297,7 +297,7 @@ typedef const char * (cgen_insert_fn) (); PC is the pc value of the insn. The result is the length of the insn in bits or zero if not recognized. */ -#ifdef BFD_VERSION +#ifdef BFD_VERSION_DATE typedef int (cgen_extract_fn) PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_, CGEN_EXTRACT_INFO *ex_info_, CGEN_INSN_INT base_insn_, @@ -316,7 +316,7 @@ typedef int (cgen_extract_fn) (); PC is the pc value of the insn. LEN is the length of the insn, in bits. */ -#ifdef BFD_VERSION +#ifdef BFD_VERSION_DATE typedef void (cgen_print_fn) PARAMS ((CGEN_CPU_DESC, PTR info_, const CGEN_INSN *insn_, CGEN_FIELDS *fields_, bfd_vma pc_, int len_)); @@ -381,7 +381,7 @@ enum cgen_parse_operand_result CGEN_PARSE_OPERAND_RESULT_ERROR }; -#ifdef BFD_VERSION /* Don't require bfd.h unnecessarily. */ +#ifdef BFD_VERSION_DATE /* Don't require bfd.h unnecessarily. */ typedef const char * (cgen_parse_operand_fn) PARAMS ((CGEN_CPU_DESC, enum cgen_parse_operand_type, const char **, int, int, @@ -565,7 +565,7 @@ const CGEN_KEYWORD_ENTRY *cgen_keyword_search_next extern const char *cgen_parse_keyword PARAMS ((CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *)); -#ifdef BFD_VERSION /* Don't require bfd.h unnecessarily. */ +#ifdef BFD_VERSION_DATE /* Don't require bfd.h unnecessarily. */ extern const char *cgen_parse_signed_integer PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); extern const char *cgen_parse_unsigned_integer @@ -1253,7 +1253,7 @@ typedef struct cgen_cpu_desc const char * (*parse_operand) PARAMS ((CGEN_CPU_DESC, int opindex_, const char **, CGEN_FIELDS *fields_)); -#ifdef BFD_VERSION +#ifdef BFD_VERSION_DATE const char * (*insert_operand) PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, CGEN_INSN_BYTES_PTR, bfd_vma pc_)); @@ -1286,7 +1286,7 @@ typedef struct cgen_cpu_desc PARAMS ((CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_)); void (*set_int_operand) PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, int value_)); -#ifdef BFD_VERSION +#ifdef BFD_VERSION_DATE bfd_vma (*get_vma_operand) PARAMS ((CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_)); void (*set_vma_operand) diff --git a/contrib/binutils/include/opcode/i386.h b/contrib/binutils/include/opcode/i386.h index 571990e..43d7208 100644 --- a/contrib/binutils/include/opcode/i386.h +++ b/contrib/binutils/include/opcode/i386.h @@ -62,6 +62,7 @@ static const template i386_optab[] = { #define wl_Suf (No_bSuf|No_sSuf|No_xSuf|No_qSuf) #define wlq_Suf (No_bSuf|No_sSuf|No_xSuf) #define lq_Suf (No_bSuf|No_wSuf|No_sSuf|No_xSuf) +#define wq_Suf (No_bSuf|No_lSuf|No_sSuf|No_xSuf) #define sl_Suf (No_bSuf|No_wSuf|No_xSuf|No_qSuf) #define sldx_Suf (No_bSuf|No_wSuf|No_qSuf) #define bwl_Suf (No_sSuf|No_xSuf|No_qSuf) @@ -148,12 +149,12 @@ static const template i386_optab[] = { {"push", 1, 0x06, X, 0|CpuNo64, wl_Suf|Seg2ShortForm|DefaultSize, { SReg2, 0, 0 } }, {"push", 1, 0x0fa0, X, Cpu386|CpuNo64, wl_Suf|Seg3ShortForm|DefaultSize, { SReg3, 0, 0 } }, /* In 64bit mode, the operand size is implicitly 64bit. */ -{"push", 1, 0x50, X, Cpu64, q_Suf|ShortForm|DefaultSize|NoRex64, { Reg64, 0, 0 } }, -{"push", 1, 0xff, 6, Cpu64, q_Suf|Modrm|DefaultSize|NoRex64, { Reg64|WordMem, 0, 0 } }, -{"push", 1, 0x6a, X, Cpu186|Cpu64, q_Suf|DefaultSize|NoRex64, { Imm8S, 0, 0} }, -{"push", 1, 0x68, X, Cpu186|Cpu64, q_Suf|DefaultSize|NoRex64, { Imm32S, 0, 0} }, -{"push", 1, 0x06, X, Cpu64, q_Suf|Seg2ShortForm|DefaultSize|NoRex64, { SReg2, 0, 0 } }, -{"push", 1, 0x0fa0, X, Cpu386|Cpu64, q_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } }, +{"push", 1, 0x50, X, Cpu64, wq_Suf|ShortForm|DefaultSize|NoRex64, { WordReg, 0, 0 } }, +{"push", 1, 0xff, 6, Cpu64, wq_Suf|Modrm|DefaultSize|NoRex64, { WordReg|WordMem, 0, 0 } }, +{"push", 1, 0x6a, X, Cpu186|Cpu64, wq_Suf|DefaultSize|NoRex64, { Imm8S, 0, 0} }, +{"push", 1, 0x68, X, Cpu186|Cpu64, wq_Suf|DefaultSize|NoRex64, { Imm32S|Imm16, 0, 0} }, +{"push", 1, 0x06, X, Cpu64, wq_Suf|Seg2ShortForm|DefaultSize|NoRex64, { SReg2, 0, 0 } }, +{"push", 1, 0x0fa0, X, Cpu386|Cpu64, wq_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } }, {"pusha", 0, 0x60, X, Cpu186|CpuNo64, wl_Suf|DefaultSize, { 0, 0, 0 } }, @@ -164,10 +165,10 @@ static const template i386_optab[] = { {"pop", 1, 0x07, X, CpuNo64, wl_Suf|Seg2ShortForm|DefaultSize, { SReg2, 0, 0 } }, {"pop", 1, 0x0fa1, X, Cpu386|CpuNo64, wl_Suf|Seg3ShortForm|DefaultSize, { SReg3, 0, 0 } }, /* In 64bit mode, the operand size is implicitly 64bit. */ -{"pop", 1, 0x58, X, Cpu64, q_Suf|ShortForm|DefaultSize|NoRex64, { Reg64, 0, 0 } }, -{"pop", 1, 0x8f, 0, Cpu64, q_Suf|Modrm|DefaultSize|NoRex64, { Reg64|WordMem, 0, 0 } }, -{"pop", 1, 0x07, X, Cpu64, q_Suf|Seg2ShortForm|DefaultSize|NoRex64, { SReg2, 0, 0 } }, -{"pop", 1, 0x0fa1, X, Cpu64, q_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } }, +{"pop", 1, 0x58, X, Cpu64, wq_Suf|ShortForm|DefaultSize|NoRex64, { WordReg, 0, 0 } }, +{"pop", 1, 0x8f, 0, Cpu64, wq_Suf|Modrm|DefaultSize|NoRex64, { WordReg|WordMem, 0, 0 } }, +{"pop", 1, 0x07, X, Cpu64, wq_Suf|Seg2ShortForm|DefaultSize|NoRex64, { SReg2, 0, 0 } }, +{"pop", 1, 0x0fa1, X, Cpu64, wq_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } }, {"popa", 0, 0x61, X, Cpu186|CpuNo64, wl_Suf|DefaultSize, { 0, 0, 0 } }, @@ -176,20 +177,20 @@ static const template i386_optab[] = { In the 64bit code, xchg eax, eax is reused for new nop instruction. */ -{"xchg", 2, 0x90, X, CpuNo64, wl_Suf|ShortForm, { WordReg, Acc, 0 } }, -{"xchg", 2, 0x90, X, CpuNo64, wl_Suf|ShortForm, { Acc, WordReg, 0 } }, +{"xchg", 2, 0x90, X, 0, wlq_Suf|ShortForm, { WordReg, Acc, 0 } }, +{"xchg", 2, 0x90, X, 0, wlq_Suf|ShortForm, { Acc, WordReg, 0 } }, {"xchg", 2, 0x86, X, 0, bwlq_Suf|W|Modrm, { Reg, Reg|AnyMem, 0 } }, {"xchg", 2, 0x86, X, 0, bwlq_Suf|W|Modrm, { Reg|AnyMem, Reg, 0 } }, /* In/out from ports. */ -{"in", 2, 0xe4, X, 0, bwlq_Suf|W, { Imm8, Acc, 0 } }, -{"in", 2, 0xec, X, 0, bwlq_Suf|W, { InOutPortReg, Acc, 0 } }, -{"in", 1, 0xe4, X, 0, bwlq_Suf|W, { Imm8, 0, 0 } }, -{"in", 1, 0xec, X, 0, bwlq_Suf|W, { InOutPortReg, 0, 0 } }, -{"out", 2, 0xe6, X, 0, bwlq_Suf|W, { Acc, Imm8, 0 } }, -{"out", 2, 0xee, X, 0, bwlq_Suf|W, { Acc, InOutPortReg, 0 } }, -{"out", 1, 0xe6, X, 0, bwlq_Suf|W, { Imm8, 0, 0 } }, -{"out", 1, 0xee, X, 0, bwlq_Suf|W, { InOutPortReg, 0, 0 } }, +{"in", 2, 0xe4, X, 0, bwl_Suf|W, { Imm8, Acc, 0 } }, +{"in", 2, 0xec, X, 0, bwl_Suf|W, { InOutPortReg, Acc, 0 } }, +{"in", 1, 0xe4, X, 0, bwl_Suf|W, { Imm8, 0, 0 } }, +{"in", 1, 0xec, X, 0, bwl_Suf|W, { InOutPortReg, 0, 0 } }, +{"out", 2, 0xe6, X, 0, bwl_Suf|W, { Acc, Imm8, 0 } }, +{"out", 2, 0xee, X, 0, bwl_Suf|W, { Acc, InOutPortReg, 0 } }, +{"out", 1, 0xe6, X, 0, bwl_Suf|W, { Imm8, 0, 0 } }, +{"out", 1, 0xee, X, 0, bwl_Suf|W, { InOutPortReg, 0, 0 } }, /* Load effective address. */ {"lea", 2, 0x8d, X, 0, wlq_Suf|Modrm, { WordMem, WordReg, 0 } }, @@ -210,9 +211,9 @@ static const template i386_optab[] = { {"lahf", 0, 0x9f, X, CpuNo64,NoSuf, { 0, 0, 0} }, {"sahf", 0, 0x9e, X, CpuNo64,NoSuf, { 0, 0, 0} }, {"pushf", 0, 0x9c, X, CpuNo64,wlq_Suf|DefaultSize, { 0, 0, 0} }, -{"pushf", 0, 0x9c, X, Cpu64, q_Suf|DefaultSize|NoRex64,{ 0, 0, 0} }, +{"pushf", 0, 0x9c, X, Cpu64, wq_Suf|DefaultSize|NoRex64,{ 0, 0, 0} }, {"popf", 0, 0x9d, X, CpuNo64,wlq_Suf|DefaultSize, { 0, 0, 0} }, -{"popf", 0, 0x9d, X, Cpu64, q_Suf|DefaultSize|NoRex64,{ 0, 0, 0} }, +{"popf", 0, 0x9d, X, Cpu64, wq_Suf|DefaultSize|NoRex64,{ 0, 0, 0} }, {"stc", 0, 0xf9, X, 0, NoSuf, { 0, 0, 0} }, {"std", 0, 0xfd, X, 0, NoSuf, { 0, 0, 0} }, {"sti", 0, 0xfb, X, 0, NoSuf, { 0, 0, 0} }, @@ -370,7 +371,8 @@ static const template i386_optab[] = { /* Control transfer instructions. */ {"call", 1, 0xe8, X, 0, wlq_Suf|JumpDword|DefaultSize, { Disp16|Disp32, 0, 0} }, -{"call", 1, 0xff, 2, 0, wlq_Suf|Modrm|DefaultSize, { WordReg|WordMem|JumpAbsolute, 0, 0} }, +{"call", 1, 0xff, 2, CpuNo64, wl_Suf|Modrm|DefaultSize, { WordReg|WordMem|JumpAbsolute, 0, 0} }, +{"call", 1, 0xff, 2, Cpu64, wq_Suf|Modrm|DefaultSize|NoRex64,{ WordReg|WordMem|JumpAbsolute, 0, 0} }, /* Intel Syntax */ {"call", 2, 0x9a, X, CpuNo64,wlq_Suf|JumpInterSegment|DefaultSize, { Imm16, Imm16|Imm32, 0} }, /* Intel Syntax */ @@ -381,7 +383,8 @@ static const template i386_optab[] = { #define JUMP_PC_RELATIVE 0xeb {"jmp", 1, 0xeb, X, 0, NoSuf|Jump, { Disp, 0, 0} }, -{"jmp", 1, 0xff, 4, 0, wlq_Suf|Modrm, { WordReg|WordMem|JumpAbsolute, 0, 0} }, +{"jmp", 1, 0xff, 4, CpuNo64, wl_Suf|Modrm, { WordReg|WordMem|JumpAbsolute, 0, 0} }, +{"jmp", 1, 0xff, 4, Cpu64, wq_Suf|Modrm|NoRex64, { WordReg|WordMem|JumpAbsolute, 0, 0} }, /* Intel Syntax */ {"jmp", 2, 0xea, X, CpuNo64,wl_Suf|JumpInterSegment, { Imm16, Imm16|Imm32, 0} }, /* Intel Syntax */ @@ -432,18 +435,25 @@ static const template i386_optab[] = { {"jg", 1, 0x7f, X, 0, NoSuf|Jump, { Disp, 0, 0} }, /* jcxz vs. jecxz is chosen on the basis of the address size prefix. */ -{"jcxz", 1, 0xe3, X, 0, NoSuf|JumpByte|Size16, { Disp, 0, 0} }, -{"jecxz", 1, 0xe3, X, 0, NoSuf|JumpByte|Size32, { Disp, 0, 0} }, +{"jcxz", 1, 0xe3, X, CpuNo64,NoSuf|JumpByte|Size16, { Disp, 0, 0} }, +{"jecxz", 1, 0xe3, X, CpuNo64,NoSuf|JumpByte|Size32, { Disp, 0, 0} }, +{"jecxz", 1, 0x67e3, X, Cpu64,NoSuf|JumpByte|Size32, { Disp, 0, 0} }, +{"jrcxz", 1, 0xe3, X, Cpu64, NoSuf|JumpByte|Size64|NoRex64, { Disp, 0, 0} }, /* The loop instructions also use the address size prefix to select %cx rather than %ecx for the loop count, so the `w' form of these instructions emit an address size prefix rather than a data size prefix. */ -{"loop", 1, 0xe2, X, 0, wlq_Suf|JumpByte, { Disp, 0, 0} }, -{"loopz", 1, 0xe1, X, 0, wlq_Suf|JumpByte, { Disp, 0, 0} }, -{"loope", 1, 0xe1, X, 0, wlq_Suf|JumpByte, { Disp, 0, 0} }, -{"loopnz", 1, 0xe0, X, 0, wlq_Suf|JumpByte, { Disp, 0, 0} }, -{"loopne", 1, 0xe0, X, 0, wlq_Suf|JumpByte, { Disp, 0, 0} }, +{"loop", 1, 0xe2, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} }, +{"loop", 1, 0xe2, X, Cpu64, lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} }, +{"loopz", 1, 0xe1, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} }, +{"loopz", 1, 0xe1, X, Cpu64, lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} }, +{"loope", 1, 0xe1, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} }, +{"loope", 1, 0xe1, X, Cpu64, lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} }, +{"loopnz", 1, 0xe0, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} }, +{"loopnz", 1, 0xe0, X, Cpu64, lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} }, +{"loopne", 1, 0xe0, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} }, +{"loopne", 1, 0xe0, X, Cpu64, lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} }, /* Set byte on flag instructions. */ {"seto", 1, 0x0f90, 0, Cpu386, b_Suf|Modrm, { Reg8|ByteMem, 0, 0} }, @@ -482,10 +492,10 @@ static const template i386_optab[] = { {"cmps", 2, 0xa6, X, 0, bwlq_Suf|W|IsString, { AnyMem|EsSeg, AnyMem, 0} }, {"scmp", 0, 0xa6, X, 0, bwlq_Suf|W|IsString, { 0, 0, 0} }, {"scmp", 2, 0xa6, X, 0, bwlq_Suf|W|IsString, { AnyMem|EsSeg, AnyMem, 0} }, -{"ins", 0, 0x6c, X, Cpu186, bwlq_Suf|W|IsString, { 0, 0, 0} }, -{"ins", 2, 0x6c, X, Cpu186, bwlq_Suf|W|IsString, { InOutPortReg, AnyMem|EsSeg, 0} }, -{"outs", 0, 0x6e, X, Cpu186, bwlq_Suf|W|IsString, { 0, 0, 0} }, -{"outs", 2, 0x6e, X, Cpu186, bwlq_Suf|W|IsString, { AnyMem, InOutPortReg, 0} }, +{"ins", 0, 0x6c, X, Cpu186, bwl_Suf|W|IsString, { 0, 0, 0} }, +{"ins", 2, 0x6c, X, Cpu186, bwl_Suf|W|IsString, { InOutPortReg, AnyMem|EsSeg, 0} }, +{"outs", 0, 0x6e, X, Cpu186, bwl_Suf|W|IsString, { 0, 0, 0} }, +{"outs", 2, 0x6e, X, Cpu186, bwl_Suf|W|IsString, { AnyMem, InOutPortReg, 0} }, {"lods", 0, 0xac, X, 0, bwlq_Suf|W|IsString, { 0, 0, 0} }, {"lods", 1, 0xac, X, 0, bwlq_Suf|W|IsString, { AnyMem, 0, 0} }, {"lods", 2, 0xac, X, 0, bwlq_Suf|W|IsString, { AnyMem, Acc, 0} }, @@ -971,12 +981,16 @@ static const template i386_optab[] = { {"movd", 2, 0x660f6e,X,CpuSSE2,FP|Modrm, { Reg32|LLongMem, RegXMM, 0 } }, {"movd", 2, 0x660f7e,X,CpuSSE2,FP|Modrm, { RegXMM, Reg32|LLongMem, 0 } }, /* Real MMX instructions. */ +{"movd", 2, 0x0f6e, X, CpuMMX, FP|Modrm, { Reg64|LLongMem, RegMMX, 0 } }, +{"movd", 2, 0x0f7e, X, CpuMMX, FP|Modrm, { RegMMX, Reg64|LLongMem, 0 } }, +{"movd", 2, 0x660f6e,X,CpuSSE2,FP|Modrm, { Reg64|LLongMem, RegXMM, 0 } }, +{"movd", 2, 0x660f7e,X,CpuSSE2,FP|Modrm, { RegXMM, Reg64|LLongMem, 0 } }, +/* In the 64bit mode the short form mov immediate is redefined to have + 64bit displacement value. */ {"movq", 2, 0x0f6f, X, CpuMMX, FP|Modrm, { RegMMX|LongMem, RegMMX, 0 } }, {"movq", 2, 0x0f7f, X, CpuMMX, FP|Modrm, { RegMMX, RegMMX|LongMem, 0 } }, {"movq", 2, 0xf30f7e,X,CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"movq", 2, 0x660fd6,X,CpuSSE2,FP|Modrm, { RegXMM, RegXMM|LLongMem, 0 } }, -/* In the 64bit mode the short form mov immediate is redefined to have - 64bit displacement value. */ {"movq", 2, 0x88, X, Cpu64, NoSuf|D|W|Modrm|Size64,{ Reg64, Reg64|AnyMem, 0 } }, {"movq", 2, 0xc6, 0, Cpu64, NoSuf|W|Modrm|Size64, { Imm32S, Reg64|WordMem, 0 } }, {"movq", 2, 0xb0, X, Cpu64, NoSuf|W|ShortForm|Size64,{ Imm64, Reg64, 0 } }, @@ -1140,7 +1154,7 @@ static const template i386_optab[] = { {"movlhps", 2, 0x0f16, X, CpuSSE, FP|Modrm, { RegXMM|InvMem, RegXMM, 0 } }, {"movlps", 2, 0x0f12, X, CpuSSE, FP|Modrm, { LLongMem, RegXMM, 0 } }, {"movlps", 2, 0x0f13, X, CpuSSE, FP|Modrm, { RegXMM, LLongMem, 0 } }, -{"movmskps", 2, 0x0f50, X, CpuSSE, FP|Modrm, { RegXMM|InvMem, Reg32, 0 } }, +{"movmskps", 2, 0x0f50, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { RegXMM|InvMem, Reg32|Reg64, 0 } }, {"movntps", 2, 0x0f2b, X, CpuSSE, FP|Modrm, { RegXMM, LLongMem, 0 } }, {"movntq", 2, 0x0fe7, X, CpuSSE, FP|Modrm, { RegMMX, LLongMem, 0 } }, {"movntdq", 2, 0x660fe7, X, CpuSSE2,FP|Modrm, { RegXMM, LLongMem, 0 } }, @@ -1155,10 +1169,10 @@ static const template i386_optab[] = { {"pavgb", 2, 0x660fe0, X, CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"pavgw", 2, 0x0fe3, X, CpuSSE, FP|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"pavgw", 2, 0x660fe3, X, CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"pextrw", 3, 0x0fc5, X, CpuSSE, FP|Modrm, { Imm8, RegMMX|InvMem, Reg32 } }, -{"pextrw", 3, 0x660fc5, X, CpuSSE2,FP|Modrm, { Imm8, RegXMM|InvMem, Reg32 } }, -{"pinsrw", 3, 0x0fc4, X, CpuSSE, FP|Modrm, { Imm8, Reg32|ShortMem, RegMMX } }, -{"pinsrw", 3, 0x660fc4, X, CpuSSE2, FP|Modrm, { Imm8, Reg32|ShortMem, RegXMM } }, +{"pextrw", 3, 0x0fc5, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { Imm8, RegMMX|InvMem, Reg32|Reg64 } }, +{"pextrw", 3, 0x660fc5, X, CpuSSE2,lq_Suf|IgnoreSize|Modrm, { Imm8, RegXMM|InvMem, Reg32|Reg64 } }, +{"pinsrw", 3, 0x0fc4, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { Imm8, Reg32|Reg64|ShortMem, RegMMX } }, +{"pinsrw", 3, 0x660fc4, X, CpuSSE2, lq_Suf|IgnoreSize|Modrm, { Imm8, Reg32|Reg64|ShortMem, RegXMM } }, {"pmaxsw", 2, 0x0fee, X, CpuSSE, FP|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"pmaxsw", 2, 0x660fee, X, CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"pmaxub", 2, 0x0fde, X, CpuSSE, FP|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, @@ -1167,8 +1181,8 @@ static const template i386_optab[] = { {"pminsw", 2, 0x660fea, X, CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"pminub", 2, 0x0fda, X, CpuSSE, FP|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"pminub", 2, 0x660fda, X, CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"pmovmskb", 2, 0x0fd7, X, CpuSSE, FP|Modrm, { RegMMX|InvMem, Reg32, 0 } }, -{"pmovmskb", 2, 0x660fd7, X, CpuSSE2,FP|Modrm, { RegXMM|InvMem, Reg32, 0 } }, +{"pmovmskb", 2, 0x0fd7, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { RegMMX|InvMem, Reg32|Reg64, 0 } }, +{"pmovmskb", 2, 0x660fd7, X, CpuSSE2,lq_Suf|IgnoreSize|Modrm, { RegXMM|InvMem, Reg32|Reg64, 0 } }, {"pmulhuw", 2, 0x0fe4, X, CpuSSE, FP|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"pmulhuw", 2, 0x660fe4, X, CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"prefetchnta", 1, 0x0f18, 0, CpuSSE, FP|Modrm, { LLongMem, 0, 0 } }, @@ -1233,7 +1247,7 @@ static const template i386_optab[] = { {"movhpd", 2, 0x660f17, X, CpuSSE2, FP|Modrm, { RegXMM, LLongMem, 0 } }, {"movlpd", 2, 0x660f12, X, CpuSSE2, FP|Modrm, { LLongMem, RegXMM, 0 } }, {"movlpd", 2, 0x660f13, X, CpuSSE2, FP|Modrm, { RegXMM, LLongMem, 0 } }, -{"movmskpd", 2, 0x660f50, X, CpuSSE2, FP|Modrm, { RegXMM|InvMem, Reg32, 0 } }, +{"movmskpd", 2, 0x660f50, X, CpuSSE2, lq_Suf|IgnoreSize|Modrm, { RegXMM|InvMem, Reg32|Reg64, 0 } }, {"movntpd", 2, 0x660f2b, X, CpuSSE2, FP|Modrm, { RegXMM, LLongMem, 0 } }, {"movsd", 2, 0xf20f10, X, CpuSSE2, FP|Modrm, { RegXMM|LongMem, RegXMM, 0 } }, {"movsd", 2, 0xf20f11, X, CpuSSE2, FP|Modrm, { RegXMM, RegXMM|LongMem, 0 } }, diff --git a/contrib/binutils/ld/ChangeLog b/contrib/binutils/ld/ChangeLog index de96a89..6719281 100644 --- a/contrib/binutils/ld/ChangeLog +++ b/contrib/binutils/ld/ChangeLog @@ -1,3 +1,259 @@ +2002-02-20 Andreas Schwab <schwab@suse.de> + + * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Don't fold + .IA64_unwind* in a relocatable link. + +2002-02-19 David O'Brien <obrien@FreeBSD.org> + + * Makefile.am: Add new files earmelf_fbsd, eelf32ppc_fbsd, + eelf_i386_fbsd, eelf64_ia64_fbsd, eelf_x86_64_fbsd, eelf64_sparc_fbsd, + and eelf64alpha_fbsd. + * Makefile.in: Regenerate. + * configure.tgt(sparc64-*-freebsd, ia64-*-freebsd, i[3456]86-*-freebsd, + x86_64-*-freebsd, arm-*-freebsd, alpha*-*-freebsd, powerpc-*-freebsd): + use a FreeBSD-specific emulation rather than the psABI one. + * emulparams/elf_fbsd.sh (ELF_INTERPRETER_NAME): Set appropriate value + for all FreeBSD ELF systems. + * emulparams/armelf_fbsd.sh: Bridge elf_fbsd.sh and the "native" psABI + emulation. + * emulparams/elf32ppc_fbsd.sh: Likewise. + * emulparams/elf64_ia64_fbsd.sh: Likewise. + * emulparams/elf64_sparc_fbsd.sh: Likewise. + * emulparams/elf64alpha_fbsd.sh: Likewise. + * emulparams/elf_i386_fbsd.sh: Likewise. + * emulparams/elf_x86_64_fbsd.sh: Likewise. + +2002-02-15 Richard Henderson <rth@redhat.com> + + * emulparams/elf64alpha.sh (NOP): Adjust for little-endian definition. + +2002-02-15 Hans-Peter Nilsson <hp@bitrange.com> + + * NEWS: Mention support for MMIX. + +2002-02-14 Phil Edwards <pme@gcc.gnu.org> + + * ld.texinfo (VERSION scripts): Symbol names are globbing patterns. + * ldgram.y (lang_new_vers_regex): Rename to lang_new_vers_pattern; + the pattern in question is not a regexp. + * ldlang.c: Likewise. + * ldlang.h: Likewise. + * ldlex.l (V_IDENTIFIER): Allow '[', ']', '-', '!', and '^' also. + +2002-02-10 Daniel Jacobowitz <drow@mvista.com> + + * lexsup.c: Remove strtoul declaration. + +2002-02-11 Alan Modra <amodra@bigpond.net.au> + + * ldlang.c (entry_section): New initialised variable. + (lang_finish): Use it. + * ldlang.h (entry_section): Declare. + * emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Set + entry_section to ".opd". + +2002-02-10 Daniel Jacobowitz <drow@mvista.com> + + * ldmain.c: Add prototype for main (). + * lexsup.c: Guard declaration of strtoul with HAVE_STDLIB_H. + * emultempl/lnk960.em (lnk960_choose_target): Function should + take two arguments. + +2002-02-09 Chris Demetriou <cgd@broadcom.com> + + * ld.texinfo (Options): Add back in -nostdlib documentation, + which had been inadvertently removed. + +2002-02-09 Hans-Peter Nilsson <hp@bitrange.com> + + * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Adjust + register section vma to a sane value after emitting error. Make + fatal conditions cause program exit when emitting message. + +2002-02-08 Ivan Guzvinec <ivang@opencores.org> + + * configure.tgt: Add or32-*-rtems target. + +2002-02-08 Alexandre Oliva <aoliva@redhat.com> + + Contribute sh64-elf. + 2002-01-24 Alexandre Oliva <aoliva@redhat.com> + * emulparams/shelf32.sh (STACK_ADDR): Define as formerly defined + in OTHER_RELOCATABLE_SECTIONS. + 2002-01-18 Alexandre Oliva <aoliva@redhat.com> + * emulparams/shelf32.sh (STACK_ADDR): Define. + (OTHER_RELOCATABLE_SECTIONS): Renamed to... + (OTHER_SECTIONS): this. Removed stack settings. + * emulparams/shelf64.sh (OTHER_RELOCATABLE_SECTIONS): Do not set. + (OTHER_SECTIONS): Reset after sourcing shelf32.sh. + 2001-03-12 DJ Delorie <dj@redhat.com> + * emultempl/sh64elf.em (sh64_elf_$_before_allocation): Disable + relaxing if any shmedia or mixed sections are found. + 2001-03-07 DJ Delorie <dj@redhat.com> + * emultempl/sh64elf.em (sh64_elf_before_allocation): Pass f to + einfo. Gracefully decline to output to non-elf formats. + 2001-03-06 Hans-Peter Nilsson <hpn@redhat.com> + * emulparams/shelf64.sh (OTHER_RELOCATING_SECTIONS) <.stack>: + Default to _end aligned to next multiple of 0x40000, plus 0x40000. + * emulparams/shelf32.sh: Ditto. + 2001-01-14 Hans-Peter Nilsson <hpn@cygnus.com> + * emulparams/shelf32.sh (OTHER_RELOCATING_SECTIONS): Tweak + comment. + 2001-01-10 Ben Elliston <bje@redhat.com> + * emulparams/shelf32.sh (OTHER_RELOCATING_SECTIONS): Avoid + non-portable shell constructs. From Hans-Peter Nilsson. + 2001-01-09 Hans-Peter Nilsson <hpn@cygnus.com> + * emulparams/shelf64.sh (EXTRA_EM_FILE): Define empty. + * Makefile.am (eshelf64.c, eshlelf64.c, eshlelf32.c): Adjust + dependencies to the shell script include chain. + * Makefile.in: Regenerate. + 2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com> + * emultempl/sh64elf.em: Update and tweak comments. + (sh64_elf_${EMULATION_NAME}_after_allocation): Always allocate and + make a .cranges section SEC_IN_MEMORY. + 2000-12-30 Hans-Peter Nilsson <hpn@cygnus.com> + * emultempl/sh64elf.em + (sh64_elf_${EMULATION_NAME}_before_allocation): Don't stop when + .cranges section found to be necessary; continue and set stored + section contents flags for sections with non-mixed contents. + Use a struct sh64_section_data container and sh64_elf_section_data + to store contents-type flags. + Remove unused update of "isec". + (sh64_elf_${EMULATION_NAME}_after_allocation): Only process + sections marked SHF_SH5_ISA32_MIXED. Use sh64_elf_section_data to + access contents-type flags. Assert that the associated container + is initialized. Use that container, not elf_gp_size, to hold size + of linker-generated cranges contents. + 2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com> + * emultempl/sh64elf.em + (sh64_elf_${EMULATION_NAME}_before_allocation): Exit early if + there's already a .cranges section. When section flag difference + is found, don't NULL-check cranges a second time. Tweak comments. + (sh64_elf_${EMULATION_NAME}_after_allocation): Use size after + merging, not max size, as size of ld-generated .cranges contents. + Don't set ELF section flags in output section. When checking for + needed .cranges descriptors, don't use a variable; compare + incoming ELF section flags directly to SHF_SH5_ISA32_MIXED. Tweak + comments. + 2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com> + * emultempl/sh64elf.em: New file. + * Makefile.am (eshelf32.c, eshlelf32.c): Adjust dependencies. + * Makefile.in: Regenerate. + * emulparams/shelf32.sh (OUTPUT_FORMAT): Only set if not set. + (OTHER_RELOCATING_SECTIONS): Ditto. + (EXTRA_EM_FILE): New, set to sh64elf if not set. + * emulparams/shlelf32.sh: Stub out all settings except + OUTPUT_FORMAT. Source shelf32.sh. + * emulparams/shelf64.sh: Similar, but also keep ELF_SIZE and + OTHER_RELOCATING_SECTIONS. + (OTHER_RELOCATING_SECTIONS): Remove .cranges. + * emulparams/shlelf64.sh: Stub out all settings except + OUTPUT_FORMAT. Source shelf64.sh. + 2000-12-15 Hans-Peter Nilsson <hpn@cygnus.com> + * emulparams/shelf64.sh (OTHER_RELOCATING_SECTIONS): Include + .cranges section. + (DATA_START_SYMBOLS): Define, provide ___data. + (OTHER_READONLY_SYMBOLS): Define, provide ___rodata and align to 8 + for consecutive .data section. + (OTHER_GOT_SECTIONS): Define, align to 8 for consecutive .bss + section after .data section. + * emulparams/shlelf64.sh: Ditto. + * emulparams/shelf32.sh: Ditto. + (ALIGNMENT): Define to 8. + * emulparams/shelf32.sh: Ditto. + 2000-12-12 Hans-Peter Nilsson <hpn@cygnus.com> + * configure.tgt (sh64-*-elf*): Assign targ_extra_libpath to get + built-in linker scripts. + 2000-11-30 Hans-Peter Nilsson <hpn@cygnus.com> + * emulparams/shlelf64.sh: New. + * emulparams/shelf64.sh: New. + * configure.tgt (sh64-*-elf*): Add shelf64 and shlelf64 to + targ_extra_emuls. + * Makefile.am: Add support for shlelf64 and shelf64. + * Makefile.in: Regenerate. + 2000-11-29 Hans-Peter Nilsson <hpn@cygnus.com> + * configure.tgt (sh64-*-elf*): Add shelf as default. + Add shlelf to targ_extra_emuls. + 2000-11-24 Hans-Peter Nilsson <hpn@cygnus.com> + * emulparams/shelf32.sh: New file. + * emulparams/shlelf32.sh: New file. + * Makefile.am: Add support for shlelf32 and shelf32. + * configure.tgt: Map sh64-*-elf* to shlelf32 and shelf32. + * Makefile.in: Regenerate. + +2002-02-05 Hans-Peter Nilsson <hp@axis.com> + + * ldlang.c (lang_reset_memory_regions): Rename from + reset_memory_regions. Change all callers. Make public. + * ldlang.h (lang_reset_memory_regions): Prototype. + * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Call + lang_reset_memory_regions before lang_size_sections. + * emultempl/hppaelf.em (hppaelf_layout_sections_again): Likewise. + * emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Likewise. + +2002-02-04 Hans-Peter Nilsson <hp@bitrange.com> + + * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Use signed + arithmetic when checking for too many global registers. + +2002-02-02 Jason Thorpe <thorpej@wasabisystems.com> + + * Makefile.am (ALL_EMULATIONS): Add ehppanbsd.o. + (ehppanbsd.c): New rule. + * Makefile.in: Regenerate. + * configure.tgt (hppa*-*-netbsd*): New target. + * emulparams/hppalinux.sh: Add comment to check other files + that source this file it is modified, and list which + files that do. + * emulparams/hppanbsd.sh: New file. + +2002-02-01 Geoffrey Keating <geoffk@redhat.com> + + * scripttempl/xstormy16.sc: Don't allocate extra space for the + stack. + +2002-02-01 Hans-Peter Nilsson <hp@bitrange.com> + + Support on-demand global register allocation from + R_MMIX_BASE_PLUS_OFFSET relocs. + * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Rename from + mmix_set_reg_section_vma. Call + _bfd_mmix_finalize_linker_allocated_gregs. + (mmix_before_allocation): New function. + (LDEMUL_AFTER_ALLOCATION): Set to mmix_after_allocation. + (LDEMUL_BEFORE_ALLOCATION): Define to mmix_before_allocation. + * scripttempl/mmo.sc (.text): Mark .init, .fini as KEEP. + (.MMIX.reg_contents): Add .MMIX.reg_contents.linker_allocated + before .MMIX.reg_contents. + * emultempl/mmo.em (gldmmo_before_allocation): Define to default. + (mmo_after_open): New function. + (LDEMUL_AFTER_OPEN): Define to mmo_after_open. + * emulparams/elf64mmix.sh (OTHER_SECTIONS): Tweak formatting. Add + .MMIX.reg_contents.linker_allocated before .MMIX.reg_contents. + +2002-01-31 Ivan Guzvinec <ivang@opencores.org> + + * emulparams/or32.sh: New file. + * emulparams/or32elf.sh: New file. + * scripttempl/or32.sc: New file. + * configure.tgt : Add support for or32. + * configure: Regenerate + * Makefile.am: Add support for or32. + * Makefile.in: Regenerate. + * NEWS: Mention support for or32. + * po/ld.pot: Regenerate. + +2002-01-29 Chris Demetriou <cgd@broadcom.com> + Mitch Lichtenberg <mpl@broadcom.com> + + * emulparams/elf32bmip.sh (EXTRA_EM_FILE): Define to be mipself. + * emultempl/mipself.em: New file to handle MIPS ELF embedded + reloc creation (ld --embedded-relocs). + +2002-01-27 Daniel Jacobowitz <drow@mvista.com> + + * configure: Regenerated. + 2002-01-26 Hans-Peter Nilsson <hp@bitrange.com> * Makefile.am (install): Depend on install-info. @@ -468,7 +724,7 @@ * emultempl/elf32.em (gld${EMULATION_NAME}_finish): New. (struct ld_emulation_xfer_struct): Use it. -Tue Nov 13 11:27:14 2001 Ross Alexander <ross.alexander@uk.neceur.com> +2001-11-13 Ross Alexander <ross.alexander@uk.neceur.com> * emulparams/elf64hppa.sh (OTHER_BSS_END_SYMBOLS): Add additional symbols referenced by newer crt0.o files from HP. @@ -821,7 +1077,7 @@ Tue Nov 13 11:27:14 2001 Ross Alexander <ross.alexander@uk.neceur.com> * scripttempl/v850.sc: Add gcc_except_table sections. -Fri Sep 7 11:34:24 2001 Jeffrey A Law (law@cygnus.com) +2001-09-11 Jeffrey A Law (law@cygnus.com) * emulparams/h8300helf.sh: Move stack to a much higher memory address. * emulparams/h8300self.sh: Similarly. @@ -877,7 +1133,7 @@ Fri Sep 7 11:34:24 2001 Jeffrey A Law (law@cygnus.com) ARCH specification. * emulparams/h8300self.sh: Similarly. -Wed Aug 28 13:37:20 2001 J"orn Rennecke <amylaar@redhat.com> +2001-08-28 J"orn Rennecke <amylaar@redhat.com> * Makefile.am (ALL_EMULATIONS): Add eh8300elf.o, eh8300elf.o and eh8300self.o . @@ -1978,7 +2234,7 @@ Wed Aug 28 13:37:20 2001 J"orn Rennecke <amylaar@redhat.com> * emulparams/elf32ppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise. * emulparams/elf32lppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise. -Mon Dec 11 14:50:33 MET 2000 Jan Hubicka <jh@suse.cz> +2000-12-11 Jan Hubicka <jh@suse.cz> * NEWS: Add note about x86_64 architecture. @@ -2047,7 +2303,7 @@ Mon Dec 11 14:50:33 MET 2000 Jan Hubicka <jh@suse.cz> * scripttempl/h8300h.sc: Likewise. * scripttempl/h8300s.sc: Likewise. -Tue Nov 14 00:59:19 2000 Denis Chertykov <denisc@overta.ru> +2000-11-14 Denis Chertykov <denisc@overta.ru> * scripttempl/elf32avr.sc: Fix bug in .eeprom segment. @@ -3006,7 +3262,7 @@ Tue Nov 14 00:59:19 2000 Denis Chertykov <denisc@overta.ru> * lexsup.c (parse_args): `i' == `r', not `q'. -Thu May 18 10:47:57 2000 Jeffrey A Law (law@cygnus.com) +2000-05-18 Jeffrey A Law (law@cygnus.com) * configure.tgt (hppa*64*-*-*): Enable PA64 target. @@ -3047,7 +3303,7 @@ Thu May 18 10:47:57 2000 Jeffrey A Law (law@cygnus.com) * lexsup.c (set_section_start): Use bfd_scan_vma rather than strtoul. -Mon May 1 17:34:34 2000 Jim Wilson <wilson@cygnus.com> +2000-05-01 Jim Wilson <wilson@cygnus.com> * configure.host (ia64-*-linux-gnu*): Change gcc to ${CC}. @@ -3058,7 +3314,7 @@ Mon May 1 17:34:34 2000 Jim Wilson <wilson@cygnus.com> * ld.h: Correctly check GCC version. -Tue Apr 25 11:20:43 2000 Jeffrey A Law (law@cygnus.com) +2000-04-25 Jeffrey A Law (law@cygnus.com) * Makefile.am: Add PA64 support. Add missing dependencies for PA32 elf support. @@ -3097,8 +3353,8 @@ Tue Apr 25 11:20:43 2000 Jeffrey A Law (law@cygnus.com) * configure.tgt: Add NetBSD/sparc ELF, and NetBSD/sparc64 support. -Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com> - David Mosberger <davidm@hpl.hp.com> +2000-04-21 Richard Henderson <rth@cygnus.com> + David Mosberger <davidm@hpl.hp.com> * Makefile.am (ALL_64_EMULATIONS): Add eelf64_ia64.o. (eelf64_ia64.c): New rule. @@ -3177,7 +3433,7 @@ Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com> * ld.texinfo (Simple Example): Remove extraneous paragraph. -Fri Apr 7 15:56:57 2000 Andrew Cagney <cagney@b1.cygnus.com> +2000-04-07 Andrew Cagney <cagney@b1.cygnus.com> * configure.in (WARN_CFLAGS): Set to -W -Wall by default. Add --enable-build-warnings option. @@ -3446,7 +3702,7 @@ Fri Apr 7 15:56:57 2000 Andrew Cagney <cagney@b1.cygnus.com> being invoked by a comnpiler driver program. Fix description of the behaviour of the -n command line switch. -Wed Jan 5 08:02:12 2000 Catherine Moore <clm@cygnus.com> +2000-01-05 Catherine Moore <clm@cygnus.com> * ld.h (wildcard_spec): Change exclude_name to exclude_name_list. (name_list): New. diff --git a/contrib/binutils/ld/Makefile.am b/contrib/binutils/ld/Makefile.am index 1d59e83..bff2045 100644 --- a/contrib/binutils/ld/Makefile.am +++ b/contrib/binutils/ld/Makefile.am @@ -117,6 +117,7 @@ ALL_EMULATIONS = \ earmaoutl.o \ earmcoff.o \ earmelf.o \ + earmelf_fbsd.o \ earmelf_linux.o \ earmelf_nbsd.o \ earmelf_oabi.o \ @@ -159,12 +160,14 @@ ALL_EMULATIONS = \ eelf32mcore.o \ eelf32openrisc.o \ eelf32ppc.o \ + eelf32ppc_fbsd.o \ eelf32ppclinux.o \ eelf32ppcsim.o \ eelf32xstormy16.o \ eelf_i386.o \ eelf_i386_be.o \ eelf_i386_chaos.o \ + eelf_i386_fbsd.o \ eelf_i386_ldso.o \ eelf_s390.o \ egld960.o \ @@ -184,6 +187,7 @@ ALL_EMULATIONS = \ ehp3hpux.o \ ehppaelf.o \ ehppalinux.o \ + ehppanbsd.o \ ei386aout.o \ ei386beos.o \ ei386bsd.o \ @@ -224,6 +228,8 @@ ALL_EMULATIONS = \ emipspe.o \ enews.o \ ens32knbsd.o \ + eor32.o \ + eor32elf.o \ epc532macha.o \ epdp11.o \ epjelf.o \ @@ -234,6 +240,8 @@ ALL_EMULATIONS = \ eriscix.o \ esa29200.o \ esh.o \ + eshelf32.o \ + eshlelf32.o \ eshelf.o \ eshelf_linux.o \ eshlelf_linux.o \ @@ -263,10 +271,16 @@ ALL_EMULATIONS = \ ALL_64_EMULATIONS = \ eelf64_aix.o \ eelf64_ia64.o \ + eelf64_ia64_fbsd.o \ + eshelf64.o \ + eshlelf64.o \ eelf_x86_64.o \ + eelf_x86_64_fbsd.o \ eelf64_s390.o \ eelf64_sparc.o \ + eelf64_sparc_fbsd.o \ eelf64alpha.o \ + eelf64alpha_fbsd.o \ eelf64alpha_nbsd.o \ eelf64bmip.o \ eelf64btsmip.o \ @@ -358,6 +372,11 @@ earmelf.c: $(srcdir)/emulparams/armelf.sh \ earmelf_oabi.c: $(srcdir)/emulparams/armelf_oabi.sh \ $(srcdir)/emultempl/armelf_oabi.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_oabi "$(tdir_armelf)" +earmelf_fbsd.c: $(srcdir)/emulparams/armelf_fbsd.sh \ + $(srcdir)/emulparams/armelf.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armelf_fbsd "$(tdir_armelf_fbsd)" earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -525,6 +544,10 @@ eelf32openrisc.c: $(srcdir)/emulparams/elf32openrisc.sh \ eelf32ppc.c: $(srcdir)/emulparams/elf32ppc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppc "$(tdir_elf32ppc)" +eelf32ppc_fbsd.c: $(srcdir)/emulparams/elf32ppc_fbsd.sh \ + $(srcdir)/emulparams/elf32ppc.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ppc_fbsd "$(tdir_elf32ppc_fbsd)" eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \ $(srcdir)/emulparams/elf32ppc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -546,6 +569,10 @@ eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \ eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64alpha "$(tdir_elf64alpha)" +eelf64alpha_fbsd.c: $(srcdir)/emulparams/elf64alpha_fbsd.sh \ + $(srcdir)/emulparams/elf64alpha.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64alpha_fbsd "$(tdir_elf64alpha_fbsd)" eelf64alpha_nbsd.c: $(srcdir)/emulparams/elf64alpha_nbsd.sh \ $(srcdir)/emulparams/elf64alpha.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -561,12 +588,21 @@ eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_ia64 "$(tdir_elf64_ia64)" +eelf64_ia64_fbsd.c: $(srcdir)/emulparams/elf64_ia64_fbsd.sh \ + $(srcdir)/emulparams/elf64_ia64.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_ia64_fbsd "$(tdir_elf64_ia64_fbsd)" eelf64_s390.c: $(srcdir)/emulparams/elf64_s390.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_s390 "$(tdir_elf64_s390)" eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc "$(tdir_elf64_sparc)" +eelf64_sparc_fbsd.c: $(srcdir)/emulparams/elf64_sparc_fbsd.sh \ + $(srcdir)/emulparams/elf64_sparc.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ $(srcdir)/emulparams/elf32bmipn32.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -593,12 +629,20 @@ eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_x86_64 "$(tdir_elf_x86_64)" +eelf_x86_64_fbsd.c: $(srcdir)/emulparams/elf_x86_64_fbsd.sh \ + $(srcdir)/emulparams/elf_x86_64.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_x86_64_fbsd "$(tdir_elf_x86_64_fbsd)" eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)" eelf_i386_chaos.c: $(srcdir)/emulparams/elf_i386_chaos.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_chaos "$(tdir_elf_i386_chaos)" +eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \ + $(srcdir)/emulparams/elf_i386.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386_fbsd "$(tdir_elf_i386_fbsd)" eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)" @@ -660,6 +704,11 @@ ehppalinux.c: $(srcdir)/emulparams/hppalinux.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppalinux "$(tdir_hppalinux)" +ehppanbsd.c: $(srcdir)/emulparams/hppanbsd.sh \ + $(srcdir)/emulparams/hppaelf.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} hppanbsd "$(tdir_hppanbsd)" ehppa64linux.c: $(srcdir)/emulparams/hppa64linux.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppa64linux "$(tdir_hppa64linux)" @@ -793,6 +842,12 @@ enews.c: $(srcdir)/emulparams/news.sh \ ens32knbsd.c: $(srcdir)/emulparams/ns32knbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} ns32knbsd "$(tdir_ns32knbsd)" +eor32.c: $(srcdir)/emulparams/or32.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/or32.sc ${GEN_DEPENDS} + ${GENSCRIPTS} or32 "$(tdir_or32)" +eor32elf.c: $(srcdir)/emulparams/or32elf.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} or32elf "$(tdir_or32elf)" epc532macha.c: $(srcdir)/emulparams/pc532macha.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} pc532macha "$(tdir_pc532macha)" @@ -826,6 +881,14 @@ esh.c: $(srcdir)/emulparams/sh.sh \ eshelf.c: $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf "$(tdir_shelf)" +eshelf32.c: $(srcdir)/emulparams/shelf32.sh \ + $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ + $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf32 "$(tdir_shelf32)" +eshelf64.c: $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf64 "$(tdir_shelf64)" eshelf_linux.c: $(srcdir)/emulparams/shelf_linux.sh \ $(srcdir)/emulparams/shlelf_linux.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -846,6 +909,15 @@ eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf "$(tdir_shlelf)" +eshlelf32.c: $(srcdir)/emulparams/shlelf32.sh \ + $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h $(srcdir)/emulparams/shelf32.sh \ + $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf32 "$(tdir_shlelf32)" +eshlelf64.c: $(srcdir)/emulparams/shlelf64.sh \ + $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf64 "$(tdir_shlelf64)" eshl.c: $(srcdir)/emulparams/shl.sh \ $(srcdir)/emulparams/sh.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS} @@ -1066,6 +1138,10 @@ install-data-local: $(INSTALL_DATA) $$f $(scriptdir)/$$f ; \ done +# We want install to imply install-info as per GNU standards, despite the +# cygnus option. +install: install-info + # Stuff that should be included in a distribution. The diststuff # target is run by the taz target in ../Makefile.in. EXTRA_DIST = ldgram.c ldgram.h ldlex.c $(man_MANS) diff --git a/contrib/binutils/ld/NEWS b/contrib/binutils/ld/NEWS index 70997ef..bb873e5 100644 --- a/contrib/binutils/ld/NEWS +++ b/contrib/binutils/ld/NEWS @@ -1,4 +1,8 @@ -*- text -*- +* Support for Don Knuth's MMIX, by Hans-Peter Nilsson. + +* Support for the OpenRISC 32-bit embedded processor by OpenCores. + * Support for -z nocopyreloc in the x86 ELF linker, which disables production of copy relocs. Warning: using this option may result in non-sharable applications. diff --git a/contrib/binutils/ld/config.in b/contrib/binutils/ld/config.in index c6c80ee..87c5fe6 100644 --- a/contrib/binutils/ld/config.in +++ b/contrib/binutils/ld/config.in @@ -1,175 +1,171 @@ /* config.in. Generated automatically from configure.in by autoheader. */ -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -#undef CRAY_STACKSEG_END - -/* Define if using `alloca.c'. */ +/* Define if using alloca.c. */ #undef C_ALLOCA -/* Define to 1 if NLS is requested */ -#undef ENABLE_NLS +/* Define to empty if the keyword does not work. */ +#undef const -/* Additional extension a shared object might have. */ -#undef EXTRA_SHLIB_EXTENSION +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +#undef CRAY_STACKSEG_END -/* Define if you have `alloca', as a function or macro. */ +/* Define if you have alloca, as a function or macro. */ #undef HAVE_ALLOCA -/* Define if you have <alloca.h> and it should be used (not on Ultrix). */ +/* Define if you have <alloca.h> and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H -/* Define if you have the <argz.h> header file. */ -#undef HAVE_ARGZ_H +/* Define if you have a working `mmap' system call. */ +#undef HAVE_MMAP -/* Define if you have the `dcgettext' function. */ -#undef HAVE_DCGETTEXT +/* Define as __inline if that's what the C compiler calls it. */ +#undef inline -/* Define if you have the <dirent.h> header file, and it defines `DIR'. */ -#undef HAVE_DIRENT_H +/* Define to `long' if <sys/types.h> doesn't define. */ +#undef off_t -/* Define if you have the `getcwd' function. */ -#undef HAVE_GETCWD +/* Define to `unsigned' if <sys/types.h> doesn't define. */ +#undef size_t -/* Define if you have the `getpagesize' function. */ -#undef HAVE_GETPAGESIZE +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +#undef STACK_DIRECTION -/* Define as 1 if you have gettext and don't want to use GNU gettext. */ -#undef HAVE_GETTEXT +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS -/* Define if you have the <inttypes.h> header file. */ -#undef HAVE_INTTYPES_H +/* Define if lex declares yytext as a char * by default, not a char[]. */ +#undef YYTEXT_POINTER -/* Define if your locale.h file contains LC_MESSAGES. */ -#undef HAVE_LC_MESSAGES +/* Define if you have the __argz_count function. */ +#undef HAVE___ARGZ_COUNT -/* Define if you have the <limits.h> header file. */ -#undef HAVE_LIMITS_H +/* Define if you have the __argz_next function. */ +#undef HAVE___ARGZ_NEXT -/* Define if you have the <locale.h> header file. */ -#undef HAVE_LOCALE_H +/* Define if you have the __argz_stringify function. */ +#undef HAVE___ARGZ_STRINGIFY -/* Define if you have the <malloc.h> header file. */ -#undef HAVE_MALLOC_H +/* Define if you have the dcgettext function. */ +#undef HAVE_DCGETTEXT -/* Define if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H +/* Define if you have the getcwd function. */ +#undef HAVE_GETCWD -/* Define if you have a working `mmap' system call. */ -#undef HAVE_MMAP +/* Define if you have the getpagesize function. */ +#undef HAVE_GETPAGESIZE -/* Define if you have the `munmap' function. */ +/* Define if you have the munmap function. */ #undef HAVE_MUNMAP -/* Define if you have the <ndir.h> header file, and it defines `DIR'. */ -#undef HAVE_NDIR_H - -/* Define if you have the <nl_types.h> header file. */ -#undef HAVE_NL_TYPES_H - -/* Define if you have the `putenv' function. */ +/* Define if you have the putenv function. */ #undef HAVE_PUTENV -/* Define if you have the `sbrk' function. */ +/* Define if you have the sbrk function. */ #undef HAVE_SBRK -/* Define if you have the `setenv' function. */ +/* Define if you have the setenv function. */ #undef HAVE_SETENV -/* Define if you have the `setlocale' function. */ +/* Define if you have the setlocale function. */ #undef HAVE_SETLOCALE -/* Define if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define if you have the stpcpy function */ +/* Define if you have the stpcpy function. */ #undef HAVE_STPCPY -/* Define if you have the `strcasecmp' function. */ +/* Define if you have the strcasecmp function. */ #undef HAVE_STRCASECMP -/* Define if you have the `strchr' function. */ +/* Define if you have the strchr function. */ #undef HAVE_STRCHR -/* Define if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H +/* Define if you have the <argz.h> header file. */ +#undef HAVE_ARGZ_H -/* Define if you have the <string.h> header file. */ -#undef HAVE_STRING_H +/* Define if you have the <dirent.h> header file. */ +#undef HAVE_DIRENT_H -/* Define if you have the <sys/dir.h> header file, and it defines `DIR'. */ -#undef HAVE_SYS_DIR_H +/* Define if you have the <limits.h> header file. */ +#undef HAVE_LIMITS_H -/* Define if you have the <sys/ndir.h> header file, and it defines `DIR'. */ -#undef HAVE_SYS_NDIR_H +/* Define if you have the <locale.h> header file. */ +#undef HAVE_LOCALE_H -/* Define if you have the <sys/param.h> header file. */ -#undef HAVE_SYS_PARAM_H +/* Define if you have the <malloc.h> header file. */ +#undef HAVE_MALLOC_H -/* Define if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H +/* Define if you have the <ndir.h> header file. */ +#undef HAVE_NDIR_H -/* Define if you have the <values.h> header file. */ -#undef HAVE_VALUES_H +/* Define if you have the <nl_types.h> header file. */ +#undef HAVE_NL_TYPES_H -/* Define if you have the `__argz_count' function. */ -#undef HAVE___ARGZ_COUNT +/* Define if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H -/* Define if you have the `__argz_next' function. */ -#undef HAVE___ARGZ_NEXT +/* Define if you have the <string.h> header file. */ +#undef HAVE_STRING_H -/* Define if you have the `__argz_stringify' function. */ -#undef HAVE___ARGZ_STRINGIFY +/* Define if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H -/* Define if environ is not declared in system header files. */ -#undef NEED_DECLARATION_ENVIRON +/* Define if you have the <sys/dir.h> header file. */ +#undef HAVE_SYS_DIR_H -/* Define if free is not declared in system header files. */ -#undef NEED_DECLARATION_FREE +/* Define if you have the <sys/ndir.h> header file. */ +#undef HAVE_SYS_NDIR_H -/* Define if getenv is not declared in system header files. */ -#undef NEED_DECLARATION_GETENV +/* Define if you have the <sys/param.h> header file. */ +#undef HAVE_SYS_PARAM_H -/* Define if sbrk is not declared in system header files. */ -#undef NEED_DECLARATION_SBRK +/* Define if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H -/* Define if strstr is not declared in system header files. */ -#undef NEED_DECLARATION_STRSTR +/* Define if you have the <values.h> header file. */ +#undef HAVE_VALUES_H /* Name of package */ #undef PACKAGE -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -#undef STACK_DIRECTION +/* Version number of package */ +#undef VERSION -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS +/* Define if you have the stpcpy function */ +#undef HAVE_STPCPY + +/* Define if your locale.h file contains LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES + +/* Define to 1 if NLS is requested */ +#undef ENABLE_NLS + +/* Define as 1 if you have gettext and don't want to use GNU gettext. */ +#undef HAVE_GETTEXT /* Use b modifier when opening binary files? */ #undef USE_BINARY_FOPEN -/* Version number of package */ -#undef VERSION +/* Define if strstr is not declared in system header files. */ +#undef NEED_DECLARATION_STRSTR -/* Define if `lex' declares `yytext' as a `char *' by default, not a `char[]'. - */ -#undef YYTEXT_POINTER +/* Define if free is not declared in system header files. */ +#undef NEED_DECLARATION_FREE -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const +/* Define if sbrk is not declared in system header files. */ +#undef NEED_DECLARATION_SBRK -/* Define as `__inline' if that's what the C compiler calls it, or to nothing - if it is not supported. */ -#undef inline +/* Define if getenv is not declared in system header files. */ +#undef NEED_DECLARATION_GETENV -/* Define to `long' if <sys/types.h> does not define. */ -#undef off_t +/* Define if environ is not declared in system header files. */ +#undef NEED_DECLARATION_ENVIRON + +/* Additional extension a shared object might have. */ +#undef EXTRA_SHLIB_EXTENSION -/* Define to `unsigned' if <sys/types.h> does not define. */ -#undef size_t diff --git a/contrib/binutils/ld/configure b/contrib/binutils/ld/configure index 4003cf8..c310a0d 100755 --- a/contrib/binutils/ld/configure +++ b/contrib/binutils/ld/configure @@ -53,6 +53,7 @@ program_suffix=NONE program_transform_name=s,x,x, silent= site= +sitefile= srcdir= target=NONE verbose= @@ -167,6 +168,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 @@ -337,6 +339,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=*) @@ -502,12 +509,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 @@ -546,12 +557,12 @@ else fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:550: checking for Cygwin environment" >&5 +echo "configure:561: 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 555 "configure" +#line 566 "configure" #include "confdefs.h" int main() { @@ -562,7 +573,7 @@ int main() { return __CYGWIN__; ; return 0; } EOF -if { (eval echo configure:566: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:577: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else @@ -579,19 +590,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:583: checking for mingw32 environment" >&5 +echo "configure:594: 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 588 "configure" +#line 599 "configure" #include "confdefs.h" int main() { return __MINGW32__; ; return 0; } EOF -if { (eval echo configure:595: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else @@ -656,7 +667,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:660: checking host system type" >&5 +echo "configure:671: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -677,7 +688,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:681: checking target system type" >&5 +echo "configure:692: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -695,7 +706,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:699: checking build system type" >&5 +echo "configure:710: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -719,7 +730,7 @@ test "$host_alias" != "$target_alias" && echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 -echo "configure:723: checking for strerror in -lcposix" >&5 +echo "configure:734: checking for strerror in -lcposix" >&5 ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -727,7 +738,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcposix $LIBS" cat > conftest.$ac_ext <<EOF -#line 731 "configure" +#line 742 "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 @@ -738,7 +749,7 @@ int main() { strerror() ; return 0; } EOF -if { (eval echo configure:742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:753: \"$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 @@ -774,7 +785,7 @@ BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${ # 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:778: checking for a BSD compatible install" >&5 +echo "configure:789: 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 @@ -827,7 +838,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:831: checking whether build environment is sane" >&5 +echo "configure:842: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -884,7 +895,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:888: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:899: 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 @@ -930,7 +941,7 @@ EOF missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:934: checking for working aclocal" >&5 +echo "configure:945: 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. @@ -943,7 +954,7 @@ else fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:947: checking for working autoconf" >&5 +echo "configure:958: 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. @@ -956,7 +967,7 @@ else fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:960: checking for working automake" >&5 +echo "configure:971: 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. @@ -969,7 +980,7 @@ else fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:973: checking for working autoheader" >&5 +echo "configure:984: 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. @@ -982,7 +993,7 @@ else fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:986: checking for working makeinfo" >&5 +echo "configure:997: 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. @@ -1068,7 +1079,7 @@ fi # 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:1072: checking for $ac_word" >&5 +echo "configure:1083: 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 @@ -1098,7 +1109,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:1102: checking for $ac_word" >&5 +echo "configure:1113: 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 @@ -1149,7 +1160,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:1153: checking for $ac_word" >&5 +echo "configure:1164: 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 @@ -1181,7 +1192,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1185: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1196: 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. @@ -1192,12 +1203,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1196 "configure" +#line 1207 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1212: \"$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 @@ -1223,12 +1234,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:1227: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1238: 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:1232: checking whether we are using GNU C" >&5 +echo "configure:1243: 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 @@ -1237,7 +1248,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1241: \"$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:1252: \"$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 @@ -1256,7 +1267,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:1260: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1271: 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 @@ -1299,7 +1310,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:1303: checking for ld used by GCC" >&5 +echo "configure:1314: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -1329,10 +1340,10 @@ echo "configure:1303: 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:1333: checking for GNU ld" >&5 +echo "configure:1344: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1336: checking for non-GNU ld" >&5 +echo "configure:1347: 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 @@ -1367,7 +1378,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:1371: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:1382: 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 @@ -1384,7 +1395,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:1388: checking for $LD option to reload object files" >&5 +echo "configure:1399: 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 @@ -1396,7 +1407,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:1400: checking for BSD-compatible nm" >&5 +echo "configure:1411: 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 @@ -1434,7 +1445,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:1438: checking whether ln -s works" >&5 +echo "configure:1449: 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 @@ -1455,7 +1466,7 @@ else fi echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 -echo "configure:1459: checking how to recognise dependant libraries" >&5 +echo "configure:1470: 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 @@ -1527,9 +1538,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*) @@ -1619,13 +1639,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:1623: checking for object suffix" >&5 +echo "configure:1643: 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:1629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1649: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -1645,7 +1665,7 @@ ac_objext=$ac_cv_objext echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1649: checking for executable suffix" >&5 +echo "configure:1669: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1655,10 +1675,10 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:1659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:1679: \"$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 @@ -1688,7 +1708,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:1692: checking for ${ac_tool_prefix}file" >&5 +echo "configure:1712: 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 @@ -1750,7 +1770,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:1754: checking for file" >&5 +echo "configure:1774: 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 @@ -1821,7 +1841,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:1825: checking for $ac_word" >&5 +echo "configure:1845: 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 @@ -1853,7 +1873,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:1857: checking for $ac_word" >&5 +echo "configure:1877: 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 @@ -1888,7 +1908,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:1892: checking for $ac_word" >&5 +echo "configure:1912: 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 @@ -1920,7 +1940,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:1924: checking for $ac_word" >&5 +echo "configure:1944: 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 @@ -1987,8 +2007,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 1991 "configure"' > conftest.$ac_ext - if { (eval echo configure:1992: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 2011 "configure"' > conftest.$ac_ext + if { (eval echo configure:2012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" @@ -2004,12 +2024,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:2031: \"$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:2013: checking whether the C compiler needs -belf" >&5 +echo "configure:2049: 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 @@ -2022,14 +2058,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 2026 "configure" +#line 2062 "configure" #include "confdefs.h" int main() { ; return 0; } EOF -if { (eval echo configure:2033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2069: \"$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 @@ -2206,7 +2242,7 @@ fi # 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:2210: checking for $ac_word" >&5 +echo "configure:2246: 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 @@ -2236,7 +2272,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:2240: checking for $ac_word" >&5 +echo "configure:2276: 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 @@ -2287,7 +2323,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:2291: checking for $ac_word" >&5 +echo "configure:2327: 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 @@ -2319,7 +2355,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2323: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2359: 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. @@ -2330,12 +2366,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 2334 "configure" +#line 2370 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2375: \"$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 @@ -2361,12 +2397,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:2365: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2401: 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:2370: checking whether we are using GNU C" >&5 +echo "configure:2406: 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 @@ -2375,7 +2411,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2379: \"$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:2415: \"$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 @@ -2394,7 +2430,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:2398: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2434: 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 @@ -2437,7 +2473,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:2441: checking for a BSD compatible install" >&5 +echo "configure:2477: 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 @@ -2492,7 +2528,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ALL_LINGUAS="fr sv tr es" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:2496: checking how to run the C preprocessor" >&5 +echo "configure:2532: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2507,13 +2543,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 2511 "configure" +#line 2547 "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:2517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2553: \"$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 : @@ -2524,13 +2560,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 2528 "configure" +#line 2564 "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:2534: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2570: \"$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 : @@ -2541,13 +2577,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext <<EOF -#line 2545 "configure" +#line 2581 "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:2551: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2587: \"$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 : @@ -2574,7 +2610,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:2578: checking for $ac_word" >&5 +echo "configure:2614: 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 @@ -2602,12 +2638,12 @@ else fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:2606: checking for ANSI C header files" >&5 +echo "configure:2642: 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 2611 "configure" +#line 2647 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -2615,7 +2651,7 @@ else #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2655: \"$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* @@ -2632,7 +2668,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 2636 "configure" +#line 2672 "configure" #include "confdefs.h" #include <string.h> EOF @@ -2650,7 +2686,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 2654 "configure" +#line 2690 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -2671,7 +2707,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext <<EOF -#line 2675 "configure" +#line 2711 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -2682,7 +2718,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:2686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -2706,12 +2742,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2710: checking for working const" >&5 +echo "configure:2746: 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 2715 "configure" +#line 2751 "configure" #include "confdefs.h" int main() { @@ -2760,7 +2796,7 @@ ccp = (char const *const *) p; ; return 0; } EOF -if { (eval echo configure:2764: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2781,21 +2817,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:2785: checking for inline" >&5 +echo "configure:2821: 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 2792 "configure" +#line 2828 "configure" #include "confdefs.h" int main() { } $ac_kw foo() { ; return 0; } EOF -if { (eval echo configure:2799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -2821,12 +2857,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:2825: checking for off_t" >&5 +echo "configure:2861: 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 2830 "configure" +#line 2866 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -2854,12 +2890,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:2858: checking for size_t" >&5 +echo "configure:2894: 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 2863 "configure" +#line 2899 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -2889,19 +2925,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:2893: checking for working alloca.h" >&5 +echo "configure:2929: 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 2898 "configure" +#line 2934 "configure" #include "confdefs.h" #include <alloca.h> int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:2905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2941: \"$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 @@ -2922,12 +2958,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:2926: checking for alloca" >&5 +echo "configure:2962: 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 2931 "configure" +#line 2967 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -2955,7 +2991,7 @@ int main() { char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:2959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2995: \"$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 @@ -2987,12 +3023,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:2991: checking whether alloca needs Cray hooks" >&5 +echo "configure:3027: 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 2996 "configure" +#line 3032 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -3017,12 +3053,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:3021: checking for $ac_func" >&5 +echo "configure:3057: 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 3026 "configure" +#line 3062 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3045,7 +3081,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3085: \"$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 @@ -3072,7 +3108,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:3076: checking stack direction for C alloca" >&5 +echo "configure:3112: 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 @@ -3080,7 +3116,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <<EOF -#line 3084 "configure" +#line 3120 "configure" #include "confdefs.h" find_stack_direction () { @@ -3099,7 +3135,7 @@ main () exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:3103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3139: \"$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 @@ -3120,21 +3156,21 @@ EOF fi -for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h +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:3128: checking for $ac_hdr" >&5 +echo "configure:3164: 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 3133 "configure" +#line 3169 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3138: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3174: \"$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* @@ -3163,12 +3199,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3167: checking for $ac_func" >&5 +echo "configure:3203: 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 3172 "configure" +#line 3208 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3191,7 +3227,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3231: \"$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 @@ -3216,7 +3252,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:3220: checking for working mmap" >&5 +echo "configure:3256: 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 @@ -3224,7 +3260,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <<EOF -#line 3228 "configure" +#line 3264 "configure" #include "confdefs.h" /* Thanks to Mike Haertel and Jim Avera for this test. @@ -3252,24 +3288,11 @@ else #include <fcntl.h> #include <sys/mman.h> -#if HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif - -#if HAVE_STDLIB_H -# include <stdlib.h> -#endif - -#if HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif - -#if HAVE_UNISTD_H -# include <unistd.h> -#endif - /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE +# ifdef HAVE_UNISTD_H +# include <unistd.h> +# endif /* Assume that all systems that can run configure have sys/param.h. */ # ifndef HAVE_SYS_PARAM_H @@ -3377,7 +3400,7 @@ main() } EOF -if { (eval echo configure:3381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3404: \"$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 @@ -3405,17 +3428,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:3409: checking for $ac_hdr" >&5 +echo "configure:3432: 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 3414 "configure" +#line 3437 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3419: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3442: \"$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* @@ -3445,12 +3468,12 @@ done __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3449: checking for $ac_func" >&5 +echo "configure:3472: 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 3454 "configure" +#line 3477 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3473,7 +3496,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3500: \"$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 @@ -3502,12 +3525,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3506: checking for $ac_func" >&5 +echo "configure:3529: 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 3511 "configure" +#line 3534 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3530,7 +3553,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3557: \"$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 @@ -3564,19 +3587,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:3568: checking for LC_MESSAGES" >&5 +echo "configure:3591: 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 3573 "configure" +#line 3596 "configure" #include "confdefs.h" #include <locale.h> int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:3580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3603: \"$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 @@ -3597,7 +3620,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:3601: checking whether NLS is requested" >&5 +echo "configure:3624: 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" @@ -3617,7 +3640,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:3621: checking whether included gettext is requested" >&5 +echo "configure:3644: 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" @@ -3636,17 +3659,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:3640: checking for libintl.h" >&5 +echo "configure:3663: 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 3645 "configure" +#line 3668 "configure" #include "confdefs.h" #include <libintl.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3650: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3673: \"$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* @@ -3663,19 +3686,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:3667: checking for gettext in libc" >&5 +echo "configure:3690: 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 3672 "configure" +#line 3695 "configure" #include "confdefs.h" #include <libintl.h> int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:3679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3702: \"$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 @@ -3691,7 +3714,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:3695: checking for bindtextdomain in -lintl" >&5 +echo "configure:3718: 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 @@ -3699,7 +3722,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <<EOF -#line 3703 "configure" +#line 3726 "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 @@ -3710,7 +3733,7 @@ int main() { bindtextdomain() ; return 0; } EOF -if { (eval echo configure:3714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3737: \"$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 @@ -3726,19 +3749,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:3730: checking for gettext in libintl" >&5 +echo "configure:3753: 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 3735 "configure" +#line 3758 "configure" #include "confdefs.h" int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:3742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3765: \"$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 @@ -3766,7 +3789,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:3770: checking for $ac_word" >&5 +echo "configure:3793: 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 @@ -3800,12 +3823,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3804: checking for $ac_func" >&5 +echo "configure:3827: 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 3809 "configure" +#line 3832 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3828,7 +3851,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3855: \"$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 @@ -3855,7 +3878,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:3859: checking for $ac_word" >&5 +echo "configure:3882: 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 @@ -3891,7 +3914,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:3895: checking for $ac_word" >&5 +echo "configure:3918: 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 @@ -3923,7 +3946,7 @@ else fi cat > conftest.$ac_ext <<EOF -#line 3927 "configure" +#line 3950 "configure" #include "confdefs.h" int main() { @@ -3931,7 +3954,7 @@ extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:3935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -3963,7 +3986,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:3967: checking for $ac_word" >&5 +echo "configure:3990: 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 @@ -3997,7 +4020,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:4001: checking for $ac_word" >&5 +echo "configure:4024: 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 @@ -4033,7 +4056,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:4037: checking for $ac_word" >&5 +echo "configure:4060: 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 @@ -4123,7 +4146,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:4127: checking for catalogs to be installed" >&5 +echo "configure:4150: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -4151,17 +4174,17 @@ echo "configure:4127: 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:4155: checking for linux/version.h" >&5 +echo "configure:4178: 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 4160 "configure" +#line 4183 "configure" #include "confdefs.h" #include <linux/version.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4165: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4188: \"$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* @@ -4226,7 +4249,7 @@ fi echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:4230: checking for executable suffix" >&5 +echo "configure:4253: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4236,10 +4259,10 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:4240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:4263: \"$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 @@ -4262,7 +4285,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4266: checking for $ac_word" >&5 +echo "configure:4289: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4298,7 +4321,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4302: checking for $ac_word" >&5 +echo "configure:4325: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4331,7 +4354,7 @@ test -n "$LEX" || LEX=""$missing_dir/missing flex"" # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4335: checking for $ac_word" >&5 +echo "configure:4358: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4365,7 +4388,7 @@ then *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 -echo "configure:4369: checking for yywrap in -l$ac_lib" >&5 +echo "configure:4392: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4373,7 +4396,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext <<EOF -#line 4377 "configure" +#line 4400 "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 @@ -4384,7 +4407,7 @@ int main() { yywrap() ; return 0; } EOF -if { (eval echo configure:4388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4411: \"$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 @@ -4407,7 +4430,7 @@ fi fi echo $ac_n "checking lex output file root""... $ac_c" 1>&6 -echo "configure:4411: checking lex output file root" >&5 +echo "configure:4434: checking lex output file root" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4428,7 +4451,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6 -echo "configure:4432: checking whether yytext is a pointer" >&5 +echo "configure:4455: checking whether yytext is a pointer" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4440,14 +4463,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c ac_save_LIBS="$LIBS" LIBS="$LIBS $LEXLIB" cat > conftest.$ac_ext <<EOF -#line 4444 "configure" +#line 4467 "configure" #include "confdefs.h" `cat $LEX_OUTPUT_ROOT.c` int main() { ; return 0; } EOF -if { (eval echo configure:4451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_prog_lex_yytext_pointer=yes else @@ -4470,7 +4493,7 @@ fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:4474: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:4497: 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" @@ -4504,17 +4527,17 @@ for ac_hdr in string.h strings.h stdlib.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:4508: checking for $ac_hdr" >&5 +echo "configure:4531: 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 4513 "configure" +#line 4536 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4518: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4541: \"$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* @@ -4543,12 +4566,12 @@ done for ac_func in sbrk do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4547: checking for $ac_func" >&5 +echo "configure:4570: 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 4552 "configure" +#line 4575 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4571,7 +4594,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4598: \"$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 @@ -4600,12 +4623,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:4604: checking for $ac_hdr that defines DIR" >&5 +echo "configure:4627: 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 4609 "configure" +#line 4632 "configure" #include "confdefs.h" #include <sys/types.h> #include <$ac_hdr> @@ -4613,7 +4636,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:4617: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -4638,7 +4661,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:4642: checking for opendir in -ldir" >&5 +echo "configure:4665: 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 @@ -4646,7 +4669,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <<EOF -#line 4650 "configure" +#line 4673 "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 @@ -4657,7 +4680,7 @@ int main() { opendir() ; return 0; } EOF -if { (eval echo configure:4661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4684: \"$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 @@ -4679,7 +4702,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:4683: checking for opendir in -lx" >&5 +echo "configure:4706: 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 @@ -4687,7 +4710,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <<EOF -#line 4691 "configure" +#line 4714 "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 @@ -4698,7 +4721,7 @@ int main() { opendir() ; return 0; } EOF -if { (eval echo configure:4702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4725: \"$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 @@ -4731,12 +4754,12 @@ EOF esac echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6 -echo "configure:4735: checking whether strstr must be declared" >&5 +echo "configure:4758: 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 4740 "configure" +#line 4763 "configure" #include "confdefs.h" #include <stdio.h> @@ -4757,7 +4780,7 @@ int main() { char *(*pfn) = (char *(*)) strstr ; return 0; } EOF -if { (eval echo configure:4761: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_strstr=no else @@ -4778,12 +4801,12 @@ EOF fi echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6 -echo "configure:4782: checking whether free must be declared" >&5 +echo "configure:4805: 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 4787 "configure" +#line 4810 "configure" #include "confdefs.h" #include <stdio.h> @@ -4804,7 +4827,7 @@ int main() { char *(*pfn) = (char *(*)) free ; return 0; } EOF -if { (eval echo configure:4808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4831: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_free=no else @@ -4825,12 +4848,12 @@ EOF fi echo $ac_n "checking whether sbrk must be declared""... $ac_c" 1>&6 -echo "configure:4829: checking whether sbrk must be declared" >&5 +echo "configure:4852: checking whether sbrk must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_sbrk'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4834 "configure" +#line 4857 "configure" #include "confdefs.h" #include <stdio.h> @@ -4851,7 +4874,7 @@ int main() { char *(*pfn) = (char *(*)) sbrk ; return 0; } EOF -if { (eval echo configure:4855: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4878: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_sbrk=no else @@ -4872,12 +4895,12 @@ EOF fi echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6 -echo "configure:4876: checking whether getenv must be declared" >&5 +echo "configure:4899: 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 4881 "configure" +#line 4904 "configure" #include "confdefs.h" #include <stdio.h> @@ -4898,7 +4921,7 @@ int main() { char *(*pfn) = (char *(*)) getenv ; return 0; } EOF -if { (eval echo configure:4902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4925: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_getenv=no else @@ -4919,12 +4942,12 @@ EOF fi echo $ac_n "checking whether environ must be declared""... $ac_c" 1>&6 -echo "configure:4923: checking whether environ must be declared" >&5 +echo "configure:4946: checking whether environ must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_environ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4928 "configure" +#line 4951 "configure" #include "confdefs.h" #include <stdio.h> @@ -4945,7 +4968,7 @@ int main() { char *(*pfn) = (char *(*)) environ ; return 0; } EOF -if { (eval echo configure:4949: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4972: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_environ=no else @@ -4973,19 +4996,19 @@ fi # constants, while still supporting pre-ANSI compilers which do not # support string concatenation. echo $ac_n "checking whether ANSI C string concatenation works""... $ac_c" 1>&6 -echo "configure:4977: checking whether ANSI C string concatenation works" >&5 +echo "configure:5000: checking whether ANSI C string concatenation works" >&5 if eval "test \"`echo '$''{'ld_cv_string_concatenation'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4982 "configure" +#line 5005 "configure" #include "confdefs.h" int main() { char *a = "a" "a"; ; return 0; } EOF -if { (eval echo configure:4989: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ld_cv_string_concatenation=yes else diff --git a/contrib/binutils/ld/emulparams/armelf_fbsd.sh b/contrib/binutils/ld/emulparams/armelf_fbsd.sh new file mode 100644 index 0000000..52da345 --- /dev/null +++ b/contrib/binutils/ld/emulparams/armelf_fbsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/armelf.sh +. ${srcdir}/emulparams/elf_fbsd.sh diff --git a/contrib/binutils/ld/emulparams/elf32ppc_fbsd.sh b/contrib/binutils/ld/emulparams/elf32ppc_fbsd.sh new file mode 100644 index 0000000..2bac85c --- /dev/null +++ b/contrib/binutils/ld/emulparams/elf32ppc_fbsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/elf32ppc.sh +. ${srcdir}/emulparams/elf_fbsd.sh diff --git a/contrib/binutils/ld/emulparams/elf64_ia64.sh b/contrib/binutils/ld/emulparams/elf64_ia64.sh index 0699d3d..b659a7c 100644 --- a/contrib/binutils/ld/emulparams/elf64_ia64.sh +++ b/contrib/binutils/ld/emulparams/elf64_ia64.sh @@ -17,5 +17,5 @@ OTHER_PLT_RELOC_SECTIONS=" .rela.IA_64.pltoff ${RELOCATING-0} : { *(.rela.IA_64.pltoff) }" OTHER_READONLY_SECTIONS=" .opd ${RELOCATING-0} : { *(.opd) } - .IA_64.unwind_info ${RELOCATING-0} : { *(.IA_64.unwind_info*${RELOCATING+ .gnu.linkonce.ia64unwi.*}) } - .IA_64.unwind ${RELOCATING-0} : { *(.IA_64.unwind*${RELOCATING+ .gnu.linkonce.ia64unw.*}) }" + .IA_64.unwind_info ${RELOCATING-0} : { *(.IA_64.unwind_info${RELOCATING+* .gnu.linkonce.ia64unwi.*}) } + .IA_64.unwind ${RELOCATING-0} : { *(.IA_64.unwind${RELOCATING+* .gnu.linkonce.ia64unw.*}) }" diff --git a/contrib/binutils/ld/emulparams/elf64_ia64_fbsd.sh b/contrib/binutils/ld/emulparams/elf64_ia64_fbsd.sh new file mode 100644 index 0000000..d9c9600 --- /dev/null +++ b/contrib/binutils/ld/emulparams/elf64_ia64_fbsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/elf64_ia64.sh +. ${srcdir}/emulparams/elf_fbsd.sh diff --git a/contrib/binutils/ld/emulparams/elf64_sparc_fbsd.sh b/contrib/binutils/ld/emulparams/elf64_sparc_fbsd.sh new file mode 100644 index 0000000..232a321 --- /dev/null +++ b/contrib/binutils/ld/emulparams/elf64_sparc_fbsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/elf64_sparc.sh +. ${srcdir}/emulparams/elf_fbsd.sh diff --git a/contrib/binutils/ld/emulparams/elf64alpha_fbsd.sh b/contrib/binutils/ld/emulparams/elf64alpha_fbsd.sh new file mode 100644 index 0000000..37fbfa2 --- /dev/null +++ b/contrib/binutils/ld/emulparams/elf64alpha_fbsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/elf64alpha.sh +. ${srcdir}/emulparams/elf_fbsd.sh diff --git a/contrib/binutils/ld/emulparams/elf_fbsd.sh b/contrib/binutils/ld/emulparams/elf_fbsd.sh new file mode 100644 index 0000000..2ea646e --- /dev/null +++ b/contrib/binutils/ld/emulparams/elf_fbsd.sh @@ -0,0 +1 @@ +ELF_INTERPRETER_NAME=\"/usr/libexec/ld-elf.so.1\" diff --git a/contrib/binutils/ld/emulparams/elf_i386_fbsd.sh b/contrib/binutils/ld/emulparams/elf_i386_fbsd.sh new file mode 100644 index 0000000..237145a --- /dev/null +++ b/contrib/binutils/ld/emulparams/elf_i386_fbsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/elf_i386.sh +. ${srcdir}/emulparams/elf_fbsd.sh diff --git a/contrib/binutils/ld/emulparams/elf_x86_64_fbsd.sh b/contrib/binutils/ld/emulparams/elf_x86_64_fbsd.sh new file mode 100644 index 0000000..34258cb --- /dev/null +++ b/contrib/binutils/ld/emulparams/elf_x86_64_fbsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/elf_x86_64.sh +. ${srcdir}/emulparams/elf_fbsd.sh diff --git a/contrib/binutils/ld/emulparams/sun4.sh b/contrib/binutils/ld/emulparams/sun4.sh new file mode 100644 index 0000000..bd42775 --- /dev/null +++ b/contrib/binutils/ld/emulparams/sun4.sh @@ -0,0 +1,8 @@ +SCRIPT_NAME=aout +OUTPUT_FORMAT="a.out-sunos-big" +TEXT_START_ADDR=0x2020 +TARGET_PAGE_SIZE=0x2000 +NONPAGED_TEXT_START_ADDR=0x2000 +ALIGNMENT=8 +ARCH=sparc +TEMPLATE_NAME=sunos diff --git a/contrib/binutils/ld/emultempl/ppc64elf.em b/contrib/binutils/ld/emultempl/ppc64elf.em index 655ddea..27b20ce 100644 --- a/contrib/binutils/ld/emultempl/ppc64elf.em +++ b/contrib/binutils/ld/emultempl/ppc64elf.em @@ -47,6 +47,11 @@ gld${EMULATION_NAME}_after_allocation () static void gld${EMULATION_NAME}_finish () { + /* e_entry on PowerPC64 points to the function descriptor for + _start. If _start is missing, default to the first function + descriptor in the .opd section. */ + entry_section = ".opd"; + /* If generating a relocatable output file, then we don't have any stubs. */ if (link_info.relocateable) @@ -76,6 +81,8 @@ gld${EMULATION_NAME}_finish () need to adjust the stub size again. */ need_laying_out = 0; + lang_reset_memory_regions (); + /* Resize the sections. */ lang_size_sections (stat_ptr->head, abs_output_section, &stat_ptr->head, 0, (bfd_vma) 0, NULL); diff --git a/contrib/binutils/ld/emultempl/sunos.em b/contrib/binutils/ld/emultempl/sunos.em new file mode 100644 index 0000000..17cd407 --- /dev/null +++ b/contrib/binutils/ld/emultempl/sunos.em @@ -0,0 +1,1055 @@ +# This shell script emits a C file. -*- C -*- +# It does some substitutions. +if [ -z "$MACHINE" ]; then + OUTPUT_ARCH=${ARCH} +else + OUTPUT_ARCH=${ARCH}:${MACHINE} +fi +cat >e${EMULATION_NAME}.c <<EOF +/* This file is is generated by a shell script. DO NOT EDIT! */ + +/* SunOS emulation code for ${EMULATION_NAME} + Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 + Free Software Foundation, Inc. + Written by Steve Chamberlain <sac@cygnus.com> + SunOS shared library support by Ian Lance Taylor <ian@cygnus.com> + +This file is part of GLD, the Gnu Linker. + +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. */ + +#define TARGET_IS_${EMULATION_NAME} + +#include "bfd.h" +#include "sysdep.h" +#include "bfdlink.h" +#include "libiberty.h" +#include "safe-ctype.h" + +#include "ld.h" +#include "ldmain.h" +#include "ldmisc.h" +#include "ldexp.h" +#include "ldlang.h" +#include "ldfile.h" +#include "ldemul.h" + +#ifdef HAVE_DIRENT_H +# include <dirent.h> +#else +# define dirent direct +# ifdef HAVE_SYS_NDIR_H +# include <sys/ndir.h> +# endif +# ifdef HAVE_SYS_DIR_H +# include <sys/dir.h> +# endif +# ifdef HAVE_NDIR_H +# include <ndir.h> +# endif +#endif + +static void gld${EMULATION_NAME}_before_parse PARAMS ((void)); +static void gld${EMULATION_NAME}_set_symbols PARAMS ((void)); +static void gld${EMULATION_NAME}_create_output_section_statements + PARAMS ((void)); +static void gld${EMULATION_NAME}_find_so + PARAMS ((lang_input_statement_type *)); +static char *gld${EMULATION_NAME}_search_dir + PARAMS ((const char *, const char *, boolean *)); +static void gld${EMULATION_NAME}_after_open PARAMS ((void)); +static void gld${EMULATION_NAME}_check_needed + PARAMS ((lang_input_statement_type *)); +static boolean gld${EMULATION_NAME}_search_needed + PARAMS ((const char *, const char *)); +static boolean gld${EMULATION_NAME}_try_needed + PARAMS ((const char *, const char *)); +static void gld${EMULATION_NAME}_before_allocation PARAMS ((void)); +static void gld${EMULATION_NAME}_find_assignment + PARAMS ((lang_statement_union_type *)); +static void gld${EMULATION_NAME}_find_exp_assignment PARAMS ((etree_type *)); +static void gld${EMULATION_NAME}_count_need + PARAMS ((lang_input_statement_type *)); +static void gld${EMULATION_NAME}_set_need + PARAMS ((lang_input_statement_type *)); +static char *gld${EMULATION_NAME}_get_script PARAMS ((int *isfile)); + +static void +gld${EMULATION_NAME}_before_parse() +{ + const bfd_arch_info_type *arch = bfd_scan_arch ("${OUTPUT_ARCH}"); + if (arch) + { + ldfile_output_architecture = arch->arch; + ldfile_output_machine = arch->mach; + ldfile_output_machine_name = arch->printable_name; + } + else + ldfile_output_architecture = bfd_arch_${ARCH}; + config.dynamic_link = true; + config.has_shared = true; +} + +/* This is called after the command line arguments have been parsed, + but before the linker script has been read. If this is a native + linker, we add the directories in LD_LIBRARY_PATH to the search + list. */ + +static void +gld${EMULATION_NAME}_set_symbols () +{ +EOF +if [ "x${host}" = "x${target}" ] ; then + case " ${EMULATION_LIBPATH} " in + *" ${EMULATION_NAME} "*) +cat >>e${EMULATION_NAME}.c <<EOF + const char *env; + + env = (const char *) getenv ("LD_LIBRARY_PATH"); + if (env != NULL) + { + char *l; + + l = xstrdup (env); + while (1) + { + char *c; + + c = strchr (l, ':'); + if (c != NULL) + *c++ = '\0'; + if (*l != '\0') + ldfile_add_library_path (l, false); + if (c == NULL) + break; + l = c; + } + } +EOF + ;; + esac +fi +cat >>e${EMULATION_NAME}.c <<EOF +} + +/* Despite the name, we use this routine to search for dynamic + libraries. On SunOS this requires a directory search. We need to + find the .so file with the highest version number. The user may + restrict the major version by saying, e.g., -lc.1. Also, if we + find a .so file, we need to look for a the same file after + replacing .so with .sa; if it exists, it will be an archive which + provide some initializations for data symbols, and we need to + search it after including the .so file. */ + +static void +gld${EMULATION_NAME}_create_output_section_statements () +{ + lang_for_each_input_file (gld${EMULATION_NAME}_find_so); +} + +/* Search the directory for a .so file for each library search. */ + +static void +gld${EMULATION_NAME}_find_so (inp) + lang_input_statement_type *inp; +{ + search_dirs_type *search; + char *found = NULL; + char *alc; + struct stat st; + + if (! inp->search_dirs_flag + || ! inp->is_archive + || ! inp->dynamic) + return; + + ASSERT (strncmp (inp->local_sym_name, "-l", 2) == 0); + + for (search = search_head; search != NULL; search = search->next) + { + boolean found_static; + + found = gld${EMULATION_NAME}_search_dir (search->name, inp->filename, + &found_static); + if (found != NULL || found_static) + break; + } + + if (found == NULL) + { + /* We did not find a matching .so file. This isn't an error, + since there might still be a matching .a file, which will be + found by the usual search. */ + return; + } + + /* Replace the filename with the one we have found. */ + alc = (char *) xmalloc (strlen (search->name) + strlen (found) + 2); + sprintf (alc, "%s/%s", search->name, found); + inp->filename = alc; + + /* Turn off the search_dirs_flag to prevent ldfile_open_file from + searching for this file again. */ + inp->search_dirs_flag = false; + + free (found); + + /* Now look for the same file name, but with .sa instead of .so. If + found, add it to the list of input files. */ + alc = (char *) xmalloc (strlen (inp->filename) + 1); + strcpy (alc, inp->filename); + strstr (alc + strlen (search->name), ".so")[2] = 'a'; + if (stat (alc, &st) != 0) + free (alc); + else + { + lang_input_statement_type *sa; + + /* Add the .sa file to the statement list just before the .so + file. This is really a hack. */ + sa = ((lang_input_statement_type *) + xmalloc (sizeof (lang_input_statement_type))); + *sa = *inp; + + inp->filename = alc; + inp->local_sym_name = alc; + + inp->header.next = (lang_statement_union_type *) sa; + inp->next_real_file = (lang_statement_union_type *) sa; + } +} + +/* Search a directory for a .so file. */ + +static char * +gld${EMULATION_NAME}_search_dir (dirname, filename, found_static) + const char *dirname; + const char *filename; + boolean *found_static; +{ + int force_maj, force_min; + const char *dot; + unsigned int len; + char *alc; + char *found; + int max_maj, max_min; + DIR *dir; + struct dirent *entry; + unsigned int dirnamelen; + char *full_path; + int statval; + struct stat st; + + *found_static = false; + + force_maj = -1; + force_min = -1; + dot = strchr (filename, '.'); + if (dot == NULL) + { + len = strlen (filename); + alc = NULL; + } + else + { + force_maj = atoi (dot + 1); + + len = dot - filename; + alc = (char *) xmalloc (len + 1); + strncpy (alc, filename, len); + alc[len] = '\0'; + filename = alc; + + dot = strchr (dot + 1, '.'); + if (dot != NULL) + force_min = atoi (dot + 1); + } + + found = NULL; + max_maj = max_min = 0; + + dir = opendir (dirname); + if (dir == NULL) + return NULL; + dirnamelen = strlen (dirname); + + while ((entry = readdir (dir)) != NULL) + { + const char *s; + int found_maj, found_min; + + if (strncmp (entry->d_name, "lib", 3) != 0 + || strncmp (entry->d_name + 3, filename, len) != 0) + continue; + + if (dot == NULL + && strcmp (entry->d_name + 3 + len, ".a") == 0) + { + *found_static = true; + continue; + } + + /* We accept libfoo.so without a version number, even though the + native linker does not. This is more convenient for packages + which just generate .so files for shared libraries, as on ELF + systems. */ + if (strncmp (entry->d_name + 3 + len, ".so", 3) != 0) + continue; + if (entry->d_name[6 + len] == '\0') + ; + else if (entry->d_name[6 + len] == '.' + && ISDIGIT (entry->d_name[7 + len])) + ; + else + continue; + + for (s = entry->d_name + 6 + len; *s != '\0'; s++) + if (*s != '.' && ! ISDIGIT (*s)) + break; + if (*s != '\0') + continue; + + /* We've found a .so file. Work out the major and minor + version numbers. */ + found_maj = 0; + found_min = 0; + sscanf (entry->d_name + 3 + len, ".so.%d.%d", + &found_maj, &found_min); + + if ((force_maj != -1 && force_maj != found_maj) + || (force_min != -1 && force_min != found_min)) + continue; + + /* Make sure the file really exists (ignore broken symlinks). */ + full_path = xmalloc (dirnamelen + 1 + strlen (entry->d_name) + 1); + sprintf (full_path, "%s/%s", dirname, entry->d_name); + statval = stat (full_path, &st); + free (full_path); + if (statval != 0) + continue; + + /* We've found a match for the name we are searching for. See + if this is the version we should use. If the major and minor + versions match, we use the last entry in alphabetical order; + I don't know if this is how SunOS distinguishes libc.so.1.8 + from libc.so.1.8.1, but it ought to suffice. */ + if (found == NULL + || (found_maj > max_maj) + || (found_maj == max_maj + && (found_min > max_min + || (found_min == max_min + && strcmp (entry->d_name, found) > 0)))) + { + if (found != NULL) + free (found); + found = (char *) xmalloc (strlen (entry->d_name) + 1); + strcpy (found, entry->d_name); + max_maj = found_maj; + max_min = found_min; + } + } + + closedir (dir); + + if (alc != NULL) + free (alc); + + return found; +} + +/* These variables are required to pass information back and forth + between after_open and check_needed. */ + +static struct bfd_link_needed_list *global_needed; +static boolean global_found; + +/* This is called after all the input files have been opened. */ + +static void +gld${EMULATION_NAME}_after_open () +{ + struct bfd_link_needed_list *needed, *l; + + /* We only need to worry about this when doing a final link. */ + if (link_info.relocateable || link_info.shared) + return; + + /* Get the list of files which appear in ld_need entries in dynamic + objects included in the link. For each such file, we want to + track down the corresponding library, and include the symbol + table in the link. This is what the runtime dynamic linker will + do. Tracking the files down here permits one dynamic object to + include another without requiring special action by the person + doing the link. Note that the needed list can actually grow + while we are stepping through this loop. */ + needed = bfd_sunos_get_needed_list (output_bfd, &link_info); + for (l = needed; l != NULL; l = l->next) + { + struct bfd_link_needed_list *ll; + const char *lname; + search_dirs_type *search; + + lname = l->name; + + /* If we've already seen this file, skip it. */ + for (ll = needed; ll != l; ll = ll->next) + if (strcmp (ll->name, lname) == 0) + break; + if (ll != l) + continue; + + /* See if this file was included in the link explicitly. */ + global_needed = l; + global_found = false; + lang_for_each_input_file (gld${EMULATION_NAME}_check_needed); + if (global_found) + continue; + + if (strncmp (lname, "-l", 2) != 0) + { + bfd *abfd; + + abfd = bfd_openr (lname, bfd_get_target (output_bfd)); + if (abfd != NULL) + { + if (! bfd_check_format (abfd, bfd_object)) + { + (void) bfd_close (abfd); + abfd = NULL; + } + } + if (abfd != NULL) + { + if ((bfd_get_file_flags (abfd) & DYNAMIC) == 0) + { + (void) bfd_close (abfd); + abfd = NULL; + } + } + if (abfd != NULL) + { + /* We've found the needed dynamic object. */ + if (! bfd_link_add_symbols (abfd, &link_info)) + einfo ("%F%B: could not read symbols: %E\n", abfd); + } + else + { + einfo ("%P: warning: %s, needed by %B, not found\n", + lname, l->by); + } + + continue; + } + + lname += 2; + + /* We want to search for the file in the same way that the + dynamic linker will search. That means that we want to use + rpath_link, rpath or -L, then the environment variable + LD_LIBRARY_PATH (native only), then (if rpath was used) the + linker script LIB_SEARCH_DIRS. */ + if (gld${EMULATION_NAME}_search_needed (command_line.rpath_link, + lname)) + continue; + if (command_line.rpath != NULL) + { + if (gld${EMULATION_NAME}_search_needed (command_line.rpath, lname)) + continue; + } + else + { + for (search = search_head; search != NULL; search = search->next) + if (gld${EMULATION_NAME}_try_needed (search->name, lname)) + break; + if (search != NULL) + continue; + } +EOF +if [ "x${host}" = "x${target}" ] ; then + case " ${EMULATION_LIBPATH} " in + *" ${EMULATION_NAME} "*) +cat >>e${EMULATION_NAME}.c <<EOF + { + const char *lib_path; + + lib_path = (const char *) getenv ("LD_LIBRARY_PATH"); + if (gld${EMULATION_NAME}_search_needed (lib_path, lname)) + continue; + } +EOF + ;; + esac +fi +cat >>e${EMULATION_NAME}.c <<EOF + if (command_line.rpath != NULL) + { + for (search = search_head; search != NULL; search = search->next) + { + if (search->cmdline) + continue; + if (gld${EMULATION_NAME}_try_needed (search->name, lname)) + break; + } + if (search != NULL) + continue; + } + + einfo ("%P: warning: %s, needed by %B, not found\n", + l->name, l->by); + } +} + +/* Search for a needed file in a path. */ + +static boolean +gld${EMULATION_NAME}_search_needed (path, name) + const char *path; + const char *name; +{ + const char *s; + + if (path == NULL || *path == '\0') + return false; + while (1) + { + const char *dir; + char *dircopy; + + s = strchr (path, ':'); + if (s == NULL) + { + dircopy = NULL; + dir = path; + } + else + { + dircopy = (char *) xmalloc (s - path + 1); + memcpy (dircopy, path, s - path); + dircopy[s - path] = '\0'; + dir = dircopy; + } + + if (gld${EMULATION_NAME}_try_needed (dir, name)) + return true; + + if (dircopy != NULL) + free (dircopy); + + if (s == NULL) + break; + path = s + 1; + } + + return false; +} + +/* This function is called for each possible directory for a needed + dynamic object. */ + +static boolean +gld${EMULATION_NAME}_try_needed (dir, name) + const char *dir; + const char *name; +{ + char *file; + char *alc; + boolean ignore; + bfd *abfd; + + file = gld${EMULATION_NAME}_search_dir (dir, name, &ignore); + if (file == NULL) + return false; + + alc = (char *) xmalloc (strlen (dir) + strlen (file) + 2); + sprintf (alc, "%s/%s", dir, file); + free (file); + abfd = bfd_openr (alc, bfd_get_target (output_bfd)); + if (abfd == NULL) + return false; + if (! bfd_check_format (abfd, bfd_object)) + { + (void) bfd_close (abfd); + return false; + } + if ((bfd_get_file_flags (abfd) & DYNAMIC) == 0) + { + (void) bfd_close (abfd); + return false; + } + + /* We've found the needed dynamic object. */ + + /* Add this file into the symbol table. */ + if (! bfd_link_add_symbols (abfd, &link_info)) + einfo ("%F%B: could not read symbols: %E\n", abfd); + + return true; +} + +/* See if we have already included a needed object in the link. This + does not have to be precise, as it does no harm to include a + dynamic object more than once. */ + +static void +gld${EMULATION_NAME}_check_needed (s) + lang_input_statement_type *s; +{ + if (s->filename == NULL) + return; + if (strncmp (global_needed->name, "-l", 2) != 0) + { + if (strcmp (s->filename, global_needed->name) == 0) + global_found = true; + } + else + { + const char *sname, *lname; + const char *sdot, *ldot; + int lmaj, lmin, smaj, smin; + + lname = global_needed->name + 2; + + sname = strrchr (s->filename, '/'); + if (sname == NULL) + sname = s->filename; + else + ++sname; + + if (strncmp (sname, "lib", 3) != 0) + return; + sname += 3; + + ldot = strchr (lname, '.'); + if (ldot == NULL) + ldot = lname + strlen (lname); + + sdot = strstr (sname, ".so."); + if (sdot == NULL) + return; + + if (sdot - sname != ldot - lname + || strncmp (lname, sname, sdot - sname) != 0) + return; + + lmaj = lmin = -1; + sscanf (ldot, ".%d.%d", &lmaj, &lmin); + smaj = smin = -1; + sscanf (sdot, ".so.%d.%d", &smaj, &smin); + if ((smaj != lmaj && smaj != -1 && lmaj != -1) + || (smin != lmin && smin != -1 && lmin != -1)) + return; + + global_found = true; + } +} + +/* We need to use static variables to pass information around the call + to lang_for_each_statement. Ick. */ + +static const char *find_assign; +static boolean found_assign; + +/* We need to use static variables to pass information around the call + to lang_for_each_input_file. Ick. */ + +static bfd_size_type need_size; +static bfd_size_type need_entries; +static bfd_byte *need_contents; +static bfd_byte *need_pinfo; +static bfd_byte *need_pnames; + +/* The size of one entry in the .need section, not including the file + name. */ + +#define NEED_ENTRY_SIZE (16) + +/* This is called after the sections have been attached to output + sections, but before any sizes or addresses have been set. */ + +static void +gld${EMULATION_NAME}_before_allocation () +{ + struct bfd_link_hash_entry *hdyn = NULL; + asection *sneed; + asection *srules; + asection *sdyn; + + /* The SunOS native linker creates a shared library whenever there + are any undefined symbols in a link, unless -e is used. This is + pretty weird, but we are compatible. */ + if (! link_info.shared && ! link_info.relocateable && ! entry_from_cmdline) + { + struct bfd_link_hash_entry *h; + + for (h = link_info.hash->undefs; h != NULL; h = h->next) + { + if (h->type == bfd_link_hash_undefined + && h->u.undef.abfd != NULL + && (h->u.undef.abfd->flags & DYNAMIC) == 0 + && strcmp (h->root.string, "__DYNAMIC") != 0 + && strcmp (h->root.string, "__GLOBAL_OFFSET_TABLE_") != 0) + { + find_assign = h->root.string; + found_assign = false; + lang_for_each_statement (gld${EMULATION_NAME}_find_assignment); + if (! found_assign) + { + link_info.shared = true; + break; + } + } + } + } + + if (link_info.shared) + { + lang_output_section_statement_type *os; + + /* Set the .text section to start at 0x20, not 0x2020. FIXME: + This is too magical. */ + os = lang_output_section_statement_lookup (".text"); + if (os->addr_tree == NULL) + os->addr_tree = exp_intop (0x20); + } + + /* We need to create a __DYNAMIC symbol. We don't do this in the + linker script because we want to set the value to the start of + the dynamic section if there is one, or to zero if there isn't + one. We need to create the symbol before calling + size_dynamic_sections, although we can't set the value until + afterward. */ + if (! link_info.relocateable) + { + hdyn = bfd_link_hash_lookup (link_info.hash, "__DYNAMIC", true, false, + false); + if (hdyn == NULL) + einfo ("%P%F: bfd_link_hash_lookup: %E\n"); + if (! bfd_sunos_record_link_assignment (output_bfd, &link_info, + "__DYNAMIC")) + einfo ("%P%F: failed to record assignment to __DYNAMIC: %E\n"); + } + + /* If we are going to make any variable assignments, we need to let + the backend linker know about them in case the variables are + referred to by dynamic objects. */ + lang_for_each_statement (gld${EMULATION_NAME}_find_assignment); + + /* Let the backend linker work out the sizes of any sections + required by dynamic linking. */ + if (! bfd_sunos_size_dynamic_sections (output_bfd, &link_info, &sdyn, + &sneed, &srules)) + einfo ("%P%F: failed to set dynamic section sizes: %E\n"); + + if (sneed != NULL) + { + /* Set up the .need section. See the description of the ld_need + field in include/aout/sun4.h. */ + + need_entries = 0; + need_size = 0; + + lang_for_each_input_file (gld${EMULATION_NAME}_count_need); + + /* We should only have a .need section if we have at least one + dynamic object. */ + ASSERT (need_entries != 0); + + sneed->_raw_size = need_size; + sneed->contents = (bfd_byte *) xmalloc (need_size); + + need_contents = sneed->contents; + need_pinfo = sneed->contents; + need_pnames = sneed->contents + need_entries * 16; + + lang_for_each_input_file (gld${EMULATION_NAME}_set_need); + + ASSERT ((bfd_size_type) (need_pnames - sneed->contents) == need_size); + } + + if (srules != NULL) + { + /* Set up the .rules section. This is just a PATH like string + of the -L arguments given on the command line. We permit the + user to specify the directories using the -rpath command line + option. */ + if (command_line.rpath) + { + srules->_raw_size = strlen (command_line.rpath); + srules->contents = (bfd_byte *) command_line.rpath; + } + else + { + unsigned int size; + search_dirs_type *search; + + size = 0; + for (search = search_head; search != NULL; search = search->next) + if (search->cmdline) + size += strlen (search->name) + 1; + srules->_raw_size = size; + if (size > 0) + { + char *p; + + srules->contents = (bfd_byte *) xmalloc (size); + p = (char *) srules->contents; + *p = '\0'; + for (search = search_head; search != NULL; search = search->next) + { + if (search->cmdline) + { + if (p != (char *) srules->contents) + *p++ = ':'; + strcpy (p, search->name); + p += strlen (p); + } + } + } + } + } + + /* We must assign a value to __DYNAMIC. It should be zero if we are + not doing a dynamic link, or the start of the .dynamic section if + we are doing one. */ + if (! link_info.relocateable) + { + hdyn->type = bfd_link_hash_defined; + hdyn->u.def.value = 0; + if (sdyn != NULL) + hdyn->u.def.section = sdyn; + else + hdyn->u.def.section = bfd_abs_section_ptr; + } +} + +/* This is called by the before_allocation routine via + lang_for_each_statement. It does one of two things: if the + variable find_assign is set, it sets found_assign if it finds an + assignment to that variable; otherwise it tells the backend linker + about all assignment statements, in case they are assignments to + symbols which are referred to by dynamic objects. */ + +static void +gld${EMULATION_NAME}_find_assignment (s) + lang_statement_union_type *s; +{ + if (s->header.type == lang_assignment_statement_enum + && (find_assign == NULL || ! found_assign)) + gld${EMULATION_NAME}_find_exp_assignment (s->assignment_statement.exp); +} + +/* Look through an expression for an assignment statement. */ + +static void +gld${EMULATION_NAME}_find_exp_assignment (exp) + etree_type *exp; +{ + switch (exp->type.node_class) + { + case etree_assign: + if (find_assign != NULL) + { + if (strcmp (find_assign, exp->assign.dst) == 0) + found_assign = true; + return; + } + + if (strcmp (exp->assign.dst, ".") != 0) + { + if (! bfd_sunos_record_link_assignment (output_bfd, &link_info, + exp->assign.dst)) + einfo ("%P%F: failed to record assignment to %s: %E\n", + exp->assign.dst); + } + gld${EMULATION_NAME}_find_exp_assignment (exp->assign.src); + break; + + case etree_binary: + gld${EMULATION_NAME}_find_exp_assignment (exp->binary.lhs); + gld${EMULATION_NAME}_find_exp_assignment (exp->binary.rhs); + break; + + case etree_trinary: + gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.cond); + gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.lhs); + gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.rhs); + break; + + case etree_unary: + gld${EMULATION_NAME}_find_exp_assignment (exp->unary.child); + break; + + default: + break; + } +} + +/* Work out the size of the .need section, and the number of entries. + The backend will set the ld_need field of the dynamic linking + information to point to the .need section. See include/aout/sun4.h + for more information. */ + +static void +gld${EMULATION_NAME}_count_need (inp) + lang_input_statement_type *inp; +{ + if (inp->the_bfd != NULL + && (inp->the_bfd->flags & DYNAMIC) != 0) + { + ++need_entries; + need_size += NEED_ENTRY_SIZE; + if (! inp->is_archive) + need_size += strlen (inp->filename) + 1; + else + { + ASSERT (inp->local_sym_name[0] == '-' + && inp->local_sym_name[1] == 'l'); + need_size += strlen (inp->local_sym_name + 2) + 1; + } + } +} + +/* Fill in the contents of the .need section. */ + +static void +gld${EMULATION_NAME}_set_need (inp) + lang_input_statement_type *inp; +{ + if (inp->the_bfd != NULL + && (inp->the_bfd->flags & DYNAMIC) != 0) + { + bfd_size_type c; + + /* To really fill in the .need section contents, we need to know + the final file position of the section, but we don't. + Instead, we use offsets, and rely on the BFD backend to + finish the section up correctly. FIXME: Talk about lack of + referential locality. */ + bfd_put_32 (output_bfd, need_pnames - need_contents, need_pinfo); + if (! inp->is_archive) + { + bfd_put_32 (output_bfd, (bfd_vma) 0, need_pinfo + 4); + bfd_put_16 (output_bfd, (bfd_vma) 0, need_pinfo + 8); + bfd_put_16 (output_bfd, (bfd_vma) 0, need_pinfo + 10); + strcpy (need_pnames, inp->filename); + } + else + { + char *verstr; + int maj, min; + + bfd_put_32 (output_bfd, (bfd_vma) 0x80000000, need_pinfo + 4); + maj = 0; + min = 0; + verstr = strstr (inp->filename, ".so."); + if (verstr != NULL) + sscanf (verstr, ".so.%d.%d", &maj, &min); + bfd_put_16 (output_bfd, (bfd_vma) maj, need_pinfo + 8); + bfd_put_16 (output_bfd, (bfd_vma) min, need_pinfo + 10); + strcpy (need_pnames, inp->local_sym_name + 2); + } + + c = (need_pinfo - need_contents) / NEED_ENTRY_SIZE; + if (c + 1 >= need_entries) + bfd_put_32 (output_bfd, (bfd_vma) 0, need_pinfo + 12); + else + bfd_put_32 (output_bfd, (bfd_vma) (c + 1) * NEED_ENTRY_SIZE, + need_pinfo + 12); + + need_pinfo += NEED_ENTRY_SIZE; + need_pnames += strlen (need_pnames) + 1; + } +} + +static char * +gld${EMULATION_NAME}_get_script(isfile) + int *isfile; +EOF + +if test -n "$COMPILE_IN" +then +# Scripts compiled in. + +# sed commands to quote an ld script as a C string. +sc="-f stringify.sed" + +cat >>e${EMULATION_NAME}.c <<EOF +{ + *isfile = 0; + + if (link_info.relocateable == true && config.build_constructors == true) + return +EOF +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c + +else +# Scripts read from the filesystem. + +cat >>e${EMULATION_NAME}.c <<EOF +{ + *isfile = 1; + + if (link_info.relocateable == true && config.build_constructors == true) + return "ldscripts/${EMULATION_NAME}.xu"; + else if (link_info.relocateable == true) + return "ldscripts/${EMULATION_NAME}.xr"; + else if (!config.text_read_only) + return "ldscripts/${EMULATION_NAME}.xbn"; + else if (!config.magic_demand_paged) + return "ldscripts/${EMULATION_NAME}.xn"; + else + return "ldscripts/${EMULATION_NAME}.x"; +} +EOF + +fi + +cat >>e${EMULATION_NAME}.c <<EOF + +struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = +{ + gld${EMULATION_NAME}_before_parse, + syslib_default, + hll_default, + after_parse_default, + gld${EMULATION_NAME}_after_open, + after_allocation_default, + set_output_arch_default, + ldemul_default_target, + gld${EMULATION_NAME}_before_allocation, + gld${EMULATION_NAME}_get_script, + "${EMULATION_NAME}", + "${OUTPUT_FORMAT}", + NULL, /* finish */ + gld${EMULATION_NAME}_create_output_section_statements, + NULL, /* open dynamic archive */ + NULL, /* place orphan */ + gld${EMULATION_NAME}_set_symbols, + NULL, /* parse args */ + NULL, /* unrecognized file */ + NULL, /* list options */ + NULL, /* recognized file */ + NULL /* find_potential_libraries */ +}; +EOF diff --git a/contrib/binutils/ld/ld.texinfo b/contrib/binutils/ld/ld.texinfo index 1069d03..8737126 100644 --- a/contrib/binutils/ld/ld.texinfo +++ b/contrib/binutils/ld/ld.texinfo @@ -1,7 +1,7 @@ \input texinfo @setfilename ld.info @c Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -@c 2001 Free Software Foundation, Inc. +@c 2001, 2002 Free Software Foundation, Inc. @syncodeindex ky cp @include configdoc.texi @c (configdoc.texi is generated by the Makefile) @@ -58,7 +58,7 @@ END-INFO-DIR-ENTRY This file documents the @sc{gnu} linker LD version @value{VERSION}. Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, -2001 Free Software Foundation, Inc. +2001, 2002 Free Software Foundation, Inc. @ignore @@ -1116,6 +1116,12 @@ Normally, the linker will not produce an output file if it encounters errors during the link process; it exits without writing an output file when it issues any error whatsoever. +@kindex -nostdlib +@item -nostdlib +Only search library directories explicitly specified on the +command line. Library directories specified in linker scripts +(including linker scripts specified on the command line) are ignored. + @ifclear SingleFormat @kindex --oformat @item --oformat @var{output-format} @@ -3666,7 +3672,10 @@ This example version script defines three version nodes. The first version node defined is @samp{VERS_1.1}; it has no other dependencies. The script binds the symbol @samp{foo1} to @samp{VERS_1.1}. It reduces a number of symbols to local scope so that they are not visible outside -of the shared library. +of the shared library; this is done using wildcard patterns, so that any +symbol whose name begins with @samp{old}, @samp{original}, or @samp{new} +is matched. The wildcard patterns available are the same as those used +in the shell when matching filenames (also known as ``globbing''). Next, the version script defines node @samp{VERS_1.2}. This node depends upon @samp{VERS_1.1}. The script binds the symbol @samp{foo2} diff --git a/contrib/binutils/ld/ldgram.y b/contrib/binutils/ld/ldgram.y index f1924a0..22dc1a8 100644 --- a/contrib/binutils/ld/ldgram.y +++ b/contrib/binutils/ld/ldgram.y @@ -1112,11 +1112,11 @@ vers_tag: vers_defns: VERS_IDENTIFIER { - $$ = lang_new_vers_regex (NULL, $1, ldgram_vers_current_lang); + $$ = lang_new_vers_pattern (NULL, $1, ldgram_vers_current_lang); } | vers_defns ';' VERS_IDENTIFIER { - $$ = lang_new_vers_regex ($1, $3, ldgram_vers_current_lang); + $$ = lang_new_vers_pattern ($1, $3, ldgram_vers_current_lang); } | EXTERN NAME '{' { diff --git a/contrib/binutils/ld/ldlang.c b/contrib/binutils/ld/ldlang.c index a7b53dd..a5b1dd7 100644 --- a/contrib/binutils/ld/ldlang.c +++ b/contrib/binutils/ld/ldlang.c @@ -132,7 +132,6 @@ static boolean lang_one_common PARAMS ((struct bfd_link_hash_entry *, PTR)); static void lang_place_orphans PARAMS ((void)); static int topower PARAMS ((int)); static void lang_set_startof PARAMS ((void)); -static void reset_memory_regions PARAMS ((void)); static void gc_section_callback PARAMS ((lang_wild_statement_type *, struct wildcard_list *, asection *, lang_input_statement_type *, PTR)); @@ -179,6 +178,7 @@ lang_statement_list_type lang_output_section_statement; lang_statement_list_type *stat_ptr = &statement_list; lang_statement_list_type file_chain = { NULL, NULL }; const char *entry_symbol = NULL; +const char *entry_section = ".text"; boolean entry_from_cmdline; boolean lang_has_input_file = false; boolean had_output_filename = false; @@ -3466,7 +3466,7 @@ lang_finish () /* Can't find the entry symbol, and it's not a number. Use the first address in the text section. */ - ts = bfd_get_section_by_name (output_bfd, ".text"); + ts = bfd_get_section_by_name (output_bfd, entry_section); if (ts != (asection *) NULL) { if (warn) @@ -3972,8 +3972,8 @@ lang_final () /* Reset the current counters in the regions. */ -static void -reset_memory_regions () +void +lang_reset_memory_regions () { lang_memory_region_type *p = lang_memory_region_list; asection *o; @@ -4160,7 +4160,7 @@ lang_process () do { - reset_memory_regions (); + lang_reset_memory_regions (); relax_again = false; @@ -4981,7 +4981,7 @@ lang_vers_match_lang_java (expr, sym) /* This is called for each variable name or match expression. */ struct bfd_elf_version_expr * -lang_new_vers_regex (orig, new, lang) +lang_new_vers_pattern (orig, new, lang) struct bfd_elf_version_expr *orig; const char *new; const char *lang; @@ -5154,7 +5154,7 @@ lang_do_version_exports_section () p = contents; while (p < contents + len) { - greg = lang_new_vers_regex (greg, p, NULL); + greg = lang_new_vers_pattern (greg, p, NULL); p = strchr (p, '\0') + 1; } @@ -5165,7 +5165,7 @@ lang_do_version_exports_section () bfd_get_section_flags (is->the_bfd, sec) | SEC_EXCLUDE); } - lreg = lang_new_vers_regex (NULL, "*", NULL); + lreg = lang_new_vers_pattern (NULL, "*", NULL); lang_register_vers_node (command_line.version_exports_section, lang_new_vers_node (greg, lreg), NULL); } diff --git a/contrib/binutils/ld/ldlang.h b/contrib/binutils/ld/ldlang.h index 983d34c..2089591 100644 --- a/contrib/binutils/ld/ldlang.h +++ b/contrib/binutils/ld/ldlang.h @@ -1,13 +1,13 @@ /* ldlang.h - linker command language support Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001 + 2001, 2002 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. GLD 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 1, or (at your option) + the Free Software Foundation; either version 2, or (at your option) any later version. GLD is distributed in the hope that it will be useful, @@ -356,6 +356,7 @@ extern lang_statement_list_type *stat_ptr; extern boolean delete_output_file_on_failure; extern const char *entry_symbol; +extern const char *entry_section; extern boolean entry_from_cmdline; extern lang_statement_list_type file_chain; @@ -402,6 +403,7 @@ extern void lang_for_each_input_file PARAMS ((void (*dothis) (lang_input_statement_type *))); extern void lang_for_each_file PARAMS ((void (*dothis) (lang_input_statement_type *))); +extern void lang_reset_memory_regions PARAMS ((void)); extern bfd_vma lang_do_assignments PARAMS ((lang_statement_union_type * s, lang_output_section_statement_type *output_section_statement, @@ -461,7 +463,7 @@ extern void lang_leave_overlay extern struct bfd_elf_version_tree *lang_elf_version_info; -extern struct bfd_elf_version_expr *lang_new_vers_regex +extern struct bfd_elf_version_expr *lang_new_vers_pattern PARAMS ((struct bfd_elf_version_expr *, const char *, const char *)); extern struct bfd_elf_version_tree *lang_new_vers_node PARAMS ((struct bfd_elf_version_expr *, struct bfd_elf_version_expr *)); diff --git a/contrib/binutils/ld/ldlex.l b/contrib/binutils/ld/ldlex.l index 0b15ca2..5b97f13 100644 --- a/contrib/binutils/ld/ldlex.l +++ b/contrib/binutils/ld/ldlex.l @@ -116,7 +116,7 @@ WHITE [ \t\n\r]+ NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~] V_TAG [.$_a-zA-Z][._a-zA-Z0-9]* -V_IDENTIFIER [*?.$_a-zA-Z]([*?.$_a-zA-Z0-9]|::)* +V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^]([*?.$_a-zA-Z0-9\[\]\-\!\^]|::)* %s SCRIPT %s EXPRESSION diff --git a/contrib/binutils/ld/ldmain.c b/contrib/binutils/ld/ldmain.c index eac23ae..12e31dd 100644 --- a/contrib/binutils/ld/ldmain.c +++ b/contrib/binutils/ld/ldmain.c @@ -1,5 +1,6 @@ /* Main program of GNU linker. - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002 Free Software Foundation, Inc. Written by Steve Chamberlain steve@cygnus.com @@ -54,6 +55,8 @@ extern PTR sbrk (); #endif #endif +int main PARAMS ((int, char **)); + static char *get_emulation PARAMS ((int, char **)); static void set_scripts_dir PARAMS ((void)); diff --git a/contrib/binutils/ld/lexsup.c b/contrib/binutils/ld/lexsup.c index ca2e9a1..230dd6b 100644 --- a/contrib/binutils/ld/lexsup.c +++ b/contrib/binutils/ld/lexsup.c @@ -1,6 +1,6 @@ /* Parse options for the GNU linker. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001 + 2001, 2002 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. @@ -53,10 +53,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) #endif -/* Omit args to avoid the possibility of clashing with a system header - that might disagree about consts. */ -unsigned long strtoul (); - static int is_num PARAMS ((const char *, int, int, int)); static void set_default_dirlist PARAMS ((char *dirlist_ptr)); static void set_section_start PARAMS ((char *sect, char *valstr)); diff --git a/contrib/binutils/ld/po/ld.pot b/contrib/binutils/ld/po/ld.pot index bff203ff..4bb918d 100644 --- a/contrib/binutils/ld/po/ld.pot +++ b/contrib/binutils/ld/po/ld.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-01-17 13:58+0000\n" +"POT-Creation-Date: 2002-02-08 04:11-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" @@ -271,8 +271,8 @@ msgstr "" msgid "Errors encountered processing file %s for interworking" msgstr "" -#: emultempl/pe.em:1297 ldlang.c:2050 ldlang.c:4441 ldlang.c:4474 -#: ldmain.c:1067 +#: emultempl/pe.em:1297 ldlang.c:2049 ldlang.c:4440 ldlang.c:4473 +#: ldmain.c:1069 msgid "%P%F: bfd_link_hash_lookup failed: %E\n" msgstr "" @@ -311,11 +311,11 @@ msgstr "" msgid "%B%F: could not read symbols; %E\n" msgstr "" -#: ldcref.c:469 ldmain.c:1133 ldmain.c:1137 +#: ldcref.c:469 ldmain.c:1135 ldmain.c:1139 msgid "%B%F: could not read symbols: %E\n" msgstr "" -#: ldcref.c:537 ldcref.c:544 ldmain.c:1183 ldmain.c:1190 +#: ldcref.c:537 ldcref.c:544 ldmain.c:1185 ldmain.c:1192 msgid "%B%F: could not read relocs: %E\n" msgstr "" @@ -478,206 +478,206 @@ msgstr "" msgid "%P%F: cannot represent machine `%s'\n" msgstr "" -#: ldlang.c:771 +#: ldlang.c:770 msgid "" "\n" "Memory Configuration\n" "\n" msgstr "" -#: ldlang.c:773 +#: ldlang.c:772 msgid "Name" msgstr "" -#: ldlang.c:773 +#: ldlang.c:772 msgid "Origin" msgstr "" -#: ldlang.c:773 +#: ldlang.c:772 msgid "Length" msgstr "" -#: ldlang.c:773 +#: ldlang.c:772 msgid "Attributes" msgstr "" -#: ldlang.c:815 +#: ldlang.c:814 msgid "" "\n" "Linker script and memory map\n" "\n" msgstr "" -#: ldlang.c:832 +#: ldlang.c:831 msgid "%P%F: Illegal use of `%s' section\n" msgstr "" -#: ldlang.c:842 +#: ldlang.c:841 msgid "%P%F: output format %s cannot represent section called %s\n" msgstr "" -#: ldlang.c:1004 +#: ldlang.c:1003 msgid "%P: %B: warning: ignoring duplicate section `%s'\n" msgstr "" -#: ldlang.c:1007 +#: ldlang.c:1006 msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n" msgstr "" -#: ldlang.c:1021 +#: ldlang.c:1020 msgid "%P: %B: warning: duplicate section `%s' has different size\n" msgstr "" -#: ldlang.c:1069 +#: ldlang.c:1068 msgid "%P%F: Failed to create hash table\n" msgstr "" -#: ldlang.c:1484 +#: ldlang.c:1483 msgid "%B: file not recognized: %E\n" msgstr "" -#: ldlang.c:1485 +#: ldlang.c:1484 msgid "%B: matching formats:" msgstr "" -#: ldlang.c:1492 +#: ldlang.c:1491 msgid "%F%B: file not recognized: %E\n" msgstr "" -#: ldlang.c:1548 +#: ldlang.c:1547 msgid "%F%B: member %B in archive is not an object\n" msgstr "" -#: ldlang.c:1559 ldlang.c:1573 +#: ldlang.c:1558 ldlang.c:1572 msgid "%F%B: could not read symbols: %E\n" msgstr "" -#: ldlang.c:1834 +#: ldlang.c:1833 msgid "" "%P: warning: could not find any targets that match endianness requirement\n" msgstr "" -#: ldlang.c:1847 +#: ldlang.c:1846 msgid "%P%F: target %s not found\n" msgstr "" -#: ldlang.c:1849 +#: ldlang.c:1848 msgid "%P%F: cannot open output file %s: %E\n" msgstr "" -#: ldlang.c:1859 +#: ldlang.c:1858 msgid "%P%F:%s: can not make object file: %E\n" msgstr "" -#: ldlang.c:1863 +#: ldlang.c:1862 msgid "%P%F:%s: can not set architecture: %E\n" msgstr "" -#: ldlang.c:1867 +#: ldlang.c:1866 msgid "%P%F: can not create link hash table: %E\n" msgstr "" -#: ldlang.c:2169 +#: ldlang.c:2168 msgid " load address 0x%V" msgstr "" -#: ldlang.c:2299 +#: ldlang.c:2298 msgid "%W (size before relaxing)\n" msgstr "" -#: ldlang.c:2381 +#: ldlang.c:2380 #, c-format msgid "Address of section %s set to " msgstr "" -#: ldlang.c:2535 +#: ldlang.c:2534 #, c-format msgid "Fail with %d\n" msgstr "" -#: ldlang.c:2777 +#: ldlang.c:2776 msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n" msgstr "" -#: ldlang.c:2806 +#: ldlang.c:2805 msgid "%X%P: address 0x%v of %B section %s is not within region %s\n" msgstr "" -#: ldlang.c:2814 +#: ldlang.c:2813 msgid "%X%P: region %s is full (%B section %s)\n" msgstr "" -#: ldlang.c:2864 +#: ldlang.c:2863 msgid "%P%X: Internal error on COFF shared library section %s\n" msgstr "" -#: ldlang.c:2906 +#: ldlang.c:2905 msgid "%P: warning: no memory region specified for section `%s'\n" msgstr "" -#: ldlang.c:2921 +#: ldlang.c:2920 msgid "%P: warning: changing start of section %s by %u bytes\n" msgstr "" -#: ldlang.c:2935 +#: ldlang.c:2934 msgid "%F%S: non constant address expression for section %s\n" msgstr "" -#: ldlang.c:2999 +#: ldlang.c:2998 msgid "%X%P: use an absolute load address or a load memory region, not both\n" msgstr "" -#: ldlang.c:3114 +#: ldlang.c:3113 msgid "%P%F: can't relax section: %E\n" msgstr "" -#: ldlang.c:3273 +#: ldlang.c:3272 msgid "%F%P: invalid data statement\n" msgstr "" -#: ldlang.c:3310 +#: ldlang.c:3309 msgid "%F%P: invalid reloc statement\n" msgstr "" -#: ldlang.c:3448 +#: ldlang.c:3447 msgid "%P%F:%s: can't set start address\n" msgstr "" -#: ldlang.c:3461 ldlang.c:3478 +#: ldlang.c:3460 ldlang.c:3477 msgid "%P%F: can't set start address\n" msgstr "" -#: ldlang.c:3473 +#: ldlang.c:3472 msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n" msgstr "" -#: ldlang.c:3483 +#: ldlang.c:3482 msgid "%P: warning: cannot find entry symbol %s; not setting start address\n" msgstr "" -#: ldlang.c:3525 +#: ldlang.c:3524 msgid "" "%P: warning: %s architecture of input file `%B' is incompatible with %s " "output\n" msgstr "" -#: ldlang.c:3538 +#: ldlang.c:3537 msgid "" "%P%F: Relocatable linking with relocations from format %s (%B) to format %s " "(%B) is not supported\n" msgstr "" -#: ldlang.c:3558 +#: ldlang.c:3557 msgid "%E%X: failed to merge target specific data of file %B\n" msgstr "" -#: ldlang.c:3647 +#: ldlang.c:3646 msgid "" "\n" "Allocating common symbols\n" msgstr "" -#: ldlang.c:3648 +#: ldlang.c:3647 msgid "" "Common symbol size file\n" "\n" @@ -686,48 +686,48 @@ msgstr "" #. This message happens when using the #. svr3.ifile linker script, so I have #. disabled it. -#: ldlang.c:3730 +#: ldlang.c:3729 msgid "%P: no [COMMON] command, defaulting to .bss\n" msgstr "" -#: ldlang.c:3789 +#: ldlang.c:3788 msgid "%P%F: invalid syntax in flags\n" msgstr "" -#: ldlang.c:4390 +#: ldlang.c:4389 msgid "%P%Fmultiple STARTUP files\n" msgstr "" -#: ldlang.c:4658 +#: ldlang.c:4657 msgid "%F%P: bfd_record_phdr failed: %E\n" msgstr "" -#: ldlang.c:4677 +#: ldlang.c:4676 msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n" msgstr "" -#: ldlang.c:5003 +#: ldlang.c:5002 msgid "%X%P: unknown language `%s' in version information\n" msgstr "" -#: ldlang.c:5055 +#: ldlang.c:5054 msgid "" "%X%P: anonymous version tag cannot be combined with other version tags\n" msgstr "" -#: ldlang.c:5062 +#: ldlang.c:5061 msgid "%X%P: duplicate version tag `%s'\n" msgstr "" -#: ldlang.c:5075 ldlang.c:5088 +#: ldlang.c:5074 ldlang.c:5087 msgid "%X%P: duplicate expression `%s' in version information\n" msgstr "" -#: ldlang.c:5130 +#: ldlang.c:5129 msgid "%X%P: unable to find version dependency `%s'\n" msgstr "" -#: ldlang.c:5152 +#: ldlang.c:5151 msgid "%X%P: unable to read .exports section contents\n" msgstr "" @@ -755,222 +755,225 @@ msgstr "" msgid "%P%F: -f may not be used without -shared\n" msgstr "" -#: ldmain.c:334 -#, c-format -msgid "using %s linker script:\n" +#: ldmain.c:335 +msgid "using external linker script:" +msgstr "" + +#: ldmain.c:337 +msgid "using internal linker script:" msgstr "" -#: ldmain.c:369 +#: ldmain.c:371 msgid "%P%F: no input files\n" msgstr "" -#: ldmain.c:374 +#: ldmain.c:376 msgid "%P: mode %s\n" msgstr "" -#: ldmain.c:391 +#: ldmain.c:393 msgid "%P%F: cannot open map file %s: %E\n" msgstr "" -#: ldmain.c:438 +#: ldmain.c:440 msgid "%P: link errors found, deleting executable `%s'\n" msgstr "" -#: ldmain.c:449 +#: ldmain.c:451 msgid "%F%B: final close failed: %E\n" msgstr "" -#: ldmain.c:473 +#: ldmain.c:475 msgid "%X%P: unable to open for source of copy `%s'\n" msgstr "" -#: ldmain.c:475 +#: ldmain.c:477 msgid "%X%P: unable to open for destination of copy `%s'\n" msgstr "" -#: ldmain.c:481 +#: ldmain.c:483 msgid "%P: Error writing file `%s'\n" msgstr "" -#: ldmain.c:487 pe-dll.c:1442 +#: ldmain.c:489 pe-dll.c:1442 #, c-format msgid "%P: Error closing file `%s'\n" msgstr "" -#: ldmain.c:504 +#: ldmain.c:506 #, c-format msgid "%s: total time in link: %ld.%06ld\n" msgstr "" -#: ldmain.c:507 +#: ldmain.c:509 #, c-format msgid "%s: data size %ld\n" msgstr "" -#: ldmain.c:548 +#: ldmain.c:550 msgid "%P%F: missing argument to -m\n" msgstr "" -#: ldmain.c:676 ldmain.c:697 ldmain.c:728 +#: ldmain.c:678 ldmain.c:699 ldmain.c:730 msgid "%P%F: bfd_hash_table_init failed: %E\n" msgstr "" -#: ldmain.c:681 ldmain.c:700 +#: ldmain.c:683 ldmain.c:702 msgid "%P%F: bfd_hash_lookup failed: %E\n" msgstr "" -#: ldmain.c:715 +#: ldmain.c:717 msgid "%X%P: error: duplicate retain-symbols-file\n" msgstr "" -#: ldmain.c:759 +#: ldmain.c:761 msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n" msgstr "" -#: ldmain.c:764 +#: ldmain.c:766 msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n" msgstr "" -#: ldmain.c:840 +#: ldmain.c:842 msgid "" "Archive member included because of file (symbol)\n" "\n" msgstr "" -#: ldmain.c:911 +#: ldmain.c:913 msgid "%X%C: multiple definition of `%T'\n" msgstr "" -#: ldmain.c:914 +#: ldmain.c:916 msgid "%D: first defined here\n" msgstr "" -#: ldmain.c:918 +#: ldmain.c:920 msgid "%P: Disabling relaxation: it will not work with multiple definitions\n" msgstr "" -#: ldmain.c:949 +#: ldmain.c:951 msgid "%B: warning: definition of `%T' overriding common\n" msgstr "" -#: ldmain.c:952 +#: ldmain.c:954 msgid "%B: warning: common is here\n" msgstr "" -#: ldmain.c:959 +#: ldmain.c:961 msgid "%B: warning: common of `%T' overridden by definition\n" msgstr "" -#: ldmain.c:962 +#: ldmain.c:964 msgid "%B: warning: defined here\n" msgstr "" -#: ldmain.c:969 +#: ldmain.c:971 msgid "%B: warning: common of `%T' overridden by larger common\n" msgstr "" -#: ldmain.c:972 +#: ldmain.c:974 msgid "%B: warning: larger common is here\n" msgstr "" -#: ldmain.c:976 +#: ldmain.c:978 msgid "%B: warning: common of `%T' overriding smaller common\n" msgstr "" -#: ldmain.c:979 +#: ldmain.c:981 msgid "%B: warning: smaller common is here\n" msgstr "" -#: ldmain.c:983 +#: ldmain.c:985 msgid "%B: warning: multiple common of `%T'\n" msgstr "" -#: ldmain.c:985 +#: ldmain.c:987 msgid "%B: warning: previous common is here\n" msgstr "" -#: ldmain.c:1006 ldmain.c:1045 +#: ldmain.c:1008 ldmain.c:1047 msgid "%P: warning: global constructor %s used\n" msgstr "" -#: ldmain.c:1055 +#: ldmain.c:1057 msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n" msgstr "" -#: ldmain.c:1239 +#: ldmain.c:1241 msgid "%F%P: bfd_hash_table_init failed: %E\n" msgstr "" -#: ldmain.c:1246 +#: ldmain.c:1248 msgid "%F%P: bfd_hash_lookup failed: %E\n" msgstr "" -#: ldmain.c:1266 +#: ldmain.c:1268 msgid "%C: undefined reference to `%T'\n" msgstr "" -#: ldmain.c:1272 +#: ldmain.c:1274 msgid "%D: more undefined references to `%T' follow\n" msgstr "" -#: ldmain.c:1279 +#: ldmain.c:1281 msgid "%B: undefined reference to `%T'\n" msgstr "" -#: ldmain.c:1285 +#: ldmain.c:1287 msgid "%B: more undefined references to `%T' follow\n" msgstr "" -#: ldmain.c:1305 ldmain.c:1326 ldmain.c:1345 +#: ldmain.c:1307 ldmain.c:1328 ldmain.c:1347 msgid "%P%X: generated" msgstr "" -#: ldmain.c:1308 +#: ldmain.c:1310 msgid " relocation truncated to fit: %s %T" msgstr "" -#: ldmain.c:1329 +#: ldmain.c:1331 #, c-format msgid "dangerous relocation: %s\n" msgstr "" -#: ldmain.c:1348 +#: ldmain.c:1350 msgid " reloc refers to symbol `%T' which is not being output\n" msgstr "" -#: ldmisc.c:176 +#: ldmisc.c:179 msgid "no symbol" msgstr "" -#: ldmisc.c:240 +#: ldmisc.c:243 #, c-format msgid "built in linker script:%u" msgstr "" -#: ldmisc.c:290 ldmisc.c:294 +#: ldmisc.c:293 ldmisc.c:297 msgid "%B%F: could not read symbols\n" msgstr "" #. We use abfd->filename in this initial line, #. in case filename is a .h file or something #. similarly unhelpful. -#: ldmisc.c:330 +#: ldmisc.c:333 msgid "%B: In function `%T':\n" msgstr "" -#: ldmisc.c:439 +#: ldmisc.c:442 msgid "%F%P: internal error %s %d\n" msgstr "" -#: ldmisc.c:489 +#: ldmisc.c:492 msgid "%P: internal error: aborting at %s line %d in %s\n" msgstr "" -#: ldmisc.c:492 +#: ldmisc.c:495 msgid "%P: internal error: aborting at %s line %d\n" msgstr "" -#: ldmisc.c:494 +#: ldmisc.c:497 msgid "%P%F: please report this bug\n" msgstr "" @@ -981,7 +984,7 @@ msgid "GNU ld version %s\n" msgstr "" #: ldver.c:42 -msgid "Copyright 2001 Free Software Foundation, Inc.\n" +msgid "Copyright 2002 Free Software Foundation, Inc.\n" msgstr "" #: ldver.c:43 diff --git a/contrib/binutils/libiberty/ChangeLog b/contrib/binutils/libiberty/ChangeLog index 59f48d45..08cf00d 100644 --- a/contrib/binutils/libiberty/ChangeLog +++ b/contrib/binutils/libiberty/ChangeLog @@ -1,3 +1,51 @@ +2002-02-05 Jason Merrill <jason@redhat.com> + + * cplus-dem.c (flags): Add DMGL_VERBOSE + (cplus_demangle_v3_p): Remove. + (demangle_it): Add DMGL_TYPES to passed flags. + * cp-demangle.c (cplus_demangle_v3_all): Remove. + (cplus_demangle_v3_type): Remove. + (cplus_demangle_v3): Add options parm. + +2002-02-02 H.J. Lu (hjl@gnu.org) + + * cp-demangle.c (cp_demangle_type): Do not protect with + IN_LIBGCC2. + (cplus_demangle_v3_all): New. + (cplus_demangle_v3): Call cplus_demangle_v3_all. + (cplus_demangle_v3_type): Call cplus_demangle_v3_all. + + * cplus-dem.c (cplus_demangle_v3_p): New function pointer. + Initialized to cplus_demangle_v3. + (cplus_demangle_with_style): Call cplus_demangle_v3_p instead + of cplus_demangle_v3. + (main): Set cplus_demangle_v3_p to cplus_demangle_v3_type for + command line symbol. + + * testsuite/regress-demangle: Pass the mangled name at the + command line. + +2002-02-01 H.J. Lu <hjl@gnu.org> + + * cp-demangle.c (cp_demangle_type): Call demangling_new with + DMGL_GNU_V3. + +2002-01-31 Phil Edwards <pme@gcc.gnu.org> + + * cp-demangle.c: Revert yesterday's change. + +2002-01-31 Adam Megacz <adam@xwt.org> + + * gcc/libiberty/configure.in: Treat mingw the same as cywin + wrt HAVE_SYS_ERRLIST. + +2002-01-30 Phil Edwards <pme@gcc.gnu.org> + + * cp-demangle.c (cp_demangle_type): Do not protect with IN_LIBGCC2. + (cplus_demangle_v3): Mimic __cxa_demangle and fall back on + cp_demangle_type. + * testsuite/demangle-expected: New gnu-v3 test. + 2002-01-22 Momchil Velikov <velco@fadata.bg> * configure.in (variable detection): Use arrays of unspecified diff --git a/contrib/binutils/libiberty/configure b/contrib/binutils/libiberty/configure index a406d28..84c10ad 100755 --- a/contrib/binutils/libiberty/configure +++ b/contrib/binutils/libiberty/configure @@ -2082,7 +2082,7 @@ fi case "${host}" in - *-*-cygwin*) + *-*-cygwin* | *-*-mingw*) cat >> confdefs.h <<\EOF #define HAVE_SYS_ERRLIST 1 EOF diff --git a/contrib/binutils/libiberty/configure.in b/contrib/binutils/libiberty/configure.in index eed222d..fb930e4 100644 --- a/contrib/binutils/libiberty/configure.in +++ b/contrib/binutils/libiberty/configure.in @@ -249,7 +249,7 @@ fi AC_SUBST(CHECK) case "${host}" in - *-*-cygwin*) + *-*-cygwin* | *-*-mingw*) AC_DEFINE_NOAUTOHEADER(HAVE_SYS_ERRLIST) AC_DEFINE_NOAUTOHEADER(HAVE_SYS_NERR) ;; diff --git a/contrib/binutils/libiberty/cp-demangle.c b/contrib/binutils/libiberty/cp-demangle.c index 457a09f..136dc72 100644 --- a/contrib/binutils/libiberty/cp-demangle.c +++ b/contrib/binutils/libiberty/cp-demangle.c @@ -938,10 +938,8 @@ static status_t demangle_discriminator PARAMS ((demangling_t, int)); static status_t cp_demangle PARAMS ((const char *, dyn_string_t, int)); -#ifdef IN_LIBGCC2 static status_t cp_demangle_type PARAMS ((const char*, dyn_string_t)); -#endif /* When passed to demangle_bare_function_type, indicates that the function's return type is not encoded before its parameter types. */ @@ -3533,14 +3531,13 @@ cp_demangle (name, result, style) dyn_string_t. On success, returns STATUS_OK. On failiure, returns an error message, and the contents of RESULT are unchanged. */ -#ifdef IN_LIBGCC2 static status_t cp_demangle_type (type_name, result) const char* type_name; dyn_string_t result; { status_t status; - demangling_t dm = demangling_new (type_name); + demangling_t dm = demangling_new (type_name, DMGL_GNU_V3); if (dm == NULL) return STATUS_ALLOCATION_FAILED; @@ -3571,6 +3568,7 @@ cp_demangle_type (type_name, result) return status; } +#ifdef IN_LIBGCC2 extern char *__cxa_demangle PARAMS ((const char *, char *, size_t *, int *)); /* ia64 ABI-mandated entry point in the C++ runtime library for performing @@ -3687,20 +3685,35 @@ __cxa_demangle (mangled_name, output_buffer, length, status) If the demangling failes, returns NULL. */ char * -cplus_demangle_v3 (mangled) +cplus_demangle_v3 (mangled, options) const char* mangled; + int options; { dyn_string_t demangled; status_t status; + int type = !!(options & DMGL_TYPES); - /* If this isn't a mangled name, don't pretend to demangle it. */ - if (strncmp (mangled, "_Z", 2) != 0) - return NULL; + if (mangled[0] == '_' && mangled[1] == 'Z') + /* It is not a type. */ + type = 0; + else + { + /* It is a type. Stop if we don't want to demangle types. */ + if (!type) + return NULL; + } + + flag_verbose = !!(options & DMGL_VERBOSE); /* Create a dyn_string to hold the demangled name. */ demangled = dyn_string_new (0); /* Attempt the demangling. */ - status = cp_demangle ((char *) mangled, demangled, 0); + if (!type) + /* Appears to be a function or variable name. */ + status = cp_demangle (mangled, demangled, 0); + else + /* Try to demangle it as the name of a type. */ + status = cp_demangle_type (mangled, demangled); if (STATUS_NO_ERROR (status)) /* Demangling succeeded. */ diff --git a/contrib/binutils/libiberty/cplus-dem.c b/contrib/binutils/libiberty/cplus-dem.c index 5af8826..4e60b2c 100644 --- a/contrib/binutils/libiberty/cplus-dem.c +++ b/contrib/binutils/libiberty/cplus-dem.c @@ -911,7 +911,7 @@ cplus_demangle (mangled, options) /* The V3 ABI demangling is implemented elsewhere. */ if (GNU_V3_DEMANGLING || AUTO_DEMANGLING) { - ret = cplus_demangle_v3 (mangled); + ret = cplus_demangle_v3 (mangled, work->options); if (ret || GNU_V3_DEMANGLING) return ret; } @@ -4874,7 +4874,7 @@ string_append_template_idx (s, idx) static const char *program_name; static const char *program_version = VERSION; -static int flags = DMGL_PARAMS | DMGL_ANSI; +static int flags = DMGL_PARAMS | DMGL_ANSI | DMGL_VERBOSE; static void demangle_it PARAMS ((char *)); static void usage PARAMS ((FILE *, int)) ATTRIBUTE_NORETURN; @@ -4887,7 +4887,8 @@ demangle_it (mangled_name) { char *result; - result = cplus_demangle (mangled_name, flags); + /* For command line args, also try to demangle type encodings. */ + result = cplus_demangle (mangled_name, flags | DMGL_TYPES); if (result == NULL) { printf ("%s\n", mangled_name); diff --git a/contrib/binutils/libtool.m4 b/contrib/binutils/libtool.m4 index aa7e62a..3f452bc 100644 --- a/contrib/binutils/libtool.m4 +++ b/contrib/binutils/libtool.m4 @@ -159,6 +159,22 @@ case $host in rm -rf conftest* ;; +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); 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" @@ -568,9 +584,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*) diff --git a/contrib/binutils/ltcf-c.sh b/contrib/binutils/ltcf-c.sh index f11a0cf..ea6a31f 100644 --- a/contrib/binutils/ltcf-c.sh +++ b/contrib/binutils/ltcf-c.sh @@ -417,23 +417,32 @@ else ;; hpux9* | hpux10* | hpux11*) - if test $with_gcc = yes; then - case "$host_os" in - hpux9*) archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; - *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; - esac - else - case $host_os in - hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; - *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; - esac - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_minus_L=yes # Not in the search PATH, but as the default - # location of the library. + case "$host_cpu" in + ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' ;; + *) + if test $with_gcc = yes; then + case "$host_os" in + hpux9*) archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; + *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; + esac + else + case $host_os in + hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; + *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; + esac + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_minus_L=yes # Not in the search PATH, but as the default + # location of the library. + ;; + esac export_dynamic_flag_spec='${wl}-E' + hardcode_direct=yes ;; irix5* | irix6*) diff --git a/contrib/binutils/ltconfig b/contrib/binutils/ltconfig index 746e15b..5ccefe0 100755 --- a/contrib/binutils/ltconfig +++ b/contrib/binutils/ltconfig @@ -1155,14 +1155,32 @@ gnu*) hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. - dynamic_linker="$host_os dld.sl" version_type=sunos need_lib_prefix=no need_version=no - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' - soname_spec='${libname}${release}.sl$major' + case "$host_cpu" in + ia64*) + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32/usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' + soname_spec='${libname}${release}.sl$major' + ;; + esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; diff --git a/contrib/binutils/opcodes/ChangeLog b/contrib/binutils/opcodes/ChangeLog index f4489d4..c7d74f6 100644 --- a/contrib/binutils/opcodes/ChangeLog +++ b/contrib/binutils/opcodes/ChangeLog @@ -1,3 +1,162 @@ +2002-02-15 Richard Henderson <rth@redhat.com> + + * alpha-opc.c (alpha_opcodes): Fix thinko in ret pseudo + disassembly mask. + +2002-02-15 Richard Henderson <rth@redhat.com> + + * alpha-opc.c (alpha_opcodes): Add simple pseudos for + lda, ldah, jmp, ret. + +2002-02-13 Hans-Peter Nilsson <hp@bitrange.com> + + * configure.in <bfd_sh_arc>: For sh-* and shl-*, enable sh64 + support only for sh-*-*elf*, shl-*-*elf*, sh-*-linux* and + shl-*-linux*. + * configure: Regenerate. + +2002-02-11 Alexandre Oliva <aoliva@redhat.com> + + * sparc-dis.c (print_insn_sparc): Make sure 0xFFFFFFFF is not + sign-extended. + +2002-02-10 Daniel Jacobowitz <drow@mvista.com> + + * cgen-dis.c: Add prototypes for count_decodable_bits + and add_insn_to_hash_chain. + +2002-02-08 Alexandre Oliva <aoliva@redhat.com> + + * configure.in <bfd_sh_arc>: Enable sh64 support on sh-*. + * configure: Rebuilt. + +2002-02-08 Ivan Guzvinec <ivang@opencores.org> + + * or32-opc.c: Fix compile time warning messages. + * or32-dis.c: Fix compile time warning messages. + +2002-02-08 Alexandre Oliva <aoliva@redhat.com> + + Contribute sh64-elf. + 2001-10-08 Nick Clifton <nickc@cambridge.redhat.com> + * sh64-opc.c: Regenerate. + 2001-03-13 DJ Delorie <dj@redhat.com> + * sh64-opc.h: Rename A_RESV_Fx to A_REUSE_PREV so that its + purpose is more obvious. + * sh64-opc.c (shmedia_table): Ditto. + * sh64-dis.c (initialize_shmedia_opcode_mask_table): Ditto. + (print_insn_shmedia): Ditto. + 2001-03-12 DJ Delorie <dj@redhat.com> + * sh64-opc.c: Adjust comments to reflect reality: replace bits + 3:0 with zeros (not "reserved"), replace "rrrrrr" with + "gggggg" for two-operand floating point opcodes. Remove + "fsina". + 2001-01-08 Hans-Peter Nilsson <hpn@cygnus.com> + * sh64-dis.c (print_insn_shmedia) <failing read_memory_func>: + Correct printing of .byte:s. Return number of printed bytes or + -1; never 0. + (print_insn_sh64x) <not CRT_SH5_ISA16>: Ditto. Print as .byte:s + to next four-byte-alignment if insn or data is not aligned. + 2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com> + * sh64-dis.c: Update comments and fix comment formatting. + (initialize_shmedia_opcode_mask_table) <case A_IMMM>: + Abort instead of setting length to 0. + (crange_qsort_cmpb, crange_qsort_cmpl, crange_bsearch_cmpb, + crange_bsearch_cmpl, sh64_get_contents_type, + sh64_address_in_cranges): Move to bfd/elf32-sh64.c. + 2001-01-05 Hans-Peter Nilsson <hpn@cygnus.com> + * sh64-opc.c: Remove #if 0:d entries for instructions not found in + SH-5/ST50-023-04: fcosa.s, fsrra.s and prefo. + 2000-12-30 Hans-Peter Nilsson <hpn@cygnus.com> + * sh64-dis.c (print_insn_shmedia): Display MOVI/SHORI-formed + address with same prefix as SHcompact. + In the disassembler, use a .cranges section for linked executables. + * sh64-dis.c (SAVED_MOVI_R, SAVED_MOVI_IMM): Move to head of file + and update for using structure in info->private_data. + (struct sh64_disassemble_info): New. + (is_shmedia_p): Delete. + (crange_qsort_cmpb): New function. + (crange_qsort_cmpl, crange_bsearch_cmpb): New functions. + (crange_bsearch_cmpl, sh64_address_in_cranges): New functions. + (init_sh64_disasm_info, sh64_get_contents_type_disasm): New functions. + (sh64_get_contents_type, sh64_address_is_shmedia): New functions. + (print_insn_shmedia): Correct displaying of address after MOVI/SHORI + pair. Display addresses for linked executables only. + (print_insn_sh64x_media): Initialize info->private_data by calling + init_sh64_disasm_info. + (print_insn_sh64x): Ditto. Find out type of contents by calling + sh64_contents_type_disasm. Display data regions using ".long" and + ".byte" similar to unrecognized opcodes. + 2000-12-19 Hans-Peter Nilsson <hpn@cygnus.com> + * sh64-dis.c (is_shmedia_p): Check info->section and look for ISA + information in section flags before considering symbols. Don't + assume an info->mach setting of bfd_mach_sh5 means SHmedia code. + * configure.in (bfd_sh_arch): Check presence of sh64 insns by + matching $target $canon_targets instead of looking at the + now-removed -DINCLUDE_SHMEDIA in $targ_cflags. + * configure: Regenerate. + 2000-11-25 Hans-Peter Nilsson <hpn@cygnus.com> + * sh64-opc.c (shmedia_creg_table): New. + * sh64-opc.h (shmedia_creg_info): New type. + (shmedia_creg_table): Declare. + * sh64-dis.c (creg_name): New function. + (print_insn_shmedia): Use it. + * disassemble.c (disassembler) [ARCH_sh, INCLUDE_SHMEDIA]: Map + bfd_mach_sh5 to print_insn_sh64 if big-endian and to + print_insn_sh64l if little-endian. + * sh64-dis.c (print_insn_shmedia): Make r unsigned. + (print_insn_sh64l): New. + (print_insn_sh64x): New. + (print_insn_sh64x_media): New. + (print_insn_sh64): Break out code to print_insn_sh64x and + print_insn_sh64x_media. + 2000-11-24 Hans-Peter Nilsson <hpn@cygnus.com> + * sh64-opc.h: New file + * sh64-opc.c: New file + * sh64-dis.c: New file + * Makefile.am: Add sh64 targets. + (HFILES): Add sh64-opc.h. + (CFILES): Add sh64-opc.c and sh64-dis.c. + (ALL_MACHINES): Add sh64 files. + * Makefile.in: Regenerate. + * configure.in: Add support for sh64 to bfd_sh_arch. + * configure: Regenerate. + * disassemble.c [ARCH_all] (INCLUDE_SHMEDIA): Define. + (disassembler) [ARCH_sh, INCLUDE_SHMEDIA]: Map bfd_mach_sh5 to + print_insn_sh64. + * sh-dis.c (print_insn_shx): Handle bfd_mach_sh5 as arch_sh4. + * po/POTFILES.in: Regenerate. + * po/opcodes.pot: Regenerate. + +2002-02-04 Frank Ch. Eigler <fche@redhat.com> + + * cgen-dis.in (print_insn_@arch@): Support disassemble_info.insn_sets. + +2002-02-04 Alexandre Oliva <aoliva@redhat.com> + + * sh-opc.h (sh_arg_type): Added A_DISP_PC_ABS. + +2002-02-01 Alan Modra <amodra@bigpond.net.au> + + * Makefile.am: Run "make dep-am" + * Makefile.in: Regenerate. + +2002-01-31 Ivan Guzvinec <ivang@opencores.org> + + * or32-dis.c: New file. + * or32-opc.c: New file. + * configure.in: Add support for or32. + * configure: Regenerate. + * Makefile.am: Add support for or32. + * Makefile.in: Regenerate. + * disassemble.c: Add support for or32. + * po/POTFILES.in: Regenerate. + * po/opcodes.pot: Regenerate. + +2002-01-27 Daniel Jacobowitz <drow@mvista.com> + + * configure: Regenerated. + 2002-01-26 Nick Clifton <nickc@cambridge.redhat.com> * po/fr.po: Updated version. diff --git a/contrib/binutils/opcodes/Makefile.am b/contrib/binutils/opcodes/Makefile.am index 7c9da2e..c1d5a3d 100644 --- a/contrib/binutils/opcodes/Makefile.am +++ b/contrib/binutils/opcodes/Makefile.am @@ -31,6 +31,7 @@ HFILES = \ sysdep.h \ ia64-asmtab.h \ ia64-opc.h \ + sh64-opc.h \ w65-opc.h \ xstormy16-desc.h xstormy16-opc.h \ z8k-opc.h @@ -106,6 +107,8 @@ CFILES = \ openrisc-dis.c \ openrisc-ibld.c \ openrisc-opc.c \ + or32-dis.c \ + or32-opc.c \ pdp11-dis.c \ pdp11-opc.c \ pj-dis.c \ @@ -126,6 +129,8 @@ CFILES = \ v850-dis.c \ v850-opc.c \ vax-dis.c \ + sh64-dis.c \ + sh64-opc.c \ w65-dis.c \ xstormy16-asm.c \ xstormy16-desc.c \ @@ -195,6 +200,8 @@ ALL_MACHINES = \ openrisc-dis.lo \ openrisc-ibld.lo \ openrisc-opc.lo \ + or32-dis.lo \ + or32-opc.lo \ pdp11-dis.lo \ pdp11-opc.lo \ pj-dis.lo \ @@ -214,6 +221,8 @@ ALL_MACHINES = \ v850-dis.lo \ v850-opc.lo \ vax-dis.lo \ + sh64-dis.lo \ + sh64-opc.lo \ w65-dis.lo \ xstormy16-asm.lo \ xstormy16-desc.lo \ @@ -310,6 +319,10 @@ $(srcdir)/fr30-desc.h $(srcdir)/fr30-desc.c $(srcdir)/fr30-opc.h $(srcdir)/fr30- stamp-fr30: $(CGENDEPS) $(CPUDIR)/fr30.cpu $(CPUDIR)/fr30.opc $(MAKE) run-cgen arch=fr30 prefix=fr30 options= extrafiles= +sh64-opc.lo: sh64-opc.c sh64-opc.h +sh64-dis.lo: sh64-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + sh64-opc.h $(INCDIR)/dis-asm.h $(BFD_H) opintl.h + $(srcdir)/openrisc-desc.h $(srcdir)/openrisc-desc.c $(srcdir)/openrisc-opc.h $(srcdir)/openrisc-opc.c $(srcdir)/openrisc-ibld.c $(srcdir)/openrisc-asm.c $(srcdir)/openrisc-dis.c: $(OPENRISC_DEPS) @true stamp-openrisc: $(CGENDEPS) $(CPUDIR)/openrisc.cpu $(CPUDIR)/openrisc.opc @@ -564,6 +577,11 @@ openrisc-ibld.lo: openrisc-ibld.c sysdep.h config.h \ openrisc-opc.lo: openrisc-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h openrisc-desc.h $(INCDIR)/opcode/cgen.h \ openrisc-opc.h $(INCDIR)/libiberty.h +or32-dis.lo: or32-dis.c $(INCDIR)/dis-asm.h $(BFD_H) \ + $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/opcode/or32.h \ + $(INCDIR)/safe-ctype.h +or32-opc.lo: or32-opc.c $(INCDIR)/safe-ctype.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/opcode/or32.h pdp11-dis.lo: pdp11-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/pdp11.h pdp11-opc.lo: pdp11-opc.c $(INCDIR)/opcode/pdp11.h diff --git a/contrib/binutils/opcodes/Makefile.in b/contrib/binutils/opcodes/Makefile.in index 8cc2744..3e7873d 100644 --- a/contrib/binutils/opcodes/Makefile.in +++ b/contrib/binutils/opcodes/Makefile.in @@ -141,6 +141,7 @@ HFILES = \ sysdep.h \ ia64-asmtab.h \ ia64-opc.h \ + sh64-opc.h \ w65-opc.h \ xstormy16-desc.h xstormy16-opc.h \ z8k-opc.h @@ -217,6 +218,8 @@ CFILES = \ openrisc-dis.c \ openrisc-ibld.c \ openrisc-opc.c \ + or32-dis.c \ + or32-opc.c \ pdp11-dis.c \ pdp11-opc.c \ pj-dis.c \ @@ -237,6 +240,8 @@ CFILES = \ v850-dis.c \ v850-opc.c \ vax-dis.c \ + sh64-dis.c \ + sh64-opc.c \ w65-dis.c \ xstormy16-asm.c \ xstormy16-desc.c \ @@ -307,6 +312,8 @@ ALL_MACHINES = \ openrisc-dis.lo \ openrisc-ibld.lo \ openrisc-opc.lo \ + or32-dis.lo \ + or32-opc.lo \ pdp11-dis.lo \ pdp11-opc.lo \ pj-dis.lo \ @@ -326,6 +333,8 @@ ALL_MACHINES = \ v850-dis.lo \ v850-opc.lo \ vax-dis.lo \ + sh64-dis.lo \ + sh64-opc.lo \ w65-dis.lo \ xstormy16-asm.lo \ xstormy16-desc.lo \ @@ -407,7 +416,7 @@ acinclude.m4 aclocal.m4 config.in configure configure.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = tar +TAR = gtar GZIP_ENV = --best SOURCES = libopcodes.a.c $(libopcodes_la_SOURCES) OBJECTS = libopcodes.a.$(OBJEXT) $(libopcodes_la_OBJECTS) @@ -821,6 +830,10 @@ $(srcdir)/fr30-desc.h $(srcdir)/fr30-desc.c $(srcdir)/fr30-opc.h $(srcdir)/fr30- stamp-fr30: $(CGENDEPS) $(CPUDIR)/fr30.cpu $(CPUDIR)/fr30.opc $(MAKE) run-cgen arch=fr30 prefix=fr30 options= extrafiles= +sh64-opc.lo: sh64-opc.c sh64-opc.h +sh64-dis.lo: sh64-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + sh64-opc.h $(INCDIR)/dis-asm.h $(BFD_H) opintl.h + $(srcdir)/openrisc-desc.h $(srcdir)/openrisc-desc.c $(srcdir)/openrisc-opc.h $(srcdir)/openrisc-opc.c $(srcdir)/openrisc-ibld.c $(srcdir)/openrisc-asm.c $(srcdir)/openrisc-dis.c: $(OPENRISC_DEPS) @true stamp-openrisc: $(CGENDEPS) $(CPUDIR)/openrisc.cpu $(CPUDIR)/openrisc.opc @@ -1075,6 +1088,11 @@ openrisc-ibld.lo: openrisc-ibld.c sysdep.h config.h \ openrisc-opc.lo: openrisc-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h openrisc-desc.h $(INCDIR)/opcode/cgen.h \ openrisc-opc.h $(INCDIR)/libiberty.h +or32-dis.lo: or32-dis.c $(INCDIR)/dis-asm.h $(BFD_H) \ + $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/opcode/or32.h \ + $(INCDIR)/safe-ctype.h +or32-opc.lo: or32-opc.c $(INCDIR)/safe-ctype.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/opcode/or32.h pdp11-dis.lo: pdp11-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/pdp11.h pdp11-opc.lo: pdp11-opc.c $(INCDIR)/opcode/pdp11.h diff --git a/contrib/binutils/opcodes/alpha-opc.c b/contrib/binutils/opcodes/alpha-opc.c index 7a20a55..6cf7d4c 100644 --- a/contrib/binutils/opcodes/alpha-opc.c +++ b/contrib/binutils/opcodes/alpha-opc.c @@ -539,7 +539,9 @@ const struct alpha_opcode alpha_opcodes[] = { { "call_pal", PCD(0x00), BASE, ARG_PCD }, { "pal", PCD(0x00), BASE, ARG_PCD }, /* alias */ + { "lda", MEM(0x08), BASE, { RA, MDISP, ZB } }, /* pseudo */ { "lda", MEM(0x08), BASE, ARG_MEM }, + { "ldah", MEM(0x09), BASE, { RA, MDISP, ZB } }, /* pseudo */ { "ldah", MEM(0x09), BASE, ARG_MEM }, { "ldbu", MEM(0x0A), BWX, ARG_MEM }, { "unop", MEM_(0x0B) | (30 << 16), @@ -1118,8 +1120,12 @@ const struct alpha_opcode alpha_opcodes[] = { { "hw_mfpr/pai", OPR(0x19,0x07), EV4, ARG_EV4HWMPR }, { "pal19", PCD(0x19), BASE, ARG_PCD }, + { "jmp", MBR_(0x1A,0), MBR_MASK | 0x3FFF, /* pseudo */ + BASE, { ZA, CPRB } }, { "jmp", MBR(0x1A,0), BASE, { RA, CPRB, JMPHINT } }, { "jsr", MBR(0x1A,1), BASE, { RA, CPRB, JMPHINT } }, + { "ret", MBR_(0x1A,2) | (31 << 21) | (26 << 16) | 1,/* pseudo */ + 0xFFFFFFFF, BASE, { 0 } }, { "ret", MBR(0x1A,2), BASE, { RA, CPRB, RETHINT } }, { "jcr", MBR(0x1A,3), BASE, { RA, CPRB, RETHINT } }, /* alias */ { "jsr_coroutine", MBR(0x1A,3), BASE, { RA, CPRB, RETHINT } }, diff --git a/contrib/binutils/opcodes/cgen-dis.c b/contrib/binutils/opcodes/cgen-dis.c index 4622c8c..881ee14 100644 --- a/contrib/binutils/opcodes/cgen-dis.c +++ b/contrib/binutils/opcodes/cgen-dis.c @@ -1,6 +1,6 @@ /* CGEN generic disassembler support code. - Copyright 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. @@ -30,6 +30,11 @@ static CGEN_INSN_LIST * hash_insn_array PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, int, int, CGEN_INSN_LIST **, CGEN_INSN_LIST *)); static CGEN_INSN_LIST * hash_insn_list PARAMS ((CGEN_CPU_DESC, const CGEN_INSN_LIST *, CGEN_INSN_LIST **, CGEN_INSN_LIST *)); static void build_dis_hash_table PARAMS ((CGEN_CPU_DESC)); +static int count_decodable_bits PARAMS ((const CGEN_INSN *)); +static void add_insn_to_hash_chain PARAMS ((CGEN_INSN_LIST *, + const CGEN_INSN *, + CGEN_INSN_LIST **, + unsigned int)); /* Return the number of decodable bits in this insn. */ static int diff --git a/contrib/binutils/opcodes/cgen-dis.in b/contrib/binutils/opcodes/cgen-dis.in index f2c9dd5..c78723e 100644 --- a/contrib/binutils/opcodes/cgen-dis.in +++ b/contrib/binutils/opcodes/cgen-dis.in @@ -386,7 +386,7 @@ print_insn_@arch@ (pc, info) #ifdef CGEN_COMPUTE_ISA isa = CGEN_COMPUTE_ISA (info); #else - isa = 0; + isa = info->insn_sets; #endif /* If we've switched cpu's, close the current table and open a new one. */ diff --git a/contrib/binutils/opcodes/configure b/contrib/binutils/opcodes/configure index baa5fbd..2b10036 100755 --- a/contrib/binutils/opcodes/configure +++ b/contrib/binutils/opcodes/configure @@ -55,6 +55,7 @@ program_suffix=NONE program_transform_name=s,x,x, silent= site= +sitefile= srcdir= target=NONE verbose= @@ -169,6 +170,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 @@ -339,6 +341,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=*) @@ -504,12 +511,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 @@ -548,12 +559,12 @@ else fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:552: checking for Cygwin environment" >&5 +echo "configure:563: 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 557 "configure" +#line 568 "configure" #include "confdefs.h" int main() { @@ -564,7 +575,7 @@ int main() { return __CYGWIN__; ; return 0; } EOF -if { (eval echo configure:568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:579: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else @@ -581,19 +592,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:585: checking for mingw32 environment" >&5 +echo "configure:596: 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 590 "configure" +#line 601 "configure" #include "confdefs.h" int main() { return __MINGW32__; ; return 0; } EOF -if { (eval echo configure:597: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:608: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else @@ -658,7 +669,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:662: checking host system type" >&5 +echo "configure:673: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -679,7 +690,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:683: checking target system type" >&5 +echo "configure:694: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -697,7 +708,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:701: checking build system type" >&5 +echo "configure:712: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -721,7 +732,7 @@ test "$host_alias" != "$target_alias" && echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 -echo "configure:725: checking for strerror in -lcposix" >&5 +echo "configure:736: checking for strerror in -lcposix" >&5 ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -729,7 +740,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcposix $LIBS" cat > conftest.$ac_ext <<EOF -#line 733 "configure" +#line 744 "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 @@ -740,7 +751,7 @@ int main() { strerror() ; return 0; } EOF -if { (eval echo configure:744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:755: \"$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 @@ -780,7 +791,7 @@ BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${ # 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:784: checking for a BSD compatible install" >&5 +echo "configure:795: 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 @@ -833,7 +844,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:837: checking whether build environment is sane" >&5 +echo "configure:848: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -890,7 +901,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:894: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:905: 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 @@ -936,7 +947,7 @@ EOF missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:940: checking for working aclocal" >&5 +echo "configure:951: 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. @@ -949,7 +960,7 @@ else fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:953: checking for working autoconf" >&5 +echo "configure:964: 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. @@ -962,7 +973,7 @@ else fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:966: checking for working automake" >&5 +echo "configure:977: 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. @@ -975,7 +986,7 @@ else fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:979: checking for working autoheader" >&5 +echo "configure:990: 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. @@ -988,7 +999,7 @@ else fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:992: checking for working makeinfo" >&5 +echo "configure:1003: 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. @@ -1011,7 +1022,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:1015: checking for $ac_word" >&5 +echo "configure:1026: 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 @@ -1043,7 +1054,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:1047: checking for $ac_word" >&5 +echo "configure:1058: 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 @@ -1075,7 +1086,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:1079: checking for $ac_word" >&5 +echo "configure:1090: 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 @@ -1181,7 +1192,7 @@ fi # 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:1185: checking for $ac_word" >&5 +echo "configure:1196: 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 @@ -1211,7 +1222,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:1215: checking for $ac_word" >&5 +echo "configure:1226: 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 @@ -1262,7 +1273,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:1266: checking for $ac_word" >&5 +echo "configure:1277: 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 @@ -1294,7 +1305,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1298: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1309: 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. @@ -1305,12 +1316,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1309 "configure" +#line 1320 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1314: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1325: \"$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 @@ -1336,12 +1347,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:1340: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1351: 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:1345: checking whether we are using GNU C" >&5 +echo "configure:1356: 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 @@ -1350,7 +1361,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1354: \"$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:1365: \"$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 @@ -1369,7 +1380,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:1373: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1384: 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 @@ -1412,7 +1423,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:1416: checking for ld used by GCC" >&5 +echo "configure:1427: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -1442,10 +1453,10 @@ echo "configure:1416: 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:1446: checking for GNU ld" >&5 +echo "configure:1457: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1449: checking for non-GNU ld" >&5 +echo "configure:1460: 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 @@ -1480,7 +1491,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:1484: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:1495: 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 @@ -1497,7 +1508,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:1501: checking for $LD option to reload object files" >&5 +echo "configure:1512: 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 @@ -1509,7 +1520,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:1513: checking for BSD-compatible nm" >&5 +echo "configure:1524: 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 @@ -1547,7 +1558,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:1551: checking whether ln -s works" >&5 +echo "configure:1562: 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 @@ -1568,7 +1579,7 @@ else fi echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 -echo "configure:1572: checking how to recognise dependant libraries" >&5 +echo "configure:1583: 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 @@ -1640,9 +1651,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*) @@ -1732,13 +1752,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:1736: checking for object suffix" >&5 +echo "configure:1756: 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:1742: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1762: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -1758,7 +1778,7 @@ ac_objext=$ac_cv_objext echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1762: checking for executable suffix" >&5 +echo "configure:1782: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1768,10 +1788,10 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:1772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:1792: \"$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 @@ -1795,7 +1815,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:1799: checking for ${ac_tool_prefix}file" >&5 +echo "configure:1819: 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 @@ -1857,7 +1877,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:1861: checking for file" >&5 +echo "configure:1881: 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 @@ -1928,7 +1948,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:1932: checking for $ac_word" >&5 +echo "configure:1952: 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 @@ -1960,7 +1980,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:1964: checking for $ac_word" >&5 +echo "configure:1984: 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 @@ -1995,7 +2015,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:1999: checking for $ac_word" >&5 +echo "configure:2019: 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 @@ -2027,7 +2047,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:2031: checking for $ac_word" >&5 +echo "configure:2051: 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 @@ -2094,8 +2114,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 2098 "configure"' > conftest.$ac_ext - if { (eval echo configure:2099: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 2118 "configure"' > conftest.$ac_ext + if { (eval echo configure:2119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" @@ -2111,12 +2131,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:2138: \"$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:2120: checking whether the C compiler needs -belf" >&5 +echo "configure:2156: 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 @@ -2129,14 +2165,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 2133 "configure" +#line 2169 "configure" #include "confdefs.h" int main() { ; return 0; } EOF -if { (eval echo configure:2140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2176: \"$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 @@ -2304,7 +2340,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:2308: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:2344: 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" @@ -2329,7 +2365,7 @@ fi echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:2333: checking for executable suffix" >&5 +echo "configure:2369: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2339,10 +2375,10 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:2343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:2379: \"$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 @@ -2365,7 +2401,7 @@ ac_exeext=$EXEEXT # 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:2369: checking for $ac_word" >&5 +echo "configure:2405: 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 @@ -2395,7 +2431,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:2399: checking for $ac_word" >&5 +echo "configure:2435: 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 @@ -2446,7 +2482,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:2450: checking for $ac_word" >&5 +echo "configure:2486: 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 @@ -2478,7 +2514,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2482: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2518: 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. @@ -2489,12 +2525,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 2493 "configure" +#line 2529 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2534: \"$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 @@ -2520,12 +2556,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:2524: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2560: 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:2529: checking whether we are using GNU C" >&5 +echo "configure:2565: 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 @@ -2534,7 +2570,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2538: \"$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:2574: \"$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 @@ -2553,7 +2589,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:2557: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2593: 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 @@ -2587,7 +2623,7 @@ fi ALL_LINGUAS="fr sv tr es da" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:2591: checking how to run the C preprocessor" >&5 +echo "configure:2627: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2602,13 +2638,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 2606 "configure" +#line 2642 "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:2612: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2648: \"$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 : @@ -2619,13 +2655,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 2623 "configure" +#line 2659 "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:2629: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2665: \"$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 : @@ -2636,13 +2672,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext <<EOF -#line 2640 "configure" +#line 2676 "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:2646: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2682: \"$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 : @@ -2669,7 +2705,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:2673: checking for $ac_word" >&5 +echo "configure:2709: 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 @@ -2697,12 +2733,12 @@ else fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:2701: checking for ANSI C header files" >&5 +echo "configure:2737: 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 2706 "configure" +#line 2742 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -2710,7 +2746,7 @@ else #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2714: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2750: \"$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* @@ -2727,7 +2763,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 2731 "configure" +#line 2767 "configure" #include "confdefs.h" #include <string.h> EOF @@ -2745,7 +2781,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 2749 "configure" +#line 2785 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -2766,7 +2802,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext <<EOF -#line 2770 "configure" +#line 2806 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -2777,7 +2813,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:2781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -2801,12 +2837,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2805: checking for working const" >&5 +echo "configure:2841: 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 2810 "configure" +#line 2846 "configure" #include "confdefs.h" int main() { @@ -2855,7 +2891,7 @@ ccp = (char const *const *) p; ; return 0; } EOF -if { (eval echo configure:2859: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2895: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2876,21 +2912,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:2880: checking for inline" >&5 +echo "configure:2916: 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 2887 "configure" +#line 2923 "configure" #include "confdefs.h" int main() { } $ac_kw foo() { ; return 0; } EOF -if { (eval echo configure:2894: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2930: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -2916,12 +2952,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:2920: checking for off_t" >&5 +echo "configure:2956: 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 2925 "configure" +#line 2961 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -2949,12 +2985,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:2953: checking for size_t" >&5 +echo "configure:2989: 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 2958 "configure" +#line 2994 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -2984,19 +3020,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:2988: checking for working alloca.h" >&5 +echo "configure:3024: 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 2993 "configure" +#line 3029 "configure" #include "confdefs.h" #include <alloca.h> int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:3000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3036: \"$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 @@ -3017,12 +3053,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:3021: checking for alloca" >&5 +echo "configure:3057: 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 3026 "configure" +#line 3062 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -3050,7 +3086,7 @@ int main() { char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:3054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3090: \"$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 @@ -3082,12 +3118,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:3086: checking whether alloca needs Cray hooks" >&5 +echo "configure:3122: 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 3091 "configure" +#line 3127 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -3112,12 +3148,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:3116: checking for $ac_func" >&5 +echo "configure:3152: 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 3121 "configure" +#line 3157 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3140,7 +3176,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3180: \"$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 @@ -3167,7 +3203,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:3171: checking stack direction for C alloca" >&5 +echo "configure:3207: 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 @@ -3175,7 +3211,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <<EOF -#line 3179 "configure" +#line 3215 "configure" #include "confdefs.h" find_stack_direction () { @@ -3194,7 +3230,7 @@ main () exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:3198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3234: \"$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 @@ -3215,21 +3251,21 @@ EOF fi -for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h +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:3223: checking for $ac_hdr" >&5 +echo "configure:3259: 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 3228 "configure" +#line 3264 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3233: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3269: \"$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* @@ -3258,12 +3294,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3262: checking for $ac_func" >&5 +echo "configure:3298: 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 3267 "configure" +#line 3303 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3286,7 +3322,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3326: \"$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 @@ -3311,7 +3347,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:3315: checking for working mmap" >&5 +echo "configure:3351: 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 @@ -3319,7 +3355,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <<EOF -#line 3323 "configure" +#line 3359 "configure" #include "confdefs.h" /* Thanks to Mike Haertel and Jim Avera for this test. @@ -3347,24 +3383,11 @@ else #include <fcntl.h> #include <sys/mman.h> -#if HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif - -#if HAVE_STDLIB_H -# include <stdlib.h> -#endif - -#if HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif - -#if HAVE_UNISTD_H -# include <unistd.h> -#endif - /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE +# ifdef HAVE_UNISTD_H +# include <unistd.h> +# endif /* Assume that all systems that can run configure have sys/param.h. */ # ifndef HAVE_SYS_PARAM_H @@ -3472,7 +3495,7 @@ main() } EOF -if { (eval echo configure:3476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3499: \"$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 @@ -3500,17 +3523,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:3504: checking for $ac_hdr" >&5 +echo "configure:3527: 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 3509 "configure" +#line 3532 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3514: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3537: \"$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* @@ -3540,12 +3563,12 @@ done __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3544: checking for $ac_func" >&5 +echo "configure:3567: 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 3549 "configure" +#line 3572 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3568,7 +3591,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3595: \"$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 @@ -3597,12 +3620,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3601: checking for $ac_func" >&5 +echo "configure:3624: 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 3606 "configure" +#line 3629 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3625,7 +3648,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3652: \"$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 @@ -3659,19 +3682,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:3663: checking for LC_MESSAGES" >&5 +echo "configure:3686: 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 3668 "configure" +#line 3691 "configure" #include "confdefs.h" #include <locale.h> int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:3675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3698: \"$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 @@ -3692,7 +3715,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:3696: checking whether NLS is requested" >&5 +echo "configure:3719: 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" @@ -3712,7 +3735,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:3716: checking whether included gettext is requested" >&5 +echo "configure:3739: 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" @@ -3731,17 +3754,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:3735: checking for libintl.h" >&5 +echo "configure:3758: 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 3740 "configure" +#line 3763 "configure" #include "confdefs.h" #include <libintl.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3745: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3768: \"$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* @@ -3758,19 +3781,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:3762: checking for gettext in libc" >&5 +echo "configure:3785: 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 3767 "configure" +#line 3790 "configure" #include "confdefs.h" #include <libintl.h> int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:3774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3797: \"$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 @@ -3786,7 +3809,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:3790: checking for bindtextdomain in -lintl" >&5 +echo "configure:3813: 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 @@ -3794,7 +3817,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <<EOF -#line 3798 "configure" +#line 3821 "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 @@ -3805,7 +3828,7 @@ int main() { bindtextdomain() ; return 0; } EOF -if { (eval echo configure:3809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3832: \"$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 @@ -3821,19 +3844,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:3825: checking for gettext in libintl" >&5 +echo "configure:3848: 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 3830 "configure" +#line 3853 "configure" #include "confdefs.h" int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:3837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3860: \"$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 @@ -3861,7 +3884,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:3865: checking for $ac_word" >&5 +echo "configure:3888: 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 @@ -3895,12 +3918,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3899: checking for $ac_func" >&5 +echo "configure:3922: 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 3904 "configure" +#line 3927 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3923,7 +3946,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3950: \"$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 @@ -3950,7 +3973,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:3954: checking for $ac_word" >&5 +echo "configure:3977: 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 @@ -3986,7 +4009,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:3990: checking for $ac_word" >&5 +echo "configure:4013: 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 @@ -4018,7 +4041,7 @@ else fi cat > conftest.$ac_ext <<EOF -#line 4022 "configure" +#line 4045 "configure" #include "confdefs.h" int main() { @@ -4026,7 +4049,7 @@ extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:4030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -4058,7 +4081,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:4062: checking for $ac_word" >&5 +echo "configure:4085: 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 @@ -4092,7 +4115,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:4096: checking for $ac_word" >&5 +echo "configure:4119: 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 @@ -4128,7 +4151,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:4132: checking for $ac_word" >&5 +echo "configure:4155: 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 @@ -4218,7 +4241,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:4222: checking for catalogs to be installed" >&5 +echo "configure:4245: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -4246,17 +4269,17 @@ echo "configure:4222: 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:4250: checking for linux/version.h" >&5 +echo "configure:4273: 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 4255 "configure" +#line 4278 "configure" #include "confdefs.h" #include <linux/version.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4260: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4283: \"$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* @@ -4334,7 +4357,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:4338: checking for build system executable suffix" >&5 +echo "configure:4361: 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 @@ -4371,7 +4394,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:4375: checking for a BSD compatible install" >&5 +echo "configure:4398: 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 @@ -4428,17 +4451,17 @@ for ac_hdr in string.h strings.h stdlib.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4432: checking for $ac_hdr" >&5 +echo "configure:4455: 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 4437 "configure" +#line 4460 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4442: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4465: \"$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* @@ -4585,6 +4608,7 @@ if test x${all_targets} = xfalse ; then bfd_mn10300_arch) ta="$ta m10300-dis.lo m10300-opc.lo" ;; bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;; bfd_openrisc_arch) ta="$ta openrisc-asm.lo openrisc-desc.lo openrisc-dis.lo openrisc-ibld.lo openrisc-opc.lo" using_cgen=yes ;; + bfd_or32_arch) ta="$ta or32-dis.lo or32-opc.lo" using_cgen=yes ;; bfd_pdp11_arch) ta="$ta pdp11-dis.lo pdp11-opc.lo" ;; bfd_pj_arch) ta="$ta pj-dis.lo pj-opc.lo" ;; bfd_powerpc_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;; @@ -4594,6 +4618,18 @@ if test x${all_targets} = xfalse ; then bfd_rs6000_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;; bfd_s390_arch) ta="$ta s390-dis.lo s390-opc.lo" ;; bfd_sh_arch) + # We can't decide what we want just from the CPU family. + # We want SH5 support unless a specific version of sh is + # specified, as in sh3-elf, sh3b-linux-gnu, etc. + # Include it just for ELF targets, since the SH5 bfd:s are ELF only. + for t in $target $canon_targets; do + case $t in + all | sh64-* | sh-*-*elf* | shl-*-*elf* | sh-*-linux* | shl-*-linux*) + ta="$ta sh64-dis.lo sh64-opc.lo" + archdefs="$archdefs -DINCLUDE_SHMEDIA" + break;; + esac; + done ta="$ta sh-dis.lo" ;; bfd_sparc_arch) ta="$ta sparc-dis.lo sparc-opc.lo" ;; bfd_tahoe_arch) ;; diff --git a/contrib/binutils/opcodes/configure.in b/contrib/binutils/opcodes/configure.in index 302cd53..ee15b8a 100644 --- a/contrib/binutils/opcodes/configure.in +++ b/contrib/binutils/opcodes/configure.in @@ -199,6 +199,7 @@ if test x${all_targets} = xfalse ; then bfd_mn10300_arch) ta="$ta m10300-dis.lo m10300-opc.lo" ;; bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;; bfd_openrisc_arch) ta="$ta openrisc-asm.lo openrisc-desc.lo openrisc-dis.lo openrisc-ibld.lo openrisc-opc.lo" using_cgen=yes ;; + bfd_or32_arch) ta="$ta or32-dis.lo or32-opc.lo" using_cgen=yes ;; bfd_pdp11_arch) ta="$ta pdp11-dis.lo pdp11-opc.lo" ;; bfd_pj_arch) ta="$ta pj-dis.lo pj-opc.lo" ;; bfd_powerpc_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;; @@ -208,6 +209,18 @@ if test x${all_targets} = xfalse ; then bfd_rs6000_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;; bfd_s390_arch) ta="$ta s390-dis.lo s390-opc.lo" ;; bfd_sh_arch) + # We can't decide what we want just from the CPU family. + # We want SH5 support unless a specific version of sh is + # specified, as in sh3-elf, sh3b-linux-gnu, etc. + # Include it just for ELF targets, since the SH5 bfd:s are ELF only. + for t in $target $canon_targets; do + case $t in + all | sh64-* | sh-*-*elf* | shl-*-*elf* | sh-*-linux* | shl-*-linux*) + ta="$ta sh64-dis.lo sh64-opc.lo" + archdefs="$archdefs -DINCLUDE_SHMEDIA" + break;; + esac; + done ta="$ta sh-dis.lo" ;; bfd_sparc_arch) ta="$ta sparc-dis.lo sparc-opc.lo" ;; bfd_tahoe_arch) ;; diff --git a/contrib/binutils/opcodes/disassemble.c b/contrib/binutils/opcodes/disassemble.c index ab23635..93f3f00 100644 --- a/contrib/binutils/opcodes/disassemble.c +++ b/contrib/binutils/opcodes/disassemble.c @@ -1,5 +1,5 @@ /* Select disassembly routine for specified architecture. - Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -49,6 +49,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define ARCH_mn10300 #define ARCH_ns32k #define ARCH_openrisc +#define ARCH_or32 #define ARCH_pdp11 #define ARCH_pj #define ARCH_powerpc @@ -64,6 +65,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define ARCH_w65 #define ARCH_xstormy16 #define ARCH_z8k +#define INCLUDE_SHMEDIA #endif @@ -235,6 +237,14 @@ disassembler (abfd) disassemble = print_insn_openrisc; break; #endif +#ifdef ARCH_or32 + case bfd_arch_or32: + if (bfd_big_endian (abfd)) + disassemble = print_insn_big_or32; + else + disassemble = print_insn_little_or32; + break; +#endif #ifdef ARCH_pdp11 case bfd_arch_pdp11: disassemble = print_insn_pdp11; @@ -268,6 +278,16 @@ disassembler (abfd) #endif #ifdef ARCH_sh case bfd_arch_sh: +#ifdef INCLUDE_SHMEDIA + if (bfd_get_mach (abfd) == bfd_mach_sh5) + { + if (bfd_big_endian (abfd)) + disassemble = print_insn_sh64; + else + disassemble = print_insn_sh64l; + break; + } +#endif if (bfd_big_endian (abfd)) disassemble = print_insn_sh; else diff --git a/contrib/binutils/opcodes/po/POTFILES.in b/contrib/binutils/opcodes/po/POTFILES.in index e8d2ba8..0cb531b 100644 --- a/contrib/binutils/opcodes/po/POTFILES.in +++ b/contrib/binutils/opcodes/po/POTFILES.in @@ -78,6 +78,8 @@ openrisc-dis.c openrisc-ibld.c openrisc-opc.c openrisc-opc.h +or32-dis.c +or32-opc.c pdp11-dis.c pdp11-opc.c pj-dis.c @@ -89,6 +91,9 @@ s390-mkopc.c s390-opc.c sh-dis.c sh-opc.h +sh64-dis.c +sh64-opc.c +sh64-opc.h sparc-dis.c sparc-opc.c sysdep.h diff --git a/contrib/binutils/opcodes/po/opcodes.pot b/contrib/binutils/opcodes/po/opcodes.pot index 4e079cd..fbc549d 100644 --- a/contrib/binutils/opcodes/po/opcodes.pot +++ b/contrib/binutils/opcodes/po/opcodes.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-01-17 13:58+0000\n" +"POT-Creation-Date: 2002-02-08 03:24-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" @@ -26,21 +26,21 @@ msgstr "" msgid "Illegal limm reference in last instruction!\n" msgstr "" -#: arm-dis.c:509 +#: arm-dis.c:502 msgid "<illegal precision>" msgstr "" -#: arm-dis.c:1019 +#: arm-dis.c:1012 #, c-format msgid "Unrecognised register name set: %s\n" msgstr "" -#: arm-dis.c:1026 +#: arm-dis.c:1019 #, c-format msgid "Unrecognised disassembler option: %s\n" msgstr "" -#: arm-dis.c:1198 +#: arm-dis.c:1191 msgid "" "\n" "The following ARM specific disassembler options are supported for use with\n" @@ -61,6 +61,7 @@ msgid "unknown constraint `%c'" msgstr "" #: cgen-asm.c:346 fr30-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195 +#: xstormy16-ibld.c:195 #, c-format msgid "operand out of range (%ld not between %ld and %ld)" msgstr "" @@ -86,96 +87,100 @@ msgstr "" msgid "Address 0x%x is out of bounds.\n" msgstr "" -#: fr30-asm.c:324 m32r-asm.c:326 openrisc-asm.c:245 +#: fr30-asm.c:323 m32r-asm.c:325 openrisc-asm.c:244 xstormy16-asm.c:231 #, c-format msgid "Unrecognized field %d while parsing.\n" msgstr "" -#: fr30-asm.c:374 m32r-asm.c:376 openrisc-asm.c:295 +#: fr30-asm.c:373 m32r-asm.c:375 openrisc-asm.c:294 xstormy16-asm.c:281 msgid "missing mnemonic in syntax string" msgstr "" #. We couldn't parse it. -#: fr30-asm.c:510 fr30-asm.c:514 fr30-asm.c:601 fr30-asm.c:703 m32r-asm.c:512 -#: m32r-asm.c:516 m32r-asm.c:603 m32r-asm.c:705 openrisc-asm.c:431 -#: openrisc-asm.c:435 openrisc-asm.c:522 openrisc-asm.c:624 +#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 m32r-asm.c:511 +#: m32r-asm.c:515 m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430 +#: openrisc-asm.c:434 openrisc-asm.c:521 openrisc-asm.c:623 +#: xstormy16-asm.c:417 xstormy16-asm.c:421 xstormy16-asm.c:508 +#: xstormy16-asm.c:610 msgid "unrecognized instruction" msgstr "" -#: fr30-asm.c:557 m32r-asm.c:559 openrisc-asm.c:478 +#: fr30-asm.c:556 m32r-asm.c:558 openrisc-asm.c:477 xstormy16-asm.c:464 #, c-format msgid "syntax error (expected char `%c', found `%c')" msgstr "" -#: fr30-asm.c:567 m32r-asm.c:569 openrisc-asm.c:488 +#: fr30-asm.c:566 m32r-asm.c:568 openrisc-asm.c:487 xstormy16-asm.c:474 #, c-format msgid "syntax error (expected char `%c', found end of instruction)" msgstr "" -#: fr30-asm.c:595 m32r-asm.c:597 openrisc-asm.c:516 +#: fr30-asm.c:594 m32r-asm.c:596 openrisc-asm.c:515 xstormy16-asm.c:502 msgid "junk at end of line" msgstr "" -#: fr30-asm.c:702 m32r-asm.c:704 openrisc-asm.c:623 +#: fr30-asm.c:701 m32r-asm.c:703 openrisc-asm.c:622 xstormy16-asm.c:609 msgid "unrecognized form of instruction" msgstr "" -#: fr30-asm.c:714 m32r-asm.c:716 openrisc-asm.c:635 +#: fr30-asm.c:713 m32r-asm.c:715 openrisc-asm.c:634 xstormy16-asm.c:621 #, c-format msgid "bad instruction `%.50s...'" msgstr "" -#: fr30-asm.c:717 m32r-asm.c:719 openrisc-asm.c:638 +#: fr30-asm.c:716 m32r-asm.c:718 openrisc-asm.c:637 xstormy16-asm.c:624 #, c-format msgid "bad instruction `%.50s'" msgstr "" #. Default text to print if an instruction isn't recognized. #: fr30-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39 +#: xstormy16-dis.c:39 msgid "*unknown*" msgstr "" -#: fr30-dis.c:319 m32r-dis.c:250 openrisc-dis.c:137 +#: fr30-dis.c:318 m32r-dis.c:249 openrisc-dis.c:136 xstormy16-dis.c:169 #, c-format msgid "Unrecognized field %d while printing insn.\n" msgstr "" -#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 +#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166 #, c-format msgid "operand out of range (%ld not between %ld and %lu)" msgstr "" -#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 +#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179 #, c-format msgid "operand out of range (%lu not between 0 and %lu)" msgstr "" -#: fr30-ibld.c:731 m32r-ibld.c:660 openrisc-ibld.c:634 +#: fr30-ibld.c:730 m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678 #, c-format msgid "Unrecognized field %d while building insn.\n" msgstr "" -#: fr30-ibld.c:939 m32r-ibld.c:794 openrisc-ibld.c:737 +#: fr30-ibld.c:937 m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826 #, c-format msgid "Unrecognized field %d while decoding insn.\n" msgstr "" -#: fr30-ibld.c:1088 m32r-ibld.c:904 openrisc-ibld.c:817 +#: fr30-ibld.c:1086 m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939 #, c-format msgid "Unrecognized field %d while getting int operand.\n" msgstr "" -#: fr30-ibld.c:1217 m32r-ibld.c:994 openrisc-ibld.c:877 +#: fr30-ibld.c:1215 m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032 #, c-format msgid "Unrecognized field %d while getting vma operand.\n" msgstr "" -#: fr30-ibld.c:1351 m32r-ibld.c:1092 openrisc-ibld.c:946 +#: fr30-ibld.c:1349 m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134 #, c-format msgid "Unrecognized field %d while setting int operand.\n" msgstr "" -#: fr30-ibld.c:1473 m32r-ibld.c:1178 openrisc-ibld.c:1003 +#: fr30-ibld.c:1471 m32r-ibld.c:1176 openrisc-ibld.c:1001 +#: xstormy16-ibld.c:1224 #, c-format msgid "Unrecognized field %d while setting vma operand.\n" msgstr "" @@ -315,21 +320,21 @@ msgid "invalid register operand when updating" msgstr "" #. Mark as non-valid instruction -#: sparc-dis.c:749 +#: sparc-dis.c:750 msgid "unknown" msgstr "" -#: sparc-dis.c:824 +#: sparc-dis.c:825 #, c-format msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n" msgstr "" -#: sparc-dis.c:835 +#: sparc-dis.c:836 #, c-format msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n" msgstr "" -#: sparc-dis.c:884 +#: sparc-dis.c:885 #, c-format msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n" msgstr "" @@ -392,3 +397,31 @@ msgstr "" #: v850-opc.c:375 msgid "immediate value must be even" msgstr "" + +#: xstormy16-asm.c:74 +msgid "Bad register in preincrement" +msgstr "" + +#: xstormy16-asm.c:79 +msgid "Bad register in postincrement" +msgstr "" + +#: xstormy16-asm.c:81 +msgid "Bad register name" +msgstr "" + +#: xstormy16-asm.c:85 +msgid "Label conflicts with register name" +msgstr "" + +#: xstormy16-asm.c:89 +msgid "Label conflicts with `Rx'" +msgstr "" + +#: xstormy16-asm.c:91 +msgid "Bad immediate expression" +msgstr "" + +#: xstormy16-asm.c:120 +msgid "Small operand was not an immediate number" +msgstr "" diff --git a/contrib/binutils/opcodes/sh-dis.c b/contrib/binutils/opcodes/sh-dis.c index ed472dc..92d7139 100644 --- a/contrib/binutils/opcodes/sh-dis.c +++ b/contrib/binutils/opcodes/sh-dis.c @@ -323,6 +323,11 @@ print_insn_shx (memaddr, info) case bfd_mach_sh4: target_arch = arch_sh4; break; + case bfd_mach_sh5: + /* When we get here for sh64, it's because we want to disassemble + SHcompact, i.e. arch_sh4. */ + target_arch = arch_sh4; + break; default: abort (); } diff --git a/contrib/binutils/opcodes/sh-opc.h b/contrib/binutils/opcodes/sh-opc.h index 38ba17d..abdc464 100644 --- a/contrib/binutils/opcodes/sh-opc.h +++ b/contrib/binutils/opcodes/sh-opc.h @@ -76,6 +76,7 @@ typedef enum { A_DISP_GBR, A_PC, A_DISP_PC, + A_DISP_PC_ABS, A_DISP_REG_M, A_DISP_REG_N, A_GBR, diff --git a/contrib/binutils/opcodes/sparc-dis.c b/contrib/binutils/opcodes/sparc-dis.c index 3590507..4c59398 100644 --- a/contrib/binutils/opcodes/sparc-dis.c +++ b/contrib/binutils/opcodes/sparc-dis.c @@ -419,7 +419,7 @@ print_insn_sparc (memaddr, info) case 'h': (*info->fprintf_func) (stream, "%%hi(%#x)", - (0xFFFFFFFF + ((unsigned) 0xFFFFFFFF & ((int) X_IMM22 (insn) << 10))); break; @@ -716,7 +716,8 @@ print_insn_sparc (memaddr, info) { (*info->fprintf_func) (stream, "\t! "); info->target = - (0xFFFFFFFF & (int) X_IMM22 (prev_insn) << 10); + ((unsigned) 0xFFFFFFFF + & ((int) X_IMM22 (prev_insn) << 10)); if (imm_added_to_rs1) info->target += X_SIMM (insn, 13); else |