Commit Graph

83191 Commits

Author SHA1 Message Date
Pedro Alves 32d2e5d640 Tighten gdb.base/disp-step-syscall.exp
This fixes several problems with this test.

E.g,. with --target_board=native-extended-gdbserver on x86_64 Fedora
20, I get:

 Running /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.base/disp-step-syscall.exp ...
 FAIL: gdb.base/disp-step-syscall.exp: vfork: get hexadecimal valueof "$pc" (timeout)
 FAIL: gdb.base/disp-step-syscall.exp: vfork: single step over vfork final pc
 FAIL: gdb.base/disp-step-syscall.exp: vfork: delete break vfork insn
 FAIL: gdb.base/disp-step-syscall.exp: vfork: continue to marker (vfork) (the program is no longer running)

And with --target=native-gdbserver, I get:

 Running /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.base/disp-step-syscall.exp ...
 KPASS: gdb.base/disp-step-syscall.exp: vfork: single step over vfork (PRMS server/13796)
 FAIL: gdb.base/disp-step-syscall.exp: vfork: get hexadecimal valueof "$pc" (timeout)
 FAIL: gdb.base/disp-step-syscall.exp: vfork: single step over vfork final pc
 FAIL: gdb.base/disp-step-syscall.exp: vfork: delete break vfork insn
 FAIL: gdb.base/disp-step-syscall.exp: vfork: continue to marker (vfork) (the program is no longer running)

First, the lack of fork support on remote targets is supposed to be
kfailed, so the KPASS is obviously bogus.  The extended-remote board
should have KFAILed too.

The problem is that the test is using "is_remote" instead of
gdb_is_target_remote.

And then, I get:

 (gdb) PASS: gdb.base/disp-step-syscall.exp: vfork: set displaced-stepping on
 stepi

 Program terminated with signal SIGSEGV, Segmentation fault.
 The program no longer exists.
 (gdb) PASS: gdb.base/disp-step-syscall.exp: vfork: single step over vfork

Obviously, that should be a FAIL.  The problem is that the test only
expects SIGILL, not SIGSEGV.  It also doesn't bail correctly if an
internal error or some other pattern caught by gdb_test_multiple
matches.  The test doesn't really need to match specific exits/crashes
patterns, if the PASS regex is improved, like in ...

... this and the other "stepi" tests are a bit too lax, passing on
".*".  This tightens those up to expect "x/i" and the "=>" current PC
indicator, like in:

 1: x/i $pc
 => 0x3b36abc9e2 <vfork+34>:     syscall

On x86_64 Fedora 20, I now get a quick KFAIL instead of timeouts with
both the native-extended-gdbserver and native-gdbserver boards:

 PASS: gdb.base/disp-step-syscall.exp: vfork: delete break vfork
 PASS: gdb.base/disp-step-syscall.exp: vfork: continue to syscall insn vfork
 PASS: gdb.base/disp-step-syscall.exp: vfork: set displaced-stepping on
 KFAIL: gdb.base/disp-step-syscall.exp: vfork: single step over vfork (PRMS: server/13796)

and a full pass with native testing.

gdb/testsuite/
2015-03-18  Pedro Alves  <palves@redhat.com>

	* gdb.base/disp-step-syscall.exp (disp_step_cross_syscall):
	Use gdb_is_target_remote instead of is_remote.  Use
	gdb_test_multiple instead of gdb_expect.  Exit early if
	gdb_test_multiple hits its internal matches.  Tighten stepi tests
	expected output.  Fail on exit with any signal, instead of just
	SIGILL.
2015-03-18 19:28:08 +00:00
H.J. Lu 0b0732e13a Make bfd_compress_section_contents static
* compress.c (bfd_compress_section_contents): Make it static.
	* bfd/bfd-in2.h: Regenerated.
2015-03-18 11:20:06 -07:00
H.J. Lu d94077e27d Add a testcase for PR gas/18087
PR gas/18087
	* gas/i386/dw2-compress-1.d: Revert the last change.
	* gas/i386/dw2-compress-3.d: New.
	* gas/i386/dw2-compress-3.s: Likewise.
	* gas/i386/i386.exp: Run dw2-compress-3 for ELF targets.
2015-03-18 09:39:02 -07:00
Nick Clifton 27aaeda0cd Fixes a problem generating relocs for import libraries created by Microsoft tools for the x85_64 architecture.
PR ld/16598
	* peicode.h (pe_ILF_build_a_bfd): Add support for creating relocs
	suitable for the AMD64.
2015-03-18 16:19:59 +00:00
Jon Turney 273a49858f Fix debug section compression so that it is only performed if it would make the section smaller.
PR binutils/18087
gas	* doc/as.texinfo: Note that when gas compresses debug sections the
	compression is only performed if it makes the section smaller.
	* write.c (compress_debug): Do not compress a debug section if
	doing so would make it larger.

tests	* gas/i386/dw2-compress-1.d: Do not expect the .debug_abbrev or
	.debug_info sections to be compressed.

binu	* doc/binutils.texi: Note that when objcopy compresses debug
	sections the compression is only performed if it makes the section
	smaller.

bfd	* coffgen.c (make_a_section_from_file): Only prepend a z to a
	debug section's name if the section was actually compressed.
	* elf.c (_bfd_elf_make_section_from_shdr): Likewise.
	* compress.c (bfd_init_section_compress_status): Do not compress
	the section if doing so would make it bigger.  In such cases leave
	the section alone and return COMPRESS_SECTION_NONE.
2015-03-18 15:47:13 +00:00
Tristan Gingold 670f82d437 Fix amd64 windows unwinding issues within MS dlls.
Unwind info in system dlls uses almost all possible codes, contrary to unwind
info generated by gcc.  A few issues have been discovered: incorrect handling
of SAVE_NONVOL opcodes and incorrect in prologue range checks.  Furthermore I
added comments not to forget what has been investigated.

gdb/ChangeLog:
	* amd64-windows-tdep.c (amd64_windows_find_unwind_info): Move
	redirection code to ...
	(amd64_windows_frame_decode_insns): ... Here.  Fix in prologue
	checks.  Fix SAVE_NONVOL operations.  Add debug code and comments.
2015-03-18 15:55:10 +01:00
Gary Benson 464b0089f0 Reimplement "vFile:fstat" without qSupported
This commit makes support for the "vFile:fstat" packet be detected
by probing rather than using qSupported, for consistency with the
other vFile: packets.

gdb/ChangeLog:

	(remote_protocol_features): Remove the "vFile:fstat" feature.
	(remote_hostio_fstat): Probe for "vFile:fstat" support.

gdb/doc/ChangeLog:

	* gdb.texinfo (General Query Packets): Remove documentation
	for now-removed vFile:fstat qSupported features.

gdb/gdbserver/ChangeLog:

	* server.c (handle_query): Do not report vFile:fstat as supported.
2015-03-18 11:19:02 +00:00
Yao Qi f68f11b76d Support catch syscall on aarch64 linux
Hi,
This patch is to support catch syscall on aarch64 linux.  We
implement gdbarch method get_syscall_number for aarch64-linux,
and add aarch64-linux.xml file, which looks straightforward, however
the changes to test case doesn't.

First of all, we enable catch-syscall.exp on aarch64-linux target,
but skip the multi_arch testing on current stage.  I plan to touch
multi arch debugging on aarch64-linux later.

Then, when I run catch-syscall.exp on aarch64-linux, gcc errors that
SYS_pipe isn't defined.  We find that aarch64 kernel only has pipe2
syscall and libc already convert pipe to pipe2.  As a result, I change
catch-syscall.c to use SYS_pipe if it is defined, otherwise use
SYS_pipe2 instead.  The vector all_syscalls in catch-syscall.exp can't
be pre-determined, so I add a new proc setup_all_syscalls to fill it,
according to the availability of SYS_pipe.

Regression tested on {x86_64, aarch64}-linux x {native, gdbserver}.

gdb:

2015-03-18  Yao Qi  <yao.qi@linaro.org>

	PR tdep/18107
	* aarch64-linux-tdep.c: Include xml-syscall.h
	(aarch64_linux_get_syscall_number): New function.
	(aarch64_linux_init_abi): Call
	set_gdbarch_get_syscall_number.
	* syscalls/aarch64-linux.xml: New file.

gdb/testsuite:

2015-03-18  Yao Qi  <yao.qi@linaro.org>

	PR tdep/18107
	* gdb.base/catch-syscall.c [!SYS_pipe] (pipe2_syscall): New
	variable.
	* gdb.base/catch-syscall.exp: Don't skip it on
	aarch64*-*-linux* target.  Remove elements in all_syscalls.
	(test_catch_syscall_multi_arch): Skip it on aarch64*-linux*
	target.
	(setup_all_syscalls): New proc.
2015-03-18 10:47:45 +00:00
Chen Gang b3862264bc Use %F instead of %X for einfo
When src or dst is NULL, the next fread or fwrite will cause a
segmentation fault, so we need to treat it as fatal.

	* ldmain.c (main): Use %F instead of %X for einfo.
2015-03-18 11:45:12 +10:30
H.J. Lu 091021faaa Exclude target-zlib if target-libjava isn't built
* configure.ac (target_configdirs): Exclude target-zlib if
	target-libjava isn't built.
	* configure: Regenerated.
2015-03-17 17:07:22 -07:00
H.J. Lu 1757d5e7cf Revert "Disable all target libraries if not building gcc"
This reverts commit 35fece71d5.
2015-03-17 17:07:22 -07:00
GDB Administrator 641754af2b Automatic date update in version.in 2015-03-18 00:00:08 +00:00
Jiri Gaisler b9f9ea2f5d sim/erc32: Removed type mismatch compiler warnings 2015-03-17 18:58:14 -04:00
Jiri Gaisler 638fcdad6a sim/erc32: Added -v command line switch for verbose output 2015-03-17 18:51:44 -04:00
Ganesh Gopalasubramanian 029f352261 Add znver1 processor 2015-03-17 21:49:15 +05:30
Yurij Grechishhev 393bd0c06b Fix name of ser_base_setstopbits's second argument.
Small copy/paste error, most likely...

gdb/ChangeLog:

	* ser-base.h (ser_base_setstopbits): Change second argument name
	from "rate" to "num".
2015-03-17 10:12:56 -04:00
H.J. Lu 5df8a8fcf1 Sync config-ml.in with GCC trunk
Sync with GCC
	2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>

	* config-ml.in: Robustify ac_configure_args parsing.
2015-03-17 05:15:34 -07:00
Gary Benson 7f3647e2ba Remove forward declaration of struct stat
Forward declarations of struct stat break the Windows build.
This commit removes a forward declaration of struct stat and
includes sys/stat.h directly instead.

gdb/ChangeLog:

	PR gdb/18131
	* common/common-remote-fileio.h (sys/stat.h): New include.
	(stuct stat): Remove forward declaration.
2015-03-17 11:26:09 +00:00
Alan Modra c4b0b099b8 Fix elf64-ppc.c electric fence warning
* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Return count of 0
	on nothing to do, before malloc of returned symbol array.
2015-03-17 13:41:01 +10:30
GDB Administrator 4d22acce07 Automatic date update in version.in 2015-03-17 00:00:08 +00:00
Yao Qi ca5fd19bfb watchpoint-reuse-slot.exp: skip setting HW breakpoints on some address
We see some fails in watchpoint-reuse-slot.exp on aarch64-linux, because
it sets some HW breakpoint on some address doesn't meet the alignment
requirements by kernel, kernel will reject the
ptrace (PTRACE_SETHBPREGS) call, and some fails are caused, for example:

(gdb) PASS: gdb.base/watchpoint-reuse-slot.exp: always-inserted off: watch x hbreak: : width 1, iter 0: base + 0: delete $bpnum
hbreak *(buf.byte + 0 + 1)^M
Hardware assisted breakpoint 80 at 0x410a61^M
(gdb) PASS: gdb.base/watchpoint-reuse-slot.exp: always-inserted off: watch x hbreak: : width 1, iter 0: base + 1: hbreak *(buf.byte + 0 + 1)
stepi^M
Warning:^M
Cannot insert hardware breakpoint 80.^M
Could not insert hardware breakpoints:^M
You may have requested too many hardware breakpoints/watchpoints.^M
^M
(gdb) FAIL: gdb.base/watchpoint-reuse-slot.exp: always-inserted off: watch x hbreak: : width 1, iter 0: base + 1: stepi advanced

hbreak *(buf.byte + 0 + 1)^M
Hardware assisted breakpoint 440 at 0x410a61^M
Warning:^M
Cannot insert hardware breakpoint 440.^M
Could not insert hardware breakpoints:^M
You may have requested too many hardware breakpoints/watchpoints.^M
^M
(gdb) FAIL: gdb.base/watchpoint-reuse-slot.exp: always-inserted on: watch x hbreak: : width 1, iter 0: base + 1: hbreak *(buf.byte + 0 + 1)

This patch is to skip some tests by checking proc valid_addr_p.
We can handle other targets in valid_addr_p too.

gdb/testsuite:

2015-03-16  Yao Qi  <yao.qi@linaro.org>

	* gdb.base/watchpoint-reuse-slot.exp (valid_addr_p): New proc.
	(top level): Skip tests if valid_addr_p returns false for
	$cmd1 or $cmd2.
2015-03-16 17:27:02 +00:00
H.J. Lu 1b6c083163 Update top-level files from GCC trunk
* Makefile.def: Updated from GCC trunk.
	* Makefile.tpl: Likewise.
	* configure.ac: Likewise.
	* Makefile.in: Regenerated.
	* configure: Likewise.
2015-03-16 09:12:37 -07:00
H.J. Lu d9a4c83b86 Sync isl.m4 with GCC tree
* isl.m4: Sync with GCC tree.
2015-03-16 08:51:37 -07:00
H.J. Lu 51f374927b Sync elf.m4 with GCC tree
Sync with GCC
	2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>

	* elf.m4 (ACX_ELF_TARGET_IFELSE): nvptx-*-none isn't ELF.
2015-03-16 08:49:06 -07:00
H.J. Lu bd51a4d557 Append -g -Os rather than overwriting
Sync with GCC
	2014-11-17  Bob Dunlop  <bob.dunlop@xyzzy.org.uk>

	* mt-ospace (CFLAGS_FOR_TARGET): Append -g -Os rather than
	overwriting.
	(CXXFLAGS_FOR_TARGET): Similarly.
2015-03-16 08:44:41 -07:00
H.J. Lu b2121c3350 Don't reset CXXFLAGS_FOR_TARGET
Sync with GCC
	2014-04-25  Marc Glisse  <marc.glisse@inria.fr>

	PR target/43538
	* mt-gnu: Don't reset CXXFLAGS_FOR_TARGET.
2015-03-16 08:41:42 -07:00
H.J. Lu 8869a24691 Sync bootstrap-asan.mk/bootstrap-lto.mk with GCC tree
* bootstrap-asan.mk: Sync with GCC tree.
	* bootstrap-lto.mk: Likewise.
2015-03-16 08:34:23 -07:00
H.J. Lu 100d311943 Remove cloog.m4
* cloog.m4: Removed.
2015-03-16 08:31:47 -07:00
H.J. Lu 35fece71d5 Disable all target libraries if not building gcc
Don't build target libraries if not building gcc.

	* configure.ac (target_configdirs): Unset if not building gcc.
	* configure: Regenerated.
2015-03-16 08:12:59 -07:00
John Baldwin 3ce5b6e25c Fetch all registers before writing the core register notes.
Without this, not all registers were present in the core generated by
gcore.  For example, running 'gcore' on a program without examining
the vector registers (SSE or AVX) would store all the vector registers
as zeros because they were not pulled into the regcache.  Running
'info vector' before 'gcore' would store the correct values in the
core since it populated the regcache.  For Linux processes, a similar
operation is achieved by having the thread iterator callback invoke
target_fetch_registers on each thread before its corresponding
register notes are dumped.

gdb/ChangeLog:

	* fbsd-tdep.c (fbsd_make_corefile_notes): Fetch all target registers
	before writing core register notes.
2015-03-16 09:48:51 -04:00
Yuanhui Zhang d053f6be55 stub termcap, add extern "C"
Fixes linking an --enable-build-with-cxx build on mingw:

 ../readline/terminal.c:278: undefined reference to `tgetnum'
 ../readline/terminal.c:297: undefined reference to `tgetnum'
 ../readline/libreadline.a(terminal.o): In function `get_term_capabilities':
 ../readline/terminal.c:427: undefined reference to `tgetstr'
 ../readline/libreadline.a(terminal.o): In function `_rl_init_terminal_io':
 [etc.]

gdb/ChangeLog:
2015-03-16  Yuanhui Zhang  <asmwarrior@gmail.com>
	    Pedro Alves  <palves@redhat.com>

	* gdb_curses.h (tgetnum): Mark with EXTERN_C.
	* stub-termcap.c (tgetent, tgetnum, tgetflag, tgetstr, tputs)
	(tgoto): Wrap with extern "C".
2015-03-16 11:36:00 +00:00
Pedro Alves b1a921c8c6 stub-termcap.c: prototype tputs's parameter's parameter, for C++ mode
src/gdb/stub-termcap.c: In function 'int tputs(char*, int, int (*)())':
 src/gdb/stub-termcap.c:67:22: error: too many arguments to function
      outfun (*string++);
		       ^

gdb/ChangeLog:
2015-03-16  Pedro Alves  <palves@redhat.com>
	    Yuanhui Zhang  <asmwarrior@gmail.com>

	* stub-termcap.c (tputs): Change prototype.
2015-03-16 11:36:00 +00:00
Yuanhui Zhang 876d1cd7b5 windows-nat.c: conflicting declaration of struct thread_info in C++ mode
Building mingw GDB with --enable-build-with-cxx shows:

 ../../binutils-gdb/gdb/windows-nat.c: At global scope:
 ../../binutils-gdb/gdb/windows-nat.c:192:1: error: conflicting declaration 'typedef struct thread_info_struct thread_info'
  thread_info;
  ^
 In file included from ../../binutils-gdb/gdb/windows-nat.c:52:0:
 ../../binutils-gdb/gdb/gdbthread.h:160:8: error: 'struct thread_info' has a previous declaration as 'struct thread_info'
  struct thread_info
	 ^

Simply rename the structure to avoid the conflict.

gdb/ChangeLog:
2015-03-16  Yuanhui Zhang  <asmwarrior@gmail.com>
	    Pedro Alves  <palves@redhat.com>

	* windows-nat.c (struct thread_info_struct): Rename to ...
	(struct windows_thread_info_struct): ... this.
	(thread_info): Rename to ...
	(windows_thread_info): ... this.
	All users updated.
2015-03-16 11:31:31 +00:00
Nick Clifton b57dc16f06 Removes a #if 1 ... #endif accidentally left in the source code.
* dwarf2dbg.c (out_header): Remove spurious #if 1.
2015-03-16 11:17:52 +00:00
Nick Clifton 9c761a5541 Fixes a problem with the RX port trying to perform linker relaxation when -no-keep-memory has been enabled.
* elf32-rx.c (elf32_rx_relax_delete_bytes): If the relocs are not
	stored in the elf_section_data structure then load them as
	necessary.
2015-03-16 11:14:07 +00:00
Mike Frysinger ba14f9419d sim: mcore/microblaze: strip trailing whitespace
No functional changes here.
2015-03-16 03:16:59 -04:00
Mike Frysinger feb703b3f4 sim: mcore/microblaze: clean up a bit
Fix some various warnings and enable the extra warnings options.
2015-03-16 03:15:31 -04:00
Mike Frysinger 6cd5ace4db sim: convert some old prototypes 2015-03-16 03:01:09 -04:00
Mike Frysinger ae7d0cac8c sim: rename tconfig.in to tconfig.h
Rather than manually include tconfig.h when we think we'll need it (which
is error prone as it can define symbols we expect from config.h), have it
be included directly by config.h.  Since we know we have to include that
header everywhere already, this will make sure tconfig.h isn't missed.

It should also be fine as tconfig.h is supposed to be simple and only set
up a few core defines for the target.

This allows us to stop symlinking it in place all the time and just use
it straight out of the respective source directory.
2015-03-16 01:23:52 -04:00
Jiri Gaisler 9c5f41df36 sim/erc32: use SIM_AC_OPTION_HOSTENDIAN to probe for host endianess 2015-03-16 01:16:35 -04:00
GDB Administrator a4f851ffab Automatic date update in version.in 2015-03-16 00:00:08 +00:00
Mike Frysinger 8406bb5944 sim: dv-sockser: push module init prototype down
Pull out the duplicated dv_sockser_install prototype from the tconfig.in
files and put it in the one place it gets used -- sim-module.c.  This is
still arguably incorrect, but it's better than the status quo where the
tconfig.in has to include header files and duplicate the dv-sockser func.
The tconfig header is meant to be simple and contain a target defines.
2015-03-15 03:05:05 -04:00
Mike Frysinger b19839da38 sim: bfin: fix signed warning
Fix the type of the local var to match the function it is passed to.
2015-03-14 20:56:39 -04:00
Mike Frysinger 1303206d7f sim: delete unused sim-inline.c rule
This dates back to the start of the repo, but has never really been used.
The sim-inline.c file has been checked in to the source, and attempts to
build it in the build tree leads to a circular dep warning from make.  It
also doesn't produce a file that is usable -- it can't be compiled.  Punt!
2015-03-14 20:56:04 -04:00
GDB Administrator c2cdb853dc Automatic date update in version.in 2015-03-15 00:00:07 +00:00
Mike Frysinger 41cc895fc8 sim: mcore/moxie: clean up makefiles a bit
Clean out stub targets and rules that get autogenerated.
2015-03-14 07:46:54 -04:00
Mike Frysinger c1e768db52 sim: msp430: use common warnings options
This triggers a bunch of new warnings, so fix some of them.
2015-03-14 07:28:26 -04:00
Mike Frysinger 465fb143c8 sim: make nrun the default run program
We want people to stop using the run.c frontend, but it's hard to notice
when it's still set as the default.  Lets flip things so nrun.c is the
default, and users of run.c will get an error by default.  We turn that
error into a warning for existing sims so we don't break them -- this is
mostly meant for people starting new ports.
2015-03-14 07:02:58 -04:00
Andreas Krebbel b9005ba76e S/390: Disable relocation sort against code sections.
When downgrading from GD to IE model we rewrite the call to
__tls_get_offset to a 64 bit load instruction. This relies on the fact
that the additional relocation for the call target has already been
executed when doing the rewrite.

   f1018:       e3 20 d0 00 00 04       lg      %r2,0(%r13)
   f101e:       c0 e5 00 00 00 00       brasl   %r14,f101e <__res_init+0x1e>
                        f101e: R_390_TLS_GDCALL __libc_resp
                        f1020: R_390_PLT32DBL   __tls_get_offset+0x2

0000000f1020  39f6c00000014 R_390_PLT32DBL    0000000000000000 __tls_get_offset + 2
0000000f101e  3afb700000026 R_390_TLS_GDCALL  0000000000000008 __libc_resp + 0

Due to the reloc sorting the order changed an the PLT32DBL reloc is
executed after the rewrite and overwrites part of the load instruction
with garbage.

bfd/
2015-03-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* elf-s390-common.c (elf_s390_elf_sort_relocs_p): Don't sort
	relocs against code sections.
	* elf32-s390.c: Define elf_backend_sort_relocs_p.
	* elf64-s390.c: Likewise.
2015-03-14 11:45:05 +01:00
Mike Frysinger 5cddc23a3a sim: drop duplicate header checks
The SIM_AC_COMMON macro already checks for a bunch of headers, so specific
sim ports need not do it themselves.
2015-03-14 06:04:29 -04:00