Commit Graph

87900 Commits

Author SHA1 Message Date
Claudiu Zissulescu 05bbf0164a TLS: DTPOFF can accept offsets, stored into addendum. Remove the need of base
gas/ChangeLog:

2016-07-05  Claudiu Zissulescu  <claziss@synopsys.com>

  * config/tc-arc.c (arc_reloc_op_tag): Allow complex ops for dtpoff.
  (tc_gen_reloc): Remove passing DTPOFF base info into reloc addendum as it is
  no longer needed.

Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
2016-07-11 15:24:46 +02:00
Cupertino Miranda b9316f5985 Enable relocation overflow messages by default.
bfd/ChangeLog:

2016-06-23  Cupertino Miranda  <cmiranda@synopsys.com>
        elf32-arc.c: made PR_DEBUG always defined.

Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
2016-07-11 15:24:38 +02:00
Cupertino Miranda 08759e0fc8 Fixes done to TLS.
TLS relocations did not support multiple TLS modes for the same
symbol in a single object file.
Refactored how GOT and TLS is implemented. Removed code duplications between
local and global symbols conditioning.

bfd/ChangeLog:

2016-06-14  Cupertino Miranda  <cmiranda@synopsys.com>
  * arc-got.h: Moved got related structures from elf32-arc.c to
    this file. More precisely, tls_type_e, tls_got_entries, got_entry.
  * (arc_get_local_got_ents,
     got_entry_for_type,
     new_got_entry_to_list,
     tls_type_for_reloc,
     symbol_has_entry_of_type,
     get_got_entry_list_for_symbol,
     arc_got_entry_type_for_reloc,
     ADD_SYMBOL_REF_SEC_AND_RELOC,
     arc_fill_got_info_for_reloc,
     relocate_fix_got_relocs_for_got_info,
     create_got_dynrelocs_for_single_entry,
     create_got_dynrelocs_for_got_info): Added to file.
  * elf32-arc.c: Removed GOT & TLS related structs and functions to
                     arc-got.h.

Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
2016-07-11 15:24:35 +02:00
GDB Administrator 36897971c8 Automatic date update in version.in 2016-07-11 00:00:19 +00:00
GDB Administrator fde8e81925 Automatic date update in version.in 2016-07-10 00:00:20 +00:00
Alan Modra 32a0481fb1 PR20337, Objdump makes poor choice of symbols
binutils/
	PR binutils/20337
	* objdump.c (compare_symbols): For ELF, sort same value/type
	symbols according to size.
ld/
	* testsuite/ld-powerpc/elfv2exe.d: Update.
2016-07-09 16:53:33 +09:30
GDB Administrator 1157523231 Automatic date update in version.in 2016-07-09 00:00:21 +00:00
jamesbowman 458653a9b2 FT32: Correct 32-bit reloc for BFD_RELOC_32
The reloc for BFD_RELOC_32 was using the the 20-bit. This hack causes
problems in gdb.  Fixed it to be the proper 32-bit reloc, R_FT32_32.

bfd/ChangeLog:

	* elf32-ft32.c (ft32_reloc_map): Use R_FT32_32 for BFD_RELOC_32.
2016-07-08 11:53:31 -07:00
jamesbowman 2f831b9a2b FT32: adjust disassembly opcode match fields
Tighten up the opcode match fields for conditional jump and call
instructions so more general opcodes don't match them in disassembly.

opcodes/ChangeLog:

	* opcodes/ft32-opc.c (ft32_opc_info): Correct mask for "callc"
	and "jmpc".
2016-07-08 11:38:35 -07:00
Maciej W. Rozycki b8bca85b33 MIPS/GAS: Remove extraneous `install_insn' call from `append_insn'
Complement:

commit 1e91584932
Author: Richard Sandiford <rdsandiford@googlemail.com>
Date:   Wed Mar 9 09:17:02 2005 +0000

<https://sourceware.org/ml/binutils/2005-03/msg00217.html>, ("Rework
MIPS nop-insertion code, add -mfix-vr4130 [5/11]"), and remove a call to
`install_insn' from `append_insn', which as from that change has become
redundant.  This is because such a call, to place an instruction's bit
pattern in output, is already made from `move_insn', called from
`add_relaxed_insn' or `add_fixed_insn' as appropriate, either of which
now always is and has to be made from `append_insn' before the repeated
call to `install_insn' is made.  Previously the place where this second
invocation is made was the only one where the output stream was updated,
although the update was made inline rather than with a function call.

Remove the repeated call then, to reclaim some performance.

	gas/
	* config/tc-mips.c (append_insn): Remove extraneous
	`install_insn' call.
2016-07-08 14:39:07 +01:00
GDB Administrator fc1b27795c Automatic date update in version.in 2016-07-08 00:00:20 +00:00
Walfred Tedeschi 41c977aa5c [obv] Fix broken build on Fedora 23.
Compiler complains about possible utilization of "symbol" which is member
of lang_def.
Initialization was added.

2016-07-07  Walfred Tedeschi  <walfred.tedeschi@intel.com>

gdb/ChangeLog:

	* cp-namespace.c (cp_lookup_bare_symbol): Initialize
	lang_this.symbol.
2016-07-07 19:07:36 +02:00
Walfred Tedeschi 4f19a0e6b4 Fix of default lookup for "this" symbol.
Using the default lookup for the symbol "this" might lead to segmentation
fault in GDB.
Some languages, e.g. Fortran, use as default lookup routine the C++
routines.
For those languages "this" can be the instance of a class or even the
definition of a class.
When an instance of a class having the name "this" is evaluated
in GDB a segmentation fault was observed.

As example of the issue take into consideration the Fortran code:
  type foo
    real :: a
    type(bar) :: x
    character*7 :: b
  end type foo
  type(foo) :: this

Issue appears when evaluating the variable "this" in GDB.

Within the language definition structure there is a field that represents
the name of the special symbol used for the C++ "this" for the language
being described.
The fix presented here takes into account the aforementioned field. In the
case the aforementioned field is NULL "this" is not represented in the
language described and the lookup should return a null_block_symbol.

Tests: Performed tests with gfortran and ifort.

Reviewed:
https://sourceware.org/ml/gdb-patches/2016-04/msg00068.html

After the commited patch:
https://sourceware.org/ml/gdb-patches/2016-06/msg00364.html
Patch can be applied.

2016-06-16  Walfred Tedeschi  <walfred.tedeschi@intel.com>

gdb/ChangeLog:

	* cp-namespace.c (cp_lookup_bare_symbol): Use language passed as
	parameter to look for the symbol "this".

gdb/testsuite/ChangeLog:

	* gdb.fortran/derived-types.exp (result_line, result_line_2):
	New variables.
	(print this%a, print this%b, print this): New tests.
	* gdb.fortran/derived-types.f90 (this): New object and
	initialization.
2016-07-07 17:33:05 +02:00
jamesbowman 3a5ce9503e FT32 linker script cleanup
Fix a typo (__PMSIZE was written as __PMSIZE_) and add section alignment
for DATA and BSS.

ld/ChangeLog:

  * scripttempl/ft32.sc (__PMSIZE): Correct __PMSIZE_.
    (DATA): add ALIGN.
    (BSS): add ALIGN
2016-07-06 18:58:10 -07:00
GDB Administrator 819490e217 Automatic date update in version.in 2016-07-07 00:00:21 +00:00
Simon Marchi 986cf455bf gdb.ada/arraydim.exp: Fix directory layout
I forgot to fix this one in the previous commit.

gdb/testsuite/ChangeLog:

	* gdb.ada/arraydim.exp: Remove extra directory level in build
	directory.
2016-07-06 10:18:10 -04:00
Simon Marchi f0464b231f Remove extra output directory level for Ada tests
The output of Ada tests create a layout where the test name
("formatted_ref" in this example) appears twice:

outputs
└── gdb.ada
    └── formatted_ref
        └── formatted_ref
            ├── b~formatted_ref.adb
            ├── b~formatted_ref.ads
            ├── b~formatted_ref.ali
            ├── b~formatted_ref.o
            ├── defs.ali
            ├── defs.o
            ├── formatted_ref
            ├── formatted_ref.ali
            └── formatted_ref.o

This causes a problem when testing with the native-gdbserver board, when
the binary has the same name as the test.  When gdb_remote_download is
called to upload the compiled binary, the implementation for
native-gdbserver copies it in the standard output directory (in
outputs/gdb.ada/formatted_ref).  However, there is already a directory
named formatted_ref in there, so the copy fails and gdbserver isn't able
to load the binary.

This patch bypasses the problem by removing the extra directory level.
The compiled binary will already be in its final location in the
standard output directory, so the copy will effectively be a no-op.

gdb/testsuite/ChangeLog:

	* lib/ada.exp: Remove extra directory level in build directory.
	* gdb.ada/cond_lang.exp: Likewise.
	* gdb.ada/exec_changed.exp: Likewise.
	* gdb.ada/lang_switch.exp: Likewise.
2016-07-06 10:03:15 -04:00
John Baldwin fb36c6bf0a Remove extraneous parentheses.
gdb/ChangeLog:

	* h8300-tdep.c (h8300_print_register): Remove extraneous parentheses.
2016-07-06 06:09:40 -07:00
John Baldwin db297a6501 Use unsigned integer constant with left shifts.
This avoids undefined behavior.

gdb/ChangeLog:

	* ada-lang.c (ada_unpack_from_contents): Use unsigned constants with
	left shifts.
2016-07-06 06:09:19 -07:00
John Baldwin 9ca107148e Set uses_fp for frames with a valid FP register explicitly.
Since CORE_ADDR is unsigned, the saved FP register is always greater than
or equal to zero.  Replace the comparison by explicitly setting uses_fp to
1 for frames with a valid FP register.

gdb/ChangeLog:

	* sh64-tdep.c (sh64_analyze_prologue): Set "uses_fp" when setting
	the MEDIA_FP_REGNUM register.
2016-07-06 06:08:43 -07:00
John Baldwin d66ff635be Remove check for negative size.
Since CORE_ADDR is unsigned, this value can never be negative.

gdb/ChangeLog:

	* score-tdep.c (score7_malloc_and_get_memblock): Remove check for
	negative size.
2016-07-06 06:08:04 -07:00
John Baldwin ee950322ca Use 'ptid_t' instead of 'ptid' for fbsd_next_vfork_done's return type.
'ptid' compiles in C++, but not C.

gdb/ChangeLog:
	* fbsd-nat.c (fbsd_is_vfork_done_pending): Fix return type.
2016-07-06 05:57:41 -07:00
Yao Qi 1040b979bc [ARM] Fix endless recursion on calculating CPRC candidate
When GDB determines whether type T can be part of candidate for
passing and returning in VFP registers, it calls
arm_vfp_cprc_sub_candidate recursively.  However, if type T has
self-reference field, like,

class C
{
  static C s;
};

arm_vfp_cprc_sub_candidate won't return.  This fix is to skip calling
arm_vfp_cprc_sub_candidate if the field is static.

gdb:

2016-07-06  Yao Qi  <yao.qi@linaro.org>

	* arm-tdep.c (arm_vfp_cprc_sub_candidate): Don't call
	arm_vfp_cprc_sub_candidate for static field.
2016-07-06 08:24:35 +01:00
Manish Goregaokar 42d940118a
Allow subscripting raw pointers
This will be useful for dealing with vectors; regardless of our final solution
for the Index trait.

2016-07-06  Manish Goregaokar  <manish@mozilla.com>

gdb/ChangeLog:
    * rust-lang.c (rust_subscript): Allow subscripting pointers

gdb/testsuite/ChangeLog:
    * simple.rs: Add test for raw pointer subscripting
    * simple.exp: Add test expectations
2016-07-06 10:56:21 +05:30
GDB Administrator 6949d8a719 Automatic date update in version.in 2016-07-06 00:00:20 +00:00
H.J. Lu 29d7478bc6 Add -flto to PR ld/20321 test
Before GCC 4.9, -flto is required for final LTO link.  Add -flto to PR
ld/20321 test to support older versions of GCC.

	* testsuite/ld-plugin/lto.exp: Add -flto to PR ld/20321 test.
2016-07-05 07:35:52 -07:00
Yao Qi 647c264cb2 Fix fail in gdb.mi/mi-reverse.exp
Commit 38b022b445 adds "method" and
"format" fields in =record-started, but doesn't update test case
gdb.mi/mi-reverse.exp, so it causes the fail like this,

PASS: gdb.mi/mi-reverse.exp: mi runto main
Expecting: ^(-interpreter-exec console record[^M
]+)?(=record-started,thread-group="i1"^M
\^done[^M
]+[(]gdb[)] ^M
[ ]*)
-interpreter-exec console record^M
=record-started,thread-group="i1",method="full"^M
^done^M
(gdb) ^M
FAIL: gdb.mi/mi-reverse.exp: Turn on process record

and regression was found by buildbot too
https://sourceware.org/ml/gdb-testers/2016-q2/msg04492.html

gdb/testsuite:

2016-07-05  Yao Qi  <yao.qi@linaro.org>

	* gdb.mi/mi-reverse.exp: Match =record-started output.
2016-07-05 14:48:07 +01:00
Andre Vieria d5a67c0290 [ARM] Purecode compatible long branch veneer for M-profile targets with MOVW.
2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>

	* elf32-arm.c (THUMB32_MOVT): New veneer macro.
	(THUMB32_MOVW): Likewise.
	(elf32_arm_stub_long_branch_thumb2_only_pure): New.
	(DEF_STUBS): Define long_branch_thumb2_only_pure.
	(arm_stub_is_thumb): Add new veneer stub.
	(arm_type_of_stub): Use new veneer.
	(arm_stub_required_alignment): Add new veneer.

2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>

	* testsuite/ld-arm/farcall-thumb2-purecode.d: New test result.
	* testsuite/ld-arm/farcall-thumb2-purecode.s: New test.
	* testsuite/ld-arm/arm-elf.exp: Run it.
2016-07-05 11:39:06 +01:00
Andre Vieria f0728ee368 [ARM] Change noread to purecode.
bfd/ChangeLog
2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>

        * bfd-in2.h (SEC_ELF_NOREAD): Rename to ...
          (SEC_ELF_PURECODE): ... this.
        * elf32-arm.c (elf32_arm_post_process_headers): Rename SEC_ELF_NOREAD
          to SEC_ELF_NOREAD.
          (elf32_arm_fake_sections): Likewise.
          (elf_32_arm_section_flags): Likewise.
          (elf_32_arm_lookup_section_flags): Likewise.
        * section.c (SEC_ELF_NOREAD): Rename to ...
          (SEC_ELF_PURECODE): ... this.

binutils/ChangeLog
2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>

        * objdump.c (dump_section_header): Rename SEC_ELF_NOREAD
          to SEC_ELF_NOREAD.
        * readelf.c (get_elf_section_flags): Rename ARM_NOREAD to
          ARM_PURECODE and SHF_ARM_NOREAD to SHF_ARM_PURECODE.
          (process_section_headers): Rename noread to purecode.

        * section.c (SEC_ELF_NOREAD): Rename to ...
          (SEC_ELF_PURECODE): ... this.

include/ChangeLog
2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>

        * elf/arm.h (SHF_ARM_NOREAD): Rename to ...
          (SHF_ARM_PURECODE): ... this.

ld/ChangeLog
2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>

        * testsuite/ld-arm/arm_noread.ld: Renamed to ...
          testsuite/ld-arm/arm_purecode.ld: ... this, and replaced
          all noread's by purecode.
2016-07-05 11:28:46 +01:00
Jan Beulich 1753ed6811 ld: track linker-definedness of symbols
Keep "lineno" as zero while not processing any script, and use it being
zero to set the "linker_def" field to true.
2016-07-05 11:36:08 +02:00
Jan Beulich 33d0ab9548 x86: fix register check in check_qword_reg()
A missing 'r' (or wrong 'e') register prefix needs to be complained
about if the template allows for a 64-bit register, not a 32-bit one.
I assume this was a copy-and-paste type of mistake
(from check_long_reg()).
2016-07-05 11:14:51 +02:00
Jan Kratochvil 13cdc2afb7 babeltrace compilation regression
Since:
	commit 2d681be471
	Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
	Date:   Wed Apr 27 15:52:16 2016 +0200
	    Avoid non-C++-enabled babeltrace versions
tested with:
	libbabeltrace-devel-1.2.4-4.fc24.x86_64
	libbabeltrace-devel-1.4.0-2.fc25.x86_64
it can no longer build due to:
	configure:16435: gcc -o conftest -m64 -g3 -pipe -Wall -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -fno-diagno
stics-show-caret  -Werror  -static-libstdc++ -static-libgcc  conftest.c -ldl -ldl -lncurses -lm -ldl  -lbabeltrace -lbabeltrace-ctf >&5
	conftest.c: In function 'main':
	conftest.c:208:7: error: 'pos' is a pointer; did you mean to use '->'?

gdb/ChangeLog
2016-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure: Regenerate.
	* configure.ac (HAVE_LIBBABELTRACE): Fix pos variable dereference.
2016-07-05 10:48:25 +02:00
GDB Administrator 0a2f0f5d5b Automatic date update in version.in 2016-07-05 00:00:21 +00:00
H.J. Lu c3e1c28ebf Warn and return for duplicated plugin
If a plugin has been loaded already, we should warn and return, instead
of adding it on the plugin list.

	PR ld/20321
	* plugin.c (plugin_opt_plugin): Warn and return if plugin has
	been loaded already.
	* testsuite/ld-plugin/lto.exp: Run PR ld/20321 test.
	* testsuite/ld-plugin/pr20321.c: New file.
2016-07-04 08:55:20 -07:00
Nick Clifton 1dc8bf195d Allow the flash and ram memory region sizes to be specified in the default FT32 linker script.
* scripttempl/ft32.sc (__PMSIZE_): If not defined, set to 256K.
	(__RAMSIZE): If not defined, set to 64K.
	(MEMORY): Set the flash region size to __PMSIZE and the ram region
	size to __RAMSIZE.
2016-07-04 15:44:10 +01:00
GDB Administrator bb44634d9b Automatic date update in version.in 2016-07-04 00:00:15 +00:00
GDB Administrator 1ceb37444e Automatic date update in version.in 2016-07-03 00:00:21 +00:00
Maciej W. Rozycki fcedb9f3ca MIPS/GAS/testsuite: Remove remnants of a.out/ECOFF support
Complement:

commit 16e5e222b6
Author: Richard Sandiford <rdsandiford@googlemail.com>
Date:   Sat Jun 22 16:57:42 2013 +0000

<https://sourceware.org/ml/binutils/2013-06/msg00195.html>, ("Make
gas/mips/mips.exp ELF-only"), and remove the remaining stale ECOFF test
dumps and pieces of a.out/ECOFF support in relocation match patterns.

	gas/
	* testsuite/gas/mips/ecoff@ld.d: Remove test.
	* testsuite/gas/mips/ecoff@ld-forward.d: Remove test.
	* testsuite/gas/mips/ecoff@ld-zero-3.d: Remove test.
	* testsuite/gas/mips/ecoff@sd.d: Remove test.
	* testsuite/gas/mips/ecoff@sd-forward.d: Remove test.
	* testsuite/gas/mips/beq.d: Remove a.out and ECOFF support from
	reloc patterns.
	* testsuite/gas/mips/mipsr6@beq.d: Likewise.
	* testsuite/gas/mips/bge.d: Likewise.
	* testsuite/gas/mips/mipsr6@bge.d: Likewise.
	* testsuite/gas/mips/bgeu.d: Likewise.
	* testsuite/gas/mips/mipsr6@bgeu.d: Likewise.
	* testsuite/gas/mips/blt.d: Likewise.
	* testsuite/gas/mips/mipsr6@blt.d: Likewise.
	* testsuite/gas/mips/bltu.d: Likewise.
	* testsuite/gas/mips/mipsr6@bltu.d: Likewise.
	* testsuite/gas/mips/branch-likely.d: Likewise.
	* testsuite/gas/mips/la.d: Likewise.
	* testsuite/gas/mips/lb.d: Likewise.
	* testsuite/gas/mips/lifloat.d: Likewise.
	* testsuite/gas/mips/sb.d: Likewise.
	* testsuite/gas/mips/uld.d: Likewise.
	* testsuite/gas/mips/ulh.d: Likewise.
	* testsuite/gas/mips/ulw.d: Likewise.
	* testsuite/gas/mips/usd.d: Likewise.
	* testsuite/gas/mips/ush.d: Likewise.
	* testsuite/gas/mips/usw.d: Likewise.
2016-07-02 23:41:31 +01:00
Maciej W. Rozycki 6f50d61158 MIPS/LD/testsuite: Resurrect `branch-misc-2' test
Revert:

commit c9c1e416d7
Author: Alexandre Oliva <aoliva@redhat.com>
Date:   Thu Dec 12 04:39:44 2002 +0000

<https://sourceware.org/ml/binutils/2002-11/msg00657.html>, ("mips:
branches to external labels are broken"), complementing:

commit bad36eacda
Author: Daniel Jacobowitz <drow@false.org>
Date:   Wed Nov 23 14:04:18 2005 +0000

<https://sourceware.org/ml/binutils/2005-11/msg00324.html>,
("R_MIPS_PC16, again").

	ld/
	* testsuite/ld-mips-elf/branch-misc-2.d: New test.
	* testsuite/ld-mips-elf/mips-elf.exp: Run it.
2016-07-02 23:16:41 +01:00
Maciej W. Rozycki 00437d3b6f MIPS/GAS/testsuite: Split `branch-misc-2' tests into two
Move `branch-misc-2' tests for non locally-defined-global symbols into
separate files.  These tests have been introduced with:

commit 6f171daac9
Author: Alexandre Oliva <aoliva@redhat.com>
Date:   Thu Dec 12 04:40:22 2002 +0000

<https://sourceware.org/ml/binutils/2002-11/msg00631.html>, ("mips:
branches to external labels are broken"), and:

commit d17b874b6c
Author: Alexandre Oliva <aoliva@redhat.com>
Date:   Wed Mar 12 23:07:22 2003 +0000

<https://sourceware.org/ml/binutils/2003-03/msg00136.html>, ("On
resolving the MIPS gas branch reloc issue"), while the test case served
a different purpose.  With the original intent of the test case brought
back with:

commit bad36eacda
Author: Daniel Jacobowitz <drow@false.org>
Date:   Wed Nov 23 14:04:18 2005 +0000

<https://sourceware.org/ml/binutils/2005-11/msg00324.html>,
("R_MIPS_PC16, again"), these stand in the way for linker testing.

	gas/
	* testsuite/gas/mips/branch-misc-2.s: Move non
	locally-defined-global symbol tests...
	* testsuite/gas/mips/branch-misc-5.s: ... to this new test.
	* testsuite/gas/mips/branch-misc-2.d: Update accordingly.
	* testsuite/gas/mips/branch-misc-2-64.d: Likewise.
	* testsuite/gas/mips/branch-misc-2pic.d: Likewise.
	* testsuite/gas/mips/branch-misc-2pic-64.d: Likewise.
	* testsuite/gas/mips/mipsr6@branch-misc-2-64.d: Likewise.
	* testsuite/gas/mips/mipsr6@branch-misc-2pic-64.d: Likewise.
	* testsuite/gas/mips/micromips@branch-misc-2.d: Likewise.
	* testsuite/gas/mips/micromips@branch-misc-2-64.d: Likewise.
	* testsuite/gas/mips/micromips@branch-misc-2pic.d: Likewise.
	* testsuite/gas/mips/micromips@branch-misc-2pic-64.d: Likewise.
	* testsuite/gas/mips/branch-misc-5.d: New test.
	* testsuite/gas/mips/branch-misc-5pic.d: New test.
	* testsuite/gas/mips/branch-misc-5-64.d: New test.
	* testsuite/gas/mips/branch-misc-5pic-64.d: New test.
	* testsuite/gas/mips/mipsr6@branch-misc-5-64.d: New test.
	* testsuite/gas/mips/mipsr6@branch-misc-5pic-64.d: New test.
	* testsuite/gas/mips/micromips@branch-misc-5.d: New test.
	* testsuite/gas/mips/micromips@branch-misc-5pic.d: New test.
	* testsuite/gas/mips/micromips@branch-misc-5-64.d: New test.
	* testsuite/gas/mips/micromips@branch-misc-5pic-64.d: New test.
	* testsuite/gas/mips/mips.exp: Run the new tests.
2016-07-02 23:10:10 +01:00
Maciej W. Rozycki f26c9c2eaf MIPS/GAS/testsuite: Reenable disabled external BEQ tests
Complement:

commit bad36eacda
Author: Daniel Jacobowitz <drow@false.org>
Date:   Wed Nov 23 14:04:18 2005 +0000

<https://sourceware.org/ml/binutils/2005-11/msg00324.html>,
("R_MIPS_PC16, again"), and reenable external BEQ tests, the remaining
subset missed from the set of branch tests previously disabled with:

commit 6f171daac9
Author: Alexandre Oliva <aoliva@redhat.com>
Date:   Thu Dec 12 04:40:22 2002 +0000

<https://sourceware.org/ml/binutils/2002-11/msg00631.html>, ("mips:
branches to external labels are broken").

	gas/
	* testsuite/gas/mips/beq.s: Uncomment branches to undefined
	symbols.
	* testsuite/gas/mips/beq.d: Update accordingly.
	* testsuite/gas/mips/mipsr6@beq.d: Likewise.
	* testsuite/gas/mips/micromips@beq.d: Likewise.
2016-07-02 22:38:06 +01:00
Maciej W. Rozycki d7f20d660a MIPS/GAS/testsuite: Restrict 64-bit `branch-mips' tests to NewABI targets
... removing numerous `mips-sgi-irix5' failures.

	gas/
	* testsuite/gas/mips/mips.exp: Restrict 64-bit `branch-mips'
	tests to NewABI targets.
2016-07-02 22:15:43 +01:00
Maciej W. Rozycki e51af1571f MIPS/GAS/testsuite: Group `branch-misc' tests together
gas/
	* testsuite/gas/mips/mips.exp: Group `branch-misc' tests
	together.
2016-07-02 22:11:36 +01:00
GDB Administrator 9361a47a03 Automatic date update in version.in 2016-07-02 00:00:22 +00:00
Don Breazeal 09c98b448f Optimize memory_xfer_partial for remote
Some analysis we did here showed that increasing the cap on the
transfer size in target.c:memory_xfer_partial could give 20% or more
improvement in remote load across JTAG.  Transfer sizes were capped
to 4K bytes because of performance problems encountered with the
restore command, documented here:

https://sourceware.org/ml/gdb-patches/2013-07/msg00611.html

and in commit 67c059c29e ("Improve performance of large restore
commands").

The 4K cap was introduced because in a case where the restore command
requested a 100MB transfer, memory_xfer_partial would repeatedy
allocate and copy an entire 100MB buffer in order to properly handle
breakpoint shadow instructions, even though memory_xfer_partial would
actually only write a small portion of the buffer contents.

A couple of alternative solutions were suggested:
* change the algorithm for handling the breakpoint shadow instructions
* throttle the transfer size up or down based on the previous actual
  transfer size

I tried implementing the throttling approach, and my implementation
reduced the performance in some cases.

This patch implements a new target function that returns that target's
limit on memory transfer size.  It defaults to ULONGEST_MAX bytes,
because for native targets there is no marshaling and thus no limit is
needed.  For remote targets it uses get_memory_write_packet_size.

gdb/ChangeLog:

	* remote.c (remote_get_memory_xfer_limit): New function.
	* target-delegates.c: Regenerate.
	* target.c (memory_xfer_partial): Call
	target_ops.to_get_memory_xfer_limit.
	* target.h (struct target_ops)
	<to_get_memory_xfer_limit>: New member.
2016-07-01 11:13:48 -07:00
Szabolcs Nagy 93d8990cba [AArch64] Fix +nofp16 handling
Feature flag handling was not perfect, +nofp16 disabled fp
instructions too.

New feature flag macros were added to check features with multiple
bits set (matters for FP_F16 and SIMD_F16 opcode feature tests).
The unused AARCH64_OPCODE_HAS_FEATURE was removed, all checks should
use one of the AARCH64_CPU_HAS_* macros.  AARCH64_CPU_HAS_FEATURE
now checks all feature bits.

The aarch64_features table now contains the dependencies as
a separate field (so when the feature is enabled all dependencies
are enabled and when it is disabled everything that depends on it
is disabled).

Note that armv8-a+foo+nofoo is not equivalent to armv8-a if
+foo turns on dependent features that nofoo does not turn off.

gas/
	* config/tc-aarch64.c (struct aarch64_option_cpu_value_table): Add
	require field.
	(aarch64_features): Initialize require fields.
	(aarch64_parse_features): Handle dependencies.
	(aarch64_feature_enable_set, aarch64_feature_disable_set): New.
	(md_assemble): Use AARCH64_CPU_HAS_ALL_FEATURES.
	* testsuite/gas/aarch64/illegal-nofp16.s: New.
	* testsuite/gas/aarch64/illegal-nofp16.l: New.
	* testsuite/gas/aarch64/illegal-nofp16.d: New.

include/
	* opcode/aarch64.h (AARCH64_CPU_HAS_ALL_FEATURES): New.
	(AARCH64_CPU_HAS_ANY_FEATURES): New.
	(AARCH64_CPU_HAS_FEATURE): Define as AARCH64_CPU_HAS_ALL_FEATURES.
	(AARCH64_OPCODE_HAS_FEATURE): Remove.
2016-07-01 16:50:59 +01:00
John Baldwin 2c5c2a3321 Fake VFORK_DONE events when following only the parent after a vfork.
FreeBSD does not currently report a ptrace event for a parent process
after it resumes due to the child exiting the shared memory region after
a vfork.  Take the same approach used in linux-nat.c in this case of
sleeping for a while and then reporting a fake VFORK_DONE event.

gdb/ChangeLog:

	* fbsd-nat.c (struct fbsd_fork_child_info): Rename to ...
	(struct fbsd_fork_info): ... this.
	(struct fbsd_fork_info) <child>: Rename to ...
	(struct fbsd_fork_info) <ptid>: ... this.
	(fbsd_pending_children): Update type.
	(fbsd_remember_child): Update type and field name.
	(fbsd_is_child_pending): Likewise.
	(fbsd_pending_vfork_done): New variable.
	(fbsd_is_vfork_done_pending): New function.
	(fbsd_next_vfork_done): New function.
	(fbsd_resume): Don't resume processes with a pending vfork done
	event.
	(fbsd_wait): Report pending vfork done events.
	(fbsd_follow_fork): Delay and record a pending vfork done event
	for a vfork parent when detaching the child.
2016-07-01 08:35:33 -07:00
John Baldwin 8607ea632c Move fbsd_resume and related functions below fork following helper code.
gdb/ChangeLog:

	* fbsd-nat.c (super_resume): Move earlier next to "super_wait".
	(resume_one_thread_cb): Move below fork following helper code.
	(resume_all_threads_cb): Likewise.
	(fbsd_resume): Likewise.
2016-07-01 08:33:19 -07:00
John Baldwin bb2a62e694 Honor detach-on-fork on FreeBSD.
Only detach from the new child process in the follow fork callback
if detach_fork is true.

gdb/ChangeLog:

	* fbsd-nat.c (fbsd_follow_fork): Only detach child if
	"detach_fork" is true.
2016-07-01 08:32:38 -07:00
Thomas Preud'homme 5e866f5aee Fix Thumb-2 BL detection
2016-07-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>

bfd/
	* elf32-arm.c (using_thumb2_bl): New function.
	(arm_type_of_stub): Declare thumb2 variable together and change type
	to bfd_boolean.  Use using_thumb2_bl () to determine whether
	THM_MAX_FWD_BRANCH_OFFSET or THM2_MAX_FWD_BRANCH_OFFSET should be
	checked for BL range.
	(elf32_arm_final_link_relocate): Use using_thumb2_bl () to determine
	the bit size of BL offset.

ld/
	* testsuite/ld-arm/arm-elf.exp (Thumb-2 BL): Assemble for ARMv7.
	(Thumb-2 BL on ARMv6-M): New testcase.
	* testsuite/ld-arm/thumb2-bl.d: Do not try to match testcase filename.
	* testsuite/ld-arm/thumb2-bl.s: Do not select architecture.
2016-07-01 16:13:25 +01:00