aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-03-15RISC-V: Fix assembler for c.li, c.andi and c.addiwKito Cheng4-3/+23
- 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-15RISC-V: Fix assembler for c.addi, rd can be x0Kito Cheng2-1/+5
opcodes/ChangeLog: 2017-03-14 Kito Cheng <kito.cheng@gmail.com> * riscv-opc.c (riscv_opcodes) <c.addi>: Use match_opcode.
2017-03-15ld-checks: tweak overflow checks.Tristan Gingold2-0/+8
* testsuite/ld-checks/checks.exp (overflow_check): Disable for non-elf targets.
2017-03-15Fix building riscv targets with gcc v6.3.1Nick Clifton2-1/+6
* config/tc-riscv.c (riscv_pre_output_hook): Fix compile time warning about discarding a const qualifier.
2017-03-15Automatic date update in version.inGDB Administrator1-1/+1
2017-03-14Add DW_OP_GNU_variable_valueH.J. Lu2-0/+8
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-14inf-ptrace: Do not stop memory transfers after a single wordAndreas Arnez2-73/+77
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-14RISC-V: Define DWARF2_USE_FIXED_ADVANCE_PC.Kuan-Lin Chen2-0/+7
gas/ChangeLog 2017-03-02 Kuan-Lin Chen <rufus@andestech.com> * config/tc-riscv.h (HWARD2_USE_FIXED_ADVANCE_PC): New define.
2017-03-14RISC-V: Fix DW_CFA_advance_loc relocation.Kuan-Lin Chen2-0/+7
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-14RISC-V: Fix the offset of CFA relocation.Kuan-Lin Chen2-10/+15
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-14RISC-V: Fix [dis]assembly of srai/srliAndrew Waterman2-4/+11
These were simple copy/paste errors from the compressed left shift pattern, which can't have a 0-register.
2017-03-14Use addr_mask to check VMA and LMAH.J. Lu2-2/+7
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-14Make length_of_subexp staticSimon Marchi3-3/+6
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-14Try harder to find the correct symbol to associate with OPEN GNU BUILD notes.Nick Clifton6-88/+157
* 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-14Add test name argument to get_valueof, get_integer_valueof and get_sizeofAnton Kolesov2-7/+32
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-14linux-nat: Exploit /proc/<pid>/mem for writingAndreas Arnez2-16/+21
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-14Restore test-cp-name-parser buildPedro Alves2-9/+14
Commit c8b23b3f89fbb0 ("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-14Automatic date update in version.inGDB Administrator1-1/+1
2017-03-13alpha-bsd-nat: Use ptid from regcache instead of inferior_ptidSimon Marchi2-6/+12
gdb/ChangeLog: * alpha-bsd-nat.c (alphabsd_fetch_inferior_registers, alphabsd_store_inferior_registers): Use regcache->ptid instead of inferior_ptid.
2017-03-13aix-thread: Use ptid from regcache instead of inferior_ptidSimon Marchi2-7/+13
gdb/ChangeLog: * aix-thread.c (aix_thread_fetch_registers, aix_thread_store_registers): Use regcache->ptid instead of inferior_ptid.
2017-03-13aarc64-linux-nat: Use ptid from regcache instead of inferior_ptidSimon Marchi2-4/+11
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-13amd64-linux-nat: Use ptid from regcache instead of inferior_ptidSimon Marchi2-4/+10
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-13Add asserts in target_fetch/store_registersSimon Marchi2-0/+9
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-13Introduce regcache_get_ptidSimon Marchi3-0/+19
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-13gdbserver: Use pattern rule for the remaining %-ipa.o objectsSimon Marchi2-17/+23
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-13gdbserver: Use pattern rule for IPA objects from common/Simon Marchi2-15/+14
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-13gdbserver: Use pattern rule for IPA objects from gdbserver/Simon Marchi2-156/+62
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-13gdbserver: Use pattern rule for objects from arch/Simon Marchi2-17/+11
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-13gdbserver: Use pattern rule for objects from nat/Simon Marchi2-48/+23
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-13gdbserver: Use pattern rule for objects from common/Simon Marchi2-73/+32
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-13gdbserver: Use pattern rule for objects from target/Simon Marchi2-7/+15
gdb/gdbserver/ChangeLog: * Makefile.in (%.o: ../target/%.c): New rule. (waitstatus.o: ../target/waitstatus.c): Remove.
2017-03-13gdbserver: Use pattern rule for regformats source file generationSimon Marchi2-182/+111
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-13testsuite: Disable backslash_in_multi_line_command_test for old DejaGnusSimon Marchi2-0/+16
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-13testsuite: Introduce dejagnu_versionSimon Marchi3-7/+33
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-13Merge libiberty: Initialize d_printing in all cplus_demangle_fill_* functions.mark4-0/+17
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-13Sync libiberty sources with GCC.Nick Clifton6-27/+99
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-13objdump -dS: warn if source is more recent than objectAlan Modra2-25/+45
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-13Rename R_AARCH64_TLSDESC_LD64_LO12_NC to R_AARCH64_TLSDESC_LD64_LO12 and ↵Nick Clifton13-43/+94
R_AARCH64_TLSDESC_ADD_LO12_NC to R_AARCH64_TLSDESC_ADD_LO12. PR binutils/21202 include * elf/aarch64.h (R_AARCH64_TLSDESC_LD64_LO12_NC): Rename to R_AARCH64_TLSDESC_LD64_LO12. (R_AARCH64_TLSDESC_ADD_LO12_NC): Rename to R_AARCH64_TLSDESC_ADD_LO12_NC. bfd * reloc.c (BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC): Rename to BFD_RELOC_AARCH64_TLSDESC_LD64_LO12. (BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC): Rename to BFD_RELOC_AARCH64_TLSDESC_ADD_LO12. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. * elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Update reloc names. (IS_AARCH64_TLSDESC_RELOC): Likewise. (elfNN_aarch64_howto_table): Likewise. (aarch64_tls_transition_without_check): Likewise. (aarch64_reloc_got_type): Likewise. (elfNN_aarch64_final_link_relocate): Likewise. (elfNN_aarch64_tls_relax): Likewise. (elfNN_aarch64_relocate_section): Likewise. (elfNN_aarch64_gc_sweep_hook): Likewise. (elfNN_aarch64_check_relocs): Likewise. * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise. (_bfd_aarch64_elf_resolve_relocation): Likewise. gas * config/tc-aarch64.c (reloc_table): Rename BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC to BFD_RELOC_AARCH64_TLSDESC_LD64_LO12. Rname BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC to BFD_RELOC_AARCH64_TLSDESC_ADD_LO12. (md_apply_fix): Likewise. (aarch64_force_relocation): Likewise. * testsuite/gas/aarch64/tls.d: Update regexp. ld * testsuite/ld-aarch64/ifunc-5r-local.d: Update regexp.
2017-03-13ld: add an error in case of address space overflow.Tristan Gingold7-0/+66
ld/ * ldlang.c (lang_check_section_addresses): Check for address space overflow. * testsuite/ld-checks/checks.exp (overflow_check): New procedure * testsuite/ld-checks/over.s: New test source. * testsuite/ld-checks/over.d: New test. * testsuite/ld-checks/over2.s: New test source. * testsuite/ld-checks/over2.d: New test.
2017-03-13PowerPC: incorrect library search orderAlexey Neyman2-5/+10
First, need to match against just the CPU name, not the whole triplet. Otherwise, the test picks up "*le-*" pattern from x86_64-apple-darwin triplet. Second, it should be testing for $target, not $host. Host may be little endian by default, and the sysroot directory layout shouldn't depend on whether it is built on LE or BE machine. * emulparams/elf32ppccommon.sh (LIBPATH_SUFFIX): Set from target cpu, not host.
2017-03-13Automatic date update in version.inGDB Administrator1-1/+1
2017-03-12Automatic date update in version.inGDB Administrator1-1/+1
2017-03-11Add sysroot for ld -rpath searchAlan Modra2-0/+7
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Add sysroot for -rpath search.
2017-03-11Rewrite add_sysrootAlan Modra2-53/+105
Relative paths shouldn't have the sysroot prefix added. The patch also makes some attempt at supporting DOS paths, and tidies code using the new add_sysroot. * emultempl/elf32.em (gld${EMULATION_NAME}_add_sysroot): Rewrite. Only prefix absolute paths with sysroot. Handle DOS paths. (gld${EMULATION_NAME}_check_ld_elf_hints): Constify variable. (gld${EMULATION_NAME}_check_ld_so_conf): Likewise. (gld${EMULATION_NAME}_after_open): Short-circuit NULL path searches. Rename variable. Simplify get_runpath search.
2017-03-11Remove bogus ATTRIBUTE_UNUSEDAlan Modra3-16/+22
* elf32-ppc.c: Remove ATTRIBUTE_UNUSED throughout when function parameter is in fact used. Whitespace fixes. * elf64-ppc.c: Likewise.
2017-03-11Don't use -rdynamic in ld testAlan Modra2-1/+6
This gcc option isn't well supported, so use the actual linker option we want to test. * testsuite/ld-elf/shared.exp: Use -Wl,-export-dynamic rather than -rdynamic.
2017-03-11Don't run new orphan tests on i860 and i960Alan Modra4-10/+14
These targets use the generic ELF support, so don't handle orphans well. The patch also updates the orphan doco to reflect this fact, and deletes some ELF details that don't really add anything. * ld.texinfo (Orphan Sections): Mention that not all targets handle orphans well. Delete ELF details. * testsuite/ld-elf/orphan-9.d: Don't run for i860 and i960. * testsuite/ld-elf/orphan-10.d: Likewise.
2017-03-11Automatic date update in version.inGDB Administrator1-1/+1
2017-03-10c++/8218: Destructors w/arguments.Keith Seitz4-11/+38
For a long time now, c++/8218 has noted that GDB is printing argument types for destructors: (gdb) ptype A type = class A { public: ~A(int); } This happens because cp_type_print_method_args doesn't ignore artificial arguments. [It ignores the first `this' pointer because it simply skips the first argument for any non-static function.] This patch fixes this: (gdb) ptype A type = class A { public: ~A(); } I've adjusted gdb.cp/templates.exp to account for this and added a new passing regexp. gdb/ChangeLog PR c++/8218 * c-typeprint.c (cp_type_print_method_args): Skip artificial arguments. gdb/testsuite/ChangeLog PR c++/8128 * gdb.cp/templates.exp (test_ptype_of_templates): Remove argument type from destructor regexps. Add a branch which actually passes the test. Adjust "ptype t5i" test names.
2017-03-10Make objdump's --wide command line option affect its output of DWARF debug ↵Chia-Hao Lo2-1/+6
information. PR binutils/21235 * objdump.c (main): Set do_wide with --wide.