aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-09-30Automatic date update in version.inGDB Administrator1-1/+1
2016-09-29Update tests to account for the L operand being compulsory.Peter Bergner3-4/+10
* gdb.arch/powerpc-power.exp <cmprb>: Update tests to account for the compulsory L operand changes. * gdb.arch/powerpc-power.s: Likewise.
2016-09-29Don't merge 2 sections with different SHF_EXCLUDEH.J. Lu6-1/+48
SEC_EXCLUDE is ignored when doing a relocatable link. But we can't merge 2 input sections with the same name when only one of them has SHF_EXCLUDE. PR ld/20528 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't merge 2 sections with different SHF_EXCLUDE. * testsuite/ld-elf/pr20528a.d: New file. * testsuite/ld-elf/pr20528a.s: Likewise. * testsuite/ld-elf/pr20528b.d: Likewise. * testsuite/ld-elf/pr20528b.s: Likewise.
2016-09-29PR gdb/20609 - attach of JIT-debug-enabled inf 7.11.1 regressionJan Kratochvil8-5/+133
Regression: gdb --pid $(pidof qemu-system-x86_64) stopped working with gdb 7.11.1 https://sourceware.org/bugzilla/show_bug.cgi?id=20609 It was reported for qemu-system-x86_64 but it happens for any multithreaded inferior with a JIT debugging hook. 136613ef0c6850427317e57be1b644080ff6decb is the first bad commit Author: Pedro Alves <palves@redhat.com> Fix PR gdb/19828: gdb -p <process from a container>: internal error Message-ID: <cbdf2e04-4fa8-872a-2a23-08c9c1b26e00@redhat.com> https://sourceware.org/ml/gdb-patches/2016-05/msg00450.html jit_breakpoint_re_set() is specific by trying to insert a breakpoint into the main executable, not into a shared library. During attachment GDB thinks it needs to use 'breakpoint always-inserted' from breakpoints_should_be_inserted_now() as a newly attached thread is 'thread_info->executing' due to 'lwp_info->must_set_ptrace_flags' enabled and the task not yet stopped. This did not happen before the 'bad commit' above which adds tracking of such thread. GDB then fails to insert the breakpoints to invalid address as PIE executable gets properly relocated during later phase of attachment. One can see in the backtraces below: -> jit_breakpoint_re_set_internal() later: -> svr4_exec_displacement() One can suppress the initial breakpoint_re_set() call as there will be another breakpoint_re_set() done from the final post_create_inferior() call in setup_inferior(). BTW additionally 'threads_executing' cache bool is somehow stale (somewhere is missing update_threads_executing()). I was trying to deal with that in my first/second attempt below but in my final third attempt (attached) I have left it as it is. First attempt trying not to falsely require 'breakpoint always-inserted': https://people.redhat.com/jkratoch/rhbz1375553-fix1.patch Reduced first attempt: https://people.redhat.com/jkratoch/rhbz1375553-fix2.patch The third attempt suppresses breakpoint insertion until PIE executable gets relocated by svr4_exec_displacement(). Applied. gdb/ChangeLog 2016-09-29 Jan Kratochvil <jan.kratochvil@redhat.com> PR gdb/20609 - attach of JIT-debug-enabled inf 7.11.1 regression * exec.c (exec_file_locate_attach): Add parameter defer_bp_reset. Use it. * gdbcore.h (exec_file_locate_attach): Add parameter defer_bp_reset. * infcmd.c (setup_inferior): Update caller. * remote.c (remote_add_inferior): Likewise. gdb/testsuite/ChangeLog 2016-09-29 Jan Kratochvil <jan.kratochvil@redhat.com> PR gdb/20609 - attach of JIT-debug-enabled inf 7.11.1 regression * gdb.base/jit-attach-pie.c: New file. * gdb.base/jit-attach-pie.exp: New file.
2016-09-29Frame info dump: Fix bad register marks.Andreas Krebbel1-10/+23
On S/390 we see quite often registers marked as "bad register" in the readelf --debug-dump=frames or objdump -Wf output. 00000000 0000000000000014 00000000 CIE Version: 1 Augmentation: "zR" Code alignment factor: 1 Data alignment factor: -8 Return address column: 14 Augmentation data: 1b DW_CFA_def_cfa: r15 ofs 160 DW_CFA_nop DW_CFA_nop DW_CFA_nop ... 00000050 000000000000001c 00000054 FDE cie=00000000 pc=0000000080000e58..0000000080000e84 DW_CFA_advance_loc: 6 to 0000000080000e5e DW_CFA_offset: r14 at cfa-48 DW_CFA_offset: r15 at cfa-40 DW_CFA_advance_loc: 6 to 0000000080000e64 DW_CFA_def_cfa_offset: 320 DW_CFA_advance_loc: 18 to 0000000080000e76 DW_CFA_restore: bad register: r15 <------ DW_CFA_restore: r14 DW_CFA_def_cfa_offset: 160 This is triggered by this check in display_debug_frames (dwarf.c): case DW_CFA_restore: if (opa >= (unsigned int) cie->ncols || opa >= (unsigned int) fc->ncols) reg_prefix = bad_reg; cie->ncols is number of registers referenced in the CIE which is 15 due to r14 being given as return address column. So for the CFA_restore of r15 a "bad register" is being printed while the same rule on r14 is ok. The reason for this check is to prevent wild memory accesses when reading input with corrupted register values while accessing the col_type/col_offset arrays. However in that case r15 is a perfectly valid register. It just happens not to be mentioned in the CIE. Hence restoring the CIE rule for r15 should end up with the default rule which is DW_CFA_undefined. This probably wasn't observed on other platforms because they either do not use CFA_restore (x86-64) or do not issue CFA_restore on registers with a higher number than the return address column. binutils/ChangeLog: 2016-09-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * dwarf.c (frame_display_row): Fix formatting of return address register column. (display_debug_frames): Ignore invalid indices into cie->col_type/cie->col_offset arrays and default to DW_CF_undefined instead.
2016-09-29Add .cfi_val_offset GAS command.Andreas Krebbel7-2/+78
This patch adds support for .cfi_val_offset GAS pseudo command which maps to DW_CFA_val_offset and DW_CFA_val_offset_sf. gas/ChangeLog: 2016-09-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * doc/as.texinfo: Add docu for .cfi_val_offset. * dw2gencfi.c (cfi_add_CFA_val_offset): New function. (dot_cfi): Add case for DW_CFA_val_offset. (output_cfi_insn): Likewise. (cfi_pseudo_table): Add entry for cfi_val_offset. * dw2gencfi.h: Add prototype for cfi_add_CFA_val_offset. * testsuite/gas/cfi/cfi-common-8.d: New test. * testsuite/gas/cfi/cfi-common-8.s: New test. * testsuite/gas/cfi/cfi.exp: Run cfi-common-8 testcase. binutils/ChangeLog: 2016-09-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * dwarf.c (display_debug_frames): Adjust output line.
2016-09-29Disallow 3-operand cmp[l][i] for ppc64Alan Modra8-77/+59
cmp[l][o] get an optional L field only when generating 32-bit code. dcbf, tlbie and tlbiel keep their optional L field, ditto for R field of tbegin. cmprb, tsr., wlcr[all] and mtsle all change to a compulsory L field. L field of dcbf and wclr is 2 bits. PR 20641 include/ * opcode/ppc.h (PPC_OPERAND_OPTIONAL32): Define. opcodes/ * ppc-opc.c (L): Make compulsory. (LOPT): New, optional form of L. (HTM_R): Define as LOPT. (L0, L1): Delete. (L32OPT): New, optional for 32-bit L. (L2OPT): New, 2-bit L for dcbf. (SVC_LEC): Update. (L2): Define. (insert_l0, extract_l0, insert_l1, extract_l2): Delete. (powerpc_opcodes <cmpli, cmpi, cmpl, cmp>): Use L32OPT. <dcbf>: Use L2OPT. <tlbiel, tlbie>: Use LOPT. <wclr, wclrall>: Use L2. gas/ * config/tc-ppc.c (md_assemble): Handle PPC_OPERAND_OPTIONAL32. * testsuite/gas/ppc/power8.s: Provide tbegin. operand. * testsuite/gas/ppc/power9.d: Update cmprb disassembly.
2016-09-29Display .gnu.attributes tags for powerpc64Alan Modra2-0/+6
* readelf.c (process_arch_specific): Call process_power_specific for EM_PPC64.
2016-09-29Automatic date update in version.inGDB Administrator1-1/+1
2016-09-28Fix PR 20345 - call_function_by_hand_dummy: Assertion `tp->thread_fsm == ↵Pedro Alves5-0/+105
&sm->thread_fsm' failed If you run an infcall from the command line, and immediately after run some other command, GDB incorrectly processes the other command before the infcall finishes. The problem is that the fix for PR gdb/20418 (Problems with synchronous commands and new-ui, git 3eb7562a983b) moved the add_file_handler/delete_file_handler calls out of target_terminal_$foo, and missed adjusting the infcall code. gdb/ChangeLog: 2016-09-28 Pedro Alves <palves@redhat.com> * infcall.c (run_inferior_call): Remove input from the event loop while running the infcall. gdb/testsuite/ChangeLog: 2016-09-28 Pedro Alves <palves@redhat.com> * gdb.base/infcall-input.c: New file. * gdb.base/infcall-input.exp: New file.
2016-09-28Small improvements to the remote protocol manualTom Tromey2-27/+51
I was reading the gdb RSP manual recently and I found a number of small problems in the documentation. This patch attempts to improve these areas. Specfically: * The term "memory breakpoint" is used only in this section of the manual, and there inconsistently. I found this term confusing -- initially I thought it might be a watchpoint. This patch changes it to use the term "software breakpoint", which is used in the rest of the manual. * The z0 packet didn't document how "kind" was written. And, it had a stray link to the architecture-specific protocol details node. This patch moves this link to a better spot. * The z1 patch didn't document that it accepts cmd_list. * I couldn't find any text saying what response is given to a command like vCont in non-stop mode. The answer is that OK is sent, and then a stop reply is sent as a notification. This patch adds a note about this. * The "create" stop reply did not document that the "R" argument is ignored. * The "W", "X", and "w" packets did not document how the "AA" part is formatted. * The %Stop notification example said "%%Stop", but I think this is incorrect. 2016-09-28 Tom Tromey <tom@tromey.com> * gdb.texinfo (Packets) <z0>: Use "software breakpoint" rather than "memory breakpoint". Further document "kind". Move protocol-details link earlier. <z1>: Document the cmd_list argument. Fix typo. <g>: Remove incorrect sentence. (Stop Reply Packets): Document "OK" response to requests when in non-stop mode. <swbreak>: Use "software breakpoint" rather than "memory breakpoint". <create>: Document that "R" is ignored. <W, X, w>: Document formatting of "AA". (Notification Packets): Use "%Stop", not "%%Stop".
2016-09-28Fix seg-fault in the linker introduced by the previous delta.Akihiko Odaki5-286/+230
PR ld/20636 * elf-bfd.h (struct elf_backend_data): Delete elf_backend_count_output_relocs callback and add elf_backend_update_relocs. * elf32-arm.c (elf32_arm_count_output_relocs): Deleted. (emit_relocs): Deleted. (elf32_arm_emit_relocs): Deleted. (elf_backend_emit_relocs): Updated not to use the old functions. (elf32_arm_update_relocs): New function. (elf_backend_update_relocs): New define. * elflink.c (bfd_elf_final_link): Add additional_reloc_count to the relocation count. Call elf_backend_emit_relocs. (_bfd_elf_size_reloc_section): Do not call elf_backend_count_output_relocs. * elfxx-target.h (elf_backend_count_output_relocs): Deleted. (elf_backend_update_relocs): New define.
2016-09-28Automatic date update in version.inGDB Administrator1-1/+1
2016-09-28[ARM] PR ld/20608 Relocation truncated to fit: R_ARM_THM_JUMP24 for ↵Christophe Lyon8-6/+262
relocation to PLT entry 2016-09-28 Christophe Lyon <christophe.lyon@linaro.org> PR ld/20608 bfd/ * elf32-arm.c (arm_type_of_stub): Handle the case when the pre-PLT Thumb-ARM stub is too far. ld * testsuite/ld-arm/arm-elf.exp: Handle new testcase. * testsuite/ld-arm/farcall-mixed-app2.d: New file. * testsuite/ld-arm/farcall-mixed-app2.r: Likewise. * testsuite/ld-arm/farcall-mixed-app2.s: Likewise. * testsuite/ld-arm/farcall-mixed-app2.sym: Likewise.
2016-09-27Don't treat as separate symbols if unversioned symbol is undefined.Cary Coutant2-0/+7
When we see an unversioned symbol reference in a shared library, followed by a default definition of the symbol in another shared library, we were treating them as separate symbols. That should only happen when both are definitions. gold/ PR gold/20238 * symtab.cc (Symbol_table::define_default_version): Check that unversioned symbol is defined.
2016-09-27Add archives and make stamps to the .gitignore file.Simon Marchi2-0/+14
2016-09-27Ensure that the timestamp in PE/COFF headers is always initialised.Nick Clifton2-0/+8
PR ld/20634 * peXXigen.c (_bfd_XXi_only_swap_filehdr_out): Put 0 in the timestamp field if real time values are not being stored.
2016-09-27Detect the magic address of EXC_RETURN in ARM coretx-m profileFredrik Hederstierna2-9/+65
On ARMv6-M and ARMv7-M, the exception return address is sort of magic address defined by the manual. This patch is to let GDB well handle these magic addresses. 2016-09-27 Fredrik Hederstierna <fredrik.hederstierna@verisure.com> * arm-tdep.c (arm_m_addr_is_magic): New function. (arm_addr_bits_remove): Call arm_m_addr_is_magic. (arm_m_exception_unwind_sniffer): Likewise.
2016-09-27Automatic date update in version.inGDB Administrator1-1/+1
2016-09-26tc-xtensa.c: fixup xg_reverse_shift_count typoTrevor Saunders2-1/+6
gas/ChangeLog: 2016-09-26 Trevor Saunders <tbsaunde+binutils@tbsaunde.org> * config/tc-xtensa.c (xg_reverse_shift_count): Pass cnt_arg instead of cnt_argp to concat.
2016-09-26When building target binaries, ensure that the warning flags selected for ↵Vlad Zakharov27-55/+461
the command line match the target compiler. bfd * warning.m4 (AC_EGREP_CPP_FOR_BUILD): Introduce macro to verify CC_FOR_BUILD compiler. (AM_BINUTILS_WARNINGS): Introduce ac_cpp_for_build variable and add CC_FOR_BUILD compiler checks. * Makefile.in: Regenerate. * configure: Likewise. * doc/Makefile.in: Likewise. binutils * Makefile.am: Replace AM_CLFAGS with AM_CFLAGS_FOR_BUILD when building with CC_FOR_BUILD compiler. * Makefile.in: Regenerate. * configure: Likewise. * doc/Makefile.in: Likewise. gas * Makefile.in: Regenerate. * configure: Likewise. * doc/Makefile.in: Likewise. gold * Makefile.in: Regenerate. * configure: Likewise. * testsuite/Makefile.in: Likewise. gprof * Makefile.in: Regenerate. * configure: Likewise. ld * Makefile.in: Regenerate. * configure: Likewise. opcodes * Makefile.in: Regenerate. * configure: Likewise.
2016-09-26Fix the calculation of AMD64_PCRQUAD relocations.Awson2-1/+12
PR ld/17955 * coff-x86_64.c (coff_amd64_rtype_to_howto): Use an 8 byte offset for R_AMD64_PCRQUAD relocations.
2016-09-26[ARC] ISA alignment.Claudiu Zissulescu6-36/+74
include/ 2016-09-26 Claudiu Zissulescu <claziss@synopsys.com> * opcode/arc.h (insn_class_t): Add two new classes. opcodes/ 2016-09-26 Claudiu Zissulescu <claziss@synopsys.com> * arc-ext-tbl.h (EXTINSN2OPF): Define. (EXTINSN2OP): Use EXTINSN2OPF. (bspeekm, bspop, modapp): New extension instructions. * arc-opc.c (F_DNZ_ND): Define. (F_DNZ_D): Likewise. (F_SIZEB1): Changed. (C_DNZ_D): Define. (C_HARD): Changed. * arc-tbl.h (dbnz): New instruction. (prealloc): Allow it for ARC EM. (xbfu): Likewise.
2016-09-26PowerPC .gnu.attributesAlan Modra28-171/+259
This patch extends Tag_GNU_Power_ABI_FP to cover long double ABIs, makes the assembler warn about undefined tag values, and removes similar warnings from the linker. I think it is better to not warn in the linker about undefined tag values as future extensions to the tags then won't result in likely bogus warnings. This is consistent with the fact that an older linker won't warn on an entirely new tag. include/ * elf/ppc.h (Tag_GNU_Power_ABI_FP): Comment. bfd/ * elf-bfd.h (_bfd_elf_ppc_merge_fp_attributes): Declare. * elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): New function. (ppc_elf_merge_obj_attributes): Use it. Don't copy first file attributes, merge them. Don't warn about undefined tag bits, or copy unknown values to output. * elf64-ppc.c (ppc64_elf_merge_private_bfd_data): Call _bfd_elf_ppc_merge_fp_attributes. binutils/ * readelf.c (display_power_gnu_attribute): Catch truncated section for all powerpc attributes. Display long double ABI. Don't capitalize words, except for names. Show known bits of tag values when some unknown bits are present. Whitespace fixes. gas/ * config/tc-ppc.c (ppc_elf_gnu_attribute): New function. (md_pseudo_table <ELF>): Handle "gnu_attribute". ld/ * testsuite/ld-powerpc/attr-gnu-4-4.s: Delete. * testsuite/ld-powerpc/attr-gnu-4-14.d: Delete. * testsuite/ld-powerpc/attr-gnu-4-24.d: Delete. * testsuite/ld-powerpc/attr-gnu-4-34.d: Delete. * testsuite/ld-powerpc/attr-gnu-4-41.d: Delete. * testsuite/ld-powerpc/attr-gnu-4-32.d: Adjust expected warning. * testsuite/ld-powerpc/attr-gnu-8-23.d: Likewise. * testsuite/ld-powerpc/attr-gnu-4-01.d: Adjust expected output. * testsuite/ld-powerpc/attr-gnu-4-02.d: Likewise. * testsuite/ld-powerpc/attr-gnu-4-03.d: Likewise. * testsuite/ld-powerpc/attr-gnu-4-10.d: Likewise. * testsuite/ld-powerpc/attr-gnu-4-11.d: Likewise. * testsuite/ld-powerpc/attr-gnu-4-20.d: Likewise. * testsuite/ld-powerpc/attr-gnu-4-22.d: Likewise. * testsuite/ld-powerpc/attr-gnu-4-33.d: Likewise. * testsuite/ld-powerpc/attr-gnu-8-11.d: Likewise. * testsuite/ld-powerpc/powerpc.exp: Don't run deleted tests.
2016-09-26[GOLD] regen testsuite/Makefile.inAlan Modra2-5/+6
2016-09-26[GOLD] warning fixesAlan Modra3-2/+8
* aarch64.cc (Target_aarch64::is_erratum_835769_sequence): Avoid compiler warning. * output.cc (Output_segment::set_section_addresses): Likewise.
2016-09-26Fix nm potential buffer overflowAlan Modra2-14/+28
get_coff_symbol_type had a potenial buffer overflow even with untranslated messages. * nm.c (get_elf_symbol_type): Don't use sprintf with translated strings, use asprintf instead. (get_coff_symbol_type): Likewise.
2016-09-26Call debug_exit in linux_wait_1Yao Qi2-0/+17
When I read the GDBserver debug message, I find the "entering" of linux_wait_1 doesn't match the "existing" of linux_wait_1. Looks we don't call debug_exit somewhere in linux_wait_1 on return. gdb/gdbserver: 2016-09-26 Yao Qi <yao.qi@linaro.org> * linux-low.c (linux_wait_1): Call debug_exit.
2016-09-26Automatic date update in version.inGDB Administrator1-1/+1
2016-09-25Automatic date update in version.inGDB Administrator1-1/+1
2016-09-24Fix a use of target_mourn_inferior in windows-nat.cJon Turney2-1/+6
One use of target_mourn_interior seems to have been missed in bc1e6c81 gdb/ChangeLog: 2016-09-23 Jon Turney <jon.turney@dronecode.org.uk> * windows-nat.c (windows_delete_thread): Adjusting call to target_mourn_inferior to include ptid_t argument.
2016-09-24Automatic date update in version.inGDB Administrator1-1/+1
2016-09-23Use std::string rather than dyn-stringTom Tromey4-39/+27
This patch changes some code in cli-cmds.c to use std::string rather than dyn-string, removing some cleanups. Since this was the last use of dyn-string in gdb, this patch also removes make_cleanup_dyn_string_delete. 2016-09-23 Tom Tromey <tom@tromey.com> * utils.h (make_cleanup_dyn_string_delete): Remove declaration. * utils.c: Don't include dyn-string.h. (do_dyn_string_delete, make_cleanup_dyn_string_delete): Remove. * cli/cli-cmds.c: Include <string>. Don't include dyn-string.h. (argv_to_string): Rename. Change return type to std::string. (alias_command): Use std::string.
2016-09-23Use std::vector in objfiles.cTom Tromey2-7/+11
This patch changes a spot in objfiles.c to use a std::vector, removing a cleanup. 2016-09-23 Tom Tromey <tom@tromey.com> * objfiles.c: Include <vector>. (objfile_relocate): Use std::vector.
2016-09-23Use std::string, std::vector in rust-lang.cTom Tromey2-22/+20
This patch changes some spots in rust-lang.c to use std::string or std::vector, removing some cleanups. 2016-09-23 Tom Tromey <tom@tromey.com> * rust-lang.c: Include <string> and <vector>. (rust_evaluate_funcall): Use std::vector, std::string. (rust_evaluate_subexp): Use std::string. (rust_lookup_symbol_nonlocal): Use std::string.
2016-09-23Use std::string in cp-namespace.cTom Tromey2-34/+22
This changes a few spots in cp-namespace.c to use std::string, removing some cleanups. 2016-09-23 Tom Tromey <tom@tromey.com> * cp-namespace.c: Include <string>. (cp_search_static_and_baseclasses) (cp_lookup_symbol_imports_or_template, find_symbol_in_baseclass): Use std::string.
2016-09-23Use std::string in break-catch-sig.cTom Tromey2-11/+11
This changes one spot in break-catch-sig.c to use std::string, removing some cleanups. 2016-09-23 Tom Tromey <tom@tromey.com> * break-catch-sig.c: Include <string>. (signal_catchpoint_print_one): Use std::string.
2016-09-23Remove some unnecessary codeTom Tromey3-8/+5
This patch removes some unnecessary code. In particular, terminate_minimal_symbol_table is declared in minsyms.h, so it doesn't need to be declared in objfiles.h as well. And, restore_ui_out_closure was rendered unnecessary by an earlier patch, so the structure definition can be removed now. I'm checking this in as obvious. Tested by rebuilding on x86-64 Fedora 24 with --enable-targets=all; which would notice any missing includes of minsyms.h. 2016-09-23 Tom Tromey <tom@tromey.com> * utils.c (struct restore_ui_out_closure): Remove. * objfiles.h (terminate_minimal_symbol_table): Don't declare.
2016-09-23Replace sprintf with xsnprintf in nat/linux-osdata.cYao Qi2-2/+10
I see the following build warning when I build GDB with GCC trunk. ../../binutils-gdb/gdb/nat/linux-osdata.c: In function ‘LONGEST linux_xfer_osdata_fds(gdb_byte*, ULONGEST, ULONGEST)’: ../../binutils-gdb/gdb/nat/linux-osdata.c:767:1: error: ‘%s’ directive writing between 0 and 255 bytes into a region of size 11 [-Werror=format-length=] linux_xfer_osdata_fds (gdb_byte *readbuf, ^~~~~~~~~~~~~~~~~~~~~ ../../binutils-gdb/gdb/nat/linux-osdata.c:800:51: note: format output between 7 and 262 bytes into a destination of size 17 sprintf (procentry, "/proc/%s", dp->d_name); ^ ../../binutils-gdb/gdb/nat/linux-osdata.c: In function ‘LONGEST linux_xfer_osdata_threads(gdb_byte*, ULONGEST, ULONGEST)’: ../../binutils-gdb/gdb/nat/linux-osdata.c:555:1: error: ‘%s’ directive writing between 0 and 255 bytes into a region of size 11 [-Werror=format-length=] linux_xfer_osdata_threads (gdb_byte *readbuf, ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../binutils-gdb/gdb/nat/linux-osdata.c:588:51: note: format output between 7 and 262 bytes into a destination of size 17 sprintf (procentry, "/proc/%s", dp->d_name); ^ cc1plus: all warnings being treated as errors The warning is a false positive, but we can workaround it by replacing sprintf with xsnprintf. On the other hand, it is always preferred to use xsnprintf. gdb: 2016-09-23 Yao Qi <yao.qi@linaro.org> * nat/linux-osdata.c (linux_xfer_osdata_threads): Replace sprintf with xsnprintf. (linux_xfer_osdata_fds): Likewise.
2016-09-23gdb: Replace operator new / operator new[]Pedro Alves6-4/+132
If xmalloc fails allocating memory, usually because something tried a huge allocation, like xmalloc(-1) or some such, GDB asks the user what to do: .../src/gdb/utils.c:1079: internal-error: virtual memory exhausted. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) If the user says "n", that throws a QUIT exception, which is caught by one of the multiple CATCH(RETURN_MASK_ALL) blocks somewhere up the stack. The default implementations of operator new / operator new[] call malloc directly, and on memory allocation failure throw std::bad_alloc. Currently, if that happens, since nothing catches it, the exception escapes out of main, and GDB aborts from unhandled exception. This patch replaces the default operator new variants with versions that, just like xmalloc: #1 - Raise an internal-error on memory allocation failure. #2 - Throw a QUIT gdb_exception, so that the exact same CATCH blocks continue handling memory allocation problems. A minor complication of #2 is that operator new can _only_ throw std::bad_alloc, or something that extends it: void* operator new (std::size_t size) throw (std::bad_alloc); That means that if we let a gdb QUIT exception escape from within operator new, the C++ runtime aborts due to unexpected exception thrown. So to bridge the gap, this patch adds a new gdb_quit_bad_alloc exception type that inherits both std::bad_alloc and gdb_exception, and throws _that_. If we decide that we should be catching memory allocation errors in fewer places than all the places we currently catch them (everywhere we use RETURN_MASK_ALL currently), then we could change operator new to throw plain std::bad_alloc then. But I'm considering such a change as separate matter from this one -- it'd make sense to do the same to xmalloc at the same time, for instance. Meanwhile, this allows using new/new[] instead of xmalloc/XNEW/etc. without losing the "virtual memory exhausted" internal-error safeguard. Tested on x86_64 Fedora 23. gdb/ChangeLog: 2016-09-23 Pedro Alves <palves@redhat.com> * Makefile.in (SFILES): Add common/new-op.c. (COMMON_OBS): Add common/new-op.o. (new-op.o): New rule. * common/common-exceptions.h: Include <new>. (struct gdb_quit_bad_alloc): New type. * common/new-op.c: New file. gdb/gdbserver/ChangeLog: 2016-09-23 Pedro Alves <palves@redhat.com> * Makefile.in (SFILES): Add common/new-op.c. (OBS): Add common/new-op.o. (new-op.o): New rule.
2016-09-23Delete relocations associatesd with deleted exidx entries.Akihiko Odaki7-80/+328
PR ld/20595 ld * testsuite/ld-arm/unwind-4.d: Add -q option to linker command line and -r option to objdump command line. Match emitted relocs to make sure that superflous relocs are not generated. bfd * elf-bfd.h (struct elf_backend_data): Add elf_backend_count_output_relocs callback to count relocations in the final output. * elf-arm.c (elf32_arm_add_relocation): Deleted. (elf32_arm_write_section): Move additional relocation to emit_relocs. (elf32_arm_count_output_relocs): New function. (emit_relocs): New function. (elf32_arm_emit_relocs): New function. (elf32_arm_vxworks_emit_relocs): New function. (elf_backend_emit_relocs): Updated to use the new functions. (elf_backend_count_output_relocs): New define. * bfd/elflink.c (bfd_elf_final_link): Do not add additional_reloc_count to the relocation count. (_bfd_elf_link_size_reloc_section): Use callback to count the relocations which will be in output. (_bfd_elf_default_count_output_relocs): New function. * bfd/elfxx-target.h (elf_backend_count_output_relocs): New define.
2016-09-23S/390: Move start of 64 bit binaries from 2GB to 256MB.Andreas Krebbel4-4/+11
ld/ChangeLog: 2016-09-23 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * emulparams/elf64_s390.sh: Change TEXT_START_ADDR to 256MB. * testsuite/ld-s390/tlsbin_64.dd: Adjust testcase accordingly. * testsuite/ld-s390/tlsbin_64.rd: Likewise.
2016-09-23Automatic date update in version.inGDB Administrator1-1/+1
2016-09-22Close gdbserver in mi_gdb_exitYao Qi2-5/+38
In commit 6423214f (testsuite: Don't use expect_background to reap gdbserver), we override gdb_exit in lib/gdbserver-support.exp, so that we can close gdbserver first. However, we don't close gdbserver in mi_gdb_exit. This makes a problem in my aarch64 mulit-arch testing, in which I run some mi tests, mi-watch.exp for example, in different variations (aarch64 and arm), Schedule of variations: junor0-2 junor0-2-arm/-marm junor0-2-arm/-mthumb When the test is done in the first variation (aarch64), test case is recompiled for arm, but GDBserver with aarch64 program is still running. When the second variation is started, GDB loads arm program, but GDBserver still loads aarch64 program because the old GDBserver process is using it. We'll get, 47-target-select remote junor0-2:2350^M &"warning: Selected architecture arm is not compatible with reported target architecture aarch64\n"^M &"warning: Architecture rejected target-supplied description\n" This patch fixes this problem by closing GDBserver in mi_gdb_exit. gdb/testsuite: 2016-09-22 Yao Qi <yao.qi@linaro.org> * lib/gdbserver-support.exp: Rename mi_gdb_exit. (gdb_exit): Rename it to ... (gdbserver_gdb_exit): ... Close GDBserver. (gdb_exit): New proc, call gdbserver_gdb_exit. (mi_gdb_exit): Likewise.
2016-09-22Fix build breakage from commit 6ec2b2Edjunior Barbosa Machado2-2/+11
I was notified by buildbot that my patch (commit 6ec2b2) has broken the build on x86_64: ../../binutils-gdb/gdb/rs6000-tdep.c: In function int ppc_process_record_op31(gdbarch*, regcache*, CORE_ADDR, uint32_t): ../../binutils-gdb/gdb/rs6000-tdep.c:4705:50: error: cannot convert CORE_ADDR* {aka long unsigned int*} to ULONGEST* {aka long long unsigned int*} for argument 3 to register_status regcache_raw_read_unsigned(regcache*, int, ULONGEST*) tdep->ppc_gp0_regnum + PPC_RA (insn), &ea); ^ ../../binutils-gdb/gdb/rs6000-tdep.c:4718:50: error: cannot convert CORE_ADDR* {aka long unsigned int*} to ULONGEST* {aka long long unsigned int*} for argument 3 to register_status regcache_raw_read_unsigned(regcache*, int, ULONGEST*) tdep->ppc_gp0_regnum + PPC_RA (insn), &ea); ^ The patch below should fix it. gdb/ChangeLog: 2016-09-22 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com> * rs6000-tdep.c (ppc_process_record_op31): Fix regcache_raw_read_unsigned call using the correct parameter type.
2016-09-22Use gdbserver-base in remote-gdbserver-on-localhost.expYao Qi3-37/+9
This patch is to make remote-gdbserver-on-localhost.exp use gdbserver-base and remove duplicated code. gdb/testsuite: 2016-09-22 Yao Qi <yao.qi@linaro.org> * boards/gdbserver-base.exp (gdb_server_prog): Set the absolute path. * boards/remote-gdbserver-on-localhost.exp: Use gdbserver-base. Remove duplication.
2016-09-22Report failed attempts to locate DT_NEEDED files when --verbose is in effect.Nick Clifton2-1/+10
* emultempl/elf32.em (_try_needed): In verbose mode, report failed attempts to find a needed library.
2016-09-22arc: Fix ARI warning for printf(%p)Anton Kolesov2-2/+7
Replace printf ("%p") with printf ("%s", host_address_to_string ()). Printing host addrss might make sense here because pointers can be null and this would affect how function behaves. This particular warning is printed only when option -Wari is passed to contrib/ari/gdb_ari.sh gdb/ChangeLog: * arc-tdep.c: Fix ARI warning for printf(%p).
2016-09-22Remove legacy basepri_mask MRS/MSR special regThomas Preud'homme2-1/+5
2016-09-22 Thomas Preud'homme <thomas.preudhomme@arm.com> gas/ * config/tc-arm.c (v7m_psrs): Remove BASEPRI_MASK MRS/MSR special register and redundant basepri_max.
2016-09-22Check the right proc nameYao Qi2-1/+6
In lib/gdbserver-support.exp, we rename gdb_exit to gdbserver_orig_gdb_exit, but we check the existence gdbserver_gdb_exit. We should check gdbserver_orig_gdb_exit instead. Looks it is a typo or an oversight. gdb/testsuite: 2016-09-22 Yao Qi <yao.qi@linaro.org> * lib/gdbserver-support.exp: Check the existence of gdbserver_orig_gdb_exit rather than gdbserver_gdb_exit.