Commit graph

80758 commits

Author SHA1 Message Date
Ulrich Drepper
b005481975 lexsup.c (parse_args): Check whether provided SONAME is empty
string.  If yes, warn and ignore it.  Don't overwrite valid SONAME
	with empty string.
2014-06-30 06:58:52 -04:00
Alan Modra
3f201179cc daily update 2014-06-30 10:12:59 +09:30
Alan Modra
727d6f7cb0 daily update 2014-06-28 09:30:39 +09:30
Alan Modra
a03f9b1acf Avoid cascading errors due to write_object_file change
* config/obj-macho.c (obj_mach_o_set_symbol_qualifier): Don't set
	SYM_MACHO_FIELDS_NOT_VALIDATED after reporting an error.
	(obj_mach_o_frob_label): Avoid cascading errors.
	(obj_mach_o_frob_symbol): Don't set SYM_MACHO_FIELDS_NOT_VALIDATED.
2014-06-28 00:20:14 +09:30
Yao Qi
b67a2c6fd4 Associate dummy_frame with ptid
This patch is to add ptid into dummy_frame and extend frame_id to
dummy_frame_id (which has a ptid field).  With this change, GDB uses
dummy_frame_id (thread ptid and frame_id) to find the dummy frames.

Currently, dummy frames are looked up by frame_id, which isn't
accurate in non-stop or multi-process mode.  The test case
gdb.multi/dummy-frame-restore.exp shows the problem and this patch can
fix it.

Test dummy-frame-restore.exp makes two inferiors stop at
different functions, say, inferior 1 stops at f1 while inferior 2
stops at f2.  Set a breakpoint to a function, do the inferior call
in two inferiors, and GDB has two dummy frames of the same frame_id.
When the inferior call is finished, GDB will look up a dummy frame
from its stack/list and restore the inferior's regcache.  Two
inferiors are finished in different orders, the inferiors' states are
restored differently, which is wrong.  Running dummy-frame-restore.exp
under un-patched GDB, we'll get two fails:

FAIL: gdb.multi/dummy-frame-restore.exp: inf 2 first: after infcall: bt in inferior 2
FAIL: gdb.multi/dummy-frame-restore.exp: inf 2 first: after infcall: bt in inferior 1

With this patch applied, GDB will choose the correct dummy_frame to
restore for a given inferior, because ptid is considered when looking up
dummy frames.  Two fails above are fixed.

Regression tested on x86_64-linux, both native and gdbserver.

gdb:

2014-06-27  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (check_longjmp_breakpoint_for_call_dummy):
	Change parameter type to 'struct thread_info *'.  Caller
	updated.
	* breakpoint.h (check_longjmp_breakpoint_for_call_dummy):
	Update declaration.
	* dummy-frame.c (struct dummy_frame_id): New.
	(dummy_frame_id_eq): New function.
	(struct dummy_frame) <id>: Change its type to 'struct
	dummy_frame_id'.
	(dummy_frame_push): Add parameter ptid and save it in
	dummy_frame_id.
	(pop_dummy_frame_bpt): Use ptid of dummy_frame instead of
	inferior_ptid.
	(pop_dummy_frame): Assert that the ptid of dummy_frame equals
	to inferior_ptid.
	(lookup_dummy_frame): Change parameter type to 'struct
	dummy_frame_id *'.  Callers updated.  Call dummy_frame_id_eq
	instead of frame_id_eq.
	(dummy_frame_pop): Add parameter ptid.  Callers updated.
	Update comments.  Compose dummy_frame_id and pass it to
	lookup_dummy_frame.
	(dummy_frame_discard): Add parameter ptid.
	(dummy_frame_sniffer): Compose dummy_frame_id and call
	dummy_frame_id_eq instead of frame_id_eq.
	(fprint_dummy_frames): Print ptid.
	* dummy-frame.h: Remove comments.
	(dummy_frame_push): Add ptid in declaration.
	(dummy_frame_pop, dummy_frame_discard): Likewise.

gdb/testsuite:

2014-06-27  Yao Qi  <yao@codesourcery.com>

	* gdb.multi/dummy-frame-restore.exp: New.
	* gdb.multi/dummy-frame-restore.c: New.

gdb/doc:

2014-06-27  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Maintenance Commands): Update the output of
	'maint print dummy-frames' command.
2014-06-27 20:06:56 +08:00
Ludovic Courtès
9393ab1c00 PR external/{16327,16328}: Remove etc/configure.texi and etc/standards.texi.
etc/ChangeLog
2014-06-27  Ludovic Courtès  <ludo@gnu.org>

	PR external/16327
	PR external/16328
	* Makefile.in (MAKEINFO, TEXI2DVI, TEXI2PDF, TEXI2HTML, DVIPS)
	(TEXIDIR, INFOFILES, DVIFILES, PDFFILES, HTMLFILES): Remove.
	(all): Remove dependency on 'info'.
	(install): Remove dependency on 'install-info'.
	(standards.info, standards.html, standards.dvi, standards.ps)
	(standards.pdf, configure.info, configure.dvi, configure.ps)
	(configure.pdf, configure.pdf): Remove.
	(info, install-info, html, install-html, dvi, pdf, install-pdf)
	clean, maintainer-clean, realclean): Remove body.
	* etc/configbuild.ein, etc/configbuild.fig, etc/configbuild.jin,
	etc/configbuild.tin, etc/configdev.ein, etc/configdev.fig,
	etc/configdev.jin, etc/configdev.tin, etc/configure.texi,
	etc/fdl.texi, etc/gnu-oids.texi, etc/make-stds.texi,
	etc/standards.texi: Remove.
2014-06-27 11:33:25 +02:00
Alan Modra
7b54904566 Fix undefined symbol errors from mips.cc
* symtab.cc (Symbol::should_add_dynsym_entry): Don't make inline.
2014-06-27 10:42:28 +09:30
Alan Modra
e2ca13570c daily update 2014-06-27 09:30:38 +09:30
Tom Tromey
5b10184c58 constify error_no_arg
This is a trivial patch to make error_no_arg take a const argument.

2014-06-26  Tom Tromey  <tromey@redhat.com>

	* cli/cli-cmds.c (error_no_arg): Make "why" const.
	* command.h (error_no_arg): Update.
2014-06-26 09:14:18 -06:00
Tom Tromey
069003265c constify do_set_command and do_show_command
This changes do_set_command and do_show_command to take const
arguments.

2014-06-26  Tom Tromey  <tromey@redhat.com>

	* cli/cli-setshow.c (do_set_command): Make "arg" const.
	(do_show_command): Make "arg" const.
	* cli/cli-setshow.h (do_set_command, do_show_command): Update.
2014-06-26 09:14:17 -06:00
Tom Tromey
c2bcbb1d04 constify get_bookmark and goto_bookmark
This makes arguments to to_get_bookmark and to_goto_bookmark const and
fixes the fallout.  Tested by rebuilding.  The only thing of note is
the new split between cmd_record_goto and record_goto -- basically
separating the CLI function from a new internal API, to allow const
propagation.

2014-06-26  Tom Tromey  <tromey@redhat.com>

	* record-full.c (record_full_get_bookmark): Make "args" const.
	(record_full_goto_bookmark): Make "raw_bookmark" const.
	* record.c (record_goto): New function.
	(cmd_record_goto): Use it.  Now static.
	* record.h (record_goto): Declare.
	(cmd_record_goto): Remove declaration.
	* target-delegates.c: Rebuild.
	* target.h (struct target_ops) <to_get_bookmark,
	to_goto_bookmark>: Make parameter const.
2014-06-26 09:14:16 -06:00
Tom Tromey
9cbe5fff2b constify to_load
This makes the argument to the target_ops to_load method "const", and
fixes up the fallout.  Tested by rebuilding all the affected files.

2014-06-26  Tom Tromey  <tromey@redhat.com>

	* defs.h (generic_load): Update.
	* m32r-rom.c (m32r_load_gen): Make "filename" const.
	* monitor.c (monitor_load): Make "args" const.
	* remote-m32r-sdi.c (m32r_load): Make "args" const.
	* remote-mips.c (mips_load_srec, pmon_load_fast): Make "args"
	const.
	(mips_load): Make "file" const.
	* remote-sim.c (gdbsim_load): Make "args" const.
	* remote.c (remote_load): Make "name" const.
	* symfile.c (generic_load): Make "args" const.
	* target-delegates.c: Rebuild.
	* target.c (target_load): Make "arg" const.
	(debug_to_load): Make "args" const.
	* target.h (struct target_ops) <to_load>: Make parameter const.
	(target_load): Update.
2014-06-26 09:14:14 -06:00
Tom Tromey
34a68019cc fix memory errors with demangled name hash
This fixes a regression that Jan pointed out.

The bug is that some names were allocated by dwarf2read on the objfile
obstack, but then passed to SYMBOL_SET_NAMES with copy_name=0.  This
violates the invariant that the names must have a lifetime tied to the
lifetime of the BFD.

The fix is to allocate names on the per-BFD obstack.

I looked at all callers, direct or indirect, of SYMBOL_SET_NAMES that
pass copy_name=0.  Note that only the ELF and DWARF readers do this;
other symbol readers were never updated (and perhaps cannot be,
depending on the details of the formats).  This is why the patch is
relatively small.

Built and regtested on x86-64 Fedora 20.

2014-06-26  Tom Tromey  <tromey@redhat.com>

	PR symtab/16902:
	* dwarf2read.c (fixup_go_packaging, dwarf2_compute_name)
	(dwarf2_physname, read_partial_die)
	(guess_partial_die_structure_name, fixup_partial_die)
	(guess_full_die_structure_name, anonymous_struct_prefix)
	(dwarf2_name): Use per-BFD obstack.
2014-06-26 08:11:04 -06:00
Erik Akermann
334ac421ef This adds the ability to the strings program to display strings that contain \n and \r characters.
* strings.c: Add -w/--include-all-whitespace option to include any
	whitespace character in the displayed strings.
	* NEWS: Mention the new feature.
	* doc/binutils.texi (strings): Document the new command line
	option.
2014-06-26 14:10:48 +01:00
Philippe De Muyter
6ddf779d8e Fix a compile time warning on 32-bit hosts.
* or1k-desc.h (spr_field_masks): Add U suffix to the end of long
	constants.
2014-06-26 13:18:04 +01:00
Linda Zhang
eeb14e5a5b Change the default behaviour of the PE targeted linker so that timestamps are
inserted.  This is for compatibility with other, non-GNU tools.  Deterministic
binaries can still be created by using the new --no-insert-timestamp command line
option.

	* emultempl/pe.em: Initialise insert_timestamp to true.
	Add a --no-insert-timestamp command line option.
	* emultempl/pep.em: Likewise.
	* ld.texinfo: Document that --insert-timestamp is enabled by
	default and that it now has an inverse command line option.
	* NEWS: Mention the new behaviour.
2014-06-26 12:18:39 +01:00
Nick Clifton
df565f326e Fixes part of a problem reading deliberately non-conforming ELF binaries - where a
note segment is present but no note section.

	* readelf.c (process_note_sections): If there are no note sections
	try processing note segments instead.
2014-06-26 09:34:24 +01:00
Yao Qi
efc889c1a8 Move local variables to inner block
dummy_frame_sniffer has two local variables dummyframe and this_id,
but they are only used in the if block below.  This patch is to move
them into the inner block.

gdb:

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

	* dummy-frame.c (dummy_frame_sniffer): Move local variables
	dummyframe and this_id into inner block below.
2014-06-26 16:26:01 +08:00
Nick Clifton
60d77146a2 Fixes a problem displaying the contents of a binary containing corrupt debug
information, specifically a DW_AT_MIPS_linkage_name attribute that has a numeric
value rather than a string value.

	PR binutils/16949
	* dwarf2.c (is_str_attr): New function.
	(find_abstract_instance_name): Use it to determine when an
	attribute has a string value.
2014-06-26 09:12:55 +01:00
Yao Qi
4395285e33 Typo fix in signal_pass initialization
When I read the code, I happen to see this:

   signal_pass = (unsigned char *)
     xmalloc (sizeof (signal_program[0]) * numsigs);
                      ^^^^^^^^^^^^^^
It is a typo, and this patch is to fix it.

gdb:

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

	* infrun.c (_initialize_infrun): Replace "signal_program[0]"
	with "signal_pass[0]" in the initialization of signal_pass.
2014-06-26 16:00:17 +08:00
Alan Modra
cbac4466d7 daily update 2014-06-26 09:30:37 +09:30
Nick Clifton
9d069ac37f Fixes to allow a toolchain configured with --enable-all to build on a 32-bit host.
* Makefile.am (ALL_EMULATION_SOURCES): Move ei386pep.c from
	here...
	(ALL_64_EMULATION_SOURCES): ... to here.
	(ALL_EMUL_EXTRA_OFILES): Move pep-dll.o from here...
	(ALL_64_EMUL_EXTRA_OFILES): New.  ... to here.
	* configure.in (EMUL_EXTRA_OFILES): Include
	ALL_64_EMUL_EXTRA_OFILES when making a 64-bit enabled build.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
2014-06-25 16:35:58 +01:00
Kyle McMartin
28bf260962 ld/arm: adjust offsets in tls-gdierelax2.d
Addition of DF_STATIC_TLS in eea6dad2 results in the addition of
flags to the dynamic section, which in turn changes these addresses.
Fix them up to match their new positions.

ld/testsuite/Changelog:

2014-06-24  Kyle McMartin  <kyle@redhat.com>

	* ld-arm/tls-gdierelax2.d: Fix expected offsets.
2014-06-25 10:57:45 -04:00
Markus Metzger
aef929023e btrace: pretend we're not replaying when generating a core file
When generating a core file using the "generate-core-file" command while
replaying with the btrace record target, we won't be able to access all
registers and all memory.  This leads to the following assertion:

    gdb/regcache.c:1034: internal-error: regcache_raw_supply: Assertion `regnum >= 0 && regnum < regcache->descr->nr_raw_registers' failed.
    A problem internal to GDB has been detected,
    further debugging may prove unreliable.
    Quit this debugging session? (y or n) FAIL: gdb.btrace/gcore.exp: generate-core-file core (GDB internal error)
    Resyncing due to internal error.

Pretend that we are not replaying while generating a core file.  This will
forward fetch and store registers as well as xfer memory calls to the target
beneath.

gdb/
	* record-btrace.c (record_btrace_generating_corefile)
	(record_btrace_prepare_to_generate_core)
	(record_btrace_done_generating_core): New.
	(record_btrace_xfer_partial, record_btrace_fetch_registers)
	(record_btrace_store_registers, record_btrace_prepare_to_store):
	Forward request when generating a core file.
	(record_btrace_open): Set record_btrace_generating_corefile to zero.
	(init_record_btrace_ops): Set to_prepare_to_generate_core and
	to_done_generating_core.

testsuite/
	* gdb.btrace/gcore.exp: New.
2014-06-25 09:59:08 +02:00
Markus Metzger
5fff78c4e0 gcore, target: allow target to prepare/cleanup for/after core file generation
Add new target functions to_prepare_to_generate_core and
to_done_generating_core that are called before and after generating a core
file, respectively.

This allows targets to prepare for core file generation and to clean up
afterwards.

gdb/
	* target.h (target_ops) <to_prepare_to_generate_core>
	<to_done_generating_core>: New.
	(target_prepare_to_generate_core, target_done_generating_core): New.
	* target.c (target_prepare_to_generate_core)
	(target_done_generating_core): New.
	* target-delegates.c: Regenerate.
	* gcore.c: (write_gcore_file): Rename to ...
	(write_gcore_file_1): ...this.
	(write_gcore_file): Call target_prepare_to_generate_core
	and target_done_generating_core.
2014-06-25 09:57:16 +02:00
Markus Metzger
1d1f1ccb33 make_corefile_notes: have caller free returned memory
The various make_corefile_notes implementations for gdbarch as well as target
currently make an xfree cleanup on the data they return.  This causes problems
when trying to put a TRY_CATCH around the make_corefile_notes call.
Specifically, we get a stale cleanup error in restore_my_cleanups.

Omit the make_cleanup and have the caller free the memory.

gdb/
	* fbsd-nat.c (fbsd_make_corefile_notes): Remove make_cleanup call.
	* gcore.c (write_gcore_file): Free memory returned from
	make_corefile_notes.
	* linux-tdep.c (linux_make_corefile_notes): Remove make_cleanup call.
	* procfs.c (procfs_make_note_section): Remove make_cleanup call.
2014-06-25 09:54:31 +02:00
Alan Modra
31f0c4c1c6 daily update 2014-06-25 09:30:37 +09:30
Cary Coutant
cb818dbff5 Fix dwp to allow intermediate .dwp files with no .debug_types sections.
gold/
	* dwp.cc (Dwo_file::read): Allow files with no .debug_types
	sections.
	(Dwo_file::sized_read_unit_index): Likewise.
2014-06-24 12:17:09 -07:00
Eli Zaretskii
f179cf97a0 Minor improvements in manual indexing.
* doc/gdb.texinfo (Screen Size): Add more index entries.
2014-06-24 19:28:40 +03:00
Alan Modra
15bfcc7768 Don't strip section defining _SDA_BASE_
Prior to 93d1b056 _SDA_BASE_ used to be defined in a linker script
output section.  Now _SDA_BASE_ is defined in an input section that is
subject to being stripped.  If the section is stripped we don't output
the symbol, which results in --emit-relocs trying to emit relocs with
dangling references to _SDA_BASE_.

	* elf32-ppc.c (ppc_elf_size_dynamic_sections): Arrange to keep
	.sdata/.sdata2 when _SDA_BASE_/_SDA2_BASE_ should be output
	for --emit-relocs.
2014-06-24 13:39:04 +09:30
Yao Qi
3343ef8687 Skip 'bx reg' on arm-linux
In arm-tdep.c, arm_skip_stub is installed to gdbarch
skip_trampoline_code, but in arm-linux-tdep.c,
find_solib_trampoline_target is installed to skip_trampoline_code.
That means gdb configured for arm-linux target doesn't recognize some
arm specific trampolines or stubs.  Beside handling generic solib
trampoline, gdb for arm-linux target should be able to handle arm
specific trampolines.  This patch is to skip arm specific stubs, if
any, and as a fallback, skip the generic solib trampoline.

gdb:

2014-06-24  Yao Qi  <yao@codesourcery.com>

	* arm-linux-tdep.c (arm_linux_skip_trampoline_code): New.
	(arm_linux_init_abi): Set skip_trampoline_code with
	gdbarch_skip_trampoline_code instead of
	find_solib_trampoline_target.
2014-06-24 09:30:34 +08:00
Yao Qi
18d18ac810 Apply stub unwinder to 'bx reg' trampoline
In target arm-none-eabi, prologue unwinder is used for trampoline
'bx reg'.  However, in target arm-linux, exidx unwinder is selected for
trampoline at first, which is not expected.  The main function and the
trampoline is,

   0x00009dfc <main+0>: push    {r4, r5, r6, r7, lr}
   ......
   0x0000ac30 <main+3636>:      ldrdeq  r3, [r1], -r8
   0x0000ac34:  bx      r2
   0x0000ac36:  bx      r4

and .ARM.exidx is:

0x9dfc <main>: @0xb404
  Compact model index: 1
  0x97      vsp = r7
  0x20      vsp = vsp + 132
  0x3f      vsp = vsp + 256
  0x80 0xf0 pop {r8, r9, r10, r11}
  0xab      pop {r4, r5, r6, r7, r14}

0xac38 <__aeabi_drsub>: 0x1 [cantunwind]

Trampolines 'bx r2' and 'bx r4' doesn't belong to main, but the exidx
for main is still selected form them because there is no end address
of each exidx entry.

Instead of teaching exidx unwinder ignore this trampoline (which looks
complicated and error prone), I decide to let stub unwinder to handle
trampoline, because stub undwinder is installed before exidx unwinder,
and this trampoline can be regarded as a stub too.

This patch is to add the code to match 'bx reg' trampoline in the
sniffer of stub unwinder.

gdb:

2014-06-24  Yao Qi  <yao@codesourcery.com>

	* arm-tdep.c (arm_stub_unwind_sniffer): Return 1 if
	arm_skip_bx_reg returns	non-zero.
2014-06-24 09:30:29 +08:00
Yao Qi
80d8d3908b Skip 'bx reg' trampoline on arm-none-eabi
After this patch
<https://gcc.gnu.org/ml/gcc-patches/2005-01/msg00813.html> applied to
GCC, a new trampoline is generated but GDB doesn't recognize it.  This
patch is to teach GDB to understand this trampoline.  See details
about this trampoline and the heuristics in the comments.

gdb:

2014-06-24  Yao Qi  <yao@codesourcery.com>

	* arm-tdep.c (arm_skip_bx_reg): New function.
	(arm_skip_stub): Call arm_skip_bx_reg.
2014-06-24 09:30:24 +08:00
Alan Modra
03e46fbd35 daily update 2014-06-24 09:31:18 +09:30
Sasa Stankovic
9810d34d76 gold/
* mips.cc: New file.
	* Makefile.am (TARGETSOURCES): Add mips.cc
	(ALL_TARGETOBJS): Add mips.$(OBJEXT)
	* configure.tgt: Add entries for mips*.
	* configure.ac: Likewise.
	* Makefile.in: Regenerate.
	* configure: Likewise.
2014-06-23 12:02:10 -07:00
Don Breazeal
6a18a01c33 Add myself as write-after-approval maintainer. 2014-06-23 11:27:42 -07:00
Pedro Alves
8e9db26e29 x86 Linux watchpoints: Couldn't write debug register: Invalid argument.
This patch fixes this on x86 Linux:

 (gdb) watch *buf@2
 Hardware watchpoint 8: *buf@2
 (gdb) si
 0x00000000004005a7      34        for (i = 0; i < 100000; i++); /* stepi line */
 (gdb) del
 Delete all breakpoints? (y or n) y
 (gdb) watch *(buf+1)@1
 Hardware watchpoint 9: *(buf+1)@1
 (gdb) si
 0x00000000004005a7 in main () at ../../../src/gdb/testsuite/gdb.base/watchpoint-reuse-slot.c:34
 34        for (i = 0; i < 100000; i++); /* stepi line */
 Couldn't write debug register: Invalid argument.
 (gdb)

In the example above the debug registers are being switched from this
state:

        CONTROL (DR7): 0000000000050101          STATUS (DR6): 0000000000000000
        DR0: addr=0x0000000000601040, ref.count=1  DR1: addr=0x0000000000000000, ref.count=0
        DR2: addr=0x0000000000000000, ref.count=0  DR3: addr=0x0000000000000000, ref.count=0

to this:

        CONTROL (DR7): 0000000000010101          STATUS (DR6): 0000000000000000
        DR0: addr=0x0000000000601041, ref.count=1  DR1: addr=0x0000000000000000, ref.count=0
        DR2: addr=0x0000000000000000, ref.count=0  DR3: addr=0x0000000000000000, ref.count=0

That is, before, DR7 was setup for watching a 2 byte region starting
at what's in DR0 (0x601040).

And after, DR7 is setup for watching a 1 byte region starting at
what's in DR0 (0x601041).

We always write DR0..DR3 before DR7, because if we enable a slot's
bits in DR7, you need to have already written the corresponding
DR0..DR3 registers -- the kernel rejects the DR7 write with EINVAL
otherwise.

The error shown above is the opposite scenario.  When we try to write
0x601041 to DR0, DR7's bits still indicate intent of watching a 2-byte
region.  That DR0/DR7 combination is invalid, because 0x601041 is
unaligned.  To watch two bytes, we'd have to use two slots.  So the
kernel errors out with EINVAL.

Fix this by always first clearing DR7, then writing DR0..DR3, and then
setting DR7's bits.

A little optimization -- if we're disabling the last watchpoint, then
we can clear DR7 just once.  The changes to nat/i386-dregs.c make that
easier to detect, and as bonus, they make it a little easier to make
sense of DR7 in the debug logs, as we no longer need to remember we're
seeing stale bits.

Tested on x86_64 Fedora 20, native and GDBserver.

This adds an exhaustive test that switches between many different
combinations of watchpoint types and addresses and widths.

gdb/
2014-06-23  Pedro Alves  <palves@redhat.com>

	* amd64-linux-nat.c (amd64_linux_prepare_to_resume): Clear
	DR_CONTROL before setting DR0..DR3.
	* i386-linux-nat.c (i386_linux_prepare_to_resume): Likewise.
	* nat/i386-dregs.c (i386_remove_aligned_watchpoint): Clear all
	bits of DR_CONTROL related to the debug register slot being
	disabled.  If all slots are vacant, clear local slowdown as well,
	and assert DR_CONTROL is 0.

gdb/gdbserver/
2014-06-23  Pedro Alves  <palves@redhat.com>

	* linux-x86-low.c (x86_linux_prepare_to_resume): Clear DR_CONTROL
	before setting DR0..DR3.

gdb/testsuite/
2014-06-23  Pedro Alves  <palves@redhat.com>

	* gdb.base/watchpoint-reuse-slot.c: New file.
	* gdb.base/watchpoint-reuse-slot.exp: New file.
2014-06-23 16:44:04 +01:00
Siva Chandra
70afc5b72d Align behavior of xmethod commands with that of pretty-printer commands.
Currently, the xmethod commands lookup xmethod matchers in the current
progspace even if the locus regular expression matches the progspace's
filename.  Pretty printer commands do not match the current progspace's
filename.

gdb/

	* python/lib/gdb/command/xmethods.py
	(get_method_matchers_in_loci):  Lookup xmethod matchers in the
	current progspace only if the string "progspace" matches LOCUS_RE.

gdb/testsuite

	* gdb.python/py-xmethods.exp: Use "progspace" instead of the
	progspace's filename in 'info', 'enable' and 'disable' command
	tests.
2014-06-23 04:57:51 -07:00
Jan Kratochvil
b972bd9c13 testsuite: Use istarget and is_lp64_target for 3 testcases.
On x86_64 with -m32 or on i686 it will:

Running ./gdb.arch/amd64-stap-special-operands.exp ...
gdb compile failed, amd64-stap-triplet.c: Assembler messages:
amd64-stap-triplet.c:35: Error: bad register name `%rbp'
amd64-stap-triplet.c:38: Error: bad register name `%rsp'
amd64-stap-triplet.c:40: Error: bad register name `%rbp)'
amd64-stap-triplet.c:41: Error: bad register name `%rsi'
amd64-stap-triplet.c:42: Error: bad register name `%rbp)'
/tmp/ccjOdmpl.s:63: Error: bad register name `%rbp'

2014-06-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/amd64-stap-special-operands.exp: Use is_lp64_target.
	* gdb.arch/amd64-stap-optional-prefix.exp: Likewise.
	* gdb.dwarf2/dw2-error.exp: Use istarget and is_lp64_target.

Message-ID: <20140622211401.GA3716@host2.jankratochvil.net>
2014-06-23 08:24:36 +02:00
Alan Modra
6bd23fd2c7 daily update 2014-06-23 09:30:34 +09:30
Alan Modra
d17c74c1d4 daily update 2014-06-22 09:30:37 +09:30
Alan Modra
aed4ab287a daily update 2014-06-21 09:30:43 +09:30
Philippe De Muyter
886aba9eff Fix fallout from 6d00b590
* targets.c (_bfd_target_vector): Add missing #ifdef BFD64 for
	a number of targets.
2014-06-21 09:22:12 +09:30
Jan Kratochvil
840ed64d1c Fix --with-system-readline with readline-6.3 patch 5
I have filed now:
	--with-system-readline uses bundled readline include files
	https://sourceware.org/bugzilla/show_bug.cgi?id=17077

To see any effect of the patch below you have to do:
	rm -rf readline
Otherwise readline include files get used the bundled ones from GDB which are
currently 6.2 while system readline may be 6.3 already.

You also have to use system readline-6.3 including its upstream patch:
	[Bug-readline] Readline-6.3 Official Patch 5
	http://lists.gnu.org/archive/html/bug-readline/2014-04/msg00018.html
	Message-ID: <140415125618.AA57598.SM@caleb.ins.cwru.edu>

In short it happens on Fedora Rawhide since:
	readline-6.3-1.fc21
	https://koji.fedoraproject.org/koji/buildinfo?buildID=538941

The error is:
	../../gdb/tui/tui-io.c:132:1: error: 'Function' is deprecated [-Werror=deprecated-declarations]
	 static Function *tui_old_rl_getc_function;
	 ^
	../../gdb/tui/tui-io.c:133:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
	 static VFunction *tui_old_rl_redisplay_function;
	 ^
	../../gdb/tui/tui-io.c:134:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
	 static VFunction *tui_old_rl_prep_terminal;
	 ^
	../../gdb/tui/tui-io.c:135:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
	 static VFunction *tui_old_rl_deprep_terminal;
	 ^

It is since bash change:
lib/readline/rltypedefs.h
       - remove old Function/VFunction/CPFunction/CPPFunction typedefs as
	 suggested by Tom Tromey <tromey@redhat.com>

The new typedefs used below are present in readline/rltypedefs.h since:
	git://git.savannah.gnu.org/bash.git
	commit 28ef6c316f1aff914bb95ac09787a3c83c1815fd
	Date:   Fri Apr 6 19:14:31 2001 +0000

gdb/
2014-06-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix --with-system-readline with readline-6.3 patch 5.
	* tui/tui-io.c (tui_old_rl_getc_function, tui_old_rl_redisplay_function)
	(tui_old_rl_prep_terminal, tui_old_rl_deprep_terminal): Use rl_*_t
	types.

Message-ID: <20140620105004.GA22236@host2.jankratochvil.net>
2014-06-20 17:43:56 +02:00
Tom Tromey
26f2dc3065 make obstack object allocators more type-safe
This changes OBSTACK_ZALLOC and OBSTACK_CALLOC to cast their value to
the correct type.  This is more type-safe and also is more in line
with the other object-allocation macros in libiberty.h.

Making this change revealed one trivial error in dwarf2read.c.
On the whole that seems pretty good to me.

Tested by rebuilding.

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

	* dwarf2read.c (dw2_get_real_path): Use correct type in
	OBSTACK_CALLOC.
	* gdb_obstack.h (OBSTACK_ZALLOC, OBSTACK_CALLOC): Cast result.
2014-06-20 08:44:19 -06:00
Gary Benson
698b3e0833 Fix mingw32 build on x86-64 RHEL 6.5
This commit fixes the mingw32 build on x86-64 RHEL 6.5.

gdb/gdbserver/
2014-06-20  Gary Benson  <gbenson@redhat.com>

	* configure.ac (AC_REPLACE_FUNCS) <vasprintf, vsnprintf>: Removed.
	* configure: Regenerated.
	* config.in: Likewise.
2014-06-20 15:41:28 +01:00
Gary Benson
125f8a3dde Move shared native target specific code to gdb/nat
https://sourceware.org/gdb/wiki/Common describes the following
directory structure:

 gdb/nat/
   Native target backend files. Code that interfaces with the
   host debug API. E.g., ptrace code, Windows debug API code,
   procfs code should go here.

 gdb/target/
   Host-independent, target vector specific code (target_ops).

 gdb/common/
   All other shared code.

This commit moves all native target backend files currently in
gdb/common to gdb/nat.

gdb/
2014-06-20  Gary Benson  <gbenson@redhat.com>

	* common/gdb_thread_db.h: Moved to nat.  All includes updated.
	* common/glibc_thread_db.h: Likewise.
	* common/i386-cpuid.h: Likewise.
	* common/i386-gcc-cpuid.h: Likewise.
	* common/linux-btrace.h: Likewise.
	* common/linux-osdata.h: Likewise.
	* common/linux-procfs.h: Likewise.
	* common/linux-ptrace.h: Likewise.
	* common/mips-linux-watch.h: Likewise.
	* common/linux-btrace.c: Moved to nat.
	* common/linux-osdata.c: Likewise.
	* common/linux-procfs.c: Likewise.
	* common/linux-ptrace.c: Likewise.
	* common/mips-linux-watch.c: Likewise.
	* nat/gdb_thread_db.h: Moved from common.
	* nat/glibc_thread_db.h: Likewise.
	* nat/i386-cpuid.h: Likewise.
	* nat/i386-gcc-cpuid.h: Likewise.
	* nat/linux-btrace.c: Likewise.
	* nat/linux-btrace.h: Likewise.
	* nat/linux-osdata.c: Likewise.
	* nat/linux-osdata.h: Likewise.
	* nat/linux-procfs.c: Likewise.
	* nat/linux-procfs.h: Likewise.
	* nat/linux-ptrace.c: Likewise.
	* nat/linux-ptrace.h: Likewise.
	* nat/mips-linux-watch.c: Likewise.
	* nat/mips-linux-watch.h: Likewise.
	* Makefile.in (HFILES_NO_SRCDIR): Reflect new locations.
	(object file files): Reordered.
	* gdb/copyright.py (EXCLUDE_LIST): Reflect new location
	of glibc_thread_db.h.

gdb/gdbserver/
2014-06-20  Gary Benson  <gbenson@redhat.com>

	* Makefile.in (SFILES): Update locations for files moved
	from common to nat.
	(object file files): Reordered.

gdb/testsuite/
2014-06-20  Gary Benson  <gbenson@redhat.com>

	* gdb.arch/i386-avx.exp: Fix include file location.
	* gdb.arch/i386-sse.exp: Likewise.
2014-06-20 14:06:48 +01:00
Gary Benson
42995dbda6 Vectorize gdbserver x86 debug register accessors
This commit makes gdbserver access the x86 debug register accessor
functions via the same function vector as GDB proper.  This removes
a chunk of conditional code that was previously in i386-{nat,low}.h
and leaves a single macro as the only GDB/gdbserver difference in
nat/i386-dregs.c.

gdb/
2014-06-20  Gary Benson  <gbenson@redhat.com>

	* i386-nat.h (debug_hw_points): Moved to nat/i386-dregs.c.
	(i386_dr_low_type): Moved to nat/i386-dregs.h.
	(i386_dr_low): Likewise.
	(i386_dr_low_can_set_addr): Moved to nat/i386-dregs.c.
	(i386_dr_low_set_addr): Likewise.
	(i386_dr_low_get_addr): Likewise.
	(i386_dr_low_can_set_control): Likewise.
	(i386_dr_low_set_control): Likewise.
	(i386_dr_low_get_control): Likewise.
	(i386_dr_low_get_status): Likewise.
	(i386_get_debug_register_length): Likewise.
	* nat/i386-dregs.h (i386_dr_low_type): Moved from i386-nat.h.
	(i386_dr_low): Likewise.
	* nat/i386-dregs.c (i386-low.h): Remove include.
	(i386-nat.h): Likewise.
	(nat/i386-dregs.h): New include.
	(i386_dr_low_can_set_addr): Moved from i386-nat.h.
	(i386_dr_low_set_addr): Likewise.
	(i386_dr_low_get_addr): Likewise.
	(i386_dr_low_can_set_control): Likewise.
	(i386_dr_low_set_control): Likewise.
	(i386_dr_low_get_control): Likewise.
	(i386_dr_low_get_status): Likewise.
	(i386_get_debug_register_length): Likewise.
	(debug_hw_points): Likewise.

gdb/gdbserver/
2014-06-20  Gary Benson  <gbenson@redhat.com>

	* i386-low.h (i386_dr_low_can_set_addr): Removed.
	(i386_dr_low_set_addr): Likewise.
	(i386_dr_low_get_addr): Likewise.
	(i386_dr_low_can_set_control): Likewise.
	(i386_dr_low_set_control): Likewise.
	(i386_dr_low_get_control): Likewise.
	(i386_dr_low_get_status): Likewise.
	(i386_get_debug_register_length): Likewise.
	* linux-x86-low.c (i386_dr_low_set_addr):
	Changed signature.  Made static.
	(i386_dr_low_get_addr): Likewise.
	(i386_dr_low_set_control): Likewise.
	(i386_dr_low_get_control): Likewise.
	(i386_dr_low_get_status): Likewise.
	(i386_dr_low): New global variable.
	* win32-i386-low.c (i386_dr_low_set_addr):
	Changed signature.  Made static.
	(i386_dr_low_get_addr): Likewise.
	(i386_dr_low_set_control): Likewise.
	(i386_dr_low_get_control): Likewise.
	(i386_dr_low_get_status): Likewise.
	(i386_dr_low): New global variable.
2014-06-20 13:05:50 +01:00
Marcus Shawcroft
e1d2394b50 Fix gdbserver cross build.
The recent libiberty patch caused issues when cross building
gdbserver.  The Makefile ends invoking the build machine's "ar"
instead of the --host version:

  ar  ./libiberty.a \
	    ./regex.o (...)

  ar: illegal option -- .
  Usage: ar [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...
	 ar -M [<mri-script]

The libiberty configure script does probe for and finds an appropriate
AR.  However, gdbserver's configure does not probe for AR and
overrides the AR used in the libiberty build by explicitly passing AR
to the sub-builds.

gdb/gdbserver/
2014-06-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* configure.ac: Invoke. AC_CHECK_TOOL(AR, ar).
	* Makefile.in (AR, AR_FLAGS): Define.
	* configure: Regenerate.
2014-06-20 11:48:15 +01:00
Kyle McMartin
eea6dad2b3 Similarly to the AArch64 patch, set DF_STATIC_TLS for consistency with
other architectures when we emit IE relocs in a shared library.

	* elf32-arm.c (elf32_arm_check_relocs): Set DF_STATIC_TLS when
	emitting initial-exec relocs when not linking an executable.
2014-06-20 11:14:09 +01:00