aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-06-01[AArch64] GAS support BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14Jiong Wang10-0/+57
This patch add BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14 support in Gas. The relocation modifier === :gotpage_lo14:symbol 2015-06-01 Jiong.Wang <jiong.wang@arm.com> bfd/ * reloc.c (BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14): New entry. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14. gas/ * config/tc-aarch64.c (reloc_table): New relocation modifiers. (md_apply_fix): Support BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14. (aarch64_force_relocation): Ditto. gas/testsuite/ * gas/aarch64/ilp32-basic.s: New testcase. * gas/aarch64/ilp32-basic.d: Ditto.
2015-06-01PR symtab/18392Jan Kratochvil7-4/+703
Initially there is some chain (let's say the longest one but that doe snot matter). Consequently its elements from the middle are being removed and there remains only some few unambiguous top and bottom ones. The original idea why the comparison should be sharp ("<") was that if there are multiple chains like (0xaddr show jmp instruction address): main(0x100) -> a(0x200) -> d(0x400) main(0x100) -> a(0x200) -> c(0x300) -> d(0x400) then - such situation cannot exist - if two jmp instructions in "a" have the same address they must also jump to the same address (*). (*) jump to a computed address would be never considered for the DWARF tail-call records. So there could be: main(0x100) -> a(0x200) -> d(0x400) main(0x100) -> a(0x270) -> c(0x300) -> d(0x400) But then "a" frame itself is ambiguous and it must not be displayed. I did not realize that there can be self-tail-call: main(0x100) -> a(0x200) -> d(0x400) main(0x100) -> a(0x280) -> a(0x200) -> d(0x400) which intersects to: main(0x100) -> <???>? -> a(0x200) -> d(0x400) And so if the first chain was chosen the main(0x100) -> a(0x200) -> d(0x400) then the final intersection has callers+callees==length. > for example, if CALLERS is 3 and > CALLEES is 2, what does the chain look like? main(0x100) -> x(0x150) -> y(0x200) -> <???>? -> a(0x200) -> d(0x400) And if LENGTH is 7 then: call_site[0] = main(0x100) call_site[1] = x(0x150) call_site[2] = y(0x200) call_site[3] = garbage call_site[4] = garbage call_site[5] = a(0x200) call_site[6] = d(0x400) gdb/ChangeLog 2015-06-01 Andreas Schwab <schwab@linux-m68k.org> Jan Kratochvil <jan.kratochvil@redhat.com> PR symtab/18392 * dwarf2-frame-tailcall.c (pretended_chain_levels): Correct assertion. * dwarf2loc.c (chain_candidate): Likewise. gdb/testsuite/ChangeLog 2015-06-01 Jan Kratochvil <jan.kratochvil@redhat.com> PR symtab/18392 * gdb.arch/amd64-tailcall-self.S: New file. * gdb.arch/amd64-tailcall-self.c: New file. * gdb.arch/amd64-tailcall-self.exp: New file.
2015-06-01Fetch and store VFP registers by PTRACE_{G,S}ETREGSETYao Qi2-3/+37
This patch is to use PTRACE_{G,S}ETREGSET to fetch and store VFP registers if kernel supports. gdb: 2015-06-01 Yao Qi <yao.qi@linaro.org> * arm-linux-nat.c (fetch_vfp_regs): Use PTRACE_GETREGSET. (store_vfp_regs): Use PTRACE_SETREGSET.
2015-06-01Fetch and store FP registers by PTRACE_{G,S}ETREGSETYao Qi2-10/+84
If kernel supports PTRACE_GETREGSET, GDB uses PTRACE_{G,S}ETREGSET to fetch and store FP registers. gdb: 2015-06-01 Yao Qi <yao.qi@linaro.org> * arm-linux-nat.c (fetch_fpregister): Use PTRACE_GETREGSET. (fetch_fpregs): Likewise. * arm-linux-nat.c (store_fpregister): Use PTRACE_SETREGSET. (store_fpregs): Likewise.
2015-06-01Fetch and store GP registers by PTRACE_{G,S}ETREGSETYao Qi2-10/+82
If kernel supports PTRACE_GETREGSET, GDB uses PTRACE_{G,S}ETREGSET to fetch and store GP registers. gdb: 2015-06-01 Yao Qi <yao.qi@linaro.org> * arm-linux-nat.c (fetch_register): Use PTRACE_GETREGSET. (fetch_regs): Likewise. (store_regs): Use PTRACE_SETREGSET. (store_register): Likewise.
2015-06-01Check whether kernel supports PTRACE_GETREGSETYao Qi2-0/+21
gdb: 2015-06-01 Yao Qi <yao.qi@linaro.org> * arm-linux-nat.c (arm_linux_read_description): Check whether kernel supports PTRACE_GETREGSET.
2015-06-01Move have_ptrace_getregset to linux-nat.cYao Qi5-4/+14
I'll let arm-linux-nat.c to use PTRACE_GETREGSET if kernel supports, so this patch is to move have_ptrace_getregset from x86-linux-nat.c to linux-nat.c. gdb: 2015-06-01 Yao Qi <yao.qi@linaro.org> * x86-linux-nat.c (have_ptrace_getregset): Move it to ... * linux-nat.c: ... here. * x86-linux-nat.h (have_ptrace_getregset): Move the declaration to ... * linux-nat.h: ... here.
2015-06-01Move PTRACE_GETREGSET and PTRACE_SETREGSET to nat/linux-ptrace.hYao Qi10-33/+27
Macros PTRACE_GETREGSET and PTRACE_SETREGSET are defined locally in some places in GDB and GDBserver. This patch is to move them to nat/linux-ptrace.h to avoid duplication. gdb: 2015-06-01 Yao Qi <yao.qi@linaro.org> * amd64-linux-nat.c: Include "nat/linux-ptrace.h". * i386-linux-nat.c: Likewise. * nat/linux-ptrace.h (PTRACE_GETREGSET, PTRACE_SETREGSET): Define. * s390-linux-nat.c: Include "nat/linux-ptrace.h". (PTRACE_GETREGSET, PTRACE_SETREGSET): Remove. * x86-linux-nat.c: Include "nat/linux-ptrace.h". * x86-linux-nat.h (PTRACE_GETREGSET, PTRACE_SETREGSET): Remove. gdb/gdbserver: 2015-06-01 Yao Qi <yao.qi@linaro.org> * linux-s390-low.c (PTRACE_GETREGSET, PTRACE_SETREGSET): Remove. * linux-x86-low.c: Likewise.
2015-06-01x86/Intel: fix i386_optab[] for vcvt{,u}si2s{d,s}Jan Beulich2-6/+10
opcodes/ 2015-06-01 Jan Beulich <jbeulich@suse.com> * i386-tbl.h: Regenerate.
2015-06-01[AArch64] BFD_RELOC_AARCH64_TLSLE_ADD_LO12 should enable overflow checkJiong Wang7-2/+48
BFD_RELOC_AARCH64_TLSLE_ADD_LO12 is used to generate simplest one-instruction addressing for TLS LE model when tls size is smaller 4K. Linker need to make sure there is no TLS offset overflow. 2015-06-01 Jiong Wang <jiong.wang@arm.com> bfd/ * elfnn-aarch64.c (elfNN_aarch64_howto_table): Set overflow type to complain_overflow_unsigned for BFD_RELOC_AARCH64_TLSLE_ADD_LO12. * elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Don't use PGOFF for BFD_RELOC_AARCH64_TLSLE_ADD_LO12, that will mask off all potential high overflowed bits. ld/testsuite/ * ld-aarch64/tprel_add_lo12_overflow.s: New testcase. * ld-aarch64/tprel_add_lo12_overflow.d: Nex expectation file. * ld-aarch64/aarch64-elf.exp: Run new testcase.
2015-06-01[AArch64] BFD Support BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15Jiong Wang7-2/+68
2015-06-01 Jiong Wang <jiong.wang@arm.com> bfd/ * elfnn-aarch64.c (aarch64_reloc_got_type): Support BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15. (elfNN_aarch64_final_link_relocate): Ditto. (elfNN_aarch64_gc_swap_hook): Ditto. (elfNN_aarch64_check_relocs): Ditto. * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Ditto. ld/testsuite/ * ld-aarch64/emit-relocs-313.s: New test file. * ld-aarch64/emit-relocs-313.d: Ditto. * ld-aarch64/aarch64-elf.exp: Run new test.
2015-06-01[AArch64] GAS Support BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15Jiong Wang10-15/+74
2015-06-01 Jiong.Wang <jiong.wang@arm.com> bfd/ * reloc.c (BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15): New entry. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15. gas/ * config/tc-aarch64.c (reloc_table): New relocation modifiers. (md_apply_fix): Support BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15. (aarch64_force_relocation): Ditto. gas/testsuite/ * gas/aarch64/reloc-insn.s: New testcase. * gas/aarch64/reloc-insn.d: Ditto.
2015-06-01x86/Intel: disassemble vcvt{,u}si2s{d,s} with correct operand orderJan Beulich9-432/+451
As pointed out before, the documentation mandates the rounding mode to follow the GPR, so disassembler should produce output accordingly. gas/testsuite/ 2015-06-01 Jan Beulich <jbeulich@suse.com> * gas/i386/avx512f.s: Adjust operand order for Intel syntax vcvt{,u}si2ss. * gas/i386/x86-64-avx512f.s: Adjust operand order for Intel syntax vcvt{,u}si2s{d,s}. opcodes/ 2015-06-01 Jan Beulich <jbeulich@suse.com> * i386-dis.c (print_insn): Swap rounding mode specifier and general purpose register in Intel mode.
2015-06-01x86/Intel: accept mandated operand order for vcvt{,u}si2s{d,s}Jan Beulich6-72/+224
As pointed out before, the documentation mandates the rounding mode to follow the GPR, so gas should accept such input. As the brojen code got released already we sadly will need to continue to also accept the badly ordered operands. gas/testsuite/ 2015-06-01 Jan Beulich <jbeulich@suse.com> * gas/i386/avx512f-intel.d: Adjust expectations on operand order. * gas/i386/evex-lig256-intel.d: Likewise. * gas/i386/evex-lig512-intel.d: Likewise. * gas/i386/x86-64-avx512f-intel.d: Likewise. * gas/i386/x86-64-evex-lig256-intel.d: Likewise. * gas/i386/x86-64-evex-lig512-intel.d: Likewise. opcodes/ 2015-06-01 Jan Beulich <jbeulich@suse.com> * i386-opc.tbl: New IntelSyntax entries for vcvt{,u}si2s{d,s}. * i386-tbl.h: Regenerate.
2015-06-01Automatic date update in version.inGDB Administrator1-1/+1
2015-05-31Automatic date update in version.inGDB Administrator1-1/+1
2015-05-30Unbreak DJGPP build of GDB.Eli Zaretskii2-2/+10
gdb/ * go32-nat.c (go32_xfer_memory): Fix the return value to be compatible to what read_child and write_child return. This unbreaks that DJGPP build of GDB which was broken since v7.7.
2015-05-30Automatic date update in version.inGDB Administrator1-1/+1
2015-05-29Add myself to the Write After Approval list.Martin Galvan2-0/+5
2015-05-29PR gdb/18464: Do not crash on unrecognized GNU .note.ABI-tag valuesRoland McGrath2-45/+49
Diagnosis of unexpected input (in this case, in an executable file) should not crash as if it were a bug in GDB. gdb/ PR gdb/18464 * osabi.c (generic_elf_osabi_sniff_abi_tag_sections): Use warning rather than internal_error for an unrecognized value.
2015-05-29Recognize GNU_ABI_TAG_SYLLABLE and GNU_ABI_TAG_NACL.Roland McGrath4-6/+24
binutils/ * readelf.c (print_gnu_note: NT_GNU_ABI_TAG): Recognize GNU_ABI_TAG_SYLLABLE and GNU_ABI_TAG_NACL. include/elf/ * common.h (GNU_ABI_TAG_SYLLABLE): New macro. (GNU_ABI_TAG_NACL): New macro.
2015-05-29Fix building PE test executables in environments where $CFLAGS is needed.Stephen Kitt2-4/+9
* ld-pe/pe-run2.exp (test_direct2_link_dll): Add $CFLAGS to the compiler command line.
2015-05-29xtensa: fix access to the last pseudo registerMax Filippov2-8/+6
Currently access to the last pseudo register is aliased to a1. This is done by little snippets in the beginning of xtensa_pseudo_register_read and xtensa_pseudo_register_write that used to do such aliasing for FP register since bdb4c075a29dd086f0868b394b488b1c94666be6, but then FP_ALIAS was expanded into gdbarch_num_regs (current_gdbarch) + gdbarch_num_pseudo_regs (current_gdbarch) (one register past the last pseudo register) in 304fe2552d6e0821e8fdb7575f8e7ba6607a076d, which then was changed to the last pseudo register in 94a0e877111421d300d26b858bd3a0a27078d1e8. Drop these snippets. 2015-05-29 Max Filippov <jcmvbkbc@gmail.com> gdb/ * xtensa-tdep.c (xtensa_pseudo_register_read) (xtensa_pseudo_register_write): Don't alias last pseudo register to a1.
2015-05-29Fixes a couple of bugs reported in dlltool.Stephen Kitt2-0/+10
* dlltool.c (make_one_lib_file): Clear .idata$6 before use. (main): Fail if the output file specified by the -z option cannot be opened.
2015-05-29Automatic date update in version.inGDB Administrator1-1/+1
2015-05-28Compact EH SupportCatherine Moore64-289/+2772
The specification for the Compact EH format is available at: https://github.com/MentorEmbedded/cxx-abi/blob/master/MIPSCompactEH.pdf 2015-05-28 Catherine Moore <clm@codesourcery.com> Bernd Schmidt <bernds@codesourcery.com> Paul Brook <paul@codesourcery.com> bfd/ * bfd-in2.h: Regenerated. * elf-bfd.h (DWARF2_EH_HDR, COMPACT_EH_HDR): Define. (COMPACT_EH_CANT_UNWIND_OPCODE): Define. (dwarf_eh_frame_hdr_info): Move dwarf-specific fields from eh_frame_hdr_info. (compact_eh_frame_hdr_info): Declare. (eh_frame_hdr_info): Redeclare with union for dwarf-specific fields and compact-eh fields. (elf_backend_data): Add cant_unwind_opcode and compact_eh_encoding. (bfd_elf_section_data): Add eh_frame_entry_field. (elf_section_eh_frame_entry): Define. (bfd_elf_parse_eh_frame_entries): Declare. (_bfd_elf_parse_eh_frame_entry): Declare. (_bfd_elf_end_eh_frame_parsing): Declare. (_bfd_elf_write_section_eh_frame_entry): Declare. (_bfd_elf_eh_frame_entry_present): Declare. (_bfd_elf_section_for_symbol): Declare. * elf-eh-frame.c (bfd_elf_discard_eh_frame_entry): New function. (bfd_elf_record_eh_frame_entry): New function. (_bfd_elf_parse_eh_frame_entry): New function. (_bfd_elf_parse_eh_frame): Update hdr_info field references. (cmp_eh_frame_hdr): New function. (add_eh_frame_hdr_terminator): New function. (_bfd_elf_end_eh_frame_parsing): New function. (find_merged_cie): Update hdr_info field references. (_bfd_elf_discard_section_eh_frame): Likewise. (_bfd_elf_discard_section_eh_frame_hdr): Add Compact EH support. (_bfd_elf_eh_frame_entry_present): New function. (_bfd_elf_maybe_strip_eh_frame_hdr): Add Compact EH support. (_bfd_elf_write_section_eh_frame_entry): New function. (_bfd_elf_write_section_eh_frame): Update hdr_info field references. (_bfd_elf_fixup_eh_frame_hdr): New function. (write_compact_eh_frame_hdr): New function. (write_dwarf_eh_frame_hdr): New function. (_bfd_elf_write_section_eh_frame_hdr): Add Compact EH support. * elflink.c (_bfd_elf_section_for_symbol): New function. (elf_section_ignore_discarded_relocs): Add Compact EH support. (elf_link_input_bfd): Likewise. (bfd_elf_final_link): Likewise. (_bfd_elf_gc_mark): Likewise. (bfd_elf_parse_eh_frame_entries): New function. (bfd_elf_gc_sections): Add Compact EH support. (bfd_elf_discard_info): Likewise. * elfxx-mips.c: Include dwarf2.h. (_bfd_mips_elf_compact_eh_encoding): New function. (_bfd_mips_elf_cant_unwind_opcode): New function. * elfxx-mips.h (_bfd_mips_elf_compact_eh_encoding): Declare. (_bfd_mips_elf_cant_unwind_opcode): Declare. (elf_backend_compact_eh_encoding): Define. (elf_backend_cant_unwind_opcode): Define. * elfxx-target.h (elf_backend_compact_eh_encoding): Provide default. (elf_backend_cant_unwind_opcode): Provide default. (elf_backend_data elfNN_bed): Add elf_backend_compact_eh_encoding and elf_backend_cant_unwind_opcode. * section.c (SEC_INFO_TYPE_EH_FRAME_ENTRY): Add definition. gas/ * config/tc-alpha.c (all_cfi_sections): Declare. (s_alpha_ent): Initialize all_cfi_sections. (alpha_elf_md_end): Invoke cfi_set_sections. * config/tc-mips.c (md_apply_fix): Handle BFD_RELOC_NONE. (s_ehword): Use BFD_RELOC_32_PCREL. (mips_fix_adjustable): Handle BFD_RELOC_32_PCREL. (mips_cfi_reloc_for_encoding): New function. * tc-mips.h (DWARF2_FDE_RELOC_SIZE): Redefine. (DWARF2_FDE_RELOC_ENCODING): Define. (tc_cfi_reloc_for_encoding): Define. (mips_cfi_reloc_for_encoding): Define. (tc_compact_eh_opcode_stop): Define. (tc_compact_eh_opcode_pad): Define. * doc/as.texinfo: Document Compact EH extensions. * doc/internals.texi: Likewise. * dw2gencfi.c (EH_FRAME_LINKONCE): Redefine. (tc_cfi_reloc_for_encoding): Provide default. (compact_eh): Declare. (emit_expr_encoded): New function. (get_debugseg_name): Add Compact EH support. (alloc_debugseg_item): Likewise. (cfi_set_sections): New function. (dot_cfi_fde_data): New function. (dot_cfi_personality_id): New function. (dot_cfi_inline_lsda): New function. (cfi_pseudo_table): Add cfi_fde_data, cfi_personality_id, and cfi_inline_lsda. (dot_cfi_personality): Add Compact EH support. (dot_cfi_lsda): Likewise. (dot_cfi_sections): Likewise. (dot_cfi_startproc): Likewise. (get_cfi_seg): Likewise. (output_compact_unwind_data): New function. (output_cfi_insn): Add Compact EH support. (output_cie): Likewise. (output_fde): Likewise. (cfi_finish): Likewise. (cfi_emit_eh_header): New function. (output_eh_header): New function. * dw2gencfi.h (cfi_set_sections): Declare. (SUPPORT_COMPACT_EH): Define. (MULTIPLE_FRAME_SECTIONS): Define. New enumeration to describe the Compact EH header format. (fde_entry): Add new fields personality_id, eh_header_type, eh_data_size, eh_data, eh_loc and sections. (CFI_EMIT_eh_frame, CFI_EMIT_debug_frame, CFI_EMIT_target, CFI_EMIT_eh_frame_compact): Define. 2015-05-22 Catherine Moore <clm@codesourcery.com> Bernd Schmidt <bernds@codesourcery.com> gas/testsuite/ * gas/mips/mips.exp: Run new tests. * gas/mips/compact-eh-1.s: New file. * gas/mips/compact-eh-2.s: New file. * gas/mips/compact-eh-3.s: New file. * gas/mips/compact-eh-4.s: New file. * gas/mips/compact-eh-5.s: New file. * gas/mips/compact-eh-6.s: New file. * gas/mips/compact-eh-7.s: New file. * gas/mips/compact-eh-eb-1.d: New file. * gas/mips/compact-eh-eb-2.d: New file. * gas/mips/compact-eh-eb-3.d: New file. * gas/mips/compact-eh-eb-4.d: New file. * gas/mips/compact-eh-eb-5.d: New file. * gas/mips/compact-eh-eb-6.d: New file. * gas/mips/compact-eh-eb-7.d: New file. * gas/mips/compact-eh-el-1.d: New file. * gas/mips/compact-eh-el-2.d: New file. * gas/mips/compact-eh-el-3.d: New file. * gas/mips/compact-eh-el-4.d: New file. * gas/mips/compact-eh-el-5.d: New file. * gas/mips/compact-eh-el-6.d: New file. * gas/mips/compact-eh-el-7.d: New file. * gas/mips/compact-eh-err1.l: New file. * gas/mips/compact-eh-err1.s: New file. * gas/mips/compact-eh-err2.l: New file. * gas/mips/compact-eh-err2.s: New file. 2015-05-22 Catherine Moore <clm@codesourcery.com> include/ * bfdlink.h: Rename eh_frame_hdr to eh_frame_hdr_type. 2015-05-22 Catherine Moore <clm@codesourcery.com> Paul Brook <paul@codesourcery.com> ld/ * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Add Compact EH support. * scripttempl/elf.sc: Handle .eh_frame_entry and .gnu_extab sections. 2015-05-22 Catherine Moore <clm@codesourcery.com> ld/testsuite/ * ld-mips-elf/compact-eh.ld: New linker script. * ld-mips-elf/compact-eh1.d: New. * ld-mips-elf/compact-eh1.s: New. * ld-mips-elf/compact-eh1a.s: New. * ld-mips-elf/compact-eh1b.s: New. * ld-mips-elf/compact-eh2.d: New. * ld-mips-elf/compact-eh2.s: New. * ld-mips-elf/compact-eh3.d: New. * ld-mips-elf/compact-eh3.s: New. * ld-mips-elf/compact-eh3a.s: New. * ld-mips-elf/compact-eh4.d: New. * ld-mips-elf/compact-eh5.d: New. * ld-mips-elf/compact-eh6.d: New. * ld-mips-elf/mips-elf.exp: Run new tests.
2015-05-28Disable exec-dependent follow vfork tests for remoteDon Breazeal2-12/+22
The native-extended-gdbserver target now supports fork events and follow fork, but it does not yet support exec events. Some of the tests in gdb.base/foll-vfork.exp depend on exec events. This patch disables those tests for remote targets. We can re-enable these once the exec event support goes in. gdb/testsuite/ * gdb.base/foll-vfork.exp (main): Disable exec-dependent tests for remote targets by checking is_target_gdbserver.
2015-05-28Initialize last_resume_kind for remote fork childDon Breazeal2-1/+10
This patch fixes some intermittent test failures in gdb.base/foll-vfork.exp where a vfork child would be (incorrectly) resumed when handling the vfork event. In this case the result was a subsequent event reported to the client side as a SIGTRAP delivered to the as-yet-unknown child thread. The new thread was resumed (incorrectly) in linux-low.c when resume_stopped_resumed_lwps was called from linux_wait_for_event_filtered after the vfork event had been handled in handle_extended_wait. Gdbserver/linux-low.c's add_thread function creates threads with last_resume_kind == resume_continue by default. This field is used by resume_stopped_resumed_lwps to decide whether to perform the resume: static void resume_stopped_resumed_lwps (struct inferior_list_entry *entry) { struct thread_info *thread = (struct thread_info *) entry; struct lwp_info *lp = get_thread_lwp (thread); if (lp->stopped && !lp->status_pending_p && thread->last_resume_kind != resume_stop && thread->last_status.kind == TARGET_WAITKIND_IGNORE) { So the fix is to make sure to set thread->last_resume_kind to resume_stop. Here we do that for new fork children in gdbserver/linux-low.c:handle_extended_wait. In addition, it seemed prudent to initialize lwp_info.status_pending_p for the new fork child. I also rearranged the initialization code so that all of the lwp_info initialization was together, rather than intermixed with thread_info and process_info initialization. Tested native, native-gdbserver, native-extended-gdbserver on x86_64 GNU/Linux. gdb/gdbserver/ * linux-low.c (handle_extended_wait): Initialize thread_info.last_resume_kind for new fork children.
2015-05-28Make remote follow fork 'Detaching' message match nativeDon Breazeal2-2/+14
This patch fixes a couple of failures in gdb.base/foll-vfork.exp for extended-remote targets. The failures were the result of the verbose/debug "Detaching..." messages in infrun.c:follow_fork_inferior not matching what was expected in the extended-remote case. The path modifies the ptids used in the messages to ensure that they print "process nnn" instead of (possibly) "Thread nnn.nnn". The detach is a process-wide operation, so we need to use a process- style ptid regardless of what type of ptid target_pid_to_str returns. Tested on x86_64 GNU/Linux, native, remote, extended-remote. gdb/ * infrun.c (follow_fork_inferior): Ensure the use of process-style ptids (pid,0,0) in verbose/debug "Detaching" messages.
2015-05-28* dwarf2read.c (record_line_ftype): Remove, duplicate.Doug Evans2-5/+4
gdb/Changelog: * dwarf2read.c (record_line_ftype): Remove, duplicate.
2015-05-28Remove global variable arm_linux_has_wmmx_registers in arm-linux-nat.cYao Qi4-12/+23
This patch is to remove the global variable arm_linux_has_wmmx_registers in arm-linux-nat.c, and add a new field have_wmmx_registers in 'struct gdbarch_tdep'. gdb: 2015-05-28 Yao Qi <yao.qi@linaro.org> * arm-linux-nat.c (arm_linux_has_wmmx_registers): Remove. (arm_linux_fetch_inferior_registers): Use tdep->have_wmmx_registers instead of arm_linux_has_wmmx_registers. (arm_linux_store_inferior_registers): Likewise. (arm_linux_read_description): Don't set arm_linux_has_wmmx_registers. * arm-tdep.c (arm_gdbarch_init): Set tdep->have_wmmx_registers according target descriptions. * arm-tdep.h (struct gdbarch_tdep) <have_wmmx_registers>: New field.
2015-05-28Remove global variable arm_linux_vfp_register_count in arm-linux-nat.cYao Qi5-30/+48
This patch is to remove the global variable arm_linux_vfp_register_count from arm-linux-nat.c. This global variable is set when native gdb looks for the right target description according HWCAP. However, 'struct gdbarch_tdep' has already had a field have_vfp_registers, which is a boolean about whether target has vfp registers or not. This patch converts this boolean field to a numeric counter to replace global variable arm_linux_vfp_register_count. gdb: 2015-05-28 Yao Qi <yao.qi@linaro.org> * arm-linux-nat.c (arm_linux_vfp_register_count): Remove. (fetch_vfp_regs): Use vfp_register_count from gdbarch_tdep instead of arm_linux_vfp_register_count. (store_vfp_regs): Likewise. (arm_linux_fetch_inferior_registers): Likewise. (arm_linux_store_inferior_registers): Likewise. (arm_linux_read_description): Don't set arm_linux_vfp_register_count. * arm-linux-tdep.c (arm_linux_iterate_over_regset_sections): Adjust. * arm-tdep.c (arm_gdbarch_init): Add assert on vfp_register_count. * arm-tdep.h (struct gdbarch_tdep) <have_vfp_registers>: Rename field to vfp_register_count. All users updated.
2015-05-28Do arm_abi detection for ELFOSABI_GNU binariesKyle Huey2-1/+6
On ARM systems, gdb must determine which style of breakpoint to use (see the comments at the beginning of gdb/arm-linux-tdep.c). In arm_gdbarch_init we only attempt to extract the eabi version from the ELF binary if it is a ELFOSABI_NONE binary. If the binary is ELFOSABI_GNU instead, we end up defaulting to the old style OABI syscall breakpoint instruction. On a Linux kernel built without CONFIG_OABI_COMPAT, this triggers a SIGILL in ld when attempting to execute any ELFOSABI_GNU program. (e.g. https://github.com/raspberrypi/linux/issues/766) gdb/ 2015-05-28 Kyle Huey <me@kylehuey.com> (tiny patch) * gdb/arm-tdep.c (arm_gdbarch_init): Perform arm_abi detection on ELFOSABI_GNU binaries.
2015-05-28Automatic date update in version.inGDB Administrator1-1/+1
2015-05-27Add struct to record dwarf line number state machine.Doug Evans2-152/+262
gdb/ChangeLog: * dwarf2read.c (lnp_state_machine): New typedef. (lnp_reader_state): New typedef. (dwarf_record_line_1): Renamed from dwarf_record_line. All callers updated. (dwarf_record_line): New function. (init_lnp_state_machine): New function. (check_line_address): Replace p_record_line parameter with state. All callers updated. (dwarf_decode_lines_1): Call dwarf_record_line, init_lnp_state_machine. Update to record state in lnp_state_machine.
2015-05-27Convert PLT reloc only if pointer equality isn't neededH.J. Lu8-4/+67
When pointer equality needed, we can't replace PLT relocations with GOT relocations for -z now. This patch checks if pointer equality is needed before converting PLT relocations to GOT relocations. bfd/ PR binutils/18458 * elf32-i386.c (elf_i386_check_relocs): Create .plt.got section for now binding only if pointer equality isn't needed. (elf_i386_allocate_dynrelocs): Use .plt.got section for now binding only if pointer equality isn't needed. * elf64-x86-64.c (elf_x86_64_check_relocs): Create .plt.got section for now binding only if pointer equality isn't needed. (elf_x86_64_allocate_dynrelocs): Use .plt.got section for now binding only if pointer equality isn't needed. ld/testsuite/ PR binutils/18458 * ld-elf/shared.exp (build_tests): Build libpr18458a.so and libpr18458b.so. (run_tests): Run pr18458 test. * ld-elf/pr18458a.c: New file. * ld-elf/pr18458b.c: Likewise. * ld-elf/pr18458c.c: Likewise.
2015-05-27dwarf2read.c code cleanup, split out check_line_addressDoug Evans2-24/+44
gdb/ChangeLog: * dwarf2read.c (record_line_ftype): New typedef. (check_line_address): New function. (dwarf_decode_lines_1): Call it.
2015-05-27Add set/show debug dwarf-line.Doug Evans5-2/+65
gdb/ChangeLog: * NEWS: Mention "set debug dwarf-line". * dwarf2read.c (dwarf_line_debug): New static global. (add_include_dir): Add debug dwarf-line support. (add_file_name, dwarf_record_line, dwarf_finish_line): Ditto. (_initialize_dwarf2_read): New parameter "debug dwarf-line". gdb/doc/ChangeLog: * gdb.texinfo (Debugging Output): Mention set/show debug dwarf-line.
2015-05-27Don't ignore domain in nested lookups.Doug Evans4-19/+34
gdb/ChangeLog: * cp-namespace.c (cp_lookup_nested_symbol): New arg "domain". All callers updated. (cp_lookup_nested_symbol_1, find_symbol_in_baseclass): Ditto. * cp-support.h (cp_lookup_nested_symbol): Update.
2015-05-27PR symtab/18258Doug Evans10-43/+409
gdb/ChangeLog: * block.c (block_find_symbol): New function. (block_find_non_opaque_type): Ditto. (block_find_non_opaque_type_preferred): Ditto. * block.h (block_symbol_matcher_ftype): New typedef. (block_find_symbol): Declare. (block_find_non_opaque_type): Ditto. (block_find_non_opaque_type_preferred): Ditto. * dwarf2read.c (dw2_lookup_symbol): Call block_find_symbol. * psymtab.c (psym_lookup_symbol): Ditto. * symtab.c (basic_lookup_transparent_type_1): New function. (basic_lookup_transparent_type): Call it. gdb/testsuite/ChangeLog: * gdb.dwarf2/opaque-type-lookup-2.c: New file. * gdb.dwarf2/opaque-type-lookup.c: New file. * gdb.dwarf2/opaque-type-lookup.exp: New file.
2015-05-27[aarch64] Handle unknown instruction encodingYao Qi2-1/+12
We see the following build error: gdb/aarch64-tdep.c: In function 'aarch64_process_record': gdb/aarch64-tdep.c:2823:17: error: 'record_buf[0]' may be used uninitialized in this function [-Werror=maybe-uninitialized] memcpy(&REGS[0], &RECORD_BUF[0], sizeof(uint32_t)*LENGTH); \ ^ gdb/aarch64-tdep.c:3529:12: note: 'record_buf[0]' was declared here uint32_t record_buf[2]; since record_buf[0] isn't initialized in some paths in which instruction encodings doesn't exist in current ARMv8 reference manual. This patch is to let the function return AARCH64_RECORD_UNKNOWN for these paths. gdb: 2015-05-27 Yao Qi <yao.qi@linaro.org> * aarch64-tdep.c (aarch64_record_data_proc_simd_fp): Return AARCH64_RECORD_UNKNOWN for unknown instruction encoding.
2015-05-27Fix ARI warnings in aarch64-tdep.cYao Qi2-7/+13
This patch fixes some ARI warnings: $ bash ./gdb/contrib/ari/gdb_ari.sh -Wall -Werror -Wari gdb/aarch64-tdep.c gdb/aarch64-tdep.c:3009: code: Do not use &&, or || at the end of a line gdb/aarch64-tdep.c:3010: code: Do not use &&, or || at the end of a line gdb/aarch64-tdep.c:3413: code: Do not use &&, or || at the end of a line gdb/aarch64-tdep.c:3460: code: Do not use &&, or || at the end of a line This patch moves && from the end of line to the start of the line. gdb: 2015-05-27 Yao Qi <yao.qi@linaro.org> * aarch64-tdep.c (aarch64_record_branch_except_sys): Split lines before operator &&. (aarch64_record_load_store): Likewise.
2015-05-26PR c++/18141, c++/18417.Doug Evans5-2/+86
gdb/ChangeLog: * cp-support.c (cp_lookup_rtti_type): Handle the case of NAME being a typedef. gdb/testsuite/ChangeLog: * gdb.cp/iostream.cc: New file. * gdb.cp/iostream.exp: New file.
2015-05-27Automatic date update in version.inGDB Administrator1-1/+1
2015-05-26Rename dwarf2 to dwarf in "set debug" and maintenance commands.Doug Evans11-107/+168
gdb/ChangeLog: * NEWS: Add entries for command renamings. * dwarf2read.c (dwarf_read_debug): Renamed from dwarf2_read_debug. All uses updated. (dwarf_die_debug): Renamed from dwarf2_die_debug. All uses updated. (dwarf_max_cache_age): Renamed from dwarf2_max_cache_age. All uses updated. (show_dwarf_max_cache_age): Renamed from show_dwarf2_max_cache_age. All callers updated. Fix spelling of DWARF in help text. (set_dwarf_cmdlist): Renamed from set_dwarf2_cmdlist. All uses updated. (show_dwarf_cmdlist): Renamed from show_dwarf2_cmdlist. All uses updated. (set_dwarf_cmd): Renamed from set_dwarf2_cmd. All callers updated. (show_dwarf_cmd): Renamed from show_dwarf2_cmd. All callers updated. (dwarf_always_disassemble): Renamed from dwarf_always_disassemble. All uses updated. (show_dwarf_always_disassemble): Renamed from show_dwarf2_always_disassemble. All callers updated. (_initialize_dwarf2_read): Rename "set/show dwarf2" prefix to "set/show dwarf". Rename "set/show dwarf2 max-cache-age" to "set/show dwarf max-cache-age". Rename "set/show dwarf2 always-disassemble" to "set/show dwarf always-disassemble". Rename "set/show debug dwarf2-read" to "set/show debug dwarf-read". Rename "set/show debug dwarf2-die" to "set/show debug dwarf-die". gdb/doc/ChangeLog: * gdb.texinfo (Debugging Output): Update for DWARF "set debug" command renamings. (Maintenance Commands): Update for DWARF "set debug" command renamings. gdb/testsuite/ChangeLog: * gdb.dwarf2/dw2-op-call.exp: Update. * gdb.dwarf2/dw4-sig-types.exp: Update. * gdb.dwarf2/implptr.exp: Update. * gdb.mi/mi-cmd-param-changed.exp: Update.
2015-05-26PR python/18438Doug Evans8-6/+107
gdb/ChangeLog: * python/py-lazy-string.c (stpy_convert_to_value): Use gdbpy_gdb_memory_error not PyExc_MemoryError. (gdbpy_create_lazy_string_object): Ditto. gdb/testsuite/ChangeLog: * gdb.python/py-lazy-string.c: New file. * gdb.python/py-lazy-string.exp: New file. * gdb.python/py-prettyprint.c (lazystring) <len>: New member. (main): Update. Add estring3. * gdb.python/py-prettyprint.exp: Add tests for strings at address 0. * gdb.python/py-prettyprint.py (pp_ls): Handle length.
2015-05-26gdb: tui: Minor fix to compare against NULL.Andrew Burgess2-1/+5
Minor coding standard fix to compare against NULL. gdb/ChangeLog: * tui/tui-regs.c (tui_reg_next_command): Compare against NULL.
2015-05-26gdb: Add 'tui reg prev' command.Andrew Burgess6-3/+78
There is already a 'tui reg next' command, this adds a symmetric 'tui reg prev' command. gdb/ChangeLog: * tui/tui-regs.c (tui_reg_prev_command): New function. (_initialize_tui_regs): Add 'prev' command for 'tui reg'. * reggroups.c (reggroup_prev): New function. * reggroups.h (reggroup_prev): Add declaration. Update comment. gdb/doc/ChangeLog: * gdb.texinfo (TUI Commands): Add 'tui reg prev' details.
2015-05-26All FreeBSD targets are ELF except i?86-*-freebsd\[12\].*.Ed Maste2-1/+12
FreeBSD has used ELF for all targets for more than 15 years. Add *-*-freebsd* except i?86-*-freebsd\[12\].* to is_elf_format. Update is_aout_format to include a trailing dot, so that it does not match freebsd-10.0 and later.
2015-05-26New gdb.reverse test case for aarch64 instructionsYao Qi3-0/+220
This patch adds a test case to test the process record for some of aarch64 instructions. In each function, GDB turns on process record, and single step until program goes to the end of the function. Then, single step backward. In each of forward single step and backward single step, the contents of registers are saved, and test compares them. If there is any differences, a FAIL is emitted. The test is flexible, and we can test other instructions easily in the future. gdb/testsuite: 2015-05-26 Omair Javaid <omair.javaid@linaro.org> Yao Qi <yao.qi@linaro.org> * gdb.reverse/aarch64.c: New. * gdb.reverse/aarch64.exp: New.