Commit graph

79990 commits

Author SHA1 Message Date
Yufeng Zhang
76dfed02aa [AArch64 disassembler] Add missing checks of undefine encodings on
st1/st2/st3/st4 instructions.

opcodes/

	* aarch64-dis.c (aarch64_ext_ldst_elemlist): Check H/S undefined
	instructions.

binutils/testsuite/

	* binutils-all/aarch64/aarch64.exp: New test driver for AArch64.
	* binutils-all/aarch64/unallocated-encoding.s: New testcase.
	* binutils-all/aarch64/unallocated-encoding.d: Ditto.
2014-03-26 18:44:27 +00:00
Nick Clifton
b3fe4307a6 Add support for %hi8, %hi16 and %lo16 being used when relocation are necessary.
* config/tc-rl78.c (rl78_op): Issue an error message if a 16-bit
	relocation is used on an 8-bit operand or vice versa.
	(tc_gen_reloc): Use the RL78_16U relocation for RL78_CODE.
	(md_apply_fix): Add support for RL78_HI8, RL78_HI16 and RL78_LO16.
2014-03-26 16:34:04 +00:00
Nick Clifton
55bfc9ac02 This fixes a problem for 64-bit Cygwin, where building some packages can
produce spurious errors about truncated relocations.  The relocations are
only truncated because they are being made against sections which are going
to be discarded so that base address is zero instead of the expected 64-bit
base value.

	* cofflink.c (_bfd_coff_generic_relocate_section): Skip
	relocations in discarded sections.
2014-03-26 16:16:20 +00:00
Keith Seitz
318d3177f7 Remove VAR_DOMAIN/STRUCT_DOMAIN ambiguity from ada-tasks.c.
2014-03-26  Keith Seitz  <keiths@redhat.com>

	* ada-tasks.c (get_tcb_types_info): Search STRUCT_DOMAIN for
	types, not VAR_DOMAIN.
2014-03-26 08:26:19 -07:00
Tristan Gingold
d80285301a Mach-O: Add BFD_MACH_O_CPU_TYPE_ARM64.
include/mach-o/
        * loader.h (bfd_mach_o_cpu_type): Add BFD_MACH_O_CPU_TYPE_ARM64.

bfd/
        * mach-o.c (bfd_mach_o_convert_architecture): Add
        BFD_MACH_O_CPU_TYPE_ARM64.

binutils/
        * od-macho.c (bfd_mach_o_cpu_name): Add BFD_MACH_O_CPU_TYPE_ARM64.
2014-03-26 16:08:14 +01:00
Alan Modra
f6c7c3e8b7 Referencing a function's address on PowerPC64 ELFv2
ELFv2 needs to create plt entries in a non-PIC executable for an
address reference to a function defined in a shared object.  It's
possible that an object file has no features that distinguish it as
ELFv1 or ELFv2, eg. an object only containing data.  Such files need
to be handled like those that are known to be ELFv2.
However, this unnecessarily creates plt entries for the analogous
ELFv1 case, so arrange to set output abi version earlier, and use the
output abi version to further distinguish ambiguous input files.

bfd/
	* elf64-ppc.c (ppc64_elf_check_relocs): Account for possibly
	needed plt entries when taking the address of functions for
	abiversion == 0 (ie. unknown) as well as abiversion == 2.
	Move opd setup and abiversion checks to..
	(ppc64_elf_before_check_relocs): ..here.  Renamed from
	ppc64_elf_process_dot_syms.  Set output abiversion from input and
	input abiversion from output, if either is not set.
	(ppc64_elf_merge_private_bfd_data): Don't merge flags here.
	(elf_backend_check_directives): Update.
ld/testsuite/
	* ld-powerpc/startv1.s, * ld-powerpc/startv2.s, * ld-powerpc/funref.s,
	* ld-powerpc/funv1.s, * ld-powerpc/funv2.s,
	* ld-powerpc/ambiguousv1.d, * ld-powerpc/ambiguousv2.d: New test files.
	* ld-powerpc/powerpc.exp: Run new tests.
2014-03-27 00:49:38 +10:30
Yao Qi
0d4d0e772a Skip tests on completion and readline when readline lib isn't used
The completion feature and other features on readline depend on the
readline library.  However, readline library is not always used, for
example, running testsuite like

  make check RUNTESTFLAGS="--host_board=local-remote-host"

the input stream is not a tty, and GDB doesn't use readline library
as a result.

This patch is to skip tests on completion and readline if
'show editing' is off, which means readline isn't used.  Note that
some tests in gdb.base/completion.exp test command complete, which
isn't related to readline, so these tests aren't affected by readline
library.  This patch also moves these tests up, run them
unconditionally, and run the rest if readline library is used.

gdb/testsuite:

2014-03-26  Yao Qi  <yao@codesourcery.com>

	* lib/gdb.exp (readline_is_used): New proc.
	* gdb.base/completion.exp: Move tests on command complete up.
	Skip the rest of tests if readline is not used.
	* gdb.ada/complete.exp: Skp the test if readline is not
	used.
	* gdb.base/filesym.exp: Likewise.
	* gdb.base/macscp.exp: Likewise.
	* gdb.base/readline-ask.exp: Likewise.
	* gdb.base/readline.exp: Likewise.
	* gdb.python/py-cmd.exp: Likewise.
	* gdb.trace/tfile.exp: Likewise.
2014-03-26 21:11:08 +08:00
Yao Qi
29361eee14 Fix code format issues gdb.base/macscp.exp
When I do something else, I find code format in gdb.base/macscp.exp is
messy.  This patch is to fix various code format issues in it.

Pushed as it is obvious.

gdb/testsuite:

2014-03-26  Yao Qi  <yao@codesourcery.com>

	* gdb.base/macscp.exp: Fix code format issues.
2014-03-26 13:17:37 +08:00
Sandra Loosemore
1e54db15c3 Fix type of "fp" and other registers for Nios II.
2014-03-25  Sandra Loosemore  <sandra@codesourcery.com>

	gdb/
	* features/nios2-cpu.xml: Correct types of "gp", "fp", "ea", and
	"ra" registers.
	* features/nios2-linux.c: Regenerated.
	* features/nios2.c: Regenerated.
2014-03-25 21:00:17 -07:00
Alan Modra
f688ea36df daily update 2014-03-26 09:30:48 +10:30
Nick Clifton
3c6256d29e This patch adds a new pseudo-op - .seh_code - to structured exception handling
suite of ops.  It changes the current section back to the code section of the
current function.  This is helpful because the code section may not be .text.

	* config/obj-coff-seh.c (obj_coff_seh_code): New function -
	switches the current segment back to the code segment recorded
	when seh_proc was last invoked.
	* config/obj-coff-seh.h (SEH_CMDS): Add seh_code.
2014-03-25 16:50:10 +00:00
Ulrich Weigand
bc9a55253e Support gdb.asm/asm-source.exp on powerpc64le
Add new powerpc64le.inc file appropriate for the ELFv2 ABI and
use it to support the asm-source.exp test case on powerpc64le.

gdb/testsuite/
2014-03-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.asm/asm-source.exp: Handle powerpc64le-* targets.
	* gdb.asm/powerpc64le.inc: New file.
2014-03-25 15:39:32 +01:00
Pedro Alves
d3839ede05 "source", foreground execution commands, and target-async
Sourcing a GDB script that runs foreground execution commands in
succession fails if the target can async:

 Breakpoint 1, main () at ../../../src/gdb/testsuite/gdb.base/source-execution.c:36
 36        func1 ();
 (gdb) source ../../../src/gdb/testsuite/gdb.base/source-execution.gdb
 ../../../src/gdb/testsuite/gdb.base/source-execution.gdb:21: Error in sourced command file:
 Cannot execute this command while the selected thread is running.
 (gdb) FAIL: gdb.base/source-execution.exp: source source-execution.gdb

That is, after a foreground execution command, GDB moves on to the
following command immediately before waiting for the previous command
to complete.

https://sourceware.org/ml/gdb-patches/2011-09/msg00037.html (b4a14fd0)
addressed this for command lists, Python's gdb.execute, etc., but
missed "source".  Fixed now in the same way.

gdb/
2014-03-25  Pedro Alves  <palves@redhat.com>

	* cli/cli-script.c (script_from_file): Force the interpreter to
	sync mode.

gdb/testsuite/
2014-03-25  Pedro Alves  <palves@redhat.com>
	    Doug Evans  <dje@google.com>

	* gdb.base/source-execution.c: New file.
	* gdb.base/source-execution.exp: New file.
	* gdb.base/source-execution.gdb: New file.
2014-03-25 11:45:53 +00:00
Will Newton
c955de363b bfd/elfnn-aarch64.c: Fix calculation of DT_RELASZ
The current code subtracts the size of the output section containing
relplt from RELASZ. In some cases this will be the same output
section as the dynamic relocs causing a value of zero to be output.
Calculating the size from input sections seems to make more sense.

bfd/ChangeLog:

2014-03-25  Will Newton  <will.newton@linaro.org>

	 * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_sections):
	 Set value of DT_PLTRELSZ and DT_RELASZ based on the size
	 of input sections rather than output sections.

ld/testsuite/ChangeLog:

2014-03-25  Will Newton  <will.newton@linaro.org>

	 * ld-aarch64/aarch64-elf.exp: Add relasz dump test.
	 * ld-aarch64/relasz.d: New file.
	 * ld-aarch64/relasz.s: Likewise.
2014-03-25 09:01:50 +00:00
Alan Modra
3e60bf4df8 Revert "Remove magic treatment of toc symbols for powerpc ELF"
It turns out that glibc's sysdeps/powerpc/powerpc64/start.S uses this
feature.  :-(

	* config/tc-ppc.c (ppc_is_toc_sym): Revert 2014-03-05.
	(md_assemble): Likewise.  Warn.
2014-03-25 12:01:09 +10:30
Doug Evans
01672a570a gdb.linespec/macro-relative.exp: Mark the test as unsupported if using fission. 2014-03-24 16:03:20 -07:00
Alan Modra
cea2f54dd9 daily update 2014-03-25 09:30:39 +10:30
Hui Zhu
88bbeca9d5 Fix PR breakpoints/16101: gdb.base/dprintf.exp agent-printf failures with non-Z0-supporting gdbservers
After a previous patch that was committed by Pedro (0000e5cc), trying
to set a dprintf with with a GDBserver that doesn't support agent
commands at all now throws an error.  But the dprintf tests still fail
with some GDBserver targets because they doesn't try to handle the
case of the server reporting support for breakpoint commands, but not
be able to use those in combination with Z0 (because Z0 isn't actually
supported, for example):

 FAIL: gdb.base/dprintf.exp: 1st dprintf, agent
 FAIL: gdb.base/dprintf.exp: 2nd dprintf, agent
 FAIL: gdb.base/dprintf.exp: dprintf info 2 (pattern 4)

Similarly for the MI test.

This patch makes the tests handle this scenario.

Tested with native, and native gdbserver on x86_64 Fedora 17.

Also tested with the native-gdbserver.exp board hacked with:

 set GDBFLAGS "${GDBFLAGS} -ex \"set remote breakpoint-commands off\""

(actually, "set remote breakpoint-commands off" is presently broken,
so this was on top of a fix for that command.)

which results in:
 (gdb) PASS: gdb.base/dprintf.exp: 2nd dprintf, gdb
 set dprintf-style agent
 warning: Target cannot run dprintf commands, falling back to GDB printf
 warning: Target cannot run dprintf commands, falling back to GDB printf
 (gdb) UNSUPPORTED: gdb.base/dprintf.exp: set dprintf style to agent

gdb.sum:
 Running target native-gdbserver
 Running ../../../src/gdb/testsuite/gdb.base/dprintf.exp ...
 PASS: gdb.base/dprintf.exp: dprintf
 PASS: gdb.base/dprintf.exp: dprintf foo
 PASS: gdb.base/dprintf.exp: dprintf 29
 PASS: gdb.base/dprintf.exp: dprintf foo,"At foo entry\n"
 PASS: gdb.base/dprintf.exp: ignore $bpnum 1
 PASS: gdb.base/dprintf.exp: dprintf 26,"arg=%d, g=%d\n", arg, g
 PASS: gdb.base/dprintf.exp: dprintf info 1
 PASS: gdb.base/dprintf.exp: break 27
 PASS: gdb.base/dprintf.exp: 1st dprintf, gdb
 PASS: gdb.base/dprintf.exp: 2nd dprintf, gdb
 UNSUPPORTED: gdb.base/dprintf.exp: set dprintf style to agent
 PASS: gdb.base/dprintf.exp: Set dprintf style to an unrecognized type

And also with the native-gdbserver.exp board hacked with:

 set GDBFLAGS "${GDBFLAGS} -ex \"set remote Z-packet off\""

which results in:
 (gdb) continue
 Continuing.
 Warning:
 Cannot insert breakpoint 3: Target doesn't support breakpoints that have target side commands.
 Cannot insert breakpoint 4: Target doesn't support breakpoints that have target side commands.

 (gdb) UNSUPPORTED: gdb.base/dprintf.exp: 1st dprintf, agent

gdb.sum:
 Running target native-gdbserver
 Running ../../../src/gdb/testsuite/gdb.base/dprintf.exp ...
 PASS: gdb.base/dprintf.exp: dprintf
 PASS: gdb.base/dprintf.exp: dprintf foo
 PASS: gdb.base/dprintf.exp: dprintf 29
 PASS: gdb.base/dprintf.exp: dprintf foo,"At foo entry\n"
 PASS: gdb.base/dprintf.exp: ignore $bpnum 1
 PASS: gdb.base/dprintf.exp: dprintf 26,"arg=%d, g=%d\n", arg, g
 PASS: gdb.base/dprintf.exp: dprintf info 1
 PASS: gdb.base/dprintf.exp: break 27
 PASS: gdb.base/dprintf.exp: 1st dprintf, gdb
 PASS: gdb.base/dprintf.exp: 2nd dprintf, gdb
 PASS: gdb.base/dprintf.exp: set dprintf style to agent
 UNSUPPORTED: gdb.base/dprintf.exp: 1st dprintf, agent
 PASS: gdb.base/dprintf.exp: Set dprintf style to an unrecognized type

(One of the new comments mentions breakpoint always-inserted mode.
Actually testing with breakpoint always-inserted mode fails these
dprintf tests, due to the way they are written.  But that'll take a
more substancial rewrite of the tests, so I'm leaving that for another
day.)

gdb/testsuite/
2014-03-24  Hui Zhu  <hui@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	PR breakpoints/16101
	* gdb.base/dprintf.exp: Use unsupported rather than changing the
	test pass/fail messages.  Detect missing support for dprintf when
	breakpoints are actually inserted.
	* gdb.base/mi-dprintf.exp: Detect missing support for dprintf when
	breakpoints are actually inserted.
	* lib/mi-support.exp (mi_run_cmd_full): Return -1 if continue
	fails.
2014-03-24 19:30:50 +00:00
Jan Kratochvil
d23487918b testsuite: Remove needless linux-nat requirement in gdb-sigterm.exp.
That "set debug lin-lwp 1" command even is not needed for the functionality of
this testcase.

This patch does fix a testcase error on aarch64-none-elf.

gdb/testsuite/
2014-03-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/gdb-sigterm.exp (do_test): Remove "set debug lin-lwp 1".

Message-ID: <20140323165745.GA23830@host2.jankratochvil.net>
2014-03-24 17:37:32 +01:00
Pierre Langlois
7588d2eca0 Fix PR/16720
2014-03-24  Pierre Langlois  <pierre.langlois@embecosm.com>

  * avr-tdep.c (avr_scan_prologue): Accept push r1 instruction for
  small stack allocation.
2014-03-24 09:29:49 +00:00
Tristan Gingold
a62904492b darwin-nat.c: fix dump of messages on x86_64.
gdb/
	* darwin-nat.c (exc_server): Remove unused prototype.
	(darwin_dump_message): Correctly display data on x86_64.
	(darwin_encode_reply): Fix style.
	Add comments and fix indentation.
2014-03-24 10:24:37 +01:00
Tristan Gingold
aa9fa1e22a Fix stack offset in Mach-O output for -P compact_unwind.
Minor fix in compact unwind output: to be more readable, the stack offset
for indirect compact unwind entries are mutiplied by its factor (4 or 8).

binutils/
	* od-macho.c (dump_unwind_encoding_x86): Set the factor.
	(dump_exe_compact_unwind): Change the condition.  Improve
	indentation.
2014-03-24 10:18:52 +01:00
Pierre Langlois
31ae9d245c Fix typo in previous entry. 2014-03-24 09:13:58 +00:00
Pierre Langlois
69fa403001 Add myself as a write-after-approval mainainer.
2014-03-21  Pierre Langlois  <pierre.langlois@embecosm.com>

	* MAINTAINERS (Write After Approval): Add "Pierre Langlois".
2014-03-24 08:06:01 +00:00
Alan Modra
156c80b2f6 daily update 2014-03-24 09:30:47 +10:30
Doug Evans
6339bfc47d * infcmd.c: Whitespace fixes.
(interrupt_command): Merge two function comments into one.
2014-03-22 08:22:29 -04:00
Doug Evans
0a07590bf4 * infcmd.c (interrupt_command): Renamed from interrupt_target_command. 2014-03-22 07:48:33 -04:00
Alan Modra
a4ff09242a daily update 2014-03-23 09:30:40 +10:30
Yao Qi
b55fbac484 Remove target_read_live_memory
As we move code on reading unavailable memory to target side, GDB core
side doesn't need the "switching momentarily out of tfind mode" dance.
The target remote knows how to read live memory (through remote_ops).

Remove set_traceframe_number and
make_cleanup_restore_traceframe_number, since they are no longer used.

gdb:

2014-03-22  Yao Qi  <yao@codesourcery.com>

	* remote.c (target_read_live_memory): Remove.
	(memory_xfer_live_readonly_partial): Rename it to
	remote_xfer_live_readonly_partial.  Remove argument 'object'.
	All callers updated.  Call remote_read_bytes_1
	instead of target_read_live_memory.
	* tracepoint.c (set_traceframe_number): Remove.
	(make_cleanup_restore_traceframe_number): Likewise .
	* tracepoint.h (set_traceframe_number): Remove declaration.
	(make_cleanup_restore_traceframe_number): Likewise.
2014-03-22 18:31:41 +08:00
Yao Qi
9217e74e90 Factor remote_read_bytes.
This patch moves code in remote_read_bytes on reading from the remote
stub to a new function remote_read_bytes_1.

gdb:

2014-03-22  Yao Qi  <yao@codesourcery.com>

	* remote.c (remote_read_bytes): Move code on reading from the
	remote stub to ...
	(remote_read_bytes_1): ... here.  New function.
2014-03-22 18:31:36 +08:00
Yao Qi
8acf9577e5 Move the traceframe_available_memory code from memory_xfer_partial_1 down to the targets
As a follow-up to

  [PATCH 7/8] Adjust read_value_memory to use to_xfer_partial
  https://sourceware.org/ml/gdb-patches/2014-02/msg00384.html

this patch moves traceframe_available_memory down to the target side.
After this patch, the gdb core code is cleaner, and code on handling
unavailable memory is moved to remote/tfile/ctf targets.

In details, this patch moves traceframe_available_memory code from
memory_xfer_partial_1 to remote target only, so remote target still
uses traceframe_info mechanism to check unavailable memory, and use
remote_ops to read them from read-only sections.  We don't use
traceframe_info mechanism for tfile and ctf target, because it is
fast to iterate all traceframes from trace file, so the summary
information got from traceframe_info is not necessary.

This patch also moves two functions to remote.c from target.c,
because they are only used in remote.c.  I'll clean them up in another
patch.

gdb:

2014-03-22  Yao Qi  <yao@codesourcery.com>

	* ctf.c (ctf_xfer_partial): Check the return value of
	exec_read_partial_read_only, if it is not TARGET_XFER_OK,
	return TARGET_XFER_UNAVAILABLE.
	* tracefile-tfile.c (tfile_xfer_partial): Likewise.
	* target.c (target_read_live_memory): Move it to remote.c.
	(memory_xfer_live_readonly_partial): Likewise.
	(memory_xfer_partial_1): Move some code to remote_read_bytes.
	* remote.c (target_read_live_memory): Moved from target.c.
	(memory_xfer_live_readonly_partial): Likewise.
	(remote_read_bytes): New, factored out from
	memory_xfer_partial_1.
2014-03-22 18:31:30 +08:00
Doug Evans
25d743f9e6 Fix typo in previous entry. 2014-03-22 02:59:04 -04:00
Doug Evans
51b8d20cf4 * gdb.guile/guile.exp (guile not supported): Verify multi-line
guile command issues an error.
2014-03-22 02:57:08 -04:00
Doug Evans
feef67abfa * extension.c (eval_ext_lang_from_control_command): Avoid dereferencing
NULL pointer.

	testsuite/
	* gdb.python/python.exp (python not supported): Verify multi-line
	python command issues an error.
2014-03-22 02:44:39 -04:00
Maciej W. Rozycki
ecebef6a9a gdb.threads/thread-specific.exp: Fix uninitialized variable references
This fixes:

FAIL: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint (timeout)
ERROR: tcl error sourcing .../gdb/testsuite/gdb.threads/thread-specific.exp.
ERROR: can't read "this_breakpoint": no such variable
    while executing
"gdb_test_multiple "info breakpoint $this_breakpoint" "info on bp" {
    -re ".*stop only in thread (\[0-9\]*).*$gdb_prompt $" {
        set this_thread $expe..."
    (file ".../gdb/testsuite/gdb.threads/thread-specific.exp" line 108)
    invoked from within
"source .../gdb/testsuite/gdb.threads/thread-specific.exp"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 source .../gdb/testsuite/gdb.threads/thread-specific.exp"
    invoked from within
"catch "uplevel #0 source $test_file_name""

and then:

FAIL: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint (timeout)
UNTESTED: gdb.threads/thread-specific.exp: info on bp
ERROR: tcl error sourcing .../gdb/testsuite/gdb.threads/thread-specific.exp.
ERROR: can't read "this_thread": no such variable
    while executing
"gdb_test {print $_thread} ".* = $this_thread" "thread var at break""
    (file ".../gdb/testsuite/gdb.threads/thread-specific.exp" line 119)
    invoked from within
"source .../gdb/testsuite/gdb.threads/thread-specific.exp"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 source .../gdb/testsuite/gdb.threads/thread-specific.exp"
    invoked from within
"catch "uplevel #0 source $test_file_name""

Final results:

FAIL: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint (timeout)
UNTESTED: gdb.threads/thread-specific.exp: info on bp
UNTESTED: gdb.threads/thread-specific.exp: thread var at break

Of course the first failure best wasn't there, but failing that the script
shouldn't crash.

	* gdb.threads/thread-specific.exp: Handle the lack of usable
	$this_breakpoint and $this_thread.
2014-03-21 23:51:16 +00:00
Alan Modra
ecdf850f85 daily update 2014-03-22 09:30:43 +10:30
Chris Faylor
d0e6d77b3f 2014-03-21 Christopher Faylor <me.binutils2014@cgf.cx>
* ld.texinfo: Document change in handling of --enable-auto-image-base.
	* emultempl/pe.em (pe_auto_image_base): Set to default base.
	(gld_${EMULATION_NAME}_list_options): Change usage message to reflect
	optional --enable-auto-image-base argument.
	(gld${EMULATION_NAME}_handle_option): Handle optional
	--enable-auto-image-base argument.
	(compute_dll_image_base): Eliminate constant.  Use pe_auto_image_base.
2014-03-21 13:33:43 -04:00
David Weatherford
a82c7d9030 Add support to the Xtensa target for creating trampolines for out-of-range branches.
* tc-xtensa.c (xtensa_check_frag_count, xtensa_create_trampoline_frag)
    (xtensa_maybe_create_trampoline_frag, init_trampoline_frag)
    (find_trampoline_seg, search_trampolines, get_best_trampoline)
    (check_and_update_trampolines, add_jump_to_trampoline)
    (dump_trampolines): New function.
    (md_parse_option): Add cases for --[no-]trampolines options.
    (md_assemble, finish_vinsn, xtensa_end): Add call to
    xtensa_check_frag_count.
    (xg_assemble_vliw_tokens): Add call to
    xtensa_maybe_create_trampoline_frag.
    (xtensa_relax_frag): Relax fragments with RELAX_TRAMPOLINE state.
    (relax_frag_immed): Relax jump instructions that cannot reach its
    target.
    * tc-xtensa.h (xtensa_relax_statesE::RELAX_TRAMPOLINE): New relax
    state.

    * as.texinfo: Document --[no-]trampolines command-line options.
    * c-xtensa.texi: Document trampolines relaxation and command line
    options.

    * frags.c (get_frag_count, clear_frag_count): New function.
    (frag_alloc): Increment totalfrags counter.
    * frags.h (get_frag_count, clear_frag_count): New function.

    * all.exp: Add test for trampoline relaxation.
    * trampoline.d: Trampoline relaxation expected dump.
    * trampoline.s: Trampoline relaxation test source.
2014-03-21 11:53:42 +00:00
Pedro Alves
b65dc60b23 normal_stop: Extend and clarify comment.
Explain better why we skip saying "Switching to ..." in non-stop mode.

gdb/
2014-03-21  Pedro Alves  <palves@redhat.com>

	* infrun.c (normal_stop): Extend comment.
2014-03-21 11:08:44 +00:00
Hui Zhu
36cb1214c9 Remove fixme of packet "k" from doc
https://sourceware.org/ml/gdb-patches/2014-03/msg00324.html

2014-03-21  Pedro Alves  <palves@redhat.com>
	    Stan Shebs  <stan@codesourcery.com>
	    Hui Zhu  <hui@codesourcery.com>

	* gdb.texinfo (Packets): Add anchor to "? packet".
	Remove fixme and update introduction of "k packet".
	Add anchor to "vKill packet".
2014-03-21 16:48:52 +08:00
Hui Zhu
ccdd1909ad Fix internal warning when "gdb -p xxx"
The issue that was fixed by b4ab256ded
can not be found in regression test.
Update attach.exp to test it.

https://sourceware.org/ml/gdb-patches/2014-03/msg00438.html

2014-03-21  Hui Zhu  <hui@codesourcery.com>

	* gdb.base/attach.exp (do_command_attach_tests): New.
2014-03-21 11:23:06 +08:00
Hui Zhu
b4ab256ded Fix internal warning when "gdb -p xxx"
ps -e | grep a.out
28886 pts/12   00:00:00 a.out
gdb -p 28886
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x0000003b0ccbc970 in __nanosleep_nocancel () from /lib64/libc.so.6
../../binutils-gdb/gdb/cleanups.c:265: internal-warning: restore_my_cleanups has found a stale cleanup
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)

The backtrace of this issue:
(gdb) bt
    file=0x8b0c10 "s' failed.", line=265, fmt=0x8b0c38 "nutils-gdb/gdb/cleanups.c",
    ap=0x7fff803e3ed8) at ../../binutils-gdb/gdb/utils.c:748
    fmt=0x8b0c38 "nutils-gdb/gdb/cleanups.c", ap=0x7fff803e3ed8)
    at ../../binutils-gdb/gdb/utils.c:799
    string=0x8b0c38 "nutils-gdb/gdb/cleanups.c") at ../../binutils-gdb/gdb/utils.c:809
    at ../../binutils-gdb/gdb/cleanups.c:265
    at ../../binutils-gdb/gdb/cleanups.c:276
    at ../../binutils-gdb/gdb/exceptions.c:142
    at ../../binutils-gdb/gdb/exceptions.c:203
    command=0x5d5fb8 <attach_command_continuation_free_args+18>, arg=0x7fff803e525b "2914",
    from_tty=1, mask=RETURN_MASK_ALL) at ../../binutils-gdb/gdb/exceptions.c:549
---Type <return> to continue, or q <return> to quit---
    func_args=0x7fff803e4280, errstring=0x8cf2e4 "/local/bin", mask=RETURN_MASK_ALL)
    at ../../binutils-gdb/gdb/exceptions.c:522

This is a new issue.  It is introduced by commit https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=8bc2fe488957946d2cdccda3ce8d4f39e4003ea0
It removed the discard_cleanups (back_to) inside attach_command.
Then restore_my_cleanups will throw a internal_warning.

https://sourceware.org/ml/gdb-patches/2014-03/msg00374.html

2014-03-21  Hui Zhu  <hui@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	* darwin-nat.c (darwin_pid_to_exec_file): Change xmalloc to
	static buffer.
	* fbsd-nat.c (fbsd_pid_to_exec_file): Ditto.
	* linux-nat.c (linux_child_pid_to_exec_file): Ditto.
	* nbsd-nat.c (nbsd_pid_to_exec_file): Ditto.
2014-03-21 10:25:41 +08:00
Alan Modra
a2db7c0751 daily update 2014-03-21 09:30:49 +10:30
DJ Delorie
0c315784bf Add opcode relaxation for rl78-elf
This patch adds initial in-gas opcode relaxation for the rl78
backend.  Specifically, it checks for conditional branches that
are too far and replaces them with inverted branches around longer
fixed branches.
2014-03-20 17:56:01 -04:00
Maciej W. Rozycki
deba7593bb Avoid using the ISO C99 `z' formatted output modifier
* mi/mi-interp.c (mi_memory_changed): Avoid using the ISO C99
	`z' formatted output modifier.
2014-03-20 21:41:56 +00:00
Richard Sandiford
d56a8dda6d gas/
* config/tc-mips.h (DIFF_EXPR_OK, CFI_DIFF_EXPR_OK): Define.
	* config/tc-mips.c (md_pcrel_from): Remove error message.
	(md_apply_fix): Convert PC-relative BFD_RELOC_32s to
	BFD_RELOC_32_PCREL.  Report a specific error message for unhandled
	PC-relative expressions.  Handle BFD_RELOC_8.

gas/testsuite/
	* gas/all/gas.exp: Remove XFAIL of forward.d for MIPS.
	* gas/mips/pcrel-1.s, gas/mips/pcrel-1.d, gas/mips/pcrel-2.s,
	gas/mips/pcrel-2.d, gas/mips/pcrel-3.s, gas/mips/pcrel-3.l,
	gas/mips/pcrel-4.s, gas/mips/pcrel-4-32.d, gas/mips/pcrel-4-n32.d,
	gas/mips/pcrel-4-64.d: New tests.
	* gas/mips/mips.exp: Run them.
	* gas/mips/lui-2.l: Tweak error message for line 7.

ld/testsuite/
	* ld-elf/merge.d: Remove MIPS XFAIL.
2014-03-20 21:18:43 +00:00
Sergio Durigan Junior
1bff71c325 Fix probe-related internal error on AIX
-- Initial message by Tom Tromey:

While testing on AIX, I happened to notice an internal error coming
from parse_probes.  This happens because there are no probes defined
on this platform.  This patch fixes the problem by changing an assert
into an ordinary error, and then changing the relevant caller to cope.

This fixes a few tests on AIX; also regtested on x86-64 Fedora 18.

-- Followup by Sergio Durigan Junior:

By reading the patch (and the original code), I found it a little bit
obscure, so I took the liberty to try to improve it.  Here's the patch.
Could you please take a look and see if it works on AIX (and also if you
like the approach)?

gdb/
2014-03-20  Tom Tromey  <tromey@redhat.com>
	    Sergio Durigan Junior  <sergiodj@redhat.com>

	* probe.c (parse_probes): Turn assert into an ordinary error.
	* break-catch-throw.c (re_set_exception_catchpoint): Ignore
	exceptions when parsing probes.  Rearrange the code for clarity.
2014-03-20 18:08:31 -03:00
Tom Tromey
90e289504f Fix py-finish-breakpoint.exp with target async.
With target async enabled, py-finish-breakpoint.exp triggers an
assertion failure.

The failure occurs because execute_command re-enters the event loop in
some circumstances, and in this case resets the sync_execution flag.
Then later GDB reaches this assertion in normal_stop:

      gdb_assert (sync_execution || !target_can_async_p ());

In detail:

#1 - A synchronous execution command is run.  sync_execution is set.

#2 - A python breakpoint is hit (TARGET_WAITKIND_STOPPED), and the
     corresponding Python breakpoint's stop method is executed.  When
     and while python commands are executed, interpreter_async is
     forced to 0.

#3 - The Python stop method happens to execute a not-execution-related
     gdb command.  In this case, "where 1".

#4 - Seeing that sync_execution is set, execute_command nests a new
     event loop (although that wasn't necessary; this is the problem).

#5 - The linux-nat target's pipe in the event loop happens to be
     marked.  That's normal, due to this in linux_nat_wait:

     /* If we requested any event, and something came out, assume there
        may be more.  If we requested a specific lwp or process, also
        assume there may be more.  */

     The nested event loop thus immediately wakes up and calls
     target_wait.  No thread is actually executing in the inferior, so
     the target returns TARGET_WAITKIND_NO_RESUMED.

#6 - normal_stop is reached.  GDB prints "No unwaited-for children
     left.", and resets the sync_execution flag (IOW, there are no
     resumed threads left, so the synchronous command is considered
     completed.)  This is already bogus.  We were handling a
     breakpoint!

#7 - the nested event loop unwinds/ends.  GDB is now back to handling
     the python stop method (TARGET_WAITKIND_STOPPED), which decides
     the breakpoint should stop.  normal_stop is called for this
     event.  However, normal_stop actually works with the _last_
     reported target status:

   void
   normal_stop (void)
   {
    struct target_waitstatus last;
    ptid_t last_ptid;
    struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);

    ...
    get_last_target_status (&last_ptid, &last);

    ...
    if (last.kind == TARGET_WAITKIND_NO_RESUMED)
      {
        gdb_assert (sync_execution || !target_can_async_p ());

        target_terminal_ours_for_output ();
        printf_filtered (_("No unwaited-for children left.\n"));
      }

   And due to the nesting in execute command, the last event is now
   TARGET_WAITKIND_NO_RESUMED, not the actual breakpoint event being
   handled.  This could be seen to be broken in itself, but we can
   leave fixing that for another pass.  The assertion is reached, and
   fails.

execute_command has a comment explaining when it should synchronously
wait for events:

      /* If the interpreter is in sync mode (we're running a user
	 command's list, running command hooks or similars), and we
	 just ran a synchronous command that started the target, wait
	 for that command to end.  */

However, the code did not follow this comment -- it didn't check to
see if the command actually started the target, just whether the
target was executing a sync command at this point.

This patch fixes the problem by noting whether the target was
executing in sync_execution mode before running the command, and then
augmenting the condition to test this as well.

2014-03-20  Tom Tromey  <tromey@redhat.com>

	PR gdb/14135
	* top.c (execute_command): Only dispatch events if the command
	started the target.
2014-03-20 18:08:33 +00:00
Pedro Alves
beb460e8d2 make dprintf.exp pass in target async mode
When target-async is enabled, dprintf.exp fails:

 Running ../../../src/gdb/testsuite/gdb.base/dprintf.exp ...
 FAIL: gdb.base/dprintf.exp: 1st dprintf, call
 FAIL: gdb.base/dprintf.exp: 2nd dprintf, call
 FAIL: gdb.base/dprintf.exp: Set dprintf function
 FAIL: gdb.base/dprintf.exp: 1st dprintf, fprintf
 FAIL: gdb.base/dprintf.exp: 2nd dprintf, fprintf

 Breakpoint 2, main (argc=1, argv=0x7fffffffd3f8) at ../../../src/gdb/testsuite/gdb.base/dprintf.c:33
 33        int loc = 1234;
 (gdb) continue
 Continuing.
 kickoff 1234
 also to stderr 1234
 At foo entry
 (gdb) FAIL: gdb.base/dprintf.exp: 1st dprintf, call

The problem is that GDB gave the prompt back to the user too early.

This happens when calling functions while handling an event that
doesn't cause a user visible stop.  dprintf with "set dprintf-style
gdb" is one such case.  This patch adds a test case that has a
breakpoint with a condition that calls a function that returns false,
so that regression testing isn't dependent on the implementation of
dprintf.

The problem happens because run_inferior_call causes GDB to forget
that it is running in sync_execution mode, so any event that runs an
inferior call causes fetch_inferior_event to display the prompt, even
if the event should not result in a user visible stop (that is, gdb
resumes the inferior and waits for the next event).

This patch fixes the issue by noticing when GDB was in sync_execution
mode in run_inferior_call, and taking care to restore this state
afterward.

gdb/
2014-03-20  Tom Tromey  <tromey@redhat.com>

	PR cli/15718
	* infcall.c: Include event-top.h.
	(run_inferior_call): Call async_disable_stdin if needed.

gdb/testsuite/
2014-03-20  Tom Tromey  <tromey@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	PR cli/15718
	* gdb.base/condbreak-call-false.c: New file.
	* gdb.base/condbreak-call-false.exp: New file.
2014-03-20 17:49:51 +00:00
Ilya Tocar
5fc35d961b Fix memory size for gather/scatter instructions
For gathers with indices larger than elements (e. g.)

vpgatherqd      ymm6{k1}, ZMMWORD PTR [ebp+zmm7*8-123]

We currently treat memory size as a size of index register, while it is
actually should be size of destination register:

vpgatherqd      ymm6{k1}, YMMWORD PTR [ebp+zmm7*8-123]

This patch fixes it.

opcodes/

        * i386-opc.tbl: Change memory size for vgatherpf0qps, vgatherpf1qps,
        vscatterpf0qps, vscatterpf1qps, vgatherqps, vpgatherqd, vpscatterqd,
        vscatterqps.
        * i386-tbl.h: Regenerate.

gas/testsuite/

        * gas/i386/avx512pf-intel.d: Change memory size for vgatherpf0qps,
        vgatherpf1qps, vscatterpf0qps, vscatterpf1qps.
        * gas/i386/avx512pf.s: Ditto.
        * gas/i386/x86-64-avx512pf-intel.d: Ditto.
        * gas/i386/x86-64-avx512pf.s: Ditto.
        * gas/i386/avx512f-intel.d: Change memory size for vgatherqps,
        vpgatherqd, vpscatterqd, vscatterqps.
        * gas/i386/avx512f.s: Ditto.
        * gas/i386/x86-64-avx512f-intel.d: Ditto.
        * gas/i386/x86-64-avx512f.s: Ditto.
2014-03-20 08:13:30 -07:00