From aae950e69caf1dc3f308b74fe6d066a645a7ed09 Mon Sep 17 00:00:00 2001 From: obrien Date: Fri, 11 Oct 2002 06:01:20 +0000 Subject: Import of Binutils from the FSF 2.13 branch (just pre-.1 release). These bits are taken from the FSF anoncvs repo on 11-Oct-2002 22:39:35 PDT. --- contrib/binutils/binutils/ChangeLog | 559 +++++++- contrib/binutils/binutils/MAINTAINERS | 20 +- contrib/binutils/binutils/Makefile.am | 174 ++- contrib/binutils/binutils/Makefile.in | 205 +-- contrib/binutils/binutils/NEWS | 6 +- contrib/binutils/binutils/addr2line.c | 64 +- contrib/binutils/binutils/ar.c | 130 +- contrib/binutils/binutils/arlex.l | 4 +- contrib/binutils/binutils/arsup.c | 533 +++---- contrib/binutils/binutils/arsup.h | 2 +- contrib/binutils/binutils/binemul.c | 165 +++ contrib/binutils/binutils/binemul.h | 64 + contrib/binutils/binutils/bucomm.c | 12 +- contrib/binutils/binutils/budemang.c | 77 + contrib/binutils/binutils/budemang.h | 25 + contrib/binutils/binutils/coffdump.c | 14 +- contrib/binutils/binutils/coffgrok.c | 13 +- contrib/binutils/binutils/coffgrok.h | 12 +- contrib/binutils/binutils/config.in | 3 + contrib/binutils/binutils/configure | 32 +- contrib/binutils/binutils/configure.in | 30 +- contrib/binutils/binutils/configure.tgt | 26 + contrib/binutils/binutils/debug.c | 26 +- contrib/binutils/binutils/debug.h | 2 +- contrib/binutils/binutils/defparse.c | 133 +- contrib/binutils/binutils/defparse.h | 1 + contrib/binutils/binutils/dlltool.c | 230 +-- contrib/binutils/binutils/dllwrap.c | 322 ++--- contrib/binutils/binutils/doc/Makefile.in | 4 + contrib/binutils/binutils/doc/addr2line.1 | 4 +- contrib/binutils/binutils/doc/ar.1 | 2 +- contrib/binutils/binutils/doc/binutils.texi | 15 +- contrib/binutils/binutils/doc/cxxfilt.man | 4 +- contrib/binutils/binutils/doc/dlltool.1 | 2 +- contrib/binutils/binutils/doc/nm.1 | 12 +- contrib/binutils/binutils/doc/objcopy.1 | 2 +- contrib/binutils/binutils/doc/objdump.1 | 2 +- contrib/binutils/binutils/doc/ranlib.1 | 2 +- contrib/binutils/binutils/doc/readelf.1 | 12 +- contrib/binutils/binutils/doc/size.1 | 2 +- contrib/binutils/binutils/doc/strings.1 | 2 +- contrib/binutils/binutils/doc/strip.1 | 2 +- contrib/binutils/binutils/emul_vanilla.c | 30 + contrib/binutils/binutils/filemode.c | 14 +- contrib/binutils/binutils/ieee.c | 16 +- contrib/binutils/binutils/is-ranlib.c | 2 +- contrib/binutils/binutils/is-strip.c | 2 +- contrib/binutils/binutils/maybe-ranlib.c | 2 +- contrib/binutils/binutils/maybe-strip.c | 2 +- contrib/binutils/binutils/nm.c | 466 +++--- contrib/binutils/binutils/not-ranlib.c | 2 +- contrib/binutils/binutils/not-strip.c | 2 +- contrib/binutils/binutils/objcopy.c | 95 +- contrib/binutils/binutils/objdump.c | 142 +- contrib/binutils/binutils/po/POTFILES.in | 6 + contrib/binutils/binutils/po/binutils.pot | 2070 ++++++++++++++------------- contrib/binutils/binutils/prdbg.c | 4 - contrib/binutils/binutils/rclex.c | 14 +- contrib/binutils/binutils/rcparse.y | 2 +- contrib/binutils/binutils/rdcoff.c | 13 +- contrib/binutils/binutils/rddbg.c | 6 +- contrib/binutils/binutils/readelf.c | 671 ++++++--- contrib/binutils/binutils/rename.c | 6 +- contrib/binutils/binutils/resbin.c | 26 +- contrib/binutils/binutils/resrc.c | 52 +- contrib/binutils/binutils/resres.c | 4 +- contrib/binutils/binutils/size.c | 4 +- contrib/binutils/binutils/srconv.c | 34 +- contrib/binutils/binutils/stabs.c | 59 +- contrib/binutils/binutils/strings.c | 2 +- contrib/binutils/binutils/sysdump.c | 10 +- contrib/binutils/binutils/unwind-ia64.c | 39 +- contrib/binutils/binutils/unwind-ia64.h | 6 +- contrib/binutils/binutils/wrstabs.c | 6 +- 74 files changed, 4075 insertions(+), 2685 deletions(-) create mode 100644 contrib/binutils/binutils/binemul.c create mode 100644 contrib/binutils/binutils/binemul.h create mode 100644 contrib/binutils/binutils/budemang.c create mode 100644 contrib/binutils/binutils/budemang.h create mode 100644 contrib/binutils/binutils/configure.tgt create mode 100644 contrib/binutils/binutils/emul_vanilla.c (limited to 'contrib/binutils/binutils') diff --git a/contrib/binutils/binutils/ChangeLog b/contrib/binutils/binutils/ChangeLog index 91900a4..373b3c9 100644 --- a/contrib/binutils/binutils/ChangeLog +++ b/contrib/binutils/binutils/ChangeLog @@ -1,10 +1,395 @@ +2002-09-23 Daniel Jacobowitz + + Merge from mainline: + 2002-09-11 Nick Clifton + * po/tr.po: Updated Turkish translation. + + 2002-08-14 Luke Dunstan + * rcparse.y (acc_entry): Don't warn about ALT use with + non-VIRTKEY. + + 2002-08-09 Nick Clifton + * po/sv.po: Updated Swedish translation. + + 2002-07-31 Nick Clifton + * addr2line.c (process_file): Rename parameter 'filename' to + 'file_name' in order to avoid shadowing global symbol of the + same name. + (main): Likewise. + +2002-07-30 Daniel Jacobowitz + + Merge from mainline: + 2002-07-30 Jakub Jelinek + * readelf.c (OPTION_DEBUG_DUMP): Define. + (options): Use it. + (usage): Update help. + (parse_args): Handle --debug-dump separately from -w. + * doc/binutils.texi (readelf): Update documentation. + +2002-07-25 Nick Clifton + + * po/es.po: Updated Spanish translation. + * po/fr.po: Updated French translation. + +2002-07-24 Nick Clifton + + * po/es.po: Updated Spanish translation. + +2002-07-23 Daniel Jacobowitz + + * po/binutils.pot: Regenerated. + +2002-07-23 Nick Clifton + + * po/fr.po: Updated French translation. + +2002-07-23 Eric S. Raymond + + * doc/binutils.texi (addr2line ): Correct brackets. + +2002-07-20 Alan Modra + + * budemang.c: Include config.h and string.h/strings.h. + +2002-07-16 Nick Clifton + + * NEWS: Add 'Changes in 2.13'. + +2002-07-10 Jakub Jelinek + + * readelf.c (get_dynamic_type): Handle DT_GNU_PRELINKED, + DT_GNU_CONFLICT* and DT_GNU_LIBLISZ*. + (get_section_type_name): Handle SHT_GNU_LIBLIST. + (process_dynamic_segment): Handle DT_GNU_CONFLICTSZ, + DT_GNU_LIBLISTSZ and DT_GNU_PRELINKED. + (process_gnu_liblist): New. + (process_file): Call it. + +2002-07-03 Alan Modra + + * Makefile.am (check-DEJAGNU): Revert 2002-06-25 change. + * Makefile.in: Regenerate. + +2002-07-02 Alan Modra + + * budemang.c: New file, "demangle" function. + * budemang.h: New file. + * addr2line.c (translate_addresses): Use "demangle". + * nm.c (print_symname): Likewise. + * objdump.c (objdump_print_symname): Likewise. + (dump_symbols): Likewise. Also, don't use bfd_asymbol_name macro + here since that obfuscates. + * rdcoff.c: Don't #include demangle.h. + * Makefile.am (CFILES): Add budemang.c, emul_aix.c, + emul_vanilla.c. Remove emul_$(EMULATION).c. Sort. + (HFILES): Add budemang.h. Sort. + (nm_new_SOURCES, objdump_SOURCES, addr2line_SOURCES): Add budemang.c. + Run "make dep-am". + * Makefile.in: Regenerate. + +2002-07-01 Matt Thomas + + * readelf.c: Include "elf/vax.h". + (guess_is_rela): Move EM_VAX from unknown to RELA case. + (dump_relocations): Handle VAX relocations. + (get_machine_flags): Handle VAX machine flags. + +2002-06-29 Stephane Carrez + + * readelf.c (dump_relocations): Handle 68HC11/68HC12 relocations. + +2002-06-26 Nick Clifton + + * MAINTAINERS: Remove Tom Rix from d10v and pcc maintainerships. + +2002-06-26 Alan Modra + + * nm.c (print_symname): When demangling, strip leading dots from + symbol names to avoid confusing the demangler. + +2002-06-25 H.J. Lu + + * Makefile.am (check-DEJAGNU): Set LC_ALL=C and export it. + * Makefile.in: Regenerated. + +2002-06-21 Igor Schein + + * configure.in: Quote bu_cv_have_fopen64. + * configure: Regenerate. + +2002-06-21 Mitsru Chinen + + * configure.in: Check for strcoll. + * configure: Regenerate. + * config.in: Regenerate. + * nm.c (main): Set locale for LC_COLLATE category. + (non_numeric_forward): Use strcoll if available. + +2002-06-20 Dave Brolley + + * MAINTAINERS: Add self as fr30 and frv maintainer. + +2002-06-18 H.J. Lu (hjl@gnu.org) + + * nm.c: Include "elf/common.h". + (extended_symbol_info): Add elfinfo, a pointer to + elf_symbol_type. + (SYM_SIZE): Use elfinfo if it is not NULL. + (get_symbol_type): New function. + (display_archive): Set print_width for each archive member. + (display_file): Likewise. + (display_rel_file): Don't set print_width here. + (print_object_filename_sysv): Handle print_width. + (print_archive_member_sysv): Likewise. + (print_symbols): Pass (bfd_vma) 0 to print_symbol. + (print_symbol): Set the elfinfo field in extended_symbol_info + for ELF. + (print_object_filename_sysv): Fix the output format. + (print_symbol_info_sysv): Print type and section for ELF. + +2002-06-18 Elias Athanasopoulos + + * nm.c (print_size_symbols): Remove assignment, which makes + the symbol's size equal to its value when --size-sort is + used. + +2002-06-18 Dave Brolley + + From Catherine Moore: + * readelf.c (elf/frv.h): #include it. + (guess_is_rela): Support EM_CYGNUS_FRV. + (dump_relocations): Ditto. + (get_machine_name): Ditto. + * Makefile.am (readelf.o): add dependency on $(INCDIR)/elf/frv.h. + +2002-06-18 Jakub Jelinek + + * readelf.c (get_file_header): Only read the first section header if + e_shoff is non-zero. + +2002-06-15 H.J. Lu (hjl@gnu.org) + + * nm.c (print_size): New variable. Initialize to 0. + (long_options): Add 'S'/"print-size". + (main): Handle 'S'. + (print_symbol_info_bsd): Print size only if print_size is not + 0. + + * doc/binutils.texi: Document -S/--print-size. + +2002-6-13 Elias Athanasopoulos + + * nm.c (struct extended_symbol_info): New strcuture: Add the size + of the symbols to the information provided by the symbol_info + structure. + (print_symbols): Pass the symbol size to print_symbol. + (print_size_symbols): Pass the symbol size to print_symbol. + (print_symbol): Extra argument: The size of the symbol. Store + this in the extended_symbol_info structure. + (print_symbol_info): Change type of info parameter to + extended_symbol_info. Display the size, if known. + (print_symbol_info_posix): Likewise. + (print_symbol_info_sysv): Likewise. + +2002-06-08 Alan Modra + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + * doc/Makefile.in: Regnerate. + + * bucomm.c: Replace CONST with const. + * nm.c: Likewise. + * objdump.c: Likewise. + +2002-06-07 H.J. Lu + + * readelf.c (DW_CFA_GNU_args_size): Don't define. + (DW_CFA_GNU_negative_offset_extended): Likewise. + (DW_CFA_GNU_window_save): Likewise. + (display_debug_frames): Handle DW_CFA_offset_extended_sf, + DW_CFA_def_cfa_sf and DW_CFA_def_cfa_offset_sf. + +2002-06-07 Elias Athanasopoulos + + * nm.c: When computing size of symbols for an ELF target use the + internal size field. + +2002-06-06 John David Anglin + + * testsuite/binutils-all/objcopy.exp: clear xfail for + "hppa*64*-*-hpux*". + * testsuite/binutils-all/hppa/objdump.exp: Return if + "*64*-*-*". + +2002-06-05 Alan Modra + + * objcopy.c (copy_section): Don't copy SEC_GROUP sections. + +2002-06-03 Elias Athanasopoulos + + * objdump.c: Fix formatting. + +2002-05-29 Ben Elliston + + * MAINTAINERS: Add self as M68k maintainer. + +2002-05-28 Kuang Hwa Lin + + * readelf.c: Modified/Added DLX elf support. + +2002-05-27 Nick Clifton + + * arsup.c: Fix formatting. + * debug.c (debug_record_label): Add missing colon to error + message. + * ieee.c (parse_ieee_ty): Fix spelling typo. + * readelf.c (process_program_headers): Remove English assumption + about making a plural word. + (process_section_headers): Likewise. + (process_relocs): Allow quotes to be translated. + (process_unwind): Likewise, + (process_mips_specific): Improve error message. + (get_note_type): Fix spelling typo. + + * configure.in (ALL_LINGUAS): Add sv + * po/sv.po: New file. + +2002-05-27 Alan Modra + + * unwind-ia64.c (unw_print_brmask): Don't use sprintf. + (unw_print_grmask): Likewise. + (unw_print_frmask): Likewise. + +2002-05-26 Kazu Hirata + + * arsup.c: Remove ARGSUSED. + * debug.c: Likewise. + * ieee.c: Likewise. + * nlmconv.c: Likewise. + * prdbg.c: Likewise. + * stabs.c: Likewise. + * wrstabs.c: Likewise. + +2002-05-25 Alan Modra + + * arlex.l: Use #include "" instead of <> for local header files. + * coffdump.c: Likewise. + * coffgrok.c: Likewise. + * nlmconv.c: Likewise. + * nlmheader.y: Likewise. + * srconv.c: Likewise. + * strings.c: Likewise. + * sysdump.c: Likewise. + * unwind-ia64.h: Likewise. + * windres.h: Likewise. + * winduni.h: Likewise. + +2002-05-24 Tom Rix + + * MAINTAINERS: Add self as the d10v maintainer. + +2002-05-24 TAMURA Kent + + * configure.in: Builds dlltool for i386-netbsdpe. + * configure: Regenerate. + +2002-05-23 Kazu Hirata + + * size.c: Fix formatting. + * srconv.c: Likewise. + * stabs.c: Likewise. + * sysdump.c: Likewise. + * unwind-ia64.c: Likewise. + * wrstabs.c: Likewise. + +2002-05-23 Jakub Jelinek + + * readelf.c (get_segment_type): Add PT_TLS. + (get_elf_section_flags): Add SHF_TLS. + (get_dynamic_flags): Optimize. Add DF_STATIC_TLS. + (process_dynamic_segment): Use puts instead of printf. + (get_symbol_type): Support STT_TLS. + * objdump.c (dump_section_header): Remove SEC_CONSTRUCTOR_TEXT, + SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS. + Add SEC_THREAD_LOCAL. + +2002-05-23 Kazu Hirata + + * rdcoff.c: Fix formatting. + * rddbg.c: Likewise. + * readelf.c: Likewise. + * rename.c: Likewise. + * resbin.c: Likewise. + * resrc.c: Likewise. + * resres.c: Likewise. + +2002-05-21 Kazu Hirata + + * filemode.c: Fix formatting. + * ieee.c: Likewise. + * is-ranlib.c: Likewise. + * is-strip.c: Likewise. + * maybe-ranlib.c: Likewise. + * maybe-strip.c: Likewise. + * nlmconv.c: Likewise. + * nm.c: Likewise. + * not-ranlib.c: Likewise. + * not-strip.c: Likewise. + * objcopy.c: Likewise. + * objdump.c: Likewise. + +2002-05-21 Thiemo Seufer + + * objdump.c (dump_headers): Fix output formatting for ELF32 + architectures in a BFD64 enabled toolchain. + +2002-05-20 Kazu Hirata + + * debug.c: Fix formatting. + * debug.h: Likewise. + * dlltool.c: Likewise. + * dllwrap.c: Likewise. + * emul_aix.c: Likewise. + * emul_vanilla.c: Likewise. + +2002-05-19 Kazu Hirata + + * addr2line.c: Fix formatting. + * ar.c: Likewise. + * arsup.c: Likewise. + * arsup.h: Likewise. + * binemul.c: Likewise. + * binemul.h: Likewise. + * bucomm.c: Likewise. + * coffdump.c: Likewise. + * coffgrok.c: Likewise. + * coffgrok.h: Likewise. + +2002-05-16 Marek Michalkiewicz + + * MAINTAINERS: Add myself as the second AVR port maintainer. + +2002-05-16 Stephane Carrez + + * MAINTAINERS: Update my email address. + +2002-05-09 Nick Clifton + + * MAINTAINERS: Add Jason Thorpe as VAX maintainer. + 2002-05-09 Alan Modra * configure.in: Replace `*pe' with `pe' throughout. * configure: Regenerate. - Merge from mainline - 2002-05-06 Alan Modra +2002-05-07 Federico G. Schwindt + + * Makefile.am: Honour DESTDIR. + * Makefile.in: Regenerate. + +2002-05-06 Alan Modra + * dlltool.c (process_def_file): Add missing prototype. (new_directive, assemble_file, main): Likewise. (process_def_file, new_directive): Make static. @@ -17,31 +402,59 @@ (strhash): Likewise. * windres.c (define_resource): Use one memset to clear all of struct res_resource. + * rcparse.y: Remove newcmd rule. Move rcparse_discard_strings call to rules that need no lookahead. Check for no lookahead. - 2002-05-06 Borut Razem +2002-05-06 Borut Razem + * rclex.l (get_string): Correct "strings" list handling. * resrc.c (read_rc_file): Discard strings. - 2002-05-04 Bob Byrnes +2002-05-04 Alan Modra + + * ar.c (replace_members): Remove unused var. Formatting fix. + * binemul.c (ar_emul_default_parse_arg): Add ATTRIBUTE_UNUSED. + + * MAINTAINERS: Sort port maintainers by CPU. + +2002-05-04 Bob Byrnes + * size.c (display_archive): Add last_arfile and code to close archives. - 2002-05-01 Alan Modra +2002-05-01 Alan Modra + * nm.c (print_symbol): Check returned filename from bfd_find_nearest_line is non-NULL. - 2002-04-17 Thiemo Seufer +2002-04-25 Elena Zannoni + + * readelf.c (get_AT_name): Handle DW_AT_GNU_vector. + +2002-04-24 Christian Groessler + + * MAINTAINERS: Changed my email address. + +2002-04-17 Thiemo Seufer + * arparse.y: Fix syntax warning. - 2002-04-16 Nick Clifton +2002-04-16 Nick Clifton + + * readelf.c (fetch_location_list): Remove unused function. + + * readelf.c (process_corefile_note_segment): Catch corrupt notes + and display a warning message, then exit the loop. + * rcparse.y: Set MEMFLAG_DISCARDABLE by default. - 2002-04-15 Nick Clifton +2002-04-15 Nick Clifton + * resrc.c (write_rc_dialog): If charset is non-default value display all of the DIALOGEX parameters. - 2002-04-15 Eric Kohl +2002-04-15 Eric Kohl + * rcparse.y: Allow two to five parameter in FONT statement of DIALOGEX resources. * resbin.c (bin_to_res_dialog): Fixed read/write code for dialogex @@ -50,49 +463,62 @@ * windres.h: Added misssing charset variable to dialog_ex structure. - 2002-04-10 Nick Clifton +2002-04-10 Nick Clifton + * rcparse.y: Set MEMFLAG_PURE by default. - 2002-04-09 Bernd Herd +2002-04-09 Bernd Herd + * rcparse.y: CLASS definitions in DIALOG resources are quoted. Fix typo in BEDIT warning. Don't add default dialog style when explicit style specified. Add WS_CAPTION dialog style if CAPTION is specified. + * rclex.l (handle_quotes): "\xhex" encoding in strings corrected. (handle_quotes) "\a" escape (used for right justified key definitions in menus) is encodes as binary 8. + * resrc.c (write_rc_dialog): Print style even if it is 0. (write_rc_directory): Fix overlooked sublang shift bug. (bin_to_res_dialog): Don't print empty dialog caption. + * resbin.c (bin_to_res_dialog): Use signature to identify DIALOGEX. + * windres.c (main): Set default LANGUAGE to english/us. - 2002-04-09 Gunnar Degnbol +2002-04-09 Gunnar Degnbol + * resrc.c: print CLASS names in quotes -2002-04-27 Alan Modra +2002-04-09 J"orn Rennecke - Merge from mainline - 2002-04-25 Elena Zannoni - * readelf.c (get_AT_name): Handle DW_AT_GNU_vector. + * MAINTAINERS: Update my email address. - 2002-04-16 Nick Clifton - * readelf.c (fetch_location_list): Remove unused function. - * readelf.c (process_corefile_note_segment): Catch corrupt notes - and display a warning message, then exit the loop. +2002-04-04 Alan Modra - 2002-04-24 Christian Groessler - * MAINTAINERS: Changed my email address. + * dep-in.sed: Cope with absolute paths. + * Makefile.am (dep.sed): Subst TOPDIR. + Run "make dep-am". + * Makefile.in: Regenerate. - 2002-04-09 J"orn Rennecke - * MAINTAINERS: Update my email address. +2002-03-27 Peter Targett - 2002-03-27 Peter Targett * MAINTAINERS: Update my email address. - 2002-03-20 Daniel Berlin +2002-03-21 Alan Modra + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + * doc/Makefile.in: Regenerate. + * po/POTFILES.in: Regenerate. + * aclocal.m4: Regenerate. + * config.in: Regenerate. + * configure: Regenerate. + +2002-03-20 Daniel Berlin + * readelf.c: Add support for displaying dwarf2 location lists. (do_debug_loc, debug_loc_section, debug_loc_size): New. (parse_args): Use 'O' as shorthand for displaying location list @@ -108,35 +534,29 @@ (read_and_display_attr_value): Note location lists, but don't display them inline. - 2002-03-01 Dmitry Timoshkov - * dlltool.c (gen_exp_file): Take into account --kill-at (-k) while - generating .exp file. - - 2002-02-21 Nick Clifton - * readelf.c (dump_relocations): Fix typo. - - 2002-02-18 Timothy Daly - * readelf.c (dump_relocations): Display 2nd and 3rd reloc - types for 64-bit MIPS. Narrow some fields for 80-char - output. - (dump_relocations): Change spelling from 'unrecognised' - to 'unrecognized'. - (decode_ARM_machine_flags): Likewise. - (parse_args): Likewise. - (read_and_display_attr_value): Likewise. - (display_debug_section): Likewise. +2002-03-18 Tom Rix + + * Makefile.am: Add binutils emulation support. + * configure.in: Same. + * configure.tgt: New file. Same. + * ar.c (main): Use ar_emul_parse_arg. + (usage): Use ar_emul_usage. + (replace_members): Use ar_emul_replace, ar_emul_append. + * binemul.c: New file. Define the binutils emulation + layer. Define default methods. + * binemul.h: New file. Binutils emulation layer header file. + * emul_aix.c: New file. AIX binutils emulation. + * emul_vanilla.c: New file. Default binutils emulation. + * Makefile.in: Regenerate. + * configure: Same. -2002-04-04 Alan Modra +2002-03-18 Nick Clifton - * dep-in.sed: Cope with absolute paths. - * Makefile.am (dep.sed): Subst TOPDIR. - Run "make dep-am". - * Makefile.in: Regenerate. + * po/fr.po: Updated version. -2002-03-28 Alan Modra +2002-03-13 Nick Clifton - * aclocal.m4: Regenerate. - * configure: Regenerate. + * po/fr.po: Updated version. 2002-03-07 Daniel Jacobowitz @@ -147,9 +567,30 @@ * doc/binutils.texi (Target Selection): Fix LD crossreferences. (Architecture Selection): Likewise. -2002-03-07 Daniel Jacobowitz +2002-03-01 Dmitry Timoshkov + + * dlltool.c (gen_exp_file): Take into account --kill-at (-k) while + generating .exp file. + +2002-02-21 Nick Clifton + + * readelf.c (dump_relocations): Fix typo. - * NEWS: Mark version 2.12. +2002-02-20 Nick Clifton + + * NEWS: Mark 2.12 branch. + +2002-02-18 Timothy Daly + + * readelf.c (dump_relocations): Display 2nd and 3rd reloc + types for 64-bit MIPS. Narrow some fields for 80-char + output. + (dump_relocations): Change spelling from 'unrecognised' + to 'unrecognized'. + (decode_ARM_machine_flags): Likewise. + (parse_args): Likewise. + (read_and_display_attr_value): Likewise. + (display_debug_section): Likewise. 2002-02-15 Hans-Peter Nilsson @@ -174,14 +615,20 @@ 2002-02-11 Alan Modra - * objcopy.c (MKDIR): Define. - (copy_archive): Make name_list.name const. Use MKDIR. - Handle duplicate files in archives by making more temp dirs. + * configure: Regenerate. + * objcopy.c: Update copyright date. + * doc/Makefile.in: Regenerate. 2002-02-10 Daniel Jacobowitz * nlmconv.c: Back out localtime PARAMS change. +2002-02-11 Alan Modra + + * objcopy.c (MKDIR): Define. + (copy_archive): Make name_list.name const. Use MKDIR. + Handle duplicate files in archives by making more temp dirs. + 2002-02-10 Daniel Jacobowitz * coffdump.c: Include "getopt.h" after "bucomm.h" diff --git a/contrib/binutils/binutils/MAINTAINERS b/contrib/binutils/binutils/MAINTAINERS index 24d015b..4ca6ae8 100644 --- a/contrib/binutils/binutils/MAINTAINERS +++ b/contrib/binutils/binutils/MAINTAINERS @@ -54,31 +54,35 @@ responsibility among the other maintainers. ARM Nick Clifton ARM Richard Earnshaw AVR Denis Chertykov + AVR Marek Michalkiewicz CRIS Hans-Peter Nilsson DWARF2 Jason Merrill + FR30 Dave Brolley + FRV Dave Brolley HPPA elf32 Alan Modra IA64 Jim Wilson - x86_64 Jan Hubicka - x86_64 Andreas Jaeger i860 Jason Eckhardt ix86 Alan Modra ix86 COFF,PE DJ Delorie ix86 H.J.Lu ix86 INTEL MODE Diego Novillo - M68HC11 M68HC12 Stephane Carrez - MN10300 Eric Christopher - MN10300 Alexandre Oliva - MIPS Eric Christopher + M68HC11 M68HC12 Stephane Carrez + M68k Ben Elliston M88k Ben Elliston + MIPS Eric Christopher MMIX Hans-Peter Nilsson + MN10300 Eric Christopher + MN10300 Alexandre Oliva PPC Geoff Keating - PPC XCOFF Tom Rix s390, s390x Martin Schwidefsky - SH Jörn Rennecke + SH Jörn Rennecke SH Hans-Peter Nilsson SH Alexandre Oliva SPARC Jakub Jelinek TIC54X Timothy Wall + VAX Jason R Thorpe + x86_64 Jan Hubicka + x86_64 Andreas Jaeger z8k Christian Groessler diff --git a/contrib/binutils/binutils/Makefile.am b/contrib/binutils/binutils/Makefile.am index ec339b6..1fd97ab 100644 --- a/contrib/binutils/binutils/Makefile.am +++ b/contrib/binutils/binutils/Makefile.am @@ -62,7 +62,7 @@ noinst_PROGRAMS = $(NM_PROG) $(STRIP_PROG) $(DEMANGLER_PROG) EXTRA_PROGRAMS = $(NLMCONV_PROG) srconv sysdump coffdump $(DLLTOOL_PROG) $(WINDRES_PROG) $(DLLWRAP_PROG) -# Stuff that goes in tooldir/ if appropriate +# Stuff that goes in tooldir/ if appropriate. TOOL_PROGS = nm-new strip-new ar ranlib dlltool BASEDIR = $(srcdir)/.. @@ -71,20 +71,31 @@ INCDIR = $(BASEDIR)/include MKDEP = gcc -MM -INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) @HDEFINES@ -I$(srcdir)/../intl -I../intl -DLOCALEDIR="\"$(prefix)/share/locale\"" +INCLUDES = -D_GNU_SOURCE \ + -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \ + @HDEFINES@ \ + -I$(srcdir)/../intl -I../intl \ + -DLOCALEDIR="\"$(prefix)/share/locale\"" \ + -Dbin_dummy_emulation=$(EMULATION_VECTOR) -HFILES = arsup.h bucomm.h budbg.h coffgrok.h debug.h nlmconv.h dlltool.h \ +HFILES = \ + arsup.h binemul.h bucomm.h budbg.h budemang.h \ + coffgrok.h debug.h dlltool.h nlmconv.h \ windres.h winduni.h GENERATED_HFILES = arparse.h sysroff.h sysinfo.h defparse.h rcparse.h -CFILES = addr2line.c ar.c arsup.c bucomm.c coffdump.c coffgrok.c debug.c \ - dlltool.c filemode.c ieee.c is-ranlib.c is-strip.c maybe-ranlib.c \ - maybe-strip.c nlmconv.c nm.c not-ranlib.c not-strip.c \ - objcopy.c objdump.c prdbg.c rdcoff.c rddbg.c size.c srconv.c \ - stabs.c strings.c sysdump.c version.c wrstabs.c \ - windres.c resrc.c rescoff.c resbin.c winduni.c readelf.c \ - resres.c dllwrap.c rename.c +CFILES = \ + addr2line.c ar.c arsup.c binemul.c bucomm.c budemang.c \ + coffdump.c coffgrok.c debug.c dlltool.c dllwrap.c \ + emul_aix.c emul_vanilla.c filemode.c \ + ieee.c is-ranlib.c is-strip.c maybe-ranlib.c maybe-strip.c \ + nlmconv.c nm.c not-ranlib.c not-strip.c \ + objcopy.c objdump.c prdbg.c \ + rdcoff.c rddbg.c readelf.c rename.c \ + resbin.c rescoff.c resrc.c resres.c \ + size.c srconv.c stabs.c strings.c sysdump.c version.c \ + windres.c winduni.c wrstabs.c GENERATED_CFILES = \ underscore.c arparse.c arlex.c sysroff.c sysinfo.c syslex.c \ @@ -161,9 +172,9 @@ readelf_LDADD = $(INTLLIBS) $(LIBIBERTY) strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) -nm_new_SOURCES = nm.c $(BULIBS) +nm_new_SOURCES = nm.c budemang.c $(BULIBS) -objdump_SOURCES = objdump.c prdbg.c $(DEBUG_SRCS) $(BULIBS) +objdump_SOURCES = objdump.c budemang.c prdbg.c $(DEBUG_SRCS) $(BULIBS) objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS) objdump.o:objdump.c @@ -183,13 +194,15 @@ cplus-dem.o: $(BASEDIR)/libiberty/cplus-dem.c $(INCDIR)/getopt.h Makefile cxxfilt_SOURCES = cxxfilt_LDADD = cplus-dem.o underscore.o $(LIBIBERTY) $(INTLLIBS) -ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c $(BULIBS) +ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \ + emul_$(EMULATION).c $(BULIBS) ar_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS) -ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c $(BULIBS) +ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c \ + binemul.c emul_$(EMULATION).c $(BULIBS) ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS) -addr2line_SOURCES = addr2line.c $(BULIBS) +addr2line_SOURCES = addr2line.c budemang.c $(BULIBS) # The following is commented out for the conversion to automake. # This rule creates a single binary that switches between ar and ranlib @@ -341,18 +354,18 @@ install-exec-local: install-binPROGRAMS $(bin_PROGRAMS) $(noinst_PROGRAMS) @list='$(noinst_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ - $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done - $(mkinstalldirs) $(tooldir)/bin + $(mkinstalldirs) $(DESTDIR)$(tooldir)/bin for i in $(TOOL_PROGS); do \ if [ -f $$i$(EXEEXT) ]; then \ j=`echo $$i | sed -e 's/-new//'`; \ k=`echo $$j | sed '$(transform)'`; \ - if [ "$(bindir)/$$k$(EXEEXT)" != "$(tooldir)/bin/$$j$(EXEEXT)" ]; then \ - rm -f $(tooldir)/bin/$$j$(EXEEXT); \ - ln $(bindir)/$$k$(EXEEXT) $(tooldir)/bin/$$j$(EXEEXT) >/dev/null 2>/dev/null \ - || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$i$(EXEEXT) $(tooldir)/bin/$$j$(EXEEXT); \ + if [ "$(DESTDIR)$(bindir)/$$k$(EXEEXT)" != "$(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT)" ]; then \ + rm -f $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT); \ + ln $(DESTDIR)$(bindir)/$$k$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT) >/dev/null 2>/dev/null \ + || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$i$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT); \ fi; \ else true; \ fi; \ @@ -365,18 +378,25 @@ install-exec-local: install-binPROGRAMS $(bin_PROGRAMS) $(noinst_PROGRAMS) addr2line.o: addr2line.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/getopt.h $(INCDIR)/libiberty.h \ $(INCDIR)/demangle.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h + $(INCDIR)/fopen-same.h budemang.h ar.o: ar.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ $(INCDIR)/libiberty.h $(INCDIR)/progress.h bucomm.h \ config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ - $(INCDIR)/aout/ar.h $(BFDDIR)/libbfd.h arsup.h $(INCDIR)/filenames.h + $(INCDIR)/aout/ar.h $(BFDDIR)/libbfd.h arsup.h $(INCDIR)/filenames.h \ + binemul.h arsup.o: arsup.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h arsup.h $(INCDIR)/libiberty.h bucomm.h \ config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ $(INCDIR)/filenames.h +binemul.o: binemul.c binemul.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h bucomm.o: bucomm.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \ $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/filenames.h +budemang.o: budemang.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h $(INCDIR)/libiberty.h $(INCDIR)/demangle.h \ + budemang.h coffdump.o: coffdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/libiberty.h coffgrok.h \ bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h @@ -391,6 +411,16 @@ dlltool.o: dlltool.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \ $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/demangle.h \ $(INCDIR)/dyn-string.h dlltool.h $(INCDIR)/safe-ctype.h +dllwrap.o: dllwrap.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \ + $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/dyn-string.h +emul_aix.o: emul_aix.c binemul.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \ + $(INCDIR)/coff/xcoff.h $(BFDDIR)/libcoff.h $(BFDDIR)/libxcoff.h +emul_vanilla.o: emul_vanilla.c binemul.h ../bfd/bfd.h \ + $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h config.h \ + $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h filemode.o: filemode.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h @@ -409,8 +439,10 @@ nlmconv.o: nlmconv.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/nlm/external.h nlmconv.h nm.o: nm.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ $(INCDIR)/progress.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def \ - $(INCDIR)/aout/ranlib.h $(INCDIR)/demangle.h $(INCDIR)/libiberty.h + $(INCDIR)/fopen-same.h budemang.h $(INCDIR)/aout/stab_gnu.h \ + $(INCDIR)/aout/stab.def $(INCDIR)/aout/ranlib.h $(INCDIR)/demangle.h \ + $(INCDIR)/libiberty.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h not-ranlib.o: not-ranlib.c not-strip.o: not-strip.c objcopy.o: objcopy.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ @@ -419,9 +451,9 @@ objcopy.o: objcopy.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ budbg.h $(INCDIR)/filenames.h objdump.o: objdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/progress.h bucomm.h config.h \ - $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/safe-ctype.h \ - $(INCDIR)/dis-asm.h $(INCDIR)/libiberty.h $(INCDIR)/demangle.h \ - debug.h budbg.h $(INCDIR)/aout/aout64.h + $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h budemang.h \ + $(INCDIR)/safe-ctype.h $(INCDIR)/dis-asm.h $(INCDIR)/libiberty.h \ + $(INCDIR)/demangle.h debug.h budbg.h $(INCDIR)/aout/aout64.h prdbg.o: prdbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \ @@ -429,12 +461,48 @@ prdbg.o: prdbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ rdcoff.o: rdcoff.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h bucomm.h \ config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ - $(INCDIR)/libiberty.h $(INCDIR)/demangle.h debug.h \ - budbg.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h + $(INCDIR)/libiberty.h debug.h budbg.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h rddbg.o: rddbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \ budbg.h +readelf.o: readelf.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/dwarf2.h $(INCDIR)/elf/alpha.h \ + $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h \ + $(INCDIR)/elf/avr.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/d10v.h \ + $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h $(INCDIR)/elf/fr30.h \ + $(INCDIR)/elf/frv.h $(INCDIR)/elf/h8.h $(INCDIR)/elf/hppa.h \ + $(INCDIR)/elf/i386.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/i960.h \ + $(INCDIR)/elf/ia64.h $(INCDIR)/elf/m32r.h $(INCDIR)/elf/m68k.h \ + $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mips.h \ + $(INCDIR)/elf/mmix.h $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h \ + $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h \ + $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/sparc.h \ + $(INCDIR)/elf/v850.h $(INCDIR)/elf/vax.h $(INCDIR)/elf/x86-64.h \ + $(INCDIR)/elf/xstormy16.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h unwind-ia64.h +rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h +resbin.o: resbin.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ + winduni.h +rescoff.o: rescoff.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ + winduni.h $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h +resrc.o: resrc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ + windres.h winduni.h +resres.o: resres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ + winduni.h size.o: size.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ $(INCDIR)/libiberty.h @@ -459,57 +527,19 @@ sysdump.o: sysdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ version.o: version.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h -wrstabs.o: wrstabs.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ - debug.h budbg.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \ - $(INCDIR)/aout/stab.def windres.o: windres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/getopt.h bucomm.h config.h \ $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \ $(INCDIR)/safe-ctype.h $(INCDIR)/obstack.h windres.h \ winduni.h -resrc.o: resrc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ - windres.h winduni.h -rescoff.o: rescoff.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ - winduni.h $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h \ - $(INCDIR)/bfdlink.h -resbin.o: resbin.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ - winduni.h winduni.o: winduni.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h winduni.h $(INCDIR)/safe-ctype.h -readelf.o: readelf.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/dwarf2.h $(INCDIR)/elf/alpha.h \ - $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h \ - $(INCDIR)/elf/avr.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/d10v.h \ - $(INCDIR)/elf/d30v.h $(INCDIR)/elf/fr30.h $(INCDIR)/elf/h8.h \ - $(INCDIR)/elf/hppa.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/i860.h \ - $(INCDIR)/elf/i960.h $(INCDIR)/elf/ia64.h $(INCDIR)/elf/m32r.h \ - $(INCDIR)/elf/m68k.h $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mips.h \ - $(INCDIR)/elf/mmix.h $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h \ - $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h \ - $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/sparc.h \ - $(INCDIR)/elf/v850.h $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h \ - bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ - unwind-ia64.h -resres.o: resres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ - winduni.h -dllwrap.o: dllwrap.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \ - $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/dyn-string.h -rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ +wrstabs.o: wrstabs.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h + $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ + debug.h budbg.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \ + $(INCDIR)/aout/stab.def underscore.o: underscore.c arparse.o: arparse.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ diff --git a/contrib/binutils/binutils/Makefile.in b/contrib/binutils/binutils/Makefile.in index a3501cc..9208082 100644 --- a/contrib/binutils/binutils/Makefile.in +++ b/contrib/binutils/binutils/Makefile.in @@ -80,6 +80,8 @@ DATADIRNAME = @DATADIRNAME@ DEMANGLER_NAME = @DEMANGLER_NAME@ DLLTOOL = @DLLTOOL@ DLLTOOL_DEFS = @DLLTOOL_DEFS@ +EMULATION = @EMULATION@ +EMULATION_VECTOR = @EMULATION_VECTOR@ EXEEXT = @EXEEXT@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ @@ -111,6 +113,8 @@ UNDERSCORE = @UNDERSCORE@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +bfdincludedir = @bfdincludedir@ +bfdlibdir = @bfdlibdir@ l = @l@ INTLLIBS = @INTLLIBS@ @@ -169,7 +173,7 @@ noinst_PROGRAMS = $(NM_PROG) $(STRIP_PROG) $(DEMANGLER_PROG) EXTRA_PROGRAMS = $(NLMCONV_PROG) srconv sysdump coffdump $(DLLTOOL_PROG) $(WINDRES_PROG) $(DLLWRAP_PROG) -# Stuff that goes in tooldir/ if appropriate +# Stuff that goes in tooldir/ if appropriate. TOOL_PROGS = nm-new strip-new ar ranlib dlltool BASEDIR = $(srcdir)/.. @@ -178,21 +182,33 @@ INCDIR = $(BASEDIR)/include MKDEP = gcc -MM -INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) @HDEFINES@ -I$(srcdir)/../intl -I../intl -DLOCALEDIR="\"$(prefix)/share/locale\"" +INCLUDES = -D_GNU_SOURCE \ + -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \ + @HDEFINES@ \ + -I$(srcdir)/../intl -I../intl \ + -DLOCALEDIR="\"$(prefix)/share/locale\"" \ + -Dbin_dummy_emulation=$(EMULATION_VECTOR) -HFILES = arsup.h bucomm.h budbg.h coffgrok.h debug.h nlmconv.h dlltool.h \ + +HFILES = \ + arsup.h binemul.h bucomm.h budbg.h budemang.h \ + coffgrok.h debug.h dlltool.h nlmconv.h \ windres.h winduni.h GENERATED_HFILES = arparse.h sysroff.h sysinfo.h defparse.h rcparse.h -CFILES = addr2line.c ar.c arsup.c bucomm.c coffdump.c coffgrok.c debug.c \ - dlltool.c filemode.c ieee.c is-ranlib.c is-strip.c maybe-ranlib.c \ - maybe-strip.c nlmconv.c nm.c not-ranlib.c not-strip.c \ - objcopy.c objdump.c prdbg.c rdcoff.c rddbg.c size.c srconv.c \ - stabs.c strings.c sysdump.c version.c wrstabs.c \ - windres.c resrc.c rescoff.c resbin.c winduni.c readelf.c \ - resres.c dllwrap.c rename.c +CFILES = \ + addr2line.c ar.c arsup.c binemul.c bucomm.c budemang.c \ + coffdump.c coffgrok.c debug.c dlltool.c dllwrap.c \ + emul_aix.c emul_vanilla.c filemode.c \ + ieee.c is-ranlib.c is-strip.c maybe-ranlib.c maybe-strip.c \ + nlmconv.c nm.c not-ranlib.c not-strip.c \ + objcopy.c objdump.c prdbg.c \ + rdcoff.c rddbg.c readelf.c rename.c \ + resbin.c rescoff.c resrc.c resres.c \ + size.c srconv.c stabs.c strings.c sysdump.c version.c \ + windres.c winduni.c wrstabs.c GENERATED_CFILES = \ @@ -252,21 +268,25 @@ readelf_LDADD = $(INTLLIBS) $(LIBIBERTY) strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) -nm_new_SOURCES = nm.c $(BULIBS) +nm_new_SOURCES = nm.c budemang.c $(BULIBS) -objdump_SOURCES = objdump.c prdbg.c $(DEBUG_SRCS) $(BULIBS) +objdump_SOURCES = objdump.c budemang.c prdbg.c $(DEBUG_SRCS) $(BULIBS) objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS) cxxfilt_SOURCES = cxxfilt_LDADD = cplus-dem.o underscore.o $(LIBIBERTY) $(INTLLIBS) -ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c $(BULIBS) +ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \ + emul_$(EMULATION).c $(BULIBS) + ar_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS) -ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c $(BULIBS) +ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c \ + binemul.c emul_$(EMULATION).c $(BULIBS) + ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS) -addr2line_SOURCES = addr2line.c $(BULIBS) +addr2line_SOURCES = addr2line.c budemang.c $(BULIBS) srconv_SOURCES = srconv.c coffgrok.c $(BULIBS) @@ -353,15 +373,16 @@ filemode.$(OBJEXT) size_LDADD = $(LDADD) size_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a size_LDFLAGS = -objdump_OBJECTS = objdump.$(OBJEXT) prdbg.$(OBJEXT) rddbg.$(OBJEXT) \ -debug.$(OBJEXT) stabs.$(OBJEXT) ieee.$(OBJEXT) rdcoff.$(OBJEXT) \ -bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT) +objdump_OBJECTS = objdump.$(OBJEXT) budemang.$(OBJEXT) prdbg.$(OBJEXT) \ +rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) ieee.$(OBJEXT) \ +rdcoff.$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT) objdump_DEPENDENCIES = ../opcodes/libopcodes.la ../bfd/libbfd.la \ ../libiberty/libiberty.a objdump_LDFLAGS = ar_OBJECTS = arparse.$(OBJEXT) arlex.$(OBJEXT) ar.$(OBJEXT) \ -not-ranlib.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) bucomm.$(OBJEXT) \ -version.$(OBJEXT) filemode.$(OBJEXT) +not-ranlib.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) binemul.$(OBJEXT) \ +emul_$(EMULATION).$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) \ +filemode.$(OBJEXT) ar_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a ar_LDFLAGS = strings_OBJECTS = strings.$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) \ @@ -370,8 +391,9 @@ strings_LDADD = $(LDADD) strings_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a strings_LDFLAGS = ranlib_OBJECTS = ar.$(OBJEXT) is-ranlib.$(OBJEXT) arparse.$(OBJEXT) \ -arlex.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) bucomm.$(OBJEXT) \ -version.$(OBJEXT) filemode.$(OBJEXT) +arlex.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) binemul.$(OBJEXT) \ +emul_$(EMULATION).$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) \ +filemode.$(OBJEXT) ranlib_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a ranlib_LDFLAGS = objcopy_OBJECTS = objcopy.$(OBJEXT) not-strip.$(OBJEXT) \ @@ -381,8 +403,8 @@ version.$(OBJEXT) filemode.$(OBJEXT) objcopy_LDADD = $(LDADD) objcopy_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a objcopy_LDFLAGS = -addr2line_OBJECTS = addr2line.$(OBJEXT) bucomm.$(OBJEXT) \ -version.$(OBJEXT) filemode.$(OBJEXT) +addr2line_OBJECTS = addr2line.$(OBJEXT) budemang.$(OBJEXT) \ +bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT) addr2line_LDADD = $(LDADD) addr2line_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a addr2line_LDFLAGS = @@ -390,8 +412,8 @@ readelf_OBJECTS = readelf.$(OBJEXT) version.$(OBJEXT) \ unwind-ia64.$(OBJEXT) readelf_DEPENDENCIES = ../libiberty/libiberty.a readelf_LDFLAGS = -nm_new_OBJECTS = nm.$(OBJEXT) bucomm.$(OBJEXT) version.$(OBJEXT) \ -filemode.$(OBJEXT) +nm_new_OBJECTS = nm.$(OBJEXT) budemang.$(OBJEXT) bucomm.$(OBJEXT) \ +version.$(OBJEXT) filemode.$(OBJEXT) nm_new_LDADD = $(LDADD) nm_new_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a nm_new_LDFLAGS = @@ -1060,18 +1082,18 @@ install-exec-local: install-binPROGRAMS $(bin_PROGRAMS) $(noinst_PROGRAMS) @list='$(noinst_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ - $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done - $(mkinstalldirs) $(tooldir)/bin + $(mkinstalldirs) $(DESTDIR)$(tooldir)/bin for i in $(TOOL_PROGS); do \ if [ -f $$i$(EXEEXT) ]; then \ j=`echo $$i | sed -e 's/-new//'`; \ k=`echo $$j | sed '$(transform)'`; \ - if [ "$(bindir)/$$k$(EXEEXT)" != "$(tooldir)/bin/$$j$(EXEEXT)" ]; then \ - rm -f $(tooldir)/bin/$$j$(EXEEXT); \ - ln $(bindir)/$$k$(EXEEXT) $(tooldir)/bin/$$j$(EXEEXT) >/dev/null 2>/dev/null \ - || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$i$(EXEEXT) $(tooldir)/bin/$$j$(EXEEXT); \ + if [ "$(DESTDIR)$(bindir)/$$k$(EXEEXT)" != "$(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT)" ]; then \ + rm -f $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT); \ + ln $(DESTDIR)$(bindir)/$$k$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT) >/dev/null 2>/dev/null \ + || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$i$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT); \ fi; \ else true; \ fi; \ @@ -1084,18 +1106,25 @@ install-exec-local: install-binPROGRAMS $(bin_PROGRAMS) $(noinst_PROGRAMS) addr2line.o: addr2line.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/getopt.h $(INCDIR)/libiberty.h \ $(INCDIR)/demangle.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h + $(INCDIR)/fopen-same.h budemang.h ar.o: ar.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ $(INCDIR)/libiberty.h $(INCDIR)/progress.h bucomm.h \ config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ - $(INCDIR)/aout/ar.h $(BFDDIR)/libbfd.h arsup.h $(INCDIR)/filenames.h + $(INCDIR)/aout/ar.h $(BFDDIR)/libbfd.h arsup.h $(INCDIR)/filenames.h \ + binemul.h arsup.o: arsup.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h arsup.h $(INCDIR)/libiberty.h bucomm.h \ config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ $(INCDIR)/filenames.h +binemul.o: binemul.c binemul.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h bucomm.o: bucomm.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \ $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/filenames.h +budemang.o: budemang.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h $(INCDIR)/libiberty.h $(INCDIR)/demangle.h \ + budemang.h coffdump.o: coffdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/libiberty.h coffgrok.h \ bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h @@ -1110,6 +1139,16 @@ dlltool.o: dlltool.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \ $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/demangle.h \ $(INCDIR)/dyn-string.h dlltool.h $(INCDIR)/safe-ctype.h +dllwrap.o: dllwrap.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \ + $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/dyn-string.h +emul_aix.o: emul_aix.c binemul.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \ + $(INCDIR)/coff/xcoff.h $(BFDDIR)/libcoff.h $(BFDDIR)/libxcoff.h +emul_vanilla.o: emul_vanilla.c binemul.h ../bfd/bfd.h \ + $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h config.h \ + $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h filemode.o: filemode.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h @@ -1128,8 +1167,10 @@ nlmconv.o: nlmconv.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/nlm/external.h nlmconv.h nm.o: nm.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ $(INCDIR)/progress.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def \ - $(INCDIR)/aout/ranlib.h $(INCDIR)/demangle.h $(INCDIR)/libiberty.h + $(INCDIR)/fopen-same.h budemang.h $(INCDIR)/aout/stab_gnu.h \ + $(INCDIR)/aout/stab.def $(INCDIR)/aout/ranlib.h $(INCDIR)/demangle.h \ + $(INCDIR)/libiberty.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h not-ranlib.o: not-ranlib.c not-strip.o: not-strip.c objcopy.o: objcopy.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ @@ -1138,9 +1179,9 @@ objcopy.o: objcopy.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ budbg.h $(INCDIR)/filenames.h objdump.o: objdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/progress.h bucomm.h config.h \ - $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/safe-ctype.h \ - $(INCDIR)/dis-asm.h $(INCDIR)/libiberty.h $(INCDIR)/demangle.h \ - debug.h budbg.h $(INCDIR)/aout/aout64.h + $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h budemang.h \ + $(INCDIR)/safe-ctype.h $(INCDIR)/dis-asm.h $(INCDIR)/libiberty.h \ + $(INCDIR)/demangle.h debug.h budbg.h $(INCDIR)/aout/aout64.h prdbg.o: prdbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \ @@ -1148,12 +1189,48 @@ prdbg.o: prdbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ rdcoff.o: rdcoff.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h bucomm.h \ config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ - $(INCDIR)/libiberty.h $(INCDIR)/demangle.h debug.h \ - budbg.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h + $(INCDIR)/libiberty.h debug.h budbg.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h rddbg.o: rddbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \ budbg.h +readelf.o: readelf.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/dwarf2.h $(INCDIR)/elf/alpha.h \ + $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h \ + $(INCDIR)/elf/avr.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/d10v.h \ + $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h $(INCDIR)/elf/fr30.h \ + $(INCDIR)/elf/frv.h $(INCDIR)/elf/h8.h $(INCDIR)/elf/hppa.h \ + $(INCDIR)/elf/i386.h $(INCDIR)/elf/i860.h $(INCDIR)/elf/i960.h \ + $(INCDIR)/elf/ia64.h $(INCDIR)/elf/m32r.h $(INCDIR)/elf/m68k.h \ + $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mips.h \ + $(INCDIR)/elf/mmix.h $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h \ + $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h \ + $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/sparc.h \ + $(INCDIR)/elf/v850.h $(INCDIR)/elf/vax.h $(INCDIR)/elf/x86-64.h \ + $(INCDIR)/elf/xstormy16.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h unwind-ia64.h +rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h +resbin.o: resbin.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ + winduni.h +rescoff.o: rescoff.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ + winduni.h $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h +resrc.o: resrc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ + windres.h winduni.h +resres.o: resres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ + $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ + winduni.h size.o: size.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ $(INCDIR)/libiberty.h @@ -1178,57 +1255,19 @@ sysdump.o: sysdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ version.o: version.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h -wrstabs.o: wrstabs.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ - debug.h budbg.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \ - $(INCDIR)/aout/stab.def windres.o: windres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h $(INCDIR)/getopt.h bucomm.h config.h \ $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \ $(INCDIR)/safe-ctype.h $(INCDIR)/obstack.h windres.h \ winduni.h -resrc.o: resrc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ - windres.h winduni.h -rescoff.o: rescoff.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ - winduni.h $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h \ - $(INCDIR)/bfdlink.h -resbin.o: resbin.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ - winduni.h winduni.o: winduni.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ $(INCDIR)/fopen-same.h winduni.h $(INCDIR)/safe-ctype.h -readelf.o: readelf.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/dwarf2.h $(INCDIR)/elf/alpha.h \ - $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h \ - $(INCDIR)/elf/avr.h $(INCDIR)/elf/cris.h $(INCDIR)/elf/d10v.h \ - $(INCDIR)/elf/d30v.h $(INCDIR)/elf/fr30.h $(INCDIR)/elf/h8.h \ - $(INCDIR)/elf/hppa.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/i860.h \ - $(INCDIR)/elf/i960.h $(INCDIR)/elf/ia64.h $(INCDIR)/elf/m32r.h \ - $(INCDIR)/elf/m68k.h $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mips.h \ - $(INCDIR)/elf/mmix.h $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h \ - $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h \ - $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/sparc.h \ - $(INCDIR)/elf/v850.h $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h \ - bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ - unwind-ia64.h -resres.o: resres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \ - winduni.h -dllwrap.o: dllwrap.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \ - $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/dyn-string.h -rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ +wrstabs.o: wrstabs.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ - $(INCDIR)/fopen-same.h + $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ + debug.h budbg.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \ + $(INCDIR)/aout/stab.def underscore.o: underscore.c arparse.o: arparse.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \ diff --git a/contrib/binutils/binutils/NEWS b/contrib/binutils/binutils/NEWS index 232bc16..5091e3b 100644 --- a/contrib/binutils/binutils/NEWS +++ b/contrib/binutils/binutils/NEWS @@ -1,6 +1,10 @@ -*- text -*- +Changes in 2.13: -Changes in binutils 2.12: +* Support for the Fujitsu FRV architecture added by Red Hat. Models for FR400 + and FR500 included. + +Changes in version 2.12: * Support for Don Knuth's MMIX, by Hans-Peter Nilsson. diff --git a/contrib/binutils/binutils/addr2line.c b/contrib/binutils/binutils/addr2line.c index a9ceb91..174a034 100644 --- a/contrib/binutils/binutils/addr2line.c +++ b/contrib/binutils/binutils/addr2line.c @@ -20,10 +20,10 @@ /* Derived from objdump.c and nm.c by Ulrich.Lauther@mchp.siemens.de - Usage: + Usage: addr2line [options] addr addr ... or - addr2line [options] + addr2line [options] both forms write results to stdout, the second form reads addresses to be converted from stdin. */ @@ -35,6 +35,7 @@ #include "libiberty.h" #include "demangle.h" #include "bucomm.h" +#include "budemang.h" static boolean with_functions; /* -f, show function names. */ static boolean do_demangle; /* -C, demangle names. */ @@ -191,23 +192,22 @@ translate_addresses (abfd) { if (with_functions) { - if (functionname == NULL || *functionname == '\0') - printf ("??\n"); - else if (! do_demangle) - printf ("%s\n", functionname); - else + const char *name; + char *alloc = NULL; + + name = functionname; + if (name == NULL || *name == '\0') + name = "??"; + else if (do_demangle) { - char *res; - - res = cplus_demangle (functionname, DMGL_ANSI | DMGL_PARAMS); - if (res == NULL) - printf ("%s\n", functionname); - else - { - printf ("%s\n", res); - free (res); - } + alloc = demangle (abfd, name); + name = alloc; } + + printf ("%s\n", name); + + if (alloc != NULL) + free (alloc); } if (base_names && filename != NULL) @@ -233,19 +233,19 @@ translate_addresses (abfd) /* Process a file. */ static void -process_file (filename, target) - const char *filename; +process_file (file_name, target) + const char *file_name; const char *target; { bfd *abfd; char **matching; - abfd = bfd_openr (filename, target); + abfd = bfd_openr (file_name, target); if (abfd == NULL) - bfd_fatal (filename); + bfd_fatal (file_name); if (bfd_check_format (abfd, bfd_archive)) - fatal (_("%s: can not get addresses from archive"), filename); + fatal (_("%s: can not get addresses from archive"), file_name); if (! bfd_check_format_matches (abfd, bfd_object, &matching)) { @@ -278,7 +278,7 @@ main (argc, argv) int argc; char **argv; { - const char *filename; + const char *file_name; char *target; int c; @@ -297,7 +297,7 @@ main (argc, argv) bfd_init (); set_default_bfd_target (); - filename = NULL; + file_name = NULL; target = NULL; while ((c = getopt_long (argc, argv, "b:Ce:sfHhVv", long_options, (int *) 0)) != EOF) @@ -314,17 +314,17 @@ main (argc, argv) if (optarg != NULL) { enum demangling_styles style; - + style = cplus_demangle_name_to_style (optarg); - if (style == unknown_demangling) + if (style == unknown_demangling) fatal (_("unknown demangling style `%s'"), optarg); - + cplus_demangle_set_style (style); - } + } break; case 'e': - filename = optarg; + file_name = optarg; break; case 's': base_names = true; @@ -346,13 +346,13 @@ main (argc, argv) } } - if (filename == NULL) - filename = "a.out"; + if (file_name == NULL) + file_name = "a.out"; addr = argv + optind; naddr = argc - optind; - process_file (filename, target); + process_file (file_name, target); return 0; } diff --git a/contrib/binutils/binutils/ar.c b/contrib/binutils/binutils/ar.c index 92d9b35..ea1b456 100644 --- a/contrib/binutils/binutils/ar.c +++ b/contrib/binutils/binutils/ar.c @@ -3,29 +3,29 @@ 2001, 2002 Free Software Foundation, Inc. -This file is part of GNU Binutils. + This file is part of GNU Binutils. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Bugs: should use getopt the way tar does (complete w/optional -) and should have long options too. GNU ar used to check file against filesystem in quick_update and replace operations (would check mtime). Doesn't warn when name truncated. No way to specify pos_end. Error messages should be - more consistant. -*/ + more consistant. */ + #include "bfd.h" #include "libiberty.h" #include "progress.h" @@ -34,6 +34,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "libbfd.h" #include "arsup.h" #include "filenames.h" +#include "binemul.h" #include #ifdef __GO32___ @@ -221,7 +222,7 @@ map_over_members (arch, function, files, count) { ++match_count; if (counted_name_mode - && match_count != counted_name_counter) + && match_count != counted_name_counter) { /* Counting, and didn't match on count; go on to the next one. */ @@ -247,11 +248,11 @@ usage (help) FILE *s; s = help ? stdout : stderr; - + if (! is_ranlib) { /* xgettext:c-format */ - fprintf (s, _("Usage: %s [-X32_64] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"), + fprintf (s, _("Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"), program_name); /* xgettext:c-format */ fprintf (s, _(" %s -M [ temp)) - temp = bslash; - if (temp == NULL && program_name[0] != '\0' && program_name[1] == ':') - temp = program_name + 1; - } + { + /* We could have foo/bar\\baz, or foo\\bar, or d:bar. */ + char *bslash = strrchr (program_name, '\\'); + if (temp == NULL || (bslash != NULL && bslash > temp)) + temp = bslash; + if (temp == NULL && program_name[0] != '\0' && program_name[1] == ':') + temp = program_name + 1; + } #endif if (temp == NULL) temp = program_name; @@ -444,16 +447,11 @@ main (argc, argv) xatexit (remove_output); - /* Ignored for (partial) AIX compatibility. On AIX, - the -X option can be used to ignore certain kinds - of object files in the archive (the 64-bit objects - or the 32-bit objects). GNU ar always looks at all - kinds of objects in an archive. */ - while (argc > 1 && strcmp (argv[1], "-X32_64") == 0) - { - argv++; - argc--; - } + for (i = 1; i < argc; i++) + if (! ar_emul_parse_arg (argv[i])) + break; + argv += (i - 1); + argc -= (i - 1); if (is_ranlib) { @@ -628,12 +626,12 @@ main (argc, argv) if (postype != pos_default) posname = argv[arg_index++]; - if (counted_name_mode) + if (counted_name_mode) { - if (operation != extract && operation != delete) + if (operation != extract && operation != delete) fatal (_("`N' is only meaningful with the `x' and `d' options.")); counted_name_counter = atoi (argv[arg_index++]); - if (counted_name_counter <= 0) + if (counted_name_counter <= 0) fatal (_("Value for `N' must be positive.")); } @@ -669,7 +667,7 @@ main (argc, argv) if (operation == quick_append) { /* Note that quick appending to a non-existent archive creates it, - even if there are no files to append. */ + even if there are no files to append. */ do_quick_append (inarch_filename, files); xexit (0); } @@ -884,7 +882,7 @@ extract_file (abfd) long ncopied = 0; long size; struct stat buf; - + if (bfd_stat_arch_elt (abfd, &buf) != 0) /* xgettext:c-format */ fatal (_("internal stat error on %s"), bfd_get_filename (abfd)); @@ -893,7 +891,7 @@ extract_file (abfd) if (size < 0) /* xgettext:c-format */ fatal (_("stat returns negative size for %s"), bfd_get_filename (abfd)); - + if (verbose) printf ("x - %s\n", bfd_get_filename (abfd)); @@ -1205,11 +1203,11 @@ delete_members (arch, files_to_delete) while (*current_ptr_ptr) { if (FILENAME_CMP (normalize (*files_to_delete, arch), - (*current_ptr_ptr)->filename) == 0) + (*current_ptr_ptr)->filename) == 0) { ++match_count; if (counted_name_mode - && match_count != counted_name_counter) + && match_count != counted_name_counter) { /* Counting, and didn't match on count; go on to the next one. */ @@ -1304,7 +1302,6 @@ replace_members (arch, files_to_move, quick) bfd **after_bfd; /* New entries go after this one */ bfd *current; bfd **current_ptr; - bfd *temp; while (files_to_move && *files_to_move) { @@ -1333,7 +1330,8 @@ replace_members (arch, files_to_move, quick) } if (bfd_stat_arch_elt (current, &asbuf) != 0) /* xgettext:c-format */ - fatal (_("internal stat error on %s"), current->filename); + fatal (_("internal stat error on %s"), + current->filename); if (fsbuf.st_mtime <= asbuf.st_mtime) goto next_file; @@ -1341,24 +1339,13 @@ replace_members (arch, files_to_move, quick) after_bfd = get_pos_bfd (&arch->next, pos_after, current->filename); - temp = *after_bfd; - - *after_bfd = bfd_openr (*files_to_move, NULL); - if (*after_bfd == (bfd *) NULL) + if (ar_emul_replace (after_bfd, *files_to_move, + verbose)) { - bfd_fatal (*files_to_move); + /* Snip out this entry from the chain. */ + *current_ptr = (*current_ptr)->next; + changed = true; } - (*after_bfd)->next = temp; - - /* snip out this entry from the chain */ - *current_ptr = (*current_ptr)->next; - - if (verbose) - { - printf ("r - %s\n", *files_to_move); - } - - changed = true; goto next_file; } @@ -1367,22 +1354,9 @@ replace_members (arch, files_to_move, quick) } /* Add to the end of the archive. */ - after_bfd = get_pos_bfd (&arch->next, pos_end, NULL); - temp = *after_bfd; - *after_bfd = bfd_openr (*files_to_move, NULL); - if (*after_bfd == (bfd *) NULL) - { - bfd_fatal (*files_to_move); - } - if (verbose) - { - printf ("a - %s\n", *files_to_move); - } - - (*after_bfd)->next = temp; - - changed = true; + if (ar_emul_append (after_bfd, *files_to_move, verbose)) + changed = true; next_file:; diff --git a/contrib/binutils/binutils/arlex.l b/contrib/binutils/binutils/arlex.l index 381b177..c1771a5 100644 --- a/contrib/binutils/binutils/arlex.l +++ b/contrib/binutils/binutils/arlex.l @@ -1,7 +1,7 @@ %{ /* arlex.l - Strange script language lexer */ -/* Copyright 1992, 1997, 2000 Free Software Foundation, Inc. +/* Copyright 1992, 1997, 2000, 2002 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -25,7 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ */ #define DONTDECLARE_MALLOC -#include +#include "ansidecl.h" #include "libiberty.h" #include "arparse.h" diff --git a/contrib/binutils/binutils/arsup.c b/contrib/binutils/binutils/arsup.c index 1e86479..7b01d37 100644 --- a/contrib/binutils/binutils/arsup.c +++ b/contrib/binutils/binutils/arsup.c @@ -1,31 +1,29 @@ /* arsup.c - Archive support for MRI compatibility - Copyright 1992, 1994, 1995, 1996, 1997, 2000 + Copyright 1992, 1994, 1995, 1996, 1997, 2000, 2002 Free Software Foundation, Inc. -This file is part of GNU Binutils. + This file is part of GNU Binutils. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Contributed by Steve Chamberlain - sac@cygnus.com + sac@cygnus.com -This file looks after requests from arparse.y, to provide the MRI -style librarian command syntax + 1 word LIST - -*/ + This file looks after requests from arparse.y, to provide the MRI + style librarian command syntax + 1 word LIST. */ #include "bfd.h" #include "arsup.h" @@ -74,7 +72,7 @@ map_over_list (arch, function, list) boolean found = false; bfd *prev = arch; - for (head = arch->next; head; head = head->next) + for (head = arch->next; head; head = head->next) { if (head->filename != NULL && FILENAME_CMP (ptr->name, head->filename) == 0) @@ -93,13 +91,12 @@ map_over_list (arch, function, list) FILE *outfile; -/*ARGSUSED*/ static void ar_directory_doer (abfd, ignore) bfd *abfd; bfd *ignore ATTRIBUTE_UNUSED; { - print_arelt_descr(outfile, abfd, verbose); + print_arelt_descr(outfile, abfd, verbose); } void @@ -121,7 +118,7 @@ ar_directory (ar_name, list, output) output = 0; } } - else + else outfile = stdout; map_over_list (arch, ar_directory_doer, list); @@ -136,86 +133,100 @@ void DEFUN_VOID(prompt) { extern int interactive; - if (interactive) - { - printf("AR >"); - fflush(stdout); - } + + if (interactive) + { + printf ("AR >"); + fflush (stdout); + } } void maybequit () { - if (! interactive) + if (! interactive) xexit (9); } bfd *obfd; -char *real_name ; -void -DEFUN(ar_open,(name, t), - char *name AND - int t) +char *real_name; +void +ar_open (name, t) + char *name; + int t; { char *tname = (char *) xmalloc (strlen (name) + 10); const char *bname = lbasename (name); real_name = name; + /* Prepend tmp- to the beginning, to avoid file-name clashes after truncation on filesystems with limited namespaces (DOS). */ - sprintf(tname, "%.*stmp-%s", (int) (bname - name), name, bname); - obfd = bfd_openw(tname, NULL); - - if (!obfd) { - fprintf(stderr,_("%s: Can't open output archive %s\n"), program_name, - tname); - - maybequit(); - } - else { - if (!t) { - bfd **ptr; - bfd *element; - bfd *ibfd; - ibfd = bfd_openr(name, NULL); - if (!ibfd) { - fprintf(stderr,_("%s: Can't open input archive %s\n"), - program_name, name); - maybequit(); - return; - } - if (bfd_check_format(ibfd, bfd_archive) != true) { - fprintf(stderr,_("%s: file %s is not an archive\n"), program_name, - name); - maybequit(); - return; - } - ptr = &(obfd->archive_head); - element = bfd_openr_next_archived_file(ibfd, NULL); - - while (element) { - *ptr = element; - ptr = &element->next; - element = bfd_openr_next_archived_file(ibfd, element); - } + sprintf (tname, "%.*stmp-%s", (int) (bname - name), name, bname); + obfd = bfd_openw (tname, NULL); + + if (!obfd) + { + fprintf (stderr, + _("%s: Can't open output archive %s\n"), + program_name, tname); + + maybequit (); } + else + { + if (!t) + { + bfd **ptr; + bfd *element; + bfd *ibfd; - bfd_set_format(obfd, bfd_archive); + ibfd = bfd_openr (name, NULL); - obfd->has_armap = 1; - } -} + if (!ibfd) + { + fprintf (stderr,_("%s: Can't open input archive %s\n"), + program_name, name); + maybequit (); + return; + } + + if (bfd_check_format(ibfd, bfd_archive) != true) + { + fprintf (stderr, + _("%s: file %s is not an archive\n"), + program_name, name); + maybequit (); + return; + } + + ptr = &(obfd->archive_head); + element = bfd_openr_next_archived_file (ibfd, NULL); + + while (element) + { + *ptr = element; + ptr = &element->next; + element = bfd_openr_next_archived_file (ibfd, element); + } + } + bfd_set_format (obfd, bfd_archive); + + obfd->has_armap = 1; + } +} static void ar_addlib_doer (abfd, prev) bfd *abfd; bfd *prev; { - /* Add this module to the output bfd */ + /* Add this module to the output bfd. */ if (prev != NULL) prev->next = abfd->next; + abfd->next = obfd->archive_head; obfd->archive_head = abfd; } @@ -238,224 +249,248 @@ ar_addlib (name, list) if (arch != NULL) map_over_list (arch, ar_addlib_doer, list); - /* Don't close the bfd, since it will make the elements disasppear */ + /* Don't close the bfd, since it will make the elements disasppear. */ } } void -DEFUN(ar_addmod, (list), - struct list *list) +ar_addmod (list) + struct list *list; { - if (!obfd) { - fprintf(stderr, _("%s: no open output archive\n"), program_name); - maybequit(); - } - else - { - while (list) { - bfd *abfd = bfd_openr(list->name, NULL); - if (!abfd) { - fprintf(stderr,_("%s: can't open file %s\n"), program_name, - list->name); - maybequit(); - } - else { - abfd->next = obfd->archive_head; - obfd->archive_head = abfd; - } - list = list->next; + if (!obfd) + { + fprintf (stderr, _("%s: no open output archive\n"), program_name); + maybequit (); } - } -} + else + { + while (list) + { + bfd *abfd = bfd_openr (list->name, NULL); + if (!abfd) + { + fprintf (stderr, _("%s: can't open file %s\n"), + program_name, list->name); + maybequit (); + } + else + { + abfd->next = obfd->archive_head; + obfd->archive_head = abfd; + } + list = list->next; + } + } +} void -DEFUN_VOID(ar_clear) +ar_clear () { -if (obfd) - obfd->archive_head = 0; + if (obfd) + obfd->archive_head = 0; } void -DEFUN(ar_delete, (list), - struct list *list) +ar_delete (list) + struct list *list; { - if (!obfd) { - fprintf(stderr, _("%s: no open output archive\n"), program_name); - maybequit(); - } - else - { - while (list) { - /* Find this name in the archive */ - bfd *member = obfd->archive_head; - bfd **prev = &(obfd->archive_head); - int found = 0; - while (member) { - if (FILENAME_CMP(member->filename, list->name) == 0) { - *prev = member->next; - found = 1; - } - else { - prev = &(member->next); + if (!obfd) + { + fprintf (stderr, _("%s: no open output archive\n"), program_name); + maybequit (); + } + else + { + while (list) + { + /* Find this name in the archive. */ + bfd *member = obfd->archive_head; + bfd **prev = &(obfd->archive_head); + int found = 0; + + while (member) + { + if (FILENAME_CMP(member->filename, list->name) == 0) + { + *prev = member->next; + found = 1; + } + else + prev = &(member->next); + + member = member->next; + } + + if (!found) + { + fprintf (stderr, _("%s: can't find module file %s\n"), + program_name, list->name); + maybequit (); + } + + list = list->next; } - member = member->next; - } - if (!found) { - fprintf(stderr,_("%s: can't find module file %s\n"), program_name, - list->name); - maybequit(); - } - list = list->next; } - } } - void -DEFUN_VOID(ar_save) +ar_save () { + if (!obfd) + { + fprintf (stderr, _("%s: no open output archive\n"), program_name); + maybequit (); + } + else + { + char *ofilename = xstrdup (bfd_get_filename (obfd)); - if (!obfd) { - fprintf(stderr, _("%s: no open output archive\n"), program_name); - maybequit(); - } - else { - char *ofilename = xstrdup (bfd_get_filename (obfd)); - bfd_close(obfd); - - rename (ofilename, real_name); - obfd = 0; - free(ofilename); - } -} - + bfd_close (obfd); + rename (ofilename, real_name); + obfd = 0; + free (ofilename); + } +} void -DEFUN(ar_replace, (list), - struct list *list) +ar_replace (list) + struct list *list; { - if (!obfd) { - fprintf(stderr, _("%s: no open output archive\n"), program_name); - maybequit(); - } - else - { - while (list) { - /* Find this name in the archive */ - bfd *member = obfd->archive_head; - bfd **prev = &(obfd->archive_head); - int found = 0; - while (member) - { - if (FILENAME_CMP(member->filename, list->name) == 0) - { - /* Found the one to replace */ - bfd *abfd = bfd_openr(list->name, 0); - if (!abfd) - { - fprintf(stderr, _("%s: can't open file %s\n"), program_name, list->name); - maybequit(); - } - else { - *prev = abfd; - abfd->next = member->next; - found = 1; - } - } - else { - prev = &(member->next); - } - member = member->next; - } - if (!found) { - bfd *abfd = bfd_openr(list->name, 0); - fprintf(stderr,_("%s: can't find module file %s\n"), program_name, - list->name); - if (!abfd) - { - fprintf(stderr, _("%s: can't open file %s\n"), program_name, list->name); - maybequit(); - } - else + if (!obfd) + { + fprintf (stderr, _("%s: no open output archive\n"), program_name); + maybequit (); + } + else + { + while (list) { - *prev = abfd; - } - } + /* Find this name in the archive. */ + bfd *member = obfd->archive_head; + bfd **prev = &(obfd->archive_head); + int found = 0; + + while (member) + { + if (FILENAME_CMP (member->filename, list->name) == 0) + { + /* Found the one to replace. */ + bfd *abfd = bfd_openr (list->name, 0); + + if (!abfd) + { + fprintf (stderr, _("%s: can't open file %s\n"), + program_name, list->name); + maybequit (); + } + else + { + *prev = abfd; + abfd->next = member->next; + found = 1; + } + } + else + { + prev = &(member->next); + } + member = member->next; + } + + if (!found) + { + bfd *abfd = bfd_openr (list->name, 0); + + fprintf (stderr,_("%s: can't find module file %s\n"), + program_name, list->name); + if (!abfd) + { + fprintf (stderr, _("%s: can't open file %s\n"), + program_name, list->name); + maybequit (); + } + else + *prev = abfd; + } - list = list->next; + list = list->next; + } } - } } -/* And I added this one */ +/* And I added this one. */ void -DEFUN_VOID(ar_list) +ar_list () { - if (!obfd) - { - fprintf(stderr, _("%s: no open output archive\n"), program_name); - maybequit(); - } - else { - bfd *abfd; - outfile = stdout; - verbose =1 ; - printf(_("Current open archive is %s\n"), bfd_get_filename (obfd)); - for (abfd = obfd->archive_head; - abfd != (bfd *)NULL; - abfd = abfd->next) + if (!obfd) { - ar_directory_doer (abfd, (bfd *) NULL); + fprintf (stderr, _("%s: no open output archive\n"), program_name); + maybequit (); } - } -} + else + { + bfd *abfd; + outfile = stdout; + verbose =1 ; + printf (_("Current open archive is %s\n"), bfd_get_filename (obfd)); -void -DEFUN_VOID(ar_end) + for (abfd = obfd->archive_head; + abfd != (bfd *)NULL; + abfd = abfd->next) + ar_directory_doer (abfd, (bfd *) NULL); + } +} + +void +ar_end () { if (obfd) - { - fclose((FILE *)(obfd->iostream)); - unlink(bfd_get_filename (obfd)); - } + { + fclose ((FILE *)(obfd->iostream)); + unlink (bfd_get_filename (obfd)); + } } + void -DEFUN(ar_extract,(list), - struct list *list) +ar_extract (list) + struct list *list; { - if (!obfd) - { - - fprintf(stderr, _("%s: no open archive\n"), program_name); - maybequit(); - } - else - { - while (list) { - /* Find this name in the archive */ - bfd *member = obfd->archive_head; - int found = 0; - while (member && !found) - { - if (FILENAME_CMP(member->filename, list->name) == 0) + if (!obfd) + { + fprintf (stderr, _("%s: no open archive\n"), program_name); + maybequit (); + } + else + { + while (list) { - extract_file(member); - found = 1; - } - - member = member->next; - } - if (!found) { - bfd_openr(list->name, 0); - fprintf(stderr,_("%s: can't find module file %s\n"), program_name, - list->name); - - } - list = list->next; + /* Find this name in the archive. */ + bfd *member = obfd->archive_head; + int found = 0; + + while (member && !found) + { + if (FILENAME_CMP (member->filename, list->name) == 0) + { + extract_file (member); + found = 1; + } + + member = member->next; + } + + if (!found) + { + bfd_openr (list->name, 0); + fprintf (stderr, _("%s: can't find module file %s\n"), + program_name, list->name); + } + + list = list->next; + } } - } } diff --git a/contrib/binutils/binutils/arsup.h b/contrib/binutils/binutils/arsup.h index e875cbf..aeec258 100644 --- a/contrib/binutils/binutils/arsup.h +++ b/contrib/binutils/binutils/arsup.h @@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ struct list { - char *name; + char *name; struct list *next; }; diff --git a/contrib/binutils/binutils/binemul.c b/contrib/binutils/binutils/binemul.c new file mode 100644 index 0000000..5144793 --- /dev/null +++ b/contrib/binutils/binutils/binemul.c @@ -0,0 +1,165 @@ +/* Binutils emulation layer. + Copyright (C) 2002 Free Software Foundation, Inc. + Written by Tom Rix, Redhat. + + This file is part of GNU Binutils. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "binemul.h" + +extern bin_emulation_xfer_type bin_dummy_emulation; + +void +ar_emul_usage (fp) + FILE *fp; +{ + if (bin_dummy_emulation.ar_usage) + bin_dummy_emulation.ar_usage (fp); +} + +void +ar_emul_default_usage (fp) + FILE *fp; +{ + AR_EMUL_USAGE_PRINT_OPTION_HEADER (fp); + /* xgettext:c-format */ + fprintf (fp, _(" No emulation specific options\n")); +} + +boolean +ar_emul_append (after_bfd, file_name, verbose) + bfd **after_bfd; + char *file_name; + boolean verbose; +{ + if (bin_dummy_emulation.ar_append) + return bin_dummy_emulation.ar_append (after_bfd, file_name, verbose); + + return false; +} + +boolean +ar_emul_default_append (after_bfd, file_name, verbose) + bfd **after_bfd; + char *file_name; + boolean verbose; +{ + bfd *temp; + + temp = *after_bfd; + *after_bfd = bfd_openr (file_name, NULL); + + AR_EMUL_ELEMENT_CHECK (*after_bfd, file_name); + AR_EMUL_APPEND_PRINT_VERBOSE (verbose, file_name); + + (*after_bfd)->next = temp; + + return true; +} + +boolean +ar_emul_replace (after_bfd, file_name, verbose) + bfd **after_bfd; + char *file_name; + boolean verbose; +{ + if (bin_dummy_emulation.ar_replace) + return bin_dummy_emulation.ar_replace (after_bfd, file_name, verbose); + + return false; +} + +boolean +ar_emul_default_replace (after_bfd, file_name, verbose) + bfd **after_bfd; + char *file_name; + boolean verbose; +{ + bfd *temp; + + temp = *after_bfd; + *after_bfd = bfd_openr (file_name, NULL); + + AR_EMUL_ELEMENT_CHECK (*after_bfd, file_name); + AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, file_name); + + (*after_bfd)->next = temp; + + return true; +} + +boolean +ar_emul_create (abfd_out, archive_file_name, file_name) + bfd **abfd_out; + char *archive_file_name; + char *file_name; +{ + if (bin_dummy_emulation.ar_create) + return bin_dummy_emulation.ar_create (abfd_out, archive_file_name, + file_name); + + return false; +} + +boolean +ar_emul_default_create (abfd_out, archive_file_name, file_name) + bfd **abfd_out; + char *archive_file_name; + char *file_name; +{ + char *target = NULL; + + /* Try to figure out the target to use for the archive from the + first object on the list. */ + if (file_name != NULL) + { + bfd *obj; + + obj = bfd_openr (file_name, NULL); + if (obj != NULL) + { + if (bfd_check_format (obj, bfd_object)) + target = bfd_get_target (obj); + (void) bfd_close (obj); + } + } + + /* Create an empty archive. */ + *abfd_out = bfd_openw (archive_file_name, target); + if (*abfd_out == NULL + || ! bfd_set_format (*abfd_out, bfd_archive) + || ! bfd_close (*abfd_out)) + bfd_fatal (archive_file_name); + + return true; +} + +boolean +ar_emul_parse_arg (arg) + char *arg; +{ + if (bin_dummy_emulation.ar_parse_arg) + return bin_dummy_emulation.ar_parse_arg (arg); + + return false; +} + +boolean +ar_emul_default_parse_arg (arg) + char *arg ATTRIBUTE_UNUSED; +{ + return false; +} diff --git a/contrib/binutils/binutils/binemul.h b/contrib/binutils/binutils/binemul.h new file mode 100644 index 0000000..bbcb16e --- /dev/null +++ b/contrib/binutils/binutils/binemul.h @@ -0,0 +1,64 @@ +/* Binutils emulation layer. + Copyright (C) 2002 Free Software Foundation, Inc. + Written by Tom Rix, Redhat. + + This file is part of GNU Binutils. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef BINEMUL_H +#define BINEMUL_H + +#include "bfd.h" +#include "bucomm.h" + +extern void ar_emul_usage PARAMS ((FILE *)); +extern void ar_emul_default_usage PARAMS ((FILE *)); +extern boolean ar_emul_append PARAMS ((bfd **, char *, boolean)); +extern boolean ar_emul_default_append PARAMS ((bfd **, char *, boolean)); +extern boolean ar_emul_replace PARAMS ((bfd **, char *, boolean)); +extern boolean ar_emul_default_replace PARAMS ((bfd **, char *, boolean)); +extern boolean ar_emul_create PARAMS ((bfd **, char *, char *)); +extern boolean ar_emul_default_create PARAMS ((bfd **, char *, char *)); +extern boolean ar_emul_parse_arg PARAMS ((char *)); +extern boolean ar_emul_default_parse_arg PARAMS ((char *)); + +/* Macros for common output. */ + +#define AR_EMUL_USAGE_PRINT_OPTION_HEADER(fp) \ + /* xgettext:c-format */ \ + fprintf (fp, _(" emulation options: \n")) + +#define AR_EMUL_ELEMENT_CHECK(abfd, file_name) \ + do { if ((abfd) == (bfd *) NULL) bfd_fatal (file_name); } while (0) + +#define AR_EMUL_APPEND_PRINT_VERBOSE(verbose, file_name) \ + do { if (verbose) printf ("a - %s\n", file_name); } while (0) + +#define AR_EMUL_REPLACE_PRINT_VERBOSE(verbose, file_name) \ + do { if (verbose) printf ("r - %s\n", file_name); } while (0) + +typedef struct bin_emulation_xfer_struct +{ + /* Print out the extra options. */ + void (* ar_usage) PARAMS ((FILE *fp)); + boolean (* ar_append) PARAMS ((bfd **, char *, boolean)); + boolean (* ar_replace) PARAMS ((bfd **, char *, boolean)); + boolean (* ar_create) PARAMS ((bfd **, char *, char *)); + boolean (* ar_parse_arg) PARAMS ((char *)); +} +bin_emulation_xfer_type; + +#endif diff --git a/contrib/binutils/binutils/bucomm.c b/contrib/binutils/binutils/bucomm.c index aa3080f..35112fc 100644 --- a/contrib/binutils/binutils/bucomm.c +++ b/contrib/binutils/binutils/bucomm.c @@ -1,5 +1,5 @@ /* bucomm.c -- Bin Utils COMmon code. - Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001 + Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -42,9 +42,9 @@ char *program_name; void bfd_nonfatal (string) - CONST char *string; + const char *string; { - CONST char *errmsg = bfd_errmsg (bfd_get_error ()); + const char *errmsg = bfd_errmsg (bfd_get_error ()); if (string) fprintf (stderr, "%s: %s: %s\n", program_name, string, errmsg); @@ -54,7 +54,7 @@ bfd_nonfatal (string) void bfd_fatal (string) - CONST char *string; + const char *string; { bfd_nonfatal (string); xexit (1); @@ -178,7 +178,7 @@ print_arelt_descr (file, abfd, verbose) char modebuf[11]; char timebuf[40]; time_t when = buf.st_mtime; - CONST char *ctime_result = (CONST char *) ctime (&when); + const char *ctime_result = (const char *) ctime (&when); /* POSIX format: skip weekday and seconds from ctime output. */ sprintf (timebuf, "%.12s %.4s", ctime_result + 4, ctime_result + 20); @@ -257,7 +257,7 @@ parse_vma (s, arg) const char *end; ret = bfd_scan_vma (s, &end, 0); - + if (*end != '\0') fatal (_("%s: bad number: %s"), arg, s); diff --git a/contrib/binutils/binutils/budemang.c b/contrib/binutils/binutils/budemang.c new file mode 100644 index 0000000..3f8d385 --- /dev/null +++ b/contrib/binutils/binutils/budemang.c @@ -0,0 +1,77 @@ +/* demangle.c -- A wrapper calling libiberty cplus_demangle + Copyright 2002 Free Software Foundation, Inc. + + This file is part of GNU Binutils. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ + +#include "config.h" +#include +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif +#include "bfd.h" +#include "libiberty.h" +#include "demangle.h" +#include "budemang.h" + +/* Wrapper around cplus_demangle. Strips leading underscores and + other such chars that would otherwise confuse the demangler. */ + +char * +demangle (abfd, name) + bfd *abfd; + const char *name; +{ + char *res; + const char *p; + + if (abfd != NULL && bfd_get_symbol_leading_char (abfd) == name[0]) + ++name; + + /* This is a hack for better error reporting on XCOFF, PowerPC64-ELF + or the MS PE format. These formats have a number of leading '.'s + on at least some symbols, so we remove all dots to avoid + confusing the demangler. */ + p = name; + while (*p == '.') + ++p; + + res = cplus_demangle (p, DMGL_ANSI | DMGL_PARAMS); + if (res) + { + size_t dots = p - name; + + /* Now put back any stripped dots. */ + if (dots != 0) + { + size_t len = strlen (res) + 1; + char *add_dots = xmalloc (len + dots); + + memcpy (add_dots, name, dots); + memcpy (add_dots + dots, res, len); + free (res); + res = add_dots; + } + return res; + } + + return xstrdup (name); +} diff --git a/contrib/binutils/binutils/budemang.h b/contrib/binutils/binutils/budemang.h new file mode 100644 index 0000000..60a3c2d --- /dev/null +++ b/contrib/binutils/binutils/budemang.h @@ -0,0 +1,25 @@ +/* demangle.h -- A wrapper calling libiberty cplus_demangle + Copyright 2002 Free Software Foundation, Inc. + + This file is part of GNU Binutils. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ +#ifndef BUDEMANG_H +#define BUDEMANG_H + +char *demangle PARAMS ((bfd *, const char *)); + +#endif diff --git a/contrib/binutils/binutils/coffdump.c b/contrib/binutils/binutils/coffdump.c index 065e9e1..8f538e8 100644 --- a/contrib/binutils/binutils/coffdump.c +++ b/contrib/binutils/binutils/coffdump.c @@ -23,8 +23,8 @@ This module reads a type tree generated by coffgrok and prints it out so we can test the grokker. */ -#include -#include +#include "bfd.h" +#include "libiberty.h" #include "coffgrok.h" #include "bucomm.h" @@ -106,7 +106,7 @@ dump_coff_lines (p) tab (1); printf (_("#lines %d "),p->nlines); - for (i = 0; i < p->nlines; i++) + for (i = 0; i < p->nlines; i++) { printf ("(%d 0x%x)", p->lines[i], p->addresses[i]); @@ -133,7 +133,7 @@ dump_coff_type (p) switch (p->type) { case coff_secdef_type: - printf ("section definition at %x size %x\n", + printf ("section definition at %x size %x\n", p->u.asecdef.address, p->u.asecdef.size); nl (); @@ -427,14 +427,14 @@ dump_coff_section(ptr) int i; tab (1); - printf ("section %s %d %d address %x size %x number %d nrelocs %d", + printf ("section %s %d %d address %x size %x number %d nrelocs %d", ptr->name, ptr->code, ptr->data, ptr->address,ptr->size, ptr->number, ptr->nrelocs); nl (); - for (i = 0; i < ptr->nrelocs; i++) + for (i = 0; i < ptr->nrelocs; i++) { - tab (0); + tab (0); printf ("(%x %s %x)", ptr->relocs[i].offset, ptr->relocs[i].symbol->name, diff --git a/contrib/binutils/binutils/coffgrok.c b/contrib/binutils/binutils/coffgrok.c index 0194b3f..8cab8d5 100644 --- a/contrib/binutils/binutils/coffgrok.c +++ b/contrib/binutils/binutils/coffgrok.c @@ -1,5 +1,6 @@ /* coffgrok.c - Copyright 1994, 1995, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. + Copyright 1994, 1995, 1997, 1998, 2000, 2001, 2002 + Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -25,8 +26,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ */ -#include -#include +#include "bfd.h" +#include "libiberty.h" #include "bucomm.h" #include "coff/internal.h" @@ -145,7 +146,7 @@ do_sections_p1 (head) if (relsize < 0) bfd_fatal (bfd_get_filename (abfd)); if (relsize == 0) - continue; + continue; relpp = (arelent **) xmalloc (relsize); relcount = bfd_canonicalize_reloc (abfd, section, relpp, syms); if (relcount < 0) @@ -277,7 +278,7 @@ do_lines (i, name) /* These lines are for this function - so count them and stick them on */ int c = 0; /* Find the linenumber of the top of the function, since coff linenumbers - are relative to the start of the function. */ + are relative to the start of the function. */ int start_line = rawsyms[i + 3].u.auxent.x_sym.x_misc.x_lnsz.x_lnno; l++; @@ -605,7 +606,7 @@ doit () int i; int infile = 0; struct coff_ofile *head = - (struct coff_ofile *) xmalloc (sizeof (struct coff_ofile)); + (struct coff_ofile *) xmalloc (sizeof (struct coff_ofile)); ofile = head; head->source_head = 0; head->source_tail = 0; diff --git a/contrib/binutils/binutils/coffgrok.h b/contrib/binutils/binutils/coffgrok.h index be0bdef..d071d24 100644 --- a/contrib/binutils/binutils/coffgrok.h +++ b/contrib/binutils/binutils/coffgrok.h @@ -1,4 +1,4 @@ -/* coffgrok.h +/* coffgrok.h Copyright 2001 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -43,7 +43,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ int addend; }; - struct coff_section + struct coff_section { char *name; int code; @@ -82,7 +82,7 @@ struct coff_sfile /* Vector which maps where in each output section the input file has it's data */ - struct coff_isection *section; + struct coff_isection *section; }; @@ -97,7 +97,7 @@ struct coff_sfile } type; union { - struct + struct { int address; int size; @@ -147,7 +147,7 @@ struct coff_sfile }; - struct coff_line + struct coff_line { int nlines; int *lines; @@ -188,7 +188,7 @@ struct coff_sfile coff_vis_tag, coff_vis_member_of_struct, coff_vis_member_of_enum, - coff_vis_autoparam, + coff_vis_autoparam, coff_vis_regparam, } type; }; diff --git a/contrib/binutils/binutils/config.in b/contrib/binutils/binutils/config.in index 02ec0a7..d404762 100644 --- a/contrib/binutils/binutils/config.in +++ b/contrib/binutils/binutils/config.in @@ -97,6 +97,9 @@ /* Define if you have the strchr function. */ #undef HAVE_STRCHR +/* Define if you have the strcoll function. */ +#undef HAVE_STRCOLL + /* Define if you have the utimes function. */ #undef HAVE_UTIMES diff --git a/contrib/binutils/binutils/configure b/contrib/binutils/binutils/configure index 316d09b..dc23ef4 100755 --- a/contrib/binutils/binutils/configure +++ b/contrib/binutils/binutils/configure @@ -2717,7 +2717,7 @@ EOF fi -ALL_LINGUAS="fr tr ja es" +ALL_LINGUAS="fr tr ja es sv" # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 @@ -4902,7 +4902,7 @@ EOF fi -for ac_func in sbrk utimes setmode getc_unlocked +for ac_func in sbrk utimes setmode getc_unlocked strcoll do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:4909: checking for $ac_func" >&5 @@ -5006,12 +5006,12 @@ rm -f conftest* fi echo "$ac_t""$bu_cv_have_fopen64" 1>&6 -if test $bu_cv_have_fopen64 != no; then +if test "$bu_cv_have_fopen64" != no; then cat >> confdefs.h <<\EOF #define HAVE_FOPEN64 1 EOF - if test $bu_cv_have_fopen64 = "need -D_LARGEFILE64_SOURCE"; then + if test "$bu_cv_have_fopen64" = "need -D_LARGEFILE64_SOURCE"; then cat >> confdefs.h <<\EOF #define _LARGEFILE64_SOURCE 1 EOF @@ -5508,7 +5508,7 @@ do arm*-* | xscale-* | strongarm-* | d10v-*) OBJDUMP_DEFS="-DDISASSEMBLER_NEEDS_RELOCS" ;; - i[3-6]86-pe* | i[3-6]86-*-cygwin* | i[3-6]86-*-mingw32*) + i[3-6]86-pe* | i[3-6]86-*-cygwin* | i[3-6]86-*-mingw32** | i[3-6]86-*-netbsdpe*) BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386" BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' @@ -5574,6 +5574,26 @@ else fi +# Emulation +for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'` +do + # Canonicalize the secondary target names. + result=`$ac_config_sub $targ_alias 2>/dev/null` + if test -n "$result"; then + targ=$result + else + targ=$targ_alias + fi + + . ${srcdir}/configure.tgt + + EMULATION=$targ_emul + EMULATION_VECTOR=$targ_emul_vector +done + + + + trap '' 1 2 15 cat > confcache <<\EOF # This file is a shell script that caches the results of configure @@ -5785,6 +5805,8 @@ s%@BUILD_DLLWRAP@%$BUILD_DLLWRAP%g s%@BUILD_MISC@%$BUILD_MISC%g s%@OBJDUMP_DEFS@%$OBJDUMP_DEFS%g s%@UNDERSCORE@%$UNDERSCORE%g +s%@EMULATION@%$EMULATION%g +s%@EMULATION_VECTOR@%$EMULATION_VECTOR%g CEOF EOF diff --git a/contrib/binutils/binutils/configure.in b/contrib/binutils/binutils/configure.in index 03ed567..f2a0482 100644 --- a/contrib/binutils/binutils/configure.in +++ b/contrib/binutils/binutils/configure.in @@ -64,7 +64,7 @@ AC_PROG_CC AC_PROG_YACC AM_PROG_LEX -ALL_LINGUAS="fr tr ja es" +ALL_LINGUAS="fr tr ja es sv" CY_GNU_GETTEXT AM_MAINTAINER_MODE @@ -100,7 +100,7 @@ AC_SUBST(DEMANGLER_NAME) AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h) AC_HEADER_SYS_WAIT AC_FUNC_ALLOCA -AC_CHECK_FUNCS(sbrk utimes setmode getc_unlocked) +AC_CHECK_FUNCS(sbrk utimes setmode getc_unlocked strcoll) # Check whether fopen64 is available and whether _LARGEFILE64_SOURCE # needs to be defined for it @@ -115,10 +115,10 @@ bu_cv_have_fopen64="need -D_LARGEFILE64_SOURCE", bu_cv_have_fopen64=no) CPPFLAGS=$saved_CPPFLAGS])]) AC_MSG_RESULT($bu_cv_have_fopen64) -if test $bu_cv_have_fopen64 != no; then +if test "$bu_cv_have_fopen64" != no; then AC_DEFINE([HAVE_FOPEN64], 1, [Is fopen64 available?]) - if test $bu_cv_have_fopen64 = "need -D_LARGEFILE64_SOURCE"; then + if test "$bu_cv_have_fopen64" = "need -D_LARGEFILE64_SOURCE"; then AC_DEFINE([_LARGEFILE64_SOURCE], 1, [Enable LFS]) fi @@ -249,7 +249,7 @@ changequote([,])dnl OBJDUMP_DEFS="-DDISASSEMBLER_NEEDS_RELOCS" ;; changequote(,)dnl - i[3-6]86-pe* | i[3-6]86-*-cygwin* | i[3-6]86-*-mingw32*) + i[3-6]86-pe* | i[3-6]86-*-cygwin* | i[3-6]86-*-mingw32** | i[3-6]86-*-netbsdpe*) changequote([,])dnl BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386" @@ -313,6 +313,26 @@ else fi AC_SUBST(UNDERSCORE) +# Emulation +for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'` +do + # Canonicalize the secondary target names. + result=`$ac_config_sub $targ_alias 2>/dev/null` + if test -n "$result"; then + targ=$result + else + targ=$targ_alias + fi + + . ${srcdir}/configure.tgt + + EMULATION=$targ_emul + EMULATION_VECTOR=$targ_emul_vector +done + +AC_SUBST(EMULATION) +AC_SUBST(EMULATION_VECTOR) + AC_OUTPUT(Makefile doc/Makefile po/Makefile.in:po/Make-in, [ case "x$CONFIG_FILES" in diff --git a/contrib/binutils/binutils/configure.tgt b/contrib/binutils/binutils/configure.tgt new file mode 100644 index 0000000..2d5ce2b --- /dev/null +++ b/contrib/binutils/binutils/configure.tgt @@ -0,0 +1,26 @@ +# This is the binutils target specific file. This is invoked by the +# autoconf generated configure script. Putting it in a separate shell +# file lets us skip running autoconf when modifying target specific +# information. + +# This file switches on the shell variable ${targ}, and sets the +# following shell variables: +# targ_emul name of emulation to use +# targ_emul_vector name of vector to use + +case "${targ}" in + powerpc-*-aix5* | rs6000-*-aix5*) + targ_emul=aix + targ_emul_vector=bin_aix5_emulation + ;; + + powerpc-*-aix4.3* | rs6000-*-aix4.3*) + targ_emul=aix + targ_emul_vector=bin_aix_emulation + ;; + + *) + targ_emul=vanilla + targ_emul_vector=bin_vanilla_emulation + ;; +esac diff --git a/contrib/binutils/binutils/debug.c b/contrib/binutils/binutils/debug.c index ffdc766..3ce609b 100644 --- a/contrib/binutils/binutils/debug.c +++ b/contrib/binutils/binutils/debug.c @@ -1,5 +1,5 @@ /* debug.c -- Handle generic debugging information. - Copyright 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc. + Copyright 1995, 1996, 1997, 1998, 2000, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of GNU Binutils. @@ -1149,7 +1149,7 @@ debug_record_label (handle, name, type, addr) bfd_vma addr ATTRIBUTE_UNUSED; { /* FIXME. */ - debug_error (_("debug_record_label not implemented")); + debug_error (_("debug_record_label: not implemented")); return false; } @@ -1211,12 +1211,11 @@ debug_record_variable (handle, name, type, kind, val) n->u.variable = v; - return true; + return true; } /* Make a type with a given kind and size. */ -/*ARGSUSED*/ static struct debug_type * debug_make_type (info, kind, size) struct debug_handle *info ATTRIBUTE_UNUSED; @@ -1778,7 +1777,6 @@ debug_make_undefined_tagged_type (handle, name, kind) The fourth argument is whether this is a virtual class. The fifth argument is the visibility of the base class. */ -/*ARGSUSED*/ debug_baseclass debug_make_baseclass (handle, type, bitpos, virtual, visibility) PTR handle ATTRIBUTE_UNUSED; @@ -1786,7 +1784,7 @@ debug_make_baseclass (handle, type, bitpos, virtual, visibility) bfd_vma bitpos; boolean virtual; enum debug_visibility visibility; -{ +{ struct debug_baseclass *b; b = (struct debug_baseclass *) xmalloc (sizeof *b); @@ -1806,7 +1804,6 @@ debug_make_baseclass (handle, type, bitpos, virtual, visibility) the field (it may be zero). The sixth argument is the visibility of the field. */ -/*ARGSUSED*/ debug_field debug_make_field (handle, name, type, bitpos, bitsize, visibility) PTR handle ATTRIBUTE_UNUSED; @@ -1837,7 +1834,6 @@ debug_make_field (handle, name, type, bitpos, bitsize, visibility) global variable). The fifth argument is the visibility of the member. */ -/*ARGSUSED*/ debug_field debug_make_static_member (handle, name, type, physname, visibility) PTR handle ATTRIBUTE_UNUSED; @@ -1863,7 +1859,6 @@ debug_make_static_member (handle, name, type, physname, visibility) /* Make a method. The second argument is the name, and the third argument is a NULL terminated array of method variants. */ -/*ARGSUSED*/ debug_method debug_make_method (handle, name, variants) PTR handle ATTRIBUTE_UNUSED; @@ -1890,7 +1885,6 @@ debug_make_method (handle, name, variants) function context. FIXME: Are the const and volatile arguments necessary? Could we just use debug_make_const_type? */ -/*ARGSUSED*/ debug_method_variant debug_make_method_variant (handle, physname, type, visibility, constp, volatilep, voffset, context) @@ -2055,7 +2049,6 @@ debug_tag_type (handle, name, type) /* Record the size of a given type. */ -/*ARGSUSED*/ boolean debug_record_type_size (handle, type, size) PTR handle ATTRIBUTE_UNUSED; @@ -2123,7 +2116,7 @@ debug_find_named_type (handle, name) } } - return DEBUG_TYPE_NULL; + return DEBUG_TYPE_NULL; } /* Find a tagged type. */ @@ -2304,7 +2297,7 @@ debug_get_return_type (handle, type) case DEBUG_KIND_METHOD: return type->u.kmethod->return_type; } - /*NOTREACHED*/ + /*NOTREACHED*/ } /* Get the parameter types of a function or method type (except that @@ -2391,7 +2384,6 @@ debug_get_fields (handle, type) /* Get the type of a field. */ -/*ARGSUSED*/ debug_type debug_get_field_type (handle, field) PTR handle ATTRIBUTE_UNUSED; @@ -2404,7 +2396,6 @@ debug_get_field_type (handle, field) /* Get the name of a field. */ -/*ARGSUSED*/ const char * debug_get_field_name (handle, field) PTR handle ATTRIBUTE_UNUSED; @@ -2417,7 +2408,6 @@ debug_get_field_name (handle, field) /* Get the bit position of a field. */ -/*ARGSUSED*/ bfd_vma debug_get_field_bitpos (handle, field) PTR handle ATTRIBUTE_UNUSED; @@ -2430,7 +2420,6 @@ debug_get_field_bitpos (handle, field) /* Get the bit size of a field. */ -/*ARGSUSED*/ bfd_vma debug_get_field_bitsize (handle, field) PTR handle ATTRIBUTE_UNUSED; @@ -2443,7 +2432,6 @@ debug_get_field_bitsize (handle, field) /* Get the visibility of a field. */ -/*ARGSUSED*/ enum debug_visibility debug_get_field_visibility (handle, field) PTR handle ATTRIBUTE_UNUSED; @@ -3314,7 +3302,7 @@ debug_type_samep (info, t1, t2) case DEBUG_KIND_POINTER: ret = debug_type_samep (info, t1->u.kpointer, t2->u.kpointer); break; - + case DEBUG_KIND_FUNCTION: if (t1->u.kfunction->varargs != t2->u.kfunction->varargs || ! debug_type_samep (info, t1->u.kfunction->return_type, diff --git a/contrib/binutils/binutils/debug.h b/contrib/binutils/binutils/debug.h index d60285d..c439be3 100644 --- a/contrib/binutils/binutils/debug.h +++ b/contrib/binutils/binutils/debug.h @@ -310,7 +310,7 @@ struct debug_write_fns visibility. The type must be popped off the type stack. */ boolean (*class_static_member) PARAMS ((PTR, const char *, const char *, enum debug_visibility)); - + /* Add a baseclass to the class currently being built. The type of the baseclass must be popped off the type stack. The arguments are the bit position, whether the class is virtual, and the diff --git a/contrib/binutils/binutils/defparse.c b/contrib/binutils/binutils/defparse.c index 840ef9d..f51ee33 100644 --- a/contrib/binutils/binutils/defparse.c +++ b/contrib/binutils/binutils/defparse.c @@ -1,5 +1,5 @@ /* A Bison parser, made from defparse.y - by GNU bison 1.33. */ + by GNU bison 1.35. */ #define YYBISON 1 /* Identify Bison output. */ @@ -63,6 +63,7 @@ typedef union { int number; } yystype; # define YYSTYPE yystype +# define YYSTYPE_IS_TRIVIAL 1 #endif #ifndef YYDEBUG # define YYDEBUG 0 @@ -177,7 +178,7 @@ static const char *const yytname[] = "implist", "impline", "seclist", "secline", "attr_list", "opt_comma", "opt_number", "attr", "opt_CONSTANT", "opt_NONAME", "opt_DATA", "opt_name", "opt_ordinal", "opt_equal_name", "opt_base", "option_list", - "option", NULL + "option", 0 }; #endif @@ -323,12 +324,6 @@ static const short yycheck[] = define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -#ifdef __cplusplus -# define YYSTD(x) std::x -#else -# define YYSTD(x) x -#endif - #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -351,18 +346,19 @@ static const short yycheck[] = /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # else -# ifdef __cplusplus -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T std::size_t -# else -# ifdef __STDC__ -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t # endif -# define YYSTACK_ALLOC YYSTD (malloc) -# define YYSTACK_FREE YYSTD (free) +# define YYSTACK_ALLOC malloc +# define YYSTACK_FREE free # endif +#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ + + +#if (! defined (yyoverflow) \ + && (! defined (__cplusplus) \ + || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -389,24 +385,41 @@ union yyalloc + YYSTACK_GAP_MAX) # endif -/* Relocate the TYPE STACK from its old location to the new one. The +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + register YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (0) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Type, Stack) \ +# define YYSTACK_RELOCATE(Stack) \ do \ { \ YYSIZE_T yynewbytes; \ - yymemcpy ((char *) yyptr, (char *) (Stack), \ - yysize * (YYSIZE_T) sizeof (Type)); \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (Type) + YYSTACK_GAP_MAX; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ +#endif #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -416,14 +429,9 @@ union yyalloc # define YYSIZE_T size_t #endif #if ! defined (YYSIZE_T) -# ifdef __cplusplus -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T std::size_t -# else -# ifdef __STDC__ -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t # endif #endif #if ! defined (YYSIZE_T) @@ -502,12 +510,8 @@ while (0) #if YYDEBUG # ifndef YYFPRINTF -# ifdef __cplusplus -# include /* INFRINGES ON USER NAME SPACE */ -# else -# include /* INFRINGES ON USER NAME SPACE */ -# endif -# define YYFPRINTF YYSTD (fprintf) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ @@ -515,10 +519,8 @@ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) -/* Nonzero means print parse trace. [The following comment makes no - sense to me. Could someone clarify it? --akim] Since this is - uninitialized, it does not stop multiple parsers from coexisting. - */ +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) @@ -544,33 +546,6 @@ int yydebug; # define YYMAXDEPTH 10000 #endif -#if ! defined (yyoverflow) && ! defined (yymemcpy) -# if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ -# define yymemcpy __builtin_memcpy -# else /* not GNU C or C++ */ - -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -# if defined (__STDC__) || defined (__cplusplus) -yymemcpy (char *yyto, const char *yyfrom, YYSIZE_T yycount) -# else -yymemcpy (yyto, yyfrom, yycount) - char *yyto; - const char *yyfrom; - YYSIZE_T yycount; -# endif -{ - register const char *yyf = yyfrom; - register char *yyt = yyto; - register YYSIZE_T yyi = yycount; - - while (yyi-- != 0) - *yyt++ = *yyf++; -} -# endif -#endif - #ifdef YYERROR_VERBOSE # ifndef yystrlen @@ -623,7 +598,7 @@ yystpcpy (yydest, yysrc) # endif #endif -#line 341 "/usr/share/bison/bison.simple" +#line 315 "/usr/share/bison/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed @@ -633,13 +608,13 @@ yystpcpy (yydest, yysrc) to the proper pointer type. */ #ifdef YYPARSE_PARAM -# ifdef __cplusplus +# if defined (__STDC__) || defined (__cplusplus) # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM # define YYPARSE_PARAM_DECL -# else /* !__cplusplus */ +# else # define YYPARSE_PARAM_ARG YYPARSE_PARAM # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif /* !__cplusplus */ +# endif #else /* !YYPARSE_PARAM */ # define YYPARSE_PARAM_ARG # define YYPARSE_PARAM_DECL @@ -813,6 +788,9 @@ yyparse (YYPARSE_PARAM_ARG) yyvs = yyvs1; } #else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyoverflowlab; +# else /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) goto yyoverflowlab; @@ -826,15 +804,16 @@ yyparse (YYPARSE_PARAM_ARG) (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyoverflowlab; - YYSTACK_RELOCATE (short, yyss); - YYSTACK_RELOCATE (YYSTYPE, yyvs); + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); # if YYLSP_NEEDED - YYSTACK_RELOCATE (YYLTYPE, yyls); + YYSTACK_RELOCATE (yyls); # endif # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } +# endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; @@ -1198,7 +1177,7 @@ case 59: break; } -#line 727 "/usr/share/bison/bison.simple" +#line 705 "/usr/share/bison/bison.simple" yyvsp -= yylen; diff --git a/contrib/binutils/binutils/defparse.h b/contrib/binutils/binutils/defparse.h index 73d19b0..ee14652 100644 --- a/contrib/binutils/binutils/defparse.h +++ b/contrib/binutils/binutils/defparse.h @@ -7,6 +7,7 @@ typedef union { int number; } yystype; # define YYSTYPE yystype +# define YYSTYPE_IS_TRIVIAL 1 #endif # define NAME 257 # define LIBRARY 258 diff --git a/contrib/binutils/binutils/dlltool.c b/contrib/binutils/binutils/dlltool.c index 6864d22..9a1afbc 100644 --- a/contrib/binutils/binutils/dlltool.c +++ b/contrib/binutils/binutils/dlltool.c @@ -115,7 +115,7 @@ asm (".section .drectve"); asm (".ascii \"-export:cdef\""); asm (".ascii \"-export:ddef\""); - + void cdef (char * s) { printf ("hello from the dll %s\n", s); @@ -162,15 +162,15 @@ # Run this tool over the DLL's .def file and generate an exports # file (thedll.o) and an imports file (thedll.a). # (You may have to use -S to tell dlltool where to find the assembler). - + dlltool --def thedll.def --output-exp thedll.o --output-lib thedll.a # Build the dll with the library and the export table - + ld -o thedll.dll thedll.o thedll.in # Link the executable with the import library - + gcc -o themain.exe themain.o thedll.a This example can be extended if relocations are needed in the DLL: @@ -180,21 +180,21 @@ gcc -c file1.c file2.c themain.c # Run this tool over the DLL's .def file and generate an imports file. - + dlltool --def thedll.def --output-lib thedll.lib # Link the executable with the import library and generate a base file # at the same time - + gcc -o themain.exe themain.o thedll.lib -Wl,--base-file -Wl,themain.base # Run this tool over the DLL's .def file and generate an exports file # which includes the relocations from the base file. - + dlltool --def thedll.def --base-file themain.base --output-exp thedll.exp # Build the dll with file1.o, file2.o and the export table - + ld -o thedll.dll thedll.exp file1.o file2.o */ @@ -277,7 +277,7 @@ static char *deduce_name PARAMS ((const char *)); static void mcore_elf_cache_filename (char *); static void mcore_elf_gen_out_file (void); #endif - + #ifdef HAVE_SYS_WAIT_H #include #else /* ! HAVE_SYS_WAIT_H */ @@ -372,7 +372,7 @@ static boolean do_default_excludes=true; /* Default symbols to exclude when exporting all the symbols. */ static const char *default_excludes = "DllMain@12,DllEntryPoint@0,impure_ptr"; -/* True if we should add __imp_ to import libraries for backward +/* True if we should add __imp_ to import libraries for backward compatibility to old Cygwin releases. */ static boolean create_compat_implib; @@ -437,7 +437,7 @@ static char * mcore_elf_linker_flags = NULL; #define TMP_TAIL_O "dt.o" #define TMP_STUB "ds" -/* This bit of assemly does jmp * .... */ +/* This bit of assemly does jmp * .... */ static const unsigned char i386_jtab[] = { 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x90, 0x90 @@ -472,26 +472,26 @@ static const unsigned char thumb_jtab[] = static const unsigned char mcore_be_jtab[] = { 0x71, 0x02, /* lrw r1,2 */ - 0x81, 0x01, /* ld.w r1,(r1,0) */ + 0x81, 0x01, /* ld.w r1,(r1,0) */ 0x00, 0xC1, /* jmp r1 */ 0x12, 0x00, /* nop */ - 0x00, 0x00, 0x00, 0x00 /*
*/ + 0x00, 0x00, 0x00, 0x00 /*
*/ }; static const unsigned char mcore_le_jtab[] = { 0x02, 0x71, /* lrw r1,2 */ - 0x01, 0x81, /* ld.w r1,(r1,0) */ + 0x01, 0x81, /* ld.w r1,(r1,0) */ 0xC1, 0x00, /* jmp r1 */ 0x00, 0x12, /* nop */ - 0x00, 0x00, 0x00, 0x00 /*
*/ + 0x00, 0x00, 0x00, 0x00 /*
*/ }; /* This is the glue sequence for PowerPC PE. There is a */ -/* tocrel16-tocdefn reloc against the first instruction. */ +/* tocrel16-tocdefn reloc against the first instruction. */ /* We also need a IMGLUE reloc against the glue function */ /* to restore the toc saved by the third instruction in */ -/* the glue. */ +/* the glue. */ static const unsigned char ppc_jtab[] = { 0x00, 0x00, 0x62, 0x81, /* lwz r11,0(r2) */ @@ -646,7 +646,7 @@ typedef struct export export_type; /* A list of symbols which we should not export. */ - + struct string_list { struct string_list *next; @@ -817,7 +817,7 @@ process_def_file (name) const char *name; { FILE *f = fopen (name, FOPEN_RT); - + if (!f) /* xgettext:c-format */ fatal (_("Can't open def file: %s"), name); @@ -826,7 +826,7 @@ process_def_file (name) /* xgettext:c-format */ inform (_("Processing def file: %s"), name); - + yyparse (); inform (_("Processed def file")); @@ -856,7 +856,7 @@ yyerror (err) { /* xgettext:c-format */ non_fatal (_("Syntax error in def file %s:%d"), def_file, linenumber); - + return 0; } @@ -880,8 +880,8 @@ def_exports (name, internal_name, ordinal, noname, constant, data) p->next = d_exports; d_exports = p; d_nfuncs++; - - if ((internal_name != NULL) + + if ((internal_name != NULL) && (strchr (internal_name, '.') != NULL)) p->forward = ++d_nforwards; else @@ -895,10 +895,10 @@ def_name (name, base) { /* xgettext:c-format */ inform (_("NAME: %s base: %x"), name, base); - + if (d_is_dll) non_fatal (_("Can't have LIBRARY and NAME")); - + d_name = name; /* if --dllname not provided, use the one in the DEF file. FIXME: Is this appropriate for executables? */ @@ -914,12 +914,12 @@ def_library (name, base) { /* xgettext:c-format */ inform (_("LIBRARY: %s base: %x"), name, base); - + if (d_is_exe) non_fatal (_("Can't have LIBRARY and NAME")); - + d_name = name; - /* if --dllname not provided, use the one in the DEF file. */ + /* if --dllname not provided, use the one in the DEF file. */ if (! dll_name) dll_name = xstrdup (name); d_is_dll = 1; @@ -1061,7 +1061,7 @@ def_import (app_name, module, dllext, entry, ord_val) else application_name = ""; } - + if (dllext != NULL) { buf = (char *) alloca (strlen (module) + strlen (dllext) + 2); @@ -1162,12 +1162,12 @@ run (what, args) if (pid == -1) { inform (strerror (errno)); - + fatal (errmsg_fmt, errmsg_arg); } pid = pwait (pid, & wait_status, 0); - + if (pid == -1) { /* xgettext:c-format */ @@ -1204,15 +1204,15 @@ scan_drectve_symbols (abfd) /* Look for .drectve's */ s = bfd_get_section_by_name (abfd, DRECTVE_SECTION_NAME); - + if (s == NULL) return; - + size = bfd_get_section_size_before_reloc (s); buf = xmalloc (size); bfd_get_section_contents (abfd, s, buf, 0, size); - + /* xgettext:c-format */ inform (_("Sucking in info from %s section in %s"), DRECTVE_SECTION_NAME, bfd_get_filename (abfd)); @@ -1230,7 +1230,7 @@ scan_drectve_symbols (abfd) char * name; char * c; flagword flags = BSF_FUNCTION; - + p += 8; name = p; while (p < e && *p != ',' && *p != ' ' && *p != '-') @@ -1238,7 +1238,7 @@ scan_drectve_symbols (abfd) c = xmalloc (p - name + 1); memcpy (c, name, p - name); c[p - name] = 0; - if (p < e && *p == ',') /* found type tag. */ + if (p < e && *p == ',') /* found type tag. */ { char *tag_start = ++p; while (p < e && *p != ' ' && *p != '-') @@ -1307,7 +1307,7 @@ scan_filtered_symbols (abfd, minisyms, symcount, size) char *exported_name = xstrdup (symbol_name); char *atsym = strchr (exported_name, '@'); *atsym = '\0'; - /* Note: stdcall alias symbols can never be data. */ + /* Note: stdcall alias symbols can never be data. */ def_exports (exported_name, xstrdup (symbol_name), -1, 0, 0, 0); } } @@ -1328,7 +1328,7 @@ add_excludes (new_excludes) for (; exclude_string; exclude_string = strtok (NULL, ",:")) { struct string_list *new_exclude; - + new_exclude = ((struct string_list *) xmalloc (sizeof (struct string_list))); new_exclude->string = (char *) xmalloc (strlen (exclude_string) + 2); @@ -1400,7 +1400,7 @@ filter_symbols (abfd, minisyms, symcount, size) || (sym->flags & BSF_WEAK) != 0 || bfd_is_com_section (sym->section)) && ! bfd_is_und_section (sym->section)); - + keep = keep && ! match_exclude (sym->name); if (keep) @@ -1467,7 +1467,7 @@ scan_open_obj_file (abfd) scan_all_symbols (abfd); else scan_drectve_symbols (abfd); - + /* FIXME: we ought to read in and block out the base relocations */ /* xgettext:c-format */ @@ -1486,7 +1486,7 @@ scan_obj_file (filename) /* xgettext:c-format */ inform (_("Scanning object file %s"), filename); - + if (bfd_check_format (f, bfd_archive)) { bfd *arfile = bfd_openr_next_archived_file (f, 0); @@ -1497,7 +1497,7 @@ scan_obj_file (filename) bfd_close (arfile); arfile = bfd_openr_next_archived_file (f, arfile); } - + #ifdef DLLTOOL_MCORE_ELF if (mcore_elf_out_file) inform (_("Cannot produce mcore-elf dll from archive file: %s"), filename); @@ -1570,17 +1570,17 @@ flush_page (f, need, page_addr, on_page) ASM_LONG, (on_page * 2) + (on_page & 1) * 2 + 8, ASM_C); - + for (i = 0; i < on_page; i++) { long needed = need[i]; - + if (needed) needed = ((needed - page_addr) | 0x3000) & 0xffff; - + fprintf (f, "\t%s\t0x%lx\n", ASM_SHORT, needed); } - + /* And padding */ if (on_page & 1) fprintf (f, "\t%s\t0x%x\n", ASM_SHORT, 0 | 0x0000); @@ -1593,7 +1593,7 @@ gen_def_file () export_type *exp; inform (_("Adding exports to output file")); - + fprintf (output_def, ";"); for (i = 0; oav[i]; i++) fprintf (output_def, " %s", oav[i]); @@ -1606,7 +1606,7 @@ gen_def_file () char *res = cplus_demangle (exp->internal_name, DMGL_ANSI | DMGL_PARAMS); if (strcmp (exp->name, exp->internal_name) == 0) - { + { fprintf (output_def, "\t%s%s%s @ %d%s%s ; %s\n", quote, @@ -1617,9 +1617,9 @@ gen_def_file () exp->data ? " DATA" : "", res ? res : ""); } - else - { - char *quote1 = strchr (exp->internal_name, '.') ? "\"" : ""; + else + { + char *quote1 = strchr (exp->internal_name, '.') ? "\"" : ""; /* char *alias = */ fprintf (output_def, "\t%s%s%s = %s%s%s @ %d%s%s ; %s\n", quote, @@ -1634,9 +1634,9 @@ gen_def_file () res ? res : ""); } if (res) - free (res); + free (res); } - + inform (_("Added exports to output file")); } @@ -1736,14 +1736,14 @@ generate_idata_ofile (filvar) } } -/* Assemble the specified file. */ +/* Assemble the specified file. */ static void assemble_file (source, dest) const char * source; const char * dest; { char * cmd; - + cmd = (char *) alloca (strlen (ASM_SWITCHES) + strlen (as_flags) + strlen (source) + strlen (dest) + 50); @@ -1762,17 +1762,17 @@ gen_exp_file () /* xgettext:c-format */ inform (_("Generating export file: %s"), exp_name); - + f = fopen (TMP_ASM, FOPEN_WT); if (!f) /* xgettext:c-format */ fatal (_("Unable to open temporary assembler file: %s"), TMP_ASM); - + /* xgettext:c-format */ inform (_("Opened temporary file: %s"), TMP_ASM); dump_def_info (f); - + if (d_exports) { fprintf (f, "\t.section .edata\n\n"); @@ -1871,7 +1871,7 @@ gen_exp_file () fprintf (f, "\t%s\t\"%s\"\n", ASM_TEXT, dl->text); } } - + if (d_list) { fprintf (f, "\t.section .rdata\n"); @@ -1879,7 +1879,7 @@ gen_exp_file () { char *p; int l; - + /* We don't output as ascii because there can be quote characters in the string. */ l = 0; @@ -1992,7 +1992,7 @@ gen_exp_file () if (dontdeltemps == 0) unlink (TMP_ASM); - + inform (_("Generated exports file")); } @@ -2089,7 +2089,7 @@ static sinfo secdata[NSECS] = #else /* Sections numbered to make the order the same as other PowerPC NT */ -/* compilers. This also keeps funny alignment thingies from happening. */ +/* compilers. This also keeps funny alignment thingies from happening. */ #define TEXT 0 #define PDATA 1 #define RDATA 2 @@ -2248,18 +2248,18 @@ make_one_lib_file (exp, i) char * outname = xmalloc (10); int oidx = 0; - + sprintf (outname, "%s%05d.o", TMP_STUB, i); - + abfd = bfd_openw (outname, HOW_BFD_WRITE_TARGET); - + if (!abfd) /* xgettext:c-format */ fatal (_("bfd_open failed open stub file: %s"), outname); /* xgettext:c-format */ inform (_("Creating stub file: %s"), outname); - + bfd_set_format (abfd, bfd_object); bfd_set_arch_mach (abfd, HOW_BFD_ARCH, 0); @@ -2267,9 +2267,9 @@ make_one_lib_file (exp, i) if (machine == MARM_INTERWORK || machine == MTHUMB) bfd_set_private_flags (abfd, F_INTERWORK); #endif - + applicable = bfd_applicable_section_flags (abfd); - + /* First make symbols for the sections */ for (i = 0; i < NSECS; i++) { @@ -2385,7 +2385,7 @@ make_one_lib_file (exp, i) ptrs[oidx++] = toc_symbol; } #endif - + ptrs[oidx] = 0; for (i = 0; i < NSECS; i++) @@ -2406,11 +2406,11 @@ make_one_lib_file (exp, i) /* add the reloc into idata$5 */ rel = xmalloc (sizeof (arelent)); - + rpp = xmalloc (sizeof (arelent *) * 2); rpp[0] = rel; rpp[1] = 0; - + rel->address = HOW_JTAB_ROFF; rel->addend = 0; @@ -2493,7 +2493,7 @@ make_one_lib_file (exp, i) #ifdef DLLTOOL_PPC case PDATA: { - /* The .pdata section is 5 words long. */ + /* The .pdata section is 5 words long. */ /* Think of it as: */ /* struct */ /* { */ @@ -2650,7 +2650,7 @@ make_head () fatal (_("failed to open temporary head file: %s"), TMP_HEAD_S); return NULL; } - + fprintf (f, "%s IMAGE_IMPORT_DESCRIPTOR\n", ASM_C); fprintf (f, "\t.section .idata$2\n"); @@ -2682,7 +2682,7 @@ make_head () fprintf (f, "\t%s\t0\n", ASM_LONG); fprintf (f, "fthunk:\n"); } - + if (!no_idata4) { fprintf (f, "\t.section\t.idata$4\n"); @@ -2691,7 +2691,7 @@ make_head () fprintf (f, "\t.section .idata$4\n"); fprintf (f, "hname:\n"); } - + fclose (f); assemble_file (TMP_HEAD_S, TMP_HEAD_O); @@ -2709,13 +2709,13 @@ make_tail () fatal (_("failed to open temporary tail file: %s"), TMP_TAIL_S); return NULL; } - + if (!no_idata4) { fprintf (f, "\t.section .idata$4\n"); fprintf (f, "\t%s\t0\n", ASM_LONG); } - + if (!no_idata5) { fprintf (f, "\t.section .idata$5\n"); @@ -2754,7 +2754,7 @@ make_tail () fclose (f); assemble_file (TMP_TAIL_S, TMP_TAIL_O); - + return bfd_openr (TMP_TAIL_O, HOW_BFD_READ_TARGET); } @@ -2778,18 +2778,18 @@ gen_lib_file () /* xgettext:c-format */ inform (_("Creating library file: %s"), imp_name); - + bfd_set_format (outarch, bfd_archive); outarch->has_armap = 1; - /* Work out a reasonable size of things to put onto one line. */ + /* Work out a reasonable size of things to put onto one line. */ ar_head = make_head (); ar_tail = make_tail(); if (ar_head == NULL || ar_tail == NULL) return; - + for (i = 0; (exp = d_exports_lexically[i]); i++) { bfd *n = make_one_lib_file (exp, i); @@ -2805,7 +2805,7 @@ gen_lib_file () if (! bfd_set_archive_head (outarch, head)) bfd_fatal ("bfd_set_archive_head"); - + if (! bfd_close (outarch)) bfd_fatal (imp_name); @@ -2839,7 +2839,7 @@ gen_lib_file () non_fatal (_("cannot delete %s: %s"), name, strerror (errno)); } } - + inform (_("Created lib file")); } @@ -2943,11 +2943,11 @@ process_duplicates (d_export_vec) export_type *b = d_export_vec[i + 1]; more = 1; - + /* xgettext:c-format */ inform (_("Warning, ignoring duplicate EXPORT %s %d,%d"), a->name, a->ordinal, b->ordinal); - + if (a->ordinal != -1 && b->ordinal != -1) /* xgettext:c-format */ @@ -3011,14 +3011,14 @@ fill_ordinals (d_export_vec) if (lowest == -1) lowest = 1; - /* Now fill in ordinals where the user wants us to choose. */ + /* Now fill in ordinals where the user wants us to choose. */ for (i = 0; i < d_nfuncs; i++) { if (d_export_vec[i]->ordinal == -1) { register int j; - /* First try within or after any user supplied range. */ + /* First try within or after any user supplied range. */ for (j = lowest; j < size; j++) if (ptr[j] == 0) { @@ -3027,7 +3027,7 @@ fill_ordinals (d_export_vec) goto done; } - /* Then try before the range. */ + /* Then try before the range. */ for (j = lowest; j >0; j--) if (ptr[j] == 0) { @@ -3079,7 +3079,7 @@ mangle_defs () = (export_type **) xmalloc (sizeof (export_type *) * d_nfuncs); inform (_("Processing definitions")); - + for (i = 0, exp = d_exports; exp; i++, exp = exp->next) { d_export_vec[i] = exp; @@ -3115,7 +3115,7 @@ mangle_defs () if (!d_exports_lexically[i]->noname || show_allnames) d_exports_lexically[i]->hint = hint++; } - + inform (_("Processed definitions")); } @@ -3221,7 +3221,7 @@ main (ac, av) textdomain (PACKAGE); while ((c = getopt_long (ac, av, -#ifdef DLLTOOL_MCORE_ELF +#ifdef DLLTOOL_MCORE_ELF "m:e:l:aD:d:z:b:xcCuUkAS:f:nvVHhM:L:F:", #else "m:e:l:aD:d:z:b:xcCuUkAS:f:nvVHh", @@ -3304,7 +3304,7 @@ main (ac, av) break; case 'b': base_file = fopen (optarg, FOPEN_RB); - + if (!base_file) /* xgettext:c-format */ fatal (_("Unable to open base-file: %s"), optarg); @@ -3350,13 +3350,13 @@ main (ac, av) if (as_name == NULL) as_name = deduce_name ("as"); - + /* Don't use the default exclude list if we're reading only the symbols in the .drectve section. The default excludes are meant to avoid exporting DLL entry point and Cygwin32 impure_ptr. */ if (! export_all_symbols) do_default_excludes = false; - + if (do_default_excludes) set_default_excludes (); @@ -3375,10 +3375,10 @@ main (ac, av) if (exp_name) gen_exp_file (); - + if (imp_name) { - /* Make imp_name safe for use as a label. */ + /* Make imp_name safe for use as a label. */ char *p; imp_name_lab = xstrdup (imp_name); @@ -3390,15 +3390,15 @@ main (ac, av) head_label = make_label("_head_", imp_name_lab); gen_lib_file (); } - + if (output_def) gen_def_file (); - + #ifdef DLLTOOL_MCORE_ELF if (mcore_elf_out_file) mcore_elf_gen_out_file (); #endif - + return 0; } @@ -3416,10 +3416,10 @@ look_for_prog (prog_name, prefix, end_prefix) struct stat s; char *cmd; - cmd = xmalloc (strlen (prefix) - + strlen (prog_name) + cmd = xmalloc (strlen (prefix) + + strlen (prog_name) #ifdef HAVE_EXECUTABLE_SUFFIX - + strlen (EXECUTABLE_SUFFIX) + + strlen (EXECUTABLE_SUFFIX) #endif + 10); strcpy (cmd, prefix); @@ -3432,12 +3432,12 @@ look_for_prog (prog_name, prefix, end_prefix) found = (stat (cmd, &s) == 0 #ifdef HAVE_EXECUTABLE_SUFFIX - || stat (strcat (cmd, EXECUTABLE_SUFFIX), &s) == 0 + || stat (strcat (cmd, EXECUTABLE_SUFFIX), &s) == 0 #endif ); if (! found) - { + { /* xgettext:c-format */ inform (_("Tried file: %s"), cmd); free (cmd); @@ -3454,24 +3454,24 @@ look_for_prog (prog_name, prefix, end_prefix) /* Deduce the name of the program we are want to invoke. PROG_NAME is the basic name of the program we want to run, eg "as" or "ld". The catch is that we might want actually - run "i386-pe-as" or "ppc-pe-ld". + run "i386-pe-as" or "ppc-pe-ld". If argv[0] contains the full path, then try to find the program in the same place, with and then without a target-like prefix. Given, argv[0] = /usr/local/bin/i586-cygwin32-dlltool, - deduce_name("as") uses the following search order: + deduce_name("as") uses the following search order: /usr/local/bin/i586-cygwin32-as /usr/local/bin/as as - + If there's an EXECUTABLE_SUFFIX, it'll use that as well; for each name, it'll try without and then with EXECUTABLE_SUFFIX. Given, argv[0] = i586-cygwin32-dlltool, it will not even try "as" as the fallback, but rather return i586-cygwin32-as. - + Oh, and given, argv[0] = dlltool, it'll return "as". Returns a dynamically allocated string. */ @@ -3570,7 +3570,7 @@ mcore_elf_gen_out_file (void) if (mcore_elf_linker_flags != NULL) dyn_string_append (ds, mcore_elf_linker_flags); - + while (ptr->next != NULL) { dyn_string_append (ds, ptr->filename); @@ -3584,18 +3584,18 @@ mcore_elf_gen_out_file (void) if (mcore_elf_linker == NULL) mcore_elf_linker = deduce_name ("ld"); - + run (mcore_elf_linker, ds->s); dyn_string_delete (ds); - /* Step two. Create a .exp file and a .lib file from the temporary file. + /* Step two. Create a .exp file and a .lib file from the temporary file. Do this by recursively invoking dlltool....*/ ds = dyn_string_new (100); dyn_string_append (ds, "-S "); dyn_string_append (ds, as_name); - + dyn_string_append (ds, " -e "); dyn_string_append (ds, MCORE_ELF_TMP_EXP); dyn_string_append (ds, " -l "); @@ -3605,17 +3605,17 @@ mcore_elf_gen_out_file (void) if (verbose) dyn_string_append (ds, " -v"); - + if (dontdeltemps) { dyn_string_append (ds, " -n"); - + if (dontdeltemps > 1) dyn_string_append (ds, " -n"); } /* XXX - FIME: ought to check/copy other command line options as well. */ - + run (program_name, ds->s); dyn_string_delete (ds); diff --git a/contrib/binutils/binutils/dllwrap.c b/contrib/binutils/binutils/dllwrap.c index 7c9496c..4ca5936 100644 --- a/contrib/binutils/binutils/dllwrap.c +++ b/contrib/binutils/binutils/dllwrap.c @@ -78,7 +78,7 @@ #endif /* ! HAVE_SYS_WAIT_H */ static char *driver_name = NULL; -static char *cygwin_driver_flags = +static char *cygwin_driver_flags = "-Wl,--dll -nostartfiles"; static char *mingw32_driver_flags = "-mdll"; static char *generic_driver_flags = "-Wl,--dll"; @@ -90,10 +90,10 @@ static char *dlltool_name = NULL; static char *target = TARGET; typedef enum { - UNKNOWN_TARGET, - CYGWIN_TARGET, + UNKNOWN_TARGET, + CYGWIN_TARGET, MINGW_TARGET -} +} target_type; static target_type which_target = UNKNOWN_TARGET; @@ -188,10 +188,10 @@ look_for_prog (prog_name, prefix, end_prefix) struct stat s; char *cmd; - cmd = xmalloc (strlen (prefix) - + strlen (prog_name) + cmd = xmalloc (strlen (prefix) + + strlen (prog_name) #ifdef HAVE_EXECUTABLE_SUFFIX - + strlen (EXECUTABLE_SUFFIX) + + strlen (EXECUTABLE_SUFFIX) #endif + 10); strcpy (cmd, prefix); @@ -204,12 +204,12 @@ look_for_prog (prog_name, prefix, end_prefix) found = (stat (cmd, &s) == 0 #ifdef HAVE_EXECUTABLE_SUFFIX - || stat (strcat (cmd, EXECUTABLE_SUFFIX), &s) == 0 + || stat (strcat (cmd, EXECUTABLE_SUFFIX), &s) == 0 #endif ); if (! found) - { + { /* xgettext:c-format */ inform (_("Tried file: %s"), cmd); free (cmd); @@ -226,24 +226,24 @@ look_for_prog (prog_name, prefix, end_prefix) /* Deduce the name of the program we are want to invoke. PROG_NAME is the basic name of the program we want to run, eg "as" or "ld". The catch is that we might want actually - run "i386-pe-as" or "ppc-pe-ld". + run "i386-pe-as" or "ppc-pe-ld". If argv[0] contains the full path, then try to find the program in the same place, with and then without a target-like prefix. Given, argv[0] = /usr/local/bin/i586-cygwin32-dlltool, - deduce_name("as") uses the following search order: + deduce_name("as") uses the following search order: /usr/local/bin/i586-cygwin32-as /usr/local/bin/as as - + If there's an EXECUTABLE_SUFFIX, it'll use that as well; for each name, it'll try without and then with EXECUTABLE_SUFFIX. Given, argv[0] = i586-cygwin32-dlltool, it will not even try "as" as the fallback, but rather return i586-cygwin32-as. - + Oh, and given, argv[0] = dlltool, it'll return "as". Returns a dynamically allocated string. */ @@ -310,12 +310,12 @@ delete_temp_files () warn (_("Deleting temporary base file %s"), base_file_name); } if (! dontdeltemps) - { - unlink (base_file_name); + { + unlink (base_file_name); free (base_file_name); } } - + if (delete_exp_file && exp_file_name) { if (verbose) @@ -326,9 +326,9 @@ delete_temp_files () warn (_("Deleting temporary exp file %s"), exp_file_name); } if (! dontdeltemps) - { - unlink (exp_file_name); - free (exp_file_name); + { + unlink (exp_file_name); + free (exp_file_name); } } if (delete_def_file && def_file_name) @@ -341,21 +341,21 @@ delete_temp_files () warn (_("Deleting temporary def file %s"), def_file_name); } if (! dontdeltemps) - { - unlink (def_file_name); - free (def_file_name); + { + unlink (def_file_name); + free (def_file_name); } } } -static void +static void cleanup_and_exit (status) int status; { delete_temp_files (); exit (status); } - + static int run (what, args) const char *what; @@ -398,7 +398,7 @@ run (what, args) break; *s++ = 0; if (in_quote) - s++; + s++; } argv[i++] = NULL; @@ -440,7 +440,7 @@ run (what, args) } else retcode = 1; - + return retcode; } @@ -461,7 +461,7 @@ mybasename (name) return (char *) base; } -static int +static int strhash (str) const char *str; { @@ -534,12 +534,12 @@ usage (file, status) #define OPTION_START 149 -/* GENERIC options. */ +/* GENERIC options. */ #define OPTION_QUIET (OPTION_START + 1) #define OPTION_VERBOSE (OPTION_QUIET + 1) #define OPTION_VERSION (OPTION_VERBOSE + 1) -/* DLLWRAP options. */ +/* DLLWRAP options. */ #define OPTION_DRY_RUN (OPTION_VERSION + 1) #define OPTION_DRIVER_NAME (OPTION_DRY_RUN + 1) #define OPTION_DRIVER_FLAGS (OPTION_DRIVER_NAME + 1) @@ -549,7 +549,7 @@ usage (file, status) #define OPTION_TARGET (OPTION_IMAGE_BASE + 1) #define OPTION_MNO_CYGWIN (OPTION_TARGET + 1) -/* DLLTOOL options. */ +/* DLLTOOL options. */ #define OPTION_NODELETE (OPTION_MNO_CYGWIN + 1) #define OPTION_DLLNAME (OPTION_NODELETE + 1) #define OPTION_NO_IDATA4 (OPTION_DLLNAME + 1) @@ -572,13 +572,13 @@ usage (file, status) static const struct option long_options[] = { - /* generic options. */ + /* generic options. */ {"quiet", no_argument, NULL, 'q'}, {"verbose", no_argument, NULL, 'v'}, {"version", no_argument, NULL, OPTION_VERSION}, {"implib", required_argument, NULL, OPTION_OUTPUT_LIB}, - /* dllwrap options. */ + /* dllwrap options. */ {"dry-run", no_argument, NULL, OPTION_DRY_RUN}, {"driver-name", required_argument, NULL, OPTION_DRIVER_NAME}, {"driver-flags", required_argument, NULL, OPTION_DRIVER_FLAGS}, @@ -587,7 +587,7 @@ static const struct option long_options[] = {"image-base", required_argument, NULL, OPTION_IMAGE_BASE}, {"target", required_argument, NULL, OPTION_TARGET}, - /* dlltool options. */ + /* dlltool options. */ {"no-delete", no_argument, NULL, 'n'}, {"dllname", required_argument, NULL, OPTION_DLLNAME}, {"no-idata4", no_argument, NULL, OPTION_NO_IDATA4}, @@ -653,7 +653,7 @@ main (argc, argv) saved_argv = (char **) xmalloc (argc * sizeof (char*)); dlltool_arg_indices = (int *) xmalloc (argc * sizeof (int)); driver_arg_indices = (int *) xmalloc (argc * sizeof (int)); - for (i = 0; i < argc; ++i) + for (i = 0; i < argc; ++i) { size_t len = strlen (argv[i]); char *arg = (char *) xmalloc (len + 1); @@ -667,11 +667,11 @@ main (argc, argv) /* We recognize dllwrap and dlltool options, and everything else is passed onto the language driver (eg., to GCC). We collect options - to dlltool and driver in dlltool_args and driver_args. */ - + to dlltool and driver in dlltool_args and driver_args. */ + opterr = 0; - while ((c = getopt_long_only (argc, argv, "nkAqve:Uho:l:L:I:", - long_options, (int *) 0)) != EOF) + while ((c = getopt_long_only (argc, argv, "nkAqve:Uho:l:L:I:", + long_options, (int *) 0)) != EOF) { int dlltool_arg; int driver_arg; @@ -682,15 +682,15 @@ main (argc, argv) single_word_option_value_pair = 0; if (c != '?') - { + { /* We recognize this option, so it has to be either dllwrap or dlltool option. Do not pass to driver unless it's one of the generic options that are passed to all the tools (such as -v) - which are dealt with later. */ + which are dealt with later. */ driver_arg = 0; } - /* deal with generic and dllwrap options first. */ + /* deal with generic and dllwrap options first. */ switch (c) { case 'h': @@ -769,34 +769,34 @@ main (argc, argv) dlltool_arg = 1; break; } - - /* Handle passing through --option=value case. */ - if (optarg - && saved_argv[optind-1][0] == '-' - && saved_argv[optind-1][1] == '-' + + /* Handle passing through --option=value case. */ + if (optarg + && saved_argv[optind-1][0] == '-' + && saved_argv[optind-1][1] == '-' && strchr (saved_argv[optind-1], '=')) single_word_option_value_pair = 1; if (dlltool_arg) - { + { dlltool_arg_indices[optind-1] = 1; if (optarg && ! single_word_option_value_pair) { dlltool_arg_indices[optind-2] = 1; - } + } } if (! driver_arg) - { + { driver_arg_indices[optind-1] = 0; if (optarg && ! single_word_option_value_pair) { driver_arg_indices[optind-2] = 0; - } + } } } - /* sanity checks. */ + /* sanity checks. */ if (! dll_name && ! dll_file_name) { warn (_("Must provide at least one of -o or --dllname options")); @@ -811,7 +811,7 @@ main (argc, argv) dll_file_name = xstrdup (dll_name); } - /* Deduce driver-name and dlltool-name from our own. */ + /* Deduce driver-name and dlltool-name from our own. */ if (driver_name == NULL) driver_name = deduce_name ("gcc"); @@ -822,24 +822,24 @@ main (argc, argv) { char *fileprefix = choose_temp_base (); def_file_name = (char *) xmalloc (strlen (fileprefix) + 5); - sprintf (def_file_name, "%s.def", - (dontdeltemps) ? mybasename (fileprefix) : fileprefix); + sprintf (def_file_name, "%s.def", + (dontdeltemps) ? mybasename (fileprefix) : fileprefix); delete_def_file = 1; free (fileprefix); delete_def_file = 1; warn (_("no export definition file provided.\n\ Creating one, but that may not be what you want")); } - - /* set the target platform. */ + + /* set the target platform. */ if (strstr (target, "cygwin")) which_target = CYGWIN_TARGET; else if (strstr (target, "mingw")) which_target = MINGW_TARGET; - else + else which_target = UNKNOWN_TARGET; - /* re-create the command lines as a string, taking care to quote stuff. */ + /* re-create the command lines as a string, taking care to quote stuff. */ dlltool_cmdline = dyn_string_new (cmdline_len); if (verbose) { @@ -851,13 +851,13 @@ Creating one, but that may not be what you want")); for (i = 1; i < argc; ++i) { if (dlltool_arg_indices[i]) - { + { char *arg = saved_argv[i]; - int quote = (strchr (arg, ' ') || strchr (arg, '\t')); - dyn_string_append_cstr (dlltool_cmdline, + int quote = (strchr (arg, ' ') || strchr (arg, '\t')); + dyn_string_append_cstr (dlltool_cmdline, (quote) ? " \"" : " "); dyn_string_append_cstr (dlltool_cmdline, arg); - dyn_string_append_cstr (dlltool_cmdline, + dyn_string_append_cstr (dlltool_cmdline, (quote) ? "\"" : ""); } } @@ -866,17 +866,17 @@ Creating one, but that may not be what you want")); if (! driver_flags || strlen (driver_flags) == 0) { switch (which_target) - { + { case CYGWIN_TARGET: - driver_flags = cygwin_driver_flags; + driver_flags = cygwin_driver_flags; break; - + case MINGW_TARGET: - driver_flags = mingw32_driver_flags; + driver_flags = mingw32_driver_flags; break; - + default: - driver_flags = generic_driver_flags; + driver_flags = generic_driver_flags; break; } } @@ -887,25 +887,25 @@ Creating one, but that may not be what you want")); if (! entry_point || strlen (entry_point) == 0) { switch (which_target) - { + { case CYGWIN_TARGET: entry_point = "__cygwin_dll_entry@12"; break; - + case MINGW_TARGET: entry_point = "_DllMainCRTStartup@12"; break; - + default: - entry_point = "_DllMain@12"; + entry_point = "_DllMain@12"; break; } } dyn_string_append_cstr (driver_cmdline, " -Wl,-e,"); dyn_string_append_cstr (driver_cmdline, entry_point); dyn_string_append_cstr (dlltool_cmdline, " --exclude-symbol="); - dyn_string_append_cstr (dlltool_cmdline, - (entry_point[0] == '_') ? entry_point+1 : entry_point); + dyn_string_append_cstr (dlltool_cmdline, + (entry_point[0] == '_') ? entry_point+1 : entry_point); if (! image_base_str || strlen (image_base_str) == 0) { @@ -926,23 +926,23 @@ Creating one, but that may not be what you want")); for (i = 1; i < argc; ++i) { if (driver_arg_indices[i]) - { + { char *arg = saved_argv[i]; - int quote = (strchr (arg, ' ') || strchr (arg, '\t')); - dyn_string_append_cstr (driver_cmdline, + int quote = (strchr (arg, ' ') || strchr (arg, '\t')); + dyn_string_append_cstr (driver_cmdline, (quote) ? " \"" : " "); dyn_string_append_cstr (driver_cmdline, arg); - dyn_string_append_cstr (driver_cmdline, + dyn_string_append_cstr (driver_cmdline, (quote) ? "\"" : ""); } } - + /* * Step pre-1. If no --def is specified, then create it * and then pass it on. */ - - if (! def_file_seen) + + if (! def_file_seen) { int i; dyn_string_t step_pre1; @@ -952,8 +952,8 @@ Creating one, but that may not be what you want")); dyn_string_append_cstr (step_pre1, dlltool_cmdline->s); if (export_all) { - dyn_string_append_cstr (step_pre1, " --export-all --exclude-symbol="); - dyn_string_append_cstr (step_pre1, + dyn_string_append_cstr (step_pre1, " --export-all --exclude-symbol="); + dyn_string_append_cstr (step_pre1, "_cygwin_dll_entry@12,DllMainCRTStartup@12,DllMain@12,DllEntryPoint@12"); } dyn_string_append_cstr (step_pre1, " --output-def "); @@ -965,7 +965,7 @@ Creating one, but that may not be what you want")); { char *arg = saved_argv[i]; size_t len = strlen (arg); - if (len >= 2 && arg[len-2] == '.' + if (len >= 2 && arg[len-2] == '.' && (arg[len-1] == 'o' || arg[len-1] == 'a')) { int quote = (strchr (arg, ' ') || strchr (arg, '\t')); @@ -980,7 +980,7 @@ Creating one, but that may not be what you want")); if (run (dlltool_name, step_pre1->s)) cleanup_and_exit (1); - + dyn_string_delete (step_pre1); } @@ -994,67 +994,67 @@ Creating one, but that may not be what you want")); fprintf (stderr, _("DRIVER name : %s\n"), driver_name); fprintf (stderr, _("DRIVER options : %s\n"), driver_cmdline->s); } - + /* * Step 1. Call GCC/LD to create base relocation file. If using GCC, the * driver command line will look like the following: - * + * * % gcc -Wl,--dll --Wl,--base-file,foo.base [rest of command line] * * If the user does not specify a base name, create temporary one that * is deleted at exit. * */ - + if (! base_file_name) { char *fileprefix = choose_temp_base (); base_file_name = (char *) xmalloc (strlen (fileprefix) + 6); - sprintf (base_file_name, "%s.base", - (dontdeltemps) ? mybasename (fileprefix) : fileprefix); + sprintf (base_file_name, "%s.base", + (dontdeltemps) ? mybasename (fileprefix) : fileprefix); delete_base_file = 1; free (fileprefix); } - + { int quote; - dyn_string_t step1 = dyn_string_new (driver_cmdline->length - + strlen (base_file_name) - + 20); + dyn_string_t step1 = dyn_string_new (driver_cmdline->length + + strlen (base_file_name) + + 20); dyn_string_append_cstr (step1, "-Wl,--base-file,"); - quote = (strchr (base_file_name, ' ') - || strchr (base_file_name, '\t')); - dyn_string_append_cstr (step1, + quote = (strchr (base_file_name, ' ') + || strchr (base_file_name, '\t')); + dyn_string_append_cstr (step1, (quote) ? "\"" : ""); dyn_string_append_cstr (step1, base_file_name); - dyn_string_append_cstr (step1, + dyn_string_append_cstr (step1, (quote) ? "\"" : ""); if (driver_cmdline->length) { - dyn_string_append_cstr (step1, " "); - dyn_string_append_cstr (step1, driver_cmdline->s); + dyn_string_append_cstr (step1, " "); + dyn_string_append_cstr (step1, driver_cmdline->s); } if (run (driver_name, step1->s)) cleanup_and_exit (1); - + dyn_string_delete (step1); } /* - * Step 2. generate the exp file by running dlltool. + * Step 2. generate the exp file by running dlltool. * dlltool command line will look like the following: - * + * * % dlltool -Wl,--dll --Wl,--base-file,foo.base [rest of command line] * * If the user does not specify a base name, create temporary one that * is deleted at exit. * */ - + if (! exp_file_name) { char *p = strrchr (dll_name, '.'); @@ -1065,84 +1065,84 @@ Creating one, but that may not be what you want")); strcat (exp_file_name, ".exp"); delete_exp_file = 1; } - + { int quote; - dyn_string_t step2 = dyn_string_new (dlltool_cmdline->length - + strlen (base_file_name) - + strlen (exp_file_name) + dyn_string_t step2 = dyn_string_new (dlltool_cmdline->length + + strlen (base_file_name) + + strlen (exp_file_name) + 20); dyn_string_append_cstr (step2, "--base-file "); - quote = (strchr (base_file_name, ' ') - || strchr (base_file_name, '\t')); - dyn_string_append_cstr (step2, + quote = (strchr (base_file_name, ' ') + || strchr (base_file_name, '\t')); + dyn_string_append_cstr (step2, (quote) ? "\"" : ""); dyn_string_append_cstr (step2, base_file_name); - dyn_string_append_cstr (step2, + dyn_string_append_cstr (step2, (quote) ? "\" " : " "); dyn_string_append_cstr (step2, "--output-exp "); - quote = (strchr (exp_file_name, ' ') - || strchr (exp_file_name, '\t')); - dyn_string_append_cstr (step2, + quote = (strchr (exp_file_name, ' ') + || strchr (exp_file_name, '\t')); + dyn_string_append_cstr (step2, (quote) ? "\"" : ""); dyn_string_append_cstr (step2, exp_file_name); - dyn_string_append_cstr (step2, + dyn_string_append_cstr (step2, (quote) ? "\"" : ""); if (dlltool_cmdline->length) { - dyn_string_append_cstr (step2, " "); - dyn_string_append_cstr (step2, dlltool_cmdline->s); + dyn_string_append_cstr (step2, " "); + dyn_string_append_cstr (step2, dlltool_cmdline->s); } if (run (dlltool_name, step2->s)) cleanup_and_exit (1); - + dyn_string_delete (step2); } /* * Step 3. Call GCC/LD to again, adding the exp file this time. * driver command line will look like the following: - * + * * % gcc -Wl,--dll --Wl,--base-file,foo.base foo.exp [rest ...] */ { int quote; - dyn_string_t step3 = dyn_string_new (driver_cmdline->length - + strlen (exp_file_name) - + strlen (base_file_name) + dyn_string_t step3 = dyn_string_new (driver_cmdline->length + + strlen (exp_file_name) + + strlen (base_file_name) + 20); dyn_string_append_cstr (step3, "-Wl,--base-file,"); - quote = (strchr (base_file_name, ' ') - || strchr (base_file_name, '\t')); - dyn_string_append_cstr (step3, + quote = (strchr (base_file_name, ' ') + || strchr (base_file_name, '\t')); + dyn_string_append_cstr (step3, (quote) ? "\"" : ""); dyn_string_append_cstr (step3, base_file_name); - dyn_string_append_cstr (step3, + dyn_string_append_cstr (step3, (quote) ? "\" " : " "); - quote = (strchr (exp_file_name, ' ') - || strchr (exp_file_name, '\t')); - dyn_string_append_cstr (step3, + quote = (strchr (exp_file_name, ' ') + || strchr (exp_file_name, '\t')); + dyn_string_append_cstr (step3, (quote) ? "\"" : ""); dyn_string_append_cstr (step3, exp_file_name); - dyn_string_append_cstr (step3, + dyn_string_append_cstr (step3, (quote) ? "\"" : ""); if (driver_cmdline->length) { - dyn_string_append_cstr (step3, " "); - dyn_string_append_cstr (step3, driver_cmdline->s); + dyn_string_append_cstr (step3, " "); + dyn_string_append_cstr (step3, driver_cmdline->s); } if (run (driver_name, step3->s)) cleanup_and_exit (1); - + dyn_string_delete (step3); } @@ -1153,52 +1153,52 @@ Creating one, but that may not be what you want")); { int quote; - dyn_string_t step4 = dyn_string_new (dlltool_cmdline->length - + strlen (base_file_name) - + strlen (exp_file_name) + dyn_string_t step4 = dyn_string_new (dlltool_cmdline->length + + strlen (base_file_name) + + strlen (exp_file_name) + 20); dyn_string_append_cstr (step4, "--base-file "); - quote = (strchr (base_file_name, ' ') - || strchr (base_file_name, '\t')); - dyn_string_append_cstr (step4, + quote = (strchr (base_file_name, ' ') + || strchr (base_file_name, '\t')); + dyn_string_append_cstr (step4, (quote) ? "\"" : ""); dyn_string_append_cstr (step4, base_file_name); - dyn_string_append_cstr (step4, + dyn_string_append_cstr (step4, (quote) ? "\" " : " "); dyn_string_append_cstr (step4, "--output-exp "); - quote = (strchr (exp_file_name, ' ') - || strchr (exp_file_name, '\t')); - dyn_string_append_cstr (step4, + quote = (strchr (exp_file_name, ' ') + || strchr (exp_file_name, '\t')); + dyn_string_append_cstr (step4, (quote) ? "\"" : ""); dyn_string_append_cstr (step4, exp_file_name); - dyn_string_append_cstr (step4, + dyn_string_append_cstr (step4, (quote) ? "\"" : ""); if (dlltool_cmdline->length) { - dyn_string_append_cstr (step4, " "); - dyn_string_append_cstr (step4, dlltool_cmdline->s); + dyn_string_append_cstr (step4, " "); + dyn_string_append_cstr (step4, dlltool_cmdline->s); } if (output_lib_file_name) { - dyn_string_append_cstr (step4, " --output-lib "); - dyn_string_append_cstr (step4, output_lib_file_name); + dyn_string_append_cstr (step4, " --output-lib "); + dyn_string_append_cstr (step4, output_lib_file_name); } if (run (dlltool_name, step4->s)) cleanup_and_exit (1); - + dyn_string_delete (step4); } - + /* * Step 5. Link it all together and be done with it. * driver command line will look like the following: - * + * * % gcc -Wl,--dll foo.exp [rest ...] * */ @@ -1206,26 +1206,26 @@ Creating one, but that may not be what you want")); { int quote; - dyn_string_t step5 = dyn_string_new (driver_cmdline->length - + strlen (exp_file_name) + dyn_string_t step5 = dyn_string_new (driver_cmdline->length + + strlen (exp_file_name) + 20); - quote = (strchr (exp_file_name, ' ') - || strchr (exp_file_name, '\t')); - dyn_string_append_cstr (step5, + quote = (strchr (exp_file_name, ' ') + || strchr (exp_file_name, '\t')); + dyn_string_append_cstr (step5, (quote) ? "\"" : ""); dyn_string_append_cstr (step5, exp_file_name); - dyn_string_append_cstr (step5, + dyn_string_append_cstr (step5, (quote) ? "\"" : ""); if (driver_cmdline->length) { - dyn_string_append_cstr (step5, " "); - dyn_string_append_cstr (step5, driver_cmdline->s); + dyn_string_append_cstr (step5, " "); + dyn_string_append_cstr (step5, driver_cmdline->s); } if (run (driver_name, step5->s)) cleanup_and_exit (1); - + dyn_string_delete (step5); } diff --git a/contrib/binutils/binutils/doc/Makefile.in b/contrib/binutils/binutils/doc/Makefile.in index 5ac149f..eeef90f 100644 --- a/contrib/binutils/binutils/doc/Makefile.in +++ b/contrib/binutils/binutils/doc/Makefile.in @@ -81,6 +81,8 @@ DATADIRNAME = @DATADIRNAME@ DEMANGLER_NAME = @DEMANGLER_NAME@ DLLTOOL = @DLLTOOL@ DLLTOOL_DEFS = @DLLTOOL_DEFS@ +EMULATION = @EMULATION@ +EMULATION_VECTOR = @EMULATION_VECTOR@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ GCJ = @GCJ@ @@ -117,6 +119,8 @@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ YACC = @YACC@ +bfdincludedir = @bfdincludedir@ +bfdlibdir = @bfdlibdir@ l = @l@ AUTOMAKE_OPTIONS = cygnus diff --git a/contrib/binutils/binutils/doc/addr2line.1 b/contrib/binutils/binutils/doc/addr2line.1 index faa5164..f343f5d 100644 --- a/contrib/binutils/binutils/doc/addr2line.1 +++ b/contrib/binutils/binutils/doc/addr2line.1 @@ -129,14 +129,14 @@ .\" ======================================================================== .\" .IX Title "ADDR2LINE 1" -.TH ADDR2LINE 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH ADDR2LINE 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" addr2line \- convert addresses into file names and line numbers. .SH "SYNOPSIS" .IX Header "SYNOPSIS" addr2line [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR] - [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR] + [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]] [\fB\-e\fR \fIfilename\fR|\fB\-\-exe=\fR\fIfilename\fR] [\fB\-f\fR|\fB\-\-functions\fR] [\fB\-s\fR|\fB\-\-basename\fR] [\fB\-H\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] diff --git a/contrib/binutils/binutils/doc/ar.1 b/contrib/binutils/binutils/doc/ar.1 index 21eef42..b17417c 100644 --- a/contrib/binutils/binutils/doc/ar.1 +++ b/contrib/binutils/binutils/doc/ar.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "AR 1" -.TH AR 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH AR 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" ar \- create, modify, and extract from archives diff --git a/contrib/binutils/binutils/doc/binutils.texi b/contrib/binutils/binutils/doc/binutils.texi index 807f43e..3006d9e 100644 --- a/contrib/binutils/binutils/doc/binutils.texi +++ b/contrib/binutils/binutils/doc/binutils.texi @@ -659,7 +659,8 @@ The @sc{gnu} linker @command{ld} is now described in a separate manual. @c man begin SYNOPSIS nm nm [@option{-a}|@option{--debug-syms}] [@option{-g}|@option{--extern-only}] [@option{-B}] [@option{-C}|@option{--demangle}[=@var{style}]] [@option{-D}|@option{--dynamic}] - [@option{-s}|@option{--print-armap}] [@option{-A}|@option{-o}|@option{--print-file-name}] + [@option{-S}|@option{--print-size}] [@option{-s}|@option{--print-armap}] + [@option{-A}|@option{-o}|@option{--print-file-name}] [@option{-n}|@option{-v}|@option{--numeric-sort}] [@option{-p}|@option{--no-sort}] [@option{-r}|@option{--reverse-sort}] [@option{--size-sort}] [@option{-u}|@option{--undefined-only}] [@option{-t} @var{radix}|@option{--radix=}@var{radix}] [@option{-P}|@option{--portability}] @@ -851,6 +852,10 @@ encountered. Use the POSIX.2 standard output format instead of the default format. Equivalent to @samp{-f posix}. +@item -S +@itemx --print-size +Print size of defined symbols for the @code{bsd} output format. + @item -s @itemx --print-armap @cindex symbol index, listing @@ -2221,7 +2226,7 @@ c++filt @var{option} @var{symbol} @smallexample @c man begin SYNOPSIS addr2line addr2line [@option{-b} @var{bfdname}|@option{--target=}@var{bfdname}] - [@option{-C}|@option{--demangle}[=@var{style}] + [@option{-C}|@option{--demangle}[=@var{style}]] [@option{-e} @var{filename}|@option{--exe=}@var{filename}] [@option{-f}|@option{--functions}] [@option{-s}|@option{--basename}] [@option{-H}|@option{--help}] [@option{-V}|@option{--version}] @@ -2859,7 +2864,7 @@ readelf [@option{-a}|@option{--all}] [@option{-V}|@option{--version-info}] [@option{-D}|@option{--use-dynamic}] [@option{-x} |@option{--hex-dump=}] - [@option{-w[liaprmfs]}|@option{--debug-dump}[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]] + [@option{-w[liaprmfFso]}|@option{--debug-dump}[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]] [@option{-histogram}] [@option{-v}|@option{--version}] [@option{-W}|@option{--wide}] @@ -2961,8 +2966,8 @@ symbols section. @itemx --hex-dump= Displays the contents of the indicated section as a hexadecimal dump. -@item -w[liaprmfs] -@itemx --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str] +@item -w[liaprmfFso] +@itemx --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc] Displays the contents of the debug sections in the file, if any are present. If one of the optional letters or words follows the switch then only data found in those specific sections will be dumped. diff --git a/contrib/binutils/binutils/doc/cxxfilt.man b/contrib/binutils/binutils/doc/cxxfilt.man index 903e029..3e95060 100644 --- a/contrib/binutils/binutils/doc/cxxfilt.man +++ b/contrib/binutils/binutils/doc/cxxfilt.man @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "C++FILT 1" -.TH C++FILT 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH C++FILT 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" cxxfilt \- Demangle \*(C+ and Java symbols. @@ -160,7 +160,7 @@ name in the output. You can use \fBc++filt\fR to decipher individual symbols: .PP .Vb 1 -\& c++filt I +\& c++filt .Ve If no \fIsymbol\fR arguments are given, \fBc++filt\fR reads symbol names from the standard input and writes the demangled names to the diff --git a/contrib/binutils/binutils/doc/dlltool.1 b/contrib/binutils/binutils/doc/dlltool.1 index f347e2a..47539b1 100644 --- a/contrib/binutils/binutils/doc/dlltool.1 +++ b/contrib/binutils/binutils/doc/dlltool.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "DLLTOOL 1" -.TH DLLTOOL 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH DLLTOOL 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" dlltool \- Create files needed to build and use DLLs. diff --git a/contrib/binutils/binutils/doc/nm.1 b/contrib/binutils/binutils/doc/nm.1 index 92760ec..5702c4a 100644 --- a/contrib/binutils/binutils/doc/nm.1 +++ b/contrib/binutils/binutils/doc/nm.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "NM 1" -.TH NM 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH NM 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" nm \- list symbols from object files @@ -137,7 +137,8 @@ nm \- list symbols from object files .IX Header "SYNOPSIS" nm [\fB\-a\fR|\fB\-\-debug\-syms\fR] [\fB\-g\fR|\fB\-\-extern\-only\fR] [\fB\-B\fR] [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]] [\fB\-D\fR|\fB\-\-dynamic\fR] - [\fB\-s\fR|\fB\-\-print\-armap\fR] [\fB\-A\fR|\fB\-o\fR|\fB\-\-print\-file\-name\fR] + [\fB\-S\fR|\fB\-\-print\-size\fR] [\fB\-s\fR|\fB\-\-print\-armap\fR] + [\fB\-A\fR|\fB\-o\fR|\fB\-\-print\-file\-name\fR] [\fB\-n\fR|\fB\-v\fR|\fB\-\-numeric\-sort\fR] [\fB\-p\fR|\fB\-\-no\-sort\fR] [\fB\-r\fR|\fB\-\-reverse\-sort\fR] [\fB\-\-size\-sort\fR] [\fB\-u\fR|\fB\-\-undefined\-only\fR] [\fB\-t\fR \fIradix\fR|\fB\-\-radix=\fR\fIradix\fR] [\fB\-P\fR|\fB\-\-portability\fR] @@ -343,6 +344,13 @@ encountered. .PD Use the \s-1POSIX\s0.2 standard output format instead of the default format. Equivalent to \fB\-f posix\fR. +.IP "\fB\-S\fR" 4 +.IX Item "-S" +.PD 0 +.IP "\fB\-\-print\-size\fR" 4 +.IX Item "--print-size" +.PD +Print size of defined symbols for the \f(CW\*(C`bsd\*(C'\fR output format. .IP "\fB\-s\fR" 4 .IX Item "-s" .PD 0 diff --git a/contrib/binutils/binutils/doc/objcopy.1 b/contrib/binutils/binutils/doc/objcopy.1 index 44e1a44..a59a47a 100644 --- a/contrib/binutils/binutils/doc/objcopy.1 +++ b/contrib/binutils/binutils/doc/objcopy.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "OBJCOPY 1" -.TH OBJCOPY 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH OBJCOPY 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" objcopy \- copy and translate object files diff --git a/contrib/binutils/binutils/doc/objdump.1 b/contrib/binutils/binutils/doc/objdump.1 index 8dbfefa..24d8951 100644 --- a/contrib/binutils/binutils/doc/objdump.1 +++ b/contrib/binutils/binutils/doc/objdump.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "OBJDUMP 1" -.TH OBJDUMP 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH OBJDUMP 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" objdump \- display information from object files. diff --git a/contrib/binutils/binutils/doc/ranlib.1 b/contrib/binutils/binutils/doc/ranlib.1 index 0cdb70b..5512755 100644 --- a/contrib/binutils/binutils/doc/ranlib.1 +++ b/contrib/binutils/binutils/doc/ranlib.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "RANLIB 1" -.TH RANLIB 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH RANLIB 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" ranlib \- generate index to archive. diff --git a/contrib/binutils/binutils/doc/readelf.1 b/contrib/binutils/binutils/doc/readelf.1 index a0464d3..81f655d 100644 --- a/contrib/binutils/binutils/doc/readelf.1 +++ b/contrib/binutils/binutils/doc/readelf.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "READELF 1" -.TH READELF 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH READELF 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" readelf \- Displays information about \s-1ELF\s0 files. @@ -148,7 +148,7 @@ readelf [\fB\-a\fR|\fB\-\-all\fR] [\fB\-V\fR|\fB\-\-version\-info\fR] [\fB\-D\fR|\fB\-\-use\-dynamic\fR] [\fB\-x\fR |\fB\-\-hex\-dump=\fR] - [\fB\-w[liaprmfs]\fR|\fB\-\-debug\-dump\fR[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]] + [\fB\-w[liaprmfFso]\fR|\fB\-\-debug\-dump\fR[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]] [\fB\-histogram\fR] [\fB\-v\fR|\fB\-\-version\fR] [\fB\-W\fR|\fB\-\-wide\fR] @@ -274,11 +274,11 @@ symbols section. .IX Item "--hex-dump=" .PD Displays the contents of the indicated section as a hexadecimal dump. -.IP "\fB\-w[liaprmfs]\fR" 4 -.IX Item "-w[liaprmfs]" +.IP "\fB\-w[liaprmfFso]\fR" 4 +.IX Item "-w[liaprmfFso]" .PD 0 -.IP "\fB\-\-debug\-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\fR" 4 -.IX Item "--debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]" +.IP "\fB\-\-debug\-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\fR" 4 +.IX Item "--debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]" .PD Displays the contents of the debug sections in the file, if any are present. If one of the optional letters or words follows the switch diff --git a/contrib/binutils/binutils/doc/size.1 b/contrib/binutils/binutils/doc/size.1 index 4a2b995..09a8156 100644 --- a/contrib/binutils/binutils/doc/size.1 +++ b/contrib/binutils/binutils/doc/size.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "SIZE 1" -.TH SIZE 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH SIZE 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" size \- list section sizes and total size. diff --git a/contrib/binutils/binutils/doc/strings.1 b/contrib/binutils/binutils/doc/strings.1 index e61a2eb..74d9112 100644 --- a/contrib/binutils/binutils/doc/strings.1 +++ b/contrib/binutils/binutils/doc/strings.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "STRINGS 1" -.TH STRINGS 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH STRINGS 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" strings \- print the strings of printable characters in files. diff --git a/contrib/binutils/binutils/doc/strip.1 b/contrib/binutils/binutils/doc/strip.1 index abd02fc..f8cca3b 100644 --- a/contrib/binutils/binutils/doc/strip.1 +++ b/contrib/binutils/binutils/doc/strip.1 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "STRIP 1" -.TH STRIP 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools" +.TH STRIP 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" .UC .SH "NAME" strip \- Discard symbols from object files. diff --git a/contrib/binutils/binutils/emul_vanilla.c b/contrib/binutils/binutils/emul_vanilla.c new file mode 100644 index 0000000..d6cfebd --- /dev/null +++ b/contrib/binutils/binutils/emul_vanilla.c @@ -0,0 +1,30 @@ +/* Binutils emulation layer. + Copyright (C) 2002 Free Software Foundation, Inc. + Written by Tom Rix, Redhat. + + This file is part of GNU Binutils. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "binemul.h" + +struct bin_emulation_xfer_struct bin_vanilla_emulation = +{ + ar_emul_default_usage, + ar_emul_default_append, + ar_emul_default_replace, + ar_emul_default_create, + ar_emul_default_parse_arg, +}; diff --git a/contrib/binutils/binutils/filemode.c b/contrib/binutils/binutils/filemode.c index 7f9b1b7..ca00694f 100644 --- a/contrib/binutils/binutils/filemode.c +++ b/contrib/binutils/binutils/filemode.c @@ -57,7 +57,7 @@ static void setst PARAMS ((unsigned long, char *)); 9 'x' if any user may execute, 't' if the file is "sticky" (will be retained in swap space after execution), '-' otherwise. - 'T' if the file is sticky but not executable. */ + 'T' if the file is sticky but not executable. */ #if 0 @@ -115,7 +115,7 @@ filemodestring (statp, str) #endif /* Like filemodestring, but only the relevant part of the `struct stat' - is given as an argument. */ + is given as an argument. */ void mode_string (mode, str) @@ -144,7 +144,7 @@ mode_string (mode, str) 'l' for symbolic links 's' for sockets 'p' for fifos - '-' for any other file type. */ + '-' for any other file type. */ #ifndef S_ISDIR #ifdef S_IFDIR @@ -227,7 +227,7 @@ ftypelet (bits) } /* Set the 's' and 't' flags in file attributes string CHARS, - according to the file mode BITS. */ + according to the file mode BITS. */ static void setst (bits, chars) @@ -238,7 +238,7 @@ setst (bits, chars) if (bits & S_ISUID) { if (chars[3] != 'x') - /* Set-uid, but not executable by owner. */ + /* Set-uid, but not executable by owner. */ chars[3] = 'S'; else chars[3] = 's'; @@ -248,7 +248,7 @@ setst (bits, chars) if (bits & S_ISGID) { if (chars[6] != 'x') - /* Set-gid, but not executable by group. */ + /* Set-gid, but not executable by group. */ chars[6] = 'S'; else chars[6] = 's'; @@ -258,7 +258,7 @@ setst (bits, chars) if (bits & S_ISVTX) { if (chars[9] != 'x') - /* Sticky, but not executable by others. */ + /* Sticky, but not executable by others. */ chars[9] = 'T'; else chars[9] = 't'; diff --git a/contrib/binutils/binutils/ieee.c b/contrib/binutils/binutils/ieee.c index ad5ddc7..4735fb3 100644 --- a/contrib/binutils/binutils/ieee.c +++ b/contrib/binutils/binutils/ieee.c @@ -1,5 +1,5 @@ /* ieee.c -- Read and write IEEE-695 debugging information. - Copyright 1996, 1998, 2000, 2001 Free Software Foundation, Inc. + Copyright 1996, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of GNU Binutils. @@ -344,7 +344,7 @@ ieee_read_number (info, pp, pv) } /* Read a number in an IEEE file. If ppresent is not NULL, the number - need not be there. */ + need not be there. */ static boolean ieee_read_optional_number (info, pp, pv, ppresent) @@ -1036,7 +1036,7 @@ parse_ieee_bb (info, pp) case 2: /* BB2: Global type definitions. The name is supposed to be - empty, but we don't check. */ + empty, but we don't check. */ if (! debug_set_filename (info->dhandle, "*global*")) return false; info->saw_filename = true; @@ -1916,7 +1916,7 @@ parse_ieee_ty (info, pp) switch (kind) { default: - ieee_error (info, ty_start, _("unsupported qualifer")); + ieee_error (info, ty_start, _("unsupported qualifier")); return false; case 1: @@ -4102,7 +4102,6 @@ static const struct debug_write_fns ieee_fns = /* Initialize a buffer to be empty. */ -/*ARGSUSED*/ static boolean ieee_init_buffer (info, buflist) struct ieee_handle *info ATTRIBUTE_UNUSED; @@ -4143,7 +4142,6 @@ ieee_change_buffer (info, buflist) /* Append a buffer chain. */ -/*ARGSUSED*/ static boolean ieee_append_buffer (info, mainbuf, newbuf) struct ieee_handle *info ATTRIBUTE_UNUSED; @@ -5273,7 +5271,6 @@ ieee_add_bb11 (info, sec, low, high) down the file name anyhow. IEEE debugging information doesn't seem to store this information anywhere. */ -/*ARGSUSED*/ static boolean ieee_start_source (p, filename) PTR p ATTRIBUTE_UNUSED; @@ -5737,7 +5734,6 @@ ieee_range_type (p, low, high) /* Make an array type. */ -/*ARGSUSED*/ static boolean ieee_array_type (p, low, high, stringp) PTR p; @@ -6207,7 +6203,7 @@ ieee_end_struct_type (p) /* If we were ignoring this struct definition because it was a duplicate defintion, just through away whatever bytes we have - accumulated. Leave the type on the stack. */ + accumulated. Leave the type on the stack. */ if (info->type_stack->type.ignorep) return true; @@ -6761,7 +6757,7 @@ ieee_tag_type (p, name, id, kind) if (! nt->type.localp) { /* This is a duplicate of a global type, so it must be - local. */ + local. */ localp = true; } } diff --git a/contrib/binutils/binutils/is-ranlib.c b/contrib/binutils/binutils/is-ranlib.c index fde72a4..22ce3aa 100644 --- a/contrib/binutils/binutils/is-ranlib.c +++ b/contrib/binutils/binutils/is-ranlib.c @@ -1,3 +1,3 @@ -/* Linked with ar.o to flag that this program is 'ranlib' (not 'ar'). */ +/* Linked with ar.o to flag that this program is 'ranlib' (not 'ar'). */ int is_ranlib = 1; diff --git a/contrib/binutils/binutils/is-strip.c b/contrib/binutils/binutils/is-strip.c index 215341a..338245d 100644 --- a/contrib/binutils/binutils/is-strip.c +++ b/contrib/binutils/binutils/is-strip.c @@ -1,4 +1,4 @@ /* Linked with objcopy.o to flag that this program is 'strip' (not - 'objcopy'). */ + 'objcopy'). */ int is_strip = 1; diff --git a/contrib/binutils/binutils/maybe-ranlib.c b/contrib/binutils/binutils/maybe-ranlib.c index f37bc0f..dcaded3 100644 --- a/contrib/binutils/binutils/maybe-ranlib.c +++ b/contrib/binutils/binutils/maybe-ranlib.c @@ -1,4 +1,4 @@ /* Linked with ar.o to flag that this program decides at runtime - (using argv[0] if it is is 'ar' or 'ranlib'. */ + (using argv[0] if it is is 'ar' or 'ranlib'. */ int is_ranlib = -1; diff --git a/contrib/binutils/binutils/maybe-strip.c b/contrib/binutils/binutils/maybe-strip.c index 6467c99..cfcc1ba 100644 --- a/contrib/binutils/binutils/maybe-strip.c +++ b/contrib/binutils/binutils/maybe-strip.c @@ -1,4 +1,4 @@ /* Linked with objcopy.o to flag that this program decides at runtime - (using argv[0] if it is is 'strip' or 'objcopy'. */ + (using argv[0] if it is is 'strip' or 'objcopy'. */ int is_strip = -1; diff --git a/contrib/binutils/binutils/nm.c b/contrib/binutils/binutils/nm.c index eb8a55f..b9689b1 100644 --- a/contrib/binutils/binutils/nm.c +++ b/contrib/binutils/binutils/nm.c @@ -1,6 +1,6 @@ /* nm.c -- Describe symbol table of a rel file. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001 + 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -23,11 +23,14 @@ #include "bfd.h" #include "progress.h" #include "bucomm.h" +#include "budemang.h" #include "getopt.h" #include "aout/stab_gnu.h" #include "aout/ranlib.h" #include "demangle.h" #include "libiberty.h" +#include "elf-bfd.h" +#include "elf/common.h" /* When sorting by size, we use this structure to hold the size and a pointer to the minisymbol. */ @@ -49,142 +52,84 @@ struct get_relocs_info asymbol **syms; }; -static void -usage PARAMS ((FILE *, int)); - -static void -set_print_radix PARAMS ((char *)); - -static void -set_output_format PARAMS ((char *)); - -static void -display_archive PARAMS ((bfd *)); - -static boolean -display_file PARAMS ((char *filename)); - -static void -display_rel_file PARAMS ((bfd * file, bfd * archive)); - -static long -filter_symbols PARAMS ((bfd *, boolean, PTR, long, unsigned int)); - -static long -sort_symbols_by_size PARAMS ((bfd *, boolean, PTR, long, unsigned int, - struct size_sym **)); - -static void -print_symbols PARAMS ((bfd *, boolean, PTR, long, unsigned int, bfd *)); - -static void -print_size_symbols PARAMS ((bfd *, boolean, struct size_sym *, long, bfd *)); - -static void -print_symname PARAMS ((const char *, const char *, bfd *)); - -static void -print_symbol PARAMS ((bfd *, asymbol *, bfd *)); - -static void -print_symdef_entry PARAMS ((bfd * abfd)); +struct extended_symbol_info +{ + symbol_info *sinfo; + bfd_vma ssize; + elf_symbol_type *elfinfo; + /* FIXME: We should add more fields for Type, Line, Section. */ +}; +#define SYM_NAME(sym) (sym->sinfo->name) +#define SYM_VALUE(sym) (sym->sinfo->value) +#define SYM_TYPE(sym) (sym->sinfo->type) +#define SYM_STAB_NAME(sym) (sym->sinfo->stab_name) +#define SYM_STAB_DESC(sym) (sym->sinfo->stab_desc) +#define SYM_STAB_OTHER(sym) (sym->sinfo->stab_other) +#define SYM_SIZE(sym) \ + (sym->elfinfo ? sym->elfinfo->internal_elf_sym.st_size: sym->ssize) + +static void usage PARAMS ((FILE *, int)); +static void set_print_radix PARAMS ((char *)); +static void set_output_format PARAMS ((char *)); +static void display_archive PARAMS ((bfd *)); +static boolean display_file PARAMS ((char *)); +static void display_rel_file PARAMS ((bfd *, bfd *)); +static long filter_symbols PARAMS ((bfd *, boolean, PTR, long, unsigned int)); +static long sort_symbols_by_size PARAMS ((bfd *, boolean, PTR, long, unsigned int, struct size_sym **)); +static void print_symbols PARAMS ((bfd *, boolean, PTR, long, unsigned int, bfd *)); +static void print_size_symbols PARAMS ((bfd *, boolean, struct size_sym *, long, bfd *)); +static void print_symname PARAMS ((const char *, const char *, bfd *)); +static void print_symbol PARAMS ((bfd *, asymbol *, bfd_vma ssize, bfd *)); +static void print_symdef_entry PARAMS ((bfd *)); /* The sorting functions. */ - -static int -numeric_forward PARAMS ((const PTR, const PTR)); - -static int -numeric_reverse PARAMS ((const PTR, const PTR)); - -static int -non_numeric_forward PARAMS ((const PTR, const PTR)); - -static int -non_numeric_reverse PARAMS ((const PTR, const PTR)); - -static int -size_forward1 PARAMS ((const PTR, const PTR)); - -static int -size_forward2 PARAMS ((const PTR, const PTR)); +static int numeric_forward PARAMS ((const PTR, const PTR)); +static int numeric_reverse PARAMS ((const PTR, const PTR)); +static int non_numeric_forward PARAMS ((const PTR, const PTR)); +static int non_numeric_reverse PARAMS ((const PTR, const PTR)); +static int size_forward1 PARAMS ((const PTR, const PTR)); +static int size_forward2 PARAMS ((const PTR, const PTR)); /* The output formatting functions. */ - -static void -print_object_filename_bsd PARAMS ((char *filename)); - -static void -print_object_filename_sysv PARAMS ((char *filename)); - -static void -print_object_filename_posix PARAMS ((char *filename)); - - -static void -print_archive_filename_bsd PARAMS ((char *filename)); - -static void -print_archive_filename_sysv PARAMS ((char *filename)); - -static void -print_archive_filename_posix PARAMS ((char *filename)); - - -static void -print_archive_member_bsd PARAMS ((char *archive, CONST char *filename)); - -static void -print_archive_member_sysv PARAMS ((char *archive, CONST char *filename)); - -static void -print_archive_member_posix PARAMS ((char *archive, CONST char *filename)); - - -static void -print_symbol_filename_bsd PARAMS ((bfd * archive_bfd, bfd * abfd)); - -static void -print_symbol_filename_sysv PARAMS ((bfd * archive_bfd, bfd * abfd)); - -static void -print_symbol_filename_posix PARAMS ((bfd * archive_bfd, bfd * abfd)); - - -static void -print_value PARAMS ((bfd *, bfd_vma)); - -static void -print_symbol_info_bsd PARAMS ((symbol_info * info, bfd * abfd)); - -static void -print_symbol_info_sysv PARAMS ((symbol_info * info, bfd * abfd)); - -static void -print_symbol_info_posix PARAMS ((symbol_info * info, bfd * abfd)); - -static void -get_relocs PARAMS ((bfd *, asection *, PTR)); +static void print_object_filename_bsd PARAMS ((char *)); +static void print_object_filename_sysv PARAMS ((char *)); +static void print_object_filename_posix PARAMS ((char *)); +static void print_archive_filename_bsd PARAMS ((char *)); +static void print_archive_filename_sysv PARAMS ((char *)); +static void print_archive_filename_posix PARAMS ((char *)); +static void print_archive_member_bsd PARAMS ((char *, const char *)); +static void print_archive_member_sysv PARAMS ((char *, const char *)); +static void print_archive_member_posix PARAMS ((char *, const char *)); +static void print_symbol_filename_bsd PARAMS ((bfd *, bfd *)); +static void print_symbol_filename_sysv PARAMS ((bfd *, bfd *)); +static void print_symbol_filename_posix PARAMS ((bfd *, bfd *)); +static void print_value PARAMS ((bfd *, bfd_vma)); +static void print_symbol_info_bsd PARAMS ((struct extended_symbol_info *, bfd *)); +static void print_symbol_info_sysv PARAMS ((struct extended_symbol_info *, bfd *)); +static void print_symbol_info_posix PARAMS ((struct extended_symbol_info *, bfd *)); +static void get_relocs PARAMS ((bfd *, asection *, PTR)); +static const char * get_symbol_type PARAMS ((unsigned int)); /* Support for different output formats. */ struct output_fns { /* Print the name of an object file given on the command line. */ - void (*print_object_filename) PARAMS ((char *filename)); + void (*print_object_filename) PARAMS ((char *)); /* Print the name of an archive file given on the command line. */ - void (*print_archive_filename) PARAMS ((char *filename)); + void (*print_archive_filename) PARAMS ((char *)); /* Print the name of an archive member file. */ - void (*print_archive_member) PARAMS ((char *archive, CONST char *filename)); + void (*print_archive_member) PARAMS ((char *, const char *)); /* Print the name of the file (and archive, if there is one) containing a symbol. */ - void (*print_symbol_filename) PARAMS ((bfd * archive_bfd, bfd * abfd)); + void (*print_symbol_filename) PARAMS ((bfd *, bfd *)); /* Print a line of information about a symbol. */ - void (*print_symbol_info) PARAMS ((symbol_info * info, bfd * abfd)); + void (*print_symbol_info) PARAMS ((struct extended_symbol_info *, bfd *)); }; + static struct output_fns formats[] = { {print_object_filename_bsd, @@ -213,23 +158,23 @@ static struct output_fns formats[] = /* The output format to use. */ static struct output_fns *format = &formats[FORMAT_DEFAULT]; - /* Command options. */ static int do_demangle = 0; /* Pretty print C++ symbol names. */ -static int external_only = 0; /* print external symbols only */ -static int defined_only = 0; /* Print defined symbols only */ -static int no_sort = 0; /* don't sort; print syms in order found */ -static int print_debug_syms = 0; /* print debugger-only symbols too */ -static int print_armap = 0; /* describe __.SYMDEF data in archive files. */ -static int reverse_sort = 0; /* sort in downward(alpha or numeric) order */ -static int sort_numerically = 0; /* sort in numeric rather than alpha order */ -static int sort_by_size = 0; /* sort by size of symbol */ -static int undefined_only = 0; /* print undefined symbols only */ -static int dynamic = 0; /* print dynamic symbols. */ -static int show_version = 0; /* show the version number */ -static int show_stats = 0; /* show statistics */ -static int line_numbers = 0; /* print line numbers for symbols */ +static int external_only = 0; /* Print external symbols only. */ +static int defined_only = 0; /* Print defined symbols only. */ +static int no_sort = 0; /* Don't sort; print syms in order found. */ +static int print_debug_syms = 0;/* Print debugger-only symbols too. */ +static int print_armap = 0; /* Describe __.SYMDEF data in archive files. */ +static int print_size = 0; /* Print size of defined symbols. */ +static int reverse_sort = 0; /* Sort in downward(alpha or numeric) order. */ +static int sort_numerically = 0;/* Sort in numeric rather than alpha order. */ +static int sort_by_size = 0; /* Sort by size of symbol. */ +static int undefined_only = 0; /* Print undefined symbols only. */ +static int dynamic = 0; /* Print dynamic symbols. */ +static int show_version = 0; /* Show the version number. */ +static int show_stats = 0; /* Show statistics. */ +static int line_numbers = 0; /* Print line numbers for symbols. */ /* When to print the names of files. Not mutually exclusive in SYSV format. */ static int filename_per_file = 0; /* Once per file, on its own line. */ @@ -279,6 +224,7 @@ static struct option long_options[] = {"portability", no_argument, 0, 'P'}, {"print-armap", no_argument, &print_armap, 1}, {"print-file-name", no_argument, 0, 'o'}, + {"print-size", no_argument, 0, 'S'}, {"radix", required_argument, 0, 't'}, {"reverse-sort", no_argument, &reverse_sort, 1}, {"size-sort", no_argument, &sort_by_size, 1}, @@ -290,7 +236,7 @@ static struct option long_options[] = {0, no_argument, 0, 0} }; -/* Some error-reporting functions */ +/* Some error-reporting functions. */ static void usage (stream, status) @@ -320,6 +266,7 @@ usage (stream, status) -p, --no-sort Do not sort the symbols\n\ -P, --portability Same as --format=posix\n\ -r, --reverse-sort Reverse the sense of the sort\n\ + -S, --print-size Print size of defined symbols\n\ -s, --print-armap Include index for symbols from archive members\n\ --size-sort Sort symbols by size\n\ -t, --radix=RADIX Use RADIX for printing symbol values\n\ @@ -409,6 +356,7 @@ main (argc, argv) #endif #if defined (HAVE_SETLOCALE) setlocale (LC_CTYPE, ""); + setlocale (LC_COLLATE, ""); #endif bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); @@ -421,7 +369,7 @@ main (argc, argv) bfd_init (); set_default_bfd_target (); - while ((c = getopt_long (argc, argv, "aABCDef:gHhlnopPrst:uvVvX:", + while ((c = getopt_long (argc, argv, "aABCDef:gHhlnopPrSst:uvVvX:", long_options, (int *) 0)) != EOF) { switch (c) @@ -441,14 +389,14 @@ main (argc, argv) if (optarg != NULL) { enum demangling_styles style; - + style = cplus_demangle_name_to_style (optarg); - if (style == unknown_demangling) + if (style == unknown_demangling) fatal (_("unknown demangling style `%s'"), optarg); - + cplus_demangle_set_style (style); - } + } break; case 'D': dynamic = 1; @@ -484,6 +432,9 @@ main (argc, argv) case 's': print_armap = 1; break; + case 'S': + print_size = 1; + break; case 't': set_print_radix (optarg); break; @@ -552,6 +503,32 @@ main (argc, argv) return retval; } +static const char * +get_symbol_type (type) + unsigned int type; +{ + static char buff [32]; + + switch (type) + { + case STT_NOTYPE: return "NOTYPE"; + case STT_OBJECT: return "OBJECT"; + case STT_FUNC: return "FUNC"; + case STT_SECTION: return "SECTION"; + case STT_FILE: return "FILE"; + case STT_COMMON: return "COMMON"; + case STT_TLS: return "TLS"; + default: + if (type >= STT_LOPROC && type <= STT_HIPROC) + sprintf (buff, _(": %d"), type); + else if (type >= STT_LOOS && type <= STT_HIOS) + sprintf (buff, _(": %d"), type); + else + sprintf (buff, _(": %d"), type); + return buff; + } +} + static void display_archive (file) bfd *file; @@ -580,6 +557,10 @@ display_archive (file) if (bfd_check_format_matches (arfile, bfd_object, &matching)) { + char buf[30]; + + bfd_sprintf_vma (arfile, buf, (bfd_vma) -1); + print_width = strlen (buf); (*format->print_archive_member) (bfd_get_filename (file), bfd_get_filename (arfile)); display_rel_file (arfile, file); @@ -632,6 +613,10 @@ display_file (filename) } else if (bfd_check_format_matches (file, bfd_object, &matching)) { + char buf[30]; + + bfd_sprintf_vma (file, buf, (bfd_vma) -1); + print_width = strlen (buf); (*format->print_object_filename) (filename); display_rel_file (file, NULL); } @@ -722,8 +707,23 @@ non_numeric_forward (P_x, P_y) xn = bfd_asymbol_name (x); yn = bfd_asymbol_name (y); - return ((xn == NULL) ? ((yn == NULL) ? 0 : -1) : - ((yn == NULL) ? 1 : strcmp (xn, yn))); + if (yn == NULL) + return xn != NULL; + if (xn == NULL) + return -1; + +#ifdef HAVE_STRCOLL + /* Solaris 2.5 has a bug in strcoll. + strcoll returns invalid values when confronted with empty strings. */ + if (*yn == '\0') + return *xn != '\0'; + if (*xn == '\0') + return -1; + + return strcoll (xn, yn); +#else + return strcmp (xn, yn); +#endif } static int @@ -839,10 +839,10 @@ size_forward2 (P_x, P_y) return sorters[0][reverse_sort] (x->minisym, y->minisym); } -/* Sort the symbols by size. We guess the size by assuming that the - difference between the address of a symbol and the address of the - next higher symbol is the size. FIXME: ELF actually stores a size - with each symbol. We should use it. */ +/* Sort the symbols by size. ELF provides a size but for other formats + we have to make a guess by assuming that the difference between the + address of a symbol and the address of the next higher symbol is the + size. */ static long sort_symbols_by_size (abfd, dynamic, minisyms, symcount, size, symsizesp) @@ -868,7 +868,6 @@ sort_symbols_by_size (abfd, dynamic, minisyms, symcount, size, symsizesp) /* Note that filter_symbols has already removed all absolute and undefined symbols. Here we remove all symbols whose size winds up as zero. */ - from = (bfd_byte *) minisyms; fromend = from + symcount * size; @@ -904,7 +903,9 @@ sort_symbols_by_size (abfd, dynamic, minisyms, symcount, size, symsizesp) sec = bfd_get_section (sym); - if (bfd_is_com_section (sec)) + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) + sz = ((elf_symbol_type *) sym)->internal_elf_sym.st_size; + else if (bfd_is_com_section (sec)) sz = sym->value; else { @@ -950,7 +951,6 @@ display_rel_file (abfd, archive_bfd) PTR minisyms; unsigned int size; struct size_sym *symsizes; - char buf[30]; if (! dynamic) { @@ -971,9 +971,6 @@ display_rel_file (abfd, archive_bfd) return; } - bfd_sprintf_vma (abfd, buf, (bfd_vma) -1); - print_width = strlen (buf); - /* Discard the symbols we don't want to print. It's OK to do this in place; we'll free the storage anyway (after printing). */ @@ -1035,7 +1032,7 @@ filter_symbols (abfd, dynamic, minisyms, symcount, size) asymbol *sym; PROGRESS (1); - + sym = bfd_minisymbol_to_symbol (abfd, dynamic, (const PTR) from, store); if (sym == NULL) bfd_fatal (bfd_get_filename (abfd)); @@ -1089,21 +1086,11 @@ print_symname (format, name, abfd) { if (do_demangle && *name) { - char *res; + char *res = demangle (abfd, name); - /* In this mode, give a user-level view of the symbol name - even if it's not mangled; strip off any leading - underscore. */ - if (bfd_get_symbol_leading_char (abfd) == name[0]) - name++; - - res = cplus_demangle (name, DMGL_ANSI | DMGL_PARAMS); - if (res) - { - printf (format, res); - free (res); - return; - } + printf (format, res); + free (res); + return; } printf (format, name); @@ -1138,13 +1125,13 @@ print_symbols (abfd, dynamic, minisyms, symcount, size, archive_bfd) if (sym == NULL) bfd_fatal (bfd_get_filename (abfd)); - print_symbol (abfd, sym, archive_bfd); + print_symbol (abfd, sym, (bfd_vma) 0, archive_bfd); } } /* Print the symbols when sorting by size. */ -static void +static void print_size_symbols (abfd, dynamic, symsizes, symcount, archive_bfd) bfd *abfd; boolean dynamic; @@ -1164,25 +1151,29 @@ print_size_symbols (abfd, dynamic, symsizes, symcount, archive_bfd) for (; from < fromend; from++) { asymbol *sym; + bfd_vma ssize; sym = bfd_minisymbol_to_symbol (abfd, dynamic, from->minisym, store); if (sym == NULL) bfd_fatal (bfd_get_filename (abfd)); - /* Set the symbol value so that we actually display the symbol - size. */ - sym->value = from->size - bfd_section_vma (abfd, bfd_get_section (sym)); + /* For elf we have already computed the correct symbol size. */ + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) + ssize = from->size; + else + ssize = from->size - bfd_section_vma (abfd, bfd_get_section (sym)); - print_symbol (abfd, sym, archive_bfd); + print_symbol (abfd, sym, ssize, archive_bfd); } } /* Print a single symbol. */ static void -print_symbol (abfd, sym, archive_bfd) +print_symbol (abfd, sym, ssize, archive_bfd) bfd *abfd; asymbol *sym; + bfd_vma ssize; bfd *archive_bfd; { PROGRESS (1); @@ -1197,9 +1188,16 @@ print_symbol (abfd, sym, archive_bfd) else { symbol_info syminfo; + struct extended_symbol_info info; bfd_get_symbol_info (abfd, sym, &syminfo); - (*format->print_symbol_info) (&syminfo, abfd); + info.sinfo = &syminfo; + info.ssize = ssize; + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) + info.elfinfo = (elf_symbol_type *) sym; + else + info.elfinfo = NULL; + (*format->print_symbol_info) (&info, abfd); } if (line_numbers) @@ -1242,7 +1240,6 @@ print_symbol (abfd, sym, archive_bfd) /* For an undefined symbol, we try to find a reloc for the symbol, and print the line number of the reloc. */ - if (abfd != lineno_cache_rel_bfd && relocs != NULL) { for (i = 0; i < seccount; i++) @@ -1342,8 +1339,12 @@ print_object_filename_sysv (filename) printf (_("\n\nUndefined symbols from %s:\n\n"), filename); else printf (_("\n\nSymbols from %s:\n\n"), filename); - printf (_("\ -Name Value Class Type Size Line Section\n\n")); + if (print_width == 8) + printf (_("\ +Name Value Class Type Size Line Section\n\n")); + else + printf (_("\ +Name Value Class Type Size Line Section\n\n")); } static void @@ -1381,7 +1382,7 @@ print_archive_filename_posix (filename) static void print_archive_member_bsd (archive, filename) char *archive ATTRIBUTE_UNUSED; - CONST char *filename; + const char *filename; { if (!filename_per_symbol) printf ("\n%s:\n", filename); @@ -1390,20 +1391,24 @@ print_archive_member_bsd (archive, filename) static void print_archive_member_sysv (archive, filename) char *archive; - CONST char *filename; + const char *filename; { if (undefined_only) printf (_("\n\nUndefined symbols from %s[%s]:\n\n"), archive, filename); else printf (_("\n\nSymbols from %s[%s]:\n\n"), archive, filename); - printf (_("\ -Name Value Class Type Size Line Section\n\n")); + if (print_width == 8) + printf (_("\ +Name Value Class Type Size Line Section\n\n")); + else + printf (_("\ +Name Value Class Type Size Line Section\n\n")); } static void print_archive_member_posix (archive, filename) char *archive; - CONST char *filename; + const char *filename; { if (!filename_per_symbol) printf ("%s[%s]:\n", archive, filename); @@ -1486,66 +1491,109 @@ print_value (abfd, val) static void print_symbol_info_bsd (info, abfd) - symbol_info *info; + struct extended_symbol_info *info; bfd *abfd; { - if (bfd_is_undefined_symclass (info->type)) + if (bfd_is_undefined_symclass (SYM_TYPE (info))) { if (print_width == 16) printf (" "); printf (" "); } else - print_value (abfd, info->value); - printf (" %c", info->type); - if (info->type == '-') + { + print_value (abfd, SYM_VALUE (info)); + + if (print_size && SYM_SIZE (info)) + { + printf(" "); + print_value (abfd, SYM_SIZE (info)); + } + } + + printf (" %c", SYM_TYPE (info)); + + if (SYM_TYPE (info) == '-') { /* A stab. */ printf (" "); - printf (other_format, info->stab_other); + printf (other_format, SYM_STAB_OTHER (info)); printf (" "); - printf (desc_format, info->stab_desc); - printf (" %5s", info->stab_name); + printf (desc_format, SYM_STAB_DESC (info)); + printf (" %5s", SYM_STAB_NAME (info)); } - print_symname (" %s", info->name, abfd); + print_symname (" %s", SYM_NAME (info), abfd); } static void print_symbol_info_sysv (info, abfd) - symbol_info *info; + struct extended_symbol_info *info; bfd *abfd; { - print_symname ("%-20s|", info->name, abfd); /* Name */ - if (bfd_is_undefined_symclass (info->type)) - printf (" "); /* Value */ + print_symname ("%-20s|", SYM_NAME (info), abfd); + + if (bfd_is_undefined_symclass (SYM_TYPE (info))) + { + if (print_width == 8) + printf (" "); + else + printf (" "); + } else - print_value (abfd, info->value); - printf ("| %c |", info->type); /* Class */ - if (info->type == '-') + print_value (abfd, SYM_VALUE (info)); + + printf ("| %c |", SYM_TYPE (info)); + + if (SYM_TYPE (info) == '-') { /* A stab. */ - printf ("%18s| ", info->stab_name); /* (C) Type */ - printf (desc_format, info->stab_desc); /* Size */ - printf ("| |"); /* Line, Section */ + printf ("%18s| ", SYM_STAB_NAME (info)); /* (C) Type */ + printf (desc_format, SYM_STAB_DESC (info)); /* Size */ + printf ("| |"); /* Line, Section */ } else - printf (" | | |"); /* Type, Size, Line, Section */ + { + /* Type, Size, Line, Section */ + if (info->elfinfo) + printf ("%18s|", + get_symbol_type (ELF_ST_TYPE (info->elfinfo->internal_elf_sym.st_info))); + else + printf (" |"); + + if (SYM_SIZE (info)) + print_value (abfd, SYM_SIZE (info)); + else + { + if (print_width == 8) + printf (" "); + else + printf (" "); + } + + if (info->elfinfo) + printf("| |%s", info->elfinfo->symbol.section->name); + else + printf("| |"); + } } static void print_symbol_info_posix (info, abfd) - symbol_info *info; + struct extended_symbol_info *info; bfd *abfd; { - print_symname ("%s ", info->name, abfd); - printf ("%c ", info->type); - if (bfd_is_undefined_symclass (info->type)) + print_symname ("%s ", SYM_NAME (info), abfd); + printf ("%c ", SYM_TYPE (info)); + + if (bfd_is_undefined_symclass (SYM_TYPE (info))) printf (" "); else - print_value (abfd, info->value); - /* POSIX.2 wants the symbol size printed here, when applicable; - BFD currently doesn't provide it, so we take the easy way out by - considering it to never be applicable. */ + { + print_value (abfd, SYM_VALUE (info)); + printf (" "); + if (SYM_SIZE (info)) + print_value (abfd, SYM_SIZE (info)); + } } static void diff --git a/contrib/binutils/binutils/not-ranlib.c b/contrib/binutils/binutils/not-ranlib.c index afb9ceb..6e61331 100644 --- a/contrib/binutils/binutils/not-ranlib.c +++ b/contrib/binutils/binutils/not-ranlib.c @@ -1,3 +1,3 @@ -/* Linked with ar.o to flag that this program is 'ar' (not 'ranlib'). */ +/* Linked with ar.o to flag that this program is 'ar' (not 'ranlib'). */ int is_ranlib = 0; diff --git a/contrib/binutils/binutils/not-strip.c b/contrib/binutils/binutils/not-strip.c index 98093ce..854a669 100644 --- a/contrib/binutils/binutils/not-strip.c +++ b/contrib/binutils/binutils/not-strip.c @@ -1,4 +1,4 @@ /* Linked with objcopy.o to flag that this program is 'objcopy' (not - 'strip'). */ + 'strip'). */ int is_strip = 0; diff --git a/contrib/binutils/binutils/objcopy.c b/contrib/binutils/binutils/objcopy.c index 371e337..241a2c6 100644 --- a/contrib/binutils/binutils/objcopy.c +++ b/contrib/binutils/binutils/objcopy.c @@ -32,7 +32,7 @@ /* A list of symbols to explicitly strip out, or to keep. A linked list is good enough for a small number from the command line, but this will slow things down a lot if many symbols are being - deleted. */ + deleted. */ struct symlist { @@ -97,7 +97,7 @@ static asymbol **osympp = NULL; /* Output symbols that survive stripping */ static int copy_byte = -1; static int interleave = 4; -static boolean verbose; /* Print file and target names. */ +static boolean verbose; /* Print file and target names. */ static boolean preserve_dates; /* Preserve input file timestamp. */ static int status = 0; /* Exit status. */ @@ -110,7 +110,7 @@ enum strip_action STRIP_ALL /* strip all symbols */ }; -/* Which symbols to remove. */ +/* Which symbols to remove. */ static enum strip_action strip_symbols; enum locals_action @@ -339,7 +339,7 @@ extern char *program_name; /* This flag distinguishes between strip and objcopy: 1 means this is 'strip'; 0 means this is 'objcopy'. - -1 means if we should use argv[0] to decide. */ + -1 means if we should use argv[0] to decide. */ extern int is_strip; /* The maximum length of an S record. This variable is declared in srec.c @@ -564,7 +564,7 @@ add_specific_symbol (name, list) *list = tmp_list; } -/* Add symbols listed in `filename' to strip_specific_list. */ +/* Add symbols listed in `filename' to strip_specific_list. */ #define IS_WHITESPACE(c) ((c) == ' ' || (c) == '\t') #define IS_LINE_TERMINATOR(c) ((c) == '\n' || (c) == '\r' || (c) == '\0') @@ -579,7 +579,7 @@ add_specific_symbols (filename, list) char * line; char * buffer; unsigned int line_count; - + if (stat (filename, & st) < 0) fatal (_("cannot stat: %s: %s"), filename, strerror (errno)); if (st.st_size == 0) @@ -598,7 +598,7 @@ add_specific_symbols (filename, list) buffer [st.st_size + 1] = '\0'; line_count = 1; - + for (line = buffer; * line != '\0'; line ++) { char * eol; @@ -617,7 +617,7 @@ add_specific_symbols (filename, list) ++ eol; finished = true; break; - + case '\r': * eol = '\0'; /* Cope with \r\n. */ @@ -625,18 +625,18 @@ add_specific_symbols (filename, list) ++ eol; finished = true; break; - + case 0: finished = true; break; - + case '#': /* Line comment, Terminate the line here, in case a name is present and then allow the rest of the loop to find the real end of the line. */ * eol = '\0'; break; - + default: break; } @@ -653,8 +653,8 @@ add_specific_symbols (filename, list) for (name_end = name; (! IS_WHITESPACE (* name_end)) && (! IS_LINE_TERMINATOR (* name_end)); - name_end ++) - ; + name_end ++) + ; if (! IS_LINE_TERMINATOR (* name_end)) { @@ -667,7 +667,7 @@ add_specific_symbols (filename, list) non_fatal (_("Ignoring rubbish found on line %d of %s"), line_count, filename); } - + * name_end = '\0'; if (name_end > name) @@ -797,7 +797,7 @@ filter_symbols (abfd, obfd, osyms, isyms, symcount) && ((*bfd_get_section (sym)->symbol_ptr_ptr)->flags & BSF_KEEP) != 0)) keep = 1; - else if (relocatable /* Relocatable file. */ + else if (relocatable /* Relocatable file. */ && (flags & (BSF_GLOBAL | BSF_WEAK)) != 0) keep = 1; else if (bfd_decode_symclass (sym) == 'I') @@ -960,8 +960,8 @@ copy_object (ibfd, obfd) start = bfd_get_start_address (ibfd); start += change_start; - /* Neither the start address nor the flags - need to be set for a core file. */ + /* Neither the start address nor the flags + need to be set for a core file. */ if (bfd_get_format (obfd) != bfd_core) { if (!bfd_set_start_address (obfd, start) @@ -1088,8 +1088,8 @@ copy_object (ibfd, obfd) size + (gap_stop - gap_start))) { non_fatal (_("Can't fill gap after %s: %s"), - bfd_get_section_name (obfd, osections[i]), - bfd_errmsg (bfd_get_error ())); + bfd_get_section_name (obfd, osections[i]), + bfd_errmsg (bfd_get_error ())); status = 1; break; } @@ -1113,8 +1113,8 @@ copy_object (ibfd, obfd) pad_to - lma)) { non_fatal (_("Can't add padding to %s: %s"), - bfd_get_section_name (obfd, osections[c - 1]), - bfd_errmsg (bfd_get_error ())); + bfd_get_section_name (obfd, osections[c - 1]), + bfd_errmsg (bfd_get_error ())); status = 1; } else @@ -1363,7 +1363,7 @@ copy_archive (ibfd, obfd, output_target) if (!bfd_close (output_bfd)) { bfd_nonfatal (bfd_get_filename (output_bfd)); - /* Error in new object file. Don't change archive. */ + /* Error in new object file. Don't change archive. */ status = 1; } @@ -1493,7 +1493,7 @@ add_section_rename (old_name, new_name, flags) if (strcmp (rename->new_name, new_name) == 0 && rename->flags == flags) return; - + fatal (_("Multiple renames of section %s"), old_name); } @@ -1503,7 +1503,7 @@ add_section_rename (old_name, new_name, flags) rename->new_name = new_name; rename->flags = flags; rename->next = section_rename_list; - + section_rename_list = rename; } @@ -1553,7 +1553,7 @@ setup_section (ibfd, isection, obfdarg) flagword flags; const char *err; const char * name; - + if ((bfd_get_section_flags (ibfd, isection) & SEC_DEBUGGING) != 0 && (strip_symbols == STRIP_DEBUG || strip_symbols == STRIP_UNNEEDED @@ -1573,7 +1573,7 @@ setup_section (ibfd, isection, obfdarg) /* Get the, possibly new, name of the output section. */ name = find_section_rename (ibfd, isection, & flags); - + osection = bfd_make_section_anyway (obfd, name); if (osection == NULL) @@ -1684,13 +1684,15 @@ copy_section (ibfd, isection, obfdarg) sec_ptr osection; bfd_size_type size; long relsize; + flagword flags; /* If we have already failed earlier on, do not keep on generating complaints now. */ if (status != 0) return; - if ((bfd_get_section_flags (ibfd, isection) & SEC_DEBUGGING) != 0 + flags = bfd_get_section_flags (ibfd, isection); + if ((flags & SEC_DEBUGGING) != 0 && (strip_symbols == STRIP_DEBUG || strip_symbols == STRIP_UNNEEDED || strip_symbols == STRIP_ALL @@ -1698,6 +1700,9 @@ copy_section (ibfd, isection, obfdarg) || convert_debugging)) return; + if ((flags & SEC_GROUP) != 0) + return; + p = find_section_list (bfd_section_name (ibfd, isection), false); if (sections_removed && p != NULL && p->remove) @@ -1711,7 +1716,7 @@ copy_section (ibfd, isection, obfdarg) if (size == 0 || osection == 0) return; - /* Core files do not need to be relocated. */ + /* Core files do not need to be relocated. */ if (bfd_get_format (obfd) == bfd_core) relsize = 0; else @@ -1732,7 +1737,7 @@ copy_section (ibfd, isection, obfdarg) if (strip_symbols == STRIP_ALL) { /* Remove relocations which are not in - keep_strip_specific_list. */ + keep_strip_specific_list. */ arelent **temp_relpp; long temp_relcount = 0; long i; @@ -1755,7 +1760,7 @@ copy_section (ibfd, isection, obfdarg) isection->_cooked_size = isection->_raw_size; isection->reloc_done = true; - if (bfd_get_section_flags (ibfd, isection) & SEC_HAS_CONTENTS + if (bfd_get_section_flags (ibfd, isection) & SEC_HAS_CONTENTS && bfd_get_section_flags (obfd, osection) & SEC_HAS_CONTENTS) { PTR memhunk = (PTR) xmalloc ((unsigned) size); @@ -2124,9 +2129,9 @@ copy_main (argc, argv) fatal (_("byte number must be non-negative")); break; - case 'B': - binary_architecture = optarg; - break; + case 'B': + binary_architecture = optarg; + break; case 'i': interleave = atoi (optarg); @@ -2492,13 +2497,13 @@ copy_main (argc, argv) set_start_set = true; break; - case OPTION_SREC_LEN: - Chunk = parse_vma (optarg, "--srec-len"); - break; + case OPTION_SREC_LEN: + Chunk = parse_vma (optarg, "--srec-len"); + break; - case OPTION_SREC_FORCES3: + case OPTION_SREC_FORCES3: S3Forced = true; - break; + break; case OPTION_STRIP_SYMBOLS: add_specific_symbols (optarg, &strip_specific_list); @@ -2561,16 +2566,16 @@ copy_main (argc, argv) if (binary_architecture != (char *) NULL) { if (input_target && strcmp (input_target, "binary") == 0) - { - const bfd_arch_info_type * temp_arch_info; + { + const bfd_arch_info_type * temp_arch_info; temp_arch_info = bfd_scan_arch (binary_architecture); - if (temp_arch_info != NULL) - bfd_external_binary_architecture = temp_arch_info->arch; - else - fatal (_("architecture %s unknown"), binary_architecture); - } + if (temp_arch_info != NULL) + bfd_external_binary_architecture = temp_arch_info->arch; + else + fatal (_("architecture %s unknown"), binary_architecture); + } else { non_fatal (_("Warning: input target 'binary' required for binary architecture parameter.")); diff --git a/contrib/binutils/binutils/objdump.c b/contrib/binutils/binutils/objdump.c index 535e0cd..2687b6e 100644 --- a/contrib/binutils/binutils/objdump.c +++ b/contrib/binutils/binutils/objdump.c @@ -1,6 +1,6 @@ /* objdump.c -- dump information about an object file. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001 + 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -22,6 +22,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "bfd.h" #include "progress.h" #include "bucomm.h" +#include "budemang.h" #include "getopt.h" #include "safe-ctype.h" #include "dis-asm.h" @@ -299,9 +300,6 @@ dump_section_header (abfd, section, ignored) PF (SEC_HAS_CONTENTS, "CONTENTS"); PF (SEC_ALLOC, "ALLOC"); PF (SEC_CONSTRUCTOR, "CONSTRUCTOR"); - PF (SEC_CONSTRUCTOR_TEXT, "CONSTRUCTOR TEXT"); - PF (SEC_CONSTRUCTOR_DATA, "CONSTRUCTOR DATA"); - PF (SEC_CONSTRUCTOR_BSS, "CONSTRUCTOR BSS"); PF (SEC_LOAD, "LOAD"); PF (SEC_RELOC, "RELOC"); PF (SEC_READONLY, "READONLY"); @@ -317,6 +315,7 @@ dump_section_header (abfd, section, ignored) PF (SEC_SMALL_DATA, "SMALL_DATA"); PF (SEC_SHARED, "SHARED"); PF (SEC_ARCH_BIT_0, "ARCH_BIT_0"); + PF (SEC_THREAD_LOCAL, "THREAD_LOCAL"); if ((section->flags & SEC_LINK_ONCE) != 0) { @@ -361,7 +360,11 @@ dump_headers (abfd) #ifndef BFD64 printf (_("Idx Name Size VMA LMA File off Algn")); #else - printf (_("Idx Name Size VMA LMA File off Algn")); + /* With BFD64, non-ELF returns -1 and wants always 64 bit addresses. */ + if (bfd_get_arch_size (abfd) == 32) + printf (_("Idx Name Size VMA LMA File off Algn")); + else + printf (_("Idx Name Size VMA LMA File off Algn")); #endif if (wide_output) @@ -388,11 +391,9 @@ slurp_symtab (abfd) storage = bfd_get_symtab_upper_bound (abfd); if (storage < 0) bfd_fatal (bfd_get_filename (abfd)); - if (storage) - { - sy = (asymbol **) xmalloc (storage); - } + sy = (asymbol **) xmalloc (storage); + symcount = bfd_canonicalize_symtab (abfd, sy); if (symcount < 0) bfd_fatal (bfd_get_filename (abfd)); @@ -422,11 +423,9 @@ slurp_dynamic_symtab (abfd) bfd_fatal (bfd_get_filename (abfd)); } - if (storage) - { - sy = (asymbol **) xmalloc (storage); - } + sy = (asymbol **) xmalloc (storage); + dynsymcount = bfd_canonicalize_dynamic_symtab (abfd, sy); if (dynsymcount < 0) bfd_fatal (bfd_get_filename (abfd)); @@ -437,7 +436,7 @@ slurp_dynamic_symtab (abfd) /* Filter out (in place) symbols that are useless for disassembly. COUNT is the number of elements in SYMBOLS. - Return the number of useful symbols. */ + Return the number of useful symbols. */ static long remove_useless_symbols (symbols, count) @@ -465,7 +464,7 @@ remove_useless_symbols (symbols, count) /* Sort symbols into value order. */ -static int +static int compare_symbols (ap, bp) const PTR ap; const PTR bp; @@ -632,29 +631,20 @@ objdump_print_symname (abfd, info, sym) { char *alloc; const char *name; - const char *print; alloc = NULL; name = bfd_asymbol_name (sym); - if (! do_demangle || name[0] == '\0') - print = name; - else + if (do_demangle && name[0] != '\0') { /* Demangle the name. */ - if (bfd_get_symbol_leading_char (abfd) == name[0]) - ++name; - - alloc = cplus_demangle (name, DMGL_ANSI | DMGL_PARAMS); - if (alloc == NULL) - print = name; - else - print = alloc; + alloc = demangle (abfd, name); + name = alloc; } if (info != NULL) - (*info->fprintf_func) (info->stream, "%s", print); + (*info->fprintf_func) (info->stream, "%s", name); else - printf ("%s", print); + printf ("%s", name); if (alloc != NULL) free (alloc); @@ -682,7 +672,7 @@ find_symbol_for_address (abfd, sec, vma, require_sec, place) long min = 0; long max = sorted_symcount; long thisplace; - unsigned int opb = bfd_octets_per_byte (abfd); + unsigned int opb = bfd_octets_per_byte (abfd); if (sorted_symcount < 1) return NULL; @@ -719,7 +709,7 @@ find_symbol_for_address (abfd, sec, vma, require_sec, place) /* If the file is relocateable, and the symbol could be from this section, prefer a symbol from this section over symbols from others, even if the other symbol's value might be closer. - + Note that this may be wrong for some symbol references if the sections have overlapping memory ranges, but in that case there's no way to tell what's desired without looking at the relocation @@ -948,7 +938,7 @@ skip_to_line (p, line, show) if (strchr (buf, '\n') != NULL) ++p->line; } -} +} /* Show the line number, or the source line, in a dissassembly listing. */ @@ -959,8 +949,8 @@ show_line (abfd, section, addr_offset) asection *section; bfd_vma addr_offset; { - CONST char *filename; - CONST char *functionname; + const char *filename; + const char *functionname; unsigned int line; if (! with_line_numbers && ! with_source_code) @@ -1069,10 +1059,10 @@ show_line (abfd, section, addr_offset) p->next = print_files; print_files = p; - if (file_start_context) - l = 0; - else - l = line - SHOW_PRECEDING_CONTEXT_LINES; + if (file_start_context) + l = 0; + else + l = line - SHOW_PRECEDING_CONTEXT_LINES; if (l < 0) l = 0; skip_to_line (p, l, false); @@ -1167,8 +1157,8 @@ objdump_sprintf VPARAMS ((SFILE *f, const char *format, ...)) /* Disassemble some data in memory between given values. */ static void -disassemble_bytes (info, disassemble_fn, insns, data, - start_offset, stop_offset, relppp, +disassemble_bytes (info, disassemble_fn, insns, data, + start_offset, stop_offset, relppp, relppend) struct disassemble_info *info; disassembler_ftype disassemble_fn; @@ -1237,8 +1227,8 @@ disassemble_bytes (info, disassemble_fn, insns, data, && (info->insn_info_valid == 0 || info->branch_delay_insns == 0) && (z - addr_offset * opb >= SKIP_ZEROES - || (z == stop_offset * opb && - z - addr_offset * opb < SKIP_ZEROES_AT_END))) + || (z == stop_offset * opb && + z - addr_offset * opb < SKIP_ZEROES_AT_END))) { printf ("\t...\n"); @@ -1444,8 +1434,8 @@ disassemble_bytes (info, disassemble_fn, insns, data, } if ((section->flags & SEC_RELOC) != 0 -#ifndef DISASSEMBLER_NEEDS_RELOCS - && dump_reloc_info +#ifndef DISASSEMBLER_NEEDS_RELOCS + && dump_reloc_info #endif ) { @@ -1581,7 +1571,7 @@ disassemble_data (abfd) disasm_info.mach = bfd_get_mach (abfd); disasm_info.disassembler_options = disassembler_options; disasm_info.octets_per_byte = opb; - + if (bfd_big_endian (abfd)) disasm_info.display_endian = disasm_info.endian = BFD_ENDIAN_BIG; else if (bfd_little_endian (abfd)) @@ -1613,10 +1603,10 @@ disassemble_data (abfd) continue; if ((section->flags & SEC_RELOC) != 0 -#ifndef DISASSEMBLER_NEEDS_RELOCS +#ifndef DISASSEMBLER_NEEDS_RELOCS && dump_reloc_info #endif - ) + ) { long relsize; @@ -1690,7 +1680,7 @@ disassemble_data (abfd) asymbol *nextsym; unsigned long nextstop_offset; boolean insns; - + if (sym != NULL && bfd_asymbol_value (sym) <= section->vma + addr_offset) { int x; @@ -1715,7 +1705,7 @@ disassemble_data (abfd) false); printf (":\n"); } - + if (sym != NULL && bfd_asymbol_value (sym) > section->vma + addr_offset) nextsym = sym; else if (sym == NULL) @@ -1736,7 +1726,7 @@ disassemble_data (abfd) else nextsym = sorted_syms[place]; } - + if (sym != NULL && bfd_asymbol_value (sym) > section->vma + addr_offset) { nextstop_offset = bfd_asymbol_value (sym) - section->vma; @@ -1751,7 +1741,7 @@ disassemble_data (abfd) if (nextstop_offset > stop_offset) nextstop_offset = stop_offset; } - + /* If a symbol is explicitly marked as being an object rather than a function, just dump the bytes without disassembling them. */ @@ -1767,14 +1757,14 @@ disassemble_data (abfd) insns = true; else insns = false; - - disassemble_bytes (&disasm_info, disassemble_fn, insns, data, - addr_offset, nextstop_offset, &relpp, relppend); - + + disassemble_bytes (&disasm_info, disassemble_fn, insns, data, + addr_offset, nextstop_offset, &relpp, relppend); + addr_offset = nextstop_offset; sym = nextsym; } - + free (data); if (relbuf != NULL) free (relbuf); @@ -1837,13 +1827,13 @@ read_section_stabs (abfd, stabsect_name, strsect_name) exit_status = 1; return false; } - + stab_size = bfd_section_size (abfd, stabsect); stabstr_size = bfd_section_size (abfd, stabstrsect); stabs = (bfd_byte *) xmalloc (stab_size); strtab = (char *) xmalloc (stabstr_size); - + if (! bfd_get_section_contents (abfd, stabsect, (PTR) stabs, 0, stab_size)) { non_fatal (_("Reading %s section of %s failed: %s"), @@ -1925,7 +1915,7 @@ print_section_stabs (abfd, stabsect_name, strsect_name) printf ("\n%-6d ", i); /* Either print the stab name, or, if unnamed, print its number - again (makes consistent formatting for tools like awk). */ + again (makes consistent formatting for tools like awk). */ name = bfd_get_stab_name (type); if (name != NULL) printf ("%-6s", name); @@ -2246,15 +2236,15 @@ dump_data (abfd) if (stop_offset > bfd_section_size (abfd, section) / opb) stop_offset = bfd_section_size (abfd, section) / opb; } - for (addr_offset = start_offset; - addr_offset < stop_offset; addr_offset += onaline) + for (addr_offset = start_offset; + addr_offset < stop_offset; addr_offset += onaline) { bfd_size_type j; - printf (" %04lx ", (unsigned long int) - (addr_offset + section->vma)); - for (j = addr_offset * opb; - j < addr_offset * opb + onaline; j++) + printf (" %04lx ", (unsigned long int) + (addr_offset + section->vma)); + for (j = addr_offset * opb; + j < addr_offset * opb + onaline; j++) { if (j < stop_offset * opb) printf ("%02x", (unsigned) (data[j])); @@ -2318,24 +2308,16 @@ dump_symbols (abfd, dynamic) const char *name; char *alloc; - name = bfd_asymbol_name (*current); + name = (*current)->name; alloc = NULL; if (do_demangle && name != NULL && *name != '\0') { - const char *n; - /* If we want to demangle the name, we demangle it here, and temporarily clobber it while calling bfd_print_symbol. FIXME: This is a gross hack. */ - n = name; - if (bfd_get_symbol_leading_char (cur_bfd) == *n) - ++n; - alloc = cplus_demangle (n, DMGL_ANSI | DMGL_PARAMS); - if (alloc != NULL) - (*current)->name = alloc; - else - (*current)->name = n; + alloc = demangle (cur_bfd, name); + (*current)->name = alloc; } bfd_print_symbol (cur_bfd, stdout, *current, @@ -2545,7 +2527,7 @@ dump_reloc_set (abfd, sec, relpp, relcount) } else { - if (section_name == (CONST char *) NULL) + if (section_name == (const char *) NULL) section_name = "*unknown*"; bfd_printf_vma (abfd, q->address); printf (" %-16s [%s]", @@ -2796,12 +2778,12 @@ main (argc, argv) enum demangling_styles style; style = cplus_demangle_name_to_style (optarg); - if (style == unknown_demangling) + if (style == unknown_demangling) fatal (_("unknown demangling style `%s'"), optarg); cplus_demangle_set_style (style); - } + } break; case 'w': wide_output = true; @@ -2920,7 +2902,7 @@ main (argc, argv) show_version = true; seenflag = true; break; - + default: usage (stderr, 1); } diff --git a/contrib/binutils/binutils/po/POTFILES.in b/contrib/binutils/binutils/po/POTFILES.in index 861e0ff..1a3e585 100644 --- a/contrib/binutils/binutils/po/POTFILES.in +++ b/contrib/binutils/binutils/po/POTFILES.in @@ -2,9 +2,13 @@ addr2line.c ar.c arsup.c arsup.h +binemul.c +binemul.h bucomm.c bucomm.h budbg.h +budemang.c +budemang.h coffdump.c coffgrok.c coffgrok.h @@ -14,6 +18,8 @@ debug.h dlltool.c dlltool.h dllwrap.c +emul_aix.c +emul_vanilla.c filemode.c ieee.c ieee.c diff --git a/contrib/binutils/binutils/po/binutils.pot b/contrib/binutils/binutils/po/binutils.pot index ef601f0..4442096 100644 --- a/contrib/binutils/binutils/po/binutils.pot +++ b/contrib/binutils/binutils/po/binutils.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-01-17 13:58+0000\n" +"POT-Creation-Date: 2002-07-23 15:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -14,183 +14,211 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: addr2line.c:73 +#: addr2line.c:74 #, c-format +msgid "Usage: %s [option(s)] [addr(s)]\n" +msgstr "" + +#: addr2line.c:75 +msgid " Convert addresses into line number/file name pairs.\n" +msgstr "" + +#: addr2line.c:76 msgid "" -"Usage: %s [-CfsHV] [-b bfdname] [--target=bfdname]\n" -" [-e executable] [--exe=executable] [--demangle[=style]]\n" -" [--basenames] [--functions] [addr addr ...]\n" +" If no addresses are specified on the command line, they will be read from " +"stdin\n" msgstr "" -#: addr2line.c:80 ar.c:289 nlmconv.c:1121 objcopy.c:423 objcopy.c:455 -#: readelf.c:2181 size.c:91 strings.c:655 windres.c:737 +#: addr2line.c:77 +msgid "" +" The options are:\n" +" -b --target= Set the binary file format\n" +" -e --exe= Set the input file name (default is a.out)\n" +" -s --basenames Strip directory names\n" +" -f --functions Show function names\n" +" -C --demangle[=style] Demangle function names\n" +" -h --help Display this information\n" +" -v --version Display the program's version\n" +"\n" +msgstr "" + +#: addr2line.c:89 ar.c:297 coffdump.c:479 nlmconv.c:1119 objcopy.c:424 +#: objcopy.c:457 readelf.c:2310 size.c:104 srconv.c:1962 strings.c:666 +#: sysdump.c:774 windres.c:733 #, c-format msgid "Report bugs to %s\n" msgstr "" -#: addr2line.c:240 +#: addr2line.c:248 #, c-format msgid "%s: can not get addresses from archive" msgstr "" -#: addr2line.c:312 nm.c:447 objdump.c:2800 +#: addr2line.c:320 nm.c:395 objdump.c:2782 #, c-format msgid "unknown demangling style `%s'" msgstr "" -#: ar.c:237 +#: ar.c:238 #, c-format msgid "no entry %s in archive\n" msgstr "" -#: ar.c:254 +#: ar.c:255 #, c-format msgid "" -"Usage: %s [-X32_64] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] " -"archive-file file...\n" +"Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] " +"[count] archive-file file...\n" msgstr "" -#: ar.c:257 +#: ar.c:258 #, c-format msgid " %s -M [ \n" +msgid "Usage %s \n" msgstr "" #. xgetext:c-format -#: dlltool.c:3140 +#: dlltool.c:3132 #, c-format msgid "" " -m --machine Create as DLL for . [default: %s]\n" msgstr "" -#: dlltool.c:3141 +#: dlltool.c:3133 msgid "" " possible : arm[_interwork], i386, mcore[-elf]{-le|-be}, " "ppc, thumb\n" msgstr "" -#: dlltool.c:3142 +#: dlltool.c:3134 msgid " -e --output-exp Generate an export file.\n" msgstr "" -#: dlltool.c:3143 +#: dlltool.c:3135 msgid " -l --output-lib Generate an interface library.\n" msgstr "" -#: dlltool.c:3144 +#: dlltool.c:3136 msgid " -a --add-indirect Add dll indirects to export file.\n" msgstr "" -#: dlltool.c:3145 +#: dlltool.c:3137 msgid "" " -D --dllname Name of input dll to put into interface lib.\n" msgstr "" -#: dlltool.c:3146 +#: dlltool.c:3138 msgid " -d --input-def Name of .def file to be read in.\n" msgstr "" -#: dlltool.c:3147 +#: dlltool.c:3139 msgid " -z --output-def Name of .def file to be created.\n" msgstr "" -#: dlltool.c:3148 +#: dlltool.c:3140 msgid " --export-all-symbols Export all symbols to .def\n" msgstr "" -#: dlltool.c:3149 +#: dlltool.c:3141 msgid " --no-export-all-symbols Only export listed symbols\n" msgstr "" -#: dlltool.c:3150 +#: dlltool.c:3142 msgid " --exclude-symbols Don't export \n" msgstr "" -#: dlltool.c:3151 +#: dlltool.c:3143 msgid " --no-default-excludes Clear default exclude symbols\n" msgstr "" -#: dlltool.c:3152 +#: dlltool.c:3144 msgid " -b --base-file Read linker generated base file.\n" msgstr "" -#: dlltool.c:3153 +#: dlltool.c:3145 msgid " -x --no-idata4 Don't generate idata$4 section.\n" msgstr "" -#: dlltool.c:3154 +#: dlltool.c:3146 msgid " -c --no-idata5 Don't generate idata$5 section.\n" msgstr "" -#: dlltool.c:3155 +#: dlltool.c:3147 msgid "" " -U --add-underscore Add underscores to symbols in interface " "library.\n" msgstr "" -#: dlltool.c:3156 +#: dlltool.c:3148 msgid " -k --kill-at Kill @ from exported names.\n" msgstr "" -#: dlltool.c:3157 +#: dlltool.c:3149 msgid " -A --add-stdcall-alias Add aliases without @.\n" msgstr "" -#: dlltool.c:3158 +#: dlltool.c:3150 msgid " -S --as Use for assembler.\n" msgstr "" -#: dlltool.c:3159 +#: dlltool.c:3151 msgid " -f --as-flags Pass to the assembler.\n" msgstr "" -#: dlltool.c:3160 +#: dlltool.c:3152 msgid "" " -C --compat-implib Create backward compatible import library.\n" msgstr "" -#: dlltool.c:3161 +#: dlltool.c:3153 msgid "" " -n --no-delete Keep temp files (repeat for extra " "preservation).\n" msgstr "" -#: dlltool.c:3162 +#: dlltool.c:3154 msgid " -v --verbose Be verbose.\n" msgstr "" -#: dlltool.c:3163 +#: dlltool.c:3155 msgid " -V --version Display the program version.\n" msgstr "" -#: dlltool.c:3164 +#: dlltool.c:3156 msgid " -h --help Display this information.\n" msgstr "" -#: dlltool.c:3166 +#: dlltool.c:3158 msgid "" " -M --mcore-elf Process mcore-elf object files into .\n" msgstr "" -#: dlltool.c:3167 +#: dlltool.c:3159 msgid " -L --linker Use as the linker.\n" msgstr "" -#: dlltool.c:3168 +#: dlltool.c:3160 msgid " -F --linker-flags Pass to the linker.\n" msgstr "" -#: dlltool.c:3315 +#: dlltool.c:3310 #, c-format msgid "Unable to open base-file: %s" msgstr "" -#: dlltool.c:3344 +#: dlltool.c:3339 #, c-format msgid "Machine '%s' not supported" msgstr "" -#: dlltool.c:3447 dllwrap.c:240 +#: dlltool.c:3442 dllwrap.c:214 #, c-format msgid "Tried file: %s" msgstr "" -#: dlltool.c:3454 dllwrap.c:247 +#: dlltool.c:3449 dllwrap.c:221 #, c-format msgid "Using file: %s" msgstr "" -#: dllwrap.c:334 +#: dllwrap.c:308 #, c-format msgid "Keeping temporary base file %s" msgstr "" -#: dllwrap.c:336 +#: dllwrap.c:310 #, c-format msgid "Deleting temporary base file %s" msgstr "" -#: dllwrap.c:350 +#: dllwrap.c:324 #, c-format msgid "Keeping temporary exp file %s" msgstr "" -#: dllwrap.c:352 +#: dllwrap.c:326 #, c-format msgid "Deleting temporary exp file %s" msgstr "" -#: dllwrap.c:365 +#: dllwrap.c:339 #, c-format msgid "Keeping temporary def file %s" msgstr "" -#: dllwrap.c:367 +#: dllwrap.c:341 #, c-format msgid "Deleting temporary def file %s" msgstr "" -#: dllwrap.c:520 +#: dllwrap.c:496 msgid " Generic options:\n" msgstr "" -#: dllwrap.c:521 +#: dllwrap.c:497 msgid " --quiet, -q Work quietly\n" msgstr "" -#: dllwrap.c:522 +#: dllwrap.c:498 msgid " --verbose, -v Verbose\n" msgstr "" -#: dllwrap.c:523 +#: dllwrap.c:499 msgid " --version Print dllwrap version\n" msgstr "" -#: dllwrap.c:524 +#: dllwrap.c:500 msgid " --implib Synonym for --output-lib\n" msgstr "" -#: dllwrap.c:525 +#: dllwrap.c:501 #, c-format msgid " Options for %s:\n" msgstr "" -#: dllwrap.c:526 +#: dllwrap.c:502 msgid " --driver-name Defaults to \"gcc\"\n" msgstr "" -#: dllwrap.c:527 +#: dllwrap.c:503 msgid " --driver-flags Override default ld flags\n" msgstr "" -#: dllwrap.c:528 +#: dllwrap.c:504 msgid " --dlltool-name Defaults to \"dlltool\"\n" msgstr "" -#: dllwrap.c:529 +#: dllwrap.c:505 msgid " --entry Specify alternate DLL entry point\n" msgstr "" -#: dllwrap.c:530 +#: dllwrap.c:506 msgid " --image-base Specify image base address\n" msgstr "" -#: dllwrap.c:531 +#: dllwrap.c:507 msgid " --target i386-cygwin32 or i386-mingw32\n" msgstr "" -#: dllwrap.c:532 +#: dllwrap.c:508 msgid " --dry-run Show what needs to be run\n" msgstr "" -#: dllwrap.c:533 +#: dllwrap.c:509 msgid " --mno-cygwin Create Mingw DLL\n" msgstr "" -#: dllwrap.c:534 +#: dllwrap.c:510 msgid " Options passed to DLLTOOL:\n" msgstr "" -#: dllwrap.c:535 +#: dllwrap.c:511 msgid " --machine \n" msgstr "" -#: dllwrap.c:536 +#: dllwrap.c:512 msgid " --output-exp Generate export file.\n" msgstr "" -#: dllwrap.c:537 +#: dllwrap.c:513 msgid " --output-lib Generate input library.\n" msgstr "" -#: dllwrap.c:538 +#: dllwrap.c:514 msgid " --add-indirect Add dll indirects to export file.\n" msgstr "" -#: dllwrap.c:539 +#: dllwrap.c:515 msgid " --dllname Name of input dll to put into output lib.\n" msgstr "" -#: dllwrap.c:540 +#: dllwrap.c:516 msgid " --def Name input .def file\n" msgstr "" -#: dllwrap.c:541 +#: dllwrap.c:517 msgid " --output-def Name output .def file\n" msgstr "" -#: dllwrap.c:542 +#: dllwrap.c:518 msgid " --export-all-symbols Export all symbols to .def\n" msgstr "" -#: dllwrap.c:543 +#: dllwrap.c:519 msgid " --no-export-all-symbols Only export .drectve symbols\n" msgstr "" -#: dllwrap.c:544 +#: dllwrap.c:520 msgid " --exclude-symbols Exclude from .def\n" msgstr "" -#: dllwrap.c:545 +#: dllwrap.c:521 msgid " --no-default-excludes Zap default exclude symbols\n" msgstr "" -#: dllwrap.c:546 +#: dllwrap.c:522 msgid " --base-file Read linker generated base file\n" msgstr "" -#: dllwrap.c:547 +#: dllwrap.c:523 msgid " --no-idata4 Don't generate idata$4 section\n" msgstr "" -#: dllwrap.c:548 +#: dllwrap.c:524 msgid " --no-idata5 Don't generate idata$5 section\n" msgstr "" -#: dllwrap.c:549 +#: dllwrap.c:525 msgid " -U Add underscores to .lib\n" msgstr "" -#: dllwrap.c:550 +#: dllwrap.c:526 msgid " -k Kill @ from exported names\n" msgstr "" -#: dllwrap.c:551 +#: dllwrap.c:527 msgid " --add-stdcall-alias Add aliases without @\n" msgstr "" -#: dllwrap.c:552 +#: dllwrap.c:528 msgid " --as Use for assembler\n" msgstr "" -#: dllwrap.c:553 +#: dllwrap.c:529 msgid " --nodelete Keep temp files.\n" msgstr "" -#: dllwrap.c:554 +#: dllwrap.c:530 msgid " Rest are passed unmodified to the language driver\n" msgstr "" -#: dllwrap.c:824 +#: dllwrap.c:802 msgid "Must provide at least one of -o or --dllname options" msgstr "" -#: dllwrap.c:852 +#: dllwrap.c:830 msgid "" "no export definition file provided.\n" "Creating one, but that may not be what you want" msgstr "" -#: dllwrap.c:1014 +#: dllwrap.c:992 #, c-format msgid "DLLTOOL name : %s\n" msgstr "" -#: dllwrap.c:1015 +#: dllwrap.c:993 #, c-format msgid "DLLTOOL options : %s\n" msgstr "" -#: dllwrap.c:1016 +#: dllwrap.c:994 #, c-format msgid "DRIVER name : %s\n" msgstr "" -#: dllwrap.c:1017 +#: dllwrap.c:995 #, c-format msgid "DRIVER options : %s\n" msgstr "" +#: emul_aix.c:52 +#, c-format +msgid " [-g] - 32 bit small archive\n" +msgstr "" + +#: emul_aix.c:53 +msgid " [-X32] - ignores 64 bit objects\n" +msgstr "" + +#: emul_aix.c:54 +msgid " [-X64] - ignores 32 bit objects\n" +msgstr "" + +#: emul_aix.c:55 +msgid " [-X32_64] - accepts 32 and 64 bit objects\n" +msgstr "" + #: ieee.c:317 msgid "unexpected end of debugging information" msgstr "" @@ -1042,7 +1110,7 @@ msgid "Pascal file name not supported" msgstr "" #: ieee.c:1919 -msgid "unsupported qualifer" +msgid "unsupported qualifier" msgstr "" #: ieee.c:2190 @@ -1167,221 +1235,227 @@ msgstr "" msgid "bad ATN65 record" msgstr "" -#: ieee.c:4236 +#: ieee.c:4234 msgid "IEEE numeric overflow: 0x" msgstr "" -#: ieee.c:4282 +#: ieee.c:4280 #, c-format msgid "IEEE string length overflow: %u\n" msgstr "" -#: ieee.c:5333 +#: ieee.c:5330 #, c-format msgid "IEEE unsupported integer type size %u\n" msgstr "" -#: ieee.c:5369 +#: ieee.c:5366 #, c-format msgid "IEEE unsupported float type size %u\n" msgstr "" -#: ieee.c:5405 +#: ieee.c:5402 #, c-format msgid "IEEE unsupported complex type size %u\n" msgstr "" -#: nlmconv.c:278 srconv.c:2020 +#: nlmconv.c:281 srconv.c:2043 msgid "input and output files must be different" msgstr "" -#: nlmconv.c:325 +#: nlmconv.c:328 msgid "input file named both on command line and with INPUT" msgstr "" -#: nlmconv.c:334 +#: nlmconv.c:337 msgid "no input file" msgstr "" -#: nlmconv.c:364 +#: nlmconv.c:367 msgid "no name for output file" msgstr "" -#: nlmconv.c:377 +#: nlmconv.c:380 msgid "warning: input and output formats are not compatible" msgstr "" -#: nlmconv.c:406 +#: nlmconv.c:409 msgid "make .bss section" msgstr "" -#: nlmconv.c:415 +#: nlmconv.c:418 msgid "make .nlmsections section" msgstr "" -#: nlmconv.c:417 +#: nlmconv.c:420 msgid "set .nlmsections flags" msgstr "" -#: nlmconv.c:445 +#: nlmconv.c:448 msgid "set .bss vma" msgstr "" -#: nlmconv.c:452 +#: nlmconv.c:455 msgid "set .data size" msgstr "" -#: nlmconv.c:632 +#: nlmconv.c:635 #, c-format msgid "warning: symbol %s imported but not in import list" msgstr "" -#: nlmconv.c:652 +#: nlmconv.c:655 msgid "set start address" msgstr "" -#: nlmconv.c:701 +#: nlmconv.c:704 #, c-format msgid "warning: START procedure %s not defined" msgstr "" -#: nlmconv.c:703 +#: nlmconv.c:706 #, c-format msgid "warning: EXIT procedure %s not defined" msgstr "" -#: nlmconv.c:705 +#: nlmconv.c:708 #, c-format msgid "warning: CHECK procedure %s not defined" msgstr "" -#: nlmconv.c:726 nlmconv.c:915 +#: nlmconv.c:729 nlmconv.c:918 msgid "custom section" msgstr "" -#: nlmconv.c:747 nlmconv.c:944 +#: nlmconv.c:750 nlmconv.c:947 msgid "help section" msgstr "" -#: nlmconv.c:769 nlmconv.c:962 +#: nlmconv.c:772 nlmconv.c:965 msgid "message section" msgstr "" -#: nlmconv.c:785 nlmconv.c:995 +#: nlmconv.c:788 nlmconv.c:998 msgid "module section" msgstr "" -#: nlmconv.c:805 nlmconv.c:1011 +#: nlmconv.c:808 nlmconv.c:1014 msgid "rpc section" msgstr "" #. There is no place to record this information. -#: nlmconv.c:841 +#: nlmconv.c:844 #, c-format msgid "%s: warning: shared libraries can not have uninitialized data" msgstr "" -#: nlmconv.c:862 nlmconv.c:1030 +#: nlmconv.c:865 nlmconv.c:1033 msgid "shared section" msgstr "" -#: nlmconv.c:870 +#: nlmconv.c:873 msgid "warning: No version number given" msgstr "" -#: nlmconv.c:910 nlmconv.c:939 nlmconv.c:957 nlmconv.c:1006 nlmconv.c:1025 +#: nlmconv.c:913 nlmconv.c:942 nlmconv.c:960 nlmconv.c:1009 nlmconv.c:1028 #, c-format msgid "%s: read: %s" msgstr "" -#: nlmconv.c:932 +#: nlmconv.c:935 msgid "warning: MAP and FULLMAP are not supported; try ld -M" msgstr "" -#: nlmconv.c:1101 +#: nlmconv.c:1107 #, c-format -msgid "%s: Convert an object file into a NetWare Loadable Module\n" +msgid "Usage: %s [option(s)] [in-file [out-file]]\n" msgstr "" -#: nlmconv.c:1113 -#, c-format +#: nlmconv.c:1108 +msgid " Convert an object file into a NetWare Loadable Module\n" +msgstr "" + +#: nlmconv.c:1109 msgid "" -"Usage: %s [-dhV] [-I bfdname] [-O bfdname] [-T header-file] [-l linker]\n" -" [--input-target=bfdname] [--output-target=bfdname]\n" -" [--header-file=file] [--linker=linker] [--debug]\n" -" [--help] [--version]\n" -" [in-file [out-file]]\n" +" The options are:\n" +" -I --input-target= Set the input binary file format\n" +" -O --output-target= Set the output binary file format\n" +" -T --header-file= Read for NLM header information\n" +" -l --linker= Use for any linking\n" +" -d --debug Display on stderr the linker command line\n" +" -h --help Display this information\n" +" -v --version Display the program's version\n" msgstr "" -#: nlmconv.c:1153 +#: nlmconv.c:1151 #, c-format msgid "support not compiled in for %s" msgstr "" -#: nlmconv.c:1193 +#: nlmconv.c:1191 msgid "make section" msgstr "" -#: nlmconv.c:1207 +#: nlmconv.c:1205 msgid "set section size" msgstr "" -#: nlmconv.c:1213 +#: nlmconv.c:1211 msgid "set section alignment" msgstr "" -#: nlmconv.c:1217 +#: nlmconv.c:1215 msgid "set section flags" msgstr "" -#: nlmconv.c:1228 +#: nlmconv.c:1226 msgid "set .nlmsections size" msgstr "" -#: nlmconv.c:1316 nlmconv.c:1324 nlmconv.c:1333 nlmconv.c:1338 +#: nlmconv.c:1314 nlmconv.c:1322 nlmconv.c:1331 nlmconv.c:1336 msgid "set .nlmsection contents" msgstr "" -#: nlmconv.c:1841 +#: nlmconv.c:1837 msgid "stub section sizes" msgstr "" -#: nlmconv.c:1890 +#: nlmconv.c:1886 msgid "writing stub" msgstr "" -#: nlmconv.c:1980 +#: nlmconv.c:1975 #, c-format msgid "unresolved PC relative reloc against %s" msgstr "" -#: nlmconv.c:2044 +#: nlmconv.c:2039 #, c-format msgid "overflow when adjusting relocation against %s" msgstr "" -#: nlmconv.c:2161 +#: nlmconv.c:2156 #, c-format msgid "%s: execution of %s failed: " msgstr "" -#: nlmconv.c:2176 +#: nlmconv.c:2171 #, c-format msgid "Execution of %s failed" msgstr "" -#: nm.c:300 +#: nm.c:246 size.c:85 strings.c:650 #, c-format -msgid "Usage: %s [OPTION]... [FILE]...\n" +msgid "Usage: %s [option(s)] [file(s)]\n" msgstr "" -#: nm.c:301 -msgid "List symbols from FILEs (a.out by default).\n" +#: nm.c:247 +msgid " List symbols in [file(s)] (a.out by default).\n" msgstr "" -#: nm.c:302 +#: nm.c:248 msgid "" -"\n" +" The options are:\n" " -a, --debug-syms Display debugger-only symbols\n" " -A, --print-file-name Print name of the input file before every symbol\n" " -B Same as --format=bsd\n" @@ -1399,7 +1473,6 @@ msgid "" "`bsd',\n" " `sysv' or `posix'. The default is `bsd'\n" " -g, --extern-only Display only external symbols\n" -" -h, --help Display this information\n" " -l, --line-numbers Use debugging information to find a filename and\n" " line number for each symbol\n" " -n, --numeric-sort Sort symbols numerically by address\n" @@ -1407,41 +1480,58 @@ msgid "" " -p, --no-sort Do not sort the symbols\n" " -P, --portability Same as --format=posix\n" " -r, --reverse-sort Reverse the sense of the sort\n" +" -S, --print-size Print size of defined symbols\n" " -s, --print-armap Include index for symbols from archive members\n" " --size-sort Sort symbols by size\n" " -t, --radix=RADIX Use RADIX for printing symbol values\n" " --target=BFDNAME Specify the target object format as BFDNAME\n" " -u, --undefined-only Display only undefined symbols\n" -" -V, --version Display this program's version number\n" " -X 32_64 (ignored)\n" +" -h, --help Display this information\n" +" -V, --version Display this program's version number\n" "\n" msgstr "" -#: nm.c:334 objdump.c:216 +#: nm.c:281 objdump.c:217 #, c-format msgid "Report bugs to %s.\n" msgstr "" -#: nm.c:367 +#: nm.c:314 #, c-format msgid "%s: invalid radix" msgstr "" -#: nm.c:392 +#: nm.c:339 #, c-format msgid "%s: invalid output format" msgstr "" -#: nm.c:504 +#: nm.c:456 msgid "Only -X 32_64 is supported" msgstr "" -#: nm.c:546 +#: nm.c:498 #, c-format msgid "data size %ld" msgstr "" -#: nm.c:1340 +#: nm.c:523 readelf.c:5306 readelf.c:5342 +#, c-format +msgid ": %d" +msgstr "" + +#: nm.c:525 readelf.c:5308 readelf.c:5354 +#, c-format +msgid ": %d" +msgstr "" + +#: nm.c:527 readelf.c:5310 readelf.c:5357 +#, c-format +msgid ": %d" +msgstr "" + +#: nm.c:1339 #, c-format msgid "" "\n" @@ -1450,7 +1540,7 @@ msgid "" "\n" msgstr "" -#: nm.c:1342 +#: nm.c:1341 #, c-format msgid "" "\n" @@ -1459,14 +1549,21 @@ msgid "" "\n" msgstr "" -#: nm.c:1343 nm.c:1397 +#: nm.c:1343 nm.c:1401 msgid "" -"Name Value Class Type Size Line " +"Name Value Class Type Size Line " "Section\n" "\n" msgstr "" -#: nm.c:1394 +#: nm.c:1346 nm.c:1404 +msgid "" +"Name Value Class Type " +"Size Line Section\n" +"\n" +msgstr "" + +#: nm.c:1397 #, c-format msgid "" "\n" @@ -1475,7 +1572,7 @@ msgid "" "\n" msgstr "" -#: nm.c:1396 +#: nm.c:1399 #, c-format msgid "" "\n" @@ -1484,22 +1581,26 @@ msgid "" "\n" msgstr "" -#: nm.c:1564 +#: nm.c:1614 msgid "" "\n" "Archive index:\n" msgstr "" -#: objcopy.c:363 +#: objcopy.c:363 srconv.c:1952 #, c-format -msgid "Usage: %s in-file [out-file]\n" +msgid "Usage: %s [option(s)] in-file [out-file]\n" msgstr "" -#: objcopy.c:364 objcopy.c:433 +#: objcopy.c:364 +msgid " Copies a binary file, possibly transforming it in the process\n" +msgstr "" + +#: objcopy.c:365 objcopy.c:435 msgid " The options are:\n" msgstr "" -#: objcopy.c:365 +#: objcopy.c:366 msgid "" " -I --input-target Assume input file is in format \n" " -O --output-target Create an output file in format " @@ -1580,28 +1681,32 @@ msgid "" " -h --help Display this output\n" msgstr "" -#: objcopy.c:432 +#: objcopy.c:433 #, c-format -msgid "Usage: %s in-file(s)\n" +msgid "Usage: %s in-file(s)\n" msgstr "" #: objcopy.c:434 +msgid " Removes symbols and sections from files\n" +msgstr "" + +#: objcopy.c:436 msgid "" -" -I --input-target Assume input file is in format \n" -" -O --output-target Create an output file in format " +" -I --input-target= Assume input file is in format \n" +" -O --output-target= Create an output file in format " "\n" -" -F --target Set both input and output format to " +" -F --target= Set both input and output format to " "\n" " -p --preserve-dates Copy modified/access timestamps to the " "output\n" -" -R --remove-section Remove section from the output\n" +" -R --remove-section= Remove section from the output\n" " -s --strip-all Remove all symbol and relocation " "information\n" -" -g -S --strip-debug Remove all debugging symbols\n" +" -g -S -d --strip-debug Remove all debugging symbols\n" " --strip-unneeded Remove all symbols not needed by " "relocations\n" -" -N --strip-symbol Do not copy symbol \n" -" -K --keep-symbol Only copy symbol \n" +" -N --strip-symbol= Do not copy symbol \n" +" -K --keep-symbol= Only copy symbol \n" " -x --discard-all Remove all non-global symbols\n" " -X --discard-locals Remove any compiler-generated symbols\n" " -v --verbose List all object files modified\n" @@ -1610,216 +1715,214 @@ msgid "" " -o Place stripped output into \n" msgstr "" -#: objcopy.c:504 +#: objcopy.c:506 #, c-format msgid "unrecognized section flag `%s'" msgstr "" -#: objcopy.c:505 +#: objcopy.c:507 #, c-format msgid "supported flags: %s" msgstr "" -#: objcopy.c:582 objcopy.c:2206 +#: objcopy.c:584 objcopy.c:2243 #, c-format msgid "cannot stat: %s: %s" msgstr "" -#: objcopy.c:589 objcopy.c:2224 +#: objcopy.c:591 objcopy.c:2261 #, c-format msgid "cannot open: %s: %s" msgstr "" -#: objcopy.c:592 objcopy.c:2228 +#: objcopy.c:594 objcopy.c:2265 #, c-format msgid "%s: fread failed" msgstr "" -#: objcopy.c:665 +#: objcopy.c:667 #, c-format msgid "Ignoring rubbish found on line %d of %s" msgstr "" -#: objcopy.c:886 +#: objcopy.c:888 #, c-format msgid "%s: Multiple redefinition of symbol \"%s\"" msgstr "" -#: objcopy.c:891 +#: objcopy.c:893 #, c-format msgid "%s: Symbol \"%s\" is target of more than one redefinition" msgstr "" -#: objcopy.c:943 +#: objcopy.c:945 msgid "Unable to change endianness of input file(s)" msgstr "" -#: objcopy.c:951 +#: objcopy.c:953 #, c-format msgid "copy from %s(%s) to %s(%s)\n" msgstr "" -#: objcopy.c:975 +#: objcopy.c:977 #, c-format msgid "Warning: Output file cannot represent architecture %s" msgstr "" -#: objcopy.c:1002 +#: objcopy.c:1004 #, c-format msgid "can't create section `%s': %s" msgstr "" -#: objcopy.c:1088 +#: objcopy.c:1090 #, c-format msgid "Can't fill gap after %s: %s" msgstr "" -#: objcopy.c:1113 +#: objcopy.c:1115 #, c-format msgid "Can't add padding to %s: %s" msgstr "" -#: objcopy.c:1252 +#: objcopy.c:1254 #, c-format msgid "%s: error copying private BFD data: %s" msgstr "" -#: objcopy.c:1265 +#: objcopy.c:1267 msgid "unknown alternate machine code, ignored" msgstr "" -#: objcopy.c:1295 +#: objcopy.c:1300 objcopy.c:1330 #, c-format msgid "cannot mkdir %s for archive copying (error: %s)" msgstr "" -#: objcopy.c:1466 +#: objcopy.c:1497 #, c-format msgid "Multiple renames of section %s" msgstr "" -#: objcopy.c:1550 +#: objcopy.c:1581 msgid "making" msgstr "" -#: objcopy.c:1559 +#: objcopy.c:1590 msgid "size" msgstr "" -#: objcopy.c:1573 +#: objcopy.c:1604 msgid "vma" msgstr "" -#: objcopy.c:1599 +#: objcopy.c:1630 msgid "alignment" msgstr "" -#: objcopy.c:1607 +#: objcopy.c:1638 msgid "flags" msgstr "" -#: objcopy.c:1624 +#: objcopy.c:1655 msgid "private data" msgstr "" -#: objcopy.c:1632 +#: objcopy.c:1663 #, c-format msgid "%s: section `%s': error in %s: %s" msgstr "" -#: objcopy.c:1910 +#: objcopy.c:1946 #, c-format msgid "%s: can't create debugging section: %s" msgstr "" -#: objcopy.c:1925 +#: objcopy.c:1961 #, c-format msgid "%s: can't set debugging section contents: %s" msgstr "" -#: objcopy.c:1934 +#: objcopy.c:1970 #, c-format msgid "%s: don't know how to write debugging information for %s" msgstr "" -#: objcopy.c:2041 +#: objcopy.c:2078 #, c-format msgid "%s: cannot stat: %s" msgstr "" -#: objcopy.c:2092 +#: objcopy.c:2129 msgid "byte number must be non-negative" msgstr "" -#: objcopy.c:2102 +#: objcopy.c:2139 msgid "interleave must be positive" msgstr "" -#: objcopy.c:2122 objcopy.c:2130 +#: objcopy.c:2159 objcopy.c:2167 #, c-format msgid "%s both copied and removed" msgstr "" -#: objcopy.c:2203 objcopy.c:2273 objcopy.c:2373 objcopy.c:2400 objcopy.c:2424 -#: objcopy.c:2428 objcopy.c:2448 +#: objcopy.c:2240 objcopy.c:2310 objcopy.c:2410 objcopy.c:2437 objcopy.c:2461 +#: objcopy.c:2465 objcopy.c:2485 #, c-format msgid "bad format for %s" msgstr "" -#: objcopy.c:2342 +#: objcopy.c:2379 #, c-format msgid "Warning: truncating gap-fill from 0x%s to 0x%x" msgstr "" -#: objcopy.c:2494 +#: objcopy.c:2531 msgid "alternate machine code index must be positive" msgstr "" -#: objcopy.c:2512 +#: objcopy.c:2550 msgid "byte number must be less than interleave" msgstr "" -#: objcopy.c:2539 +#: objcopy.c:2577 #, c-format msgid "architecture %s unknown" msgstr "" -#: objcopy.c:2543 +#: objcopy.c:2581 msgid "" "Warning: input target 'binary' required for binary architecture parameter." msgstr "" -#: objcopy.c:2544 +#: objcopy.c:2582 #, c-format msgid " Argument %s ignored" msgstr "" -#: objcopy.c:2550 +#: objcopy.c:2588 #, c-format msgid "Cannot stat: %s: %s" msgstr "" -#: objcopy.c:2590 objcopy.c:2604 +#: objcopy.c:2628 objcopy.c:2642 #, c-format msgid "%s %s%c0x%s never used" msgstr "" -#: objdump.c:164 -#, c-format -msgid "Usage: %s OPTION... FILE...\n" -msgstr "" - #: objdump.c:165 -msgid "Display information from object FILE.\n" +#, c-format +msgid "Usage: %s \n" msgstr "" #: objdump.c:166 -msgid "" -"\n" -" At least one of the following switches must be given:\n" +msgid " Display information from object .\n" msgstr "" #: objdump.c:167 +msgid " At least one of the following switches must be given:\n" +msgstr "" + +#: objdump.c:168 msgid "" " -a, --archive-headers Display archive header information\n" " -f, --file-headers Display the contents of the overall file header\n" @@ -1840,18 +1943,18 @@ msgid "" " -r, --reloc Display the relocation entries in the file\n" " -R, --dynamic-reloc Display the dynamic relocation entries in the " "file\n" -" -V, --version Display this program's version number\n" +" -v, --version Display this program's version number\n" " -i, --info List object formats and architectures supported\n" " -H, --help Display this information\n" msgstr "" -#: objdump.c:189 +#: objdump.c:190 msgid "" "\n" " The following switches are optional:\n" msgstr "" -#: objdump.c:190 +#: objdump.c:191 msgid "" " -b, --target=BFDNAME Specify the target object format as " "BFDNAME\n" @@ -1884,155 +1987,155 @@ msgid "" "\n" msgstr "" -#: objdump.c:359 +#: objdump.c:358 msgid "Sections:\n" msgstr "" -#: objdump.c:362 +#: objdump.c:361 objdump.c:365 msgid "Idx Name Size VMA LMA File off Algn" msgstr "" -#: objdump.c:364 +#: objdump.c:367 msgid "" "Idx Name Size VMA LMA File off " "Algn" msgstr "" -#: objdump.c:368 +#: objdump.c:371 msgid " Flags" msgstr "" -#: objdump.c:418 +#: objdump.c:419 #, c-format msgid "%s: not a dynamic object" msgstr "" -#: objdump.c:434 +#: objdump.c:433 #, c-format msgid "%s: No dynamic symbols" msgstr "" -#: objdump.c:1124 +#: objdump.c:1114 msgid "Out of virtual memory" msgstr "" -#: objdump.c:1553 +#: objdump.c:1543 #, c-format msgid "Can't use supplied machine %s" msgstr "" -#: objdump.c:1571 +#: objdump.c:1561 #, c-format msgid "Can't disassemble for architecture %s\n" msgstr "" -#: objdump.c:1653 +#: objdump.c:1643 #, c-format msgid "Disassembly of section %s:\n" msgstr "" -#: objdump.c:1828 +#: objdump.c:1818 #, c-format msgid "" "No %s section present\n" "\n" msgstr "" -#: objdump.c:1835 +#: objdump.c:1825 #, c-format msgid "%s has no %s section" msgstr "" -#: objdump.c:1849 +#: objdump.c:1839 #, c-format msgid "Reading %s section of %s failed: %s" msgstr "" -#: objdump.c:1861 +#: objdump.c:1851 #, c-format msgid "Reading %s section of %s failed: %s\n" msgstr "" -#: objdump.c:1904 +#: objdump.c:1894 #, c-format msgid "" "Contents of %s section:\n" "\n" msgstr "" -#: objdump.c:2004 +#: objdump.c:1994 #, c-format msgid "architecture: %s, " msgstr "" -#: objdump.c:2007 +#: objdump.c:1997 #, c-format msgid "flags 0x%08x:\n" msgstr "" -#: objdump.c:2020 +#: objdump.c:2010 msgid "" "\n" "start address 0x" msgstr "" -#: objdump.c:2052 +#: objdump.c:2042 #, c-format msgid "" "\n" "%s: file format %s\n" msgstr "" -#: objdump.c:2094 +#: objdump.c:2084 #, c-format msgid "%s: printing debugging information failed" msgstr "" -#: objdump.c:2171 +#: objdump.c:2161 #, c-format msgid "In archive %s:\n" msgstr "" -#: objdump.c:2223 +#: objdump.c:2213 #, c-format msgid "Contents of section %s:\n" msgstr "" -#: objdump.c:2736 +#: objdump.c:2718 #, c-format msgid "BFD header file version %s\n" msgstr "" -#: objdump.c:2825 +#: objdump.c:2807 msgid "unrecognized -E option" msgstr "" -#: objdump.c:2836 +#: objdump.c:2818 #, c-format msgid "unrecognized --endian type `%s'" msgstr "" -#: rdcoff.c:205 +#: rdcoff.c:204 #, c-format msgid "parse_coff_type: Bad type code 0x%x" msgstr "" -#: rdcoff.c:423 rdcoff.c:531 rdcoff.c:730 +#: rdcoff.c:422 rdcoff.c:530 rdcoff.c:729 #, c-format msgid "bfd_coff_get_syment failed: %s" msgstr "" -#: rdcoff.c:439 rdcoff.c:750 +#: rdcoff.c:438 rdcoff.c:749 #, c-format msgid "bfd_coff_get_auxent failed: %s" msgstr "" -#: rdcoff.c:817 +#: rdcoff.c:816 #, c-format msgid "%ld: .bf without preceding function" msgstr "" -#: rdcoff.c:867 +#: rdcoff.c:866 #, c-format msgid "%ld: unexpected .ef\n" msgstr "" @@ -2046,554 +2149,508 @@ msgstr "" msgid "Last stabs entries before error:\n" msgstr "" -#: readelf.c:318 +#: readelf.c:328 #, c-format msgid "%s: Error: " msgstr "" -#: readelf.c:329 +#: readelf.c:339 #, c-format msgid "%s: Warning: " msgstr "" -#: readelf.c:351 +#: readelf.c:361 #, c-format msgid "Unable to seek to %x for %s\n" msgstr "" -#: readelf.c:362 +#: readelf.c:372 #, c-format msgid "Out of memory allocating %d bytes for %s\n" msgstr "" -#: readelf.c:370 +#: readelf.c:380 #, c-format msgid "Unable to read in %d bytes of %s\n" msgstr "" -#: readelf.c:423 readelf.c:581 +#: readelf.c:433 readelf.c:591 #, c-format msgid "Unhandled data length: %d\n" msgstr "" -#: readelf.c:660 +#: readelf.c:675 msgid "Don't know about relocations on this machine architecture\n" msgstr "" -#: readelf.c:682 readelf.c:711 readelf.c:757 readelf.c:784 +#: readelf.c:697 readelf.c:726 readelf.c:772 readelf.c:799 msgid "relocs" msgstr "" -#: readelf.c:693 readelf.c:722 readelf.c:767 readelf.c:794 +#: readelf.c:708 readelf.c:737 readelf.c:782 readelf.c:809 msgid "out of memory parsing relocs" msgstr "" -#: readelf.c:845 +#: readelf.c:861 msgid "" -" Offset Info Type Symbol's Value Symbol's Name " -"Addend\n" +" Offset Info Type Sym. Value Symbol's Name + Addend\n" +msgstr "" + +#: readelf.c:863 +msgid " Offset Info Type Sym.Value Sym. Name + Addend\n" msgstr "" -#: readelf.c:848 -msgid " Offset Info Type Symbol's Value Symbol's Name\n" +#: readelf.c:868 +msgid " Offset Info Type Sym. Value Symbol's Name\n" msgstr "" -#: readelf.c:854 +#: readelf.c:870 +msgid " Offset Info Type Sym.Value Sym. Name\n" +msgstr "" + +#: readelf.c:878 +msgid "" +" Offset Info Type Symbol's Value " +"Symbol's Name + Addend\n" +msgstr "" + +#: readelf.c:880 msgid "" -" Offset Info Type Symbol's Value " -"Symbol's Name Addend\n" +" Offset Info Type Sym. Value Sym. Name + " +"Addend\n" msgstr "" -#: readelf.c:857 +#: readelf.c:885 msgid "" -" Offset Info Type Symbol's Value " +" Offset Info Type Symbol's Value " "Symbol's Name\n" msgstr "" -#: readelf.c:1061 readelf.c:1063 +#: readelf.c:887 +msgid "" +" Offset Info Type Sym. Value Sym. Name\n" +msgstr "" + +#: readelf.c:1134 readelf.c:1136 readelf.c:1184 readelf.c:1186 readelf.c:1195 +#: readelf.c:1197 #, c-format -msgid "unrecognised: %-7lx" +msgid "unrecognized: %-7lx" msgstr "" -#: readelf.c:1085 +#: readelf.c:1158 #, c-format msgid "" msgstr "" -#: readelf.c:1315 +#: readelf.c:1423 #, c-format msgid "Processor Specific: %lx" msgstr "" -#: readelf.c:1334 +#: readelf.c:1442 #, c-format msgid "Operating System specific: %lx" msgstr "" -#: readelf.c:1337 readelf.c:1961 +#: readelf.c:1445 readelf.c:2086 #, c-format msgid ": %lx" msgstr "" -#: readelf.c:1351 +#: readelf.c:1459 msgid "NONE (None)" msgstr "" -#: readelf.c:1352 +#: readelf.c:1460 msgid "REL (Relocatable file)" msgstr "" -#: readelf.c:1353 +#: readelf.c:1461 msgid "EXEC (Executable file)" msgstr "" -#: readelf.c:1354 +#: readelf.c:1462 msgid "DYN (Shared object file)" msgstr "" -#: readelf.c:1355 +#: readelf.c:1463 msgid "CORE (Core file)" msgstr "" -#: readelf.c:1359 +#: readelf.c:1467 #, c-format msgid "Processor Specific: (%x)" msgstr "" -#: readelf.c:1361 +#: readelf.c:1469 #, c-format msgid "OS Specific: (%x)" msgstr "" -#: readelf.c:1363 readelf.c:1460 readelf.c:2112 +#: readelf.c:1471 readelf.c:1573 readelf.c:2238 #, c-format msgid ": %x" msgstr "" -#: readelf.c:1376 +#: readelf.c:1484 msgid "None" msgstr "" -#: readelf.c:2152 -msgid "Usage: readelf {options} elf-file(s)\n" -msgstr "" - -#: readelf.c:2153 -msgid " Options are:\n" -msgstr "" - -#: readelf.c:2154 -msgid " -a or --all Equivalent to: -h -l -S -s -r -d -V -A -I\n" -msgstr "" - -#: readelf.c:2155 -msgid " -h or --file-header Display the ELF file header\n" -msgstr "" - -#: readelf.c:2156 -msgid " -l or --program-headers or --segments\n" -msgstr "" - -#: readelf.c:2157 -msgid " Display the program headers\n" -msgstr "" - -#: readelf.c:2158 -msgid " -S or --section-headers or --sections\n" -msgstr "" - -#: readelf.c:2159 -msgid " Display the sections' header\n" -msgstr "" - -#: readelf.c:2160 -msgid " -e or --headers Equivalent to: -h -l -S\n" -msgstr "" - -#: readelf.c:2161 -msgid " -s or --syms or --symbols Display the symbol table\n" -msgstr "" - -#: readelf.c:2162 -msgid " -n or --notes Display the core notes (if present)\n" -msgstr "" - -#: readelf.c:2163 -msgid " -r or --relocs Display the relocations (if present)\n" -msgstr "" - -#: readelf.c:2164 -msgid " -u or --unwind Display the unwind info (if present)\n" +#: readelf.c:2278 +msgid "Usage: readelf elf-file(s)\n" msgstr "" -#: readelf.c:2165 -msgid " -d or --dynamic Display the dynamic segment (if present)\n" +#: readelf.c:2279 +msgid " Display information about the contents of ELF format files\n" msgstr "" -#: readelf.c:2166 -msgid " -V or --version-info Display the version sections (if present)\n" -msgstr "" - -#: readelf.c:2167 +#: readelf.c:2280 msgid "" -" -A or --arch-specific Display architecture specific information (if " +" Options are:\n" +" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n" +" -h --file-header Display the ELF file header\n" +" -l --program-headers Display the program headers\n" +" --segments An alias for --program-headers\n" +" -S --section-headers Display the sections' header\n" +" --sections An alias for --section-headers\n" +" -e --headers Equivalent to: -h -l -S\n" +" -s --syms Display the symbol table\n" +" --symbols An alias for --syms\n" +" -n --notes Display the core notes (if present)\n" +" -r --relocs Display the relocations (if present)\n" +" -u --unwind Display the unwind info (if present)\n" +" -d --dynamic Display the dynamic segment (if present)\n" +" -V --version-info Display the version sections (if present)\n" +" -A --arch-specific Display architecture specific information (if " "any).\n" -msgstr "" - -#: readelf.c:2168 -msgid "" -" -D or --use-dynamic Use the dynamic section info when displaying " +" -D --use-dynamic Use the dynamic section info when displaying " "symbols\n" +" -x --hex-dump= Dump the contents of section \n" +" -w --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str," +"=loc]\n" +" Display the contents of DWARF2 debug sections\n" msgstr "" -#: readelf.c:2169 -msgid " -x or --hex-dump=\n" -msgstr "" - -#: readelf.c:2170 -msgid " Dump the contents of section \n" -msgstr "" - -#: readelf.c:2171 -msgid "" -" -w[liaprmfs] or --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro," -"=frames,=str]\n" -msgstr "" - -#: readelf.c:2172 +#: readelf.c:2301 msgid "" -" Display the contents of DWARF2 debug sections\n" -msgstr "" - -#: readelf.c:2174 -msgid " -i or --instruction-dump=\n" +" -i --instruction-dump=\n" +" Disassemble the contents of section \n" msgstr "" -#: readelf.c:2175 +#: readelf.c:2305 msgid "" -" Disassemble the contents of section \n" -msgstr "" - -#: readelf.c:2177 -msgid " -I or --histogram Display histogram of bucket list lengths\n" -msgstr "" - -#: readelf.c:2178 -msgid " -v or --version Display the version number of readelf\n" -msgstr "" - -#: readelf.c:2179 -msgid "" -" -W or --wide Don't split lines or truncate symbols to fit " -"into 80 columns\n" -msgstr "" - -#: readelf.c:2180 -msgid " -H or --help Display this information\n" +" -I --histogram Display histogram of bucket list lengths\n" +" -W --wide Allow output width to exceed 80 characters\n" +" -H --help Display this information\n" +" -v --version Display the version number of readelf\n" msgstr "" -#: readelf.c:2198 +#: readelf.c:2327 msgid "Out of memory allocating dump request table." msgstr "" -#: readelf.c:2357 +#: readelf.c:2491 #, c-format -msgid "Unrecognised debug option '%s'\n" +msgid "Unrecognized debug option '%s'\n" msgstr "" -#: readelf.c:2385 +#: readelf.c:2519 #, c-format msgid "Invalid option '-%c'\n" msgstr "" -#: readelf.c:2398 +#: readelf.c:2532 msgid "Nothing to do.\n" msgstr "" -#: readelf.c:2411 readelf.c:2428 readelf.c:4700 +#: readelf.c:2545 readelf.c:2562 readelf.c:4867 msgid "none" msgstr "" -#: readelf.c:2415 readelf.c:2432 readelf.c:2460 +#: readelf.c:2549 readelf.c:2566 readelf.c:2594 #, c-format msgid "" msgstr "" -#: readelf.c:2429 +#: readelf.c:2563 msgid "2's complement, little endian" msgstr "" -#: readelf.c:2430 +#: readelf.c:2564 msgid "2's complement, big endian" msgstr "" -#: readelf.c:2457 +#: readelf.c:2591 msgid "Standalone App" msgstr "" -#: readelf.c:2475 +#: readelf.c:2609 msgid "Not an ELF file - it has the wrong magic bytes at the start\n" msgstr "" -#: readelf.c:2483 +#: readelf.c:2617 msgid "ELF Header:\n" msgstr "" -#: readelf.c:2484 +#: readelf.c:2618 msgid " Magic: " msgstr "" -#: readelf.c:2488 +#: readelf.c:2622 #, c-format msgid " Class: %s\n" msgstr "" -#: readelf.c:2490 +#: readelf.c:2624 #, c-format msgid " Data: %s\n" msgstr "" -#: readelf.c:2492 +#: readelf.c:2626 #, c-format msgid " Version: %d %s\n" msgstr "" -#: readelf.c:2499 +#: readelf.c:2633 #, c-format msgid " OS/ABI: %s\n" msgstr "" -#: readelf.c:2501 +#: readelf.c:2635 #, c-format msgid " ABI Version: %d\n" msgstr "" -#: readelf.c:2503 +#: readelf.c:2637 #, c-format msgid " Type: %s\n" msgstr "" -#: readelf.c:2505 +#: readelf.c:2639 #, c-format msgid " Machine: %s\n" msgstr "" -#: readelf.c:2507 +#: readelf.c:2641 #, c-format msgid " Version: 0x%lx\n" msgstr "" -#: readelf.c:2510 +#: readelf.c:2644 msgid " Entry point address: " msgstr "" -#: readelf.c:2512 +#: readelf.c:2646 msgid "" "\n" " Start of program headers: " msgstr "" -#: readelf.c:2514 +#: readelf.c:2648 msgid "" " (bytes into file)\n" " Start of section headers: " msgstr "" -#: readelf.c:2516 +#: readelf.c:2650 msgid " (bytes into file)\n" msgstr "" -#: readelf.c:2518 +#: readelf.c:2652 #, c-format msgid " Flags: 0x%lx%s\n" msgstr "" -#: readelf.c:2521 +#: readelf.c:2655 #, c-format msgid " Size of this header: %ld (bytes)\n" msgstr "" -#: readelf.c:2523 +#: readelf.c:2657 #, c-format msgid " Size of program headers: %ld (bytes)\n" msgstr "" -#: readelf.c:2525 +#: readelf.c:2659 #, c-format msgid " Number of program headers: %ld\n" msgstr "" -#: readelf.c:2527 +#: readelf.c:2661 #, c-format msgid " Size of section headers: %ld (bytes)\n" msgstr "" -#: readelf.c:2529 +#: readelf.c:2663 #, c-format msgid " Number of section headers: %ld" msgstr "" -#: readelf.c:2534 +#: readelf.c:2668 #, c-format msgid " Section header string table index: %ld" msgstr "" -#: readelf.c:2568 readelf.c:2604 +#: readelf.c:2702 readelf.c:2738 msgid "program headers" msgstr "" -#: readelf.c:2638 +#: readelf.c:2772 msgid "" "\n" "There are no program headers in this file.\n" msgstr "" -#: readelf.c:2644 +#: readelf.c:2778 #, c-format msgid "" "\n" "Elf file type is %s\n" msgstr "" -#: readelf.c:2645 +#: readelf.c:2779 msgid "Entry point " msgstr "" -#: readelf.c:2647 +#: readelf.c:2781 #, c-format msgid "" "\n" "There are %d program headers, starting at offset " msgstr "" -#: readelf.c:2658 readelf.c:2883 readelf.c:2929 readelf.c:2992 readelf.c:3059 -#: readelf.c:4087 readelf.c:4130 readelf.c:4310 readelf.c:5246 readelf.c:5260 -#: readelf.c:9246 readelf.c:9286 +#: readelf.c:2792 readelf.c:3019 readelf.c:3065 readelf.c:3128 readelf.c:3195 +#: readelf.c:4229 readelf.c:4272 readelf.c:4461 readelf.c:5414 readelf.c:5428 +#: readelf.c:9659 readelf.c:9699 msgid "Out of memory\n" msgstr "" -#: readelf.c:2676 -#, c-format +#: readelf.c:2810 readelf.c:2812 msgid "" "\n" -"Program Header%s:\n" +"Program Headers:\n" msgstr "" -#: readelf.c:2680 +#: readelf.c:2816 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n" msgstr "" -#: readelf.c:2683 +#: readelf.c:2819 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align\n" msgstr "" -#: readelf.c:2687 +#: readelf.c:2823 msgid " Type Offset VirtAddr PhysAddr\n" msgstr "" -#: readelf.c:2689 +#: readelf.c:2825 msgid " FileSiz MemSiz Flags Align\n" msgstr "" -#: readelf.c:2789 +#: readelf.c:2925 msgid "more than one dynamic segment\n" msgstr "" -#: readelf.c:2797 +#: readelf.c:2933 msgid "Unable to find program interpreter name\n" msgstr "" -#: readelf.c:2804 +#: readelf.c:2940 #, c-format msgid "" "\n" " [Requesting program interpreter: %s]" msgstr "" -#: readelf.c:2822 +#: readelf.c:2958 msgid "" "\n" " Section to Segment mapping:\n" msgstr "" -#: readelf.c:2823 +#: readelf.c:2959 msgid " Segment Sections...\n" msgstr "" -#: readelf.c:2874 readelf.c:2920 +#: readelf.c:3010 readelf.c:3056 msgid "section headers" msgstr "" -#: readelf.c:2968 readelf.c:3035 +#: readelf.c:3104 readelf.c:3171 msgid "symbols" msgstr "" -#: readelf.c:2979 readelf.c:3046 +#: readelf.c:3115 readelf.c:3182 msgid "symtab shndx" msgstr "" -#: readelf.c:3147 +#: readelf.c:3284 msgid "" "\n" "There are no sections in this file.\n" msgstr "" -#: readelf.c:3153 +#: readelf.c:3290 #, c-format msgid "There are %d section headers, starting at offset 0x%lx:\n" msgstr "" -#: readelf.c:3170 readelf.c:3479 readelf.c:3826 readelf.c:5397 +#: readelf.c:3307 readelf.c:3621 readelf.c:3968 readelf.c:5565 msgid "string table" msgstr "" -#: readelf.c:3191 +#: readelf.c:3328 msgid "File contains multiple dynamic symbol tables\n" msgstr "" -#: readelf.c:3203 +#: readelf.c:3340 msgid "File contains multiple dynamic string tables\n" msgstr "" -#: readelf.c:3209 +#: readelf.c:3346 msgid "dynamic strings" msgstr "" -#: readelf.c:3215 +#: readelf.c:3352 msgid "File contains multiple symtab shndx tables\n" msgstr "" -#: readelf.c:3250 -#, c-format +#: readelf.c:3390 +msgid "" +"\n" +"Section Headers:\n" +msgstr "" + +#: readelf.c:3392 msgid "" "\n" -"Section Header%s:\n" +"Section Header:\n" msgstr "" -#: readelf.c:3254 +#: readelf.c:3396 msgid "" " [Nr] Name Type Addr Off Size ES Flg Lk " "Inf Al\n" msgstr "" -#: readelf.c:3257 +#: readelf.c:3399 msgid "" " [Nr] Name Type Address Off Size ES " "Flg Lk Inf Al\n" msgstr "" -#: readelf.c:3260 +#: readelf.c:3402 msgid " [Nr] Name Type Address Offset\n" msgstr "" -#: readelf.c:3261 +#: readelf.c:3403 msgid " Size EntSize Flags Link Info Align\n" msgstr "" -#: readelf.c:3356 +#: readelf.c:3498 msgid "" "Key to Flags:\n" " W (write), A (alloc), X (execute), M (merge), S (strings)\n" @@ -2601,510 +2658,500 @@ msgid "" " O (extra OS processing required) o (OS specific), p (processor specific)\n" msgstr "" -#: readelf.c:3417 +#: readelf.c:3559 #, c-format msgid "" "\n" "Relocation section at offset 0x%lx contains %ld bytes:\n" msgstr "" -#: readelf.c:3424 +#: readelf.c:3566 msgid "" "\n" "There are no dynamic relocations in this file.\n" msgstr "" -#: readelf.c:3451 +#: readelf.c:3593 msgid "" "\n" "Relocation section " msgstr "" -#: readelf.c:3458 readelf.c:3905 +#: readelf.c:3598 readelf.c:4031 readelf.c:4045 +#, c-format +msgid "'%s'" +msgstr "" + +#: readelf.c:3600 readelf.c:4047 #, c-format msgid " at offset 0x%lx contains %lu entries:\n" msgstr "" -#: readelf.c:3496 +#: readelf.c:3638 msgid "" "\n" "There are no relocations in this file.\n" msgstr "" -#: readelf.c:3692 +#: readelf.c:3834 msgid "unwind table" msgstr "" -#: readelf.c:3743 readelf.c:3755 readelf.c:7608 readelf.c:7619 +#: readelf.c:3885 readelf.c:3897 readelf.c:7890 readelf.c:7901 #, c-format msgid "Skipping unexpected symbol type %u\n" msgstr "" -#: readelf.c:3763 +#: readelf.c:3905 #, c-format msgid "Skipping unexpected relocation type %s\n" msgstr "" -#: readelf.c:3808 readelf.c:3833 +#: readelf.c:3950 readelf.c:3975 msgid "" "\n" "There are no unwind sections in this file.\n" msgstr "" -#: readelf.c:3884 +#: readelf.c:4026 msgid "" "\n" "Could not find unwind info section for " msgstr "" -#: readelf.c:3896 +#: readelf.c:4038 msgid "unwind info" msgstr "" -#: readelf.c:3898 +#: readelf.c:4040 msgid "" "\n" "Unwind section " msgstr "" -#: readelf.c:4071 readelf.c:4114 +#: readelf.c:4213 readelf.c:4256 msgid "dynamic segment" msgstr "" -#: readelf.c:4183 +#: readelf.c:4334 msgid "" "\n" "There is no dynamic segment in this file.\n" msgstr "" -#: readelf.c:4217 +#: readelf.c:4368 msgid "Unable to seek to end of file!" msgstr "" -#: readelf.c:4228 +#: readelf.c:4379 msgid "Unable to determine the number of symbols to load\n" msgstr "" -#: readelf.c:4258 +#: readelf.c:4409 msgid "Unable to seek to end of file\n" msgstr "" -#: readelf.c:4264 +#: readelf.c:4415 msgid "Unable to determine the length of the dynamic string table\n" msgstr "" -#: readelf.c:4269 +#: readelf.c:4420 msgid "dynamic string table" msgstr "" -#: readelf.c:4303 +#: readelf.c:4454 msgid "symbol information" msgstr "" -#: readelf.c:4327 +#: readelf.c:4478 #, c-format msgid "" "\n" "Dynamic segment at offset 0x%x contains %ld entries:\n" msgstr "" -#: readelf.c:4330 +#: readelf.c:4481 msgid " Tag Type Name/Value\n" msgstr "" -#: readelf.c:4366 +#: readelf.c:4517 msgid "Auxiliary library" msgstr "" -#: readelf.c:4370 +#: readelf.c:4521 msgid "Filter library" msgstr "" -#: readelf.c:4374 +#: readelf.c:4525 msgid "Configuration file" msgstr "" -#: readelf.c:4378 +#: readelf.c:4529 msgid "Dependency audit library" msgstr "" -#: readelf.c:4382 +#: readelf.c:4533 msgid "Audit library" msgstr "" -#: readelf.c:4400 readelf.c:4426 readelf.c:4452 +#: readelf.c:4551 readelf.c:4577 readelf.c:4603 msgid "Flags:" msgstr "" -#: readelf.c:4402 readelf.c:4428 readelf.c:4454 +#: readelf.c:4553 readelf.c:4579 readelf.c:4605 msgid " None\n" msgstr "" -#: readelf.c:4573 +#: readelf.c:4724 #, c-format msgid "Shared library: [%s]" msgstr "" -#: readelf.c:4576 +#: readelf.c:4727 msgid " program interpreter" msgstr "" -#: readelf.c:4580 +#: readelf.c:4731 #, c-format msgid "Library soname: [%s]" msgstr "" -#: readelf.c:4584 +#: readelf.c:4735 #, c-format msgid "Library rpath: [%s]" msgstr "" -#: readelf.c:4588 +#: readelf.c:4739 #, c-format msgid "Library runpath: [%s]" msgstr "" -#: readelf.c:4649 +#: readelf.c:4802 #, c-format msgid "Not needed object: [%s]\n" msgstr "" -#: readelf.c:4746 +#: readelf.c:4913 #, c-format msgid "" "\n" "Version definition section '%s' contains %ld entries:\n" msgstr "" -#: readelf.c:4749 +#: readelf.c:4916 msgid " Addr: 0x" msgstr "" -#: readelf.c:4751 readelf.c:4946 +#: readelf.c:4918 readelf.c:5113 #, c-format msgid " Offset: %#08lx Link: %lx (%s)\n" msgstr "" -#: readelf.c:4758 +#: readelf.c:4925 msgid "version definition section" msgstr "" -#: readelf.c:4784 +#: readelf.c:4951 #, c-format msgid " %#06x: Rev: %d Flags: %s" msgstr "" -#: readelf.c:4787 +#: readelf.c:4954 #, c-format msgid " Index: %d Cnt: %d " msgstr "" -#: readelf.c:4798 +#: readelf.c:4965 #, c-format msgid "Name: %s\n" msgstr "" -#: readelf.c:4800 +#: readelf.c:4967 #, c-format msgid "Name index: %ld\n" msgstr "" -#: readelf.c:4815 +#: readelf.c:4982 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr "" -#: readelf.c:4818 +#: readelf.c:4985 #, c-format msgid " %#06x: Parent %d, name index: %ld\n" msgstr "" -#: readelf.c:4837 +#: readelf.c:5004 #, c-format msgid "" "\n" "Version needs section '%s' contains %ld entries:\n" msgstr "" -#: readelf.c:4840 +#: readelf.c:5007 msgid " Addr: 0x" msgstr "" -#: readelf.c:4842 +#: readelf.c:5009 #, c-format msgid " Offset: %#08lx Link to section: %ld (%s)\n" msgstr "" -#: readelf.c:4848 +#: readelf.c:5015 msgid "version need section" msgstr "" -#: readelf.c:4870 +#: readelf.c:5037 #, c-format msgid " %#06x: Version: %d" msgstr "" -#: readelf.c:4873 +#: readelf.c:5040 #, c-format msgid " File: %s" msgstr "" -#: readelf.c:4875 +#: readelf.c:5042 #, c-format msgid " File: %lx" msgstr "" -#: readelf.c:4877 +#: readelf.c:5044 #, c-format msgid " Cnt: %d\n" msgstr "" -#: readelf.c:4895 +#: readelf.c:5062 #, c-format msgid " %#06x: Name: %s" msgstr "" -#: readelf.c:4898 +#: readelf.c:5065 #, c-format msgid " %#06x: Name index: %lx" msgstr "" -#: readelf.c:4901 +#: readelf.c:5068 #, c-format msgid " Flags: %s Version: %d\n" msgstr "" -#: readelf.c:4937 +#: readelf.c:5104 msgid "version string table" msgstr "" -#: readelf.c:4941 +#: readelf.c:5108 #, c-format msgid "" "\n" "Version symbols section '%s' contains %d entries:\n" msgstr "" -#: readelf.c:4944 +#: readelf.c:5111 msgid " Addr: " msgstr "" -#: readelf.c:4954 +#: readelf.c:5121 msgid "version symbol data" msgstr "" -#: readelf.c:4981 +#: readelf.c:5148 msgid " 0 (*local*) " msgstr "" -#: readelf.c:4985 +#: readelf.c:5152 msgid " 1 (*global*) " msgstr "" -#: readelf.c:5020 readelf.c:5454 +#: readelf.c:5187 readelf.c:5622 msgid "version need" msgstr "" -#: readelf.c:5030 +#: readelf.c:5197 msgid "version need aux (2)" msgstr "" -#: readelf.c:5071 readelf.c:5516 +#: readelf.c:5238 readelf.c:5684 msgid "version def" msgstr "" -#: readelf.c:5090 readelf.c:5531 +#: readelf.c:5257 readelf.c:5699 msgid "version def aux" msgstr "" -#: readelf.c:5121 +#: readelf.c:5288 msgid "" "\n" "No version information found in this file.\n" msgstr "" -#: readelf.c:5139 readelf.c:5174 -#, c-format -msgid ": %d" -msgstr "" - -#: readelf.c:5141 readelf.c:5186 -#, c-format -msgid ": %d" -msgstr "" - -#: readelf.c:5143 readelf.c:5189 -#, c-format -msgid ": %d" -msgstr "" - -#: readelf.c:5252 +#: readelf.c:5420 msgid "Unable to read in dynamic data\n" msgstr "" -#: readelf.c:5294 +#: readelf.c:5462 msgid "Unable to seek to start of dynamic information" msgstr "" -#: readelf.c:5300 +#: readelf.c:5468 msgid "Failed to read in number of buckets\n" msgstr "" -#: readelf.c:5306 +#: readelf.c:5474 msgid "Failed to read in number of chains\n" msgstr "" -#: readelf.c:5326 +#: readelf.c:5494 msgid "" "\n" "Symbol table for image:\n" msgstr "" -#: readelf.c:5328 +#: readelf.c:5496 msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:5330 +#: readelf.c:5498 msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:5375 +#: readelf.c:5543 #, c-format msgid "" "\n" "Symbol table '%s' contains %lu entries:\n" msgstr "" -#: readelf.c:5379 +#: readelf.c:5547 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:5381 +#: readelf.c:5549 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:5427 +#: readelf.c:5595 msgid "version data" msgstr "" -#: readelf.c:5467 +#: readelf.c:5635 msgid "version need aux (3)" msgstr "" -#: readelf.c:5492 +#: readelf.c:5660 msgid "bad dynamic symbol" msgstr "" -#: readelf.c:5554 +#: readelf.c:5722 msgid "" "\n" "Dynamic symbol information is not available for displaying symbols.\n" msgstr "" -#: readelf.c:5566 +#: readelf.c:5734 #, c-format msgid "" "\n" "Histogram for bucket list length (total of %d buckets):\n" msgstr "" -#: readelf.c:5568 +#: readelf.c:5736 #, c-format msgid " Length Number %% of total Coverage\n" msgstr "" -#: readelf.c:5573 readelf.c:5592 readelf.c:8825 readelf.c:9017 +#: readelf.c:5741 readelf.c:5760 readelf.c:9146 readelf.c:9338 msgid "Out of memory" msgstr "" -#: readelf.c:5641 +#: readelf.c:5809 #, c-format msgid "" "\n" "Dynamic info segment at offset 0x%lx contains %d entries:\n" msgstr "" -#: readelf.c:5644 +#: readelf.c:5812 msgid " Num: Name BoundTo Flags\n" msgstr "" -#: readelf.c:5696 +#: readelf.c:5864 #, c-format msgid "" "\n" "Assembly dump of section %s\n" msgstr "" -#: readelf.c:5719 +#: readelf.c:5887 #, c-format msgid "" "\n" "Section '%s' has no data to dump.\n" msgstr "" -#: readelf.c:5724 +#: readelf.c:5892 #, c-format msgid "" "\n" "Hex dump of section '%s':\n" msgstr "" -#: readelf.c:5729 +#: readelf.c:5897 msgid "section data" msgstr "" -#: readelf.c:5878 +#: readelf.c:6046 msgid "badly formed extended line op encountered!\n" msgstr "" -#: readelf.c:5885 +#: readelf.c:6053 #, c-format msgid " Extended opcode %d: " msgstr "" -#: readelf.c:5890 +#: readelf.c:6058 msgid "" "End of Sequence\n" "\n" msgstr "" -#: readelf.c:5896 +#: readelf.c:6064 #, c-format msgid "set Address to 0x%lx\n" msgstr "" -#: readelf.c:5901 +#: readelf.c:6069 msgid " define new File Table entry\n" msgstr "" -#: readelf.c:5902 readelf.c:6031 +#: readelf.c:6070 readelf.c:6199 msgid " Entry\tDir\tTime\tSize\tName\n" msgstr "" -#: readelf.c:5904 +#: readelf.c:6072 #, c-format msgid " %d\t" msgstr "" -#: readelf.c:5907 readelf.c:5909 readelf.c:5911 readelf.c:6043 readelf.c:6045 -#: readelf.c:6047 +#: readelf.c:6075 readelf.c:6077 readelf.c:6079 readelf.c:6211 readelf.c:6213 +#: readelf.c:6215 #, c-format msgid "%lu\t" msgstr "" -#: readelf.c:5912 +#: readelf.c:6080 #, c-format msgid "" "%s\n" "\n" msgstr "" -#: readelf.c:5916 +#: readelf.c:6084 #, c-format msgid "UNKNOWN: length %d\n" msgstr "" -#: readelf.c:5942 +#: readelf.c:6110 #, c-format msgid "" "\n" @@ -3112,629 +3159,672 @@ msgid "" "\n" msgstr "" -#: readelf.c:5954 +#: readelf.c:6122 msgid "64-bit DWARF line info is not supported yet.\n" msgstr "" -#: readelf.c:5961 +#: readelf.c:6129 msgid "The line info appears to be corrupt - the section is too small\n" msgstr "" -#: readelf.c:5969 +#: readelf.c:6137 msgid "Only DWARF version 2 line info is currently supported.\n" msgstr "" -#: readelf.c:5984 +#: readelf.c:6152 #, c-format msgid " Length: %ld\n" msgstr "" -#: readelf.c:5985 +#: readelf.c:6153 #, c-format msgid " DWARF Version: %d\n" msgstr "" -#: readelf.c:5986 +#: readelf.c:6154 #, c-format msgid " Prologue Length: %d\n" msgstr "" -#: readelf.c:5987 +#: readelf.c:6155 #, c-format msgid " Minimum Instruction Length: %d\n" msgstr "" -#: readelf.c:5988 +#: readelf.c:6156 #, c-format msgid " Initial value of 'is_stmt': %d\n" msgstr "" -#: readelf.c:5989 +#: readelf.c:6157 #, c-format msgid " Line Base: %d\n" msgstr "" -#: readelf.c:5990 +#: readelf.c:6158 #, c-format msgid " Line Range: %d\n" msgstr "" -#: readelf.c:5991 +#: readelf.c:6159 #, c-format msgid " Opcode Base: %d\n" msgstr "" -#: readelf.c:6000 +#: readelf.c:6168 msgid "" "\n" " Opcodes:\n" msgstr "" -#: readelf.c:6003 +#: readelf.c:6171 #, c-format msgid " Opcode %d has %d args\n" msgstr "" -#: readelf.c:6009 +#: readelf.c:6177 msgid "" "\n" " The Directory Table is empty.\n" msgstr "" -#: readelf.c:6012 +#: readelf.c:6180 msgid "" "\n" " The Directory Table:\n" msgstr "" -#: readelf.c:6016 +#: readelf.c:6184 #, c-format msgid " %s\n" msgstr "" -#: readelf.c:6027 +#: readelf.c:6195 msgid "" "\n" " The File Name Table is empty.\n" msgstr "" -#: readelf.c:6030 +#: readelf.c:6198 msgid "" "\n" " The File Name Table:\n" msgstr "" -#: readelf.c:6038 +#: readelf.c:6206 #, c-format msgid " %d\t" msgstr "" -#: readelf.c:6049 +#: readelf.c:6217 #, c-format msgid "%s\n" msgstr "" #. Now display the statements. -#: readelf.c:6057 +#: readelf.c:6225 msgid "" "\n" " Line Number Statements:\n" msgstr "" -#: readelf.c:6073 +#: readelf.c:6241 #, c-format msgid " Special opcode %d: advance Address by %d to 0x%lx" msgstr "" -#: readelf.c:6077 +#: readelf.c:6245 #, c-format msgid " and Line by %d to %d\n" msgstr "" -#: readelf.c:6088 +#: readelf.c:6256 msgid " Copy\n" msgstr "" -#: readelf.c:6095 +#: readelf.c:6263 #, c-format msgid " Advance PC by %d to %lx\n" msgstr "" -#: readelf.c:6103 +#: readelf.c:6271 #, c-format msgid " Advance Line by %d to %d\n" msgstr "" -#: readelf.c:6110 +#: readelf.c:6278 #, c-format msgid " Set File Name to entry %d in the File Name Table\n" msgstr "" -#: readelf.c:6118 +#: readelf.c:6286 #, c-format msgid " Set column to %d\n" msgstr "" -#: readelf.c:6125 +#: readelf.c:6293 #, c-format msgid " Set is_stmt to %d\n" msgstr "" -#: readelf.c:6130 +#: readelf.c:6298 msgid " Set basic block\n" msgstr "" -#: readelf.c:6138 +#: readelf.c:6306 #, c-format msgid " Advance PC by constant %d to 0x%lx\n" msgstr "" -#: readelf.c:6146 +#: readelf.c:6314 #, c-format msgid " Advance PC by fixed size amount %d to 0x%lx\n" msgstr "" -#: readelf.c:6151 +#: readelf.c:6319 msgid " Set prologue_end to true\n" msgstr "" -#: readelf.c:6155 +#: readelf.c:6323 msgid " Set epilogue_begin to true\n" msgstr "" -#: readelf.c:6161 +#: readelf.c:6329 #, c-format msgid " Set ISA to %d\n" msgstr "" -#: readelf.c:6165 +#: readelf.c:6333 #, c-format msgid " Unknown opcode %d with operands: " msgstr "" -#: readelf.c:6197 readelf.c:6658 readelf.c:6730 +#: readelf.c:6365 readelf.c:6827 readelf.c:6899 #, c-format msgid "" "Contents of the %s section:\n" "\n" msgstr "" -#: readelf.c:6216 +#: readelf.c:6384 msgid "64-bit DWARF pubnames are not supported yet.\n" msgstr "" -#: readelf.c:6226 +#: readelf.c:6394 msgid "Only DWARF 2 pubnames are currently supported\n" msgstr "" -#: readelf.c:6233 +#: readelf.c:6401 #, c-format msgid " Length: %ld\n" msgstr "" -#: readelf.c:6235 +#: readelf.c:6403 #, c-format msgid " Version: %d\n" msgstr "" -#: readelf.c:6237 +#: readelf.c:6405 #, c-format msgid " Offset into .debug_info section: %ld\n" msgstr "" -#: readelf.c:6239 +#: readelf.c:6407 #, c-format msgid " Size of area in .debug_info section: %ld\n" msgstr "" -#: readelf.c:6242 +#: readelf.c:6410 msgid "" "\n" " Offset\tName\n" msgstr "" -#: readelf.c:6333 +#: readelf.c:6501 #, c-format msgid "Unknown TAG value: %lx" msgstr "" -#: readelf.c:6443 +#: readelf.c:6612 #, c-format msgid "Unknown AT value: %lx" msgstr "" -#: readelf.c:6480 +#: readelf.c:6649 #, c-format msgid "Unknown FORM value: %lx" msgstr "" -#: readelf.c:6679 +#: readelf.c:6848 #, c-format msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n" msgstr "" -#: readelf.c:6684 +#: readelf.c:6853 msgid " DW_MACINFO_end_file\n" msgstr "" -#: readelf.c:6692 +#: readelf.c:6861 #, c-format msgid " DW_MACINFO_define - lineno : %d macro : %s\n" msgstr "" -#: readelf.c:6700 +#: readelf.c:6869 #, c-format msgid " DW_MACINFO_undef - lineno : %d macro : %s\n" msgstr "" -#: readelf.c:6711 +#: readelf.c:6880 #, c-format msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n" msgstr "" -#: readelf.c:6739 +#: readelf.c:6908 msgid " Number TAG\n" msgstr "" -#: readelf.c:6745 +#: readelf.c:6914 #, c-format msgid " %ld %s [%s]\n" msgstr "" -#: readelf.c:6748 +#: readelf.c:6917 msgid "has children" msgstr "" -#: readelf.c:6748 +#: readelf.c:6917 msgid "no children" msgstr "" -#: readelf.c:6752 +#: readelf.c:6921 #, c-format msgid " %-18s %s\n" msgstr "" -#: readelf.c:6773 +#: readelf.c:6942 #, c-format msgid " %lu byte block: " msgstr "" -#: readelf.c:7096 +#: readelf.c:7265 msgid "(User defined location op)" msgstr "" -#: readelf.c:7098 +#: readelf.c:7267 msgid "(Unknown location op)" msgstr "" -#: readelf.c:7137 +#: readelf.c:7305 +msgid "debug_loc section data" +msgstr "" + +#: readelf.c:7336 +msgid "" +"\n" +"The .debug_loc section is empty.\n" +msgstr "" + +#: readelf.c:7339 +msgid "" +"Contents of the .debug_loc section:\n" +"\n" +msgstr "" + +#: readelf.c:7340 +msgid "" +"\n" +" Offset Begin End Expression\n" +msgstr "" + +#: readelf.c:7412 msgid "debug_str section data" msgstr "" -#: readelf.c:7156 +#: readelf.c:7431 msgid "" msgstr "" -#: readelf.c:7159 +#: readelf.c:7434 msgid "" msgstr "" -#: readelf.c:7179 +#: readelf.c:7454 msgid "" "\n" "The .debug_str section is empty.\n" msgstr "" -#: readelf.c:7183 +#: readelf.c:7458 msgid "" "Contents of the .debug_str section:\n" "\n" msgstr "" -#: readelf.c:7354 +#: readelf.c:7629 #, c-format msgid " (indirect string, offset: 0x%lx): " msgstr "" -#: readelf.c:7363 +#: readelf.c:7638 #, c-format -msgid "Unrecognised form: %d\n" +msgid "Unrecognized form: %d\n" msgstr "" -#: readelf.c:7376 +#: readelf.c:7651 msgid "(not inlined)" msgstr "" -#: readelf.c:7377 +#: readelf.c:7652 msgid "(inlined)" msgstr "" -#: readelf.c:7378 +#: readelf.c:7653 msgid "(declared as inline but ignored)" msgstr "" -#: readelf.c:7379 +#: readelf.c:7654 msgid "(declared as inline and inlined)" msgstr "" -#: readelf.c:7380 +#: readelf.c:7655 #, c-format msgid " (Unknown inline attribute value: %lx)" msgstr "" -#: readelf.c:7545 readelf.c:7746 +#: readelf.c:7826 readelf.c:8029 #, c-format msgid "" "The section %s contains:\n" "\n" msgstr "" -#: readelf.c:7568 +#: readelf.c:7850 msgid "64-bit DWARF debug info is not supported yet.\n" msgstr "" -#: readelf.c:7637 +#: readelf.c:7919 #, c-format msgid " Compilation Unit @ %lx:\n" msgstr "" -#: readelf.c:7638 +#: readelf.c:7920 #, c-format msgid " Length: %ld\n" msgstr "" -#: readelf.c:7639 +#: readelf.c:7921 #, c-format msgid " Version: %d\n" msgstr "" -#: readelf.c:7640 +#: readelf.c:7922 #, c-format msgid " Abbrev Offset: %ld\n" msgstr "" -#: readelf.c:7641 +#: readelf.c:7923 #, c-format msgid " Pointer Size: %d\n" msgstr "" -#: readelf.c:7645 +#: readelf.c:7927 msgid "Only version 2 DWARF debug information is currently supported.\n" msgstr "" -#: readelf.c:7666 +#: readelf.c:7948 msgid "Unable to locate .debug_abbrev section!\n" msgstr "" -#: readelf.c:7672 +#: readelf.c:7954 msgid "debug_abbrev section data" msgstr "" -#: readelf.c:7709 +#: readelf.c:7991 #, c-format msgid "Unable to locate entry %lu in the abbreviation table\n" msgstr "" -#: readelf.c:7714 +#: readelf.c:7996 #, c-format msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n" msgstr "" -#: readelf.c:7767 +#: readelf.c:8050 msgid "64-bit DWARF aranges are not supported yet.\n" msgstr "" -#: readelf.c:7773 +#: readelf.c:8056 msgid "Only DWARF 2 aranges are currently supported.\n" msgstr "" -#: readelf.c:7777 +#: readelf.c:8060 #, c-format msgid " Length: %ld\n" msgstr "" -#: readelf.c:7778 +#: readelf.c:8061 #, c-format msgid " Version: %d\n" msgstr "" -#: readelf.c:7779 +#: readelf.c:8062 #, c-format msgid " Offset into .debug_info: %lx\n" msgstr "" -#: readelf.c:7780 +#: readelf.c:8063 #, c-format msgid " Pointer Size: %d\n" msgstr "" -#: readelf.c:7781 +#: readelf.c:8064 #, c-format msgid " Segment Size: %d\n" msgstr "" -#: readelf.c:7783 +#: readelf.c:8066 msgid "" "\n" " Address Length\n" msgstr "" -#: readelf.c:7965 +#: readelf.c:8248 #, c-format msgid "The section %s contains:\n" msgstr "" -#: readelf.c:7988 +#: readelf.c:8271 msgid "64-bit DWARF format frames are not supported yet.\n" msgstr "" -#: readelf.c:8499 +#: readelf.c:8820 #, c-format msgid "Displaying the debug contents of section %s is not yet supported.\n" msgstr "" -#: readelf.c:8565 +#: readelf.c:8886 #, c-format msgid "" "\n" "Section '%s' has no debugging data.\n" msgstr "" -#: readelf.c:8570 readelf.c:8632 +#: readelf.c:8891 readelf.c:8953 msgid "debug section data" msgstr "" -#: readelf.c:8586 +#: readelf.c:8907 #, c-format -msgid "Unrecognised debug section: %s\n" +msgid "Unrecognized debug section: %s\n" msgstr "" -#: readelf.c:8660 +#: readelf.c:8981 msgid "Some sections were not dumped because they do not exist!\n" msgstr "" -#: readelf.c:8733 +#: readelf.c:9054 readelf.c:9418 msgid "liblist" msgstr "" -#: readelf.c:8818 +#: readelf.c:9139 msgid "options" msgstr "" -#: readelf.c:8849 +#: readelf.c:9170 #, c-format msgid "" "\n" "Section '%s' contains %d entries:\n" msgstr "" -#: readelf.c:9010 -msgid "conflict list with without table" +#: readelf.c:9331 +msgid "conflict list found without a dynamic symbol table" msgstr "" -#: readelf.c:9028 readelf.c:9044 +#: readelf.c:9349 readelf.c:9365 msgid "conflict" msgstr "" -#: readelf.c:9054 +#: readelf.c:9375 #, c-format msgid "" "\n" "Section '.conflict' contains %ld entries:\n" msgstr "" -#: readelf.c:9056 +#: readelf.c:9377 msgid " Num: Index Value Name" msgstr "" -#: readelf.c:9083 +#: readelf.c:9426 +msgid "liblist string table" +msgstr "" + +#: readelf.c:9435 +#, c-format +msgid "" +"\n" +"Library list section '%s' contains %lu entries:\n" +msgstr "" + +#: readelf.c:9484 msgid "NT_PRSTATUS (prstatus structure)" msgstr "" -#: readelf.c:9084 +#: readelf.c:9485 msgid "NT_FPREGSET (floating point registers)" msgstr "" -#: readelf.c:9085 +#: readelf.c:9486 msgid "NT_PRPSINFO (prpsinfo structure)" msgstr "" -#: readelf.c:9086 +#: readelf.c:9487 msgid "NT_TASKSTRUCT (task structure)" msgstr "" -#: readelf.c:9087 +#: readelf.c:9488 msgid "NT_PRXFPREG (user_xfpregs structure)" msgstr "" -#: readelf.c:9088 +#: readelf.c:9489 msgid "NT_PSTATUS (pstatus structure)" msgstr "" -#: readelf.c:9089 +#: readelf.c:9490 msgid "NT_FPREGS (floating point registers)" msgstr "" -#: readelf.c:9090 +#: readelf.c:9491 msgid "NT_PSINFO (psinfo structure)" msgstr "" -#: readelf.c:9091 +#: readelf.c:9492 msgid "NT_LWPSTATUS (lwpstatus_t structure)" msgstr "" -#: readelf.c:9092 +#: readelf.c:9493 msgid "NT_LWPSINFO (lwpsinfo_t structure)" msgstr "" -#: readelf.c:9093 -msgid "NT_WIN32PSTATUS (win32_pstatus strcuture)" +#: readelf.c:9494 +msgid "NT_WIN32PSTATUS (win32_pstatus structure)" msgstr "" -#: readelf.c:9095 readelf.c:9119 +#: readelf.c:9496 readelf.c:9520 #, c-format msgid "Unknown note type: (0x%08x)" msgstr "" #. NetBSD core "procinfo" structure. -#: readelf.c:9109 +#: readelf.c:9510 msgid "NetBSD procinfo structure" msgstr "" -#: readelf.c:9136 readelf.c:9150 +#: readelf.c:9537 readelf.c:9551 msgid "PT_GETREGS (reg structure)" msgstr "" -#: readelf.c:9138 readelf.c:9152 +#: readelf.c:9539 readelf.c:9553 msgid "PT_GETFPREGS (fpreg structure)" msgstr "" -#: readelf.c:9158 +#: readelf.c:9559 #, c-format msgid "PT_FIRSTMACH+%d" msgstr "" -#: readelf.c:9212 +#: readelf.c:9613 msgid "notes" msgstr "" -#: readelf.c:9218 +#: readelf.c:9619 #, c-format msgid "" "\n" "Notes at offset 0x%08lx with length 0x%08lx:\n" msgstr "" -#: readelf.c:9220 +#: readelf.c:9621 msgid " Owner\t\tData size\tDescription\n" msgstr "" -#: readelf.c:9331 +#: readelf.c:9640 +#, c-format +msgid "corrupt note found at offset %x into core notes\n" +msgstr "" + +#: readelf.c:9642 +#, c-format +msgid " type: %x, namesize: %08lx, descsize: %08lx\n" +msgstr "" + +#: readelf.c:9744 msgid "No note segments present in the core file.\n" msgstr "" -#: readelf.c:9409 +#: readelf.c:9822 msgid "" "This instance of readelf has been built without support for a\n" "64 bit data type and so it cannot read 64 bit ELF files.\n" msgstr "" -#: readelf.c:9452 +#: readelf.c:9868 #, c-format msgid "Cannot stat input file %s.\n" msgstr "" -#: readelf.c:9459 +#: readelf.c:9875 #, c-format msgid "Input file %s not found.\n" msgstr "" -#: readelf.c:9465 +#: readelf.c:9881 #, c-format msgid "%s: Failed to read file header\n" msgstr "" -#: readelf.c:9479 +#: readelf.c:9895 #, c-format msgid "" "\n" @@ -3757,202 +3847,202 @@ msgstr "" msgid "%s: simple_copy: %s" msgstr "" -#: resbin.c:130 +#: resbin.c:134 #, c-format msgid "%s: not enough binary data" msgstr "" -#: resbin.c:149 +#: resbin.c:153 msgid "null terminated unicode string" msgstr "" -#: resbin.c:179 resbin.c:185 +#: resbin.c:183 resbin.c:189 msgid "resource ID" msgstr "" -#: resbin.c:229 +#: resbin.c:233 msgid "cursor" msgstr "" -#: resbin.c:263 resbin.c:270 +#: resbin.c:267 resbin.c:274 msgid "menu header" msgstr "" -#: resbin.c:280 +#: resbin.c:284 msgid "menuex header" msgstr "" -#: resbin.c:284 +#: resbin.c:288 msgid "menuex offset" msgstr "" -#: resbin.c:291 +#: resbin.c:295 #, c-format msgid "unsupported menu version %d" msgstr "" -#: resbin.c:319 resbin.c:334 resbin.c:400 +#: resbin.c:323 resbin.c:338 resbin.c:404 msgid "menuitem header" msgstr "" -#: resbin.c:430 +#: resbin.c:434 msgid "menuitem" msgstr "" -#: resbin.c:471 resbin.c:499 +#: resbin.c:475 resbin.c:503 msgid "dialog header" msgstr "" -#: resbin.c:489 +#: resbin.c:493 #, c-format -msgid "unexpected dialog signature %d" +msgid "unexpected DIALOGEX version %d" msgstr "" -#: resbin.c:531 +#: resbin.c:538 msgid "dialog font point size" msgstr "" -#: resbin.c:539 +#: resbin.c:546 msgid "dialogex font information" msgstr "" -#: resbin.c:564 resbin.c:582 +#: resbin.c:572 resbin.c:590 msgid "dialog control" msgstr "" -#: resbin.c:574 +#: resbin.c:582 msgid "dialogex control" msgstr "" -#: resbin.c:603 +#: resbin.c:611 msgid "dialog control end" msgstr "" -#: resbin.c:615 +#: resbin.c:623 msgid "dialog control data" msgstr "" -#: resbin.c:658 +#: resbin.c:666 msgid "stringtable string length" msgstr "" -#: resbin.c:668 +#: resbin.c:676 msgid "stringtable string" msgstr "" -#: resbin.c:701 +#: resbin.c:709 msgid "fontdir header" msgstr "" -#: resbin.c:714 +#: resbin.c:722 msgid "fontdir" msgstr "" -#: resbin.c:730 +#: resbin.c:738 msgid "fontdir device name" msgstr "" -#: resbin.c:736 +#: resbin.c:744 msgid "fontdir face name" msgstr "" -#: resbin.c:779 +#: resbin.c:787 msgid "accelerator" msgstr "" -#: resbin.c:843 +#: resbin.c:851 msgid "group cursor header" msgstr "" -#: resbin.c:847 +#: resbin.c:855 #, c-format msgid "unexpected group cursor type %d" msgstr "" -#: resbin.c:862 +#: resbin.c:870 msgid "group cursor" msgstr "" -#: resbin.c:901 +#: resbin.c:909 msgid "group icon header" msgstr "" -#: resbin.c:905 +#: resbin.c:913 #, c-format msgid "unexpected group icon type %d" msgstr "" -#: resbin.c:920 +#: resbin.c:928 msgid "group icon" msgstr "" -#: resbin.c:991 resbin.c:1210 +#: resbin.c:999 resbin.c:1218 msgid "unexpected version string" msgstr "" -#: resbin.c:1025 +#: resbin.c:1033 #, c-format msgid "version length %d does not match resource length %lu" msgstr "" -#: resbin.c:1029 +#: resbin.c:1037 #, c-format msgid "unexpected version type %d" msgstr "" -#: resbin.c:1041 +#: resbin.c:1049 #, c-format msgid "unexpected fixed version information length %d" msgstr "" -#: resbin.c:1044 +#: resbin.c:1052 msgid "fixed version info" msgstr "" -#: resbin.c:1048 +#: resbin.c:1056 #, c-format msgid "unexpected fixed version signature %lu" msgstr "" -#: resbin.c:1052 +#: resbin.c:1060 #, c-format msgid "unexpected fixed version info version %lu" msgstr "" -#: resbin.c:1081 +#: resbin.c:1089 msgid "version var info" msgstr "" -#: resbin.c:1098 +#: resbin.c:1106 #, c-format msgid "unexpected stringfileinfo value length %d" msgstr "" -#: resbin.c:1108 +#: resbin.c:1116 #, c-format msgid "unexpected version stringtable value length %d" msgstr "" -#: resbin.c:1142 +#: resbin.c:1150 #, c-format msgid "unexpected version string length %d != %d + %d" msgstr "" -#: resbin.c:1153 +#: resbin.c:1161 #, c-format msgid "unexpected version string length %d < %d" msgstr "" -#: resbin.c:1170 +#: resbin.c:1178 #, c-format msgid "unexpected varfileinfo value length %d" msgstr "" -#: resbin.c:1189 +#: resbin.c:1197 msgid "version varfileinfo" msgstr "" -#: resbin.c:1204 +#: resbin.c:1212 #, c-format msgid "unexpected version value length %d" msgstr "" @@ -4075,96 +4165,107 @@ msgstr "" msgid "Using `%s'\n" msgstr "" -#: resrc.c:541 +#: resrc.c:542 #, c-format msgid "%s:%d: %s\n" msgstr "" -#: resrc.c:550 +#: resrc.c:551 #, c-format msgid "%s: unexpected EOF" msgstr "" -#: resrc.c:607 +#: resrc.c:608 #, c-format msgid "%s: read of %lu returned %lu" msgstr "" -#: resrc.c:649 resrc.c:903 resrc.c:1176 resrc.c:1330 +#: resrc.c:650 resrc.c:904 resrc.c:1177 resrc.c:1331 #, c-format msgid "stat failed on bitmap file `%s': %s" msgstr "" -#: resrc.c:702 +#: resrc.c:703 #, c-format msgid "cursor file `%s' does not contain cursor data" msgstr "" -#: resrc.c:734 resrc.c:1047 +#: resrc.c:735 resrc.c:1048 #, c-format msgid "%s: fseek to %lu failed: %s" msgstr "" -#: resrc.c:871 +#: resrc.c:872 msgid "help ID requires DIALOGEX" msgstr "" -#: resrc.c:873 +#: resrc.c:874 msgid "control data requires DIALOGEX" msgstr "" -#: resrc.c:1016 +#: resrc.c:1017 #, c-format msgid "icon file `%s' does not contain icon data" msgstr "" -#: resrc.c:1535 +#: resrc.c:1536 #, c-format msgid "can't open `%s' for output: %s" msgstr "" -#: size.c:79 -#, c-format -msgid "" -"Usage: %s [-A | --format=sysv | -B | --format=berkeley]\n" -" [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n" -" [-V | --version] [--target=bfdname] [--help] [file...]\n" +#: size.c:86 +msgid " Displays the sizes of sections inside binary files\n" msgstr "" -#: size.c:85 -msgid "default is --format=berkeley\n" +#: size.c:87 +msgid " If no input file(s) are specified, a.out is assumed\n" msgstr "" -#: size.c:87 -msgid "default is --format=sysv\n" +#: size.c:88 +#, c-format +msgid "" +" The options are:\n" +" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n" +" -o|-d|-h --radix={8|10|16} Display numbers in octal, decimal or " +"hex\n" +" -t --totals Display the total sizes (Berkeley " +"only)\n" +" --target= Set the binary file format\n" +" -h --help Display this information\n" +" -v --version Display the program's version\n" +"\n" msgstr "" -#: size.c:146 +#: size.c:160 #, c-format msgid "invalid argument to --format: %s" msgstr "" -#: size.c:173 +#: size.c:187 #, c-format msgid "Invalid radix: %s\n" msgstr "" -#: srconv.c:1931 -#, c-format -msgid "Usage: %s [-dhVq] in-file [out-file]\n" +#: srconv.c:1953 +msgid "Convert a COFF object file into a SYSROFF object file\n" msgstr "" -#: srconv.c:1938 -#, c-format -msgid "%s: Convert a COFF object file into a SYSROFF object file\n" +#: srconv.c:1954 +msgid "" +" The options are:\n" +" -q --quick (Obsolete - ignoerd)\n" +" -n --noprescan Do not perform a scan to convert commons into defs\n" +" -d --debug Display information about what is being done\n" +" -h --help Display this information\n" +" -v --version Print the program's version number\n" msgstr "" -#: srconv.c:2074 +#: srconv.c:2099 #, c-format msgid "unable to open output file %s" msgstr "" -#: stabs.c:343 stabs.c:1760 +#: stabs.c:343 stabs.c:1759 msgid "numeric overflow" msgstr "" @@ -4178,118 +4279,137 @@ msgstr "" msgid "Warning: %s: %s\n" msgstr "" -#: stabs.c:486 +#: stabs.c:485 msgid "N_LBRAC not within function\n" msgstr "" -#: stabs.c:525 +#: stabs.c:524 msgid "Too many N_RBRACs\n" msgstr "" -#: stabs.c:770 +#: stabs.c:769 msgid "unknown C++ encoded name" msgstr "" #. Complain and keep going, so compilers can invent new #. cross-reference types. -#: stabs.c:1297 +#: stabs.c:1296 msgid "unrecognized cross reference type" msgstr "" #. Does this actually ever happen? Is that why we are worrying #. about dealing with it rather than just calling error_type? -#: stabs.c:1852 +#: stabs.c:1851 msgid "missing index type" msgstr "" -#: stabs.c:2179 +#: stabs.c:2178 msgid "unknown virtual character for baseclass" msgstr "" -#: stabs.c:2197 +#: stabs.c:2196 msgid "unknown visibility character for baseclass" msgstr "" -#: stabs.c:2389 +#: stabs.c:2388 msgid "unnamed $vb type" msgstr "" -#: stabs.c:2395 +#: stabs.c:2394 msgid "unrecognized C++ abbreviation" msgstr "" -#: stabs.c:2475 +#: stabs.c:2474 msgid "unknown visibility character for field" msgstr "" -#: stabs.c:2731 +#: stabs.c:2730 msgid "const/volatile indicator missing" msgstr "" -#: stabs.c:2971 +#: stabs.c:2970 #, c-format msgid "No mangling for \"%s\"\n" msgstr "" -#: stabs.c:3284 +#: stabs.c:3283 msgid "Undefined N_EXCL" msgstr "" -#: stabs.c:3372 +#: stabs.c:3371 #, c-format msgid "Type file number %d out of range\n" msgstr "" -#: stabs.c:3377 +#: stabs.c:3376 #, c-format msgid "Type index number %d out of range\n" msgstr "" -#: stabs.c:3464 +#: stabs.c:3463 #, c-format msgid "Unrecognized XCOFF type %d\n" msgstr "" -#: stabs.c:3763 +#: stabs.c:3762 #, c-format msgid "bad mangled name `%s'\n" msgstr "" -#: stabs.c:3859 +#: stabs.c:3858 msgid "no argument types in mangled string\n" msgstr "" -#: strings.c:199 +#: strings.c:200 #, c-format msgid "invalid number %s" msgstr "" -#: strings.c:638 +#: strings.c:640 #, c-format msgid "invalid integer argument %s" msgstr "" -#: strings.c:648 -#, c-format -msgid "" -"Usage: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-e {s,b,l,B,L}]\n" -" [-] [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]\n" -" [--target=bfdname] [--encoding {s,b,l,B,L}] [--help] [--version] " -"file...\n" +#: strings.c:651 +msgid " Display printable strings in [file(s)] (stdin by default)\n" msgstr "" -#: sysdump.c:733 -#, c-format -msgid "Usage: %s [-hV] in-file\n" +#: strings.c:652 +msgid "" +" The options are:\n" +" -a - --all Scan the entire file, not just the data section\n" +" -f --print-file-name Print the name of the file before each string\n" +" -n --bytes=[number] Locate & print any NUL-terminated sequence of " +"at\n" +" - least [number] characters (default 4).\n" +" -t --radix={o,x,d} Print the location of the string in base 8, 10 " +"or 16\n" +" -o An alias for --radix=o\n" +" -T --target= Specify the binary file format\n" +" -e --encoding={s,b,l,B,L} Select character size and endianness:\n" +" s = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n" +" -h --help Display this information\n" +" -v --version Print the program's version number\n" +msgstr "" + +#: sysdump.c:768 +msgid "Print a human readable interpretation of a SYSROFF object file\n" +msgstr "" + +#: sysdump.c:769 +msgid "" +" The options are:\n" +" -h --help Display this information\n" +" -v --version Print the program's version number\n" msgstr "" -#: sysdump.c:805 +#: sysdump.c:836 #, c-format msgid "cannot open input file %s" msgstr "" #: version.c:35 -msgid "Copyright 2001 Free Software Foundation, Inc.\n" +msgid "Copyright 2002 Free Software Foundation, Inc.\n" msgstr "" #: version.c:36 @@ -4298,25 +4418,25 @@ msgid "" "the GNU General Public License. This program has absolutely no warranty.\n" msgstr "" -#: windres.c:237 +#: windres.c:239 #, c-format msgid "can't open %s `%s': %s" msgstr "" -#: windres.c:416 +#: windres.c:418 msgid ": expected to be a directory\n" msgstr "" -#: windres.c:428 +#: windres.c:430 msgid ": expected to be a leaf\n" msgstr "" -#: windres.c:437 +#: windres.c:439 #, c-format msgid "%s: warning: " msgstr "" -#: windres.c:439 +#: windres.c:441 msgid ": duplicate value\n" msgstr "" @@ -4331,59 +4451,57 @@ msgid "%s: supported formats:" msgstr "" #. Otherwise, we give up. -#: windres.c:690 +#: windres.c:688 #, c-format msgid "can not determine type of file `%s'; use the -I option" msgstr "" -#: windres.c:704 +#: windres.c:702 #, c-format -msgid "Usage: %s [options] [input-file] [output-file]\n" +msgid "Usage: %s [option(s)] [input-file] [output-file]\n" msgstr "" -#: windres.c:706 +#: windres.c:704 msgid "" -"Options:\n" -" -i FILE, --input FILE Name input file\n" -" -o FILE, --output FILE Name output file\n" -" -I FORMAT, --input-format FORMAT\n" -" Specify input format\n" -" -O FORMAT, --output-format FORMAT\n" -" Specify output format\n" -" -F TARGET, --target TARGET Specify COFF target\n" -" --preprocessor PROGRAM Program to use to preprocess rc file\n" -" --include-dir DIR Include directory when preprocessing rc file\n" -" -DSYM[=VAL], --define SYM[=VAL]\n" -" Define SYM when preprocessing rc file\n" -" -v Verbose - tells you what it's doing\n" -" --language VAL Set language when reading rc file\n" -" --use-temp-file Use a temporary file instead of popen to read\n" -" the preprocessor output\n" -" --no-use-temp-file Use popen (default)\n" -msgstr "" - -#: windres.c:725 -msgid " --yydebug Turn on parser debugging\n" -msgstr "" - -#: windres.c:728 +" The options are:\n" +" -i --input= Name input file\n" +" -o --output= Name output file\n" +" -I --input-format= Specify input format\n" +" -O --output-format= Specify output format\n" +" -F --target= Specify COFF target\n" +" --preprocessor= Program to use to preprocess rc file\n" +" --include-dir= Include directory when preprocessing rc file\n" +" -D --define [=] Define SYM when preprocessing rc file\n" +" -v --verbose Verbose - tells you what it's doing\n" +" --language= Set language when reading rc file\n" +" --use-temp-file Use a temporary file instead of popen to " +"read\n" +" the preprocessor output\n" +" --no-use-temp-file Use popen (default)\n" +msgstr "" + +#: windres.c:719 +msgid " --yydebug Turn on parser debugging\n" +msgstr "" + +#: windres.c:722 msgid "" -" --help Print this help message\n" -" --version Print version information\n" +" -h --help Print this help message\n" +" -V --version Print version information\n" msgstr "" -#: windres.c:731 +#: windres.c:725 msgid "" "FORMAT is one of rc, res, or coff, and is deduced from the file name\n" "extension if not specified. A single file name is an input file.\n" "No input-file is stdin, default rc. No output-file is stdout, default rc.\n" msgstr "" -#: windres.c:983 +#: windres.c:988 msgid "no resources" msgstr "" -#: wrstabs.c:366 wrstabs.c:2027 +#: wrstabs.c:366 wrstabs.c:2026 #, c-format msgid "string_hash_lookup failed: %s" msgstr "" @@ -4393,7 +4511,7 @@ msgstr "" msgid "stab_int_type: bad size %u" msgstr "" -#: wrstabs.c:1467 +#: wrstabs.c:1466 #, c-format msgid "%s: warning: unknown size for field `%s' in struct" msgstr "" diff --git a/contrib/binutils/binutils/prdbg.c b/contrib/binutils/binutils/prdbg.c index 41c78cb..8bb0053 100644 --- a/contrib/binutils/binutils/prdbg.c +++ b/contrib/binutils/binutils/prdbg.c @@ -693,7 +693,6 @@ pr_range_type (p, lower, upper) /* Make an array type. */ -/*ARGSUSED*/ static boolean pr_array_type (p, lower, upper, stringp) PTR p; @@ -747,7 +746,6 @@ pr_array_type (p, lower, upper, stringp) /* Make a set type. */ -/*ARGSUSED*/ static boolean pr_set_type (p, bitstringp) PTR p; @@ -1598,7 +1596,6 @@ pr_typdef (p, name) /* Output a tag. The tag should already be in the string on the stack, so all we have to do here is print it out. */ -/*ARGSUSED*/ static boolean pr_tag (p, name) PTR p; @@ -1853,7 +1850,6 @@ pr_end_block (p, addr) /* Finish writing out a function. */ -/*ARGSUSED*/ static boolean pr_end_function (p) PTR p ATTRIBUTE_UNUSED; diff --git a/contrib/binutils/binutils/rclex.c b/contrib/binutils/binutils/rclex.c index 2a2bd10..bc9e68c 100644 --- a/contrib/binutils/binutils/rclex.c +++ b/contrib/binutils/binutils/rclex.c @@ -1,7 +1,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /cvs/src/src/binutils/Attic/rclex.c,v 1.1.6.2 2002/05/11 20:00:49 drow Exp $ + * $Header: /cvs/src/src/binutils/Attic/rclex.c,v 1.1.8.1 2002/08/05 20:43:45 drow Exp $ */ #define FLEX_SCANNER @@ -24,12 +24,6 @@ #include #ifndef _WIN32 #include -#else -#ifndef YY_ALWAYS_INTERACTIVE -#ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO(( int )); -#endif -#endif #endif /* Use prototypes in function declarations. */ @@ -714,7 +708,7 @@ static void cpp_line PARAMS ((const char *)); static char *handle_quotes PARAMS ((const char *, unsigned long *)); static char *get_string PARAMS ((int)); -#line 718 "lex.yy.c" +#line 712 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -879,7 +873,7 @@ YY_DECL #line 75 "rclex.l" -#line 883 "lex.yy.c" +#line 877 "lex.yy.c" if ( yy_init ) { @@ -1458,7 +1452,7 @@ YY_RULE_SETUP #line 236 "rclex.l" ECHO; YY_BREAK -#line 1462 "lex.yy.c" +#line 1456 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); diff --git a/contrib/binutils/binutils/rcparse.y b/contrib/binutils/binutils/rcparse.y index 898e99f..1f10da7 100644 --- a/contrib/binutils/binutils/rcparse.y +++ b/contrib/binutils/binutils/rcparse.y @@ -219,7 +219,7 @@ acc_entry: $$.id = $2; $$.flags |= $4; if (($$.flags & ACC_VIRTKEY) == 0 - && ($$.flags & (ACC_SHIFT | ACC_CONTROL | ACC_ALT)) != 0) + && ($$.flags & (ACC_SHIFT | ACC_CONTROL)) != 0) rcparse_warning (_("inappropriate modifiers for non-VIRTKEY")); } ; diff --git a/contrib/binutils/binutils/rdcoff.c b/contrib/binutils/binutils/rdcoff.c index 0582895..2091964 100644 --- a/contrib/binutils/binutils/rdcoff.c +++ b/contrib/binutils/binutils/rdcoff.c @@ -25,7 +25,6 @@ #include "coff/internal.h" #include "bucomm.h" #include "libiberty.h" -#include "demangle.h" #include "debug.h" #include "budbg.h" @@ -655,7 +654,7 @@ parse_coff_symbol (abfd, types, sym, coff_symno, psyment, dhandle, type, break; } - return true; + return true; } /* Determine if a symbol has external visibility. */ @@ -666,13 +665,13 @@ external_coff_symbol_p (sym_class) { switch (sym_class) { - case C_EXT: - case C_WEAKEXT: - return true; + case C_EXT: + case C_WEAKEXT: + return true; default: break; } - return false; + return false; } /* This is the main routine. It looks through all the symbols and @@ -786,7 +785,7 @@ parse_coff (abfd, syms, symcount, dhandle) if (syment.n_type == T_NULL) break; /* Fall through. */ - case C_WEAKEXT: + case C_WEAKEXT: case C_EXT: if (ISFCN (syment.n_type)) { diff --git a/contrib/binutils/binutils/rddbg.c b/contrib/binutils/binutils/rddbg.c index e6ace77..3430c02 100644 --- a/contrib/binutils/binutils/rddbg.c +++ b/contrib/binutils/binutils/rddbg.c @@ -185,7 +185,7 @@ read_section_stabs_debugging_info (abfd, syms, symcount, dhandle, pfound) char *f, *s; f = NULL; - + if (stroff + strx > strsize) { fprintf (stderr, "%s: %s: stab entry %d is corrupt, strx = 0x%x, type = %d\n", @@ -193,9 +193,9 @@ read_section_stabs_debugging_info (abfd, syms, symcount, dhandle, pfound) (stab - stabs) / 12, strx, type); continue; } - + s = (char *) strings + stroff + strx; - + while (s[strlen (s) - 1] == '\\' && stab + 12 < stabs + stabsize) { diff --git a/contrib/binutils/binutils/readelf.c b/contrib/binutils/binutils/readelf.c index 77694cb..e053cba 100644 --- a/contrib/binutils/binutils/readelf.c +++ b/contrib/binutils/binutils/readelf.c @@ -56,7 +56,9 @@ #include "elf/cris.h" #include "elf/d10v.h" #include "elf/d30v.h" +#include "elf/dlx.h" #include "elf/fr30.h" +#include "elf/frv.h" #include "elf/h8.h" #include "elf/hppa.h" #include "elf/i386.h" @@ -65,6 +67,7 @@ #include "elf/ia64.h" #include "elf/m32r.h" #include "elf/m68k.h" +#include "elf/m68hc11.h" #include "elf/mcore.h" #include "elf/mips.h" #include "elf/mmix.h" @@ -77,6 +80,7 @@ #include "elf/sh.h" #include "elf/sparc.h" #include "elf/v850.h" +#include "elf/vax.h" #include "elf/x86-64.h" #include "elf/xstormy16.h" @@ -260,6 +264,7 @@ static int process_corefile_note_segment PARAMS ((FILE *, bfd_vma, bfd_vma)) static int process_corefile_note_segments PARAMS ((FILE *)); static int process_corefile_contents PARAMS ((FILE *)); static int process_arch_specific PARAMS ((FILE *)); +static int process_gnu_liblist PARAMS ((FILE *)); typedef int Elf32_Word; @@ -521,7 +526,7 @@ print_vma (vma, mode) /* Display a symbol on stdout. If do_wide is not true then format the symbol to be at most WIDTH characters, - truhncating as necessary. If WIDTH is negative then + truncating as necessary. If WIDTH is negative then format the string to be exactly - WIDTH characters, truncating or padding as necessary. */ @@ -534,7 +539,7 @@ print_symbol (width, symbol) printf (symbol); else if (width < 0) printf ("%-*.*s", width, width, symbol); - else + else printf ("%-.*s", width, symbol); } @@ -601,6 +606,7 @@ guess_is_rela (e_machine) case EM_386: case EM_486: case EM_960: + case EM_DLX: case EM_OPENRISC: case EM_OR32: case EM_M32R: @@ -631,6 +637,7 @@ guess_is_rela (e_machine) case EM_CYGNUS_MN10300: case EM_FR30: case EM_CYGNUS_FR30: + case EM_CYGNUS_FRV: case EM_SH: case EM_ALPHA: case EM_MCORE: @@ -644,6 +651,7 @@ guess_is_rela (e_machine) case EM_S390_OLD: case EM_MMIX: case EM_XSTORMY16: + case EM_VAX: return TRUE; case EM_MMA: @@ -663,7 +671,6 @@ guess_is_rela (e_machine) case EM_68HC05: case EM_SVX: case EM_ST19: - case EM_VAX: default: warn (_("Don't know about relocations on this machine architecture\n")); return FALSE; @@ -911,7 +918,7 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela) } else { - if (elf_header.e_machine == EM_MIPS) + if (elf_header.e_machine == EM_MIPS) { type = ELF64_MIPS_R_TYPE (info); type2 = ELF64_MIPS_R_TYPE2 (info); @@ -971,6 +978,11 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela) rtype = elf_i386_reloc_type (type); break; + case EM_68HC11: + case EM_68HC12: + rtype = elf_m68hc11_reloc_type (type); + break; + case EM_68K: rtype = elf_m68k_reloc_type (type); break; @@ -1006,6 +1018,10 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela) rtype = elf_d30v_reloc_type (type); break; + case EM_DLX: + rtype = elf_dlx_reloc_type (type); + break; + case EM_SH: rtype = elf_sh_reloc_type (type); break; @@ -1025,6 +1041,10 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela) rtype = elf_fr30_reloc_type (type); break; + case EM_CYGNUS_FRV: + rtype = elf_frv_reloc_type (type); + break; + case EM_MCORE: rtype = elf_mcore_reloc_type (type); break; @@ -1041,7 +1061,7 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela) case EM_MIPS: case EM_MIPS_RS3_LE: rtype = elf_mips_reloc_type (type); - if (!is_32bit_elf) + if (!is_32bit_elf) { rtype2 = elf_mips_reloc_type (type2); rtype3 = elf_mips_reloc_type (type3); @@ -1095,14 +1115,18 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela) rtype = elf_x86_64_reloc_type (type); break; - case EM_S390_OLD: - case EM_S390: - rtype = elf_s390_reloc_type (type); - break; + case EM_S390_OLD: + case EM_S390: + rtype = elf_s390_reloc_type (type); + break; case EM_XSTORMY16: rtype = elf_xstormy16_reloc_type (type); break; + + case EM_VAX: + rtype = elf_vax_reloc_type (type); + break; } if (rtype == NULL) @@ -1151,7 +1175,7 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela) putchar ('\n'); - if (! is_32bit_elf && elf_header.e_machine == EM_MIPS) + if (! is_32bit_elf && elf_header.e_machine == EM_MIPS) { printf (" Type2: "); @@ -1175,7 +1199,7 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela) else printf ("%-17.17s", rtype3); - putchar ('\n'); + putchar ('\n'); } } @@ -1365,6 +1389,12 @@ get_dynamic_type (type) case DT_USED: return "USED"; case DT_FILTER: return "FILTER"; + case DT_GNU_PRELINKED: return "GNU_PRELINKED"; + case DT_GNU_CONFLICT: return "GNU_CONFLICT"; + case DT_GNU_CONFLICTSZ: return "GNU_CONFLICTSZ"; + case DT_GNU_LIBLIST: return "GNU_LIBLIST"; + case DT_GNU_LIBLISTSZ: return "GNU_LIBLISTSZ"; + default: if ((type >= DT_LOPROC) && (type <= DT_HIPROC)) { @@ -1502,6 +1532,7 @@ get_machine_name (e_machine) case EM_MN10200: return "mn10200"; case EM_CYGNUS_FR30: case EM_FR30: return "Fujitsu FR30"; + case EM_CYGNUS_FRV: return "Fujitsu FR-V"; case EM_PJ_OLD: case EM_PJ: return "picoJava"; case EM_MMA: return "Fujitsu Multimedia Accelerator"; @@ -1537,6 +1568,7 @@ get_machine_name (e_machine) case EM_XSTORMY16: return "Sanyo Xstormy16 CPU core"; case EM_OPENRISC: case EM_OR32: return "OpenRISC"; + case EM_DLX: return "OpenDLX"; default: sprintf (buff, _(": %x"), e_machine); return buff; @@ -1705,12 +1737,12 @@ get_machine_flags (e_flags, e_machine) decode_ARM_machine_flags (e_flags, buf); break; - case EM_68K: - if (e_flags & EF_CPU32) - strcat (buf, ", cpu32"); + case EM_68K: + if (e_flags & EF_CPU32) + strcat (buf, ", cpu32"); if (e_flags & EF_M68000) strcat (buf, ", m68000"); - break; + break; case EM_PPC: if (e_flags & EF_PPC_EMB) @@ -1901,6 +1933,15 @@ get_machine_flags (e_flags, e_machine) if ((e_flags & EF_IA_64_ABSOLUTE)) strcat (buf, ", absolute"); break; + + case EM_VAX: + if ((e_flags & EF_VAX_NONPIC)) + strcat (buf, ", non-PIC"); + if ((e_flags & EF_VAX_DFLOAT)) + strcat (buf, ", D-Float"); + if ((e_flags & EF_VAX_GFLOAT)) + strcat (buf, ", G-Float"); + break; } } @@ -1987,6 +2028,7 @@ get_segment_type (p_type) case PT_NOTE: return "NOTE"; case PT_SHLIB: return "SHLIB"; case PT_PHDR: return "PHDR"; + case PT_TLS: return "TLS"; case PT_GNU_EH_FRAME: return "GNU_EH_FRAME"; @@ -2159,6 +2201,7 @@ get_section_type_name (sh_type) case 0x6ffffffc: return "VERDEF"; case 0x7ffffffd: return "AUXILIARY"; case 0x7fffffff: return "FILTER"; + case SHT_GNU_LIBLIST: return "GNU_LIBLIST"; default: if ((sh_type >= SHT_LOPROC) && (sh_type <= SHT_HIPROC)) @@ -2198,6 +2241,8 @@ get_section_type_name (sh_type) } } +#define OPTION_DEBUG_DUMP 512 + struct option options [] = { {"all", no_argument, 0, 'a'}, @@ -2217,7 +2262,7 @@ struct option options [] = {"version-info", no_argument, 0, 'V'}, {"use-dynamic", no_argument, 0, 'D'}, {"hex-dump", required_argument, 0, 'x'}, - {"debug-dump", optional_argument, 0, 'w'}, + {"debug-dump", optional_argument, 0, OPTION_DEBUG_DUMP}, {"unwind", no_argument, 0, 'u'}, #ifdef SUPPORT_DISASSEMBLY {"instruction-dump", required_argument, 0, 'i'}, @@ -2252,7 +2297,8 @@ usage () -A --arch-specific Display architecture specific information (if any).\n\ -D --use-dynamic Use the dynamic section info when displaying symbols\n\ -x --hex-dump= Dump the contents of section \n\ - -w --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\n\ + -w[liaprmfFso] or\n\ + --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\n\ Display the contents of DWARF2 debug sections\n")); #ifdef SUPPORT_DISASSEMBLY fprintf (stdout, _("\ @@ -2392,7 +2438,7 @@ parse_args (argc, argv) else { unsigned int index = 0; - + do_debugging = 0; while (optarg[index]) @@ -2443,13 +2489,95 @@ parse_args (argc, argv) case 'O': do_debug_loc = 1; break; - + default: warn (_("Unrecognized debug option '%s'\n"), optarg); break; } } break; + case OPTION_DEBUG_DUMP: + do_dump ++; + if (optarg == 0) + do_debugging = 1; + else + { + const char *debug_dump_opt[] + = { "line", "info", "abbrev", "pubnames", "ranges", + "macro", "frames", "frames-interp", "str", "loc", NULL }; + unsigned int index; + const char *p; + + do_debugging = 0; + + p = optarg; + while (*p) + { + for (index = 0; debug_dump_opt[index]; index++) + { + size_t len = strlen (debug_dump_opt[index]); + + if (strncmp (p, debug_dump_opt[index], len) == 0 + && (p[len] == ',' || p[len] == '\0')) + { + switch (p[0]) + { + case 'i': + do_debug_info = 1; + break; + + case 'a': + do_debug_abbrevs = 1; + break; + + case 'l': + if (p[1] == 'i') + do_debug_lines = 1; + else + do_debug_loc = 1; + break; + + case 'p': + do_debug_pubnames = 1; + break; + + case 'r': + do_debug_aranges = 1; + break; + + case 'f': + if (len > 6) + do_debug_frames_interp = 1; + do_debug_frames = 1; + break; + + case 'm': + do_debug_macinfo = 1; + break; + + case 's': + do_debug_str = 1; + break; + } + + p += len; + break; + } + } + + if (debug_dump_opt[index] == NULL) + { + warn (_("Unrecognized debug option '%s'\n"), p); + p = strchr (p, ','); + if (p == NULL) + break; + } + + if (*p == ',') + p++; + } + } + break; #ifdef SUPPORT_DISASSEMBLY case 'i': do_dump ++; @@ -2763,8 +2891,10 @@ process_program_headers (file) if (do_segments) { - printf - (_("\nProgram Header%s:\n"), elf_header.e_phnum > 1 ? "s" : ""); + if (elf_header.e_phnum > 1) + printf (_("\nProgram Headers:\n")); + else + printf (_("\nProgram Headers:\n")); if (is_32bit_elf) printf @@ -3202,6 +3332,7 @@ get_elf_section_flags (sh_flags) case SHF_LINK_ORDER: strcat (buff, "L"); break; case SHF_OS_NONCONFORMING: strcat (buff, "O"); break; case SHF_GROUP: strcat (buff, "G"); break; + case SHF_TLS: strcat (buff, "T"); break; default: if (flag & SHF_MASKOS) @@ -3340,7 +3471,10 @@ process_section_headers (file) if (! do_sections) return 1; - printf (_("\nSection Header%s:\n"), elf_header.e_shnum > 1 ? "s" : ""); + if (elf_header.e_shnum > 1) + printf (_("\nSection Headers:\n")); + else + printf (_("\nSection Header:\n")); if (is_32bit_elf) printf @@ -3425,13 +3559,13 @@ process_section_headers (file) { putchar (' '); print_vma (section->sh_addr, LONG_HEX); - if ((long) section->sh_offset == section->sh_offset) - printf (" %8.8lx", (unsigned long) section->sh_offset); - else - { - printf (" "); - print_vma (section->sh_offset, LONG_HEX); - } + if ((long) section->sh_offset == section->sh_offset) + printf (" %8.8lx", (unsigned long) section->sh_offset); + else + { + printf (" "); + print_vma (section->sh_offset, LONG_HEX); + } printf ("\n "); print_vma (section->sh_size, LONG_HEX); printf (" "); @@ -3546,7 +3680,7 @@ process_relocs (file) if (string_table == NULL) printf ("%d", section->sh_name); else - printf ("'%s'", SECTION_NAME (section)); + printf (_("'%s'"), SECTION_NAME (section)); printf (_(" at offset 0x%lx contains %lu entries:\n"), rel_offset, (unsigned long) (rel_size / section->sh_entsize)); @@ -3979,7 +4113,7 @@ process_unwind (file) if (string_table == NULL) printf ("%d", unwsec->sh_name); else - printf ("'%s'", SECTION_NAME (unwsec)); + printf (_("'%s'"), SECTION_NAME (unwsec)); } else { @@ -3993,7 +4127,7 @@ process_unwind (file) if (string_table == NULL) printf ("%d", unwsec->sh_name); else - printf ("'%s'", SECTION_NAME (unwsec)); + printf (_("'%s'"), SECTION_NAME (unwsec)); printf (_(" at offset 0x%lx contains %lu entries:\n"), (unsigned long) unwsec->sh_offset, @@ -4242,7 +4376,10 @@ static const char * get_dynamic_flags (flags) bfd_vma flags; { - static char buff [64]; + static char buff [128]; + char *p = buff; + + *p = '\0'; while (flags) { bfd_vma flag; @@ -4250,14 +4387,20 @@ get_dynamic_flags (flags) flag = flags & - flags; flags &= ~ flag; + if (p != buff) + *p++ = ' '; + switch (flag) { - case DF_ORIGIN: strcat (buff, "ORIGIN "); break; - case DF_SYMBOLIC: strcat (buff, "SYMBOLIC "); break; - case DF_TEXTREL: strcat (buff, "TEXTREL "); break; - case DF_BIND_NOW: strcat (buff, "BIND_NOW "); break; - default: strcat (buff, "unknown "); break; + case DF_ORIGIN: strcpy (p, "ORIGIN"); break; + case DF_SYMBOLIC: strcpy (p, "SYMBOLIC"); break; + case DF_TEXTREL: strcpy (p, "TEXTREL"); break; + case DF_BIND_NOW: strcpy (p, "BIND_NOW"); break; + case DF_STATIC_TLS: strcpy (p, "STATIC_TLS"); break; + default: strcpy (p, "unknown"); break; } + + p = strchr (p, '\0'); } return buff; } @@ -4443,7 +4586,7 @@ process_dynamic_segment (file) { case DT_FLAGS: if (do_dynamic) - printf ("%s", get_dynamic_flags (entry->d_un.d_val)); + puts (get_dynamic_flags (entry->d_un.d_val)); break; case DT_AUXILIARY: @@ -4705,6 +4848,8 @@ process_dynamic_segment (file) case DT_MOVESZ : case DT_INIT_ARRAYSZ: case DT_FINI_ARRAYSZ: + case DT_GNU_CONFLICTSZ: + case DT_GNU_LIBLISTSZ: if (do_dynamic) { print_vma (entry->d_un.d_val, UNSIGNED); @@ -4753,6 +4898,20 @@ process_dynamic_segment (file) /* The value of this entry is ignored. */ break; + case DT_GNU_PRELINKED: + if (do_dynamic) + { + struct tm * tmp; + time_t time = entry->d_un.d_val; + + tmp = gmtime (&time); + printf ("%04u-%02u-%02uT%02u:%02u:%02u\n", + tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday, + tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + + } + break; + default: if ((entry->d_tag >= DT_VERSYM) && (entry->d_tag <= DT_VERNEEDNUM)) version_info [DT_VERSIONTAGIDX (entry->d_tag)] = @@ -5252,6 +5411,7 @@ get_symbol_type (type) case STT_SECTION: return "SECTION"; case STT_FILE: return "FILE"; case STT_COMMON: return "COMMON"; + case STT_TLS: return "TLS"; default: if (type >= STT_LOPROC && type <= STT_HIPROC) { @@ -6169,12 +6329,12 @@ display_debug_lines (section, start, file) state_machine_regs.line += adv; printf (_(" and Line by %d to %d\n"), adv, state_machine_regs.line); - } - else switch (op_code) + } + else switch (op_code) { case DW_LNS_extended_op: data += process_extended_line_op (data, info.li_default_is_stmt, - debug_line_pointer_size); + debug_line_pointer_size); break; case DW_LNS_copy: @@ -6243,17 +6403,17 @@ display_debug_lines (section, start, file) case DW_LNS_set_prologue_end: printf (_(" Set prologue_end to true\n")); break; - + case DW_LNS_set_epilogue_begin: printf (_(" Set epilogue_begin to true\n")); break; - + case DW_LNS_set_isa: adv = read_leb128 (data, & bytes_read, 0); data += bytes_read; printf (_(" Set ISA to %d\n"), adv); break; - + default: printf (_(" Unknown opcode %d with operands: "), op_code); { @@ -7252,7 +7412,7 @@ display_debug_loc (section, start, file) unsigned long bytes; unsigned char *section_begin = start; bfd_vma addr; - + addr = section->sh_addr; bytes = section->sh_size; section_end = start + bytes; @@ -7274,7 +7434,7 @@ display_debug_loc (section, start, file) while (1) { - /* Normally, the lists in the debug_loc section are related to a + /* Normally, the lists in the debug_loc section are related to a given compilation unit, and thus, we would use the pointer size of that compilation unit. However, since we are displaying it seperately here, we either have to store @@ -7285,20 +7445,20 @@ display_debug_loc (section, start, file) start += debug_line_pointer_size; end = byte_get (start, debug_line_pointer_size); start += debug_line_pointer_size; - + if (begin == 0 && end == 0) break; - + begin += addr; end += addr; - + length = byte_get (start, 2); start += 2; - + printf (" %8.8lx %8.8lx %8.8lx (", offset, begin, end); decode_location_expression (start, debug_line_pointer_size, length); printf (")\n"); - + start += length; } printf ("\n"); @@ -7485,7 +7645,7 @@ read_and_display_attr_value (attribute, form, data, cu_offset, pointer_size) data += bytes_read; printf (" %s", get_FORM_name (form)); return read_and_display_attr_value (attribute, form, data, cu_offset, - pointer_size); + pointer_size); } switch (form) @@ -7734,7 +7894,7 @@ read_and_display_attr (attribute, form, data, cu_offset, pointer_size) { printf (" %-18s:", get_AT_name (attribute)); data = read_and_display_attr_value (attribute, form, data, cu_offset, - pointer_size); + pointer_size); printf ("\n"); return data; } @@ -8373,102 +8533,107 @@ display_debug_frames (section, start, file) about to interpret instructions for the chunk. */ if (do_debug_frames_interp) - { - /* Start by making a pass over the chunk, allocating storage - and taking note of what registers are used. */ - unsigned char * tmp = start; + { + /* Start by making a pass over the chunk, allocating storage + and taking note of what registers are used. */ + unsigned char * tmp = start; - while (start < block_end) - { - unsigned op, opa; - unsigned long reg; + while (start < block_end) + { + unsigned op, opa; + unsigned long reg; - op = * start ++; - opa = op & 0x3f; - if (op & 0xc0) - op &= 0xc0; + op = * start ++; + opa = op & 0x3f; + if (op & 0xc0) + op &= 0xc0; - /* Warning: if you add any more cases to this switch, be - sure to add them to the corresponding switch below. */ - switch (op) - { - case DW_CFA_advance_loc: - break; - case DW_CFA_offset: - LEB (); - frame_need_space (fc, opa); - fc->col_type[opa] = DW_CFA_undefined; - break; - case DW_CFA_restore: - frame_need_space (fc, opa); - fc->col_type[opa] = DW_CFA_undefined; - break; - case DW_CFA_set_loc: - start += encoded_ptr_size; - break; - case DW_CFA_advance_loc1: - start += 1; - break; - case DW_CFA_advance_loc2: - start += 2; - break; - case DW_CFA_advance_loc4: - start += 4; - break; - case DW_CFA_offset_extended: - reg = LEB (); LEB (); - frame_need_space (fc, reg); - fc->col_type[reg] = DW_CFA_undefined; - break; - case DW_CFA_restore_extended: - reg = LEB (); - frame_need_space (fc, reg); - fc->col_type[reg] = DW_CFA_undefined; - break; - case DW_CFA_undefined: - reg = LEB (); - frame_need_space (fc, reg); - fc->col_type[reg] = DW_CFA_undefined; - break; - case DW_CFA_same_value: - reg = LEB (); - frame_need_space (fc, reg); - fc->col_type[reg] = DW_CFA_undefined; - break; - case DW_CFA_register: - reg = LEB (); LEB (); - frame_need_space (fc, reg); - fc->col_type[reg] = DW_CFA_undefined; - break; - case DW_CFA_def_cfa: - LEB (); LEB (); - break; - case DW_CFA_def_cfa_register: - LEB (); - break; - case DW_CFA_def_cfa_offset: - LEB (); - break; -#ifndef DW_CFA_GNU_args_size -#define DW_CFA_GNU_args_size 0x2e -#endif - case DW_CFA_GNU_args_size: - LEB (); - break; -#ifndef DW_CFA_GNU_negative_offset_extended -#define DW_CFA_GNU_negative_offset_extended 0x2f -#endif - case DW_CFA_GNU_negative_offset_extended: - reg = LEB (); LEB (); - frame_need_space (fc, reg); - fc->col_type[reg] = DW_CFA_undefined; + /* Warning: if you add any more cases to this switch, be + sure to add them to the corresponding switch below. */ + switch (op) + { + case DW_CFA_advance_loc: + break; + case DW_CFA_offset: + LEB (); + frame_need_space (fc, opa); + fc->col_type[opa] = DW_CFA_undefined; + break; + case DW_CFA_restore: + frame_need_space (fc, opa); + fc->col_type[opa] = DW_CFA_undefined; + break; + case DW_CFA_set_loc: + start += encoded_ptr_size; + break; + case DW_CFA_advance_loc1: + start += 1; + break; + case DW_CFA_advance_loc2: + start += 2; + break; + case DW_CFA_advance_loc4: + start += 4; + break; + case DW_CFA_offset_extended: + reg = LEB (); LEB (); + frame_need_space (fc, reg); + fc->col_type[reg] = DW_CFA_undefined; + break; + case DW_CFA_restore_extended: + reg = LEB (); + frame_need_space (fc, reg); + fc->col_type[reg] = DW_CFA_undefined; + break; + case DW_CFA_undefined: + reg = LEB (); + frame_need_space (fc, reg); + fc->col_type[reg] = DW_CFA_undefined; + break; + case DW_CFA_same_value: + reg = LEB (); + frame_need_space (fc, reg); + fc->col_type[reg] = DW_CFA_undefined; + break; + case DW_CFA_register: + reg = LEB (); LEB (); + frame_need_space (fc, reg); + fc->col_type[reg] = DW_CFA_undefined; + break; + case DW_CFA_def_cfa: + LEB (); LEB (); + break; + case DW_CFA_def_cfa_register: + LEB (); + break; + case DW_CFA_def_cfa_offset: + LEB (); + break; + case DW_CFA_offset_extended_sf: + reg = LEB (); SLEB (); + frame_need_space (fc, reg); + fc->col_type[reg] = DW_CFA_undefined; + break; + case DW_CFA_def_cfa_sf: + LEB (); SLEB (); + break; + case DW_CFA_def_cfa_offset_sf: + SLEB (); + break; + case DW_CFA_GNU_args_size: + LEB (); + break; + case DW_CFA_GNU_negative_offset_extended: + reg = LEB (); LEB (); + frame_need_space (fc, reg); + fc->col_type[reg] = DW_CFA_undefined; - default: - break; - } - } - start = tmp; - } + default: + break; + } + } + start = tmp; + } /* Now we know what registers are used, make a second pass over the chunk, this time actually printing out the info. */ @@ -8485,16 +8650,16 @@ display_debug_frames (section, start, file) if (op & 0xc0) op &= 0xc0; - /* Warning: if you add any more cases to this switch, be - sure to add them to the corresponding switch above. */ + /* Warning: if you add any more cases to this switch, be + sure to add them to the corresponding switch above. */ switch (op) { case DW_CFA_advance_loc: if (do_debug_frames_interp) - frame_display_row (fc, &need_col_headers, &max_regs); + frame_display_row (fc, &need_col_headers, &max_regs); else - printf (" DW_CFA_advance_loc: %d to %08lx\n", - opa * fc->code_factor, + printf (" DW_CFA_advance_loc: %d to %08lx\n", + opa * fc->code_factor, fc->pc_begin + opa * fc->code_factor); fc->pc_begin += opa * fc->code_factor; break; @@ -8502,7 +8667,7 @@ display_debug_frames (section, start, file) case DW_CFA_offset: roffs = LEB (); if (! do_debug_frames_interp) - printf (" DW_CFA_offset: r%d at cfa%+ld\n", + printf (" DW_CFA_offset: r%d at cfa%+ld\n", opa, roffs * fc->data_factor); fc->col_type[opa] = DW_CFA_offset; fc->col_offset[opa] = roffs * fc->data_factor; @@ -8510,7 +8675,7 @@ display_debug_frames (section, start, file) case DW_CFA_restore: if (! do_debug_frames_interp) - printf (" DW_CFA_restore: r%d\n", opa); + printf (" DW_CFA_restore: r%d\n", opa); fc->col_type[opa] = cie->col_type[opa]; fc->col_offset[opa] = cie->col_offset[opa]; break; @@ -8519,19 +8684,19 @@ display_debug_frames (section, start, file) vma = byte_get (start, encoded_ptr_size); start += encoded_ptr_size; if (do_debug_frames_interp) - frame_display_row (fc, &need_col_headers, &max_regs); + frame_display_row (fc, &need_col_headers, &max_regs); else - printf (" DW_CFA_set_loc: %08lx\n", (unsigned long)vma); + printf (" DW_CFA_set_loc: %08lx\n", (unsigned long)vma); fc->pc_begin = vma; break; case DW_CFA_advance_loc1: ofs = byte_get (start, 1); start += 1; if (do_debug_frames_interp) - frame_display_row (fc, &need_col_headers, &max_regs); + frame_display_row (fc, &need_col_headers, &max_regs); else - printf (" DW_CFA_advance_loc1: %ld to %08lx\n", - ofs * fc->code_factor, + printf (" DW_CFA_advance_loc1: %ld to %08lx\n", + ofs * fc->code_factor, fc->pc_begin + ofs * fc->code_factor); fc->pc_begin += ofs * fc->code_factor; break; @@ -8539,10 +8704,10 @@ display_debug_frames (section, start, file) case DW_CFA_advance_loc2: ofs = byte_get (start, 2); start += 2; if (do_debug_frames_interp) - frame_display_row (fc, &need_col_headers, &max_regs); + frame_display_row (fc, &need_col_headers, &max_regs); else - printf (" DW_CFA_advance_loc2: %ld to %08lx\n", - ofs * fc->code_factor, + printf (" DW_CFA_advance_loc2: %ld to %08lx\n", + ofs * fc->code_factor, fc->pc_begin + ofs * fc->code_factor); fc->pc_begin += ofs * fc->code_factor; break; @@ -8550,10 +8715,10 @@ display_debug_frames (section, start, file) case DW_CFA_advance_loc4: ofs = byte_get (start, 4); start += 4; if (do_debug_frames_interp) - frame_display_row (fc, &need_col_headers, &max_regs); + frame_display_row (fc, &need_col_headers, &max_regs); else - printf (" DW_CFA_advance_loc4: %ld to %08lx\n", - ofs * fc->code_factor, + printf (" DW_CFA_advance_loc4: %ld to %08lx\n", + ofs * fc->code_factor, fc->pc_begin + ofs * fc->code_factor); fc->pc_begin += ofs * fc->code_factor; break; @@ -8571,7 +8736,7 @@ display_debug_frames (section, start, file) case DW_CFA_restore_extended: reg = LEB (); if (! do_debug_frames_interp) - printf (" DW_CFA_restore_extended: r%ld\n", reg); + printf (" DW_CFA_restore_extended: r%ld\n", reg); fc->col_type[reg] = cie->col_type[reg]; fc->col_offset[reg] = cie->col_offset[reg]; break; @@ -8579,7 +8744,7 @@ display_debug_frames (section, start, file) case DW_CFA_undefined: reg = LEB (); if (! do_debug_frames_interp) - printf (" DW_CFA_undefined: r%ld\n", reg); + printf (" DW_CFA_undefined: r%ld\n", reg); fc->col_type[reg] = DW_CFA_undefined; fc->col_offset[reg] = 0; break; @@ -8587,7 +8752,7 @@ display_debug_frames (section, start, file) case DW_CFA_same_value: reg = LEB (); if (! do_debug_frames_interp) - printf (" DW_CFA_same_value: r%ld\n", reg); + printf (" DW_CFA_same_value: r%ld\n", reg); fc->col_type[reg] = DW_CFA_same_value; fc->col_offset[reg] = 0; break; @@ -8596,14 +8761,14 @@ display_debug_frames (section, start, file) reg = LEB (); roffs = LEB (); if (! do_debug_frames_interp) - printf (" DW_CFA_register: r%ld\n", reg); + printf (" DW_CFA_register: r%ld\n", reg); fc->col_type[reg] = DW_CFA_register; fc->col_offset[reg] = roffs; break; case DW_CFA_remember_state: if (! do_debug_frames_interp) - printf (" DW_CFA_remember_state\n"); + printf (" DW_CFA_remember_state\n"); rs = (Frame_Chunk *) xmalloc (sizeof (Frame_Chunk)); rs->ncols = fc->ncols; rs->col_type = (short int *) xmalloc (rs->ncols * sizeof (short int)); @@ -8616,7 +8781,7 @@ display_debug_frames (section, start, file) case DW_CFA_restore_state: if (! do_debug_frames_interp) - printf (" DW_CFA_restore_state\n"); + printf (" DW_CFA_restore_state\n"); rs = remembered_state; remembered_state = rs->next; frame_need_space (fc, rs->ncols-1); @@ -8631,39 +8796,61 @@ display_debug_frames (section, start, file) fc->cfa_reg = LEB (); fc->cfa_offset = LEB (); if (! do_debug_frames_interp) - printf (" DW_CFA_def_cfa: r%d ofs %d\n", + printf (" DW_CFA_def_cfa: r%d ofs %d\n", fc->cfa_reg, fc->cfa_offset); break; case DW_CFA_def_cfa_register: fc->cfa_reg = LEB (); if (! do_debug_frames_interp) - printf (" DW_CFA_def_cfa_reg: r%d\n", fc->cfa_reg); + printf (" DW_CFA_def_cfa_reg: r%d\n", fc->cfa_reg); break; case DW_CFA_def_cfa_offset: fc->cfa_offset = LEB (); if (! do_debug_frames_interp) - printf (" DW_CFA_def_cfa_offset: %d\n", fc->cfa_offset); + printf (" DW_CFA_def_cfa_offset: %d\n", fc->cfa_offset); break; case DW_CFA_nop: if (! do_debug_frames_interp) - printf (" DW_CFA_nop\n"); + printf (" DW_CFA_nop\n"); + break; + + case DW_CFA_offset_extended_sf: + reg = LEB (); + l = SLEB (); + frame_need_space (fc, reg); + if (! do_debug_frames_interp) + printf (" DW_CFA_offset_extended_sf: r%ld at cfa%+ld\n", + reg, l * fc->data_factor); + fc->col_type[reg] = DW_CFA_offset; + fc->col_offset[reg] = l * fc->data_factor; + break; + + case DW_CFA_def_cfa_sf: + fc->cfa_reg = LEB (); + fc->cfa_offset = SLEB (); + if (! do_debug_frames_interp) + printf (" DW_CFA_def_cfa_sf: r%d ofs %d\n", + fc->cfa_reg, fc->cfa_offset); + break; + + case DW_CFA_def_cfa_offset_sf: + fc->cfa_offset = SLEB (); + if (! do_debug_frames_interp) + printf (" DW_CFA_def_cfa_offset_sf: %d\n", fc->cfa_offset); break; -#ifndef DW_CFA_GNU_window_save -#define DW_CFA_GNU_window_save 0x2d -#endif case DW_CFA_GNU_window_save: if (! do_debug_frames_interp) - printf (" DW_CFA_GNU_window_save\n"); + printf (" DW_CFA_GNU_window_save\n"); break; case DW_CFA_GNU_args_size: ul = LEB (); if (! do_debug_frames_interp) - printf (" DW_CFA_GNU_args_size: %ld\n", ul); + printf (" DW_CFA_GNU_args_size: %ld\n", ul); break; case DW_CFA_GNU_negative_offset_extended: @@ -8671,12 +8858,23 @@ display_debug_frames (section, start, file) l = - LEB (); frame_need_space (fc, reg); if (! do_debug_frames_interp) - printf (" DW_CFA_GNU_negative_offset_extended: r%ld at cfa%+ld\n", + printf (" DW_CFA_GNU_negative_offset_extended: r%ld at cfa%+ld\n", reg, l * fc->data_factor); fc->col_type[reg] = DW_CFA_offset; fc->col_offset[reg] = l * fc->data_factor; break; + /* FIXME: How do we handle these? */ + case DW_CFA_def_cfa_expression: + fprintf (stderr, "unsupported DW_CFA_def_cfa_expression\n"); + start = block_end; + break; + + case DW_CFA_expression: + fprintf (stderr, "unsupported DW_CFA_expression\n"); + start = block_end; + break; + default: fprintf (stderr, "unsupported or unknown DW_CFA_%d\n", op); start = block_end; @@ -8684,7 +8882,7 @@ display_debug_frames (section, start, file) } if (do_debug_frames_interp) - frame_display_row (fc, &need_col_headers, &max_regs); + frame_display_row (fc, &need_col_headers, &max_regs); start = block_end; } @@ -8823,11 +9021,11 @@ process_section_contents (file) int j; if (section->sh_size == 0) - continue; + continue; /* See if there is some pre-scan operation for this section. */ for (j = NUM_ELEM (debug_displays); j--;) - if (strcmp (debug_displays[j].name, name) == 0) + if (strcmp (debug_displays[j].name, name) == 0) { if (debug_displays[j].prescan != NULL) { @@ -8845,8 +9043,8 @@ process_section_contents (file) free (start); } - break; - } + break; + } } for (i = 0, section = section_headers; @@ -9215,7 +9413,7 @@ process_mips_specific (file) if (dynamic_symbols == NULL) { - error (_("conflict list with without table")); + error (_("conflict list found without a dynamic symbol table")); return 0; } @@ -9280,6 +9478,86 @@ process_mips_specific (file) return 1; } +static int +process_gnu_liblist (file) + FILE * file; +{ + Elf_Internal_Shdr * section, * string_sec; + Elf32_External_Lib * elib; + char * strtab; + size_t cnt; + unsigned i; + + if (! do_arch) + return 0; + + for (i = 0, section = section_headers; + i < elf_header.e_shnum; + i++, section ++) + { + switch (section->sh_type) + { + case SHT_GNU_LIBLIST: + elib = ((Elf32_External_Lib *) + get_data (NULL, file, section->sh_offset, section->sh_size, + _("liblist"))); + + if (elib == NULL) + break; + string_sec = SECTION_HEADER (section->sh_link); + + strtab = (char *) get_data (NULL, file, string_sec->sh_offset, + string_sec->sh_size, + _("liblist string table")); + + if (strtab == NULL + || section->sh_entsize != sizeof (Elf32_External_Lib)) + { + free (elib); + break; + } + + printf (_("\nLibrary list section '%s' contains %lu entries:\n"), + SECTION_NAME (section), + (long) (section->sh_size / sizeof (Elf32_External_Lib))); + + puts (" Library Time Stamp Checksum Version Flags"); + + for (cnt = 0; cnt < section->sh_size / sizeof (Elf32_External_Lib); + ++cnt) + { + Elf32_Lib liblist; + time_t time; + char timebuf[20]; + struct tm * tmp; + + liblist.l_name = BYTE_GET (elib[cnt].l_name); + time = BYTE_GET (elib[cnt].l_time_stamp); + liblist.l_checksum = BYTE_GET (elib[cnt].l_checksum); + liblist.l_version = BYTE_GET (elib[cnt].l_version); + liblist.l_flags = BYTE_GET (elib[cnt].l_flags); + + tmp = gmtime (&time); + sprintf (timebuf, "%04u-%02u-%02uT%02u:%02u:%02u", + tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday, + tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + + printf ("%3lu: ", (unsigned long) cnt); + if (do_wide) + printf ("%-20s", strtab + liblist.l_name); + else + printf ("%-20.20s", strtab + liblist.l_name); + printf (" %s %#010lx %-7ld %-7ld\n", timebuf, liblist.l_checksum, + liblist.l_version, liblist.l_flags); + } + + free (elib); + } + } + + return 1; +} + static const char * get_note_type (e_type) unsigned e_type; @@ -9298,7 +9576,7 @@ get_note_type (e_type) case NT_PSINFO: return _("NT_PSINFO (psinfo structure)"); case NT_LWPSTATUS: return _("NT_LWPSTATUS (lwpstatus_t structure)"); case NT_LWPSINFO: return _("NT_LWPSINFO (lwpsinfo_t structure)"); - case NT_WIN32PSTATUS: return _("NT_WIN32PSTATUS (win32_pstatus strcuture)"); + case NT_WIN32PSTATUS: return _("NT_WIN32PSTATUS (win32_pstatus structure)"); default: sprintf (buff, _("Unknown note type: (0x%08x)"), e_type); return buff; @@ -9374,7 +9652,7 @@ get_netbsd_elfcore_note_type (e_type) If the value of namesz is zero, there is no name present. */ static int process_note (pnote) - Elf32_Internal_Note * pnote; + Elf32_Internal_Note * pnote; { const char *nt; @@ -9649,12 +9927,15 @@ get_file_header (file) elf_header.e_shstrndx = BYTE_GET (ehdr64.e_shstrndx); } - /* There may be some extensions in the first section header. Don't - bomb if we can't read it. */ - if (is_32bit_elf) - get_32bit_section_headers (file, 1); - else - get_64bit_section_headers (file, 1); + if (elf_header.e_shoff) + { + /* There may be some extensions in the first section header. Don't + bomb if we can't read it. */ + if (is_32bit_elf) + get_32bit_section_headers (file, 1); + else + get_64bit_section_headers (file, 1); + } return 1; } @@ -9724,6 +10005,8 @@ process_file (file_name) process_corefile_contents (file); + process_gnu_liblist (file); + process_arch_specific (file); fclose (file); diff --git a/contrib/binutils/binutils/rename.c b/contrib/binutils/binutils/rename.c index a7be2c1..1a6a86b 100644 --- a/contrib/binutils/binutils/rename.c +++ b/contrib/binutils/binutils/rename.c @@ -165,8 +165,8 @@ smart_rename (from, to, preserve_dates) ret = rename (from, to); if (ret != 0) { - /* We have to clean up here. */ - + /* We have to clean up here. */ + non_fatal (_("%s: rename: %s"), to, strerror (errno)); unlink (from); } @@ -199,7 +199,7 @@ smart_rename (from, to, preserve_dates) } else { - /* We have to clean up here. */ + /* We have to clean up here. */ non_fatal (_("%s: rename: %s"), to, strerror (errno)); unlink (from); } diff --git a/contrib/binutils/binutils/resbin.c b/contrib/binutils/binutils/resbin.c index 7ed84f9..079818c 100644 --- a/contrib/binutils/binutils/resbin.c +++ b/contrib/binutils/binutils/resbin.c @@ -518,7 +518,7 @@ bin_to_res_dialog (data, length, big_endian) d->caption = get_unicode (data + off, length - off, big_endian, &sublen); off += sublen * 2 + 2; - if (sublen == 0) + if (sublen == 0) d->caption = NULL; if ((d->style & DS_SETFONT) == 0) @@ -595,9 +595,9 @@ bin_to_res_dialog (data, length, big_endian) dc->height = get_16 (big_endian, data + off + 6); if (d->ex != NULL) - dc->id = get_32 (big_endian, data + off + 8); + dc->id = get_32 (big_endian, data + off + 8); else - dc->id = get_16 (big_endian, data + off + 8); + dc->id = get_16 (big_endian, data + off + 8); off += 10 + (d->ex != NULL ? 2 : 0); @@ -629,7 +629,7 @@ bin_to_res_dialog (data, length, big_endian) dc->data->u.buffer.length = datalen; dc->data->u.buffer.data = data + off; - off += datalen; + off += datalen; } dc->next = NULL; @@ -1219,7 +1219,7 @@ bin_to_res_version (data, length, big_endian) vi->next = NULL; *pp = vi; - pp = &vi->next; + pp = &vi->next; } v = (struct versioninfo *) res_alloc (sizeof *v); @@ -1230,7 +1230,7 @@ bin_to_res_version (data, length, big_endian) r->type = RES_TYPE_VERSIONINFO; r->u.versioninfo = v; - return r; + return r; } /* Convert an arbitrary user defined resource from binary. */ @@ -1685,9 +1685,9 @@ res_to_bin_dialog (dialog, big_endian) put_16 (big_endian, dc->height, d->data + dcoff + 6); if (dialogex) - put_32 (big_endian, dc->id, d->data + dcoff + 8); + put_32 (big_endian, dc->id, d->data + dcoff + 8); else - put_16 (big_endian, dc->id, d->data + dcoff + 8); + put_16 (big_endian, dc->id, d->data + dcoff + 8); *pp = d; pp = &d->next; @@ -1776,12 +1776,12 @@ res_to_bin_fontdir (fontdirs, big_endian) d->next = NULL; *pp = d; - pp = &d->next; + pp = &d->next; } put_16 (big_endian, c, first->data); - return first; + return first; } /* Convert a group icon resource to binary. */ @@ -2093,7 +2093,7 @@ res_to_bin_stringtable (st, big_endian) d->next = NULL; *pp = d; - pp = &d->next; + pp = &d->next; } return first; @@ -2122,7 +2122,7 @@ string_to_unicode_bin (s, big_endian) d->next = NULL; - return d; + return d; } /* Convert a versioninfo resource to binary. */ @@ -2287,7 +2287,7 @@ res_to_bin_versioninfo (versioninfo, big_endian) vsslen += length - hold; *pp = unicode_to_bin (vs->value, big_endian); - put_16 (big_endian, (*pp)->length / 2, vssd->data + 2); + put_16 (big_endian, (*pp)->length / 2, vssd->data + 2); length += (*pp)->length; vilen += (*pp)->length; vslen += (*pp)->length; diff --git a/contrib/binutils/binutils/resrc.c b/contrib/binutils/binutils/resrc.c index fb0d36c..3cf708a 100644 --- a/contrib/binutils/binutils/resrc.c +++ b/contrib/binutils/binutils/resrc.c @@ -70,7 +70,7 @@ #ifndef STDOUT_FILENO #define STDOUT_FILENO 1 #endif - + #if defined (_WIN32) && ! defined (__CYGWIN__) #define popen _popen #define pclose _pclose @@ -193,38 +193,38 @@ run_cmd (cmd, redir) /* Count the args. */ i = 0; - + for (s = cmd; *s; s++) if (*s == ' ') i++; - + i++; argv = alloca (sizeof (char *) * (i + 3)); i = 0; s = cmd; - + while (1) { while (*s == ' ' && *s != 0) s++; - + if (*s == 0) break; - + in_quote = (*s == '\'' || *s == '"'); sep = (in_quote) ? *s++ : ' '; argv[i++] = s; - + while (*s != sep && *s != 0) s++; - + if (*s == 0) break; - + *s++ = 0; - + if (in_quote) - s++; + s++; } argv[i++] = NULL; @@ -237,8 +237,8 @@ run_cmd (cmd, redir) /* Open temporary output file. */ redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, 0666); if (redir_handle == -1) - fatal (_("can't open temporary file `%s': %s"), redir, - strerror (errno)); + fatal (_("can't open temporary file `%s': %s"), redir, + strerror (errno)); /* Duplicate the stdout file handle so it can be restored later. */ stdout_save = dup (STDOUT_FILENO); @@ -265,7 +265,7 @@ run_cmd (cmd, redir) retcode = 0; pid = pwait (pid, &wait_status, 0); - + if (pid == -1) { fatal (_("wait: %s"), strerror (errno)); @@ -280,14 +280,14 @@ run_cmd (cmd, redir) { if (WEXITSTATUS (wait_status) != 0) { - fatal (_("%s exited with status %d"), cmd, + fatal (_("%s exited with status %d"), cmd, WEXITSTATUS (wait_status)); retcode = 1; } } else retcode = 1; - + return retcode; } @@ -309,11 +309,11 @@ open_input_stream (cmd) cpp_pipe = fopen (cpp_temp_file, FOPEN_RT);; if (cpp_pipe == NULL) - fatal (_("can't open temporary file `%s': %s"), + fatal (_("can't open temporary file `%s': %s"), cpp_temp_file, strerror (errno)); - + if (verbose) - fprintf (stderr, + fprintf (stderr, _("Using temporary file `%s' to read preprocessor output\n"), cpp_temp_file); } @@ -321,7 +321,7 @@ open_input_stream (cmd) { cpp_pipe = popen (cmd, FOPEN_RT); if (cpp_pipe == NULL) - fatal (_("can't popen `%s': %s"), cmd, strerror (errno)); + fatal (_("can't popen `%s': %s"), cmd, strerror (errno)); if (verbose) fprintf (stderr, _("Using popen to read preprocessor output\n")); } @@ -472,7 +472,7 @@ read_rc_file (filename, preprocessor, preprocargs, language, use_temp_file) } } - + free (cmd); rc_filename = xstrdup (filename); @@ -484,7 +484,7 @@ read_rc_file (filename, preprocessor, preprocargs, language, use_temp_file) rcparse_discard_strings (); close_input_stream (); - + if (fontdirs != NULL) define_fontdirs (); @@ -507,7 +507,7 @@ close_input_stream () if (cpp_temp_file != NULL) { int errno_save = errno; - + unlink (cpp_temp_file); errno = errno_save; free (cpp_temp_file); @@ -1593,7 +1593,7 @@ write_rc_directory (e, rd, type, name, language, level) && (re->id.u.id & 0xffff) == re->id.u.id) { fprintf (e, "LANGUAGE %lu, %lu\n", - re->id.u.id & ((1 << SUBLANG_SHIFT) - 1), + re->id.u.id & ((1 << SUBLANG_SHIFT) - 1), (re->id.u.id >> SUBLANG_SHIFT) & 0xff); *language = re->id.u.id; } @@ -1699,7 +1699,7 @@ write_rc_subdir (e, re, type, name, language, level) fprintf (e, "// Level %d: ", level); res_id_print (e, re->id, 1); fprintf (e, "\n"); - } + } write_rc_directory (e, re->u.dir, type, name, language, level + 1); } @@ -2167,7 +2167,7 @@ write_rc_dialog_control (e, control) fprintf (e, "%s", ci->name); else fprintf (e, "CONTROL"); - + if (control->text.named || control->text.u.id != 0) { fprintf (e, " "); diff --git a/contrib/binutils/binutils/resres.c b/contrib/binutils/binutils/resres.c index 616772e..ed2714d 100644 --- a/contrib/binutils/binutils/resres.c +++ b/contrib/binutils/binutils/resres.c @@ -211,7 +211,7 @@ write_res_directory (rd, type, name, language, level) case 2: /* If we're at level 2, the key of this resource is the name - we are going to use in the rc printout. */ + we are going to use in the rc printout. */ name = &re->id; break; @@ -457,7 +457,7 @@ write_res_info (info) } /* read a resource identifier */ -void +void read_res_id (id) struct res_id *id; { diff --git a/contrib/binutils/binutils/size.c b/contrib/binutils/binutils/size.c index 961593b..792cb82 100644 --- a/contrib/binutils/binutils/size.c +++ b/contrib/binutils/binutils/size.c @@ -84,7 +84,7 @@ usage (stream, status) { fprintf (stream, _("Usage: %s [option(s)] [file(s)]\n"), program_name); fprintf (stream, _(" Displays the sizes of sections inside binary files\n")); - fprintf (stream, _(" If no input file(s) are specified, a.out is assumed\n")); + fprintf (stream, _(" If no input file(s) are specified, a.out is assumed\n")); fprintf (stream, _(" The options are:\n\ -A|-B --format={sysv|berkeley} Select output style (default is %s)\n\ -o|-d|-h --radix={8|10|16} Display numbers in octal, decimal or hex\n\ @@ -448,7 +448,7 @@ berkeley_sum (abfd, sec, ignore) bsssize += size; } -static void +static void print_berkeley_format (abfd) bfd *abfd; { diff --git a/contrib/binutils/binutils/srconv.c b/contrib/binutils/binutils/srconv.c index 5361420..a45437f 100644 --- a/contrib/binutils/binutils/srconv.c +++ b/contrib/binutils/binutils/srconv.c @@ -26,12 +26,12 @@ All debugging information is preserved */ -#include +#include "bfd.h" #include "bucomm.h" #include "sysroff.h" #include "coffgrok.h" -#include -#include +#include "libiberty.h" +#include "getopt.h" #include "coff/internal.h" #include "../bfd/libcoff.h" @@ -104,7 +104,7 @@ static int debug = 0; static int quick = 0; static int noprescan = 0; static struct coff_ofile *tree; -/* Obsolete ?? +/* Obsolete ?? static int absolute_p; */ @@ -923,7 +923,7 @@ walk_tree_type_1 (sfile, symbol, type, nest) } } -/* Obsolete ? +/* Obsolete ? static void dty_start () { @@ -1632,17 +1632,17 @@ wr_cs () 0x80, /* IT */ 0x21, /* RL */ 0x00, /* number of chars in variable length part */ - 0x80, /* hd */ - 0x00, /* hs */ - 0x80, /* un */ - 0x00, /* us */ - 0x80, /* sc */ - 0x00, /* ss */ - 0x80, /* er */ - 0x80, /* ed */ - 0x80, /* sh */ - 0x80, /* ob */ - 0x80, /* rl */ + 0x80, /* hd */ + 0x00, /* hs */ + 0x80, /* un */ + 0x00, /* us */ + 0x80, /* sc */ + 0x00, /* ss */ + 0x80, /* er */ + 0x80, /* ed */ + 0x80, /* sh */ + 0x80, /* ob */ + 0x80, /* rl */ 0x80, /* du */ 0x80, /* dps */ 0x80, /* dsy */ @@ -1886,7 +1886,7 @@ wr_unit_info (ptr) p2 = ftell (file); fseek (file, p1, SEEK_SET); wr_un (ptr, sfile, first, nsecs); - fseek (file, p2, SEEK_SET); + fseek (file, p2, SEEK_SET); wr_er (ptr, sfile, first); wr_ed (ptr, sfile, first); first = 0; diff --git a/contrib/binutils/binutils/stabs.c b/contrib/binutils/binutils/stabs.c index bbc0632..0873582 100644 --- a/contrib/binutils/binutils/stabs.c +++ b/contrib/binutils/binutils/stabs.c @@ -366,7 +366,6 @@ warn_stab (p, err) /* Create a handle to parse stabs symbols with. */ -/*ARGSUSED*/ PTR start_stab (dhandle, abfd, sections, syms, symcount) PTR dhandle ATTRIBUTE_UNUSED; @@ -562,7 +561,7 @@ parse_stab (dhandle, handle, type, desc, value, string) f = info->so_string; - if (IS_ABSOLUTE_PATH (string)) + if (IS_ABSOLUTE_PATH (string)) info->so_string = xstrdup (string); else info->so_string = concat (info->so_string, string, @@ -1912,7 +1911,7 @@ parse_stab_sun_builtin_type (dhandle, pp) } ++*pp; - /* The second number is always 0, so ignore it too. */ + /* The second number is always 0, so ignore it too. */ (void) parse_number (pp, (boolean *) NULL); if (**pp != ';') { @@ -1921,7 +1920,7 @@ parse_stab_sun_builtin_type (dhandle, pp) } ++*pp; - /* The third number is the number of bits for this type. */ + /* The third number is the number of bits for this type. */ bits = parse_number (pp, (boolean *) NULL); /* The type *should* end with a semicolon. If it are embedded @@ -1974,7 +1973,7 @@ parse_stab_sun_floating_type (dhandle, pp) || details == NF_COMPLEX32) return debug_make_complex_type (dhandle, bytes); - return debug_make_float_type (dhandle, bytes); + return debug_make_float_type (dhandle, bytes); } /* Handle an enum type. */ @@ -2308,7 +2307,7 @@ parse_stab_struct_fields (dhandle, info, pp, retp, staticsp) /* Look for the ':' that separates the field name from the field values. Data members are delimited by a single ':', while member functions are delimited by a pair of ':'s. When we hit the member - functions (if any), terminate scan loop and return. */ + functions (if any), terminate scan loop and return. */ p = strchr (p, ':'); if (p == NULL) @@ -2759,27 +2758,27 @@ parse_stab_members (dhandle, info, tagname, pp, typenums, retp) /* Figure out from whence this virtual function came. It may belong to virtual function table of one of its baseclasses. */ - look_ahead_type = parse_stab_type (dhandle, info, - (const char *) NULL, - pp, - (debug_type **) NULL); - if (**pp == ':') - { - /* g++ version 1 overloaded methods. */ - context = DEBUG_TYPE_NULL; - } - else - { - context = look_ahead_type; - look_ahead_type = DEBUG_TYPE_NULL; - if (**pp != ';') - { - bad_stab (orig); - return false; - } - ++*pp; - } - } + look_ahead_type = parse_stab_type (dhandle, info, + (const char *) NULL, + pp, + (debug_type **) NULL); + if (**pp == ':') + { + /* g++ version 1 overloaded methods. */ + context = DEBUG_TYPE_NULL; + } + else + { + context = look_ahead_type; + look_ahead_type = DEBUG_TYPE_NULL; + if (**pp != ';') + { + bad_stab (orig); + return false; + } + ++*pp; + } + } break; case '?': @@ -3035,7 +3034,7 @@ parse_stab_tilde_field (dhandle, info, pp, typenums, retvptrbase, retownvptr) orig = *pp; - /* If we are positioned at a ';', then skip it. */ + /* If we are positioned at a ';', then skip it. */ if (**pp == ';') ++*pp; @@ -3047,7 +3046,7 @@ parse_stab_tilde_field (dhandle, info, pp, typenums, retvptrbase, retownvptr) if (**pp == '=' || **pp == '+' || **pp == '-') { /* Obsolete flags that used to indicate the presence of - constructors and/or destructors. */ + constructors and/or destructors. */ ++*pp; } @@ -3088,7 +3087,7 @@ parse_stab_tilde_field (dhandle, info, pp, typenums, retvptrbase, retownvptr) *pp = p + 1; } - return true; + return true; } /* Read a definition of an array type. */ diff --git a/contrib/binutils/binutils/strings.c b/contrib/binutils/binutils/strings.c index 3507831..dade244 100644 --- a/contrib/binutils/binutils/strings.c +++ b/contrib/binutils/binutils/strings.c @@ -61,7 +61,7 @@ #endif #include "bfd.h" #include -#include +#include "getopt.h" #include #include "bucomm.h" #include "libiberty.h" diff --git a/contrib/binutils/binutils/sysdump.c b/contrib/binutils/binutils/sysdump.c index 8ac0f27..2d0362b 100644 --- a/contrib/binutils/binutils/sysdump.c +++ b/contrib/binutils/binutils/sysdump.c @@ -30,8 +30,8 @@ #include "safe-ctype.h" #include -#include -#include +#include "libiberty.h" +#include "getopt.h" #include "sysroff.h" static int dump = 1; @@ -107,10 +107,10 @@ dh (ptr, size) { for (j = 0; j < span; j++) { - if (j + i < size) + if (j + i < size) printf ("%02x ", ptr[i + j]); - else - printf (" "); + else + printf (" "); } for (j = 0; j < span && j + i < size; j++) diff --git a/contrib/binutils/binutils/unwind-ia64.c b/contrib/binutils/binutils/unwind-ia64.c index 0873c6f..803a5fa 100644 --- a/contrib/binutils/binutils/unwind-ia64.c +++ b/contrib/binutils/binutils/unwind-ia64.c @@ -44,15 +44,18 @@ unw_print_brmask (cp, mask) char * cp; unsigned int mask; { - char *sep = ""; + int sep = 0; int i; for (i = 0; mask && (i < 5); ++i) { if (mask & 1) { - cp += sprintf (cp, "%sb%u", sep, i + 1); - sep = ","; + if (sep) + *cp++ = ','; + *cp++ = 'b'; + *cp++ = i + 1 + '0'; + sep = 1; } mask >>= 1; } @@ -64,19 +67,22 @@ unw_print_grmask (cp, mask) char * cp; unsigned int mask; { - char *sep = ""; + int sep = 0; int i; - *cp = '\0'; for (i = 0; i < 4; ++i) { if (mask & 1) { - cp += sprintf (cp, "%sr%u", sep, i + 4); - sep = ","; + if (sep) + *cp++ = ','; + *cp++ = 'r'; + *cp++ = i + 4 + '0'; + sep = 1; } mask >>= 1; } + *cp = '\0'; } static void @@ -84,19 +90,28 @@ unw_print_frmask (cp, mask) char * cp; unsigned int mask; { - char *sep = ""; + int sep = 0; int i; - *cp = '\0'; for (i = 0; i < 20; ++i) { if (mask & 1) { - cp += sprintf (cp, "%sf%u", sep, (i < 4) ? (i + 2) : (i + 12)); - sep = ","; + if (sep) + *cp++ = ','; + *cp++ = 'f'; + if (i < 4) + *cp++ = i + 2 + '0'; + else + { + *cp++ = (i + 2) / 10 + 1 + '0'; + *cp++ = (i + 2) % 10 + '0'; + } + sep = 1; } mask >>= 1; } + *cp = '\0'; } static void @@ -475,7 +490,7 @@ typedef bfd_vma unw_word; * macros/constants before including this file: * * Types: - * unw_word Unsigned integer type with at least 64 bits + * unw_word Unsigned integer type with at least 64 bits * * Register names: * UNW_REG_BSP diff --git a/contrib/binutils/binutils/unwind-ia64.h b/contrib/binutils/binutils/unwind-ia64.h index d80e46a..7d5033d 100644 --- a/contrib/binutils/binutils/unwind-ia64.h +++ b/contrib/binutils/binutils/unwind-ia64.h @@ -1,5 +1,5 @@ /* unwind-ia64.h -- dump IA-64 unwind info. - Copyright 2000, 2001 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by David Mosberger-Tang This file is part of GNU Binutils. @@ -18,8 +18,8 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include -#include +#include "elf/ia64.h" +#include "ansidecl.h" #define UNW_VER(x) ((x) >> 48) #define UNW_FLAG_MASK 0x0000ffff00000000 diff --git a/contrib/binutils/binutils/wrstabs.c b/contrib/binutils/binutils/wrstabs.c index 4f10e0d..5d0dc3b 100644 --- a/contrib/binutils/binutils/wrstabs.c +++ b/contrib/binutils/binutils/wrstabs.c @@ -795,7 +795,7 @@ stab_bool_type (p, size) case 2: index = -22; break; - + default: case 4: index = -16; @@ -963,7 +963,7 @@ stab_modify_type (info, mod, size, cache, cache_alloc) } return true; -} +} /* Push a pointer type. */ @@ -1368,7 +1368,6 @@ stab_get_struct_index (info, tag, id, kind, psize) /* Start outputting a struct. We ignore the tag, and handle it in stab_tag. */ -/*ARGSUSED*/ static boolean stab_start_struct_type (p, tag, id, structp, size) PTR p; @@ -2379,7 +2378,6 @@ stab_end_block (p, addr) /* End a function. */ -/*ARGSUSED*/ static boolean stab_end_function (p) PTR p ATTRIBUTE_UNUSED; -- cgit v1.1