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

  1. 29 Mar, 2016 21 commits
    • Thomas Preud'homme's avatar
      Assert we don't access htab->stub_group out of range · de929842
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* elf32-arm.c (elf32_arm_get_stub_entry): Assert that we don't access
      	passed the end of htab->stub_group array.
      	(elf32_arm_create_or_find_stub_sec): Likewise.
      	(elf32_arm_create_stub): Likewise.
      de929842
    • Thomas Preud'homme's avatar
      Add support for stable secure gateway veneers addresses · c16628bd
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* bfd-in.h (bfd_elf32_arm_set_target_relocs): Add a new parameter for
      	the input import library bfd.
      	* bfd-in2.h: Regenerate.
      	* elf32-arm.c (struct elf32_arm_link_hash_table): New in_implib_bfd
      	and new_cmse_stub_offset fields.
      	(stub_hash_newfunc): Initialize stub_offset and stub_template_size to
      	-1.
      	(elf32_arm_add_stub): Likewise for stub_offset.
      	(arm_new_stubs_start_offset_ptr): New function.
      	(arm_build_one_stub): Only allocate a stub_offset if it is -1.  Allow
      	empty veneers to have zero relocations.
      	(arm_size_one_stub): Only initialize stub size and template
      	information for non empty veneers.  Do not update veneer section size
      	if veneer already has an offset.
      	(elf32_arm_create_stub): Return the stub entry pointer or NULL instead
      	of a boolean indicating success or failure.
      	(cmse_scan): Change stub_changed parameter into an integer pointer
      	parameter cmse_stub_created to count the number of stub created and
      	adapt to change of return value in elf32_arm_create_stub.
      	(cmse_entry_fct_p): New function.
      	(arm_list_new_cmse_stub): Likewise.
      	(set_cmse_veneer_addr_from_implib): Likewise.
      	(elf32_arm_size_stubs): Define cmse_stub_created, pass its address to
      	cmse_scan instead of that of cmse_stub_changed to compute the number
      	of stub created and use it to initialize stub_changed.  Call
      	set_cmse_veneer_addr_from_implib after all cmse_scan.  Adapt to change
      	of return value in elf32_arm_create_stub.  Use
      	arm_stub_section_start_offset () if not NULL to initialize size of
      	secure gateway veneers section.  Initialize stub_offset of Cortex-A8
      	erratum fix to -1.  Use ret to hold return value.
      	(elf32_arm_build_stubs): Use arm_stub_section_start_offset () if not
      	NULL to initialize size of secure gateway veneers section.  Adapt
      	comment to stress the importance of zeroing veneer section content.
      	(bfd_elf32_arm_set_target_relocs): Add new in_implib_bfd parameter to
      	initialize eponymous field in struct elf32_arm_link_hash_table.
      
      	ld/
      	* emultempl/armelf.em (in_implib_filename): Declare and initialize new
      	variable.
      	(arm_elf_create_output_section_statements): Open import input library
      	file for writing and pass resulting in_implib_bfd to
      	bfd_elf32_arm_set_target_relocs.
      	(PARSE_AND_LIST_PROLOGUE): Define OPTION_IN_IMPLIB option.
      	(PARSE_AND_LIST_LONGOPTS): Define --in-implib option.
      	(PARSE_AND_LIST_OPTIONS): Add help message for --in-implib option.
      	(PARSE_AND_LIST_ARGS_CASES): Handle new OPTION_IN_IMPLIB case.
      	* ld.texinfo (--cmse-implib): Update to mention --in-implib.
      	(--in-implib): Document new option.
      	* testsuite/ld-arm/arm-elf.exp
      	(Secure gateway import library generation): add --defsym VER=1 to gas
      	CLI.
      	(Secure gateway import library generation: errors): Likewise.
      	(Input secure gateway import library): New test.
      	(Input secure gateway import library: no output import library):
      	Likewise.
      	(Input secure gateway import library: earlier stub section base):
      	Likewise.
      	(Input secure gateway import library: later stub section base):
      	Likewise.
      	(Input secure gateway import library: veneer comeback): Likewise.
      	(Input secure gateway import library: entry function change):
      	Likewise.
      
      	ld/testsuite/
      	* ld-arm/cmse-implib.s: Add input import library testing.
      	* ld-arm/cmse-implib.rd: Update accordingly.
      	* ld-arm/cmse-new-implib.out: New file.
      	* ld-arm/cmse-new-implib.rd: Likewise.
      	* ld-arm/cmse-new-implib-no-output.out: Likewise.
      	* ld-arm/cmse-new-earlier-later-implib.out: Likewise.
      	* ld-arm/cmse-new-comeback-implib.rd: Likewise.
      	* ld-arm/cmse-new-wrong-implib.out: Likewise.
      c16628bd
    • Thomas Preud'homme's avatar
      Add support for creating ARM v8-M secure extensions import libraries · ed9ee6c9
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* bfd-in.h (bfd_elf32_arm_set_target_relocs): Add one parameter.
      	* bfd-in2.h: Regenerate.
      	* elf32-arm.c (struct elf32_arm_link_hash_table): Declare new
      	cmse_implib field.
      	(bfd_elf32_arm_set_target_relocs): Add new parameter to initialize
      	cmse_implib field in struct elf32_arm_link_hash_table.
      	(elf32_arm_filter_cmse_symbols): New function.
      	(elf32_arm_filter_implib_symbols): Likewise.
      	(elf_backend_filter_implib_symbols): Define to
      	elf32_arm_filter_implib_symbols.
      
      	ld/
      	* emultempl/armelf.em (cmse_implib): Declare and define this new
      	static variable.
      	(arm_elf_create_output_section_statements): Add new cmse_implib
      	parameter.
      	(OPTION_CMSE_IMPLIB): Define macro.
      	(PARSE_AND_LIST_LONGOPTS): Add entry for new --cmse-implib switch.
      	(PARSE_AND_LIST_OPTIONS): Likewise.
      	(PARSE_AND_LIST_ARGS_CASES): Handle OPTION_CMSE_IMPLIB case.
      	* ld.texinfo (--cmse-implib): Document new option.
      
      	ld/testsuite/
      	* ld-arm/arm-elf.exp
      	(Secure gateway import library generation): New test.
      	(Secure gateway import library generation: errors): Likewise.
      	* ld-arm/cmse-implib.s: New file.
      	* ld-arm/cmse-implib-errors.out: Likewise.
      	* ld-arm/cmse-implib.rd: Likewise.
      ed9ee6c9
    • Thomas Preud'homme's avatar
      Add support for creating import libraries · e1ad2ef6
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* elf-bfd.h (elf_backend_filter_implib_symbols): Declare backend hook.
      	(_bfd_elf_filter_global_symbols): Declare.
      	* elf.c (_bfd_elf_filter_global_symbols): New function.
      	* elflink.c (elf_filter_global_symbols): Likewise.
      	(elf_output_implib): Likewise.
      	(bfd_elf_final_link): Call above function, failing if it does.
      	* elfxx-target.h (elf_backend_filter_implib_symbols): Define macro and
      	default it to NULL.
      	(elf_backend_copy_indirect_symbol): Fix spacing.
      	(elf_backend_hide_symbol): Likewise.
      	(elfNN_bed): Initialize elf_backend_filter_implib_symbols backend hook.
      
      	include/
      	* bfdlink.h (struct bfd_link_info): Declare new ldscript_def and
      	out_implib_bfd fields.
      
      	ld/
      	* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Open import
      	library file for writing and initialize implib_bfd field of link_info
      	structure.
      	* emultempl/pe.em (pe_implib_filename): Remove variable declaration.
      	(OPTION_IMPLIB_FILENAME): Remove macro definition.
      	(gld${EMULATION_NAME}_add_options): Remove --out-implib option.
      	(gld_${EMULATION_NAME}_list_options): Likewise.
      	(gld${EMULATION_NAME}_handle_option): Likewise.
      	(gld_${EMULATION_NAME}_finish): Use command_line.out_implib_filename
      	instead of pe_implib_filename.
      	* emultempl/pep.em (pep_implib_filename): Remove variable declaration.
      	(OPTION_IMPLIB_FILENAME): Remove enumerator.
      	(gld${EMULATION_NAME}_add_options): Remove --out-implib option.
      	(gld_${EMULATION_NAME}_list_options): Likewise.
      	(gld${EMULATION_NAME}_handle_option): Likewise.
      	(gld_${EMULATION_NAME}_finish): Use command_line.out_implib_filename
      	instead of pep_implib_filename.
      	* ld.h (args_type): Declare new out_implib_filename field.
      	* ld.texinfo (--out-implib): Move documentation to arch-independent
      	part and rephrase to apply to ELF targets.
      	* ldexp.c (exp_fold_tree_1): Set ldscript_def field to 1 for symbols
      	defined in linker scripts.
      	* ldlex.h (enum option_values): Declare new OPTION_OUT_IMPLIB
      	enumerator.
      	* lexsup.c (ld_options): Add entry for new --out-implib switch.
      	(parse_args): Handle OPTION_OUT_IMPLIB case.
      
      	ld/testsuite/
      	* ld-elf/elf.exp (Generate empty import library): New test.
      	(Generate import library): Likewise.
      	* ld-elf/implib.s: Likewise.
      	* ld-elf/implib.rd: New file.
      	* ld-elf/empty-implib.out: Likewise
      e1ad2ef6
    • Thomas Preud'homme's avatar
      Add support for ARMv8-M SG veneer creation · 5c5d7627
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* elf32-arm.c (CMSE_PREFIX): Define macro.
      	(elf32_arm_stub_cmse_branch_thumb_only): Define stub sequence.
      	(cmse_branch_thumb_only): Declare stub.
      	(struct elf32_arm_link_hash_table): Define cmse_stub_sec field.
      	(elf32_arm_get_plt_info): Add globals parameter.  Use it to return
      	FALSE if there is no PLT.
      	(arm_type_of_stub): Adapt to new elf32_arm_get_plt_info signature.
      	(elf32_arm_final_link_relocate): Likewise.
      	(elf32_arm_gc_sweep_hook): Likewise.
      	(arm_stub_is_thumb): Add case for arm_stub_cmse_branch_thumb_only.
      	(arm_dedicated_stub_output_section_required): Likewise.
      	(arm_dedicated_stub_output_section_required_alignment): Likewise.
      	(arm_stub_dedicated_output_section_name): Likewise.
      	(arm_stub_dedicated_input_section_ptr): Likewise and remove
      	ATTRIBUTE_UNUSED for htab parameter.
      	(arm_stub_required_alignment): Likewise.
      	(arm_stub_sym_claimed): Likewise.
      	(arm_dedicated_stub_section_padding): Likewise.
      	(cmse_scan): New function.
      	(elf32_arm_size_stubs): Call cmse_scan for ARM M profile targets.
      	Set stub_changed to TRUE if such veneers were created.
      	(elf32_arm_swap_symbol_in): Add detection code for CMSE special
      	symbols.
      
      	include/elf/
      	* arm.h (ARM_GET_SYM_CMSE_SPCL): Define macro.
      	(ARM_SET_SYM_CMSE_SPCL): Likewise.
      
      	ld/
      	* ld.texinfo (Placement of SG veneers): New concept entry.
      	* testsuite/ld-arm/arm-elf.exp
      	(Secure gateway veneers: no .gnu.sgstubs section): New test.
      	(Secure gateway veneers: wrong entry functions): Likewise.
      	(Secure gateway veneers (ARMv8-M Baseline)): Likewise.
      	(Secure gateway veneers (ARMv8-M Mainline)): Likewise.
      
      	ld/testsuite/
      	* ld-arm/cmse-veneers.s: New file.
      	* ld-arm/cmse-veneers.d: Likewise.
      	* ld-arm/cmse-veneers.rd: Likewise.
      	* ld-arm/cmse-veneers.sd: Likewise.
      	* ld-arm/cmse-veneers-no-gnu_sgstubs.out: Likewise.
      	* ld-arm/cmse-veneers-wrong-entryfct.out: Likewise.
      5c5d7627
    • Thomas Preud'homme's avatar
      Support for dedicated stub section with padding · 27af0d1d
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* elf32-arm.c (arm_dedicated_stub_section_padding): New function.
      	(elf32_arm_size_stubs): Declare stub_type in a more outer scope and
      	account for padding for stub section requiring one.
      	(elf32_arm_build_stubs): Add comment to stress the importance of
      	zeroing veneer section content.
      27af0d1d
    • Thomas Preud'homme's avatar
      Support for dedicated output section for some veneer types · ee973971
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* bfd-in.h (bfd_elf32_arm_keep_private_stub_output_sections): Declare
      	bfd hook.
      	* bfd-in2.h: Regenerate.
      	* elf32-arm.c (arm_dedicated_stub_output_section_required): New
      	function.
      	(arm_dedicated_stub_output_section_required_alignment): Likewise.
      	(arm_dedicated_stub_output_section_name): Likewise.
      	(arm_dedicated_stub_input_section_ptr): Likewise.
      	(elf32_arm_create_or_find_stub_sec): Add stub type parameter and
      	function description comment. Add support for dedicated output stub
      	section to given stub types.
      	(elf32_arm_add_stub): Add a stub type parameter and pass it down to
      	elf32_arm_create_or_find_stub_sec.
      	(elf32_arm_create_stub): Pass stub type down to elf32_arm_add_stub.
      	(elf32_arm_size_stubs): Pass stub type when calling
      	elf32_arm_create_or_find_stub_sec for Cortex-A8 erratum veneers.
      	(bfd_elf32_arm_keep_private_stub_output_sections): New function.
      
      	ld/
      	* emultempl/armelf.em (arm_elf_before_allocation): Call
      	bfd_elf32_arm_keep_private_stub_output_sections before generic
      	before_allocation function.
      ee973971
    • Thomas Preud'homme's avatar
      Allow veneers to claim veneered symbols · acb5810a
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* elf32-arm.c (enum elf32_arm_stub_type): New max_stub_type
      	enumerator.
      	(arm_stub_sym_claimed): New function.
      	(elf32_arm_create_stub): Use veneered symbol name and section if
      	veneer needs to claim its symbol, and keep logic unchanged otherwise.
      	(arm_stub_claim_sym): New function.
      	(arm_map_one_stub): Call arm_stub_claim_sym if veneer needs to claim
      	veneered symbol, otherwise create local symbol as before.
      acb5810a
    • Thomas Preud'homme's avatar
      Use getters/setters to access ARM branch type · fb746690
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* elf32-arm.c (elf32_arm_size_stubs): Use new macros
      	ARM_GET_SYM_BRANCH_TYPE and ARM_SET_SYM_BRANCH_TYPE to respectively get
      	and set branch type of a symbol.
      	(bfd_elf32_arm_process_before_allocation): Likewise.
      	(elf32_arm_relocate_section): Likewise and fix identation along the
      	way.
      	(allocate_dynrelocs_for_symbol): Likewise.
      	(elf32_arm_finish_dynamic_symbol): Likewise.
      	(elf32_arm_swap_symbol_in): Likewise.
      	(elf32_arm_swap_symbol_out): Likewise.
      
      	gas/
      	* config/tc-arm.c (arm_adjust_symtab): Use ARM_SET_SYM_BRANCH_TYPE to
      	set branch type of a symbol.
      
      	gdb/
      	* arm-tdep.c (arm_elf_make_msymbol_special): Use
      	ARM_GET_SYM_BRANCH_TYPE to get branch type of a symbol.
      
      	include/elf/
      	* arm.h (ARM_SYM_BRANCH_TYPE): Replace by ...
      	(ARM_GET_SYM_BRANCH_TYPE): ... this ...
      	(ARM_SET_SYM_BRANCH_TYPE): ... and this.
      
      	ld/
              (gld${EMULATION_NAME}_finish): Use ARM_GET_SYM_BRANCH_TYPE to get
              branch type of a symbol.
      
      	opcodes/
              * arm-dis.c (get_sym_code_type): Use ARM_GET_SYM_BRANCH_TYPE to get
              branch type of a symbol.
              (print_insn): Likewise.
      fb746690
    • Thomas Preud'homme's avatar
      Allow stubs without associated input section in ARM backend · 229db3ac
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* bfd-in.h (elf32_arm_size_stubs): Add an output section parameter.
      	* bfd-in2.h: Regenerated.
      	* elf32-arm.c (struct elf32_arm_link_hash_table): Add an output section
      	parameter to add_stub_section callback.
      	(elf32_arm_create_or_find_stub_sec): Get output section from link_sec
      	and pass it down to add_stub_section.
      	(elf32_arm_add_stub): Set section to stub_sec if NULL before using it
      	for error message.
      	(elf32_arm_size_stubs): Add output section parameter to
      	add_stub_section function pointer parameter.
      
      	ld/
              * emultempl/armelf.em (elf32_arm_add_stub_section): Add output_section
              parameter and rename input_section parameter to after_input_section.
              Append input stub section to the output section if after_input_section
              is NULL.
      229db3ac
    • Thomas Preud'homme's avatar
      Factor our stub creation in ARM backend · cf29d7ec
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* elf32-arm.c (elf32_arm_create_stub): New function.
      	(elf32_arm_size_stubs): Use elf32_arm_create_stub for stub creation.
      cf29d7ec
    • Thomas Preud'homme's avatar
      Refactor Cortex-A8 erratum workaround · 68d7ac73
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	* elf32-arm.c (struct elf32_arm_stub_hash_entry): Delete target_addend
      	field and add source_value.
      	(struct a8_erratum_fix): Delete addend field and add target_offset.
      	(stub_hash_newfunc): Initialize source_value field amd remove
      	initialization for target_addend.
      	(arm_build_one_stub): Stop special casing Thumb relocations: promote
      	the else to being always executed, moving the
      	arm_stub_a8_veneer_b_cond specific code in it.  Remove
      	stub_entry->target_addend from points_to computation.
      	(cortex_a8_erratum_scan): Store in a8_erratum_fix structure the offset
      	to target symbol from start of section rather than the offset from the
      	stub address.
      	(elf32_arm_size_stubs): Set stub_entry's source_value and target_value
      	fields from struct a8_erratum_fix's offset and target_offset
      	respectively.
      	(make_branch_to_a8_stub): Rename target variable to loc.  Compute
      	veneered_insn_loc and loc using stub_entry's source_value.
      68d7ac73
    • Thomas Preud'homme's avatar
      Add support for ARMv8-M mainline with DSP ext · a1f52bec
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	bfd/
      	(elf32_arm_merge_eabi_attributes): Add merging logic for
      	Tag_DSP_extension.
      
      	binutils/
      	* readelf.c (display_arm_attribute): Add output for Tag_DSP_extension.
      	(arm_attr_public_tags): Define DSP_extension attribute.
      
      	gas/
      	* config/tc-arm.c (arm_ext_dsp): New feature for Thumb DSP
      	instructions.
      	(arm_extensions): Add dsp extension for ARMv8-M Mainline.
      	(aeabi_set_public_attributes): Memorize the feature bits of the
      	architecture selected for Tag_CPU_arch.  Use it to set
      	Tag_DSP_extension to 1 for ARMv8-M Mainline with DSP extension.
      	(arm_convert_symbolic_attribute): Define Tag_DSP_extension.
      
      	gas/testsuite/
      	* gas/arm/arch7em-bad.d: Rename to ...
      	* gas/arm/arch7em-bad-1.d: This.
      	* gas/arm/arch7em-bad-2.d: New file.
      	* gas/arm/arch7em-bad-3.d: Likewise.
      	* gas/arm/archv8m-main-dsp-1.d: Likewise.
      	* gas/arm/archv8m-main-dsp-2.d: Likewise.
      	* gas/arm/archv8m-main-dsp-3.d: Likewise.
      	* gas/arm/archv8m-main-dsp-4.d: Likewise.
      	* gas/arm/archv8m-main-dsp-5.d: Likewise.
      	* gas/arm/attr-march-armv8m.main.dsp.d: Likewise.
      
      	include/
      	* arm.h (Tag_DSP_extension): Define.
      
      	ld/testsuite/
      	* ld-arm/arm-elf.exp (EABI attribute merging 10 (DSP)): New test.
      	* ld-arm/attr-merge-10b-dsp.s: New file.
      	* ld-arm/attr-merge-10-dsp.attr: Likewise.
      a1f52bec
    • Thomas Preud'homme's avatar
      Control extension availability with all arch bits · 285f7e99
      Thomas Preud'homme authored
      	2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	gas/
      	* config/tc-arm.c
      	(struct arm_option_extension_value_table): Make allowed_archs an array
      	with 2 entries.
      	(ARM_EXT_OPT): Adapt to only fill the first entry of allowed_archs.
      	(ARM_EXT_OPT2): New macro filling the two entries of allowed_archs.
      	(arm_extensions): Use separate entries in allowed_archs when several
      	archs are allowed to use an extension and change ARCH_ANY in
      	ARM_ARCH_NONE in allowed_archs.
      	(arm_parse_extension): Check that, for each allowed_archs entry, all
      	bits are set in the current architecture, ignoring ARM_ANY entries.
      	(s_arm_arch_extension): Likewise.
      
      	include/opcode/
      	* arm.h (ARM_CPU_HAS_FEATURE): Add comment.
      	(ARM_FSET_CPU_SUBSET): Define macro.
      285f7e99
    • Thomas Preud'homme's avatar
      Add support for ARMv8-M security extension · 0b66396c
      Thomas Preud'homme authored
      	2016-03-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      	gas/
      	* config/tc-arm.c (arm_ext_m): Add feature bit ARM_EXT2_V8M_MAIN.
      	(arm_ext_v8m_main): New feature set for bit ARM_EXT2_V8M_MAIN.
      	(arm_ext_v8m_m_only): New feature set for instructions in ARMv8-M not
      	shared with a non M profile architecture.
      	(do_rn): New function.
      	(known_t32_only_insn): Check opcode against arm_ext_v8m_m_only rather
      	than arm_ext_v8m.
      	(v7m_psrs): Add ARMv8-M security extensions new special registers.
      	(insns): Add ARMv8-M Security Extensions instructions.
      	(aeabi_set_public_attributes): Use arm_ext_v8m_m_only instead of
      	arm_ext_v8m_m to decide the profile and the Thumb ISA.
      
      	gas/testsuite/
      	* gas/arm/archv8m-cmse.s: New file.
      	* gas/arm/archv8m-cmse-main.s: Likewise..
      	* gas/arm/archv8m-cmse-msr.s: Likewise.
      	* gas/arm/any-cmse.d: Likewise.
      	* gas/arm/any-cmse-main.d: Likewise.
      	* gas/arm/archv8m-cmse-base.d: Likewise.
      	* gas/arm/archv8m-cmse-msr-base.d: Likewise.
      	* gas/arm/archv8m-cmse-main-1.d: Likewise.
      	* gas/arm/archv8m-cmse-main-2.d: Likewise.
      	* gas/arm/archv8m-cmse-msr-main.d: Likewise.
      
      	include/opcode/
      	* arm.h (ARM_EXT2_V8M_MAIN): new feature bit.
      	(ARM_AEXT2_V8M_MAIN): New architecture extension feature set.
      	(ARM_ARCH_V8M_MAIN): Use ARM_AEXT2_V8M_MAIN instead of ARM_AEXT2_V8M
      	for the high core bits.
      
      	opcodes/
      	* arm-dis.c (coprocessor_opcodes): Add entries for VFP ARMv8-M
      	Mainline Security Extensions instructions.
      	(thumb_opcodes): Add entries for narrow ARMv8-M Security
      	Extensions instructions.
      	(thumb32_opcodes): Add entries for wide ARMv8-M Security Extensions
      	instructions.
      	(psr_name): Add new MSP_NS and PSP_NS ARMv8-M Security Extensions
      	special registers.
      0b66396c
    • Thomas Preud'homme's avatar
      Revert "Add support for ARMv8-M security extension" · 5abbc51a
      Thomas Preud'homme authored
      This reverts commit d11ecca7.
      5abbc51a
    • Thomas Preud'homme's avatar
      Revert "Control extension availability with all arch bits" · c48c1911
      Thomas Preud'homme authored
      This reverts commit 96f57b18.
      c48c1911
    • Thomas Preud'homme's avatar
      Revert "Add support for ARMv8-M mainline with DSP ext" · 5127abd3
      Thomas Preud'homme authored
      This reverts commit 764d7ca7.
      5127abd3
    • Andre Simoes Dias Vieira's avatar
      [ARM] Add support for Cortex-R8 · 60993eeb
      Andre Simoes Dias Vieira authored
      2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      gas/
        * config/tc-arm.c (arm_cpus): Add cortex-r8.
        * doc/c-arm.texi: Add cortex-r8.
      60993eeb
    • Thomas Preud'homme's avatar
      Add missing ChangeLog.arm entries · c39f653f
      Thomas Preud'homme authored
      c39f653f
    • Thomas Preud'homme's avatar
      Merge FSF binutils-2_26-branch · 753be8b6
      Thomas Preud'homme authored
      Merge changes made in FSF binutils-2_26-branch since last GCC ARM
      embedded release.
      753be8b6
  2. 10 Mar, 2016 1 commit
  3. 09 Mar, 2016 3 commits
    • H.J. Lu's avatar
      Treat common symbol in executable as definition · 1134e6ce
      H.J. Lu authored
      Common symbol in executable is a definition, which overrides definition
      from shared objects.  When linker sees a new definition from a shared
      object, the new dynamic definition should be overridden by the previous
      common symbol in executable.
      
      Backport from master
      
      bfd/
      
      	PR ld/19579
      	* elflink.c (_bfd_elf_merge_symbol): Group common symbol checking
      	together.
      
      	* elflink.c (_bfd_elf_merge_symbol): Treat common symbol in
      	executable as definition if the new definition comes from a
      	shared library.
      
      ld/
      
      	PR ld/19579
      	* testsuite/ld-elf/pr19579a.c: New file.
      	* testsuite/ld-elf/pr19579b.c: Likewise.
      	* testsuite/ld-elf/shared.exp: Run PR ld/19579 test.
      1134e6ce
    • Alan Modra's avatar
      Allow zero length archive elements · 343a405c
      Alan Modra authored
      bfd/
      	PR binutils/19775
      	* archive.c (bfd_generic_openr_next_archived_file): Allow zero
      	length elements in the archive.
      	* coff-alpha.c (alpha_ecoff_openr_next_archived_file): Likewise.
      
      binutils/
      	PR binutils/19775
      	* testsuite/binutils-all/ar.exp (proc empty_archive): New proc.
      	Run the new proc.
      	* testsuite/binutils-all/empty: New, empty, file.
      343a405c
    • GDB Administrator's avatar
      Automatic date update in version.in · a839b40a
      GDB Administrator authored
      a839b40a
  4. 08 Mar, 2016 1 commit
  5. 07 Mar, 2016 1 commit
  6. 06 Mar, 2016 1 commit
  7. 05 Mar, 2016 1 commit
  8. 04 Mar, 2016 2 commits
    • H.J. Lu's avatar
      Speedup orphan placement for relocatable link · cb09f0f5
      H.J. Lu authored
      Since there is no need to place output sections in specific order for
      relocatable link, we can skip merging flags of other input sections.
      
      Backport from master
      
      	PR ld/19739
      	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
      	merge flags of other input sections for relocatable link.
      	* emultempl/mmo.em (mmo_place_orphan): Likewise.
      	* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
      	* emultempl/pep.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
      cb09f0f5
    • GDB Administrator's avatar
      Automatic date update in version.in · 950bdc7c
      GDB Administrator authored
      950bdc7c
  9. 03 Mar, 2016 1 commit
  10. 02 Mar, 2016 1 commit
  11. 01 Mar, 2016 3 commits
  12. 29 Feb, 2016 1 commit
  13. 28 Feb, 2016 1 commit
  14. 27 Feb, 2016 1 commit
  15. 26 Feb, 2016 1 commit
    • H.J. Lu's avatar
      Update symbol version for symbol from linker script · 544ddf93
      H.J. Lu authored
      We need to update symbol version for symbols from linker script.
      
      Backport from master
      
      bfd/
      
      	PR ld/19698
      	* elflink.c (bfd_elf_record_link_assignment): Set versioned if
      	symbol version is unknown.
      
      ld/
      
      	PR ld/19698
      	* testsuite/ld-elf/pr19698.d: New file.
      	* testsuite/ld-elf/pr19698.s: Likewise.
      	* testsuite/ld-elf/pr19698.t: Likewise.
      544ddf93