aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-12-08C++-ify parse_format_stringTom Tromey9-136/+89
This replaces parse_format_string with a class, removing some constructors along the way. While doing this, I found that one argument to gen_printf is unused, so I removed it. Also, I am not completely sure, but the use of `release' in maint_agent_printf_command and parse_cmd_to_aexpr seems like it may leak expressions. Regression tested by the buildbot. ChangeLog 2017-12-08 Tom Tromey <tom@tromey.com> * printcmd.c (ui_printf): Update. Use std::vector. * common/format.h (struct format_piece): Add constructor. <string>: Now const. (class format_pieces): New class. (parse_format_string, free_format_pieces) (free_format_pieces_cleanup): Remove. * common/format.c (format_pieces::format_pieces): Rename from parse_format_string. Update. (free_format_pieces, free_format_pieces_cleanup): Remove. * breakpoint.c (parse_cmd_to_aexpr): Update. Use std::vector. * ax-gdb.h (gen_printf): Remove argument. * ax-gdb.c (gen_printf): Remove "frags" argument. (maint_agent_printf_command): Update. Use std::vector. gdbserver/ChangeLog 2017-12-08 Tom Tromey <tom@tromey.com> * ax.c (ax_printf): Update.
2017-12-08gas: xtensa: fix comparison of trampoline chain symbolsMax Filippov2-4/+28
Don't use address where symbol gets resolved, as during section relaxation symbols will slide, instead canonicalize symbols and check that they are are the same. This fixes a bug when a relaxed jump goes into the wrong trampoline. gas/ 2017-12-07 Max Filippov <jcmvbkbc@gmail.com> * config/tc-xtensa.c (xg_order_trampoline_chain): Replace xg_order_trampoline_chain_entry call with check for canonicalized symbol equality and offset equality.
2017-12-08Adjust gdb.arch/i386-sse-stack-align.exp print statementSergio Durigan Junior2-1/+6
Since: commit 7022349d5c86bae74b49225515f42d2e221bd368 Author: Pedro Alves <palves@redhat.com> Date: Mon Sep 4 20:21:13 2017 +0100 Stop assuming no-debug-info functions return int We now have to explicitly tell GDB the type of the non-debug-info function we want to print (by casting). This commit adjusts the "print" statement on gdb.arch/i386-sse-stack-align.exp to do the proper cast, fixing a failure that started to happen after the mentioned commit. gdb/testsuite/ChangeLog: 2017-12-08 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.arch/i386-sse-stack-align.exp: Cast "print" function call "int".
2017-12-08Fix PR 22567: set SAL .section in minsym_foundYao Qi2-1/+7
PR 22567 is that breakpoint location can't correct gdbarch from SAL, because its fields .section and .symtab is NULL. We use to have code setting .section, but was removed by 4024cf2 - if (msymbol_is_text (msymbol)) + CORE_ADDR func_addr; + if (msymbol_is_function (objfile, msymbol, &func_addr)) { - sal = find_pc_sect_line (MSYMBOL_VALUE_ADDRESS (objfile, msymbol), - (struct obj_section *) 0, 0); - sal.section = MSYMBOL_OBJ_SECTION (objfile, msymbol); this patch adds this back by moving it to the common place at the bottom of the function. gdb: 2017-12-08 Yao Qi <yao.qi@linaro.org> PR breakpionts/22567 * linespec.c (minsym_found): Set sal.section.
2017-12-08S390: Add symfile-memAndreas Arnez2-1/+5
For some reason symfile-mem.o is not included in the configuration for "s390*-*-linux*". It was added to the configuration of most GNU/Linux targets with a patch from Andrew Cagney: "Add symfile-mem to all linux targets" -- https://sourceware.org/ml/gdb-patches/2005-02/msg00053.html But the s390 target was overlooked at that time. Thus the command "add-symbol-file-from-memory" is missing and VDSO symbols are not loaded. This is fixed. gdb/ChangeLog: * configure.tgt (s390*-*-linux*): Add symfile-mem.o.
2017-12-08Fix stripping relocs in a file with mergeable notes.Nick Clifton5-8/+39
A recent Fedora bug (1520805) exposed a problem with objcopy's reloc copying code, when a binary also contains mergeable notes. The note merging code would delete some relocs, but then the reloc copying code would try to put them back again, which did not work. So I am checking in the patch below to fix the problem. The patch also tweaks one of the binutils note merging tests so that it is skipped for the Sparc64 target, since this has funky relocs. binutils * objcopy.c (copy_relocations_in_section): Use the orelocations field of the input section, if it has been initialised. * testsuite/binutils-all/note-2-64.d: Skip test on Sparc64. bfd * elfcode.h (elf_write_relocs): Check for an empty howto field.
2017-12-08Add aix 64-bit check to bfd_get_sign_extend_vmaSangamesh Mallayya2-1/+6
* bfd.c (bfd_get_sign_extend_vma): Handle aix5coff64-rs6000.
2017-12-08Automatic date update in version.inGDB Administrator1-1/+1
2017-12-07Validate explicit locations with early terminationKeith Seitz4-2/+17
breakpoints/22569 involves an internal error generated by the rather innocent looking command: (gdb) break -source test.cpp main .../linespec.c:3302: internal-error: void decode_line_full(...): Assertion `result.size () == 1 || canonical->pre_expanded' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) The input string is tokenized into "-source", "test.cpp", and "main" (input parsing breaks on whitespace). create_breakpoint is then called with the explicit location (containing only the source file name) and "main" as the extra_string argument. No SaLs are created for this underspecified explicit location, and the "result.size () == 1" evaluates false (as does the pre_expanded condition). This triggers the assertion. Normally string_to_explicit_location validates the input string. However, the presence of the string "main" causes the parser to exit early: 802 else 803 { 804 /* End of the explicit location specification. 805 Stop parsing and return whatever explicit location was 806 parsed. */ 807 *argp = start; 808 return location; 809 } This bypasses the validation that is done a few lines down in this function which would have emitted the expected error. This patch fixes that. Additionally, this patch also fixes an inconsistency with error reporting in this use case: (gdb) b -source foo Source filename requires function, label, or line offset. (gdb) b -source foo main No source file named foo. These two commands should have elicited the same error message. gdb/ChangeLog: PR breakpoints/22569 * location.c (string_to_explicit_location): When terminating parsing early, break out of enclosing loop instead of returning. gdb/testsuite/ChangeLog: PR breakpoints/22569 * gdb.linespec/ls-errs.exp: Change expected result of "break -source this file has spaces.c -line 3". Check that an explicit source file followed by whitespace is identified as an invalid explicit location.
2017-12-07Record nested typesKeith Seitz14-86/+1684
GDB currently does not track types defined in classes. Consider: class A { public: class B { public: class C { }; }; }; (gdb) ptype A type = class A { <no data fields> } This patch changes this behavior so that GDB records these nested types and displays them to the user when he has set the (new) "print type" option "nested-type-limit." Example: (gdb) set print type nested-type-limit 1 (gdb) ptype A type = class A { <no data fields> class A::B { <no data fields> }; } (gdb) set print type nested-type-limit 2 type = class A { <no data fields> class A::B { <no data fields> class A::B::C { <no data fields> }; }; } By default, the code maintains the status quo, that is, it will not print any nested type definitions at all. Testing is carried out via cp_ptype_class which required quite a bit of modification to permit recursive calling (for the nested types). This was most easily facilitated by turning the ptype command output into a queue. Upshot: the test suite now has stack and queue data structures that may be used by test writers. gdb/ChangeLog * NEWS (New commands): Mention set/show print type nested-type-limit. * c-typeprint.c (c_type_print_base): Print out nested types. * dwarf2read.c (struct typedef_field_list): Rename to ... (struct decl_field_list): ... this. Change all uses. (struct field_info) <nested_types_list, nested_types_list_count>: New fields. (add_partial_symbol): Look for nested type definitions in C++, too. (dwarf2_add_typedef): Rename to ... (dwarf2_add_type_defn): ... this. (type_can_define_types): New function. Update assertion to use type_can_define_types. Permit NULL for a field's name. (process_structure_scope): Handle child DIEs of types that can define types. Copy the list of nested types into the type struct. * gdbtypes.h (struct typedef_field): Rename to ... (struct decl_field): ... this. Change all uses. [is_protected, is_private]: New fields. (struct cplus_struct_type) <nested_types, nested_types_count>: New fields. (TYPE_NESTED_TYPES_ARRAY, TYPE_NESTED_TYPES_FIELD) (TYPE_NESTED_TYPES_FIELD_NAME, TYPE_NESTED_TYPES_FIELD_TYPE) (TYPE_NESTED_TYPES_COUNT, TYPE_NESTED_TYPES_FIELD_PROTECTED) (TYPE_NESTED_TYPES_FIELD_PRIVATE): New macros. * typeprint.c (type_print_raw_options, default_ptype_flags): Add default value for print_nested_type_limit. (print_nested_type_limit): New static variable. (set_print_type_nested_types, show_print_type_nested_types): New functions. (_initialize_typeprint): Register new commands for set/show `print-nested-type-limit'. * typeprint.h (struct type_print_options) [print_nested_type_limit]: New field. gdb/testsuite/ChangeLog * gdb.cp/nested-types.cc: New file. * gdb.cp/nested-types.exp: New file. * lib/cp-support.exp: Load data-structures.exp library. (debug_cp_test_ptype_class): New global. (cp_ptype_class_verbose, next_line): New procedures. (cp_test_ptype_class): Add and document new parameter `recursive_qid'. Add and document new return value. Switch the list of lines to a queue. Add support for new `type' key for nested type definitions. Add debugging/troubleshooting messages. * lib/data-structures.exp: New file. gdb/doc/ChangeLog * gdb.texinfo (Symbols): Document "set print type nested-type-limit" and "show print type nested-type-limit".
2017-12-07Fix wrong prefix in py-breakpoint.expSimon Marchi2-73/+76
The prefix in test_bkpt_explicit_loc is wrong. Instead of using with_test_prefix directly, define test_bkpt_explicit_loc with proc_with_prefix. gdb/testsuite/ChangeLog: * gdb.python/py-breakpoint.exp (test_bkpt_explicit_loc): Define with proc_with_prefix, don't use with_test_prefix.
2017-12-07Fix regression in "commands"Tom Tromey4-3/+22
Pedro pointed out a regression in "commands", where trying to clear a breakpoint's command list would fail: (top-gdb) commands Type commands for breakpoint(s) 3, one per line. End with a line saying just "end". >end No breakpoints specified. (top-gdb) I believe the bug was introduced by my patch that changes counted_command_line to be a shared_ptr. This causes the problem because now the counted_command_line in commands_command_1 can be NULL, whereas previously it never could be. After some discussion, we agreed to simply remove the error case from commands_command_1. 2017-12-07 Tom Tromey <tom@tromey.com> PR breakpoints/22511: * breakpoint.c (commands_command_1): Don't throw an exception when no commands have been read. 2017-12-07 Tom Tromey <tom@tromey.com> * gdb.base/break.exp: Add test for empty "commands".
2017-12-07Fix build with g++ 6.3.1Adam Stylinski2-1/+7
With g++ 6.3.1: target-descriptions.c: In member function ‘virtual void print_c_tdesc::visit_pre(const target_desc*)’: target-descriptions.c:1836:16: error: types may not be defined in a for-range-declaration [-Werror] for (const struct bfd_arch_info *compatible : e->compatible) ^~~~~~ I think at some point the forward declaration of this struct had been removed and declared as a typedef. This fixes that. gdb/ChangeLog: 2017-12-07 Adam Stylinski <adam.stylinski@etegent.com> PR c++/21222 * target-descriptions.c (print_c_tdesc::visit_pre): Change type of range-for variable.
2017-12-07Initialize target description early in IPAYao Qi6-26/+81
Target descriptions are allocated lazily, that is fine in GDBserver, but it is not safe to call malloc in gdb_collect in IPA, because we can set a fast tracepoint in malloc, and when the tracepoint is hit, gdb_collect/malloc is called, deadlock or memory corruption may be triggered. #0 0xf7cfc200 in malloc () #1 0xf7efdc07 in operator new(unsigned int) () #2 0xf7ef7636 in allocate_target_description() () #3 0xf7efcbe1 in i386_create_target_description(unsigned long long, bool) () #4 0xf7efb474 in i386_linux_read_description(unsigned long long) () #5 0xf7efb190 in get_ipa_tdesc(int) () #6 0xf7ef9baa in gdb_collect () The fix is to initialize all target descriptions earlier, when the IPA is loaded. In order to guarantee malloc is not called in IPA in gdb_collect, I change the test to set a breakpoint on malloc, if IPA gdb_collect calls malloc, program will hit the breakpoint, and test fail. continue Continuing. Thread 1 "" hit Breakpoint 5, 0xf7cfc200 in malloc () (gdb) FAIL: gdb.trace/ftrace.exp: advance through tracing gdb/gdbserver: 2017-12-07 Yao Qi <yao.qi@linaro.org> * linux-aarch64-ipa.c (initialize_low_tracepoint): Call aarch64_linux_read_description. * linux-amd64-ipa.c (idx2mask): New array. (get_ipa_tdesc): Move idx2mask out. (initialize_low_tracepoint): Initialize target descriptions. * linux-i386-ipa.c (idx2mask): New array. (get_ipa_tdesc): Move idx2mask out. (initialize_low_tracepoint): Initialize target descriptions. gdb/testsuite: 2017-12-07 Yao Qi <yao.qi@linaro.org> * gdb.trace/ftrace.exp (run_trace_experiment): Set breakpoint on malloc and catch syscall.
2017-12-07Add virtual destructor to selftestSimon Marchi2-0/+5
Clang 6 shows this warning In file included from /home/emaisin/src/binutils-gdb/gdb/common/selftest.c:19: In file included from /home/emaisin/src/binutils-gdb/gdb/common/common-defs.h:92: In file included from /home/emaisin/src/binutils-gdb/gdb/common/gdb_unique_ptr.h:23: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/memory:81: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:76:2: error: delete called on 'selftests::selftest' that is abstract but has non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor] delete __ptr; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:236:4: note: in instantiation of member function 'std::default_delete<selftests::selftest>::operator()' requested here get_deleter()(__ptr); ^ /home/emaisin/src/binutils-gdb/gdb/common/selftest.c:57:17: note: in instantiation of member function 'std::unique_ptr<selftests::selftest, std::default_delete<selftests::selftest> >::~unique_ptr' requested here tests[name] = std::unique_ptr<selftest> (test); ^ The error is legitimate, we (the unique_ptr) are deleting selftest objects through the base pointer, so technically the destructor should be virtual, so that the destructor of the subclass is invoked. gdb/ChangeLog: * common/selftest.h (struct selftest): Add virtual destructor.
2017-12-07Implement explicit locations for Python breakpoints.Phil Muldoon8-33/+245
This introduces several new keywords to the bppy_init constructor. The spec parameter is now optional but mutually exclusive to the explicit keywords source, label, function and line. gdb/ChangeLog 2017-12-07 Phil Muldoon <pmuldoon@redhat.com> * python/py-breakpoint.c (bppy_init): Use string_to_event_location over basic location code. Implement explicit location keywords. (bppy_init_validate_args): New function. * NEWS: Document Python explicit breakpoint locations. doc/ChangeLog 2017-12-07 Phil Muldoon <pmuldoon@redhat.com> * python.texi (Breakpoints In Python): Add text relating to allowed explicit locations and keywords in gdb.Breakpoints. testsuite/ChangeLog 2017-12-07 Phil Muldoon <pmuldoon@redhat.com> * gdb.python/py-breakpoint.exp (test_bkpt_explicit_loc): Add new tests for explicit locations.
2017-12-07gdb/MAINTAINERS: restore m68hc11, score and xstormy16 entriesJoel Brobecker2-0/+9
This patch restores some entries removed by a recent patch whose purpose was to update the list of active maintainers. I thought that, the target information was purely to document the scope of the given target, and thus could be removed is maintainerless. But, in fact, those entries are still useful, as a number of scripts (eg: gdb_buildall.sh) use that information to build GDB with all targets enabled. gdb/ChangeLog: * MAINTAINERS: Restore target entries for m68hc11-elf, score-elf and xstormy16-elf, incorrectly removed in a previous patch meant to only update the list of active maintainers.
2017-12-07Objcopy interleave testAlan Modra3-4/+13
PR 22465 * testsuite/ld-elf/interleave.s: Use .data sections and provide section attrs. * testsuite/ld-elf/interleave.ld: Discard other sections. Adjust for changed section names.
2017-12-07mcore-elf lacks shared lib supportAlan Modra2-1/+4
elf32-mcore.c has no backend create_dynamic_sections function so can't support shared libs. * emulparams/elf32mcore.sh (GENERATE_SHLIB_SCRIPT): Don't define.
2017-12-07Rewrite check_shared_lib_supportAlan Modra2-52/+16
* testsuite/lib/ld-lib.exp (check_shared_lib_support): Ask ld under test whether -shared is supported.
2017-12-07Automatic date update in version.inGDB Administrator1-1/+1
2017-12-06target_set_syscall_catchpoint, use gdb::array_view and boolPedro Alves8-44/+56
I noticed that we're passing down a data/size pair to target_ops::to_set_syscall_catchpoint. This commit makes use of gdb::array_view instead. While at it, use bool where appropriate as well. gdb/ChangeLog: * break-catch-syscall.c (insert_catch_syscall) (remove_catch_syscall): Adjust to pass reference to inf_data->syscalls_counts directly via gdb::array_view. * fbsd-nat.c (fbsd_set_syscall_catchpoint): Adjust to use bool and gdb::array_view. * linux-nat.c (linux_child_set_syscall_catchpoint): Likewise. * remote.c (remote_set_syscall_catchpoint): Likewise. * target-debug.h (target_debug_print_bool): New. (define target_debug_print_gdb_array_view_const_int): New. * target-delegates.c: Regenerate. * target.h (target_ops) <to_set_syscall_catchpoint>: Use gdb::array_view and bool. (target_set_syscall_catchpoint): Likewise.
2017-12-06Fix syscall group completionSimon Marchi2-8/+9
The test gdb.base/catch-syscall.exp has been failing since commit 3d415c26bad3a15eed00d2ddf85c4268df77a4cc Remove cleanups from break-catch-syscall.c The reason is that we are putting into the group_ptr array a pointer to the buffer of the local string object. If the string is small enough to fit in the internal string buffer (used for small string optimizations), the pointer will point to the local object directly. So even if we std::move the string to the vector, the pointer in group_ptr will still point to the local object. When we reuse that object (technically a new instance, but most likely the same memory) for the next syscall, we'll overwrite the previous string. The result is that we'll get less results than expected, since there will be duplicates. We'll also run into problems if we push the string to the vector, and then record the c_str () pointer using the string object in the vector. The vector might get reallocated, the string may move in memory, and our pointer in group_ptr will point to stale memory. Instead, we have to push all the strings first, then, when we know the vector won't change anymore, build the group_ptr array. This is what this patch does. gdb/ChangeLog: * break-catch-syscall.c (catch_syscall_completer): Get pointers to syscall group strings after building the string vector.
2017-12-06Objcopy interleave fails if section address not multiple of interleave.Jim Wilson7-0/+69
PR 22465 binutils/ * objcopy.c (copy_section): New local extra. If isection->lma not exactly divisible by interleave, then bias from. Also adjust osection->lma if necessary. ld/ * testsuite/ld-elf/interleave-0.d, testsuite/ld-elf/interleave-4.d, * testsuite/ld-elf/interleave.ld, testsuite/ld-elf/interleave.s: New.
2017-12-06remote: Make qXfer packets respect corresponding "set remote foo-packet"Pedro Alves4-7/+46
I've noticed that "set remote target-features-packet off" before connecting has no effect -- GDB still fetches a target description anyway. The problem is that while most "set remote foo-packet" commands were fixed by: From 4082afcc3d1af9d8063d1c8e02deb34a8b97a489 Mon Sep 17 00:00:00 2001 From: Pedro Alves <palves@redhat.com> Date: Fri, 25 Apr 2014 18:07:02 +0100 Subject: [PATCH] Fix several "set remote foo-packet on/off" commands. <https://sourceware.org/ml/gdb-patches/2014-04/msg00006.html> the "qXfer" packets where missed. This commit fixes that. I've changed remote_search_memory too for consistency (seems like those are the last direct references to packet->support), though the difference is not observable because the qSearch:memory packet is auto probed. Note gdb.base/find-unmapped.exp already exercises explicit "set remote search-memory-packet off". gdb/ChangeLog: 2017-12-06 Pedro Alves <palves@redhat.com> * remote.c (remote_query_supported): Don't send "xmlRegisters=" if "qXfer:features:read"" is disabled. (remote_write_qxfer, remote_read_qxfer, remote_search_memory): Check packet_config_support instead of packet->support directly. gdb/testsuite/ChangeLog: 2017-12-06 Pedro Alves <palves@redhat.com> * gdb.arch/i386-avx.exp: If testing with a RSP target, check force-disabling XML descriptions. -- gdb/remote.c | 16 +++++++++------- gdb/testsuite/gdb.arch/i386-avx.exp | 25 +++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 7 deletions(-)
2017-12-06Tell the linker testsuite that lm32-rtems toolchains do not support the ↵Nick Clifton2-0/+6
generation of shared libraries. * testsuite/lib/ld-lib.exp (check_shared_lib_support): Return false for lm32-rtems targets.
2017-12-06PR22552, readelf heap buffer overflow in load_debug_sectionAlan Modra2-6/+17
PR 22552 * readelf.c (process_file_header): Don't assume XINDEX case value for e_shstrndx is within bounds. (load_debug_section): Sanity test e_shstrndx before attempting to read .shstrtab. Wrap long lines.
2017-12-06BFD whitespace fixesAlan Modra297-26166/+26251
Binutils is supposed to use tabs. In my git config I have whitespace = indent-with-non-tab,space-before-tab,trailing-space and I got annoyed enough seeing red in "git diff" output to fix the problems. * doc/header.sed: Trim trailing space when splitting lines. * aix386-core.c, * aout-adobe.c, * aout-arm.c, * aout-cris.c, * aout-ns32k.c, * aout-target.h, * aout-tic30.c, * aoutf1.h, * aoutx.h, * arc-got.h, * arc-plt.def, * arc-plt.h, * archive.c, * archive64.c, * archures.c, * armnetbsd.c, * bfd-in.h, * bfd.c, * bfdio.c, * binary.c, * bout.c, * cache.c, * cisco-core.c, * coff-alpha.c, * coff-apollo.c, * coff-arm.c, * coff-h8300.c, * coff-i386.c, * coff-i860.c, * coff-i960.c, * coff-m68k.c, * coff-m88k.c, * coff-mcore.c, * coff-mips.c, * coff-ppc.c, * coff-rs6000.c, * coff-sh.c, * coff-stgo32.c, * coff-tic4x.c, * coff-tic54x.c, * coff-tic80.c, * coff-we32k.c, * coff-x86_64.c, * coff-z80.c, * coff-z8k.c, * coff64-rs6000.c, * coffcode.h, * coffgen.c, * cofflink.c, * coffswap.h, * compress.c, * corefile.c, * cpu-alpha.c, * cpu-arm.c, * cpu-avr.c, * cpu-bfin.c, * cpu-cr16.c, * cpu-cr16c.c, * cpu-crx.c, * cpu-d10v.c, * cpu-frv.c, * cpu-ft32.c, * cpu-i370.c, * cpu-i960.c, * cpu-ia64-opc.c, * cpu-ip2k.c, * cpu-lm32.c, * cpu-m32r.c, * cpu-mcore.c, * cpu-microblaze.c, * cpu-mips.c, * cpu-moxie.c, * cpu-mt.c, * cpu-nios2.c, * cpu-ns32k.c, * cpu-or1k.c, * cpu-powerpc.c, * cpu-pru.c, * cpu-sh.c, * cpu-spu.c, * cpu-v850.c, * cpu-v850_rh850.c, * cpu-xgate.c, * cpu-z80.c, * dwarf1.c, * dwarf2.c, * ecoff.c, * ecofflink.c, * ecoffswap.h, * elf-bfd.h, * elf-eh-frame.c, * elf-hppa.h, * elf-m10200.c, * elf-m10300.c, * elf-s390-common.c, * elf-strtab.c, * elf-vxworks.c, * elf.c, * elf32-am33lin.c, * elf32-arc.c, * elf32-arm.c, * elf32-avr.c, * elf32-avr.h, * elf32-bfin.c, * elf32-cr16.c, * elf32-cr16c.c, * elf32-cris.c, * elf32-crx.c, * elf32-d10v.c, * elf32-d30v.c, * elf32-dlx.c, * elf32-epiphany.c, * elf32-fr30.c, * elf32-frv.c, * elf32-ft32.c, * elf32-h8300.c, * elf32-hppa.c, * elf32-i386.c, * elf32-i860.c, * elf32-i960.c, * elf32-ip2k.c, * elf32-lm32.c, * elf32-m32c.c, * elf32-m32r.c, * elf32-m68hc11.c, * elf32-m68hc12.c, * elf32-m68hc1x.c, * elf32-m68hc1x.h, * elf32-m68k.c, * elf32-m88k.c, * elf32-mcore.c, * elf32-mep.c, * elf32-metag.c, * elf32-microblaze.c, * elf32-mips.c, * elf32-moxie.c, * elf32-msp430.c, * elf32-mt.c, * elf32-nds32.c, * elf32-nds32.h, * elf32-nios2.c, * elf32-or1k.c, * elf32-pj.c, * elf32-ppc.c, * elf32-ppc.h, * elf32-pru.c, * elf32-rl78.c, * elf32-rx.c, * elf32-s390.c, * elf32-score.c, * elf32-score.h, * elf32-score7.c, * elf32-sh-symbian.c, * elf32-sh.c, * elf32-sh64.c, * elf32-sparc.c, * elf32-spu.c, * elf32-tic6x.c, * elf32-tilegx.c, * elf32-tilegx.h, * elf32-tilepro.c, * elf32-tilepro.h, * elf32-v850.c, * elf32-vax.c, * elf32-wasm32.c, * elf32-xc16x.c, * elf32-xgate.c, * elf32-xgate.h, * elf32-xstormy16.c, * elf32-xtensa.c, * elf64-alpha.c, * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-mips.c, * elf64-mmix.c, * elf64-ppc.c, * elf64-s390.c, * elf64-sh64.c, * elf64-sparc.c, * elf64-tilegx.c, * elf64-tilegx.h, * elf64-x86-64.c, * elfcore.h, * elflink.c, * elfn32-mips.c, * elfnn-aarch64.c, * elfnn-ia64.c, * elfnn-riscv.c, * elfxx-aarch64.c, * elfxx-aarch64.h, * elfxx-ia64.c, * elfxx-ia64.h, * elfxx-mips.c, * elfxx-riscv.c, * elfxx-sparc.c, * elfxx-tilegx.c, * elfxx-x86.c, * elfxx-x86.h, * freebsd.h, * hash.c, * host-aout.c, * hp300hpux.c, * hppabsd-core.c, * hpux-core.c, * i386aout.c, * i386linux.c, * i386lynx.c, * i386mach3.c, * i386msdos.c, * i386netbsd.c, * ieee.c, * ihex.c, * irix-core.c, * libaout.h, * libbfd-in.h, * libbfd.c, * libcoff-in.h, * libnlm.h, * libpei.h, * libxcoff.h, * linker.c, * lynx-core.c, * m68k4knetbsd.c, * m68klinux.c, * m68knetbsd.c, * m88kmach3.c, * mach-o-aarch64.c, * mach-o-arm.c, * mach-o-i386.c, * mach-o-target.c, * mach-o-x86-64.c, * mach-o.c, * mach-o.h, * merge.c, * mipsbsd.c, * mmo.c, * netbsd.h, * netbsd-core.c, * newsos3.c, * nlm-target.h, * nlm32-ppc.c, * nlm32-sparc.c, * nlmcode.h, * ns32k.h, * ns32knetbsd.c, * oasys.c, * opncls.c, * pc532-mach.c, * pdp11.c, * pe-arm.c, * pe-i386.c, * pe-mcore.c, * pe-mips.c, * pe-x86_64.c, * peXXigen.c, * pef.c, * pef.h, * pei-arm.c, * pei-i386.c, * pei-mcore.c, * pei-x86_64.c, * peicode.h, * plugin.c, * ppcboot.c, * ptrace-core.c, * reloc.c, * riscix.c, * rs6000-core.c, * section.c, * som.c, * som.h, * sparclinux.c, * sparcnetbsd.c, * srec.c, * stabs.c, * sunos.c, * syms.c, * targets.c, * tekhex.c, * trad-core.c, * vax1knetbsd.c, * vaxnetbsd.c, * verilog.c, * versados.c, * vms-alpha.c, * vms-lib.c, * vms-misc.c, * wasm-module.c, * wasm-module.h, * xcofflink.c, * xsym.c, * xsym.h: Whitespace fixes. * bfd-in2.h, * libbfd.h, * libcoff.h: Regenerate.
2017-12-06Fix Common symbol override test failsAlan Modra6-0/+53
Fixes fails on SH and NDS32 introduced by dyn_reloc tidy. * elf32-lm32.c (lm32_elf_check_relocs): Skip non-ALLOC sections. * elf32-m32r.c (m32r_elf_check_relocs): Likewise. * elf32-nds32.c (nds32_elf_check_relocs): Likewise. * elf32-or1k.c (or1k_elf_check_relocs): Likewise. * elf32-sh.c (sh_elf_check_relocs): Likewise.
2017-12-06Enable shared lib tests for frv, lm32, m32r, microblaze, nds32 and or1kAlan Modra2-6/+11
These claim to support shared libs when configuring for <target>-linux (in contrast to <target>-elf which doesn't support shared libs). * testsuite/lib/ld-lib.exp (check_shared_lib_support): Return true for frv, lm32, m32r, microblaze, nds32 and or1k linux targets.
2017-12-06dyn_relocs tidyAlan Modra16-627/+295
Many targets define their own dyn_relocs struct when they could use struct elf_dyn_relocs. This patch tidies that, and uses readonly_dynrelocs in a few more places. The SH adjust_dynamic_symbol had some really weird code dating back to 2002 that looked over dynamic relocations for any in SEC_HAS_CONTENTS or SEC_READONLY sections, rather than just the usual SEC_READONLY sections. So basically any dynamic relocation. What's more, the SH relocate_section has no support for emitting dynamic relocations in non-PIC. In other words, SH has no support for avoiding copy relocs in non-PIC. I've made that more obvious by using "if (0 && ..)" in asjust_dynamic_symbol. Unfortunately, LM32, M32R, NDS32, and OR1K copied the bogus SH adjust_dynamic_symbol code. So none of those targets would have avoided copy relocs. LM32, M32R, NDS32 get the "if (0)" treatment too. (LM32 is even more broken in that non_got_ref is never set.) OR1K relocate_section looks like it might support dynamic relocs in non-PIC, so I've enabled the copy reloc avoidance code for that target. * elf32-hppa.c (struct elf32_hppa_dyn_reloc_entry): Delete. Use struct elf_dyn_relocs throughout file instead. (elf32_hppa_adjust_dynamic_symbol): Comment tidy. * elf32-lm32.c (struct elf_lm32_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (lm32_elf_adjust_dynamic_symbol): Use readonly_dynrelocs, but disable. Disable -z no-copyreloc too. * elf32-m32r.c (struct elf_m32r_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (m32r_elf_adjust_dynamic_symbol): Use readonly_dynrelocs, but disable. Disable -z no-copyreloc too. * elf32-metag.c (struct elf_metag_dyn_reloc_entry): Delete. Use struct elf_dyn_relocs throughout file instead. (elf_metag_adjust_dynamic_symbol): Use readonly_dynrelocs. * elf32-microblaze.c (struct elf32_mb_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (readonly_dynrelocs): New function. (microblaze_elf_adjust_dynamic_symbol): Use it. * elf32-nds32.c (struct elf_nds32_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (nds32_elf_adjust_dynamic_symbol): Use readonly_dynrelocs, but disable. Disable -z no-copyreloc too. * elf32-nios2.c (struct elf32_nios2_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. * elf32-or1k.c (struct elf_or1k_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (or1k_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. * elf32-sh.c (struct elf_sh_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (sh_elf_adjust_dynamic_symbol): Use readonly_dynrelocs, but disable. Disable -z no-copyreloc too. * elf32-tilepro.c (struct tilepro_elf_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (tilepro_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. * elfnn-riscv.c (struct riscv_elf_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (riscv_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. * elfxx-sparc.c (struct _bfd_sparc_elf_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (_bfd_sparc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. * elfxx-tilegx.c (struct tilegx_elf_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (tilegx_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. * elf32-s390.c (elf_s390_adjust_dynamic_symbol): Use readonly_dynrelocs. * elf64-s390.c (elf_s390_adjust_dynamic_symbol): Use readonly_dynrelocs.
2017-12-06Comment tidyAlan Modra4-3/+9
Past tense is wrong for a comment before some action. * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Comment tidy. * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise. * elfnn-aarch64.c (elfNN_aarch64_adjust_dynamic_symbol): Likewise.
2017-12-06Automatic date update in version.inGDB Administrator1-1/+1
2017-12-05Really fix riscv shared library __global_pointer$ problem.Jim Wilson14-68/+43
ld/ * emulparams/elf32lriscv-defs.sh (SDATA_START_SYMBOLS): Remove HIDDEN. Don't define __global_pointer$ when CREATE_SHLIB. * testsuite/ld-riscv-elf/gp-hidden-64.rd, * testsuite/ld-riscv-elf/gp-hidden-lib.rd, * testsuite/ld-riscv-elf/gp-hidden-lib.s, * testsuite/ld-riscv-elf/gp-hidden-ver-64.rd, * testsuite/ld-riscv-elf/gp-hidden-ver.rd, * testsuite/ld-riscv-elf/gp-hidden-ver.s, * testsuite/ld-riscv-elf/gp-hidden-ver.ver, * testsuite/ld-riscv-elf/gp-hidden.rd, * testsuite/ld-riscv-elf/gp-hidden.s, * testsuite/ld-riscv-elf/gp-hidden.sd: Delete. * testsuite/ld-riscv-elf/gp-test-lib.sd, * testsuite/ld-riscv-elf/gp-test.s, * testsuite/ld-riscv-elf/gp-test.sd: New. * testsuite/ld-riscv-elf/ld-riscv-elf.exp: Rewrite gp tests.
2017-12-05Address review comments for the previous seriesSimon Marchi2-2/+10
I failed at git and missed adding/lost changes on the wrong branch, the result being that I didn't incorporate fixes resulting from Yao's review comments. This patch fixes that. There are two places where we should use the unique pointer typedef, and ChangeLog entries missing. gdb/ChangeLog: * target-descriptions.c (struct tdesc_feature) <registers>: Use tdesc_reg_up typedef. (struct target_desc) <features>: Use tdesc_feature_up typedef.
2017-12-05Split tdesc_type into multiple classesSimon Marchi42-1074/+1187
This patch makes tdesc_type an abstract base class and creates three subclasses: - tdesc_type_builtin, for builtin types - tdesc_type_vector, for vector types - tdesc_type_with_fields, for struct, union, flag and enum types This allows getting rid of the union in tdesc_type and to not allow the std::vector separately. I tried to go further and create separate classes for struct, union, flag and enum, but it proved too difficult. One problem is that from the point of the of the target description code, the types tdesc_type_* are opaque (only forward-declared). Therefore, it doesn't know about inheritance relationship between those classes. This makes it impossible to make functions that accept a pointer to a base class and pass a pointer to a derived class, for example. I think this patch here is a good compromise, and if somebody wants to improve things further, the door is open. A make_gdb_type virtual pure method is added to tdesc_type, which replaces the current tdesc_gdb_type function. Calling this method on a tdesc_type returns the corresponding built gdb type. gdb/ChangeLog: * target-descriptions.c (struct tdesc_type): Use default destructor. <u>: Remove. <accept>: Remove. (struct tdesc_type_builtin): New. (struct tdesc_type_vector): New. (struct tdesc_type_with_fields): New. (tdesc_predefined_types): Change type to tdesc_type_builtin[]. (tdesc_gdb_type): Remove. (tdesc_register_type): Adjust. (tdesc_create_vector): Create tdesc_type_vector. (tdesc_create_struct): Create tdesc_type_with_fields. (tdesc_set_struct_size): Change parameter type. (tdesc_create_union): Create tdesc_type_with_fields. (tdesc_create_flags): Likewise. (tdesc_create_enum): Likewise. (tdesc_add_field): Change parameter type. (tdesc_add_typed_bitfield): Likewise. (tdesc_add_bitfield): Likewise. (tdesc_add_flag): Likewise. (tdesc_add_enum_value): Likewise. (print_c_tdesc) <visit>: Remove overload with tdesc_type parameter, add overloads for tdesc_type_builtin, tdesc_type_with_fields and tdesc_type_vector. <m_printed_type>: Remove. <m_printed_element_type, m_printed_type_with_fields>: Add. * target-descriptions.h (tdesc_create_enum): Change return type. (tdesc_add_typed_bitfield): Change parameter type. (tdesc_add_enum_value): Change parameter type. * xml-tdesc.c (struct tdesc_parsing_data) <current_type>: Change type to tdesc_type_with_fields. (tdesc_start_struct): Adjust. (tdesc_start_flags): Adjust. (tdesc_start_enum): Adjust. (tdesc_start_field): Adjust. * arch/tdesc.h (struct tdesc_type_builtin): Forward-declare. (struct tdesc_type_vector): Forward-declare. (struct tdesc_type_with_fields): Forward-declare. (tdesc_create_struct): Change return type. (tdesc_create_union): Likewise. (tdesc_create_flags): Likewise. (tdesc_add_field): Change parameter type. (tdesc_set_struct_size): Likewise. (tdesc_add_bitfield): Likewise. (tdesc_add_flag): Likewise. * features: Re-generate C files. gdb/gdbserver/ChangeLog: * tdesc.c (struct tdesc_type): Change return type. (tdesc_add_flag): Change parameter type. (tdesc_add_bitfield): Likewise. (tdesc_add_field): Likewise. (tdesc_set_struct_size): Likewise.
2017-12-05Make tdesc_arch_data::arch_regs an std::vectorSimon Marchi2-42/+54
Make tdesc_arch_data::arch_regs be an std::vector of tdesc_arch_reg objects. On particularity is that the tdesc_arch_data linked to a gdbarch is allocated on the gdbarch's obstack. To be safe, I did not change it and called placement-new on the area returned by OBSTACK_ZALLOC. gdb/ChangeLog: * target-descriptions.c (tdesc_arch_reg): Remove typedef. (struct tdesc_arch_reg): Add constructor. (DEF_VEC_O (tdesc_arch_reg)): Remove. (struct tdesc_arch_data): Initialize fields. <arch_regs>: Change type to std::vector. (target_find_description): Adjust. (tdesc_find_type): Adjust. (tdesc_data_init): Call tdesc_arch_data constructor. (tdesc_data_alloc): Allocate tdesc_arch_data with new. (tdesc_data_cleanup): Free data with delete. (tdesc_numbered_register): Adjust. (tdesc_find_arch_register): Adjust. (tdesc_use_registers): Adjust.
2017-12-05Make tdesc_type::u::u::fields an std::vectorSimon Marchi2-119/+95
This patch makes the tdesc_type::u::u::fields an std::vector of tdesc_type_field. The difficulty here is that the vector is part of a union. Because of this, I made fields a pointer to a vector, and instantiate/destroy the vector if the type is one that uses this member of the union The field tdesc_type_field::name is changed to an std::string at the same time. gdb/ChangeLog: * target-descriptions.c (tdesc_type_field): Remove typedef. (DEF_VEC_O (tdesc_type_field)): Remove. (struct tdesc_type_field): Add constructor. <name>: Change type to std::string. (struct tdesc_type) <tdesc_type>: Instantiate vector if the type kind uses it. <~tdesc_type>: Destroy vector if the type kind uses it. <u::u::fields>: Change type to std::vector. (tdesc_gdb_type): Adjust. (tdesc_add_field): Adjust. (tdesc_add_typed_bitfield): Adjust. (tdesc_add_field): Adjust. (tdesc_add_enum_value): Adjust. (class print_c_tdesc) <visit>: Adjust.
2017-12-05Make tdesc_type::name an std::stringSimon Marchi2-27/+35
This patch makes tdesc_type::name an std::string. This way, we don't need to free it manually in ~tdesc_type. I think the comment on top of name is not correct, the string is always malloc'ed. gdb/ChangeLog: * target-descriptions.c (struct tdesc_type) <name>: Change type to std::string. <~tdesc_type>: Don't manually free name. <operator==>: Adjust. (tdesc_named_type): Adjust. (tdesc_find_type): Adjust. (tdesc_gdb_type): Adjust. (class print_c_tdesc) <visit>: Adjust.
2017-12-05Make tdesc_feature::types an std::vectorSimon Marchi2-40/+34
This patch makes tdesc_feature::types an std::vector of unique_ptr of tdesc_type. This way, we don't need to manually free the objects and the vector in ~tdesc_feature. gdb/ChangeLog: * target-descriptions.c (tdesc_type_p): Remove typedef. (DEF_VEC_P (tdesc_type_p)): Remove. (struct tdesc_feature) <types>: Change type to std::vector. <~tdesc_feature>: Replace with default implementation. <accept>: Adjust. (tdesc_named_type): Adjust. (tdesc_create_vector): Adjust. (tdesc_create_struct): Adjust. (tdesc_create_union): Adjust. (tdesc_create_flags): Adjust. (tdesc_create_enum): Adjust.
2017-12-05Make tdesc_reg string fields std::stringSimon Marchi4-41/+51
Make the name, group and type fields of tdesc_reg std::strings. This way, we don't have to manually free them in ~tdesc_reg. Doing so results in a small change in the generated tdesc. Instead of passing an empty string for the group parameter of tdesc_create_reg, the two modified tdesc now pass NULL. The end result should be the same. gdb/ChangeLog: * target-descriptions.c (struct tdesc_reg) <tdesc_reg>: Change type of name_ parameter, adjust to std::string change. <name, group, type>: Change type to std::string. <~tdesc_reg>: Replace with default implementation. <operator==>: Adjust. (tdesc_find_register_early): Adjust. (tdesc_register_name): Adjust. (tdesc_register_type): Adjust. (tdesc_register_in_reggroup_p): Adjust. (class print_c_tdesc) <visit>: Adjust. (class print_c_feature) <visit>: Adjust.
2017-12-05Make tdesc_feature::registers an std::vectorSimon Marchi2-47/+35
This patch makes tdesc_feature::registers an std::vector of unique_ptr to tdesc_reg. This way, we don't have to manually free the tdesc_reg objects and the vector in the tdesc_feature destructor. gdb/ChangeLog: * target-descriptions.c (tdesc_reg_p): Remove typedef. (DEF_VEC_P (tdesc_reg_p)): Remove. (struct tdesc_feature) <registers>: Change type to std::vector. <~tdesc_feature>: Don't manually free registers. <accept>: Adjust. <operator==>: Adjust. (tdesc_has_registers): Adjust. (tdesc_find_register_early): Adjust. (tdesc_use_registers): Adjust. (tdesc_create_reg): Adjust.
2017-12-05Make tdesc_feature::name an std::stringSimon Marchi2-10/+19
... so we don't have to manually free it in ~tdesc_feature. gdb/ChangeLog: * target-descriptions.c (tdesc_feature) <name>: Change type to std::string. <~tdesc_feature>: Don't manually free name. <operator==>: Adjust. (tdesc_find_feature): Adjust. (tdesc_feature_name): Adjust. (class print_c_tdesc) <visit_pre>: Adjust. (class print_c_feature) <visit_pre>: Adjust.
2017-12-05Make target_desc::features an std::vectorSimon Marchi2-52/+33
This patch makes target_desc to be a vector of unique_ptr to tdesc_feature objects. This way, we don't have to manually free the features and the vector in the target_desc destructor. gdb/ChangeLog: * target-descriptions.c (tdesc_feature_p): Remove typedef. (DEF_VEC_P (tdesc_feature_p)): Remove. (struct target_desc) <features>: Change type to std::vector. <~target_desc>: Replace with default implementation. <accept>: Adjust. <operator==>: Adjust. (tdesc_has_registers): Adjust. (tdesc_find_feature): Adjust. (tdesc_use_registers): Adjust. (tdesc_create_feature): Adjust.
2017-12-05Make target_desc::compatible an std::vectorSimon Marchi2-30/+19
This patch changes target_desc::compatible to be a vector of bfd_arch_info *. This way, we don't need to manually free the vector in the target_desc destructor. gdb/ChangeLog: * target-descriptions.c (arch_p): Remove typedef. (DEF_VEC_P (arch_p)): Remove. (struct target_desc) <compatible>: Change type to std::vector. <~target_desc>: Don't manually free compatible. (tdesc_compatible_p): Adjust. (tdesc_add_compatible): Adjust. (class print_c_tdesc) <visit_pre>: Adjust.
2017-12-05Make target_desc::properties an std::vectorSimon Marchi2-40/+30
This patch changes target_desc::properties to be a vector of property objects. This way, we don't need to manually free the property members as well as the property objects themselves. gdb/ChangeLog: * target-descriptions.c (property_s): Remove typedef. (DEF_VEC_O (property_s)): Remove. (struct target_desc) <properties>: Make an std::vector. <~target_desc>: Don't manually free properties. (tdesc_property): Adjust. (set_tdesc_property): Adjust. (class print_c_tdesc) <visit_pre>: Adjust.
2017-12-05Redefine gdb_static_assert as static_assertSimon Marchi2-2/+6
Since we use C++11, we can use static_assert instead doing the trick that makes a negative-sized array if the expression is false. static_assert is built in the language and gives clearer error messages. To avoid modifying the usages of gdb_static_assert, redefine gdb_static_assert in terms of static_assert, passing an empty message. If we want to add an assert with a message, it's always possible to use static_assert directly. gdb/ChangeLog: * common/gdb_assert.h (gdb_static_assert): Redefine using static_assert.
2017-12-05Remove some unused variablesSimon Marchi85-224/+179
This patch removes some unused variables, found with -Wunused. I have not removed everything reported by -Wunused, because some expressions such as struct type *arg_type = check_typedef (value_type); in bfin-tdep.c could have an unexpected but important side-effect. I removed others that I considered more low-risk, such as: struct gdbarch *gdbarch = get_objfile_arch (objfile); I tested building with Python 2/Python 3/no Python, with/without expat, with/without libipt and with/without babeltrace. gdb/ChangeLog: * ada-lang.c (ada_collect_symbol_completion_matches): Remove unused variables. (ada_is_redundant_range_encoding): Likewise. * ada-varobj.c (ada_varobj_get_value_of_array_variable): Likewise. * alpha-tdep.c (alpha_software_single_step): Likewise. * arm-tdep.c (_initialize_arm_tdep): Likewise. * auto-load.c (info_auto_load_cmd): Likewise. * break-catch-syscall.c (insert_catch_syscall): Likewise. (remove_catch_syscall): Likewise. * breakpoint.c (condition_completer): Likewise. (clear_command): Likewise. (update_breakpoint_locations): Likewise. * btrace.c (btrace_disable): Likewise. (btrace_teardown): Likewise. (btrace_maint_update_pt_packets): Likewise. (maint_btrace_clear_cmd): Likewise. * cli/cli-decode.c (lookup_cmd_1): Likewise. (lookup_cmd_composition): Likewise. * cli/cli-dump.c (scan_filename): Likewise. (restore_command): Likewise. * compile/compile-loc2c.c (compute_stack_depth): Likewise. * compile/compile-object-load.c (compile_object_load): Likewise. * compile/compile-object-run.c (compile_object_run): Likewise. * compile/compile.c (compile_to_object): Likewise. * completer.c (filename_completer): Likewise. (complete_files_symbols): Likewise. (complete_expression): Likewise. * corelow.c (core_open): Likewise. * ctf.c (ctf_start): Likewise. (ctf_write_status): Likewise. (ctf_write_uploaded_tsv): Likewise. (ctf_write_definition_end): Likewise. (ctf_open_dir): Likewise. (ctf_xfer_partial): Likewise. (ctf_trace_find): Likewise. * disasm.c (gdb_pretty_print_disassembler::pretty_print_insn): Likewise. * dwarf2loc.c (allocate_piece_closure): Likewise. (indirect_pieced_value): Likewise. (dwarf2_evaluate_loc_desc_full): Likewise. * dwarf2read.c (dw2_expand_marked_cus): Likewise. (dw2_expand_symtabs_matching): Likewise. (dw2_map_symbol_filenames): Likewise. (read_and_check_comp_unit_head): Likewise. (read_cutu_die_from_dwo): Likewise. (lookup_dwo_unit): Likewise. (read_comp_units_from_section): Likewise. (dwarf2_compute_name): Likewise. (handle_DW_AT_stmt_list): Likewise. (create_cus_hash_table): Likewise. (create_dwp_v2_section): Likewise. (dwarf2_rnglists_process): Likewise. (dwarf2_ranges_process): Likewise. (dwarf2_record_block_ranges): Likewise. (is_vtable_name): Likewise. (read_formatted_entries): Likewise. (skip_form_bytes): Likewise. * elfread.c (elf_symtab_read): Likewise. * exec.c (exec_file_command): Likewise. * f-valprint.c (f_val_print): Likewise. (info_common_command_for_block): Likewise. * guile/guile.c (initialize_scheme_side): Likewise. * guile/scm-breakpoint.c (gdbscm_breakpoint_commands): Likewise. * guile/scm-cmd.c (cmdscm_completer): Likewise. (gdbscm_register_command_x): Likewise. * guile/scm-frame.c (gdbscm_frame_read_var): Likewise. * guile/scm-param.c (gdbscm_parameter_value): Likewise. * guile/scm-ports.c (file_port_magic): Likewise. * guile/scm-pretty-print.c (ppscm_search_pp_list): Likewise. (ppscm_pretty_print_one_value): Likewise. (ppscm_print_children): Likewise. * guile/scm-string.c (gdbscm_string_to_argv): Likewise. * guile/scm-symtab.c (gdbscm_sal_symtab): Likewise. * guile/scm-type.c (gdbscm_type_next_field_x): Likewise. * guile/scm-utils.c (gdbscm_parse_function_args): Likewise. * i386-tdep.c (i386_register_reggroup_p): Likewise. * infcmd.c (run_command_1): Likewise. (until_next_fsm_clean_up): Likewise. * linespec.c (linespec_complete): Likewise. (find_label_symbols): Likewise. * m2-valprint.c (m2_val_print): Likewise. * memattr.c (require_user_regions): Likewise. (lookup_mem_region): Likewise. (disable_mem_command): Likewise. (mem_delete): Likewise. * mep-tdep.c (mep_register_name): Likewise. (mep_analyze_prologue): Likewise. * mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries): Likewise. * mi/mi-interp.c (mi_on_sync_execution_done): Likewise. * mi/mi-main.c (mi_cmd_trace_frame_collected): Likewise. * microblaze-linux-tdep.c (microblaze_linux_init_abi): Likewise. * minidebug.c (lzma_open): Likewise. * minsyms.c (lookup_minimal_symbol): Likewise. * mips-linux-tdep.c (mips64_fill_fpregset): Likewise. * mips-tdep.c (mips_stub_frame_sniffer): Likewise. (mips_o64_return_value): Likewise. (mips_single_step_through_delay): Likewise. (_initialize_mips_tdep): Likewise. * nios2-tdep.c (nios2_push_dummy_call): Likewise. (nios2_software_single_step): Likewise. * parse.c (find_minsym_type_and_address): Likewise. * psymtab.c (psym_relocate): Likewise. * python/py-breakpoint.c (bppy_get_commands): Likewise. (gdbpy_breakpoint_modified): Likewise. * python/py-infevents.c (create_inferior_call_event_object): Likewise. * python/py-record-btrace.c (btpy_list_item): Likewise. * python/py-type.c (typy_str): Likewise. * python/py-value.c (valpy_call): Likewise. * python/python.c (do_start_initialization): Likewise. * record-btrace.c (record_btrace_insn_history_range): Likewise. (record_btrace_call_history_range): Likewise. (record_btrace_record_method): Likewise. (record_btrace_xfer_partial): Likewise. (btrace_get_frame_function): Likewise. * record-full.c (record_full_open): Likewise. * record.c (get_context_size): Likewise. * registry.h (DEFINE_REGISTRY): Likewise. * remote-fileio.c (remote_fileio_request): Likewise. * remote.c (remote_update_thread_list): Likewise. (remote_check_symbols): Likewise. (remote_commit_resume): Likewise. (remote_interrupt): Likewise. (remote_insert_breakpoint): Likewise. (compare_sections_command): Likewise. * rust-exp.y (super_name): Likewise. (lex_string): Likewise. (convert_ast_to_type): Likewise. (convert_ast_to_expression): Likewise. * rust-lang.c (rust_print_struct_def): Likewise. (rust_print_type): Likewise. (rust_evaluate_subexp): Likewise. * rx-tdep.c (rx_register_type): Likewise. * ser-event.c (serial_event_clear): Likewise. * serial.c (serial_open): Likewise. * spu-tdep.c (spu_overlay_new_objfile): Likewise. * symfile.c (section_is_overlay): Likewise. (overlay_unmapped_address): Likewise. (overlay_mapped_address): Likewise. (simple_overlay_update_1): Likewise. (simple_overlay_update): Likewise. * symtab.c (symbol_find_demangled_name): Likewise. (search_symbols): Likewise. * target-descriptions.c (tdesc_predefined_type): Likewise. * target.c (target_commit_resume): Likewise. * thread.c (print_selected_thread_frame): Likewise. * top.c (new_ui_command): Likewise. (gdb_readline_no_editing): Likewise. * tracefile-tfile.c (tfile_open): Likewise. * tracepoint.c (create_tsv_from_upload): Likewise. * utils.c (quit): Likewise. (defaulted_query): Likewise. * valarith.c (value_concat): Likewise. * xml-syscall.c (xml_list_syscalls_by_group): Likewise. * xml-tdesc.c (target_fetch_description_xml): Likewise. * xtensa-tdep.c (xtensa_pseudo_register_read): Likewise. (xtensa_pseudo_register_write): Likewise. gdb/gdbserver/ChangeLog: * regcache.c (registers_to_string): Remove unused variable.
2017-12-04Riscv shared libraries should not export __global_pointer$.Jim Wilson13-2/+106
ld/ * emulparams/elf32lriscv-defs.sh (SDATA_START_SYMBOLS): Mark __global_pointer$ as HIDDEN. * testsuite/ld-riscv-elf/gp-hidden-64.rd: New. * testsuite/ld-riscv-elf/gp-hidden-lib.rd: New. * testsuite/ld-riscv-elf/gp-hidden-lib.s: New. * testsuite/ld-riscv-elf/gp-hidden-ver-64.rd: New. * testsuite/ld-riscv-elf/gp-hidden-ver.rd: New. * testsuite/ld-riscv-elf/gp-hidden-ver.s: New. * testsuite/ld-riscv-elf/gp-hidder-ver.ver: New. * testsuite/ld-riscv-elf/gp-hidden.rd: New. * testsuite/ld-riscv-elf/gp-hidden.s: New. * testsuite/ld-riscv-elf/gp-hidden.sd: New. * testsuite/ld-riscv-elf/ld-riscv-elf.exp: Change riscv to riscv*. Run the new tests with run_ld_link_tests.
2017-12-05Automatic date update in version.inGDB Administrator1-1/+1