Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View

Tags: MAIL TEST aarch32 aarch64 aix cc-with-index debian fedora freebsd i686 index m32 m64 mingw32 native-extended-gdbserver native-extended-gdbserver-m32 native-extended-gdbserver-m64 native-gdbserver native-gdbserver-m32 native-gdbserver-m64 netbsd power8 ppc64be ppc64le rhel s390x ubuntu x86_64
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

MAIL TEST aarch32 aarch64 aix cc-with-index debian fedora freebsd i686 index m32 m64 mingw32 native-extended-gdbserver native-extended-gdbserver-m32 native-extended-gdbserver-m64 native-gdbserver native-gdbserver-m32 native-gdbserver-m64 netbsd power8 ppc64be ppc64le rhel s390x ubuntu x86_64
Stafford Horne
gdb: testsuite: Add or1k tdesc-regs.exp test support

2017-12-12  Stafford Horne  <shorne@gmail.com>

* gdb.xml/tdesc-regs.exp: Add or1k support.
Stafford Horne
sim: or1k: add or1k target to sim
This adds the OpenRISC 32-bit sim target.  The OpenRISC sim is a CGEN
based sim so the bulk of the code is generated from the .cpu files by
CGEN.  The engine decode and execute logic in mloop uses scache with
pseudo-basic-block extraction and supports both full and fast (switch)

The sim does not implement an mmu at the moment.  The sim does implement
fpu instructions via the common sim-fpu implementation.


2017-12-12  Stafford Horne  <shorne@gmail.com>
    Peter Gavin  <pgavin@gmail.com>

* configure.tgt: Add or1k sim.
* or1k/README: New file.
* or1k/Makefile.in: New file.
* or1k/configure.ac: New file.
* or1k/mloop.in: New file.
* or1k/or1k-sim.h: New file.
* or1k/or1k.c: New file.
* or1k/sim-if.c: New file.
* or1k/sim-main.h: New file.
* or1k/traps.c: New file.
Ulrich Weigand
[MPFR] Fix regression on 32-bit host systems
When converting parts of the mantissa to MPFR, we need to make sure to do
an *unsigned* conversion.  Since we convert at most 32 bits at a time,
stored in an unsigned long, this doesn't matter on systems where "long"
is larger than 32 bits.  But on systems where it is 32 bits, we can get
conversion errors.

2017-12-11  Ulrich Weigand  <uweigand@de.ibm.com>

* target-float.c (mpfr_float_ops::from_target): Use mpfr_set_ui
instead of mpfr_set_si to convert mantissa bits.
Pedro Alves
dwarf2read.c:mapped_index, use gdb::array_view, simplify symbol table
This replaces a couple ptr+size pairs with gdb::array_view in the
.gdb_index code, and simplifies things by using an aggregate for the
type of the symbol table hash bucket instead of having to consider the
distinction between size of table vs number of slots and access name
vs vec by index.

2017-12-08  Pedro Alves  <palves@redhat.com>

* dwarf2read.c (mapped_index::symbol_table_slot): New.
(mapped_index::address_table): Now a gdb::array_view of const
(mapped_index::symbol_table): Now a gdb::array_view of
(mapped_index::symbol_table_slots): Delete.
(create_addrmap_from_index): Adjust.
(find_slot_in_mapped_hash): Adjust.
(read_index_from_section): Adjust.
(dwarf2_read_index): Adjust.
Pedro Alves
Add gdb::hash_enum
The DWARF-5 .debug_names consumer patch will want to use an
std::unordered_map with an enum as key type, like:

std::unordered_map<sect_offset, dwarf2_per_cu_data*>

That doesn't work in C++11 in non-recent compilers due to a language


  In file included from /usr/include/c++/5.3.1/bits/hashtable.h:35:0,
  from /usr/include/c++/5.3.1/unordered_set:47,
  from src/gdb/dwarf2read.c:79:
  /usr/include/c++/5.3.1/bits/hashtable_policy.h: In instantiation of ‘struct std::__detail::__is_noexcept_hash<sect_offset, std::hash<sect_offset> >’:
  /usr/include/c++/5.3.1/type_traits:137:12:  required from ‘struct std::__and_<std::__is_fast_hash<std::hash<sect_offset> >, std::__detail::__is_noexcept_hash<sect_offset, std::hash<sect_offset> > >’
  /usr/include/c++/5.3.1/type_traits:148:38:  required from ‘struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<sect_offset> >, std::__detail::__is_noexcept_hash<sect_offset, std::hash<sect_offset> > > >’
  /usr/include/c++/5.3.1/bits/unordered_map.h:100:66:  required from ‘class std::unordered_map<sect_offset, dwarf2_per_cu_data*>’
  src/gdb/dwarf2read.c:3260:30:  required from here
  /usr/include/c++/5.3.1/bits/hashtable_policy.h:85:34: error: no match for call to ‘(const std::hash<sect_offset>) (const sect_offset&)’
    noexcept(declval<const _Hash&>()(declval<const _Key&>()))>
  In file included from /usr/include/c++/5.3.1/bits/move.h:57:0,
  from /usr/include/c++/5.3.1/bits/stl_pair.h:59,
  from /usr/include/c++/5.3.1/bits/stl_algobase.h:64,
  from /usr/include/c++/5.3.1/bits/char_traits.h:39,
  from /usr/include/c++/5.3.1/string:40,
  from /home/pedro/gdb/mygit/src/gdb/common/common-utils.h:23,
  from /home/pedro/gdb/mygit/src/gdb/common/common-defs.h:78,
  from /home/pedro/gdb/mygit/src/gdb/defs.h:28,
  from /home/pedro/gdb/mygit/src/gdb/dwarf2read.c:31:

This commits adds a helper replacement.

2017-12-08  Pedro Alves  <palves@redhat.com>

* common/hash_enum.h: New file.
GDB Administrator
Automatic date update in version.in
Alan Modra
PR22576, ppc64_skip_trampoline_code uses wrong r2 for EXEC_REVERSE
The TOC pointer register, r2, on powerpc64 is generally not mentioned
in debug info.  It is saved and restored by call linkage code, and
set to the callee value either by call stub code (ELFv1) or in the
callee global entry point code (ELFv2).  A call stub uses the caller
TOC pointer to access the PLT.  So for gdb to read the correct PLT
entry in order to determine the destination of the trampoline, gdb
needs to know the caller r2.  When skipping over trampolines in the
normal forward direction, the caller r2 is simply the current value of
r2 (at the start of the trampoline).  However, when reversing over
trampolines the current value of r2 is that for the callee.  Using
that value results in wild reads of memory rather than the correct PLT

This patch corrects the value of r2 by using the value saved on the
stack for reverse execution.  Note that in reverse execution mode it
isn't really necessary for skip_trampoline_code to return the actual
destination, so we're doing a little more work than needed here.  Any
non-zero return value would do (and it would be nicer if the interface
was changed to return the start of the stub).

PR tdep/22576
* ppc64-tdep.c (ppc64_plt_entry_point): Rewrite to take TOC-relative
PLT offset, and retrieve r2 from stack when executing in reverse.
(ppc64_standard_linkage1_target): Drop pc param.  Calculate offset
rather than PLT address.
(ppc64_standard_linkage2_target): Likewise.
(ppc64_standard_linkage3_target): Likewise.
(ppc64_standard_linkage4_target): Likewise.
(ppc64_skip_trampoline_code_1): Adjust to suit.
Joel Brobecker
Adapt gdb.ada/variant_record_packed_array.exp to accept reordered components
Recent versions of GNAT are capable of reordering record components
to make their access for efficient. This patch adapts this test to
accept both cases (reordered or not).


        * gdb.ada/variant_record_packed_array.exp: Adapt test to accept
        output with components being reordered.

Tested on x86_64-linux.
GDB Administrator
Automatic date update in version.in
Stephen Crane
Add plugin API for processing plugin-added input files
Gold plugins may wish to further process an input file added by a plugin. For
example, the plugin may need to assign a unique segment for sections in a
plugin-generated input file. This patch adds a plugin callback that the linker
will call when reading symbols from a new input file added after the
all_symbols_read event (i.e. an input file added by a plugin).

2017-12-11  Stephen Crane  <sjc@immunant.com>

* plugin-api.h: Add new plugin hook to allow processing of input
files added by a plugin.
(ld_plugin_new_input_handler): New function hook type.
(ld_plugin_register_new_input): New interface.
(tv_register_new_input): New member.

* plugin.cc (Plugin::load): Include hooks for register_new_input
in transfer vector.
(Plugin::new_input): New function.
(register_new_input): New function.
(Plugin_manager::claim_file): Call Plugin::new_input if in
replacement phase.
* plugin.h (Plugin::set_new_input_handler): New function.
* testsuite/plugin_new_section_layout.c: New plugin to test
new_input plugin API.
* testsuite/plugin_final_layout.sh: Add new input test.
* testsuite/Makefile.am (plugin_layout_new_file): New test case.
* testsuite/Makefile.in: Regenerate.
Stafford Horne
gdb: testsuite: Add or1k l.nop instruction
The test case requires adding a nop instruction.  For or1k the
instruction is `l.nop`. This change uses the correct operation.


2017-12-12  Stafford Horne  <shorne@gmail.com>

* gdb.base/bp-permanent.c: Define nop of or1k.
Jan Kratochvil
Change dwarf2_initialize_objfile's return value
dwarf2_initialize_objfile was returning boolean whether it is psymtabs
or .gdb_index while now it needs to return also whether it is

2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

* defs.h (elf_sym_fns_lazy_psyms, elf_sym_fns_gdb_index): Move here
declarations from elfread.c.
(dwarf2_initialize_objfile): Change return value.
* elfread.c (elf_sym_fns_lazy_psyms, elf_sym_fns_gdb_index): Move these
declarations to defs.h.
(elf_symfile_read): Adjust dwarf2_initialize_objfile caller.
* symfile.h (dwarf2_initialize_objfile): Change return type.
Alan Modra
Work around sparc glibc bug
* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): When emitting
dynamic R_SPARC_RELATIVE for GOT entries, ensure the section
contents are zeroed.
Joel Brobecker
Adapt gdb.ada/pkd_arr_elem.exp to accept reordered components
Recent versions of GNAT are capable of reordering record components
to make their access for efficient. This patch adapts this test to
accept both cases (reordered or not).


        * gdb.ada/pkd_arr_elem.exp: Adapt "print test" test to accept
        output with components being reordered.
Franck Jullien
gdb: Add OpenRISC or1k and or1knd target support
This patch prepares the current GDB port of the OpenRISC processor from
https://github.com/openrisc/binutils-gdb for upstream merging.

Testing has been done with a cgen sim provided in a separate patch. This
has been tested with 2 toolchains. GCC [1] 5.4.0 from the OpenRISC
project with Newlib [2] and GCC 5.4.0 with Musl [3] 1.1.4.

It supports or1knd (no delay slot target).
The default target is or1k (with delay slot).

You can change the target arch with:

(gdb) set architecture or1knd
The target architecture is assumed to be or1knd

[1] https://github.com/openrisc/or1k-gcc
[2] https://github.com/openrisc/newlib
[3] https://github.com/openrisc/musl-cross


2017-12-12  Stafford Horne  <shorne@gmail.com>
    Stefan Wallentowitz  <stefan@wallentowitz.de>
    Franck Jullien  <franck.jullien@gmail.com>
    Jeremy Bennett  <jeremy.bennett@embecosm.com>

* gdb.texinfo: Add OpenRISC documentation.


2017-12-12  Stafford Horne  <shorne@gmail.com>
    Stefan Wallentowitz  <stefan@wallentowitz.de>
    Stefan Kristiansson  <stefan.kristiansson@saunalahti.fi>
    Franck Jullien  <franck.jullien@gmail.com>
    Jeremy Bennett  <jeremy.bennett@embecosm.com>

* configure.tgt: Add targets for or1k and or1knd.
* or1k-tdep.c: New file.
* or1k-tdep.h: New file.
* features/Makefile: Add or1k.xml to build.
* features/or1k.xml: New file.
* features/or1k-core.xml: New file.
* features/or1k.c: Generated.
Simon Marchi
remote: Return NULL extra_info/name if they are empty

  remote: C++ify thread_item and threads_listing_context

broke the test gdb.threads/names.exp.  The problem is that since we now
use an std::string to hold the extra_info, an empty string is returned
by target_extra_thread_info to print_thread_info_1 when the remote stub
didn't send any extra info, instead of NULL before.  Because of that,
print_thread_info_1 prints the extra info between parentheses, which
results in some spurious empty parentheses.

  Expected: * 1    Thread 22752.22752 "main" all_threads_ready () at ...
  Actual  : * 1    Thread 22752.22752 "main" () all_threads_ready () a ...

Since the bug was introduced by a behavior change in the remote target,
I chose to fix it on the remote target side by making it return NULL
when the extra string is empty.  This will avoid possibly changing the
behavior of the common code and affecting other targets.

The name field has the same problem.  If a remote stub returns no thread
names, remote_thread_name will return an empty string instead of NULL,
so print_thread_info_1 will show empty quotes ("") instead of nothing.


PR gdb/22556
* remote.c (remote_thread_name): Return NULL if name is empty.
(remote_threads_extra_info): Return NULL if extra info is empty.
Pedro Alves
dwarf2read.c: Rewrite/simplify mock_mapped_index
Now that dw2_expand_symtabs_matching_symbol works with the abstract
mapped_index_base, we can make mock_mapped_index inherit
mapped_index_base too instead of having it pretend to be a real
.gdb_index table.

2017-12-08  Pedro Alves  <palves@redhat.com>

* dwarf2read.c (mock_mapped_index): Reimplement as an extension of
(check_match): Adjust to use mock_index directly.
(test_mapped_index_find_name_component_bounds): Adjust to work
with a mapped_index_base.
Jan Kratochvil
DWARF-5: .debug_names index consumer
Some testcases needed to be updated as they were missing
.debug_aranges.  While that does not matter for no-index (as GDB
builds the mapping internally during dwarf2_build_psymtabs_hard) and
neither for .gdb_index (as GDB uses that internally built mapping
which it stores into .gdb_index) it does matter for .debug_names as
that simply assumes existing .debug_aranges from GCC.

2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
    Pedro Alves  <palves@redhat.com>

* defs.h (elf_sym_fns_debug_names): New declaration.
* dwarf2read.c: Include "hash_enum.h".
(mapped_debug_names): New.
(struct dwarf2_per_objfile): Add debug_names, debug_aranges and
(dwarf2_elf_names): Add ".debug_names" and ".debug_aranges".
(struct dwz_file): Add debug_names.
(dwarf2_per_objfile::locate_sections): Handle debug_names and
(locate_dwz_sections): Handle debug_names.
(create_addrmap_from_aranges): New.
(dwarf2_read_index): Update function comment.
(dwarf5_augmentation): Moved up.
(read_debug_names_from_section, create_cus_from_debug_names_list)
(create_cus_from_debug_names, dwarf2_read_debug_names): New.
(dwarf5_djb_hash): Moved up.
(dw2_debug_names_iterator): New.
(read_indirect_string_at_offset): New declaration.
(dw2_debug_names_iterator::next, dw2_debug_names_lookup_symbol)
(dw2_debug_names_dump, dw2_debug_names_expand_symtabs_for_function)
(dw2_debug_names_expand_symtabs_matching, dwarf2_debug_names_functions):
(dwarf2_initialize_objfile): Return also elf_sym_fns_debug_names.
(debug_names::djb_hash): Rename it to dwarf5_djb_hash.
(debug_names::build): Update djb_hash caller.
(write_debug_names): Move out and rename augmentation to
* elfread.c (elf_sym_fns_debug_names): New.
* psymtab.h (dwarf2_debug_names_functions): New declaration.
* symfile.h (struct dwarf2_debug_sections): Add debug_names and
* xcoffread.c (dwarf2_xcoff_names): Add debug_names and debug_aranges.

2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
    Pedro Alves  <palves@redhat.com>

* gdb.base/maint.exp (check for .gdb_index): Check also for
* gdb.dlang/watch-loc.c (.debug_aranges): New.
* gdb.dwarf2/dw2-case-insensitive-debug.S: Likewise.
* gdb.dwarf2/gdb-index.exp (check if index present, .gdb_index used)
(.gdb_index used after symbol reloading): Support also .debug_names.
* gdb.mi/dw2-ref-missing-frame-func.c (.debug_aranges): New.
Sergio Durigan Junior
Fix thinko on dtrace-probe.c:dtrace_process_dof_probe
While investigating PR gdb/22557 ("Regression:
gdb.base/dtrace-probe.exp"), I noticed that the code is wrongly
declaring a new "expression_up" variable inside the TRY block in
"dtrace_process_dof_probe".  This causes the outter "expr" variable to
be empty, which may have an impact later when evaluating the

This commit fixes that.  Unfortunately the script used to test DTrace
probes (gdb/testsuite/lib/pdtrace.in) is not very reliable so I cannot
say whether this commit fixes the PR mentioned above.  Nonetheless,
it's an obvious fix and should go in.

2017-12-08  Sergio Durigan Junior  <sergiodj@redhat.com>

* dtrace-probe.c (dtrace_process_dof_probe): Do not declare a new
"expression_up" inside the TRY block.
GDB Administrator
Automatic date update in version.in
GDB Administrator