aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-03-21Remove xml files from gdbserverusers/ahayward/xml4Alan Hayward1-28/+0
For ports which use new target descriptions, this patch removes the xml files from being built into gdbserver, Alan. 2018-03-21 Alan Hayward <alan.hayward@arm.com> gdbserver/ * configure.srv (aarch64*-*-linux*): Don't include xml. (i[34567]86-*-cygwin*): Likewise. (i[34567]86-*-linux*): Likewise. (i[34567]86-*-lynxos*): Likewise. (i[34567]86-*-mingw32ce*): Likewise. (i[34567]86-*-mingw*): Likewise. (i[34567]86-*-nto*): Likewise. (tic6x-*-uclinux): Likewise. (x86_64-*-linux*): Likewise. (x86_64-*-mingw*): Likewise. (x86_64-*-cygwin*): Likewise.
2018-03-21Remove xml file references from target descriptions.Alan Hayward24-32/+27
We no longer need to know the name of the xml file for targets using the new target descriptions. This patch removes the references and regenerates the C files. This patch is identical to the V3 version. Alan. 2018-03-21 Alan Hayward <alan.hayward@arm.com> gdb/ * common/tdesc.h (tdesc_create_feature): Remove xml filename parameter. * features/aarch64-core.c (create_feature_aarch64_core): Regenerate. * features/aarch64-fpu.c (create_feature_aarch64_fpu): Likewise. * features/i386/32bit-avx.c (create_feature_i386_32bit_avx): Likewise. * features/i386/32bit-avx512.c (create_feature_i386_32bit_avx512): Likewise. * features/i386/32bit-core.c (create_feature_i386_32bit_core): Likewise. * features/i386/32bit-linux.c (create_feature_i386_32bit_linux): Likewise. * features/i386/32bit-mpx.c (create_feature_i386_32bit_mpx): Likewise. * features/i386/32bit-pkeys.c (create_feature_i386_32bit_pkeys): Likewise. * features/i386/32bit-sse.c (create_feature_i386_32bit_sse): Likewise. * features/i386/64bit-avx.c (create_feature_i386_64bit_avx): Likewise. * features/i386/64bit-avx512.c (create_feature_i386_64bit_avx512): Likewise. * features/i386/64bit-core.c (create_feature_i386_64bit_core): Likewise. * features/i386/64bit-linux.c (create_feature_i386_64bit_linux): Likewise. * features/i386/64bit-mpx.c (create_feature_i386_64bit_mpx): Likewise. * features/i386/64bit-pkeys.c (create_feature_i386_64bit_pkeys): Likewise. * features/i386/64bit-segments.c (create_feature_i386_64bit_segments): Likewise. * features/i386/64bit-sse.c (create_feature_i386_64bit_sse): Likewise. * features/i386/x32-core.c (create_feature_i386_x32_core): Likewise. * features/tic6x-c6xp.c (create_feature_tic6x_c6xp): Likewise. * features/tic6x-core.c (create_feature_tic6x_core): Likewise. * features/tic6x-gp.c (create_feature_tic6x_gp): Likewise. * target-descriptions.c: In generated code, don't pass xml filename. gdbserver/ * gdbserver/tdesc.c: Remove xml parameter.
2018-03-21Create xml from target descriptionsAlan Hayward8-30/+218
This patch adds a print_xml_feature visitor class which turns a C target description into xml. Both gdb and gdbserver can do this. An accept function is added to gdbserver tdesc to allow it to use vistor classes. Tests are added to maintenance_check_xml_descriptions which takes each pair of tested descriptions, turns them both into xml, then back again, and confirms the descriptions still match. Differences from V3 are: I now use string_appendf to print to the buffer. regdat.sh ensures tdesc->xmltarget is null for all targets with new style target descriptions. tdesc_get_features_xml() will only generate xml if xmltarget is null. This ensures older targets continue to send just the name of the xml file. Added a save_restore check when parsing registers. Alan. 2018-03-21 Alan Hayward <alan.hayward@arm.com> gdb/ * common/tdesc.c (print_xml_feature::visit_post): Add xml parsing. (print_xml_feature::visit_pre): Likewise. (print_xml_feature::visit_post): Likewise. (print_xml_feature::visit): Likewise. (print_xml_feature::visit): Likewise. (print_xml_feature::visit): Likewise. (print_xml_feature::visit): Likewise. * common/tdesc.h (print_xml_feature): Add new class. * regformats/regdat.sh: Null xmltarget on feature targets. * target-descriptions.c (struct target_desc): Add xmltarget. (print_xml_feature::visit_pre): Add xml vistor. (tdesc_get_features_xml): Add function to get xml. (maintenance_check_xml_descriptions): Test xml generation. * xml-tdesc.c (target_read_description_xml_string): Add function. * xml-tdesc.h (target_read_description_xml_string): Add declaration. gdbserver/ * tdesc.c (void target_desc::accept): Fill in function. (tdesc_get_features_xml): Remove old xml creation. (print_xml_feature::visit_pre): Add xml vistor.
2018-03-21Add feature reference in .dat filesAlan Hayward24-0/+32
For all targets which use the newer style target descriptions, add a "feature" marker in the dat files. Update regdat.sh to parse feature, but do not use it (yet). In the xml printer patch we want to ensure that only targets which use the newer style descriptions dynamically generate xml. Other targets should continue to return the name of the xml file. The "feature" marker will enable this. Alan. 2018-03-21 Alan Hayward <alan.hayward@arm.com> * features/Makefile: Add feature marker to targets with new style target descriptions. * regformats/aarch64.dat: Regenerate. * regformats/i386/amd64-avx-avx512-linux.dat: Likewise. * regformats/i386/amd64-avx-linux.dat: Likewise. * regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat: Likewise. * regformats/i386/amd64-avx-mpx-linux.dat: Likewise. * regformats/i386/amd64-linux.dat: Likewise. * regformats/i386/amd64-mpx-linux.dat: Likewise. * regformats/i386/amd64.dat: Likewise. * regformats/i386/i386-avx-avx512-linux.dat: Likewise. * regformats/i386/i386-avx-linux.dat: Likewise. * regformats/i386/i386-avx-mpx-avx512-pku-linux.dat: Likewise. * regformats/i386/i386-avx-mpx-linux.dat: Likewise. * regformats/i386/i386-linux.dat: Likewise. * regformats/i386/i386-mmx-linux.dat: Likewise. * regformats/i386/i386-mpx-linux.dat: Likewise. * regformats/i386/i386.dat: Likewise. * regformats/i386/x32-avx-avx512-linux.dat: Likewise. * regformats/i386/x32-avx-linux.dat: Likewise. * regformats/i386/x32-linux.dat: Likewise. * regformats/tic6x-c62x-linux.dat: Likewise. * regformats/tic6x-c64x-linux.dat: Likewise. * regformats/tic6x-c64xp-linux.dat: Likewise. * regformats/regdat.sh: Parse feature marker.
2018-03-21Add tdesc osabi and architecture functionsAlan Hayward3-4/+47
Add functions to access to printable names for osabi and architecture in target_desc. I wanted to add these as member functions of target_desc, but cannot until target_desc is moved into the header files. Identical to V3 version. Alan. 2018-03-21 Alan Hayward <alan.hayward@arm.com> gdb/ * common/tdesc.h (tdesc_architecture_name): Add new declaration. (tdesc_osabi_name): Likewise. * target-descriptions.c (tdesc_architecture_name): Add new function. (tdesc_osabi_name): Likewise. gdb/gdbserver/ * tdesc.c (tdesc_architecture_name): Add new function. (tdesc_osabi_name): Likewise. (tdesc_get_features_xml): Use new functions.
2018-03-21Commonise tdesc typesAlan Hayward4-326/+259
This patch moves all the various tdesc types to common code. It also commonises all the tdesc_ functions that are stubbed out in gdbserver. This is a lot of code to move across, but it is the simplest way of getting gdbserver to retain the target description information. With this patch, gdb and gdbserver will now parse a target description in the same way. Identical to V3 version. Alan. 2018-03-21 Alan Hayward <alan.hayward@arm.com> gdb/ * common/tdesc.c (tdesc_predefined_type): Move to here. (tdesc_named_type): Likewise. (tdesc_create_vector): Likewise. (tdesc_create_struct): Likewise. (tdesc_set_struct_size): Likewise. (tdesc_create_union): Likewise. (tdesc_create_flags): Likewise. (tdesc_create_enum): Likewise. (tdesc_add_field): Likewise. (tdesc_add_typed_bitfield): Likewise. (tdesc_add_bitfield): Likewise. (tdesc_add_flag): Likewise. (tdesc_add_enum_value): Likewise. * common/tdesc.h (tdesc_type_builtin): Likewise. (tdesc_type_vector): Likewise. (tdesc_type_field): Likewise. (tdesc_type_with_fields): Likewise. * target-descriptions.c (tdesc_type_field): Move from here. (tdesc_type_builtin): Likewise. (tdesc_type_vector): Likewise. (tdesc_type_with_fields): Likewise. (tdesc_predefined_types): Likewise. (tdesc_named_type): Likewise. (tdesc_create_vector): Likewise. (tdesc_create_struct): Likewise. (tdesc_set_struct_size): Likewise. (tdesc_create_union): Likewise. (tdesc_create_flags): Likewise. (tdesc_create_enum): Likewise. (tdesc_add_field): Likewise. (tdesc_add_typed_bitfield): Likewise. (tdesc_add_bitfield): Likewise. (tdesc_add_flag): Likewise. (tdesc_add_enum_value): Likewise. gdbserver/ * tdesc.c (tdesc_create_flags): Remove. (tdesc_add_flag): Likewise. (tdesc_named_type): Likewise. (tdesc_create_union): Likewise. (tdesc_create_struct): Likewise. (tdesc_create_vector): Likewise. (tdesc_add_bitfield): Likewise. (tdesc_add_field): Likewise. (tdesc_set_struct_size): Likewise.
2018-03-21Commonise tdesc_featureAlan Hayward6-217/+189
This patch commonises tdesc_feature and makes use of it in gdbserver tdesc. Previously in gdbserver, target_desc was interchangeable with tdesc_feature. Now gdbserver target_desc contains a vector of tdesc_feature. I am now able to commonise tdesc_create_reg (wanted to do this in the previous patch). I also had to commonise tdesc_type. This is ok, because I will need them in the next patch. Identical to V3 except for removal of "struct type;" at the top of common/tdesc.h Alan. 2018-03-21 Alan Hayward <alan.hayward@arm.com> gdb/ * common/tdesc.c (tdesc_feature::accept): Move to here. (tdesc_feature::operator==): Likewise. (tdesc_create_reg): Likewise. * common/tdesc.h (tdesc_type_kind): Likewise. (struct tdesc_type): Likewise. (struct tdesc_feature): Likewise. * regformats/regdat.sh: Create a feature. * target-descriptions.c (tdesc_type_kind): Move from here. (tdesc_type): Likewise. (tdesc_type_up): Likewise. (tdesc_feature): Likewise. (tdesc_create_reg): Likewise. gdbserver/ * tdesc.c (~target_desc): Remove implictly deleted items. (init_target_desc): Iterate all features. (tdesc_get_features_xml): Use vector. (tdesc_create_feature): Create feature. * tdesc.h (tdesc_feature) Remove (target_desc): Add features.
2018-03-21Commonise tdesc_regAlan Hayward7-139/+191
This patch commonises tdesc_reg and makes use of it in gdbserver tdesc. gdbserver tdesc_create_reg is changed to create a tdesc_reg instead of a reg_defs entry. The vector of tdesc_reg is held inside tdesc_feature. However, other modules in gdbserver directly access the reg_defs structure. To work around this, init_target_desc fills in reg_defs by parsing the tdesc_reg vector. The long term goal is to remove reg_defs, replacing with accessor funcs. I wanted to make tdesc_create_reg common, but I cannot do that until the next patch. I also had to commonise tdesc_element_visitor and tdesc_element. This patch only differs from the V3 version in init_target_desc(), where I now use reg_def references as introduced in the previous patch. 2018-03-21 Alan Hayward <alan.hayward@arm.com> gdb/ * Makefile.in: Add arch/tdesc.c * common/tdesc.c: New file. * common/tdesc.h (tdesc_element_visitor): Move to here. (tdesc_element): Likewise. (tdesc_reg): Likewise. (tdesc_reg_up): Likewise. * target-descriptions.c: (tdesc_element_visitor): Move from here. (tdesc_element): Likewise. (tdesc_reg): Likewise. (tdesc_reg_up): Likewise. gdbserver/ * Makefile.in: Add common/tdesc.c * tdesc.c (init_target_desc): init all reg_defs from register vector. (tdesc_create_reg): Create tdesc_reg. * tdesc.h (tdesc_feature): Add register vector.
2018-03-21Make gdbserver reg_defs a vector of objectsAlan Hayward4-37/+26
Following a suggestion from Philipp, this patch changes reg_defs in gdbserver tdesc so that it is a vector of objects instead of a vector of pointers. Updated uses of reg_defs to use references. This change reduces the number of small hunks allocated when building reg_defs. find_register_by_number() is only used by regcache, therefore I made it a static function and moved it earlier in the file so that find_regno() could use it. The eventual plan is to replace this with accessor functions in a common tdesc class. Alan. 2018-03-21 Alan Hayward <alan.hayward@arm.com> gdb/gdbserver/ * regcache.c (find_register_by_number): Make static and return a ref. (find_regno): Use find_register_by_number (register_size): Use references. (register_data): Likewise. * regcache.h (struct reg): Remove declaration. * tdesc.c (target_desc::~target_desc): Remove free calls. (target_desc::operator==): Use references. (init_target_desc): Likewise. (tdesc_create_reg): Use references and resize in a single call. * tdesc.h (struct target_desc): Replace pointer with object.
2018-03-21Move tdesc header funcs to c fileAlan Hayward2-42/+50
Move the destructor and equals operator for gdbserver tdesc from the .h to the .c file. Both functions are too long to be inlined and make the header look messy. Patch does not change any functionality. Patch identical to V3 version. 2018-03-21 Alan Hayward <alan.hayward@arm.com> gdbserver/ * tdesc.c (target_desc::~target_desc): Move to here. (target_desc::operator==): Likewise. * tdesc.h (target_desc::~target_desc): Move from here. (target_desc::operator==): Likewise.
2018-03-21PowerPC64 synthetic symbolsAlan Modra2-9/+20
STT_FILE and a bunch of other symbol types aren't proper symbols to mark the start of a function's code. * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Trim uninteresting symbols. Use size_t counts. Delete redundant opd test.
2018-03-21Delete unused elf32-ppc.c codeAlan Modra2-24/+4
Local symbols were being read but not used. * elf32-ppc.c (ppc_elf_tls_optimize): Delete locsyms.
2018-03-21Make tls_mask unsigned in elf32-ppc.cAlan Modra2-6/+14
* elf32-ppc.c (struct ppc_elf_link_hash_entry): Make tls_mask field unsigned. (update_local_sym_info): Likewise for local_got_tls_masks. (ppc_elf_tls_optimize): Likewise for lgot_masks.
2018-03-21Correct multi-toc tprel relocsAlan Modra2-2/+10
Commit f15d0b545b trimmed some unnecessary TPREL relocs, but missed changing another place where they are allocated. * elf64-ppc.c (ppc_size_one_stub): Fix comment typo. (ppc64_elf_layout_multitoc): Allocate relocs for tprel as we do in size_dynamic_sections.
2018-03-21Don't exceed reloc array boundsAlan Modra3-4/+14
* elf64-ppc.c (ppc64_elf_relocate_section): Don't access rel[1] without first checking array bounds. * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
2018-03-21Automatic date update in version.inGDB Administrator1-1/+1
2018-03-20ld/testsuite: XFAIL pr20995-2 on aarch64*-*-elf*Roland McGrath2-2/+7
ld/ * testsuite/ld-elf/shared.exp (pr20995-2): XFAIL on aarch64*-*-elf*, another target without RELRO.
2018-03-20Fix misleading indentation error.Stephen Roberts2-12/+16
This patch fixes a compile error introduced by my previous change, which caused the indentation of the following code block to become incorrect. ChangeLog: 2018-03-20 Stephen Roberts <stephen.roberts@arm.com> * gdb/symtab.c (find_pc_sect_line): fixed indentation.
2018-03-20Adjust testsuite/ld-plugin/pr22983.dH.J. Lu2-4/+11
* testsuite/ld-plugin/pr22983.d: Allow leading underscore as well as extra lines between symbols.
2018-03-20Replace the linear search in find_pc_sect_line with a binary search.Stephen Roberts6-11/+216
This patch addresses slowness when setting breakpoints, especially in heavily templatized code. Profiling showed that find_pc_sect_line in symtab.c was the performance bottleneck. The original logic performed a linear search over ordered data. This patch uses a binary search, as suggested by comments around the function. There are no behavioural changes, but gdb is now faster at setting breakpoints in template code. Tested using on make check on an x86 target. The optimisation speeds up the included template-breakpoints.py performance test by a factor of 7 on my machine. ChangeLog: 2018-03-20 Stephen Roberts <stephen.roberts@arm.com> * gdb/symtab.c (find_pc_sect_line): now uses binary search. gdb/testsuite/ * gdb.perf/template-breakpoints.cc: New file. * gdb.perf/template-breakpoints.exp: New file. * gdb.perf/template-breakpoints.py: New file.
2018-03-20gc.exp: Remove extraneous LD flags from the personality testMaciej W. Rozycki2-1/+6
Complement commit 8988502d7534 ("MIPS/LD/testsuite: Correct dynamic links with VR4100, VR4300 and VR5000") and commit bf48520113c4 ("gc.exp: Fix a typo: $LFLAGS -> $LDFLAGS"), and remove extraneous additional LD flags explicitly passed to the personality test on invocation. This passing has accidentally leaked from a WIP version of the former change. With the actual version committed the $LDFLAGS global variable is used instead for `run_dump_test' to use implicitly, so that `-call_shared' precedes `-lpersonality' on the linker's command line, as otherwise a shared `libpersonality.so' library wouldn't be considered for linking, causing the test to fail. ld/ * testsuite/ld-gc/gc.exp: Remove extraneous LD flags from the personality test.
2018-03-20Updated Russian and Spanish translations for the binutils/ sub-directory.Nick Clifton3-4758/+12056
* po/es.po: Updated Spanish translation. * po/ru.po: Updated Russian translation.
2018-03-20Set non_ir_ref_dynamic if a symbol is made dynamicH.J. Lu8-1/+70
If a symbol is made dynamic by --dynamic-list, it has non-IR reference. bfd/ PR ld/22983 * elflink.c (bfd_elf_link_mark_dynamic_symbol): Set non_ir_ref_dynamic if a symbol is made dynamic by --dynamic-list. ld/ PR ld/22983 * testsuite/ld-plugin/lto.exp: Run PR ld/22983 test. * testsuite/ld-plugin/pr22983.d: New file. * testsuite/ld-plugin/pr22983.t: Likewise. * testsuite/ld-plugin/pr22983a.c: Likewise. * testsuite/ld-plugin/pr22983b.c: Likewise.
2018-03-20Automatic date update in version.inGDB Administrator1-1/+1
2018-03-19Support bare-identifier field initializers in RustTom Tromey5-0/+36
In Rust one can initialize a struct member from an identically-named local variable by simply mentioning the member name in the initializer, like: let x = 0; let y = Struct { x }; This initializes "Struct::x" from "x". This patch adds this form of initializer to the Rust expression parser and adds a test. Tested on x86-64 Fedora 26 using rustc 1.23. 2018-03-19 Tom Tromey <tom@tromey.com> * rust-exp.y (struct_expr_tail, struct_expr_list): Add plain "IDENT" production. 2018-03-19 Tom Tromey <tom@tromey.com> * gdb.rust/simple.rs (main): Add local variables field1, field2, y0. * gdb.rust/simple.exp: Test bare identifier form of struct initializer.
2018-03-19Convert observers to C++Tom Tromey86-1234/+999
This converts observers from using a special source-generating script to be plain C++. This version of the patch takes advantage of C++11 by using std::function and variadic templates; incorporates Pedro's patches; and renames the header file to "observable.h" (this change eliminates the need for a clean rebuild). Note that Pedro's patches used a template lambda in tui-hooks.c, but this failed to compile on some buildbot instances (presumably due to differing C++ versions); I replaced this with an ordinary template function. Regression tested on the buildbot. gdb/ChangeLog 2018-03-19 Pedro Alves <palves@redhat.com> Tom Tromey <tom@tromey.com> * unittests/observable-selftests.c: New file. * common/observable.h: New file. * observable.h: New file. * ada-lang.c, ada-tasks.c, agent.c, aix-thread.c, annotate.c, arm-tdep.c, auto-load.c, auxv.c, break-catch-syscall.c, breakpoint.c, bsd-uthread.c, cli/cli-interp.c, cli/cli-setshow.c, corefile.c, dummy-frame.c, event-loop.c, event-top.c, exec.c, extension.c, frame.c, gdbarch.c, guile/scm-breakpoint.c, infcall.c, infcmd.c, inferior.c, inflow.c, infrun.c, jit.c, linux-tdep.c, linux-thread-db.c, m68klinux-tdep.c, mi/mi-cmd-break.c, mi/mi-interp.c, mi/mi-main.c, objfiles.c, ppc-linux-nat.c, ppc-linux-tdep.c, printcmd.c, procfs.c, python/py-breakpoint.c, python/py-finishbreakpoint.c, python/py-inferior.c, python/py-unwind.c, ravenscar-thread.c, record-btrace.c, record-full.c, record.c, regcache.c, remote.c, riscv-tdep.c, sol-thread.c, solib-aix.c, solib-spu.c, solib.c, spu-multiarch.c, spu-tdep.c, stack.c, symfile-mem.c, symfile.c, symtab.c, thread.c, top.c, tracepoint.c, tui/tui-hooks.c, tui/tui-interp.c, valops.c: Update all users. * tui/tui-hooks.c (tui_bp_created_observer) (tui_bp_deleted_observer, tui_bp_modified_observer) (tui_inferior_exit_observer, tui_before_prompt_observer) (tui_normal_stop_observer, tui_register_changed_observer): Remove. (tui_observers_token): New global. (attach_or_detach, tui_attach_detach_observers): New functions. (tui_install_hooks, tui_remove_hooks): Use tui_attach_detach_observers. * record-btrace.c (record_btrace_thread_observer): Remove. (record_btrace_thread_observer_token): New global. * observer.sh: Remove. * observer.c: Rename to observable.c. * observable.c (namespace gdb_observers): Define new objects. (observer_debug): Move into gdb_observers namespace. (struct observer, struct observer_list, xalloc_observer_list_node) (xfree_observer_list_node, generic_observer_attach) (generic_observer_detach, generic_observer_notify): Remove. (_initialize_observer): Update. Don't include observer.inc. * Makefile.in (generated_files): Remove observer.h, observer.inc. (clean mostlyclean): Likewise. (observer.h, observer.inc): Remove targets. (SUBDIR_UNITTESTS_SRCS): Add observable-selftests.c. (COMMON_SFILES): Use observable.c, not observer.c. * .gitignore: Remove observer.h. gdb/doc/ChangeLog 2018-03-19 Tom Tromey <tom@tromey.com> * observer.texi: Remove. gdb/testsuite/ChangeLog 2018-03-19 Tom Tromey <tom@tromey.com> * gdb.gdb/observer.exp: Remove.
2018-03-19Testsuite: Fix ambiguous "break" due to libinproctraceAndreas Arnez26-50/+79
Some of GDB's trace test cases define a function end() and place a breakpoint there with "break end". However, when libinproctrace is linked to the binary, there are multiple methods named "end", such as std::string::end() from the C++ library or format_pieces::end() from common/format.h. GDB then creates multiple breakpoints instead of just a single one, and some FAILs result, such as these: FAIL: gdb.trace/trace-mt.exp: ftrace on: break end FAIL: gdb.trace/trace-mt.exp: ftrace off: break end Fix this by adding the "-qualified" option to the break commands. For consistency, change all occurrences of "break end" (and similar) in all trace test cases, even if the current behavior does not cause problems. Also, consequently use the gdb_breakpoint convenience proc. gdb/testsuite/ChangeLog: * gdb.trace/actions-changed.exp: Call gdb_breakpoint with the "qualified" option when setting breakpoints. * gdb.trace/backtrace.exp: Likewise. * gdb.trace/circ.exp: Likewise. * gdb.trace/collection.exp: Likewise. * gdb.trace/disconnected-tracing.exp: Likewise. * gdb.trace/ftrace-lock.exp: Likewise. * gdb.trace/ftrace.exp: Likewise. * gdb.trace/infotrace.exp: Likewise. * gdb.trace/packetlen.exp: Likewise. * gdb.trace/passc-dyn.exp: Likewise. * gdb.trace/qtro.exp: Likewise. * gdb.trace/read-memory.exp: Likewise. * gdb.trace/report.exp: Likewise. * gdb.trace/signal.exp: Likewise. * gdb.trace/status-stop.exp: Likewise. * gdb.trace/strace.exp: Likewise. * gdb.trace/tfind.exp: Likewise. * gdb.trace/trace-break.exp: Likewise. * gdb.trace/trace-condition.exp: Likewise. * gdb.trace/trace-mt.exp: Likewise. * gdb.trace/tstatus.exp: Likewise. * gdb.trace/tsv.exp: Likewise. * gdb.trace/unavailable-dwarf-piece.exp: Likewise. * gdb.trace/unavailable.exp: Likewise. * gdb.trace/while-dyn.exp: Likewise.
2018-03-19Updated Spanish translation for the bfd/ sub-directory, and updated Ukranian ↵Nick Clifton4-2341/+5006
translation for the gas/ sub-directory. bfd * po/es.po: Updated Spanish translation. gas * po/uk.po: Updated Ukranian translation.
2018-03-18Remove some cleanups from solib.cTom Tromey2-6/+10
This removes some cleanups from solib.c, replacing them with gdb::def_vector. Regression tested by the buildbot. gdb/ChangeLog 2018-03-18 Tom Tromey <tom@tromey.com> * solib.c (gdb_bfd_lookup_symbol_from_symtab): Use gdb::def_vector. (bfd_lookup_symbol_from_dyn_symtab): Likewise.
2018-03-19Automatic date update in version.inGDB Administrator1-1/+1
2018-03-18Automatic date update in version.inGDB Administrator1-1/+1
2018-03-17Change auto_load_objfile_script_1 to use std::stringTom Tromey2-18/+12
This replaces some manual string manipulation in auto_load_objfile_script_1 with std::string, simplifying the code and allowing the removal of some cleanups. Tested by the buildbot. 2018-03-17 Tom Tromey <tom@tromey.com> * auto-load.c (auto_load_objfile_script_1): Use std::string.
2018-03-17Remove target_fileio_close_cleanupTom Tromey2-16/+38
This removes target_fileio_close_cleanup in favor of a new RAII class. The new class is similar to scoped_fd but calls target_fileio_close_cleanup rather than close. Regression tested by the buildbot. gdb/ChangeLog 2018-03-17 Tom Tromey <tom@tromey.com> * target.c (class scoped_target_fd): New. (target_fileio_close_cleanup): Remove. (target_fileio_read_alloc_1): Use scoped_target_fd.
2018-03-17Automatic date update in version.inGDB Administrator1-1/+1
2018-03-16Add silent Makefile rulesSimon Marchi9-57/+180
Many projects (e.g. the Linux kernel) and build systems use "silent" rules, which means that they'll only print a summary of what's being done instead of printing all the detailed command lines. While chatting on the #gdb IRC channel, I realized a few people (including me) thought it would be nice to have it in GDB too. The idea is that too much text is not useful, the important information gets lost. If there's only the essential information, it's more likely to be useful. Most of the time, when I look at the build output, it's to see how it's progressing. By just printing a brief summary of each operation, I can easily spot what's currently being compiled and therefore how the build progresses (with time you know the order in which files are compiled almost by heart). As with other projects (Linux, automake-based things, probably others), it's possible to print the complete command lines by passing V=1 to make (or any other non-zero value). I had one hesitation about this: when people report build failures, we are more likely to miss the full compile command line. We'll probably sometimes need to ask people to include the build log with "make V=1". I don't think it's a big downside, if other projects the size of the Linux kernel can live with it, I'm sure we can too. gdb/ChangeLog: * silent-rules.mk: New. * Makefile.in: Include silent-rules.mk (srcdir, VPATH, top_srcdir): Move up. (COMPILE): Add ECHO_CXX. (test-cp-name-parser$(EXEEXT)): Add ECHO_CXXLD. (init.c): Add ECHO_INIT_C. (gdb$(EXEEXT)): Add SILENCE and ECHO_CXXLD. (version.c): Add ECHO_GEN. (printcmd.o): Add ECHO_CXX. (target-float.o): Add ECHO_CXX. (ada-exp.o): Add ECHO_CXX. (stamp-xml): Add SILENCE and ECHO_GEN_XML_BUILTIN. (insight$(EXEEXT)): Add ECHO_CXXLD. * gnulib/configure.ac: Add AM_SILENT_RULES. * gnulib/aclocal.m4: Re-generate. * gnulib/configure: Re-generate. * gnulib/import/Makefile.in: Re-generate. gdb/gdbserver/ChangeLog: * Makefile.in: Include silent-rules.mk. (srcdir, abs_top_srcdir, abs_srcdir, VPATH): Move up. (COMPILE): Add ECHO_CXX. (gdbserver$(EXEEXT)): Add SILENCE and ECHO_CXXLD. (gdbreplay$(EXEEXT)): Add SILENCE and ECHO_CXXLD. ($(IPA_LIB)): Add SILENCE and ECHO_CXXLD. (version-generated.c): Add ECHO_GEN. (stamp-xml): Add SILENCE and ECHO_GEN_XML_BUILTIN_GENERATED. (IPAGENT_COMPILE): Add ECHO_CXX. (%-generated.c): Add ECHO_REGDAT.
2018-03-16Remove make_cleanup_free_section_addr_infoTom Tromey12-261/+180
This removes make_cleanup_free_section_addr_info. Instead -- per Simon's suggestion -- this changes section_addr_info to be a std::vector. Regression tested by the buildbot. gdb/ChangeLog 2018-03-16 Tom Tromey <tom@tromey.com> * xcoffread.c (xcoff_symfile_offsets): Change type of "addrs". * utils.h (make_cleanup_free_section_addr_info): Don't declare. * utils.c (do_free_section_addr_info) (make_cleanup_free_section_addr_info): Remove. * symfile.h (struct other_sections): Add constructor. (struct section_addr_info): Remove. (section_addr_info): New typedef. (struct sym_fns) <sym_offsets>: Change type of parameter. (build_section_addr_info_from_objfile) (relative_addr_info_to_section_offsets, addr_info_make_relative) (default_symfile_offsets, symbol_file_add) (symbol_file_add_from_bfd) (build_section_addr_info_from_section_table): Update. (alloc_section_addr_info, free_section_addr_info): Don't declare. * symfile.c (alloc_section_addr_info): Remove. (build_section_addr_info_from_section_table): Change return type. Update. (build_section_addr_info_from_bfd) (build_section_addr_info_from_objfile): Likewise. (free_section_addr_info): Remove. (relative_addr_info_to_section_offsets): Change type of "addrs". (addrs_section_compar): Now a std::sort comparator. (addrs_section_sort): Change return type. (addr_info_make_relative): Change type of "addrs". Update. (default_symfile_offsets, syms_from_objfile_1) (syms_from_objfile, symbol_file_add_with_addrs): Likewise. (symbol_file_add_separate): Update. (symbol_file_add): Change type of "addrs". Update. (add_symbol_file_command): Update. Remove cleanups. * symfile-mem.c (symbol_file_add_from_memory): Update. Remove cleanups. * symfile-debug.c (debug_sym_offsets): Change type of "info". * solib.c (solib_read_symbols): Update. * objfiles.c (objfile_relocate): Update. Remove cleanups. * machoread.c (macho_symfile_offsets): Update. * jit.c (jit_bfd_try_read_symtab): Update.
2018-03-16Fix tspeed test case: copy libinproctrace to targetAndreas Arnez2-0/+6
The tspeed test case does not execute correctly because libinproctrace.so is not copied to the target. This is fixed. gdb/testsuite/ChangeLog: * gdb.trace/tspeed.exp: Add invocation of gdb_load_shlib to ensure that libinproctrace is copied to the target.
2018-03-16RISC-V: Emit better warning for unknown CSR.Jim Wilson5-6/+26
gas/ * config/tc-riscv.c (check_absolute_expr): Expand comment. New parameter maybe_csr. If maybe_csr and O_symbol, print CSR name. (riscv_ip): Add new argument to check_absolute_expr calls. * testsuite/gas/riscv/bad-csr.d: New. * testsuite/gas/riscv/bad-csr.l: New. * testsuite/gas/riscv/bad-csr.s: New.
2018-03-15Add selftest for substitute_path_componentSimon Marchi3-0/+66
This patch add some unit tests for the substitute_path_component function. gdb/ChangeLog: * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add unittests/utils-selftests.c. * unittests/utils-selftests.c: New file.
2018-03-16Automatic date update in version.inGDB Administrator1-1/+1
2018-03-15xtensa: bfd: fix assertion in xlate_offset_with_removed_textMax Filippov2-3/+21
Linking objects containing jumps targeting the end of a section triggers assertion in the xlate_offset_with_removed_text. Such jumps may be generated by a compiler as a dead code and not removed at -O0. Allow such jumps. While at it make bsearch argument match comparison function expectations and use bfd_vma for address fields in the struct xlate_map_entry. bfd/ 2018-03-15 Max Filippov <jcmvbkbc@gmail.com> * elf32-xtensa.c (xlate_map_entry): Change types of address fields from 'unsigned' to 'bfd_vma'. (xlate_offset_with_removed_text): Use struct xlate_map_entry as the key argument to bsearch. Allow offsets past the end of a section, use the last map entry for translation of such offsets.
2018-03-15RISC-V: Don't enable relaxation in relocatable linkAndreas Schwab2-5/+14
PR ld/22949 * emultempl/riscvelf.em (riscv_elf_before_allocation): Don't enable relaxation in relocatable link.
2018-03-15nds32: Remove the unsupported target feature.Kuan-Lin Chen4-2792/+22
2018-03-15Automatic date update in version.inGDB Administrator1-1/+1
2018-03-14Missing testcase files for last commit.Jim Wilson2-0/+90
2018-03-14RISC-V: Add .insn support.Jim Wilson7-27/+786
gas/ChangeLog 2018-03-07 Kito Cheng <kito.cheng@gmail.com> * config/tc-riscv.c (opcode_name_list): New. (opcode_names_hash): Likewise. (init_opcode_names_hash): Likewise. (opcode_name_lookup): Likewise. (validate_riscv_insn): New argument length, and add new format which used in .insn directive. (md_begin): Refine hash table initialization logic into init_opcode_hash. (init_opcode_hash): New. (my_getOpcodeExpression): Parse opcode name for .insn. (riscv_ip): New argument hash, able to handle .insn directive. (s_riscv_insn): Handler for .insn directive. (riscv_pseudo_table): New entry for .insn. * doc/c-riscv.texi: Add documentation for .insn directive. * testsuite/gas/riscv/insn.d: Add testcase for .insn directive. * testsuite/gas/riscv/insn.s: Likewise. include/ChangeLog 2018-03-07 Kito Cheng <kito.cheng@gmail.com> * opcode/riscv.h (OP_MASK_FUNCT3): New. (OP_SH_FUNCT3): Likewise. (OP_MASK_FUNCT7): Likewise. (OP_SH_FUNCT7): Likewise. (OP_MASK_OP2): Likewise. (OP_SH_OP2): Likewise. (OP_MASK_CFUNCT4): Likewise. (OP_SH_CFUNCT4): Likewise. (OP_MASK_CFUNCT3): Likewise. (OP_SH_CFUNCT3): Likewise. (riscv_insn_types): Likewise. opcodes/ChangeLog 2018-03-07 Kito Cheng <kito.cheng@gmail.com> * riscv-opc.c (riscv_insn_types): New.
2018-03-14Special case NULL when using printf's %s formatTom Tromey7-0/+39
This changes the printf command's %s and %ls formats to special-case NULL, and print "(null)" for these. This is PR cli/14977. This behavior seems a bit friendlier; I was undecided on whether other invalid pointers should be handled specially somehow, so for the time being I've left those out. gdb/ChangeLog 2018-03-14 Tom Tromey <tom@tromey.com> PR cli/14977: * printcmd.c (printf_c_string, printf_wide_c_string): Special case for NULL. gdb/gdbserver/ChangeLog 2018-03-14 Tom Tromey <tom@tromey.com> PR cli/14977: * ax.c (ax_printf): Special case for NULL. gdb/testsuite/ChangeLog 2018-03-14 Tom Tromey <tom@tromey.com> PR cli/14977: * gdb.base/printcmds.exp (test_printf): Add printf test of %s with a null pointer. * gdb.base/wchar.exp: Likewise.
2018-03-14Allow - in %p for printfTom Tromey4-2/+18
PR cli/19918 points out that a printf format like "%-5p" will cause a gdb crash. The bug is problem is that printf_pointer doesn't take the "-" flag into account. gdb/ChangeLog 2018-03-14 Tom Tromey <tom@tromey.com> PR cli/19918: * printcmd.c (printf_pointer): Allow "-" in format. gdb/testsuite/ChangeLog 2018-03-14 Tom Tromey <tom@tromey.com> PR cli/19918: * gdb.base/printcmds.exp (test_printf): Add printf test using '-' flag.
2018-03-14Add usage to printf commandTom Tromey2-2/+7
This patch adds the "Usage:" text to the printf command's help text, and tries to improve the text a tiny bit. gdb/ChangeLog 2018-03-14 Tom Tromey <tom@tromey.com> * printcmd.c (_initialize_printcmd): Add usage to printf.
2018-03-14Update my email addressYao Qi2-4/+8
gdb: 2018-03-14 Yao Qi <qiyao@sourceware.org> * MAINTAINERS: Update my email address.