Commit Graph

89909 Commits

Author SHA1 Message Date
Doug Evans a3a5feccd2 New function tyscm_scm_to_type.
gdb/ChangeLog:

	* guile/guile-internal.h (tyscm_scm_to_type): Declare.
	* guile/scm-type.c (tyscm_scm_to_type): New function.
2017-03-16 09:26:18 -07:00
Doug Evans f8d995870f Lazy strings can be made from arrays too.
gdb/doc/ChangeLog:

	* guile.texi (Lazy Strings In Guile): Mention arrays.
	* python.texi (Lazy Strings In Python): Ditto.
2017-03-16 09:22:51 -07:00
Jiong Wang 28f1c60507 [Patch] Fix variable type glitch in inf-ptrace.c
gdb/
	* inf-ptrace.c (inf_ptrace_peek_poke): Change the type to "ULONGEST"
	for "skip".
2017-03-16 15:02:15 +00:00
Thomas Preud'homme ec3b243d43 Fix expect for gdb.cp/m-static.exp
The expectation in gdb.cp/m-static.exp for the ptype of
single_constructor is to get in the result of destructor with the
following prototype: ~single_constructor(int).

Yet, m-static.cc declares the destructor as ~single_constructor(). This
commit fixes the expectation.

2017-03-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	gdb/testsuite/
	* gdb.cp/m-static.exp: Fix expectation for prototype of
	test5.single_constructor and single_constructor::single_constructor.
2017-03-16 14:02:31 +00:00
Rinat Zelig 2c52e2e8c9 gas/arc: Limit special handling of t/nt flag to ARCv2
In a later commit I'll be adding a new version of the ".nt" flag for an
ARC700 extension (NPS400) which does not require this same special
handling.

In this commit I have restricted the special flag handling to only apply
if we are assembling for ARCv2.  This is a restructuring commit, and
there should be no user visible changes after this commit.

gas/ChangeLog:

	* config/tc-arc.c (assemble_insn): Only handle ".t" and ".nt"
	specially for ARCv2.
2017-03-16 10:07:22 +00:00
GDB Administrator e189bfe660 Automatic date update in version.in 2017-03-16 00:00:45 +00:00
Vladimir Radosavljevic aab2c17756 Mips: Fix TLS LDM GOT entry.
gold/
	* mips.cc (Mips_got_entry::hash()): Shift addend to reduce
	possibility of collisions.
	(Mips_got_entry::equals): Fix case for GOT_TLS_LDM
	entries.
2017-03-15 16:51:35 -07:00
Vladimir Radosavljevic 4d78db49e6 Mips: Omit empty objects for merging processor-specific data.
gold/
	* mips.cc (Mips_relobj::merge_processor_specific_data_): New data
	member.
	(Mips_relobj::merge_processor_specific_data): New method.
	(Mips_relobj::do_read_symbols): Set merge_processor_specific_data_
	to false, only if the input file is a binary or if object has no
	contents except the section name string table and an empty symbol
	table with the undefined symbol.
	(Target_mips::do_finalize_sections): Refactor.  Skip empty object files
	for merging processor-specific data.
2017-03-15 16:51:35 -07:00
Vladimir Radosavljevic 152c92b261 Mips: Add support for resolving multiple consecutive relocations.
gold/
	* mips.cc (Target_mips::Relocate::calculated_value_): New data
	member.
	(Target_mips::Relocate::calculate_only_): Likewise.
	(Target_mips::Relocate::relocate): Handle multiple consecutive
	relocations with the same offset.
2017-03-15 16:51:35 -07:00
Vladimir Radosavljevic 1e1247c89c Remove redundant checks for relocatable link (MIPS).
gold/
	* mips.cc (Target_mips::Relocate::relocate): Remove redundant
	checks for relocatable link.
	(Mips_relocate_functions::reljalr): Likewise.
2017-03-15 16:51:35 -07:00
Vladimir Radosavljevic 1728969e93 Add support for .MIPS.options section.
gold/
        * mips.cc (class Mips_output_section_options): New class.
        (Target_mips::do_make_output_section): New method.
2017-03-15 16:51:35 -07:00
Vladimir Radosavljevic c3847462f8 Improve relocation overflow errors on MIPS.
gold/
        * mips.cc (Mips_relocate_functions::rel26): Don't print relocation
        overflow error message.
        (Target_mips::relocate_special_relocatable): Improve relocation
        overflow error message.
        (Target_mips::Relocate::relocate): Likewise.
2017-03-15 16:51:35 -07:00
Vladimir Radosavljevic 453018bf44 Correct the definition of _gp and _GLOBAL_OFFSET_TABLE_ symbols for MIPS.
gold/
        * mips.cc (symbol_refs_local): Return false if a symbol
        is from a dynamic object.
        (Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN.
        (Target_mips::set_gp): Refactor.  Make _gp STT_NOTYPE and
        STB_LOCAL.
        (Target_mips::do_finalize_sections): Set _gp after all the checks
        for creating .got are done.
        (Target_mips::Scan::global): Remove unused code.
2017-03-15 16:51:35 -07:00
Kito Cheng b416fe873e RISC-V: Fix assembler for c.li, c.andi and c.addiw
- They can accept 0 in imm field

 2017-03-14  Kito Cheng  <kito.cheng@gmail.com>

       * riscv-opc.c (riscv_opcodes> <c.li>: Use the 'o' immediate encoding.
       <c.andi>: Likewise.
       <c.addiw> Likewise.
2017-03-15 07:47:52 -07:00
Kito Cheng 03b039a518 RISC-V: Fix assembler for c.addi, rd can be x0
opcodes/ChangeLog:

2017-03-14  Kito Cheng  <kito.cheng@gmail.com>

	* riscv-opc.c (riscv_opcodes) <c.addi>: Use match_opcode.
2017-03-15 07:47:52 -07:00
Tristan Gingold 9494d96366 ld-checks: tweak overflow checks.
* testsuite/ld-checks/checks.exp (overflow_check): Disable for
	non-elf targets.
2017-03-15 10:23:19 +01:00
Nick Clifton 7cb7b948ce Fix building riscv targets with gcc v6.3.1
* config/tc-riscv.c (riscv_pre_output_hook): Fix compile time
	warning about discarding a const qualifier.
2017-03-15 09:19:42 +00:00
GDB Administrator cc7e96c25d Automatic date update in version.in 2017-03-15 00:00:36 +00:00
H.J. Lu c98763221a Add DW_OP_GNU_variable_value
Sync GCC dwarf.def change

2017-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR debug/77589
	* dwarf2.def (DW_OP_GNU_variable_value): New opcode.
2017-03-14 12:57:48 -07:00
Andreas Arnez 87c336f60e inf-ptrace: Do not stop memory transfers after a single word
When inf_ptrace_xfer_partial performs a memory transfer via ptrace with
PT_READ_I, PT_WRITE_I (aka PTRACE_PEEKTEXT, PTRACE_POKETEXT), etc., then
it currently transfers at most one word.  This behavior yields degraded
performance, particularly if the caller has significant preparation work
for each invocation.  And indeed it has for writing, in
memory_xfer_partial in target.c, where all of the remaining data to be
transferred is copied to a temporary buffer each time, for breakpoint
shadow handling.  Thus large writes have quadratic runtime and can take
hours.

Note: On GNU/Linux targets GDB usually does not use
inf_ptrace_xfer_partial for large memory transfers, but attempts a single
read/write from/to /proc/<pid>/mem instead.  However, the kernel may
reject writes to /proc/<pid>/mem (such as kernels prior to 2.6.39), or
/proc may not be mounted.  In both cases GDB falls back to the ptrace
mechanism.

This patch fixes the performance issue by attempting to fulfill the whole
transfer request in inf_ptrace_xfer_partial, using a loop around the
ptrace call.

gdb/ChangeLog:

	PR gdb/21220
	* inf-ptrace.c (inf_ptrace_xfer_partial): In "case
	TARGET_OBJECT_MEMORY", extract the logic for ptrace peek/poke...
	(inf_ptrace_peek_poke): ...here.  New function.  Now also loop
	over ptrace peek/poke until end of buffer or error.
2017-03-14 19:20:46 +01:00
Kuan-Lin Chen d47c3ff7d5 RISC-V: Define DWARF2_USE_FIXED_ADVANCE_PC.
gas/ChangeLog

2017-03-02  Kuan-Lin Chen  <rufus@andestech.com>

        * config/tc-riscv.h (HWARD2_USE_FIXED_ADVANCE_PC): New define.
2017-03-14 09:51:29 -07:00
Kuan-Lin Chen 2aece2ba02 RISC-V: Fix DW_CFA_advance_loc relocation.
gas/ChangeLog:

2017-03-02  Kuan-Lin Chen  <rufus@andestech.com>

        * config/tc-riscv.c (md_apply_fix): Set fx_frag and
        fx_next->fx_frag for CFA_advance_loc relocations.
2017-03-14 09:51:29 -07:00
Kuan-Lin Chen c1b465c94e RISC-V: Fix the offset of CFA relocation.
gas/ChangeLog:

2017-03-02  Kuan-Lin Chen  <rufus@andestech.com>

        * config/tc-riscv.c (md_apply_fix): Compute the correct offsets
        for CFA relocations.
2017-03-14 09:51:29 -07:00
Andrew Waterman 2c232b8361 RISC-V: Fix [dis]assembly of srai/srli
These were simple copy/paste errors from the compressed left shift
pattern, which can't have a 0-register.
2017-03-14 09:23:18 -07:00
H.J. Lu 9216a6f335 Use addr_mask to check VMA and LMA
Since BFD64 may be used on 32-bit address, we need to apply addr_mask
to check VMA and LMA.

	* ldlang.c (lang_check_section_addresses): Use addr_mask to
	check VMA and LMA.
2017-03-14 09:09:54 -07:00
Simon Marchi cf81cf6081 Make length_of_subexp static
It isn't used anywhere else than the file it's defined in.

gdb/ChangeLog:

	* parse.c (length_of_subexp): Make static.
	* parser-defs.h (length_of_subexp): Remove.
2017-03-14 10:25:53 -04:00
Nick Clifton c799a79d66 Try harder to find the correct symbol to associate with OPEN GNU BUILD notes.
* readelf.c (print_gnu_build_attribute_description): Move symbol
	printing code to...
	(print_symbol_for_build_attribute): New function.  ...here.
	Add to find the best symbol to associate with an OPEN note.
	Add code to cache the symbol table and string table, so that they
	are not loaded every time a note is displayed.
	* testsuite/binutils-all/note-2-32.s: Add a function symbol.
	* testsuite/binutils-all/note-2-64.s: Likewise.
	* testsuite/binutils-all/note-2-32.d: Update expected note output.
	* testsuite/binutils-all/note-2-64.d: Likewise.
2017-03-14 12:57:09 +00:00
Anton Kolesov 0efcde634d Add test name argument to get_valueof, get_integer_valueof and get_sizeof
An optional parameter TEST has been added to get_hexadecimal_valueof in commit:

  https://sourceware.org/ml/gdb-patches/2016-06/msg00469.html

This patch adds a similar optional parameter to other related methods that
retrieve expression values: get_valueof, get_integer_valueof and get_sizeof.
Thus tests that evaluate same expression multiple times can provide custom
test names, ensuring that test names will be unique.

gdb/testsuite/ChangeLog:
2017-03-14  Anton Kolesov  <anton.kolesov@synopsys.com>

	* lib/gdb.exp (get_valueof, get_integer_valueof, get_sizeof):
	  Add optional 'test' parameter.
2017-03-14 15:07:25 +03:00
Andreas Arnez a379284af2 linux-nat: Exploit /proc/<pid>/mem for writing
So far linux_proc_xfer_partial refused to handle write requests.  This is
still based on the assumption that the Linux kernel does not support
writes to /proc/<pid>/mem.  That used to be true, but has changed with
Linux 2.6.39 released in May 2011.

This patch lifts this restriction and now exploits /proc/<pid>/mem for
writing to inferior memory as well, if possible.

gdb/ChangeLog:

	* linux-nat.c (linux_proc_xfer_partial): Handle write operations
	as well.
2017-03-14 11:14:49 +01:00
Pedro Alves 8a6200ba86 Restore test-cp-name-parser build
Commit c8b23b3f89 ("Add constructor and destructor to
demangle_parse_info") a while ago broke the "test-cp-name-parser"
build:

 $ make test-cp-name-parser
 [...]
 src/gdb/cp-name-parser.y: In function ‘int main(int, char**)’:
 src/gdb/cp-name-parser.y:2190:9: error: cannot convert ‘std::unique_ptr<demangle_parse_info>’ to ‘demangle_parse_info*’ in assignment
   result = cp_demangled_name_to_comp (str2, &errmsg);
	  ^
 src/gdb/cp-name-parser.y:2199:38: error: ‘cp_demangled_name_parse_free’ was not declared in this scope
   cp_demangled_name_parse_free (result);
				       ^
 src/gdb/cp-name-parser.y:2211:14: error: cannot convert ‘std::unique_ptr<demangle_parse_info>’ to ‘demangle_parse_info*’ in assignment
	result = cp_demangled_name_to_comp (argv[arg], &errmsg);
	       ^
 src/gdb/cp-name-parser.y:2219:43: error: ‘cp_demangled_name_parse_free’ was not declared in this scope
	cp_demangled_name_parse_free (result);
					    ^
 Makefile:2107: recipe for target 'test-cp-name-parser.o' failed
 make: *** [test-cp-name-parser.o] Error 1

This commit restores it.

gdb/ChangeLog:
2017-03-14  Pedro Alves  <palves@redhat.com>

	* cp-name-parser.y (cp_demangled_name_to_comp): Update comment.
	(main): Use std::unique_ptr.  Remove calls to
	cp_demangled_name_parse_free.
2017-03-14 00:11:09 +00:00
GDB Administrator 9c7272f083 Automatic date update in version.in 2017-03-14 00:00:40 +00:00
Simon Marchi f79ec20666 alpha-bsd-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:

	* alpha-bsd-nat.c (alphabsd_fetch_inferior_registers,
	alphabsd_store_inferior_registers): Use regcache->ptid instead
	of inferior_ptid.
2017-03-13 18:51:41 -04:00
Simon Marchi edb5fb00a6 aix-thread: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:

	* aix-thread.c (aix_thread_fetch_registers,
	aix_thread_store_registers): Use regcache->ptid instead of
	inferior_ptid.
2017-03-13 18:51:40 -04:00
Simon Marchi 551196862e aarc64-linux-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:

	* aarch64-linux-nat.c (fetch_gregs_from_thread,
	store_gregs_to_thread, fetch_fpregs_from_thread,
	store_fpregs_to_thread): Use regcache->ptid instead of
	inferior_ptid.
2017-03-13 18:51:39 -04:00
Simon Marchi 6a06fbb7b7 amd64-linux-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:

	* amd64-linux-nat.c (amd64_linux_fetch_inferior_registers,
	amd64_linux_fetch_inferior_registers): Use regcache->ptid
	instead of inferior_ptid.
2017-03-13 18:51:39 -04:00
Simon Marchi c6386875ba Add asserts in target_fetch/store_registers
We are currently assuming that regcache->ptid is equal to inferior_ptid
when we call target_fetch/store_registers.  These asserts just validate
that assumption.  Also, since the following patches will change target
code to use regcache->ptid instead of inferior_ptid, asserting that they
are the same should ensure that our changes don't have any unintended
consequences.

gdb/ChangeLog:

	* target.c (target_fetch_registers, target_store_registers): Add
	assert.
2017-03-13 18:51:38 -04:00
Simon Marchi ddaaf0fb86 Introduce regcache_get_ptid
This patch introduces the regcache_get_ptid function, which can be used
to retrieve the ptid a regcache is connected to.  It is used in
subsequent patches.

gdb/ChangeLog:

	* regcache.h (regcache_get_ptid): New function.
	* regcache.c (regcache_get_ptid): New function.
2017-03-13 18:51:38 -04:00
Simon Marchi 1a01e7c6b0 gdbserver: Use pattern rule for the remaining %-ipa.o objects
gdb/gdbserver/ChangeLog:

	* Makefile.in (%-ipa.o: %-ipa.c): New rule.
	(ax-ipa.o: ax.c): Remove.
	(linux-i386-ipa.o: linux-i386-ipa.c): Remove.
	(linux-amd64-ipa.o: linux-amd64-ipa.c): Remove.
	(linux-aarch64-ipa.o: linux-aarch64-ipa.c): Remove.
	(linux-s390-ipa.o: linux-s390-ipa.c): Remove.
	(linux-ppc-ipa.o: linux-ppc-ipa.c): Remove.
2017-03-13 18:44:05 -04:00
Simon Marchi 36bc18a810 gdbserver: Use pattern rule for IPA objects from common/
gdb/gdbserver/ChangeLog:

	* Makefile.in (%-ipa.o: ../common/%.c): New rule.
	(print-utils-ipa.o: ../common/print-utils.c): Remove.
	(rsp-low-ipa.o: ../common/rsp-low.c): Remove.
	(errors-ipa.o: ../common/errors.c): Remove.
	(format-ipa.o: ../common/format.c): Remove.
	(common-utils-ipa.o: ../common/common-utils.c): Remove.
2017-03-13 18:44:05 -04:00
Simon Marchi a8ebe3d5f1 gdbserver: Use pattern rule for IPA objects from gdbserver/
gdb/gdbserver/ChangeLog:

	* Makefile.in (%-ipa.o: %.c): New rule.
	(tracepoint-ipa.o: tracepoint.c): Remove.
	(utils-ipa.o: utils.c): Remove.
	(remote-utils-ipa.o: remote-utils.c): Remove.
	(regcache-ipa.o: regcache.c): Remove.
	(i386-linux-ipa.o: i386-linux.c): Remove.
	(i386-mmx-linux-ipa.o: i386-mmx-linux.c): Remove.
	(i386-avx-linux-ipa.o: i386-avx-linux.c): Remove.
	(i386-mpx-linux-ipa.o: i386-mpx-linux.c): Remove.
	(i386-avx-mpx-linux-ipa.o: i386-avx-mpx-linux.c): Remove.
	(i386-avx-avx512-linux-ipa.o: i386-avx-avx512-linux.c): Remove.
	(i386-avx-mpx-avx512-pku-linux-ipa.o: i386-avx-mpx-avx512-pku-linux.c): Remove.
	(amd64-linux-ipa.o: amd64-linux.c): Remove.
	(amd64-avx-linux-ipa.o: amd64-avx-linux.c): Remove.
	(amd64-mpx-linux-ipa.o: amd64-mpx-linux.c): Remove.
	(amd64-avx-mpx-linux-ipa.o: amd64-avx-mpx-linux.c): Remove.
	(amd64-avx-avx512-linux-ipa.o: amd64-avx-avx512-linux.c): Remove.
	(amd64-avx-mpx-avx512-pku-linux-ipa.o: amd64-avx-mpx-avx512-pku-linux.c): Remove.
	(aarch64-ipa.o: aarch64.c): Remove.
	(s390-linux32-ipa.o: s390-linux32.c): Remove.
	(s390-linux32v1-ipa.o: s390-linux32v1.c): Remove.
	(s390-linux32v2-ipa.o: s390-linux32v2.c): Remove.
	(s390-linux64-ipa.o: s390-linux64.c): Remove.
	(s390-linux64v1-ipa.o: s390-linux64v1.c): Remove.
	(s390-linux64v2-ipa.o: s390-linux64v2.c): Remove.
	(s390-te-linux64-ipa.o: s390-te-linux64.c): Remove.
	(s390-vx-linux64-ipa.o: s390-vx-linux64.c): Remove.
	(s390-tevx-linux64-ipa.o: s390-tevx-linux64.c): Remove.
	(s390x-linux64-ipa.o: s390x-linux64.c): Remove.
	(s390x-linux64v1-ipa.o: s390x-linux64v1.c): Remove.
	(s390x-linux64v2-ipa.o: s390x-linux64v2.c): Remove.
	(s390x-te-linux64-ipa.o: s390x-te-linux64.c): Remove.
	(s390x-vx-linux64-ipa.o: s390x-vx-linux64.c): Remove.
	(s390x-tevx-linux64-ipa.o: s390x-tevx-linux64.c): Remove.
	(powerpc-32l-ipa.o: powerpc-32l.c): Remove.
	(powerpc-altivec32l-ipa.o: powerpc-altivec32l.c): Remove.
	(powerpc-cell32l-ipa.o: powerpc-cell32l.c): Remove.
	(powerpc-vsx32l-ipa.o: powerpc-vsx32l.c): Remove.
	(powerpc-isa205-32l-ipa.o: powerpc-isa205-32l.c): Remove.
	(powerpc-isa205-altivec32l-ipa.o: powerpc-isa205-altivec32l.c): Remove.
	(powerpc-isa205-vsx32l-ipa.o: powerpc-isa205-vsx32l.c): Remove.
	(powerpc-e500l-ipa.o: powerpc-e500l.c): Remove.
	(powerpc-64l-ipa.o: powerpc-64l.c): Remove.
	(powerpc-altivec64l-ipa.o: powerpc-altivec64l.c): Remove.
	(powerpc-cell64l-ipa.o: powerpc-cell64l.c): Remove.
	(powerpc-vsx64l-ipa.o: powerpc-vsx64l.c): Remove.
	(powerpc-isa205-64l-ipa.o: powerpc-isa205-64l.c): Remove.
	(powerpc-isa205-altivec64l-ipa.o: powerpc-isa205-altivec64l.c): Remove.
	(powerpc-isa205-vsx64l-ipa.o: powerpc-isa205-vsx64l.c): Remove.
	(tdesc-ipa.o: tdesc.c): Remove.
	(x32-linux-ipa.o: x32-linux.c): Remove.
	(x32-avx-linux-ipa.o: x32-avx-linux.c): Remove.
	(x32-avx512-linux-ipa.o: x32-avx512-linux.c): Remove.
2017-03-13 18:44:04 -04:00
Simon Marchi 50cfacb78f gdbserver: Use pattern rule for objects from arch/
gdb/gdbserver/ChangeLog:

	* Makefile.in (%.o: ../arch/%.c): New rule.
	(arm.o: ../arch/arm.c): Remove.
	(arm-linux.o: ../arch/arm-linux.c): Remove.
	(arm-get-next-pcs.o: ../arch/arm-get-next-pcs.c): Remove.
	(aarch64-insn.o: ../arch/aarch64-insn.c): Remove.
2017-03-13 18:44:03 -04:00
Simon Marchi c5a22423d0 gdbserver: Use pattern rule for objects from nat/
gdb/gdbserver/ChangeLog:

	* Makefile.in (%.o: ../nat/%.c): New rule.
	(x86-dregs.o: ../nat/x86-dregs.c): Remove.
	(amd64-linux-siginfo.o: ../nat/amd64-linux-siginfo.c): Remove.
	(linux-btrace.o: ../nat/linux-btrace.c): Remove.
	(linux-osdata.o: ../nat/linux-osdata.c): Remove.
	(linux-procfs.o: ../nat/linux-procfs.c): Remove.
	(linux-ptrace.o: ../nat/linux-ptrace.c): Remove.
	(linux-waitpid.o: ../nat/linux-waitpid.c): Remove.
	(mips-linux-watch.o: ../nat/mips-linux-watch.c): Remove.
	(ppc-linux.o: ../nat/ppc-linux.c): Remove.
	(linux-personality.o: ../nat/linux-personality.c): Remove.
	(aarch64-linux-hw-point.o: ../nat/aarch64-linux-hw-point.c): Remove.
	(aarch64-linux.o: ../nat/aarch64-linux.c): Remove.
	(x86-linux.o: ../nat/x86-linux.c): Remove.
	(x86-linux-dregs.o: ../nat/x86-linux-dregs.c): Remove.
	(linux-namespaces.o: ../nat/linux-namespaces.c): Remove.
2017-03-13 18:44:03 -04:00
Simon Marchi 6bda016bec gdbserver: Use pattern rule for objects from common/
gdb/gdbserver/ChangeLog:

	* Makefile.in (%.o: ../common/%.c): New rule.
	(signals.o: ../common/signals.c): Remove.
	(print-utils.o: ../common/print-utils.c): Remove.
	(rsp-low.o: ../common/rsp-low.c): Remove.
	(common-utils.o: ../common/common-utils.c): Remove.
	(posix-strerror.o: ../common/posix-strerror.c): Remove.
	(mingw-strerror.o: ../common/mingw-strerror.c): Remove.
	(vec.o: ../common/vec.c): Remove.
	(gdb_vecs.o: ../common/gdb_vecs.c): Remove.
	(xml-utils.o: ../common/xml-utils.c): Remove.
	(ptid.o: ../common/ptid.c): Remove.
	(buffer.o: ../common/buffer.c): Remove.
	(format.o: ../common/format.c): Remove.
	(filestuff.o: ../common/filestuff.c): Remove.
	(agent.o: ../common/agent.c): Remove.
	(errors.o: ../common/errors.c): Remove.
	(environ.o: ../common/environ.c): Remove.
	(common-debug.o: ../common/common-debug.c): Remove.
	(cleanups.o: ../common/cleanups.c): Remove.
	(common-exceptions.o: ../common/common-exceptions.c): Remove.
	(fileio.o: ../common/fileio.c): Remove.
	(common-regcache.o: ../common/common-regcache.c): Remove.
	(signals-state-save-restore.o: ../common/signals-state-save-restore.c): Remove.
	(new-op.o: ../common/new-op.c): Remove.
	(btrace-common.o: ../common/btrace-common.c): Remove.
2017-03-13 18:44:02 -04:00
Simon Marchi 21122961ec gdbserver: Use pattern rule for objects from target/
gdb/gdbserver/ChangeLog:

	* Makefile.in (%.o: ../target/%.c): New rule.
	(waitstatus.o: ../target/waitstatus.c): Remove.
2017-03-13 18:44:02 -04:00
Simon Marchi c362e6217b gdbserver: Use pattern rule for regformats source file generation
gdb/gdbserver/ChangeLog:

	* Makefile.in
	(%.c: ../regformats/%.dat,
	(%.c: ../regformats/arm/%.dat,
	(%.c: ../regformats/i386/%.dat,
	(%.c: ../regformats/rs6000/%.dat): New rules.
	(aarch64.c): Remove.
	(reg-arm.c): Remove.
	(arm-with-iwmmxt.c): Remove.
	(arm-with-vfpv2.c): Remove.
	(arm-with-vfpv3.c): Remove.
	(arm-with-neon.c): Remove.
	(reg-bfin.c): Remove.
	(reg-cris.c): Remove.
	(reg-crisv32.c): Remove.
	(i386.c): Remove.
	(i386-linux.c): Remove.
	(i386-avx.c): Remove.
	(i386-avx-linux.c): Remove.
	(i386-avx-avx512.c): Remove.
	(i386-avx-avx512-linux.c): Remove.
	(i386-mpx.c): Remove.
	(i386-mpx-linux.c): Remove.
	(i386-avx-mpx-avx512-pku.c): Remove.
	(i386-avx-mpx-avx512-pku-linux.c): Remove.
	(i386-avx-mpx.c): Remove.
	(i386-avx-mpx-linux.c): Remove.
	(i386-mmx.c): Remove.
	(i386-mmx-linux.c): Remove.
	(reg-ia64.c): Remove.
	(reg-m32r.c): Remove.
	(reg-m68k.c): Remove.
	(reg-cf.c): Remove.
	(mips-linux.c): Remove.
	(mips-dsp-linux.c): Remove.
	(mips64-linux.c): Remove.
	(mips64-dsp-linux.c): Remove.
	(nios2-linux.c): Remove.
	(powerpc-32.c): Remove.
	(powerpc-32l.c): Remove.
	(powerpc-altivec32l.c): Remove.
	(powerpc-cell32l.c): Remove.
	(powerpc-vsx32l.c): Remove.
	(powerpc-isa205-32l.c): Remove.
	(powerpc-isa205-altivec32l.c): Remove.
	(powerpc-isa205-vsx32l.c): Remove.
	(powerpc-e500l.c): Remove.
	(powerpc-64l.c): Remove.
	(powerpc-altivec64l.c): Remove.
	(powerpc-cell64l.c): Remove.
	(powerpc-vsx64l.c): Remove.
	(powerpc-isa205-64l.c): Remove.
	(powerpc-isa205-altivec64l.c): Remove.
	(powerpc-isa205-vsx64l.c): Remove.
	(s390-linux32.c): Remove.
	(s390-linux32v1.c): Remove.
	(s390-linux32v2.c): Remove.
	(s390-linux64.c): Remove.
	(s390-linux64v1.c): Remove.
	(s390-linux64v2.c): Remove.
	(s390-te-linux64.c): Remove.
	(s390-vx-linux64.c): Remove.
	(s390-tevx-linux64.c): Remove.
	(s390x-linux64.c): Remove.
	(s390x-linux64v1.c): Remove.
	(s390x-linux64v2.c): Remove.
	(s390x-te-linux64.c): Remove.
	(s390x-vx-linux64.c): Remove.
	(s390x-tevx-linux64.c): Remove.
	(tic6x-c64xp-linux.c): Remove.
	(tic6x-c64x-linux.c): Remove.
	(tic6x-c62x-linux.c): Remove.
	(reg-sh.c): Remove.
	(reg-sparc64.c): Remove.
	(reg-spu.c): Remove.
	(amd64.c): Remove.
	(amd64-linux.c): Remove.
	(amd64-avx.c): Remove.
	(amd64-avx-linux.c): Remove.
	(amd64-avx-avx512.c): Remove.
	(amd64-avx-avx512-linux.c): Remove.
	(amd64-mpx.c): Remove.
	(amd64-mpx-linux.c): Remove.
	(amd64-avx-mpx-avx512-pku.c): Remove.
	(amd64-avx-mpx-avx512-pku-linux.c): Remove.
	(amd64-avx-mpx.c): Remove.
	(amd64-avx-mpx-linux.c): Remove.
	(x32.c): Remove.
	(x32-linux.c): Remove.
	(x32-avx.c): Remove.
	(x32-avx-linux.c): Remove.
	(x32-avx-avx512.c): Remove.
	(x32-avx-avx512-linux.c): Remove.
	(reg-xtensa.c): Remove.
	(reg-tilegx.c): Remove.
	(reg-tilegx32.c): Remove.
2017-03-13 18:44:01 -04:00
Simon Marchi 7978d7c385 testsuite: Disable backslash_in_multi_line_command_test for old DejaGnus
I noticed that backslash_in_multi_line_command_test in
gdb.base/commands.exp failed on our RHEL6 servers.  I traced it to the
old version of DejaGnu (1.4.4).  I have found that instead of receiving
the expected:

  "print \\\nargc\n"

gdb received:

  "print  argc\n"

thus breaking the test and its purpose.  Versionof DejaGnu < 1.5 mess
up sending "\\\n", it somehow gets replaced with a space.  I found that
the following commit in DejaGnu fixed the issue:

http://git.savannah.gnu.org/cgit/dejagnu.git/commit/lib/remote.exp?id=3f39294f5cd6802858838d3bcc0ccce847ae17f2

Even though the commit is almost 10 years old, the following release of
DejaGnu was only in 2013, which is why we still have systems with the
old code.

If the DejaGnu version is < 1.5, we just skip the test.

gdb/testsuite/ChangeLog:

	* gdb.base/commands.exp (backslash_in_multi_line_command_test):
	Skip for versions of DejaGnu < 1.5.
2017-03-13 18:02:08 -04:00
Simon Marchi 896c0c1ede testsuite: Introduce dejagnu_version
The next patch will require checking the DejaGnu version.  There is
already a test that does this,
gdb.threads/attach-many-short-lived-threads.exp.  This patch introduces
a new procedure, dejagnu_version, and makes that test use it.

The version number is "right-padded" with zeroes, to make sure that we
always return a triplet (major, minor, patch).

The procedure does not consider the DejaGnu versions from git.  For
example, if you used DejaGnu from its current master branch, the version
would be "1.6.1-git", meaning that 1.6.1 will be the next release.  I
figured we'll cross that bridge when (and if) we get there.

gdb/testsuite/ChangeLog:

	* lib/gdb.exp (dejagnu_version): New proc.
	* gdb.threads/attach-many-short-lived-threads.exp (bad_dejagnu):
	Use dejagnu_version.
2017-03-13 18:02:07 -04:00
mark b9da89d161 Merge libiberty: Initialize d_printing in all cplus_demangle_fill_* functions.
While integrating the d_printing recursion guard change into gdb I
noticed we forgot to initialize the demangle_component d_printing
field in cplus_demangle_fill_{name,extended_operator,ctor,dtor}.
As is done in cplus_demangle_fill_{component,builtin_type,operator}.
It happened to work because in gcc all demangle_components were
allocated through d_make_empty. But gdb has its own allocation
mechanism (as might other users).

libiberty/ChangeLog:

       * cp-demangle.c (cplus_demangle_fill_name): Initialize
       demangle_component d_printing.
       (cplus_demangle_fill_extended_operator): Likewise.
       (cplus_demangle_fill_ctor): Likewise.
       (cplus_demangle_fill_dtor): Likewise.

gdb/ChangeLog:

       * cp-name-parser.y (make_empty): Initialize d_printing to zero.
2017-03-13 20:51:42 +01:00
Nick Clifton c793cac124 Sync libiberty sources with GCC.
PR demangler/70909
	PR demangler/67264
	* cp-demangle.c: Fix endless recursion. Pass
	struct demangle_component as non const.
	(d_make_empty): Initialize variable.
	(d_print_comp_inner): Limit recursion.
	(d_print_comp): Decrement variable.
	* cp-demint.c (cplus_demangle_fill_component): Initialize
	variable.
	(cplus_demangle_fill_builtin_type): Likewise.
	(cplus_demangle_fill_operator): Likewise.
	* testsuite/demangle-expected: Add tests.
2017-03-13 17:49:32 +00:00
Alan Modra 5ef2d51bd6 objdump -dS: warn if source is more recent than object
If the source file is more recent than the object file, line number
information in the object may no longer match the source.  So print a
warning message.

	* objdump.c (update_source_path): Add abfd param.  Add struct
	stat vars.  Pass to try_print_file_open.  Warn if source is more
	recent than object.
	(try_print_file_open, slurp_file): Add struct stat param to
	return fstat.
	(show_line): Call update_source_path with bfd.
2017-03-13 21:20:02 +10:30