diff options
author | obrien <obrien@FreeBSD.org> | 2002-12-02 09:06:04 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2002-12-02 09:06:04 +0000 |
commit | 225c3b110193aa0853fcc74fb69ddc504972f91f (patch) | |
tree | 285c176a9d4c27aa844e844b43c123156c87006b /contrib/binutils/bfd | |
parent | c35e71cdfc7611906cbf9303055832142e9cbaca (diff) | |
parent | 4f4b0b5073010ff850cc95a6bd074066eeb7dccb (diff) | |
download | FreeBSD-src-225c3b110193aa0853fcc74fb69ddc504972f91f.zip FreeBSD-src-225c3b110193aa0853fcc74fb69ddc504972f91f.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r107492,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/binutils/bfd')
53 files changed, 1019 insertions, 641 deletions
diff --git a/contrib/binutils/bfd/ChangeLog b/contrib/binutils/bfd/ChangeLog index 1d3c161..6c92f76 100644 --- a/contrib/binutils/bfd/ChangeLog +++ b/contrib/binutils/bfd/ChangeLog @@ -1,7 +1,276 @@ +2002-11-27 David O'Brien <obrien@FreeBSD.org> + + * elf.c (_bfd_elf_copy_private_section_data): Don't define bed. + +2002-11-21 Richard Henderson <rth@redhat.com> + + * elflink.h (elf_link_add_object_symbols): Don't overwrite the + arch's st_other bits when merging visibilities. + (elf_link_output_extsym): Tidy clearing of visibility field. + +2002-11-14 David O'Brien <obrien@FreeBSD.org> + + Merge from mainline: + 2002-11-12 Thomas Moestl <tmm@FreeBSD.org> + * elf64-sparc.c (sparc64_elf_adjust_dynamic_symbol): Correct + references to large plt symbols. + +2002-11-13 Alan Modra <amodra@bigpond.net.au> + + Merge from mainline. + 2002-11-07 Alan Modra <amodra@bigpond.net.au> + * elf64-ppc.c: Comment typo fixes. + (ppc64_elf_merge_private_bfd_data): Allow BFD_ENDIAN_UNKNOWN input. + +2002-11-11 Nick Clifton <nickc@redhat.com> + + Import this patch from mainline: + + 2002-09-19 Nick Clifton <nickc@redhat.com> + + * elflink.h (elf_fix_symbol_flags): When examining weak symbols, + follow indirect links. + +2002-11-07 Daniel Jacobowitz <drow@mvista.com> + + * configure.in: Clear is_release on the branch after release. + +2002-11-07 Daniel Jacobowitz <drow@mvista.com> + + * configure.in: Bump version and set is_release. + * configure: Regenerate. + +2002-11-07 Nick Clifton <nickc@redhat.com> + + * po/da.po: Updated Danish translation. + +2002-11-07 Graeme Peterson <gp@qnx.com> + + * Makefile.am: Removed entries for elf32-i386qnx.c and + elf32-i386qnx.lo. + * Makefile.in: Regenerate. + * config.bfd: Changed i[3456]86-*-nto-qnx* targ_defvec from + bfd_elf32_i386qnx_vec to bfd_elf32_i386_vec. + * configure.in: Removed support for bfd_elf32_i386qnx_vec. + * configure: Regenerate. + * elf32-i386qnx.c: Removed. + * elf.c: Removed calls to QNX specific set_nonloadable_filepos, + is_contained_by_filepos, and copy_private_bfd_data_p. + * elf32-i386.c: Removed QNX specific #ifdef ELF32_I386_C_INCLUDED. + * targets.c: Removed bfd_elf32_i386qnx_vec. + * elfxx-target.h: Removed QNX specific elf_backend_set_nonloadable_filepos, + elf_backend_is_contained_by_filepos, and elf_backend_copy_private_bfd_data_p. + * elf-bfd.h: Removed QNX specific set_nonloadable_filepos, + is_contained_by_filepos, and copy_private_bfd_data_p. + +2002-11-06 David O'Brien <obrien@FreeBSD.org> + Alan Modra <amodra@bigpond.net.au> + + * elf64-sparc.c (sparc64_elf_relocate_section): Adjust addend of + dynamic relocs against section symbols for the output section vma. + +2002-11-05 Elias Athanasopoulos <eathan@otenet.gr> + + * vms-gsd.c (_bfd_vms_write_gsd): Check that symbol->udata.p is + non-NULL before dereferencing. + +2002-11-04 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * vms.c (vms_object_p): Restore the start address when returning + NULL. + +2002-10-31 David O'Brien <obrien@FreeBSD.org> + + * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't mix + signed and unsigned in comparison. + +2002-10-30 Daniel Jacobowitz <drow@mvista.com> + + * bfd-in2.h: Regenerated. + * po/SRC-POTFILES.in: Regenerated. + * po/bfd.pot: Regenerated. + +2002-10-30 Daniel Jacobowitz <drow@mvista.com> + + * coffcode.h: Remove extraneous '\'. + +2002-10-28 Daniel Jacobowitz <drow@mvista.com> + + Merge from mainline: + 2002-10-24 John David Anglin <dave@hiauly1.hia.nrc.ca> + * aoutx.h (NAME(aout,swap_ext_reloc_in)): Cast bytes->r_index to + unsigned int. Cast RELOC_BASE10, RELOC_BASE13 and RELOC_BASE22 to + unsigned int. + (NAME(aout,final_link)): Cast enum used in assignment. + (aout_link_write_symbols): Cast enums in comparisons, int values to + boolean, enums in assignments to int. + (aout_link_input_section_std): Cast rel->r_index to unsigned int. + (aout_link_input_section_ext): Likewise. Cast enums used in comparisons + with unsigned ints. + (aout_link_reloc_link_order): Cast enum to int in assignment. + * archive.c (_bfd_generic_read_ar_hdr_mag): Cast result of memchr + calls to char *. + * bfd-in.h (bfd_set_section_vma): Cast enum true to unsigned int in + assignment. + * bfd-in2.h (bfd_set_section_vma): Likewise. + * bfd.c (bfd_record_phdr): Cast enums in assignments. + * binary.c (bfd_alloc): Cast enum to long. + * coffgen.c (_bfd_coff_is_local_label_name): Cast return to boolean. + * dwarf2.c (read_abbrevs): Add casts to enum types. + (read_attribute_value): Likewise. + (arange_add): Cast result of bfd_zalloc call. + (comp_unit_contains_address): Return true and false. + (comp_unit_find_nearest_line): Cast return to boolean. + * format.c (bfd_check_format_matches, bfd_set_format): Likewise. + * gen-aout.c: define macro '_' if not defined. + * libbfd.c (bfd_realloc): Cast malloc and realloc to PTR. + (bfd_bwrite): Cast bfd_realloc to bfd_byte *. + (bfd_write_bigendian_4byte_int): Cast return to boolean. + (bfd_seek): Cast bfd_realloc to bfd_byte *. + (bfd_generic_is_local_label_name): Cast return to boolean. + * libcoff.h (_bfd_coff_adjust_symndx): Remove extraneous '\'. + * linker.c (_bfd_link_hash_newfunc): Cast bfd_hash_allocate result to + struct bfd_hash_entry *. + (_bfd_generic_link_hash_newfunc): likewise. + (_bfd_generic_final_link): Cast enum to unsigned int. + * merge.c (sec_merge_emit): Cast return to boolean. + (merge_strings): Add casts to const unsigned char *. + * reloc.c (bfd_get_reloc_code_name): Cast enums in comparison to int. + (bfd_generic_get_relocated_section_content): Cast enum to unsigned int. + * section.c (bfd_section_hash_newfunc): Cast bfd_hash_allocate result to + struct bfd_hash_entry *. + (bfd_set_section_content): Add cast to PTR in comparison. + * srec.c (S3Forced): Initialize to false. + (srec_get_symtab): Cast return value from bfd_alloc to asymbol *. + * stabs.c (_bfd_link_section_stabs): Cast enum to int in comparisons. + (_bfd_discard_section_stabs): Likewise. Also cast return to boolean. + * syms.c (bfd_is_undefined_symclass): Cast return to boolean. + (_bfd_stab_section_find_nearest_line): Cast enum to bfd_byte in + comparisons. + + 2002-10-23 Jakub Jelinek <jakub@redhat.com> + * elf64-alpha.c (elf64_alpha_check_relocs): Only put maybe_dynamic + relocs into shared lib non-allocated reloc sections. + + 2002-10-23 Nathan Tallent <eraxxon@alumni.rice.edu> + * dwarf2.c (add_line_info): Ensure that the line_info_table is + sorted even when given an out-of-order line sequence. + (lookup_address_in_line_info_table): When an exact VMA match is + not found, return line information with the closest VMA. + + 2002-10-21 Alan Modra <amodra@bigpond.net.au> + * targets.c (bfd_target_list): Don't return the default target twice. + + 2002-10-19 H.J. Lu <hjl@gnu.org> + * elflink.h (elf_link_add_object_symbols): Correctly handle + DT_RPATH and DT_RUNPATH. + + 2002-10-16 Jakub Jelinek <jakub@redhat.com> + * config.bfd (s390-*-linux*): Add targ64_selvecs. + (s390x-*-linux*): Add targ_selvecs. + + 2002-10-16 Alan Modra <amodra@bigpond.net.au> + * elflink.h (elf_link_add_object_symbols): Error out on dynamic objects + loaded with --just-symbols. + + * elf32-i386qnx.c (TARGET_LITTLE_NAME): Define. + + 2002-10-14 Kaz Kojima <kkojima@rr.iij4u.or.jp> + * config.bfd (sh*eb-*-linux*, sh*-*-linux*): Add the alternative + endian vector to targ_selvecs. + + 2002-10-08 H.J. Lu <hjl@gnu.org> + * elf32-i386.c (elf_i386_relocate_section): Re-arrange the + IE->LE transition for R_386_TLS_IE. + + 2002-10-07 Mark Elbrecht <snowball3@softhome.net> + * cofflink.c (mark_relocs): Don't mark relocations in excluded + sections. + + 2002-10-05 Alexandre Oliva <aoliva@redhat.com> + * elfxx-mips.c (mips_elf_create_dynamic_relocation): Set the type + of the other two relocations packed with a REL32 to NONE. + + 2002-10-02 Stephen Clarke <stephen.clarke@superh.com> + * elf32-sh.c (elf_sh_link_hash_entry): Add gotplt_refcount. + (sh_elf_link_hash_newfunc): Initialize it. + (allocate_dynrelocs): Transfer gotplt refs from plt.refcount + to got.refcount for symbols that are forced local or when + we have direct got refs. + (sh_elf_gc_sweep_hook): Adjust gotplt_refcount. Use it + to correctly adjust got.refcount and plt.refcount. + (sh_elf_copy_indirect_symbol): Copy gotplt_refcount across. + (sh_elf_check_relocs): Increment gotplt_refcount. + + 2002-10-01 Jakub Jelinek <jakub@redhat.com> + * elf32-i386.c (elf_i386_relocate_section): Fix + movl foo@indntpoff, %eax IE->LE transition. + + 2002-09-28 Jason Thorpe <thorpej@wasabisystems.com> + * elf32-vax.c (elf_vax_size_dynamic_section): Don't strip + .got sections. + + 2002-09-27 Matt Thomas <matt@3am-software.com> + * elf32-vax.c (elf_vax_check_relocs): Remove unused + local_got_refcounts usage. Remove allocation of got slot. + (elf_vax_gc_sweep_hook): Remove unused local_got_refcounts usage. + Remove de-allocation of got slot. + (elf_vax_size_dynamic_section): Fix some indentation. Add hash + traversal for elf_vax_instantiate_got_entries. Allow empty .got + sections to be GC'ed. + (elf_vax_instantiate_got_entries): New function. + (elf_vax_relocate_section): Simplify R_VAX_GOT32 handling. Remove + tests that are now handled by elf_vax_instantiate_got_entries. + Assert GOT entry falls within .got section size. Remove redundant + comparisions. Fix comments. + + 2002-09-24 Jakub Jelinek <jakub@redhat.com> + * elf32-sparc.c (elf32_sparc_relocate_section): Put R_SPARC_RELATIVE + addend into r_addend, not *r_offset. + (elf32_sparc_finish_dynamic_symbol): Likewise. + * elf64-sparc.c (sparc64_elf_finish_dynamic_symbol): Clear xword at + R_SPARC_RELATIVE's r_offset. + + 2002-08-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + * elfxx-mips.c (mips_elf_create_dynamic_relocation): Cast signedness + mismatch. + +2002-10-14 Richard Henderson <rth@redhat.com> + + * elf64-alpha.c (elf64_alpha_relocate_section) [BRSGP]: Increment + VALUE, not ADDEND. + 2002-10-11 Alan Modra <amodra@bigpond.net.au> + * coff-arm.c (record_arm_to_thumb_glue): Avoid type-punned pointers. + (record_thumb_to_arm_glue): Likewise. + * ecoff.c (ecoff_link_add_externals): Likewise. + * elf32-arm.h (record_arm_to_thumb_glue): Likewise. + (record_thumb_to_arm_glue): Likewise. + * elf32-m32r.c (m32r_elf_add_symbol_hook): Likewise. + * elf32-sh.c (sh_elf_create_dynamic_sections): Likewise. + * elf32-sh64.c (sh64_elf_add_symbol_hook): Likewise. + * elf64-alpha.c (elf64_alpha_create_dynamic_sections): Likewise. + * elf64-ppc.c (func_desc_adjust): Likewise. + * elf64-sh64.c (sh64_elf64_add_symbol_hook): Likewise. + (sh64_elf64_create_dynamic_sections): Likewise. + * elflink.c (_bfd_elf_create_got_section): Likewise. + (_bfd_elf_create_dynamic_sections): Likewise. + (_bfd_elf_create_linker_section): Likewise. + * elflink.h (elf_add_default_symbol): Likewise. + (elf_link_create_dynamic_sections): Likewise. + (NAME(bfd_elf,size_dynamic_sections)): Likewise. + * elfxx-ia64.c (elfNN_ia64_aix_add_symbol_hook): Likewise. + * elfxx-mips.c (mips_elf_create_got_section): Likewise. + (_bfd_mips_elf_add_symbol_hook): Likewise. + (_bfd_mips_elf_create_dynamic_sections): Likewise. + * linker.c (generic_link_add_symbol_list): Likewise. + * xcofflink.c (xcoff_link_add_symbols): Likewise. + + * elfxx-ia64.c (oor_brl, oor_ip): Conditionally define. + * elf64-ppc.c (edit_opd): Only zero opd syms when function is - completely removed. + completely removed. Correct local sym adjustment. 2002-10-08 Alan Modra <amodra@bigpond.net.au> diff --git a/contrib/binutils/bfd/Makefile.am b/contrib/binutils/bfd/Makefile.am index f56ceb0..1213897 100644 --- a/contrib/binutils/bfd/Makefile.am +++ b/contrib/binutils/bfd/Makefile.am @@ -211,7 +211,6 @@ BFD32_BACKENDS = \ elf32-i370.lo \ elf32-i386.lo \ elf32-i386-fbsd.lo \ - elf32-i386qnx.lo \ elf32-i860.lo \ elf32-i960.lo \ elf32-ia64.lo \ @@ -369,7 +368,6 @@ BFD32_BACKENDS_CFILES = \ elf32-i370.c \ elf32-i386.c \ elf32-i386-fbsd.c \ - elf32-i386qnx.c \ elf32-i860.c \ elf32-i960.c \ elf32-m32r.c \ @@ -1145,10 +1143,6 @@ elf32-i386-fbsd.lo: elf32-i386-fbsd.c elf32-i386.c $(INCDIR)/filenames.h \ $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h \ $(INCDIR)/elf/reloc-macros.h elf32-target.h -elf32-i386qnx.lo: elf32-i386qnx.c elf32-i386.c $(INCDIR)/filenames.h \ - $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h \ - $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-i860.lo: elf32-i860.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/reloc-macros.h \ diff --git a/contrib/binutils/bfd/Makefile.in b/contrib/binutils/bfd/Makefile.in index 6744de0..dd4ff4f 100644 --- a/contrib/binutils/bfd/Makefile.in +++ b/contrib/binutils/bfd/Makefile.in @@ -1,6 +1,6 @@ -# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am +# Makefile.in generated automatically by automake 1.4 from Makefile.am -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999 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. @@ -339,7 +339,6 @@ BFD32_BACKENDS = \ elf32-i370.lo \ elf32-i386.lo \ elf32-i386-fbsd.lo \ - elf32-i386qnx.lo \ elf32-i860.lo \ elf32-i960.lo \ elf32-ia64.lo \ @@ -498,7 +497,6 @@ BFD32_BACKENDS_CFILES = \ elf32-i370.c \ elf32-i386.c \ elf32-i386-fbsd.c \ - elf32-i386qnx.c \ elf32-i860.c \ elf32-i960.c \ elf32-m32r.c \ @@ -933,7 +931,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//`; \ @@ -1675,10 +1673,6 @@ elf32-i386-fbsd.lo: elf32-i386-fbsd.c elf32-i386.c $(INCDIR)/filenames.h \ $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h \ $(INCDIR)/elf/reloc-macros.h elf32-target.h -elf32-i386qnx.lo: elf32-i386qnx.c elf32-i386.c $(INCDIR)/filenames.h \ - $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h \ - $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-i860.lo: elf32-i860.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/reloc-macros.h \ diff --git a/contrib/binutils/bfd/aout-tic30.c b/contrib/binutils/bfd/aout-tic30.c index e3c74fa..a39a5b1 100644 --- a/contrib/binutils/bfd/aout-tic30.c +++ b/contrib/binutils/bfd/aout-tic30.c @@ -1,5 +1,5 @@ /* BFD back-end for TMS320C30 a.out binaries. - Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au) This file is part of BFD, the Binary File Descriptor library. @@ -965,6 +965,9 @@ tic30_aout_set_arch_mach (abfd, arch, machine) #ifndef MY_bfd_merge_sections #define MY_bfd_merge_sections bfd_generic_merge_sections #endif +#ifndef MY_bfd_discard_group +#define MY_bfd_discard_group bfd_generic_discard_group +#endif #ifndef MY_bfd_reloc_type_lookup #define MY_bfd_reloc_type_lookup tic30_aout_reloc_type_lookup #endif @@ -980,9 +983,15 @@ tic30_aout_set_arch_mach (abfd, arch, machine) #ifndef MY_bfd_link_hash_table_create #define MY_bfd_link_hash_table_create NAME(aout,link_hash_table_create) #endif +#ifndef MY_bfd_link_hash_table_free +#define MY_bfd_link_hash_table_free _bfd_generic_link_hash_table_free +#endif #ifndef MY_bfd_link_add_symbols #define MY_bfd_link_add_symbols NAME(aout,link_add_symbols) #endif +#ifndef MY_bfd_link_just_syms +#define MY_bfd_link_just_syms _bfd_generic_link_just_syms +#endif #ifndef MY_bfd_link_split_section #define MY_bfd_link_split_section _bfd_generic_link_split_section #endif diff --git a/contrib/binutils/bfd/aoutx.h b/contrib/binutils/bfd/aoutx.h index 83e9732..70359d6 100644 --- a/contrib/binutils/bfd/aoutx.h +++ b/contrib/binutils/bfd/aoutx.h @@ -2259,8 +2259,8 @@ NAME(aout,swap_ext_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount) /* now the fun stuff */ if (bfd_header_big_endian (abfd)) { - r_index = ((bytes->r_index[0] << 16) - | (bytes->r_index[1] << 8) + r_index = (((unsigned int) bytes->r_index[0] << 16) + | ((unsigned int) bytes->r_index[1] << 8) | bytes->r_index[2]); r_extern = (0 != (bytes->r_type[0] & RELOC_EXT_BITS_EXTERN_BIG)); r_type = ((bytes->r_type[0] & RELOC_EXT_BITS_TYPE_BIG) @@ -2268,8 +2268,8 @@ NAME(aout,swap_ext_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount) } else { - r_index = ((bytes->r_index[2] << 16) - | (bytes->r_index[1] << 8) + r_index = (((unsigned int) bytes->r_index[2] << 16) + | ((unsigned int) bytes->r_index[1] << 8) | bytes->r_index[0]); r_extern = (0 != (bytes->r_type[0] & RELOC_EXT_BITS_EXTERN_LITTLE)); r_type = ((bytes->r_type[0] & RELOC_EXT_BITS_TYPE_LITTLE) @@ -2281,9 +2281,9 @@ NAME(aout,swap_ext_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount) /* Base relative relocs are always against the symbol table, regardless of the setting of r_extern. r_extern just reflects whether the symbol the reloc is against is local or global. */ - if (r_type == RELOC_BASE10 - || r_type == RELOC_BASE13 - || r_type == RELOC_BASE22) + if (r_type == (unsigned int) RELOC_BASE10 + || r_type == (unsigned int) RELOC_BASE13 + || r_type == (unsigned int) RELOC_BASE22) r_extern = 1; if (r_extern && r_index > symcount) @@ -2318,8 +2318,8 @@ NAME(aout,swap_std_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount) /* now the fun stuff */ if (bfd_header_big_endian (abfd)) { - r_index = ((bytes->r_index[0] << 16) - | (bytes->r_index[1] << 8) + r_index = (((unsigned int) bytes->r_index[0] << 16) + | ((unsigned int) bytes->r_index[1] << 8) | bytes->r_index[2]); r_extern = (0 != (bytes->r_type[0] & RELOC_STD_BITS_EXTERN_BIG)); r_pcrel = (0 != (bytes->r_type[0] & RELOC_STD_BITS_PCREL_BIG)); @@ -2331,8 +2331,8 @@ NAME(aout,swap_std_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount) } else { - r_index = ((bytes->r_index[2] << 16) - | (bytes->r_index[1] << 8) + r_index = (((unsigned int) bytes->r_index[2] << 16) + | ((unsigned int) bytes->r_index[1] << 8) | bytes->r_index[0]); r_extern = (0 != (bytes->r_type[0] & RELOC_STD_BITS_EXTERN_LITTLE)); r_pcrel = (0 != (bytes->r_type[0] & RELOC_STD_BITS_PCREL_LITTLE)); @@ -3863,7 +3863,7 @@ NAME(aout,final_link) (abfd, info, callback) for (p = o->link_order_head; p != NULL; p = p->next) { if (p->type == bfd_indirect_link_order) - p->u.indirect.section->linker_mark = true; + p->u.indirect.section->linker_mark = (unsigned int) true; } } @@ -4412,7 +4412,7 @@ aout_link_write_symbols (finfo, input_bfd) characters in the symbol names, not including the file numbers in types (the first number after an open parenthesis). */ - if (type == N_BINCL) + if (type == (int) N_BINCL) { struct external_nlist *incl_sym; int nest; @@ -4426,13 +4426,13 @@ aout_link_write_symbols (finfo, input_bfd) int incl_type; incl_type = H_GET_8 (input_bfd, incl_sym->e_type); - if (incl_type == N_EINCL) + if (incl_type == (int) N_EINCL) { if (nest == 0) break; --nest; } - else if (incl_type == N_BINCL) + else if (incl_type == (int) N_BINCL) ++nest; else if (nest == 0) { @@ -4457,7 +4457,7 @@ aout_link_write_symbols (finfo, input_bfd) /* If we have already included a header file with the same value, then replace this one with an N_EXCL symbol. */ - copy = ! finfo->info->keep_memory; + copy = (boolean) (! finfo->info->keep_memory); incl_entry = aout_link_includes_lookup (&finfo->includes, name, true, copy); if (incl_entry == NULL) @@ -4485,7 +4485,7 @@ aout_link_write_symbols (finfo, input_bfd) /* This is a duplicate header file. We must change it to be an N_EXCL entry, and mark all the included symbols to prevent outputting them. */ - type = N_EXCL; + type = (int) N_EXCL; nest = 0; for (incl_sym = sym + 1, incl_map = symbol_map + 1; @@ -4495,7 +4495,7 @@ aout_link_write_symbols (finfo, input_bfd) int incl_type; incl_type = H_GET_8 (input_bfd, incl_sym->e_type); - if (incl_type == N_EINCL) + if (incl_type == (int) N_EINCL) { if (nest == 0) { @@ -4504,7 +4504,7 @@ aout_link_write_symbols (finfo, input_bfd) } --nest; } - else if (incl_type == N_BINCL) + else if (incl_type == (int) N_BINCL) ++nest; else if (nest == 0) *incl_map = -1; @@ -4859,8 +4859,8 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs, if (bfd_header_big_endian (input_bfd)) { - r_index = ((rel->r_index[0] << 16) - | (rel->r_index[1] << 8) + r_index = (((unsigned int) rel->r_index[0] << 16) + | ((unsigned int) rel->r_index[1] << 8) | rel->r_index[2]); r_extern = (0 != (rel->r_type[0] & RELOC_STD_BITS_EXTERN_BIG)); r_pcrel = (0 != (rel->r_type[0] & RELOC_STD_BITS_PCREL_BIG)); @@ -4872,8 +4872,8 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs, } else { - r_index = ((rel->r_index[2] << 16) - | (rel->r_index[1] << 8) + r_index = (((unsigned int) rel->r_index[2] << 16) + | ((unsigned int) rel->r_index[1] << 8) | rel->r_index[0]); r_extern = (0 != (rel->r_type[0] & RELOC_STD_BITS_EXTERN_LITTLE)); r_pcrel = (0 != (rel->r_type[0] & RELOC_STD_BITS_PCREL_LITTLE)); @@ -5195,8 +5195,8 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs, if (bfd_header_big_endian (input_bfd)) { - r_index = ((rel->r_index[0] << 16) - | (rel->r_index[1] << 8) + r_index = (((unsigned int) rel->r_index[0] << 16) + | ((unsigned int) rel->r_index[1] << 8) | rel->r_index[2]); r_extern = (0 != (rel->r_type[0] & RELOC_EXT_BITS_EXTERN_BIG)); r_type = ((rel->r_type[0] & RELOC_EXT_BITS_TYPE_BIG) @@ -5204,8 +5204,8 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs, } else { - r_index = ((rel->r_index[2] << 16) - | (rel->r_index[1] << 8) + r_index = (((unsigned int) rel->r_index[2] << 16) + | ((unsigned int) rel->r_index[1] << 8) | rel->r_index[0]); r_extern = (0 != (rel->r_type[0] & RELOC_EXT_BITS_EXTERN_LITTLE)); r_type = ((rel->r_type[0] & RELOC_EXT_BITS_TYPE_LITTLE) @@ -5221,16 +5221,16 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs, /* We are generating a relocateable output file, and must modify the reloc accordingly. */ if (r_extern - || r_type == RELOC_BASE10 - || r_type == RELOC_BASE13 - || r_type == RELOC_BASE22) + || r_type == (unsigned int) RELOC_BASE10 + || r_type == (unsigned int) RELOC_BASE13 + || r_type == (unsigned int) RELOC_BASE22) { /* If we know the symbol this relocation is against, convert it into a relocation against a section. This is what the native linker does. */ - if (r_type == RELOC_BASE10 - || r_type == RELOC_BASE13 - || r_type == RELOC_BASE22) + if (r_type == (unsigned int) RELOC_BASE10 + || r_type == (unsigned int) RELOC_BASE13 + || r_type == (unsigned int) RELOC_BASE22) h = NULL; else h = sym_hashes[r_index]; @@ -5398,9 +5398,9 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs, relocation = 0; } } - else if (r_type == RELOC_BASE10 - || r_type == RELOC_BASE13 - || r_type == RELOC_BASE22) + else if (r_type == (unsigned int) RELOC_BASE10 + || r_type == (unsigned int) RELOC_BASE13 + || r_type == (unsigned int) RELOC_BASE22) { struct external_nlist *sym; int type; @@ -5482,9 +5482,9 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs, to skip this reloc. */ if (hundef && ! finfo->info->shared - && r_type != RELOC_BASE10 - && r_type != RELOC_BASE13 - && r_type != RELOC_BASE22) + && r_type != (unsigned int) RELOC_BASE10 + && r_type != (unsigned int) RELOC_BASE13 + && r_type != (unsigned int) RELOC_BASE22) { const char *name; @@ -5498,7 +5498,7 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs, return false; } - if (r_type != RELOC_SPARC_REV32) + if (r_type != (unsigned int) RELOC_SPARC_REV32) r = MY_final_link_relocate (howto_table_ext + r_type, input_bfd, input_section, contents, r_addr, relocation, @@ -5527,9 +5527,9 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs, if (h != NULL) name = h->root.root.string; else if (r_extern - || r_type == RELOC_BASE10 - || r_type == RELOC_BASE13 - || r_type == RELOC_BASE22) + || r_type == (unsigned int) RELOC_BASE10 + || r_type == (unsigned int) RELOC_BASE13 + || r_type == (unsigned int) RELOC_BASE22) name = strings + GET_WORD (input_bfd, syms[r_index].e_strx); else @@ -5645,7 +5645,7 @@ aout_link_reloc_link_order (finfo, o, p) int r_relative; int r_length; - r_pcrel = howto->pc_relative; + r_pcrel = (int) howto->pc_relative; r_baserel = (howto->type & 8) != 0; r_jmptable = (howto->type & 16) != 0; r_relative = (howto->type & 32) != 0; diff --git a/contrib/binutils/bfd/archive.c b/contrib/binutils/bfd/archive.c index d7ac214..b051e2a 100644 --- a/contrib/binutils/bfd/archive.c +++ b/contrib/binutils/bfd/archive.c @@ -436,12 +436,12 @@ _bfd_generic_read_ar_hdr_mag (abfd, mag) spaces, so only look for ' ' if we don't find '/'. */ char *e; - e = memchr (hdr.ar_name, '\0', ar_maxnamelen (abfd)); + e = (char *) memchr (hdr.ar_name, '\0', ar_maxnamelen (abfd)); if (e == NULL) { - e = memchr (hdr.ar_name, '/', ar_maxnamelen (abfd)); + e = (char *) memchr (hdr.ar_name, '/', ar_maxnamelen (abfd)); if (e == NULL) - e = memchr (hdr.ar_name, ' ', ar_maxnamelen (abfd)); + e = (char *) memchr (hdr.ar_name, ' ', ar_maxnamelen (abfd)); } if (e != NULL) diff --git a/contrib/binutils/bfd/bfd-in.h b/contrib/binutils/bfd/bfd-in.h index 807a440..f0f8cfd 100644 --- a/contrib/binutils/bfd/bfd-in.h +++ b/contrib/binutils/bfd/bfd-in.h @@ -346,7 +346,7 @@ typedef struct sec *sec_ptr; #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) -#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = (boolean)true), true) +#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = (unsigned int)true), true) #define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true) #define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true) diff --git a/contrib/binutils/bfd/bfd-in2.h b/contrib/binutils/bfd/bfd-in2.h index bad4281..13aa0f9 100644 --- a/contrib/binutils/bfd/bfd-in2.h +++ b/contrib/binutils/bfd/bfd-in2.h @@ -352,7 +352,7 @@ typedef struct sec *sec_ptr; #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) -#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = (boolean)true), true) +#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = (unsigned int)true), true) #define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true) #define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true) @@ -3634,7 +3634,7 @@ extern bfd_byte *bfd_get_relocated_section_contents boolean, asymbol **)); boolean -bfd_alt_mach_code PARAMS ((bfd *abfd, int index)); +bfd_alt_mach_code PARAMS ((bfd *abfd, int alternative)); /* Extracted from archive.c. */ symindex diff --git a/contrib/binutils/bfd/bfd.c b/contrib/binutils/bfd/bfd.c index cfd7772..8037b12 100644 --- a/contrib/binutils/bfd/bfd.c +++ b/contrib/binutils/bfd/bfd.c @@ -1293,10 +1293,10 @@ bfd_record_phdr (abfd, type, flags_valid, flags, at_valid, at, m->p_type = type; m->p_flags = flags; m->p_paddr = at; - m->p_flags_valid = flags_valid; - m->p_paddr_valid = at_valid; - m->includes_filehdr = includes_filehdr; - m->includes_phdrs = includes_phdrs; + m->p_flags_valid = (unsigned int) flags_valid; + m->p_paddr_valid = (unsigned int) at_valid; + m->includes_filehdr = (unsigned int) includes_filehdr; + m->includes_phdrs = (unsigned int) includes_phdrs; m->count = count; if (count > 0) memcpy (m->sections, secs, count * sizeof (asection *)); diff --git a/contrib/binutils/bfd/binary.c b/contrib/binutils/bfd/binary.c index fc972b2..7bddabf 100644 --- a/contrib/binutils/bfd/binary.c +++ b/contrib/binutils/bfd/binary.c @@ -185,7 +185,7 @@ binary_get_symtab (abfd, alocation) syms = (asymbol *) bfd_alloc (abfd, amt); if (syms == NULL) - return false; + return (long) false; /* Start symbol. */ syms[0].the_bfd = abfd; diff --git a/contrib/binutils/bfd/coff-arm.c b/contrib/binutils/bfd/coff-arm.c index 5e7f907..25256a8 100644 --- a/contrib/binutils/bfd/coff-arm.c +++ b/contrib/binutils/bfd/coff-arm.c @@ -1881,6 +1881,7 @@ record_arm_to_thumb_glue (info, h) register asection * s; char * tmp_name; struct coff_link_hash_entry * myh; + struct bfd_link_hash_entry * bh; struct coff_arm_link_hash_table * globals; bfd_vma val; bfd_size_type amt; @@ -1915,10 +1916,10 @@ record_arm_to_thumb_glue (info, h) though the section isn't allocated yet, this is where we will be putting it. */ + bh = NULL; val = globals->arm_glue_size + 1; bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name, - BSF_GLOBAL, s, val, NULL, true, false, - (struct bfd_link_hash_entry **) & myh); + BSF_GLOBAL, s, val, NULL, true, false, &bh); free (tmp_name); @@ -1937,6 +1938,7 @@ record_thumb_to_arm_glue (info, h) register asection * s; char * tmp_name; struct coff_link_hash_entry * myh; + struct bfd_link_hash_entry * bh; struct coff_arm_link_hash_table * globals; bfd_vma val; bfd_size_type amt; @@ -1967,12 +1969,13 @@ record_thumb_to_arm_glue (info, h) return; /* we've already seen this guy */ } + bh = NULL; val = globals->thumb_glue_size + 1; bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name, - BSF_GLOBAL, s, val, NULL, true, false, - (struct bfd_link_hash_entry **) &myh); + BSF_GLOBAL, s, val, NULL, true, false, &bh); /* If we mark it 'thumb', the disassembler will do a better job. */ + myh = (struct coff_link_hash_entry *) bh; myh->class = C_THUMBEXTFUNC; free (tmp_name); @@ -1989,11 +1992,10 @@ record_thumb_to_arm_glue (info, h) sprintf (tmp_name, globals->support_old_code ? BACK_FROM_ARM : CHANGE_TO_ARM, name); - myh = NULL; + bh = NULL; val = globals->thumb_glue_size + (globals->support_old_code ? 8 : 4); bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name, - BSF_LOCAL, s, val, NULL, true, false, - (struct bfd_link_hash_entry **) & myh); + BSF_LOCAL, s, val, NULL, true, false, &bh); free (tmp_name); diff --git a/contrib/binutils/bfd/coffcode.h b/contrib/binutils/bfd/coffcode.h index 212c5c6..1c02dcb 100644 --- a/contrib/binutils/bfd/coffcode.h +++ b/contrib/binutils/bfd/coffcode.h @@ -1246,7 +1246,7 @@ Special entry points for gdb to swap in coff symbol table parts: . struct coff_link_hash_entry *, struct internal_syment *, . bfd_vma *)); . -. boolean (*_bfd_coff_adjust_symndx)\ +. boolean (*_bfd_coff_adjust_symndx) . PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, . struct internal_reloc *, boolean *)); . diff --git a/contrib/binutils/bfd/coffgen.c b/contrib/binutils/bfd/coffgen.c index ee6c8fc..21589c6 100644 --- a/contrib/binutils/bfd/coffgen.c +++ b/contrib/binutils/bfd/coffgen.c @@ -2196,7 +2196,7 @@ _bfd_coff_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; { - return name[0] == '.' && name[1] == 'L'; + return (boolean) (name[0] == '.' && name[1] == 'L'); } /* Provided a BFD, a section and an offset (in bytes, not octets) into the diff --git a/contrib/binutils/bfd/cofflink.c b/contrib/binutils/bfd/cofflink.c index eb9388f..c1302ee 100644 --- a/contrib/binutils/bfd/cofflink.c +++ b/contrib/binutils/bfd/cofflink.c @@ -1322,6 +1322,9 @@ mark_relocs (finfo, input_bfd) if ((a->flags & SEC_RELOC) == 0 || a->reloc_count < 1) continue; + /* Don't mark relocs in excluded sections. */ + if (a->output_section == bfd_abs_section_ptr) + continue; /* Read in the relocs. */ internal_relocs = _bfd_coff_read_internal_relocs diff --git a/contrib/binutils/bfd/config.bfd b/contrib/binutils/bfd/config.bfd index 184bbef..2e9d7fa 100755 --- a/contrib/binutils/bfd/config.bfd +++ b/contrib/binutils/bfd/config.bfd @@ -359,8 +359,8 @@ case "${targ}" in targ_defvec=bfd_elf32_i386_vec targ_selvecs=i386coff_vec ;; - i[3456]86-*-nto-qnx*) - targ_defvec=bfd_elf32_i386qnx_vec + i[3456]86-*-nto*) + targ_defvec=bfd_elf32_i386_vec targ_selvecs=i386coff_vec ;; i[3456]86-*-chorus*) @@ -888,10 +888,12 @@ case "${targ}" in s390-*-linux*) targ_defvec=bfd_elf32_s390_vec + targ64_selvecs=bfd_elf64_s390_vec ;; #ifdef BFD64 s390x-*-linux*) targ_defvec=bfd_elf64_s390_vec + targ_selvecs=bfd_elf32_s390_vec ;; #endif @@ -925,9 +927,11 @@ case "${targ}" in ;; sh*eb-*-linux*) targ_defvec=bfd_elf32_shblin_vec + targ_selvecs=bfd_elf32_shlin_vec ;; sh*-*-linux*) targ_defvec=bfd_elf32_shlin_vec + targ_selvecs=bfd_elf32_shblin_vec ;; #ifdef BFD64 diff --git a/contrib/binutils/bfd/config.in b/contrib/binutils/bfd/config.in index 222096e..d13d196 100644 --- a/contrib/binutils/bfd/config.in +++ b/contrib/binutils/bfd/config.in @@ -1,4 +1,4 @@ -/* config.in. Generated automatically from configure.in by autoheader. */ +/* config.in. Generated automatically from configure.in by autoheader 2.13. */ /* Define if using alloca.c. */ #undef C_ALLOCA @@ -160,15 +160,9 @@ /* Define if you have the <sys/procfs.h> header file. */ #undef HAVE_SYS_PROCFS_H -/* Define if you have the <sys/stat.h> header file. */ -#undef HAVE_SYS_STAT_H - /* Define if you have the <sys/time.h> header file. */ #undef HAVE_SYS_TIME_H -/* Define if you have the <sys/types.h> header file. */ -#undef HAVE_SYS_TYPES_H - /* Define if you have the <time.h> header file. */ #undef HAVE_TIME_H diff --git a/contrib/binutils/bfd/configure b/contrib/binutils/bfd/configure index 6d12109..2eca955 100755 --- a/contrib/binutils/bfd/configure +++ b/contrib/binutils/bfd/configure @@ -1118,7 +1118,7 @@ fi PACKAGE=bfd -VERSION=2.13 +VERSION=2.13.1 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } @@ -6063,7 +6063,6 @@ do bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;; bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386-fbsd.lo elf32.lo $elf" ;; bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf32.lo $elf" ;; - bfd_elf32_i386qnx_vec) tb="$tb elf32-i386qnx.lo elf32.lo $elf" ;; bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i860_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i960_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;; @@ -6310,10 +6309,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:6314: checking for gcc version with buggy 64-bit support" >&5 +echo "configure:6313: 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 6317 "configure" +#line 6316 "configure" #include "confdefs.h" :__GNUC__:__GNUC_MINOR__:__i386__: EOF @@ -6358,17 +6357,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:6362: checking for $ac_hdr" >&5 +echo "configure:6361: 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 6367 "configure" +#line 6366 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6372: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6371: \"$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* @@ -6397,12 +6396,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6401: checking for $ac_func" >&5 +echo "configure:6400: 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 6406 "configure" +#line 6405 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6425,7 +6424,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6428: \"$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 @@ -6450,7 +6449,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:6454: checking for working mmap" >&5 +echo "configure:6453: 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 @@ -6458,7 +6457,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <<EOF -#line 6462 "configure" +#line 6461 "configure" #include "confdefs.h" /* Thanks to Mike Haertel and Jim Avera for this test. @@ -6598,7 +6597,7 @@ main() } EOF -if { (eval echo configure:6602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6601: \"$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 @@ -6623,12 +6622,12 @@ fi for ac_func in madvise mprotect do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6627: checking for $ac_func" >&5 +echo "configure:6626: 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 6632 "configure" +#line 6631 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6651,7 +6650,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6655: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6654: \"$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 22292f2..4db2520 100644 --- a/contrib/binutils/bfd/configure.in +++ b/contrib/binutils/bfd/configure.in @@ -7,7 +7,7 @@ AC_INIT(libbfd.c) AC_CANONICAL_SYSTEM AC_ISC_POSIX -AM_INIT_AUTOMAKE(bfd, 2.13) +AM_INIT_AUTOMAKE(bfd, 2.13.1) # Uncomment the next line to remove the date from the reported bfd version # is_release=y @@ -577,7 +577,6 @@ do bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;; bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386-fbsd.lo elf32.lo $elf" ;; bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf32.lo $elf" ;; - bfd_elf32_i386qnx_vec) tb="$tb elf32-i386qnx.lo elf32.lo $elf" ;; bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i860_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i960_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;; diff --git a/contrib/binutils/bfd/doc/Makefile.in b/contrib/binutils/bfd/doc/Makefile.in index 8daf537..f35cc9a 100644 --- a/contrib/binutils/bfd/doc/Makefile.in +++ b/contrib/binutils/bfd/doc/Makefile.in @@ -1,6 +1,6 @@ -# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am +# Makefile.in generated automatically by automake 1.4 from Makefile.am -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999 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. @@ -330,7 +330,7 @@ uninstall-info: else ii=; fi; \ list='$(INFO_DEPS)'; \ for file in $$list; do \ - test -z "$$ii" \ + test -z "$ii" \ || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \ done @$(NORMAL_UNINSTALL) diff --git a/contrib/binutils/bfd/doc/bfdt.texi b/contrib/binutils/bfd/doc/bfdt.texi index a6e0ad9..46bb61a 100644 --- a/contrib/binutils/bfd/doc/bfdt.texi +++ b/contrib/binutils/bfd/doc/bfdt.texi @@ -104,6 +104,9 @@ struct _bfd /* Symbol table for output BFD (with symcount entries). */ struct symbol_cache_entry **outsymbols; + /* Used for slurped dynamic symbol tables. */ + unsigned int dynsymcount; + /* Pointer to structure which contains architecture information. */ const struct bfd_arch_info *arch_info; @@ -661,12 +664,12 @@ extern bfd_byte *bfd_get_relocated_section_contents @subsubsection @code{bfd_alt_mach_code} @strong{Synopsis} @example -boolean bfd_alt_mach_code(bfd *abfd, int index); +boolean bfd_alt_mach_code(bfd *abfd, int alternative); @end example @strong{Description}@* When more than one machine code number is available for the same machine type, this function can be used to switch between -the preferred one (index == 0) and any others. Currently, +the preferred one (alternative == 0) and any others. Currently, only ELF supports this feature, with up to two alternate machine codes. diff --git a/contrib/binutils/bfd/doc/coffcode.texi b/contrib/binutils/bfd/doc/coffcode.texi index e7c9d77..473747e 100644 --- a/contrib/binutils/bfd/doc/coffcode.texi +++ b/contrib/binutils/bfd/doc/coffcode.texi @@ -398,7 +398,7 @@ typedef struct struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *)); - boolean (*_bfd_coff_adjust_symndx)\ + boolean (*_bfd_coff_adjust_symndx) PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, struct internal_reloc *, boolean *)); diff --git a/contrib/binutils/bfd/doc/reloc.texi b/contrib/binutils/bfd/doc/reloc.texi index 456fc29..1ebd430 100644 --- a/contrib/binutils/bfd/doc/reloc.texi +++ b/contrib/binutils/bfd/doc/reloc.texi @@ -804,6 +804,9 @@ MIPS ELF relocations. @deffnx {} BFD_RELOC_386_RELATIVE @deffnx {} BFD_RELOC_386_GOTOFF @deffnx {} BFD_RELOC_386_GOTPC +@deffnx {} BFD_RELOC_386_TLS_TPOFF +@deffnx {} BFD_RELOC_386_TLS_IE +@deffnx {} BFD_RELOC_386_TLS_GOTIE @deffnx {} BFD_RELOC_386_TLS_LE @deffnx {} BFD_RELOC_386_TLS_GD @deffnx {} BFD_RELOC_386_TLS_LDM diff --git a/contrib/binutils/bfd/dwarf2.c b/contrib/binutils/bfd/dwarf2.c index 5aadadd..0639826 100644 --- a/contrib/binutils/bfd/dwarf2.c +++ b/contrib/binutils/bfd/dwarf2.c @@ -402,7 +402,7 @@ read_indirect_string (unit, buf, bytes_read_ptr) return NULL; } - buf = stash->dwarf_str_buffer + offset; + buf = stash->dwarf_str_buffer + offset; if (*buf == '\0') return NULL; return buf; @@ -578,7 +578,8 @@ read_abbrevs (abfd, offset, stash) /* Read in abbrev header. */ cur_abbrev->number = abbrev_number; - cur_abbrev->tag = read_unsigned_leb128 (abfd, abbrev_ptr, &bytes_read); + cur_abbrev->tag = (enum dwarf_tag) + read_unsigned_leb128 (abfd, abbrev_ptr, &bytes_read); abbrev_ptr += bytes_read; cur_abbrev->has_children = read_1_byte (abfd, abbrev_ptr); abbrev_ptr += 1; @@ -601,8 +602,10 @@ read_abbrevs (abfd, offset, stash) return 0; } - cur_abbrev->attrs[cur_abbrev->num_attrs].name = abbrev_name; - cur_abbrev->attrs[cur_abbrev->num_attrs++].form = abbrev_form; + cur_abbrev->attrs[cur_abbrev->num_attrs].name + = (enum dwarf_attribute) abbrev_name; + cur_abbrev->attrs[cur_abbrev->num_attrs++].form + = (enum dwarf_form) abbrev_form; abbrev_name = read_unsigned_leb128 (abfd, abbrev_ptr, &bytes_read); abbrev_ptr += bytes_read; abbrev_form = read_unsigned_leb128 (abfd, abbrev_ptr, &bytes_read); @@ -614,7 +617,7 @@ read_abbrevs (abfd, offset, stash) abbrevs[hash_number] = cur_abbrev; /* Get next abbreviation. - Under Irix6 the abbreviations for a compilation unit are not + Under Irix6 the abbreviations for a compilation unit are not always properly terminated with an abbrev number of 0. Exit loop if we encounter an abbreviation which we have already read (which means we are about to read the abbreviations @@ -646,7 +649,7 @@ read_attribute_value (attr, form, unit, info_ptr) struct dwarf_block *blk; bfd_size_type amt; - attr->form = form; + attr->form = (enum dwarf_form) form; switch (form) { @@ -806,7 +809,8 @@ struct line_info_table char* comp_dir; char** dirs; struct fileinfo* files; - struct line_info* last_line; + struct line_info* last_line; /* largest VMA */ + struct line_info* lcl_head; /* local head; used in 'add_line_info' */ }; struct funcinfo @@ -817,6 +821,11 @@ struct funcinfo bfd_vma high; }; +/* add_line_info: adds a new entry to the line_info list in the + line_info_table, ensuring that the list is sorted. Note that the + line_info list is sorted from highest to lowest VMA (with possible + duplicates); that is, line_info->prev_line always accesses an equal + or smaller VMA. */ static void add_line_info (table, address, filename, line, column, end_sequence) struct line_info_table* table; @@ -829,9 +838,72 @@ add_line_info (table, address, filename, line, column, end_sequence) bfd_size_type amt = sizeof (struct line_info); struct line_info* info = (struct line_info*) bfd_alloc (table->abfd, amt); - info->prev_line = table->last_line; - table->last_line = info; + /* Find the correct location for 'info'. Normally we will receive + new line_info data 1) in order and 2) with increasing VMAs. + However some compilers break the rules (cf. decode_line_info) and + so we include some heuristics for quickly finding the correct + location for 'info'. In particular, these heuristics optimize for + the common case in which the VMA sequence that we receive is a + list of locally sorted VMAs such as + p...z a...j (where a < j < p < z) + Note: table->lcl_head is used to head an *actual* or *possible* + sequence within the list (such as a...j) that is not directly + headed by table->last_line + + Note: we may receive duplicate entries from 'decode_line_info'. */ + + while (1) + if (!table->last_line + || address >= table->last_line->address) + { + /* Normal case: add 'info' to the beginning of the list */ + info->prev_line = table->last_line; + table->last_line = info; + + /* lcl_head: initialize to head a *possible* sequence at the end. */ + if (!table->lcl_head) + table->lcl_head = info; + break; + } + else if (!table->lcl_head->prev_line + && table->lcl_head->address > address) + { + /* Abnormal but easy: lcl_head is 1) at the *end* of the line + list and 2) the head of 'info'. */ + info->prev_line = NULL; + table->lcl_head->prev_line = info; + break; + } + else if (table->lcl_head->prev_line + && table->lcl_head->address > address + && address >= table->lcl_head->prev_line->address) + { + /* Abnormal but easy: lcl_head is 1) in the *middle* of the line + list and 2) the head of 'info'. */ + info->prev_line = table->lcl_head->prev_line; + table->lcl_head->prev_line = info; + break; + } + else + { + /* Abnormal and hard: Neither 'last_line' nor 'lcl_head' are valid + heads for 'info'. Reset 'lcl_head' and repeat. */ + struct line_info* li2 = table->last_line; /* always non-NULL */ + struct line_info* li1 = li2->prev_line; + + while (li1) + { + if (li2->address > address && address >= li1->address) + break; + + li2 = li1; /* always non-NULL */ + li1 = li1->prev_line; + } + table->lcl_head = li2; + } + + /* Set member data of 'info'. */ info->address = address; info->filename = filename; info->line = line; @@ -908,7 +980,8 @@ arange_add (unit, low_pc, high_pc) } /* Need to allocate a new arange and insert it into the arange list. */ - arange = bfd_zalloc (unit->abfd, (bfd_size_type) sizeof (*arange)); + arange = (struct arange *) + bfd_zalloc (unit->abfd, (bfd_size_type) sizeof (*arange)); arange->low = low_pc; arange->high = high_pc; @@ -982,6 +1055,7 @@ decode_line_info (unit, stash) table->files = NULL; table->last_line = NULL; + table->lcl_head = NULL; line_ptr = stash->dwarf_line_buffer + unit->line_offset; @@ -1091,10 +1165,10 @@ decode_line_info (unit, stash) int basic_block = 0; int end_sequence = 0; /* eraxxon@alumni.rice.edu: Against the DWARF2 specs, some - compilers generate address sequences that are wildly out of - order using DW_LNE_set_address (e.g. Intel C++ 6.0 compiler - for ia64-Linux). Thus, to determine the low and high - address, we must compare on every DW_LNS_copy, etc. */ + compilers generate address sequences that are wildly out of + order using DW_LNE_set_address (e.g. Intel C++ 6.0 compiler + for ia64-Linux). Thus, to determine the low and high + address, we must compare on every DW_LNS_copy, etc. */ bfd_vma low_pc = 0; bfd_vma high_pc = 0; @@ -1133,12 +1207,11 @@ decode_line_info (unit, stash) end_sequence = 1; add_line_info (table, address, filename, line, column, end_sequence); - arange_add (unit, low_pc, high_pc); if (low_pc == 0 || address < low_pc) low_pc = address; if (address > high_pc) high_pc = address; - arange_add (unit, low_pc, address); + arange_add (unit, low_pc, high_pc); break; case DW_LNE_set_address: address = read_address (unit, line_ptr); @@ -1250,19 +1323,31 @@ lookup_address_in_line_info_table (table, addr, function, filename_ptr, const char **filename_ptr; unsigned int *linenumber_ptr; { + /* Note: table->last_line should be a descendingly sorted list. */ struct line_info* next_line = table->last_line; - struct line_info* each_line; + struct line_info* each_line = NULL; + *filename_ptr = NULL; if (!next_line) return false; each_line = next_line->prev_line; + /* Check for large addresses */ + if (addr > next_line->address) + each_line = NULL; /* ensure we skip over the normal case */ + + /* Normal case: search the list; save */ while (each_line && next_line) { - if (!each_line->end_sequence - && addr >= each_line->address && addr < next_line->address) + /* If we have an address match, save this info. This allows us + to return as good as results as possible for strange debugging + info. */ + boolean addr_match = false; + if (each_line->address <= addr && addr <= next_line->address) { + addr_match = true; + /* If this line appears to span functions, and addr is in the later function, return the first line of that function instead of the last line of the earlier one. This check is for GCC @@ -1279,16 +1364,22 @@ lookup_address_in_line_info_table (table, addr, function, filename_ptr, *filename_ptr = each_line->filename; *linenumber_ptr = each_line->line; } - return true; } + + if (addr_match && !each_line->end_sequence) + return true; /* we have definitely found what we want */ + next_line = each_line; each_line = each_line->prev_line; } - /* At this point each_line is NULL but next_line is not. If we found the - containing function in this compilation unit, return the first line we - have a number for. This is also for compatibility with GCC 2.95. */ - if (function != NULL) + /* At this point each_line is NULL but next_line is not. If we found + a candidate end-of-sequence point in the loop above, we can return + that (compatibility with a bug in the Intel compiler); otherwise, + assuming that we found the containing function for this address in + this compilation unit, return the first line we have a number for + (compatibility with GCC 2.95). */ + if (*filename_ptr == NULL && function != NULL) { *filename_ptr = next_line->filename; *linenumber_ptr = next_line->line; @@ -1646,18 +1737,18 @@ comp_unit_contains_address (unit, addr) struct arange *arange; if (unit->error) - return 0; + return false; arange = &unit->arange; do { if (addr >= arange->low && addr < arange->high) - return 1; + return true; arange = arange->next; } while (arange); - return 0; + return false; } /* If UNIT contains ADDR, set the output parameters to the values for @@ -1702,7 +1793,7 @@ comp_unit_find_nearest_line (unit, addr, filename_ptr, functionname_ptr, } if (unit->first_child_die_ptr < unit->end_ptr - && ! scan_unit_for_functions (unit)) + && ! scan_unit_for_functions (unit)) { unit->error = 1; return false; @@ -1715,7 +1806,7 @@ comp_unit_find_nearest_line (unit, addr, filename_ptr, functionname_ptr, line_p = lookup_address_in_line_info_table (unit->line_table, addr, function, filename_ptr, linenumber_ptr); - return line_p || func_p; + return (boolean) (line_p || func_p); } /* Locate a section in a BFD containing debugging info. The search starts @@ -1822,7 +1913,7 @@ _bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset, return false; /* There can be more than one DWARF2 info section in a BFD these days. - Read them all in and produce one large stash. We do this in two + Read them all in and produce one large stash. We do this in two passes - in the first pass we just accumulate the section sizes. In the second pass we read in the section's contents. The allows us to avoid reallocing the data as we add sections to the stash. */ @@ -1918,7 +2009,7 @@ _bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset, stash->info_ptr += addr_size; if (length > 0) - { + { each = parse_comp_unit (abfd, stash, length, offset_size); stash->info_ptr += length; diff --git a/contrib/binutils/bfd/ecoff.c b/contrib/binutils/bfd/ecoff.c index c8c56f8..ed10850 100644 --- a/contrib/binutils/bfd/ecoff.c +++ b/contrib/binutils/bfd/ecoff.c @@ -3837,7 +3837,7 @@ ecoff_link_add_externals (abfd, info, external_ext, ssext) = backend->debug_swap.swap_ext_in; bfd_size_type external_ext_size = backend->debug_swap.external_ext_size; unsigned long ext_count; - struct ecoff_link_hash_entry **sym_hash; + struct bfd_link_hash_entry **sym_hash; char *ext_ptr; char *ext_end; bfd_size_type amt; @@ -3846,10 +3846,10 @@ ecoff_link_add_externals (abfd, info, external_ext, ssext) amt = ext_count; amt *= sizeof (struct bfd_link_hash_entry *); - sym_hash = (struct ecoff_link_hash_entry **) bfd_alloc (abfd, amt); + sym_hash = (struct bfd_link_hash_entry **) bfd_alloc (abfd, amt); if (!sym_hash) return false; - ecoff_data (abfd)->sym_hashes = sym_hash; + ecoff_data (abfd)->sym_hashes = (struct ecoff_link_hash_entry **) sym_hash; ext_ptr = (char *) external_ext; ext_end = ext_ptr + ext_count * external_ext_size; @@ -3980,15 +3980,13 @@ ecoff_link_add_externals (abfd, info, external_ext, ssext) name = ssext + esym.asym.iss; - h = NULL; if (! (_bfd_generic_link_add_one_symbol (info, abfd, name, (flagword) (esym.weakext ? BSF_WEAK : BSF_GLOBAL), - section, value, (const char *) NULL, true, true, - (struct bfd_link_hash_entry **) &h))) + section, value, (const char *) NULL, true, true, sym_hash))) return false; - *sym_hash = h; + h = (struct ecoff_link_hash_entry *) *sym_hash; /* If we are building an ECOFF hash table, save the external symbol information. */ diff --git a/contrib/binutils/bfd/elf-bfd.h b/contrib/binutils/bfd/elf-bfd.h index 4c7e2f6..9417623 100644 --- a/contrib/binutils/bfd/elf-bfd.h +++ b/contrib/binutils/bfd/elf-bfd.h @@ -770,22 +770,6 @@ struct elf_backend_data boolean (*elf_backend_write_section) PARAMS ((bfd *, asection *, bfd_byte *)); - /* This function, if defined, sets up the file positions for non PT_LOAD - segments, especially for segments containing non-allocated sections. */ - void (*set_nonloadable_filepos) - PARAMS ((bfd *, Elf_Internal_Phdr *)); - - /* This function, if defined, returns true if the section is contained - within the segment. File positions are compared. */ - boolean (*is_contained_by_filepos) - PARAMS ((asection *, Elf_Internal_Phdr *)); - - /* This function, if defined, returns true if copy_private_bfd_data - should be called. It provides a way of overriding default - test conditions in _bfd_elf_copy_private_section_data. */ - boolean (*copy_private_bfd_data_p) - PARAMS ((bfd *, asection *, bfd *, asection *)); - /* The level of IRIX compatibility we're striving for. MIPS ELF specific function. */ irix_compat_t (*elf_backend_mips_irix_compat) diff --git a/contrib/binutils/bfd/elf-eh-frame.c b/contrib/binutils/bfd/elf-eh-frame.c index 713dc8f..62226c5 100644 --- a/contrib/binutils/bfd/elf-eh-frame.c +++ b/contrib/binutils/bfd/elf-eh-frame.c @@ -414,7 +414,7 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec, ehdrsec, /* 64-bit .eh_frame is not supported. */ goto free_no_table; buf += 4; - if ((buf - ehbuf) + hdr.length > sec->_raw_size) + if ((bfd_size_type) (buf - ehbuf) + hdr.length > sec->_raw_size) /* CIE/FDE not contained fully in this .eh_frame input section. */ goto free_no_table; diff --git a/contrib/binutils/bfd/elf32-arm.h b/contrib/binutils/bfd/elf32-arm.h index f41b843..bb193ab 100644 --- a/contrib/binutils/bfd/elf32-arm.h +++ b/contrib/binutils/bfd/elf32-arm.h @@ -423,6 +423,7 @@ record_arm_to_thumb_glue (link_info, h) asection * s; char * tmp_name; struct elf_link_hash_entry * myh; + struct bfd_link_hash_entry * bh; struct elf32_arm_link_hash_table * globals; bfd_vma val; @@ -456,11 +457,11 @@ record_arm_to_thumb_glue (link_info, h) /* The only trick here is using hash_table->arm_glue_size as the value. Even though the section isn't allocated yet, this is where we will be putting it. */ + bh = NULL; val = globals->arm_glue_size + 1; _bfd_generic_link_add_one_symbol (link_info, globals->bfd_of_glue_owner, tmp_name, BSF_GLOBAL, s, val, - NULL, true, false, - (struct bfd_link_hash_entry **) &myh); + NULL, true, false, &bh); free (tmp_name); @@ -478,6 +479,7 @@ record_thumb_to_arm_glue (link_info, h) asection *s; char *tmp_name; struct elf_link_hash_entry *myh; + struct bfd_link_hash_entry *bh; struct elf32_arm_link_hash_table *hash_table; char bind; bfd_vma val; @@ -509,13 +511,14 @@ record_thumb_to_arm_glue (link_info, h) return; } + bh = NULL; val = hash_table->thumb_glue_size + 1; _bfd_generic_link_add_one_symbol (link_info, hash_table->bfd_of_glue_owner, tmp_name, BSF_GLOBAL, s, val, - NULL, true, false, - (struct bfd_link_hash_entry **) &myh); + NULL, true, false, &bh); /* If we mark it 'Thumb', the disassembler will do a better job. */ + myh = (struct elf_link_hash_entry *) bh; bind = ELF_ST_BIND (myh->type); myh->type = ELF_ST_INFO (bind, STT_ARM_TFUNC); @@ -532,13 +535,11 @@ record_thumb_to_arm_glue (link_info, h) sprintf (tmp_name, CHANGE_TO_ARM, name); - myh = NULL; - + bh = NULL; val = hash_table->thumb_glue_size + 4, _bfd_generic_link_add_one_symbol (link_info, hash_table->bfd_of_glue_owner, tmp_name, BSF_LOCAL, s, val, - NULL, true, false, - (struct bfd_link_hash_entry **) &myh); + NULL, true, false, &bh); free (tmp_name); diff --git a/contrib/binutils/bfd/elf32-s390.c b/contrib/binutils/bfd/elf32-s390.c index ed5f3f0..b7e2189 100644 --- a/contrib/binutils/bfd/elf32-s390.c +++ b/contrib/binutils/bfd/elf32-s390.c @@ -40,12 +40,13 @@ static boolean create_got_section static boolean elf_s390_create_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); static void elf_s390_copy_indirect_symbol - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); static boolean elf_s390_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection *elf_s390_gc_mark_hook - PARAMS ((bfd *, struct bfd_link_info *, Elf_Internal_Rela *, + PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); static boolean elf_s390_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, @@ -478,13 +479,13 @@ elf_s390_link_hash_table_create (abfd) struct elf_s390_link_hash_table *ret; bfd_size_type amt = sizeof (struct elf_s390_link_hash_table); - ret = (struct elf_s390_link_hash_table *) bfd_alloc (abfd, amt); + ret = (struct elf_s390_link_hash_table *) bfd_malloc (amt); if (ret == NULL) return NULL; if (! _bfd_elf_link_hash_table_init (&ret->elf, abfd, link_hash_newfunc)) { - bfd_release (abfd, ret); + free (ret); return NULL; } @@ -564,7 +565,8 @@ elf_s390_create_dynamic_sections (dynobj, info) /* Copy the extra info we tack onto an elf_link_hash_entry. */ static void -elf_s390_copy_indirect_symbol (dir, ind) +elf_s390_copy_indirect_symbol (bed, dir, ind) + struct elf_backend_data *bed; struct elf_link_hash_entry *dir, *ind; { struct elf_s390_link_hash_entry *edir, *eind; @@ -606,7 +608,7 @@ elf_s390_copy_indirect_symbol (dir, ind) eind->dyn_relocs = NULL; } - _bfd_elf_link_hash_copy_indirect (dir, ind); + _bfd_elf_link_hash_copy_indirect (bed, dir, ind); } /* Look through the relocs for a section during the first phase, and @@ -903,8 +905,8 @@ elf_s390_check_relocs (abfd, info, sec, relocs) relocation. */ static asection * -elf_s390_gc_mark_hook (abfd, info, rel, h, sym) - bfd *abfd; +elf_s390_gc_mark_hook (sec, info, rel, h, sym) + asection *sec; struct bfd_link_info *info ATTRIBUTE_UNUSED; Elf_Internal_Rela *rel; struct elf_link_hash_entry *h; @@ -934,9 +936,7 @@ elf_s390_gc_mark_hook (abfd, info, rel, h, sym) } } else - { - return bfd_section_from_elf_index (abfd, sym->st_shndx); - } + return bfd_section_from_elf_index (sec->owner, sym->st_shndx); return NULL; } @@ -1064,7 +1064,7 @@ elf_s390_adjust_dynamic_symbol (info, h) /* If this is a function, put it in the procedure linkage table. We will fill in the contents of the procedure linkage table later - (although we could actually do it here). */ + (although we could actually do it here). */ if (h->type == STT_FUNC || (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0) { @@ -1973,9 +1973,11 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, break; } + /* Dynamic relocs are not propagated for SEC_DEBUGGING sections + because such sections are not SEC_ALLOC and thus ld.so will + not process them. */ if (unresolved_reloc - && !(info->shared - && (input_section->flags & SEC_DEBUGGING) != 0 + && !((input_section->flags & SEC_DEBUGGING) != 0 && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0)) (*_bfd_error_handler) (_("%s(%s+0x%lx): unresolvable relocation against symbol `%s'"), diff --git a/contrib/binutils/bfd/elf32-sparc.c b/contrib/binutils/bfd/elf32-sparc.c index 38200dc..b6cf7eb 100644 --- a/contrib/binutils/bfd/elf32-sparc.c +++ b/contrib/binutils/bfd/elf32-sparc.c @@ -1298,7 +1298,6 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section, off &= ~1; else { - bfd_put_32 (output_bfd, relocation, sgot->contents + off); if (info->shared) { @@ -1314,7 +1313,8 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section, + sgot->output_offset + off); outrel.r_info = ELF32_R_INFO (0, R_SPARC_RELATIVE); - outrel.r_addend = 0; + outrel.r_addend = relocation; + relocation = 0; bfd_elf32_swap_reloca_out (output_bfd, &outrel, (((Elf32_External_Rela *) srelgot->contents) @@ -1322,6 +1322,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section, ++srelgot->reloc_count; } + bfd_put_32 (output_bfd, relocation, sgot->contents + off); local_got_offsets[r_symndx] |= 1; } } @@ -1827,14 +1828,21 @@ elf32_sparc_finish_dynamic_symbol (output_bfd, info, h, sym) if (info->shared && (info->symbolic || h->dynindx == -1) && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)) - rela.r_info = ELF32_R_INFO (0, R_SPARC_RELATIVE); + { + asection *sec = h->root.u.def.section; + rela.r_info = ELF32_R_INFO (0, R_SPARC_RELATIVE); + rela.r_addend = (h->root.u.def.value + + sec->output_section->vma + + sec->output_offset); + } else { - bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_SPARC_GLOB_DAT); + rela.r_addend = 0; } - rela.r_addend = 0; + bfd_put_32 (output_bfd, (bfd_vma) 0, + sgot->contents + (h->got.offset &~ (bfd_vma) 1)); bfd_elf32_swap_reloca_out (output_bfd, &rela, ((Elf32_External_Rela *) srela->contents + srela->reloc_count)); diff --git a/contrib/binutils/bfd/elf32-v850.c b/contrib/binutils/bfd/elf32-v850.c index ae0a0c4..6762190 100644 --- a/contrib/binutils/bfd/elf32-v850.c +++ b/contrib/binutils/bfd/elf32-v850.c @@ -1,5 +1,5 @@ /* V850-specific support for 32-bit ELF - Copyright 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -79,12 +79,12 @@ static boolean v850_elf_link_output_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, asection *)); static boolean v850_elf_section_from_shdr - PARAMS ((bfd *, Elf_Internal_Shdr *, char *)); + PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); static boolean v850_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection * v850_elf_gc_mark_hook - PARAMS ((bfd *, struct bfd_link_info *, + PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); @@ -1322,7 +1322,7 @@ v850_elf_reloc (abfd, reloc, symbol, data, isection, obfd, err) nop foo: nop */ - if (reloc->howto->pc_relative == true) + if (reloc->howto->pc_relative) { /* Here the variable relocation holds the final address of the symbol we are relocating against, plus any addend. */ @@ -1740,8 +1740,8 @@ v850_elf_gc_sweep_hook (abfd, info, sec, relocs) } static asection * -v850_elf_gc_mark_hook (abfd, info, rel, h, sym) - bfd *abfd; +v850_elf_gc_mark_hook (sec, info, rel, h, sym) + asection *sec; struct bfd_link_info *info ATTRIBUTE_UNUSED; Elf_Internal_Rela *rel; struct elf_link_hash_entry *h; @@ -1771,9 +1771,7 @@ v850_elf_gc_mark_hook (abfd, info, rel, h, sym) } } else - { - return bfd_section_from_elf_index (abfd, sym->st_shndx); - } + return bfd_section_from_elf_index (sec->owner, sym->st_shndx); return NULL; } @@ -2135,7 +2133,7 @@ static boolean v850_elf_section_from_shdr (abfd, hdr, name) bfd * abfd; Elf_Internal_Shdr * hdr; - char * name; + const char * name; { /* There ought to be a place to keep ELF backend specific flags, but at the moment there isn't one. We just keep track of the diff --git a/contrib/binutils/bfd/elf64-ppc.c b/contrib/binutils/bfd/elf64-ppc.c index e431c14..c512636 100644 --- a/contrib/binutils/bfd/elf64-ppc.c +++ b/contrib/binutils/bfd/elf64-ppc.c @@ -1661,6 +1661,7 @@ ppc64_elf_merge_private_bfd_data (ibfd, obfd) { /* Check if we have the same endianess. */ if (ibfd->xvec->byteorder != obfd->xvec->byteorder + && ibfd->xvec->byteorder != BFD_ENDIAN_UNKNOWN && obfd->xvec->byteorder != BFD_ENDIAN_UNKNOWN) { const char *msg; @@ -1788,19 +1789,19 @@ struct ppc_dyn_relocs ppc_stub_plt_branch: Similar to the above, but a 24 bit branch in the stub section won't reach its destination. - . addis %r12,%r2,xxx@ha - . ld %r11,xxx@l(%r12) + . addis %r12,%r2,xxx@toc@ha + . ld %r11,xxx@toc@l(%r12) . mtctr %r11 . bctr ppc_stub_plt_call: Used to call a function in a shared library. - . addis %r12,%r2,xxx@ha + . addis %r12,%r2,xxx@toc@ha . std %r2,40(%r1) - . ld %r11,xxx+0@l(%r12) - . ld %r2,xxx+8@l(%r12) + . ld %r11,xxx+0@toc@l(%r12) + . ld %r2,xxx+8@toc@l(%r12) . mtctr %r11 - . ld %r11,xxx+16@l(%r12) + . ld %r11,xxx+16@toc@l(%r12) . bctr */ @@ -3169,6 +3170,7 @@ func_desc_adjust (h, inf) { bfd *abfd; asymbol *newsym; + struct bfd_link_hash_entry *bh; abfd = h->root.u.undef.abfd; newsym = bfd_make_empty_symbol (abfd); @@ -3179,13 +3181,14 @@ func_desc_adjust (h, inf) if (h->root.type == bfd_link_hash_undefweak) newsym->flags |= BSF_WEAK; + bh = &fdh->root; if ( !(_bfd_generic_link_add_one_symbol (info, abfd, newsym->name, newsym->flags, - newsym->section, newsym->value, NULL, false, false, - (struct bfd_link_hash_entry **) &fdh))) + newsym->section, newsym->value, NULL, false, false, &bh))) { return false; } + fdh = (struct elf_link_hash_entry *) bh; fdh->elf_link_hash_flags &= ~ELF_LINK_NON_ELF; } @@ -3805,8 +3808,7 @@ edit_opd (obfd, info) for the function descriptor sym which we don't have at the moment. So keep an array of adjustments. */ - adjust[(rel->r_offset + wptr - rptr) / 24] - = wptr - rptr; + adjust[rel->r_offset / 24] = wptr - rptr; } if (wptr != rptr) diff --git a/contrib/binutils/bfd/elf64-s390.c b/contrib/binutils/bfd/elf64-s390.c index 40f4908..5ad1ca7 100644 --- a/contrib/binutils/bfd/elf64-s390.c +++ b/contrib/binutils/bfd/elf64-s390.c @@ -40,12 +40,13 @@ static boolean create_got_section static boolean elf_s390_create_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); static void elf_s390_copy_indirect_symbol - PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *)); + PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *)); static boolean elf_s390_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection *elf_s390_gc_mark_hook - PARAMS ((bfd *, struct bfd_link_info *, Elf_Internal_Rela *, + PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); static boolean elf_s390_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, @@ -424,13 +425,13 @@ elf_s390_link_hash_table_create (abfd) struct elf_s390_link_hash_table *ret; bfd_size_type amt = sizeof (struct elf_s390_link_hash_table); - ret = (struct elf_s390_link_hash_table *) bfd_alloc (abfd, amt); + ret = (struct elf_s390_link_hash_table *) bfd_malloc (amt); if (ret == NULL) return NULL; if (! _bfd_elf_link_hash_table_init (&ret->elf, abfd, link_hash_newfunc)) { - bfd_release (abfd, ret); + free (ret); return NULL; } @@ -471,7 +472,7 @@ create_got_section (dynobj, info) (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED | SEC_READONLY)) - || ! bfd_set_section_alignment (dynobj, htab->srelgot, 2)) + || ! bfd_set_section_alignment (dynobj, htab->srelgot, 3)) return false; return true; } @@ -510,7 +511,8 @@ elf_s390_create_dynamic_sections (dynobj, info) /* Copy the extra info we tack onto an elf_link_hash_entry. */ static void -elf_s390_copy_indirect_symbol (dir, ind) +elf_s390_copy_indirect_symbol (bed, dir, ind) + struct elf_backend_data *bed; struct elf_link_hash_entry *dir, *ind; { struct elf_s390_link_hash_entry *edir, *eind; @@ -552,7 +554,7 @@ elf_s390_copy_indirect_symbol (dir, ind) eind->dyn_relocs = NULL; } - _bfd_elf_link_hash_copy_indirect (dir, ind); + _bfd_elf_link_hash_copy_indirect (bed, dir, ind); } /* Look through the relocs for a section during the first phase, and @@ -776,7 +778,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs) flags |= SEC_ALLOC | SEC_LOAD; if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) - || ! bfd_set_section_alignment (dynobj, sreloc, 2)) + || ! bfd_set_section_alignment (dynobj, sreloc, 3)) return false; } elf_section_data (sec)->sreloc = sreloc; @@ -855,8 +857,8 @@ elf_s390_check_relocs (abfd, info, sec, relocs) relocation. */ static asection * -elf_s390_gc_mark_hook (abfd, info, rel, h, sym) - bfd *abfd; +elf_s390_gc_mark_hook (sec, info, rel, h, sym) + asection *sec; struct bfd_link_info *info ATTRIBUTE_UNUSED; Elf_Internal_Rela *rel; struct elf_link_hash_entry *h; @@ -886,9 +888,7 @@ elf_s390_gc_mark_hook (abfd, info, rel, h, sym) } } else - { - return bfd_section_from_elf_index (abfd, sym->st_shndx); - } + return bfd_section_from_elf_index (sec->owner, sym->st_shndx); return NULL; } @@ -1019,7 +1019,7 @@ elf_s390_adjust_dynamic_symbol (info, h) /* If this is a function, put it in the procedure linkage table. We will fill in the contents of the procedure linkage table later - (although we could actually do it here). */ + (although we could actually do it here). */ if (h->type == STT_FUNC || (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0) { @@ -1937,9 +1937,11 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, break; } + /* Dynamic relocs are not propagated for SEC_DEBUGGING sections + because such sections are not SEC_ALLOC and thus ld.so will + not process them. */ if (unresolved_reloc - && !(info->shared - && (input_section->flags & SEC_DEBUGGING) != 0 + && !((input_section->flags & SEC_DEBUGGING) != 0 && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0)) (*_bfd_error_handler) (_("%s(%s+0x%lx): unresolvable relocation against symbol `%s'"), @@ -2339,6 +2341,7 @@ const struct elf_size_info s390_elf64_size_info = bfd_elf64_write_out_phdrs, bfd_elf64_write_shdrs_and_ehdr, bfd_elf64_write_relocs, + bfd_elf64_swap_symbol_in, bfd_elf64_swap_symbol_out, bfd_elf64_slurp_reloc_table, bfd_elf64_slurp_symbol_table, diff --git a/contrib/binutils/bfd/elf64-sparc.c b/contrib/binutils/bfd/elf64-sparc.c index def93c4..a3c100d 100644 --- a/contrib/binutils/bfd/elf64-sparc.c +++ b/contrib/binutils/bfd/elf64-sparc.c @@ -1563,6 +1563,9 @@ sparc64_elf_adjust_dynamic_symbol (info, h) if (s->_raw_size == 0) s->_raw_size = PLT_HEADER_SIZE; + /* To simplify matters later, just store the plt index here. */ + h->plt.offset = s->_raw_size / PLT_ENTRY_SIZE; + /* If this symbol is not defined in a regular file, and we are not generating a shared library, then set the symbol to this location in the .plt. This is required to make function @@ -1572,12 +1575,9 @@ sparc64_elf_adjust_dynamic_symbol (info, h) && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) { h->root.u.def.section = s; - h->root.u.def.value = s->_raw_size; + h->root.u.def.value = sparc64_elf_plt_entry_offset (h->plt.offset); } - /* To simplify matters later, just store the plt index here. */ - h->plt.offset = s->_raw_size / PLT_ENTRY_SIZE; - /* Make room for this entry. */ s->_raw_size += PLT_ENTRY_SIZE; @@ -2181,11 +2181,9 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section, } else { + outrel.r_addend = relocation + rel->r_addend; if (r_type == R_SPARC_64) - { - outrel.r_info = ELF64_R_INFO (0, R_SPARC_RELATIVE); - outrel.r_addend = relocation + rel->r_addend; - } + outrel.r_info = ELF64_R_INFO (0, R_SPARC_RELATIVE); else { long indx; @@ -2215,6 +2213,13 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section, osec = sec->output_section; indx = elf_section_data (osec)->dynindx; + /* We are turning this relocation into one + against a section symbol, so subtract out + the output section's address but not the + offset of the input section in the output + section. */ + outrel.r_addend -= osec->vma; + /* FIXME: we really should be able to link non-pic shared libraries. */ if (indx == 0) @@ -2233,7 +2238,6 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section, ELF64_R_TYPE_INFO ( ELF64_R_TYPE_DATA (rel->r_info), r_type)); - outrel.r_addend = relocation + rel->r_addend; } } diff --git a/contrib/binutils/bfd/elflink.c b/contrib/binutils/bfd/elflink.c index f8cc645..d6da588 100644 --- a/contrib/binutils/bfd/elflink.c +++ b/contrib/binutils/bfd/elflink.c @@ -33,6 +33,7 @@ _bfd_elf_create_got_section (abfd, info) flagword flags; register asection *s; struct elf_link_hash_entry *h; + struct bfd_link_hash_entry *bh; struct elf_backend_data *bed = get_elf_backend_data (abfd); int ptralign; @@ -79,12 +80,13 @@ _bfd_elf_create_got_section (abfd, info) (or .got.plt) section. We don't do this in the linker script because we don't want to define the symbol if we are not creating a global offset table. */ - h = NULL; + bh = NULL; if (!(_bfd_generic_link_add_one_symbol (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s, bed->got_symbol_offset, (const char *) NULL, false, - bed->collect, (struct bfd_link_hash_entry **) &h))) + bed->collect, &bh))) return false; + h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; @@ -151,13 +153,15 @@ _bfd_elf_create_dynamic_sections (abfd, info) { /* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the .plt section. */ - struct elf_link_hash_entry *h = NULL; + struct elf_link_hash_entry *h; + struct bfd_link_hash_entry *bh = NULL; + if (! (_bfd_generic_link_add_one_symbol (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s, (bfd_vma) 0, (const char *) NULL, false, - get_elf_backend_data (abfd)->collect, - (struct bfd_link_hash_entry **) &h))) + get_elf_backend_data (abfd)->collect, &bh))) return false; + h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; @@ -546,29 +550,27 @@ _bfd_elf_create_linker_section (abfd, info, which, defaults) if (lsect->sym_name) { - struct elf_link_hash_entry *h = NULL; + struct elf_link_hash_entry *h; + struct bfd_link_hash_entry *bh; + #ifdef DEBUG fprintf (stderr, "Adding %s to section %s\n", lsect->sym_name, lsect->name); #endif - h = (struct elf_link_hash_entry *) - bfd_link_hash_lookup (info->hash, lsect->sym_name, false, false, false); - - if ((h == NULL || h->root.type == bfd_link_hash_undefined) - && !(_bfd_generic_link_add_one_symbol (info, - abfd, - lsect->sym_name, - BSF_GLOBAL, - s, - ((lsect->hole_size) - ? s->_raw_size - lsect->hole_size + lsect->sym_offset - : lsect->sym_offset), - (const char *) NULL, - false, - get_elf_backend_data (abfd)->collect, - (struct bfd_link_hash_entry **) &h))) - return (elf_linker_section_t *)0; + bh = bfd_link_hash_lookup (info->hash, lsect->sym_name, + false, false, false); + + if ((bh == NULL || bh->type == bfd_link_hash_undefined) + && !(_bfd_generic_link_add_one_symbol + (info, abfd, lsect->sym_name, BSF_GLOBAL, s, + (lsect->hole_size + ? s->_raw_size - lsect->hole_size + lsect->sym_offset + : lsect->sym_offset), + (const char *) NULL, false, + get_elf_backend_data (abfd)->collect, &bh))) + return (elf_linker_section_t *) 0; + h = (struct elf_link_hash_entry *) bh; if ((defaults->which != LINKER_SECTION_SDATA) && (defaults->which != LINKER_SECTION_SDATA2)) @@ -579,7 +581,7 @@ _bfd_elf_create_linker_section (abfd, info, which, defaults) if (info->shared && ! _bfd_elf_link_record_dynamic_symbol (info, h)) - return (elf_linker_section_t *)0; + return (elf_linker_section_t *) 0; } } diff --git a/contrib/binutils/bfd/elfxx-ia64.c b/contrib/binutils/bfd/elfxx-ia64.c index 5302bf6..06a279e 100644 --- a/contrib/binutils/bfd/elfxx-ia64.c +++ b/contrib/binutils/bfd/elfxx-ia64.c @@ -651,13 +651,14 @@ static const bfd_byte plt_full_entry[PLT_FULL_ENTRY_SIZE] = not support brl, and so it gets emulated by the kernel. */ #undef USE_BRL +#ifdef USE_BRL static const bfd_byte oor_brl[16] = { 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* brl.sptk.few tgt;; */ 0x00, 0x00, 0x00, 0xc0 }; - +#else static const bfd_byte oor_ip[48] = { 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */ @@ -670,6 +671,7 @@ static const bfd_byte oor_ip[48] = 0x60, 0x80, 0x04, 0x80, 0x03, 0x00, /* mov b6=r16 */ 0x60, 0x00, 0x80, 0x00 /* br b6;; */ }; +#endif /* These functions do relaxation for IA-64 ELF. @@ -1271,6 +1273,7 @@ elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) { struct elf_backend_data *bed; struct elfNN_ia64_link_hash_table *ia64_info; + struct bfd_link_hash_entry *bh = NULL; bed = get_elf_backend_data (abfd); ia64_info = elfNN_ia64_hash_table (info); @@ -1279,9 +1282,10 @@ elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) (info, abfd, *namep, BSF_GLOBAL, bfd_get_section_by_name (abfd, ".bss"), bed->got_symbol_offset, (const char *) NULL, false, - bed->collect, (struct bfd_link_hash_entry **) &h))) + bed->collect, &bh))) return false; + h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; diff --git a/contrib/binutils/bfd/elfxx-target.h b/contrib/binutils/bfd/elfxx-target.h index 481ba71..5d7efb0 100644 --- a/contrib/binutils/bfd/elfxx-target.h +++ b/contrib/binutils/bfd/elfxx-target.h @@ -385,15 +385,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef elf_backend_write_section #define elf_backend_write_section NULL #endif -#ifndef elf_backend_set_nonloadable_filepos -#define elf_backend_set_nonloadable_filepos NULL -#endif -#ifndef elf_backend_is_contained_by_filepos -#define elf_backend_is_contained_by_filepos NULL -#endif -#ifndef elf_backend_copy_private_bfd_data_p -#define elf_backend_copy_private_bfd_data_p NULL -#endif #ifndef elf_backend_mips_irix_compat #define elf_backend_mips_irix_compat NULL #endif @@ -495,9 +486,6 @@ static const struct elf_backend_data elfNN_bed = elf_backend_discard_info, elf_backend_ignore_discarded_relocs, elf_backend_write_section, - elf_backend_set_nonloadable_filepos, - elf_backend_is_contained_by_filepos, - elf_backend_copy_private_bfd_data_p, elf_backend_mips_irix_compat, elf_backend_mips_rtype_to_howto, elf_backend_ecoff_debug_swap, diff --git a/contrib/binutils/bfd/format.c b/contrib/binutils/bfd/format.c index 1efa9e2..ef6b46e 100644 --- a/contrib/binutils/bfd/format.c +++ b/contrib/binutils/bfd/format.c @@ -132,7 +132,7 @@ bfd_check_format_matches (abfd, format, matching) } if (abfd->format != bfd_unknown) - return abfd->format == format; + return (boolean) (abfd->format == format); /* Since the target type was defaulted, check them all in the hope that one will be uniquely recognized. */ @@ -355,7 +355,7 @@ bfd_set_format (abfd, format) } if (abfd->format != bfd_unknown) - return abfd->format == format; + return (boolean) (abfd->format == format); /* Presume the answer is yes. */ abfd->format = format; diff --git a/contrib/binutils/bfd/gen-aout.c b/contrib/binutils/bfd/gen-aout.c index 1bba14a..b6720e8 100644 --- a/contrib/binutils/bfd/gen-aout.c +++ b/contrib/binutils/bfd/gen-aout.c @@ -21,6 +21,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "/usr/include/a.out.h" #include <stdio.h> +#ifndef _ +#define _(X) X +#endif + int main (argc, argv) int argc; char** argv; diff --git a/contrib/binutils/bfd/libbfd.c b/contrib/binutils/bfd/libbfd.c index 29170a0..f21abbc 100644 --- a/contrib/binutils/bfd/libbfd.c +++ b/contrib/binutils/bfd/libbfd.c @@ -186,9 +186,9 @@ bfd_realloc (ptr, size) } if (ptr == NULL) - ret = malloc ((size_t) size); + ret = (PTR) malloc ((size_t) size); else - ret = realloc (ptr, (size_t) size); + ret = (PTR) realloc (ptr, (size_t) size); if (ret == NULL && (size_t) size != 0) bfd_set_error (bfd_error_no_memory); @@ -562,7 +562,7 @@ bfd_bwrite (ptr, size, abfd) newsize = (bim->size + 127) & ~(bfd_size_type) 127; if (newsize > oldsize) { - bim->buffer = bfd_realloc (bim->buffer, newsize); + bim->buffer = (bfd_byte *) bfd_realloc (bim->buffer, newsize); if (bim->buffer == 0) { bim->size = 0; @@ -608,7 +608,7 @@ bfd_write_bigendian_4byte_int (abfd, i) { bfd_byte buffer[4]; bfd_putb32 ((bfd_vma) i, buffer); - return bfd_bwrite ((PTR) buffer, (bfd_size_type) 4, abfd) == 4; + return (boolean) (bfd_bwrite ((PTR) buffer, (bfd_size_type) 4, abfd) == 4); } bfd_vma @@ -706,7 +706,7 @@ bfd_seek (abfd, position, direction) newsize = (bim->size + 127) & ~(bfd_size_type) 127; if (newsize > oldsize) { - bim->buffer = bfd_realloc (bim->buffer, newsize); + bim->buffer = (bfd_byte *) bfd_realloc (bim->buffer, newsize); if (bim->buffer == 0) { bim->size = 0; @@ -1414,7 +1414,7 @@ bfd_generic_is_local_label_name (abfd, name) { char locals_prefix = (bfd_get_symbol_leading_char (abfd) == '_') ? 'L' : '.'; - return (name[0] == locals_prefix); + return (boolean) (name[0] == locals_prefix); } /* Can be used from / for bfd_merge_private_bfd_data to check that diff --git a/contrib/binutils/bfd/libcoff.h b/contrib/binutils/bfd/libcoff.h index 88b0909..ea9c570 100644 --- a/contrib/binutils/bfd/libcoff.h +++ b/contrib/binutils/bfd/libcoff.h @@ -784,7 +784,7 @@ typedef struct struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *)); - boolean (*_bfd_coff_adjust_symndx)\ + boolean (*_bfd_coff_adjust_symndx) PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, struct internal_reloc *, boolean *)); diff --git a/contrib/binutils/bfd/linker.c b/contrib/binutils/bfd/linker.c index 242f8bd..a5ded1f 100644 --- a/contrib/binutils/bfd/linker.c +++ b/contrib/binutils/bfd/linker.c @@ -449,7 +449,8 @@ _bfd_link_hash_newfunc (entry, table, string) subclass. */ if (entry == NULL) { - entry = bfd_hash_allocate (table, sizeof (struct bfd_link_hash_entry)); + entry = (struct bfd_hash_entry *) + bfd_hash_allocate (table, sizeof (struct bfd_link_hash_entry)); if (entry == NULL) return entry; } @@ -645,8 +646,8 @@ _bfd_generic_link_hash_newfunc (entry, table, string) subclass. */ if (entry == NULL) { - entry = bfd_hash_allocate (table, - sizeof (struct generic_link_hash_entry)); + entry = (struct bfd_hash_entry *) + bfd_hash_allocate (table, sizeof (struct generic_link_hash_entry)); if (entry == NULL) return entry; } @@ -1305,6 +1306,7 @@ generic_link_add_symbol_list (abfd, info, symbol_count, symbols, collect) const char *name; const char *string; struct generic_link_hash_entry *h; + struct bfd_link_hash_entry *bh; name = bfd_asymbol_name (p); if (((p->flags & BSF_INDIRECT) != 0 @@ -1326,12 +1328,12 @@ generic_link_add_symbol_list (abfd, info, symbol_count, symbols, collect) else string = NULL; - h = NULL; + bh = NULL; if (! (_bfd_generic_link_add_one_symbol (info, abfd, name, p->flags, bfd_get_section (p), - p->value, string, false, collect, - (struct bfd_link_hash_entry **) &h))) + p->value, string, false, collect, &bh))) return false; + h = (struct generic_link_hash_entry *) bh; /* If this is a constructor symbol, and the linker didn't do anything with it, then we want to just pass the symbol @@ -2018,7 +2020,7 @@ _bfd_generic_final_link (abfd, info) for (o = abfd->sections; o != NULL; o = o->next) for (p = o->link_order_head; p != NULL; p = p->next) if (p->type == bfd_indirect_link_order) - p->u.indirect.section->linker_mark = true; + p->u.indirect.section->linker_mark = (unsigned int) true; /* Build the output symbol table. */ for (sub = info->input_bfds; sub != (bfd *) NULL; sub = sub->link_next) diff --git a/contrib/binutils/bfd/merge.c b/contrib/binutils/bfd/merge.c index ce61207..9dc2e70 100644 --- a/contrib/binutils/bfd/merge.c +++ b/contrib/binutils/bfd/merge.c @@ -353,7 +353,7 @@ sec_merge_emit (abfd, entry) if (alignment_power) free (pad); - return entry == NULL || entry->secinfo != secinfo; + return (boolean) (entry == NULL || entry->secinfo != secinfo); } /* This function is called for each input file from the add_symbols @@ -667,7 +667,7 @@ merge_strings (sinfo) break; if (e->len > 4 * e->u.entsize) { - s = e->root.string + e->len - e->u.entsize; + s = (const unsigned char *) (e->root.string + e->len - e->u.entsize); hash = 0; for (i = 0; i < 4 * e->u.entsize; i++) { @@ -690,7 +690,7 @@ merge_strings (sinfo) else *p = (PTR) e; } - s = e->root.string + e->len - e->u.entsize; + s = (const unsigned char *) (e->root.string + e->len - e->u.entsize); hash = 0; for (i = 0; i < e->u.entsize; i++) { diff --git a/contrib/binutils/bfd/peicode.h b/contrib/binutils/bfd/peicode.h index 323b30d..a621acc 100644 --- a/contrib/binutils/bfd/peicode.h +++ b/contrib/binutils/bfd/peicode.h @@ -1,5 +1,5 @@ /* Support for the generic parts of PE/PEI, for BFD. - 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. @@ -312,7 +312,7 @@ pe_mkobject_hook (abfd, filehdr, aouthdr) struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; pe_data_type *pe; - if (pe_mkobject (abfd) == false) + if (! pe_mkobject (abfd)) return NULL; pe = pe_data (abfd); @@ -1207,7 +1207,10 @@ _("%s: Recognised but unhandled machine type (0x%x) in Import Library Format arc return NULL; if (bfd_bread (ptr, size, abfd) != size) - return NULL; + { + bfd_release (abfd, ptr); + return NULL; + } symbol_name = ptr; source_dll = ptr + strlen (ptr) + 1; @@ -1219,14 +1222,17 @@ _("%s: Recognised but unhandled machine type (0x%x) in Import Library Format arc (_("%s: string not null terminated in ILF object file."), bfd_archive_filename (abfd)); bfd_set_error (bfd_error_malformed_archive); - + bfd_release (abfd, ptr); return NULL; } /* Now construct the bfd. */ if (! pe_ILF_build_a_bfd (abfd, magic, symbol_name, source_dll, ordinal, types)) - return NULL; + { + bfd_release (abfd, ptr); + return NULL; + } return abfd->xvec; } diff --git a/contrib/binutils/bfd/po/SRC-POTFILES.in b/contrib/binutils/bfd/po/SRC-POTFILES.in index e448599..9a977f5 100644 --- a/contrib/binutils/bfd/po/SRC-POTFILES.in +++ b/contrib/binutils/bfd/po/SRC-POTFILES.in @@ -134,6 +134,7 @@ elf32-h8300.c elf32-hppa.c elf32-hppa.h elf32-i370.c +elf32-i386-fbsd.c elf32-i386.c elf32-i386qnx.c elf32-i860.c @@ -161,6 +162,7 @@ elf32-v850.c elf32-vax.c elf32-xstormy16.c elf32.c +elf64-alpha-fbsd.c elf64-alpha.c elf64-gen.c elf64-hppa.c diff --git a/contrib/binutils/bfd/po/bfd.pot b/contrib/binutils/bfd/po/bfd.pot index 2b9a34a..8823e66 100644 --- a/contrib/binutils/bfd/po/bfd.pot +++ b/contrib/binutils/bfd/po/bfd.pot @@ -1,12 +1,13 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-07-23 15:55-0400\n" +"POT-Creation-Date: 2002-10-30 10:06-0500\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" @@ -54,115 +55,115 @@ msgstr "" msgid "%s: relocateable link from %s to %s not supported" msgstr "" -#: archive.c:1826 +#: archive.c:1818 msgid "Warning: writing archive was slow: rewriting timestamp\n" msgstr "" -#: archive.c:2093 +#: archive.c:2085 msgid "Reading archive file mod timestamp" msgstr "" #. FIXME: bfd can't call perror. -#: archive.c:2120 +#: archive.c:2112 msgid "Writing updated armap timestamp" msgstr "" -#: bfd.c:274 +#: bfd.c:277 msgid "No error" msgstr "" -#: bfd.c:275 +#: bfd.c:278 msgid "System call error" msgstr "" -#: bfd.c:276 +#: bfd.c:279 msgid "Invalid bfd target" msgstr "" -#: bfd.c:277 +#: bfd.c:280 msgid "File in wrong format" msgstr "" -#: bfd.c:278 +#: bfd.c:281 msgid "Archive object file in wrong format" msgstr "" -#: bfd.c:279 +#: bfd.c:282 msgid "Invalid operation" msgstr "" -#: bfd.c:280 +#: bfd.c:283 msgid "Memory exhausted" msgstr "" -#: bfd.c:281 +#: bfd.c:284 msgid "No symbols" msgstr "" -#: bfd.c:282 +#: bfd.c:285 msgid "Archive has no index; run ranlib to add one" msgstr "" -#: bfd.c:283 +#: bfd.c:286 msgid "No more archived files" msgstr "" -#: bfd.c:284 +#: bfd.c:287 msgid "Malformed archive" msgstr "" -#: bfd.c:285 +#: bfd.c:288 msgid "File format not recognized" msgstr "" -#: bfd.c:286 +#: bfd.c:289 msgid "File format is ambiguous" msgstr "" -#: bfd.c:287 +#: bfd.c:290 msgid "Section has no contents" msgstr "" -#: bfd.c:288 +#: bfd.c:291 msgid "Nonrepresentable section on output" msgstr "" -#: bfd.c:289 +#: bfd.c:292 msgid "Symbol needs debug section which does not exist" msgstr "" -#: bfd.c:290 +#: bfd.c:293 msgid "Bad value" msgstr "" -#: bfd.c:291 +#: bfd.c:294 msgid "File truncated" msgstr "" -#: bfd.c:292 +#: bfd.c:295 msgid "File too big" msgstr "" -#: bfd.c:293 +#: bfd.c:296 msgid "#<Invalid error code>" msgstr "" -#: bfd.c:700 +#: bfd.c:703 #, c-format msgid "BFD %s assertion fail %s:%d" msgstr "" -#: bfd.c:719 +#: bfd.c:722 #, c-format msgid "BFD %s internal error, aborting at %s line %d in %s\n" msgstr "" -#: bfd.c:723 +#: bfd.c:726 #, c-format msgid "BFD %s internal error, aborting at %s line %d\n" msgstr "" -#: bfd.c:725 +#: bfd.c:728 msgid "Please report this bug.\n" msgstr "" @@ -209,17 +210,17 @@ msgstr "" msgid "%s: unable to find ARM glue '%s' for `%s'" msgstr "" -#: coff-arm.c:1391 coff-arm.c:1486 elf32-arm.h:887 elf32-arm.h:991 +#: coff-arm.c:1391 coff-arm.c:1486 elf32-arm.h:888 elf32-arm.h:992 #, c-format msgid "%s(%s): warning: interworking not enabled." msgstr "" -#: coff-arm.c:1395 elf32-arm.h:994 +#: coff-arm.c:1395 elf32-arm.h:995 #, c-format msgid " first occurrence: %s: arm call to thumb" msgstr "" -#: coff-arm.c:1490 elf32-arm.h:890 +#: coff-arm.c:1490 elf32-arm.h:891 #, c-format msgid " first occurrence: %s: thumb call to arm" msgstr "" @@ -228,100 +229,100 @@ msgstr "" msgid " consider relinking with --support-old-code enabled" msgstr "" -#: coff-arm.c:1785 coff-tic80.c:686 cofflink.c:3031 +#: coff-arm.c:1785 coff-tic80.c:686 cofflink.c:3034 #, c-format msgid "%s: bad reloc address 0x%lx in section `%s'" msgstr "" -#: coff-arm.c:2127 +#: coff-arm.c:2129 #, c-format msgid "%s: illegal symbol index in reloc: %d" msgstr "" -#: coff-arm.c:2255 +#: coff-arm.c:2257 #, c-format msgid "ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d" msgstr "" -#: coff-arm.c:2270 elf32-arm.h:2297 +#: coff-arm.c:2272 elf32-arm.h:2298 #, c-format msgid "" "ERROR: %s passes floats in float registers, whereas %s passes them in " "integer registers" msgstr "" -#: coff-arm.c:2273 elf32-arm.h:2302 +#: coff-arm.c:2275 elf32-arm.h:2303 #, c-format msgid "" "ERROR: %s passes floats in integer registers, whereas %s passes them in " "float registers" msgstr "" -#: coff-arm.c:2288 +#: coff-arm.c:2290 #, c-format msgid "" "ERROR: %s is compiled as position independent code, whereas target %s is " "absolute position" msgstr "" -#: coff-arm.c:2291 +#: coff-arm.c:2293 #, c-format msgid "" "ERROR: %s is compiled as absolute position code, whereas target %s is " "position independent" msgstr "" -#: coff-arm.c:2320 elf32-arm.h:2358 +#: coff-arm.c:2322 elf32-arm.h:2359 #, c-format msgid "Warning: %s supports interworking, whereas %s does not" msgstr "" -#: coff-arm.c:2323 elf32-arm.h:2365 +#: coff-arm.c:2325 elf32-arm.h:2366 #, c-format msgid "Warning: %s does not support interworking, whereas %s does" msgstr "" -#: coff-arm.c:2350 +#: coff-arm.c:2352 #, c-format msgid "private flags = %x:" msgstr "" -#: coff-arm.c:2358 elf32-arm.h:2418 +#: coff-arm.c:2360 elf32-arm.h:2419 msgid " [floats passed in float registers]" msgstr "" -#: coff-arm.c:2360 +#: coff-arm.c:2362 msgid " [floats passed in integer registers]" msgstr "" -#: coff-arm.c:2363 elf32-arm.h:2421 +#: coff-arm.c:2365 elf32-arm.h:2422 msgid " [position independent]" msgstr "" -#: coff-arm.c:2365 +#: coff-arm.c:2367 msgid " [absolute position]" msgstr "" -#: coff-arm.c:2369 +#: coff-arm.c:2371 msgid " [interworking flag not initialised]" msgstr "" -#: coff-arm.c:2371 +#: coff-arm.c:2373 msgid " [interworking supported]" msgstr "" -#: coff-arm.c:2373 +#: coff-arm.c:2375 msgid " [interworking not supported]" msgstr "" -#: coff-arm.c:2421 elf32-arm.h:2124 +#: coff-arm.c:2423 elf32-arm.h:2125 #, c-format msgid "" "Warning: Not setting interworking flag of %s since it has already been " "specified as non-interworking" msgstr "" -#: coff-arm.c:2425 elf32-arm.h:2128 +#: coff-arm.c:2427 elf32-arm.h:2129 #, c-format msgid "Warning: Clearing the interworking flag of %s due to outside request" msgstr "" @@ -348,17 +349,17 @@ msgstr "" msgid "reloc not properly aligned" msgstr "" -#: coff-rs6000.c:2766 +#: coff-rs6000.c:2760 #, c-format msgid "%s: unsupported relocation type 0x%02x" msgstr "" -#: coff-rs6000.c:2859 +#: coff-rs6000.c:2853 #, c-format msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry" msgstr "" -#: coff-rs6000.c:3590 coff64-rs6000.c:2091 +#: coff-rs6000.c:3586 coff64-rs6000.c:2080 #, c-format msgid "%s: symbol `%s' has unrecognized smclas %d" msgstr "" @@ -368,7 +369,7 @@ msgstr "" msgid "Unrecognized reloc type 0x%x" msgstr "" -#: coff-tic54x.c:390 coffcode.h:4974 +#: coff-tic54x.c:390 coffcode.h:4981 #, c-format msgid "%s: warning: illegal symbol index %ld in relocs" msgstr "" @@ -388,52 +389,52 @@ msgstr "" msgid "Unrecognized TI COFF target id '0x%x'" msgstr "" -#: coffcode.h:4365 +#: coffcode.h:4372 #, c-format msgid "%s: warning: illegal symbol index %ld in line numbers" msgstr "" -#: coffcode.h:4379 +#: coffcode.h:4386 #, c-format msgid "%s: warning: duplicate line number information for `%s'" msgstr "" -#: coffcode.h:4736 +#: coffcode.h:4743 #, c-format msgid "%s: Unrecognized storage class %d for %s symbol `%s'" msgstr "" -#: coffcode.h:4867 +#: coffcode.h:4874 #, c-format msgid "warning: %s: local symbol `%s' has no section" msgstr "" -#: coffcode.h:5012 +#: coffcode.h:5019 #, c-format msgid "%s: illegal relocation type %d at address 0x%lx" msgstr "" -#: coffgen.c:1661 +#: coffgen.c:1668 #, c-format msgid "%s: bad string table size %lu" msgstr "" -#: cofflink.c:534 elflink.h:1912 +#: cofflink.c:534 elflink.h:1930 #, c-format msgid "Warning: type of symbol `%s' changed from %d to %d in %s" msgstr "" -#: cofflink.c:2321 +#: cofflink.c:2324 #, c-format msgid "%s: relocs in section `%s', but it has no contents" msgstr "" -#: cofflink.c:2664 coffswap.h:877 +#: cofflink.c:2667 coffswap.h:877 #, c-format msgid "%s: %s: reloc overflow: 0x%lx > 0xffff" msgstr "" -#: cofflink.c:2673 coffswap.h:864 +#: cofflink.c:2676 coffswap.h:864 #, c-format msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff" msgstr "" @@ -460,144 +461,144 @@ msgid "" "(%lu)." msgstr "" -#: dwarf2.c:757 +#: dwarf2.c:760 #, c-format msgid "Dwarf Error: Invalid or unhandled FORM value: %u." msgstr "" -#: dwarf2.c:852 +#: dwarf2.c:924 msgid "Dwarf Error: mangled line number section (bad file number)." msgstr "" -#: dwarf2.c:938 +#: dwarf2.c:1016 msgid "Dwarf Error: Can't find .debug_line section." msgstr "" -#: dwarf2.c:961 +#: dwarf2.c:1039 #, c-format msgid "" "Dwarf Error: Line offset (%lu) greater than or equal to .debug_line size (%" "lu)." msgstr "" -#: dwarf2.c:1159 +#: dwarf2.c:1245 msgid "Dwarf Error: mangled line number section." msgstr "" -#: dwarf2.c:1355 dwarf2.c:1566 +#: dwarf2.c:1454 dwarf2.c:1665 #, c-format msgid "Dwarf Error: Could not find abbrev number %u." msgstr "" -#: dwarf2.c:1527 +#: dwarf2.c:1626 #, c-format msgid "" "Dwarf Error: found dwarf version '%u', this reader only handles version 2 " "information." msgstr "" -#: dwarf2.c:1534 +#: dwarf2.c:1633 #, c-format msgid "" "Dwarf Error: found address size '%u', this reader can not handle sizes " "greater than '%u'." msgstr "" -#: dwarf2.c:1557 +#: dwarf2.c:1656 #, c-format msgid "Dwarf Error: Bad abbrev number: %u." msgstr "" -#: ecoff.c:1318 +#: ecoff.c:1320 #, c-format msgid "Unknown basic type %d" msgstr "" -#: ecoff.c:1578 +#: ecoff.c:1580 #, c-format msgid "" "\n" " End+1 symbol: %ld" msgstr "" -#: ecoff.c:1585 ecoff.c:1588 +#: ecoff.c:1587 ecoff.c:1590 #, c-format msgid "" "\n" " First symbol: %ld" msgstr "" -#: ecoff.c:1600 +#: ecoff.c:1602 #, c-format msgid "" "\n" " End+1 symbol: %-7ld Type: %s" msgstr "" -#: ecoff.c:1607 +#: ecoff.c:1609 #, c-format msgid "" "\n" " Local symbol: %ld" msgstr "" -#: ecoff.c:1615 +#: ecoff.c:1617 #, c-format msgid "" "\n" " struct; End+1 symbol: %ld" msgstr "" -#: ecoff.c:1620 +#: ecoff.c:1622 #, c-format msgid "" "\n" " union; End+1 symbol: %ld" msgstr "" -#: ecoff.c:1625 +#: ecoff.c:1627 #, c-format msgid "" "\n" " enum; End+1 symbol: %ld" msgstr "" -#: ecoff.c:1631 +#: ecoff.c:1633 #, c-format msgid "" "\n" " Type: %s" msgstr "" -#: elf-hppa.h:1476 elf-hppa.h:1509 elf32-ppc.c:3091 elf32-sh.c:4213 +#: elf-hppa.h:1476 elf-hppa.h:1509 elf32-ppc.c:3091 elf32-sh.c:4537 #: elf64-sh64.c:1659 #, c-format msgid "" "%s: warning: unresolvable relocation against symbol `%s' from %s section" msgstr "" -#: elf-m10200.c:446 elf-m10300.c:656 elf32-arm.h:2084 elf32-avr.c:833 +#: elf-m10200.c:446 elf-m10300.c:656 elf32-arm.h:2085 elf32-avr.c:833 #: elf32-cris.c:1403 elf32-d10v.c:481 elf32-fr30.c:635 elf32-frv.c:809 -#: elf32-h8300.c:548 elf32-i860.c:1031 elf32-m32r.c:1278 elf32-openrisc.c:439 +#: elf32-h8300.c:548 elf32-i860.c:1031 elf32-m32r.c:1280 elf32-openrisc.c:439 #: elf32-v850.c:1691 elf32-xstormy16.c:933 elf64-mmix.c:1302 msgid "internal error: out of range error" msgstr "" -#: elf-m10200.c:450 elf-m10300.c:660 elf32-arm.h:2088 elf32-avr.c:837 +#: elf-m10200.c:450 elf-m10300.c:660 elf32-arm.h:2089 elf32-avr.c:837 #: elf32-cris.c:1407 elf32-d10v.c:485 elf32-fr30.c:639 elf32-frv.c:813 -#: elf32-h8300.c:552 elf32-i860.c:1035 elf32-m32r.c:1282 elf32-openrisc.c:443 -#: elf32-v850.c:1695 elf32-xstormy16.c:937 elf64-mmix.c:1306 elfxx-mips.c:5264 +#: elf32-h8300.c:552 elf32-i860.c:1035 elf32-m32r.c:1284 elf32-openrisc.c:443 +#: elf32-v850.c:1695 elf32-xstormy16.c:937 elf64-mmix.c:1306 elfxx-mips.c:5258 msgid "internal error: unsupported relocation error" msgstr "" -#: elf-m10200.c:454 elf-m10300.c:664 elf32-arm.h:2092 elf32-d10v.c:489 -#: elf32-h8300.c:556 elf32-m32r.c:1286 +#: elf-m10200.c:454 elf-m10300.c:664 elf32-arm.h:2093 elf32-d10v.c:489 +#: elf32-h8300.c:556 elf32-m32r.c:1288 msgid "internal error: dangerous error" msgstr "" -#: elf-m10200.c:458 elf-m10300.c:668 elf32-arm.h:2096 elf32-avr.c:845 +#: elf-m10200.c:458 elf-m10300.c:668 elf32-arm.h:2097 elf32-avr.c:845 #: elf32-cris.c:1415 elf32-d10v.c:493 elf32-fr30.c:647 elf32-frv.c:821 -#: elf32-h8300.c:560 elf32-i860.c:1043 elf32-m32r.c:1290 elf32-openrisc.c:451 +#: elf32-h8300.c:560 elf32-i860.c:1043 elf32-m32r.c:1292 elf32-openrisc.c:451 #: elf32-v850.c:1715 elf32-xstormy16.c:945 elf64-mmix.c:1314 msgid "internal error: unknown error" msgstr "" @@ -646,177 +647,177 @@ msgstr "" msgid " required from %s:\n" msgstr "" -#: elf.c:1902 +#: elf.c:1904 #, c-format msgid "%s: invalid link %lu for reloc section %s (index %u)" msgstr "" -#: elf.c:3603 +#: elf.c:3619 #, c-format msgid "%s: Not enough room for program headers (allocated %u, need %u)" msgstr "" -#: elf.c:3708 +#: elf.c:3724 #, c-format msgid "%s: Not enough room for program headers, try linking with -N" msgstr "" -#: elf.c:3833 +#: elf.c:3849 #, c-format msgid "" "Error: First section in segment (%s) starts at 0x%x whereas the segment " "starts at 0x%x" msgstr "" -#: elf.c:4148 +#: elf.c:4164 #, c-format msgid "%s: warning: allocated section `%s' not in segment" msgstr "" -#: elf.c:4472 +#: elf.c:4488 #, c-format msgid "%s: symbol `%s' required but not present" msgstr "" -#: elf.c:4749 +#: elf.c:4765 #, c-format msgid "%s: warning: Empty loadable segment detected, is this intentional ?\n" msgstr "" -#: elf.c:6193 +#: elf.c:6213 #, c-format msgid "%s: unsupported relocation type %s" msgstr "" -#: elf32-arm.h:1221 +#: elf32-arm.h:1222 #, c-format msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'." msgstr "" -#: elf32-arm.h:1417 +#: elf32-arm.h:1418 #, c-format msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'." msgstr "" -#: elf32-arm.h:1914 elf32-sh.c:4125 +#: elf32-arm.h:1915 elf32-sh.c:4444 #, c-format msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section" msgstr "" -#: elf32-arm.h:2008 +#: elf32-arm.h:2009 #, c-format msgid "" "%s: warning: unresolvable relocation %d against symbol `%s' from %s section" msgstr "" -#: elf32-arm.h:2176 +#: elf32-arm.h:2177 #, c-format msgid "" "Warning: Clearing the interworking flag of %s because non-interworking code " "in %s has been linked with it" msgstr "" -#: elf32-arm.h:2271 +#: elf32-arm.h:2272 #, c-format msgid "" "ERROR: %s is compiled for EABI version %d, whereas %s is compiled for " "version %d" msgstr "" -#: elf32-arm.h:2285 +#: elf32-arm.h:2286 #, c-format msgid "ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d" msgstr "" -#: elf32-arm.h:2313 +#: elf32-arm.h:2314 #, c-format msgid "ERROR: %s uses VFP instructions, whereas %s uses FPA instructions" msgstr "" -#: elf32-arm.h:2318 +#: elf32-arm.h:2319 #, c-format msgid "ERROR: %s uses FPA instructions, whereas %s uses VFP instructions" msgstr "" -#: elf32-arm.h:2338 +#: elf32-arm.h:2339 #, c-format msgid "ERROR: %s uses software FP, whereas %s uses hardware FP" msgstr "" -#: elf32-arm.h:2343 +#: elf32-arm.h:2344 #, c-format 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:2396 elf32-cris.c:2988 elf32-m68k.c:410 elf32-vax.c:543 -#: elfxx-mips.c:7756 +#: elf32-arm.h:2397 elf32-cris.c:2989 elf32-m68k.c:410 elf32-vax.c:548 +#: elfxx-mips.c:7760 #, c-format msgid "private flags = %lx:" msgstr "" -#: elf32-arm.h:2405 +#: elf32-arm.h:2406 msgid " [interworking enabled]" msgstr "" -#: elf32-arm.h:2413 +#: elf32-arm.h:2414 msgid " [VFP float format]" msgstr "" -#: elf32-arm.h:2415 +#: elf32-arm.h:2416 msgid " [FPA float format]" msgstr "" -#: elf32-arm.h:2424 +#: elf32-arm.h:2425 msgid " [new ABI]" msgstr "" -#: elf32-arm.h:2427 +#: elf32-arm.h:2428 msgid " [old ABI]" msgstr "" -#: elf32-arm.h:2430 +#: elf32-arm.h:2431 msgid " [software FP]" msgstr "" -#: elf32-arm.h:2438 +#: elf32-arm.h:2439 msgid " [Version1 EABI]" msgstr "" -#: elf32-arm.h:2441 elf32-arm.h:2452 +#: elf32-arm.h:2442 elf32-arm.h:2453 msgid " [sorted symbol table]" msgstr "" -#: elf32-arm.h:2443 elf32-arm.h:2454 +#: elf32-arm.h:2444 elf32-arm.h:2455 msgid " [unsorted symbol table]" msgstr "" -#: elf32-arm.h:2449 +#: elf32-arm.h:2450 msgid " [Version2 EABI]" msgstr "" -#: elf32-arm.h:2457 +#: elf32-arm.h:2458 msgid " [dynamic symbols use segment index]" msgstr "" -#: elf32-arm.h:2460 +#: elf32-arm.h:2461 msgid " [mapping symbols precede others]" msgstr "" -#: elf32-arm.h:2467 +#: elf32-arm.h:2468 msgid " <EABI version unrecognised>" msgstr "" -#: elf32-arm.h:2474 +#: elf32-arm.h:2475 msgid " [relocatable executable]" msgstr "" -#: elf32-arm.h:2477 +#: elf32-arm.h:2478 msgid " [has entry point]" msgstr "" -#: elf32-arm.h:2482 +#: elf32-arm.h:2483 msgid "<Unrecognised flag bits set>" msgstr "" @@ -877,16 +878,16 @@ msgid "" " relocation %s should not be used in a shared object; recompile with -fPIC" msgstr "" -#: elf32-cris.c:2991 +#: elf32-cris.c:2992 msgid " [symbols have a _ prefix]" msgstr "" -#: elf32-cris.c:3030 +#: elf32-cris.c:3031 #, c-format msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols" msgstr "" -#: elf32-cris.c:3031 +#: elf32-cris.c:3032 #, c-format msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols" msgstr "" @@ -919,122 +920,117 @@ msgstr "" msgid "%s: Relocations in generic ELF (EM: %d)" msgstr "" -#: elf32-hppa.c:671 elf64-ppc.c:2323 +#: elf32-hppa.c:672 elf64-ppc.c:2324 #, c-format msgid "%s: cannot create stub entry %s" msgstr "" -#: elf32-hppa.c:956 elf32-hppa.c:3555 +#: elf32-hppa.c:957 elf32-hppa.c:3557 #, c-format msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections" msgstr "" -#: elf32-hppa.c:1338 elf64-x86-64.c:673 +#: elf32-hppa.c:1340 elf64-x86-64.c:675 #, c-format msgid "" "%s: relocation %s can not be used when making a shared object; recompile " "with -fPIC" msgstr "" -#: elf32-hppa.c:1358 +#: elf32-hppa.c:1360 #, c-format msgid "" "%s: relocation %s should not be used when making a shared object; recompile " "with -fPIC" msgstr "" -#: elf32-hppa.c:1551 +#: elf32-hppa.c:1553 #, c-format msgid "Could not find relocation section for %s" msgstr "" -#: elf32-hppa.c:2855 +#: elf32-hppa.c:2857 #, c-format msgid "%s: duplicate export stub %s" msgstr "" -#: elf32-hppa.c:3433 +#: elf32-hppa.c:3435 #, c-format msgid "%s(%s+0x%lx): fixing %s" msgstr "" -#: elf32-hppa.c:4080 +#: elf32-hppa.c:4082 #, c-format msgid "%s(%s+0x%lx): cannot handle %s for %s" msgstr "" -#: elf32-hppa.c:4393 +#: elf32-hppa.c:4395 msgid ".got section not immediately after .plt section" msgstr "" -#: elf32-i386.c:379 +#: elf32-i386.c:401 #, c-format msgid "%s: invalid relocation type %d" msgstr "" -#: elf32-i386.c:876 elf32-s390.c:649 elf64-s390.c:595 elf64-x86-64.c:591 +#: elf32-i386.c:916 elf32-s390.c:651 elf64-s390.c:597 elf64-x86-64.c:593 #, c-format msgid "%s: bad symbol index: %d" msgstr "" -#: elf32-i386.c:948 +#: elf32-i386.c:1025 #, c-format msgid "%s: `%s' accessed both as normal and thread local symbol" msgstr "" -#: elf32-i386.c:1072 elf32-s390.c:808 elf64-ppc.c:2827 elf64-s390.c:759 -#: elf64-x86-64.c:761 +#: elf32-i386.c:1137 elf32-s390.c:810 elf64-ppc.c:2829 elf64-s390.c:761 +#: elf64-x86-64.c:763 #, c-format msgid "%s: bad relocation section name `%s'" msgstr "" -#: elf32-i386.c:1159 elf64-alpha.c:4768 -#, c-format -msgid "%s: TLS local exec code cannot be linked into shared objects" -msgstr "" - -#: elf32-i386.c:2747 elf32-s390.c:1981 elf32-sparc.c:1571 elf64-ppc.c:5918 -#: elf64-s390.c:1945 elf64-sparc.c:2578 elf64-x86-64.c:1948 +#: elf32-i386.c:2990 elf32-s390.c:1983 elf32-sparc.c:1572 elf64-ppc.c:5941 +#: elf64-s390.c:1947 elf64-sparc.c:2578 elf64-x86-64.c:1950 #, c-format msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'" msgstr "" -#: elf32-i386.c:2784 elf32-s390.c:2019 elf64-ppc.c:5977 elf64-s390.c:1983 -#: elf64-x86-64.c:1986 +#: elf32-i386.c:3029 elf32-s390.c:2021 elf64-ppc.c:6000 elf64-s390.c:1985 +#: elf64-x86-64.c:1988 #, c-format msgid "%s(%s+0x%lx): reloc against `%s': error %d" msgstr "" -#: elf32-m32r.c:924 +#: elf32-m32r.c:926 msgid "SDA relocation when _SDA_BASE_ not defined" msgstr "" -#: elf32-ia64.c:3687 elf32-m32r.c:1013 elf32-ppc.c:2987 elf64-alpha.c:4185 -#: elf64-alpha.c:4313 elf64-ia64.c:3687 +#: elf32-m32r.c:1015 elf32-ppc.c:2987 elf64-alpha.c:4186 elf64-alpha.c:4314 +#: elf32-ia64.c:3693 elf64-ia64.c:3693 #, c-format msgid "%s: unknown relocation type %d" msgstr "" -#: elf32-m32r.c:1221 +#: 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:1947 +#: elf32-m32r.c:1949 #, c-format msgid "%s: Instruction set mismatch with previous modules" msgstr "" -#: elf32-m32r.c:1970 +#: elf32-m32r.c:1972 #, c-format msgid "private flags = %lx" msgstr "" -#: elf32-m32r.c:1975 +#: elf32-m32r.c:1977 msgid ": m32r instructions" msgstr "" -#: elf32-m32r.c:1976 +#: elf32-m32r.c:1978 msgid ": m32rx instructions" msgstr "" @@ -1077,7 +1073,7 @@ msgid "" "%s: compiled normally and linked with modules compiled with -mrelocatable" msgstr "" -#: elf32-ppc.c:1494 elf64-sparc.c:2989 elfxx-mips.c:7713 +#: elf32-ppc.c:1494 elf64-sparc.c:2990 elfxx-mips.c:7717 #, c-format msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" msgstr "" @@ -1092,67 +1088,67 @@ msgstr "" msgid "%s: relocation %s cannot be used when making a shared object" msgstr "" -#: elf32-ppc.c:3126 elf64-ppc.c:5473 +#: elf32-ppc.c:3126 elf64-ppc.c:5496 #, c-format msgid "%s: unknown relocation type %d for symbol %s" msgstr "" -#: elf32-ppc.c:3482 elf32-ppc.c:3503 elf32-ppc.c:3553 +#: elf32-ppc.c:3489 elf32-ppc.c:3510 elf32-ppc.c:3560 #, c-format msgid "" "%s: The target (%s) of a %s relocation is in the wrong output section (%s)" msgstr "" -#: elf32-ppc.c:3619 +#: elf32-ppc.c:3626 #, c-format msgid "%s: Relocation %s is not yet supported for symbol %s." msgstr "" -#: elf32-sh.c:1964 +#: elf32-sh.c:1973 #, c-format msgid "%s: 0x%lx: warning: bad R_SH_USES offset" msgstr "" -#: elf32-sh.c:1976 +#: elf32-sh.c:1985 #, c-format msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" msgstr "" -#: elf32-sh.c:1993 +#: elf32-sh.c:2002 #, c-format msgid "%s: 0x%lx: warning: bad R_SH_USES load offset" msgstr "" -#: elf32-sh.c:2008 +#: elf32-sh.c:2017 #, c-format msgid "%s: 0x%lx: warning: could not find expected reloc" msgstr "" -#: elf32-sh.c:2036 +#: elf32-sh.c:2045 #, c-format msgid "%s: 0x%lx: warning: symbol in unexpected section" msgstr "" -#: elf32-sh.c:2153 +#: elf32-sh.c:2162 #, c-format msgid "%s: 0x%lx: warning: could not find expected COUNT reloc" msgstr "" -#: elf32-sh.c:2162 +#: elf32-sh.c:2171 #, c-format msgid "%s: 0x%lx: warning: bad count" msgstr "" -#: elf32-sh.c:2550 elf32-sh.c:2926 +#: elf32-sh.c:2559 elf32-sh.c:2935 #, c-format msgid "%s: 0x%lx: fatal: reloc overflow while relaxing" msgstr "" -#: elf32-sh.c:4073 elf64-sh64.c:1576 +#: elf32-sh.c:4392 elf64-sh64.c:1576 msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" msgstr "" -#: elf32-sh.c:4284 +#: elf32-sh.c:4611 #, c-format msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation" msgstr "" @@ -1172,50 +1168,50 @@ msgstr "" msgid "%s: object size does not match that of target %s" msgstr "" -#: elf32-sh64.c:440 elf64-sh64.c:2941 +#: elf32-sh64.c:443 elf64-sh64.c:2944 #, c-format msgid "%s: encountered datalabel symbol in input" msgstr "" -#: elf32-sh64.c:523 +#: elf32-sh64.c:526 msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" msgstr "" -#: elf32-sh64.c:526 +#: elf32-sh64.c:529 msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" msgstr "" -#: elf32-sh64.c:544 +#: elf32-sh64.c:547 #, c-format msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16" msgstr "" -#: elf32-sh64.c:593 elf64-sh64.c:1703 +#: elf32-sh64.c:596 elf64-sh64.c:1703 #, c-format msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n" msgstr "" -#: elf32-sh64.c:677 +#: elf32-sh64.c:680 #, c-format msgid "%s: could not write out added .cranges entries" msgstr "" -#: elf32-sh64.c:739 +#: elf32-sh64.c:742 #, c-format msgid "%s: could not write out sorted .cranges entries" msgstr "" -#: elf32-sparc.c:1535 elf64-sparc.c:2224 +#: elf32-sparc.c:1536 elf64-sparc.c:2224 #, c-format msgid "%s: probably compiled without -fPIC?" msgstr "" -#: elf32-sparc.c:2002 +#: elf32-sparc.c:2010 #, c-format msgid "%s: compiled for a 64 bit system and target is 32 bit" msgstr "" -#: elf32-sparc.c:2016 +#: elf32-sparc.c:2024 #, c-format msgid "%s: linking little endian files with big endian files" msgstr "" @@ -1287,41 +1283,41 @@ msgstr "" msgid "v850ea architecture" msgstr "" -#: elf32-vax.c:546 +#: elf32-vax.c:551 msgid " [nonpic]" msgstr "" -#: elf32-vax.c:549 +#: elf32-vax.c:554 msgid " [d-float]" msgstr "" -#: elf32-vax.c:552 +#: elf32-vax.c:557 msgid " [g-float]" msgstr "" -#: elf32-vax.c:674 +#: elf32-vax.c:665 #, c-format msgid "" "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of " "%ld" msgstr "" -#: elf32-vax.c:1679 +#: elf32-vax.c:1687 #, c-format msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored" msgstr "" -#: elf32-vax.c:1814 +#: elf32-vax.c:1822 #, c-format msgid "%s: warning: %s relocation against symbol `%s' from %s section" msgstr "" -#: elf32-vax.c:1820 +#: elf32-vax.c:1828 #, c-format msgid "%s: warning: %s relocation to 0x%x from %s section" msgstr "" -#: elf32-ia64.c:2280 elf32-xstormy16.c:414 elf64-ia64.c:2280 +#: elf32-xstormy16.c:414 elf32-ia64.c:2286 elf64-ia64.c:2286 msgid "non-zero addend in @fptr reloc" msgstr "" @@ -1329,46 +1325,51 @@ msgstr "" msgid "GPDISP relocation did not find ldah and lda instructions" msgstr "" -#: elf64-alpha.c:3675 +#: elf64-alpha.c:3676 #, c-format msgid "%s: .got subsegment exceeds 64K (size %d)" msgstr "" -#: elf64-alpha.c:4498 elf64-alpha.c:4510 +#: elf64-alpha.c:4499 elf64-alpha.c:4511 #, c-format msgid "%s: gp-relative relocation against dynamic symbol %s" msgstr "" -#: elf64-alpha.c:4536 elf64-alpha.c:4676 +#: elf64-alpha.c:4537 elf64-alpha.c:4677 #, c-format msgid "%s: pc-relative relocation against dynamic symbol %s" msgstr "" -#: elf64-alpha.c:4564 +#: elf64-alpha.c:4565 #, c-format msgid "%s: change in gp: BRSGP %s" msgstr "" -#: elf64-alpha.c:4589 +#: elf64-alpha.c:4590 msgid "<unknown>" msgstr "" -#: elf64-alpha.c:4594 +#: elf64-alpha.c:4595 #, c-format msgid "%s: !samegp reloc against symbol without .prologue: %s" msgstr "" -#: elf64-alpha.c:4639 +#: elf64-alpha.c:4640 #, c-format msgid "%s: unhandled dynamic relocation against %s" msgstr "" -#: elf64-alpha.c:4752 +#: elf64-alpha.c:4753 #, c-format msgid "%s: dtp-relative relocation against dynamic symbol %s" msgstr "" -#: elf64-alpha.c:4775 +#: elf64-alpha.c:4769 +#, c-format +msgid "%s: TLS local exec code cannot be linked into shared objects" +msgstr "" + +#: elf64-alpha.c:4776 #, c-format msgid "%s: tp-relative relocation against dynamic symbol %s" msgstr "" @@ -1447,46 +1448,46 @@ msgstr "" msgid "%s: compiled for a little endian system and target is big endian" msgstr "" -#: elf64-ppc.c:3610 +#: elf64-ppc.c:3614 #, c-format msgid "%s: unexpected reloc type %u in .opd section" msgstr "" -#: elf64-ppc.c:3630 +#: elf64-ppc.c:3634 #, c-format msgid "%s: .opd is not a regular array of opd entries" msgstr "" -#: elf64-ppc.c:3672 +#: elf64-ppc.c:3676 #, c-format msgid "%s: undefined sym `%s' in .opd section" msgstr "" -#: elf64-ppc.c:4397 +#: elf64-ppc.c:4421 #, c-format msgid "can't find branch stub `%s'" msgstr "" -#: elf64-ppc.c:4436 elf64-ppc.c:4501 +#: elf64-ppc.c:4460 elf64-ppc.c:4504 #, c-format msgid "linkage table error against `%s'" msgstr "" -#: elf64-ppc.c:4573 +#: elf64-ppc.c:4576 #, c-format msgid "can't build branch stub `%s'" msgstr "" -#: elf64-ppc.c:5179 +#: elf64-ppc.c:5202 msgid "stubs don't match calculated size" msgstr "" -#: elf64-ppc.c:5828 +#: elf64-ppc.c:5851 #, c-format msgid "%s: Relocation %s is not supported for symbol %s." msgstr "" -#: elf64-ppc.c:5872 +#: elf64-ppc.c:5895 #, c-format msgid "%s: error: relocation %s not a multiple of 4" msgstr "" @@ -1516,7 +1517,7 @@ msgstr "" msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s" msgstr "" -#: elf64-sparc.c:2970 +#: elf64-sparc.c:2971 #, c-format msgid "%s: linking UltraSPARC specific with HAL specific code" msgstr "" @@ -1526,83 +1527,85 @@ msgstr "" msgid "%s: version count (%ld) does not match symbol count (%ld)" msgstr "" -#: elflink.c:440 +#: elfcode.h:1433 +#, c-format +msgid "%s(%s): relocation %d has invalid symbol index %ld" +msgstr "" + +#: elflink.c:536 #, c-format msgid "%s: Section %s is too large to add hole of %ld bytes" msgstr "" -#: elflink.h:1090 +#: elflink.h:1098 #, c-format -msgid "%s: warning: unexpected redefinition of `%s'" +msgid "%s: warning: unexpected redefinition of indirect versioned symbol `%s'" msgstr "" -#: elflink.h:1727 +#: elflink.h:1745 #, c-format msgid "%s: %s: invalid version %u (max %d)" msgstr "" -#: elflink.h:1768 +#: elflink.h:1786 #, c-format msgid "%s: %s: invalid needed version %d" msgstr "" -#: elflink.h:1890 +#: elflink.h:1908 #, c-format msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s" msgstr "" -#: elflink.h:3174 +#: elflink.h:3116 +#, c-format +msgid "%s: undefined version: %s" +msgstr "" + +#: elflink.h:3182 #, c-format msgid "%s: .preinit_array section is not allowed in DSO" msgstr "" -#: elflink.h:4030 +#: elflink.h:4039 #, c-format msgid "warning: type and size of dynamic symbol `%s' are not defined" msgstr "" -#: elflink.h:4345 +#: elflink.h:4354 #, c-format msgid "%s: undefined versioned symbol name %s" msgstr "" -#: elflink.h:4611 elflink.h:4619 elflink.h:6508 elflink.h:7600 +#: elflink.h:4595 elflink.h:4603 elflink.h:6494 elflink.h:7569 msgid "Error: out of memory" msgstr "" -#: elflink.h:4781 +#: elflink.h:4767 msgid "Not enough memory to sort relocations" msgstr "" -#: elflink.h:5682 elflink.h:5725 +#: elflink.h:5668 elflink.h:5711 #, c-format msgid "%s: could not find output section %s" msgstr "" -#: elflink.h:5688 +#: elflink.h:5674 #, c-format msgid "warning: %s section has zero size" msgstr "" -#: elflink.h:6275 +#: elflink.h:6261 #, c-format msgid "%s: could not find output section %s for input section %s" msgstr "" -#: elflink.h:6486 +#: elflink.h:6472 #, c-format msgid "%s: relocation size mismatch in %s section %s" msgstr "" -#: elflink.h:6849 -msgid "warning: relocation against removed section; zeroing" -msgstr "" - -#: elflink.h:6879 -msgid "warning: relocation against removed section" -msgstr "" - -#: elflink.h:6892 +#: elflink.h:6862 #, c-format msgid "local symbols in discarded section %s" msgstr "" @@ -1611,132 +1614,132 @@ msgstr "" msgid "static procedure (no name)" msgstr "" -#: elfxx-mips.c:1601 +#: elfxx-mips.c:1604 msgid "not enough GOT space for local GOT entries" msgstr "" -#: elfxx-mips.c:2750 +#: elfxx-mips.c:2755 #, c-format msgid "%s: %s+0x%lx: jump to stub routine which is not jal" msgstr "" -#: elfxx-mips.c:4270 +#: elfxx-mips.c:4264 #, c-format msgid "%s: Malformed reloc detected for section %s" msgstr "" -#: elfxx-mips.c:4348 +#: elfxx-mips.c:4342 #, c-format msgid "%s: CALL16 reloc at 0x%lx not against global symbol" msgstr "" -#: elfxx-mips.c:7301 +#: elfxx-mips.c:7296 #, c-format msgid "%s: illegal section name `%s'" msgstr "" -#: elfxx-mips.c:7615 +#: elfxx-mips.c:7610 #, c-format msgid "%s: linking PIC files with non-PIC files" msgstr "" -#: elfxx-mips.c:7625 +#: elfxx-mips.c:7620 #, c-format msgid "%s: linking abicalls files with non-abicalls files" msgstr "" -#: elfxx-mips.c:7654 +#: elfxx-mips.c:7649 #, c-format msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)" msgstr "" -#: elfxx-mips.c:7676 +#: elfxx-mips.c:7671 #, c-format msgid "%s: ISA mismatch (%d) with previous modules (%d)" msgstr "" -#: elfxx-mips.c:7699 +#: elfxx-mips.c:7694 #, c-format msgid "%s: ABI mismatch: linking %s module with previous %s modules" msgstr "" -#: elfxx-mips.c:7759 +#: elfxx-mips.c:7763 msgid " [abi=O32]" msgstr "" -#: elfxx-mips.c:7761 +#: elfxx-mips.c:7765 msgid " [abi=O64]" msgstr "" -#: elfxx-mips.c:7763 +#: elfxx-mips.c:7767 msgid " [abi=EABI32]" msgstr "" -#: elfxx-mips.c:7765 +#: elfxx-mips.c:7769 msgid " [abi=EABI64]" msgstr "" -#: elfxx-mips.c:7767 +#: elfxx-mips.c:7771 msgid " [abi unknown]" msgstr "" -#: elfxx-mips.c:7769 +#: elfxx-mips.c:7773 msgid " [abi=N32]" msgstr "" -#: elfxx-mips.c:7771 +#: elfxx-mips.c:7775 msgid " [abi=64]" msgstr "" -#: elfxx-mips.c:7773 +#: elfxx-mips.c:7777 msgid " [no abi set]" msgstr "" -#: elfxx-mips.c:7776 +#: elfxx-mips.c:7780 msgid " [mips1]" msgstr "" -#: elfxx-mips.c:7778 +#: elfxx-mips.c:7782 msgid " [mips2]" msgstr "" -#: elfxx-mips.c:7780 +#: elfxx-mips.c:7784 msgid " [mips3]" msgstr "" -#: elfxx-mips.c:7782 +#: elfxx-mips.c:7786 msgid " [mips4]" msgstr "" -#: elfxx-mips.c:7784 +#: elfxx-mips.c:7788 msgid " [mips5]" msgstr "" -#: elfxx-mips.c:7786 +#: elfxx-mips.c:7790 msgid " [mips32]" msgstr "" -#: elfxx-mips.c:7788 +#: elfxx-mips.c:7792 msgid " [mips64]" msgstr "" -#: elfxx-mips.c:7790 +#: elfxx-mips.c:7794 msgid " [unknown ISA]" msgstr "" -#: elfxx-mips.c:7793 +#: elfxx-mips.c:7797 msgid " [mdmx]" msgstr "" -#: elfxx-mips.c:7796 +#: elfxx-mips.c:7800 msgid " [mips16]" msgstr "" -#: elfxx-mips.c:7799 +#: elfxx-mips.c:7803 msgid " [32bitmode]" msgstr "" -#: elfxx-mips.c:7801 +#: elfxx-mips.c:7805 msgid " [not 32bitmode]" msgstr "" @@ -1785,52 +1788,52 @@ msgstr "" msgid "%s: unexpected type after ATN" msgstr "" -#: ihex.c:258 +#: ihex.c:255 #, c-format msgid "%s:%d: unexpected character `%s' in Intel Hex file\n" msgstr "" -#: ihex.c:366 +#: ihex.c:363 #, c-format msgid "%s:%u: bad checksum in Intel Hex file (expected %u, found %u)" msgstr "" -#: ihex.c:420 +#: ihex.c:417 #, c-format msgid "%s:%u: bad extended address record length in Intel Hex file" msgstr "" -#: ihex.c:437 +#: ihex.c:434 #, c-format msgid "%s:%u: bad extended start address length in Intel Hex file" msgstr "" -#: ihex.c:454 +#: ihex.c:451 #, c-format msgid "%s:%u: bad extended linear address record length in Intel Hex file" msgstr "" -#: ihex.c:471 +#: ihex.c:468 #, c-format msgid "%s:%u: bad extended linear start address length in Intel Hex file" msgstr "" -#: ihex.c:488 +#: ihex.c:485 #, c-format msgid "%s:%u: unrecognized ihex type %u in Intel Hex file\n" msgstr "" -#: ihex.c:607 +#: ihex.c:610 #, c-format msgid "%s: internal error in ihex_read_section" msgstr "" -#: ihex.c:642 +#: ihex.c:645 #, c-format msgid "%s: bad section length in ihex_read_section" msgstr "" -#: ihex.c:860 +#: ihex.c:863 #, c-format msgid "%s: address 0x%s out of range for Intel Hex file" msgstr "" @@ -1854,12 +1857,12 @@ msgstr "" msgid "Deprecated %s called\n" msgstr "" -#: linker.c:1873 +#: linker.c:1875 #, c-format msgid "%s: indirect symbol `%s' to `%s' is a loop" msgstr "" -#: linker.c:2776 +#: linker.c:2778 #, c-format msgid "Attempt to do relocateable link with %s input and %s output" msgstr "" @@ -2079,7 +2082,7 @@ msgstr "" msgid "%s: size field is zero in Import Library Format header" msgstr "" -#: peicode.h:1219 +#: peicode.h:1222 #, c-format msgid "%s: string not null terminated in ILF object file." msgstr "" @@ -2136,7 +2139,7 @@ msgstr "" msgid "som_sizeof_headers unimplemented" msgstr "" -#: srec.c:301 +#: srec.c:302 #, c-format msgid "%s:%d: Unexpected character `%s' in S-record file\n" msgstr "" @@ -2174,29 +2177,29 @@ msgstr "" msgid "Object module NOT error-free !\n" msgstr "" -#: vms-misc.c:543 +#: vms-misc.c:541 #, c-format msgid "Stack overflow (%d) in _bfd_vms_push" msgstr "" -#: vms-misc.c:561 +#: vms-misc.c:559 msgid "Stack underflow in _bfd_vms_pop" msgstr "" -#: vms-misc.c:919 +#: vms-misc.c:918 msgid "_bfd_vms_output_counted called with zero bytes" msgstr "" -#: vms-misc.c:924 +#: vms-misc.c:923 msgid "_bfd_vms_output_counted called with too many bytes" msgstr "" -#: vms-misc.c:1055 +#: vms-misc.c:1054 #, c-format msgid "Symbol %s replaced by %s\n" msgstr "" -#: vms-misc.c:1117 +#: vms-misc.c:1116 #, c-format msgid "failed to enter %s" msgstr "" @@ -2349,109 +2352,109 @@ msgstr "" msgid "%s: reloc %s:%d not in csect" msgstr "" -#: xcofflink.c:2092 +#: xcofflink.c:2094 #, c-format msgid "%s: XCOFF shared object when not producing XCOFF output" msgstr "" -#: xcofflink.c:2113 +#: xcofflink.c:2115 #, c-format msgid "%s: dynamic object with no .loader section" msgstr "" -#: xcofflink.c:2758 +#: xcofflink.c:2760 #, c-format msgid "%s: no such symbol" msgstr "" -#: xcofflink.c:2891 +#: xcofflink.c:2893 msgid "error: undefined symbol __rtinit" msgstr "" -#: xcofflink.c:3453 +#: xcofflink.c:3455 #, c-format msgid "warning: attempt to export undefined symbol `%s'" msgstr "" -#: xcofflink.c:4447 +#: xcofflink.c:4449 #, c-format msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling" msgstr "" -#: xcofflink.c:5287 xcofflink.c:5756 xcofflink.c:5818 xcofflink.c:6119 +#: xcofflink.c:5289 xcofflink.c:5758 xcofflink.c:5820 xcofflink.c:6124 #, c-format msgid "%s: loader reloc in unrecognized section `%s'" msgstr "" -#: xcofflink.c:5309 xcofflink.c:6130 +#: xcofflink.c:5311 xcofflink.c:6135 #, c-format msgid "%s: `%s' in loader reloc but not loader sym" msgstr "" -#: xcofflink.c:5324 +#: xcofflink.c:5326 #, c-format msgid "%s: loader reloc in read-only section %s" msgstr "" -#: elf32-ia64.c:2222 elf64-ia64.c:2222 +#: elf32-ia64.c:2228 elf64-ia64.c:2228 msgid "@pltoff reloc against local symbol" msgstr "" -#: elf32-ia64.c:3562 elf64-ia64.c:3562 +#: elf32-ia64.c:3568 elf64-ia64.c:3568 #, c-format msgid "%s: short data segment overflowed (0x%lx >= 0x400000)" msgstr "" -#: elf32-ia64.c:3573 elf64-ia64.c:3573 +#: elf32-ia64.c:3579 elf64-ia64.c:3579 #, c-format msgid "%s: __gp does not cover short data segment" msgstr "" -#: elf32-ia64.c:3858 elf64-ia64.c:3858 +#: elf32-ia64.c:3864 elf64-ia64.c:3864 #, c-format msgid "%s: linking non-pic code in a shared library" msgstr "" -#: elf32-ia64.c:3891 elf64-ia64.c:3891 +#: elf32-ia64.c:3897 elf64-ia64.c:3897 #, c-format msgid "%s: @gprel relocation against dynamic symbol %s" msgstr "" -#: elf32-ia64.c:4030 elf64-ia64.c:4030 +#: elf32-ia64.c:4036 elf64-ia64.c:4036 #, c-format msgid "%s: dynamic relocation against speculation fixup" msgstr "" -#: elf32-ia64.c:4038 elf64-ia64.c:4038 +#: elf32-ia64.c:4044 elf64-ia64.c:4044 #, c-format msgid "%s: speculation fixup against undefined weak symbol" msgstr "" -#: elf32-ia64.c:4271 elf64-ia64.c:4271 +#: elf32-ia64.c:4277 elf64-ia64.c:4277 msgid "unsupported reloc" msgstr "" -#: elf32-ia64.c:4551 elf64-ia64.c:4551 +#: elf32-ia64.c:4557 elf64-ia64.c:4557 #, c-format msgid "%s: linking trap-on-NULL-dereference with non-trapping files" msgstr "" -#: elf32-ia64.c:4560 elf64-ia64.c:4560 +#: elf32-ia64.c:4566 elf64-ia64.c:4566 #, c-format msgid "%s: linking big-endian files with little-endian files" msgstr "" -#: elf32-ia64.c:4569 elf64-ia64.c:4569 +#: elf32-ia64.c:4575 elf64-ia64.c:4575 #, c-format msgid "%s: linking 64-bit files with 32-bit files" msgstr "" -#: elf32-ia64.c:4578 elf64-ia64.c:4578 +#: elf32-ia64.c:4584 elf64-ia64.c:4584 #, c-format msgid "%s: linking constant-gp files with non-constant-gp files" msgstr "" -#: elf32-ia64.c:4588 elf64-ia64.c:4588 +#: elf32-ia64.c:4594 elf64-ia64.c:4594 #, c-format msgid "%s: linking auto-pic files with non-auto-pic files" msgstr "" diff --git a/contrib/binutils/bfd/reloc.c b/contrib/binutils/bfd/reloc.c index 59f7819..01ff516 100644 --- a/contrib/binutils/bfd/reloc.c +++ b/contrib/binutils/bfd/reloc.c @@ -3574,7 +3574,7 @@ const char * bfd_get_reloc_code_name (code) bfd_reloc_code_real_type code; { - if (code > BFD_RELOC_UNUSED) + if ((int) code > (int) BFD_RELOC_UNUSED) return 0; return bfd_reloc_code_real_names[(int)code]; } @@ -3702,7 +3702,7 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data, /* 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; + input_section->reloc_done = (unsigned int) true; reloc_count = bfd_canonicalize_reloc (input_bfd, input_section, diff --git a/contrib/binutils/bfd/section.c b/contrib/binutils/bfd/section.c index 51b21c7..b5871e9 100644 --- a/contrib/binutils/bfd/section.c +++ b/contrib/binutils/bfd/section.c @@ -643,7 +643,8 @@ bfd_section_hash_newfunc (entry, table, string) subclass. */ if (entry == NULL) { - entry = bfd_hash_allocate (table, sizeof (struct section_hash_entry)); + entry = (struct bfd_hash_entry *) + bfd_hash_allocate (table, sizeof (struct section_hash_entry)); if (entry == NULL) return entry; } @@ -1186,7 +1187,7 @@ bfd_set_section_contents (abfd, section, location, offset, count) /* Record a copy of the data in memory if desired. */ if (section->contents - && location != section->contents + offset) + && location != (PTR) (section->contents + offset)) memcpy (section->contents + offset, location, (size_t) count); if (BFD_SEND (abfd, _bfd_set_section_contents, diff --git a/contrib/binutils/bfd/srec.c b/contrib/binutils/bfd/srec.c index 129b2ba..6c29fa1 100644 --- a/contrib/binutils/bfd/srec.c +++ b/contrib/binutils/bfd/srec.c @@ -181,7 +181,7 @@ unsigned int Chunk = DEFAULT_CHUNK; /* The type of srec output (free or forced to S3). This variable can be modified by objcopy's --srec-forceS3 parameter. */ -boolean S3Forced = 0; +boolean S3Forced = false; /* When writing an S-record file, the S-records can not be output as they are seen. This structure is used to hold them in memory. */ @@ -1203,7 +1203,7 @@ srec_get_symtab (abfd, alocation) csymbols = (asymbol *) bfd_alloc (abfd, symcount * sizeof (asymbol)); if (csymbols == NULL && symcount != 0) - return false; + return (long) false; abfd->tdata.srec_data->csymbols = csymbols; for (s = abfd->tdata.srec_data->symbols, c = csymbols; diff --git a/contrib/binutils/bfd/stabs.c b/contrib/binutils/bfd/stabs.c index e225d9c..0cb3741 100644 --- a/contrib/binutils/bfd/stabs.c +++ b/contrib/binutils/bfd/stabs.c @@ -331,7 +331,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo) symbol, ignoring nesting, adding up all the characters in the symbol names, not including the file numbers in types (the first number after an open parenthesis). */ - if (type == N_BINCL) + if (type == (int) N_BINCL) { bfd_vma val; int nest; @@ -351,13 +351,13 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo) incl_type = incl_sym[TYPEOFF]; if (incl_type == 0) break; - else if (incl_type == N_EINCL) + else if (incl_type == (int) N_EINCL) { if (nest == 0) break; --nest; } - else if (incl_type == N_BINCL) + else if (incl_type == (int) N_BINCL) ++nest; else if (nest == 0) { @@ -400,7 +400,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo) goto error_return; ne->offset = sym - stabbuf; ne->val = val; - ne->type = N_BINCL; + ne->type = (int) N_BINCL; ne->next = secinfo->excls; secinfo->excls = ne; @@ -422,7 +422,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo) /* We have seen this header file before. Tell the final pass to change the type to N_EXCL. */ - ne->type = N_EXCL; + ne->type = (int) N_EXCL; /* Mark the skipped symbols. */ @@ -435,7 +435,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo) incl_type = incl_sym[TYPEOFF]; - if (incl_type == N_EINCL) + if (incl_type == (int) N_EINCL) { if (nest == 0) { @@ -445,7 +445,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo) } --nest; } - else if (incl_type == N_BINCL) + else if (incl_type == (int) N_BINCL) ++nest; else if (nest == 0) { @@ -597,7 +597,7 @@ _bfd_discard_section_stabs (abfd, stabsec, psecinfo, type = sym[TYPEOFF]; - if (type == N_FUN) + if (type == (int) N_FUN) { int strx = bfd_get_32 (abfd, sym + STRDXOFF); @@ -624,7 +624,7 @@ _bfd_discard_section_stabs (abfd, stabsec, psecinfo, else if (deleting == -1) { /* Outside of a function. Check for deleted variables. */ - if (type == N_STSYM || type == N_LCSYM) + if (type == (int) N_STSYM || type == (int) N_LCSYM) if ((*reloc_symbol_deleted_p) (sym + VALOFF - stabbuf, cookie)) { *pstridx = -1; @@ -674,7 +674,7 @@ _bfd_discard_section_stabs (abfd, stabsec, psecinfo, BFD_ASSERT (offset != 0); } - return (skip > 0); + return (boolean) (skip > 0); error_return: if (stabbuf != NULL) diff --git a/contrib/binutils/bfd/syms.c b/contrib/binutils/bfd/syms.c index 8a8abf4..da71d80 100644 --- a/contrib/binutils/bfd/syms.c +++ b/contrib/binutils/bfd/syms.c @@ -713,7 +713,7 @@ boolean bfd_is_undefined_symclass (symclass) int symclass; { - return symclass == 'U' || symclass == 'w' || symclass == 'v'; + return (boolean) (symclass == 'U' || symclass == 'w' || symclass == 'v'); } /* @@ -1069,7 +1069,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound, saw_fun = 1; for (stab = info->stabs; stab < info->stabs + stabsize; stab += STABSIZE) { - if (stab[TYPEOFF] == N_SO) + if (stab[TYPEOFF] == (bfd_byte) N_SO) { /* N_SO with null name indicates EOF */ if (bfd_get_32 (abfd, stab + STRDXOFF) == 0) @@ -1083,12 +1083,12 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound, /* two N_SO's in a row is a filename and directory. Skip */ if (stab + STABSIZE < info->stabs + stabsize - && *(stab + STABSIZE + TYPEOFF) == N_SO) + && *(stab + STABSIZE + TYPEOFF) == (bfd_byte) N_SO) { stab += STABSIZE; } } - else if (stab[TYPEOFF] == N_FUN) + else if (stab[TYPEOFF] == (bfd_byte) N_FUN) { saw_fun = 1; ++info->indextablesize; @@ -1157,7 +1157,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound, { last_stab = stab; if (stab + STABSIZE >= info->stabs + stabsize - || *(stab + STABSIZE + TYPEOFF) != N_SO) + || *(stab + STABSIZE + TYPEOFF) != (bfd_byte) N_SO) { directory_name = NULL; } diff --git a/contrib/binutils/bfd/targets.c b/contrib/binutils/bfd/targets.c index d41edf6..2d0ec04 100644 --- a/contrib/binutils/bfd/targets.c +++ b/contrib/binutils/bfd/targets.c @@ -521,7 +521,6 @@ extern const bfd_target bfd_elf32_hppa_vec; extern const bfd_target bfd_elf32_i370_vec; extern const bfd_target bfd_elf32_i386_freebsd_vec; extern const bfd_target bfd_elf32_i386_vec; -extern const bfd_target bfd_elf32_i386qnx_vec; extern const bfd_target bfd_elf32_i860_little_vec; extern const bfd_target bfd_elf32_i860_vec; extern const bfd_target bfd_elf32_i960_vec; @@ -785,7 +784,6 @@ static const bfd_target * const _bfd_target_vector[] = { &bfd_elf32_i370_vec, &bfd_elf32_i386_freebsd_vec, &bfd_elf32_i386_vec, - &bfd_elf32_i386qnx_vec, &bfd_elf32_i860_little_vec, &bfd_elf32_i860_vec, &bfd_elf32_i960_vec, @@ -1249,7 +1247,9 @@ bfd_target_list () return NULL; for (target = &bfd_target_vector[0]; *target != NULL; target++) - *(name_ptr++) = (*target)->name; + if (target == &bfd_target_vector[0] + || *target != bfd_target_vector[0]) + *name_ptr++ = (*target)->name; return name_list; } diff --git a/contrib/binutils/bfd/version.h b/contrib/binutils/bfd/version.h index a440678..6dac811 100644 --- a/contrib/binutils/bfd/version.h +++ b/contrib/binutils/bfd/version.h @@ -1 +1 @@ -#define BFD_VERSION_DATE 20021011 +#define BFD_VERSION_DATE 20021127 diff --git a/contrib/binutils/bfd/xcofflink.c b/contrib/binutils/bfd/xcofflink.c index a869d7d..e4e4755 100644 --- a/contrib/binutils/bfd/xcofflink.c +++ b/contrib/binutils/bfd/xcofflink.c @@ -1986,6 +1986,7 @@ xcoff_link_add_symbols (abfd, info) && h->descriptor == NULL) { struct xcoff_link_hash_entry *hds; + struct bfd_link_hash_entry *bh; hds = xcoff_link_hash_lookup (xcoff_hash_table (info), h->root.root.string + 1, @@ -1994,13 +1995,14 @@ xcoff_link_add_symbols (abfd, info) goto error_return; if (hds->root.type == bfd_link_hash_new) { + bh = &hds->root; if (! (_bfd_generic_link_add_one_symbol (info, abfd, hds->root.root.string, (flagword) 0, bfd_und_section_ptr, (bfd_vma) 0, (const char *) NULL, false, - true, - (struct bfd_link_hash_entry **) &hds))) + true, &bh))) goto error_return; + hds = (struct xcoff_link_hash_entry *) bh; } hds->flags |= XCOFF_DESCRIPTOR; BFD_ASSERT ((hds->flags & XCOFF_CALLED) == 0 |