and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

  1. 25 Dec, 2014 1 commit
  2. 24 Dec, 2014 18 commits
    • H.J. Lu's avatar
      2a78113f
    • H.J. Lu's avatar
    • H.J. Lu's avatar
      31c29c24
    • H.J. Lu's avatar
    • H.J. Lu's avatar
    • H.J. Lu's avatar
      Add cast to unsigned long · 09eb8b7b
      H.J. Lu authored
      	* pei-x86_64.c (pex64_bfd_print_pdata_section): Add cast to
      	unsigned long.
      09eb8b7b
    • H.J. Lu's avatar
    • Andrew Burgess's avatar
      AVR: Document linker relaxation related options. · f5be9525
      Andrew Burgess authored
      Adds documentation describing the -mlink-relax and -mno-link-relax
      command line options.
      
      gas/ChangeLog:
      
      	* doc/c-avr.texi: Document -mlink-relax and -mno-link-relax.
      f5be9525
    • Andrew Burgess's avatar
      AVR: Assembler now prepares for linker relaxation by default. · edc9e9a6
      Andrew Burgess authored
      Have the assembler prepare for linker relaxation by default.  This
      means that users will be able to make use of linker relaxation without
      having to adjust the assembler flags, this can make life easier when
      compiling libraries.
      
      Having this on by default in the assembler should make no difference to
      the assembler code produced, however, some of the debug information will
      be slightly less compressed.
      
      A few tests needed to be updated as a result of this change as they
      relied on linker relaxation support being off by default.
      
      I've tightened up the definition of which sections can be relaxed on AVR
      as part of this commit, the assembler used to think that all
      non-debugging sections could be relaxed, when in reality only code
      sections can be relaxed for AVR.  The previous definition was not
      dangerous, just over cautious.  The new tighter definition allows an
      extra test (gas/testsuite/gas/all/forward.d) to continue to pass.
      
      gas/ChangeLog:
      
      	* config/tc-avr.c (struct avr_opt_s): Change link_relax to
      	no_link_relax, extend comment.
      	(enum options): Add new OPTION_NO_LINK_RELAX.
      	(md_longopts): Add entry for -mno-link-relax.
      	(md_parse_option): Handle OPTION_NO_LINK_RELAX, and update
      	OPTION_LINK_RELAX.
      	(md_begin): Initialise linkrelax from no_link_relax.
      	(md_show_usage): Include -mno-link-relax option.
      	(relaxable_section): Only allocatable code sections can be
      	relaxed.
      	* config/tc-avr.h (TC_LINKRELAX_FIXUP): Define.
      
      gas/testsuite/ChangeLog:
      
      	* gas/all/gas.exp: Test will not pass on AVR due to linker
      	relaxation support.
      	* gas/avr/noreloc_withoutrelax.d: Add -mno-link-relax option.
      	* gas/avr/link-relax-elf-flag-clear.d: Likewise.
      
      ld/testsuite/ChangeLog:
      
      	* ld/testsuite/ld-avr/relax-elf-flags-02.d: Add -mno-link-relax
      	option.
      	* ld/testsuite/ld-avr/relax-elf-flags-03.d: Likewise.
      	* ld/testsuite/ld-avr/relax-elf-flags-04.d: Likewise.
      	* ld/testsuite/ld-avr/relax-elf-flags-05.d: Likewise.
      	* ld/testsuite/ld-avr/relax-elf-flags-06.d: Likewise.
      edc9e9a6
    • Alexander Cherepanov's avatar
      This patch fixes a snafu where the -D and -U short versions of the · 7a093a78
      Alexander Cherepanov authored
      --enable-deterministic-archives and --disable-deteministic-archive
      options were not being accepted.
      
      	PR binutils/17671
      	* objcopy.c (copy_main, strip_main): Add D and U to the list of
      	accepted short versions of long options.
      7a093a78
    • Anthony Green's avatar
      ed4fd7b7
    • Anthony Green's avatar
      0be40ae4
    • Alan Modra's avatar
      Don't create .eh_frame_hdr on shared lib bfd · ca0694ad
      Alan Modra authored
      If no object files have .eh_frame, but some shared library does, then
      ld creates a .eh_frame_hdr section using the shared library bfd.  This
      is silly since shared library .eh_frame sections don't contribute to
      the output .eh_frame and thus no .eh_frame_hdr is needed.
      
      Also, the bfd section list and count is cleared for shared libraries,
      and a zero section count used as a flag in lang_check to omit a call
      to bfd_merge_private_bfd_data for shared libraries.  If we create a
      section on a shared lib bfd then ld will wrongly attempt to merge the
      shared library private bfd data.
      
      	PR 17742
      	* ld/emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Exclude
      	shared libraries in loop looking for .eh_frame sections.
      	Similarly for build-id loop.
      ca0694ad
    • Pierre Muller's avatar
      This patch adds support for printing out the pdata section of PE objects. · 854399ea
      Pierre Muller authored
      	* pe-x86_64.c (pex64_bfd_print_pdata): Add external
      	declaration.
      	(bfd_pe_print_data): Set macro to pex64_bfd_print_data.
      	* pei-x86_64.c (pex64_bfd_print_pdata): Changed to
      	global function. Now handles multiple .pdata sections.
      	(pex_bfd_print_pdata_section): New static helper function,
      	using most of old pex_bfd_print_pdata function code, but adding
      	support for coff pe objects, which might have some fields
      	starting at zero offset.
      	(pex64_print_all_pdata_sections) : New static helper function,
      	used in call to bfd_map_over_sections inside new
      	pex66_bfd_print_pdata function.
      	(bfd_boolean pdata_count): New static variable, used to return
      	bfd_boolean value for pex64_bfd_print_pdata function.
      854399ea
    • Nick Clifton's avatar
      Reverts an "enhancement" made in a previous delta which complained of · c361b9ac
      Nick Clifton authored
      unprocessed augmentation data at the end of a CIE.
      
      	* dwarf.c (read_cie): Revert check for unused augmentation data -
      	it was bogus.
      c361b9ac
    • Alan Modra's avatar
      Fix generic linker symbol output when weak is overridden by strong · d5111a0e
      Alan Modra authored
      Yes, I know this also affects bfd_link_hash_indirect, but output of
      indirect and warning symbols looks quite broken anyway.
      
      	* linker.c (_bfd_generic_link_output_symbols): Remove BSF_WEAK
      	flag from bfd_link_hash_defined symbols.
      d5111a0e
    • Alan Modra's avatar
      Yet another DEFINED testcase · 931804de
      Alan Modra authored
      	* ld-scripts/defined6.s,
      	* ld-scripts/defined6.t,
      	* ld-scripts/defined6.d: New test.
      	* ld-scripts/defined.exp: Run it.
      931804de
    • GDB Administrator's avatar
      Automatic date update in version.in · 8a7fbfc0
      GDB Administrator authored
      8a7fbfc0
  3. 23 Dec, 2014 21 commits
    • Andrew Stubbs's avatar
      Clarify strip docs. · 805b1c8b
      Andrew Stubbs authored
      	binutils/
      	* objcopy.c (strip_usage): Reword --remove-section description.
      	* doc/binutils.texi (strip): Likewise.
      805b1c8b
    • H.J. Lu's avatar
      Update binutils-lto-mixed.patch against master · 689eaba2
      H.J. Lu authored
      689eaba2
    • H.J. Lu's avatar
      Update binutils-pr14675.patch · bddd08ee
      H.J. Lu authored
      bddd08ee
    • H.J. Lu's avatar
    • Doug Evans's avatar
      Look up primitive types as symbols. · 1994afbf
      Doug Evans authored
      gdb/ChangeLog:
      
      	* ada-lang.c (user_select_syms): Only fetch symtab if symbol is
      	objfile-owned.
      	(cache_symbol): Ignore symbols that are not objfile-owned.
      	* block.c (block_objfile): New function.
      	(block_gdbarch): New function.
      	* block.h (block_objfile): Declare.
      	(block_gdbarch): Declare.
      	* c-exp.y (classify_name): Remove call to
      	language_lookup_primitive_type.  No longer necessary.
      	* gdbtypes.c (lookup_typename): Call lookup_symbol_in_language.
      	Remove call to language_lookup_primitive_type.  No longer necessary.
      	* guile/scm-symbol.c (syscm_gdbarch_data_key): New static global.
      	(syscm_gdbarch_data): New struct.
      	(syscm_init_arch_symbols): New function.
      	(syscm_get_symbol_map): Renamed from syscm_objfile_symbol_map.
      	All callers updated.  Handle symbols owned by arches.
      	(gdbscm_symbol_symtab): Handle symbols owned by arches.
      	(gdbscm_initialize_symbols): Initialize syscm_gdbarch_data_key.
      	* language.c (language_lookup_primitive_type_1): New function.
      	(language_lookup_primitive_type): Call it.
      	(language_alloc_type_symbol): New function.
      	(language_init_primitive_type_symbols): New function.
      	(language_lookup_primitive_type_as_symbol): New function.
      	* language.h (struct language_arch_info) <primitive_type_symbols>:
      	New member.
      	(language_lookup_primitive_type): Add function comment.
      	(language_lookup_primitive_type_as_symbol): Declare.
      	* printcmd.c (address_info): Handle arch-owned symbols.
      	* python/py-symbol.c (sympy_get_symtab): Ditto.
      	(set_symbol): Ditto.
      	(sympy_dealloc): Ditto.
      	* symmisc.c (print_symbol): Ditto.
      	* symtab.c (fixup_symbol_section): Ditto.
      	(lookup_symbol_aux): Initialize block_found.
      	(basic_lookup_symbol_nonlocal): Try looking up the symbol as a
      	primitive type.
      	(initialize_objfile_symbol_1): New function.
      	(initialize_objfile_symbol): Call it.
      	(allocate_symbol): Call it.
      	(allocate_template_symbol): Call it.
      	(symbol_objfile): Assert symbol is objfile-owned.
      	(symbol_arch, symbol_symtab, symbol_set_symtab): Ditto.
      	* symtab.h (struct symbol) <owner>: Replaces member "symtab".
      	(struct symbol) <is_objfile_owned>: New member.
      	(SYMBOL_OBJFILE_OWNED): New macro.
      	* cp-namespace.c (cp_lookup_bare_symbol): New arg langdef.
      	All callers updated.  Try to find the symbol as a primitive type.
      	(lookup_namespace_scope): New arg langdef.  All callers updated.
      	Call cp_lookup_bare_symbol directly for simple bare symbols.
      1994afbf
    • Andrew Burgess's avatar
      AVR/ld: Propagate link-relax elf header flag correctly. · 9d7b48dc
      Andrew Burgess authored
      The AVR target has an elf header flag to indicate if an object was
      assembler ready for linker relaxation.  If a partial link is performed
      then it is important that the link-relax flag in the output object is
      set correctly, otherwise, during the final link, we might try to perform
      linker relaxation on code that was not assembled suitably.
      
      As the link-relax elf header covers the entire object file we must be
      conservative when setting the flag in the output object, so, for a
      partial link, any input object that does not have the link-relax flag
      set will cause the output object to also not have the link-relax flag
      set.
      
      This conservative approach could be softened in future, we only need to
      disable the link relax flag if an input file is not marked link-relax
      ready, and the input file contains a relaxable section.  However, I've
      left this optimisation for a later day.
      
      For the final link I've overloaded the use of the link-relax elf header
      flag, in a final executable, the flag now indicates if the executable
      was built with linker relaxation on or not.
      
      ld/ChangeLog:
      
      	* emultempl/avrelf.em: Add include of elf/avr.h.
      	(avr_finish): New function.
      	(LDEMUL_FINISH): Added.
      
      ld/testsuite/ChangeLog:
      
      	* ld-avr/relax-elf-flags-01.d: New file.
      	* ld-avr/relax-elf-flags-02.d: New file.
      	* ld-avr/relax-elf-flags-03.d: New file.
      	* ld-avr/relax-elf-flags-04.d: New file.
      	* ld-avr/relax-elf-flags-05.d: New file.
      	* ld-avr/relax-elf-flags-06.d: New file.
      	* ld-avr/relax-elf-flags-07.d: New file.
      	* ld-avr/relax-elf-flags-08.d: New file.
      	* ld-avr/relax-elf-flags-a.s: New file.
      	* ld-avr/relax-elf-flags-b.s: New file.
      9d7b48dc
    • Andrew Burgess's avatar
      AVR: Only set link-relax elf flag when appropriate. · eac7440d
      Andrew Burgess authored
      The AVR target uses a bit in the elf header flags to indicate if the
      object was assembled ready for linker relaxation.  Previously this flag
      was always set, even when the object was not assembled ready for linker
      relaxation.
      
      This patch moves setting of the flag into the assembler, and sets it
      only when the assembler is preparing the file for linker relaxation.
      
      bfd/ChangeLog:
      
      	* elf32-avr.c (bfd_elf_avr_final_write_processing): Don't set
      	EF_AVR_LINKRELAX_PREPARED unconditionally.
      
      gas/ChangeLog:
      
      	* config/tc-avr.c: Add include for elf/avr.h.
      	(avr_elf_final_processing): New function.
      	* config/tc-avr.h (elf_tc_final_processing): Define.
      	(avr_elf_final_processing): Declare
      
      gas/testsuite/ChangeLog:
      
      	* gas/avr/link-relax-elf-flag-clear.d: New file.
      	* gas/avr/link-relax-elf-flag-set.d: New file.
      	* gas/avr/link-relax-elf-flag.s: New file.
      eac7440d
    • Doug Evans's avatar
      symtab.h (SYMBOL_DOMAIN_BITS): New macro. · c01feb36
      Doug Evans authored
      gdb/ChangeLog:
      
      	* symtab.h (SYMBOL_DOMAIN_BITS): New macro.
      	(struct symbol) <domain>: Use it.
      c01feb36
    • Doug Evans's avatar
      initialize_objfile_symbol: Renamed from initialize_symbol. · 38bf1463
      Doug Evans authored
      gdb/ChangeLog:
      
      	* symtab.c (initialize_objfile_symbol): Renamed from initialize_symbol.
      	All callers updated.
      38bf1463
    • Doug Evans's avatar
      Add langdef arg to la_lookup_symbol_nonlocal. · f606139a
      Doug Evans authored
      gdb/ChangeLog:
      
      	* language.h (struct language_defn) <la_lookup_symbol_nonlocal>:
      	New arg language_defn.  All uses updated.
      f606139a
    • Doug Evans's avatar
      Replace some symbol accessor macros with functions. · 08be3fe3
      Doug Evans authored
      gdb/ChangeLog:
      
      	* symtab.h (SYMBOL_SYMTAB): Delete
      	(SYMBOL_OBJFILE): Delete.
      	(symbol_symtab, symbol_set_symtab): Declare.
      	(symbol_objfile, symbol_arch): Declare.
      	* symtab.c (symbol_symtab): Replaces SYMBOL_SYMTAB.  All uses updated.
      	All references to symbol->symtab redirected through here.
      	(symbol_set_symtab): New function.  All assignments to SYMBOL_SYMTAB
      	redirected through here.
      	(symbol_arch): New function.
      	(symbol_objfile): New function.  Replaces SYMBOL_OBJFILE.
      	All uses updated.
      	* cp-namespace.c (cp_lookup_symbol_imports_or_template): Call
      	symbol_arch.
      	* findvar.c (default_read_var_value): Call symbol_arch.
      	* guile/scm-frame.c (gdbscm_frame_block): Call symbol_objfile.
      	* jv-lang.c (add_class_symtab_symbol): Call symbol_arch.
      	* printcmd.c (address_info): Call symbol_arch.
      	* tracepoint.c (scope_info): Call symbol_arch.
      08be3fe3
    • Nick Clifton's avatar
      This patch add support for cpu marvell-whitney. · 4347085a
      Nick Clifton authored
               * gas/config/tc-arm.c (arm_cpus): Add core marvell-whitney.
      4347085a
    • Nick Clifton's avatar
    • Alan Modra's avatar
      Report an error for script multiply defined symbols · 422f1c65
      Alan Modra authored
      or maybe not just yet, but this is better than a FIXME.
      
      	* ldexp.c (update_definedness): Return false if script symbol is
      	redefining a strong symbol in an object.
      	(exp_fold_tree_1 <etree_assign>): Set up for reporting a multiple
      	definition error, but for now leave disabled.
      422f1c65
    • Alan Modra's avatar
      Use a symbol flag bit to mark linker defined symbols · 12b2843a
      Alan Modra authored
      Trying to use the SEC_LINKER_CREATED section flag to determine whether
      a symbol is linker defined fails to work on targets like alpha that
      define special SEC_COMMON sections.  These might contain symbols that
      originated in an object file.
      
      include/
      	* bfdlink.h (struct bfd_link_hash_entry): Comment non_ir_ref.  Add
      	linker_def.
      bfd/
      	* elflink.c (_bfd_elf_define_linkage_sym): Set linker_def.
      	* linker.c (_bfd_generic_link_add_one_symbol): Clear linker_def
      	for CDEF, DEF, DEFW, COM.
      ld/
      	* ldexp.c (exp_fold_tree_1 <etree_provide>): Test linker_def.
      ld/testsuite/
      	* ld-powerpc/sdabase.s,
      	* ld-powerpc/sdabase.t,
      	* ld-powerpc/sdabase.d: New test.
      	* ld-powerpc/sdabase2.t,
      	* ld-powerpc/sdabase2.d: New test.
      	* ld-powerpc/powerpc.exp: Run them.
      12b2843a
    • Alan Modra's avatar
      Don't PROVIDE over top of common symbols · 4cc2bf08
      Alan Modra authored
      This:
        int end[100000];
        int main(void) { end[99999] = 0; return 0; }
      should not segfault.
      
      ld/
      	* ldexp.c (exp_fold_tree_1 <etree_provide>): Leave bfd_link_hash_common
      	symbols alone.
      ld/testsuite/
      	* ld-elf/endsym.s, *ld-elf/endsym.d: New test.
      4cc2bf08
    • Alan Modra's avatar
      Correct logic for "defined by object" · cd8e2bcf
      Alan Modra authored
      The old code missed testing bfd_link_hash_undefweak, and wrongly
      excluded bfd_link_hash_common symbols.  It is also clearer to invert
      the set of enum bfd_link_hash_type values tested.
      bfd_link_hash_indirect and bfd_link_hash_warning will never appear
      here.
      
      	* ldexp.c (update_definedness): Correct logic setting by_object.
      cd8e2bcf
    • Alan Modra's avatar
      Move support code for linker script DEFINED to ldexp.c · 18d6a79d
      Alan Modra authored
      This moves support code for DEFINED to ldexp.c where it is used,
      losing the lang_ prefix on identifiers.  Two new functions are needed
      to initialize and clean up to hash table, but other than that there
      are no functional changes here.
      
      	* ldexp.c (struct definedness_hash_entry, definedness_table)
      	(definedness_newfunc, symbol_defined, update_definedness): Move
      	and rename from..
      	* ldlang.h (struct lang_definedness_hash_entry): ..here,..
      	* ldlang.c (lang_definedness_table, lang_definedness_newfunc)
      	(lang_symbol_defined, lang_update_definedness): ..and here.
      	* ldexp.c (ldexp_init, ldexp_finish): New functions, extracted from..
      	* ldlang.c (lang_init, lang_finish): ..here.
      	* ldexp.h (ldexp_init, ldexp_finish): Declare.
      	* ldlang.h (lang_symbol_defined, lang_update_definedness): Delete.
      	* ldmain.c (main): Call ldexp_init and ldexp_finish.
      18d6a79d
    • Nick Clifton's avatar
      Updated translations for the gas and gprof tools. · 175a3e50
      Nick Clifton authored
      	* po/es.po: Updated Esperanto translation.
      	* po/fr.po: Updated French translation.
      	* po/uk.po: Updated Ukrainian translation.
      175a3e50
    • H.J. Lu's avatar
      Update binutils-pr14675.patch · aecdd354
      H.J. Lu authored
      aecdd354
    • H.J. Lu's avatar