public inbox for gdb-testers@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] Share proc get_var_address
@ 2016-10-13 15:27 sergiodj+buildbot
  2016-10-13 15:27 ` Failures on Fedora-x86_64-native-gdbserver-m32, branch master sergiodj+buildbot
                   ` (11 more replies)
  0 siblings, 12 replies; 4383+ messages in thread
From: sergiodj+buildbot @ 2016-10-13 15:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5ad9dba7519caa3e6193c87699ae37e24d0fe05c ***

Author: Yao Qi <yao.qi@linaro.org>
Branch: master
Commit: 5ad9dba7519caa3e6193c87699ae37e24d0fe05c

Share proc get_var_address

This patch moves proc get_var_address into lib/gdb.exp, and remove the
duplicate copy in gdb.base/*.exp files.

gdb/testsuite:

2016-10-13  Yao Qi  <yao.qi@linaro.org>

	* gdb.base/code_elim.exp (get_var_address): Remove.
	* gdb.base/relocate.exp: Likewise.
	* gdb.base/shreloc.exp: Likewise.
	* lib/gdb.exp (get_var_address): New.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] valops.c: Some more gdb::array_view
@ 2018-11-21 13:51 sergiodj+buildbot
  2018-11-21 20:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-21 13:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 85cca2bcbc7833b33d4b61d7b7e0e75b9afa063b ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 85cca2bcbc7833b33d4b61d7b7e0e75b9afa063b

valops.c: Some more gdb::array_view

This commit replaces some more use of pointer+length pairs in the
overload resolution code with gdb::array_view.

find_oload_champ's interface is simplified/normalized: the xmethods
parameter is converted from std::vector to array pointer, and then the
num_fns parameter is always passed in, no matter the array which is
non-NULL.  I tweaked the formatting of callers a little bit here and
there so that the 3 optional parameters are all in the same line.  (I
tried making the 3 optional array parameters be array_views, but the
resulting code didn't look as nice.)

gdb/ChangeLog:
2018-11-21  Pedro Alves  <palves@redhat.com>

	* valops.c (find_method_list): Replace pointer and length
	parameters with an gdb::array_view.  Adjust.
	(value_find_oload_method_list): Likewise.
	(find_overload_match): Use gdb::array_view for methods list.
	Adjust to find_oload_champ interface change.
	(find_oload_champ): 'xm_worker_vec' parameter now a pointer/array.
	'num_fns' parameter now a size_t.  Eliminate 'fn_count' local.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] valops.c: Overload resolution code: Rename parameters/locals
@ 2018-11-21 14:05 sergiodj+buildbot
  2018-11-21 20:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-21 14:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 38139a9681a32e92f5c5b8437875d2726c009841 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 38139a9681a32e92f5c5b8437875d2726c009841

valops.c: Overload resolution code: Rename parameters/locals

While looking over this code, I thought the names of the parameters to
find_oload_champ and related functions and locals were a bit too
cryptic.  For example, FN_LIST holds methods, not free functions.
Free-functions are in OLOAD_SYMS.

This patch renames parameters/variables to the more obvious
methods/xmethods/functions instead.

gdb/ChangeLog:
2018-11-21  Pedro Alves  <palves@redhat.com>

	* valops.c (find_method_list, value_find_oload_method_list)
	(find_overload_match, find_oload_champ): Rename parameters and
	locals.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix linking MSP430 files created by gcc's LTO optimizer.
@ 2018-11-21 17:05 sergiodj+buildbot
  2018-11-21 23:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-21 17:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ca94519e70c39fca1d6ea93b8604349111522a8b ***

Author: Jozef Lawrynowicz <jozef.l@mittosystems.com>
Branch: master
Commit: ca94519e70c39fca1d6ea93b8604349111522a8b

Fix linking MSP430 files created by gcc's LTO optimizer.

When invoking GCC with "-g -flto", the compiler will create LTO objects
with debug information. The objects created are "simple ELF" objects (see
libiberty/simple-object-elf.c) and do not have target-specific sections.

When the MSP430 linker sees one of these objects without a .MSP430.attributes
section it errors:

> error: /tmp/cc4LhbEI.ltrans0.ltrans.o uses MSP430X instructions but /tmp/ccynqIwudebugobj uses unknown
> error: /tmp/cc4LhbEI.ltrans0.ltrans.o uses the small code model whereas /tmp/ccynqIwudebugobj uses the unknown code model
> error: /tmp/cc4LhbEI.ltrans0.ltrans.o uses the small data model whereas /tmp/ccynqIwudebugobj uses the unknown data model
> error: /tmp/cc4LhbEI.ltrans0.ltrans.o uses the small code model but /tmp/ccynqIwudebugobj uses the unknown data model
> failed to merge target specific data of file /tmp/cc4LhbEI.ltrans0.ltrans.o

The following patch allows these debug LTO objects to be linked with other
MSP430 objects even if they do not have a .MSP430.attributes section.

bfd	* elf32-msp430.c (elf32_msp430_merge_mspabi_attributes): Do not
	error when .MSP430.attributes section is missing from objects
	created by LTO.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] C++ify badness_vector, fix leaks
@ 2018-11-21 17:24 sergiodj+buildbot
  2018-11-21 18:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-21 17:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 82ceee50146563a61ed19f4ad585d39636a6dfa8 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 82ceee50146563a61ed19f4ad585d39636a6dfa8

C++ify badness_vector, fix leaks

badness_vector is currently an open coded vector.  This reimplements
it as a std::vector.

This fixes a few leaks as well:

 - find_oload_champ is leaking every badness vector calculated bar the
   one returned.

 - bv->rank is always leaked, since callers of rank_function only
   xfree the badness_vector pointer, not bv->rank.

gdb/ChangeLog:
2018-11-21  Pedro Alves  <palves@redhat.com>

	* gdbtypes.c (compare_badness): Change type of parameters to const
	reference.  Adjust to badness_vector being a std::vector now.
	(rank_function): Adjust to badness_vector being a std::vector now.
	* gdbtypes.h (badness_vector): Now a typedef to std::vector.
	(LENGTH_MATCH): Delete.
	(compare_badness): Change type of parameters to const reference.
	(rank_function): Return a badness_vector by value now.
	(find_overload_match): Adjust to badness_vector being a
	std::vector now.  Remove cleanups.
	(find_oload_champ_namespace): 'oload_champ_bv' parameter now a
	badness_vector pointer.
	(find_oload_champ_namespace_loop): 'oload_champ_bv' parameter now
	a badness_vector pointer.  Adjust to badness_vector being a
	std::vector now.  Remove cleanups.
	(find_oload_champ): 'oload_champ_bv' parameter now
	a badness_vector pointer.  Adjust to badness_vector being a
	std::vector now.  Remove cleanups.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make command-repeat work after gdb.execute
@ 2018-11-21 17:41 sergiodj+buildbot
  2018-11-22  0:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-21 17:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1c97054b87495b008c6028d697deff61c9fb0b6e ***

Author: Benno Fnfstck <benno.fuenfstueck@gmail.com>
Branch: master
Commit: 1c97054b87495b008c6028d697deff61c9fb0b6e

Make command-repeat work after gdb.execute

Since commit

  56bcdbea2bed ("Let gdb.execute handle multi-line commands")

command repetition after using the `gdb.execute` Python function
fails (the previous command is not repeated anymore). This happens
because read_command_lines_1 sets dont_repeat, but the call to
prevent_dont_repeat in execute_gdb_command is later.

The fix is to move the call to prevent_dont_repeat to the beginning of
the function.

Tested on my laptop (ArchLinux-x86_64).

gdb/ChangeLog:

	PR python/23714
	* gdb/python/python.c (execute_gdb_command): Call
	prevent_dont_repeat earlier to avoid affecting dont_repeat.

gdb/testuite/ChangeLog:

	PR python/23714
	* gdb.python/python.exp: Test command repetition after
	gdb.execute.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] S12Z opcodes: Fix bug disassembling certain shift instructions.
@ 2018-11-21 21:16 sergiodj+buildbot
  2018-11-22  4:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-21 21:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 27f42a4ddb28514fde3d01083120674fc8c0c107 ***

Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: 27f42a4ddb28514fde3d01083120674fc8c0c107

S12Z opcodes: Fix bug disassembling certain shift instructions.

Shift and rotate instructions when the number of bit positions
was an immediate value greater than 1 were incorrectly disassembled.
This change fixes that problem and extends the test to check for
it.

gas/ChangeLog:

  testsuite/gas/s12z/shift.s: Add new test case.
  testsuite/gas/s12z/shift.d: Add expected result.

opcodes/ChangeLog:

  s12z-dis.c (print_insn_shift) [SB_REG_REG_N]: Enter special case
  if the postbyte matches the appropriate pattern.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Avoid find_thread_ptid with null_ptid
@ 2018-11-22 16:44 sergiodj+buildbot
  2018-11-22 17:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-22 16:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 151bb4a5059e73934f7bc61318efaaffe0c91b81 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 151bb4a5059e73934f7bc61318efaaffe0c91b81

Avoid find_thread_ptid with null_ptid

With a following patch, find_thread_ptid will first find the inferior
for the passed-in ptid, using find_inferior_pid, and then look for the
thread in that inferior's thread list.  If we pass down null_ptid to
find_thread_ptid then that means we'll end up passing 0 to
find_inferior_pid, which hits this assertion:

>   struct inferior *
>   find_inferior_pid (int pid)
>   {
>     struct inferior *inf;
>
>     /* Looking for inferior pid == 0 is always wrong, and indicative of
>	a bug somewhere else.  There may be more than one with pid == 0,
>	for instance.  */
>     gdb_assert (pid != 0);

This patch prepares for the change, by avoiding passing down null_ptid
to find_thread_ptid or to functions that naturally use it, such as the
target_pid_to_str call in inferior.c:add_inferior.  In that latter
case, the patch changes GDB output,

from:
 (gdb) add-inferior
 [New inferior 2 (process 0)]

to:
 (gdb) add-inferior
 [New inferior 2]

which seems like a good change to me.  It might not even make sense to
talk about "process" for the current target, for example.

The python_on_normal_stop change ends up avoiding looking up the
same thread twice (inferior_thread also does a look up).

gdb/ChangeLog:
2018-11-22  Pedro Alves  <palves@redhat.com>

	* cli/cli-interp.c (cli_on_user_selected_context_changed): Use
	inferior_thread instead of find_thread_ptid, and only when
	inferior_ptid is not null_ptid.
	* inferior.c (add_inferior): Don't include target_pid_to_str
	output when the inferior is not started.
	* python/py-inferior.c (python_on_normal_stop): Don't use
	find_thread_ptid.
	(tui_on_user_selected_context_changed): Use inferior_thread
	instead of find_thread_ptid, and only when inferior_ptid is not
	null_ptid.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc.
@ 2018-11-22 16:58 sergiodj+buildbot
  2018-11-22 20:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-22 16:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 080363310650c93ad8e93018bcb6760ba5d32d1c ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 080363310650c93ad8e93018bcb6760ba5d32d1c

Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc.

As preparation for multi-target, this patch makes each inferior have
its own thread list.

This isn't absolutely necessary for multi-target, but simplifies
things.  It originally stemmed from the desire to eliminate the
init_thread_list calls sprinkled around, plus it makes it more
efficient to iterate over threads of a given inferior (no need to
always iterate over threads of all inferiors).

We still need to iterate over threads of all inferiors in a number of
places, which means we'd need adjust the ALL_THREADS /
ALL_NON_EXITED_THREADS macros.  However, naively tweaking those macros
to have an extra for loop, like:

     #define ALL_THREADS (thr, inf) \
       for (inf = inferior_list; inf; inf = inf->next) \
	 for (thr = inf->thread_list; thr; thr = thr->next)

causes problems with code that does "break" or "continue" within the
ALL_THREADS loop body.  Plus, we need to declare the extra "inf" local
variable in order to pass it as temporary variable to ALL_THREADS
(etc.)

It gets even trickier when we consider extending the macros to filter
out threads matching a ptid_t and a target.  The macros become tricker
to read/write.  Been there.

An alternative (which was my next attempt), is to replace the
ALL_THREADS etc. iteration style with for_each_all_threads,
for_each_non_exited_threads, etc. functions which would take a
callback as parameter, which would usually be passed a lambda.
However, I did not find that satisfactory at all, because the
resulting code ends up a little less natural / more noisy to read,
write and debug/step-through (due to use of lambdas), and in many
places where we use "continue;" to skip to the next thread now need to
use "return;".  (I ran into hard to debug bugs caused by a
continue/return confusion.)

I.e., before:

    ALL_NON_EXITED_THREADS (tp)
      {
	if (tp->not_what_I_want)
	  continue;
	// do something
      }

would turn into:

    for_each_non_exited_thread ([&] (thread_info *tp)
      {
	if (tp->not_what_I_want)
	  return;
	// do something
      });

Lastly, the solution I settled with was to replace the ALL_THREADS /
ALL_NON_EXITED_THREADS / ALL_INFERIORS macros with (C++20-like) ranges
and iterators, such that you can instead naturaly iterate over
threads/inferiors using range-for, like e.g,.:

   // all threads, including THREAD_EXITED threads.
   for (thread_info *tp : all_threads ())
     { .... }

   // all non-exited threads.
   for (thread_info *tp : all_non_exited_threads ())
     { .... }

   // all non-exited threads of INF inferior.
   for (thread_info *tp : inf->non_exited_threads ())
     { .... }

The all_non_exited_threads() function takes an optional filter ptid_t as
parameter, which is quite convenient when we need to iterate over
threads matching that filter.  See e.g., how the
set_executing/set_stop_requested/finish_thread_state etc. functions in
thread.c end up being simplified.

Most of the patch thus is about adding the infrustructure for allowing
the above.  Later on when we get to actual multi-target, these
functions/ranges/iterators will gain a "target_ops *" parameter so
that e.g., we can iterate over all threads of a given target that
match a given filter ptid_t.

The only entry points users needs to be aware of are the
all_threads/all_non_exited_threads etc. functions seen above.  Thus,
those functions are declared in gdbthread.h/inferior.h.  The actual
iterators/ranges are mainly "internals" and thus are put out of view
in the new thread-iter.h/thread-iter.c/inferior-iter.h files.  That
keeps the gdbthread.h/inferior.h headers quite a bit more readable.

A common/safe-iterator.h header is added which adds a template that
can be used to build "safe" iterators, which are forward iterators
that can be used to replace the ALL_THREADS_SAFE macro and other
instances of the same idiom in future.

There's a little bit of shuffling of code between
gdbthread.h/thread.c/inferior.h in the patch.  That is necessary in
order to avoid circular dependencies between the
gdbthread.h/inferior.h headers.

As for the init_thread_list calls sprinkled around, they're all
eliminated by this patch, and a new, central call is added to
inferior_appeared.  Note how also related to that, there's a call to
init_wait_for_inferior in remote.c that is eliminated.
init_wait_for_inferior is currently responsible for discarding skipped
inline frames, which had to be moved elsewhere.  Given that nowadays
we always have a thread even for single-threaded processes, the
natural place is to delete a frame's inline frame info when we delete
the thread.  I.e., from clear_thread_inferior_resources.

gdb/ChangeLog:
2018-11-22  Pedro Alves  <palves@redhat.com>

	* Makefile.in (COMMON_SFILES): Add thread-iter.c.
	* breakpoint.c (breakpoints_should_be_inserted_now): Replace
	ALL_NON_EXITED_THREADS with all_non_exited_threads.
	(print_one_breakpoint_location): Replace ALL_INFERIORS with
	all_inferiors.
	* bsd-kvm.c: Include inferior.h.
	* btrace.c (btrace_free_objfile): Replace ALL_NON_EXITED_THREADS
	with all_non_exited_threads.
	* common/filtered-iterator.h: New.
	* common/safe-iterator.h: New.
	* corelow.c (core_target_open): Don't call init_thread_list here.
	* darwin-nat.c (thread_info_from_private_thread_info): Replace
	ALL_THREADS with all_threads.
	* fbsd-nat.c (fbsd_nat_target::resume): Replace
	ALL_NON_EXITED_THREADS with inf->non_exited_threads.
	* fbsd-tdep.c (fbsd_make_corefile_notes): Replace
	ALL_NON_EXITED_THREADS with inf->non_exited_threads.
	* fork-child.c (postfork_hook): Don't call init_thread_list here.
	* gdbarch-selftests.c (register_to_value_test): Adjust.
	* gdbthread.h: Don't include "inferior.h" here.
	(struct inferior): Forward declare.
	(enum step_over_calls_kind): Moved here from inferior.h.
	(thread_info::deletable): Definition moved to thread.c.
	(find_thread_ptid (inferior *, ptid_t)): Declare.
	(ALL_THREADS, ALL_THREADS_BY_INFERIOR, ALL_THREADS_SAFE): Delete.
	Include "thread-iter.h".
	(all_threads, all_non_exited_threads, all_threads_safe): New.
	(any_thread_p): Declare.
	(thread_list): Delete.
	* infcmd.c (signal_command): Replace ALL_NON_EXITED_THREADS with
	all_non_exited_threads.
	(proceed_after_attach_callback): Delete.
	(proceed_after_attach): Take an inferior pointer instead of an
	integer PID.  Adjust to use range-for.
	(attach_post_wait): Pass down inferior pointer instead of pid.
	Use range-for instead of ALL_NON_EXITED_THREADS.
	(detach_command): Remove init_thread_list call.
	* inferior-iter.h: New.
	* inferior.c (struct delete_thread_of_inferior_arg): Delete.
	(delete_thread_of_inferior): Delete.
	(delete_inferior, exit_inferior_1): Use range-for with
	inf->threads_safe() instead of iterate_over_threads.
	(inferior_appeared): Call init_thread_list here.
	(discard_all_inferiors): Use all_non_exited_inferiors.
	(find_inferior_id, find_inferior_pid): Use all_inferiors.
	(iterate_over_inferiors): Use all_inferiors_safe.
	(have_inferiors, number_of_live_inferiors): Use
	all_non_exited_inferiors.
	(number_of_inferiors): Use all_inferiors and std::distance.
	(print_inferior): Use all_inferiors.
	* inferior.h: Include gdbthread.h.
	(enum step_over_calls_kind): Moved to gdbthread.h.
	(struct inferior) <thread_list>: New field.
	<threads, non_exited_threads, threads_safe>: New methods.
	(ALL_INFERIORS): Delete.
	Include "inferior-iter.h".
	(ALL_NON_EXITED_INFERIORS): Delete.
	(all_inferiors_safe, all_inferiors, all_non_exited_inferiors): New
	functions.
	* inflow.c (child_interrupt, child_pass_ctrlc): Replace
	ALL_NON_EXITED_THREADS with all_non_exited_threads.
	* infrun.c (follow_exec): Use all_threads_safe.
	(clear_proceed_status, proceed): Use all_non_exited_threads.
	(init_wait_for_inferior): Don't clear inline frame state here.
	(infrun_thread_stop_requested, for_each_just_stopped_thread): Use
	all_threads instead of ALL_NON_EXITED_THREADS.
	(random_pending_event_thread): Use all_non_exited_threads instead
	of ALL_NON_EXITED_THREADS.  Use a lambda for repeated code.
	(clean_up_just_stopped_threads_fsms): Use all_non_exited_threads
	instead of ALL_NON_EXITED_THREADS.
	(handle_no_resumed): Use all_non_exited_threads instead of
	ALL_NON_EXITED_THREADS.  Use all_inferiors instead of
	ALL_INFERIORS.
	(restart_threads, switch_back_to_stepped_thread): Use
	all_non_exited_threads instead of ALL_NON_EXITED_THREADS.
	* linux-nat.c (check_zombie_leaders): Replace ALL_INFERIORS with
	all_inferiors.
	(kill_unfollowed_fork_children): Use inf->non_exited_threads
	instead of ALL_NON_EXITED_THREADS.
	* linux-tdep.c (linux_make_corefile_notes): Use
	inf->non_exited_threads instead of ALL_NON_EXITED_THREADS.
	* linux-thread-db.c (thread_db_target::update_thread_list):
	Replace ALL_INFERIORS with all_inferiors.
	(thread_db_target::thread_handle_to_thread_info): Use
	inf->non_exited_threads instead of ALL_NON_EXITED_THREADS.
	* mi/mi-interp.c (multiple_inferiors_p): New.
	(mi_on_resume_1): Simplify using all_non_exited_threads and
	multiple_inferiors_p.
	* mi/mi-main.c (mi_cmd_thread_list_ids): Use all_non_exited_threads
	instead of ALL_NON_EXITED_THREADS.
	* nto-procfs.c (nto_procfs_target::open): Don't call
	init_thread_list here.
	* record-btrace.c (record_btrace_target_open)
	(record_btrace_target::stop_recording)
	(record_btrace_target::close)
	(record_btrace_target::record_is_replaying)
	(record_btrace_target::resume, record_btrace_target::wait)
	(record_btrace_target::record_stop_replaying): Use
	all_non_exited_threads instead of ALL_NON_EXITED_THREADS.
	* record-full.c (record_full_wait_1): Use all_non_exited_threads
	instead of ALL_NON_EXITED_THREADS.
	* regcache.c (cooked_read_test): Remove reference to global
	thread_list.
	* remote-sim.c (gdbsim_target::create_inferior): Don't call
	init_thread_list here.
	* remote.c (remote_target::update_thread_list): Use
	all_threads_safe instead of ALL_NON_EXITED_THREADS.
	(remote_target::process_initial_stop_replies): Replace
	ALL_INFERIORS with all_non_exited_inferiors and use
	all_non_exited_threads instead of ALL_NON_EXITED_THREADS.
	(remote_target::open_1): Don't call init_thread_list here.
	(remote_target::append_pending_thread_resumptions)
	(remote_target::remote_resume_with_hc): Use all_non_exited_threads
	instead of ALL_NON_EXITED_THREADS.
	(remote_target::commit_resume)
	(remote_target::remove_new_fork_children): Replace ALL_INFERIORS
	with all_non_exited_inferiors and use all_non_exited_threads
	instead of ALL_NON_EXITED_THREADS.
	(remote_target::kill_new_fork_children): Use
	all_non_exited_threads instead of ALL_NON_EXITED_THREADS.  Remove
	init_thread_list and init_wait_for_inferior calls.
	(remote_target::remote_btrace_maybe_reopen)
	(remote_target::thread_handle_to_thread_info): Use
	all_non_exited_threads instead of ALL_NON_EXITED_THREADS.
	* target.c (target_terminal::restore_inferior)
	(target_terminal_is_ours_kind): Replace ALL_INFERIORS with
	all_non_exited_inferiors.
	* thread-iter.c: New file.
	* thread-iter.h: New file.
	* thread.c: Include "inline-frame.h".
	(thread_list): Delete.
	(clear_thread_inferior_resources): Call clear_inline_frame_state.
	(init_thread_list): Use all_threads_safe instead of
	ALL_THREADS_SAFE.  Adjust to per-inferior thread lists.
	(new_thread): Adjust to per-inferior thread lists.
	(add_thread_silent): Pass inferior to find_thread_ptid.
	(thread_info::deletable): New, moved from the header.
	(delete_thread_1): Adjust to per-inferior thread lists.
	(find_thread_global_id): Use inf->threads().
	(find_thread_ptid): Use find_inferior_ptid and pass inferior to
	find_thread_ptid.
	(find_thread_ptid(inferior*, ptid_t)): New overload.
	(iterate_over_threads): Use all_threads_safe.
	(any_thread_p): New.
	(thread_count): Use all_threads and std::distance.
	(live_threads_count): Use all_non_exited_threads and
	std::distance.
	(valid_global_thread_id): Use all_threads.
	(in_thread_list): Use find_thread_ptid.
	(first_thread_of_inferior): Adjust to per-inferior thread lists.
	(any_thread_of_inferior, any_live_thread_of_inferior): Use
	inf->non_exited_threads().
	(prune_threads, delete_exited_threads): Use all_threads_safe.
	(thread_change_ptid): Pass inferior pointer to find_thread_ptid.
	(set_resumed, set_running): Use all_non_exited_threads.
	(is_thread_state, is_stopped, is_exited, is_running)
	(is_executing): Delete.
	(set_executing, set_stop_requested, finish_thread_state): Use
	all_non_exited_threads.
	(print_thread_info_1): Use all_inferiors and all_threads.
	(thread_apply_all_command): Use all_non_exited_threads.
	(thread_find_command): Use all_threads.
	(update_threads_executing): Use all_non_exited_threads.
	* tid-parse.c (parse_thread_id): Use inf->threads.
	* x86-bsd-nat.c (x86bsd_dr_set): Use inf->non_exited_threads ().


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix follow_exec latent problem
@ 2018-11-22 18:39 sergiodj+buildbot
  2018-11-22 19:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-22 18:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c4c17fb0f5879d3f58c733a4139fa59817e8155e ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: c4c17fb0f5879d3f58c733a4139fa59817e8155e

Fix follow_exec latent problem

A following commit to make each inferior have its own thread list
exposes a problem with bf93d7ba99 ("Add thread after updating gdbarch
when exec'ing"), which is that we can't defer adding the thread
because that breaks try_open_exec_file which deep inside ends up
calling inferior_thread():

 #5  0x0000000000637c78 in internal_error(char const*, int, char const*, ...) (file=0xc151f8 "src/gdb/thread.c", line=165, fmt=0xc15180 "%s: Assertion `%s' failed.") at src/gdb/common/errors.c:55
 #6  0x00000000008a3d80 in inferior_thread() () at src/gdb/thread.c:165
 #7  0x0000000000456f91 in try_thread_db_load_1(thread_db_info*) (info=0x277eb00) at src/gdb/linux-thread-db.c:830
 #8  0x0000000000457554 in try_thread_db_load(char const*, int) (library=0xb01a4f "libthread_db.so.1", check_auto_load_safe=0)
     at src/gdb/linux-thread-db.c:1002
 #9  0x0000000000457861 in try_thread_db_load_from_sdir() () at src/gdb/linux-thread-db.c:1079
 #10 0x0000000000457b72 in thread_db_load_search() () at src/gdb/linux-thread-db.c:1134
 #11 0x0000000000457d29 in thread_db_load() () at src/gdb/linux-thread-db.c:1192
 #12 0x0000000000457e51 in check_for_thread_db() () at src/gdb/linux-thread-db.c:1244
 #13 0x0000000000457ed2 in thread_db_new_objfile(objfile*) (objfile=0x270ff60) at src/gdb/linux-thread-db.c:1273
 #14 0x000000000045a92e in std::_Function_handler<void (objfile*), void (*)(objfile*)>::_M_invoke(std::_Any_data const&, objfile*&&) (__functor=..., __args#0=@0x7ffef3efe140: 0x270ff60) at /usr/include/c++/7/bits/std_function.h:316
 #15 0x00000000007bbebf in std::function<void (objfile*)>::operator()(objfile*) const (this=0x24e1d18, __args#0=0x270ff60)
     at /usr/include/c++/7/bits/std_function.h:706
 #16 0x00000000007bba86 in gdb::observers::observable<objfile*>::notify(objfile*) const (this=0x117ce80 <gdb::observers::new_objfile>, args#0=0x270ff60) at src/gdb/common/observable.h:106
 #17 0x0000000000856000 in symbol_file_add_with_addrs(bfd*, char const*, symfile_add_flags, section_addr_info*, objfile_flags, objfile*) (abfd=0x1d7dae0, name=0x254bfc0 "/ho

The problem is latent currently because inferior_thread() at that
point manages to return a thread, even though it's the wrong one (of
the old inferior).

The problem originally fixed by bf93d7ba99 was:

    (...) we should avoid doing register reads
    after a process does an exec and before we've updated that inferior's
    gdbarch.  Otherwise, we may interpret the registers using the wrong
    architecture.

    (...) The call to "add_thread" done just after adding the inferior is
    problematic, because it ends up reading the registers (because the ptid
    is re-used, we end up doing a switch_to_thread to it, which tries to
    update stop_pc). (...)

The register-reading issue is no longer a problem nowadays, ever since
switch_to_thread stopped reading the stop_pc in git commit
f2ffa92bbce9 ("gdb: Eliminate the 'stop_pc' global").

So this commit basically reverts bf93d7ba99.

gdb/ChangeLog:
2018-11-22  Pedro Alves  <palves@redhat.com>

	* infrun.c (follow_exec) <set follow-exec new>: Add thread and
	switch to it before calling into try_open_exec_file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove declarations of is_running/is_stopped/is_exited
@ 2018-11-23 14:22 sergiodj+buildbot
  2018-11-23 15:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-23 14:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6af05e645ab7fbbb4e0b663f50febf052e6d09a0 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 6af05e645ab7fbbb4e0b663f50febf052e6d09a0

Remove declarations of is_running/is_stopped/is_exited

The recent commit 080363310650 ("Per-inferior thread list, thread
ranges/iterators, down with ALL_THREADS, etc.") removed the
definitions of is_running/is_stopped/is_exited but missed removing the
declarations.

gdb/ChangeLog:
2018-11-23  Pedro Alves  <palves@redhat.com>

	* gdbthread.h (enum thread_state): Move comments here.
	(is_running, is_stopped, is_exited): Remove declarations.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdbserver: AArch64: Remove cannot_fetch/store_register
@ 2018-11-23 14:34 sergiodj+buildbot
  2018-11-23 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-23 14:34 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5013824590f59374106007d4c9724d5767911d75 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 5013824590f59374106007d4c9724d5767911d75

gdbserver: AArch64: Remove cannot_fetch/store_register

The cannot store/fetch register functions are only used for checking
if a register can be accessed using PEEKUSER/POKEUSER.
The AArch64 port doesn't support this method of access, so remove the
unused functions.

gdb/gdbserver:
	* linux-aarch64-low.c (aarch64_cannot_store_register): Remove.
	(aarch64_cannot_fetch_register): Likewise.
	(struct linux_target_ops): Update references.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Re-fix leak in source.c (open_source_file).
@ 2018-11-24 12:23 sergiodj+buildbot
  2018-11-24 13:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-24 12:23 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5446094655df842abb4ababac39f34c6342e8da3 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 5446094655df842abb4ababac39f34c6342e8da3

Re-fix leak in source.c (open_source_file).

Leak fixed in '8e6a5953e1d Fix 4K leak in open_source_file' has been partially
undone by '2179fbc36d23 Return scoped_fd from open_source_file'. Re-add the
transfer of current s->fullname to the unique_xmalloc_ptr fullname given to
find_and_open_source.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove obsolete comments from field_fmt
@ 2018-11-25 23:04 sergiodj+buildbot
  2018-11-26  0:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-25 23:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b5b12e1dbe0f2739624f91621828df73ef55e900 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b5b12e1dbe0f2739624f91621828df73ef55e900

Remove obsolete comments from field_fmt

This removes some comments that I believe were made obsolete by the
recent change to cli_ui_out::do_field_fmt.  The comment in mi_ui_out
probably was just copy/paste, because I think aligning never made
sense in an MI context.

gdb/ChangeLog
2018-11-25  Tom Tromey  <tom@tromey.com>

	* ui-out.c (ui_out::field_fmt): Remove comment.
	* tui/tui-out.c (tui_ui_out::do_field_fmt): Remove comment.
	* mi/mi-out.c (mi_ui_out::do_field_fmt): Remove comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Implement timestamp'ed output on "make check"
@ 2018-11-25 23:41 sergiodj+buildbot
  2018-11-26  1:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-25 23:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f63c03b470036353c8c6c657e15f5ebd62ab67dd ***

Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: f63c03b470036353c8c6c657e15f5ebd62ab67dd

Implement timestamp'ed output on "make check"

It is unfortunately not uncommon to have tests hanging on some of the
BuildBot workers.  For example, the ppc64be/ppc64le+gdbserver builders
are especially in a bad state when it comes to testing GDB/gdbserver,
and we can have builds that take an absurd amount of time to
finish (almost 1 week for one single build, for example).

It may be hard to diagnose these failures, because sometimes we don't
have access to the faulty systems, and other times we're just too busy
to wait and check which test is actually hanging.  During one of our
conversations about the topic, someone proposed that it would be a
good idea to have a timestamp put together with stdout output, so that
we can come back later and examine which tests are taking too long to
complete.

Here's my proposal to do this.  The very first thing I tried to do was
to use "ts(1)" to achieve this feature, and it obviously worked, but
the problem is that I'm afraid "ts(1)" may not be widely available on
every system we support.  Therefore, I decided to implement a *very*
simple version of "ts(1)", in Python 3, which basically does the same
thing: iterate over the stdin lines, and prepend a timestamp onto
them.

As for testsuite/Makefile.in, the user can now specify two new
variables to enable timestamp'ed output: TS (which enables the
output), and TS_FORMAT (optional, used to specify another timestamp
format according to "strftime").

Here's an example of how the output looks like:

  ...
  [Nov 22 17:07:19] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/call-strs.exp ...
  [Nov 22 17:07:19] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/step-over-no-symbols.exp ...
  [Nov 22 17:07:20] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/all-architectures-6.exp ...
  [Nov 22 17:07:20] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/hashline3.exp ...
  [Nov 22 17:07:20] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/max-value-size.exp ...
  [Nov 22 17:07:20] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/quit-live.exp ...
  [Nov 22 17:07:46] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/paginate-bg-execution.exp ...
  [Nov 22 17:07:56] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp ...
  [Nov 22 17:07:56] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/gcore-relro.exp ...
  [Nov 22 17:07:56] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/watchpoint-delete.exp ...
  [Nov 22 17:07:56] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp ...
  [Nov 22 17:07:56] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/vla-sideeffect.exp ...
  [Nov 22 17:07:57] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/unload.exp ...
  ...

(What, gdb.base/quit-live.exp is taking 26 seconds to complete?!)

Output to stderr is not timestamp'ed, but I don't think that will be a
problem for us.  If it is, we can revisit the solution and extend it.

gdb/testsuite/ChangeLog:
2018-11-25  Sergio Durigan Junior  <sergiodj@redhat.com>

	* Makefile.in (TIMESTAMP): New variable.
	(check-single): Add $(TIMESTAMP) to the end of $(DO_RUNTEST)
	command.
	(check-single-racy): Likewise.
	(check/%.exp): Likewise.
	(check-racy/%.exp): Likewise.
	(workers/%.worker): Likewise.
	(build-perf): Likewise.
	(check-perf): Likewise.
	* README: Describe new "TS" and "TS_FORMAT" variables.
	* print-ts.py: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix Solaris build
@ 2018-11-26 14:27 sergiodj+buildbot
  2018-11-26 14:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-26 14:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 24bce9bbe510c9efa36c0f85fb2f8a93ec8b623e ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 24bce9bbe510c9efa36c0f85fb2f8a93ec8b623e

Fix Solaris build

The recent commit 080363310650 ("Per-inferior thread list, thread
ranges/iterators, down with ALL_THREADS, etc.") removed the
definitions of is_running/is_stopped/is_exited but missed updating a
couple uses of is_exited in Solaris-specific code.

Tested by Rainer Orth on amd64-pc-solaris2.11.

gdb/ChangeLog:
2018-11-26  Pedro Alves  <palves@redhat.com>

	* procfs.c (procfs_notice_thread): Replace uses of
	in_thread_list/is_exited with find_thread_ptid/THREAD_EXITED.
	* sol-thread.c (sol_thread_target::wait)
	(sol_update_thread_list_callback): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix spurious semicolon in sparc-linux-nat.c
@ 2018-11-26 22:26 sergiodj+buildbot
  2018-11-26 23:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-26 22:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ed2df75c51551cf9b44f7d94179849565ab5bdda ***

Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: ed2df75c51551cf9b44f7d94179849565ab5bdda

Fix spurious semicolon in sparc-linux-nat.c

Remove a semicolon that should not be there, as reported in PR 23917:

  CXX    sparc-linux-nat.o
/home/emaisin/src/binutils-gdb/gdb/sparc-linux-nat.c:39:3: error: expected unqualified-id before { token
   { sparc_store_inferior_registers (regcache, regnum); }
   ^

Tested by rebuilding the file manually (make sparc-linux-nat.o) in a
sparc64-linux-gnu build.

gdb/ChangeLog:

	PR gdb/23917
	* sparc-linux-nat.c (sparc_linux_nat_target): Remove extraneous
	semicolon.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Fix regression in Cortex A53 erratum when PIE. (PR ld/23904)
@ 2018-11-27 13:47 sergiodj+buildbot
  2018-11-27 15:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-27 13:47 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9fca35fc3486283562a7fcd9eb0ff845b0152d98 ***

Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 9fca35fc3486283562a7fcd9eb0ff845b0152d98

AArch64: Fix regression in Cortex A53 erratum when PIE. (PR ld/23904)

The fix for PR ld/22263 causes TLS relocations using ADRP to be relaxed
into MOVZ, however this causes issues for the erratum code.

The erratum code scans the input sections looking for ADRP instructions
and notes their location in the stream.

It then later tries to find them again in order to generate the linker
stubs.  Due to the relaxation it instead finds a MOVZ and hard aborts.

Since this relaxation is a valid one, and in which case the erratum no
longer applies, it shouldn't abort but instead just continue.

This changes the TLS relaxation code such that when it finds an ADRP and
it relaxes it, it removes the erratum entry from the work list by changing
the stub type into none so the stub is ignored.

The entry is not actually removed as removal is a more expensive operation
and we have already allocated the memory anyway.

The clearing is done for IE->LE and GD->LE relaxations, and a testcase is
added for the IE case. The GD case I believe to be impossible to get together
with the erratum sequence due to the required BL which would break the sequence.
However to cover all basis I have added the guard there as well.

build on native hardware and regtested on
  aarch64-none-elf, aarch64-none-elf (32 bit host),
  aarch64-none-linux-gnu, aarch64-none-linux-gnu (32 bit host)

Cross-compiled and regtested on
  aarch64-none-linux-gnu, aarch64_be-none-linux-gnu

Testcase in PR23940 tested and works as expected now and benchmarks ran on A53
showing no regressions and no issues.

bfd/ChangeLog:

	PR ld/23904
	* elfnn-aarch64.c (_bfd_aarch64_adrp_p): Use existing constants.
	(_bfd_aarch64_erratum_843419_branch_to_stub): Use _bfd_aarch64_adrp_p.
	(struct erratum_835769_branch_to_stub_clear_data): New.
	(_bfd_aarch64_erratum_843419_clear_stub): New.
	(clear_erratum_843419_entry): New.
	(elfNN_aarch64_tls_relax): Use it.
	(elfNN_aarch64_relocate_section): Pass input_section.
	(aarch64_map_one_stub): Handle branch type none as valid.

ld/ChangeLog:

	PR ld/23904
	* testsuite/ld-aarch64/aarch64-elf.exp: Add erratum843419_tls_ie.
	* testsuite/ld-aarch64/erratum843419_tls_ie.d: New test.
	* testsuite/ld-aarch64/erratum843419_tls_ie.s: New test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Initialize *uncompressed_align_pow_p to 0
@ 2018-11-27 15:46 sergiodj+buildbot
  2018-11-27 16:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-27 15:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 131a5a648d314cd15811158150573cb40eb3abd0 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 131a5a648d314cd15811158150573cb40eb3abd0

Initialize *uncompressed_align_pow_p to 0

Initialize *uncompressed_align_pow_p to 0 since *uncompressed_align_pow_p
is passed to bfd_is_section_compressed_with_header as uninitialized,

	PR binutils/23919
	* compress.c (bfd_is_section_compressed_with_header): Initialize
	*uncompressed_align_pow_p to 0.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] MIPS/LD: Continue processing with refused relocations in PIC code
@ 2018-11-27 17:21 sergiodj+buildbot
  2018-11-27 18:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-27 17:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT aff68bd0415c6f834cf1717865b5b44dea6b9ef5 ***

Author: Maciej W. Rozycki <macro@linux-mips.org>
Branch: master
Commit: aff68bd0415c6f834cf1717865b5b44dea6b9ef5

MIPS/LD: Continue processing with refused relocations in PIC code

Switch from `_bfd_error_handler' to `info->callbacks->einfo' with error
reporting concerning the use of position-dependent relocations such as
R_MIPS_HI16 or R_MIPS_26 in PIC code and continue processing so that any
subsequent link errors are also shown rather than the linker terminating
right away.  This can reduce user frustration where correcting one error
only reveals another one; instead all are shown together making them all
possible to investigate at once.  The use of the `%X' specifier causes
the linker to terminate unsuccessfully at the end of processing.

Also fix the message to say `cannot' rather than `can not'.

	bfd/
	* elfxx-mips.c (_bfd_mips_elf_check_relocs) <R_MIPS16_26>
	<R_MIPS_26, R_MICROMIPS_26_S1>: Use `info->callbacks->einfo'
	rather than `_bfd_error_handler' to report refused relocations
	in PIC code and continue processing.  Fix error message: `can
	not' -> `cannot'.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [ARM] Update knowledge of bfd architectures
@ 2018-11-27 19:07 sergiodj+buildbot
  2018-11-27 21:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-27 19:07 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b5ab31636d36e1252791cec179aa11ab9d9b87e9 ***

Author: Thomas Preud'homme <thomas.preudhomme@linaro.org>
Branch: master
Commit: b5ab31636d36e1252791cec179aa11ab9d9b87e9

[ARM] Update knowledge of bfd architectures

Commit c0c468d562649df0f695737262b6230b7a56a4bb updated bfd's knowledge
of Arm architectures to Armv5TEJ and later but missed the list of CPUs
recognized by objdump -d -m<cpu>.

.note.gnu.arm.ident related code is intentionally not updated as build
attributes are a better mechanism to express the ISA in a file. However
this patch adds tests for the existing code since no existing testcase
cover those codepaths. Since I've only ever managed for
bfd_arm_get_mach_from_notes () to have an effect by using objcopy on
a file with a note but no Arm build attribute, the tests make use of
both objcopy actions supported by run_dump_test which requires to have a
ld line as well.

Note that the CPU list in bfd/cpu-arm.c was simply copied over from
GAS' CPU list but sorted alphabetically as already done for existing
entries.

2018-11-27  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

bfd/
	* cpu-arm.c (processors): Add processors known to GAS but missing here
	and reindent.
	(bfd_arm_update_notes): Add comment explaining why the list of
	architectures in the switch should not be updated.
	(architectures): Likewise.

gas/
	* testsuite/gas/arm/cpu-arm1020.d: New testcase.
	* testsuite/gas/arm/cpu-arm1020e.d: Likewise.
	* testsuite/gas/arm/cpu-arm1020t.d: Likewise.
	* testsuite/gas/arm/cpu-arm1022e.d: Likewise.
	* testsuite/gas/arm/cpu-arm1026ej-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm1026ejs.d: Likewise.
	* testsuite/gas/arm/cpu-arm10e.d: Likewise.
	* testsuite/gas/arm/cpu-arm10t.d: Likewise.
	* testsuite/gas/arm/cpu-arm10tdmi.d: Likewise.
	* testsuite/gas/arm/cpu-arm1136j-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm1136jf-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm1136jfs.d: Likewise.
	* testsuite/gas/arm/cpu-arm1136js.d: Likewise.
	* testsuite/gas/arm/cpu-arm1156t2-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm1156t2f-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm1176jz-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm1176jzf-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm2.d: Likewise.
	* testsuite/gas/arm/cpu-arm250.d: Likewise.
	* testsuite/gas/arm/cpu-arm3.d: Likewise.
	* testsuite/gas/arm/cpu-arm6.d: Likewise.
	* testsuite/gas/arm/cpu-arm60.d: Likewise.
	* testsuite/gas/arm/cpu-arm600.d: Likewise.
	* testsuite/gas/arm/cpu-arm610.d: Likewise.
	* testsuite/gas/arm/cpu-arm620.d: Likewise.
	* testsuite/gas/arm/cpu-arm7.d: Likewise.
	* testsuite/gas/arm/cpu-arm70.d: Likewise.
	* testsuite/gas/arm/cpu-arm700.d: Likewise.
	* testsuite/gas/arm/cpu-arm700i.d: Likewise.
	* testsuite/gas/arm/cpu-arm710.d: Likewise.
	* testsuite/gas/arm/cpu-arm7100.d: Likewise.
	* testsuite/gas/arm/cpu-arm710c.d: Likewise.
	* testsuite/gas/arm/cpu-arm710t.d: Likewise.
	* testsuite/gas/arm/cpu-arm720.d: Likewise.
	* testsuite/gas/arm/cpu-arm720t.d: Likewise.
	* testsuite/gas/arm/cpu-arm740t.d: Likewise.
	* testsuite/gas/arm/cpu-arm7500.d: Likewise.
	* testsuite/gas/arm/cpu-arm7500fe.d: Likewise.
	* testsuite/gas/arm/cpu-arm7d.d: Likewise.
	* testsuite/gas/arm/cpu-arm7di.d: Likewise.
	* testsuite/gas/arm/cpu-arm7dm.d: Likewise.
	* testsuite/gas/arm/cpu-arm7dmi.d: Likewise.
	* testsuite/gas/arm/cpu-arm7m.d: Likewise.
	* testsuite/gas/arm/cpu-arm7t.d: Likewise.
	* testsuite/gas/arm/cpu-arm7tdmi-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm7tdmi.d: Likewise.
	* testsuite/gas/arm/cpu-arm8.d: Likewise.
	* testsuite/gas/arm/cpu-arm810.d: Likewise.
	* testsuite/gas/arm/cpu-arm9.d: Likewise.
	* testsuite/gas/arm/cpu-arm920.d: Likewise.
	* testsuite/gas/arm/cpu-arm920t.d: Likewise.
	* testsuite/gas/arm/cpu-arm922t.d: Likewise.
	* testsuite/gas/arm/cpu-arm926ej-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm926ej.d: Likewise.
	* testsuite/gas/arm/cpu-arm926ejs.d: Likewise.
	* testsuite/gas/arm/cpu-arm940t.d: Likewise.
	* testsuite/gas/arm/cpu-arm946e-r0.d: Likewise.
	* testsuite/gas/arm/cpu-arm946e-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm946e.d: Likewise.
	* testsuite/gas/arm/cpu-arm966e-r0.d: Likewise.
	* testsuite/gas/arm/cpu-arm966e-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm966e.d: Likewise.
	* testsuite/gas/arm/cpu-arm968e-s.d: Likewise.
	* testsuite/gas/arm/cpu-arm9e-r0.d: Likewise.
	* testsuite/gas/arm/cpu-arm9e.d: Likewise.
	* testsuite/gas/arm/cpu-arm9tdmi.d: Likewise.
	* testsuite/gas/arm/cpu-arm_any.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a12.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a15.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a17.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a32.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a35.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a5.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a53.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a55.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a57.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a7.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a72.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a73.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a75.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a76.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a8.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-a9.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-m0.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-m0plus.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-m1.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-m23.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-m3.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-m33.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-m4.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-m7.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-r4.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-r4f.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-r5.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-r52.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-r7.d: Likewise.
	* testsuite/gas/arm/cpu-cortex-r8.d: Likewise.
	* testsuite/gas/arm/cpu-ep9312.d: Likewise.
	* testsuite/gas/arm/cpu-exynos-m1.d: Likewise.
	* testsuite/gas/arm/cpu-fa526.d: Likewise.
	* testsuite/gas/arm/cpu-fa606te.d: Likewise.
	* testsuite/gas/arm/cpu-fa616te.d: Likewise.
	* testsuite/gas/arm/cpu-fa626.d: Likewise.
	* testsuite/gas/arm/cpu-fa626te.d: Likewise.
	* testsuite/gas/arm/cpu-fa726te.d: Likewise.
	* testsuite/gas/arm/cpu-fmp626.d: Likewise.
	* testsuite/gas/arm/cpu-i80200.d: Likewise.
	* testsuite/gas/arm/cpu-iwmmxt.d: Likewise.
	* testsuite/gas/arm/cpu-iwmmxt2.d: Likewise.
	* testsuite/gas/arm/cpu-marvell-pj4.d: Likewise.
	* testsuite/gas/arm/cpu-marvell-whitney.d: Likewise.
	* testsuite/gas/arm/cpu-mpcore.d: Likewise.
	* testsuite/gas/arm/cpu-mpcorenovfp.d: Likewise.
	* testsuite/gas/arm/cpu-sa1.d: Likewise.
	* testsuite/gas/arm/cpu-strongarm.d: Likewise.
	* testsuite/gas/arm/cpu-strongarm1.d: Likewise.
	* testsuite/gas/arm/cpu-strongarm110.d: Likewise.
	* testsuite/gas/arm/cpu-strongarm1100.d: Likewise.
	* testsuite/gas/arm/cpu-strongarm1110.d: Likewise.
	* testsuite/gas/arm/cpu-xgene1.d: Likewise.
	* testsuite/gas/arm/cpu-xgene2.d: Likewise.
	* testsuite/gas/arm/cpu-xscale.d: Likewise.
	* testsuite/gas/arm/nop-asm.s: Likewise.
	* testsuite/gas/arm/note-march-armv2.d: Likewise.
	* testsuite/gas/arm/note-march-armv2.s: Likewise.
	* testsuite/gas/arm/note-march-armv2a.d: Likewise.
	* testsuite/gas/arm/note-march-armv2a.s: Likewise.
	* testsuite/gas/arm/note-march-armv3.d: Likewise.
	* testsuite/gas/arm/note-march-armv3.s: Likewise.
	* testsuite/gas/arm/note-march-armv3m.d: Likewise.
	* testsuite/gas/arm/note-march-armv3m.s: Likewise.
	* testsuite/gas/arm/note-march-armv4.d: Likewise.
	* testsuite/gas/arm/note-march-armv4.s: Likewise.
	* testsuite/gas/arm/note-march-armv4t.d: Likewise.
	* testsuite/gas/arm/note-march-armv4t.s: Likewise.
	* testsuite/gas/arm/note-march-armv5.d: Likewise.
	* testsuite/gas/arm/note-march-armv5.s: Likewise.
	* testsuite/gas/arm/note-march-armv5t.d: Likewise.
	* testsuite/gas/arm/note-march-armv5t.s: Likewise.
	* testsuite/gas/arm/note-march-armv5te.d: Likewise.
	* testsuite/gas/arm/note-march-armv5te.d: Likewise.
	* testsuite/gas/arm/note-march-ep9312.d: Likewise.
	* testsuite/gas/arm/note-march-ep9312.s: Likewise.
	* testsuite/gas/arm/note-march-iwmmxt.d: Likewise.
	* testsuite/gas/arm/note-march-iwmmxt.s: Likewise.
	* testsuite/gas/arm/note-march-iwmmxt2.d: Likewise.
	* testsuite/gas/arm/note-march-iwmmxt2.s: Likewise.
	* testsuite/gas/arm/note-march-xscale.d: Likewise.
	* testsuite/gas/arm/note-march-xscale.s: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Add .insn CA support.
@ 2018-11-27 20:10 sergiodj+buildbot
  2018-11-27 22:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-27 20:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4765cd611992862c844e8f152c5dbaadaecc25ce ***

Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 4765cd611992862c844e8f152c5dbaadaecc25ce

RISC-V: Add .insn CA support.

	gas/
	* config/tc-riscv.c (validate_riscv_insn) <'F'>: Add support for CF6
	and CF2 operands.
	(riscv_ip) <'F'>: Likewise.
	* doc/c-riscv.texi (RISC-V-Formats): Add func6 abbreviation.  Use rs2
	instead of rs1 in CR description.  Add CA docs.
	* gas/testsuite/riscv/insn.s: Add use of .insn ca.
	* gas/testsuite/riscv/insn.d: Update to match.
	include/
	* opcode/riscv.h (OP_MASK_CFUNCT6, OP_SH_CFUNCT6): New.
	(OP_MASK_CFUNCT2, OP_SH_CFUNCT2): New.
	opcodes/
	* riscv-opc.c (ciw): Fix whitespace to align columns.
	(ca): New.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix use-after-free in gdbserver
@ 2018-11-29 18:14 sergiodj+buildbot
  2018-11-29 19:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-29 18:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d105de22fc385da878e8db44c9503a7f30419322 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d105de22fc385da878e8db44c9503a7f30419322

Fix use-after-free in gdbserver

-fsanitize=address pointed out a use-after-free in gdbserver.  In
particular, handle_detach could reference "process" after it was
deleted by detach_inferior.  Avoiding this also necessitated changing
target_ops::join to take a pid rather than a process_info*.

Tested by the buildbot using a few of the gdbserver builders.

gdb/gdbserver/ChangeLog
2018-11-29  Tom Tromey  <tom@tromey.com>

	* win32-low.c (win32_join): Take pid, not process.
	* target.h (struct target_ops) <join>: Change argument type.
	(join_inferior): Change argument name.
	* spu-low.c (spu_join): Take pid, not process.
	* server.c (handle_detach): Preserve pid before destroying
	process.
	* lynx-low.c (lynx_join): Take pid, not process.
	* linux-low.c (linux_join): Take pid, not process.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Add missing c.unimp instruction.
@ 2018-11-29 21:41 sergiodj+buildbot
  2018-11-29 22:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-29 21:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 12951a2f080abfd23d0aae0a9a5b2c322fd25c9e ***

Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 12951a2f080abfd23d0aae0a9a5b2c322fd25c9e

RISC-V: Add missing c.unimp instruction.

	opcodes/
	* riscv-opc.c (unimp): Mark compressed unimp as INSN_ALIAS.
	(c.unimp): New.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Implement the "gdb_signal_to/from_target" gdbarch methods for FreeBSD.
@ 2018-11-29 22:18 sergiodj+buildbot
  2018-11-30  0:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-29 22:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e61667ef1413b9fba1bb9dc78744329f8215de74 ***

Author: Rajendra SY <rajendra.sy@gmail.com>
Branch: master
Commit: e61667ef1413b9fba1bb9dc78744329f8215de74

Implement the "gdb_signal_to/from_target" gdbarch methods for FreeBSD.

This fixes failures in the gdb.base/exitsignal.exp test.

gdb/ChangeLog:

	PR gdb/23093
	* gdb/fbsd-tdep.c (fbsd_gdb_signal_from_target)
	(fbsd_gdb_signal_to_target): New.
	(fbsd_init_abi): Install gdbarch "signal_from_target" and
	"signal_to_target" methods.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove an abort in the bfd library and add a check for an integer overflow when mapping sections to segments.
@ 2018-11-30 12:13 sergiodj+buildbot
  2018-11-30 13:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 12:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT beab453223769279cc1cef68a1622ab8978641f7 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: beab453223769279cc1cef68a1622ab8978641f7

Remove an abort in the bfd library and add a check for an integer overflow when mapping sections to segments.

	PR 23932
	* elf.c (IS_CONTAINED_BY_LMA): Add a check for a negative section
	size.
	(rewrite_elf_program_header): If no sections are mapped into a
	segment return an error.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix a memory exhaustion bug when attempting to allocate room for an impossible number of program headers.
@ 2018-11-30 12:21 sergiodj+buildbot
  2018-11-30 14:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 12:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5f60af5d24d181371d67534fa273dd221df20c07 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 5f60af5d24d181371d67534fa273dd221df20c07

Fix a memory exhaustion bug when attempting to allocate room for an impossible number of program headers.

	* elfcode.h (elf_object_p): Check for corrupt input files with
	more program headers than can actually fit in the file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move test_target_ops to a separate file
@ 2018-11-30 16:37 sergiodj+buildbot
  2018-11-30 17:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 16:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c180496d2ac268c06c13600f729d02ca4266e6ea ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: c180496d2ac268c06c13600f729d02ca4266e6ea

Move test_target_ops to a separate file

There's no need to have all target.h users seeing this type.

Also helps with a follow up patch.

gdb/ChangeLog:
2018-11-30  Pedro Alves  <palves@redhat.com>

	* Makefile.in (COMMON_SFILES): Add test-target.c.
	* gdbarch-selftests.c: Include "test-target.h".
	* regcache.c: Include "test-target.h".
	* target.c (test_target_info, test_target_ops::info): Move to ...
	* test-target.c: ... this new file.
	* target.h (test_target_ops): Move to ...
	* test-target.h: ... this new file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert default_child_has_foo functions to process_stratum_target methods
@ 2018-11-30 17:25 sergiodj+buildbot
  2018-11-30 21:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 17:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f3d11a9a96465432c01678445fc2fe84f2ef94f7 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: f3d11a9a96465432c01678445fc2fe84f2ef94f7

Convert default_child_has_foo functions to process_stratum_target methods

This patch converts the default_child_has_foo functions to
process_stratum_target methods.  This simplifies "regular"
non-inf_child process_stratum targets, since they no longer have to
override the target_ops::has_foo methods to call the default_child_foo
functions.  A couple targets need to override the new defaults
(corelow and tracefiles), but it still seems like a good tradeoff,
since those are expected to be little different (target doesn't run).

gdb/ChangeLog:
2018-11-30  Pedro Alves  <palves@redhat.com>

	* corelow.c (core_target) <has_all_memory, has_execution>: New
	overrides.
	* inf-child.c (inf_child_target::has_all_memory)
	(inf_child_target::has_memory, inf_child_target::has_stack)
	(inf_child_target::has_registers)
	(inf_child_target::has_execution): Delete.
	* inf-child.h (inf_child_target) <has_all_memory, has_memory,
	has_stack, has_registers, has_execution>: Delete.
	* process-stratum-target.c
	(process_stratum_target::has_all_memory)
	(process_stratum_target::has_memory)
	(process_stratum_target::has_stack)
	(process_stratum_target::has_registers)
	(process_stratum_target::has_execution): New.
	* process-stratum-target.h (process_stratum_target)
	<has_all_memory, has_memory, has_stack, has_registers,
	has_execution>: New method overrides.
	* ravenscar-thread.c (ravenscar_thread_target) <has_all_memory,
	has_memory, has_stack, has_registers, has_execution>: Delete.
	* remote-sim.c (gdbsim_target) <has_stack, has_registers,
	has_execution>: Delete.
	* remote.c (remote_target) <has_all_memory, has_memory, has_stack,
	has_registers, has_execution>: Delete.
	* target.c (default_child_has_all_memory)
	(default_child_has_memory, default_child_has_stack)
	(default_child_has_registers, default_child_has_execution):
	Delete.
	* target.h (default_child_has_all_memory)
	(default_child_has_memory, default_child_has_stack)
	(default_child_has_registers, default_child_has_execution):
	Delete.
	* tracefile.h (tracefile_target) <has_execution>: New override.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] target_ops::to_stratum -> target_ops::stratum() virtual method
@ 2018-11-30 18:06 sergiodj+buildbot
  2018-11-30 22:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 18:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 66b4deae03e7a503f8c543aa198a8c010863135a ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 66b4deae03e7a503f8c543aa198a8c010863135a

target_ops::to_stratum -> target_ops::stratum() virtual method

Given that a target's stratum is a property of the type, and not of an
instance of the type, get rid of to_stratum data field and replace it
with a virtual method.

I.e., when we have e.g., 10 target remote instances active, there's no
need for each of the instances to have their own to_stratum copy.

gdb/ChangeLog:
2018-11-30  Pedro Alves  <palves@redhat.com>

	* aix-thread.c (aix_thread_target) <aix_thread_target>: Delete.
	<stratum>: New override.
	* bfd-target.c (aix_thread_target) <aix_thread_target>: Delete.
	<stratum>: New override.
	* bsd-uthread.c (bsd_uthread_target) <bsd_uthread_target>: Delete.
	<stratum>: New override.
	* exec.c (exec_target) <exec_target>: Delete.
	<stratum>: New override.
	* gdbarch-selftests.c (register_to_value_test): Adjust to use the
	stratum method instead of the to_stratum field.
	* linux-thread-db.c (thread_db_target) <thread_db_target>: Delete.
	<stratum>: New override.
	(thread_db_target::thread_db_target): Delete.
	* make-target-delegates (print_class): Don't print a ctor
	declaration.  Print a stratum method override declaration.
	* process-stratum-target.h (process_stratum_target)
	<process_stratum_target>: Delete.
	<stratum>: New override.
	* ravenscar-thread.c (ravenscar_thread_target)
	<ravenscar_thread_target>: Delete.
	<stratum>: New override.
	* record-btrace.c (record_btrace_target)
	<record_btrace_target>: Delete.
	<stratum>: New override.
	* record-full.c (record_full_base_target)
	<record_full_base_target>: Delete.
	<stratum>: New override.
	* record.c (record_disconnect, record_detach)
	(record_mourn_inferior, record_kill): Adjust to use the stratum
	method instead of the to_stratum field.
	* regcache.c (cooked_read_test, cooked_write_test): Likewise.
	* sol-thread.c (sol_thread_target)
	<sol_thread_target>: Delete.
	<stratum>: New override.
	* spu-multiarch.c (spu_multiarch_target)
	<spu_multiarch_target>: Delete.
	<stratum>: New override.
	* target-delegates.c: Regenerate.
	* target.c (target_stack::push, target_stack::unpush)
	(pop_all_targets_above, pop_all_targets_at_and_above)
	(info_target_command, target_require_runnable)
	(target_stack::find_beneath): Adjust to use the stratum method
	instead of the to_stratum field.
	(dummy_target::dummy_target): Delete.
	(dummy_target::stratum): New.
	(debug_target::debug_target): Delete.
	(debug_target::stratum): New.
	(maintenance_print_target_stack): Adjust to use the stratum method
	instead of the to_stratum field.
	* target.h (struct target_ops) <stratum>: New method.
	<to_stratum>: Delete.
	<is_pushed>: Adjust to use the stratum method
	instead of the to_stratum field.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Make some target description functions constant
@ 2018-11-30 18:26 sergiodj+buildbot
  2018-12-01  1:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 18:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0ff80bf7b9901b5e3c6805b99d30fd555f512d69 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 0ff80bf7b9901b5e3c6805b99d30fd555f512d69

gdb/riscv: Make some target description functions constant

Makes more of the interface related to fetching target descriptions
constant.

gdb/ChangeLog:

	* arch/riscv.h (riscv_create_target_description): Make return type
	const.
	* arch/riscv.c (riscv_create_target_description): Likewise.
	* riscv-tdep.c (riscv_find_default_target_description): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Add equality operators to riscv_gdb_features
@ 2018-11-30 18:29 sergiodj+buildbot
  2018-12-01  2:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 18:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 65a4b373267813ae5e47ac519da2e70d9c7e09d3 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 65a4b373267813ae5e47ac519da2e70d9c7e09d3

gdb/riscv: Add equality operators to riscv_gdb_features

Add '==' and '!=' operators for the struct riscv_gdb_features,
allowing a small simplification.

gdb/ChangeLog:

	* arch/riscv.h (riscv_gdb_features::operator==): New.
	(riscv_gdb_features::operator!=): New.
	* riscv-tdep.c (riscv_gdbarch_init): Make use of the inequality
	operator.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Create each unique target description only once
@ 2018-11-30 19:00 sergiodj+buildbot
  2018-12-01  3:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 19:00 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 634494366c515a89c4747d8a68a8da9218bb4969 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 634494366c515a89c4747d8a68a8da9218bb4969

gdb/riscv: Create each unique target description only once

GDB relies on the fact that if two target descriptions have the same
contents, then they will be the same object instance (having the same
address).  One place where this is a requirement is in
GDBARCH_LIST_LOOKUP_BY_INFO which is used to find previously created
gdbarch objects.

In GDBARCH_LIST_LOOKUP_BY_INFO a pointer comparison is made on the
gdbarch's target description, if the pointers are different then it is
assumed the gdbarches have different, non-compatible target
descriptions.

Previously we would create duplicate target descriptions in the belief
that RISCV_GDBARCH_INIT would spot this duplication and discard the
second instance.  However, this was incorrect, and instead we ended up
creating duplicate gdbarch objects.

With this commit every unique feature set will create one and only one
target description, the feature set and resulting target description
is then cached so that the same target description object can be
returned later.

Many other target avoid this problem by creating a small number of
named target descriptions, and returning one of these.  However, we
currently have 8 possible target descriptions (32 vs 64 bit for x-reg
and f-reg, and h/w or s/w float abi) and creating each of these just
to avoid a dynamic cache seems pointless.

gdb/ChangeLog:

	* arch/riscv.h (riscv_gdbarch_features::hash): New method.
	* arch/riscv.c (struct riscv_gdbarch_features_hasher): New.
	(riscv_tdesc_cache): New global.
	(riscv_create_target_description): Look in the cache before
	creating a new target description.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update the conditionals in fbsd-nat.h so they are always honored.
@ 2018-11-30 22:02 sergiodj+buildbot
  2018-12-01  6:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 22:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f8eb6a9e8986c6428de629b5538e431e1c04caf1 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: f8eb6a9e8986c6428de629b5538e431e1c04caf1

Update the conditionals in fbsd-nat.h so they are always honored.

Not all of the architecture-specific FreeBSD target files were
including the right headers to enable conditionals in fbsd-nat.h after
the C++ target conversion.  As a result, certain operations like 'info
auxv' and 'p $_siginfo' were not working for some native targets
(noticed on RISC-V).  Fix this in a couple of ways:

1) Declare fbsd_nat_target::xfer_partial unconditionally and only use
   conditionals in the function body for individual target objects.

   Originally this function was only used to read the ELF auxiliary
   vector, so the entire function was conditional on a macro required
   for that object (KERN_AUXV_PROC).  However, xfer_partial has since
   grown support for additional objects.  Making the function
   unconditional avoids needing to add the right header to fbsd-nat.h
   and allows each target object to use independent requirements.

   This did require using a more explicit conditional test for the
   $_siginfo support.  Removing the "outer" KERN_PROC_AUXV test
   enabled $_siginfo for all kernels with PT_LWPINFO, but some older
   kernels (FreeBSD 6.0) exposed PT_LWPINFO with a different siginfo
   format.  Instead use an explicit test for when the current siginfo
   format was adopted (shipped in FreeBSD 7.0).  This actually enables
   $_siginfo on a wider range of kernels as KERN_PROC_AUXV wasn't
   introduced until FreeBSD 9.1/10.0.

2) Include <sys/proc.h> in fbsd-nat.h for the definition of
   TDP_RFPPWAIT that governs support for fork following.

gdb/ChangeLog:

	* fbsd-nat.c [__FreeBSD_version >= 700009] (USE_SIGINFO): Macro
	defined.
	(union sigval32, struct siginfo32, fbsd_siginfo_size)
	(fbsd_convert_siginfo): Make conditional on USE_SIGINFO instead
	of KERN_PROC_AUXV and PT_LWPINFO.
	(fbsd_nat_target::xfer_partial): Define method unconditionally.
	Make TARGET_OBJECT_SIGNAL_INFO conditional on USE_SIGINFO.
	Make TARGET_OBJECT_AUXV conditional on KERN_PROC_AUXV.
	Make TARGET_OBJECT_FREEBSD_VMMAP and
	TARGET_OBJECT_FREEBSD_PS_STRINGS conditional on KERN_PROC_VMMAP
	and KERN_PROC_PS_STRINGS.
	* fbsd-nat.h: Include <sys/proc.h>.
	(fbsd_nat_target::xfer_partial): Declare method unconditionally.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix leak in linespec parser
@ 2018-11-30 22:26 sergiodj+buildbot
  2018-12-01  7:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 22:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4717cec4fe4cb3a086fb13161603112e8ded787e ***

Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: 4717cec4fe4cb3a086fb13161603112e8ded787e

Fix leak in linespec parser

Valgrind reports this leak:

  ==798== VALGRIND_GDB_ERROR_BEGIN
  ==798== 32 (24 direct, 8 indirect) bytes in 1 blocks are definitely lost in loss record 447 of 3,143
  ==798==    at 0x4C2C48C: operator new(unsigned long) (vg_replace_malloc.c:334)
  ==798==    by 0x51D401: linespec_parser_new(ls_parser*, int, language_defn const*, program_space*, symtab*, int, linespec_result*) (linespec.c:2756)
  ==798==    by 0x524BF7: decode_line_full(event_location const*, int, program_space*, symtab*, int, linespec_result*, char const*, char const*) (linespec.c:3271)
  ==798==    by 0x3E8893: parse_breakpoint_sals(event_location const*, linespec_result*) (breakpoint.c:9067)
  ==798==    by 0x3E4E7F: create_breakpoint(gdbarch*, event_location const*, char const*, int, char const*, int, int, bptype, int, auto_boolean, breakpoint_ops const*, int, int, int, unsigned int) (breakpoint.c:9248)
  ==798==    by 0x3E55F5: break_command_1(char const*, int, int) (breakpoint.c:9434)
  ==798==    by 0x40BA68: cmd_func(cmd_list_element*, char const*, int) (cli-decode.c:1888)
  ==798==    by 0x665300: execute_command(char const*, int) (top.c:630)
  ...

linespec_parser_new allocates a std::vector<symtab *> at line 2756, and stores
the pointer to this vector in PARSER_RESULT (parser)->file_symtabs.  At 3
different places in linespec.c, another std::vector is assigned to a
linespec->file_symtabs, without first deleting the current value.

The leak is fixed by assigning the vector itself instead of the pointer.
Everything should be moved, so there is no significant data copy
involved.

Tested on debian/amd64, + a bunch of tests re-run under valgrind
(including the test that throws an error).

gdb/ChangeLog:

	* linespec.c (symtab_vector_up): Remove.
	(symtabs_from_filename): Change return type to std::vector.
	(collect_symtabs_from_filename): Likewise.
	(create_sals_line_offset): Assign return value of
	collect_symtabs_from_filename to *ls->file_symtabs.
	(convert_explicit_location_to_linespec): Remove call to release.
	(parse_linespec): Likewise.
	(symtab_collector) <symtab_collector>: Remove initialization of
	m_symtabs.
	<release_symtabs>: Change return type to std::vector<symtab *>.
	<operator ()>: Adjust.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use kinfo_getfile to implement fdwalk on FreeBSD.
@ 2018-11-30 23:52 sergiodj+buildbot
  2018-12-01  8:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 23:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 93579f6f908fa6010b141fd5da2974d878869c80 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 93579f6f908fa6010b141fd5da2974d878869c80

Use kinfo_getfile to implement fdwalk on FreeBSD.

kinfo_getfile() requires a couple of system calls to fetch the list of
open file descriptors.  This can be much cheaper than invoking fstat
on all of the values from 0 to the open file resource limit maximum.

gdb/ChangeLog:

	* common/filestuff.c [HAVE_KINFO_GETFILE]: Include headers.
	(fdwalk) [HAVE_KINFO_GETFILE]: Use kinfo_getfile.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86: Delay setting the iplt section alignment
@ 2018-12-01 17:05 sergiodj+buildbot
  2018-12-03 18:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-01 17:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b44ee3a8cf21294eeb079ffbada7eeb559a9c6b4 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: b44ee3a8cf21294eeb079ffbada7eeb559a9c6b4

x86: Delay setting the iplt section alignment

Delay setting its alignment until we know it is non-empty.  Otherwise an
empty iplt section may change vma and lma of the following sections, which
triggers moving dot of the following section backwards, resulting in a
warning and section lma not being set properly.  It later leads to a
"File truncated" error.

bfd/

	PR ld/23930
	* elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Update
	the iplt section alignment if it is non-empty.
	(_bfd_x86_elf_link_setup_gnu_properties): Set plt.iplt_alignment
	and delay setting the iplt section alignment.
	* elfxx-x86.h (elf_x86_plt_layout): Add iplt_alignment.

ld/

	PR ld/23930
	* testsuite/ld-i386/i386.exp: Run pr23930.
	* testsuite/ld-i386/pr23930.d: New file.
	* testsuite/ld-x86-64/pr23930-32.t: Likewise.
	* testsuite/ld-x86-64/pr23930-x32.d: Likewise.
	* testsuite/ld-x86-64/pr23930.d: Likewise.
	* testsuite/ld-x86-64/pr23930.t: Likewise.
	* testsuite/ld-x86-64/pr23930a.s: Likewise.
	* testsuite/ld-x86-64/pr23930b.s: Likewise.
	* testsuite/ld-x86-64/x86-64.exp: Run pr23930 and pr23930-x32.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Accept version, supervisor ext and more than one NSE for -march.
@ 2018-12-03 23:16 sergiodj+buildbot
  2018-12-03 23:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-03 23:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1080bf78c05b220f5f4bbc5c50d6a0ef6490d738 ***

Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 1080bf78c05b220f5f4bbc5c50d6a0ef6490d738

RISC-V: Accept version, supervisor ext and more than one NSE for -march.

This patch moves all -march parsing logic into bfd, because we will use this
code in ELF attributes.

	bfd/
	* elfxx-riscv.h (RISCV_DONT_CARE_VERSION): New macro.
	(struct riscv_subset_t): New structure.
	(riscv_subset_t): New typedef.
	(riscv_subset_list_t): New structure.
	(riscv_release_subset_list): New prototype.
	(riscv_add_subset): Likewise.
	(riscv_lookup_subset): Likewise.
	(riscv_lookup_subset_version): Likewise.
	(riscv_release_subset_list): Likewise.
	* elfxx-riscv.c: Include safe-ctype.h.
	(riscv_parsing_subset_version): New function.
	(riscv_supported_std_ext): Likewise.
	(riscv_parse_std_ext): Likewise.
	(riscv_parse_sv_or_non_std_ext): Likewise.
	(riscv_parse_subset): Likewise.
	(riscv_add_subset): Likewise.
	(riscv_lookup_subset): Likewise.
	(riscv_lookup_subset_version): Likewise.
	(riscv_release_subset_list): Likewise.
	gas/
	* config/tc-riscv.c: Include elfxx-riscv.h.
	(struct riscv_subset): Removed.
	(riscv_subsets): Change type to riscv_subset_list_t.
	(riscv_subset_supports): Removed argument: xlen_required and move
	logic into libbfd.
	(riscv_multi_subset_supports): Removed argument: xlen_required.
	(riscv_clear_subsets): Removed.
	(riscv_add_subset): Ditto.
	(riscv_set_arch): Extract parsing logic into libbfd.
	(riscv_ip): Update argument for riscv_multi_subset_supports and
	riscv_subset_supports. Update riscv_subsets due to struct definition
	changed.
	(riscv_after_parse_args): Update riscv_subsets due to struct
	definition changed, update and argument for riscv_subset_supports.
	* testsuite/gas/riscv/empty.s: New.
	* testsuite/gas/riscv/march-fail-rv32ef.d: Likewise.
	* testsuite/gas/riscv/march-fail-rv32ef.l: Likewise.
	* testsuite/gas/riscv/march-fail-rv32i.d: Likewise.
	* testsuite/gas/riscv/march-fail-rv32i.l: Likewise.
	* testsuite/gas/riscv/march-fail-rv32iam.d: Likewise.
	* testsuite/gas/riscv/march-fail-rv32iam.l: Likewise.
	* testsuite/gas/riscv/march-fail-rv32ic.d: Likewise.
	* testsuite/gas/riscv/march-fail-rv32ic.l: Likewise.
	* testsuite/gas/riscv/march-fail-rv32icx2p.d: Likewise.
	* testsuite/gas/riscv/march-fail-rv32icx2p.l: Likewise.
	* testsuite/gas/riscv/march-fail-rv32imc.d: Likewise.
	* testsuite/gas/riscv/march-fail-rv32imc.l: Likewise.
	* testsuite/gas/riscv/march-fail-rv64I.d: Likewise.
	* testsuite/gas/riscv/march-fail-rv64I.l: Likewise.
	* testsuite/gas/riscv/march-fail-rv64e.d: Likewise.
	* testsuite/gas/riscv/march-fail-rv64e.l: Likewise.
	* testsuite/gas/riscv/march-ok-g2.d: Likewise.
	* testsuite/gas/riscv/march-ok-g2p0.d: Likewise.
	* testsuite/gas/riscv/march-ok-i2p0.d: Likewise.
	* testsuite/gas/riscv/march-ok-nse-with-version.: Likewise.d
	* testsuite/gas/riscv/march-ok-s-with-version.d: Likewise.
	* testsuite/gas/riscv/march-ok-s.d: Likewise.
	* testsuite/gas/riscv/march-ok-sx.d: Likewise.
	* testsuite/gas/riscv/march-ok-two-nse.d: Likewise.
	* testsuite/gas/riscv/march-ok-g2_p1.d: Likewise.
	* testsuite/gas/riscv/march-ok-i2p0m2_a2f2.d: Likewise.
	include/
	* opcode/riscv.h (riscv_opcode): Change type of xlen_requirement to
	unsigned.
	opcodes/
	* riscv-opc.c: Change the type of xlen, because type of
	xlen_requirement changed.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [aarch64] Add support for pointer authentication B key
@ 2018-12-05 19:40 sergiodj+buildbot
  2018-12-05 22:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-05 19:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3a67e1a6b4430374f3073e51bb19347d4c421cfe ***

Author: Sam Tebbs <sam.tebbs@arm.com>
Branch: master
Commit: 3a67e1a6b4430374f3073e51bb19347d4c421cfe

[aarch64] Add support for pointer authentication B key

Armv8.3-A has another key used in pointer authentication called the
B-key (other than the A-key that is already supported). In order for
stack unwinders to work it is necessary to be able to identify frames
that have been signed with the B-key rather than the A-key and it was
felt that keeping this as an augmentation character in the CIE was the
best bet. The DWARF extensions for ARM therefore propose to add a new
augmentation character 'B' to the CIE augmentation string and the
corresponding cfi directive ".cfi_b_key_frame". I've made the relevant
changes to GAS and LD to add support for B-key unwinding, which required
modifying LD to check for 'B' in the augmentation string, adding the
".cfi_b_key_frame" directive to GAS and adding a "pauth_key" field to
GAS's fde_entry and cie_entry structs.

The pointer authentication instructions will behave as NOPs on
architectures that don't support them, and so a check for the
architecture being assembled for is not necessary since there will be no
behavioural difference between augmentation strings with and without the
'B' character on such architectures.

2018-12-05  Sam Tebbs  <sam.tebbs@arm.com>

bfd/
	* elf-eh-frame.c (_bfd_elf_parse_eh_frame): Add check for 'B'.

gas/
	* dw2gencfi.c (struct cie_entry): Add tc_cie_entry_extras invocation.
	(alloc_fde_entry): Add tc_fde_entry_init_extra invocation.
	(output_cie): Add tc_output_cie_extra invocation.
	(select_cie_for_fde): Add tc_cie_fde_equivalent_extra and
	tc_cie_entry_init_extra invocation.
	(frch_cfi_data, cfa_save_data): Move to dwgencfi.h.
	* config/tc-aarch64.c (s_aarch64_cfi_b_key_frame): Declare.
	(md_pseudo_table): Add "cfi_b_key_frame".
	* config/tc-aarch64.h (tc_fde_entry_extras, tc_cie_entry_extras,
	tc_fde_entry_init_extra, tc_output_cie_extra,
	tc_cie_fde_equivalent_extra, tc_cie_entry_init_extra): Define.
	* dw2gencfi.h (struct fde_entry): Add tc_fde_entry_extras invocation.
	(pointer_auth_key): Define.
	(frch_cfi_data, cfa_save_data): Move from dwgencfi.c.
	* doc/c-aarch64.texi (.cfi_b_key_frame): Add documentation.
	* testsuite/gas/aarch64/(pac_ab_key.d, pac_ab_key.s): New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] opcodes/riscv: Hide '.L0 ' fake symbols
@ 2018-12-06 10:52 sergiodj+buildbot
  2018-12-06 11:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-06 10:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 884b49e3a91504b9c5528343823d67f4419b73bb ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 884b49e3a91504b9c5528343823d67f4419b73bb

opcodes/riscv: Hide '.L0 ' fake symbols

The RISC-V assembler generates fake labels with the name '.L0 ' as
part of the debug information (see
gas/config/tc-riscv.h:FAKE_LABEL_NAME).

The problem is that currently, when disassembling an object file, the
output looks like this (this is an example from the GDB testsuite, but
is pretty representative of anything with debug information):

  000000000000001e <main>:
    1e:   7179                    addi    sp,sp,-48
    20:   f406                    sd      ra,40(sp)
    22:   f022                    sd      s0,32(sp)
    24:   1800                    addi    s0,sp,48

  0000000000000026 <.L0 >:
    26:   87aa                    mv      a5,a0
    28:   feb43023                sd      a1,-32(s0)
    2c:   fcc43c23                sd      a2,-40(s0)
    30:   fef42623                sw      a5,-20(s0)

  0000000000000034 <.L0 >:
    34:   fec42783                lw      a5,-20(s0)
    38:   0007871b                sext.w  a4,a5
    3c:   678d                    lui     a5,0x3
    3e:   03978793                addi    a5,a5,57 # 3039 <.LASF30+0x2a9d>
    42:   02f71463                bne     a4,a5,6a <.L0 >

  0000000000000046 <.L0 >:
    46:   000007b7                lui     a5,0x0
    4a:   0007b783                ld      a5,0(a5) # 0 <need_malloc>
    4e:   6f9c                    ld      a5,24(a5)

  0000000000000050 <.L0 >:
    50:   86be                    mv      a3,a5
    52:   466d                    li      a2,27
    54:   4585                    li      a1,1
    56:   000007b7                lui     a5,0x0
    5a:   00078513                mv      a0,a5
    5e:   00000097                auipc   ra,0x0
    62:   000080e7                jalr    ra # 5e <.L0 +0xe>

  0000000000000066 <.L0 >:
    66:   4785                    li      a5,1
    68:   a869                    j       102 <.L0 >

  000000000000006a <.L0 >:
    6a:   000007b7                lui     a5,0x0
    6e:   00078513                mv      a0,a5
    72:   00000097                auipc   ra,0x0
    76:   000080e7                jalr    ra # 72 <.L0 +0x8>

The frequent repeated '.L0 ' labels are pointless, as they are
non-unique there's no way to match a use of '.L0 ' to its appearence
in the output, so we'd be better off just not printing it at all.
That's what this patch does by defining a 'symbol_is_valid' method for
RISC-V.  With this commit, the same disassembly now looks like this:

  000000000000001e <main>:
    1e:   7179                    addi    sp,sp,-48
    20:   f406                    sd      ra,40(sp)
    22:   f022                    sd      s0,32(sp)
    24:   1800                    addi    s0,sp,48
    26:   87aa                    mv      a5,a0
    28:   feb43023                sd      a1,-32(s0)
    2c:   fcc43c23                sd      a2,-40(s0)
    30:   fef42623                sw      a5,-20(s0)
    34:   fec42783                lw      a5,-20(s0)
    38:   0007871b                sext.w  a4,a5
    3c:   678d                    lui     a5,0x3
    3e:   03978793                addi    a5,a5,57 # 3039 <.LASF30+0x2a9d>
    42:   02f71463                bne     a4,a5,6a <.L4>
    46:   000007b7                lui     a5,0x0
    4a:   0007b783                ld      a5,0(a5) # 0 <need_malloc>
    4e:   6f9c                    ld      a5,24(a5)
    50:   86be                    mv      a3,a5
    52:   466d                    li      a2,27
    54:   4585                    li      a1,1
    56:   000007b7                lui     a5,0x0
    5a:   00078513                mv      a0,a5
    5e:   00000097                auipc   ra,0x0
    62:   000080e7                jalr    ra # 5e <main+0x40>
    66:   4785                    li      a5,1
    68:   a869                    j       102 <.L5>

  000000000000006a <.L4>:
    6a:   000007b7                lui     a5,0x0
    6e:   00078513                mv      a0,a5
    72:   00000097                auipc   ra,0x0
    76:   000080e7                jalr    ra # 72 <.L4+0x8>

In order to share the fake label between the assembler and the
libopcodes library, I've added some new defines RISCV_FAKE_LABEL_NAME
and RISCV_FAKE_LABEL_CHAR in include/opcode/riscv.h.  I could have
just moved FAKE_LABEL_NAME to the include file, however, I thnk this
would be confusing, someone working on the assembler would likely not
expect to find FAKE_LABEL_NAME defined outside of the assembler source
tree.  By introducing the RISCV_FAKE_LABEL_* defines I can leave the
assembler standard FAKE_LABEL_ defines in the assembler source, but
still share the RISCV_FAKE_LABEL_* with libopcodes.

gas/ChangeLog:

	* config/tc-riscv.h (FAKE_LABEL_NAME): Define as
	RISCV_FAKE_LABEL_NAME.
	(FAKE_LABEL_CHAR): Define as RISCV_FAKE_LABEL_CHAR.

include/ChangeLog:

	* dis-asm.h (riscv_symbol_is_valid): Declare.
	* opcode/riscv.h (RISCV_FAKE_LABEL_NAME): Define.
	(RISCV_FAKE_LABEL_CHAR): Define.

opcodes/ChangeLog:

        * disassembler.c (disassemble_init_for_target): Add RISC-V
        initialisation.
        * riscv-dis.c (riscv_symbol_is_valid): New function.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] sim/opcodes: Allow use of out of tree cgen source directory
@ 2018-12-06 12:57 sergiodj+buildbot
  2018-12-06 13:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-06 12:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7fb45a689543be75809a0513900d82f5bd859338 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 7fb45a689543be75809a0513900d82f5bd859338

sim/opcodes: Allow use of out of tree cgen source directory

When configuring with '--enbale-cgen-maint' the default for both the
opcodes/ and sim/ directories is to assume that the cgen source is
within the binutils-gdb source tree as binutils-gdb/cgen/.

In the old cvs days, this worked well, as cgen was just another
sub-module of the single cvs repository and could easily be checked
out within the binutils-gdb directory, and managed by cvs in the
normal way.

Now that binutils-gdb is in git, while cgen is still in cvs, placing
the cgen respository within the binutils-gdb tree is more troublesome,
and it would be nice if the two tools could be kept separate.

Luckily there is already some initial code in the configure.ac files
for both opcodes/ and sim/ to support having cgen be located outside
of the binutils-gdb tree, however, this was speculative code written
imagining a future where cgen would be built and installed to some
location.

Right now there is no install support for cgen, and so the configure
code in opcodes/ and sim/ doesn't really do anything useful.  In this
commit I repurpose this code to allow binutils-gdb to be configured so
that it can make use of a cgen source directory that is outside of the
binutils-gdb tree.

With this commit applied it is now possible to configure and build
binutils-gdb like this:

    /path/to/binutils-gdb/src/configure --enable-cgen-maint=/path/to/cgen/src/cgen/
    make all-opcodes
    make -C opcodes run-cgen-all

Just in case anyone is still using cgen inside the binutils-gdb tree,
I have left the default behaviour of '--enable-cgen-maint' (with no
parameter) unchanged, that is it looks for the cgen directory as
'binutils-gdb/cgen/'.

opcodes/ChangeLog:

	* configure.ac (enable-cgen-maint): Support passing path to cgen
	source tree.
	* configure: Regenerate.

sim/ChangeLog:

	* common/acinclude.m4 (enable-cgen-maint): Support passing path to
	cgen source tree.
	* cris/configure: Regenerate.
	* frv/configure: Regenerate.
	* iq2000/configure: Regenerate.
	* lm32/configure: Regenerate.
	* m32r/configure: Regenerate.
	* or1k/configure: Regenerate.
	* sh64/configure: Regenerate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] sim/cris: Fix references to cgen cpu directory
@ 2018-12-06 13:02 sergiodj+buildbot
  2018-12-06 15:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-06 13:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 23ebf37881dda7fcf9dd86125705a30b6e2084ce ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 23ebf37881dda7fcf9dd86125705a30b6e2084ce

sim/cris: Fix references to cgen cpu directory

Don't assume that cgen is located within the binutils-gdb tree.  We
already have CGEN_CPU_DIR and CPU_DIR defined, these are the cpu/
directory within cgen, and the cpu/ directory within binutils-cpu.

The cris target tries to find CPU_DIR relative to the cgen source
tree, which can be wrong when building with an out of tree cgen.

sim/cris/ChangeLog:

	* Makefile.in: Replace uses of CGEN_CPU_DIR with CPU_DIR, and
	remove the definition of CGEN_CPU_DIR.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR23952, memory leak in _bfd_generic_read_minisymbols
@ 2018-12-07 14:46 sergiodj+buildbot
  2018-12-07 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-07 14:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c2f5dc30afa34696f2da0081c4ac50b958ecb0e9 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: c2f5dc30afa34696f2da0081c4ac50b958ecb0e9

PR23952, memory leak in _bfd_generic_read_minisymbols

bfd/
	PR 23952
	* syms.c (_bfd_generic_read_minisymbols): Free syms before
	returning with zero symcount.
binutils/
	* nm.c (display_rel_file): Use xrealloc to increase minisyms
	for synthetic symbols.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix a (one shot small) leak in language.c
@ 2018-12-07 16:37 sergiodj+buildbot
  2018-12-07 17:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-07 16:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4a8110007bf58be329f108374e00ef8ddc1fe3ec ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 4a8110007bf58be329f108374e00ef8ddc1fe3ec

Fix a (one shot small) leak in language.c

Valgrind detects the following leak:
==28395== VALGRIND_GDB_ERROR_BEGIN
==28395== 5 bytes in 1 blocks are definitely lost in loss record 20 of 2,770
==28395==    at 0x4C2BE2D: malloc (vg_replace_malloc.c:299)
==28395==    by 0x41D9E7: xmalloc (common-utils.c:44)
==28395==    by 0x78BF39: xstrdup (xstrdup.c:34)
==28395==    by 0x51F1AC: _initialize_language() (language.c:1175)
==28395==    by 0x6B3356: initialize_all_files() (init.c:308)
==28395==    by 0x66D194: gdb_init(char*) (top.c:2159)
==28395==    by 0x554C11: captured_main_1 (main.c:863)
==28395==    by 0x554C11: captured_main (main.c:1167)
==28395==    by 0x554C11: gdb_main(captured_main_args*) (main.c:1193)
==28395==    by 0x29D837: main (gdb.c:32)
==28395==
==28395== VALGRIND_GDB_ERROR_END

This is a very small leak (1 block/5 bytes), happening only once
per GDB startup as far as I can see. But this fix make the nr of leaking
GDB in the testsuite decreasing from 628 to 566.

It is unclear why a xstrdup-ed value is assigned to 'language'
at initialization time, while a static "auto" string is assigned
as part of the set_language_command.
So, that shows that it is ok to initialize 'language' directly
with "auto".
Also, I cannot find any place where 'language' is xfree-d.
No leak was detected for 'range' and 'case_sensitive', but
similarly, no indication why a static string cannot be assigned.

Regression-tested on debian/x86_64.
Also, full testsuite run under valgrind, less tests leaking,
and no dangling pointer problem detected.

gdb/ChangeLog
2018-12-05  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* language.c (_initialize_language): Fix leak by assigning
	a static string to language.  Same for range and case_sensitive,
	even if no leak is detected for these variables.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] elf: Report property change when merging properties
@ 2018-12-07 16:59 sergiodj+buildbot
  2018-12-07 18:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-07 16:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d2ef37ebd9f771d06edf1fdea37970f60b242b2d ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: d2ef37ebd9f771d06edf1fdea37970f60b242b2d

elf: Report property change when merging properties

With merging properties, report property change in linker map file, like

Merging program properties

Removed property 0xc0010000 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (0x0) and /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o (0x0)
Removed property 0xc0000002 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (0x3) and x.o (not found)
Removed property 0xc0000000 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (not found) and /usr/lib64/libc_nonshared.a(elf-init.oS) (0x0)
Removed property 0xc0000001 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (not found) and /usr/lib64/libc_nonshared.a(elf-init.oS) (0x0)

bfd/

	* elf-properties.c (elf_find_and_remove_property): Add a
	bfd_boolean argument to indicate if the property should be
	removed.
	(elf_merge_gnu_property_list): Updated.  Report
	property change in linker map file.
	(elf_get_gnu_property_section_size): Skip property_remove
	properties.
	(elf_write_gnu_properties): Likewise.
	(_bfd_elf_link_setup_gnu_properties): Report property merge
	in linker map file.  Pass abfd to elf_merge_gnu_property_list.

include/

	* bfdlink.h (bfd_link_info): Add has_map_file.

ld/

	* NEWS: Updated for property change report.
	* ld.texi: Document property change report.
	* ldmain.c (main): Set link_info.has_map_file to TRUE when
	linker map file is used.
	* testsuite/ld-scripts/rgn-over1.d: Updated.
	* testsuite/ld-scripts/rgn-over2.d: Likewise.
	* testsuite/ld-scripts/rgn-over3.d: Likewise.
	* testsuite/ld-scripts/rgn-over4.d: Likewise.
	* testsuite/ld-scripts/rgn-over5.d: Likewise.
	* testsuite/ld-scripts/rgn-over6.d: Likewise.
	* testsuite/ld-scripts/rgn-over7.d: Likewise.
	* testsuite/ld-x86-64/property-x86-ibt1a-x32.d: Check linker map
	file.
	* testsuite/ld-x86-64/property-x86-ibt1a.d: Likewise.
	* testsuite/ld-x86-64/property-x86-ibt1a.map: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix gdb build on 32-bit hosts w/ --enable-64-bit-bfd
@ 2018-12-07 20:48 sergiodj+buildbot
  2018-12-07 21:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-07 20:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8bebfcda34f2ea883fa6b87e748ad8a5f72b352f ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 8bebfcda34f2ea883fa6b87e748ad8a5f72b352f

Fix gdb build on 32-bit hosts w/ --enable-64-bit-bfd

Building for x86_64/-m32 with --enable-64-bit-bfd, compilation fails
with:

 src/gdb/dwarf2read.c: In instantiation of gdb::array_view<const unsigned char> get_gdb_index_contents_from_section(objfile*, T*) [with T = dwarf2_per_objfile]:
 src/gdb/dwarf2read.c:6266:54:   required from here
 src/gdb/dwarf2read.c:6192:37: error: narrowing conversion of section->dwarf2_section_info::size from bfd_size_type {aka long long unsigned int} to size_t {aka unsigned int} inside { } [-Werror=narrowing]
    return {section->buffer, section->size};
			     ~~~~~~~~~^~~~

This fixes it.

gdb/ChangeLog:
2018-12-07  Pedro Alves  <palves@redhat.com>

	* dwarf2read.c (get_gdb_index_contents_from_section): Use
	gdb::make_array_view.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/or1k: Add linux debugging support
@ 2018-12-07 22:49 sergiodj+buildbot
  2018-12-08  0:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-07 22:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 42e151bf4cc66b8781f2b139c6da320095f9a045 ***

Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: 42e151bf4cc66b8781f2b139c6da320095f9a045

gdb/or1k: Add linux debugging support

Up until now OpenRISC GDB only has supported bare metal debugging.  This
patch adds linux userspace debugging and core dump analysis support.

The changes are loosely based on nios2 and riscv implementations.

This was tested with linux 4.20 core dumps for executables linked
against musl libc.

bfd/ChangeLog:

	* elf32-or1k.c (or1k_grok_prstatus): New function.
	(or1k_grok_psinfo): Likewise.

gdb/ChangeLog:

	* Makefile.in (ALL_TARGET_OBS): Add or1k-linux-tdep.o.
	* configure.tgt: Add or1k*-*-linux*.
	* or1k-linux-tdep.c: New file.
	* or1k-tdep.c (or1k_gdbarch_init): Call gdbarch_init_osabi.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/emacs/dir-locals: Update settings for c++-mode
@ 2018-12-08  0:24 sergiodj+buildbot
  2018-12-08  1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-08  0:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d9c859da9fff9de47a33f52d75a6fef2495b3fc1 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: d9c859da9fff9de47a33f52d75a6fef2495b3fc1

gdb/emacs/dir-locals: Update settings for c++-mode

The current .dir-locals file for GDB causes files that would usually
open in c-mode (for example, files ending in .c) to open in c++-mode.
However, all of the other settings applied for c-mode appear to get
reset when the file is switched over to c++-mode.

For example, we currently say:

 (c-mode . ((c-file-style . "GNU")
	    (mode . c++)
	    (indent-tabs-mode . t)
	    (tab-width . 8)
	    (c-basic-offset . 2)
	    (eval . (c-set-offset 'innamespace 0))
	    ))
 (c++-mode . ((eval . (when (fboundp 'c-toggle-comment-style)
			(c-toggle-comment-style 1)))))

So, when we enter c++-mode `indent-tabs-mode` is reset to its global
value, as are all of the other settings listed for c-mode.

This commit copies all of the settings (except the `mode` setting)
from the c-mode list to the c++-mode list.

The emacs documentation doesn't mention that `mode` causes this
resetting behaviour, so, in case this is an emacs bug, I'm using emacs
version 26.1.  Having the settings duplicated shouldn't cause any
problems except for a slight maintenance overhead.

gdb/ChangeLog:

	* .dir-locals.el: Copy most of the settings from c-mode over to
	c++-mode.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Merge forward-search/reverse-search, use gdb::def_vector, remove limit
@ 2018-12-08 16:16 sergiodj+buildbot
  2018-12-08 16:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-08 16:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 73e8dc90a8a94bc52e29596b1cc176b882fbbc8e ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 73e8dc90a8a94bc52e29596b1cc176b882fbbc8e

Merge forward-search/reverse-search, use gdb::def_vector, remove limit

Back in:

 commit 85ae1317add94adef4817927e89cff80b92813dd
 Author:     Stan Shebs <shebs@codesourcery.com>
 AuthorDate: Thu Dec 8 02:27:47 1994 +0000

	     * source.c: Various cosmetic changes.
	     (forward_search_command): Handle very long source lines correctly.

a buffer with a hard limit was converted to a heap buffer:

  @@ -1228,15 +1284,26 @@ forward_search_command (regex, from_tty)
     stream = fdopen (desc, FOPEN_RT);
     clearerr (stream);
     while (1) {
  -/* FIXME!!!  We walk right off the end of buf if we get a long line!!! */
  -    char buf[4096];            /* Should be reasonable??? */
  -    register char *p = buf;
  +    static char *buf = NULL;
  +    register char *p;
  +    int cursize, newsize;
  +
  +    cursize = 256;
  +    buf = xmalloc (cursize);
  +    p = buf;

However, reverse_search_command has the exact same problem, and that
wasn't fixed.  We still have that "we walk right off" comment...

Recently, the xmalloc above was replaced with a xrealloc, because as
can be seen above, that 'buf' variable above was a static local,
otherwise we'd be leaking.  This commit replaces that and the
associated manual buffer growing with a gdb::def_vector<char>.  I
don't think there's much point in reusing the buffer across command
invocations.

While doing this, I realized that reverse_search_command is almost
identical to forward_search_command.  So this commit factors out a
common helper function instead of duplicating a lot of code.

There are some tests for "forward-search" in gdb.base/list.exp, but
since they use the "search" alias, they were a bit harder to find than
expected.  That's now fixed, both by testing both variants, and by
adding some commentary.  Also, there are no tests for the
"reverse-search" command, so this commit adds some for that too.

gdb/ChangeLog:
2018-12-08  Pedro Alves  <palves@redhat.com>

	* source.c (forward_search_command): Rename to ...
	(search_command_helper): ... this.  Add 'forward' parameter.
	Tweak to use a gdb::def_vector<char> instead of a xrealloc'ed
	buffer.  Handle backward searches too.
	(forward_search_command, reverse_search_command): Reimplement by
	calling search_command_helper.

gdb/testsuite/ChangeLog:
2018-12-08  Pedro Alves  <palves@redhat.com>

	* gdb.base/list.exp (test_forward_search): Rename to ...
	(test_forward_reverse_search): ... this.  Also test reverse-search
	and the forward-search alias.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix leak by using td_ta_delete() to deregister target process and deallocate internal process handle.
@ 2018-12-08 17:30 sergiodj+buildbot
  2018-12-08 18:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-08 17:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a2419b98d90e89acbef47dbc7a9047f4580fe99d ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: a2419b98d90e89acbef47dbc7a9047f4580fe99d

Fix leak by using td_ta_delete() to deregister target process and deallocate internal process handle.

Valgrind reports the below leak:

==25327== VALGRIND_GDB_ERROR_BEGIN
==25327== 672 bytes in 1 blocks are definitely lost in loss record 2,759 of 3,251
==25327==    at 0x4C2E07C: calloc (vg_replace_malloc.c:752)
==25327==    by 0x7FDCB3E: ???
==25327==    by 0x532A7A: try_thread_db_load_1 (linux-thread-db.c:828)
==25327==    by 0x532A7A: try_thread_db_load(char const*, int) (linux-thread-db.c:997)
==25327==    by 0x53354D: try_thread_db_load_from_sdir (linux-thread-db.c:1074)
==25327==    by 0x53354D: thread_db_load_search (linux-thread-db.c:1129)
==25327==    by 0x53354D: thread_db_load() (linux-thread-db.c:1187)
==25327==    by 0x611AF1: operator() (functional:2127)
==25327==    by 0x611AF1: notify (observable.h:106)
==25327==    by 0x611AF1: symbol_file_add_with_addrs(bfd*, char const*, enum_flags<symfile_add_flag>, std::vector<other_sections, std::allocator<other_sections> >*, enum_flags<objfile_flag>, objfile*) (symfile.c:1158)
==25327==    by 0x5F5C4A: solib_read_symbols(so_list*, enum_flags<symfile_add_flag>) (solib.c:691)
==25327==    by 0x5F6A8B: solib_add(char const*, int, int) (solib.c:1003)
==25327==    by 0x5F6BF7: handle_solib_event() (solib.c:1281)
==25327==    by 0x3D0A94: bpstat_stop_status(address_space const*, unsigned long, thread_info*, target_waitstatus const*, bpstats*) (breakpoint.c:5417)
==25327==    by 0x4FF133: handle_signal_stop(execution_control_state*) (infrun.c:5874)
==25327==    by 0x502C29: handle_inferior_event_1 (infrun.c:5300)
==25327==    by 0x502C29: handle_inferior_event(execution_control_state*) (infrun.c:5335)
==25327==    by 0x5041DB: fetch_inferior_event(void*) (infrun.c:3868)
==25327==    by 0x4A1E7C: gdb_wait_for_event(int) (event-loop.c:859)
...

This leak is created because a call to td_ta_new allocates some resources
that must be freed with td_ta_delete, and that was missing.

With this patch, the nr of GDB executions leaking during regression tests
decreases further from 566 to 380.

Note that the gdbserver equivalent code is properly calling
td_ta_delete: see thread_db_mourn in thread-db.c.

Tests run natively on debian/amd64, and run under valgrind.

gdb/ChangeLog
2018-12-08  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* linux-thread-db.c (struct thread_db_info): Add td_ta_delete_p.
	(thread_db_err_str): Forward declare.
	(delete_thread_db_info): Call td_ta_delete_p if available.
	(try_thread_db_load_1): Acquire td_ta_delete address.
	* nat/gdb_thread_db.h (td_ta_delete_ftype): Declare.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix tid-reuse sometimes blocks for a very long (infinite?) time.
@ 2018-12-09 16:26 sergiodj+buildbot
  2018-12-09 16:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-09 16:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7a81c1e2d44c6eb11b2ea24dc71ee959ab3a5acd ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 7a81c1e2d44c6eb11b2ea24dc71ee959ab3a5acd

Fix tid-reuse sometimes blocks for a very long (infinite?) time.

A failure that seems to cause a long/infinite time is the following:

For a not clear reason, tid-reuse.c spawner thread sometimes gets an error:
     tid-reuse: /bd/home/philippe/gdb/git/build_moreaa/gdb/testsuite/../../../moreaa/gdb/testsuite/gdb.threads/tid-reuse.c:58: spawner_thread_func: Assertion `rc == 0' failed.

which causes a SIGABRT to be trapped by gdb, and tid-reuse does not reach the
after_count breakpoint:
  Thread 2 "tid-reuse" received signal SIGABRT, Aborted.
  [Switching to Thread 0x7ffff7518700 (LWP 10368)]
  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
  51	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
  (gdb) FAIL: gdb.threads/tid-reuse.exp: continue to breakpoint: after_count

After that, tid-reuse.exp gets the value of reuse_time, but this one kept its
initial value of -1 (as unsigned) :
  print reuse_time
  $1 = 4294967295
  (gdb) PASS: gdb.threads/tid-reuse.exp: get reuse_time

tid-reuse then dies, and the .exp script continues (with some FAIL)
till it executes:
  set timeout [expr $reuse_time * 2]

leading to the error:

  (gdb) ERROR: integer value too large to represent as non-long integer
      while executing
  "expect {
  -i exp8 -timeout 8589934590
          -re ".*A problem internal to GDB has been detected" {
              fail "$message (GDB internal error)"
              gdb_intern..."
      ("uplevel" body line 1)
      invoked from within
  "uplevel $body" ARITH IOVERFLOW {integer value too large to represent as non-long integer} integer value too large to represent as non-long integer
  ERROR: GDB process no longer exists

and then everything blocks.
This last 'GDB process no longer exists' is strange, as I still see the gdb
when this all blocks, e.g.
philippe 16058 31085  0 20:30 pts/15   00:00:00                         /bin/bash -c rootme=`pwd`; export rootme; srcdir=../../../binutils-gdb/gdb/testsuite ; export srcdir ; EXPECT=`if [
philippe 16386 16058  0 20:30 pts/15   00:00:00                           expect -- /usr/share/dejagnu/runtest.exp --status GDB_PARALLEL=yes --outdir=outputs/gdb.threads/tid-reuse gdb.thre
philippe 24848 16386  0 20:30 pts/20   00:00:00                             /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /bd/home/philip

This patch gives a default value of 60, so that if ever something wrong happens
in tid-reuse, then the value retrieved by the .exp script stays in a reasonable
range.

Simon verified the patch by:
"I replaced the pthread_create call with the value 1 to simulate a
failure, and the test succeeds to fail quickly with your patch applied.
Without your patch, I get the infinite hang that you describe."

Compared to V1:
As suggested by Pedro, this version checks the pthread calls return
code (in particular of pthread_create) and reports the failure reason,
instead of just aborting.

gdb/testsuite/ChangeLog

2018-12-09  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.threads/tid-reuse.c (REUSE_TIME_CAP): Declare as 60.
	(reuse_time): Initialize to REUSE_TIME_CAP.
	(check_rc): New function.
	(main): Use REUSE_TIME_CAP instead of hardcoded 60.
	Check pthread_create rc.
	(spawner_thread_func): Check pthread_create and pthread_join rc.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Remove whitespace before #include line
@ 2018-12-10 11:31 sergiodj+buildbot
  2018-12-10 12:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-10 11:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 69cb29528eaf96ed82c25283586a8cc914130439 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 69cb29528eaf96ed82c25283586a8cc914130439

gdb/riscv: Remove whitespace before #include line

This fixes an ARI warning in riscv-tdep.c that whitespace before a

gdb/ChangeLog:

	* riscv-tdep.c (riscv_register_name): Fix ARI warning by removing
	leading whitespace before #include line.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Update test to handle targets without an fpu
@ 2018-12-11 12:18 sergiodj+buildbot
  2018-12-11 13:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-11 12:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 99e1a184a791d30c09a86d6eca4528dc146c2c79 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 99e1a184a791d30c09a86d6eca4528dc146c2c79

gdb/riscv: Update test to handle targets without an fpu

The FPU is optional on RISC-V.  The gdb.base/float.exp test currently
assumes that an fpu is always available on RISC-V.  Update the test so
that this is not the case.

gdb/testsuite/ChangeLog:

	* gdb.base/float.exp: Handle RISC-V targets without an FPU.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix a failure in the libiberty testsuite by increasing the recursion limit to 2048.
@ 2018-12-11 12:53 sergiodj+buildbot
  2018-12-11 14:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-11 12:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 69799d67e8872dcd3feee81ed2ff0fc47beb52d7 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 69799d67e8872dcd3feee81ed2ff0fc47beb52d7

Fix a failure in the libiberty testsuite by increasing the recursion limit to 2048.

	PR 88409
include	* demangle.h (DEMANGLE_RECURSION_LIMIT): Increase to 2048.

binutils* NEWS: Note that recursion limit has increased to 2048.
	* doc/binutils.texi: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PATCH/OBVIOUS Remove various trailing spaces in linux-osdata.c
@ 2018-12-11 22:25 sergiodj+buildbot
  2018-12-11 23:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-11 22:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 326b0c1289f97a25f3846f1d1d8d32811bbd1789 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 326b0c1289f97a25f3846f1d1d8d32811bbd1789

PATCH/OBVIOUS Remove various trailing spaces in linux-osdata.c


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfd: xtensa: ignore overflow in hight part of const16 relocation
@ 2018-12-11 23:16 sergiodj+buildbot
  2018-12-12  2:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-11 23:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 00863b8e40a0afd0daf0925acf3f7c794dfd9c73 ***

Author: Max Filippov <jcmvbkbc@gmail.com>
Branch: master
Commit: 00863b8e40a0afd0daf0925acf3f7c794dfd9c73

bfd: xtensa: ignore overflow in hight part of const16 relocation

32-bit constants loaded by two const16 opcodes that involve relocation
(e.g. calculated as a sum of a symbol and a constant) may overflow,
resulting in linking error with the following message:

  dangerous relocation: const16: cannot encode: (_start+0x70000000)

They should wrap around instead. Limit const16 opcode immediate field to
16 least significant bits to implement this wrap around.

bfd/
2018-12-11  Max Filippov  <jcmvbkbc@gmail.com>

	* elf32-xtensa.c (elf_xtensa_do_reloc): Limit const16 opcode
	immediate field to 16 least significant bits.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Handle passing variadic floating point arguments
@ 2018-12-12 15:16 sergiodj+buildbot
  2018-12-12 16:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-12 15:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4de3d8d06673d130e256a6ad81e5df2e412934c1 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 4de3d8d06673d130e256a6ad81e5df2e412934c1

gdb/riscv: Handle passing variadic floating point arguments

This commit fixes some test failures in gdb.base/varargs.exp when
running on targets with floating point hardware.  Floating point
unnamed (variadic) arguments should be passed in integer registers
according to the abi.

After this commit I see no failures in gdb.base/varargs.exp on 32 or
64 bit targets with floating point hardware.

gdb/ChangeLog:

	* riscv-tdep.c (riscv_call_arg_scalar_float): Unnamed (variadic)
	arguments are passed in integer registers.
	(riscv_call_arg_complex_float): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Update test pattern to deal with native-extended-gdbserver
@ 2018-12-12 18:45 sergiodj+buildbot
  2018-12-12 20:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-12 18:45 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b001de2320446ec803b4ee5e0b9710b025b84469 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: b001de2320446ec803b4ee5e0b9710b025b84469

gdb: Update test pattern to deal with native-extended-gdbserver

When running the test gdb.base/annota1.exp with:

  make check-gdb RUNTESTFLAGS="--target_board=native-extended-gdbserver gdb.base/annota1.exp"

I would see a failure due to some unexpected lines in GDB's output.
The extra lines (when compared with a native run) were about file
transfer from the remote back to GDB.

This commit extends the regexp for this test to allow for these extra
lines, and also splits the rather long regexp up into a list of parts.

With this change in place I see no failures for gdb.base/annota1.exp
when using the native-extended-gdbserver target board, nor with a
native run on X86-64/Linux.

gdb/testsuite/ChangeLog:

	* gdb.base/annota1.exp: Update a test regexp.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/infcall: Make infcall_suspend_state into a class
@ 2018-12-12 18:57 sergiodj+buildbot
  2018-12-12 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-12 18:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6bf78e29a1dea7121f050c6ee4990298eec679dd ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 6bf78e29a1dea7121f050c6ee4990298eec679dd

gdb/infcall: Make infcall_suspend_state into a class

I ran into a situation where attempting to make an inferior function
call would trigger an assertion, like this:

    (gdb) call some_inferior_function ()
    ../../src/gdb/regcache.c:310: internal-error: void regcache::restore(readonly_detached_regcache*): Assertion `src != NULL' failed.
    A problem internal to GDB has been detected,
    further debugging may prove unreliable.
    Quit this debugging session? (y or n)

The problem that triggers the assertion is that in the function
save_infcall_suspend_state, we basically did this:

    1. Create empty infcall_suspend_state object.
    2. Fill fields of infcall_suspend_state object.

The problem is causes is that if filling any of the fields triggered
an exception then the infcall_suspend_state object would be deleted
while in a partially filled in state.

In the specific case I encountered, I had a remote RISC-V target that
claimed in its target description to support floating point registers.
However, this was not true, and when GDB tried to read a floating
point register the remote sent back an error.  This error would cause
an exception to be thrown while creating the
readonly_detached_regcache, which in turn caused GDB to try and delete
an infcall_suspend_state which didn't have any register state, and
this triggered the assertion.

To prevent this problem we have two possibilities, either, rewrite the
restore code the handle partially initialised infcall_suspend_state
objects, or, prevent partially initialised infcall_suspend_state
objects from existing.  The second of these seems like a better
solution.

So, in this patch, I move the filling in of the different
infcall_suspend_state fields within a new constructor for
infcall_suspend_state.  Now, if generating one of those fields fails
the destructor for infcall_suspend_state will not be executed and GDB
will not try to restore the partially saved state.

With this patch in place GDB now behaves like this:

    (gdb) call some_inferior_function ()
    Could not fetch register "ft0"; remote failure reply 'E99'
    (gdb)

The inferior function call is aborted due to the error.

This has been tested against x86-64/Linux native, native-gdbserver,
and native-extended-gdbserver with no regressions.  I've manually
tested this against my baddly behaving target and confirmed the
inferior function call is aborted as described above.

gdb/ChangeLog:

	* infrun.c (infcall_suspend_state::infcall_suspend_state): New.
	(infcall_suspend_state::registers): New.
	(infcall_suspend_state::restore): New.
	(infcall_suspend_state::thread_suspend): Rename to...
	(infcall_suspend_state::m_thread_suspend): ...this.
	(infcall_suspend_state::registers): Rename to...
	(infcall_suspend_state::m_registers): ...this.
	(infcall_suspend_state::siginfo_gdbarch): Rename to...
	(infcall_suspend_state::m_siginfo_gdbarch): ...this.
	(infcall_suspend_state::siginfo_data): Rename to...
	(infcall_suspend_state::m_siginfo_data): ...this.
	(save_infcall_suspend_state): Rewrite to use infcall_suspend_state
	constructor.
	(restore_infcall_suspend_state): Rewrite to use
	infcall_suspend_state::restore method.
	(get_infcall_suspend_state_regcache): Use
	infcall_suspend_state::registers method.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] OBVIOUS: Forward declare linux_xfer_osdata_info_os_types on one line to fix ARI warning.
@ 2018-12-12 21:31 sergiodj+buildbot
  2018-12-12 22:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-12 21:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c8749e5810115ad822ae22db8a8da4c92b0f285d ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: c8749e5810115ad822ae22db8a8da4c92b0f285d

OBVIOUS: Forward declare linux_xfer_osdata_info_os_types on one line to fix ARI warning.

2018-12-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* nat/linux-osdata.c (linux_xfer_osdata_info_os_types): Forward
	declare on one line to fix ARI warning.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Update NEWS for OpenRISC Linux support
@ 2018-12-12 22:57 sergiodj+buildbot
  2018-12-12 23:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-12 22:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 66ac1ae906fc09806e827c8a06303fa7bed221eb ***

Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: 66ac1ae906fc09806e827c8a06303fa7bed221eb

gdb: Update NEWS for OpenRISC Linux support

gdb/ChangeLog:

	* NEWS(New targets): Add or1k*-*-linux*.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Correct printing of MSTATUS and MISA.
@ 2018-12-13 19:51 sergiodj+buildbot
  2018-12-13 20:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-13 19:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b7c8601a7f2874de1bbe0dc38ef86ea053593ad8 ***

Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: b7c8601a7f2874de1bbe0dc38ef86ea053593ad8

RISC-V: Correct printing of MSTATUS and MISA.

	* riscv-tdep.c (riscv_print_one_register_info): For MSTATUS, add
	comment for SD field, and correct xlen calculation.  For MISA, add
	comment for MXL field, add call to register_size, and correct base
	calculation.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change get_syscalls_by_group to append to an existing vector of integers.
@ 2018-12-13 20:28 sergiodj+buildbot
  2018-12-13 22:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-13 20:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4794efbfdc4b1497c1f47397b2a2c43382e3de78 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 4794efbfdc4b1497c1f47397b2a2c43382e3de78

Change get_syscalls_by_group to append to an existing vector of integers.

This removes the need for the caller to explicitly manage the memory
for the returned system call list.  The sole caller only needed the
system call numbers rather than the full syscall structures.

get_syscalls_by_group now uses a boolean return value to indicate if
the requested group exists.

gdb/ChangeLog:

	* break-catch-syscall.c (catch_syscall_split_args): Pass 'result'
	to get_syscalls_by_group.
	* xml-syscall.c [!HAVE_LIBEXPAT] (get_syscalls_by_group): Return
	false.
	[HAVE_LIBEXPAT] (xml_list_syscalls_by_group): Append syscall
	numbers to an existing vector of integers and return a bool.
	(get_syscalls_by_group): Accept pointer to vector of integers
	and change return type to bool.
	* xml-syscall.h (get_syscalls_by_group): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add an optional "alias" attribute to syscall entries.
@ 2018-12-13 20:49 sergiodj+buildbot
  2018-12-13 23:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-13 20:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e9076973c822e6df7f84bb8bc0b69aa42dd29eb3 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: e9076973c822e6df7f84bb8bc0b69aa42dd29eb3

Add an optional "alias" attribute to syscall entries.

When setting a syscall catchpoint by name, catch syscalls whose name
or alias matches the requested string.

When the ABI of a system call is changed in the FreeBSD kernel, this
is implemented by leaving a compatibility system call using the old
ABI at the existing "slot" and allocating a new system call for the
version using the new ABI.  For example, new fields were added to the
'struct kevent' used by the kevent() system call in FreeBSD 12.  The
previous kevent() system call in FreeBSD 12 kernels is now called
freebsd11_kevent() and is still used by older binaries compiled
against the older ABI.  The freebsd11_kevent() system call can be
tagged with an "alias" attribute of "kevent" permitting 'catch syscall
kevent' to catch both system calls and providing the expected user
behavior for both old and new binaries.  It also provides the expected
behavior if GDB is compiled on an older host (such as a FreeBSD 11
host).

gdb/ChangeLog:

	* NEWS: Add entry documenting system call aliases.
	* break-catch-syscall.c (catch_syscall_split_args): Pass 'result'
	to get_syscalls_by_name.
	* gdbarch.sh (UNKNOWN_SYSCALL): Remove.
	* gdbarch.h: Regenerate.
	* syscalls/gdb-syscalls.dtd (syscall): Add alias attribute.
	* xml-syscall.c [!HAVE_LIBEXPAT] (get_syscalls_by_name): Rename
	from get_syscall_by_name.  Now accepts a pointer to a vector of
	integers and returns a bool.
	[HAVE_LIBEXPAT] (struct syscall_desc): Add alias member.
	(syscall_create_syscall_desc): Add alias parameter and pass it to
	syscall_desc constructor.
	(syscall_start_syscall): Handle alias attribute.
	(syscall_attr): Add alias attribute.
	(xml_get_syscalls_by_name): Rename from xml_get_syscall_number.
	Now accepts a pointer to a vector of integers and returns a
	bool.  Add syscalls whose alias or name matches the requested
	name.
	(get_syscalls_by_name): Rename from get_syscall_by_name.  Now
	accepts a pointer to a vector of integers and returns a bool.
	* xml-syscall.h (get_syscalls_by_name): Likewise.

gdb/doc/ChangeLog:

	* gdb.texinfo (Set Catchpoints): Add an anchor for 'catch syscall'.
	(Native): Add a FreeBSD subsection.
	(FreeBSD): Document use of system call aliases for compatibility
	system calls.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update the FreeBSD system call table to match FreeBSD 12.0.
@ 2018-12-13 23:40 sergiodj+buildbot
  2018-12-14  0:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-13 23:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 64fdde094a2747e9aa729dfa4f1568c3d24ab80b ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 64fdde094a2747e9aa729dfa4f1568c3d24ab80b

Update the FreeBSD system call table to match FreeBSD 12.0.

Add a script to generate the FreeBSD XML system call table from the
sys/sys/syscall.h file in the kernel source tree.  For ABI
compatiblity system calls used by older binaries (such as
freebsd11_kevent()), the original system call name is used as an
alias.

Run this script against the current syscall.h file in FreeBSD's head
branch which is expected to be the file used in 12.0 (head is
currently in code freeze as part of the 12.0 release process).

gdb/ChangeLog:

	* syscalls/update-freebsd.sh: New file.
	* syscalls/freebsd.xml: Regenerate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Minor gdb/Makefile.in cleanups
@ 2018-12-15  2:55 sergiodj+buildbot
  2018-12-15  3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-15  2:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7ff6138b00d245b765266ccaa238e51f906f5356 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7ff6138b00d245b765266ccaa238e51f906f5356

Minor gdb/Makefile.in cleanups

This removes an IMO not very useful comment in gdb/Makefile.in about
"alloca".  It also removes INFOFILES, which I think probably has not
been useful since whenever the manual was moved into a subdirectory.

gdb/ChangeLog
2018-12-14  Tom Tromey  <tom@tromey.com>

	* Makefile.in: Remove "alloca" comment.
	(INFOFILES): Remove.
	(local-maintainer-clean): Don't use INFOFILES.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Factorize killing the children in linux-ptrace.c, and fix a 'process leak'.
@ 2018-12-16 21:34 sergiodj+buildbot
  2018-12-16 22:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-16 21:34 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a65f68357f644cae11536bbb8a1699936ccf1368 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: a65f68357f644cae11536bbb8a1699936ccf1368

Factorize killing the children in linux-ptrace.c, and fix a 'process leak'.

Running the gdb testsuite under Valgrind started to fail after 100+ tests,
due to out of memory caused by lingering processes.

The lingering processes are caused by the combination
of a limitation in Valgrind signal handling when using PTRACE_TRACEME
and a (minor) bug in GDB.

The Valgrind limitation is : when a process is ptraced and raises
a signal, Valgrind will replace the raised signal by SIGSTOP as other
signals are masked by Valgrind when executing a system call.
Removing this limitation seems far to be trivial, valgrind signal
handling is very complex.

Due to this valgrind limitation, GDB linux_ptrace_test_ret_to_nx gets
a SIGSTOP signal instead of the expected SIGTRAP or SIGSEGV.
In such a case, linux_ptrace_test_ret_to_nx does an early return, but
does not kill the child (running under valgrind), child stays in a STOP-ped
state.
These lingering processes then eat the available system memory,
till launching a new process starts to fail.

This patch fixes the GDB minor bug by killing the child in case
linux_ptrace_test_ret_to_nx does an early return.

nat/linux-ptrace.c has 3 different logics to kill a child process.
So, this patch factorizes killing a child in the function kill_child.

The 3 different logics are:
* linux_ptrace_test_ret_to_nx is calling both kill (child, SIGKILL)
  and ptrace (PTRACE_KILL, child, ...), and then is calling once
  waitpid.
* linux_check_ptrace_features is calling ptrace (PTRACE_KILL, child, ...)
  + my_waitpid in a loop, as long as the waitpid status was WIFSTOPPED.
* linux_test_for_tracefork is calling once ptrace (PTRACE_KILL, child, ...)
  + my_waitpid.

The linux ptrace documentation indicates that PTRACE_KILL is deprecated,
and tells to not use it, as it might return success but not kill the tracee.
The documentation indicates to send SIGKILL directly.

I suspect that linux_ptrace_test_ret_to_nx calls both kill and ptrace just
to be sure ...
I suspect that linux_check_ptrace_features calls ptrace in a loop
to bypass the PTRACE_KILL limitation.
And it looks like linux_test_for_tracefork does not handle the PTRACE_KILL
limitation.
Also, 2 of the 3 logics are calling my_waitpid, which seems better,
as this is protecting the waitpid syscall against EINTR.

So, the logic in kill_child is just using kill (child, SIGKILL)
+ my_waitpid, and then does a few verifications to see everything worked
accordingly to the plan.

Tested on Debian/x86_64.

2018-12-16  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* nat/linux-ptrace.c (kill_child): New function.
	(linux_ptrace_test_ret_to_nx): Use kill_child instead of local code.
	Add a call to kill_child in case of early return after fork.
	(linux_check_ptrace_features): Use kill_child instead of local code.
	(linux_test_for_tracefork): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR23994, libbfd integer overflow
@ 2018-12-17  3:31 sergiodj+buildbot
  2018-12-17  3:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-17  3:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3a551c7a1b80fca579461774860574eabfd7f18f ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 3a551c7a1b80fca579461774860574eabfd7f18f

PR23994, libbfd integer overflow

	PR 23994
	* aoutx.h: Include limits.h.
	(get_reloc_upper_bound): Detect long overflow and return a file
	too big error if it occurs.
	* elf.c: Include limits.h.
	(_bfd_elf_get_symtab_upper_bound): Detect long overflow and return
	a file too big error if it occurs.
	(_bfd_elf_get_dynamic_symtab_upper_bound): Likewise.
	(_bfd_elf_get_dynamic_reloc_upper_bound): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] OBVIOUS: Fix ARI warning by removing warning trailing new line
@ 2018-12-17  7:20 sergiodj+buildbot
  2018-12-17 11:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-17  7:20 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4ef5dbe493310e3632354d4937727a755c13c291 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 4ef5dbe493310e3632354d4937727a755c13c291

OBVIOUS: Fix ARI warning by removing warning trailing new line

2018-12-17  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* nat/linux-ptrace.c (kill_child): Fix ARI warning by removing
	warning trailing new line.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Fix the gdb build with musl libc
@ 2018-12-17 11:40 sergiodj+buildbot
  2018-12-17 12:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-17 11:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 51b4f73a37c2e7eec31e932fc3c8dae879735f63 ***

Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: 51b4f73a37c2e7eec31e932fc3c8dae879735f63

AArch64: Fix the gdb build with musl libc

Including asm/sigcontext.h together with libc headers is not valid. In
general linux headers may not work with libc headers, so mixing them
should be avoided, especially when the linux header defines types that
are also exposed in libc headers.

In case of asm/sigcontext.h glibc happens to work because glibc signal.h
directly includes it, but e.g. in musl libc signal.h replicates the
sigcontext.h definitions in an abi compatible way which are in conflict
with the linux definitions when both headers are included.

Since old linux headers or old libc headers may not have the necessary
definitions, gdb has to replicate the definitions it relies on anyway.
Which is fine since all definitions must be ABI stable. For linux apis
that are not available via libc headers, replicating the definitions in
gdb is the most reliable way to use them.

Note: asm/ptrace.h includes asm/sigcontext.h in some versions of linux
headers, which is just as problematic and should be fixed in linux.

gdb/ChangeLog:

	* nat/aarch64-sve-linux-ptrace.h: Include signal.h instead of
	asm/sigcontext.h.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR23980, powerpc64 ld segfault
@ 2018-12-17 23:32 sergiodj+buildbot
  2018-12-18  0:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-17 23:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 87469ba2d2fc953796c7bb64e535d3f283756048 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 87469ba2d2fc953796c7bb64e535d3f283756048

PR23980, powerpc64 ld segfault

	PR 23980
	* elf64-ppc.c (ppc64_elf_hide_symbol): Check hash table type
	before referencing ppc64-only fields of hash entries.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] sim: Don't overwrite stored errno in sim_syscall_multi
@ 2018-12-18  1:21 sergiodj+buildbot
  2018-12-18  3:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-18  1:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c5ebe0ff706521b4a5fb66a5e764031825276ad5 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: c5ebe0ff706521b4a5fb66a5e764031825276ad5

sim: Don't overwrite stored errno in sim_syscall_multi

The host syscall callback mechanism should take care of updating the
errcode within the CB_SYSCALL struct, and we should not be adjusting
the error code once the syscall has completed.  We especially, should
not be rewriting the syscall errcode based on the value of errno some
time after running the host syscall, as there is no guarantee that
errno has not be overwritten.

To perform a syscall we call cb_syscall (in syscall.c).  To return
from cb_syscall control passes through one of two exit paths these are
labeled FinishSyscall and ErrorFinish and are reached using goto
statements scattered throughout the cb_syscall function.

In FinishSyscall we store the syscall result in 'sc->result', and the
error code is transated to target encoding, and stored in
'sc->errcode'.

In ErrorFinish, we again store the syscall result in 'sc->result', and
fill in 'sc->errcode' by fetching the actual errno from the host with
the 'cb->get_errno' callback.

In both cases 'sc->errcode' will have been filled in with an
appropriate value.

Further, if we look at a specific syscall example, CB_SYS_open, in
this case the first thing we do is fetch the path to open from the
target with 'get_path', if this fails then the errcode is returned,
and we jump to FinishSyscall.  Notice that in this case, no host
syscall may have been performed, for example a failure to read the
path to open out of simulated memory can return EINVAL without
performing any host syscall.  Given that no host syscall has been
performed, reading the host errno makes absolutely no sense.

This commit removes from sim_syscall_multi the rewriting of
sc->errcode based on the value of errno, and instead relies on the
value stored in the cb_syscall.

sim/common/ChangeLog:

	* sim-syscall.c (sim_syscall_multi): Don't update sc->errcode at
	this point, it should have already been set in cb_syscall.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix build with latest GCC 9.0 tree
@ 2018-12-19 16:51 sergiodj+buildbot
  2018-12-19 18:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-19 16:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7406a50077773e78282a495cb32ef5b8179f6a33 ***

Author: Dimitar Dimitrov <dimitar@dinux.eu>
Branch: master
Commit: 7406a50077773e78282a495cb32ef5b8179f6a33

Fix build with latest GCC 9.0 tree

A recent patch [1] to fix a GCC PR [2] actually broke the GDB build.
To fix, remove the stack pointer clobber. GCC will ignore the clobber
marker, and will not save or restore the stack pointer.

I ran "make check-gdb" on x86_64 to ensure there are no regressions.

gdb/ChangeLog:

2018-12-17  Dimitar Dimitrov  <dimitar@dinux.eu>

	* nat/linux-ptrace.c (linux_ptrace_test_ret_to_nx): Remove sp clobbers.

[1] https://gcc.gnu.org/ml/gcc-patches/2018-12/msg00532.html
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52813

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Ensure deterministic result order in gdb.ada/info_auto_lang.exp
@ 2018-12-20 21:43 sergiodj+buildbot
  2018-12-20 22:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-20 21:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 161d081c56f12e7a00d8a07ccac445855d5d357b ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 161d081c56f12e7a00d8a07ccac445855d5d357b

Ensure deterministic result order in gdb.ada/info_auto_lang.exp

standard_ada_testfile, standard_test_file and the explicit
csrcfile assignment in info_auto_lang.exp all gives similar pathnames
prefix for a source, such as
/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.<something>.

Note that the above pathnames contain ../ which appears when a relative
pathname is used to call configure.

In any case, the gnat compiler normalizes Ada sources path when compiling.
So, the 'Ada' .o object are referencing a pathname such as
/home/philippe/gdb/git/binutils-gdb/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb,
while the 'C' .o object still references the not normalized pathname.

As the results of 'info functions | ...' are sorted by pathname first,
the order of the results depends on the comparison between different directories,
leading to results that can change depending on these directories.

=> Ensure the result order is always the same, by normalising the C source file,
which makes the results independent of the way configure is launched.

Tested by running the testcase in 2 different builds, that without normalize
were giving different results.

Note: such 'set csrcfile' is used in 4 other tests mixing Ada and C.
After discussion, it was deemed sufficient to just normalize the pathname
for this test.

gdb/testsuite/ChangeLog
2018-12-20  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.ada/info_auto_lang.exp: Normalize some_c source file.
	Update order of results accordingly.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86: Call rtype_to_howto to get reloc_howto_type pointer
@ 2018-12-20 22:08 sergiodj+buildbot
  2018-12-21  0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-20 22:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 76268e027479f587b46b70b69760f1b96204bc28 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 76268e027479f587b46b70b69760f1b96204bc28

x86: Call rtype_to_howto to get reloc_howto_type pointer

	* elf32-i386.c (elf_i386_relocate_section): Call
	elf_i386_rtype_to_howto to get reloc_howto_type pointer.
	* elf64-x86-64.c (elf_x86_64_relocate_section): Call
	elf_x86_64_rtype_to_howto to get reloc_howto_type pointer.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix compile error with clang 3.8
@ 2018-12-21 17:28 sergiodj+buildbot
  2018-12-21 18:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-21 17:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3dcfdc58656caa4a38e1fde73a07a19114347226 ***

Author: Dave Murphy <davem@devkitpro.org>
Branch: master
Commit: 3dcfdc58656caa4a38e1fde73a07a19114347226

Fix compile error with clang 3.8

When compiling with clang 3.8 (default clang version on Debian
Stretch, the current stable), we get errors like this:

  CXX    dtrace-probe.o
../../binutils-gdb/gdb/dtrace-probe.c:103:31: error: default initialization of an object of const type 'const dtrace_static_probe_ops' without a user-provided default constructor
const dtrace_static_probe_ops dtrace_static_probe_ops;
                              ^

Silence them by value-initializing those objects.  It's not necessary
with other compilers (later clang versions, gcc), but it shouldn't
hurt either.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Format CORE_ADDR as a string for printing
@ 2018-12-21 17:51 sergiodj+buildbot
  2018-12-21 20:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-21 17:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a96bd1ccc0dca2d260e0e30de462f37066973ceb ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: a96bd1ccc0dca2d260e0e30de462f37066973ceb

gdb/riscv: Format CORE_ADDR as a string for printing

Avoid compiler errors caused by trying to print CORE_ADDR using '%ld'
format, instead convert to a string and print that instead.

gdb/ChangeLog:

	* riscv-tdep.c (riscv_scan_prologue): Use plongest to format
	a signed offset as a string.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] when printing the GDB config, explicitly say if configured without python
@ 2018-12-21 18:24 sergiodj+buildbot
  2018-12-21 21:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-21 18:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 50c7c5b8df15aad66a9d2f6759e85689a2a74271 ***

Author:   <dilyan.palauzov@aegee.org>
Branch: master
Commit: 50c7c5b8df15aad66a9d2f6759e85689a2a74271

when printing the GDB config, explicitly say if configured without python

When using the --configuration command line switch, or using
the "show configuration" command with a version of GDB which
was configured without Python supoprt, this patch changes
the resulting output to include...

    --without-python

... instead of not printing anything about Python support.

gdb/ChangeLog:

        * top.c (print_gdb_configuration): Print "--without-python"
        if GDB was configured without Python.

Tested on x86_64-linux by rebuilding GDB with and without Python,
and checking the output of "gdb --configuration" in both cases.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Workaround a FreeBSD kernel bug resulting in spurious SIGTRAP events.
@ 2018-12-21 18:54 sergiodj+buildbot
  2018-12-22  0:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-21 18:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6d78332e7748754d4a77a31e692fb8760c8c12ff ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 6d78332e7748754d4a77a31e692fb8760c8c12ff

Workaround a FreeBSD kernel bug resulting in spurious SIGTRAP events.

The ptrace command PT_LWPINFO to request detailed information about a
stopped thread can return stale signal information from an earlier
stop.  Events which are reporting an intercepted signal will always
report the correct information, but signal stops for some other events
such as system call enter/exit events might include stale siginfo from
an earlier signal.  In particular, if a thread reports a system call
entry or exit event after previously reporting a single-step or
breakpoint event via SIGTRAP, fbsd_handle_debug_trap believed the
system call event was the previous event and claimed it resulting in a
spurious SIGTRAP event.

True breakpoint and single-step events will never report another event
in the pl_flags member of struct ptrace_lwpinfo.  Use this to detect
stale siginfo by requiring pl_flags to have only the PL_FLAG_SI flag
and no other flags before treating a SIGTRAP as a single-step or
breakpoint trap.

gdb/ChangeLog:

	* fbsd-nat.c (fbsd_handle_debug_trap): Require pl.pl_flags to
	equal PL_FLAG_SI.
	(fbsd_nat_target::stopped_by_sw_breakpoint): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Add gdb to dwarf register number mapping
@ 2018-12-22 10:50 sergiodj+buildbot
  2018-12-22 11:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-22 10:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fb44d95af64dd0609760c1400b9ce4da09296cd1 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: fb44d95af64dd0609760c1400b9ce4da09296cd1

gdb/riscv: Add gdb to dwarf register number mapping

Provide a mapping between GDB's register numbers and DWARF's register
numbers.  This resolves some failures that I was seeing on
gdb.base/store.exp when running on an rv64imfdc target.

gdb/ChangeLog:

	* riscv-tdep.c (riscv_dwarf_reg_to_regnum): New function.
	(riscv_gdbarch_init): Register new function with gdbarch.
	* riscv-tdep.h: New enum to define RISC-V DWARF register numbers.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Add float status registers to save and restore reggroups
@ 2018-12-22 11:11 sergiodj+buildbot
  2018-12-22 13:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-22 11:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ecc82c059059cfa21a8a099779253686f9637f9f ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: ecc82c059059cfa21a8a099779253686f9637f9f

gdb/riscv: Add float status registers to save and restore reggroups

We should save and restore the floating point status registers.  This
became an issue when testing 32-bit float on a target with 64-bit with
the gdb.base/callfuncs.exp test.

gdb/ChangeLog:

	* riscv-tdep.c (riscv_register_reggroup_p): Save and restore fcsr,
	fflags, and frm registers.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Prevent buffer overflow in riscv_return_value
@ 2018-12-22 11:59 sergiodj+buildbot
  2018-12-22 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-22 11:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 74e3300d8aecbc6973f61c8cbbecd7bdac4f05d0 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 74e3300d8aecbc6973f61c8cbbecd7bdac4f05d0

gdb/riscv: Prevent buffer overflow in riscv_return_value

The existing code for reading and writing the return value can
overflow the passed in buffers in a couple of situations.  This commit
aims to resolve these issues.

The problems were detected using valgrind, here are two examples,
first from gdb.base/structs.exp:

    (gdb) p/x fun9()
    ==31353== Invalid write of size 8
    ==31353==    at 0x4C34153: memmove (vg_replace_strmem.c:1270)
    ==31353==    by 0x632EBB: memcpy (string_fortified.h:34)
    ==31353==    by 0x632EBB: readable_regcache::raw_read(int, unsigned char*) (regcache.c:538)
    ==31353==    by 0x659D3F: riscv_return_value(gdbarch*, value*, type*, regcache*, unsigned char*, unsigned char const*) (riscv-tdep.c:2593)
    ==31353==    by 0x583641: get_call_return_value (infcall.c:448)
    ==31353==    by 0x583641: call_thread_fsm_should_stop(thread_fsm*, thread_info*) (infcall.c:546)
    ==31353==    by 0x59BBEC: fetch_inferior_event(void*) (infrun.c:3883)
    ==31353==    by 0x53890B: check_async_event_handlers (event-loop.c:1064)
    ==31353==    by 0x53890B: gdb_do_one_event() [clone .part.4] (event-loop.c:326)
    ==31353==    by 0x6CA34B: wait_sync_command_done() (top.c:503)
    ==31353==    by 0x584653: run_inferior_call (infcall.c:621)
    ...

And from gdb.base/call-sc.exp:

    (gdb) advance fun
    fun () at /gdb/gdb/testsuite/gdb.base/call-sc.c:41
    41	  return foo;
    (gdb) finish
    ==1968== Invalid write of size 8
    ==1968==    at 0x4C34153: memmove (vg_replace_strmem.c:1270)
    ==1968==    by 0x632EBB: memcpy (string_fortified.h:34)
    ==1968==    by 0x632EBB: readable_regcache::raw_read(int, unsigned char*) (regcache.c:538)
    ==1968==    by 0x659D01: riscv_return_value(gdbarch*, value*, type*, regcache*, unsigned char*, unsigned char const*) (riscv-tdep.c:2576)
    ==1968==    by 0x5891E4: get_return_value(value*, type*) (infcmd.c:1640)
    ==1968==    by 0x5892C4: finish_command_fsm_should_stop(thread_fsm*, thread_info*) (infcmd.c:1808)
    ==1968==    by 0x59BBEC: fetch_inferior_event(void*) (infrun.c:3883)
    ==1968==    by 0x53890B: check_async_event_handlers (event-loop.c:1064)
    ==1968==    by 0x53890B: gdb_do_one_event() [clone .part.4] (event-loop.c:326)
    ==1968==    by 0x6CA34B: wait_sync_command_done() (top.c:503)
    ...

There are a couple of problems with the existing code, that are all
related.

In riscv_call_arg_struct we incorrectly rounded up the size of a
structure argument.  This is unnecessary, and caused GDB to read too
much data into the output buffer when extracting a struct return
value.

In fixing this it became clear that we were incorrectly assuming that
any value being placed in a register (or read from a register) would
always access the entire register.  This is not true, for example a
9-byte struct on a 64-bit target places 8-bytes in one registers and
1-byte in a second register (assuming available registers).  To handle
this I switch from using cooked_read to cooked_read_part.

Finally, when processing basic integer return value types these are
extended to xlen sized types and then passed in registers.  We
currently don't handle this type expansion in riscv_return_value, but
we do in riscv_push_dummy_call.  The result is that small integer
types (like char) result in a full xlen sized register being written
into the output buffer, which results in buffer overflow.  To address
this issue we now create a value of the expanded type and use this
values contents buffer to hold the return value before casting the
value down to the smaller expected type.

This patch resolves all of the valgrind issues I have found so far,
and causes no regressions.  Tested against RV32/64 with and without
floating point support.

gdb/ChangeLog:

	* riscv-tdep.c (riscv_call_arg_struct): Don't adjust size before
	assigning locations.
	(riscv_return_value): Take more care not to read/write outside of
	argument buffer.  Cast return value between the declared type and
	the abi type.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] i386: Remove the unused bfd pointer argument
@ 2018-12-23 18:40 sergiodj+buildbot
  2018-12-23 19:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-23 18:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b366503e45a2b28271dd12a7ca923964154c2716 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: b366503e45a2b28271dd12a7ca923964154c2716

i386: Remove the unused bfd pointer argument

Remove the unused bfd pointer argument of elf_i386_rtype_to_howto.

	* elf32-i386.c (elf_i386_rtype_to_howto): Remove the unused bfd
	pointer argument.
	(elf_i386_info_to_howto_rel): Updated.
	(elf_i386_tls_transition): Likewise.
	(elf_i386_relocate_section): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix gdb.ada bp_fun_addr failure due to conflict between fun 'a' and s-dimmks.ads 'A'.
@ 2018-12-24 13:18 sergiodj+buildbot
  2018-12-24 14:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-24 13:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b5a1e55720f294fd0d5e1ebc21ccc01083751acd ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: b5a1e55720f294fd0d5e1ebc21ccc01083751acd

Fix gdb.ada bp_fun_addr failure due to conflict between fun 'a' and s-dimmks.ads 'A'.

The test fails (timeout) due to:
  (gdb) PASS: gdb.ada/bp_fun_addr.exp: break *a'address
  run
  Starting program: /bd/home/philippe/gdb/git/build_info_t/gdb/testsuite/outputs/gdb.ada/bp_fun_addr/a
  Multiple matches for a
  [0] cancel
  [1] a at /bd/home/philippe/gdb/git/info_t/gdb/testsuite/gdb.ada/bp_fun_addr/a.adb:18
  [2] system.dim.mks.a at s-dimmks.ads:115
  > FAIL: gdb.ada/bp_fun_addr.exp: run until breakpoint at a'address (timeout)
  testcase /home/philippe/gdb/git/build_info_t/gdb/testsuite/../../../info_t/gdb/testsuite/gdb.ada/bp_fun_addr.exp completed in 10 seconds

Fix this by using a fun name that has more chances to be unique.

2018-12-24  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.ada/bp_fun_addr/a.adb (a): Rename to bp_fun_addr.
	Filename a.adb changed to bp_fun_addr.adb.
	gdb.ada/bp_fun_addr.exp: Update test accordingly.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Simplify dwarf2_find_containing_comp_unit
@ 2018-12-24 17:54 sergiodj+buildbot
  2018-12-24 18:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-24 17:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 45b8ae0c3348a6e6aa64ad5d114adabdc399c5ef ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 45b8ae0c3348a6e6aa64ad5d114adabdc399c5ef

Simplify dwarf2_find_containing_comp_unit

In an earlier patch discussion we noticed that
dwarf2_find_containing_comp_unit takes the address of sect_off, but
doesn't actually need to.  This is a leftover from before
C++-ification.  This patch simplifies the function.

Tested using gdb.dwarf2 on x86-64 Fedora 28.

gdb/ChangeLog
2018-12-18  Tom Tromey  <tom@tromey.com>

	* dwarf2read.c (dwarf2_find_containing_comp_unit): Don't take
	address of sect_off.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Extend the comments in c-exp.y
@ 2018-12-24 19:34 sergiodj+buildbot
  2018-12-24 19:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-24 19:34 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b6c95c0cc5bd60e2de86d611120bf6191f99860a ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: b6c95c0cc5bd60e2de86d611120bf6191f99860a

gdb: Extend the comments in c-exp.y

In an attempt to fix PR gdb/13368 this commit adds some comments to
c-exp.y which hopefully makes the type parsing code a little clearer.
There are no code changes here, so there should be no user visible
changes after this commit.

gdb/ChangeLog:

	PR gdb/13368
	* c-exp.y (typebase): Extend the comment.
	(ident_tokens): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] target.c: Remove struct keyword in range-based for
@ 2018-12-27  2:10 sergiodj+buildbot
  2018-12-27  2:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-27  2:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 84b68c77e7f1c8c883ff94aaa2fce0df2eab0877 ***

Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 84b68c77e7f1c8c883ff94aaa2fce0df2eab0877

target.c: Remove struct keyword in range-based for

I get this when compiling with a gcc 6.3.0-based cross-compiler:

  CXX    target.o
/home/simark/src/binutils-gdb/gdb/target.c: In static member function 'static void target_terminal::restore_inferior()':
/home/simark/src/binutils-gdb/gdb/target.c:396:10: error: types may not be defined in a for-range-declaration [-Werror]
     for (struct inferior *inf : all_inferiors ())
          ^~~~~~

Accomodate it by dropping the unnecessary struct keyword.  Actually, I used
"::inferior", otherwise it resolves to the inferior method of the
target_terminal class.

gdb/ChangeLog:

	* target.c (target_terminal::restore_inferior): Remove struct keyword.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix gdb.ada/packed_array_assign.exp by using more unique names.
@ 2018-12-27 10:51 sergiodj+buildbot
  2018-12-27 11:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 10:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2ab54467f89763c96e2e9bda876eee1f9c8561b1 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 2ab54467f89763c96e2e9bda876eee1f9c8561b1

Fix gdb.ada/packed_array_assign.exp by using more unique names.

The test gdb.ada/packed_array_assign fails due to conflict between component 'w'
and system.dim.mks.w:

(gdb) print pra := ((x => 2, y => 0, w => 17), pr, (x => 7, y => 1, w => 23))
Unknown component name: system.dim.mks.w.
(gdb) FAIL: gdb.ada/packed_array_assign.exp: print pra := ((x => 2, y => 0, w => 17), pr, (x => 7, y => 1, w => 23))

Also, depending on the compiler version, the component w might be reordered
and placed before components x and y.
So, change the component order in the source, so that both an old
compiler (GNATMAKE 6.3.0, gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516)
and a new compiler (GNATMAKE Pro 20.0w (20181210-82), based on gcc 8.2.1)
produce the same component order (checked by using -gnatR3s).

So, update to test the new (more unique) names in the source order.

2018-12-26  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.ada/packed_array_assign/aggregates.ads (Packed_Rec):
	Rename components to Packed_Array_Assign_[X|Y|W].  Place
	component Packed_Array_Assign_W as first component, to ensure
	old and new compilers have the same representation.
	All users updated.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix gdb.ada/assign_arr.exp by using more unique names.
@ 2018-12-27 11:07 sergiodj+buildbot
  2018-12-27 14:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 11:07 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3cf139964eb2e2d3008174aa3d446797fce31240 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 3cf139964eb2e2d3008174aa3d446797fce31240

Fix gdb.ada/assign_arr.exp by using more unique names.

The test fails (timeout) due to conflict between var 'input' and s-ststop.adb 'input':
(gdb) print input.u2 := (0.25,0.5,0.75)
Multiple matches for input
[0] cancel
[1] system.strings.stream_ops.storage_array_ops.input (access ada.streams.root_stream_type; system.strings.stream_ops.io_kind; natural) return system.storage_elements.storage_array at s-ststop.adb:127
[2] system.strings.stream_ops.stream_element_array_ops.input (access ada.streams.root_stream_type; system.strings.stream_ops.io_kind; natural) return ada.streams.stream_element_array at s-ststop.adb:127
[3] system.strings.stream_ops.string_ops.input (access ada.streams.root_stream_type; system.strings.stream_ops.io_kind; natural) return string at s-ststop.adb:127
[4] system.strings.stream_ops.wide_string_ops.input (access ada.streams.root_stream_type; system.strings.stream_ops.io_kind; natural) return wide_string at s-ststop.adb:127
[5] system.strings.stream_ops.wide_wide_string_ops.input (access ada.streams.root_stream_type; system.strings.stream_ops.io_kind; natural) return wide_wide_string at s-ststop.adb:127
[6] target_wrapper.input at /bd/home/philippe/gdb/git/info_t/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads:24
> FAIL: gdb.ada/assign_arr.exp: print input.u2 := (0.25,0.5,0.75) (timeout)

gdb/testsuite/ChangeLog
2018-12-26  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.ada/assign_arr/target_wrapper.ads (Input): Rename to
	Assign_Arr_Input.
	main_p324_051.adb: Update accordingly.
	gdb.ada/assign_arr.exp: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix gdb.ada/fun_renaming.exp by using more unique names.
@ 2018-12-27 11:24 sergiodj+buildbot
  2018-12-27 15:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 11:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 293bf1a719e88e063e75ae467c5aec101b59fbf6 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 293bf1a719e88e063e75ae467c5aec101b59fbf6

Fix gdb.ada/fun_renaming.exp by using more unique names.

The test fails due to conflict between var 'next' and s-pooloc.adb next:
(gdb) print next(1)
Multiple matches for next
[0] cancel
[1] pack.next (integer) return integer at /bd/home/philippe/gdb/git/binutils-gdb/gdb/testsuite/gdb.ada/fun_renaming/pack.adb:19
[2] system.pool_local.next (system.address) return system.pool_local.acc_address at s-pooloc.adb:151
> FAIL: gdb.ada/fun_renaming.exp: print next(1) (timeout)

Fix by making the names and renamings more unique.

gdb/testsuite/ChangeLog
2018-12-26  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.ada/fun_renaming/pack.ads (Next): Rename to Fun_Rename_Test_Next.
	(Renamed_Next): Rename to Renamed_Fun_Rename_Test_Next.
	gdb.ada/fun_renaming/pack.adb (Next): Rename to Fun_Rename_Test_Next.
	gdb.ada/fun_renaming/fun_renaming.adb (N): Rename to Fun_Rename_Test_N.
	gdb.ada/fun_renaming.exp: Update accordingly.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Improve gdb.ada/rename_subscript_param.exp by using more unique names.
@ 2018-12-27 12:28 sergiodj+buildbot
  2018-12-27 12:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 12:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT afcfda091e15beb9580398709235c1866a4c79e1 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: afcfda091e15beb9580398709235c1866a4c79e1

Improve gdb.ada/rename_subscript_param.exp by using more unique names.

With old compilers, the test fails because no debug info is generated
for 'B' and GDB finds some 'b' in atnat.h:

(gdb) print b
Multiple matches for b
[0] cancel
[1] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
[2] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
[3] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> FAIL: gdb.ada/rename_subscript_param.exp: print b before changing its value (timeout)

Avoid the timeout by renaming 'b' to rename_subscript_param_b.

Also, change 'before' to 'after' in the gdb_test message that prints
the value after changing it.

The test still fails with old compilers that do not properly
generate debug info for this renaming:
(gdb) print rename_subscript_param_b
No definition of "rename_subscript_param_b" in current context.
(gdb) FAIL: gdb.ada/rename_subscript_param.exp: print rename_subscript_param_b before changing its value

Note: if the compiler would generate the correct debug info, the test should
succeed with the name B.  However, waiting for this fix, changing the name
ensures that the test fails directly, instead of causing a timeout.

2018-12-26  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	PR ada/23381
	* gdb.ada/rename_subscript_param/pkg.adb (B): Rename to
	Rename_Subscript_Param_B.  All users updated.
	gdb.ada/rename_subscript_param.exp: Test names made unique.
	Note that PR ada/23381 is only fully fixed when using a recent
	compiler.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use DISABLE_COPY_AND_ASSIGN in minimal_symbol_reader
@ 2018-12-27 20:08 sergiodj+buildbot
  2018-12-27 21:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 20:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT af9a216102c27e308e338f77b6f9ad78dd0d2c09 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: af9a216102c27e308e338f77b6f9ad78dd0d2c09

Use DISABLE_COPY_AND_ASSIGN in minimal_symbol_reader

This changes minimal_symbol_reader to use DISABLE_COPY_AND_ASSIGN,
rather than the manual approach it currently uses.

Tested by rebuilding.

gdb/ChangeLog
2018-12-27  Tom Tromey  <tom@tromey.com>

	* minsyms.h (class minimal_symbol_reader): Use
	DISABLE_COPY_AND_ASSIGN.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove gdbtypes special case from init.c rule
@ 2018-12-27 20:58 sergiodj+buildbot
  2018-12-28  0:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 20:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c88c222e3c01e3f936455dca59f486e310d12f69 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: c88c222e3c01e3f936455dca59f486e310d12f69

Remove gdbtypes special case from init.c rule

The rule to make init.c has a special case for gdbtypes, with a long
explanatory comment.  All of this is obsolete, as the globals referred
to by the comment no longer exist.  This patch simplifies the rule.

gdb/ChangeLog
2018-12-27  Tom Tromey  <tom@tromey.com>

	* Makefile.in (stamp-init): Remove gdbtypes special case.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make init.c depend on source files
@ 2018-12-27 21:10 sergiodj+buildbot
  2018-12-28  1:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 21:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b180d0a254034c14fd540c1b57391bb413f788f7 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b180d0a254034c14fd540c1b57391bb413f788f7

Make init.c depend on source files

I noticed that init.c depends on the object files that go into gdb.
Because init.c actually only requires the contents of the
corresponding source files, this unnecessarily serializes the step
that builds init.c.

This patch changes gdb's Makefile to make init.c depend on the source
files.  This also simplifies the rule to build init.c.

gdb/ChangeLog
2018-12-27  Tom Tromey  <tom@tromey.com>

	* Makefile.in (INIT_FILES): Redefine.
	(stamp-init): Remove sed, tr invocations.  Use for loop.  Don't
	set LANG or LC_ALL.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Build gdb "nat" files in subdirectory
@ 2018-12-27 21:27 sergiodj+buildbot
  2018-12-28  2:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 21:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6987262214a204ea3ab857d86a1faf9f4e66f211 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6987262214a204ea3ab857d86a1faf9f4e66f211

Build gdb "nat" files in subdirectory

This moves the various "nat" object files into the nat/ subdirectory.
This allows for the removal of a pattern rule from the gdb Makefile,
which is a small cleanup.

I made the configure.nat change in a (semi-) automated way, hopefully
meaning that it is more likely to be correct than had I done it by
hand.

Eventually I would like for the various configure scripts to only
mention source files, and let the Makefile compute the object file
names.

gdb/ChangeLog
2018-12-27  Tom Tromey  <tom@tromey.com>

	* configure.nat (NATDEPFILES): Use nat/ prefix.
	* Makefile.in (CONFIG_SRC_SUBDIR): Add nat.
	(%.o: ${srcdir}/nat/%.c): Remove rule.
	(INIT_FILES): Do not filter out NATDEPFILES.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Consolidate some Python exception-printing functions
@ 2018-12-27 21:53 sergiodj+buildbot
  2018-12-28  5:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 21:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6ef2312a177ebdfa841e82b515c144975073a501 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6ef2312a177ebdfa841e82b515c144975073a501

Consolidate some Python exception-printing functions

A few places in the Python code would either call gdbpy_print_stack,
or throw a gdb "quit", depending on the pending exception.  This patch
consolidates these into a helper function.

gdb/ChangeLog
2018-12-27  Tom Tromey  <tom@tromey.com>

	* python/python-internal.h (gdbpy_print_stack_or_quit): Declare.
	* python/py-unwind.c (pyuw_sniffer): Use
	gdbpy_print_stack_or_quit.
	* python/py-framefilter.c (throw_quit_or_print_exception):
	Remove.
	(gdbpy_apply_frame_filter): Use gdbpy_print_stack_or_quit.
	* python/python.c (gdbpy_print_stack_or_quit): New function.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Translate PyExc_KeyboardInterrupt to gdb "quit"
@ 2018-12-27 22:36 sergiodj+buildbot
  2018-12-28  6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 22:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bc543c902f9891f732be68817e16ff379b69566e ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bc543c902f9891f732be68817e16ff379b69566e

Translate PyExc_KeyboardInterrupt to gdb "quit"

A while back I typed "info pretty-printers" with a large number of
printers installed, and I typed "q" to stop the pagination.  I noticed
that gdb printed a Python exception in this case.

It seems to me that, instead, quitting pagination (or control-c'ing a
Python command generally) should be handled the same way that gdb
normally handles a quit.

This patch implements this idea by changing gdbpy_handle_exception to
treat PyExc_KeyboardInterrupt specially.

gdb/ChangeLog
2018-12-27  Tom Tromey  <tom@tromey.com>

	* python/py-utils.c (gdbpy_handle_exception): Translate
	PyExc_KeyboardInterrupt to quit.

gdb/testsuite/ChangeLog
2018-12-27  Tom Tromey  <tom@tromey.com>

	* gdb.python/py-cmd.exp (test_python_inline_or_multiline): Add
	pagination test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24028, PPC_INT_FMT
@ 2018-12-28  7:24 sergiodj+buildbot
  2018-12-28  8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-28  7:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d1a3c973fa1c0d7eead585e82e02db11daeb36cf ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: d1a3c973fa1c0d7eead585e82e02db11daeb36cf

PR24028, PPC_INT_FMT

PPC_INT_FMT is redundant now that bfd.h pulls in inttypes.h if
available.  Apparently MacOS Mojave defines int64_t as long long even
though long is also 64 bits, which confuses the logic selecting
PPC_INT_FMT (and BFD_PRI64 too).  Hopefully inttypes.h is available on
Mojave.

	PR 24028
include/
	* opcode/ppc.h (PPC_INT_FMT): Delete.
opcodes/
	* ppc-dis.c (print_insn_powerpc): Replace PPC_INT_FMT uses with
	PRId64/PRIx64.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24015, glibc-2.28 on little-endian mips32 broken
@ 2018-12-28 10:24 sergiodj+buildbot
  2018-12-28 11:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 10:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0e41bebb938dbe9eae7063f5321429194bfc5ab7 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 0e41bebb938dbe9eae7063f5321429194bfc5ab7

PR24015, glibc-2.28 on little-endian mips32 broken

Commit 2bf2bf23da exposed a bug on targets that create common sections
other than the standard ELF SHN_COMMON.  If these are output by ld -r,
then their type becomes SHT_PROGBITS unless the target handles them
specially (eg. by elf_backend_special_sections), and if they are
merged into .bss/.sbss by ld -r then that section becomes SHT_PROGBITS.

Worse, if they are output by ld -r, then their size is increased by
bfd_generic_define_common_symbol during final link, which leads to
bogus file contents being copied to output.

For mips, it seems to me that the .scommon section should not be
output for ld -r, but I haven't made that change in this patch.

	PR 24015
	* elf.c (bfd_elf_get_default_section_type): Make common sections
	SHT_NOBITS.
	* linker.c (bfd_generic_define_common_symbol): Clear
	SEC_HAS_CONTENTS.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix leak of set/show verbose doc, avoid xfree of static string
@ 2018-12-28 18:09 sergiodj+buildbot
  2018-12-28 19:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 18:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 94f2c73066597f33933bef2d20bdbfbf6fcd8b69 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 94f2c73066597f33933bef2d20bdbfbf6fcd8b69

Fix leak of set/show verbose doc, avoid xfree of static string

In the tests
  py-pp-registration/gdb.log
  default/gdb.log
  foll-fork/gdb.log
  setshow/gdb.log
  break-interp/gdb.log
Valgrind detects a leak of the doc strings for the set and show verbose cmd.

Here is the stacktrace of the leaked set doc:
==25548== 15 bytes in 1 blocks are definitely lost in loss record 101 of 3,120
==25548==    at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==25548==    by 0x409C27: xmalloc (common-utils.c:44)
==25548==    by 0x778AF9: xstrdup (xstrdup.c:34)
==25548==    by 0x3F860F: add_setshow_cmd_full(char const*, command_class, var_types, void*, char const*, char const*, char const*, void (*)(char const*, int, cmd_list_element*), void (*)(ui_file*, int, cmd_list_element*, char const*), cmd_list_element**, cmd_list_element**, cmd_list_element**, cmd_list_element**) [clone .constprop.10] (cli-decode.c:495)
==25548==    by 0x3F8ADB: add_setshow_boolean_cmd(char const*, command_class, int*, char const*, char const*, char const*, void (*)(char const*, int, cmd_list_element*), void (*)(ui_file*, int, cmd_list_element*, char const*), cmd_list_element**, cmd_list_element**) (cli-decode.c:593)
==25548==    by 0x3F7442: _initialize_cli_cmds() (cli-cmds.c:1768)
==25548==    by 0x69EED3: initialize_all_files() (init.c:365)
==25548==    by 0x658A84: gdb_init(char*) (top.c:2163)
==25548==    by 0x5403E1: captured_main_1 (main.c:863)
==25548==    by 0x5403E1: captured_main (main.c:1167)
==25548==    by 0x5403E1: gdb_main(captured_main_args*) (main.c:1193)
==25548==    by 0x289CA7: main (gdb.c:32)

The leak is created by top.c set_verbose 'elaborate joke':
the doc string is changed according to the verbosity:
  (gdb) help set verbose
  Set verbosity.
  (gdb) set verbose on
  (gdb) help set verbose
  Set verbose printing of informational messages.
  (gdb)

set_verbose creates the leak as it replaces the string allocated in
the above stacktrace by a static (non translated) string:
...
  if (info_verbose)
    {
      c->doc = "Set verbose printing of informational messages.";
...

Also, this can possibly trigger a call to 'free' of a static string,
as c->doc_allocated is kept true, while the string is not allocated anymore.

This patch:
 * fixes the leak by freeing the previous docs if doc_allocated.
 * internationalize the messages.
 * properly sets doc_allocated to 0 once doc strings are static.

gdb/ChangeLog
2018-12-28  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* top.c (set_verbose): Free previous docs if doc_allocated.
	Internationalize messages.  Set doc_allocated to 0.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change wrap buffering to use a std::string
@ 2018-12-28 21:27 sergiodj+buildbot
  2018-12-28 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 21:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c5603d506350cca3b1af7ba3a97bf05adeea0508 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: c5603d506350cca3b1af7ba3a97bf05adeea0508

Change wrap buffering to use a std::string

Currently wrap buffering is implemented by allocating a string that is
the same width as the window, and then writing characters into it.
However, if gdb emits terminal escapes, then these could possibly
overflow the buffer.

To prevent this, change the wrap buffer to be a std::string and update
the various uses.

This also changes utils.c to always emit characters to the wrap
buffer.  This simplifies future patches which emit terminal escape
sequences, and also makes it possible for the "echo" and "printf"
commands to be used to emit terminal escapes and have these work in
the TUI.

gdb/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* utils.c (filter_initialized): New global.
	(wrap_buffer): Now a std::string.
	(wrap_pointer): Remove.
	(flush_wrap_buffer): New function.
	(filtered_printing_initialized, set_width, wrap_here)
	(fputs_maybe_filtered): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change gdb test suite's TERM setting
@ 2018-12-28 22:14 sergiodj+buildbot
  2018-12-29  2:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 22:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9162a27c5f5828240b53379d735679e2a69a9f41 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9162a27c5f5828240b53379d735679e2a69a9f41

Change gdb test suite's TERM setting

This changes the gdb test suite to set TERM to "dumb" by default.
This setting disables terminal styling, so that the existing tests do
not need to be updated.

gdb/testsuite/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* lib/gdb.exp (gdb_init): Set the TERM environment variable to
	"dumb".
	* gdb.base/readline.exp (operate_and_get_next): Save and restore
	the TERM environment variable.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add output styles to gdb
@ 2018-12-28 22:24 sergiodj+buildbot
  2018-12-29  4:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 22:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cbe5657196d0d3acbeca39973f93f333ecedacda ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: cbe5657196d0d3acbeca39973f93f333ecedacda

Add output styles to gdb

This adds some output styling to the CLI.

A style is currently a foreground color, a background color, and an
intensity (dim or bold).  (This list could be expanded depending on
terminal capabilities.)

A style can be applied while printing.  For ui-out, this is done by
passing the style constant as an argument.  For low-level cases,
fprintf_styled and fputs_styled are provided.

Users can control the style via a number of new set/show commands.  In
the interest of not typing many nearly-identical documentation
strings, I automated this.  On the down side, this is not very
i18n-friendly.

I've chose some default colors to use.  I think it would be good to
enable this by default, so that when users start the new gdb, they
will see the new feature.

Stylizing is done if TERM is set and is not "dumb".  This could be
improved when the TUI is available by using the curses has_colors
call.  That is, the lowest layer could call this without committing to
using curses everywhere; see my other patch for TUI colorizing.

I considered adding a new "set_style" method to ui_file.  However,
because the implementation had to interact with the pager code, I
didn't take this approach.  But, one idea might be to put the isatty
check there and then have it defer to the lower layers.

gdb/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* utils.h (set_output_style, fprintf_styled)
	(fputs_styled): Declare.
	* utils.c (applied_style, desired_style): New globals.
	(emit_style_escape, set_output_style): New function.
	(prompt_for_continue): Emit style escapes.
	(fputs_maybe_filtered): Likewise.
	(fputs_styled, fprintf_styled): New functions.
	* ui-out.h (enum class ui_out_style_kind): New.
	(class ui_out) <field_string, field_stream, do_field_string>: Add
	style parameter.
	* ui-out.c (ui_out::field_stream, ui_out::field_string): Add style
	parameter.
	* tui/tui-out.h (class tui_ui_out) <do_field_string>: Add style
	parameter.
	* tui/tui-out.c (tui_ui_out::do_field_string): Add style
	parameter.
	(tui_ui_out::do_field_string): Update.
	* tracepoint.c (print_one_static_tracepoint_marker): Style
	output.
	* stack.c (print_frame_info, print_frame): Style output.
	* source.c (print_source_lines_base): Style output.
	* skip.c (info_skip_command): Style output.
	* record-btrace.c (btrace_call_history_src_line): Style output.
	(btrace_call_history): Likewise.
	* python/py-framefilter.c (py_print_frame): Style output.
	* mi/mi-out.h (class mi_ui_out) <do_field_string>: Add style
	parameter.
	* mi/mi-out.c (mi_ui_out::do_table_header)
	(mi_ui_out::do_field_int): Update.
	(mi_ui_out::do_field_string): Update.
	* disasm.c (gdb_pretty_print_disassembler::pretty_print_insn):
	Style output.
	* cli/cli-style.h: New file.
	* cli/cli-style.c: New file.
	* cli-out.h (class cli_ui_out) <do_field_string>: Add style
	parameter.
	* cli-out.c (cli_ui_out::do_table_header)
	(cli_ui_out::do_field_int, cli_ui_out::do_field_skip): Update.
	(cli_ui_out::do_field_string): Add style parameter.  Style the
	output.
	* breakpoint.c (print_breakpoint_location): Style output.
	(update_static_tracepoint): Likewise.
	* Makefile.in (SUBDIR_CLI_SRCS): Add cli-style.c.
	(HFILES_NO_SRCDIR): Add cli-style.h.

gdb/testsuite/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* gdb.base/style.exp: New file.
	* gdb.base/style.c: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Reset terminal styles
@ 2018-12-28 22:26 sergiodj+buildbot
  2018-12-29  5:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 22:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ef1dfa3644f02efffa11d718fe5788c05177587b ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: ef1dfa3644f02efffa11d718fe5788c05177587b

Reset terminal styles

This adds a function that can be used to reset terminal styles,
regardless of what style the low-level output routines currently think
is applied.

This is used to make "echo" and "printf" work properly when emitting
ANSI terminal escapes -- now gdb will reset the style at the end of
the command.

gdb/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* utils.h (reset_terminal_style): Declare.
	* utils.c (can_emit_style_escape): New function.
	(set_output_style): Use it.
	(reset_terminal_style): New function.
	* printcmd.c (printf_command): Call reset_terminal_style.
	* cli/cli-cmds.c (echo_command): Call reset_terminal_style.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Style variable names
@ 2018-12-28 22:37 sergiodj+buildbot
  2018-12-29  6:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 22:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 80ae204359b707f2914132ed353d3cecbdb58b23 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 80ae204359b707f2914132ed353d3cecbdb58b23

Style variable names

This adds style support for variable names.  For the time being, this
is only done in backtraces, not in ptype or print; those places do not
use ui-out and so would need ad hoc changes.

This also adds styling to the names printed for local variables in
"backtrace full".  This code does not use ui-out, so the styling is
done using the low-level API.

gdb/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* ui-out.h (enum class ui_out_style_kind) <VARIABLE>: New global.
	* stack.c (print_frame_arg): Style name.
	* printcmd.c (print_variable_and_value): Style variable name.
	* cli/cli-style.h (variable_name_style): Declare.
	* cli/cli-style.c (variable_name_style): New global.
	(_initialize_cli_style): Update.
	* cli-out.c (cli_ui_out::do_field_string): Update.

gdb/testsuite/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* gdb.base/style.exp: Add test for variable names.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Style print_address_symbolic
@ 2018-12-28 23:02 sergiodj+buildbot
  2018-12-29  9:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 23:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT af79b68d7f935799c956b1a40e92a167385b5380 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: af79b68d7f935799c956b1a40e92a167385b5380

Style print_address_symbolic

print_address_symbolic does not use ui-out, so it did not style
function names.  This patch changes it to use the low-level style code
directly.

gdb/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* printcmd.c (print_address_symbolic): Style function name.

gdb/testsuite/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* gdb.base/style.exp: Add test for print_address_symbolic.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Style the "Reading symbols" message
@ 2018-12-28 23:25 sergiodj+buildbot
  2018-12-29 12:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 23:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 47fd17cdc14a0d295a2cbdc02eff144e3fb4e900 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 47fd17cdc14a0d295a2cbdc02eff144e3fb4e900

Style the "Reading symbols" message

The "Reading symbols" message does not use ui-out (perhaps it
should?), so this styles it using the low-level API.

gdb/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* symfile.c (symbol_file_add_with_addrs): Style file name.

gdb/testsuite/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* gdb.base/style.exp: Add test for styling of "Reading symbols"
	message.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Introduce ui_file_style
@ 2018-12-29  0:31 sergiodj+buildbot
  2018-12-29  1:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-29  0:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT eedeedd2a50d121af466ddfa9e897212defbf079 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: eedeedd2a50d121af466ddfa9e897212defbf079

Introduce ui_file_style

This introduces the new ui_file_style class and various helpers.  This
class represents a terminal style and provides methods for parsing and
emitting the corresponding ANSI terminal escape sequences.

gdb/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* unittests/style-selftests.c: New file.
	* ui-style.c: New file.
	* ui-style.h: New file.
	* ui-file.h: Include ui-style.h.
	* Makefile.in (COMMON_SFILES): Add ui-style.c.
	(HFILES_NO_SRCDIR): Add ui-style.h.
	(SUBDIR_UNITTESTS_SRCS): Add style-selftests.c.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix the build when GNU Source Highlight is not available
@ 2018-12-29  4:53 sergiodj+buildbot
  2018-12-29 18:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-29  4:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 64c45143db4c550e19763edf97ca3441c78f9a05 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 64c45143db4c550e19763edf97ca3441c78f9a05

Fix the build when GNU Source Highlight is not available

The builder pointed out that, when GNU Source Highlight is not
available, get_language_name is not used.  This patch makes it
conditional, fixing the build problem.

gdb/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	* source-cache.c (get_language_name): Conditionally compile.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make ANSI terminal escape sequences work in TUI
@ 2018-12-29 14:34 sergiodj+buildbot
  2018-12-29 14:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-29 14:34 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1d1d0bf76f3bc3056a1456e53c066f40ca4d0837 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1d1d0bf76f3bc3056a1456e53c066f40ca4d0837

Make ANSI terminal escape sequences work in TUI

PR tui/14126 notes that ANSI terminal escape sequences don't affect
the colors shown in the TUI.  A simple way to see this is to try the
extended-prompt example from the gdb manual.

Curses does not pass escape sequences through to the terminal.
Instead, it replaces non-printable characters with a visible
representation, for example "^[" for the ESC character.

This patch fixes the problem by adding a simple ANSI terminal sequence
parser to gdb.  These sequences are decoded and those that are
recognized are turned into the appropriate curses calls.

The curses approach to color handling is unusual and so there are some
oddities in the implementation.

Standard curses has no notion of the default colors of the terminal.
So, if you set the foreground color, it is not possible to reset it --
you have to pick some other color.  ncurses provides an extension to
handle this, so this patch updates configure and uses it when
available.

Second, in curses, colors always come in pairs: you cannot set just
the foreground.  This patch handles this by tracking actually-used
pairs of colors and keeping a table of these for reuse.

Third, there are a limited number of such pairs available.  In this
patch, if you try to use too many color combinations, gdb will just
ignore some color changes.

Finally, in addition to limiting the number of color pairs, curses
also limits the number of colors.  This means that, when using
extended 8- or 24-bit color sequences, it may be possible to exhaust
the curses color table.

I am very sour on the curses design now.

I do not know how to write a test for this, so I did not.

gdb/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

	PR tui/14126:
	* tui/tui.c (tui_enable): Call start_color and
	use_default_colors.
	* tui/tui-io.c (struct color_pair): New.
	(color_pair_map, last_color_pair, last_style): New globals.
	(tui_setup_io): Clean up color map when shutting down.
	(curses_colors): New constant.
	(get_color_pair, apply_ansi_escape): New functions.
	(tui_write): Rewrite.
	(tui_puts_internal): New function, from tui_puts.  Add "height"
	parameter.
	(tui_puts): Use tui_puts_internal.
	(tui_redisplay_readline): Use tui_puts_internal.
	(_initialize_tui_io): New function.
	(color_map): New globals.
	(get_color): New function.
	* configure.ac: Check for use_default_colors.
	* config.in, configure: Rebuild.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix 'help set/show style' strange layouts/results.
@ 2018-12-30  9:50 sergiodj+buildbot
  2018-12-30 16:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-30  9:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ecad3b215d34263968bb7c74701e3ca9483ac710 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: ecad3b215d34263968bb7c74701e3ca9483ac710

Fix 'help set/show style' strange layouts/results.

The layout for 'help set address|variable' is strange, e.g.:
  (gdb) help set style address
  style address

  List of show Address display styling
  Configure address colors and display intensity subcommands:

  show Address display styling
  Configure address colors and display intensity background -- Set the background color for this property
  show Address display styling
  Configure address colors and display intensity foreground -- Set the foreground color for this property
  show Address display styling
  Configure address colors and display intensity intensity -- Set the display intensity color for this property

  Type "help show Address display styling
  Configure address colors and display intensity" followed by show Address display styling
  Configure address colors and display intensity subcommand name for full documentation.
  Type "apropos word" to search for commands related to "word".
  Command name abbreviations are allowed if unambiguous.
  (gdb)

The help for 'set style function|filename' gives help for 'Show':
  (gdb) help set style filename
  Filename display styling
  Configure filename colors and display intensity.

  List of show style filename subcommands:

  show style filename background -- Set the background color for this property
  show style filename foreground -- Set the foreground color for this property
  show style filename intensity -- Set the display intensity color for this property

The help for 'show style function|filename' is equally strange, as it speaks
about commands, instead of sub commands:
  (gdb) help show style filename
  Filename display styling
  Configure filename colors and display intensity.

  List of commands:

  background -- Show the background color for this property
  foreground -- Show the foreground color for this property
  intensity -- Show the display intensity color for this property

  Type "help" followed by command name for full documentation.
  Type "apropos word" to search for commands related to "word".
  Command name abbreviations are allowed if unambiguous.
  (gdb)

This patch fixes all this.

Note that the 'set style' and 'show style' have the same prefix_doc:
  (gdb) help show style
  Style-specific settings
  Configure various style-related variables, such as colors
  ...
  (gdb) help set style
  Style-specific settings
  Configure various style-related variables, such as colors
  ...

Other similar commands (such as set|show history) have typically
a more specific prefix:
  (gdb) help show history
  Generic command for showing command history parameters.
  ...
  (gdb) help set history
  Generic command for setting command history parameters.
  ...

This could be fixed by having set_prefix_doc and show_prefix_doc instead of
the single prefix_doc argument to cli_style_option::add_setshow_commands.
That could be improved if deemed better.

2018-12-29  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* cli/cli-style.c (cli_style_option::add_setshow_commands):
	Initialize m_set_prefix with "set", instead of re-assigning
	m_show_prefix.  Use m_set_prefix for set_list and m_show_prefix
	for show_list.
	(_initialize_cli_style): Correct the order of arguments in
	variable_name_style.add_setshow_commands and
	address_style.add_setshow_commands calls.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24041, Invalid Memory Address Dereference in elf_link_add_object_symbols
@ 2018-12-31  6:53 sergiodj+buildbot
  2018-12-31 10:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-31  6:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 54025d5812ff100f5f0654eb7e1ffd50f2e37f5f ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 54025d5812ff100f5f0654eb7e1ffd50f2e37f5f

PR24041, Invalid Memory Address Dereference in elf_link_add_object_symbols

	PR 24041
	* elflink.c (elf_link_add_object_symbols): Don't segfault on
	crafted ET_DYN with no program headers.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [PowerPC64] Nop out ld 2, 24(1) after old-style __tls_get_addr
@ 2018-12-31  7:25 sergiodj+buildbot
  2018-12-31  8:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2018-12-31  7:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c96e057398b599a343cdff68325251346b71594e ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: c96e057398b599a343cdff68325251346b71594e

[PowerPC64] Nop out ld 2,24(1) after old-style __tls_get_addr

When optimising inline plt calls to __tls_get_addr without tls marker
relocs, ld should zap any toc restore insn after the bctrl, to stop a
load-hit-store stall.

	* elf64-ppc.c (ppc64_elf_relocate_section <tls_ldgd_opt>): When
	editing an old-style __tls_get_addr call, replace a toc restore
	insn with a nop.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update copyright year range in all GDB files.
@ 2019-01-01  6:42 sergiodj+buildbot
  2019-01-01  8:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-01  6:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 42a4f53d2bf8938c2aeda9f52be7a20534b214a9 ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 42a4f53d2bf8938c2aeda9f52be7a20534b214a9

Update copyright year range in all GDB files.

This commit applies all changes made after running the gdb/copyright.py
script.

Note that one file was flagged by the script, due to an invalid
copyright header
(gdb/unittests/basic_string_view/element_access/char/empty.cc).
As the file was copied from GCC's libstdc++-v3 testsuite, this commit
leaves this file untouched for the time being; a patch to fix the header
was sent to gcc-patches first.

gdb/ChangeLog:

	Update copyright year range in all GDB files.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] rotate gdb/ChangeLog
@ 2019-01-01  6:54 sergiodj+buildbot
  2019-01-01  7:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-01  6:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5bbd631dca26b37b1cc7164d4499949826b8a102 ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 5bbd631dca26b37b1cc7164d4499949826b8a102

rotate gdb/ChangeLog


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] update copyright year printed by gdb, gdbserver and gdbreplay
@ 2019-01-01  6:54 sergiodj+buildbot
  2019-01-01 10:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-01  6:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 66d91b39089d606c9589673a7c5419cf37e7d639 ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 66d91b39089d606c9589673a7c5419cf37e7d639

update copyright year printed by gdb, gdbserver and gdbreplay

gdb/ChangeLog:

	* top.c (print_gdb_version): Update Copyright year in version
	message.

gdb/gdbserver/ChangeLog:

	* gdbreplay.c (gdbreplay_version): Update copyright year in
	version message.
	* server.c (gdbserver_version): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update year range in copyright notice of binutils files
@ 2019-01-01 12:27 sergiodj+buildbot
  2019-01-01 12:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-01 12:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 827041555ac443bd57340060f3e034fd7b199dd8 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 827041555ac443bd57340060f3e034fd7b199dd8

Update year range in copyright notice of binutils files


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix leak in print_one_catch_syscall.
@ 2019-01-01 19:54 sergiodj+buildbot
  2019-01-01 20:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-01 19:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5b38f9c16e5b3f5f4b5d7772bfef59b1c97e2d05 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 5b38f9c16e5b3f5f4b5d7772bfef59b1c97e2d05

Fix leak in print_one_catch_syscall.

The last text produced was not freed, causing the below leak
(e.g. in gdb.base/catch-syscall.exp):

==24970== 56 bytes in 12 blocks are definitely lost in loss record 626 of 3,289
==24970==    at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==24970==    by 0x66B9C3F: __vasprintf_chk (vasprintf_chk.c:80)
==24970==    by 0x405181: vasprintf (stdio2.h:210)
==24970==    by 0x405181: xstrvprintf(char const*, __va_list_tag*) (common-utils.c:122)
==24970==    by 0x40524B: xstrprintf(char const*, ...) (common-utils.c:113)
==24970==    by 0x3B49DB: print_one_catch_syscall(breakpoint*, bp_location**) (break-catch-syscall.c:275)
==24970==    by 0x3C698F: print_one_breakpoint_location(breakpoint*, bp_location*, int, bp_location**, int) (breakpoint.c:6076)
==24970==    by 0x3C75B1: print_one_breakpoint(breakpoint*, bp_location**, int) (breakpoint.c:6373)
==24970==    by 0x3C7D0E: breakpoint_1(char const*, int, int (*)(breakpoint const*)) (breakpoint.c:6571)
==24970==    by 0x3C822C: info_breakpoints_command(char const*, int) (breakpoint.c:6625)

2019-01-01  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* break-catch-syscall.c (print_one_catch_syscall): xfree
	the last text.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix 'Invalid read of size 4' in search_command_helper
@ 2019-01-01 20:25 sergiodj+buildbot
  2019-01-01 23:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-01 20:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b18ca5148b837c878b64306be2b78b15fa730259 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: b18ca5148b837c878b64306be2b78b15fa730259

Fix 'Invalid read of size 4' in search_command_helper

Valgrind detects the below error in gdb.base/list.exp.
==14763== Invalid read of size 4
==14763==    at 0x60B584: search_command_helper(char const*, int, bool) [clone .constprop.91] (source.c:1601)
==14763==    by 0x408888: cmd_func(cmd_list_element*, char const*, int) (cli-decode.c:1892)
==14763==    by 0x668550: execute_command(char const*, int) (top.c:630)
==14763==    by 0x4B2F7B: command_handler(char const*) (event-top.c:583)
==14763==    by 0x4B326C: command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) (event-top.c:772)
...
==14763==  Address 0x6d9f09c is 4 bytes before a block of size 156 alloc'd
==14763==    at 0x4C2E2B3: realloc (vg_replace_malloc.c:836)
==14763==    by 0x41904C: xrealloc (common-utils.c:62)
==14763==    by 0x60A300: find_source_lines(symtab*, int) (source.c:1203)
==14763==    by 0x608219: source_cache::get_plain_source_lines(symtab*, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) (source-cache.c:51)
==14763==    by 0x60A46B: print_source_lines_base(symtab*, int, int, enum_flags<print_source_lines_flag>) (source.c:1350)
==14763==    by 0x404E2D: list_command(char const*, int) (cli-cmds.c:1080)
....

Add the missing condition to end the loop once line 1 has been
reversed-searched.

gdb/ChangeLog
2019-01-01  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* source.c (search_command_helper): Stop reverse search
	when line 1 has been searched.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix year range in unittests/.../char/empty.cc copyright header
@ 2019-01-02  6:29 sergiodj+buildbot
  2019-01-02  7:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-02  6:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4ada3dfd5c07f0f1045a721a28fc905918ffbdfd ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 4ada3dfd5c07f0f1045a721a28fc905918ffbdfd

Fix year range in unittests/.../char/empty.cc copyright header

The year range in the copyright header of that file was incorrect:

    // Copyright (C) 3 Free Software Foundation, Inc.

Tracing the origin of this file down, I found that it was copied
from GCC's libstdc++-v3 testsuite:

    Adapt and integrate string_view tests
    https://www.sourceware.org/ml/gdb-patches/2018-04/msg00113.html

Looking at the version in GCC, I found the same issue, so sent
a fix there:

    https://gcc.gnu.org/ml/gcc-patches/2019-01/msg00000.html

Now that the fix is in GCC, this commit applies the same fix
to our copy.

gdb/ChangeLog:

	* unittests/basic_string_view/element_access/char/empty.cc:
	Fix year range in copyright header.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Style improvements in gdb/python
@ 2019-01-02 16:47 sergiodj+buildbot
  2019-01-02 17:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 16:47 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8833fbf05c5b93fb3ccf666d5a3bd0e51e75d1bd ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 8833fbf05c5b93fb3ccf666d5a3bd0e51e75d1bd

Style improvements in gdb/python

This fixes a few minor style issues I found in gdb/python: some
unnecessary casts, the removal of an unnecessary local variable, and
one instance of incorrect formatting.

Tested by rebuilding and re-running gdb.python.

gdb/ChangeLog
2019-01-02  Tom Tromey  <tom@tromey.com>

	* python/py-inferior.c (gdbpy_initialize_inferior): Fix
	indentation.
	* python/py-frame.c (frapy_older): Remove cast.
	(frapy_newer): Likewise.
	* python/py-breakpoint.c (local_setattro): Remove cast.
	* python/py-arch.c (archpy_name): Remove local variable.
	* python/py-type.c (gdbpy_lookup_type): Remove cast.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix search of debug files for remote debuggee
@ 2019-01-02 20:08 sergiodj+buildbot
  2019-01-02 21:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 20:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5d36dfb949751663bcb814b3cc780ed8f47442b4 ***

Author: Andrey Utkin <autkin@undo.io>
Branch: master
Commit: 5d36dfb949751663bcb814b3cc780ed8f47442b4

Fix search of debug files for remote debuggee

When using remote debugging server, and when debuggee filename is
inferred via qXfer:exec-file:read request, or sysroot starts with
"target:", this "target:" prefix of filepaths is not treated correctly
during debug file search - it appears in the middle of the looked up
paths.

In the following example, unpatched GDB can't find separate debug files for
neither the executable, nor standard libraries:

     $ gdb -ex 'set debug separate-debug-file 1' -ex 'set sysroot target:/' -ex 'set debug-file-directory /usr/lib/debug:/home/j/hide' -ex 'target remote :3333' -ex 'break main' -ex 'continue' -ex 'bt' -ex 'info sharedlibrary' -ex 'set confirm off' -ex 'quit'
    GNU gdb (Gentoo 9999 vanilla) 8.2.50.20181109-git
    Copyright (C) 2018 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    Type "show copying" and "show warranty" for details.
    This GDB was configured as "x86_64-pc-linux-gnu".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <https://bugs.gentoo.org/>.
    Find the GDB manual and other documentation resources online at:
        <http://www.gnu.org/software/gdb/documentation/>.

    For help, type "help".
    Type "apropos word" to search for commands related to "word".
    Remote debugging using :3333
    Reading /home/j/test from remote target...
    warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
    Reading /home/j/test from remote target...
    Reading symbols from target:/home/j/test...

    Looking for separate debug info (debug link) for target:/home/j/test
      Trying target:/home/j/test.debug
    Reading /home/j/test.debug from remote target...
      Trying target:/home/j/.debug/test.debug
    Reading /home/j/.debug/test.debug from remote target...
      Trying /usr/lib/debug/target:/home/j/test.debug
      Trying /home/j/hide/target:/home/j/test.debug
    (No debugging symbols found in target:/home/j/test)
    Reading /lib64/ld-linux-x86-64.so.2 from remote target...
    Reading /lib64/ld-linux-x86-64.so.2 from remote target...
    Reading symbols from target:/lib64/ld-linux-x86-64.so.2...

    Looking for separate debug info (debug link) for target:/lib64/ld-linux-x86-64.so.2
      Trying target:/lib64/ld-2.27.so.debug
    Reading /lib64/ld-2.27.so.debug from remote target...
      Trying target:/lib64/.debug/ld-2.27.so.debug
    Reading /lib64/.debug/ld-2.27.so.debug from remote target...
      Trying /usr/lib/debug/target:/lib64/ld-2.27.so.debug
      Trying /home/j/hide/target:/lib64/ld-2.27.so.debug
    (No debugging symbols found in target:/lib64/ld-linux-x86-64.so.2)

    Looking for separate debug info (build-id) for system-supplied DSO at 0x7ffff7ffa000
      Trying /usr/lib/debug/.build-id/fd/03d584bc1a90ba28be457635a02662c9f9c1f2.debug
      Trying /home/j/hide/.build-id/fd/03d584bc1a90ba28be457635a02662c9f9c1f2.debug
    0x00007ffff7dd7000 in ?? () from target:/lib64/ld-linux-x86-64.so.2
    Breakpoint 1 at 0x4005eb
    Continuing.
    Reading /lib64/libpthread.so.0 from remote target...
    Reading /lib64/libc.so.6 from remote target...

    Looking for separate debug info (debug link) for target:/lib64/libpthread.so.0
      Trying target:/lib64/libpthread-2.27.so.debug
    Reading /lib64/libpthread-2.27.so.debug from remote target...
      Trying target:/lib64/.debug/libpthread-2.27.so.debug
    Reading /lib64/.debug/libpthread-2.27.so.debug from remote target...
      Trying /usr/lib/debug/target:/lib64/libpthread-2.27.so.debug
      Trying /home/j/hide/target:/lib64/libpthread-2.27.so.debug

    Looking for separate debug info (debug link) for target:/lib64/libc.so.6
      Trying target:/lib64/libc-2.27.so.debug
    Reading /lib64/libc-2.27.so.debug from remote target...
      Trying target:/lib64/.debug/libc-2.27.so.debug
    Reading /lib64/.debug/libc-2.27.so.debug from remote target...
      Trying /usr/lib/debug/target:/lib64/libc-2.27.so.debug
      Trying /home/j/hide/target:/lib64/libc-2.27.so.debug

    Breakpoint 1, 0x00000000004005eb in main ()
    #0  0x00000000004005eb in main ()
    From                To                  Syms Read   Shared Object Library
    0x00007ffff7dd6e80  0x00007ffff7df4650  Yes (*)     target:/lib64/ld-linux-x86-64.so.2
    0x00007ffff7bbbb70  0x00007ffff7bcbfee  Yes (*)     target:/lib64/libpthread.so.0
    0x00007ffff780f200  0x00007ffff7962d7c  Yes (*)     target:/lib64/libc.so.6
    (*): Shared library is missing debugging information.

With current fix, the paths used always have target: in the beginning
and this helps to find all debug files:

     $ gdb -ex 'set debug separate-debug-file 1' -ex 'set sysroot target:/' -ex 'set debug-file-directory /usr/lib/debug:/home/j/hide' -ex 'target remote :3333' -ex 'break main' -ex 'continue' -ex 'bt' -ex 'info sharedlibrary' -ex 'set confirm off' -ex 'quit'
    GNU gdb (Gentoo 9999 vanilla) 8.2.50.20181109-git
    Copyright (C) 2018 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    Type "show copying" and "show warranty" for details.
    This GDB was configured as "x86_64-pc-linux-gnu".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <https://bugs.gentoo.org/>.
    Find the GDB manual and other documentation resources online at:
        <http://www.gnu.org/software/gdb/documentation/>.

    For help, type "help".
    Type "apropos word" to search for commands related to "word".
    Remote debugging using :3333
    Reading /home/j/test from remote target...
    warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
    Reading /home/j/test from remote target...
    Reading symbols from target:/home/j/test...

    Looking for separate debug info (debug link) for target:/home/j/test
      Trying target:/home/j/test.debug
    Reading /home/j/test.debug from remote target...
      Trying target:/home/j/.debug/test.debug
    Reading /home/j/.debug/test.debug from remote target...
      Trying target:/usr/lib/debug//home/j/test.debug
    Reading /usr/lib/debug//home/j/test.debug from remote target...
      Trying target:/home/j/hide//home/j/test.debug
    Reading /home/j/hide//home/j/test.debug from remote target...
    Reading /home/j/hide//home/j/test.debug from remote target...
    Reading symbols from target:/home/j/hide//home/j/test.debug...
    Reading /lib64/ld-linux-x86-64.so.2 from remote target...
    Reading /lib64/ld-linux-x86-64.so.2 from remote target...
    Reading symbols from target:/lib64/ld-linux-x86-64.so.2...

    Looking for separate debug info (debug link) for target:/lib64/ld-linux-x86-64.so.2
      Trying target:/lib64/ld-2.27.so.debug
    Reading /lib64/ld-2.27.so.debug from remote target...
      Trying target:/lib64/.debug/ld-2.27.so.debug
    Reading /lib64/.debug/ld-2.27.so.debug from remote target...
      Trying target:/usr/lib/debug//lib64/ld-2.27.so.debug
    Reading /usr/lib/debug//lib64/ld-2.27.so.debug from remote target...
    Reading /usr/lib/debug//lib64/ld-2.27.so.debug from remote target...
    Reading symbols from target:/usr/lib/debug//lib64/ld-2.27.so.debug...

    Looking for separate debug info (build-id) for system-supplied DSO at 0x7ffff7ffa000
      Trying /usr/lib/debug/.build-id/fd/03d584bc1a90ba28be457635a02662c9f9c1f2.debug
      Trying /home/j/hide/.build-id/fd/03d584bc1a90ba28be457635a02662c9f9c1f2.debug
    0x00007ffff7dd7000 in _start () from target:/lib64/ld-linux-x86-64.so.2
    Breakpoint 1 at 0x4005ef: file test/test16.c, line 13.
    Continuing.
    Reading /lib64/libpthread.so.0 from remote target...
    Reading /lib64/libc.so.6 from remote target...

    Looking for separate debug info (debug link) for target:/lib64/libpthread.so.0
      Trying target:/lib64/libpthread-2.27.so.debug
    Reading /lib64/libpthread-2.27.so.debug from remote target...
      Trying target:/lib64/.debug/libpthread-2.27.so.debug
    Reading /lib64/.debug/libpthread-2.27.so.debug from remote target...
      Trying target:/usr/lib/debug//lib64/libpthread-2.27.so.debug
    Reading /usr/lib/debug//lib64/libpthread-2.27.so.debug from remote target...
    Reading /usr/lib/debug//lib64/libpthread-2.27.so.debug from remote target...

    Looking for separate debug info (debug link) for target:/lib64/libc.so.6
      Trying target:/lib64/libc-2.27.so.debug
    Reading /lib64/libc-2.27.so.debug from remote target...
      Trying target:/lib64/.debug/libc-2.27.so.debug
    Reading /lib64/.debug/libc-2.27.so.debug from remote target...
      Trying target:/usr/lib/debug//lib64/libc-2.27.so.debug
    Reading /usr/lib/debug//lib64/libc-2.27.so.debug from remote target...
    Reading /usr/lib/debug//lib64/libc-2.27.so.debug from remote target...

    Breakpoint 1, main () at test/test16.c:13
    13          for ( i=0; i<10; ++i)
    #0  main () at test/test16.c:13
    From                To                  Syms Read   Shared Object Library
    0x00007ffff7dd6e80  0x00007ffff7df4650  Yes         target:/lib64/ld-linux-x86-64.so.2
    0x00007ffff7bbbb70  0x00007ffff7bcbfee  Yes         target:/lib64/libpthread.so.0
    0x00007ffff780f200  0x00007ffff7962d7c  Yes         target:/lib64/libc.so.6

gdb/ChangeLog:

2018-11-09  Andrey Utkin  <autkin@undo.io>

        * symfile.c (find_separate_debug_file): Fix search of debug files for
        remote debuggee.

Signed-off-by: Andrey Utkin <autkin@undo.io>


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix leak of struct call_thread_fsm in call_function_by_hand_dummy.
@ 2019-01-02 21:27 sergiodj+buildbot
  2019-01-02 22:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 21:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e3319240732bc9543af8ced9d80ec89d0b629b2e ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: e3319240732bc9543af8ced9d80ec89d0b629b2e

Fix leak of struct call_thread_fsm in call_function_by_hand_dummy.

When the call does not complete, the call_thread_fsm allocated
by new_call_thread_fsm is not cleaned up and deleted, which causes
the following leak e.g. in gdb.base/callfuncs.exp:

==29263== 560 bytes in 7 blocks are definitely lost in loss record 2,833 of 3,341
==29263==    at 0x4C2E0BC: calloc (vg_replace_malloc.c:762)
==29263==    by 0x405110: xcalloc (common-utils.c:84)
==29263==    by 0x4E67EB: xcnew<call_thread_fsm> (poison.h:122)
==29263==    by 0x4E67EB: new_call_thread_fsm (infcall.c:516)
==29263==    by 0x4E67EB: call_function_by_hand_dummy(value*, type*, gdb::array_view<value*>, void (*)(void*, int), void*) (infcall.c:1154)
==29263==    by 0x4E784E: call_function_by_hand(value*, type*, gdb::array_view<value*>) (infcall.c:693)
==29263==    by 0x496111: eval_call(expression*, noside, int, value**, char const*, type*) [clone .isra.5] (eval.c:835)

Fix the leak by similarly doing cleanup/destroy when restoring
previous state machine.

Tested on debian/amd64, natively and under valgrind.

2019-01-02  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* infcall.c (call_function_by_hand_dummy): cleanup/destroy sm
	 in case of call that did not complete.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Place displaced step data directly in inferior structure
@ 2019-01-02 22:46 sergiodj+buildbot
  2019-01-02 23:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 22:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d20172fc53017cef12d64b21aa2fdac72072558c ***

Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: d20172fc53017cef12d64b21aa2fdac72072558c

Place displaced step data directly in inferior structure

This patch moves the per-inferior data related to displaced stepping to
be directly in the inferior structure, rather than in a container on the
side.

On notable difference is that previously, we deleted the state on
inferior exit, which guaranteed a clean state if re-using the inferior
for a new run or attach.  We now need to reset the state manually.

At the same time, I changed step_saved_copy to be a gdb::byte_vector, so
it is automatically freed on destruction (which should plug the leak
reported here [1]).

[1] https://sourceware.org/ml/gdb-patches/2018-11/msg00202.html

gdb/ChangeLog:

	* inferior.h (class inferior) <displaced_step_state>: New field.
	* infrun.h (struct displaced_step_state): Move here from
	infrun.c.  Initialize fields, add constructor.
	<inf>: Remove field.
	<reset>: New method.
	* infrun.c (struct displaced_step_inferior_state): Move to
	infrun.h.
	(displaced_step_inferior_states): Remove.
	(get_displaced_stepping_state): Adust.
	(displaced_step_in_progress_any_inferior): Adjust.
	(displaced_step_in_progress_thread): Adjust.
	(displaced_step_in_progress): Adjust.
	(add_displaced_stepping_state): Remove.
	(get_displaced_step_closure_by_addr): Adjust.
	(remove_displaced_stepping_state): Remove.
	(infrun_inferior_exit): Call displaced_step_state.reset.
	(use_displaced_stepping): Don't check for NULL.
	(displaced_step_prepare_throw): Call
	get_displaced_stepping_state.
	(displaced_step_fixup): Don't check for NULL.
	(prepare_for_detach): Don't check for NULL.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change inferior_to_inferior_object to return a gdbpy_ref
@ 2019-01-02 23:46 sergiodj+buildbot
  2019-01-03  1:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 23:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 61fd3e738919700c8d0fbb942519d72a767d90b1 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 61fd3e738919700c8d0fbb942519d72a767d90b1

Change inferior_to_inferior_object to return a gdbpy_ref

Most callers of inferior_to_inferior_object already use a gdbpy_ref,
so this changes inferior_to_inferior_object to return one.  Doing this
revealed that create_thread_object was not correctly handling the case
where inferior_to_inferior_object failed, so this patch fixes this as
well.

gdb/ChangeLog
2019-01-02  Tom Tromey  <tom@tromey.com>

	* python/python-internal.h (inferior_to_inferior_object): Change
	return type.
	* python/py-exitedevent.c (create_exited_event_object): Update.
	* python/py-inferior.c (inferior_to_inferior_object): Return
	gdbpy_ref.
	(python_new_inferior, python_inferior_deleted)
	(thread_to_thread_object, delete_thread_object)
	(build_inferior_list, gdbpy_selected_inferior): Update.
	* python/py-infthread.c (create_thread_object): Update.  Also fail
	if inferior_to_inferior_object fails.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove cleanups from linespec.c
@ 2019-01-02 23:59 sergiodj+buildbot
  2019-01-03  2:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 23:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3a6ae42d4e4ecfd2441cf9b978b2a54ad6767cb7 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 3a6ae42d4e4ecfd2441cf9b978b2a54ad6767cb7

Remove cleanups from linespec.c

This removes the remaining cleanups from linespec.c.  This adds a
constructor and destructor to linespec_parser, but in a minimal way --
the parser could still benefit from a bit more C++-ification.

gdb/ChangeLog
2019-01-02  Tom Tromey  <tom@tromey.com>

	* linespec.c (struct linespec_parser): Rename from ls_parser.  Add
	constructor, destructor.
	(linespec_parser): Remove typedef.
	(~linespec_parser): Rename from linespec_parser_delete.
	(linespec_lex_to_end, linespec_complete_label)
	(linespec_complete): Update.
	(decode_line_full): Remove cleanups.
	(decode_line_1): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add 'extern C' if simulator is written in C++
@ 2019-01-03 14:58 sergiodj+buildbot
  2019-01-03 15:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 14:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 444b3faef5397eee5a06fe0e683d2ac3e6628fdc ***

Author:   <kryukov@frtk.ru>
Branch: master
Commit: 444b3faef5397eee5a06fe0e683d2ac3e6628fdc

Add 'extern C' if simulator is written in C++

sim/common/Changelog:
2018-12-31  Pavel I. Kryukov  <kryukov@frtk.ru>

        * sim-base.h: Add 'extern C' if header is compiled with C++


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] S12Z: opcodes: Separate the decoding of operations from their display.
@ 2019-01-03 18:01 sergiodj+buildbot
  2019-01-03 18:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 18:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ef1ad42b8b5f2c43d74582d2e629841c39962c18 ***

Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: ef1ad42b8b5f2c43d74582d2e629841c39962c18

S12Z: opcodes: Separate the decoding of operations from their display.

This change adds an abstraction layer between the decoding of machine
operations and their disassembled textual representation.  This allows
the decoding routines to be re-used for other purposes (at the expense)
of slightly slower running time.

ChangeLog: opcodes/

   * s12z-opc.c: New file.
   * s12z-opc.h: New file.
   * s12z-dis.c: Removed all code not directly related to display
     of instructions.  Used the interface provided by the new files
     instead.
   * Makefile.am (TARGET_LIBOPCODES_CFILES) Add s12z-opc.c.
   * Makefile.in: regenerate.
   * configure.ac (bfd_s12z_arch): Correct the dependencies.
   * configure: regenerate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/remote: Remove a cleanup in remote_check_symbols
@ 2019-01-03 21:41 sergiodj+buildbot
  2019-01-03 22:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 21:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 66644cd32ba63e7fda70e455766b438631ec0b61 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 66644cd32ba63e7fda70e455766b438631ec0b61

gdb/remote: Remove a cleanup in remote_check_symbols

Convert one of the variables that requires a cleanup from a 'char *'
to a 'gdb::char_vector' in remote_target::remote_check_symbols.

Tested on x86-64/Linux with target_board native-gdbserver and
native-extended-gdbserver.

gdb/ChangeLog:

	* remote.c (remote_target::remote_check_symbols): Convert `msg` to
	gdb::char_vector, remove cleanup, and update uses of `msg`.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Remove a cleanup from find_overload_match
@ 2019-01-03 21:54 sergiodj+buildbot
  2019-01-03 23:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 21:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 06d3e5b0046d69e3da3450d2eb07c29f0c1a189a ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 06d3e5b0046d69e3da3450d2eb07c29f0c1a189a

gdb: Remove a cleanup from find_overload_match

This patch changes cp-support.c:cp_func_name to return a
'gdb::unique_xmalloc_ptr<char>' instead of a 'char *'.  This allows a
cleanup to be removed from valops.c:find_overload_match.

gdb/ChangeLog:

	* compile/compile-cplus-types.c
	(compile_cplus_instance::decl_name): Handle changes to
	cp_func_name.
	* cp-support.c (cp_func_name): Update header comment, update
	return type.
	* cp-support.h (cp_func_name): Update return type in declaration.
	* valops.c (find_overload_match): Move temp_func local to top
	level of function and change its type.  Use temp_func to hold and
	delete temporary string obtained from cp_func_name.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Simplify gdbpy_stop_recording
@ 2019-01-03 23:17 sergiodj+buildbot
  2019-01-04  7:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 23:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ea41325b7d134e91648e340d8297e8f6ee5fe26a ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: ea41325b7d134e91648e340d8297e8f6ee5fe26a

Simplify gdbpy_stop_recording

This simplifies gdbpy_stop_recording, by having it use Py_RETURN_NONE
rather than writing it out manually, and by usin the idiomatic
GDB_PY_HANDLE_EXCEPTION.

gdb/ChangeLog
2019-01-03  Tom Tromey  <tom@tromey.com>

	* python/py-record.c (gdbpy_stop_recording): Use Py_RETURN_NONE.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24061, powerpc-ibm-aix-ar sets bogus file permissions when extracting
@ 2019-01-04  2:21 sergiodj+buildbot
  2019-01-04 13:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-04  2:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 677bd4c69d0eda4f2ae635d793f23c0b1413a9e9 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 677bd4c69d0eda4f2ae635d793f23c0b1413a9e9

PR24061, powerpc-ibm-aix-ar sets bogus file permissions when extracting

Mode field should be read in octal, all the rest in decimal.  Do so.

	PR 24061
	PR 21786
	* coff-rs6000.c (GET_VALUE_IN_FIELD): Add base parameter and
	adjust all callers.
	(EQ_VALUE_IN_FIELD): Likewise.
	* coff64-rs6000.c (GET_VALUE_IN_FIELD): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Remove cleanup from linux_nat_target::follow_fork
@ 2019-01-04  3:18 sergiodj+buildbot
  2019-01-04  3:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-04  3:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 169bb27bce3dc43b2bb5f6abf7fc21c19de5454a ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 169bb27bce3dc43b2bb5f6abf7fc21c19de5454a

gdb: Remove cleanup from linux_nat_target::follow_fork

Remove cleanup from linux_nat_target::follow_fork, instead add a new
unique_ptr specialisation for holding lwp_info pointers and use this
to ensure the pointer is cleaned up when needed.

gdb/ChangeLog:

	* linux-nat.c (delete_lwp_cleanup): Delete.
	(struct lwp_deleter): New struct.
	(lwp_info_up): New typedef.
	(linux_nat_target::follow_fork): Delete cleanup, and make use of
	lwp_info_up.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Avoid questionable casts in py-symtab.c
@ 2019-01-04 10:32 sergiodj+buildbot
  2019-01-04 10:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-04 10:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7c711119166fc1c60c756059f39c6703d57eedbf ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7c711119166fc1c60c756059f39c6703d57eedbf

Avoid questionable casts in py-symtab.c

py-symtab.c has some questionable casts of Py_None to symtab_object*.
This patch avoids these casts by instead using downcasts at the
appropriate places.

gdb/ChangeLog
2019-01-03  Tom Tromey  <tom@tromey.com>

	* python/py-symtab.c (salpy_str): Update.
	(struct salpy_sal_object) <symtab>: Now a PyObject.
	(salpy_dealloc): Update.
	(del_objfile_sal): Use gdbpy_ref.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change the default for the CSKY target to be little endian.
@ 2019-01-04 14:11 sergiodj+buildbot
  2019-01-04 15:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-04 14:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d9858c37914e104401071b12b060765024008fe4 ***

Author: Lifang Xia <lifang_xia@c-sky.com>
Branch: master
Commit: d9858c37914e104401071b12b060765024008fe4

Change the default for the CSKY target to be little endian.

	* config.bfd (csky-*-elf* | csky-*-linux*): Modify the csky
	default target, little endian target is more suitable.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use upper case for more metasyntactic variables in gdb
@ 2019-01-04 21:57 sergiodj+buildbot
  2019-01-04 22:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-04 21:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 48c5e7e239fba27bea134f6cd5f414300b7cd3ac ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 48c5e7e239fba27bea134f6cd5f414300b7cd3ac

Use upper case for more metasyntactic variables in gdb

I noticed a few places where a Usage line in gdb did not use upper
case for metasyntactic variables.  This patch fixes all the instances
I found.

Tested on x86-64 Fedora 28.

gdb/ChangeLog
2019-01-04  Tom Tromey  <tom@tromey.com>

	* compile/compile.c (_initialize_compile): Use upper case for
	metasyntactic variables.
	* symmisc.c (_initialize_symmisc): Use upper case for
	metasyntactic variables.
	* psymtab.c (_initialize_psymtab): Use upper case for
	metasyntactic variables.
	* demangle.c (demangle_command): Use upper case for metasyntactic
	variables.
	(_initialize_demangler): Likewise.
	* ax-gdb.c (_initialize_ax_gdb): Use upper case for metasyntactic
	variables.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] GDB crash re-running program on Windows (native)
@ 2019-01-05  8:10 sergiodj+buildbot
  2019-01-05  9:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-05  8:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2eab46b176fa315ebc07569280f020c3348c2aa2 ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 2eab46b176fa315ebc07569280f020c3348c2aa2

GDB crash re-running program on Windows (native)

Running any program twice on Windows current results in GDB crashing:

    $ gdb -q any_program
    (gdb) run
    $ gdb dummy -batch -ex run -ex run
    [New Thread 684960.0xe5878]
    [New Thread 684960.0xd75ac]
    [New Thread 684960.0xddac8]
    [New Thread 684960.0xc1f50]
    [Thread 684960.0xd75ac exited with code 0]
    [Thread 684960.0xddac8 exited with code 0]
    [Thread 684960.0xc1f50 exited with code 0]
    [Inferior 1 (process 684960) exited normally]
    (gdb) run
    Segmentation fault

The crash happens while processing the CREATE_PROCESS_DEBUG_EVENT
for  the second run; in particular, we have in get_windows_debug_event:

    | case CREATE_PROCESS_DEBUG_EVENT:
    |   [...]
    |   if (main_thread_id)
    |     windows_delete_thread (ptid_t (current_event.dwProcessId, 0,
    |                                    main_thread_id),
    |                            0);

The problem is that main_thread_id is the TID of the main thread from
the *previous* inferior, and this code is trying to delete that
thread. The problem is that it is constructing a PTID by pairing
the TID of the previous inferior with the PID of the new inferior.
As a result, when we dig inside windows_delete_thread to see
how it would handle that, we see...

    | delete_thread (find_thread_ptid (ptid));

Since the PTID is bogus, we end up calling delete_thread with
a NULL thread_info. It used to be harmless, turning the delete_thread
into a nop, but the following change...

    | commit 080363310650c93ad8e93018bcb6760ba5d32d1c
    | Date:   Thu Nov 22 16:09:14 2018 +0000
    | Subject: Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc.

... changed delete_thread to get the list of threads from
the inferior, which itself is now accessed via the given
thread_info. This is the corresponding diff that shows the change:

    | -  for (tp = thread_list; tp; tpprev = tp, tp = tp->next)
    | +  for (tp = thr->inf->thread_list; tp; tpprev = tp, tp = tp->next)

As a result of this, passing a NULL thread_info is no longer
an option!

Stepping back a bit, the reason behind deleting the thread late
could be found in a patch from Dec 2003, which laconically explains:

    | commit 87a45c96062d658ca83b50aa060a648bf5f5f1ff
    | Date:   Fri Dec 26 00:39:04 2003 +0000
    |
    | * win32-nat.c (get_child_debug_event): Keep main thread id around
    | even after thread exits since Windows insists on continuing to
    | report events against it.

A look at the gdb-patches archives did not provide any additional
clues (https://www.sourceware.org/ml/gdb-patches/2003-12/msg00478.html).
It is not clear whether this is still needed or not. This patch
assumes that whatever isue there was, the versions of Windows
we currently support no longer have it.

With that in mind, this commit fixes the issue by deleting the thread
when the inferior sends the exit-process event as opposed to deleting it
later, while starting a new inferior.

This also restores the printing of the thread-exit notification for
the main thread, which was missing before. Looking at the transcript
of the example shown above, we can see 4 thread creation notifications,
and only 3 notifications for thread exits. Now creation and exit
notifications are balanced.

In the handling of EXIT_THREAD_DEBUG_EVENT, the main_thread_id
check is removed because deemed unnecessary: The main thread was
introduced by a CREATE_PROCESS_DEBUG_EVENT, and thus the kernel
is expected to report its death via EXIT_PROCESS_DEBUG_EVENT.

And finally, because the behavior of delete_thread did change
(albeit when getting a value we probably never expected to receive),
this patch also adds a gdb_assert. The purpose is to provide some
immediate information in case there are other callers that mistakenly
call delete_thread with a NULL thread info. This can be useful
information when direct debugging of GDB isn't an option.

gdb/ChangeLog:

	* thread.c (delete_thread_1): Add gdb_assert that THR is not
	NULL. Initialize tpprev to NULL instead of assigning it
	to NULL on the next statement.
	* windows-nat.c (windows_delete_thread): Remove check for
	main_thread_id before printing thread exit notifications.
	(get_windows_debug_event) <EXIT_THREAD_DEBUG_EVENT>:
	Remove thread ID check against main_thread_id.
	<CREATE_PROCESS_DEBUG_EVENT>: Remove call to
	windows_delete_thread.
	<EXIT_PROCESS_DEBUG_EVENT>: Add call to windows_delete_thread.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RX: include - Add RXv3 support.
@ 2019-01-05 14:07 sergiodj+buildbot
  2019-01-05 14:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-05 14:07 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 59581069b4d070ab0ac61047177ee119110d678e ***

Author: Yoshinori Sato <ysato@users.sourceforge.jp>
Branch: master
Commit: 59581069b4d070ab0ac61047177ee119110d678e

RX: include - Add RXv3 support.

	* elf/rx.h (EF_RX_CPU_MASK): Update new bits.
	(E_FLAG_RX_V3): New RXv3 type.
	* opcode/rx.h (RX_Size): Add double size.
	(RX_Operand_Type): Add double FPU registers.
	(RX_Opcode_ID): Add new instuctions.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use std::vector in type stacks
@ 2019-01-06 17:00 sergiodj+buildbot
  2019-01-06 18:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-06 17:00 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 02e12e3806bc60f66e3c446c4dfa9c06a400e604 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 02e12e3806bc60f66e3c446c4dfa9c06a400e604

Use std::vector in type stacks

This removes the use of VEC from parse.c and, at the same time,
removes some related cleanups from c-exp.y.

gdb/ChangeLog
2019-01-06  Tom Tromey  <tom@tromey.com>

	* parser-defs.h (type_ptr): Remove typedef.  Don't declare VEC.
	(union type_stack_elt) <typelist_val>: Now a pointer to
	std::vector.
	(type_stack_cleanup): Don't declare.
	(push_typelist): Update.
	* parse.c (pop_typelist): Return a std::vector.
	(push_typelist): Take a std::vector.
	(follow_types): Update.  Do not free args.
	(type_stack_cleanup): Remove.
	* c-exp.y (struct c_parse_state): New.
	(cpstate): New global.
	(type_aggregate_p, exp, ptr_operator, parameter_typelist)
	(nonempty_typelist): Update.
	(func_mod): Create a new vector.
	(c_parse): Create a c_parse_state.
	(check_parameter_typelist): Do not delete params.
	(function_method): Update.  Do not delete type_list.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove string-related cleanup from c-exp.y
@ 2019-01-06 20:15 sergiodj+buildbot
  2019-01-06 20:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-06 20:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c65bac3846567a8068fe4aa5cfa79da5b193a1af ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: c65bac3846567a8068fe4aa5cfa79da5b193a1af

Remove string-related cleanup from c-exp.y

This removes a string-related cleanup from c-exp.y, by adding a new
member to c_parse_state to store the strings.

gdb/ChangeLog
2019-01-06  Tom Tromey  <tom@tromey.com>

	* c-exp.y (struct c_parse_state) <strings>: New member.
	(operator_stoken): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove remaining cleanups from c-exp.y
@ 2019-01-06 21:39 sergiodj+buildbot
  2019-01-06 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-06 21:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9d30e1fd7cfc742b03b7d973e511f7bfe5cfc295 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9d30e1fd7cfc742b03b7d973e511f7bfe5cfc295

Remove remaining cleanups from c-exp.y

This removes the remaining cleanups from c-exp.y by moving some
globals into c_parse_state, and changing expansion_obstack to be an
auto_obstack.

gdb/ChangeLog
2019-01-06  Tom Tromey  <tom@tromey.com>

	* c-exp.y (struct c_parse_state) <macro_original_text,
	expansion_obstack>: New member.
	(macro_original_text, expansion_obstack): Remove globals.
	(scan_macro_expansion, scanning_macro_expansion)
	(finished_macro_expansion): Update.
	(scan_macro_cleanup): Remove.
	(yylex, c_parse): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] s12z regen
@ 2019-01-07  4:49 sergiodj+buildbot
  2019-01-07  5:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-07  4:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7e9ca91e006d57bd39838ca5196c1bd0db3ef170 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 7e9ca91e006d57bd39838ca5196c1bd0db3ef170

s12z regen

	* configure: Regenerate.
	* po/POTFILES.in: Regenerate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Revert "Sync libiberty sources with master version in gcc repository. Updated stabs demangling and cxxfilt tests to match."
@ 2019-01-07 23:35 sergiodj+buildbot
  2019-01-08  0:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-07 23:35 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4ae80ffc55cd44fe9a5527403f07fee70307b2d7 ***

Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: 4ae80ffc55cd44fe9a5527403f07fee70307b2d7

Revert "Sync libiberty sources with master version in gcc repository.  Updated stabs demangling and cxxfilt tests to match."

The previous commit breaks the GDB build, which is still using functions
cplus_demangle_opname & co.  Since removing these usages is not an
obvious fix, let's revert this patch until we get rid of them.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24065, 32-bit objcopy fails with 64-bit address ... out of range
@ 2019-01-08 12:32 sergiodj+buildbot
  2019-01-08 13:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-08 12:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a9859e01726d085db79cff88550fdb38e2434e42 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: a9859e01726d085db79cff88550fdb38e2434e42

PR24065, 32-bit objcopy fails with 64-bit address ... out of range

	PR 23699
	PR 24065
	* ihex.c (ihex_write_object_contents): Properly check 32-bit
	address range.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Fix skip of `\r` before `\n` in source output
@ 2019-01-08 12:34 sergiodj+buildbot
  2019-01-08 14:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-08 12:34 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 62ea19c1000856c2633a952c52269fca4143931a ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 62ea19c1000856c2633a952c52269fca4143931a

gdb: Fix skip of `\r` before `\n` in source output

In this commit:

  commit 62f29fda90cf1d5a1899f57ef78452471c707fd6
  Date:   Tue Oct 9 22:21:05 2018 -0600

      Highlight source code using GNU Source Highlight

A bug was introduced such that when displaying source code from a file
with lines `\r\n` GDB would print `^M` at the end of each line.

This caused a regression on the test gdb.fortran/nested-funcs.exp,
which happens to have `\r\n` line endings.

gdb/ChangeLog:

	* source.c (print_source_lines_base): Fix skip of '\r' if next
	character is '\n'.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Handle requests to print source lines backward
@ 2019-01-08 12:49 sergiodj+buildbot
  2019-01-08 15:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-08 12:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ec98a4ad5bfcba33deb5cb786c023082adbbfb46 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: ec98a4ad5bfcba33deb5cb786c023082adbbfb46

gdb: Handle requests to print source lines backward

...by which I mean from high line number to low, not, actually
backward character by character!

Commit:

  commit 62f29fda90cf1d5a1899f57ef78452471c707fd6
  Date:   Tue Oct 9 22:21:05 2018 -0600

      Highlight source code using GNU Source Highlight

introduced a regression in the test gdb.linespec/explicit.exp, in
which a request is made to GDB to print a reverse sequence of lines,
from +10 to -10 from the current line number.  The expected behaviour
is that GDB prints nothing.  The above commit changed this so that GDB
now prints:

  Line number 32 out of range; /path/to/gdb/testsuite/gdb.linespec/explicit.c has 71 lines.

which is a little confusing.

This commit fixes the regression, and restores the behaviour that GDB
prints nothing.

While I was passing I noticed a call to `back` on a std::string that I
was concerned could be empty if the request for source lines returns
an empty string.  I don't know if it would be possible for a request
for lines to return an empty string, I guess it should be impossible,
in which case, maybe this should be an assertion, but adding a `empty`
check, seems like an easy and cheap safety net.

gdb/ChangeLog:

	* source.c (print_source_lines_base): Handle requests to print
	reverse line number sequences, and guard against empty lines
	string.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Move declarations from symtab.h to source.h
@ 2019-01-08 13:01 sergiodj+buildbot
  2019-01-08 17:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-08 13:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 583068ca1d855abd09ac979c688f48b0ddaabe0f ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 583068ca1d855abd09ac979c688f48b0ddaabe0f

gdb: Move declarations from symtab.h to source.h

Declarations for functions in source.c are split between source.h and
symtab.h.  This commit moves the small number that are in symtab.h
into source.h.  There's just one file that needs to add an include of
source.h in order to build.

I've moved the function header comments from source.c to source.h
inline with the recommended GDB style.

gdb/ChangeLog:

	* source.c (select_source_symtab): Move header comment to
	declaration in source.h.
	(forget_cached_source_info_for_objfile): Likewise.
	(forget_cached_source_info): Likewise.
	(identify_source_line): Likewise.
	* source.h (identify_source_line): Move declaration from symtab.h
	and add comment from source.c
	(print_source_lines): Likewise.
	(forget_cached_source_info_for_objfile): Likewise.
	(forget_cached_source_info): Likewise.
	(select_source_symtab): Likewise.
	(enum print_source_lines_flag): Move definition from symtab.h.
	* symtab.h (identify_source_line): Move declaration to source.h.
	(print_source_lines): Likewise.
	(forget_cached_source_info_for_objfile): Likewise.
	(forget_cached_source_info): Likewise.
	(select_source_symtab): Likewise.
	(enum print_source_lines_flag): Move definition to source.h.
	* tui/tui-hooks.c: Add 'source.h' include.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix build failure with macOS bison
@ 2019-01-08 18:21 sergiodj+buildbot
  2019-01-08 18:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-08 18:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cfeadda545c4961877969e6a66be79278696e012 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: cfeadda545c4961877969e6a66be79278696e012

Fix build failure with macOS bison

PR gdb/24060 points out a compilation failure of the C, Fortran and Pascal
parsers when they are built using the macOS system bison.  The bug is a name
clash between the VARIABLE token name and the VARIABLE enumerator in ui-out.h.

This patch renames VARIABLE in c-exp.y, f-exp.y and p-exp.y to DOLLAR_VARIABLE
to avoid the clash.  It also renames similar variables in other .y files so
that all languages use the same name.

gdb/ChangeLog
2019-01-07  Tom Tromey  <tom@tromey.com>
2019-01-07  Simon Marchi  <simon.marchi@ericsson.com>

	PR gdb/24060:
	* ada-exp.y (DOLLAR_VARIABLE): Rename from SPECIAL_VARIABLE.
	* ada-lex.l (DOLLAR_VARIABLE): Likewise.
	* c-exp.y (DOLLAR_VARIABLE): Rename from VARIABLE.
	* f-exp.y (DOLLAR_VARIABLE): Likewise.
	* m2-exp.y (DOLLAR_VARIABLE): Rename from INTERNAL_VAR.
	* p-exp.y (DOLLAR_VARIABLE): Rename from VARIABLE.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Adjust bfd/warning.m4 egrep patterns
@ 2019-01-09  3:39 sergiodj+buildbot
  2019-01-09  4:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-09  3:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3107326d3df950b0578a895bb835b2a8dfa8fab7 ***

Author: Andrew Paprocki <andrew@ishiboo.com>
Branch: master
Commit: 3107326d3df950b0578a895bb835b2a8dfa8fab7

Adjust bfd/warning.m4 egrep patterns

Adjust the `bfd/warning.m4` `egrep` patterns to handle preprocessors
that do not define `__GNUC__`, leaving the string in the output.

bfd/
	* warning.m4: Adjust egrep pattern for non-GNU compilers.
	* configure: Regenerate.
binutils/
	* configure: Regenerate.
gas/
	* configure: Regenerate.
gold/
	* configure: Regenerate.
gprof/
	* configure: Regenerate.
ld/
	* configure: Regenerate.
opcodes/
	* configure: Regenerate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/testsuite: Remove interactive prompt case from mi_gdb_test
@ 2019-01-09 10:50 sergiodj+buildbot
  2019-01-09 11:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-09 10:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d820d0c37beda1c29ff50bb1f2ebc1d23114d735 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: d820d0c37beda1c29ff50bb1f2ebc1d23114d735

gdb/testsuite: Remove interactive prompt case from mi_gdb_test

I noticed that when running this test:

  make check-gdb RUNTESTFLAGS="--target_board=native-gdbserver gdb.mi/mi-break.exp"

I would occasionally see some UNRESOLVED test results like this:

  (gdb)
  PASS: gdb.mi/mi-break.exp: mi-mode=separate: breakpoint at main
  Expecting: ^(kill[
  ]+)?(.*[
  ]+[(]gdb[)]
  [ ]*)
  kill
  &"kill\n"
  ~"Kill the program being debugged? (y or n) [answered Y; input not from terminal]\n"
  =thread-group-exited,id="i1"
  ERROR: Got interactive prompt.
  UNRESOLVED: gdb.mi/mi-break.exp: mi-mode=separate:

The problem appears to be that the expect buffer fills up to include
the '(y or n)' prompt without including the following lines.

The pattern supplied by the outer test script is looking for the
following lines.  As the following lines are not present then expect
matches on the interactive prompt case rather than the case for the
user supplied pattern.

The problem with this is that we are not really at an interactive
prompt, GDB is providing an answer for us and then moving on.  When I
examine a successful run of the test the output from GDB is identical,
the only difference is where expect happens to buffer the output from
GDB.

This patch remove all special handling of the interactive prompt
case.  This means that if we ever break GDB and start seeing an
unexpected interactive prompt then tests will rely on a timeout to
fail, instead of having dedicated interactive prompt detection, but
this solves the problem that an auto-answered prompt looks very
similar to an interactive prompt.

With this patch in place I can now leave the following loop running
indefinitely, where before it would fail usually after ~10
iterations.

  while make check-gdb RUNTESTFLAGS="--target_board=native-gdbserver gdb.mi/mi-break.exp"; \
  do /bin/true; \
  done

gdb/testsuite/ChangeLog:

	* lib/mi-support.exp (mi_gdb_test): Remove interactive prompt
	case.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Remove support for old mangling schemes
@ 2019-01-09 18:33 sergiodj+buildbot
  2019-01-09 19:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-09 18:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 041be52673949e5b6cc2b507e55a379a54ab8ee0 ***

Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: 041be52673949e5b6cc2b507e55a379a54ab8ee0

gdb: Remove support for old mangling schemes

An upcoming sync with gcc's libiberty [1] will remove support for old
mangling schemes (GNU v2, Lucid, ARM, HP and EDG).  It will remove the
cplus_demangle_opname function, so we need to get rid of its usages in
GDB (it's a GNU v2 specific function).

I think the changes are mostly relatively obvious, some hacks that were
necessary to support overloaded operators with GNU v2 mangling are not
needed anymore.

The change in stabsread.c is perhaps less obvious.  I think we could get
rid of more code in that region that is specific to old mangling
schemes, but I chose to do only the minimal changes required to remove
the cplus_demangle_opname uses.  There is also a detailed comment just
above that explaining how GNU v2 and v3 mangled symbols are handled, I
decided to leave it as-is, since I wasn't sure which part to remove,
change or leave there.

[1] The commit "Remove support for demangling GCC 2.x era mangling
schemes.", specifically.

gdb/ChangeLog:

	* gdbtypes.c (check_stub_method_group): Remove handling of old
	mangling schemes.
	* linespec.c (find_methods): Likewise.
	* stabsread.c (read_member_functions): Likewise.
	* valops.c (search_struct_method): Likewise.
	(value_struct_elt_for_reference): Likewise.
	* NEWS: Mention this change.

gdb/testsuite/ChangeLog:

	* gdb.cp/demangle.exp (test_gnu_style_demangling): Rename to...
	(test_gnuv3_style_demangling): ... this.
	(test_lucid_style_demangling): Remove.
	(test_arm_style_demangling): Remove.
	(test_hp_style_demangling): Remove.
	(do_tests): Remove calls to the above.

gdb/doc/ChangeLog:

	* gdb.texinfo (Print Settings): Remove mention of specific
	demangle-style values, just refer to the in-process help.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] S12Z: Don't crash when disassembling invalid instructions.
@ 2019-01-09 20:05 sergiodj+buildbot
  2019-01-09 21:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-09 20:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 448b8ca86519cce1216c9db5f0236604a6a33320 ***

Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: 448b8ca86519cce1216c9db5f0236604a6a33320

S12Z: Don't crash when disassembling invalid instructions.

Check for null before dereferencing an operand pointer.  Normally
this situation should never arise, but could happen if a "partial"
instruction is encountered at the end of a file or section.

opcodes/
	* s12z-dis.c (print_insn_s12z):  Do not dereference an
	operand if it is null.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove ALL_PSPACE_OBJFILES
@ 2019-01-10  2:24 sergiodj+buildbot
  2019-01-10  4:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10  2:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 99d89cdea6c296bdd94ce532350d139d3900ff78 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 99d89cdea6c296bdd94ce532350d139d3900ff78

Remove ALL_PSPACE_OBJFILES

This removes the ALL_PSPACE_OBJFILES macro in favor of ranged for
loops.

gdb/ChangeLog
2019-01-09  Tom Tromey  <tom@tromey.com>

	* probe.c (parse_probes_in_pspace): Use all_objfiles.
	* guile/scm-progspace.c (gdbscm_progspace_objfiles): Use
	all_objfiles.
	* objfiles.h (ALL_PSPACE_OBJFILES): Remove.
	* symmisc.c (print_symbol_bcache_statistics)
	(print_objfile_statistics, maintenance_print_objfiles)
	(maintenance_info_symtabs, maintenance_check_symtabs)
	(maintenance_expand_symtabs, maintenance_info_line_tables): Use
	all_objfiles.
	* source.c (forget_cached_source_info): Use all_objfiles.
	* symfile-debug.c (set_debug_symfile): Use all_objfiles.
	* elfread.c (elf_gnu_ifunc_resolve_by_cache)
	(elf_gnu_ifunc_resolve_by_got): Use all_objfiles.
	* objfiles.c (update_section_map): Use all_objfiles.
	(shared_objfile_contains_address_p): Likewise.
	* psymtab.c (maintenance_info_psymtabs): Use all_objfiles.
	* python/py-progspace.c (pspy_get_objfiles): Use all_objfiles.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove most uses of ALL_OBJFILES
@ 2019-01-10  2:36 sergiodj+buildbot
  2019-01-10  5:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10  2:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT aed57c537116ae91f553ac835b3f96d1f87b3bb0 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: aed57c537116ae91f553ac835b3f96d1f87b3bb0

Remove most uses of ALL_OBJFILES

This removes most uses of ALL_OBJFILES, replacing them with ranged for
loops.  The remaining uses are all in macros, and will be removed in
subsequent patches.

gdb/ChangeLog
2019-01-09  Tom Tromey  <tom@tromey.com>

	* symtab.c (iterate_over_symtabs, matching_obj_sections)
	(expand_symtab_containing_pc, lookup_static_symbol)
	(basic_lookup_transparent_type, find_pc_sect_compunit_symtab)
	(find_symbol_at_address, find_line_symtab, find_main_name): Use
	all_objfiles.
	* probe.c (find_probe_by_pc, collect_probes): Use all_objfiles.
	* breakpoint.c (create_overlay_event_breakpoint)
	(create_longjmp_master_breakpoint)
	(create_std_terminate_master_breakpoint)
	(create_exception_master_breakpoint): Use all_objfiles.
	* linux-thread-db.c (try_thread_db_load_from_pdir)
	(has_libpthread): Use all_objfiles.
	* ada-lang.c (add_nonlocal_symbols): Use all_objfiles.
	* linespec.c (iterate_over_all_matching_symtabs)
	(search_minsyms_for_name): Use all_objfiles.
	* maint.c (maintenance_info_sections): Use all_objfiles.
	* main.c (captured_main_1): Use all_objfiles.
	* spu-tdep.c (spu_objfile_from_frame): Use all_objfiles.
	* guile/scm-objfile.c (gdbscm_objfiles): Use all_objfiles.
	* guile/scm-pretty-print.c
	(ppscm_find_pretty_printer_from_objfiles): Use all_objfiles.
	* solib-spu.c (append_ocl_sos): Use all_objfiles.
	* symmisc.c (maintenance_print_symbols): Use all_objfiles.
	(maintenance_print_msymbols): Use all_objfiles.
	* source.c (select_source_symtab): Use all_objfiles.
	* jit.c (jit_find_objf_with_entry_addr): Use all_objfiles.
	* symfile.c (remove_symbol_file_command)
	(expand_symtabs_matching, map_symbol_filenames): Use
	all_objfiles.
	* ppc-linux-tdep.c (ppc_linux_spe_context_inferior_created): Use
	all_objfiles.
	* dwarf2-frame.c (dwarf2_frame_find_fde): Use all_objfiles.
	* objc-lang.c (find_methods): Use all_objfiles.
	* objfiles.c (have_partial_symbols, have_full_symbols)
	(have_minimal_symbols, qsort_cmp)
	(default_iterate_over_objfiles_in_search_order): Use
	all_objfiles.
	* hppa-tdep.c (find_unwind_entry): Use all_objfiles.
	* psymtab.c (maintenance_print_psymbols): Use all_objfiles.
	(maintenance_check_psymtabs): Use all_objfiles.
	(ALL_PSYMTABS): Remove.
	* compile/compile-object-run.c (do_module_cleanup): Use
	all_objfiles.
	* blockframe.c (find_pc_partial_function): Use all_objfiles.
	* cp-support.c (add_symbol_overload_list_qualified): Use
	all_objfiles.
	* windows-tdep.c (windows_iterate_over_objfiles_in_search_order):
	Use all_objfiles.
	* dwarf-index-write.c (save_gdb_index_command): Use all_objfiles.
	* python/py-xmethods.c (gdbpy_get_matching_xmethod_workers): Use
	all_objfiles.
	* python/py-objfile.c (objfpy_lookup_objfile_by_name)
	(objfpy_lookup_objfile_by_build_id): Use all_objfiles.
	* python/py-prettyprint.c (find_pretty_printer_from_objfiles):
	Uses all_objfiles.
	* solib.c (solib_read_symbols): Use all_objfiles


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS
@ 2019-01-10  2:59 sergiodj+buildbot
  2019-01-10  8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10  2:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5325b9bf1ee283c40f076334eb3ea66e1f0a6ade ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5325b9bf1ee283c40f076334eb3ea66e1f0a6ade

Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS

This removes the ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS macros,
replacing their uses with ranged for loops.

In a couple of spots, a new declaration was needed in order to work
around shadowing; these are just temporary and are removed in a
subsequent patch.

gdb/ChangeLog
2019-01-09  Tom Tromey  <tom@tromey.com>

	* symtab.c (search_symbols)
	(default_collect_symbol_completion_matches_break_on): Use
	objfile_msymbols.
	* ada-lang.c (ada_lookup_simple_minsym)
	(ada_collect_symbol_completion_matches): Use objfile_msymbols.
	* minsyms.c (find_solib_trampoline_target): Use objfile_msymbols.
	* hppa-tdep.c (hppa_lookup_stub_minimal_symbol): Use
	objfile_msymbols.
	* coffread.c (coff_symfile_read): Use objfile_msymbols.
	* symmisc.c (dump_msymbols): Use objfile_msymbols.
	* objc-lang.c (find_methods): Use objfile_msymbols.
	(info_selectors_command, info_classes_command): Likewise.
	* stabsread.c (scan_file_globals): Use objfile_msymbols.
	* objfiles.h (class objfile_msymbols): New.
	(ALL_OBJFILE_MSYMBOLS): Remove.
	(ALL_MSYMBOLS): Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove ALL_COMPUNIT_FILETABS
@ 2019-01-10  3:56 sergiodj+buildbot
  2019-01-10 15:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10  3:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5accd1a07e080c386918da413e0f9e90c4cab58a ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5accd1a07e080c386918da413e0f9e90c4cab58a

Remove ALL_COMPUNIT_FILETABS

This removes ALL_COMPUNIT_FILETABS, replacing its uses with ranged for
loops.

Because this is still used in the ALL_OBJFILE_FILETABS macro, in some
places a declaration had to be removed or renamed to avoid shadowing.

gdb/ChangeLog
2019-01-09  Tom Tromey  <tom@tromey.com>

	* symtab.h (ALL_COMPUNIT_FILETABS): Remove.
	(compunit_filetabs): New.
	* symtab.c (iterate_over_some_symtabs, find_pc_sect_line): Use
	compunit_filetabs.
	(info_sources_command, make_source_files_completion_list): Remove
	declaration.
	* symmisc.c (print_objfile_statistics, dump_objfile)
	(maintenance_print_symbols): Remove declaration.
	(maintenance_info_symtabs): Use compunit_filetabs.
	(maintenance_info_line_tables): Likewise.
	* source.c (select_source_symtab): Change local variable name.
	(forget_cached_source_info_for_objfile): Remove declaration.
	* objfiles.h (ALL_OBJFILE_FILETABS): Use compunit_filetabs.
	* objfiles.c (objfile_relocate1): Remove declaration.
	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Remove
	declaration.
	* maint.c (count_symtabs_and_blocks): Use compunit_filetabs.
	* coffread.c (coff_symtab_read): Remove declaration.
	* buildsym.c (buildsym_compunit::end_symtab_with_blockvector): Use
	compunit_filetabs.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove ALL_OBJFILE_PSYMTABS
@ 2019-01-10  4:42 sergiodj+buildbot
  2019-01-10 20:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10  4:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b22a7c6ab6173fe4fa1352e14d00a234bbf50346 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b22a7c6ab6173fe4fa1352e14d00a234bbf50346

Remove ALL_OBJFILE_PSYMTABS

This removes the ALL_OBJFILE_PSYMTABS macro, replacing its uses with
ranged for loops.

gdb/ChangeLog
2019-01-09  Tom Tromey  <tom@tromey.com>

	* dbxread.c (dbx_end_psymtab): Use objfile_psymtabs.
	* mdebugread.c (parse_partial_symbols): Use objfile_psymtabs.
	* psymtab.c (ALL_OBJFILE_PSYMTABS_REQUIRED): Remove.
	(psym_map_symtabs_matching_filename, find_pc_sect_psymtab)
	(psym_lookup_symbol, psym_find_last_source_symtab)
	(psym_forget_cached_source_info, psym_print_stats)
	(psym_expand_symtabs_for_function, psym_expand_all_symtabs)
	(psym_expand_symtabs_with_fullname, psym_map_symbol_filenames)
	(psym_map_matching_symbols, psym_expand_symtabs_matching)
	(psym_find_compunit_symtab_by_address)
	(maintenance_print_psymbols, maintenance_info_psymtabs)
	(maintenance_check_psymtabs): Use ranged for.
	* psymtab.h (class objfile_psymtabs): New.
	(require_partial_symbols): Return objfile_psymtabs.
	* psympriv.h (ALL_OBJFILE_PSYMTABS): Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move some declarations to mdebugread.h
@ 2019-01-10 14:26 sergiodj+buildbot
  2019-01-10 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 14:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0e8f53badb3df16f4104890395d9324a5bcf568d ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0e8f53badb3df16f4104890395d9324a5bcf568d

Move some declarations to mdebugread.h

This moves a couple of mdebugread-related declarations from symfile.h
to mdebugread.h, which seemed more appropriate.

gdb/ChangeLog
2019-01-10  Tom Tromey  <tom@tromey.com>

	* symfile.h (mdebug_build_psymtabs, elfmdebug_build_psymtabs):
	Don't declare.
	* mipsread.c: Include mdebugread.h.
	* mdebugread.h (mdebug_build_psymtabs, elfmdebug_build_psymtabs):
	Declare.
	* elfread.c: Include mdebugread.h.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove ALL_OBJFILE_FILETABS
@ 2019-01-10 14:57 sergiodj+buildbot
  2019-01-10 16:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 14:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d5da8b3c0d99e71c27832a4e9b60c61eebf9767c ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d5da8b3c0d99e71c27832a4e9b60c61eebf9767c

Remove ALL_OBJFILE_FILETABS

This removes ALL_OBJFILE_FILETABS, replacing its uses with ranged for
loops.

gdb/ChangeLog
2019-01-09  Tom Tromey  <tom@tromey.com>

	* symmisc.c (print_objfile_statistics, dump_objfile)
	(maintenance_print_symbols): Use compunit_filetabs.
	* source.c (forget_cached_source_info_for_objfile): Use
	compunit_filetabs.
	* objfiles.h (ALL_OBJFILE_FILETABS): Remove.
	(ALL_FILETABS): Use compunit_filetabs.
	* objfiles.c (objfile_relocate1): Use compunit_filetabs.
	* coffread.c (coff_symtab_read): Use compunit_filetabs.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change add_psymbol_to_list to use an enum
@ 2019-01-10 15:05 sergiodj+buildbot
  2019-01-11  3:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 15:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 75aedd27e6a2c58734ab44cc7cad8491f19d059a ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 75aedd27e6a2c58734ab44cc7cad8491f19d059a

Change add_psymbol_to_list to use an enum

This changes add_psymbol_to_list to use an enum, rather than a pointer
to a vector, to decide where to put the new symbol.  This reduces the
number of direct references to the static_psymbols and global_psymbols
members of the objfile, which is handy in a later patch.

gdb/ChangeLog
2019-01-10  Tom Tromey  <tom@tromey.com>

	* xcoffread.c (scan_xcoff_symtab): Update.
	* psymtab.c (add_psymbol_to_list): Replace "list" parameter with
	"where".
	* mdebugread.c (parse_partial_symbols)
	(handle_psymbol_enumerators): Update.
	* dwarf2read.c (add_partial_symbol, load_partial_dies): Update.
	* dbxread.c (read_dbx_symtab): Update.
	* psympriv.h (psymbol_placement): New enum.
	(add_psymbol_to_list): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change create_demangled_names_hash to take an objfile_per_bfd_storage
@ 2019-01-10 15:30 sergiodj+buildbot
  2019-01-11  6:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 15:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0f14768a2a6ba894ae81010e8e70c99ecdb39a73 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0f14768a2a6ba894ae81010e8e70c99ecdb39a73

Change create_demangled_names_hash to take an objfile_per_bfd_storage

This changes create_demangled_names_hash to take an
objfile_per_bfd_storage parameter.  This makes it clearer where it is
storing the objects it allocates.

gdb/ChangeLog
2019-01-10  Tom Tromey  <tom@tromey.com>

	* symtab.c (create_demangled_names_hash): Change argument to be an
	objfile_per_bfd_storage.
	(symbol_set_names): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Introduce objfile::reset_psymtabs
@ 2019-01-10 16:06 sergiodj+buildbot
  2019-01-11  9:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 16:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6d6a12bf87bc6dd89b2533b5d0490fdcc00df9ad ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6d6a12bf87bc6dd89b2533b5d0490fdcc00df9ad

Introduce objfile::reset_psymtabs

This introduces a new method, objfile::reset_psymtabs, and changes
reread_symbols to use it.  This method simply destroys the existing
partial symbols and recreates the psymtab_storage object.

This patch fixes a latent bug -- namely, that reread_symbols should
clear objfile::psymbol_map, but does not.  I can submit that
separately if you'd prefer.

gdb/ChangeLog
2019-01-10  Tom Tromey  <tom@tromey.com>

	* symfile.c (reread_symbols): Call objfile->reset_psymtabs.
	* objfiles.h (objfile::reset_psymtabs): New method.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Allocate the address map on the psymtab obstack
@ 2019-01-10 16:18 sergiodj+buildbot
  2019-01-11 11:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 16:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5923a04c0c489054d275e3b0441626ce1ae7344a ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5923a04c0c489054d275e3b0441626ce1ae7344a

Allocate the address map on the psymtab obstack

After this patch, the psymtab address map will now be allocated on the
psymtab obstack rather than the objfile obstack.  This also changes
the psymtab storage object to make the obstack private; this will be
used later.

gdb/ChangeLog
2019-01-10  Tom Tromey  <tom@tromey.com>

	* psymtab.h (psymtab_storage::obstack): New method.
	<m_obstack>: Rename from obstack; now private.
	* psymtab.c (psymtab_storage): Update.
	* dwarf2read.c (create_addrmap_from_index)
	(create_addrmap_from_aranges, dwarf2_build_psymtabs_hard):
	Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move more allocations to psymtab obstack
@ 2019-01-10 16:31 sergiodj+buildbot
  2019-01-11 12:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 16:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5af70966484d6b26fa7824c0cda110140cd4959b ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5af70966484d6b26fa7824c0cda110140cd4959b

Move more allocations to psymtab obstack

This moves a couple more psymtab-related allocations to the psymtab
obstack.

gdb/ChangeLog
2019-01-10  Tom Tromey  <tom@tromey.com>

	* psymtab.c (add_psymbol_to_bcache): Pass psymtab obstack to
	PSYMBOL_SET_LANGUAGE.
	(allocate_psymtab): Allocate psymtab on the psymtab obstack.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add psymtab_storage::allocate_dependencies
@ 2019-01-10 16:43 sergiodj+buildbot
  2019-01-11 13:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 16:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a9342b62885d5119593fa4330924e031e14c6406 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: a9342b62885d5119593fa4330924e031e14c6406

Add psymtab_storage::allocate_dependencies

This adds a new method to psymtab_storage to allocate storage for
psymtab dependencies, then changes the symbol readers to use it.  This
has the effect of moving the storage to the psymtab storage obstack.

gdb/ChangeLog
2019-01-10  Tom Tromey  <tom@tromey.com>

	* xcoffread.c (xcoff_end_psymtab): Use allocate_dependencies.
	* psymtab.h (psymtab_storage::allocate_dependencies): New method.
	* mdebugread.c (parse_partial_symbols): Use
	allocate_dependencies.
	* dwarf2read.c (dwarf2_create_include_psymtab): Use
	allocate_dependencies.
	(process_psymtab_comp_unit_reader)
	(build_type_psymtab_dependencies): Likewise.
	* dbxread.c (dbx_end_psymtab): Use allocate_dependencies.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move psymtabs to their own obstack
@ 2019-01-10 17:09 sergiodj+buildbot
  2019-01-11 16:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 17:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8d7bcccb82d9a7efccd75d9552d007c62031e855 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 8d7bcccb82d9a7efccd75d9552d007c62031e855

Move psymtabs to their own obstack

Previously, the psymtab obstack was just a pointer to the objfile
obstack.  This patch changes psymtabs to use their own obstack,
instead.  A gdb::optional is used to avoid unnecessary allocation when
the obstack is not needed.

After this patch, the psymtab code lifetime model is that, in the core
psymtab code, objects allocated on the psymtab obstack may point to
other such objects, or to objects on the per-BFD obstack -- but never
to the objfile obstack.

Note however that this invariant is only obeyed the core psymtab code,
and even there not quite fully: there is still a link from the psymtab
to the full symtab.

Symbol readers are free to work however they like; and in particular,
even after this patch, in practice all symbol readers violate this
invariant via the read_symtab_private field.

gdb/ChangeLog
2019-01-10  Tom Tromey  <tom@tromey.com>

	* objfiles.h (objfile::reset_psymtabs): Update.
	* objfiles.c (objfile::objfile): Update.
	* psymtab.h (psymtab_storage::obstack): Update.
	(psymtab_storage::m_obstack): Use gdb::optional.
	(class psymtab_storage): Update comment.  Remove objfile
	parameter.
	* psymtab.c (psymtab_storage::psymtab_storage): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix tracepoint.c:parse_tracepoint_definition leak (and one more)
@ 2019-01-10 18:44 sergiodj+buildbot
  2019-01-11 22:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 18:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 67aa1f3c2881e607081d9e1b57be3e7544c2c45c ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 67aa1f3c2881e607081d9e1b57be3e7544c2c45c

Fix tracepoint.c:parse_tracepoint_definition leak (and one more)

Coverity points out that gdb/tracepoint.c:parse_tracepoint_definition
can leak 'cond' in this line:

      cond = (char *) xmalloc (2 * xlen + 1);

That can leak because we're in a loop and 'cond' may have already been
xmalloc'ed into in a previous iteration.  That won't normally happen,
because we don't expect to see a tracepoint definition with multiple
conditions listed, but, it doesn't hurt to be pedantically correct,
in case some stub manages to send something odd back to GDB.

At first I thought I'd just replace the xmalloc call with:

      cond = (char *) xrealloc (cond, 2 * xlen + 1);

and be done with it.  However, my pedantic self realizes that
warning() can throw as well (due to pagination + Ctrl-C), so I fixed
it using gdb::unique_xmalloc_ptr instead.

While doing this, I noticed that these vectors in struct uploaded_tp:

  std::vector<char *> actions;
  std::vector<char *> step_actions;

hold heap-allocated strings, but nothing is freeing the strings,
AFAICS.

So I ended up switching all the heap-allocated strings in uploaded_tp
to unique pointers.  This patch is the result of that.

I also wrote an alternative, but similar patch that uses std::string
throughout instead of gdb::unique_xmalloc_ptr, but in the end reverted
it because the code didn't look that much better, and I kind of
dislike replacing pointers with fat std::string's (3 or 4 times the
size of a pointer) in structures.

gdb/ChangeLog:
2019-01-10  Pedro Alves  <palves@redhat.com>

	* breakpoint.c (read_uploaded_action)
	(create_tracepoint_from_upload): Adjust to use
	gdb::unique_xmalloc_ptr.
	* ctf.c (ctf_write_uploaded_tp):
	(SET_ARRAY_FIELD): Use emplace_back.
	(SET_STRING_FIELD): Adjust to use gdb::unique_xmalloc_ptr.
	* tracefile-tfile.c (tfile_write_uploaded_tp):
	* tracepoint.c (parse_tracepoint_definition): Adjust to use
	gdb::unique_xmalloc_ptr.
	* tracepoint.h (struct uploaded_tp) <cond, actions, step_actions,
	at_string, cond_string, cmd_strings>: Replace char pointers
	with gdb::unique_xmalloc_ptr.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/23712: Introduce multidictionary's
@ 2019-01-10 22:27 sergiodj+buildbot
  2019-01-11 23:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 22:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c7748ee9ceb5a394658cd07aeb0445924599e442 ***

Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: c7748ee9ceb5a394658cd07aeb0445924599e442

gdb/23712: Introduce multidictionary's

gdb/23712 is a new manifestation of the now-infamous (at least to me)
symtab/23010 assertion failure (DICT_LANGUAGE == SYMBOL_LANGAUGE).

An example of the problem (using test case from symtab/23010):

Reading symbols from /home/rdiez/rdiez/arduino/JtagDue/BuildOutput/JtagDue-obj-release/firmware.elf...done.
(gdb) p SysTick_Handler
dwarf2read.c:9715: internal-error: void dw2_add_symbol_to_list(symbol*, pending**): Assertion `(*listhead) == NULL || (SYMBOL_LANGUAGE ((*listhead)->symbol[0]) == SYMBOL_LANGUAGE (symbol))' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)

This assertion was added specifically to catch this condition (of adding
symbols of different languages to a single pending list).

The problems we're now seeing on systems utilizing DWARF debugging seem to
be caused by the use of LTO, which adds a CU with an artificial DIE of
language C99 which references DIEs in other CUs of language C++.

Thus, we create a dictionary containing symbols of C99 but end up
stuffing C++ symbols into it, and the dw2_add_symbol_to_list triggers.

The approach taken here to fix this is to introduce multi-language
dictionaries to "replace" the standard, single-language dictionaries
used today.

Note to reviewers: This patch introduces some temporary functions to
aide with review.  This and other artifacts (such as "See dictionary.h"
which appear incorrect) will all be valid at the end of the series.

This first patch introduces the new multidictionary and its API (which
is, by design, identical to the old dictionary interface).  It also
mutates dict_create_hashed and dict_create_linear so that they take
a std::vector instead of the usual struct pending linked list.  This will
be needed later on.

This patch does /not/ actually enable multidictionary's.  That is left
for a subsequent patch in the series.

I've done exhaustive performance testing with this approach, and I've
attempted to minimize the overhead for the (overwhelmingly) most common
one-language scenario.

On average, a -g3 -O0 GDB (the one we developers use) will see
approximately a 4% slowdown when initially reading symbols. [I've
tested only GDB and firefox with -readnow.]  When using -O2, this
difference shrinks to ~0.5%.  Since a number of runs with these
patches actually run /faster/ than unpatched GDB, I conclude that
these tests have at least a 0.5% error margin.

On our own gdb.perf test suite, again, results appear to be pretty
negligible.  Differences to unpatched GDB range from -7.8% (yes,
patched version is again faster than unpatched) to 27%.  All tests
lying outside "negligible," such as the 27% slowdown, involve a total
run time of 0.0007 (or less) with smaller numbers of CUs/DSOs (usually 10
or 100).  In all cases, the follow-up tests with more CUs/DSOs is never
more than 3% difference to the baseline, unpatched GDB.

In my opinion, these results are satisfactory.

gdb/ChangeLog:

	PR gdb/23712
	PR symtab/23010
	* dictionary.c: Include unordered_map.
	(pending_to_vector): New function.
	(dict_create_hashed_1, dict_create_linear_1, dict_add_pending_1):
	Rewrite the non-"_1" functions to take vector instead
	of linked list.
	(dict_create_hashed, dict_create_linear, dict_add_pending): Use the
	"new" _1 versions of the same name.
	(multidictionary): Define.
	(std::hash<enum language): New definition.
	(collate_pending_symbols_by_language, mdict_create_hashed)
	(mdict_create_hashed_expandable, mdict_create_linear)
	(mdict_create_linear_expandable, mdict_free)
	(find_language_dictionary, create_new_language_dictionary)
	(mdict_add_symbol, mdict_add_pending, mdict_iterator_first)
	(mdict_iterator_next, mdict_iter_match_first, mdict_iter_match_next)
	(mdict_size, mdict_empty): New functions.
	* dictionary.h (mdict_iterator): Define.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/23712: Use new multidictionary API
@ 2019-01-10 22:39 sergiodj+buildbot
  2019-01-12  0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 22:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b026f59345a336cabf74719fce9f96cab7c7ab4d ***

Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: b026f59345a336cabf74719fce9f96cab7c7ab4d

gdb/23712: Use new multidictionary API

This patch builds on the previous by enabling the `new' multidictionary
API.  A lot of the hunks are simply textual replacements of "dict_"
with "mdict_" and similar transformations.

A word of warning, even with the use of multidictionaries, the code
still does not satisfactorily fix the reported problems with gdb/23712
(or gdb/23010). We still have additional changes to make before that
happens.

gdb/ChangeLog:

	PR gdb/23712
	PR symtab/23010
	* dictionary.h (struct dictionary): Replace declaration with
	multidictionary.
	(dict_create_hashed, dict_create_hashed_expandable)
	(dict_create_linear, dict_create_linear_expandable)
	(dict_free, dict_add_symbol, dict_add_pending, dict_empty)
	(dict_iterator_first, dict_iterator_next, dict_iter_match_first)
	(dict_iter_match_next, dict_size): Rename to "mdict_" versions
	taking multidictionary argument.
	[ALL_DICT_SYMBOLS]: Update for multidictionary.
	* block.h (struct block) <dict>: Change to multidictionary
	and rename `multidict'.
	* block.c, buildsym.c, jit.c, mdebugread.c, objfiles.c,
	symmisc.c: Update all dictionary references to multidictionary.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/23712: Remove dw2_add_symbol_to_list
@ 2019-01-10 23:02 sergiodj+buildbot
  2019-01-12  8:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 23:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d3cb68081112a4976979df3f8eae7ca926e76519 ***

Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: d3cb68081112a4976979df3f8eae7ca926e76519

gdb/23712: Remove dw2_add_symbol_to_list

Finally, we can remove dw2_add_symbol_to_list since the wrapper function
originally introduced to catch this multi-language scenario is no longer
needed.  With multi-language dictionaries, we can now support adding
symbols of multiple languages, negating the need for the assertion
entirely.

This patch should now fix gdb/23712 (and symtab/23010).  At least it will
if the NULL buildsym_compunit problem doesn't strike first (see gdb/23773).

gdb/ChangeLog:

	PR gdb/23712
	PR symtab/23010
	* dwarf2read.c (dw2_add_symbol_to_list): Remove.
	(fixup_go_packaging, new_symbol): Use add_symbol_to_list.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Replace inf_threads_iterator with next_iterator
@ 2019-01-10 23:27 sergiodj+buildbot
  2019-01-12 11:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 23:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7cf47dc46635d8ec14c315e1f17480b56f4808b8 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7cf47dc46635d8ec14c315e1f17480b56f4808b8

Replace inf_threads_iterator with next_iterator

This changes inf_threads_iterator and some range adapters in
thread-iter.h to use next_iterator and next_adapter instead.

gdb/ChangeLog
2019-01-10  Tom Tromey  <tom@tromey.com>

	* thread-iter.h (inf_threads_iterator): Use next_iterator.
	(basic_inf_threads_range): Remove.
	(inf_threads_range, inf_non_exited_threads_range)
	(safe_inf_threads_range): Use next_adapter.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make psymtab_storage::free_psymtabs private
@ 2019-01-11 14:49 sergiodj+buildbot
  2019-01-11 15:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-11 14:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b596a3c77da2387d7e5a3855717d65ce33bdfb58 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b596a3c77da2387d7e5a3855717d65ce33bdfb58

Make psymtab_storage::free_psymtabs private

This adds a new psymtab allocation method to psymtab_storage and
changes the free_psymtabs member to be private.  While not strictly
necessary, this seems like a decent cleanup, and also makes it simpler
to move psymtabs off of obstacks entirely, should that prove
desirable.

gdb/ChangeLog
2019-01-10  Tom Tromey  <tom@tromey.com>

	* psymtab.h (psymtab_storage::allocate_psymtab): New method.
	<free_psymtabs>: Now private.
	* psymtab.c (psymtab_storage::allocate_psymtab): Implement.
	(allocate_psymtab): Use new method.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Fix incorrect variable name in scoped_switch_fork_info
@ 2019-01-11 17:34 sergiodj+buildbot
  2019-01-11 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-11 17:34 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT da584958006fd0a3f3dccd25a0a54fa79a0976bc ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: da584958006fd0a3f3dccd25a0a54fa79a0976bc

gdb: Fix incorrect variable name in scoped_switch_fork_info

The previous commit:

  commit 1ef8573cc77c91feeef3edab74d383d20809eb33
  Date:   Wed Jan 9 14:02:39 2019 +0000

      gdb: Improve scoped_switch_fork_info class

contained a bug, an incorrect variable name was used. Fixed in this
commit.

gdb/ChangeLog:

	* linux-fork.c (scoped_switch_fork_info)
	<~scoped_switch_fork_info>: Fix incorrect variable name.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/23712: Cleanup/Remove temporary dictionary functions
@ 2019-01-12  1:32 sergiodj+buildbot
  2019-01-12  2:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-12  1:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 63a20375b401e24c30987367a10b47b289612e1c ***

Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: 63a20375b401e24c30987367a10b47b289612e1c

gdb/23712: Cleanup/Remove temporary dictionary functions

Now that multidictionary's are being used, there is no longer any need
to retain the four temporary functions introduced in the beginning of
this series.

This patch removes them.

As an additional cleanup, since the single-language dictionaries are
no longer used outside dictionary.c, make all of those functions
static.

gdb/ChangeLog:

	PR gdb/23712
	PR symtab/23010
	* dictionary.c (pending_to_vector): Remove.
	(dict_create_hashed_1, dict_create_linear_1, dict_add_pending_1):
	Remove _1 suffix, replacing functions of the same name.  Update
	all callers.
	(dict_create_hashed, dict_create_hashed_expandable)
	(dict_create_linear, dict_create_linear_expandable, dict_free)
	(dict_add_symbol, dict_add_pending, dict_size, dict_empty):
	Make functions static.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/23712: Test case for multidictionary
@ 2019-01-12  9:25 sergiodj+buildbot
  2019-01-12  9:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-12  9:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b56f80d8b27dffd0f8c02b8b11068b71b9fec375 ***

Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: b56f80d8b27dffd0f8c02b8b11068b71b9fec375

gdb/23712: Test case for multidictionary

This is a test derived from one of the reproducers in symtab/23010.
The DIE tree used here is typical of compilations with LTO, where an
artificial parent DIE of language C99 imports DIEs of other languages.

gdb/testsuite/ChangeLog:

	PR gdb/23712
	PR symtab/23010
	* gdb.dwarf2/multidictionary.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] expand a bit the in-GDB help for the "catch exception" help text
@ 2019-01-12 15:21 sergiodj+buildbot
  2019-01-12 15:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-12 15:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 60a90376792474224f3d22b1d9813844a3b3589a ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 60a90376792474224f3d22b1d9813844a3b3589a

expand a bit the in-GDB help for the "catch exception" help text

One of our users remarked that the help doesn't mention the fact that
the "catch exception" supports the special argument "unhandled" to catch
exceptions which do not have a handler. This patch changes the output
of...

 | (gdb) help catch exception
 | Catch Ada exceptions, when raised.
 | With an argument, catch only exceptions with the given name.

... to ...

 | (gdb) help catch exception
 | Catch Ada exceptions, when raised.
 | Usage: catch exception [ ARG ]
 |
 | Without any argument, stop when any Ada exception is raised.
 | If ARG is "unhandled" (without the quotes), only stop when the exception
 | being raised does not have a handler (and will therefore lead to the task's
 | termination).
 | Otherwise, the catchpoint only stops when the name of the exception being
 | raised is the same as ARG.

gdb/ChangeLog:

        * ada-lang.c (_initialize_ada_language): Expand the help text
        for the "catch exception" command.

Tested on x86_64-linux, no regression.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add RXv3 instructions.
@ 2019-01-12 16:44 sergiodj+buildbot
  2019-01-12 17:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-12 16:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4ce8c66d19abec8a768add7f6102e856157a3952 ***

Author: Yoshinori Sato <ysato@users.sourceforge.jp>
Branch: master
Commit: 4ce8c66d19abec8a768add7f6102e856157a3952

Add RXv3 instructions.

        * rx-decode.opc (DSIZE): New. double size.
        (_ld): New. dmov size attribute.
        (PSCALE): Add double size.
        (DCR, DDR, DDRH, DDRL, DCND): New. Double FPU registers.
        (SCR, SDR, SDRH, SDRL): Likewise.
        (S2DR, S2CR): Likewise.
        (SDD): New. double displacement.
        (DL): New. Set dmov size attribute.
        (rx_decode_opcode): Add RXv3 instructions.
        * rx-decode.c: Regenerate.
        * rx-dis.c (size_names): Add double entry.
        (opsize_names): Likewise.
        (double_register_names): New. Double FPU registers.
        (double_register_high_names): Likewise.
        (double_register_low_names): Likewise.
        (double_register_control_names): Likewise.
        (double_condition_names): dcmp condition.
        (print_insn_rx): Add  bfmov / bfmovz output.
        Add double FPU output.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: xtensa: fix register counters for xtensa-linux
@ 2019-01-13 21:50 sergiodj+buildbot
  2019-01-13 22:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-13 21:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1a782351162b1158484923493b567231d1aec7d2 ***

Author: Max Filippov <jcmvbkbc@gmail.com>
Branch: master
Commit: 1a782351162b1158484923493b567231d1aec7d2

gdb: xtensa: fix register counters for xtensa-linux

Commit 37d9e0623102 ("gdb: xtensa: handle privileged registers") changed
how the tdep->num_regs and tdep->num_pseudo_regs are calculated, but
didn't update these numbers in the gdbarch for the xtensa-linux target.
As a result xtensa-linux-gdb behaves as xtensa-elf-gdb and cannot
communicate with the linux gdbserver.
Fix tdep->num_pseudo_regs calculation and call set_gdbarch_num_regs and
set_gdbarch_num_pseudo_regs in xtensa_linux_init_abi.

gdb/
2019-01-13  Max Filippov  <jcmvbkbc@gmail.com>

	* xtensa-linux-tdep.c (xtensa_linux_init_abi): Update
	tdep->num_pseudo_regs. Add calls to set_gdbarch_num_regs and
	set_gdbarch_num_pseudo_regs.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Sync config.guess, config.sub from GCC
@ 2019-01-14 15:04 sergiodj+buildbot
  2019-01-14 16:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-14 15:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d63f2be21bfbedb8a83b5c5f317896bf2bb19a95 ***

Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Branch: master
Commit: d63f2be21bfbedb8a83b5c5f317896bf2bb19a95

Sync config.guess, config.sub from GCC

	Merge from GCC:
	PR target/88535
	* config.guess: Import upstream version 2019-01-03.
	* config.sub: Import upstream version 2019-01-01.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [PowerPC] Fix "info vector" test in gdb.arch/altivec-regs.exp
@ 2019-01-14 19:46 sergiodj+buildbot
  2019-01-14 20:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-14 19:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a7b8d68257c52281b08d9d858805e15667be6606 ***

Author: Pedro Franco de Carvalho <pedromfc@linux.ibm.com>
Branch: master
Commit: a7b8d68257c52281b08d9d858805e15667be6606

[PowerPC] Fix "info vector" test in gdb.arch/altivec-regs.exp

This patch fixes one of the tests in gdb.arch/altivec-regs.exp that
was passing an incorrect list to gdb_expect_list, which always
matched.

gdb/testsuite/ChangeLog:
2019-01-14  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>

	* gdb.arch/altivec-regs.exp: Fix the list passed to
	gdb_expect_list when testing "info vector".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Include <string.h> to dis-asm.h to get strchr declaration
@ 2019-01-14 21:59 sergiodj+buildbot
  2019-01-14 23:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-14 21:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8f0a21480babea5b22cba13a3bee722408ca57e3 ***

Author:   <kryukov@frtk.ru>
Branch: master
Commit: 8f0a21480babea5b22cba13a3bee722408ca57e3

Include <string.h> to dis-asm.h to get strchr declaration

Include <string.h> to dis-asm.h to get strchr declaration

include/Changelog:
2019-01-11  Pavel I. Kryukov  <kryukov@frtk.ru>

        * dis-asm.h: include <string.h>


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix placement of output in TUI mode
@ 2019-01-14 23:32 sergiodj+buildbot
  2019-01-15  0:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-14 23:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bbd94648f2115338bd94e9800ba0e37f09d98a79 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bbd94648f2115338bd94e9800ba0e37f09d98a79

Fix placement of output in TUI mode

The fix for PR tui/28819 regressed gdb command output a bit.  In
"nonl" mode, pressing the Enter key will result in a newline not being
echoed properly, so that gdb output for the command will begin on the
same line as the input.

This patch changes gdb_wgetch to echo the newline.  I have only tested
this interactively, as the TUI doesn't have automated tests in
general.

gdb/ChangeLog
2019-01-14  Tom Tromey  <tom@tromey.com>

	PR tui/28819:
	* tui/tui-io.c (gdb_wgetch): Print \r when needed.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Constify some remote-notif functions
@ 2019-01-15  1:15 sergiodj+buildbot
  2019-01-15  4:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-15  1:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bb27775165d9b992120371383012404e213b1981 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bb27775165d9b992120371383012404e213b1981

Constify some remote-notif functions

This constifies the "buf" arguments to various remote-notif functions
and updates the users.

gdb/ChangeLog
2019-01-14  Tom Tromey  <tom@tromey.com>

	* remote-notif.c (handle_notification, remote_notif_ack)
	(remote_notif_parse): Make "buf" const.
	* remote-notif.h (struct notif_client) <parse, ack>: Make "buf"
	const.
	(remote_notif_parse, remote_notif_ack, handle_notification):
	Likewise.
	* remote.c (remote_notif_stop_parse): Make "buf" const.
	(remote_target::remote_parse_stop_reply): Make "buf" const.
	(remote_notif_stop_ack): Make "buf" const.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] sim: Fix definition of SIM_ARANGE_INLINE
@ 2019-01-15 23:04 sergiodj+buildbot
  2019-01-16  1:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-15 23:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT dc7e818497f0af0a3ee569f6eee0ad74e19b4bc2 ***

Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: dc7e818497f0af0a3ee569f6eee0ad74e19b4bc2

sim: Fix definition of SIM_ARANGE_INLINE

If HAVE_INLINE is false, SIM_ARANGE_INLINE is currently defined as

    #define SIM_ARANGE_INLINE EXTERN

However, EXTERN is not defined anywhere, leading to errors such as:

    In file included from
    /mipt-mips/simulator/../../sim/common/sim-basics.h:147:0,
                     from /mipt-mips/simulator/export/gdb/sim-main.h:13,
                     from /mipt-mips/simulator/export/gdb/gdb_interface.cpp:7:
    /mipt-mips/simulator/../../sim/common/sim-arange.h:71:27: error: EXTERN
    does not name a type; did you mean EUSERS?
     #define SIM_ARANGE_INLINE EXTERN
                               ^
    /mipt-mips/simulator/../../sim/common/sim-arange.h:76:1: note: in expansion
    of macro SIM_ARANGE_INLINE
     SIM_ARANGE_INLINE int
     ^~~~~~~~~~~~~~~~~

I (Simon) have reproduced the problem by simply removing the HAVE_INLINE
definition.  This was originally reported by Pavel I. Kryukov
<kryukov@frtk.ru>.

sim/common/ChangeLog:

	* sim-arange.h (SIM_ARANGE_INLINE): Change EXTERN to extern.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] S12Z: Emit RELOC_S12Z_OPR instead of RELOC_EXT24 where appropriate.
@ 2019-01-16 13:55 sergiodj+buildbot
  2019-01-16 14:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-16 13:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d5dcaf1b59e77047e10a1f246095d6b21f7d9772 ***

Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: d5dcaf1b59e77047e10a1f246095d6b21f7d9772

S12Z: Emit RELOC_S12Z_OPR instead of RELOC_EXT24 where appropriate.

When assembling instructions which involve OPR references, emit
RELOC_S12Z_OPR instead of RELOC_EXT24.

bfd/
	* bfd-in2.h [BFD_RELOC_S12Z_OPR]: New reloc.
	* libbfd.h: regen.
	* elf32-s12z.c (eld_s12z_howto_table): R_S12Z_OPR takes non zero
	source field.  (md_apply_fix): Apply final fix
	to BFD_RELOC_S12Z_OPR.
	* reloc.c[BFD_RELOC_S12Z_OPR]: New reloc.

gas/
	* config/tc-s12z.c (emit_opr): Emit BFD_RELOC_S12Z_OPR instead of
	BFD_RELOC_24.
	* testsuite/gas/s12z/opr-indirect-expr.d: Expect R_S12Z_OPR instead
	of R_S12Z_EXT24.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Introduce dwarf2_cu::get_builder
@ 2019-01-16 19:54 sergiodj+buildbot
  2019-01-16 20:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-16 19:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c24bdb023c8e1fa969d6eb945059fa8ed0d490c7 ***

Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: c24bdb023c8e1fa969d6eb945059fa8ed0d490c7

Introduce dwarf2_cu::get_builder

This patch is an attempt to deal with a variety of bugs reported where
GDB segfaults attempting to access a dwarf2_cu's builder.  In certain
circumstances, this builder can be NULL.  This is especially common
when inheriting DIEs via inlined subroutines in other CUs.  The test
case demonstrates one such situation reported by users.  See gdb/23773,
rhbz1638798, and dups for other concrete examples.

The approach taken here is to save the ancestor CU into the dwarf2_cu of
all CUs with DIEs that are "imported."  This can happen whenever
follow_die_offset and friends are called.  This essentially introduces a
chain of CUs that caused the importation of a DIE from a CU.  Whenever
a builder is requested of a CU that has none, the ancestors are searched
for the first one with a builder.

A design side effect of this is that the builder can now only be
accessed by getter and setter methods because the builder itself
is private.

The bulk of the patch is relatively mindless text conversion from
"cu->builder" to "cu->get_builder ()".  I've included one test which
was derived from one (of the many) bugs reported on the issue in both
sourceware and Fedora bugzillas.

gdb/ChangeLog:

	PR gdb/23773
	* dwarf2read.c (dwarf2_cu) <ancestor>: New field.
	<builder>: Rename to ..
	<m_builder>: ... this and make private.
	(dwarf2_cu::get_builder): New method.  Change all users of
	`builder' to use this method.
	(dwarf2_start_symtab): Move to ...
	(dwarf2_cu::start_symtab): ... here.  Update all callers
	(setup_type_unit_groups): Move to ...
	(dwarf2_cu::setup_type_unit_groups): ... here.  Update all
	callers.
	(dwarf2_cu::reset_builder): New method.
	(process_full_compunit, process_full_type_unit): Use
	dwarf2_cu::reset_builder.
	(follow_die_offset): Record the ancestor CU if it is different
	from the followed DIE's CU.
	(follow_die_sig_1): Likewise.

gdb/testsuite/ChangeLog:

	PR gdb/23773
	* gdb.dwarf2/inlined_subroutine-inheritance.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Merge ELF attribute for ld.
@ 2019-01-16 21:51 sergiodj+buildbot
  2019-01-17  1:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-16 21:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7d7a7d7ccf6047cc5b480064e9eb9489542c0dd7 ***

Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 7d7a7d7ccf6047cc5b480064e9eb9489542c0dd7

RISC-V: Merge ELF attribute for ld.

	2019-01-16  Kito Cheng  <kito@andestech.com>
		    Nelson Chu  <nelson@andestech.com>

	bfd/
	* elfnn-riscv.c (in_subsets): New.
	(out_subsets): Likewise.
	(merged_subsets): Likewise.
	(riscv_std_ext_p): Likewise.
	(riscv_non_std_ext_p): Likewise.
	(riscv_std_sv_ext_p): Likewise.
	(riscv_non_std_sv_ext_p): Likewise.
	(riscv_version_mismatch): Likewise.
	(riscv_i_or_e_p): Likewise.
	(riscv_merge_std_ext): Likewise.
	(riscv_merge_non_std_and_sv_ext): Likewise.
	(riscv_merge_arch_attr_info): Likewise.
	(riscv_merge_attributes): Likewise.
	(_bfd_riscv_elf_merge_private_bfd_data): Merge attribute.
	ld/
	* testsuite/ld-elf/orphan-region.d: XFAIL for RISC-V, because add new
	section.
	* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Add new tests.
	* testsuite/ld-riscv-elf/attr-merge-arch-01.d: New test.
	* testsuite/ld-riscv-elf/attr-merge-arch-01a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-arch-01b.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-arch-02.d: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-arch-02a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-arch-02b.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-arch-03.d: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-arch-03a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-arch-03b.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-arch-failed-01a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-arch-failed-01b.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-priv-spec-a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-priv-spec-b.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-priv-spec.d: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-stack-align-a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-stack-align-b.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-stack-align-failed-a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-stack-align-failed-b.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-stack-align-failed.d: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-stack-align.d: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-01.d: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-01a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-01b.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-02.d: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-02a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-02b.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-03.d: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-03a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-03b.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-04.d: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-04a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-04b.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-05.d: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-05a.s: Likewise.
	* testsuite/ld-riscv-elf/attr-merge-strict-align-05b.s: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Actually remove definitions of DEFINE_NON_INLINE_P and DEFINE_INLINE_P
@ 2019-01-16 22:21 sergiodj+buildbot
  2019-01-17  3:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-16 22:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b84bb29de922b727ae8c37e88c670b299a3c52d8 ***

Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: b84bb29de922b727ae8c37e88c670b299a3c52d8

Actually remove definitions of DEFINE_NON_INLINE_P and DEFINE_INLINE_P

I applied the patch "Do not expand macros to 'defined'" by hand because
I couldn't apply it with git-am, and of course forgot to remove the
macro definitions.  This patch fixes it, and also makes the ChangeLog
entry a bit cleaner.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Support ELF attribute for gas and readelf.
@ 2019-01-16 22:52 sergiodj+buildbot
  2019-01-16 23:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-16 22:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2dc8dd17cd595bd7a1b0824c83380af52e633fc1 ***

Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 2dc8dd17cd595bd7a1b0824c83380af52e633fc1

RISC-V: Support ELF attribute for gas and readelf.

	2019-01-16  Kito Cheng  <kito@andestech.com>
		    Nelson Chu  <nelson@andestech.com>

	bfd/
	* elfnn-riscv.c (riscv_elf_obj_attrs_arg_type): New.
	(elf_backend_obj_attrs_vendor): Define.
	(elf_backend_obj_attrs_section_type): Likewise.
	(elf_backend_obj_attrs_section): Likewise.
	(elf_backend_obj_attrs_arg_type): Define as
	riscv_elf_obj_attrs_arg_type.
	* elfxx-riscv.c (riscv_estimate_digit): New.
	(riscv_estimate_arch_strlen1): Likewise.
	(riscv_estimate_arch_strlen): Likewise.
	(riscv_arch_str1): Likewise.
	(riscv_arch_str): Likewise.
	* elfxx-riscv.h (riscv_arch_str): Declare.
	binutils/
	* readelf.c (get_riscv_section_type_name): New function.
	(get_section_type_name): Add handler for RISC-V.
	(riscv_attr_tag_t): Declare.
	(riscv_attr_tag): New.
	(display_riscv_attribute): New function.
	(process_attributes): Add handler for RISC-V.
	* testsuite/binutils-all/strip-3.d: Remove .riscv.attribute
	section.
	gas/
	* config/tc-riscv.c (DEFAULT_RISCV_ATTR): Define to 0 if not defined.
	(riscv_set_options): Add `arch_attr` field.
	(riscv_opts): Set default value for arch_attr.
	(riscv_write_out_arch_attr): New.
	(riscv_set_public_attributes): Likewise.
	(riscv_md_end): Likewise.
	(riscv_convert_symbolic_attribute): Likewise.
	(s_riscv_attribute): Likewise.
	(explicit_arch_attr): Likewise.
	(riscv_pseudo_table): Add .attribute to the table.
	(options): Add OPTION_ARCH_ATTR and OPTION_NO_ARCH_ATTR
	enumeration constants.
	(md_longopts): Add `march-attr' and `mno-arch-attr' options.
	(md_parse_option): Handle the new options.
	(md_show_usage): Document the `march-attr' option.
	* config/tc-riscv.h (md_end): Define as riscv_md_end
	(riscv_md_end): Declare.
	(CONVERT_SYMBOLIC_ATTRIBUTE): Define as
	riscv_convert_symbolic_attribute.
	(riscv_convert_symbolic_attribute): Declare.
	(start_assemble): Declare.
	* testsuite/gas/elf/elf.exp: Adjust test case for section2.e.
	* testsuite/gas/elf/section2.e-riscv: New.
	* testsuite/gas/riscv/attribute-01.d: New test
	* testsuite/gas/riscv/attribute-02.d: Likewise.
	* testsuite/gas/riscv/attribute-03.d: Likewise.
	* testsuite/gas/riscv/attribute-04.d: Likewise.
	* testsuite/gas/riscv/attribute-04.s: Likewise.
	* testsuite/gas/riscv/attribute-05.d: Likewise.
	* testsuite/gas/riscv/attribute-05.s: Likewise.
	* testsuite/gas/riscv/attribute-06.d: Likewise.
	* testsuite/gas/riscv/attribute-06.s: Likewise.
	* testsuite/gas/riscv/attribute-07.d: Likewise.
	* testsuite/gas/riscv/attribute-07.s: Likewise.
	* testsuite/gas/riscv/attribute-08.d: Likewise.
	* testsuite/gas/riscv/attribute-08.s: Likewise.
	* testsuite/gas/riscv/attribute-unknown.d: Likewise.
	* testsuite/gas/riscv/attribute-unknown.s: Likewise.
	* testsuite/gas/riscv/empty.l: Likewise.
	* doc/c-riscv.texi (.attribute): Add documentation.
	* configure.ac (--enable-default-riscv-attribute): New options.
	* configure: Re-generate.
	* config.in: Re-generate.
	include/
	* elf/riscv.h (SHT_RISCV_ATTRIBUTES): Define.
	(Tag_RISCV_arch): Likewise.
	(Tag_RISCV_priv_spec): Likewise.
	(Tag_RISCV_priv_spec_minor): Likewise.
	(Tag_RISCV_priv_spec_revision): Likewise.
	(Tag_RISCV_unaligned_access): Likewise.
	(Tag_RISCV_stack_align): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Replace "the the" with "the"
@ 2019-01-17 17:38 sergiodj+buildbot
  2019-01-17 18:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-17 17:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6471e7d23de333a63a119220d59b920c6aaef562 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6471e7d23de333a63a119220d59b920c6aaef562

Replace "the the" with "the"

This replaces "the the" with "the" in various comments.

Tested by rebuilding.  This didn't test the solib-dsbt.c change, but
it looks harmless.

gdb/ChangeLog
2019-01-17  Tom Tromey  <tromey@bapiya>

	* valprint.c: Replace "the the" with "the".
	* symtab.c: Replace "the the" with "the".
	* solib.c: Replace "the the" with "the".
	* solib-dsbt.c: Replace "the the" with "the".
	* linespec.c: Replace "the the" with "the".
	* dwarf2loc.h: Replace "the the" with "the".
	* amd64-windows-tdep.c: Replace "the the" with "the".
	* aarch64-tdep.c: Replace "the the" with "the".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove cleanups from solib-target.c
@ 2019-01-17 17:50 sergiodj+buildbot
  2019-01-17 19:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-17 17:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 776489e0a79a14cb3f1138d4e4158ab9a8c7ecf3 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 776489e0a79a14cb3f1138d4e4158ab9a8c7ecf3

Remove cleanups from solib-target.c

This removes the remaining cleanups from solib-target.c, plus a VEC,
by using std::vector and std::unique_ptr.

Tested by the buildbot.

gdb/ChangeLog
2019-01-17  Tom Tromey  <tom@tromey.com>

	* solib-target.c (lm_info_target_p): Remove typedef.  Don't
	declare VEC.
	(solib_target_parse_libraries): Change return type.
	(library_list_start_segment, library_list_start_section)
	(library_list_end_library, library_list_start_library); Update.
	(solib_target_free_library_list): Remove.
	(solib_target_parse_libraries): Remove cleanup.  Change return
	type.
	(solib_target_current_sos): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change all_objfiles adapter to be a method on program_space
@ 2019-01-17 23:38 sergiodj+buildbot
  2019-01-18  0:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-17 23:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2030c079717475f5b6fad837bb81758891f3b802 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 2030c079717475f5b6fad837bb81758891f3b802

Change all_objfiles adapter to be a method on program_space

This changes the all_objfiles range adapter to be a method on the
program space, and fixes up all the users.

gdb/ChangeLog
2019-01-17  Tom Tromey  <tom@tromey.com>

	* progspace.h (program_space) <objfiles_range>: New typedef.
	<objfiles>: New method.
	<objfiles_head>: Rename from objfiles.
	(object_files): Update.
	* guile/scm-progspace.c (gdbscm_progspace_objfiles): Update.
	* guile/scm-pretty-print.c
	(ppscm_find_pretty_printer_from_objfiles): Update.
	* guile/scm-objfile.c (gdbscm_objfiles): Update.
	* python/py-xmethods.c (gdbpy_get_matching_xmethod_workers):
	Update.
	* python/py-progspace.c (pspy_get_objfiles): Update.
	* python/py-prettyprint.c (find_pretty_printer_from_objfiles):
	Update.
	* python/py-objfile.c (objfpy_lookup_objfile_by_name)
	(objfpy_lookup_objfile_by_build_id): Update.
	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Update.
	* windows-tdep.c (windows_iterate_over_objfiles_in_search_order):
	Update.
	* symtab.c (iterate_over_symtabs, matching_obj_sections)
	(expand_symtab_containing_pc, lookup_objfile_from_block)
	(lookup_static_symbol, basic_lookup_transparent_type)
	(find_pc_sect_compunit_symtab, find_symbol_at_address)
	(find_line_symtab, info_sources_command)
	(default_collect_symbol_completion_matches_break_on)
	(make_source_files_completion_list, find_main_name): Update.
	* symmisc.c (print_symbol_bcache_statistics)
	(print_objfile_statistics, maintenance_print_symbols)
	(maintenance_print_msymbols, maintenance_print_objfiles)
	(maintenance_info_symtabs, maintenance_check_symtabs)
	(maintenance_expand_symtabs, maintenance_info_line_tables):
	Update.
	* symfile.c (remove_symbol_file_command, overlay_invalidate_all)
	(find_pc_overlay, find_pc_mapped_section, list_overlays_command)
	(map_overlay_command, unmap_overlay_command)
	(simple_overlay_update, expand_symtabs_matching)
	(map_symbol_filenames): Update.
	* symfile-debug.c (set_debug_symfile): Update.
	* spu-tdep.c (spu_overlay_update, spu_objfile_from_frame):
	Update.
	* source.c (select_source_symtab, forget_cached_source_info):
	Update.
	* solib.c (solib_read_symbols): Update.
	* solib-spu.c (append_ocl_sos): Update.
	* psymtab.c (maintenance_print_psymbols)
	(maintenance_info_psymtabs, maintenance_check_psymtabs): Update.
	* probe.c (parse_probes_in_pspace, find_probe_by_pc): Update.
	* printcmd.c (info_symbol_command): Update.
	* ppc-linux-tdep.c (ppc_linux_spe_context_inferior_created):
	Update.
	* objfiles.h (class all_objfiles): Remove.
	* objfiles.c (have_partial_symbols, have_full_symbols)
	(have_minimal_symbols, qsort_cmp, update_section_map)
	(shared_objfile_contains_address_p)
	(default_iterate_over_objfiles_in_search_order): Update.
	* objc-lang.c (info_selectors_command, info_classes_command)
	(find_methods): Update.
	* minsyms.c (find_solib_trampoline_target): Update.
	* maint.c (maintenance_info_sections)
	(maintenance_translate_address, count_symtabs_and_blocks):
	Update.
	* main.c (captured_main_1): Update.
	* linux-thread-db.c (try_thread_db_load_from_pdir)
	(has_libpthread): Update.
	* linespec.c (iterate_over_all_matching_symtabs)
	(search_minsyms_for_name): Update.
	* jit.c (jit_find_objf_with_entry_addr): Update.
	* hppa-tdep.c (find_unwind_entry)
	(hppa_lookup_stub_minimal_symbol): Update.
	* gcore.c (gcore_create_callback, objfile_find_memory_regions):
	Update.
	* elfread.c (elf_gnu_ifunc_resolve_by_cache)
	(elf_gnu_ifunc_resolve_by_got): Update.
	* dwarf2-frame.c (dwarf2_frame_find_fde): Update.
	* dwarf-index-write.c (save_gdb_index_command): Update.
	* cp-support.c (add_symbol_overload_list_qualified): Update.
	* breakpoint.c (create_overlay_event_breakpoint)
	(create_longjmp_master_breakpoint)
	(create_std_terminate_master_breakpoint)
	(create_exception_master_breakpoint): Update.
	* blockframe.c (find_pc_partial_function): Update.
	* ada-lang.c (ada_lookup_simple_minsym, add_nonlocal_symbols)
	(ada_collect_symbol_completion_matches)
	(ada_add_global_exceptions): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add compunits range adapter to objfile
@ 2019-01-18  0:03 sergiodj+buildbot
  2019-01-18  3:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-18  0:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b669c95337903d39aa2254e8ea0405c0ac117d24 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b669c95337903d39aa2254e8ea0405c0ac117d24

Add compunits range adapter to objfile

This removes the objfile_compunits range adapter in favor of using a
method on objfile.

2019-01-15  Tom Tromey  <tom@tromey.com>

	* symtab.c (lookup_objfile_from_block)
	(lookup_symbol_in_objfile_symtabs)
	(basic_lookup_transparent_type_1, find_pc_sect_compunit_symtab)
	(find_line_symtab, info_sources_command)
	(default_collect_symbol_completion_matches_break_on)
	(make_source_files_completion_list): Update.
	* symmisc.c (print_objfile_statistics, dump_objfile)
	(maintenance_print_symbols, maintenance_info_symtabs)
	(maintenance_check_symtabs, maintenance_info_line_tables):
	Update.
	* source.c (select_source_symtab)
	(forget_cached_source_info_for_objfile): Update.
	* objfiles.h (class objfile_compunits): Remove.
	(struct objfile) <compunits_range>: New typedef.
	(compunits): New method.
	* objfiles.c (objfile_relocate1): Update.
	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Update.
	* maint.c (count_symtabs_and_blocks): Update.
	* linespec.c (iterate_over_all_matching_symtabs): Update.
	* cp-support.c (add_symbol_overload_list_qualified): Update.
	* coffread.c (coff_symtab_read): Update.
	* ada-lang.c (add_nonlocal_symbols)
	(ada_collect_symbol_completion_matches)
	(ada_add_global_exceptions): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make psymtab range adapter a method on objfile
@ 2019-01-18  0:16 sergiodj+buildbot
  2019-01-18  4:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-18  0:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f252c6d5dc49cb27838e153e863f16ea7895859e ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: f252c6d5dc49cb27838e153e863f16ea7895859e

Make psymtab range adapter a method on objfile

This removes the objfile_psymtabs class in favor of a method on
objfile and on psymtab_storage.

2019-01-16  Tom Tromey  <tom@tromey.com>

	* objfiles.h (struct objfile) <psymtabs>: New method.
	(class objfile_psymtabs): Remove.
	* psymtab.h (class psymtab_storage) <partial_symtab_range>: New
	typedef.
	<range>: New method.
	(require_partial_symbols): Change return type.
	* psymtab.c (require_partial_symbols)
	(psym_expand_symtabs_matching): Update.
	* mdebugread.c (parse_partial_symbols): Update.
	* dbxread.c (dbx_end_psymtab): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make minimal symbol range adapter a method on objfile
@ 2019-01-18  0:41 sergiodj+buildbot
  2019-01-18  7:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-18  0:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7932255de56fb99836b2e712e7dbcfdd5e1f1309 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7932255de56fb99836b2e712e7dbcfdd5e1f1309

Make minimal symbol range adapter a method on objfile

This removes class objfile_msymbols in favor of a method on the
objfile.

2019-01-16  Tom Tromey  <tom@tromey.com>

	* objfiles.h (struct minimal_symbol_iterator): Rename.  Move
	earlier.
	(struct objfile) <msymbols_range>: Move from top level.
	<msymbols>: New method.
	(class objfile_msymbols): Remove.
	* symtab.c (default_collect_symbol_completion_matches_break_on):
	Update.
	* symmisc.c (dump_msymbols): Update.
	* stabsread.c (scan_file_globals): Update.
	* objc-lang.c (info_selectors_command, info_classes_command)
	(find_methods): Update.
	* minsyms.c (find_solib_trampoline_target): Update.
	* hppa-tdep.c (hppa_lookup_stub_minimal_symbol): Update.
	* coffread.c (coff_symfile_read): Update.
	* ada-lang.c (ada_lookup_simple_minsym)
	(ada_collect_symbol_completion_matches): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change all_objfiles_safe adapter to be a method on program_space
@ 2019-01-18  1:13 sergiodj+buildbot
  2019-01-18  1:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-18  1:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7e955d83c4128ec773d84b92487ed1cdfed09938 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7e955d83c4128ec773d84b92487ed1cdfed09938

Change all_objfiles_safe adapter to be a method on program_space

This changes the all_objfiles_safe range adapter to be a method on the
program space, and fixes up all the users.

gdb/ChangeLog
2019-01-15  Tom Tromey  <tom@tromey.com>

	* progspace.h (program_space) <objfiles_safe_range>: New
	typedef.
	<objfiles_safe>: New method.
	* objfiles.h (class all_objfiles_safe): Remove.
	* objfiles.c (free_all_objfiles, objfile_purge_solibs): Update.
	* jit.c (jit_inferior_exit_hook): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Simplify minsym iteration
@ 2019-01-18  5:48 sergiodj+buildbot
  2019-01-18  6:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-18  5:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 604b1bfb46e62d561698397cb5499b487eb0db34 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 604b1bfb46e62d561698397cb5499b487eb0db34

Simplify minsym iteration

This simplifies the minimal symbol iterator, by using
minimal_symbol_count and just doing a somewhat ordinary array-like
iteration.  array_view is nearly usable, except that it is more
convenient for this iterator to return pointers rather than
references.

gdb/ChangeLog
2019-01-16  Tom Tromey  <tom@tromey.com>

	* objfiles.h (class objfile_msymbols) <iterator>: Change argument
	type.  Remove no-argument constructor.
	<iterator::operator++>: Simplify.
	<begin>: Update.
	<end>: Use minimal_symbol_count.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change version to 2.32.51 and regenerate configure and pot files.
@ 2019-01-19 17:08 sergiodj+buildbot
  2019-01-19 18:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-19 17:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f48dfe417e2ceb2251825336fe8769897a4d4b05 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: f48dfe417e2ceb2251825336fe8769897a4d4b05

Change version to 2.32.51 and regenerate configure and pot files.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [MIPS] fix typo in mips_arch_choices.
@ 2019-01-20  2:52 sergiodj+buildbot
  2019-01-20  3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-20  2:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 57299f4831b9afe5923c808534003af665659a31 ***

Author: Chenghua Xu <paul.hua.gm@gmail.com>
Branch: master
Commit: 57299f4831b9afe5923c808534003af665659a31

[MIPS] fix typo in mips_arch_choices.

opcodes/
	* mips-dis.c (mips_arch_choices): Fix typo in
	gs464, gs464e and gs264e descriptors.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix spelling mistakes in BFD library.
@ 2019-01-21 12:52 sergiodj+buildbot
  2019-01-21 13:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-21 12:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT acef8081ec2ce5dc387ee55a04f75fb27ade94ec ***

Author: Yuri Chornoivan <yurchor@ukr.net>
Branch: master
Commit: acef8081ec2ce5dc387ee55a04f75fb27ade94ec

Fix spelling mistakes in BFD library.

	PR 24108
bfd	* elf32-nds32.c (nds32_relocate_section): Add space between words
	in error message.
	* elfnn-riscv.c (riscv_version_mismatch): Fix spelling mistake in
	error message.
	(riscv_i_or_e_p): Likewise.
	(riscv_merge_arch_attr_info): Likewise.

ld	* testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d: Update
	expected error message.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove duplicate or commented-out #includes
@ 2019-01-21 18:41 sergiodj+buildbot
  2019-01-21 19:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-21 18:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT be6d4f74c77c6f521afc873d226480e001cb99c2 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: be6d4f74c77c6f521afc873d226480e001cb99c2

Remove duplicate or commented-out #includes

I wrote a little script to detect duplicate or commented-out #includes
and ran it on gdb.  This patch is the result.  Tested by rebuilding.

gdb/ChangeLog
2019-01-21  Tom Tromey  <tom@tromey.com>

	* ui-out.c: Fix includes.
	* tui/tui-source.c: Fix includes.
	* target.c: Fix includes.
	* remote.c: Fix includes.
	* regcache.c: Fix includes.
	* python/py-block.c: Fix includes.
	* printcmd.c: Fix includes.
	* or1k-tdep.c: Fix includes.
	* mi/mi-main.c: Fix includes.
	* m32r-tdep.c: Fix includes.
	* csky-tdep.c: Fix includes.
	* compile/compile-cplus-types.c: Fix includes.
	* cli/cli-interp.c: Fix includes.

gdb/gdbserver/ChangeLog
2019-01-21  Tom Tromey  <tom@tromey.com>

	* tracepoint.c: Fix includes.
	* remote-utils.c: Fix includes.
	* linux-x86-low.c: Fix includes.

gdb/stubs/ChangeLog
2019-01-21  Tom Tromey  <tom@tromey.com>

	* ia64vms-stub.c: Fix includes.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove the EXTERN define from stabsread.h
@ 2019-01-22 23:15 sergiodj+buildbot
  2019-01-23  0:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-22 23:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d65d5705cd6e972067dfa7ccf1f9e0950c1538ff ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d65d5705cd6e972067dfa7ccf1f9e0950c1538ff

Remove the EXTERN define from stabsread.h

This removes the EXTERN define from stabsread.h.  This is the only
spot that still uses this approach, and it interfered with sorting the
includes in stabsread.c.

Tested by rebuilding.

gdb/ChangeLog
2019-01-22  Tom Tromey  <tom@tromey.com>

	* stabsread.c (EXTERN): Do not define.
	(symnum, next_symbol_text_func, processing_gcc_compilation)
	(within_function, global_sym_chain, global_stabs)
	(previous_stab_code, this_object_header_files)
	(n_this_object_header_files)
	(n_allocated_this_object_header_files): Define.
	* stabsread.h (EXTERN): Never define.  Use "extern".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Include compile-internal.h in gcc-c-plugin.h
@ 2019-01-23  4:20 sergiodj+buildbot
  2019-01-23  5:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23  4:20 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 951d1049fab99c36b2ea827e4eaf954ee1869794 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 951d1049fab99c36b2ea827e4eaf954ee1869794

Include compile-internal.h in gcc-c-plugin.h

gcc-c-plugin.h refers to some types defined in compile-internal.h.
This patch changes the former to include the latter.

gdb/ChangeLog
2019-01-22  Tom Tromey  <tom@tromey.com>

	* compile/gcc-c-plugin.h: Include compile-internal.h.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Do not include py-ref.h in most files
@ 2019-01-23  4:41 sergiodj+buildbot
  2019-01-23  9:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23  4:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3fabc0163acbdffd9d77d7608604f737fc981399 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 3fabc0163acbdffd9d77d7608604f737fc981399

Do not include py-ref.h in most files

py-ref.h can really only be included from a specific spot in
python-internal.h.  The other includes are not useful, and cause
compilation errors if the includes are ever sorted.  So, remove these
includes.

Arguably, py-ref.h should simply not be a separate header.

gdb/ChangeLog
2019-01-22  Tom Tromey  <tom@tromey.com>

	* python/py-arch.c: Do not include py-ref.h.
	* python/py-bpevent.c: Do not include py-ref.h.
	* python/py-cmd.c: Do not include py-ref.h.
	* python/py-continueevent.c: Do not include py-ref.h.
	* python/py-event.h: Do not include py-ref.h.
	* python/py-evtregistry.c: Do not include py-ref.h.
	* python/py-finishbreakpoint.c: Do not include py-ref.h.
	* python/py-frame.c: Do not include py-ref.h.
	* python/py-framefilter.c: Do not include py-ref.h.
	* python/py-function.c: Do not include py-ref.h.
	* python/py-infevents.c: Do not include py-ref.h.
	* python/py-linetable.c: Do not include py-ref.h.
	* python/py-objfile.c: Do not include py-ref.h.
	* python/py-param.c: Do not include py-ref.h.
	* python/py-prettyprint.c: Do not include py-ref.h.
	* python/py-progspace.c: Do not include py-ref.h.
	* python/py-symbol.c: Do not include py-ref.h.
	* python/py-symtab.c: Do not include py-ref.h.
	* python/py-type.c: Do not include py-ref.h.
	* python/py-unwind.c: Do not include py-ref.h.
	* python/py-utils.c: Do not include py-ref.h.
	* python/py-value.c: Do not include py-ref.h.
	* python/py-varobj.c: Do not include py-ref.h.
	* python/py-xmethods.c: Do not include py-ref.h.
	* python/python.c: Do not include py-ref.h.
	* varobj.c: Do not include py-ref.h.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove a comment in compile/compile-cplus-types.c
@ 2019-01-23  5:55 sergiodj+buildbot
  2019-01-23  6:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23  5:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7af7e9b5d8f9dd8f994d59923158d24d77a54bbe ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7af7e9b5d8f9dd8f994d59923158d24d77a54bbe

Remove a comment in compile/compile-cplus-types.c

The include sorter can't handle multi-line comments on the same line
as a #include.  This patch removes the only such comment.

In general I think these sorts of comments do not provide much value:
more often than not, I find that the comment is obsolete in one way or
another, and so the include sorter removes them in most cases.

gdb/ChangeLog
2019-01-22  Tom Tromey  <tom@tromey.com>

	* compile/compile-cplus-types.c: Remove a comment by #include.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Ensure lwp info is created zeroed
@ 2019-01-23 12:06 sergiodj+buildbot
  2019-01-23 18:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 12:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6594e122864119d7b1434599c22b112f98e178ca ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 6594e122864119d7b1434599c22b112f98e178ca

AArch64: Ensure lwp info is created zeroed

The code to not set empty hardware BPs/WPs on new threads will only work
if the newly allocated struct is empty.

Ensure the structure is created zeroed.

This patch removes the remaining racy behaviour on gdb.threads tests
when run on AArch64 Ubuntu.

gdb/ChangeLog:

	* nat/aarch64-linux.c (aarch64_linux_new_thread): Replace XNEW
	with XCNEW.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Updated translations for some of the binutils subdirectory.
@ 2019-01-23 16:32 sergiodj+buildbot
  2019-01-23 17:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 16:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d99386305c5420754e84b9e6073cb061922f4a27 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: d99386305c5420754e84b9e6073cb061922f4a27

Updated translations for some of the binutils subdirectory.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove a warning from symtab.c
@ 2019-01-23 17:48 sergiodj+buildbot
  2019-01-23 19:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 17:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ae73e2e2435cb706b18ba05734aee4137a271b3c ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: ae73e2e2435cb706b18ba05734aee4137a271b3c

Remove a warning from symtab.c

When building symtab.c, I get:

../../binutils-gdb/gdb/language.h: In function void print_symbol_info(search_domain, symbol*, int, const char*):
../../binutils-gdb/gdb/language.h:738:20: warning: *((void*)& l +4) may be used uninitialized in this function [-Wmaybe-uninitialized]
       set_language (m_lang);
       ~~~~~~~~~~~~~^~~~~~~~
../../binutils-gdb/gdb/symtab.c:4613:41: note: *((void*)& l +4) was declared here
   scoped_switch_to_sym_language_if_auto l (sym);
                                         ^

This is another instance of the std::optional problem, see
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635.

However, it seemed straightforward and inexpensive to me to silence
this one, which is what this patch does.

gdb/ChangeLog
2019-01-23  Tom Tromey  <tom@tromey.com>

	* language.h (class scoped_switch_to_sym_language_if_auto):
	Initialize m_lang in both cases.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Rename ESC -> ESC_PARENS
@ 2019-01-23 19:30 sergiodj+buildbot
  2019-01-23 20:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 19:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cf08fb29f8c484a34c4babb015348b220f80a33b ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: cf08fb29f8c484a34c4babb015348b220f80a33b

Rename ESC -> ESC_PARENS

A following patch will include common/preprocessor.h in some .c file
that also includes readline.h, and that revealed a conflict -- ESC is
defined by readline.h as well (actually readline's chardefs.h) with a
completely unrelated meaning:

 #define ESC CTRL('[')

Rename our version to avoid the conflict.

gdb/ChangeLog:
2019-01-23  Pedro Alves  <palves@redhat.com>

	* common/preprocessor.h (ESC): Rename to ...
	(ESC_PARENS): ... this.
	* common/valid-expr.h (CHECK_VALID_EXPR_1, CHECK_VALID_EXPR_2)
	(CHECK_VALID_EXPR_3, CHECK_VALID_EXPR_4): Adjust.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Introduce forward_scope_exit
@ 2019-01-23 19:52 sergiodj+buildbot
  2019-01-23 23:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 19:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5b9b3e53a68f4568dc0b6907e34e763a6c3dd145 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 5b9b3e53a68f4568dc0b6907e34e763a6c3dd145

Introduce forward_scope_exit

This adds a template that can be used to automatically instantiate
scope_exit-like types that wrap some cleanup function.  The
instantiated type has a ctor that has the same interface as the
wrapped function.  While the "magic" is just straight C++11, the
intended use is via the FORWARD_SCOPE_EXIT macro, which is a minimal
macro that avoids spelling out the wrapped function name more than
once:

 void some_function (int foo, object *bar);
 using some_function_fce = FORWARD_SCOPE_EXIT (some_function);
 some_function_fce cleanup (some_int, some_obj_ptr);

The above runs:
  some_function (some_int, some_obj_ptr);
at scope exit.

This is mainly useful as opposed to a simpler SCOPE_EXIT when you need
to:
  - cancel the scope_exit, in which case you need the object's name
  - wrap the scope_exit in a gdb::optional, in which case you need the
    scope_exit's type in advance.

More details in the code comments.

gdb/ChangeLog:
2019-01-23  Pedro Alves  <palves@redhat.com>
	    Andrew Burgess  <andrew.burgess@embecosm.com>

	* common/forward-scope-exit.h: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove remaining cleanup from gdb/breakpoint.c
@ 2019-01-23 20:56 sergiodj+buildbot
  2019-01-24  4:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 20:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 89f8fb50fa16b0ef510dcd6de9088cee9820116d ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 89f8fb50fa16b0ef510dcd6de9088cee9820116d

Remove remaining cleanup from gdb/breakpoint.c

In v3: remove the "have BKPT_CHAIN already discarded" comment too.

The remaining null cleanup in breakpoint.c does not seem to protect
anything, so remove it.

gdb/ChangeLog:
2019-01-23  Tom Tromey  <tom@tromey.com>
	    Pedro Alves  <palves@redhat.com>

	* breakpoint.c (create_breakpoint): Remove cleanup.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove make_bpstat_clear_actions_cleanup
@ 2019-01-23 21:21 sergiodj+buildbot
  2019-01-24  7:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 21:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 694c6bf5425024a8654a5541dec88e4dd6ddafb5 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 694c6bf5425024a8654a5541dec88e4dd6ddafb5

Remove make_bpstat_clear_actions_cleanup

This removes make_bpstat_clear_actions_cleanup, replacing it with uses
of scope_exit.

gdb/ChangeLog:
2019-01-23  Tom Tromey  <tom@tromey.com>
	    Andrew Burgess  <andrew.burgess@embecosm.com>
	    Pedro Alves  <palves@redhat.com>

	* infrun.c (fetch_inferior_event): Use scope_exit.
	* utils.h (make_bpstat_clear_actions_cleanup): Don't declare.
	* top.c (execute_command): Use scope_exit.
	* breakpoint.c (bpstat_do_actions): Use scope_exit.
	* utils.c (do_bpstat_clear_actions_cleanup)
	(make_bpstat_clear_actions_cleanup): Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove cleanup_delete_std_terminate_breakpoint
@ 2019-01-23 21:33 sergiodj+buildbot
  2019-01-24  8:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 21:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2cc83d1e0eeaad9927553ee157f810e43d47d24f ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 2cc83d1e0eeaad9927553ee157f810e43d47d24f

Remove cleanup_delete_std_terminate_breakpoint

This removes cleanup_delete_std_terminate_breakpoint, replacing it
with a use of SCOPE_EXIT.

gdb/ChangeLog:
2019-01-23  Tom Tromey  <tom@tromey.com>
	    Pedro Alves  <palves@redhat.com>

	* infcall.c (cleanup_delete_std_terminate_breakpoint): Remove.
	(call_function_by_hand_dummy): Use SCOPE_EXIT.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update an obsolete cleanup comment
@ 2019-01-23 22:51 sergiodj+buildbot
  2019-01-24 15:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 22:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 979a0d1304ac7d73c9887f851e811d49752923fb ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 979a0d1304ac7d73c9887f851e811d49752923fb

Update an obsolete cleanup comment

This updates a comment in fetch_inferior_event.  The comment refers to
a cleanup that is now a scoped_restore_current_thread.

gdb/ChangeLog:
2019-01-23  Tom Tromey  <tom@tromey.com>

	* infrun.c (fetch_inferior_event): Update comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update cleanup comment in ui-out.h
@ 2019-01-23 23:02 sergiodj+buildbot
  2019-01-24 16:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 23:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 296bd123f76d7f8474b5a2937a49fd619748a871 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 296bd123f76d7f8474b5a2937a49fd619748a871

Update cleanup comment in ui-out.h

ui-out.h refers to some cleanup functions that no longer exist.  This
updates the reference.

gdb/ChangeLog:
2019-01-23  Tom Tromey  <tom@tromey.com>

	* ui-out.h (class ui_out_emit_type): Update comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use SCOPE_EXIT in gdbarch-selftest.c
@ 2019-01-24  1:46 sergiodj+buildbot
  2019-01-24  2:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-24  1:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e587ef421eb7e009c6a69da55c269e9df45093e4 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: e587ef421eb7e009c6a69da55c269e9df45093e4

Use SCOPE_EXIT in gdbarch-selftest.c

Replace the custom local class with a SCOPE_EXIT.

gdb/ChangeLog:
2019-01-23  Pedro Alves  <palves@redhat.com>

	* gdbarch-selftests.c (struct on_exit): Use SCOPE_EXIT.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64 AAPCS: Ignore static members
@ 2019-01-24  8:41 sergiodj+buildbot
  2019-01-24 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-24  8:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 353229bf405113e6ba2fe21f2a691bc63aa94bd8 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 353229bf405113e6ba2fe21f2a691bc63aa94bd8

AArch64 AAPCS: Ignore static members

Static members in C++ structs are global data and therefore not part of the
list of struct members considered for passing in registers.

Note the corresponding code in GCC (from which the GDB AAPCS code is based)
does not have any static member checks due to the static members not being
part of the struct type at that point.

Extend gdb.base/infcall-nested-structs.exp to test structs with static
members when compiled for C++.  XFAIL more cases for x86_64 (see gdb/24104).
For completeness, ensure some test cases have both empty structures and
static members.

Also fixes gdb.dwarf2/dw2-cp-infcall-ref-static.exp.

gdb/ChangeLog:

	* aarch64-tdep.c (aapcs_is_vfp_call_or_return_candidate_1): Check
	for static members.
	(pass_in_v_vfp_candidate): Likewise.

gdb/testsuite/ChangeLog:

	* gdb.base/infcall-nested-structs.c (struct struct_static_02_01):
	New structure.
	(struct struct_static_02_02): Likewise.
	(struct struct_static_02_03): Likewise.
	(struct struct_static_02_04): Likewise.
	(struct struct_static_04_01): Likewise.
	(struct struct_static_04_02): Likewise.
	(struct struct_static_04_03): Likewise.
	(struct struct_static_04_04): Likewise.
	(struct struct_static_06_01): Likewise.
	(struct struct_static_06_02): Likewise.
	(struct struct_static_06_03): Likewise.
	(struct struct_static_06_04): Likewise.
	(cmp_struct_static_02_01): Likewise.
	(cmp_struct_static_02_02): Likewise.
	(cmp_struct_static_02_03): Likewise.
	(cmp_struct_static_02_04): Likewise.
	(cmp_struct_static_04_01): Likewise.
	(cmp_struct_static_04_02): Likewise.
	(cmp_struct_static_04_03): Likewise.
	(cmp_struct_static_04_04): Likewise.
	(cmp_struct_static_06_01): Likewise.
	(cmp_struct_static_06_02): Likewise.
	(cmp_struct_static_06_03): Likewise.
	(cmp_struct_static_06_04): Likewise.
	(call_all): Test new structs.
	* gdb.base/infcall-nested-structs.exp: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] target_pass_signals/target_program_signals: Use gdb::array_view
@ 2019-01-24 21:28 sergiodj+buildbot
  2019-01-24 21:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-24 21:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT adc6a863a9c6c828425d63b12d553f0e8f21e350 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: adc6a863a9c6c828425d63b12d553f0e8f21e350

target_pass_signals/target_program_signals: Use gdb::array_view

This replaces the pointer and length parameters of target_pass_signals
and target_program_signals with a gdb::array_view parameter, and fixes
the fallout.

In infrun.c, the signal_stop, signal_print, signal_program,
signal_catch, signal_pass globals are currently pointers to
heap-allocated memory.  I see no point in that, so I converted them to
arrays.  This allows simplifying the calls to
target_pass_signals/target_program_signals, since we can pass the
array directly, which can implicitly convert to gdb::array_view.

gdb/ChangeLog:
2019-01-24  Pedro Alves  <palves@redhat.com>

	* infrun.c (signal_stop, signal_print, signal_program)
	(signal_catch, signal_pass): Now arrays instead of pointers.
	(update_signals_program_target, do_target_resume)
	(signal_catch_update, handle_command, _initialize_infrun): Adjust.
	* linux-nat.c (linux_nat_target::pass_signals)
	(linux_nat_target::create_inferior, linux_nat_target::attach):
	Adjust.
	* linux-nat.h (linux_nat_target::pass_signals): Adjust.
	* nto-procfs.c (nto_procfs_target::pass_signals): Adjust.
	* procfs.c (procfs_target::pass_signals): Adjust.
	* record-full.c (record_full_target::resume): Adjust.
	* remote.c (remote_target::pass_signals)
	(remote_target::program_signals): Adjust.
	* target-debug.h (target_debug_print_signals): Now takes a
	gdb::array_view as parameter.  Adjust.
	* target.h (target_ops) <pass_signals, program_signals>: Replace
	pointer and length parameters with gdb::array_view.
	(target_pass_signals, target_program_signals): Likewise.
	* target-delegates.c: Regenerate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Remove ldgv and stgv instructions from Armv8.5-A Memory Tagging Extension.
@ 2019-01-25 15:32 sergiodj+buildbot
  2019-01-25 16:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-25 15:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 550fd7bf6858cd708c54ec90412ffb653a932c3d ***

Author: Sudi Das <sudi.das@arm.com>
Branch: master
Commit: 550fd7bf6858cd708c54ec90412ffb653a932c3d

AArch64: Remove ldgv and stgv instructions from Armv8.5-A Memory Tagging Extension.

This patch is part of a series of patches to introduce a few changes to the
Armv8.5-A Memory Tagging Extension. This patch removes the LDGV and STGV
instructions. These instructions needed special infrastructure to support
[base]! style for addressing mode. That is also removed now.

Committed on behalf of Sudakshina Das.

*** gas/ChangeLog ***

	* config/tc-aarch64.c (parse_address_main): Remove support for
	[base]! address expression.
	(parse_operands): Remove support for AARCH64_OPND_ADDR_SIMPLE_2.
	(warn_unpredictable_ldst): Remove support for ldstgv_indexed.
	* testsuite/gas/aarch64/armv8_5-a-memtag.d: Remove tests for ldgv
	and stgv.
	* testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise.
	* testsuite/gas/aarch64/illegal-memtag.l: Likewise.
	* testsuite/gas/aarch64/illegal-memtag.s: Likewise.

*** include/ChangeLog ***

	* opcode/aarch64.h (enum aarch64_opnd): Remove
	AARCH64_OPND_ADDR_SIMPLE_2.
	(enum aarch64_insn_class): Remove ldstgv_indexed.

*** opcodes/ChangeLog ***

	* aarch64-asm.c (aarch64_ins_addr_simple_2): Remove.
	* aarch64-asm.h (ins_addr_simple_2): Likeiwse.
	* aarch64-dis.c (aarch64_ext_addr_simple_2): Likewise.
	* aarch64-dis.h (ext_addr_simple_2): Likewise.
	* aarch64-opc.c (operand_general_constraint_met_p): Remove
	case for ldstgv_indexed.
	(aarch64_print_operand): Remove case for AARCH64_OPND_ADDR_SIMPLE_2.
	* aarch64-tbl.h (struct aarch64_opcode): Remove ldgv and stgv.
	(AARCH64_OPERANDS): Remove ADDR_SIMPLE_2.
	* aarch64-asm-2.c: Regenerated.
	* aarch64-dis-2.c: Regenerated.
	* aarch64-opc-2.c: Regenerated.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Add new STZGM instruction for Armv8.5-A Memory Tagging Extension.
@ 2019-01-25 17:11 sergiodj+buildbot
  2019-01-25 17:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-25 17:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 20a4ca5524b9bde2f5dfb19661570c25a3b05e5d ***

Author: Sudi Das <sudi.das@arm.com>
Branch: master
Commit: 20a4ca5524b9bde2f5dfb19661570c25a3b05e5d

AArch64: Add new STZGM instruction for Armv8.5-A Memory Tagging Extension.

This patch is part of a series of patches to introduce a few changes to the
Armv8.5-A Memory Tagging Extension. This patch adds the new STZGM instruction.

STGZM Xt, [<Xn|SP>]

Committed on behalf of Sudakshina Das.

*** gas/ChangeLog ***

	* testsuite/gas/aarch64/armv8_5-a-memtag.d: New tests for stzgm.
	* testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise.
	* testsuite/gas/aarch64/illegal-memtag.l: Likewise.
	* testsuite/gas/aarch64/illegal-memtag.s: Likewise.

*** opcodes/ChangeLog ***

	* aarch64-asm-2.c: Regenerated.
	* aarch64-dis-2.c: Likewise.
	* aarch64-opc-2.c: Likewise.
	* aarch64-tbl.h (aarch64_opcode): Add new stzgm.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update create-version.sh to use common/version.h
@ 2019-01-25 23:52 sergiodj+buildbot
  2019-01-25 23:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-25 23:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2f5c153e0ce1b0d3aa0c12724cbc8c3b11d4095f ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 2f5c153e0ce1b0d3aa0c12724cbc8c3b11d4095f

Update create-version.sh to use common/version.h

This changes create-version.sh to have the generated file use
common/version.h as the file name.

gdb/ChangeLog
2019-01-25  Tom Tromey  <tom@tromey.com>

	* common/create-version.sh: Use common/version.h.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Normalize includes to use common/
@ 2019-01-26  1:11 sergiodj+buildbot
  2019-01-26  1:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-26  1:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0747795c085d3b2a35da6bb474f32c58ce1b70c8 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0747795c085d3b2a35da6bb474f32c58ce1b70c8

Normalize includes to use common/

This changes all includes to use the form "common/filename.h" rather
than just "filename.h".  This was written by a script.

gdb/ChangeLog
2019-01-25  Tom Tromey  <tom@tromey.com>

	* xtensa-linux-nat.c: Fix common/ includes.
	* xml-support.h: Fix common/ includes.
	* xml-support.c: Fix common/ includes.
	* x86-linux-nat.c: Fix common/ includes.
	* windows-nat.c: Fix common/ includes.
	* varobj.h: Fix common/ includes.
	* varobj.c: Fix common/ includes.
	* value.c: Fix common/ includes.
	* valops.c: Fix common/ includes.
	* utils.c: Fix common/ includes.
	* unittests/xml-utils-selftests.c: Fix common/ includes.
	* unittests/utils-selftests.c: Fix common/ includes.
	* unittests/unpack-selftests.c: Fix common/ includes.
	* unittests/tracepoint-selftests.c: Fix common/ includes.
	* unittests/style-selftests.c: Fix common/ includes.
	* unittests/string_view-selftests.c: Fix common/ includes.
	* unittests/scoped_restore-selftests.c: Fix common/ includes.
	* unittests/scoped_mmap-selftests.c: Fix common/ includes.
	* unittests/scoped_fd-selftests.c: Fix common/ includes.
	* unittests/rsp-low-selftests.c: Fix common/ includes.
	* unittests/parse-connection-spec-selftests.c: Fix common/
	includes.
	* unittests/optional-selftests.c: Fix common/ includes.
	* unittests/offset-type-selftests.c: Fix common/ includes.
	* unittests/observable-selftests.c: Fix common/ includes.
	* unittests/mkdir-recursive-selftests.c: Fix common/ includes.
	* unittests/memrange-selftests.c: Fix common/ includes.
	* unittests/memory-map-selftests.c: Fix common/ includes.
	* unittests/lookup_name_info-selftests.c: Fix common/ includes.
	* unittests/function-view-selftests.c: Fix common/ includes.
	* unittests/environ-selftests.c: Fix common/ includes.
	* unittests/copy_bitwise-selftests.c: Fix common/ includes.
	* unittests/common-utils-selftests.c: Fix common/ includes.
	* unittests/cli-utils-selftests.c: Fix common/ includes.
	* unittests/array-view-selftests.c: Fix common/ includes.
	* ui-file.c: Fix common/ includes.
	* tui/tui-io.c: Fix common/ includes.
	* tracepoint.h: Fix common/ includes.
	* tracepoint.c: Fix common/ includes.
	* tracefile-tfile.c: Fix common/ includes.
	* top.h: Fix common/ includes.
	* top.c: Fix common/ includes.
	* thread.c: Fix common/ includes.
	* target/waitstatus.h: Fix common/ includes.
	* target/waitstatus.c: Fix common/ includes.
	* target.h: Fix common/ includes.
	* target.c: Fix common/ includes.
	* target-memory.c: Fix common/ includes.
	* target-descriptions.c: Fix common/ includes.
	* symtab.h: Fix common/ includes.
	* symfile.c: Fix common/ includes.
	* stap-probe.c: Fix common/ includes.
	* spu-linux-nat.c: Fix common/ includes.
	* sparc-nat.c: Fix common/ includes.
	* source.c: Fix common/ includes.
	* solib.c: Fix common/ includes.
	* solib-target.c: Fix common/ includes.
	* ser-unix.c: Fix common/ includes.
	* ser-tcp.c: Fix common/ includes.
	* ser-pipe.c: Fix common/ includes.
	* ser-base.c: Fix common/ includes.
	* selftest-arch.c: Fix common/ includes.
	* s12z-tdep.c: Fix common/ includes.
	* rust-exp.y: Fix common/ includes.
	* rs6000-aix-tdep.c: Fix common/ includes.
	* riscv-tdep.c: Fix common/ includes.
	* remote.c: Fix common/ includes.
	* remote-notif.h: Fix common/ includes.
	* remote-fileio.h: Fix common/ includes.
	* remote-fileio.c: Fix common/ includes.
	* regcache.h: Fix common/ includes.
	* regcache.c: Fix common/ includes.
	* record-btrace.c: Fix common/ includes.
	* python/python.c: Fix common/ includes.
	* python/py-type.c: Fix common/ includes.
	* python/py-inferior.c: Fix common/ includes.
	* progspace.h: Fix common/ includes.
	* producer.c: Fix common/ includes.
	* procfs.c: Fix common/ includes.
	* proc-api.c: Fix common/ includes.
	* printcmd.c: Fix common/ includes.
	* ppc-linux-nat.c: Fix common/ includes.
	* parser-defs.h: Fix common/ includes.
	* osdata.c: Fix common/ includes.
	* obsd-nat.c: Fix common/ includes.
	* nat/x86-linux.c: Fix common/ includes.
	* nat/x86-linux-dregs.c: Fix common/ includes.
	* nat/x86-dregs.h: Fix common/ includes.
	* nat/x86-dregs.c: Fix common/ includes.
	* nat/ppc-linux.c: Fix common/ includes.
	* nat/mips-linux-watch.h: Fix common/ includes.
	* nat/mips-linux-watch.c: Fix common/ includes.
	* nat/linux-waitpid.c: Fix common/ includes.
	* nat/linux-ptrace.h: Fix common/ includes.
	* nat/linux-ptrace.c: Fix common/ includes.
	* nat/linux-procfs.c: Fix common/ includes.
	* nat/linux-personality.c: Fix common/ includes.
	* nat/linux-osdata.c: Fix common/ includes.
	* nat/linux-namespaces.c: Fix common/ includes.
	* nat/linux-btrace.h: Fix common/ includes.
	* nat/linux-btrace.c: Fix common/ includes.
	* nat/fork-inferior.c: Fix common/ includes.
	* nat/amd64-linux-siginfo.c: Fix common/ includes.
	* nat/aarch64-sve-linux-ptrace.c: Fix common/ includes.
	* nat/aarch64-linux.c: Fix common/ includes.
	* nat/aarch64-linux-hw-point.h: Fix common/ includes.
	* nat/aarch64-linux-hw-point.c: Fix common/ includes.
	* namespace.h: Fix common/ includes.
	* mips-linux-tdep.c: Fix common/ includes.
	* minsyms.c: Fix common/ includes.
	* mi/mi-parse.h: Fix common/ includes.
	* mi/mi-main.c: Fix common/ includes.
	* mi/mi-cmd-env.c: Fix common/ includes.
	* memrange.h: Fix common/ includes.
	* memattr.c: Fix common/ includes.
	* maint.h: Fix common/ includes.
	* maint.c: Fix common/ includes.
	* main.c: Fix common/ includes.
	* machoread.c: Fix common/ includes.
	* location.c: Fix common/ includes.
	* linux-thread-db.c: Fix common/ includes.
	* linux-nat.c: Fix common/ includes.
	* linux-fork.c: Fix common/ includes.
	* inline-frame.c: Fix common/ includes.
	* infrun.c: Fix common/ includes.
	* inflow.c: Fix common/ includes.
	* inferior.h: Fix common/ includes.
	* inferior.c: Fix common/ includes.
	* infcmd.c: Fix common/ includes.
	* inf-ptrace.c: Fix common/ includes.
	* inf-child.c: Fix common/ includes.
	* ia64-linux-nat.c: Fix common/ includes.
	* i387-tdep.c: Fix common/ includes.
	* i386-tdep.c: Fix common/ includes.
	* i386-linux-tdep.c: Fix common/ includes.
	* i386-linux-nat.c: Fix common/ includes.
	* i386-go32-tdep.c: Fix common/ includes.
	* i386-fbsd-tdep.c: Fix common/ includes.
	* i386-fbsd-nat.c: Fix common/ includes.
	* guile/scm-type.c: Fix common/ includes.
	* guile/guile.c: Fix common/ includes.
	* go32-nat.c: Fix common/ includes.
	* gnu-nat.c: Fix common/ includes.
	* gdbthread.h: Fix common/ includes.
	* gdbarch-selftests.c: Fix common/ includes.
	* gdb_usleep.c: Fix common/ includes.
	* gdb_select.h: Fix common/ includes.
	* gdb_bfd.c: Fix common/ includes.
	* gcore.c: Fix common/ includes.
	* fork-child.c: Fix common/ includes.
	* findvar.c: Fix common/ includes.
	* fbsd-nat.c: Fix common/ includes.
	* event-top.c: Fix common/ includes.
	* event-loop.c: Fix common/ includes.
	* dwarf2read.c: Fix common/ includes.
	* dwarf2loc.c: Fix common/ includes.
	* dwarf2-frame.c: Fix common/ includes.
	* dwarf-index-cache.c: Fix common/ includes.
	* dtrace-probe.c: Fix common/ includes.
	* disasm-selftests.c: Fix common/ includes.
	* defs.h: Fix common/ includes.
	* csky-tdep.c: Fix common/ includes.
	* cp-valprint.c: Fix common/ includes.
	* cp-support.h: Fix common/ includes.
	* cp-support.c: Fix common/ includes.
	* corelow.c: Fix common/ includes.
	* completer.h: Fix common/ includes.
	* completer.c: Fix common/ includes.
	* compile/compile.c: Fix common/ includes.
	* compile/compile-loc2c.c: Fix common/ includes.
	* compile/compile-cplus-types.c: Fix common/ includes.
	* compile/compile-cplus-symbols.c: Fix common/ includes.
	* command.h: Fix common/ includes.
	* cli/cli-dump.c: Fix common/ includes.
	* cli/cli-cmds.c: Fix common/ includes.
	* charset.c: Fix common/ includes.
	* build-id.c: Fix common/ includes.
	* btrace.h: Fix common/ includes.
	* btrace.c: Fix common/ includes.
	* breakpoint.h: Fix common/ includes.
	* breakpoint.c: Fix common/ includes.
	* ax.h:
	(enum agent_op): Fix common/ includes.
	* ax-general.c (struct aop_map): Fix common/ includes.
	* ax-gdb.c: Fix common/ includes.
	* auxv.c: Fix common/ includes.
	* auto-load.c: Fix common/ includes.
	* arm-tdep.c: Fix common/ includes.
	* arch/riscv.c: Fix common/ includes.
	* arch/ppc-linux-common.c: Fix common/ includes.
	* arch/i386.c: Fix common/ includes.
	* arch/arm.c: Fix common/ includes.
	* arch/arm-linux.c: Fix common/ includes.
	* arch/arm-get-next-pcs.c: Fix common/ includes.
	* arch/amd64.c: Fix common/ includes.
	* arch/aarch64.c: Fix common/ includes.
	* arch/aarch64-insn.c: Fix common/ includes.
	* arch-utils.c: Fix common/ includes.
	* amd64-windows-tdep.c: Fix common/ includes.
	* amd64-tdep.c: Fix common/ includes.
	* amd64-sol2-tdep.c: Fix common/ includes.
	* amd64-obsd-tdep.c: Fix common/ includes.
	* amd64-nbsd-tdep.c: Fix common/ includes.
	* amd64-linux-tdep.c: Fix common/ includes.
	* amd64-linux-nat.c: Fix common/ includes.
	* amd64-fbsd-tdep.c: Fix common/ includes.
	* amd64-fbsd-nat.c: Fix common/ includes.
	* amd64-dicos-tdep.c: Fix common/ includes.
	* amd64-darwin-tdep.c: Fix common/ includes.
	* agent.c: Fix common/ includes.
	* ada-lang.h: Fix common/ includes.
	* ada-lang.c: Fix common/ includes.
	* aarch64-tdep.c: Fix common/ includes.

gdb/gdbserver/ChangeLog
2019-01-25  Tom Tromey  <tom@tromey.com>

	* win32-low.c: Fix common/ includes.
	* win32-i386-low.c: Fix common/ includes.
	* tracepoint.c: Fix common/ includes.
	* thread-db.c: Fix common/ includes.
	* target.h: Fix common/ includes.
	* symbol.c: Fix common/ includes.
	* spu-low.c: Fix common/ includes.
	* server.h: Fix common/ includes.
	* server.c: Fix common/ includes.
	* remote-utils.c: Fix common/ includes.
	* regcache.h: Fix common/ includes.
	* regcache.c: Fix common/ includes.
	* nto-x86-low.c: Fix common/ includes.
	* notif.h: Fix common/ includes.
	* mem-break.h: Fix common/ includes.
	* lynx-low.c: Fix common/ includes.
	* lynx-i386-low.c: Fix common/ includes.
	* linux-x86-tdesc-selftest.c: Fix common/ includes.
	* linux-x86-low.c: Fix common/ includes.
	* linux-low.c: Fix common/ includes.
	* inferiors.h: Fix common/ includes.
	* i387-fp.c: Fix common/ includes.
	* hostio.c: Fix common/ includes.
	* hostio-errno.c: Fix common/ includes.
	* gdbthread.h: Fix common/ includes.
	* gdbreplay.c: Fix common/ includes.
	* fork-child.c: Fix common/ includes.
	* event-loop.c: Fix common/ includes.
	* ax.c:
	(enum gdb_agent_op): Fix common/ includes.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Replace contribution list in CONTRIBUTE file with link
@ 2019-01-28 10:30 sergiodj+buildbot
  2019-01-28 12:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-28 10:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 36c25ffa1ab5d6d5ee0fa3fc32f128a58e78e7a2 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 36c25ffa1ab5d6d5ee0fa3fc32f128a58e78e7a2

Replace contribution list in CONTRIBUTE file with link

The GDB wiki page has a much better contribution checklist than
that in the GDB CONTRIBUTE file.  In addition, the wiki is easier
to keep up to date with current processes.

Reduce the CONTRIBUTE file down to a short paragraph followed by
a link to the contribution process.  This also ensures anyone
reading the CONTRIBUTE file for a given release has access to the
latest processes.

gdb/ChangeLog:

	* CONTRIBUTE: Replace contribution list with wiki link.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix GCC9 warning on elf32-arm.c:elf32_arm_final_link_relocate
@ 2019-01-28 16:17 sergiodj+buildbot
  2019-01-28 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-28 16:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 453f8e1e4918171bc12e4d03aab7ee8360dfcfef ***

Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 453f8e1e4918171bc12e4d03aab7ee8360dfcfef

Fix GCC9 warning on elf32-arm.c:elf32_arm_final_link_relocate

Fedora Rawhide has just switched to GCC9, and now GDB doesn't compile
because of a BFD warning:

  BUILDSTDERR: ../../bfd/elf32-arm.c: In function 'elf32_arm_final_link_relocate':
  BUILDSTDERR: ../../bfd/elf32-arm.c:10907:10: error: absolute value function 'labs' given an argument of type 'bfd_signed_vma' {aka 'long long int'} but has parameter of type 'long int' which may cause truncation of value [-Werror=absolute-value]
  BUILDSTDERR: 10907 |  value = labs (relocation);
  BUILDSTDERR:       |          ^~~~

You can take a look at the full build log here:

  https://kojipkgs.fedoraproject.org//work/tasks/4828/32174828/build.log

The fix is (apparently) simple: instead of using 'labs', we should use
'llabs', since we're passing a 'bfd_signed_vma' to it, which is at
least a 'long long int', as far as I have checked.  This is what this
patch does.

bfd/ChangeLog:
2019-01-25  Sergio Durigan Junior  <sergiodj@redhat.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Use 'llabs' instead
	of 'labs' (and fix GCC warning).


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use trad_frame_set_reg_addr for FreeBSD arm signal trampoline unwinders.
@ 2019-01-28 18:32 sergiodj+buildbot
  2019-01-28 19:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-28 18:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7054e2fff6d93e4c2b3b6d0de0d8bda72d3c3d59 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 7054e2fff6d93e4c2b3b6d0de0d8bda72d3c3d59

Use trad_frame_set_reg_addr for FreeBSD arm signal trampoline unwinders.

Replace individual calls to trad_frame_set_reg_addr for the general
purpose and floating point registers in signal trampoline frames used
by FreeBSD/aarch64 and FreeBSD/arm with calls to
trad_frame_set_reg_addr using the register maps for the corresponding
register sets.

gdb/ChangeLog:

	* aarch64-fbsd-tdep.c (aarch64_fbsd_gregmap)
	(aarch64_fbsd_fpregmap): Move earlier.
	(AARCH64_MCONTEXT_REG_SIZE, AARCH64_MCONTEXT_FPREG_SIZE): Delete.
	(aarch64_fbsd_sigframe_init): Use trad_frame_set_reg_regmap
	instead of individual calls to trad_frame_set_reg_addr.
	* arm-fbsd-tdep.c (arm_fbsd_gregmap, arm_fbsd_vfpregmap): Move
	earlier.
	(ARM_MCONTEXT_REG_SIZE, ARM_MCONTEXT_VFP_REG_SIZE): Delete.
	(arm_fbsd_sigframe_init): Use trad_frame_set_reg_regmap
	instead of individual calls to trad_frame_set_reg_addr.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [PR gdb/23985] Fix libinproctrace.so build
@ 2019-01-30 18:16 sergiodj+buildbot
  2019-01-30 19:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-30 18:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 956cc47c5614b0d50bf538e3dcc88c81560fa64c ***

Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: 956cc47c5614b0d50bf538e3dcc88c81560fa64c

[PR gdb/23985] Fix libinproctrace.so build

The IPA objects currently may use gnulib replacement apis, which is
wrong: gnulib is not linked into the produced dso and it cannot be
because it is not built with -fPIC -fvisibility=hidden.

The gnulib replacement detection is broken under cross compilation:
for targets other than *-gnu*, replacements are enabled that depend
on execution time detection. This causes unnecessary build failure
when the target has proper support for the replaced api.

This fix tries to undo the replacements, which is tricky because the
gnulib headers are still used for various compile time fixups and
there is no simple knob in gnulib to only turn the replacements off.

Without this workaround gdb fails to cross build to non-gnu targets:

  ld: tracepoint-ipa.o: in function `gdb_agent_helper_thread(void*)':
  gdb/gdbserver/tracepoint.c:7221: undefined reference to `rpl_strerror'
  ...
  Makefile:434: recipe for target 'libinproctrace.so' failed

gdb/gdbserver/ChangeLog:

	PR gdb/23985
	* Makefile.in (IPAGENT_CFLAGS): Add UNDO_GNULIB_CFLAGS.
	(UNDO_GNULIB_CFLAGS): Undo gnulib replacements.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] S/390: Implement instruction set extensions
@ 2019-01-31 17:04 sergiodj+buildbot
  2019-01-31 17:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-31 17:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fc60b8c806a641cc2260c8b26f389f2abdc99dda ***

Author: Andreas Krebbel <krebbel@linux.ibm.com>
Branch: master
Commit: fc60b8c806a641cc2260c8b26f389f2abdc99dda

S/390: Implement instruction set extensions

opcodes/ChangeLog:

2019-01-31  Andreas Krebbel  <krebbel@linux.ibm.com>

	* s390-mkopc.c (main): Accept arch13 as cpu string.
	* s390-opc.c: Add new instruction formats and instruction opcode
	masks.
	* s390-opc.txt: Add new arch13 instructions.

include/ChangeLog:

2019-01-31  Andreas Krebbel  <krebbel@linux.ibm.com>

	* opcode/s390.h (enum s390_opcode_cpu_val): Add
	S390_OPCODE_ARCH13.

gas/ChangeLog:

2019-01-31  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/tc-s390.c (s390_parse_cpu): New entry for arch13.
	* doc/c-s390.texi: Document arch13 march option.
	* testsuite/gas/s390/s390.exp: Run the arch13 related tests.
	* testsuite/gas/s390/zarch-arch13.d: New test.
	* testsuite/gas/s390/zarch-arch13.s: New test.
	* testsuite/gas/s390/zarch-z13.d: Expect the renamed mnemonics
	also for z13.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Readline: Cleanup some warnings
@ 2019-01-31 18:19 sergiodj+buildbot
  2019-01-31 18:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-01-31 18:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 16bfc2f9705b40a11052f465b83fea2ec0904ce5 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 16bfc2f9705b40a11052f465b83fea2ec0904ce5

Readline: Cleanup some warnings

Cleanup the readline warnings that gdb buildbot complains about.

To prevent wcwidth missing declaration warnings, add the SOURCE /
EXTENSION macros to config.in that have already checked for in
configure.

Ensure pid is a long before printing as one.  Also fix GNU style.

Check the return value of write the same way as history_do_write ().

These changes are consistent with upstream readline.

readline/ChangeLog.gdb:

	* config.h.in: Add SOURCE/EXTENSION macros.
	* histfile.c (history_truncate_file): Check return of write.
	* util.c (_rl_tropen): Ensure pid is long.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Hoist assertion in target_stack::unpush
@ 2019-02-05 13:58 sergiodj+buildbot
  2019-02-05 14:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-05 13:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1688cb2916e7bc46c92dd6f5ac2ba0da6c832274 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1688cb2916e7bc46c92dd6f5ac2ba0da6c832274

Hoist assertion in target_stack::unpush

I noticed that target_stack::unpush first uses the target "t", then
later asserts that it is non-NULL:

  strata stratum = t->stratum ();
[...]
  gdb_assert (t != NULL);

This is backwards, though, as the assertion must come first.

gdb/ChangeLog
2019-02-05  Tom Tromey  <tom@tromey.com>

	* target.c (target_stack::unpush): Move assertion earlier.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix leak of identifier in macro definition.
@ 2019-02-06 20:21 sergiodj+buildbot
  2019-02-06 21:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-06 20:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bb0da2b49689f49f01be2f8c5429945f37e12404 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: bb0da2b49689f49f01be2f8c5429945f37e12404

Fix leak of identifier in macro definition.

Valgrind detects leaks like the following (gdb.base/macscp.exp).
This patch fixes 1 of the 3 leaks (the last one in the list below).

The remaining leaks are better fixed in splay_tree_remove  and
splay_tree_insert in libiberty.
Tested on debian/amd64, natively and under valgrind.

==22285== 64 (48 direct, 16 indirect) bytes in 1 blocks are definitely lost in loss record 737 of 3,377
==22285==    at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==22285==    by 0x4049E7: xmalloc (common-utils.c:44)
==22285==    by 0x533A20: new_macro_key(macro_table*, char const*, macro_source_file*, int) (macrotab.c:355)
==22285==    by 0x53438B: macro_define_function(macro_source_file*, int, char const*, int, char const**, char const*) (macrotab.c:822)
==22285==    by 0x52F945: macro_define_command(char const*, int) (macrocmd.c:409)
...
==22285== 128 (96 direct, 32 indirect) bytes in 2 blocks are definitely lost in loss record 1,083 of 3,377
==22285==    at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==22285==    by 0x4049E7: xmalloc (common-utils.c:44)
==22285==    by 0x533A20: new_macro_key(macro_table*, char const*, macro_source_file*, int) (macrotab.c:355)
==22285==    by 0x534277: macro_define_object_internal(macro_source_file*, int, char const*, char const*, macro_special_kind) (macrotab.c:776)
==22285==    by 0x52F7E0: macro_define_command(char const*, int) (macrocmd.c:414)
...
==22285== 177 bytes in 19 blocks are definitely lost in loss record 1,193 of 3,377
==22285==    at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==22285==    by 0x4049E7: xmalloc (common-utils.c:44)
==22285==    by 0x52F5BD: extract_identifier(char const**, int) (macrocmd.c:316)
==22285==    by 0x52F77D: macro_define_command(char const*, int) (macrocmd.c:355)
gdb/ChangeLog
2019-02-06  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* macrocmd.c (extract_identifier): Return
	a gdb::unique_xmalloc_ptr<char> instead of a char *, and update
	callers.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Factorize macro definition code in macrotab.c
@ 2019-02-06 20:32 sergiodj+buildbot
  2019-02-06 22:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-06 20:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ab9268d2f88414f202651eb5ffbd61c7927fb0c3 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: ab9268d2f88414f202651eb5ffbd61c7927fb0c3

Factorize macro definition code in macrotab.c

When first fixing splay tree key leaks in macrotab.c, some duplicated code
logic was factorized.
The key leaks will be fixed in libiberty, but the code factorization
is better kept in any case.

gdb/ChangeLog
2019-02-06  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* macrotab.c (macro_define_internal): New function that
	factorizes macro_define_object_internal and macro_define_function
	code.
	(macro_define_object_internal): Use macro_define_internal.
	(macro_define_function): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Normalize include guards in gdb
@ 2019-02-07 11:00 sergiodj+buildbot
  2019-02-07 11:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 11:00 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1a5c25988eabb35e0e40ea484b1eea029d9b7f53 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1a5c25988eabb35e0e40ea484b1eea029d9b7f53

Normalize include guards in gdb

While working on my other scripts to deal with gdb headers, I noticed
that some files were missing include guards.  I wrote a script to add
the missing ones, but found that using the obvious names for the
guards ran into clashes -- for example, gdb/nat/linux-nat.h used
"LINUX_NAT_H", but this was also the script's choice for
gdb/linux-nat.h.

So, I changed the script to normalize all include guards in gdb.  This
patch is the result.

As usual the script is available here:

    https://github.com/tromey/gdb-refactoring-scripts

Tested by rebuilding; I also ran it through "Fedora-x86_64-m64" on the
buildbot.

gdb/ChangeLog
2019-02-07  Tom Tromey  <tom@tromey.com>

	* yy-remap.h: Add include guard.
	* xtensa-tdep.h: Add include guard.
	* xcoffread.h: Rename include guard.
	* varobj-iter.h: Add include guard.
	* tui/tui.h: Rename include guard.
	* tui/tui-winsource.h: Rename include guard.
	* tui/tui-wingeneral.h: Rename include guard.
	* tui/tui-windata.h: Rename include guard.
	* tui/tui-win.h: Rename include guard.
	* tui/tui-stack.h: Rename include guard.
	* tui/tui-source.h: Rename include guard.
	* tui/tui-regs.h: Rename include guard.
	* tui/tui-out.h: Rename include guard.
	* tui/tui-layout.h: Rename include guard.
	* tui/tui-io.h: Rename include guard.
	* tui/tui-hooks.h: Rename include guard.
	* tui/tui-file.h: Rename include guard.
	* tui/tui-disasm.h: Rename include guard.
	* tui/tui-data.h: Rename include guard.
	* tui/tui-command.h: Rename include guard.
	* tic6x-tdep.h: Add include guard.
	* target/waitstatus.h: Rename include guard.
	* target/wait.h: Rename include guard.
	* target/target.h: Rename include guard.
	* target/resume.h: Rename include guard.
	* target-float.h: Rename include guard.
	* stabsread.h: Add include guard.
	* rs6000-tdep.h: Add include guard.
	* riscv-fbsd-tdep.h: Add include guard.
	* regformats/regdef.h: Rename include guard.
	* record.h: Rename include guard.
	* python/python.h: Rename include guard.
	* python/python-internal.h: Rename include guard.
	* python/py-stopevent.h: Rename include guard.
	* python/py-ref.h: Rename include guard.
	* python/py-record.h: Rename include guard.
	* python/py-record-full.h: Rename include guard.
	* python/py-record-btrace.h: Rename include guard.
	* python/py-instruction.h: Rename include guard.
	* python/py-events.h: Rename include guard.
	* python/py-event.h: Rename include guard.
	* procfs.h: Add include guard.
	* proc-utils.h: Add include guard.
	* p-lang.h: Add include guard.
	* or1k-tdep.h: Rename include guard.
	* observable.h: Rename include guard.
	* nto-tdep.h: Rename include guard.
	* nat/x86-linux.h: Rename include guard.
	* nat/x86-linux-dregs.h: Rename include guard.
	* nat/x86-gcc-cpuid.h: Add include guard.
	* nat/x86-dregs.h: Rename include guard.
	* nat/x86-cpuid.h: Rename include guard.
	* nat/ppc-linux.h: Rename include guard.
	* nat/mips-linux-watch.h: Rename include guard.
	* nat/linux-waitpid.h: Rename include guard.
	* nat/linux-ptrace.h: Rename include guard.
	* nat/linux-procfs.h: Rename include guard.
	* nat/linux-osdata.h: Rename include guard.
	* nat/linux-nat.h: Rename include guard.
	* nat/linux-namespaces.h: Rename include guard.
	* nat/linux-btrace.h: Rename include guard.
	* nat/glibc_thread_db.h: Rename include guard.
	* nat/gdb_thread_db.h: Rename include guard.
	* nat/gdb_ptrace.h: Rename include guard.
	* nat/fork-inferior.h: Rename include guard.
	* nat/amd64-linux-siginfo.h: Rename include guard.
	* nat/aarch64-sve-linux-sigcontext.h: Rename include guard.
	* nat/aarch64-sve-linux-ptrace.h: Rename include guard.
	* nat/aarch64-linux.h: Rename include guard.
	* nat/aarch64-linux-hw-point.h: Rename include guard.
	* mn10300-tdep.h: Add include guard.
	* mips-linux-tdep.h: Add include guard.
	* mi/mi-parse.h: Rename include guard.
	* mi/mi-out.h: Rename include guard.
	* mi/mi-main.h: Rename include guard.
	* mi/mi-interp.h: Rename include guard.
	* mi/mi-getopt.h: Rename include guard.
	* mi/mi-console.h: Rename include guard.
	* mi/mi-common.h: Rename include guard.
	* mi/mi-cmds.h: Rename include guard.
	* mi/mi-cmd-break.h: Rename include guard.
	* m2-lang.h: Add include guard.
	* location.h: Rename include guard.
	* linux-record.h: Rename include guard.
	* linux-nat.h: Add include guard.
	* linux-fork.h: Add include guard.
	* i386-darwin-tdep.h: Rename include guard.
	* hppa-linux-offsets.h: Add include guard.
	* guile/guile.h: Rename include guard.
	* guile/guile-internal.h: Rename include guard.
	* gnu-nat.h: Rename include guard.
	* gdb-stabs.h: Rename include guard.
	* frv-tdep.h: Add include guard.
	* f-lang.h: Add include guard.
	* event-loop.h: Add include guard.
	* darwin-nat.h: Rename include guard.
	* cp-abi.h: Rename include guard.
	* config/sparc/nm-sol2.h: Rename include guard.
	* config/nm-nto.h: Rename include guard.
	* config/nm-linux.h: Add include guard.
	* config/i386/nm-i386gnu.h: Rename include guard.
	* config/djgpp/nl_types.h: Rename include guard.
	* config/djgpp/langinfo.h: Rename include guard.
	* compile/gcc-cp-plugin.h: Add include guard.
	* compile/gcc-c-plugin.h: Add include guard.
	* compile/compile.h: Rename include guard.
	* compile/compile-object-run.h: Rename include guard.
	* compile/compile-object-load.h: Rename include guard.
	* compile/compile-internal.h: Rename include guard.
	* compile/compile-cplus.h: Rename include guard.
	* compile/compile-c.h: Rename include guard.
	* common/xml-utils.h: Rename include guard.
	* common/x86-xstate.h: Rename include guard.
	* common/version.h: Rename include guard.
	* common/vec.h: Rename include guard.
	* common/tdesc.h: Rename include guard.
	* common/selftest.h: Rename include guard.
	* common/scoped_restore.h: Rename include guard.
	* common/scoped_mmap.h: Rename include guard.
	* common/scoped_fd.h: Rename include guard.
	* common/safe-iterator.h: Rename include guard.
	* common/run-time-clock.h: Rename include guard.
	* common/refcounted-object.h: Rename include guard.
	* common/queue.h: Rename include guard.
	* common/ptid.h: Rename include guard.
	* common/print-utils.h: Rename include guard.
	* common/preprocessor.h: Rename include guard.
	* common/pathstuff.h: Rename include guard.
	* common/observable.h: Rename include guard.
	* common/netstuff.h: Rename include guard.
	* common/job-control.h: Rename include guard.
	* common/host-defs.h: Rename include guard.
	* common/gdb_wait.h: Rename include guard.
	* common/gdb_vecs.h: Rename include guard.
	* common/gdb_unlinker.h: Rename include guard.
	* common/gdb_unique_ptr.h: Rename include guard.
	* common/gdb_tilde_expand.h: Rename include guard.
	* common/gdb_sys_time.h: Rename include guard.
	* common/gdb_string_view.h: Rename include guard.
	* common/gdb_splay_tree.h: Rename include guard.
	* common/gdb_setjmp.h: Rename include guard.
	* common/gdb_ref_ptr.h: Rename include guard.
	* common/gdb_optional.h: Rename include guard.
	* common/gdb_locale.h: Rename include guard.
	* common/gdb_assert.h: Rename include guard.
	* common/filtered-iterator.h: Rename include guard.
	* common/filestuff.h: Rename include guard.
	* common/fileio.h: Rename include guard.
	* common/environ.h: Rename include guard.
	* common/common-utils.h: Rename include guard.
	* common/common-types.h: Rename include guard.
	* common/common-regcache.h: Rename include guard.
	* common/common-inferior.h: Rename include guard.
	* common/common-gdbthread.h: Rename include guard.
	* common/common-exceptions.h: Rename include guard.
	* common/common-defs.h: Rename include guard.
	* common/common-debug.h: Rename include guard.
	* common/cleanups.h: Rename include guard.
	* common/buffer.h: Rename include guard.
	* common/btrace-common.h: Rename include guard.
	* common/break-common.h: Rename include guard.
	* cli/cli-utils.h: Rename include guard.
	* cli/cli-style.h: Rename include guard.
	* cli/cli-setshow.h: Rename include guard.
	* cli/cli-script.h: Rename include guard.
	* cli/cli-interp.h: Rename include guard.
	* cli/cli-decode.h: Rename include guard.
	* cli/cli-cmds.h: Rename include guard.
	* charset-list.h: Add include guard.
	* buildsym-legacy.h: Rename include guard.
	* bfin-tdep.h: Add include guard.
	* ax.h: Rename include guard.
	* arm-linux-tdep.h: Add include guard.
	* arm-fbsd-tdep.h: Add include guard.
	* arch/xtensa.h: Rename include guard.
	* arch/tic6x.h: Add include guard.
	* arch/i386.h: Add include guard.
	* arch/arm.h: Rename include guard.
	* arch/arm-linux.h: Rename include guard.
	* arch/arm-get-next-pcs.h: Rename include guard.
	* arch/amd64.h: Add include guard.
	* arch/aarch64-insn.h: Rename include guard.
	* arch-utils.h: Rename include guard.
	* annotate.h: Add include guard.
	* amd64-darwin-tdep.h: Rename include guard.
	* aarch64-linux-tdep.h: Add include guard.
	* aarch64-fbsd-tdep.h: Add include guard.
	* aarch32-linux-nat.h: Add include guard.

gdb/gdbserver/ChangeLog
2019-02-07  Tom Tromey  <tom@tromey.com>

	* x86-tdesc.h: Rename include guard.
	* x86-low.h: Add include guard.
	* wincecompat.h: Rename include guard.
	* win32-low.h: Add include guard.
	* utils.h: Rename include guard.
	* tracepoint.h: Rename include guard.
	* tdesc.h: Rename include guard.
	* target.h: Rename include guard.
	* server.h: Rename include guard.
	* remote-utils.h: Rename include guard.
	* regcache.h: Rename include guard.
	* nto-low.h: Rename include guard.
	* notif.h: Add include guard.
	* mem-break.h: Rename include guard.
	* lynx-low.h: Add include guard.
	* linux-x86-tdesc.h: Add include guard.
	* linux-s390-tdesc.h: Add include guard.
	* linux-ppc-tdesc-init.h: Add include guard.
	* linux-low.h: Add include guard.
	* linux-aarch64-tdesc.h: Add include guard.
	* linux-aarch32-low.h: Add include guard.
	* inferiors.h: Rename include guard.
	* i387-fp.h: Rename include guard.
	* hostio.h: Rename include guard.
	* gdbthread.h: Rename include guard.
	* gdb_proc_service.h: Rename include guard.
	* event-loop.h: Rename include guard.
	* dll.h: Rename include guard.
	* debug.h: Rename include guard.
	* ax.h: Rename include guard.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make gdb.base/corefile.exp work on terminals with few rows
@ 2019-02-07 14:39 sergiodj+buildbot
  2019-02-07 15:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 14:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bd447abb2442f74c2b4886f6cdacd16fce3c9d65 ***

Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: bd447abb2442f74c2b4886f6cdacd16fce3c9d65

Make gdb.base/corefile.exp work on terminals with few rows

When creating a pty to spawn a subprocess (such as gdb), Expect
copies the settings of its own controlling terminal, including the
number of rows and columns.  If you "make check" on a terminal with just
a few rows (e.g. 4), GDB will paginate before reaching the initial
prompt.  In default_gdb_start, used by most tests, this is already
handled: if we see the pagination prompt, we sent \n to continue.

Philippe reported that gdb.base/corefile.exp didn't work in terminals
with just a few rows.  This test spawns GDB by hand, because it needs to
check things before the initial prompt, which it couldn't do if it used
default_gdb_start.

In this case I think it's not safe to use the same technique as in
default_gdb_start.  Even if we could send a \n if we see a pagination
prompt, we match some multiline regexes in there.  So if a pagination
slips in there, it might make the regexes not match and fail the test.

It's also not possible to use -ex "set height 0" or -iex "set height 0",
it is handled after the introduction text is shown.

The simplest way I found to avoid showing the pagination completely is
to set stty_init (documented in expect's man page) to initialize gdb's
pty with a fixed number of rows.

And actually, if we set stty_init in gdb_init, it works nicely as a
general solution applicable to all tests.  We can therefore remove the
solution introduced in e882ef3cfc3 ("testsuite: expect possible
pagination when starting gdb") where we matched the pagination prompt
during startup.

gdb/testsuite/ChangeLog:

	* lib/gdb.exp (default_gdb_start): Don't match pagination
	prompt.
	(gdb_init): Set stty_init.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move potentially obsolete BFD targets into the definitely obsolete section. Add a note to the README-how-to-make-a-release document about doing this.
@ 2019-02-07 14:54 sergiodj+buildbot
  2019-02-07 17:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 14:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2012bf013b2ce507b181c0d9049ad946b2a59d8a ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 2012bf013b2ce507b181c0d9049ad946b2a59d8a

Move potentially obsolete BFD targets into the definitely obsolete section.  Add a note to the README-how-to-make-a-release document about doing this.

bfd	* config.bfd: Move the powerpc-lynxos and powerpc-windiss targets
	into the definitely obsolete list.

binutils * README-how-to-make-a-release: Add a note about updating the
	obsolete targets in the bfd/config.bfd file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdbserver: When attaching, add process before lwps
@ 2019-02-07 15:06 sergiodj+buildbot
  2019-02-07 18:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 15:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT df0da8a2b80315485330c03c18b704b8d7b3e9c2 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: df0da8a2b80315485330c03c18b704b8d7b3e9c2

gdbserver: When attaching, add process before lwps

The recent BP/WP changes for AArch64 swapping the order in add_lwp()
so that the process was added before the lwp. This was due to the lwp
creation requiring the process data.

This also needs changing in linux_attach().

Also add additional checks to make sure cannot attach to the same
process twice. Add test case for this - do this by splitting
attach.exp into distinct pass and error case sections.

Fixes gdb.server/ext-attach.exp on Aarch64.

gdb/gdbserver/ChangeLog:

	* linux-low.c (linux_attach): Add process before lwp.
	* server.c (attach_inferior): Check if already attached.

gdb/testsuite/ChangeLog:

	* gdb.base/attach.exp: Add double attach test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Add verifier for By elem Single and Double sized instructions.
@ 2019-02-07 17:54 sergiodj+buildbot
  2019-02-08  0:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 17:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6456d318aaa7ea35511dad1f2facf0fb984972e5 ***

Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 6456d318aaa7ea35511dad1f2facf0fb984972e5

AArch64: Add verifier for By elem Single and Double sized instructions.

The AArch64 instruction set has cut-outs inside instructions encodings for
when a given encoding that would normally fall within the encoding space of
an instruction is instead undefined.

This updates the first few instructions FMLA, FMLA, FMUL and FMULX in the case
where sz:L == 11.

gas/ChangeLog:

	PR binutils/23212
	* testsuite/gas/aarch64/undefined_by_elem_sz_l.s: New test.
	* testsuite/gas/aarch64/undefined_by_elem_sz_l.d: New test.

opcodes/ChangeLog:

	PR binutils/23212
	* aarch64-opc.h (enum aarch64_field_kind): Add FLD_sz.
	* aarch64-opc.c (verify_elem_sd): New.
	(fields): Add FLD_sz entr.
	* aarch64-tbl.h (_SIMD_INSN): New.
	(aarch64_opcode_table): Add elem_sd verifier to fmla, fmls, fmul and
	fmulx scalar and vector by element isns.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Updated Swedish translation for the opcodes sub-directory
@ 2019-02-07 19:10 sergiodj+buildbot
  2019-02-07 19:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 19:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4a83b61091168f7df0f58009dda67b9e36f8a5f7 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 4a83b61091168f7df0f58009dda67b9e36f8a5f7

Updated Swedish translation for the opcodes sub-directory


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] SPARC: fix PR ld/18841
@ 2019-02-07 21:52 sergiodj+buildbot
  2019-02-07 23:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 21:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b2abe1bd8149dd9ad64432f620c3a034bf23a5fe ***

Author: Eric Botcazou <ebotcazou@gcc.gnu.org>
Branch: master
Commit: b2abe1bd8149dd9ad64432f620c3a034bf23a5fe

SPARC: fix PR ld/18841

This fixes the last ld failures on SPARC64/Linux:

FAIL: Run pr18841 with libpr18841b.so
FAIL: Run pr18841 with libpr18841c.so
FAIL: Run pr18841 with libpr18841bn.so (-z now)
FAIL: Run pr18841 with libpr18841cn.so (-z now)

by mimicing what has been done on x86-64 and Aarch64 to fix the PR.

bfd/
	PR ld/18841
        * elf32-sparc.c (elf32_sparc_reloc_type_class): Return
        reloc_class_ifunc for ifunc symbols.
        * elf64-sparc.c (elf64_sparc_reloc_type_class): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Arm: Backport hlt to all architectures.
@ 2019-02-08  1:07 sergiodj+buildbot
  2019-02-08  1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-08  1:07 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f7dd2fb2e2b750f0fb9dedaf885c17bc6beef1f7 ***

Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: f7dd2fb2e2b750f0fb9dedaf885c17bc6beef1f7

Arm: Backport hlt to all architectures.

The software trap instruction HLT that was introduced in Armv8-a is used
as the semihosting trap instruction in AArch64.  In order to allow systems
configured to run AArch64 code to also run AArch32 with semihosting it was
decided that AArch32 should also use HLT in the case of the "mixed mode"
environment.  This requires that HLT also be backported to all earlier
architectures.  The instruction is in the undefined encoding space earlier
architectures but must trigger a semihosting trap [3].

The Arm Architectural Reference Manual [1] doesn't explicitly mention this
however this is an explicit requirement in the Semihosting-v2 protocol [2].

[1] https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile
[2] https://developer.arm.com/docs/100863/latest/the-semihosting-interface
[3] https://github.com/qemu/qemu/commit/19a6e31c9d2701ef648b70ddcfc3bf64cec8c37e

gas/ChangeLog:

	* config/tc-arm.c (insns): Redefine THUMB_VARIANT and ARM_VARIANT for
	hlt to armv1.
	* testsuite/gas/arm/armv8a-automatic-hlt.d: Update TAGs
	* testsuite/gas/arm/hlt.d: New test.
	* testsuite/gas/arm/hlt.s: New test.

opcodes/ChangeLog:

	* arm-dis.c (arm_opcodes): Redefine hlt to armv1.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Compress 3-operand beq/bne against x0.
@ 2019-02-08 21:33 sergiodj+buildbot
  2019-02-08 22:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-08 21:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ca0bc1509849a3871e99fdf48705b93f18d5fa7b ***

Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: ca0bc1509849a3871e99fdf48705b93f18d5fa7b

RISC-V: Compress 3-operand beq/bne against x0.

This lets us accept an instruction like
	beq a2,x0,.Label
and generate a compressed beqz.  This will allow some future simplications
to the gcc support, e.g. eliminating some duplicate patterns, and avoiding
adding new duplicate patterns, since currently we have to handle signed
and equality compares against zero specially.

Tested with rv{32,64}-{elf,linux} cross builds and make checks for binutils
and gcc.  There were no regressions.

	gas/
	* config/tc-riscv.c (validate_riscv_insn) <'C'>: Add 'z' support.
	(riscv_ip) <'C'>: Add 'z' support.
	opcodes/
	* riscv-opc.c (riscv_opcodes) <beq>: Use Cz to compress 3 operand form.
	<bne>: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Add FP register core file support.
@ 2019-02-08 21:44 sergiodj+buildbot
  2019-02-08 23:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-08 21:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 617126bc8ae3c83b565aef1a454742c8a7237c14 ***

Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 617126bc8ae3c83b565aef1a454742c8a7237c14

RISC-V: Add FP register core file support.

This adds fp reg support similar to the existing general reg support.

This fixes one gdb testsuite failure
FAIL: gdb.base/gcore.exp: corefile restored system registers
which fails without the patch because fcsr was missing.  Otherwise, no
regressions with riscv64-linux native testsuite run.

	gdb/
	* riscv-linux-tdep.c (riscv_linux_fregmap): New.
	(riscv_linux_fregset): New.
	(riscv_linux_iterate_over_regset_sections): Call cb for .reg2 section.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix type_stack leaks in c expression parsing.
@ 2019-02-10 12:29 sergiodj+buildbot
  2019-02-10 16:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-10 12:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ab759ca8db37ffd3e32df5226e0b4ea16a81c849 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: ab759ca8db37ffd3e32df5226e0b4ea16a81c849

Fix type_stack leaks in c expression parsing.

Valgrind detects a bunch of leaks in several tests, such as:

==22905== 40 (24 direct, 16 indirect) bytes in 1 blocks are definitely lost in loss record 531 of 3,268
==22905==    at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344)
==22905==    by 0x5893AD: get_type_stack() (parse.c:1509)
==22905==    by 0x3F4EAD: c_yyparse() (c-exp.y:1223)
==22905==    by 0x3F71BC: c_parse(parser_state*) (c-exp.y:3308)
==22905==    by 0x588CEA: parse_exp_in_context_1(char const**, unsigned long, block const*, int, int, int*) [clone .constprop.89] (parse.c:1205)
==22905==    by 0x588FA1: parse_exp_in_context (parse.c:1108)
==22905==    by 0x588FA1: parse_exp_1 (parse.c:1099)
==22905==    by 0x588FA1: parse_expression(char const*) (parse.c:1247)
...

==22395== 456 (168 direct, 288 indirect) bytes in 7 blocks are definitely lost in loss record 2,658 of 2,978
==22395==    at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344)
==22395==    by 0x5893AD: get_type_stack() (parse.c:1509)
==22395==    by 0x3F4ECF: c_yyparse() (c-exp.y:1230)
==22395==    by 0x3F71BC: c_parse(parser_state*) (c-exp.y:3308)
==22395==    by 0x588CEA: parse_exp_in_context_1(char const**, unsigned long, block const*, int, int, int*) [clone .constprop.89] (parse.c:1205)
==22395==    by 0x588FA1: parse_exp_in_context (parse.c:1108)
==22395==    by 0x588FA1: parse_exp_1 (parse.c:1099)
==22395==    by 0x588FA1: parse_expression(char const*) (parse.c:1247)
==22395==    by 0x67BB9D: whatis_exp(char const*, int) (typeprint.c:515)
...

==22395== VALGRIND_GDB_ERROR_BEGIN
==22395== 144 (24 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 1,016 of 2,978
==22395==    at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344)
==22395==    by 0x5893AD: get_type_stack() (parse.c:1509)
==22395==    by 0x3F4E8A: c_yyparse() (c-exp.y:1217)
==22395==    by 0x3F71BC: c_parse(parser_state*) (c-exp.y:3308)
==22395==    by 0x588CEA: parse_exp_in_context_1(char const**, unsigned long, block const*, int, int, int*) [clone .constprop.89] (parse.c:1205)
==22395==    by 0x588FA1: parse_exp_in_context (parse.c:1108)
==22395==    by 0x588FA1: parse_exp_1 (parse.c:1099)
==22395==    by 0x588FA1: parse_expression(char const*) (parse.c:1247)
==22395==    by 0x67BB9D: whatis_exp(char const*, int) (typeprint.c:515)
...

Fix these by storing the allocated type_stack in the cpstate->type_stacks
vector.

Tested on debian/amd64, natively and under valgrind.

gdb/ChangeLog
2019-02-10  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* c-exp.y (direct_abs_decl): Use emplace_back to record the
	type_stack.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Detect exit from execve syscall
@ 2019-02-11 17:01 sergiodj+buildbot
  2019-02-11 17:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-11 17:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ea638c43121624bb4b09bb89b88314f99c85a48d ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: ea638c43121624bb4b09bb89b88314f99c85a48d

AArch64: Detect exit from execve syscall

Checking the syscall number when stopped on entry/exit relies on checking
the value in register X8.

However, on exit from an execve syscall, the registers will all be cleared.
Given this is only checked on syscall entry/exit, then a cleared register
state either means execve exit or syscall 0 (io_setup) entry with invalid
parameters and an invalid FR and LR, which in reality should never happen.
Use this to detect execve exit.

Move function to allow use of aarch64_sys_execve enum, and use newer
regcache functions.

Fixes gdb.base/catch-syscall.exp on Aarch64.

gdb/ChangeLog:

	* aarch64-linux-tdep.c (aarch64_linux_get_syscall_number): Check
	for execve.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix splay tree KEY leak detected in GDB test gdb.base/macscp.exp
@ 2019-02-12 13:20 sergiodj+buildbot
  2019-02-12 14:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-12 13:20 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e20773049fde7b9a123fda4485259fc06249b22f ***

Author: tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Branch: master
Commit: e20773049fde7b9a123fda4485259fc06249b22f

Fix splay tree KEY leak detected in GDB test gdb.base/macscp.exp

When a node is removed from a splay tree, the splay tree was
not using the function splay_tree_delete_key_fn to release the key.
This was causing a leak, fixed by Tom Tromey.

This patch fixes another key leak, that happens when a key equal to
a key already present is inserted.  In such a case, we have to release
the old KEY.
Note that this is based on the assumption that the caller always
allocates a new KEY when doing an insert.

Also, clarify the documentation about when the release functions are
called.

2019-02-11  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* splay-tree.h (splay_tree_delete_key_fn): Update comment.
	(splay_tree_delete_value_fn): Likewise.

libiberty/ChangeLog
2019-02-11  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* splay-tree.c (splay_tree_insert): Also release old KEY in case
	of insertion of a key equal to an already present key.
	(splay_tree_new_typed_alloc): Update comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268793 138bc75d-0d04-0410-961f-82ee72b054a4


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use function_name_style to print Ada and C function names
@ 2019-02-12 19:30 sergiodj+buildbot
  2019-02-12 20:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-12 19:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ac8c53cc67724f990003009fd37a3d7dc662fcb3 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: ac8c53cc67724f990003009fd37a3d7dc662fcb3

Use function_name_style to print Ada and C function names

Note that ada-typeprint.c print_func_type is called with
types representing functions and is also called to print
a function NAME together with its type.  In such a case, the function
name will be printed using function name style.

Similarly, c_print_type_1 is called to print a type, optionally
with the name of an object of this type in the VARSTRING arg.
So, c_print_type_1 uses function name style to print varstring
when the type code indicates that c_print_type_1 TYPE is some
'real code'.

gdb/ChangeLog
2019-02-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* ada-typeprint.c (print_func_type): Print function name
	style to print function name.
	* c-typeprint.c (c_print_type_1): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make symtab.c better styled.
@ 2019-02-12 22:15 sergiodj+buildbot
  2019-02-12 22:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-12 22:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1ed9f74e85b7ace7debad5ade4775684a1fa99f9 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 1ed9f74e85b7ace7debad5ade4775684a1fa99f9

Make symtab.c better styled.

Note that print_msymbol_info does not (yet?) print data msymbol
using variable_name_style, as otherwise 'info variables'
would show the non debugging symbols in variable name style,
but 'real' variables would be not styled.

2019-02-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* symtab.h (struct minimal_symbol data_p): New const method.
	(struct minimal_symbol text_p): Likewise.
	* symtab.c (output_source_filename): Use file name style
	to print file name.
	(print_symbol_info): Likewise.
	(print_msymbol_info): Use address style to print addresses.
	Use function name style to print executable text symbols.
	(expand_symtab_containing_pc): Use data_p.
	(find_pc_sect_compunit_symtab): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add a new function child_path.
@ 2019-02-12 22:22 sergiodj+buildbot
  2019-02-13  4:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-12 22:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT efac4bfe0b2bdd21a27c94ca3464046e9c23f0e4 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: efac4bfe0b2bdd21a27c94ca3464046e9c23f0e4

Add a new function child_path.

child_path returns a pointer to the first component in a child path
that comes after a parent path.  This does not depend on trying to
stat() the paths since they may describe remote paths but instead
relies on filename parsing.  The function requires that the child path
describe a filename that contains at least one component below the
parent path and returns a pointer to the first component.

gdb/ChangeLog:

	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
	unittests/child-path-selftests.c.
	* common/pathstuff.c (child_path): New function.
	* common/pathstuff.h (child_path): New prototype.
	* unittests/child-path-selftests.c: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use child_path to determine if an object file is under a sysroot.
@ 2019-02-13  3:05 sergiodj+buildbot
  2019-02-13  5:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-13  3:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cd4b78483c3b0e4bd7737b67ed5074b7c252faa4 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: cd4b78483c3b0e4bd7737b67ed5074b7c252faa4

Use child_path to determine if an object file is under a sysroot.

This fixes the case where the sysroot happens to end in a trailing
'/'.  Note that the path returned from child_path always skips over
the directory separator at the start of the base path, so a separator
must always be explicitly added before the base path.

gdb/ChangeLog:

	* symfile.c (find_separate_debug_file): Use child_path to
	determine if an object file is under a sysroot.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Adding a test case
@ 2019-02-13  6:14 sergiodj+buildbot
  2019-02-13  8:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-13  6:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 01c7ae818bd6c0b5d797091ec1664bcaed705d40 ***

Author: Weimin Pan <weimin.pan@oracle.com>
Branch: master
Commit: 01c7ae818bd6c0b5d797091ec1664bcaed705d40

Adding a test case

gdb/testsuite/ChangeLog
2019-02-12  Weimin Pan  <weimin.pan@oracle.com>

            PR breakpoints/21870
            * gdb.arch/aarch64-dbreg-contents.exp: New file.
            * gdb.arch/aarch64-dbreg-contents.c: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add Andrew Burgess as global maintainer of gdb/ and sim/
@ 2019-02-13 22:36 sergiodj+buildbot
  2019-02-13 23:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-13 22:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 007024cc6ae8cd1a22e328eb4150adaa4baf5731 ***

Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: 007024cc6ae8cd1a22e328eb4150adaa4baf5731

Add Andrew Burgess as global maintainer of gdb/ and sim/


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] (riscv/ada) fix error when calling functions with range argument
@ 2019-02-14  4:51 sergiodj+buildbot
  2019-02-14  5:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-14  4:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2988d01ea5fcc474a9b714d2148bab5fcf4e4be8 ***

Author: KONRAD Frederic <konrad@adacore.com>
Branch: master
Commit: 2988d01ea5fcc474a9b714d2148bab5fcf4e4be8

(riscv/ada) fix error when calling functions with range argument

Using the gdb.ada/call_pn.exp testcase, and running it by hand on
riscv64-elf, we get the following error:

    (gdb) call pn(55)
    Could not compute alignment of type

The problem occurs because the parameter's type is a TYPE_CODE_RANGE,
and that type code is not handled by riscv_type_alignment. So this patch
fixes the issue by handling TYPE_CODE_RANGE the same way we handle other
integral types.

gdb/ChangeLog:

        * riscv-rdep.c (riscv_type_alignment): Handle TYPE_CODE_RANGE.

Tested on riscv64-elf using AdaCore's testsuite.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb, hurd] Work around conflict between Mach's 'thread_info' function, and GDB's 'thread_info' class
@ 2019-02-14 15:26 sergiodj+buildbot
  2019-02-14 17:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 15:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cabb5f067daa9227bf0323cbf64c6065d6e4796f ***

Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: cabb5f067daa9227bf0323cbf64c6065d6e4796f

[gdb, hurd] Work around conflict between Mach's 'thread_info' function, and GDB's 'thread_info' class

    In file included from ./nm.h:25:0,
                     from [...]/gdb/defs.h:423,
                     from [...]/gdb/gdb.c:19:
    [...]/gdb/regcache.h:35:46: warning: 'get_thread_regcache' initialized and declared 'extern'
     extern struct regcache *get_thread_regcache (thread_info *thread);
                                                  ^~~~~~~~~~~
    [...]/gdb/regcache.h:35:46: error: 'regcache* get_thread_regcache' redeclared as different kind of symbol
    [...]
    [...]/gdb/gdbarch.h:1203:69: error: 'thread_info' is not a type
     extern LONGEST gdbarch_get_syscall_number (struct gdbarch *gdbarch, thread_info *thread);
                                                                         ^~~~~~~~~~~

Fixed with a different (self-contained, more maintainable?) approach compared
to what has been done in commit 7aabaf9d4ad52a1df1f551908fbd8cafc5e7597a
"Create private_thread_info hierarchy", and commit
75cbc781e371279f4403045be93b07fd8fe7fde5 "gdb: For macOS, s/thread_info/struct
thread_info/".  We don't want to change all the GDB code to everywhere use
'class thread_info' or 'struct thread_info' instead of plain 'thread_info'.

	gdb/
	* config/i386/nm-i386gnu.h: Don't "#include" any files.
	* gnu-nat.h (mach_thread_info): New function.
	* gnu-nat.c (thread_takeover_sc_cmd): Use it.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb, hurd] Repair build after "Convert struct target_ops to C++" changes
@ 2019-02-14 15:42 sergiodj+buildbot
  2019-02-14 18:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 15:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2d0a338c7c321de6c63be4e7e3f06ba12b783c63 ***

Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: 2d0a338c7c321de6c63be4e7e3f06ba12b783c63

[gdb, hurd] Repair build after "Convert struct target_ops to C++" changes

..., that is commit f6ac5f3d63e03a81c4ff3749aba234961cc9090e causing:

    In file included from [...]/gdb/gnu-nat.c:24:0:
    [...]/gdb/gnu-nat.h:123:1: error: expected class-name before '{' token
     {
     ^
    [...]/gdb/gnu-nat.h:128:16: error: 'inferior' has not been declared
       void detach (inferior *, int) override;
                    ^~~~~~~~
    [...]/gdb/gnu-nat.h:132:8: error: use of enum 'target_xfer_status' without previous declaration
       enum target_xfer_status xfer_partial (enum target_object object,
            ^~~~~~~~~~~~~~~~~~
    [...]/gdb/gnu-nat.h:132:46: error: use of enum 'target_object' without previous declaration
       enum target_xfer_status xfer_partial (enum target_object object,
                                                  ^~~~~~~~~~~~~
    [...]/gdb/gnu-nat.h:124:8: error: 'void gnu_nat_target::attach(const char*, int)' marked 'override', but does not override
       void attach (const char *, int) override;
            ^~~~~~
    [...]

    [...]/gdb/gnu-nat.c: In member function 'virtual void gnu_nat_target::detach(inferior*, int)':
    [...]/gdb/gnu-nat.c:2286:34: error: 'ops' was not declared in this scope
       inf_child_maybe_unpush_target (ops);
                                      ^~~
    [...]/gdb/gnu-nat.c:2286:34: note: suggested alternative: 'open'
       inf_child_maybe_unpush_target (ops);
                                      ^~~
                                      open
    [...]/gdb/gnu-nat.c:2286:3: error: 'inf_child_maybe_unpush_target' was not declared in this scope
       inf_child_maybe_unpush_target (ops);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [...]/gdb/gnu-nat.c:2286:3: note: suggested alternative: 'maybe_unpush_target'
       inf_child_maybe_unpush_target (ops);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       maybe_unpush_target

    [...]/gdb/i386-gnu-nat.c:200:1: warning: 'void gnu_store_registers(target_ops*, regcache*, int)' defined but not used [-Wunused-function]
     gnu_store_registers (struct target_ops *ops,
     ^~~~~~~~~~~~~~~~~~~
    [...]/gdb/i386-gnu-nat.c:109:1: warning: 'void gnu_fetch_registers(target_ops*, regcache*, int)' defined but not used [-Wunused-function]
     gnu_fetch_registers (struct target_ops *ops,
     ^~~~~~~~~~~~~~~~~~~
    [...]
    /usr/bin/ld: i386-gnu-nat.o:(.data.rel+0x0): undefined reference to `vtable for i386_gnu_nat_target'
    collect2: error: ld returned 1 exit status

	gdb/
	* gnu-nat.c (gnu_nat_target::detach): Instead of
	'inf_child_maybe_unpush_target (ops)' call 'maybe_unpush_target'.
	* gnu-nat.h: #include "inf-child.h".
	* i386-gnu-nat.c (gnu_fetch_registers): Rename/move to
	'i386_gnu_nat_target::fetch_registers'.
	(gnu_store_registers): Rename/move to
	'i386_gnu_nat_target::store_registers'.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb, hurd] Repair build after "Use thread_info and inferior pointers more throughout"
@ 2019-02-14 16:25 sergiodj+buildbot
  2019-02-14 21:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 16:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c29ee8d45ec2113821c006a18cfedb9023ef9ce1 ***

Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: c29ee8d45ec2113821c006a18cfedb9023ef9ce1

[gdb, hurd] Repair build after "Use thread_info and inferior pointers more throughout"

..., that is commit 00431a78b28f913a9d5c912c49680e39cfd20847 causing:

    [...]/gdb/gnu-nat.c: In member function 'virtual void gnu_nat_target::detach(inferior*, int)':
    [...]/gdb/gnu-nat.c:2284:23: error: invalid conversion from 'int' to 'inferior*' [-fpermissive]
       detach_inferior (pid);
                           ^
    In file included from [...]/gdb/gnu-nat.c:61:0:
    [...]/gdb/inferior.h:523:13: note:   initializing argument 1 of 'void detach_inferior(inferior*)'
     extern void detach_inferior (inferior *inf);
                 ^~~~~~~~~~~~~~~

Fixed by inlining the removed code.

	gdb/
	* gnu-nat.c (gnu_nat_target::detach): Instead of
	'detach_inferior (pid)' call
	'detach_inferior (find_inferior_pid (pid))'.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb, hurd] Adjust to Hurd "proc" interface changes
@ 2019-02-14 16:49 sergiodj+buildbot
  2019-02-14 23:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 16:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8071c5ce78245eff43f9977a7c3ff8328f7486da ***

Author: David Michael <fedora.dm0@gmail.com>
Branch: master
Commit: 8071c5ce78245eff43f9977a7c3ff8328f7486da

[gdb, hurd] Adjust to Hurd "proc" interface changes

Hurd's commit baf7e5c8ce176aead15c2559952d8bdf0da41ffd "hurd: Use polymorphic
port types to return some rights" causes in the GDB build:

    /usr/bin/ld: process_reply_S.o: in function `_Xproc_pid2proc_reply':
    [...]/gdb/process_reply_S.c:754: undefined reference to `S_proc_pid2proc_reply'
    /usr/bin/ld: [...]/gdb/process_reply_S.c:730: undefined reference to `S_proc_pid2proc_reply'
    /usr/bin/ld: process_reply_S.o: in function `_Xproc_task2proc_reply':
    [...]/gdb/process_reply_S.c:589: undefined reference to `S_proc_task2proc_reply'
    /usr/bin/ld: [...]/gdb/process_reply_S.c:565: undefined reference to `S_proc_task2proc_reply'
    /usr/bin/ld: process_reply_S.o: in function `_Xproc_getmsgport_reply':
    [...]/gdb/process_reply_S.c:204: undefined reference to `S_proc_getmsgport_reply'
    /usr/bin/ld: [...]/gdb/process_reply_S.c:180: undefined reference to `S_proc_getmsgport_reply'
    collect2: error: ld returned 1 exit status

	gdb/
	* gnu-nat.c (S_proc_getmsgport_reply, S_proc_task2proc_reply)
	(S_proc_pid2proc_reply): Adjust to Hurd "proc" interface changes.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb, hurd] Repair build after "Share fork_inferior et al with gdbserver" changes
@ 2019-02-14 19:25 sergiodj+buildbot
  2019-02-14 19:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 19:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6c6ef69fb4e95d991fa5462d067d3f71a73fedce ***

Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: 6c6ef69fb4e95d991fa5462d067d3f71a73fedce

[gdb, hurd] Repair build after "Share fork_inferior et al with gdbserver" changes

..., that is commit 2090129c36c7e582943b7d300968d19b46160d84 causing:

    [...]/gdb/gnu-nat.c: In function 'void gnu_ptrace_me()':
    [...]/gdb/gnu-nat.c:2133:5: error: 'trace_start_error_with_name' was not declared in this scope
         trace_start_error_with_name ("ptrace");
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    [...]/gdb/gnu-nat.c:2133:5: note: suggested alternative: 'throw_perror_with_name'
         trace_start_error_with_name ("ptrace");
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
         throw_perror_with_name
    [...]/gdb/gnu-nat.c: In function 'void gnu_create_inferior(target_ops*, const char*, const string&, char**, int)':
    [...]/gdb/gnu-nat.c:2147:9: error: 'fork_inferior' was not declared in this scope
       pid = fork_inferior (exec_file, allargs, env, gnu_ptrace_me,
             ^~~~~~~~~~~~~
    [...]/gdb/gnu-nat.c:2147:9: note: suggested alternative: 'exit_inferior'
       pid = fork_inferior (exec_file, allargs, env, gnu_ptrace_me,
             ^~~~~~~~~~~~~
             exit_inferior
    [...]/gdb/gnu-nat.c:2174:30: error: 'START_INFERIOR_TRAPS_EXPECTED' was not declared in this scope
       gdb_startup_inferior (pid, START_INFERIOR_TRAPS_EXPECTED);
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    /usr/bin/ld: gnu-nat.o: in function `gnu_ptrace_me()':
    [...]/gdb/gnu-nat.c:2134: undefined reference to `trace_start_error_with_name(char const*)'
    /usr/bin/ld: gnu-nat.o: in function `gnu_create_inferior(target_ops*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char**, int)':
    [...]/gdb/gnu-nat.c:2148: undefined reference to `fork_inferior(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char**, void (*)(), void (*)(int), void (*)(), char const*, void (*)(char const*, char* const*, char* const*))'
    /usr/bin/ld: fork-child.o: in function `gdb_startup_inferior(int, int)':
    [...]/gdb/fork-child.c:136: undefined reference to `startup_inferior(int, int, target_waitstatus*, ptid_t*)'
    collect2: error: ld returned 1 exit status

	gdb/
	* configure.nat [gdb_host == i386gnu] (NATDEPFILES): Add
	'nat/fork-inferior.o'.
	* gnu-nat.c: #include "nat/fork-inferior.h".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Updating test case
@ 2019-02-14 22:41 sergiodj+buildbot
  2019-02-15  2:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 22:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9d70ffbc5ba41c766ce629447af8e72a5ceba229 ***

Author: Weimin Pan <weimin.pan@oracle.com>
Branch: master
Commit: 9d70ffbc5ba41c766ce629447af8e72a5ceba229

Updating test case

gdb.arch/aarch64-dbreg-contents.exp:
 * Replaced "run" with "runto_main + continue".
 * Replaced "gdb_compile + clean_restart" with "prepare_for_testing".
 * Added comment for case "exited with code 01".

gdb.arch/aarch64-dbreg-contents.c:
 * Removed SET_WATCHPOINT marco.
 * Removed redundent cleanup ().
 * Cleaned up comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] C++-ify bp_location
@ 2019-02-15 20:41 sergiodj+buildbot
  2019-02-15 21:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 20:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5f486660101ab09d50fa3bb9a10555f12722f39f ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 5f486660101ab09d50fa3bb9a10555f12722f39f

C++-ify bp_location

Philippe noticed a memory leak coming from ada_catchpoint_location --
it was not freeing the "function_name" member from its base class:

==14141== 114 bytes in 4 blocks are definitely lost in loss record 1,055 of 3,424
==14141==    at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==14141==    by 0x405107: xmalloc (common-utils.c:44)
==14141==    by 0x7563F9: xstrdup (xstrdup.c:34)
==14141==    by 0x3B82B3: set_breakpoint_location_function(bp_location*, int) (breakpoint.c:7156)
==14141==    by 0x3C112B: add_location_to_breakpoint(breakpoint*, symtab_and_line const*) (breakpoint.c:8609)
==14141==    by 0x3C127A: init_raw_breakpoint(breakpoint*, gdbarch*, symtab_and_line, bptype, breakpoint_ops const*) (breakpoint.c:7187)
==14141==    by 0x3C1B52: init_ada_exception_breakpoint(breakpoint*, gdbarch*, symtab_and_line, char const*, breakpoint_ops const*, int, int, int) (breakpoint.c:11262)
==14141==    by 0x381C2E: create_ada_exception_catchpoint(gdbarch*, ada_exception_catchpoint_kind, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, int) (ada-lang.c:13255)

This patch fixes the problem by further C++-ifying bp_location.  In
particular, bp_location_ops is now removed, and the "dtor" function
pointer is replaced with an ordinary destructor.

gdb/ChangeLog
2019-02-15  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
	    Tom Tromey  <tromey@adacore.com>

	* breakpoint.c (~bp_location): Rename from bp_location_dtor.
	(bp_location_ops): Remove.
	(base_breakpoint_allocate_location): Update.
	(free_bp_location): Update.
	* ada-lang.c (class ada_catchpoint_location)
	<ada_catchpoint_location>: Remove ops parameter.
	(ada_catchpoint_location_dtor): Remove.
	(ada_catchpoint_location_ops): Remove.
	(allocate_location_exception): Update.
	* breakpoint.h (struct bp_location_ops): Remove.
	(class bp_location) <bp_location>: Remove bp_location_ops
	parameter.
	<~bp_location>: Add destructor.
	<ops>: Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix memory leak in create_ada_exception_catchpoint
@ 2019-02-15 20:53 sergiodj+buildbot
  2019-02-15 22:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 20:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cc12f4a8f97791cf9729ff9341f7c0fbd9d6a79e ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: cc12f4a8f97791cf9729ff9341f7c0fbd9d6a79e

Fix memory leak in create_ada_exception_catchpoint

Phillipe noticed that create_ada_exception_catchpoint was not freeing
the "addr_string" memory:

==14141== 114 bytes in 4 blocks are definitely lost in loss record 1,054 of 3,424
==14141==    at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==14141==    by 0x405107: xmalloc (common-utils.c:44)
==14141==    by 0x7563F9: xstrdup (xstrdup.c:34)
==14141==    by 0x381B21: ada_exception_sal (ada-lang.c:13217)
==14141==    by 0x381B21: create_ada_exception_catchpoint(gdbarch*, ada_exception_catchpoint_kind, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, int) (ada-lang.c:13251)
==14141==    by 0x3820A8: catch_ada_exception_command(char const*, int, cmd_list_element*) (ada-lang.c:13285)
==14141==    by 0x3F4828: cmd_func(cmd_list_element*, char const*, int) (cli-decode.c:1892)

This patch fixes the problem by changing ada_exception_sal to return a
std::string via its out parameter.

gdb/ChangeLog
2019-02-15  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
	    Tom Tromey  <tromey@adacore.com>

	* ada-lang.c (ada_exception_sal): Change addr_string to a
	std::string.
	(create_ada_exception_catchpoint): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Exception safety in ravenscar-thread.c
@ 2019-02-15 21:22 sergiodj+buildbot
  2019-02-16  1:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 21:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5b6ea500d554b173e63e1f8f0344d568ad347463 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 5b6ea500d554b173e63e1f8f0344d568ad347463

Exception safety in ravenscar-thread.c

This changes some code in ravenscar-thread.c to use scoped_restore.  I
am not sure if it matters in practice, but this makes these methods
exception-safe in case the methods lower in the target stack can
throw.

gdb/ChangeLog
2019-02-15  Tom Tromey  <tromey@adacore.com>

	* ravenscar-thread.c (ravenscar_thread_target::stopped_by_sw_breakpoint)
	(ravenscar_thread_target::stopped_by_hw_breakpoint)
	(ravenscar_thread_target::stopped_by_watchpoint)
	(ravenscar_thread_target::stopped_data_address)
	(ravenscar_thread_target::core_of_thread): Use scoped_restore.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Minor C++-ification in ravenscar-thread.c
@ 2019-02-15 22:17 sergiodj+buildbot
  2019-02-16  5:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 22:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 989f3c583d31e29029b1b7dd8ffd3afacbbb5c27 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 989f3c583d31e29029b1b7dd8ffd3afacbbb5c27

Minor C++-ification in ravenscar-thread.c

This changes some functions in ravenscar-thread.c to return "bool"
rather than int, where appropriate, and also changes "(void)" to "()".

gdb/ChangeLog
2019-02-15  Tom Tromey  <tromey@adacore.com>

	* ravenscar-thread.c (is_ravenscar_task)
	(ravenscar_task_is_currently_active): Return bool.
	(ravenscar_update_inferior_ptid, get_running_thread_msymbol)
	(_initialize_ravenscar): Remove "(void)".
	(has_ravenscar_runtime, ravenscar_runtime_initialized): Likewise.
	Return bool.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add push_target overload
@ 2019-02-15 22:29 sergiodj+buildbot
  2019-02-16  6:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 22:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT dea57a626364698759d1525acf9109771d173811 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: dea57a626364698759d1525acf9109771d173811

Add push_target overload

This adds a push_target overload that takes a "target_ops_up &&".
This removes some calls to release a target_ops_up, and makes the
intent here clearer.

gdb/ChangeLog
2019-02-15  Tom Tromey  <tromey@adacore.com>

	* target.h (push_target): Declare new overload.
	* target.c (push_target): New overload, taking an rvalue reference.
	* remote.c (remote_target::open_1): Use push_target overload.
	* corelow.c (core_target_open): Use push_target overload.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make the ravenscar thread target multi-target-ready
@ 2019-02-15 22:41 sergiodj+buildbot
  2019-02-16  8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 22:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0b790b1eeb3741217d4b7b419aca1ed77a114b6c ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 0b790b1eeb3741217d4b7b419aca1ed77a114b6c

Make the ravenscar thread target multi-target-ready

This changes ravenscar-thread.c to make it ready for multi-target.
This is done by moving globals into the target, and then arranging to
allocate the target with "new" and delete the target in its "close"
method.

gdb/ChangeLog
2019-02-15  Tom Tromey  <tromey@adacore.com>

	* ravenscar-thread.c (base_ptid): Remove.
	(struct ravenscar_thread_target) <close>: New method.
	<m_base_ptid>: New member.
	<update_inferior_ptid, active_task, task_is_currently_active,
	runtime_initialized>: Declare methods.
	<ravenscar_thread_target>: Add constructor.
	(ravenscar_thread_target::task_is_currently_active)
	(ravenscar_thread_target::update_inferior_ptid)
	(ravenscar_runtime_initialized): Rename.  Now methods.
	(ravenscar_thread_target::resume, ravenscar_thread_target::wait)
	(ravenscar_thread_target::update_thread_list): Update.
	(ravenscar_thread_target::active_task): Now method.
	(ravenscar_thread_target::store_registers)
	(ravenscar_thread_target::prepare_to_store)
	(ravenscar_thread_target::prepare_to_store)
	(ravenscar_thread_target::mourn_inferior): Update.
	(ravenscar_inferior_created): Use "new" to create target.
	(ravenscar_thread_target::get_ada_task_ptid): Update.
	(_initialize_ravenscar): Don't initialize base_ptid.
	(ravenscar_ops): Remove global.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Special-case wildcard requests in ravenscar-thread.c
@ 2019-02-15 22:54 sergiodj+buildbot
  2019-02-16  9:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 22:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 485b851b68ea035e3c49234dafcddb97c4f54a30 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 485b851b68ea035e3c49234dafcddb97c4f54a30

Special-case wildcard requests in ravenscar-thread.c

ravenscar-thread.c intercepts resume and wait target requests and
replaces the requested ptid with the ptid of the underlying CPU.
However, this is incorrect when a request is made with a wildcard
ptid.

This patch adds a special case to ravenscar-thread.c for
minus_one_ptid.  I don't believe a special case for process wildcards
is necessary, so I have not added that.

Joel's description explains the bug well:

At the user level, we noticed the issue because we had a test were
we insert a breakpoint one some code which is only run from, say,
CPU #2, whereas we unfortunately resumed the execution after having
stopped somewhere in CPU #1. As a result, we sent an order to resume
CPU #1, which starves CPU #2 forever, because the code in CPU #1
waits for some of the Ada tasks allocated to CPU #2 (and we never
reach our breakpoint either).

gdb/ChangeLog
2019-02-15  Tom Tromey  <tromey@adacore.com>

	* ravenscar-thread.c (ravenscar_thread_target::resume)
	(ravenscar_thread_target::wait): Special case wildcard requests.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix some typos in ravenscar-thread.c
@ 2019-02-15 23:42 sergiodj+buildbot
  2019-02-16  0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 23:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e397fd39c62c70900306fa206ebcae1a4853db8b ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: e397fd39c62c70900306fa206ebcae1a4853db8b

Fix some typos in ravenscar-thread.c

This fixes some typos I noticed in ravenscar-thread.c.

gdb/ChangeLog
2019-02-15  Tom Tromey  <tromey@adacore.com>

	* ravenscar-thread.c: Fix some typos.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] type_align: handle range types the same as ints and enums
@ 2019-02-17 15:18 sergiodj+buildbot
  2019-02-17 16:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-17 15:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 75ba10dc558a450c7dbcdc24f816f6709f2b29f7 ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 75ba10dc558a450c7dbcdc24f816f6709f2b29f7

type_align: handle range types the same as ints and enums

This commit enhances type_align to handle TYPE_CODE_RANGE types
the same as integers and enums, rather than returning zero,
which means for this function that it could not determine its
alignment.

gdb/ChangeLog:

	* gdbtypes.c (type_align): Handle TYPE_CODE_RANGE the same as
        integers and enumeration types.

Tested on x86_64-linux. Also tested on a variety of platforms
(with CPUs being ARM, AArch64, Leon3 (SPARC-like), PowerPC,
PowerPC64, RV64, Visium, x86, x86_64).


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24225, nios2 buffer overflow
@ 2019-02-18  6:37 sergiodj+buildbot
  2019-02-18  6:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-18  6:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a31b8bd9a054b494fd6ab18f14d84a2f0690f8a1 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: a31b8bd9a054b494fd6ab18f14d84a2f0690f8a1

PR24225, nios2 buffer overflow

	PR 24225
	* elf32-nios2.c (nios2_elf32_relocate_section): Use asprintf and
	PRIx64 to generate warning messages.  Print local sym names too.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Allow gdbarch to override alignment for method and member pointers
@ 2019-02-18 23:39 sergiodj+buildbot
  2019-02-19  0:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-18 23:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 70cd633e87e683a2233e852b96e5f1ef8591d4d1 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 70cd633e87e683a2233e852b96e5f1ef8591d4d1

gdb: Allow gdbarch to override alignment for method and member pointers

The code in type_align (gdbtypes.c) currently hard-codes the rules for
aligning method and member pointers.  It would seem better to forward
these types through the gdbarch hook, so that an architecture could
override the alignment of these types if needed.

Only 3 architectures currently override the gdbarch alignment hook,
these are arc, i386, and nio2.

For arc and nios the alignment rules are that alignment is the minimum
of 4-bytes and the type length.  As pointers are 4-bytes on these
targets, then (assuming method and members pointers are also 4-bytes)
there should be no change to the alignment after this patch.

For i386 the gdbarch alignment hook overrides for some INT and FLOAT
types only.  For method and member pointers we align on the type size
still, so there should be no change to the alignment after this patch.

I tested this on x86-64 GNU Linux with no regressions.

gdb/ChangeLog:

	* gdbtypes.c (type_align): Allow alignment of TYPE_CODE_METHODPTR
	and TYPE_CODE_MEMBERPTR to be overridden by the gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24235, Read memory violation in pei-x86_64.c
@ 2019-02-19 12:37 sergiodj+buildbot
  2019-02-19 13:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-19 12:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 179f2db0d9c397d7dd8a59907b84208b79f7f48c ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 179f2db0d9c397d7dd8a59907b84208b79f7f48c

PR24235, Read memory violation in pei-x86_64.c

	PR 24235
	* pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks
	attempting to prevent read past end of section.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24236, Heap buffer overflow in _bfd_archive_64_bit_slurp_armap
@ 2019-02-20  1:53 sergiodj+buildbot
  2019-02-20  2:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-20  1:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8abac8031ed369a2734b1cdb7df28a39a54b4b49 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 8abac8031ed369a2734b1cdb7df28a39a54b4b49

PR24236, Heap buffer overflow in _bfd_archive_64_bit_slurp_armap

	PR 24236
	* archive64.c (_bfd_archive_64_bit_slurp_armap): Move code adding
	sentinel NUL to string buffer nearer to loop where it is used.
	Don't go past sentinel when scanning strings, and don't write
	NUL again.
	* archive.c (do_slurp_coff_armap): Simplify string handling to
	archive64.c style.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Check asprintf return value
@ 2019-02-20  8:48 sergiodj+buildbot
  2019-02-20 10:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-20  8:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 34d75fb5c419a23922174c520e124523e01114c4 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 34d75fb5c419a23922174c520e124523e01114c4

Check asprintf return value

git a31b8bd9a05 introduced a warning (depending on your system
headers).

	PR 24225
	* elf32-nios2.c (nios2_elf32_relocate_section): Check asprintf
	return value.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfd: xtensa: fix callx relaxation
@ 2019-02-20 11:09 sergiodj+buildbot
  2019-02-20 13:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 11:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT eed62915fd5b733632af343fbf3d47c7364f8e36 ***

Author: Max Filippov <jcmvbkbc@gmail.com>
Branch: master
Commit: eed62915fd5b733632af343fbf3d47c7364f8e36

bfd: xtensa: fix callx relaxation

Big section alignment requirements between source and destination of a
long call can result in making call range bigger than what's reachable
by the call opcode. Add biggest section alignment of sections between
the call site and call destination to the call distance when making
long call relaxation decision.

2019-02-20  Eric Tsai  <erictsai@cadence.com>
bfd/
	* elf32-xtensa.c (is_resolvable_asm_expansion): Scan output
	sections between the call site and call destination and adjust
	call distance by the largest alignment.

ld/
	* testsuite/ld-xtensa/call_overflow.d: New test definition.
	* testsuite/ld-xtensa/call_overflow1.s: New test source.
	* testsuite/ld-xtensa/call_overflow2.s: New test source.
	* testsuite/ld-xtensa/call_overflow3.s: New test source.
	* testsuite/ld-xtensa/xtensa.exp: Add call_overflow test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Add default reggroups
@ 2019-02-20 13:53 sergiodj+buildbot
  2019-02-20 14:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 13:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0ef8a082c32f34827479f2df8fbd431e08acd2d8 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 0ef8a082c32f34827479f2df8fbd431e08acd2d8

AArch64: Add default reggroups

AArch64 does not define any reggroups.  This causes "maintenance print
reggroups" to dump the default set (which is ok).

However, if a new group is added via an xml file, then this now becomes
the only group.

Fixes gdb.xml/tdesc-regs.exp on AArch64.

gdb/ChangeLog:

	* aarch64-tdep.c (aarch64_add_reggroups): New function
	(aarch64_gdbarch_init): Call aarch64_add_reggroups.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use upper case for metasyntactic variables in "help find"
@ 2019-02-20 15:46 sergiodj+buildbot
  2019-02-20 16:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 15:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c763b8943348582e651dda24f88bb9f8db24672b ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: c763b8943348582e651dda24f88bb9f8db24672b

Use upper case for metasyntactic variables in "help find"

While answering a user's question on irc, I realized that the
metasyntactic variables in "help find" are not in upper case.  As you
know this is one of my pet quests, so here is a patch to fix this.
Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-02-20  Tom Tromey  <tromey@adacore.com>

	* findcmd.c (_initialize_mem_search): Use upper case for
	metasyntactic variables.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix typos in symtab_symbol_info
@ 2019-02-20 19:48 sergiodj+buildbot
  2019-02-20 20:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 19:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0c95f9ed6c0978ae421048552c15065d32c45c30 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0c95f9ed6c0978ae421048552c15065d32c45c30

Fix typos in symtab_symbol_info

symtab_symbol_info has a couple of messages that say "regulation
expression".  I think "regular expression" was meant, so this patch
changes it.

gdb/ChangeLog
2019-02-20  Tom Tromey  <tom@tromey.com>

	* symtab.c (symtab_symbol_info): Fix typos.

gdb/testsuite/ChangeLog
2019-02-20  Tom Tromey  <tom@tromey.com>

	* gdb.base/info_qt.exp: Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Disable styling when running in batch mode
@ 2019-02-21 13:50 sergiodj+buildbot
  2019-02-21 14:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-21 13:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ee2bcb0c356d86d7bd2ff525b84a7602bb2bc816 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: ee2bcb0c356d86d7bd2ff525b84a7602bb2bc816

Disable styling when running in batch mode

The GCC Guality testsuite within GCC compiles C/C++ files in GCC at
various optimization levels then debugs them in GDB, checking that
program values can be read.  This is done within the dejagnu framework.

The new style options in GDB have broken many of the tests due to the
testsuite being unable to process the new control characters.  The fix
in Guality is to either to improve the string matching or to disable
styling on the cli or init file (after checking gdb is recent enough
to support styling).

This fix will also need making an any other testsuites in the wild
that use GDB.

An alternative would be to automatically disable styling when using GDB
in batch mode.  The reasoning here is that batch mode is only used when
automating GDB and any output will be processed later either with text
processing tools or viewed in text editors, many of these will not
correctly handle the control characters by default.  This ensures GDB
continues to work as expected.  Anyone who explicitly wants styling in
batch mode can enable it either in the init file or adding to the batch
file - but that would not be the standard use case.

Patch simply disables style after reading the batch command flag, before
reading in the init file or batch file.

gdb/ChangeLog:

	* main.c (captured_main_1): Disable styling in batch mode.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Document style behavior in batch mode.
@ 2019-02-21 18:38 sergiodj+buildbot
  2019-02-21 19:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-21 18:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7557a51431744346c5d281e1b3a55b1fb985cbad ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 7557a51431744346c5d281e1b3a55b1fb985cbad

Document style behavior in batch mode.

Style is disabled when running in batch mode.

gdb/ChangeLog:

	* NEWS: Update style defaults.

gdb/doc/ChangeLog:

	* gdb.texinfo: Update style defaults.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix symtab/23853: symlinked default symtab
@ 2019-02-22 20:22 sergiodj+buildbot
  2019-02-22 21:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-22 20:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bb995d00b3eef2f48d0be895c3509a7ddd8280a1 ***

Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: bb995d00b3eef2f48d0be895c3509a7ddd8280a1

Fix symtab/23853: symlinked default symtab

This patch attempts to fix a bug dealing with setting breakpoints
in default symtabs that are symlinks.  For example:

(gdb) list
11	   GNU General Public License for more details.
12
13	   You should have received a copy of the GNU General Public License
14	   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
15
16	static int
17	foo (void)
18	{
19	  return 0; /* break here  */
20	}
(gdb)
21
22	int
23	main (void)
24	{
25	  return foo ();
26	}
(gdb) b 19
No line 19 in the current file.
Make breakpoint pending on future shared library load? (y or [n])

The problem here is that when create_sals_line_offset sets the default
symtab, it immediately calls symtab_to_fullname, passing that fullname
to collect_symtabs_from_filename to find all matching symtabs.  This
fails because we end up looking for a symtab with the name of the
actual file on disk (which is different in this case because of the
symlink) instead of the one stored in the debug info.

Since we already have the lookup name of the default symtab, use it
instead of the fullname. [This fullname thing was originally added
in 2007 in a series dealing with *displaying* absolute file names.
Clearly, this instance has nothing to do with the display of file names.]

gdb/ChangeLog

	PR symtab/23853
	* linespec.c (create_sals_line_offset): Search for the default
	symtab's filename instead of its fullname.

gdb/testsuite/ChangeLog

	PR symtab/23853
	* gdb.base/symlink-sourcefile.c: New file.
	* gdb.base/symlink-sourcefile.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Update copyright year range generated by gdbarch.sh
@ 2019-02-22 20:33 sergiodj+buildbot
  2019-02-22 22:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-22 20:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c6f4a5d0ed1ff54b5d46bdbadaa4ad811de1b715 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: c6f4a5d0ed1ff54b5d46bdbadaa4ad811de1b715

gdb: Update copyright year range generated by gdbarch.sh

The copyright year that gdbarch.sh places into the generated files
gdbarch.{c,h} wasn't updated at the start of the year.  After this
commit the gdbarch.{c,h} files regenerate as the currently are in the
tree.

gdb/ChangeLog:

	* gdbarch.sh: Update the copyright year range that is placed into
	generated files.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Look for build-id-based separate debug files under the sysroot
@ 2019-02-22 21:06 sergiodj+buildbot
  2019-02-22 23:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-22 21:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 07bc701d03167b8006835da583a03d98177cd4b6 ***

Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 07bc701d03167b8006835da583a03d98177cd4b6

Look for build-id-based separate debug files under the sysroot

When looking for a separate debug file that matches a given build-id,
GDB only looks in the host's debug dir (typically /usr/lib/debug).  This
patch makes it look in the sysroot as well.  This is to match the
behavior of GDB when using debuglink-based separate debug files,
introduced in :

402d2bfec42 ("Look for separate debug files in debug directories under a sysroot.")

In the following example, my sysroot is "/tmp/sysroot" and I am trying
to load symbols for
/tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so.  This is
the current behavior:

    (gdb) file /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so
    Reading symbols from /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so...

    Looking for separate debug info (build-id) for /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so
      Trying /usr/lib/debug/.build-id/f3/d6594d2600e985812cd4ba2ad083ac2aceae22.debug... no, unable to compute real path

    <snip>
    (No debugging symbols found in /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so)

With this patch:

    (gdb) file /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so
    Reading symbols from /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so...

    Looking for separate debug info (build-id) for /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so
      Trying /usr/lib/debug/.build-id/f3/d6594d2600e985812cd4ba2ad083ac2aceae22.debug... no, unable to compute real path
      Trying /tmp/sysroot/usr/lib/debug/.build-id/f3/d6594d2600e985812cd4ba2ad083ac2aceae22.debug... yes!
    Reading symbols from /tmp/sysroot/usr/lib/debug/.build-id/f3/d6594d2600e985812cd4ba2ad083ac2aceae22.debug...

In the original code, there is a suspicious "abfd.release ()" in
build_id_to_debug_bfd, that I don't understand.  If a file with the
right name exists but its build-id note doesn't match, we release (leak)
our reference, meaning the file will stay open?  I removed it in the new
code, so that the reference is dropped if we end up not using that file.
I tested briefly by corrupting a separate debug file to trigger this
code, nothing exploded.

gdb/ChangeLog:

	* build-id.c (build_id_to_debug_bfd_1): New function.
	(build_id_to_debug_bfd): Look for separate debug file in
	sysroot.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update my email address
@ 2019-02-23  1:12 sergiodj+buildbot
  2019-02-23  1:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-23  1:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 04dcda9cb0c79b2f27a2f38aedec63da51538ad0 ***

Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 04dcda9cb0c79b2f27a2f38aedec63da51538ad0

Update my email address

Since this is my last day at Ericsson, I am changing my email for my
personal one in the MAINTAINERS file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24144, pdp11-ld overwriting section data with zeros
@ 2019-02-24 11:25 sergiodj+buildbot
  2019-02-24 11:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-24 11:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f616c36b79d0776e51213b177e45a0f5d386cc58 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: f616c36b79d0776e51213b177e45a0f5d386cc58

PR24144, pdp11-ld overwriting section data with zeros

bfd/
	PR 24144
	* pdp11.c (set_section_contents): Revert 2015-02-24 change.
gas/
	PR 24144
	* config/obj-aout.c (obj_aout_frob_file_before_fix): Write to end
	of section to ensure file contents cover aligned section size.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix BFD leak in solib-darwin.c
@ 2019-02-25 16:02 sergiodj+buildbot
  2019-02-25 16:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-25 16:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cd5a152cebb201e98f3dbeca510aa39e838a1f62 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: cd5a152cebb201e98f3dbeca510aa39e838a1f62

Fix BFD leak in solib-darwin.c

commit 192b62ce0b4bb5c61188f570e127a26d2c32f716 ("Use class to manage
BFD reference counts") changed darwin_get_dyld_bfd to use:

+	dyld_bfd.release ();

rather than

-      do_cleanups (cleanup);

However, using release here leaks the BFD.  Instead, simply assigning
"sub" to "dyld_bfd" achieves what was meant.

gdb/ChangeLog
2019-02-25  Tom Tromey  <tromey@adacore.com>

	* solib-darwin.c (darwin_get_dyld_bfd): Don't release dyld_bfd.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix crash when loading dwp files
@ 2019-02-25 21:09 sergiodj+buildbot
  2019-02-25 22:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-25 21:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0a0f4c0179106ee4b8e56649c549f4175ebba994 ***

Author: Jordan Rupprecht <rupprecht@google.com>
Branch: master
Commit: 0a0f4c0179106ee4b8e56649c549f4175ebba994

Fix crash when loading dwp files

When loading dwp files, we create an array of ELF sections indexed by the ELF
section index in the dwp file. The size of this array is calculated by
section_count, as returned by bfd_count_sections, plus 1 (to account for the
null section at index 0). However, when loading the bfd file, strtab/symtab
sections are not added to the list, nor do they increment section_count, so
section_count is actually smaller than the number of ELF sections.

This happens to work when using GNU dwp, which lays out .debug section first,
with sections like .shstrtab coming at the end. Other tools, like llvm-dwp, put
.strtab first, and gdb crashes when loading those dwp files.

For instance, with the current state of gdb, loading a file like this:
$ readelf -SW <file.dwp>
[ 0] <empty>
[ 1] .debug_foo PROGBITS ...
[ 2] .strtab    STRTAB ...

... results in section_count = 2 (.debug is the only thing placed into
bfd->sections, so section_count + 1 == 2), and sectp->this_idx = 1 when mapping
over .debug_foo in dwarf2_locate_common_dwp_sections, which passes the
assertion that 1 < 2.

However, using a dwp file produced by llvm-dwp:
$ readelf -SW <file.dwp>
[ 0] <empty>
[ 1] .strtab    STRTAB ...
[ 2] .debug_foo PROGBITS ...

... results in section_count = 2 (.debug is the only thing placed into
bfd->sections, so section_count + 1 == 2), and sectp->this_idx = 2 when mapping
over .debug_foo in dwarf2_locate_common_dwp_sections, which fails the assertion
that 2 < 2.

The assertion hit is:

gdb/dwarf2read.c:13009: internal-error: void dwarf2_locate_common_dwp_sections(bfd*, asection*, void*): Assertion `elf_section_nr < dwp_file->num_sections' failed.

This patch changes the calculation of section_count to use elf_numsections,
which should return the actual number of ELF sections.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix BFD leak in dwarf2_get_dwz_file.
@ 2019-02-25 22:54 sergiodj+buildbot
  2019-02-26  0:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-25 22:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0f58c9e88ebee636206b946b00ea52b47056b320 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 0f58c9e88ebee636206b946b00ea52b47056b320

Fix BFD leak in dwarf2_get_dwz_file.

Previously if build_id_verify failed, dwz_bfd was cleared to NULL via
release(), but the BFD object was not destroyed.  Use reset() with
nullptr instead to delete the BFD.

gdb/ChangeLog:

	* dwarf2read.c (dwarf2_get_dwz_file): Reset dwz_bfd to nullptr
	instead of releasing ownership.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add tests for gdb.Value(bufobj, type) constructor
@ 2019-02-26 18:09 sergiodj+buildbot
  2019-02-26 23:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-26 18:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bc2a507e6e90fc5766bd68d368441f5b511c2ef1 ***

Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: bc2a507e6e90fc5766bd68d368441f5b511c2ef1

Add tests for gdb.Value(bufobj, type) constructor

gdb/testsuite/ChangeLog:

	* gdb.python/py-value.exp (test_value_from_buffer): New proc with
	call from main program.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Define gdb.Value(bufobj, type) constructor
@ 2019-02-26 19:28 sergiodj+buildbot
  2019-02-26 20:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-26 19:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fe07eca59d0544eb6c56c3559da9ceece23cae6e ***

Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: fe07eca59d0544eb6c56c3559da9ceece23cae6e

Define gdb.Value(bufobj, type) constructor

Provided a buffer BUFOBJ and a type TYPE, construct a gdb.Value object
with type TYPE, where the value's contents are taken from BUFOBJ.

E.g...

(gdb) python import struct
(gdb) python unsigned_int_type=gdb.lookup_type('unsigned int')
(gdb) python b=struct.pack('=I',0xdeadbeef)
(gdb) python v=gdb.Value(b, unsigned_int_type) ; print("%#x" % v)
0xdeadbeef

This two argument form of the gdb.Value constructor may also be used
to obtain gdb values from selected portions of buffers read with
Inferior.read_memory().  The test case (which is in a separate patch)
demonstrates this use case.

gdb/ChangeLog:

	* python/py-value.c (convert_buffer_and_type_to_value): New
	function.
	(valpy_new): Parse arguments via gdb_PyArg_ParseTupleAndKeywords.
	Add support for handling an optional second argument.  Call
	convert_buffer_and_type_to_value as appropriate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix new py-value.exp test case
@ 2019-02-26 19:57 sergiodj+buildbot
  2019-02-27  2:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-26 19:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8791793caa9a3186d4922cc786b6344e6093be73 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 8791793caa9a3186d4922cc786b6344e6093be73

Fix new py-value.exp test case

The new test case in py-value.exp fails -- the code was changed to
throw ValueError, but the test still checks for TypeError.  This patch
fixes the problem.

I'm checking this in.  Tested on x86-64 Fedora 29.

gdb/testsuite/ChangeLog
2019-02-26  Tom Tromey  <tromey@adacore.com>

	* gdb.python/py-value.exp (test_value_from_buffer): Check for
	ValueError, not TypeError.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update NEWS post GDB 8.3 branch creation.
@ 2019-02-27  5:47 sergiodj+buildbot
  2019-02-27 11:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27  5:47 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9335e75a6170fbf76f60548690d5724198cf0440 ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 9335e75a6170fbf76f60548690d5724198cf0440

Update NEWS post GDB 8.3 branch creation.

gdb/ChangeLog:

	* NEWS: Create a new section for the next release branch.
	Rename the section of the current branch, now that it has
	been cut.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Restructure type_align and gdbarch_type_align
@ 2019-02-27 11:28 sergiodj+buildbot
  2019-02-27 17:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 11:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5561fc304ff2a93a33a42df63eaf18b92483b307 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 5561fc304ff2a93a33a42df63eaf18b92483b307

gdb: Restructure type_align and gdbarch_type_align

This commit restructures the relationship between the type_align
function and the gdbarch_type_align method.

The problem being addressed with this commit is this; previously the
type_align function was structured so that for "basic" types (int,
float, etc) the gdbarch_type_align hook was called, which for
"compound" types (arrays, structs, etc) the common type_align code has
a fixed method for how to extract a "basic" type and would then call
itself on that "basic" type.

The problem is that if an architecture wants to modify the alignment
rules for a "compound" type then this is not currently possible.

In the revised structure, all types pass through the
gdbarch_type_align method.  If this method returns 0 then this
indicates that the architecture has no special rules for this type,
and GDB should apply the default rules for alignment.  However, the
architecture is free to provide an alignment for any type, both
"basic" and "compound".

After this commit the default alignment rules now all live in the
type_align function, the default_type_align only ever returns 0,
meaning apply the default rules.

I've updated the 3 targets (arc, i386, and nios2) that already
override the gdbarch_type_align method to fit the new scheme.

Tested on X86-64/GNU Linux with no regressions.

gdb/ChangeLog:

	* arc-tdep.c (arc_type_align): Provide alignment for basic types,
	return 0 for other types.
	* arch-utils.c (default_type_align): Always return 0.
	* gdbarch.h: Regenerate.
	* gdbarch.sh (type_align): Extend comment.
	* gdbtypes.c (type_align): Add additional comments, always call
	gdbarch_type_align before applying the default rules.
	* i386-tdep.c (i386_type_align): Return 0 as the default rule,
	generic code will then apply a suitable default.
	* nios2-tdep.c (nios2_type_align): Provide alignment for basic
	types, return 0 for other types.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Handle alignment for C++ structures with static members
@ 2019-02-27 11:40 sergiodj+buildbot
  2019-02-27 18:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 11:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bf9a735e239cb7a27c81aa7c98679f7f83fa8314 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: bf9a735e239cb7a27c81aa7c98679f7f83fa8314

gdb: Handle alignment for C++ structures with static members

In 'type_align' when computing the alignment of a structure we should
not consider the alignment of static structure members, these are
usually stored outside of the structure and therefore don't have any
impact on the structures alignment requirements.

I've extended the existing alignment calculating test to compile in
both C and C++ now so that we can create structures with static
members.

gdb/ChangeLog:

	* gdbtypes.c (type_align): Don't consider static members when
	computing structure alignment.

gdb/testsuite/ChangeLog:

	* gdb.base/align.exp: Extend to compile in both C and C++, and add
	tests for structs with static members.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/alpha: Use default gdbarch methods where possible
@ 2019-02-27 15:21 sergiodj+buildbot
  2019-02-27 23:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 15:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 480e46cfc5cf4976c1f1a00bc6254d78e9c45447 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 480e46cfc5cf4976c1f1a00bc6254d78e9c45447

gdb/alpha: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id, and
gdbarch_unwind_pc.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* gdb/alpha-tdep.c (alpha_dummy_id): Delete.
	(alpha_unwind_pc): Delete.
	(alpha_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/arm: Use default gdbarch methods where possible
@ 2019-02-27 15:43 sergiodj+buildbot
  2019-02-28  2:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 15:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a19a650fcca359a02bfadb201c9b032ce7479525 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: a19a650fcca359a02bfadb201c9b032ce7479525

gdb/arm: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* gdb/arm-tdep.c (arm_dummy_id): Delete.
	(arm_unwind_pc): Delete.
	(arm_unwind_sp): Delete.
	(arm_gdbarch_init): Don't register deleted functions with gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/csky: Use default gdbarch methods where possible
@ 2019-02-27 16:18 sergiodj+buildbot
  2019-02-28  6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 16:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4133e5a13f15d86bb1f834090de98cca4c34759d ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 4133e5a13f15d86bb1f834090de98cca4c34759d

gdb/csky: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* gdb/csky-tdep.c (csky_dummy_id): Delete.
	(csky_unwind_pc): Delete.
	(csky_unwind_sp): Delete.
	(csky_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/ft32: Use default gdbarch methods where possible
@ 2019-02-27 16:53 sergiodj+buildbot
  2019-02-28 10:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 16:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 68b867f30eeca7e9585e9ee16e824f5a18e2bc6c ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 68b867f30eeca7e9585e9ee16e824f5a18e2bc6c

gdb/ft32: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* gdb/ft32-tdep.c (ft32_dummy_id): Delete.
	(ft32_unwind_pc): Delete.
	(ft32_unwind_sp): Delete.
	(ft32_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/h8300: Use default gdbarch methods where possible
@ 2019-02-27 17:04 sergiodj+buildbot
  2019-02-28 11:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 17:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9734a586671fa95a06a2e10323c14d0157805057 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 9734a586671fa95a06a2e10323c14d0157805057

gdb/h8300: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* gdb/h8300-tdep.c (h8300_unwind_pc): Delete.
	(h8300_unwind_sp): Delete.
	(h8300_dummy_id): Delete.
	(h8300_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use Python 2.[67] / 3.X / PEP 3118 buffer protocol
@ 2019-02-27 18:29 sergiodj+buildbot
  2019-02-28 14:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 18:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6ca622222193bc29a2780f6f02f0d8b96da65a4b ***

Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: 6ca622222193bc29a2780f6f02f0d8b96da65a4b

Use Python 2.[67] / 3.X / PEP 3118 buffer protocol

This patch removes the non-IS_PY3K code in infpy_write_memory()
and infpy_search_memory().  In both cases, the remaining code
from these ifdefs is related to use of the PEP 3118 buffer protocol.
(Deleted code is either due to simplification or related to use of the
old buffer protocol.)  PEP 3118 is sometimes referred to as the "new"
buffer protocol, though it's not that new anymore.

The link below describes new features in Python 2.6.  In particular,
it says that the buffer protocol described by PEP 3118 is in Python
2.6.  It also says (at the top of the page) that Python 2.6 was
released on Oct 1, 2008.

https://docs.python.org/3/whatsnew/2.6.html#pep-3118-revised-buffer-protocol

The last security release for the Python 2.6 series was 2.6.9.  It was
released on Oct 29, 2013.  According to this document...

https://www.python.org/download/releases/2.6.9/

...support for the 2.6 series has ended:

    With the 2.6.9 release, and five years after its first release,
    the Python 2.6 series is now officially retired.  All official
    maintenance for Python 2.6, including security patches, has ended.
    For ongoing maintenance releases, please see the Python 2.7
    series.

As noted earlier, Python 2.6, Python 2.7, and Python 3.X all have
support for the PEP 3118 buffer protocol.  Python releases prior
to 2.6 use an older buffer protocol.  Since Python 2.6 has been
retired for a good while now, it seems reasonable to me to remove
code using the older buffer protocol from GDB.

I have also simplified some of the code via use of the Py_buffer
unique_ptr specialization which I introduced in the two argument
gdb.Value constructor patch series.  Therefore, there is a dependency
on patch #1 from that series.

I have tested against both Python 2.7.15 and 3.7.2.  I see no
regressions among the non-racy tests.  I've also verified that
PyBuffer_Release is being called when the affected functions exit
while running the tests in gdb.python/py-inferior.exp by hand.  I've
also tried running valgrind on GDB while running this test, but I'm
puzzled by the results that I'm seeing - I'm seeing no additional
leaks when I comment out the Py_buffer_up lines that I introduced.
That said, I'm not seeing any leaks that obviously originate from
either infpy_write_memory() or infpy_search_memory().

gdb/ChangeLog:

	* python/py-inferior.c (infpy_write_memory): Remove non-IS_PY3K
	code from these functions.  Remove corresponding ifdefs.  Use
	Py_buffer_up instead of explicit calls to PyBuffer_Release.
	Remove gotos and target of gotos.
	(infpy_search_memory): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove Python 2.4 and 2.5 support
@ 2019-02-27 19:00 sergiodj+buildbot
  2019-02-28 17:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 19:00 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6c28e44a359e9f6cf455ddff0009ca99406f7224 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 6c28e44a359e9f6cf455ddff0009ca99406f7224

Remove Python 2.4 and 2.5 support

This removes all the remainings spots I could find that work around
issues in Python 2.4 and 2.5.

I don't have a good way to test that Python 2.6 still works.

Tested by the buildbot.

gdb/ChangeLog
2019-02-27  Tom Tromey  <tromey@adacore.com>

	* config.in, configure: Rebuild.
	* configure.ac (HAVE_LIBPYTHON2_4, HAVE_LIBPYTHON2_5): Never
	define.
	* python/py-value.c: Remove Python 2.4 workaround.
	* python/py-utils.c (gdb_pymodule_addobject): Remove Python 2.4
	workaround.
	* python/py-type.c (convert_field, gdbpy_initialize_types): Remove
	Python 2.4 workaround.
	* python/python-internal.h: Remove Python 2.4 comment.
	(Py_ssize_t): Don't define.
	(PyVarObject_HEAD_INIT, Py_TYPE): Don't define.
	(gdb_Py_DECREF): Remove Python 2.4 workaround.
	(gdb_PyObject_GetAttrString, PyObject_GetAttrString): Remove.
	(gdb_PyObject_HasAttrString, PyObject_HasAttrString): Remove.
	* python/python.c (do_start_initialization): Remove Python 2.4
	workaround.
	* python/py-prettyprint.c (class dummy_python_frame): Remove.
	(print_children): Remove Python 2.4 workaround.
	* python/py-inferior.c (buffer_procs): Remove Python 2.4
	workaround.
	(CHARBUFFERPROC_NAME): Remove.
	* python/py-breakpoint.c (gdbpy_initialize_breakpoints): Remove
	Python 2.4 workaround.

gdb/testsuite/ChangeLog
2019-02-27  Tom Tromey  <tromey@adacore.com>

	* lib/gdb.exp (skip_python_tests_prompt): Don't check for Python
	2.4.
	* gdb.python/py-finish-breakpoint.exp: Remove Python 2.4
	workaround.

gdb/ChangeLog
2019-02-27  Tom Tromey  <tromey@adacore.com>

	* config.in, configure: Rebuild.
	* configure.ac (HAVE_LIBPYTHON2_4, HAVE_LIBPYTHON2_5): Never
	define.
	* python/py-value.c: Remove Python 2.4 workaround.
	* python/py-utils.c (gdb_pymodule_addobject): Remove Python 2.4
	workaround.
	* python/py-type.c (convert_field, gdbpy_initialize_types): Remove
	Python 2.4 workaround.
	* python/python-internal.h: Remove Python 2.4 comment.
	(Py_ssize_t): Don't define.
	(PyVarObject_HEAD_INIT, Py_TYPE): Don't define.
	(gdb_Py_DECREF): Remove Python 2.4 workaround.
	(gdb_PyObject_GetAttrString, PyObject_GetAttrString): Remove.
	(gdb_PyObject_HasAttrString, PyObject_HasAttrString): Remove.
	* python/python.c (do_start_initialization): Remove Python 2.4
	workaround.
	* python/py-prettyprint.c (class dummy_python_frame): Remove.
	(print_children): Remove Python 2.4 workaround.
	* python/py-inferior.c (buffer_procs): Remove Python 2.4
	workaround.
	(CHARBUFFERPROC_NAME): Remove.
	* python/py-breakpoint.c (gdbpy_initialize_breakpoints): Remove
	Python 2.4 workaround.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make 'show width/height' display "unlimited" when capped for readline
@ 2019-02-27 19:25 sergiodj+buildbot
  2019-02-28 21:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 19:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8ed252144a29fb6370b828d84419d5c59d23dae2 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 8ed252144a29fb6370b828d84419d5c59d23dae2

Make 'show width/height' display "unlimited" when capped for readline

When we cap the height/width sizes before passing to readline, tweak
the corresponding command variable to show "unlimited":

  (gdb) set height 0x8000
  (gdb) show height
  Number of lines gdb thinks are in a page is unlimited.

Instead of the current output:
  (gdb) set height 0x8000
  (gdb) show height
  Number of lines gdb thinks are in a page is 32768.

gdb/ChangeLog:
2019-02-27  Pedro Alves  <palves@redhat.com>

	* utils.c (set_screen_size): When we cap the height/width sizes,
	tweak the corresponding command variable to show "unlimited":

gdb/testsuite/ChangeLog:
2019-02-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/page.exp: Add tests for "set/show width/height" with
	"infinite" values.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Test "set width/height -1"
@ 2019-02-27 19:37 sergiodj+buildbot
  2019-02-28 22:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 19:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5862844d0f443b9f65e8dd0d85c43f8818d3f355 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 5862844d0f443b9f65e8dd0d85c43f8818d3f355

Test "set width/height -1"

As a follow up to the previous commit, add a test for "set
width/height -1", to make sure we don't overflow in readline with
negative values either.

gdb/testsuite/ChangeLog:
2019-02-27  Pedro Alves  <palves@redhat.com>

	* gdb.base/page.exp: Add tests for "set width/height -1".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Handle \r\n in gdbreplay
@ 2019-02-27 20:01 sergiodj+buildbot
  2019-03-01  1:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 20:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 43ac54fca353ea8d77d56dc5ad9e049bbb9a81fb ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 43ac54fca353ea8d77d56dc5ad9e049bbb9a81fb

Handle \r\n in gdbreplay

I tried gdbreplay yesterday, but the remotelogfile I received was made
on Windows, so the lines were terminated with \r\n rather than plain
\n.

This patch changes gdbreplay to allow \r\n line termination when
reading the log file.

gdb/gdbserver/ChangeLog
2019-02-27  Tom Tromey  <tromey@adacore.com>

	* gdbreplay.c (logchar): Handle \r\n.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86-64: Skip protected check on symbol defined by linker
@ 2019-02-27 20:22 sergiodj+buildbot
  2019-03-01  2:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 20:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5cfe428cd1788be52a0af540f02b8f2705354d50 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 5cfe428cd1788be52a0af540f02b8f2705354d50

x86-64: Skip protected check on symbol defined by linker

Skip symbol defined by linker when checking copy reloc on protected
symbol.

bfd/

	PR ld/24276
	* elf64-x86-64.c (elf_x86_64_check_relocs): Skip symbol defined
	by linker when checking copy reloc on protected symbol.

ld/

	PR ld/24276
	* testsuite/ld-i386/i386.exp: Run PR ld/24276 test.
	* testsuite/ld-x86-64/x86-64.exp: Likewise.
	* testsuite/ld-i386/pr24276.dso: New file.
	* testsuite/ld-i386/pr24276.warn: Likewise.
	* testsuite/ld-x86-64/pr24276.dso: Likewise.
	* testsuite/ld-x86-64/pr24276.warn: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/arc: Use default gdbarch methods where possible
@ 2019-02-28  0:52 sergiodj+buildbot
  2019-02-28  1:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-28  0:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f8278c3c7e0212e810fa7d65f6202b607c9cf3ca ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: f8278c3c7e0212e810fa7d65f6202b607c9cf3ca

gdb/arc: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.  The
only difference is that the old ARC specific methods had additional
debugging, however, this was discussed on the mailing list[1] and it
was agreed these methods could be removed.

[1] https://sourceware.org/ml/gdb-patches/2018-12/msg00386.html

gdb/ChangeLog:

	* gdb/arc-tdep.c (arc_dummy_id): Delete.
	(arc_unwind_pc): Delete.
	(arc_unwind_sp): Delete.
	(arc_gdbarch_init): Don't register deleted functions with gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/cris: Use default gdbarch methods where possible
@ 2019-02-28  4:51 sergiodj+buildbot
  2019-02-28  5:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-28  4:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8010f576414759bf5bdcfeaa64226bf03586b763 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 8010f576414759bf5bdcfeaa64226bf03586b763

gdb/cris: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* gdb/cris-tdep.c (cris_dummy_id): Delete.
	(cris_unwind_pc): Delete.
	(cris_unwind_sp): Delete.
	(cris_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] (gdb/sim) Move Mike Frysinger to past maintainers section
@ 2019-02-28  7:38 sergiodj+buildbot
  2019-03-01  5:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-28  7:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9c4c331816b14d7020a8a15eed9dac5e5babdb0e ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 9c4c331816b14d7020a8a15eed9dac5e5babdb0e

(gdb/sim) Move Mike Frysinger to past maintainers section

sim/ChangeLog:

	* MAINTAINERS: Move Mike Frysinger to past maintainers' section.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Use default gdbarch methods where possible
@ 2019-02-28  7:58 sergiodj+buildbot
  2019-02-28  7:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-28  7:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 76055cbe88cc6623f88c8ae43ed8b8ae6883df9e ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 76055cbe88cc6623f88c8ae43ed8b8ae6883df9e

gdb/riscv: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

This change has been tested with no regressions.

gdb/ChangeLog:

	* gdb/riscv-tdep.c (riscv_dummy_id): Delete.
	(riscv_unwind_pc): Delete.
	(riscv_unwind_sp): Delete.
	(riscv_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/frv: Use default gdbarch methods where possible
@ 2019-02-28  8:46 sergiodj+buildbot
  2019-02-28  9:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-28  8:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2fbe7ad059d9ec2a8a378a5c2b973a1188677422 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 2fbe7ad059d9ec2a8a378a5c2b973a1188677422

gdb/frv: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* gdb/frv-tdep.c (frv_dummy_id): Delete.
	(frv_unwind_pc): Delete.
	(frv_unwind_sp): Delete.
	(frv_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/hppa: Use default gdbarch method default_dummy_id.
@ 2019-02-28 12:41 sergiodj+buildbot
  2019-02-28 13:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-28 12:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f4bc7d2cde9189249d41ac9c63235c128da4d2f2 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: f4bc7d2cde9189249d41ac9c63235c128da4d2f2

gdb/hppa: Use default gdbarch method default_dummy_id.

Make use of the default gdbarch method for gdbarch_dummy_id.

I have not tested this change but, by inspecting the code, I believe
the default method is equivalent to the code being deleted.

gdb/ChangeLog:

	* gdb/hppa-tdep.c (hppa_dummy_id): Delete.
	(hppa_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Prevent a buffer overrun error when attempting to parse a corrupt ELF file.
@ 2019-02-28 14:43 sergiodj+buildbot
  2019-03-01  6:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-02-28 14:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT eed5def8d0b7b64c3592be75a9b22bb4ce1a78f4 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: eed5def8d0b7b64c3592be75a9b22bb4ce1a78f4

Prevent a buffer overrun error when attempting to parse a corrupt ELF file.

	PR 24273
	* elf.c (bfd_elf_string_from_elf_section): Check for a string
	section that is not NUL terminated.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24272, out-of-bounds read in pex64_xdata_print_uwd_codes
@ 2019-03-01  3:16 sergiodj+buildbot
  2019-03-01 10:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-01  3:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b24cc4146e4de9f3b66e2e2fb8379db46eff89c9 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: b24cc4146e4de9f3b66e2e2fb8379db46eff89c9

PR24272, out-of-bounds read in pex64_xdata_print_uwd_codes

The fix here is to use an unsigned comparison for
    if (a->NumberOfRvaAndSizes > IMAGE_NUMBEROF_DIRECTORY_ENTRIES)

include/
	PR 24272
	* coff/internal.h (struct internal_extra_pe_aouthdr): Change type
	of SizeOfCode, SizeOfInitializedData, and SizeOfUninitializedData
	to bfd_vma.  Change type of SectionAlignment, FileAlignment,
	Reserved1, SizeOfImage, SizeOfHeaders, CheckSum, LoaderFlags,
	and NumberOfRvaAndSizes to uint32_t.
bfd/
	PR 24272
	* peXXigen.c (_bfd_XXi_swap_aouthdr_in): Use unsigned index.
	(_bfd_XX_print_private_bfd_data_common): Adjust for type changes.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Can't interrupt process without controlling terminal on Solaris (PR gdb/8527)
@ 2019-03-01  7:20 sergiodj+buildbot
  2019-03-01  7:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-01  7:20 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 92137da015d301fec4b7878467d053d379a2f489 ***

Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Branch: master
Commit: 92137da015d301fec4b7878467d053d379a2f489

Can't interrupt process without controlling terminal on Solaris (PR gdb/8527)

If gdb attaches to a process that either has no controlling terminal,
or the controlling terminal differs from the one gdb is running under,
break/^C doesn't interrupt the debugged process on Solaris.

Fixed as follows, analogous to what all all other targets do.  Patch from
the PR, recently re-submitted by Brian Vandenberg.

Tested on amd64-pc-solaris2.11, sparcv9-sun-solaris2.11, and
x86_64-pc-linux-gnu.

2019-02-28  Brian Vandenberg  <phantall@gmail.com>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	gdb:
	PR gdb/8527
	* procfs.c (proc_wait_for_stop): Wrap write of PCWSTOP in
	set_sigint_trap, clear_sigint_trap.

	gdb/testsuite:
	PR gdb/8527
	* gdb.base/interrupt-daemon-attach.c,
	gdb.base/interrupt-daemon-attach.exp: New test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Binutils: Always skip only 1 byte for CIE version 1's return address register.
@ 2019-03-01 12:46 sergiodj+buildbot
  2019-03-01 12:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-01 12:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4ffd290906608e72fd98d627a24aa2c2b6ecf4ce ***

Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 4ffd290906608e72fd98d627a24aa2c2b6ecf4ce

Binutils: Always skip only 1 byte for CIE version 1's return address register.

According to the specification for the CIE entries, when the CIE version is 1 then
the return address register field is always 1 byte.  Readelf does this correctly in
read_cie in dwarf.c but ld does this incorrectly and always tries to read a
skip_leb128.  If the value here has the top bit set then ld will incorrectly read
at least another byte, causing either an assert failure or an incorrect address to
be used in eh_frame.

I'm not sure how to generate a generic test for this as I'd need to write assembly,
and it's a bit hard to trigger. Essentially the relocated value needs to start with
something that & 0x70 != 0x10 while trying to write a personality.

bfd/ChangeLog:

	* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Correct CIE parse.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Revert "Add support to GNU ld to separate got related plt entries"
@ 2019-03-01 14:55 sergiodj+buildbot
  2019-03-01 16:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-01 14:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 24801b157631434446c2fc5a40994a5555a1db38 ***

Author: Andreas Krebbel <krebbel@linux.ibm.com>
Branch: master
Commit: 24801b157631434446c2fc5a40994a5555a1db38

Revert "Add support to GNU ld to separate got related plt entries"

bfd/ChangeLog:

2019-03-01  Andreas Krebbel  <krebbel@linux.ibm.com>

	This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
	2019-01-14  Maamoun Tarsha  <maamountk@hotmail.com>

	PR 20113
	* elf32-s390.c (allocate_dynrelocs): Update comment.

ld/ChangeLog:

2019-03-01  Andreas Krebbel  <krebbel@linux.ibm.com>

	This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
	2019-01-14  Maamoun Tarsha  <maamountk@hotmail.com>

	PR 20113
	* emulparams/elf64_s390.sh (SEPARATE_GOTPLT): Define.
	* emulparams/elf_s390.sh (SEPARATE_GOTPLT): Define.
	* testsuite/ld-s390/gotreloc_31-1.dd: Update expected output.
	* testsuite/ld-s390/tlsbin.dd: Likewise.
	* testsuite/ld-s390/tlsbin.rd: Likewise.
	* testsuite/ld-s390/tlsbin.sd: Likewise.
	* testsuite/ld-s390/tlsbin_64.dd: Likewise.
	* testsuite/ld-s390/tlsbin_64.rd: Likewise.
	* testsuite/ld-s390/tlsbin_64.sd: Likewise.
	* testsuite/ld-s390/tlspic.dd: Likewise.
	* testsuite/ld-s390/tlspic.rd: Likewise.
	* testsuite/ld-s390/tlspic.sd: Likewise.
	* testsuite/ld-s390/tlspic_64.dd: Likewise.
	* testsuite/ld-s390/tlspic_64.rd: Likewise.
	* testsuite/ld-s390/tlspic_64.sd: Likewise.
	* testsuite/ld-s390/s390.exp: Skip s390 tests for tpf targets.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix GDB compilation on MinGW (PR gdb/24292)
@ 2019-03-02 13:35 sergiodj+buildbot
  2019-03-02 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-02 13:35 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 41fa577fbc326402be49b3f03bc828e52dba8b88 ***

Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 41fa577fbc326402be49b3f03bc828e52dba8b88

Fix GDB compilation on MinGW (PR gdb/24292)

gdb/ChangeLog:

2019-03-02  Eli Zaretskii  <eliz@gnu.org>

	PR gdb/24292
	* common/netstuff.c:
	* gdbserver/gdbreplay.c
	* gdbserver/remote-utils.c:
	* ser-tcp.c:
	* unittests/parse-connection-spec-selftests.c [USE_WIN32API]:
	Include ws2tcpip.h instead of wsiapi.h and winsock2.h.  Redefine
	_WIN32_WINNT to 0x0501 if defined to a smaller value, as
	'getaddrinfo' and 'freeaddrinfo' were not available before
	Windows XP, and mingw.org's MinGW headers by default define
	_WIN32_WINNT to 0x500.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdbserver short-circuit-argument-list failures
@ 2019-03-04 15:25 sergiodj+buildbot
  2019-03-04 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-04 15:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7b63ad86ab1a56812772f266b345ecaa494ece95 ***

Author: Richard Bunt <richard.bunt@arm.com>
Branch: master
Commit: 7b63ad86ab1a56812772f266b345ecaa494ece95

gdbserver short-circuit-argument-list failures

This patch fixes test case failures observed when running
short-circuit-argument-list.exp with gdb server boards. Thanks to Sergio
Durigan Junior for pointing this out.

Assertions failed with the native{,-extended}-gdbserver boards as the
standard output from the test program appears in a different location
than observed on non-gdbserver boards. This standard output was used to
determine whether a function, which had been logically short-circuited,
was called or not. Since the location of the standard out cannot be
relied upon to verify this, a new mechanism was needed.

The test program now records function calls in variables named the same
as the function with a "_called" suffix. These variables can then be
queried from the test case to verify the occurrence of a call.

A method to reset the call counts has been included in the test case, so
that any future assertions added to this test can ensure a fresh set of
initial values before proceeding. Not resetting values between groups of
assertions creates a dependency between them, which increases the
likelihood that a single failure causes subsequent assertions to fail.

Regression tested on x86_64, aarch64 and ppc64le.
Regression tested with Ada on x86_64.
Regression tested with the native{,-extended}-gdbserver boards on x86_64.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Introduce ATTRIBUTE_UNUSED_RESULT and use it
@ 2019-03-05 16:13 sergiodj+buildbot
  2019-03-05 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 16:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 18cb7c9f3add62ff598f0551a767af8aaa04b07e ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 18cb7c9f3add62ff598f0551a767af8aaa04b07e

Introduce ATTRIBUTE_UNUSED_RESULT and use it

This introduces the new ATTRIBUTE_UNUSED_RESULT define, and applies it
to gdb_argv::release.

gdb/ChangeLog
2019-03-05  Tom Tromey  <tromey@adacore.com>

	* utils.h (class gdb_argv) <release>: Add
	ATTRIBUTE_UNUSED_RESULT.
	* common/common-defs.h (ATTRIBUTE_UNUSED_RESULT): Define.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_fd
@ 2019-03-05 16:26 sergiodj+buildbot
  2019-03-05 19:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 16:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3cabd438f3d18e1cb7afd4d2a82449883943e62f ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 3cabd438f3d18e1cb7afd4d2a82449883943e62f

Add ATTRIBUTE_UNUSED_RESULT to scoped_fd

This applies ATTRIBUTE_UNUSED_RESULT to scoped_fd::release.

gdb/ChangeLog
2019-03-05  Tom Tromey  <tromey@adacore.com>

	* common/scoped_fd.h (class scoped_fd) <release>: Add
	ATTRIBUTE_UNUSED_RESULT.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_mmap
@ 2019-03-05 16:37 sergiodj+buildbot
  2019-03-05 21:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 16:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 083eef1f897e2fd13e4afa7b1a52090c83476f5c ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 083eef1f897e2fd13e4afa7b1a52090c83476f5c

Add ATTRIBUTE_UNUSED_RESULT to scoped_mmap

This applies ATTRIBUTE_UNUSED_RESULT to scoped_mmap::release and fixes
a couple of spots to comply.

gdb/ChangeLog
2019-03-05  Tom Tromey  <tromey@adacore.com>

	* nat/linux-btrace.c (linux_enable_bts, linux_enable_pt): Update.
	* common/scoped_mmap.h (class scoped_mmap) <release>: Add
	ATTRIBUTE_UNUSED_RESULT.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to macro_buffer
@ 2019-03-05 16:49 sergiodj+buildbot
  2019-03-05 22:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 16:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4e4a8b932b7ae8e239eebb597fbb6cfcb7278a64 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 4e4a8b932b7ae8e239eebb597fbb6cfcb7278a64

Add ATTRIBUTE_UNUSED_RESULT to macro_buffer

This applies ATTRIBUTE_UNUSED_RESULT to macro_buffer::release.

gdb/ChangeLog
2019-03-05  Tom Tromey  <tromey@adacore.com>

	* macroexp.c (struct macro_buffer) <release>: Add
	ATTRIBUTE_UNUSED_RESULT.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_remote_fd::release
@ 2019-03-05 17:03 sergiodj+buildbot
  2019-03-05 23:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 17:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 88a774b9984e42c492ddcf4e4b4b0170ac803576 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 88a774b9984e42c492ddcf4e4b4b0170ac803576

Add ATTRIBUTE_UNUSED_RESULT to scoped_remote_fd::release

This applies ATTRIBUTE_UNUSED_RESULT to scoped_remote_fd::release.

gdb/ChangeLog
2019-03-05  Tom Tromey  <tromey@adacore.com>

	* remote.c (class scoped_remote_fd) <release>: Add
	ATTRIBUTE_UNUSED_RESULT.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to ref_ptr::release
@ 2019-03-05 17:17 sergiodj+buildbot
  2019-03-06  1:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 17:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 895dafa679db7af79576dcd177a6d91d65657ee8 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 895dafa679db7af79576dcd177a6d91d65657ee8

Add ATTRIBUTE_UNUSED_RESULT to ref_ptr::release

This applies ATTRIBUTE_UNUSED_RESULT to ref_ptr::release and updates a
few spots to comply.  I believe one use in install_default_visualizer
was in error, fixed by this patch.

gdb/ChangeLog
2019-03-05  Tom Tromey  <tromey@adacore.com>

	* varobj.c (update_dynamic_varobj_children): Update.
	(install_default_visualizer): Use reset, not release.
	* value.c (set_internalvar): Update.
	* dwarf2loc.c (value_of_dwarf_reg_entry): Update.
	* common/gdb_ref_ptr.h (class ref_ptr) <release>: Add
	ATTRIBUTE_UNUSED_RESULT.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove excess calls to gdb_flush
@ 2019-03-05 17:29 sergiodj+buildbot
  2019-03-06  2:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 17:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c119e04082b5b3ee907a8d02b42fae2aee0c4fbb ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: c119e04082b5b3ee907a8d02b42fae2aee0c4fbb

Remove excess calls to gdb_flush

A customer noticed some mildly odd MI output, where CLI output was
split into multiple MI strings at unusual boundaries, like this:

    ~"$1 = (b => true"
    ~", p => 0x407260"

This is technically correct according to the MI spec, but still
unusual, in that there's no particular reason for the string to be
split where it is.

I tracked this down to a call to gdb_flush in generic_val_print.
Then, I went through all calls to gdb_flush and removed the ones I
thought were superfluous.  In particular:

* Any call in the value-printing code;
* Likewise the type-printing code (just a single call); and
* Any call that immediately followed a printf that obviously
  ended with a newline, my belief being that gdb's standard output
  streams are line buffered (by inheriting the behavior from stdio)

Regression tested on x86-64 Fedora 29.

I didn't add a new test case.  I tend to think we don't necessarily
want to specify this behavior in the tests.  Let me know what you
think of this.

gdb/ChangeLog
2019-03-05  Tom Tromey  <tromey@adacore.com>

	* windows-nat.c (windows_nat_target::attach)
	(windows_nat_target::detach): Don't call gdb_flush.
	* valprint.c (generic_val_print, val_print, val_print_string):
	Don't call gdb_flush.
	* utils.c (defaulted_query): Don't call gdb_flush.
	* typeprint.c (print_type_scalar): Don't call gdb_flush.
	* target.c (target_announce_detach): Don't call gdb_flush.
	* sparc64-tdep.c (adi_print_versions): Don't call gdb_flush.
	* remote.c (extended_remote_target::attach): Don't call
	gdb_flush.
	* procfs.c (procfs_target::detach): Don't call gdb_flush.
	* printcmd.c (do_examine): Don't call gdb_flush.
	(info_display_command): Don't call gdb_flush.
	* p-valprint.c (pascal_val_print): Don't call gdb_flush.
	* nto-procfs.c (nto_procfs_target::attach): Don't call gdb_flush.
	* memattr.c (info_mem_command): Don't call gdb_flush.
	* mdebugread.c (mdebug_build_psymtabs): Don't call gdb_flush.
	* m2-valprint.c (m2_val_print): Don't call gdb_flush.
	* infrun.c (follow_exec, handle_command): Don't call gdb_flush.
	* inf-ptrace.c (inf_ptrace_target::attach): Don't call gdb_flush.
	* hppa-tdep.c (unwind_command): Don't call gdb_flush.
	* gnu-nat.c (gnu_nat_target::attach): Don't call gdb_flush.
	(gnu_nat_target::detach): Don't call gdb_flush.
	* f-valprint.c (f_val_print): Don't call gdb_flush.
	* darwin-nat.c (darwin_nat_target::attach): Don't call gdb_flush.
	* cli/cli-script.c (read_command_lines): Don't call gdb_flush.
	* cli/cli-cmds.c (shell_escape, print_disassembly): Don't call
	gdb_flush.
	* c-valprint.c (c_val_print): Don't call gdb_flush.
	* ada-valprint.c (ada_print_scalar): Don't call gdb_flush.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to parser_state
@ 2019-03-05 17:35 sergiodj+buildbot
  2019-03-05 18:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 17:35 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 41e3300aa7d31ddb3618e160c6b7e61351ee2af5 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 41e3300aa7d31ddb3618e160c6b7e61351ee2af5

Add ATTRIBUTE_UNUSED_RESULT to parser_state

This applies ATTRIBUTE_UNUSED_RESULT to parser_state::release.

gdb/ChangeLog
2019-03-05  Tom Tromey  <tromey@adacore.com>

	* parser-defs.h (struct parser_state) <release>: Add
	ATTRIBUTE_UNUSED_RESULT.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change the_dummy_target to be a global
@ 2019-03-05 21:27 sergiodj+buildbot
  2019-03-06  6:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 21:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 06b5b831a09417bac37b44599dc35d4b904700c5 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 06b5b831a09417bac37b44599dc35d4b904700c5

Change the_dummy_target to be a global

While debugging gdb, I printed the target stack and got:

    (top-gdb) p g_target_stack
    $10 = {
      m_top = thread_stratum,
      m_stack = {0x142b0b0, 0x13da600 <exec_ops>, 0x1c70690, 0x13d63b0 <ravenscar_ops>, 0x0, 0x0, 0x0}
    }

(This is clearly from before the change to make ravenscar
multi-target-capable.)

Here, 0x142b0b0 is the singleton dummy target.  It seems to me that
since this is always a singleton, it would be a bit nicer if it were a
global, so that it would be noted in the above.

This patch implements this idea, and now I get:

    (top-gdb) p g_target_stack
    $2 = {
      m_top = dummy_stratum,
      m_stack = {0x1f1b040 <the_dummy_target>, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
    }

I did not do the same for the debug target.  It didn't seem as useful
to me.

gdb/ChangeLog
2019-03-05  Tom Tromey  <tromey@adacore.com>

	* target.c (the_dummy_target): Move later.  Change type to
	"dummy_target".
	(initialize_targets): Don't initialize the_dummy_target.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fortran function calls with arguments
@ 2019-03-06  8:50 sergiodj+buildbot
  2019-03-06  9:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-06  8:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT aa3cfbda2f2af71044949b5692ce51cafb023d13 ***

Author: Richard Bunt <richard.bunt@arm.com>
Branch: master
Commit: aa3cfbda2f2af71044949b5692ce51cafb023d13

Fortran function calls with arguments

Prior to this patch, calling functions on the inferior with arguments and
then using these arguments within a function resulted in an invalid
memory access. This is because Fortran arguments are typically passed as
pointers to values.

It is possible to call Fortran functions, but memory must be allocated in
the inferior, so a pointer can be passed to the function, and the
language must be set to C to enable C-style casting. This is cumbersome
and not a pleasant debug experience.

This patch implements the GNU Fortran argument passing conventions with
caveats. Firstly, it does not handle the VALUE attribute as there is
insufficient DWARF information to determine when this is the case.
Secondly, functions with optional parameters can only be called with all
parameters present. Both these cases are marked as KFAILS in the test.

Since the GNU Fortran argument passing convention has been implemented,
there is no guarantee that this patch will work correctly, in all cases,
with other compilers.

Despite these limitations, this patch improves the ease with which
functions can be called in many cases, without taking away the existing
approach of calling with the language set to C.

Regression tested on x86_64, aarch64 and POWER9 with GCC 7.3.0.
Regression tested with Ada on x86_64.
Regression tested with native-extended-gdbserver target board.

gdb/ChangeLog:

	* eval.c (evaluate_subexp_standard): Call Fortran argument
	wrapping logic.
	* f-lang.c (struct value): A value which can be passed into a
	Fortran function call.
	(fortran_argument_convert): Wrap Fortran arguments in a pointer
	where appropriate.
	(struct type): Value ready for a Fortran function call.
	(fortran_preserve_arg_pointer): Undo check_typedef, the pointer
	is needed.
	* f-lang.h (fortran_argument_convert): Declaration.
	(fortran_preserve_arg_pointer): Declaration.
	* infcall.c (value_arg_coerce): Call Fortran argument logic.

gdb/testsuite/ChangeLog:

	* gdb.fortran/function-calls.exp: New file.
	* gdb.fortran/function-calls.f90: New test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix a segmentation fault triggered by disassembling an EFi file with source included.
@ 2019-03-06  9:57 sergiodj+buildbot
  2019-03-06 11:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-06  9:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 219d6836e939d2cd1a8c5574bfa3a101daa31cbb ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 219d6836e939d2cd1a8c5574bfa3a101daa31cbb

Fix a segmentation fault triggered by disassembling an EFi file with source included.

	* dwarf2.c (_bfd_dwarf2_find_symbol_bias): Check for a NULL symbol
	table pointer.
	* coffgen.c (coff_find_nearest_line_with_names): Do not call
	_bfd_dwarf2_find_symbol_bias if there is no symbol table available.

https://bugzilla.redhat.com/show_bug.cgi?id=1685727


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Remove some duplicate tests
@ 2019-03-06 18:28 sergiodj+buildbot
  2019-03-06 19:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 18:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 84ec972406ec519b509f986780481899115847c2 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 84ec972406ec519b509f986780481899115847c2

gdb/fortran: Remove some duplicate tests

Make the test names unique in gdb.fortran/types.exp by removing a few
duplicate tests.

gdb/testsuite/ChangeLog:

	* gdb.fortran/types.exp (test_float_literal_types_accepted):
	Remove duplicate tests.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Add builtin 8-byte integer type with (kind=8) support
@ 2019-03-06 19:54 sergiodj+buildbot
  2019-03-07  4:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 19:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 067630bdb553bb889104e3b064e4551531ddcedc ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 067630bdb553bb889104e3b064e4551531ddcedc

gdb/fortran: Add builtin 8-byte integer type with (kind=8) support

Add a new builtin type, an 8-byte integer, and allow GDB to parse
'integer (kind=8)', returning the new 8-byte integer.

gdb/ChangeLog:

	* f-exp.y (convert_to_kind_type): Handle integer (kind=8).
	* f-lang.c (build_fortran_types): Setup builtin_integer_s8.
	* f-lang.h (struct builtin_f_type): Add builtin_integer_s8 field.

gdb/testsuite/ChangeLog:

	* gdb.fortran/type-kinds.exp: Test new integer type kind.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Add support for the ABS intrinsic function
@ 2019-03-06 20:20 sergiodj+buildbot
  2019-03-07  7:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 20:20 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0841c79a3dc1cfa382164a6bb2c1ee41af3ab0a9 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 0841c79a3dc1cfa382164a6bb2c1ee41af3ab0a9

gdb/fortran: Add support for the ABS intrinsic function

Adds support for the abs intrinsic function, this requires adding a
new pattern to the Fortran parser.  Currently only float and integer
argument types are supported to ABS, complex is still not supported,
this can be added later if needed.

gdb/ChangeLog:

	* f-exp.y: New token, UNOP_INTRINSIC.
	(exp): New pattern using UNOP_INTRINSIC token.
	(f77_keywords): Add 'abs' keyword.
	* f-lang.c: Add 'target-float.h' and 'math.h' includes.
	(value_from_host_double): New function.
	(evaluate_subexp_f): Support UNOP_ABS.

gdb/testsuite/ChangeLog:

	* gdb.fortran/intrinsics.exp: Extend to cover ABS.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Handle older TYPE*SIZE typenames
@ 2019-03-06 20:33 sergiodj+buildbot
  2019-03-07  9:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 20:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT efbecbc143f19cb308ae220fb386505f41ff4bc3 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: efbecbc143f19cb308ae220fb386505f41ff4bc3

gdb/fortran: Handle older TYPE*SIZE typenames

This patch adds support for the older TYPE*SIZE typenames that are
still around in older code.

For implementation this currently reuses the kind mechanism, as under
gFortran the kind number is equivalent to the size, however, this is
not necessarily true for all compilers.  If the rules for other
compilers are better understood then this code might need to be
improved slightly to allow for a distinction between size and kind,
however, adding this extra complexity now seems pointless.

gdb/ChangeLog:

	* f-exp.y (direct_abs_decl): Handle TYPE*SIZE type names.

gdb/testsuite/ChangeLog:

	* gdb.fortran/type-kinds.exp: Extend to cover TYPE*SIZE cases.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] linux-fork.c: rewrite inf_has_multiple_threads
@ 2019-03-06 21:11 sergiodj+buildbot
  2019-03-07 14:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 21:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e52c971f17ac747a065388b54a909f44b5582cd9 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: e52c971f17ac747a065388b54a909f44b5582cd9

linux-fork.c: rewrite inf_has_multiple_threads

There's no need to iterate over all threads of all inferiors here.

gdb/ChangeLog:
2019-03-06  Pedro Alves  <palves@redhat.com>

	* linux-fork.c (inf_has_multiple_thread_cb): Delete.
	(inf_has_multiple_threads): Return 'bool' and rewrite using
	inferior_info::threads().


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Simplify handling of Fortran dot operations and keywords
@ 2019-03-06 21:33 sergiodj+buildbot
  2019-03-06 22:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 21:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c8f9160408315deceee5e8776f0b1c4d9cba4398 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: c8f9160408315deceee5e8776f0b1c4d9cba4398

gdb/fortran: Simplify handling of Fortran dot operations and keywords

Use strncasecmp to compare Fortran dot operations (like .AND.) and for
the keywords list.  This allows for some duplication to be removed
from the token arrays.  I've also performed whitespace cleanup around
the code I've changed.

I have added some tests to ensure that upper and lowercase dot
operations are correctly tested.  The keywords list remains always
lowercase for now.

There should be no user visible changes after this commit.

gdb/ChangeLog:

	* f-exp.y (struct token): Add comments.
	(dot_ops): Remove uppercase versions and the end marker.
	(f77_keywords): Likewise.
	(yylex): Use ARRAY_SIZE to iterate over dot_ops, assert all
	entries in the dot_ops array are case insensitive, and use
	strncasecmp to compare strings.  Also some whitespace cleanup in
	this area.  Similar for the f77_keywords array, except entries in
	this list might be case sensitive.

gdb/testsuite/ChangeLog:

	* gdb.fortran/dot-ops.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove last cleanup from gdbserver
@ 2019-03-07  0:13 sergiodj+buildbot
  2019-03-08  0:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07  0:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 37991b4f52e7d13c586137f401ac65dec4aa732f ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 37991b4f52e7d13c586137f401ac65dec4aa732f

Remove last cleanup from gdbserver

This removes the last cleanup from gdbserver, replacing it with
SCOPE_EXIT.  This could perhaps be done in a different way, but this
approach was direct and obviously correct.

2019-03-06  Tom Tromey  <tom@tromey.com>

	* server.c (detach_or_kill_for_exit_cleanup): Remove parameter.
	(captured_main): Use SCOPE_EXIT.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove cleanup from solib-svr4.c
@ 2019-03-07  0:25 sergiodj+buildbot
  2019-03-08  2:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07  0:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d01c5877664024043f4e5920d072c5f62fc7f89a ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d01c5877664024043f4e5920d072c5f62fc7f89a

Remove cleanup from solib-svr4.c

This removes a cleanup from solib-svr4.c, replacing it with
make_scope_exit.

2019-03-06  Tom Tromey  <tom@tromey.com>

	* solib-svr4.c (disable_probes_interface): Remove parameter.
	(svr4_handle_solib_event): Use make_scope_exit.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove last cleanups from solib-svr4.c
@ 2019-03-07  0:38 sergiodj+buildbot
  2019-03-08  3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07  0:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2b6ff1c0474fca286b95be7ae9dcc5a22ff2a0b9 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 2b6ff1c0474fca286b95be7ae9dcc5a22ff2a0b9

Remove last cleanups from solib-svr4.c

This removes the last cleanups from solib-svr4.c, replacing them with
uses of make_scope_exit.

2019-03-06  Tom Tromey  <tom@tromey.com>

	* solib-svr4.c (svr4_parse_libraries, svr4_current_sos_direct):
	Use make_scope_exit.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove last cleanup solib-aix.c
@ 2019-03-07  0:51 sergiodj+buildbot
  2019-03-08  5:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07  0:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 724127627fef458ed330d027cf0b3d17580af615 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 724127627fef458ed330d027cf0b3d17580af615

Remove last cleanup solib-aix.c

This removes the last cleanup solib-aix.c, replacing it with a use of
make_scope_exit.

2019-03-06  Tom Tromey  <tom@tromey.com>

	* solib-aix.c: Use make_scope_exit.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove last cleanup from linux-namespaces.c
@ 2019-03-07  1:04 sergiodj+buildbot
  2019-03-08  6:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07  1:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6cceac94147f6026e93dcfc0a0df03555b571a12 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6cceac94147f6026e93dcfc0a0df03555b571a12

Remove last cleanup from linux-namespaces.c

This removes the last cleanup from linux-namespaces.c, replacing it
with a use of SCOPE_EXIT.

2019-03-06  Tom Tromey  <tom@tromey.com>

	* nat/linux-namespaces.c (linux_mntns_access_fs): Use SCOPE_EXIT.
	* common/filestuff.h (make_cleanup_close): Don't declare.
	* common/filestuff.c (do_close_cleanup, make_cleanup_close):
	Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove basic cleanup code
@ 2019-03-07  1:42 sergiodj+buildbot
  2019-03-08 10:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07  1:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fe7b42e5843ef82f97959e0e18122c164449a8ea ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: fe7b42e5843ef82f97959e0e18122c164449a8ea

Remove basic cleanup code

This removes the basic cleanup code: make_cleanups, do_cleanups,
discard_cleanups, and friends.  This code is no longer needed, as
nothing in gdb makes an ordinary cleanup.  Final cleanups are still
needed.

2019-03-06  Tom Tromey  <tom@tromey.com>

	* top.c (quit_force): Update.
	* main.c (captured_command_loop): Update.
	* common/new-op.c (operator new): Update.
	* common/common-exceptions.c (struct catcher)
	<save_cleanup_chain>: Remove member.
	(exceptions_state_mc_init): Update.
	(exception_try_scope_entry): Return nullptr.
	(exception_try_scope_exit, exception_rethrow)
	(throw_exception_sjlj, throw_exception_cxx): Update.
	* common/cleanups.h (make_cleanup, make_cleanup_dtor)
	(all_cleanups, do_cleanups, discard_cleanups)
	(discard_final_cleanups, save_cleanups, save_final_cleanups)
	(restore_cleanups, restore_final_cleanups): Don't declare.
	(do_final_cleanups): Remove parameter.
	* common/cleanups.c (cleanup_chain, make_cleanup)
	(make_cleanup_dtor, all_cleanups, do_cleanups)
	(discard_my_cleanups, discard_cleanups)
	(discard_final_cleanups, save_my_cleanups, save_cleanups)
	(save_final_cleanups, restore_my_cleanups, restore_cleanups)
	(null_cleanup): Remove.
	(do_final_cleanups): Remove parameter.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove free_current_contents
@ 2019-03-07  1:55 sergiodj+buildbot
  2019-03-08 11:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07  1:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0ccf4211fdec30fab46a5552ecfbe8e7ca98d50f ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0ccf4211fdec30fab46a5552ecfbe8e7ca98d50f

Remove free_current_contents

free_current_contents is no longer used, so this patch removes it.

2019-03-06  Tom Tromey  <tom@tromey.com>

	* utils.h (free_current_contents): Don't declare.
	* utils.c (free_current_contents): Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use SCOPE_EXIT in write_gcore_file
@ 2019-03-07  2:08 sergiodj+buildbot
  2019-03-08 13:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07  2:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a7b1986e13c60f2a10721863ef684a18daccaaf7 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: a7b1986e13c60f2a10721863ef684a18daccaaf7

Use SCOPE_EXIT in write_gcore_file

This replaces a TRY/CATCH in write_gcore_file with a use of SCOPE_EXIT
instead.  I find that this is simpler to understand.

2019-03-06  Tom Tromey  <tom@tromey.com>

	* gcore.c (write_gcore_file): Use SCOPE_EXIT.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Use TYPE_CODE_CHAR for character types
@ 2019-03-07  6:24 sergiodj+buildbot
  2019-03-07  6:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07  6:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4a270568d93263e4970099456b4efb58466134a6 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 4a270568d93263e4970099456b4efb58466134a6

gdb/fortran: Use TYPE_CODE_CHAR for character types

Switch to using TYPE_CODE_CHAR for character types.  This appears to
have little impact on the test results as gFortran uses the
DW_TAG_string_type to represent all character variables (as far as I
can see).  The only place this has an impact is when the user casts a
variable to a character type, in which case GDB does now use the CHAR
type, and prints the variable as both a value and a character, for
example, before:

    (gdb) p ((character) 97)
    $1 = 97

and after:

    (gdb) p ((character) 97)
    $1 = 97 'a'

gdb/ChangeLog:

	* f-lang.c (build_fortran_types): Use TYPE_CODE_CHAR for character
	types.

gdb/testsuite/ChangeLog:

	* gdb.fortran/type-kinds.exp: Update expected results.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make "checkpoint" not rely on inferior_ptid
@ 2019-03-07 10:35 sergiodj+buildbot
  2019-03-07 10:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 10:35 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 72f31aea9e6c158f442239abedaf351465ebcb41 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 72f31aea9e6c158f442239abedaf351465ebcb41

Make "checkpoint" not rely on inferior_ptid

Don't rely on "inferior_ptid" deep within add_fork.  In the
multi-target branch, I'm forcing inferior_ptid to null_ptid early in
infrun event handling to make sure we don't inadvertently rely on the
current thread/target when we shouldn't, and that caught some bad or
unnecessary assumptions throughout.

gdb/ChangeLog:
2019-03-06  Pedro Alves  <palves@redhat.com>

	* linux-fork.c (new_fork): New, split out of ...
	(add_fork): ... this.  Return void.  Move "first fork" special
	case from here, to ...
	(checkpoint_command): ... here.
	* linux-linux.h (add_fork): Return void.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Eliminate fork_info::clobber_regs
@ 2019-03-07 16:22 sergiodj+buildbot
  2019-03-07 16:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 16:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b7e60d85da12a1819671473db8550c9f076e8f38 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: b7e60d85da12a1819671473db8550c9f076e8f38

Eliminate fork_info::clobber_regs

All fork_save_infrun_state callers pass '1' as CLOBBER_REGS nowadays.

The larger hunk in fork_save_infrun_state is just a reindentation.

gdb/ChangeLog:
2019-03-06  Pedro Alves  <palves@redhat.com>

	* linux-fork.c (fork_info::clobber_regs): Delete.
	(fork_load_infrun_state): Remove reference to 'clobber_regs'.
	(fork_save_infrun_state): Remove 'clobber_regs' parameter.  Update
	comment.  Adjust.
	(scoped_switch_fork_info::scoped_switch_fork_info)
	(checkpoint_command, linux_fork_context): Adjust
	fork_save_infrun_state calls.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Move value_from_host_double into value.c and make more use of it
@ 2019-03-07 16:42 sergiodj+buildbot
  2019-03-08 14:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 16:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7584bb30cf380cff9cc3914b1b523c5a1a5b4302 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 7584bb30cf380cff9cc3914b1b523c5a1a5b4302

gdb: Move value_from_host_double into value.c and make more use of it

The function value_from_host_double can be moved from f-lang.c into
value.c as a generally useful function, and then used more widely.

Tested on X86-64/GNU Linux with no regressions.

gdb/ChangeLog:

	* f-lang.c (value_from_host_double): Moved to...
	* value.c (value_from_host_double): ...here.
	* value.h (value_from_host_double): Declare.
	* guile/scm-math.c (vlscm_convert_typed_number): Use
	value_from_host_double.
	(vlscm_convert_number): Likewise.
	* guile/scm-value.c (gdbscm_value_to_real): Likewise.
	* python/py-value.c (convert_value_from_python): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] C++-ify bcache
@ 2019-03-07 18:05 sergiodj+buildbot
  2019-03-08 17:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 18:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 25629dfdb438c82f2bb711174042bb326a526aaf ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 25629dfdb438c82f2bb711174042bb326a526aaf

C++-ify bcache

This somewhat C++-ifies bcache.  It replaces bcache_xmalloc and
bcache_xfree with constructors; changes some functions into methods;
and changes various structures to include a bcache directly (as
opposed to a pointer to a bcache).

Tested by the buildbot.

gdb/ChangeLog
2019-03-07  Tom Tromey  <tom@tromey.com>

	* symmisc.c (print_symbol_bcache_statistics): Update.
	(print_objfile_statistics): Update.
	* symfile.c (allocate_symtab): Update.
	* stabsread.c: Don't include bcache.h.
	* psymtab.h (struct psymbol_bcache): Don't declare.
	(class psymtab_storage) <psymbol_cache>: Now a bcache.
	(psymbol_bcache_init, psymbol_bcache_free)
	(psymbol_bcache_get_bcache): Don't declare.
	* psymtab.c (struct psymbol_bcache): Remove.
	(psymtab_storage::psymtab_storage): Update.
	(psymtab_storage::~psymtab_storage): Update.
	(psymbol_bcache_init, psymbol_bcache_free)
	(psymbol_bcache_get_bcache, psymbol_bcache_full): Remove.
	(add_psymbol_to_bcache): Update.
	(allocate_psymtab): Update.
	* objfiles.h (struct objfile_per_bfd_storage) <filename_cache,
	macro_cache>: No longer pointers.
	* objfiles.c (get_objfile_bfd_data): Don't call bcache_xmalloc.
	(free_objfile_per_bfd_storage): Don't call bcache_xfree.
	* macrotab.c (macro_bcache): Update.
	* macroexp.c: Don't include bcache.h.
	* gdbtypes.c (check_types_worklist): Update.
	(types_deeply_equal): Remove TRY/CATCH.  Update.
	* elfread.c (elf_symtab_read): Update.
	* dwarf2read.c: Don't include bcache.h.
	* buildsym.c (buildsym_compunit::get_macro_table): Update.
	* bcache.h (bcache, bcache_full, bcache_xffree, bcache_xmalloc)
	(print_bcache_statistics, bcache_memory_used): Don't declare.
	(struct bcache): Move from bcache.c.  Add constructor, destructor,
	methods.  Rename all data members.
	* bcache.c (struct bcache): Move to bcache.h.
	(bcache::expand_hash_table): Rename from expand_hash_table.
	(bcache): Remove.
	(bcache::insert): Rename from bcache_full.
	(bcache::compare): Rename from bcache_compare.
	(bcache_xmalloc): Remove.
	(bcache::~bcache): Rename from bcache_xfree.
	(bcache::print_statistics): Rename from print_bcache_statistics.
	(bcache::memory_used): Rename from bcache_memory_used.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update two cleanup comments
@ 2019-03-07 18:41 sergiodj+buildbot
  2019-03-07 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 18:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 09e3c4ca13e39b797b91b07280ac025327a8a526 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 09e3c4ca13e39b797b91b07280ac025327a8a526

Update two cleanup comments

This updates another couple of comments to remove mentions of
cleanups.

gdb/ChangeLog
2019-03-06  Tom Tromey  <tom@tromey.com>

	* inferior.h (class inferior): Update comment.
	* gdbthread.h (class thread_info): Update comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change displaced_step_clear_cleanup to a forward_scope_exit
@ 2019-03-07 21:16 sergiodj+buildbot
  2019-03-07 21:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 21:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9799571ecb648ea2e911498cfdc7fafe3237c94a ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9799571ecb648ea2e911498cfdc7fafe3237c94a

Change displaced_step_clear_cleanup to a forward_scope_exit

This changes displaced_step_clear_cleanup to be a forward_scope_exit
and updates the callers.

gdb/ChangeLog
2019-03-06  Tom Tromey  <tom@tromey.com>

	* infrun.c (displaced_step_clear_cleanup): Now a
	forward_scope_exit type.
	(displaced_step_prepare_throw): Update.
	(displaced_step_fixup): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] C++ify remote notification code
@ 2019-03-07 22:57 sergiodj+buildbot
  2019-03-07 23:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 22:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 32603266e5688718faad35b7502aa0b72a42764a ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 32603266e5688718faad35b7502aa0b72a42764a

C++ify remote notification code

This C++ifies the remote notification code -- replacing function
pointers with virtual methods and using unique_ptr.  This allows for
the removal of some cleanups.

2019-03-06  Tom Tromey  <tom@tromey.com>

	* remote.c (struct stop_reply_deleter): Remove.
	(stop_reply_up): Update.
	(struct stop_reply): Derive from notif_event.  Don't typedef.
	<regcache>: Now a std::vector.
	(stop_reply_xfree): Remove.
	(stop_reply::~stop_reply): Rename from stop_reply_dtr.
	(remote_notif_stop_alloc_reply): Return a unique_ptr.  Use new.
	(remote_target::discard_pending_stop_replies): Use delete.
	(remote_target::remote_parse_stop_reply): Update.
	(remote_target::process_stop_reply): Update.
	* remote-notif.h (struct notif_event): Add virtual destructor.
	Remove "dtr" member.
	(struct notif_client) <alloc_event>: Return a unique_ptr.
	(notif_event_xfree): Don't declare.
	(notif_event_up): New typedef.
	* remote-notif.c (remote_notif_ack, remote_notif_parse): Update.
	(notif_event_xfree, do_notif_event_xfree): Remove.
	(remote_notif_state_xfree): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove last cleanups from stabsread.c
@ 2019-03-08  7:15 sergiodj+buildbot
  2019-03-08  7:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-08  7:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 61b30099702a76fb7e6a9c5dba7c03b95f9eb0f2 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 61b30099702a76fb7e6a9c5dba7c03b95f9eb0f2

Remove last cleanups from stabsread.c

This removes the last cleanups from stabsread.c.  Similar code in
dwarf2read.c was C++-ified, but considering that stabs are deprecated,
it seemed simpler to just change these allocations to use an obstack
and leave the data structures in place.

This patch renames field_info to stabs_field_info -- adding a
constructor here provoked a bug due to the resulting ODR violation.

2019-03-06  Tom Tromey  <tom@tromey.com>

	* stabsread.c (struct stabs_field_info): Rename from field_info.
	<list, fnlist>: Add initializers.
	<obstack>: New member.
	(read_member_functions, read_struct_fields, read_baseclasses):
	Allocate on obstack.  Don't use cleanups.
	(read_one_struct_field, read_member_functions, read_struct_fields)
	(read_baseclasses, read_tilde_fields, attach_fn_fields_to_type)
	(attach_fields_to_type, read_cpp_abbrev, read_member_functions)
	(read_struct_type): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24311, FAIL: S-records with constructors
@ 2019-03-08 13:11 sergiodj+buildbot
  2019-03-08 20:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-08 13:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ebd2263ba9a9124d93bbc0ece63d7e0fae89b40e ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: ebd2263ba9a9124d93bbc0ece63d7e0fae89b40e

PR24311, FAIL: S-records with constructors

Not padding string merge section output to its alignment can cause
failures of the S-record tests when input string merge sections are
padded, since the ELF linker output for the single string section
would shrink compared to the SREC linker output.  That might result in
following sections having different addresses.
On the other hand, padding string merge section output when input
string merge sections are *not* padded can also cause failures, in
this case due to the ELF linker output for the string section being
larger (due to padding) than the SREC linker output.

It would be better to write a more robust test, but it is also nice
to leave input unchanged when no string merges occur.

	PR 24311
	* merge.c (merge_strings): Return secinfo.  Don't pad section
	to alignment here.
	(_bfd_merge_sections): Pad section to alignment here, if input
	sections contributing to merged output all pad to alignment.
	Formatting.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Support styling on native MS-Windows console
@ 2019-03-09  7:02 sergiodj+buildbot
  2019-03-09  7:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-09  7:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e4adb93903d4ae0b7ab2b5004364e50627df95f7 ***

Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: e4adb93903d4ae0b7ab2b5004364e50627df95f7

Support styling on native MS-Windows console

gdb/ChangeLog:
2019-03-08  Eli Zaretskii  <eliz@gnu.org>

	PR/24315
	* utils.c (can_emit_style_escape) [_WIN32]: Don't disable styling
	on MS-Windows if $TERM is not defined.

	* cli/cli-style.c: Set cli_styling to 1 in the MinGW build.

	* posix-hdep.c (gdb_console_fputs):
	* mingw-hdep.c (rgb_to_16colors, gdb_console_fputs): New
	functions.
	* ui-file.h (gdb_console_fputs): Add prototype.

	* ui-file.c (stdio_file::puts): Call gdb_console_fputs, and fall
	back to fputs only if the former returns zero.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_ptr from rank_one_type
@ 2019-03-09 13:46 sergiodj+buildbot
  2019-03-09 14:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 13:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9293fc63040a41e0830acb61d93037b6e0f2c424 ***

Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 9293fc63040a41e0830acb61d93037b6e0f2c424

Split rank_one_type_parm_ptr from rank_one_type

gdb/ChangeLog:

	* gdbtypes.c (rank_one_type_parm_ptr): New function extracted
	from...
	(rank_one_type): ... this.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_array from rank_one_type
@ 2019-03-09 13:57 sergiodj+buildbot
  2019-03-09 16:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 13:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b9f4512f250f7fa685f1f888b6fcbe2e34dc9733 ***

Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: b9f4512f250f7fa685f1f888b6fcbe2e34dc9733

Split rank_one_type_parm_array from rank_one_type

gdb/ChangeLog:

	* gdbtypes.c (rank_one_type_parm_array): New function extracted
	from...
	(rank_one_type): ... this.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_int from rank_one_type
@ 2019-03-09 14:21 sergiodj+buildbot
  2019-03-09 18:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 14:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 34910087ebf8fb3f1646d9177d7c961a1b3231da ***

Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 34910087ebf8fb3f1646d9177d7c961a1b3231da

Split rank_one_type_parm_int from rank_one_type

gdb/ChangeLog:

	* gdbtypes.c (rank_one_type_parm_int): New function extracted
	from...
	(rank_one_type): ... this.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_bool from rank_one_type
@ 2019-03-09 15:10 sergiodj+buildbot
  2019-03-10  0:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 15:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2c50903575cec09d1748612fd0355b766ec04a19 ***

Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 2c50903575cec09d1748612fd0355b766ec04a19

Split rank_one_type_parm_bool from rank_one_type

gdb/ChangeLog:

	* gdbtypes.c (rank_one_type_parm_bool): New function extracted
	from...
	(rank_one_type): ... this.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_complex from rank_one_type
@ 2019-03-09 15:36 sergiodj+buildbot
  2019-03-10  3:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 15:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2598a94b1e23c148a8f84d796e92de3a10d6e4e5 ***

Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 2598a94b1e23c148a8f84d796e92de3a10d6e4e5

Split rank_one_type_parm_complex from rank_one_type

gdb/ChangeLog:

	* gdbtypes.c (rank_one_type_parm_complex): New function extracted
	from...
	(rank_one_type): ... this.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_float from rank_one_type
@ 2019-03-10  1:16 sergiodj+buildbot
  2019-03-10  1:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-10  1:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7f17b20d6020f2a40369ef0568501ebcda952243 ***

Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 7f17b20d6020f2a40369ef0568501ebcda952243

Split rank_one_type_parm_float from rank_one_type

gdb/ChangeLog:

	* gdbtypes.c (rank_one_type_parm_float): New function extracted
	from...
	(rank_one_type): ... this.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove unnecessary cases from rank_one_type's switch
@ 2019-03-10  6:46 sergiodj+buildbot
  2019-03-10  7:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-10  6:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 568c0683da0a5d1cf5c62c9deb8abb8513875eee ***

Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 568c0683da0a5d1cf5c62c9deb8abb8513875eee

Remove unnecessary cases from rank_one_type's switch

We return INCOMPATIBLE_TYPE_BADNESS for all these type codes, so we might as
well just let them go to the default case.

Incidentally, this patch also makes this false positive error go away when
compiling with gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0, default compiler on
Ubuntu 18.04.

  CXX    gdbtypes.o
/home/smarchi/src/binutils-gdb/gdb/gdbtypes.c: In function rank rank_one_type(type*, type*, value*):
/home/smarchi/src/binutils-gdb/gdb/gdbtypes.c:4259:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^

gdb/ChangeLog:

	* gdbtypes.c (rank_one_type): Remove unnecessary cases from switch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove redundant assignment from dwarf2_find_containing_comp_unit
@ 2019-03-11 17:36 sergiodj+buildbot
  2019-03-11 18:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-11 17:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 82cb27ff6b4e1ae811e72a02dddc3db4c9ff97b8 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 82cb27ff6b4e1ae811e72a02dddc3db4c9ff97b8

Remove redundant assignment from dwarf2_find_containing_comp_unit

dwarf2_find_containing_comp_unit has two assignments to "this_cu" in
quick succession, both of which are just:

  this_cu = dwarf2_per_objfile->all_comp_units[low];

... with no intervening assignments.

This patch removes the second assignment.  I'm checking this in as
obvious.  Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-03-11  Tom Tromey  <tromey@adacore.com>

	* dwarf2read.c (dwarf2_find_containing_comp_unit): Remove
	redundant assignment to "this_cu".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't use bfd_get_file_size in objdump
@ 2019-03-12 13:53 sergiodj+buildbot
  2019-03-12 17:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 13:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7a6e0d89bb018cef0d8d13c497d8f340aa2a0fc8 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 7a6e0d89bb018cef0d8d13c497d8f340aa2a0fc8

Don't use bfd_get_file_size in objdump

Compressed debug sections can have uncompressed sizes that exceed the
original file size, so we can't use bfd_get_file_size.  objdump also
used bfd_get_file_size to limit reloc section size, but I believe the
underlying bug causing the PR22508 out of bounds buffer access was
that we had an integer overflow when calculating the reloc buffer
size.  I've fixed that instead in most of the backends, som and
vms-alpha being the exceptions.  SOM and vmd-alpha have rather more
serious bugs in their slurp_relocs routines that would need fixing
first if we want to fuss about making them safe against fuzzed object
files.

The patch also fixes a number of other potential overflows by using
the bfd_alloc2/malloc2/zalloc2 memory allocation functions.

bfd/
	* coffcode.h (buy_and_read): Delete unnecessary forward decl.  Add
	nmemb parameter.  Use bfd_alloc2.
	(coff_slurp_line_table): Use bfd_alloc2.  Update buy_and_read calls.
	Delete assertion.
	(coff_slurp_symbol_table): Use bfd_alloc2 and bfd_zalloc2.
	(coff_slurp_reloc_table): Use bfd_alloc2.  Update buy_and_read calls.
	* coffgen.c (coff_get_reloc_upper_bound): Ensure size calculation
	doesn't overflow.
	* elf.c (bfd_section_from_shdr): Use bfd_zalloc2.  Style fix.
	(assign_section_numbers): Style fix.
	(swap_out_syms): Use bfd_malloc2.
	(_bfd_elf_get_reloc_upper_bound): Ensure size calculation doesn't
	overflow.
	(_bfd_elf_make_empty_symbol): Style fix.
	(elfobj_grok_stapsdt_note_1): Formatting.
	* elfcode.h (elf_object_p): Use bfd_alloc2.
	(elf_write_relocs, elf_write_shdrs_and_ehdr): Likewise.
	(elf_slurp_symbol_table): Use bfd_zalloc2.
	(elf_slurp_reloc_table): Use bfd_alloc2.
	(_bfd_elf_bfd_from_remote_memory): Use bfd_malloc2.
	* elf64-sparc (elf64_sparc_get_reloc_upper_bound): Ensure
	size calculation doesn't overflow.
	(elf64_sparc_get_dynamic_reloc_upper_bound): Likewise.
	* mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
	* pdp11.c (get_reloc_upper_bound): Copy aoutx.h version.
binutils/
	* objdump.c (load_specific_debug_section): Don't compare section
	size against file size.
	(dump_relocs_in_section): Don't compare reloc size against file size.
	Print "failed to read relocs" on bfd_get_reloc_upper_bound error.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change iterate_over_lwps to take a gdb::function_view
@ 2019-03-12 17:07 sergiodj+buildbot
  2019-03-12 18:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 17:07 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d3a70e03cf51c8fb6bc183eaff7559edffec2045 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: d3a70e03cf51c8fb6bc183eaff7559edffec2045

Change iterate_over_lwps to take a gdb::function_view

This changes iterate_over_lwps to use a gdb::function_view.  This was
needed in order to make null_ptid and minus_one_ptid 'const'.

gdb/ChangeLog
2019-03-12  Tom Tromey  <tromey@adacore.com>

	* linux-nat.c (iterate_over_lwps): Update.
	(stop_callback): Remove parameter.
	(stop_wait_callback, detach_callback, resume_set_callback)
	(select_singlestep_lwp_callback, set_ignore_sigint)
	(status_callback, resumed_callback, resume_clear_callback)
	(kill_callback, kill_wait_callback, linux_nat_stop_lwp): Remove
	data parameter.
	(linux_nat_target::detach, linux_nat_target::resume)
	(linux_stop_and_wait_all_lwps, select_event_lwp)
	(linux_nat_filter_event, linux_nat_wait_1)
	(linux_nat_target::kill, linux_nat_target::stop)
	(linux_nat_target::stop): Update.
	(linux_nat_resume_callback): Change type.
	(resume_stopped_resumed_lwps, count_events_callback)
	(select_event_lwp_callback): Likewise.
	(linux_stop_lwp, linux_nat_stop_lwp): Update.
	* arm-linux-nat.c (struct update_registers_data): Remove.
	(update_registers_callback): Change type.
	(arm_linux_insert_hw_breakpoint1): Update.
	* nat/x86-linux-dregs.c (update_debug_registers_callback): Remove
	parameter.
	(x86_linux_dr_set_addr): Update.
	(x86_linux_dr_set_control): Update.
	* nat/linux-nat.h (iterate_over_lwps_ftype): Remove parameter.
	(iterate_over_lwps): Use gdb::function_view.
	* nat/aarch64-linux-hw-point.c (struct
	aarch64_dr_update_callback_param): Remove.
	(debug_reg_change_callback): Change type.
	(aarch64_notify_debug_reg_change): Update.
	* s390-linux-nat.c (s390_refresh_per_info): Update.

gdb/gdbserver/ChangeLog
2019-03-12  Tom Tromey  <tromey@adacore.com>

	* linux-low.c (iterate_over_lwps): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make null_ptid and minus_one_ptid "const"
@ 2019-03-12 17:21 sergiodj+buildbot
  2019-03-12 19:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 17:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 17547186c25aa96d078a6ff9d61a55880fa009f4 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 17547186c25aa96d078a6ff9d61a55880fa009f4

Make null_ptid and minus_one_ptid "const"

This makes null_ptid and minus_one_ptid "const".  I think this is an
improvement because it means they can't be accidentally modified.

2019-03-12  Tom Tromey  <tromey@adacore.com>

	* common/ptid.c (null_ptid, minus_one_ptid): Now const.
	* common/ptid.h (null_ptid, minus_one_ptid): Now const.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix test-cp-name-parser build, parser_fprintf undefined
@ 2019-03-12 17:46 sergiodj+buildbot
  2019-03-12 22:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 17:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ec148c577eaa29f26a943c13b0b66ca3877bb5aa ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: ec148c577eaa29f26a943c13b0b66ca3877bb5aa

Fix test-cp-name-parser build, parser_fprintf undefined

  $ make test-cp-name-parser
  ...
  test-cp-name-parser.o: In function `yy_symbol_print(_IO_FILE*, int, YYSTYPE const*, cpname_state*)':
  build/gdb/cp-name-parser.c.tmp:1335: undefined reference to `parser_fprintf(_IO_FILE*, char const*, ...)'
  build/gdb/cp-name-parser.c.tmp:1339: undefined reference to `parser_fprintf(_IO_FILE*, char const*, ...)'
  test-cp-name-parser.o: In function `yy_stack_print(short*, short*)':
  build/gdb/cp-name-parser.c.tmp:1350: undefined reference to `parser_fprintf(_IO_FILE*, char const*, ...)'
  build/gdb/cp-name-parser.c.tmp:1354: undefined reference to `parser_fprintf(_IO_FILE*, char const*, ...)'
  build/gdb/cp-name-parser.c.tmp:1356: undefined reference to `parser_fprintf(_IO_FILE*, char const*, ...)'
  build/gdb/cp-name-parser.c.tmp:1376: more undefined references to `parser_fprintf(_IO_FILE*, char const*, ...)' follow
  collect2: error: ld returned 1 exit status
  make: *** [Makefile:1833: test-cp-name-parser] Error 1

gdb/ChangeLog:
2019-03-12  Pedro Alves  <palves@redhat.com>

	* yy-remap.h [TEST_CPNAMES] (YYFPRINTF): Don't define.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix MinGW build with source-highlight
@ 2019-03-12 18:26 sergiodj+buildbot
  2019-03-13  3:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 18:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3a3508220eecf27e1952a73cd3ea6d6314ce8e1d ***

Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 3a3508220eecf27e1952a73cd3ea6d6314ce8e1d

Fix MinGW build with source-highlight

gdb/ChangeLog
2019-03-12  Eli Zaretskii  <eliz@gnu.org>

	PR/24325
	* source-cache.c: #undef open and close, to avoid unresolved
	externals during linking.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/testsuite: Prepare for DejaGnu 1.6.2
@ 2019-03-12 20:07 sergiodj+buildbot
  2019-03-13  4:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 20:07 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7cde5fc2ec2e32e8a81ac613d26cf86bf8623816 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 7cde5fc2ec2e32e8a81ac613d26cf86bf8623816

gdb/testsuite: Prepare for DejaGnu 1.6.2

Changes in DejaGnu 1.6.2 mean that our testsuite will no longer run.
This is because of some confusion over how the gdb.exp file is
handled.

The gdb.exp file is really the tool init file, which is loaded from
within the DejaGnu core, and it should not be loaded directly from any
other file in the testsuite.

DejaGnu tries to prevent the same library being loaded twice by
remembering the names of library files as they are loaded.  Until
recently loading the tool init file in DejaGnu was very similar to
loading a library file, as a result, loading the gdb.exp tool init
file simply recorded 'gdb.exp' as having been loaded, future attempts
to load 'gdb.exp' as a library would then be ignored (as the file was
marked as already loaded).

DejaGnu has now changed so that it supports having both a tool init
file and a library with the same name, something that was not possible
before.  What this means however is that when the core loads the
'gdb.exp' tool init file it no longer marks the library 'gdb.exp' as
having been loaded.  When we then execute 'load_lib gdb.exp' we then
try to reload the 'gdb.exp' file.

Unfortunately our gdb.exp file can only be loaded once.  It use of
'rename cd builtin_cd' means that a second attempt to load this file
will fail.

This was discussed on the DejaGnu list here:
   http://lists.gnu.org/archive/html/dejagnu/2019-03/msg00000.html

and the suggested advice is that, unless we have some real requirement
to load the tool init file twice, we should remove calls to 'load_lib
gdb.exp' and rely on DejaGnu to load the file for us, which is what
this patch does.

I've tested with native X86-64/GNU Linux and see no regressions.

gdb/testsuite/ChangeLog:

	* config/default.exp: Remove 'load_lib gdb.exp'.
	* config/monitor.exp: Likewise.
	* config/sid.exp: Likewise.
	* config/sim.exp: Likewise.
	* config/slite.exp: Likewise.
	* config/unix.exp: Likewise.
	* gdb.base/default.exp: Remove unhelpful comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Support the fs_base and gs_base registers on i386.
@ 2019-03-12 21:01 sergiodj+buildbot
  2019-03-13  5:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 21:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1163a4b7a38a79ebd153dc5ee76ce93877d21dbd ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 1163a4b7a38a79ebd153dc5ee76ce93877d21dbd

Support the fs_base and gs_base registers on i386.

As on amd64, these registers hold the base address of the fs and gs
segments, respectively.  For i386 these two registers are 32 bits.

gdb/ChangeLog:

	* amd64-fbsd-nat.c (amd64_fbsd_nat_target::read_description):
	Update calls to i386_target_description to add 'segments'
	parameter.
	* amd64-tdep.c (amd64_init_abi): Set tdep->fsbase_regnum.  Don't
	add segment base registers.
	* arch/i386.c (i386_create_target_description): Add 'segments'
	parameter to enable segment base registers.
	* arch/i386.h (i386_create_target_description): Likewise.
	* features/i386/32bit-segments.xml: New file.
	* features/i386/32bit-segments.c: Generate.
	* i386-fbsd-nat.c (i386_fbsd_nat_target::read_description): Update
	call to i386_target_description to add 'segments' parameter.
	* i386-fbsd-tdep.c (i386fbsd_core_read_description): Likewise.
	* i386-go32-tdep.c (i386_go32_init_abi): Likewise.
	* i386-linux-tdep.c (i386_linux_read_description): Likewise.
	* i386-tdep.c (i386_validate_tdesc_p): Add segment base registers
	if feature is present.
	(i386_gdbarch_init): Pass I386_NUM_REGS to set_gdbarch_num_regs.
	Add 'segments' parameter to call to i386_target_description.
	(i386_target_description): Add 'segments' parameter to enable
	segment base registers.
	(_initialize_i386_tdep) [GDB_SELF_TEST]: Add 'segments' parameter
	to call to i386_target_description.
	* i386-tdep.h (struct gdbarch_tdep): Add 'fsbase_regnum'.
	(enum i386_regnum): Add I386_FSBASE_REGNUM and I386_GSBASE_REGNUM.
	Define I386_NUM_REGS.
	(i386_target_description): Add 'segments' parameter to enable
	segment base registers.

gdb/gdbserver/ChangeLog:

	* linux-x86-tdesc.c (i386_linux_read_description): Update call to
	i386_create_target_description for 'segments' parameter.
	* lynx-i386-low.c (lynx_i386_arch_setup): Likewise.
	* nto-x86-low.c (nto_x86_arch_setup): Likewise.
	* win32-i386-low.c (i386_arch_setup): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Support fs_base and gs_base on FreeBSD/i386.
@ 2019-03-12 21:13 sergiodj+buildbot
  2019-03-13  7:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 21:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT dd6876c91cd40cc105b1a91f418ca2c80683b314 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: dd6876c91cd40cc105b1a91f418ca2c80683b314

Support fs_base and gs_base on FreeBSD/i386.

The i386 BSD native target uses the same ptrace operations
(PT_[GS]ET[FG]SBASE) as the amd64 BSD native target to fetch and store
the registers.

The amd64 BSD native now uses 'tdep->fsbase_regnum' instead of
hardcoding AMD64_FSBASE_REGNUM and AMD64_GSBASE_REGNUM to support
32-bit targets.  In addition, the store operations explicitly zero the
new register value before fetching it from the register cache to
ensure 32-bit values are zero-extended.

gdb/ChangeLog:

	* amd64-bsd-nat.c (amd64bsd_fetch_inferior_registers): Use
	tdep->fsbase_regnum instead of constants for fs_base and gs_base.
	(amd64bsd_store_inferior_registers): Likewise.
	* amd64-fbsd-nat.c (amd64_fbsd_nat_target::read_description):
	Enable segment base registers.
	* i386-bsd-nat.c (i386bsd_fetch_inferior_registers): Use
	PT_GETFSBASE and PT_GETGSBASE.
	(i386bsd_store_inferior_registers): Use PT_SETFSBASE and
	PT_SETGSBASE.
	* i386-fbsd-nat.c (i386_fbsd_nat_target::read_description): Enable
	segment base registers.
	* i386-fbsd-tdep.c (i386fbsd_core_read_description): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add a new gdbarch method to resolve the address of TLS variables.
@ 2019-03-12 21:52 sergiodj+buildbot
  2019-03-13 11:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 21:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6e056c817845f3d736a1be6b68c69b439c6c6d25 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 6e056c817845f3d736a1be6b68c69b439c6c6d25

Add a new gdbarch method to resolve the address of TLS variables.

Permit TLS variable addresses to be resolved purely by an ABI rather
than requiring a target method.  This doesn't try the target method if
the ABI function is present (even if the ABI function fails) to
simplify error handling.

gdb/ChangeLog:

	* gdbarch.sh (get_thread_local_address): New method.
	* gdbarch.h, gdbarch.c: Regenerate.
	* target.c (target_translate_tls_address): Use
	gdbarch_get_thread_local_address if present instead of
	target::get_thread_local_address.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove code disabled since at least 1999 from lookup_struct_elt_type.
@ 2019-03-12 22:06 sergiodj+buildbot
  2019-03-13 12:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 22:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 36c53a0262f84ad11d738471789dadfa9c4eb320 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 36c53a0262f84ad11d738471789dadfa9c4eb320

Remove code disabled since at least 1999 from lookup_struct_elt_type.

Update the comment above the function to reflect the code removal and
document the existing behavior.

gdb/ChangeLog:

	* gdbtypes.c (lookup_struct_elt_type): Update comment and
	remove disabled code block.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Support TLS variables on FreeBSD/amd64.
@ 2019-03-12 22:47 sergiodj+buildbot
  2019-03-13 16:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 22:47 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f5424cfa7e9337a6cb02a1f83c9feea0995c5350 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: f5424cfa7e9337a6cb02a1f83c9feea0995c5350

Support TLS variables on FreeBSD/amd64.

Use the fs_base register to fetch the address of a thread's tcb and
calculate the address of the DTV array.  This value is then passed to
fbsd_get_thread_local_address to compute the final variable address.

Note that fs_base is currently only available via the native target as
core dumps on FreeBSD do not store the value of fs_base.

gdb/ChangeLog:

	* amd64-fbsd-tdep.c (amd64fbsd_get_thread_local_address): New.
	(amd64fbsd_init_abi): Install gdbarch
	"fetch_tls_load_module_address" and "get_thread_local_address"
	methods.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Support TLS variables on FreeBSD/i386.
@ 2019-03-12 22:59 sergiodj+buildbot
  2019-03-13 18:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 22:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ce25aa57a3cdd028be5868423e6e55506ccd1053 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: ce25aa57a3cdd028be5868423e6e55506ccd1053

Support TLS variables on FreeBSD/i386.

Derive the pointer to the DTV array from the gs_base register.  As
with FreeBSD/amd64, gs_base is currently only available via the native
target.

gdb/ChangeLog:

	* i386-fbsd-tdep.c (i386fbsd_get_thread_local_address): New.
	(i386fbsd_init_abi): Install gdbarch
	"fetch_tls_load_module_address" and "get_thread_local_address"
	methods.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Support TLS variables on FreeBSD/powerpc.
@ 2019-03-12 23:25 sergiodj+buildbot
  2019-03-13 21:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 23:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8399425f5f472ad8e630bb30ad2dbefeddbb68b7 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 8399425f5f472ad8e630bb30ad2dbefeddbb68b7

Support TLS variables on FreeBSD/powerpc.

Derive the pointer to the DTV array from the %r2 register on 32-bit
powerpc and %r13 on 64-bit powerpc.

gdb/ChangeLog:

	* ppc-fbsd-tdep.c (ppcfbsd_get_thread_local_address): New.
	(ppcfbsd_init_abi): Install gdbarch
	"fetch_tls_load_module_address" and "get_thread_local_address"
	methods.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] The NEWS file had two "New targets" sections for 8.3.
@ 2019-03-12 23:39 sergiodj+buildbot
  2019-03-13 22:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 23:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 197df35ec4f370e9902892ff8339232869cf86ce ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 197df35ec4f370e9902892ff8339232869cf86ce

The NEWS file had two "New targets" sections for 8.3.

gdb/ChangeLog:

	* NEWS: Combine separate "New targets" sections for 8.3.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update comment for target::get_thread_local_address.
@ 2019-03-13  9:31 sergiodj+buildbot
  2019-03-13 10:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-13  9:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cd250a1898bb6fdb41f4a1063dbcfac04affcd11 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: cd250a1898bb6fdb41f4a1063dbcfac04affcd11

Update comment for target::get_thread_local_address.

There isn't an 'objfile' parameter, instead 'load_module_addr' is used
to indicate the executable or shared library.  Also, the function
throws errors rather than returning error values.

gdb/ChangeLog:

	* target.h (target::get_thread_local_address): Update comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [BFD, LD, AArch64, 2/3] Add --force-bti to enable BTI and to select BTI enabled PLTs
@ 2019-03-13 12:16 sergiodj+buildbot
  2019-03-14  2:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-13 12:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 37c18eedffe3926a330149ca93e7407917e2be38 ***

Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 37c18eedffe3926a330149ca93e7407917e2be38

[BFD, LD, AArch64, 2/3] Add --force-bti to enable BTI and to select BTI enabled PLTs

This is part of the patch series to add support for BTI and
PAC in AArch64 linker.

1) This patch adds a new ld command line option: --force-bti.
In the presence of this option, the linker enables BTI with the
GNU_PROPERTY_AARCH64_FEATURE_1_BTI feature. This gives out warning
in case of missing gnu notes for BTI in inputs.
2) It also defines a new set of BTI enabled PLTs. These are used either
when all the inputs are marked with GNU_PROPERTY_AARCH64_FEATURE_1_BTI
or when the new --force-bti option is used. This required adding new
fields in elf_aarch64_link_hash_table so that we could make the PLT
related information more generic.
3) It also defines a dynamic tag DT_AARCH64_BTI_PLT. The linker uses
this whenever it picks BTI enabled PLTs.
All these are made according to the new AArch64 ELF ABI
https://developer.arm.com/docs/ihi0056/latest/elf-for-the-arm-64-bit-architecture-aarch64-abi-2018q4

*** bfd/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* bfd-in.h (aarch64_plt_type, aarch64_enable_bti_type): New.
	(aarch64_bti_pac_info): New.
	(bfd_elf64_aarch64_set_options): Add aarch64_bti_pac_info argument.
	(bfd_elf32_aarch64_set_options): Likewise.
	* bfd-in2.h: Regenerate
	* elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): New.
	(PLT_BTI_SMALL_ENTRY_SIZE, PLT_BTI_TLSDESC_ENTRY_SIZE): New.
	(elfNN_aarch64_small_plt0_bti_entry): New.
	(elfNN_aarch64_small_plt_bti_entry): New.
	(elfNN_aarch64_tlsdesc_small_plt_bti_entry): New.
	(elf_aarch64_obj_tdata): Add no_bti_warn and plt_type fields.
	(elf_aarch64_link_hash_table): Add plt0_entry, plt_entry and
	tlsdesc_plt_entry_size fields.
	(elfNN_aarch64_link_hash_table_create): Initialise the new fields.
	(setup_plt_values): New helper function.
	(bfd_elfNN_aarch64_set_options): Use new bp_info to set plt sizes and
	bti enable type.
	(elfNN_aarch64_allocate_dynrelocs): Use new size members instead of
	fixed macros.
	(elfNN_aarch64_size_dynamic_sections): Likewise and add checks.
	(elfNN_aarch64_create_small_pltn_entry): Use new generic pointers
	to plt stubs instead of fixed ones and update filling them according
	to the need for bti.
	(elfNN_aarch64_init_small_plt0_entry): Likewise.
	(elfNN_aarch64_finish_dynamic_sections): Likewise.
	(get_plt_type, elfNN_aarch64_get_synthetic_symtab): New.
	(elfNN_aarch64_plt_sym_val): Update size accordingly.
	(elfNN_aarch64_link_setup_gnu_properties): Set up plts if BTI GNU NOTE
	is set.
	(bfd_elfNN_get_synthetic_symtab): Define.
	(elfNN_aarch64_merge_gnu_properties): Give out warning with --force-bti
	and mising BTI NOTE SECTION.

*** binutils/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* readelf.c (get_aarch64_dynamic_type): New.
	(get_dynamic_type): Use above for EM_AARCH64.
	(dynamic_section_aarch64_val): New.
	(process_dynamic_section): Use above for EM_AARCH64.

*** include/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* elf/aarch64.h (DT_AARCH64_BTI_PLT): New.

*** ld/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* NEWS: Document --force-bti.
	* emultempl/aarch64elf.em (plt_type, bti_type, OPTION_FORCE_BTI): New.
	(PARSE_AND_LIST_SHORTOPTS, PARSE_AND_LIST_OPTIONS): Add force-bti.
	(PARSE_AND_LIST_ARGS_CASES): Handle OPTION_FORCE_BTI.
	* testsuite/ld-aarch64/aarch64-elf.exp: Add all the tests below.
	* testsuite/ld-aarch64/bti-plt-1.d: New test.
	* testsuite/ld-aarch64/bti-plt-1.s: New test.
	* testsuite/ld-aarch64/bti-plt-2.s: New test.
	* testsuite/ld-aarch64/bti-plt-2.d: New test.
	* testsuite/ld-aarch64/bti-plt-3.d: New test.
	* testsuite/ld-aarch64/bti-plt-4.d: New test.
	* testsuite/ld-aarch64/bti-plt-5.d: New test.
	* testsuite/ld-aarch64/bti-plt-6.d: New test.
	* testsuite/ld-aarch64/bti-plt-7.d: New test.
	* testsuite/ld-aarch64/bti-plt-so.s: New test.
	* testsuite/ld-aarch64/bti-plt.ld: New test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [BFD, LD, AArch64, 3/3] Add --pac-plt to enable PLTs protected with PAC.
@ 2019-03-13 12:28 sergiodj+buildbot
  2019-03-14  4:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-13 12:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1dbade7441b9f32d6ba9aa1d44da5f28c44282fa ***

Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 1dbade7441b9f32d6ba9aa1d44da5f28c44282fa

[BFD, LD, AArch64, 3/3] Add --pac-plt to enable PLTs protected with PAC.

This is part of the patch series to add support for BTI and
PAC in AArch64 linker.

1) This patch adds new definitions of PAC enabled PLTs
and both BTI and PAC enabled PLTs.
2) It also defines the new dynamic tag DT_AARCH64_PAC_PLT
for the PAC enabled PLTs.
3) This patch adds a new ld command line option: --pac-plt.
In the presence of this option, the linker uses the PAC
enabled PLTs and marks with DT_AARCH64_PAC_PLT.
4) In case both BTI and PAC are enabled the linker should
pick PLTs enabled with both and also use dynamic tags for both.
All these are made according to the new AArch64 ELF ABI
https://developer.arm.com/docs/ihi0056/latest/elf-for-the-arm-64-bit-architecture-aarch64-abi-2018q4

*** bfd/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>

	* elfnn-aarch64.c (PLT_PAC_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): New.
	(PLT_BTI_PAC_ENTRY_SIZE, PLT_BTI_PAC_SMALL_ENTRY_SIZE): New.
	(setup_plt_values): Account for PAC or PAC and BTI enabled PLTs.
	(elfNN_aarch64_size_dynamic_sections): Add checks for PLT_BTI_PAC
	and PLT_PAC_PLT.
	(elfNN_aarch64_finish_dynamic_sections): Account for PLT_BTI_PAC.
	(get_plt_type): Add case for DT_AARCH64_PAC_PLT.
	(elfNN_aarch64_plt_sym_val): Add cases for PLT_BTI_PAC and PLT_PAC.

*** binutils/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>

	* readelf.c (get_aarch64_dynamic_type): Add case for
	DT_AARCH64_PAC_PLT.
	(dynamic_section_aarch64_val): Likewise.

*** include/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>

	* elf/aarch64.h (DT_AARCH64_PAC_PLT): New.

*** ld/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>

	* NEWS: Document --pac-plt.
	* emultempl/aarch64elf.em (OPTION_PAC_PLT): New.
	(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add pac-plt.
	(PARSE_AND_LIST_ARGS_CASES): Handle OPTION_PAC_PLT.
	* testsuite/ld-aarch64/aarch64-elf.exp: Add the following tests.
	* testsuite/ld-aarch64/bti-pac-plt-1.d: New test.
	* testsuite/ld-aarch64/bti-pac-plt-2.d: New test.
	* testsuite/ld-aarch64/pac-plt-1.d: New test.
	* testsuite/ld-aarch64/pac-plt-2.d: New test.
	* testsuite/ld-aarch64/bti-plt-1.s: Add .ifndef directive.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix MI output for multi-location breakpoints
@ 2019-03-13 19:30 sergiodj+buildbot
  2019-03-14  6:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-13 19:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b4be1b0648608a2578bbed39841c8ee411773edd ***

Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: b4be1b0648608a2578bbed39841c8ee411773edd

Fix MI output for multi-location breakpoints

New in v2:

- Addressed comments about doc, updated the MI version table
- New doc for the Breakpoint information format
- New -fix-multi-location-breakpoint-output command, with associated
  doc, test and NEWS updated accordingly
- Fixed the output, the locations list is now actually in the tuple
  representing the breakpoint.

Various MI commands or events related to breakpoints output invalid MI
records when printing information about a multi-location breakpoint.
For example:

    -break-insert allo
    ^done,bkpt={...,addr="<MULTIPLE>",...},{number="1.1",...},{number="1.2",...}

The problem is that according to the syntax [1], the top-level elements
are of type "result" and should be of the form "variable=value".

This patch changes the output to wrap the locations in a list:

    ^done,bkpt={...,addr="<MULTIPLE>",locations=[{number="1.1",...},{number="1.2",...}]}

The events =breakpoint-created, =breakpoint-modified, as well as the
-break-info command also suffer from this (and maybe others I didn't
find).

Since this is a breaking change for MI, we have to deal somehow with
backwards compatibility.  The approach taken by this patch is to bump
the MI version, use the new syntax in MI3 while retaining the old syntax
in MI2.  Frontends are expected to use a precise MI version (-i=mi2), so
if they do that they should be unaffected.

The patch also adds the command -fix-multi-location-breakpoint-output,
which front ends can use to enable this behavior with MI <= 2.

[1] https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Output-Syntax.html#GDB_002fMI-Output-Syntax

gdb/ChangeLog:

	* NEWS: Mention that the new default MI version is 3.  Mention
	changes to the output of commands and events that deal with
	multi-location breakpoints.
	* breakpoint.c: Include "mi/mi-out.h".
	(print_one_breakpoint): Change output syntax if using MI version
	>= 3.
	* mi/mi-main.h (mi_cmd_fix_multi_location_breakpoint_output):
	New.
	(mi_multi_location_breakpoint_output_fixed): New.
	* mi/mi-main.c (fix_multi_location_breakpoint_output): New.
	(mi_cmd_fix_multi_location_breakpoint_output): New.
	(mi_multi_location_breakpoint_output_fixed): New.
	* mi/mi-cmds.c (mi_cmds): Register command
	-fix-multi-location-breakpoint-output.
	* mi/mi-out.c (mi_out_new): Instantiate version 3 when using
	interpreter "mi".

gdb/testsuite/ChangeLog:

	* mi-breakpoint-location-ena-dis.exp: Rename to ...
	* mi-breakpoint-multiple-locations.exp: ... this.
	(make_breakpoints_pattern): New proc.
	(do_test): Add mi_version parameter, test -break-insert,
	-break-info and	=breakpoint-created.

gdb/doc/ChangeLog:

	* gdb.texinfo (Mode Options): Mention mi3.
	(Interpreters): Likewise.
	(GDB/MI Development and Front Ends): Add entry for MI 3 in
	version table.  Document -fix-multi-location-breakpoint-output.
	(GDB/MI Breakpoint Information): Document format of breakpoint
	location output.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86: Properly set IBT and SHSTK properties for -z ibt/shstk
@ 2019-03-14  0:03 sergiodj+buildbot
  2019-03-14  0:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-14  0:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 44b27f959abf267fc9ec228f4131c932597b01d4 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 44b27f959abf267fc9ec228f4131c932597b01d4

x86: Properly set IBT and SHSTK properties for -z ibt/shstk

There should be no AND properties if some input doesn't have them.  We
should set IBT and SHSTK properties for -z ibt and -z shstk if needed.

bfd/

	PR ld/24322
	* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Properly
	merge GNU_PROPERTY_X86_FEATURE_1_[IBT|SHSTK].

ld/

	PR ld/24322
	* testsuite/ld-i386/i386.exp: Run PR ld/24322 tests.
	* testsuite/ld-x86-64/x86-64.exp: Likewise.
	* testsuite/ld-i386/pr24322a.d: New file.
	* testsuite/ld-i386/pr24322b.d: Likewise.
	* testsuite/ld-x86-64/pr24322a-x32.d: Likewise.
	* testsuite/ld-x86-64/pr24322a.d: Likewise.
	* testsuite/ld-x86-64/pr24322b-x32.d: Likewise.
	* testsuite/ld-x86-64/pr24322b.d: Likewise.
	* testsuite/ld-x86-64/pr24322a.s: Likewise.
	* testsuite/ld-x86-64/pr24322b.s: Likewise.
	* testsuite/ld-x86-64/pr24322c.s: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [BFD, LD, AArch64, 1/3] Add support for GNU PROPERTIES in AArch64 for BTI and PAC
@ 2019-03-14  1:31 sergiodj+buildbot
  2019-03-14  1:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-14  1:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cd702818c6cf25277253b3b5c23f17d2cf7a94df ***

Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: cd702818c6cf25277253b3b5c23f17d2cf7a94df

[BFD, LD, AArch64, 1/3] Add support for GNU PROPERTIES in AArch64 for BTI and PAC

This is part of the patch series to add support for BTI and
PAC in AArch64 linker.

This patch implements the following:
1) This extends in the gnu property support in the linker for
AArch64 by defining backend hooks for elf_backend_setup_gnu_properties,
elf_backend_merge_gnu_properties and elf_backend_parse_gnu_properties.
2) It defines AArch64 specific GNU property
GNU_PROPERTY_AARCH64_FEATURE_1_AND and 2 bit for BTI and PAC in it.
3) It also adds support in readelf.c to read and print these new
GNU properties in AArch64.
All these are made according to the new AArch64 ELF ABI
https://developer.arm.com/docs/ihi0056/latest/elf-for-the-arm-64-bit-architecture-aarch64-abi-2018q4

*** bfd/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>

	* elf-properties.c (_bfd_elf_link_setup_gnu_properties): Exclude
	linker created inputs from merge.
	* elfnn-aarch64.c (struct elf_aarch64_obj_tdata): Add field for
	GNU_PROPERTY_AARCH64_FEATURE_1_AND properties.
	(elfNN_aarch64_link_setup_gnu_properties): New.
	(elfNN_aarch64_merge_gnu_properties): New.
	(elf_backend_setup_gnu_properties): Define for AArch64.
	(elf_backend_merge_gnu_properties): Likewise.
	* elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Define.
	(_bfd_aarch64_elf_parse_gnu_properties): Define.
	(_bfd_aarch64_elf_merge_gnu_properties): Define.
	* elfxx-aarch64.h (_bfd_aarch64_elf_link_setup_gnu_properties): Declare.
	(_bfd_aarch64_elf_parse_gnu_properties): Declare.
	(_bfd_aarch64_elf_merge_gnu_properties): Declare.
	(elf_backend_parse_gnu_properties): Define for AArch64.

*** binutils/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>

	* readelf.c (decode_aarch64_feature_1_and): New.
	(print_gnu_property_note): Add case for AArch64 gnu notes.

*** include/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>

	* elf/common.h (GNU_PROPERTY_AARCH64_FEATURE_1_AND): New.
	(GNU_PROPERTY_AARCH64_FEATURE_1_BTI): New.
	(GNU_PROPERTY_AARCH64_FEATURE_1_PAC): New.

*** ld/ChangeLog ***

2019-03-13  Sudakshina Das  <sudi.das@arm.com>

	* NEWS: Document GNU_PROPERTY_AARCH64_FEATURE_1_BTI and
	GNU_PROPERTY_AARCH64_FEATURE_1_PAC.
	* testsuite/ld-aarch64/aarch64-elf.exp: Add run commands for new tests.
	* testsuite/ld-aarch64/property-bti-pac1.d: New test.
	* testsuite/ld-aarch64/property-bti-pac1.s: New test.
	* testsuite/ld-aarch64/property-bti-pac2.d: New test.
	* testsuite/ld-aarch64/property-bti-pac2.s: New test.
	* testsuite/ld-aarch64/property-bti-pac3.d: New test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add the "set style source" command
@ 2019-03-14 12:15 sergiodj+buildbot
  2019-03-14 14:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 12:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d085f98901ccd6c9764b93d3983f3c7797addc4f ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: d085f98901ccd6c9764b93d3983f3c7797addc4f

Add the "set style source" command

This adds "set style source" (and "show style source") commands.  This
gives the user control over whether source code is highlighted.

gdb/ChangeLog
2019-03-14  Tom Tromey  <tromey@adacore.com>

	* NEWS: Add item for "style sources" commands.
	* source-cache.c (source_cache::get_source_lines): Check
	source_styling.
	* cli/cli-style.c (source_styling): New global.
	(_initialize_cli_style): Add "style sources" commands.
	(show_style_sources): New function.
	* cli/cli-style.h (source_styling): Declare.

gdb/doc/ChangeLog
2019-03-14  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Output Styling): Document "set style source" and
	"show style source".

gdb/testsuite/ChangeLog
2019-03-14  Tom Tromey  <tromey@adacore.com>

	* gdb.base/style.exp: Add "set style sources" test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix colors in TUI mode in MS-Windows build with ncurses
@ 2019-03-14 16:03 sergiodj+buildbot
  2019-03-15  0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 16:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3fff2c370cd658877be8107bfe9dde8dd0470b46 ***

Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 3fff2c370cd658877be8107bfe9dde8dd0470b46

Fix colors in TUI mode in MS-Windows build with ncurses

The MS-Windows port of ncurses fails to switch to a color pair if
one or both of the colors are the implicit default colors.  This
change records the default colors when TUI is initialized, and
then specifies them explicitly when a color pair uses the default
colors.  This allows color styling in TUI mode on MS-Windows.

gdb/ChangeLog:
2019-03-14  Eli Zaretskii  <eliz@gnu.org>

	* tui/tui-io.c [__MINGW32__]: Include windows.h.  Declare
	ncurses_norm_attr.
	(tui_initialize_io) [__MINGW32__]: Record the default terminal
	colors in ncurses_norm_attr.
	(apply_ansi_escape) [__MINGW32__]: If a color in a color pair is
	"none", replace it with the default color recorded in
	ncurses_norm_attr.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix a buffer overrun error when attempting to parse corrupt DWARF information.
@ 2019-03-15  4:17 sergiodj+buildbot
  2019-03-15  4:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-15  4:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d7f848c3b51f01635557ab765f2ba176618e0bf8 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: d7f848c3b51f01635557ab765f2ba176618e0bf8

Fix a buffer overrun error when attempting to parse corrupt DWARF information.

	PR 24334
	* dwarf2.c (struct dwarf2_debug): Add sec_vma_count field.
	(save_section_vma): Initialise field to the number of entries in
	the sec_vma table.
	(section_vma_same): Check that the number of entries in the
	sec_vma table matches the number of sections in the bfd.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86-64: Check for corrupt input with bad relocation
@ 2019-03-15  8:02 sergiodj+buildbot
  2019-03-15  9:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-15  8:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 418d4036ee37807b97b8040ebe7e2c15e9db726d ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 418d4036ee37807b97b8040ebe7e2c15e9db726d

x86-64: Check for corrupt input with bad relocation

	PR ld/24338
	* elf64-x86-64.c (elf_x86_64_relocate_section): Check for corrupt
	input with bad relocation.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24336, buffer overflow in swap_reloca_in
@ 2019-03-15 10:11 sergiodj+buildbot
  2019-03-15 10:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 10:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f55b1e3248e4950464ea120027cc6881003e0ead ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: f55b1e3248e4950464ea120027cc6881003e0ead

PR24336, buffer overflow in swap_reloca_in

	PR 24336
	* elflink.c (elf_link_read_relocs_from_section): Handle fuzzed
	object files with sh_size not a multiple of sh_entsize.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24337, segfault in _bfd_elf_rela_local_sym
@ 2019-03-15 10:22 sergiodj+buildbot
  2019-03-15 12:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 10:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1ff31e135f04b2773e10d3e5072776c1072edbfb ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 1ff31e135f04b2773e10d3e5072776c1072edbfb

PR24337, segfault in _bfd_elf_rela_local_sym

	PR 24337
	* elf.c (_bfd_elf_rela_local_sym): Don't segfault on NULL sec.
	(_bfd_elf_rel_local_sym): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24339, segfault on NULL symbol section
@ 2019-03-15 10:35 sergiodj+buildbot
  2019-03-15 13:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 10:35 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fe3fef62ad11115fc3b03c0c0dcb9c38b2f544cb ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: fe3fef62ad11115fc3b03c0c0dcb9c38b2f544cb

PR24339, segfault on NULL symbol section

	PR 24339
	* elflink.c (elf_link_add_object_symbols): Bail out on a local
	symbol after globals if elf_bad_symtab is not set.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] COFF: Check for symbols defined in discarded section
@ 2019-03-15 15:15 sergiodj+buildbot
  2019-03-15 15:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 15:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2219ae0b0ebe14373850b000c2abaa31dab1d741 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 2219ae0b0ebe14373850b000c2abaa31dab1d741

COFF: Check for symbols defined in discarded section

For LTO, a symbol may defined in discarded section.  We should mark it
as undefined so that LTO plugin will make IR definition available.

	PR ld/24267
	* coffgen.c (_bfd_coff_section_already_linked): Skip discarded
	section.
	* cofflink.c (coff_link_add_symbols): Check for symbols defined
	in discarded section.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use bitset for demangled_hash_languages
@ 2019-03-15 22:36 sergiodj+buildbot
  2019-03-16  6:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 22:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1b7a07cba0aa096c2eb66895ef339aa5143e9995 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1b7a07cba0aa096c2eb66895ef339aa5143e9995

Use bitset for demangled_hash_languages

I noticed that objfile_per_bfd_storage::demangled_hash_languages is a
std::vector, which seemed quite large for something that,
fundamentally, can be represented as a bitset.  This patch
reimplements it as a std::bitset.

gdb/ChangeLog
2019-03-15  Tom Tromey  <tom@tromey.com>

	* objfiles.h (struct objfile_per_bfd_storage)
	<demangled_hash_languages>: Now a bitset.
	* minsyms.c (add_minsym_to_demangled_hash_table): Update.
	(lookup_minimal_symbol): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Slightly simplify minsym creation
@ 2019-03-15 22:44 sergiodj+buildbot
  2019-03-15 23:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 22:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3db066bcd5bac9a8d6be85ea4cfa8f52dbdcc600 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 3db066bcd5bac9a8d6be85ea4cfa8f52dbdcc600

Slightly simplify minsym creation

Only one caller of minimal_symbol_reader::record_with_info was using
the return value, so this patch simplifies this code by having it
return void and changing that caller to use record_full instead.

gdb/ChangeLog
2019-03-15  Tom Tromey  <tom@tromey.com>

	* minsyms.h (class minimal_symbol_reader) <record_with_info>:
	Don't return the symbol.
	* coffread.c (record_minimal_symbol): Use record_full.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove some unneeded initializations in minimal_symbol_reader
@ 2019-03-15 22:51 sergiodj+buildbot
  2019-03-16  7:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 22:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 788c80d1aff685e66b8105ddc7451cfa6a03bf1d ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 788c80d1aff685e66b8105ddc7451cfa6a03bf1d

Remove some unneeded initializations in minimal_symbol_reader

minimal_symbol_reader::record_full does not need to initialize any
minsym fields to 0, because that was already done implicitly via the
use of XCNEW when allocating the msym_bunch.

gdb/ChangeLog
2019-03-15  Tom Tromey  <tom@tromey.com>

	* minsyms.c (minimal_symbol_reader::record_full): Remove some
	initializations.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Allocate minimal symbols with malloc
@ 2019-03-16  0:38 sergiodj+buildbot
  2019-03-16 14:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-16  0:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 042d75e42c5572f333e0e06dabd3c5c4afab486c ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 042d75e42c5572f333e0e06dabd3c5c4afab486c

Allocate minimal symbols with malloc

Currently, minimal symbols are allocated on the per-BFD obstack.
However, it is also possible for multiple symbol readers to create
minimal symbols for a given objfile.  In this case, the minimal
symbols will be reallocated on the obstack, leading to some waste of
storage.

This is a memory leak, but I think it won't be caught by tools like
valgrind, because valgrind doesn't know about obstacks.

This patch fixes the problem by using malloc to allocate the storage
for minimal symbols.

gdb/ChangeLog
2019-03-15  Tom Tromey  <tom@tromey.com>

	* objfiles.h (struct objfile_per_bfd_storage) <msymbols>: Now a
	unique_xmalloc_ptr.
	(objfile::msymbols_range::begin, objfile::msymbols_range::end):
	Update.
	* minsyms.c (lookup_minimal_symbol_by_pc_section)
	(build_minimal_symbol_hash_tables)
	(minimal_symbol_reader::install): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use memcpy in minimal_symbol_reader::install
@ 2019-03-16  0:52 sergiodj+buildbot
  2019-03-16 15:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-16  0:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0de2420c4b023e644f91a409803fedfb235bfc0b ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0de2420c4b023e644f91a409803fedfb235bfc0b

Use memcpy in minimal_symbol_reader::install

minimal_symbol_reader::install copies minsyms from the msym_bunch
objects into the allocated memory.  It seemed better to me to do this
via memcpy, as that is frequently optimized in libc.

gdb/ChangeLog
2019-03-15  Tom Tromey  <tom@tromey.com>

	* minsyms.c (minimal_symbol_reader::install): Use memcpy.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change minimal_symbol inheritance
@ 2019-03-16  1:07 sergiodj+buildbot
  2019-03-16 17:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-16  1:07 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT eefba3da27c23db67cc0e1707fcedd96f1c0860d ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: eefba3da27c23db67cc0e1707fcedd96f1c0860d

Change minimal_symbol inheritance

This changes struct minimal_symbol to inherit from general_symbol_info
and updates various macros to cope.

Because MSYMBOL_SET_LANGUAGE and MSYMBOL_SET_NAMES were only used from
a single spot, this patch removes them in favor of simply inlining
their definitions.  I consider this to be somewhat cleaner, not least
because the "phony polymorphism" provided by such macros is not useful
in practice.

gdb/ChangeLog
2019-03-15  Tom Tromey  <tom@tromey.com>

	* symtab.h (struct minimal_symbol): Derive from
	general_symbol_info.
	(MSYMBOL_VALUE, MSYMBOL_VALUE_RAW_ADDRESS)
	(MSYMBOL_VALUE_ADDRESS, MSYMBOL_VALUE_BYTES)
	(MSYMBOL_BLOCK_VALUE, MSYMBOL_VALUE_CHAIN, MSYMBOL_LANGUAGE)
	(MSYMBOL_SECTION, MSYMBOL_OBJ_SECTION, MSYMBOL_NATURAL_NAME)
	(MSYMBOL_LINKAGE_NAME, MSYMBOL_DEMANGLED_NAME)
	(MSYMBOL_SEARCH_NAME): Update.
	(MSYMBOL_SET_LANGUAGE, MSYMBOL_SET_NAMES): Remove.
	* solib.c (gdb_bfd_lookup_symbol_from_symtab): Don't use memset.
	* minsyms.c (minimal_symbol_reader::record_full): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24337, segfault in _bfd_elf_rela_local_sym, again
@ 2019-03-16  4:16 sergiodj+buildbot
  2019-03-16 19:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-16  4:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6835821be8bab8702e41e6946a7d8ee9441f0eee ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 6835821be8bab8702e41e6946a7d8ee9441f0eee

PR24337, segfault in _bfd_elf_rela_local_sym, again

Reverts commit 1ff31e135f, fixing the problem more generally.  There
are likely other place that will segfault on a NULL section.

	PR 24337
	* elf.c (_bfd_elf_rela_local_sym): Revert last change.
	(_bfd_elf_rel_local_sym): Likewise.
	* elflink.c (elf_link_input_bfd): Use bfd_und_section for
	section of symbols with unrecognized shndx.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Simplify per-BFD storage management
@ 2019-03-16 11:07 sergiodj+buildbot
  2019-03-16 11:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 11:07 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d6797f465c3f67b41a0db38870bbd33384b6551f ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d6797f465c3f67b41a0db38870bbd33384b6551f

Simplify per-BFD storage management

There's no reason that the objfile_per_bfd_storage must be allocated
via bfd_alloc.  This patch changes objfile_per_bfd_storage to be
managed more simply, via ordinary new and delete; and moves some code
into its (new) destructor.

While doing this I also noticed an extra initialization of
language_of_main, and removed it.

gdb/ChangeLog
2019-03-15  Tom Tromey  <tom@tromey.com>

	* objfiles.h (struct objfile_per_bfd_storage): Declare
	destructor.
	* objfiles.c (objfile_per_bfd_storage::~objfile_per_bfd_storage):
	New.
	(get_objfile_bfd_data): Use new.  Don't initialize
	language_of_main.
	(free_objfile_per_bfd_storage): Remove.
	(objfile_bfd_data_free, objfile::~objfile): Use delete.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Revert "Use wclrtoeol in tui_show_source_line"
@ 2019-03-16 12:31 sergiodj+buildbot
  2019-03-16 20:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 12:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 798e1c302af509c31839c5c3b50c058b61206ee7 ***

Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 798e1c302af509c31839c5c3b50c058b61206ee7

Revert "Use wclrtoeol in tui_show_source_line"

gdb/ChangeLog:
2019-03-16  Eli Zaretskii  <eliz@gnu.org>

	* tui/tui-winsource.c (tui_show_source_line): Revert "Use
	wclrtoeol in tui_show_source_line".  This reverts changes made in
	commit 4a3045920bbe4e50a0f4920b0fdc4e88ef23015c.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix vertical scrolling of TUI source window
@ 2019-03-16 18:13 sergiodj+buildbot
  2019-03-17  1:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 18:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ab42892fb7d265e72a85e918d4f5c6dfeee3fcd8 ***

Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: ab42892fb7d265e72a85e918d4f5c6dfeee3fcd8

Fix vertical scrolling of TUI source window

gdb/ChangeLog:
2019-03-16  Eli Zaretskii  <eliz@gnu.org>

	* source-cache.c (source_cache::get_source_lines): Call
	find_source_lines to initialize s->nlines.  This fixes vertical
	scrolling of TUI source window when the DOWN arrow is pressed.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: unconditionally define _initialize_string_view_selftests
@ 2019-03-18  4:18 sergiodj+buildbot
  2019-03-18  5:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-18  4:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 58785d9888c699770154ef1d42fcea7598e8d704 ***

Author: Sergei Trofimovich <siarheit@google.com>
Branch: master
Commit: 58785d9888c699770154ef1d42fcea7598e8d704

gdb: unconditionally define _initialize_string_view_selftests

The build failure was noticed by Helmut Jarausch in
https://bugs.gentoo.org/680232:
    $ ./configure CXXFLAGS='-std=c++17 -Os'
    ...
      CXXLD  gdb
    ld: init.o: in function `initialize_all_files()':
    init.c:(.text+0x113): undefined reference to `_initialize_string_view_selftests()'

It happens because '_initialize_string_view_selftests()' is
conditionally defined based on C++ default.

The change defines '_initialize_string_view_selftests()'
unconditionally and leaves implementation a no-op on c++17
compilers.

gdb/ChangeLog:
2019-03-17  Sergei Trofimovich <siarheit@google.com>

	* unittests/string_view-selftests.c: Define
	_initialize_string_view_selftests unconditionally.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24355, segmentation fault in function called from ppc_finish_symbols
@ 2019-03-18 12:30 sergiodj+buildbot
  2019-03-18 13:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 12:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8cd1fe1bf525b59f4d07e5790d11d49eee7e8494 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 8cd1fe1bf525b59f4d07e5790d11d49eee7e8494

PR24355, segmentation fault in function called from ppc_finish_symbols

This one looks to be a bug going back to 2009, git commit e054468f6c
"STT_GNU_IFUNC support for PowerPC".  That bug was carried over with
git commit 49c09209d0 "Rearrange PLT reloc output on powerpc".

If the refcount for an ifunc local sym plt entry was zero,
ppc_elf_size_dynamic_sections would correctly set plt.offset to -1 but
leave glink_offset uninitialized.  That leads to occasional segfaults
(which can be made solid with MALLOC_PERTURB_=1 when using glibc).
So, guard the write_glink_stub call with plt.offset != -1.  Also,
remove the totally ineffective attempt at writing multiple-use glink
stubs only once.

	PR 24355
	* elf32-ppc.c (ppc_finish_symbols): Don't call write_glink_stub
	for local iplt syms with ent->plt.offset == -1.  Remove ineffective
	attempt at writing glink stubs only once.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix scrolling right in the TUI
@ 2019-03-18 14:44 sergiodj+buildbot
  2019-03-18 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 14:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 647bb750c298bbee618aa4448a30dcf9adf23602 ***

Author: Hannes Domani <ssbssa@yahoo.de>
Branch: master
Commit: 647bb750c298bbee618aa4448a30dcf9adf23602

Fix scrolling right in the TUI

This commit fixes two issues in scrolling right in the TUI:

#1 - Scrolling right with the arrow keys, the first keypress doesn't
do anything.  The problem is that copy_source_line() checks if
(column < first_col), and because of the ++column directly before, it
basically starts with 1 instead of 0.

#2 - Scrolling right handles TABS and escaped characters as single
characters, which just looks weird.  The problem is that there's a
spot that misses handling TABS.

gdb/ChangeLog:
2019-03-18  Hannes Domani  <ssbssa@yahoo.de>

	* tui/tui-source.c (copy_source_line): Fix handling of 'column'.
	Handle tabs.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix Ada "ptype" bug with array types
@ 2019-03-18 15:12 sergiodj+buildbot
  2019-03-18 15:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 15:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bff8c71fd8dece639e69b399883f90b3404a2a48 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: bff8c71fd8dece639e69b399883f90b3404a2a48

Fix Ada "ptype" bug with array types

Using ptype on an array type in Ada can sometimes show an incorrect
high bound.  This happens because ada_evaluate_subexp will create an
array with an incorrect upper bound in the EVAL_AVOID_SIDE_EFFECTS
case.

This patch fixes the problem by arranging to always create such an
array with valid bounds.

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-03-18  Tom Tromey  <tromey@adacore.com>

	* ada-lang.c (empty_array): Add "high" parameter.
	(ada_evaluate_subexp): Update.

gdb/testsuite/ChangeLog
2019-03-18  Joel Brobecker  <brobecker@adacore.com>
	    Tom Tromey  <tromey@adacore.com>

	* gdb.ada/ptype_array/pck.adb: New file.
	* gdb.ada/ptype_array/pck.ads: New file.
	* gdb.ada/ptype_array/foo.adb: New file.
	* gdb.ada/ptype_array.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix gdb/TUI behavior in response to [Enter] keypress
@ 2019-03-18 18:23 sergiodj+buildbot
  2019-03-19  1:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 18:23 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b17c4cd078e2d1d8951951016815e474fb133780 ***

Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: b17c4cd078e2d1d8951951016815e474fb133780

Fix gdb/TUI behavior in response to [Enter] keypress

gdb/ChangeLog:
2019-03-18  Eli Zaretskii  <eliz@gnu.org>

	* tui/tui-io.c (gdb_wgetch): Don't echo CR.
	(tui_getc): When gdb_wgetch returns a CR, behave the same as when
	it returns a newline.  This fixes a regression in TUI mode, whereby
	the next line is output on the same screen line as the user input.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix first time you type UP or DOWN in TUI's command window
@ 2019-03-18 19:14 sergiodj+buildbot
  2019-03-19  4:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 19:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5371b8502ab414aea510f65ce1acb9f090bf0340 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 5371b8502ab414aea510f65ce1acb9f090bf0340

Fix first time you type UP or DOWN in TUI's command window

The first time you type UP or DOWN arrow in the command window, GDB
should scroll the source window, but instead it displays the line
number and the file name in the command window(?).

What happens there is that the first time we call
tui_ui_out::do_field_int, it doesn't initialize m_line, because
m_start_of_line is -1, as set by the constructor; and then the
following call to tui_ui_out::do_field_string falls back to
cli_ui_out::do_field_string because m_line is zero.

The problem is caused by a typo in the C++ification of tui_ui_out,
commit 112e8700a6f, where m_line and m_start_of_line's initial values
were swapped from what they used to be:

 -struct ui_out *
 -tui_out_new (struct ui_file *stream)
 +tui_ui_out::tui_ui_out (ui_file *stream)
 +: cli_ui_out (stream, 0),
 +  m_line (0),
 +  m_start_of_line (-1)
  {
 -
 -  /* Initialize our fields.  */
 -  data->line = -1;
 -  data->start_of_line = 0;

This commit fixes it.

gdb/ChangeLog:
2019-03-18  Pedro Alves  <palves@redhat.com>
	    Eli Zaretskii <eliz@gnu.org>

	* tui/tui-out.c (tui_ui_out::tui_ui_out): Fix initialization of
	m_line and m_start_of_line.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] ix86: Disable AVX512F when disabling AVX2
@ 2019-03-19 13:27 sergiodj+buildbot
  2019-03-19 14:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-19 13:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 89199bb5a027d21c56dafd2cd898487118949ecf ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 89199bb5a027d21c56dafd2cd898487118949ecf

ix86: Disable AVX512F when disabling AVX2

Since AVX2 is required for AVX512F, we should disable AVX512F when AVX2
is disabled.

gas/

	PR gas/24359
	* testsuite/gas/i386/i386.exp: Change optimize-6a, optimize-7,
	x86-64-optimize-7a and x86-64-optimize-8 tests to run_list_test.
	Remove optimize-6c and x86-64-optimize-7c tests.
	* testsuite/gas/i386/noavx-3.l: Updated.
	* testsuite/gas/i386/noavx-4.d: Likewise.
	* testsuite/gas/i386/noavx-5.d: Likewise.
	* testsuite/gas/i386/noavx-3.s: Add AVX512F tests.
	* testsuite/gas/i386/noavx-4.s: Remove AVX512F tests.
	* testsuite/gas/i386/nosse-5.s: Likewise.
	* testsuite/gas/i386/optimize-6a.d: Removed.
	* testsuite/gas/i386/optimize-6c.d: Likewise.
	* testsuite/gas/i386/optimize-7.d: Likewise.
	* testsuite/gas/i386/x86-64-optimize-7a.d: Likewise.
	* testsuite/gas/i386/x86-64-optimize-7c.d: Likewise.
	* testsuite/gas/i386/x86-64-optimize-8.d: Likewise.
	* testsuite/gas/i386/optimize-6a.l: New file.
	* testsuite/gas/i386/optimize-6a.s: Likewise.
	* testsuite/gas/i386/optimize-7.l: Likewise.
	* testsuite/gas/i386/x86-64-optimize-7a.l: Likewise.
	* testsuite/gas/i386/x86-64-optimize-7a.s: Likewise.
	* testsuite/gas/i386/x86-64-optimize-8.l: Likewise.

opcodes/

	PR gas/24359
	* i386-gen.c (cpu_flag_init): Add CPU_ANY_AVX512F_FLAGS to
	CPU_ANY_AVX2_FLAGS.
	* i386-init.h: Regenerated.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add comments describing tui_ui_out and its fields, cleanup a bit
@ 2019-03-19 18:24 sergiodj+buildbot
  2019-03-19 19:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-19 18:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cb24623460fe3e68794b79b79b0dbd5e62598d85 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: cb24623460fe3e68794b79b79b0dbd5e62598d85

Add comments describing tui_ui_out and its fields, cleanup a bit

This commit add comments describing tui_ui_out and its fields, and
cleans up the code a little bit.

Also switch to using in-class initialization so that the initial
values can be seen alongside the comments.

I see no reason for initializing m_line as -1 instead of 0, since all
the checks in the .c file are of the form "> 0".  AFAICS there's no
practical difference between -1 and 0.  So it seems simpler to
initialize it as 0.

There's a bit of redundancy in tui_ui_out::do_field_string, which is
fixed by this commit.

gdb/ChangeLog:
2019-03-19  Pedro Alves  <palves@redhat.com>

	* tui/tui-out.c (tui_ui_out::do_field_string): Simplify.
	(tui_ui_out::do_text): Add comments.  Reset M_LINE to 0 instead of
	to -1.  Fix TABs vs spaces.
	(tui_ui_out::tui_ui_out): Don't initialize fields here.
	* tui/tui-out.h (tui_ui_out) Add intro comments.
	<m_line, m_start_of_line>: In-class initialize, and add describing
	comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't show "display"s twice in MI
@ 2019-03-19 18:38 sergiodj+buildbot
  2019-03-19 21:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-19 18:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4c7d57e72e0340931ab01db2247bdce3c2fcadb7 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 4c7d57e72e0340931ab01db2247bdce3c2fcadb7

Don't show "display"s twice in MI

If you run "gdb -i=mi2" and set a "display", then when "next"ing the
displays will be shown twice:

    ~"1: x = 23\n"
    ~"7\t  printf(\"%d\\n\", x);\n"
    ~"1: x = 23\n"
    *stopped,reason="end-stepping-range",frame={addr="0x0000000000400565",func="main",args=[],file="q.c",fullname="/tmp/q.c",line="7"},thread-id="1",stopped-threads="all",core="1"

The immediate cause of this is this code in mi_on_normal_stop_1:

      print_stop_event (mi_uiout);

      console_interp = interp_lookup (current_ui, INTERP_CONSOLE);
      if (should_print_stop_to_console (console_interp, tp))
	print_stop_event (mi->cli_uiout);

... which obviously prints the stop twice.

However, I think the first call to print_stop_event is intended just
to emit the MI *stopped notification, which explains why the source
line does not show up two times.

This patch fixes the bug by changing print_stop_event to only call
do_displays for non-MI-like ui-outs.

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-03-19  Tom Tromey  <tromey@adacore.com>

	* mi/mi-interp.c (mi_on_normal_stop_1): Only show displays once.
	* infrun.h (print_stop_event): Add "displays" parameter.
	* infrun.c (print_stop_event): Add "displays" parameter.

gdb/testsuite/ChangeLog
2019-03-19  Tom Tromey  <tromey@adacore.com>

	* gdb.mi/mi2-cli-display.c: New file.
	* gdb.mi/mi2-cli-display.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Merge handle_inferior_event and handle_inferior_event_1
@ 2019-03-20 18:24 sergiodj+buildbot
  2019-03-20 18:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-20 18:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 595915c1c135a77afa01d30a888a48fcc55a08ec ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 595915c1c135a77afa01d30a888a48fcc55a08ec

Merge handle_inferior_event and handle_inferior_event_1

I noticed that handle_inferior_event is just a small wrapper that
frees the value chain.  This patch replaces it with a
scoped_value_mark, reducing the number of lines of code here.

Regression tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-03-20  Tom Tromey  <tromey@adacore.com>

	* infrun.c (handle_inferior_event): Rename from
	handle_inferior_event_1.  Create a scoped_value_mark.
	(handle_inferior_event): Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [BFD, AArch64, x86] Improve warning for --force-bti
@ 2019-03-21 17:04 sergiodj+buildbot
  2019-03-21 17:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-21 17:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4e5391148d51c58785aad637f1a92d47b91b3ae6 ***

Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 4e5391148d51c58785aad637f1a92d47b91b3ae6

[BFD, AArch64, x86] Improve warning for --force-bti

The AArch64 linker option to turn on BTI (--force-bti) warns in case there are
input objects which have a missing GNU NOTE section for BTI. This patch is trying
to improve the warnings that come out.

In order to do so, I propose adding a new argument to elf_merge_gnu_properties
and the backend function merge_gnu_properties. This new argument makes sure
that we now pass both the objects along with the properties to which they
belong to. The x86 backend function has also been updated to match this
change.

*** bfd/ChangeLog ***

2019-03-21  Sudakshina Das  <sudi.das@arm.com>

	* elf-bfd.h (struct elf_backend_data): Add argument to
	merge_gnu_properties.
	* elf-properties.c (elf_merge_gnu_properties): Add argument to
	itself and while calling bed->merge_gnu_properties.
	(elf_merge_gnu_property_list): Update the calls for
	elf_merge_gnu_properties.
	* elfnn-aarch64.c (elfNN_aarch64_merge_gnu_properties): Update handling
	of --force-bti warning and add argument.
	* elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Add
	warning.
	* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Add argument.
	* elfxx-x86.h (_bfd_x86_elf_merge_gnu_properties): Likewise in
	declaration.

*** ld/ChangeLog ***

2019-03-21  Sudakshina Das  <sudi.das@arm.com>

	* testsuite/ld-aarch64/aarch64-elf.exp: Add new test.
	* testsuite/ld-aarch64/bti-plt-1.s: Add .ifdef for PAC note section.
	* testsuite/ld-aarch64/bti-plt-6.d: Update warning.
	* testsuite/ld-aarch64/bti-plt-7.d: Likewise.
	* testsuite/ld-aarch64/bti-warn.d: New test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Fix linker crash in section symbol check.
@ 2019-03-21 22:32 sergiodj+buildbot
  2019-03-21 23:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-21 22:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a9f5a5517fb7df640f0fcd4cb0f9961818b6505b ***

Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: a9f5a5517fb7df640f0fcd4cb0f9961818b6505b

RISC-V: Fix linker crash in section symbol check.

sym is only set for local symbols.  h is only set for global symbols.  Gas
won't let me create a global section symbol, but bfd appears to have some
support for that, and I can't rule out that other assemblers might do this.
So we need to support both, and verify sym and h are non-NULL before using.

	bfd/
	PR 24365
	* elfnn-riscv.c (riscv_elf_relocate_section): For STT_SECTION check,
	verify sym non-NULL before using.  Add identical check using h.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Add pointer authentication feature
@ 2019-03-22 12:22 sergiodj+buildbot
  2019-03-22 13:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 12:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6dc0ebde59dfb73eae507ced718bafa54023bf33 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 6dc0ebde59dfb73eae507ced718bafa54023bf33

AArch64: Add pointer authentication feature

Pointer Authentication is a new feature in AArch64 v8.3-a. When enabled in
the compiler, function return addresses will be mangled by the kernel.

Add register description xml and wire up to aarch64_linux_read_description.
This description includes the two pauth user registers.

Nothing yet uses the feature - that is added in later patches.

gdb/ChangeLog:

	* aarch64-linux-nat.c
	(aarch64_linux_nat_target::read_description): Add pauth param.
	* aarch64-linux-tdep.c
	(aarch64_linux_core_read_description): Likewise.
	* aarch64-tdep.c (struct target_desc): Add in pauth.
	(aarch64_read_description): Add pauth param.
	(aarch64_gdbarch_init): Likewise.
	* aarch64-tdep.h (aarch64_read_description): Likewise.
	* arch/aarch64.c (aarch64_create_target_description): Likewise.
	* arch/aarch64.h (aarch64_create_target_description): Likewise.
	* features/Makefile: Add new files.
	* features/aarch64-pauth.c: New file.
	* features/aarch64-pauth.xml: New file.

gdb/doc/ChangeLog:

	* gdb.texinfo: Describe pauth feature.

gdb/gdbserver/ChangeLog:

	* linux-aarch64-ipa.c (get_ipa_tdesc): Add pauth param.
	(initialize_low_tracepoint): Likewise.
	* linux-aarch64-low.c (aarch64_arch_setup): Likewise.
	* linux-aarch64-tdesc-selftest.c (aarch64_tdesc_test): Likewise.
	* linux-aarch64-tdesc.c (struct target_desc): Likewise.
	(aarch64_linux_read_description): Likewise.
	* linux-aarch64-tdesc.h (aarch64_linux_read_description): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Add pauth DWARF registers
@ 2019-03-22 13:17 sergiodj+buildbot
  2019-03-22 19:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 13:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 34dcc7cf95f756862bdfebb753ab2de39fec4c9e ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 34dcc7cf95f756862bdfebb753ab2de39fec4c9e

AArch64: Add pauth DWARF registers

Map the pauth registers to DWARF.

Add a new pseudo register ra_state and also map this to DWARF.  This register
is hidden from the user - prevent it from being read or written to.  It will
be used for the unmangling of addresses.

gdb/ChangeLog:

	* aarch64-tdep.c (aarch64_dwarf_reg_to_regnum): Check for pauth
	registers.
	(aarch64_pseudo_register_name): Likewise.
	(aarch64_pseudo_register_type): Likewise.
	(aarch64_pseudo_register_reggroup_p): Likewise.
	(aarch64_gdbarch_init): Add pauth registers.
	* aarch64-tdep.h (AARCH64_DWARF_PAUTH_RA_STATE): New define.
	(AARCH64_DWARF_PAUTH_DMASK): Likewise.
	(AARCH64_DWARF_PAUTH_CMASK): Likewise.
	(struct gdbarch_tdep): Add regnum for ra_state.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: DWARF unwinder support for signed return addresses
@ 2019-03-22 13:31 sergiodj+buildbot
  2019-03-22 21:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 13:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 11e1b75f0696f6e406fe8ccc759bac2fbc8fc151 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 11e1b75f0696f6e406fe8ccc759bac2fbc8fc151

AArch64: DWARF unwinder support for signed return addresses

Pauth address signing is enabled at binary compile time.  When enabled the
return addresses for functions may be mangled.  This patch adds functionality
to restore the original address for use in the DWARF unwinder.

DW_CFA_AARCH64_negate_ra_state in a binary indicates the toggling of address
signing between enabled and disabled.  Ensure the state is stored in the DWARF
register ra_state.

Ensure the pauth DWARF registers are initialised.

gdb/ChangeLog:

	* aarch64-tdep.c (aarch64_frame_unmask_address): New function.
	(aarch64_dwarf2_prev_register): Unmask PC value.
	(aarch64_dwarf2_frame_init_reg): Init pauth registers.
	(aarch64_execute_dwarf_cfa_vendor_op): Check for
	DW_CFA_AARCH64_negate_ra_state.
	(aarch64_gdbarch_init): Add aarch64_execute_dwarf_cfa_vendor_op.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Prologue scan unwinder support for signed return addresses
@ 2019-03-22 13:48 sergiodj+buildbot
  2019-03-22 23:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 13:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 17e116a7d1501a46cf4e45ec181148dc6a1e3e2b ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 17e116a7d1501a46cf4e45ec181148dc6a1e3e2b

AArch64: Prologue scan unwinder support for signed return addresses

Pauth address signing is enabled at binary compile time.  When enabled the
return addresses for functions may be mangled.  This patch adds functionality
to restore the original address for use in the prologue scan unwinder.

In the prologue analyzer, check for PACIASP/PACIBSP (enable address mangling)
and AUTIASP/AUTIBSP (disable address mangling).

When unwinding the PC from the prologue, unmask the register if required.

Add a test case to the prologue tests.

gdb/ChangeLog:

	* aarch64-tdep.c (aarch64_analyze_prologue): Check for pauth
	instructions.
	(aarch64_analyze_prologue_test): Add PACIASP test.
	(aarch64_prologue_prev_register): Unmask PC value.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Read pauth section from core files
@ 2019-03-22 14:02 sergiodj+buildbot
  2019-03-23  2:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 14:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 59c283728fddad638ae301cfb724d629fffc8665 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 59c283728fddad638ae301cfb724d629fffc8665

AArch64: Read pauth section from core files

gdb/ChangeLog:

	* aarch64-linux-tdep.c
	(aarch64_linux_iterate_over_regset_sections): Check for pauth
	section.
	* aarch64-linux-tdep.h (AARCH64_LINUX_SIZEOF_PAUTH): New define.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: gdbserver: read pauth registers
@ 2019-03-22 18:18 sergiodj+buildbot
  2019-03-22 18:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 18:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1ef53e6b8328acd5b7d54ee2fe288836ce12992e ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 1ef53e6b8328acd5b7d54ee2fe288836ce12992e

AArch64: gdbserver: read pauth registers

Add the pauth registers to the regset lists.

Add a new regset type OPTIONAL_REGS which allows for the regset read to fail.
Once the read fails, it will not be checked again.  This allows targets with
optional features to keep a single static regset_info structure.

gdb/ChangeLog:

	* arch/aarch64.h (AARCH64_PAUTH_REGS_SIZE): New define.

gdb/gdbserver/ChangeLog:

	* linux-aarch64-low.c (aarch64_store_pauthregset): New function.
	* linux-low.c (regsets_store_inferior_registers): Allow optional reads
	to fail.
	* linux-low.h (enum regset_type): Add OPTIONAL_REGS.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Include bcache.h from objfiles.h
@ 2019-03-23 17:15 sergiodj+buildbot
  2019-03-23 21:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-23 17:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b366c208ee07924cc3cafc1bd4d70548bc91075b ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b366c208ee07924cc3cafc1bd4d70548bc91075b

Include bcache.h from objfiles.h

objfiles.h needs "struct bcache" to be complete, so it should include
bcache.h.  This patch implements this.

Tested by rebuilding.

gdb/ChangeLog
2019-03-23  Tom Tromey  <tom@tromey.com>

	* objfiles.h: Include bcache.h.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Have parser reset the innermost block tracker
@ 2019-03-23 17:30 sergiodj+buildbot
  2019-03-23 23:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-23 17:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7ad417dd217849c164e3c8a250c62a98eb0b8cd4 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7ad417dd217849c164e3c8a250c62a98eb0b8cd4

Have parser reset the innermost block tracker

I ran across a comment in symfile.c today:

  /* Clear globals which might have pointed into a removed objfile.
     FIXME: It's not clear which of these are supposed to persist
     between expressions and which ought to be reset each time.  */

It seems to me that this can be clarified: the parser entry points
ought to reset the innermost block tracker (and the expression context
block), and these should not be considered valid for code to use at
arbitrary times -- only immediately after an expression has been
parsed.

This patch implements this idea.  This could be further improved by
removing the parser globals and changing the parser functions to
return this information, but I have not done this.

Tested by the buildbot.

gdb/ChangeLog
2019-03-23  Tom Tromey  <tom@tromey.com>

	* varobj.c (varobj_create): Update.
	* symfile.c (clear_symtab_users): Don't reset innermost_block.
	* printcmd.c (display_command, do_one_display): Don't reset
	innermost_block.
	* parser-defs.h (enum innermost_block_tracker_type): Move to
	expression.h.
	(innermost_block): Update comment.
	* parse.c (parse_exp_1): Add tracker_types parameter.
	(parse_exp_in_context): Rename from parse_exp_in_context_1.  Add
	tracker_types parameter.  Reset innermost_block.
	(parse_exp_in_context): Remove.
	(parse_expression_for_completion): Update.
	* objfiles.c (~objfile): Don't reset expression_context_block or
	innermost_block.
	* expression.h (enum innermost_block_tracker_type): Move from
	parser-defs.h.
	(parse_exp_1): Add tracker_types parameter.
	* breakpoint.c (set_breakpoint_condition, watch_command_1): Don't
	reset innermost_block.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] More block constification
@ 2019-03-25  6:17 sergiodj+buildbot
  2019-03-25  7:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-25  6:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 582942f4560f1c8d2a60c2557267f9d3ad8dd6aa ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 582942f4560f1c8d2a60c2557267f9d3ad8dd6aa

More block constification

I noticed that there are still many places referring to non-const
blocks.  This constifies all the remaining ones that I found that
could be constified.

In a few spots, this search found unused variables or fields.  I
removed these.  I've also removed some unnecessary casts to
"struct block *".

gdb/ChangeLog
2019-03-24  Tom Tromey  <tom@tromey.com>

	* c-exp.y (typebase): Remove casts.
	* gdbtypes.c (lookup_unsigned_typename, )
	(lookup_signed_typename): Remove cast.
	* eval.c (parse_to_comma_and_eval): Remove cast.
	* parse.c (write_dollar_variable): Remove cast.
	* block.h (struct block) <superblock>: Now const.
	* symfile-debug.c (debug_qf_map_matching_symbols): Update.
	* psymtab.c (psym_map_matching_symbols): Make "block" const.
	(map_block): Make "block" const.
	* symfile.h (struct quick_symbol_functions)
	<map_matching_symbols>: Constify block argument to "callback".
	* symtab.c (basic_lookup_transparent_type_quick): Make "block"
	const.
	(find_pc_sect_compunit_symtab): Make "b" const.
	(find_symbol_at_address): Likewise.
	(search_symbols): Likewise.
	* dwarf2read.c (dw2_lookup_symbol): Make "block" const.
	(dw2_debug_names_lookup_symbol): Likewise.
	(dw2_map_matching_symbols): Update.
	* p-valprint.c (pascal_val_print): Remove "block".
	* ada-lang.c (ada_add_global_exceptions): Make "b" const.
	(aux_add_nonlocal_symbols): Make "block" const.
	(resolve_subexp): Remove cast.
	* linespec.c (iterate_over_all_matching_symtabs): Make "block"
	const.
	(iterate_over_file_blocks): Likewise.
	* f-exp.y (%union) <bval>: Remove.
	* coffread.c (patch_opaque_types): Make "b" const.
	* spu-tdep.c (spu_catch_start): Make "block" const.
	* c-valprint.c (print_unpacked_pointer): Remove "block".
	* symmisc.c (dump_symtab_1): Make "b" const.
	(block_depth): Make "block" const.
	* d-exp.y (%union) <bval>: Remove.
	* cp-support.h (cp_lookup_rtti_type): Update.
	* cp-support.c (cp_lookup_rtti_type): Make "block" const.
	* psymtab.c (psym_lookup_symbol): Make "block" const.
	(maintenance_check_psymtabs): Make "b" const.
	* python/py-framefilter.c (extract_sym): Make "sym_block" const.
	(enumerate_locals, enumerate_args): Update.
	* python/py-symtab.c (stpy_global_block): Make "block" const.
	(stpy_static_block): Likewise.
	* inline-frame.c (block_starting_point_at): Make "new_block"
	const.
	* block.c (find_block_in_blockvector): Make return type const.
	(blockvector_for_pc_sect): Make "b" const.
	(find_block_in_blockvector): Make "b" const.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove null_block_symbol
@ 2019-03-25  6:17 sergiodj+buildbot
  2019-03-25 10:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-25  6:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6640a367bf5427779856e7c80ae4b4bd88c19d3c ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6640a367bf5427779856e7c80ae4b4bd88c19d3c

Remove null_block_symbol

This removes null_block_symbol.  It seemed simpler to me to change
initializations and returns to use value initialization rather than
null_block_symbol.  This also fixes up a few spots where
initialization was done piecemeal.

gdb/ChangeLog
2019-03-24  Tom Tromey  <tom@tromey.com>

	* ada-lang.c (standard_lookup): Simplify initialization.
	(ada_lookup_symbol_nonlocal): Simplify return.
	* solib-spu.c (spu_lookup_lib_symbol): Simplify return.
	* solib-darwin.c (darwin_lookup_lib_symbol): Simplify return.
	* solib-svr4.c (elf_lookup_lib_symbol): Simplify return.
	* rust-lang.c (rust_lookup_symbol_nonlocal): Simplify
	initialization.
	* solib.c (solib_global_lookup): Simplify.
	* symtab.c (null_block_symbol): Remove.
	(symbol_cache_lookup): Simplify returns.
	(lookup_language_this): Simplify returns.
	(lookup_symbol_aux): Simplify return.
	(lookup_local_symbol): Simplify returns.
	(lookup_global_symbol_from_objfile): Simplify return.
	(lookup_symbol_in_objfile_symtabs)
	(lookup_symbol_in_objfile_from_linkage_name): Simplify return.
	(lookup_symbol_via_quick_fns, lookup_symbol_in_static_block)
	(lookup_static_symbol, lookup_global_symbol): Simplify return.
	* cp-namespace.c (cp_lookup_bare_symbol)
	(cp_search_static_and_baseclasses, cp_lookup_symbol_via_imports)
	(cp_lookup_symbol_via_all_imports, cp_lookup_nested_symbol_1)
	(cp_lookup_nested_symbol): Don't use null_block_symbol.
	(cp_lookup_symbol_via_imports): Simplify initialization.
	(find_symbol_in_baseclass): Likewise.
	* symtab.h (null_block_symbol): Remove.
	* d-namespace.c (d_lookup_symbol): Don't use null_block_symbol.
	(d_lookup_nested_symbol, d_lookup_symbol_imports)
	(d_lookup_symbol_module): Likewise.
	(find_symbol_in_baseclass): Simplify initialization.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix testsuite hangs when gdb_test_multiple body errors out
@ 2019-03-25 14:22 sergiodj+buildbot
  2019-03-25 15:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 14:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9a93502fa81734d39f213ccb33b497bc40e1423d ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 9a93502fa81734d39f213ccb33b497bc40e1423d

Fix testsuite hangs when gdb_test_multiple body errors out

This commit fixes a regression in the testsuite itself, triggered by
errors being raised from within gdb_test_multiple, originally reported
by Pedro Franco de Carvalho's at
<https://sourceware.org/ml/gdb-patches/2019-03/msg00160.html>.  Parts
of the commit message are based on his report.

This started happening due to a commit that was introduced recently,
and it can cause the testsuite to hang.

The commit that triggers this is:

 fe1a5cad302b5535030cdf62895e79512713d738
 [gdb/testsuite] Log wait status on process no longer exists error

That commit introduces a new "eof" block in gdb_test_multiple.  That
is not incorrect itself, but dejagnu's remote_expect is picking that
block as the "default" action when an error is raised from within the
commands inside a call to gdb_test_multiple:

  # remote_expect works basically the same as standard expect, but it
  # also takes care of getting the file descriptor from the specified
  # host and also calling the timeout/eof/default section if there is an
  # error on the expect call.
  #
  proc remote_expect { board timeout args } {

I find that "feature" surprising, and I don't really know why it
exists, but this means that the eof section that remote_expect picks
as the error block can be executed even when there was no actual eof
and the GDB process is still running, so the wait introduced in the
commit that tries to get the exit status of GDB hangs forever, while
GDB itself waits for input.

This only happens when there are internal testsuite errors (not
testcase failures).  This can be reproduced easily with a testcase
such as:

  gdb_start
  gdb_test_multiple "show version" "show version" {
    -re ".*" {
       error "forced error"
    }
  }

I think that working around this in GDB is useful so that the
testsuite doesn't hang in these cases.

Adding an empty "default" block at the end of the expect body in
gdb_test_multiple doesn't work, because dejagnu gives preference to
"eof" blocks:

	    if { $x eq "eof" } {
		set save_next 1
	    } elseif { $x eq "default" || $x eq "timeout" } {
		if { $error_sect eq "" } {
		    set save_next 1
		}
	    }

And we do have "eof" blocks.  So we need to make sure that the last
"eof" block is safe to use as the default error block.  It's also
pedantically incorrect to print

 "ERROR: Process no longer exists"

which is what we'd get if the last eof block we have was selected
(more below on this).

So this commit solves this by appending an "eof" with an empty
spawn_id list, so that it won't ever match.

Now, why is the first "eof" block selected today as the error block,
instead of the last one?

The reason is that remote_expect, while parsing the body to select the
default block to execute after an error, is affected by the comments
in the body (since they are also parsed).

If this comment in gdb_test_multiple

 # patterns below apply to any spawn id specified.

is changed to

 # The patterns below apply to any spawn id specified.

then the second eof block is selected and there is no hang.

Any comment at that same place with an even number of tokens also
works.

This is IMO a coincidence caused by how comments work in TCL.
Comments should only appear in places where a command can appear.  And
here, remote_expect is parsing a list of options, not commands, so
it's not unreasonable to not parse comments, similarly to how this:

  set a_list {
     an_element
     # another_element
  }

results in a list with three elements, not one element.

The fact that comments with an even number of tokens work is just a
coincidence of how remote_expect's little state machine is
implemented.

I thought we could solve this by stripping out comment lines in
gdb_expect, but I didn't find an easy way to do that.  Particularly, a
couple naive approaches I tried run into complications.  For example,
we have gdb_test calls with regular expressions that include sequences
like "\r\n#", and by the time we get to gdb_expect, the \r\n have
already been expanded to a real newline, so just splitting the whole
body at newline boundaries, looking for lines that start with #
results in incorrectly stripping out half of the gdb_text regexp.  I
think it's better (at least in this commit), to move the comments out
of the list, because it's much simpler and risk free.

gdb/testsuite/ChangeLog:
2019-03-25  Pedro Alves  <palves@redhat.com>

	* lib/gdb.exp (gdb_test_multiple): Split appends to $code and
	move comments outside list.  Append '-i "" eof' section.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Fix disassembler bug with out-of-order sections
@ 2019-03-25 15:59 sergiodj+buildbot
  2019-03-25 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 15:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 53b2f36bf6aa939feab6f82f05d7dad52f82660d ***

Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 53b2f36bf6aa939feab6f82f05d7dad52f82660d

AArch64: Fix disassembler bug with out-of-order sections

The AArch64 disassembler has an optimization that it uses to reduce the amount
it has to search for mapping symbols during disassembly.  This optimization
assumes that sections are listed in the section header in monotonic increasing
VMAs.  However this is not a requirement for the ELF specification.

Because of this when such "out of order" sections occur the disassembler would
pick the wrong mapping symbol to disassemble the section with.

This fixes it by explicitly passing along the stop offset for the current
disassembly glob and when this changes compared to the previous one we've seen
the optimization won't be performed.  In effect this restarts the search from
a well defined starting point.  Usually the symbol's address.

The existing stop_vma can't be used for this as it is allowed to be unset and
setting this unconditionally would change the semantics of this field.

binutils/ChangeLog:

	* objdump.c (disassemble_bytes): Pass stop_offset.
	* testsuite/binutils-all/aarch64/out-of-order.T: New test.
	* testsuite/binutils-all/aarch64/out-of-order.d: New test.
	* testsuite/binutils-all/aarch64/out-of-order.s: New test.

include/ChangeLog:

	* dis-asm.h (struct disassemble_info): Add stop_offset.

opcodes/ChangeLog:

	* aarch64-dis.c (last_stop_offset): New.
	(print_insn_aarch64): Use stop_offset.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix s390 build
@ 2019-03-25 17:24 sergiodj+buildbot
  2019-03-26  1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 17:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d45963c2b26369e3b375cf5b3b6f52f50f767ef3 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: d45963c2b26369e3b375cf5b3b6f52f50f767ef3

Fix s390 build

Add missing include.

2019-03-25  Alan Hayward  <alan.hayward@arm.com>

        * s390-linux-nat.c: Add include.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Note support for TLS variables on FreeBSD.
@ 2019-03-25 20:39 sergiodj+buildbot
  2019-03-26  6:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 20:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 81a24d04dfecdbdd9af143043197317dea1119c7 ***

Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 81a24d04dfecdbdd9af143043197317dea1119c7

Note support for TLS variables on FreeBSD.

gdb/ChangeLog:

	* NEWS: Mention TLS support for FreeBSD.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Arm: Fix Arm disassembler mapping symbol search.
@ 2019-03-25 22:26 sergiodj+buildbot
  2019-03-25 22:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 22:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 796d6298bb11deab06814cc38cfe74a1bfc57551 ***

Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 796d6298bb11deab06814cc38cfe74a1bfc57551

Arm: Fix Arm disassembler mapping symbol search.

Similar to the AArch64 patches the Arm disassembler has the same issues with
out of order sections but also a few short comings.

For one thing there are multiple code blocks to determine mapping symbols, and
they all work slightly different, and neither fully correct.  The first thing
this patch does is centralise the mapping symbols search into one function
mapping_symbol_for_insn.  This function is then updated to perform a search in
a similar way as AArch64.

Their used to be a value has_mapping_symbols which was used to determine the
default disassembly for objects that have no mapping symbols.  The problem with
the approach was that it was determining this value in the same loop that needed
it, which is why this field could take on the states -1, 0, 1 where -1 means
"don't know".  However this means that until you actually find a mapping symbol
or reach the end of the disassembly glob, you don't know if you did the right
action or not, and if you didn't you can't correct it anymore.

This is why the two jump-reloc-veneers-* testcases end up disassembling some
insn as data when they shouldn't.

Out of order here refers to an object file where sections are not listed in a
monotonic increasing VMA order.

The ELF ABI for Arm [1] specifies the following for mapping symbols:

  1) A text section must always have a corresponding mapping symbol at it's
     start.
  2) Data sections do not require any mapping symbols.
  3) The range of a mapping symbol extends from the address it starts on up to
     the next mapping symbol (exclusive) or section end (inclusive).

However there is no defined order between a symbol and it's corresponding
mapping symbol in the symbol table.  This means that while in general we look
up for a corresponding mapping symbol, we have to make at least one check of
the symbol below the address being disassembled.

When disassembling different PCs within the same section, the search for mapping
symbol can be cached somewhat.  We know that the mapping symbol corresponding to
the current PC is either the previous one used, or one at the same address as
the current PC.

However this optimization and mapping symbol search must stop as soon as we
reach the end or start of the section.  Furthermore if we're only disassembling
a part of a section, the search is a allowed to search further than the current
chunk, but is not allowed to search past it (The mapping symbol if there, must
be at the same address, so in practice we usually stop at PC+4).

lastly, since only data sections don't require a mapping symbol the default
mapping type should be DATA and not INSN as previously defined, however if the
binary has had all its symbols stripped than this isn't very useful.  To fix
this we determine the default based on the section flags.  This will allow the
disassembler to be more useful on stripped binaries.  If there is no section
than we assume you to be disassembling INSN.

[1] https://developer.arm.com/docs/ihi0044/latest/elf-for-the-arm-architecture-abi-2018q4-documentation#aaelf32-table4-7

binutils/ChangeLog:

	* testsuite/binutils-all/arm/in-order-all.d: New test.
	* testsuite/binutils-all/arm/in-order.d: New test.
	* testsuite/binutils-all/arm/objdump.exp: Support .d tests.
	* testsuite/binutils-all/arm/out-of-order-all.d: New test.
	* testsuite/binutils-all/arm/out-of-order.T: New test.
	* testsuite/binutils-all/arm/out-of-order.d: New test.
	* testsuite/binutils-all/arm/out-of-order.s: New test.

ld/ChangeLog:

	* testsuite/ld-arm/jump-reloc-veneers-cond-long.d: Update disassembly.
	* testsuite/ld-arm/jump-reloc-veneers-long.d: Update disassembly.

opcodes/ChangeLog:

	* arm-dis.c (struct arm_private_data): Remove has_mapping_symbols.
	(mapping_symbol_for_insn): Implement new algorithm.
	(print_insn): Remove duplicate code.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdbserver: Add linux_get_hwcap
@ 2019-03-26 17:26 sergiodj+buildbot
  2019-03-26 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-26 17:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 974c89e0882ddb03e294eca76a9e3d3bef90eacf ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 974c89e0882ddb03e294eca76a9e3d3bef90eacf

gdbserver: Add linux_get_hwcap

In gdbserver, Tidy up calls to read HWCAP (and HWCAP2) by adding common
functions, removing the Arm, AArch64, PPC and S390 specific versions.

No functionality differences.

gdb/gdbserver/ChangeLog:

	* linux-aarch64-low.c (aarch64_get_hwcap): Remove function.
	(aarch64_arch_setup): Call linux_get_hwcap.
	* linux-arm-low.c (arm_get_hwcap): Remove function.
	(arm_read_description): Call linux_get_hwcap.
	* linux-low.c (linux_get_auxv): New function.
	(linux_get_hwcap): Likewise.
	(linux_get_hwcap2): Likewise.
	* linux-low.h (linux_get_hwcap): New declaration.
	(linux_get_hwcap2): Likewise.
	* linux-ppc-low.c (ppc_get_auxv): Remove function.
	(ppc_arch_setup): Call linux_get_hwcap.
	* linux-s390-low.c (s390_get_hwcap): Remove function.
	(s390_arch_setup): Call linux_get_hwcap.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Avoid trailing whitespace when pretty printing
@ 2019-03-26 20:13 sergiodj+buildbot
  2019-03-26 23:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-26 20:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 18c77628b1e97e412561029ec20195c1ffa61b2d ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 18c77628b1e97e412561029ec20195c1ffa61b2d

gdb: Avoid trailing whitespace when pretty printing

While writing a new test for 'set print pretty on' I spotted that GDB
will sometimes add a trailing whitespace character when pretty
printing.  This commit removes the trailing whitespace and updates the
expected results in one tests where this was an issue.

I've added an extra test for 'set print pretty on' as it doesn't seem
to have much testing.

gdb/ChangeLog:

	* cp-valprint.c (cp_print_value_fields): Don't print trailing
	whitespace when pretty printing is on.

gdb/testsuite/ChangeLog:

	* gdb.base/finish-pretty.exp: Update expected results.
	* gdb.base/pretty-print.c: New file.
	* gdb.base/pretty-print.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix Powerpc build
@ 2019-03-26 20:58 sergiodj+buildbot
  2019-03-26 21:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-26 20:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 53c973f200e39c4122e0db06a94e3a0079e6de80 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 53c973f200e39c4122e0db06a94e3a0079e6de80

Fix Powerpc build

gdb/ChangeLog:

        * ppc-linux-nat.c: Add include.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Testsuite: Ensure interrupt-daemon-attach doesn't run forever
@ 2019-03-27 12:22 sergiodj+buildbot
  2019-03-27 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-27 12:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 933aebfae6b1a2b83c3eb958ebf6e43fc7fdaed1 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 933aebfae6b1a2b83c3eb958ebf6e43fc7fdaed1

Testsuite: Ensure interrupt-daemon-attach doesn't run forever

Looking at the AArch64 buildbot, I noticed about two dozen old instances of
interrupt-daemon-attach taking up a full 100% cpu each.

If the test fails then the test binary relies on an alarm to ensure it dies
after 60 seconds.

As per the Linux man page for alarm:
  Alarms created by alarm() ... are not inherited by children created via fork.

Update the test to add an alarm in the child and also put a sleep in the
child loop so it does not constantly consume cpu.

Note I haven't managed to re-create why the test failed.  This fix will just
stop it hanging and consuming cpu when it does.

gdb/testsuite/ChangeLog:

	* gdb.base/interrupt-daemon-attach.c (main): Add alarm and sleep
	in child.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix buffer overflow regression due to minsym malloc-ed instead of obstack-ed.
@ 2019-03-27 16:06 sergiodj+buildbot
  2019-03-28  4:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-27 16:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 20dc7e9b059edff1d0fab3bd197c460c11cc7a06 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 20dc7e9b059edff1d0fab3bd197c460c11cc7a06

Fix buffer overflow regression due to minsym malloc-ed instead of obstack-ed.

Valgrind detects the following error in a bunch of tests,
e.g. in gdb.base/foll-fork.exp.

==15155== VALGRIND_GDB_ERROR_BEGIN
==15155== Invalid read of size 8
==15155==    at 0x55BE04: minimal_symbol_upper_bound(bound_minimal_symbol) (minsyms.c:1504)
==15155==    by 0x3B2E9C: find_pc_partial_function(unsigned long, char const**, unsigned long*, unsigned long*, block const**) (blockframe.c:340)
==15155==    by 0x3B3135: find_function_entry_range_from_pc(unsigned long, char const**, unsigned long*, unsigned long*) (blockframe.c:385)
==15155==    by 0x4F5597: fill_in_stop_func(gdbarch*, execution_control_state*) [clone .part.16] (infrun.c:4124)
==15155==    by 0x4FBE01: fill_in_stop_func (infrun.c:7636)
==15155==    by 0x4FBE01: process_event_stop_test(execution_control_state*) (infrun.c:6279)
...
==15155==  Address 0x715bec8 is 0 bytes after a block of size 2,952 alloc'd
==15155==    at 0x4C2E2B3: realloc (vg_replace_malloc.c:836)
==15155==    by 0x405F2C: xrealloc (common-utils.c:62)
==15155==    by 0x55BA4E: xresizevec<minimal_symbol> (poison.h:170)
==15155==    by 0x55BA4E: minimal_symbol_reader::install() (minsyms.c:1399)
==15155==    by 0x4981C7: elf_read_minimal_symbols (elfread.c:1165)
...

This seems to be a regression created by:
    commit 042d75e42c5572f333e0e06dabd3c5c4afab486c
    Author:     Tom Tromey <tom@tromey.com>
    AuthorDate: Sat Mar 2 12:29:48 2019 -0700
    Commit:     Tom Tromey <tom@tromey.com>
    CommitDate: Fri Mar 15 16:02:10 2019 -0600

        Allocate minimal symbols with malloc

Before this commit, the array of 'struct minimal_symbol'
contained a last element that was a "null symbol".  The comment in
minimal_symbol_reader::install was:
      /* We also terminate the minimal symbol table with a "null symbol",
         which is *not* included in the size of the table.  This makes it
         easier to find the end of the table when we are handed a pointer
         to some symbol in the middle of it.  Zero out the fields in the
         "null symbol" allocated at the end of the array.  Note that the
         symbol count does *not* include this null symbol, which is why it
         is indexed by mcount and not mcount-1.  */

      memset (&msymbols[mcount], 0, sizeof (struct minimal_symbol));

However, minimal_symbol_upper_bound was still based on the assumption
that the array of minsym is terminated by a minsym with a null symbol:
it is looping with:
  for (i = 1; MSYMBOL_LINKAGE_NAME (msymbol + i) != NULL; i++)

Replace this NULL comparison by a logic that calculates how
many msymbol are following the msymbols from which we are starting from.

(Re-)tested on debian/amd64, natively and under valgrind.

gdb/ChangeLog
2019-03-24  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
	    Tom Tromey  <tromey@adacore.com>

	* minsyms.c (minimal_symbol_upper_bound): Fix buffer overflow.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] sim/common: convert sim-arange to use sim-inline
@ 2019-03-27 22:18 sergiodj+buildbot
  2019-03-28  4:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-27 22:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ef9866970ce6683d40465fb7c3168f87a1dcd1b7 ***

Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: ef9866970ce6683d40465fb7c3168f87a1dcd1b7

sim/common: convert sim-arange to use sim-inline

This fixes a TODO item and also fixes an error which we get when
building with no optimizations (-O0) in at least gcc 8.2.1.

Tested with sims that use cgen code lm32, or1k, cris, m32r and inlining
is working corretly.

Reference Error:

gcc -DHAVE_CONFIG_H -DWITH_DEFAULT_MODEL='"or1200"' -DWITH_ALIGNMENT=STRICT_ALIGNMENT \
 -DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31 -DWITH_TARGET_ADDRESS_BITSIZE=32 \
 -DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_BIG   -DDEFAULT_INLINE=0  -DWITH_SCACHE=16384 \
 -I. -I../../../binutils-gdb/sim/or1k -I../common -I../../../binutils-gdb/sim/or1k/../common \
 -I../../include -I../../../binutils-gdb/sim/or1k/../../include -I../../bfd \
 -I../../../binutils-gdb/sim/or1k/../../bfd -I../../opcodes -I../../../binutils-gdb/sim/or1k/../../opcodes \
 -g -o run nrun.o libsim.a ../../bfd/libbfd.a ../../opcodes/libopcodes.a  ../../libiberty/libiberty.a \
 -ldl  -lz -lm

/usr/bin/ld: libsim.a(mloop.o): in function `extract':
/home/shorne/work/openrisc/gdb-musl/sim/or1k/mloop.c:82: undefined reference to `sim_addr_range_hit_p'
/usr/bin/ld: /home/shorne/work/openrisc/gdb-musl/sim/or1k/mloop.c:83: undefined reference to `sim_addr_range_hit_p'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:305: run] Error 1

sim/common/ChangeLog:

	* Make-common.in (sim-arange_h): Remove sim-arange.c
	* sim-arange.c: Remove SIM_ARANGE_C.
	Add ifdef for _SIM_ARANGE_C_.
	Include "sim-arange.h".
	Remove include for unused "sim-assert.h".
	Remove DEFINE_INLINE_P.  Remove DEFINE_NON_INLINE_P.
	(sim_addr_range_add): Declare as INLINE_SIM_ARANGE.
	(sim_addr_range_delete): Declare as INLINE_SIM_ARANGE.
	(sim_addr_range_hit_p): Change from SIM_ARANGE_INLINE to
	INLINE_SIM_ARANGE.
	* sim-arange.h (sim_addr_range_add): Declare as
	INLINE_SIM_ARANGE.
	(sim_addr_range_delete): Declare as INLINE_SIM_ARANGE.
	(sim_addr_range_hit_p) Declare as INLINE_SIM_ARANGE.
	Remove definition of SIM_ARANGE_INLINE.
	Remove [HAVE_INLINE].
	Wrap include "sim-arange.c" in H_REVEALS_MODULE_P.
	* sim-base.h: Include "sim-arange.h"
	* sim-basics.h: Remove include of "sim-arange.h"
	* sim-inline.c: Include "sim-arange.c"
	* sim-inline.h: Define INLINE_SIM_ARANGE.
	Define SIM_ARANGE_INLINE.  Define EXTERN_SIM_ARANGE_P.
	Define STATIC_INLINE_SIM_ARANGE.  Define STATIC_SIM_ARANGE.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdbserver: Ensure AT_HWCAP2 is defined
@ 2019-03-28 12:45 sergiodj+buildbot
  2019-03-28 15:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 12:45 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 69f4c9cc037f2226982a21fae63ffbc5e866fcca ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 69f4c9cc037f2226982a21fae63ffbc5e866fcca

gdbserver: Ensure AT_HWCAP2 is defined

When using older compilers, AT_HWCAP2 may not be be defined.
It is defined in elf/common.h, however including this in
gdbserver/linux-low.c causes conflicts.

Manually add the define if it does not exist.

gdb/gdbserver/ChangeLog:

	* linux-low.c (AT_HWCAP2): Add define if not already included.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: View the pseudo V registers as vectors
@ 2019-03-28 17:50 sergiodj+buildbot
  2019-03-28 20:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 17:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bffa1015cd6cb4a2a4bd1276ed749d150684dd5c ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: bffa1015cd6cb4a2a4bd1276ed749d150684dd5c

AArch64: View the pseudo V registers as vectors

When SVE is enabled, the V registers become pseudo registers based
on the Z registers.  They should look the same as they do when
there is no SVE.

The existing code viewed them as single value registers. Switch
this to a vector.

gdb/ChangeLog:

	* aarch64-tdep.c (aarch64_vnv_type): Use vector types.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix gdb.multi/multi-arch-exec.exp blocking under high load/slow gdb
@ 2019-03-28 21:16 sergiodj+buildbot
  2019-03-29 10:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 21:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 80047cfc27459d4d31fe275ddd02231d812ddb61 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 80047cfc27459d4d31fe275ddd02231d812ddb61

Fix gdb.multi/multi-arch-exec.exp blocking under high load/slow gdb

When running multi-arch-exec.exp under valgrind, the test succeeds
when the machine is not loaded, but blocks when the machine is highly
loaded (e.g. when running the testsuite with valgrind with -j X
where X is one more than the nr of available cores).

The problem is that the hello program dies too early due to the alarm (30).

So, increase the alarm timer.
Note that this does not make the test take longer (it takes about
3.5 seconds on my system).  As I understand, the alarm is just there
to avoid hello staying there forever in case of another problem.

2019-03-28  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.multi/hello.c (main): Increase alarm timer.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] sim: fix all sim builds
@ 2019-03-28 23:33 sergiodj+buildbot
  2019-03-29 15:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 23:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d3fe0d7bb8a3101df6f052aa54e4cfedcc2fee94 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: d3fe0d7bb8a3101df6f052aa54e4cfedcc2fee94

sim: fix all sim builds

This commit:

  commit ef9866970ce6683d40465fb7c3168f87a1dcd1b7
  Date:   Thu Mar 28 06:40:30 2019 +0900

      sim/common: convert sim-arange to use sim-inline

broke many simulator targets.  I fixed aarch64 in a previous commit
without realising how many other target were also broken.

This commit adds the missing includes (sim-assert.h and libiberty.h),
which seem to be needed by many simulator targets, in a central
location, this should fix most builds.

sim/common/ChangeLog:

	* sim-base.h: Add 'sim-assert.h' include.
	* sim-basics.h: Add 'libiberty.h' include.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Allow really large fortran array bounds: fortran type/value printers
@ 2019-03-29 18:49 sergiodj+buildbot
  2019-03-29 22:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-29 18:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2880242dd0b8538b68aece7d9e8b1678dcdfd0ab ***

Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: 2880242dd0b8538b68aece7d9e8b1678dcdfd0ab

Allow really large fortran array bounds: fortran type/value printers

This is the fortran part of the patch, including tests, which
are essentially unchanged from Siddhesh's original 2012 submission:

  https://sourceware.org/ml/gdb-patches/2012-08/msg00562.html

There is, however, one large departure.  In the above thread,
Jan pointed out problems with GCC debuginfo for -m32 builds
(filed usptream as gcc/54934).  After investigating the issue,
I am dropping the hand-tweaked assembler source file to workaround
this case.

While I would normally do something to accommodate this, in
this case, given the ubiquity of 64-bit systems today (where
the tests pass) and the apparent lack of urgency on the compiler
side (by users), I don't think the additional complexity and
maintenance costs are worth it. It will be very routinely tested
on 64-bit systems. [For example, at Red Hat, we always
test -m64 and -m32 configurations for all GDB releases.]

gdb/ChangeLog:

	From Siddhesh Poyarekar:
	* f-lang.h (f77_get_upperbound): Return LONGEST.
	(f77_get_lowerbound): Likewise.
	* f-typeprint.c (f_type_print_varspec_suffix): Expand
	UPPER_BOUND and LOWER_BOUND to LONGEST.  Use plongest to format
	print them.
	(f_type_print_base): Expand UPPER_BOUND to LONGEST.  Use
	plongest to format print it.
	* f-valprint.c (f77_get_lowerbound): Return LONGEST.
	(f77_get_upperbound): Likewise.
	(f77_get_dynamic_length_of_aggregate): Expand UPPER_BOUND,
	LOWER_BOUND to LONGEST.
	(f77_create_arrayprint_offset_tbl): Likewise.

gdb/testsuite/ChangeLog:

	* gdb.fortran/array-bounds.exp: New file.
	* gdb.fortran/array-bounds.f90: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Introduce new convenience variables $_gdb_major and $_gdb_minor
@ 2019-03-30 10:38 sergiodj+buildbot
  2019-03-30 12:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-03-30 10:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7734102d6d8b5a0ccea166f8e944f84dc896b9ae ***

Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 7734102d6d8b5a0ccea166f8e944f84dc896b9ae

Introduce new convenience variables $_gdb_major and $_gdb_minor

gdb/ChangeLog:
2019-03-30  Eli Zaretskii  <eliz@gnu.org>

	* NEWS: Announce $_gdb_major and $_gdb_minor.

	* top.c (init_gdb_version_vars): New function.
	(gdb_init): Call init_gdb_version_vars.

gdb/testsuite/ChangeLog:
2019-03-30  Simon Marchi <simark@simark.ca>

	* gdb.base/default.exp: Add values for $_gdb_major and
	$_gdb_minor.

gdb/doc/ChangeLog:
2019-03-30  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Convenience Vars): Document $_gdb_major and
	$_gdb_minor.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add gdb.Value.format_string ()
@ 2019-04-01  8:39 sergiodj+buildbot
  2019-04-01 11:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-01  8:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 52093e1b936fa4f3f8bb3868c5a44d0df25c8db4 ***

Author: Marco Barisione <mbarisione@undo.io>
Branch: master
Commit: 52093e1b936fa4f3f8bb3868c5a44d0df25c8db4

Add gdb.Value.format_string ()

The str () function, called on a gdb.Value instance, produces a string
representation similar to what can be achieved with the print command,
but it doesn't allow to specify additional formatting settings, for
instance disabling pretty printers.

This patch introduces a new format_string () method to gdb.Value which
allows specifying more formatting options, thus giving access to more
features provided by the internal C function common_val_print ().

gdb/ChangeLog:

2019-04-01  Marco Barisione  <mbarisione@undo.io>

	Add gdb.Value.format_string ().
	* python/py-value.c (copy_py_bool_obj):
	(valpy_format_string): Add gdb.Value.format_string ().
	* NEWS: Document the addition of gdb.Value.format_string ().

gdb/doc/ChangeLog:

2019-04-01  Marco Barisione  <mbarisione@undo.io>

	* python.texi (Values From Inferior): Document
	gdb.Value.format_string ().

gdb/testsuite/ChangeLog:

2019-04-01  Marco Barisione  <mbarisione@undo.io>

	Test gdb.Value.format_string ().
	* gdb.python/py-format-string.exp: New test.
	* gdb.python/py-format-string.c: New file.
	* gdb.python/py-format-string.py: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Destroy allocated values when exiting GDB
@ 2019-04-01 15:18 sergiodj+buildbot
  2019-04-01 16:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 15:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9d1447e09d4aa673826039321163b5a684e8e043 ***

Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 9d1447e09d4aa673826039321163b5a684e8e043

Destroy allocated values when exiting GDB

When the user exits GDB, we might still have some allocated values in
the chain, which, in specific scenarios, can cause problems when GDB
attempts to destroy them in "quit_force".  For example, see the bug
reported at:

  https://bugzilla.redhat.com/show_bug.cgi?id=1690120

And the thread starting at:

  https://sourceware.org/ml/gdb-patches/2019-03/msg00475.html
  Message-ID: <87r2azkhmq.fsf@redhat.com>

In order to avoid that, and to be more aware of our allocated
resources, this commit implements a new function "finalize_values" and
calls it from inside "quit_force".

Tested by the BuildBot.

2019-04-01  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	* top.c (quit_force): Call 'finalize_values'.
	* value.c (finalize_values): New function.
	* value.h (finalize_values): Declare.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Handle DW_AT_ranges when reading partial symtabs
@ 2019-04-01 17:31 sergiodj+buildbot
  2019-04-01 18:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 17:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 05caa1d236440cd8967f8804be8dbcf27fb490b6 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 05caa1d236440cd8967f8804be8dbcf27fb490b6

Handle DW_AT_ranges when reading partial symtabs

add_partial_subprogram does not handle DW_AT_ranges, while the full
symtab reader does.  This can lead to discrepancies where a function
is not put into a partial symtab, and so is not available to "break"
and the like -- but is available if the full symtab has somehow been
read.

This patch fixes the bug by arranging to read DW_AT_ranges when
reading partial DIEs.

This is PR symtab/23331.

The new test case is derived from dw2-ranges-func.exp, which is why I
kept the copyright dates.

gdb/ChangeLog
2019-04-01  Tom Tromey  <tromey@adacore.com>

	PR symtab/23331:
	* dwarf2read.c (partial_die_info::read): Handle DW_AT_ranges.

gdb/testsuite/ChangeLog
2019-04-01  Tom Tromey  <tromey@adacore.com>

	PR symtab/23331:
	* gdb.dwarf2/dw2-ranges-main.c: New file.
	* gdb.dwarf2/dw2-ranges-psym.c: New file.
	* gdb.dwarf2/dw2-ranges-psym.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Add $_cimag and $_creal internal functions
@ 2019-04-01 21:35 sergiodj+buildbot
  2019-04-01 22:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 21:35 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8bdc16587e26100282094c8eaa8e83180ba57afd ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 8bdc16587e26100282094c8eaa8e83180ba57afd

gdb: Add $_cimag and $_creal internal functions

Add two new internal functions $_cimag and $_creal that extract the
imaginary and real parts of a complex value.

These internal functions can take a complex value of any type 'float
complex', 'double complex', or 'long double complex' and return a
suitable floating point value 'float', 'double', or 'long double'.
So we can now do this:

    (gdb) p z1
    $1 = 1.5 + 4.5 * I
    (gdb) p $_cimag (z1)
    $4 = 4.5
    (gdb) p $_creal (z1)
    $4 = 1.5

The components of a complex value are not strictly named types in
DWARF, as the complex type is itself the base type.  However, once we
are able to extract the components it makes sense to be able to ask
what the type of these components is and get a sensible answer back,
rather than the error we would currently get.  Currently GDB says:

    (gdb) ptype z1
    type = complex double
    (gdb) p $_cimag (z1)
    $4 = 4.5
    (gdb) ptype $
    type = <invalid type code 9>

With the changes in dwarf2read.c, GDB now says:

    (gdb) ptype z1
    type = complex double
    (gdb) p $_cimag (z1)
    $4 = 4.5
    (gdb) ptype $
    type = double

Which seems to make more sense.

gdb/ChangeLog:

	* NEWS: Mention new internal functions.
	* dwarf2read.c (dwarf2_init_complex_target_type): New function.
	(read_base_type): Use dwarf2_init_complex_target_type.
	* value.c (creal_internal_fn): New function.
	(cimag_internal_fn): New function.
	(_initialize_values): Register new internal functions.

gdb/doc/ChangeLog:

	* gdb.texinfo (Convenience Funs): Document '$_creal' and
	'$_cimag'.

gdb/testsuite/ChangeLog:

	* gdb.base/complex-parts.c: New file.
	* gdb.base/complex-parts.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Handle internal function calls
@ 2019-04-01 21:51 sergiodj+buildbot
  2019-04-02  0:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 21:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d7df654955c2423190b05b2507caf624ce3d65bc ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: d7df654955c2423190b05b2507caf624ce3d65bc

gdb/fortran: Handle internal function calls

If an convenience function is defined in python (or guile), then
currently this will not work in Fortran, instead the user is given
this message:

  (gdb) set language fortran
  (gdb) p $myfunc (3)
  Cannot perform substring on this type

Compare this to C:

  (gdb) set language c
  (gdb) p $myfunc (3)
  $1 = 1

After this patch we see the same behaviour in both C and Fortran.
I've extended the test to check that all languages can call the
convenience functions - only Fortran was broken.

When calling convenience functions in Fortran we don't need to perform
the same value preparation (passing by pointer) that we would for
calling a native function - passing the real value is fine.

gdb/ChangeLog:

	* eval.c (evaluate_subexp_standard): Handle internal functions
	during Fortran function call handling.

gdb/testsuite/ChangeLog:

	* gdb.python/py-function.exp: Check calling helper function from
	all languages.
	* lib/gdb.exp (gdb_supported_languages): New proc.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] BFD whitespace fixes
@ 2019-04-03  4:24 sergiodj+buildbot
  2019-04-03  5:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-03  4:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4b24dd1acad5c133d12aab6a575c83269336e47f ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 4b24dd1acad5c133d12aab6a575c83269336e47f

BFD whitespace fixes

	* coff-i386.c, * coff-x86_64.c, * coffgen.c, * dwarf2.c,
	* elf-m10200.c, * elf.c, * elf32-arm.c, * elf32-bfin.c,
	* elf32-csky.c, * elf32-m32r.c, * elf32-microblaze.c, * elf32-pru.c,
	* elf32-rx.c, * elf32-xgate.c, * elf64-sparc.c, * elfnn-ia64.c,
	* elfxx-riscv.c, * elfxx-sparc.c, * linker.c, * mach-o.c,
	* pe-x86_64.c, * pei-x86_64.c, * plugin.c: Whitespace fixes.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [GDB, Hurd] Fix build; 'target_waitstatus_to_string' call
@ 2019-04-04 23:54 sergiodj+buildbot
  2019-04-08 11:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-04 23:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e9f8e3f109d57c119eaaa1e56378926f7f20863f ***

Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: e9f8e3f109d57c119eaaa1e56378926f7f20863f

[GDB, Hurd] Fix build; 'target_waitstatus_to_string' call

Recent commit c29705b71a8ec966478c0dc4712194a95291c6de removed an incomplete
local implementation in favor of 'target_waitstatus_to_string' (thanks!), but
introduced a small typing error:

    In file included from [...]/gdb/gnu-nat.c:24:0:
    [...]/gdb/gnu-nat.c: In member function 'virtual ptid_t gnu_nat_target::wait(ptid_t, target_waitstatus*, int)':
    [...]/gdb/gnu-nat.c:1652:43: error: cannot convert 'target_waitstatus**' to 'const target_waitstatus*' for argument '1' to 'std::__cxx11::string target_waitstatus_to_string(const target_waitstatus*)'
           target_waitstatus_to_string (&status).c_str ());
                                               ^
    [...]/gdb/gnu-nat.h:119:32: note: in definition of macro 'debug'
            __FILE__ , __LINE__ , ##args); } while (0)
                                    ^~~~
    [...]/gdb/gnu-nat.c:1650:3: note: in expansion of macro 'inf_debug'
       inf_debug (inf, "returning ptid = %s, %s",
       ^~~~~~~~~

	gdb/
	* gnu-nat.c (gnu_nat_target::wait): Fix
	target_waitstatus_to_string call.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC disassembler: Don't emit trailing spaces
@ 2019-04-05  2:09 sergiodj+buildbot
  2019-04-09 11:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-05  2:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c2b1c2754526acff8aae2fe8f5a56c2dd11d0b7f ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: c2b1c2754526acff8aae2fe8f5a56c2dd11d0b7f

PowerPC disassembler: Don't emit trailing spaces

When an instruction has operands, the PowerPC disassembler prints
spaces after the opcode so as to line up operands.  If the operands
are all optional and all default value, then no operands are printed,
leaving trailing spaces.  This patch fixes that.

opcodes/
	* ppc-dis.c (print_insn_powerpc): Delay printing spaces after
	opcode until first operand is output.
gas/
	* testsuite/gas/ppc/476.d: Remove trailing spaces.
	* testsuite/gas/ppc/a2.d: Likewise.
	* testsuite/gas/ppc/booke.d: Likewise.
	* testsuite/gas/ppc/booke_xcoff.d: Likewise.
	* testsuite/gas/ppc/e500.d: Likewise.
	* testsuite/gas/ppc/e500mc.d: Likewise.
	* testsuite/gas/ppc/e6500.d: Likewise.
	* testsuite/gas/ppc/htm.d: Likewise.
	* testsuite/gas/ppc/power6.d: Likewise.
	* testsuite/gas/ppc/power8.d: Likewise.
	* testsuite/gas/ppc/power9.d: Likewise.
	* testsuite/gas/ppc/vle.d: Likewise.
ld/
	* testsuite/ld-powerpc/tlsexe32.d: Remove trailing spaces.
	* testsuite/ld-powerpc/tlsopt5.d: Likewise.
	* testsuite/ld-powerpc/tlsopt5_32.d: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC bc extended branch mnemonics and "y" hints
@ 2019-04-05  2:26 sergiodj+buildbot
  2019-04-09 12:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-05  2:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 66e85460855837af3a3b0224f7846c436cc7d1e0 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 66e85460855837af3a3b0224f7846c436cc7d1e0

PowerPC bc extended branch mnemonics and "y" hints

This patch fixes a problem with disassembly of branch instructions
for processors complying with PowerPC ISA versions prior to version
2.0, ie. those that use "y" bit branch taken hints.  Many of the
extended bcctr and bclr mnemonics that should have disassembled with a
"-" suffix, ie. not taken, did not display the "-" due to the ordering
in powerpc_opcodes.  I believe it's been that way from the original
85dcf36d72b commit of ppc-opc.c.

I've also added a BH field (optional) to a few opcodes.  This gives
better disassembly in raw mode, showing the branch taken hint in the
mnemonic as is done for bc.  It would be reasonable to add a BH
field to all bcctr, bclr, and bctar extended mnemonics but that runs
into a small difficulty:  Currently we print all or none of the
optional operands.  That means for example that "bgectr cr2" would
display as "bgectr cr2,0" if a BH field is added to bgectr.

	* ppc-opc.c (XLBH_MASK): Subtract off BH field from BB_MASK.
	(powerpc_opcodes): Reorder bcctr and bclr extended mnemonics
	to favour printing of "-" branch hint when using the "y" bit.
	Allow BH field on bc{ctr,lr,tar}{,l}{-,+}.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make increase_expout_size static
@ 2019-04-05  2:42 sergiodj+buildbot
  2019-04-09 14:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-05  2:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e3980ce2a9bf19ade17fdd9817765f2d1e17a0d8 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e3980ce2a9bf19ade17fdd9817765f2d1e17a0d8

Make increase_expout_size static

increase_expout_size is only called from parse.c, and probably only
should be.  This makes it "static".  Tested by rebuilding.

gdb/ChangeLog
2019-04-04  Tom Tromey  <tom@tromey.com>

	* parser-defs.h (increase_expout_size): Don't declare.
	* parse.c (increase_expout_size): Now static.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Turn parse_gdbarch into a method
@ 2019-04-05  3:47 sergiodj+buildbot
  2019-04-09 18:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-05  3:47 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fa9f5be6830e9245ee1ad1eab9725cc039d45d07 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: fa9f5be6830e9245ee1ad1eab9725cc039d45d07

Turn parse_gdbarch into a method

This changes parse_gdbarch into a method of parser_state.  This patch
was written by a script.

gdb/ChangeLog
2019-04-04  Tom Tromey  <tom@tromey.com>

	* rust-exp.y: Replace "parse_gdbarch" with method call.
	* parse.c (write_dollar_variable, insert_type_address_space):
	Replace "parse_gdbarch" with method call.
	* p-exp.y (parse_type, yylex): Replace "parse_gdbarch" with method
	call.
	* objc-lang.c (end_msglist): Replace "parse_gdbarch" with method
	call.
	* m2-exp.y (parse_type, parse_m2_type, yylex): Replace
	"parse_gdbarch" with method call.
	* go-exp.y (parse_type, classify_name): Replace "parse_gdbarch"
	with method call.
	* f-exp.y (parse_type, parse_f_type, yylex): Replace
	"parse_gdbarch" with method call.
	* d-exp.y (parse_type, parse_d_type, lex_one_token): Replace
	"parse_gdbarch" with method call.
	* c-exp.y (parse_type, parse_number, classify_name): Replace
	"parse_gdbarch" with method call.
	* ada-lex.l: Replace "parse_gdbarch" with method call.
	* ada-exp.y (parse_type, find_primitive_type, type_char)
	(type_system_address): Replace "parse_gdbarch" with method call.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move expression_context_* globals to parser_state
@ 2019-04-05  4:17 sergiodj+buildbot
  2019-04-09 23:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-05  4:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1e58a4a4db997cf09315c22f3da725d1da7f9ee7 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1e58a4a4db997cf09315c22f3da725d1da7f9ee7

Move expression_context_* globals to parser_state

This moves the expression_context_block and expression_context_pc
globals to be members of parser_state and updates the parsers.

gdb/ChangeLog
2019-04-04  Tom Tromey  <tom@tromey.com>

	* rust-exp.y (rust_parser::crate_name, rust_parser::super_name)
	(rust_parser::convert_ast_to_type)
	(rust_parser::convert_ast_to_expression, rust_lex_tests): Update.
	* parser-defs.h (struct parser_state) <parser_state>: Add
	parameters.  Initialize new members.
	<expression_context_block, expression_context_pc>: New members.
	* parse.c (expression_context_block, expression_context_pc):
	Remove globals.
	(parse_exp_in_context): Update.
	* p-exp.y: Update all rules.
	(yylex): Update.
	* m2-exp.y: Update all rules.
	(yylex): Update.
	* go-exp.y (yylex): Update.
	* f-exp.y (yylex): Update.
	* d-exp.y: Update all rules.
	(yylex): Update.
	* c-exp.y: Update all rules.
	(lex_one_token, classify_name, yylex, c_parse): Update.
	* ada-exp.y (write_var_or_type, write_name_assoc): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove paren_depth global
@ 2019-04-05  4:17 sergiodj+buildbot
  2019-04-10  1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-05  4:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 28aaf3fdf9562c018dcf6ab4d0a4c644fff8d696 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 28aaf3fdf9562c018dcf6ab4d0a4c644fff8d696

Remove paren_depth global

This removes the "paren_depth" global.  In most cases, it is made into
a static global in a given parser.  I consider this a slight
improvement, because it makes it clear that the variable isn't used
for communication between different modules of gdb.  The one exception
is the Rust parser, which already incorporates all local state into a
transient object; in this case the parser depth is now a member.

gdb/ChangeLog
2019-04-04  Tom Tromey  <tom@tromey.com>

	* rust-exp.y (struct rust_parser) <paren_depth>: New member.
	(rustyylex, rust_lex_test_init, rust_lex_test_one)
	(rust_lex_test_sequence, rust_lex_test_push_back): Update.
	* parser-defs.h (paren_depth): Don't declare.
	* parse.c (paren_depth): Remove global.
	(parse_exp_in_context): Update.
	* p-exp.y (paren_depth): New global.
	(pascal_parse): Initialize it.
	* m2-exp.y (paren_depth): New global.
	(m2_parse): Initialize it.
	* go-exp.y (paren_depth): New global.
	(go_parse): Initialize it.
	* f-exp.y (paren_depth): New global.
	(f_parse): Initialize it.
	* d-exp.y (paren_depth): New global.
	(d_parse): Initialize it.
	* c-exp.y (paren_depth): New global.
	(c_parse): Initialize it.
	* ada-lex.l (paren_depth): New global.
	(lexer_init): Initialize it.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move lexptr and prev_lexptr to parser_state
@ 2019-04-05  4:48 sergiodj+buildbot
  2019-04-10  5:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-05  4:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5776fca307b8af3d852525b77e9b917a9aa97370 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5776fca307b8af3d852525b77e9b917a9aa97370

Move lexptr and prev_lexptr to parser_state

This removes the lexptr and prev_lexptr globals, in favor of members
of parser_state.  prev_lexptr could be isolated to each parser, but
since every parser uses it, that did not seem necessary.

gdb/ChangeLog
2019-04-04  Tom Tromey  <tom@tromey.com>

	* rust-exp.y (struct rust_parser) <lex_hex, lex_escape,
	lex_operator, push_back>: New methods.
	Update all rules.
	(rust_parser::lex_hex, lex_escape): Rename and update.
	(rust_parser::lex_string, rust_parser::lex_identifier): Update.
	(rust_parser::lex_operator): Rename and update.
	(rust_parser::lex_number, rustyylex, rustyyerror)
	(rust_lex_test_init, rust_lex_test_sequence)
	(rust_lex_test_push_back, rust_lex_tests): Update.
	* parser-defs.h (struct parser_state) <parser_state>: Add "input"
	parameter.
	<lexptr, prev_lexptr>: New members.
	(lexptr, prev_lexptr): Don't declare.
	* parse.c (lexptr, prev_lexptr): Remove globals.
	(parse_exp_in_context): Update.
	* p-exp.y (yylex, yyerror): Update.
	* m2-exp.y (parse_number, yylex, yyerror): Update.
	* go-exp.y (lex_one_token, yyerror): Update.
	* f-exp.y (match_string_literal, yylex, yyerror): Update.
	* d-exp.y (lex_one_token, yyerror): Update.
	* c-exp.y (scan_macro_expansion, finished_macro_expansion)
	(lex_one_token, yyerror): Update.
	* ada-lex.l (YY_INPUT): Update.
	(rewind_to_char): Update.
	* ada-exp.y (yyerror): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move innermost_block_tracker global to parse_state
@ 2019-04-05  5:50 sergiodj+buildbot
  2019-04-10 11:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-05  5:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 699bd4cfa8895d0767d491a3e44ac09d3f4d1801 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 699bd4cfa8895d0767d491a3e44ac09d3f4d1801

Move innermost_block_tracker global to parse_state

This changes the parsing API so that callers that are interested in
tracking the innermost block must instantiate an
innermost_block_tracker and pass it in.  Then, a pointer to this
object is stored in the parser_state.

2019-04-04  Tom Tromey  <tom@tromey.com>

	* varobj.c (varobj_create): Update.
	* rust-exp.y (struct rust_parser) <update_innermost_block,
	lookup_symbol>: New methods.
	(rust_parser::update_innermost_block, rust_parser::lookup_symbol):
	Rename.
	(rust_parser::rust_lookup_type)
	(rust_parser::convert_ast_to_expression, rust_lex_tests): Update.
	* printcmd.c (display_command, do_one_display): Update.
	* parser-defs.h (struct parser_state) <parser_state>: Add
	"tracker" parameter.
	(block_tracker): New member.
	(class innermost_block_tracker) <innermost_block_tracker>: Add
	"types" parameter.
	<reset>: Remove method.
	(innermost_block): Don't declare.
	(null_post_parser): Update.
	* parse.c (innermost_block): Remove global.
	(write_dollar_variable): Update.
	(parse_exp_1, parse_exp_in_context): Add "tracker" parameter.
	Remove "tracker_types" parameter.
	(parse_expression): Add "tracker" parameter.
	(parse_expression_for_completion): Update.
	(null_post_parser): Add "tracker" parameter.
	* p-exp.y: Update rules.
	* m2-exp.y: Update rules.
	* language.h (struct language_defn) <la_post_parser>: Add
	"tracker" parameter.
	* go-exp.y: Update rules.
	* f-exp.y: Update rules.
	* expression.h (parse_expression, parse_exp_1): Add "tracker"
	parameter.
	* d-exp.y: Update rules.
	* c-exp.y: Update rules.
	* breakpoint.c (set_breakpoint_condition): Create an
	innermost_block_tracker.
	(watch_command_1): Likewise.
	* ada-lang.c (resolve): Add "tracker" parameter.
	(resolve_subexp): Likewise.
	* ada-exp.y (write_var_from_sym): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use linux_get_auxv to get AT_PHDR in the PPC stub
@ 2019-04-05 17:49 sergiodj+buildbot
  2019-04-10 15:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 17:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0570503dd31bc20294e228339fcbdd39b19608cc ***

Author: Pedro Franco de Carvalho <pedromfc@linux.ibm.com>
Branch: master
Commit: 0570503dd31bc20294e228339fcbdd39b19608cc

Use linux_get_auxv to get AT_PHDR in the PPC stub

This patch fixes a build error due to a call to ppc_get_auxv that was
left over after linux_get_hwcap and linux_get_hwcap2 were introduced
in:

974c89e0882ddb03e294eca76a9e3d3bef90eacf gdbserver: Add
linux_get_hwcap

Because the missing call fetched AT_PHDR and not AT_HWCAP,
linux_get_auxv is now visible.

This use also required ppc_get_auxv to return a status variable
indicating that the AT_PHDR entry was not found separately from the
actual value of of the auxv entry.  Therefore, the new linux_get_auxv
function is changed to return a status variable and write the entry
value to a pointer passed as an argument.

Note that linux_get_hwcap and linux_get_hwcap2 still use the return
value as both an indicator of that the entry wasn't found and as the
actual value of the entry.

gdb/gdbserver/ChangeLog:
2019-04-05  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>

	* linux-low.c (linux_get_auxv): Remove static.  Return auxv entry
	value in argument pointer, return 1 if the entry is found and 0
	otherwise.  Move comment.
	(linux_get_hwcap, linux_get_hwcap2): Use modified linux_get_auxv.
	* linux-low.h (linux_get_auxv): Declare.
	* linux-ppc-low.c (is_elfv2_inferior): Use linux_get_auxv.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86: Move x86-specific linker options to elf_linker_x86_params
@ 2019-04-06 14:44 sergiodj+buildbot
  2019-04-10 20:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-06 14:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5b9c07b2782fb9368f06c2561b7329c384ec5da0 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 5b9c07b2782fb9368f06c2561b7329c384ec5da0

x86: Move x86-specific linker options to elf_linker_x86_params

Remove x86-specific linker options from bfd_link_info and put them in
elf_linker_x86_params.  Add _bfd_elf_linker_x86_set_options to pass
x86-specific linker options from ld to bfd.

bfd/

	* elf-linker-x86.h: New file.
	* elf32-i386.c (elf_i386_convert_load_reloc): Use htab->params
	to get x86-specific linker options.
	* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Likewise.
	(elf_x86_64_check_relocs): Likewise.
	(elf_x86_64_relocate_section): Likewise.
	(elf_x86_64_link_setup_gnu_properties): Likewise.
	* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Likewise.
	(_bfd_x86_elf_link_setup_gnu_properties): Likewise.
	(_bfd_elf_linker_x86_set_options): New function.
	* elfxx-x86.h: Include "elf-linker-x86.h".
	(elf_x86_link_hash_table): Add params.

include/

	* bfdlink.h (bfd_link_info): Remove x86-specific linker options.

ld/

	* Makefile.am (ELF_X86_DEPS): Add $(srcdir)/emultempl/elf-x86.em.
	(eelf_i386_sol2.c): Also depend on
	$(srcdir)/emultempl/solaris2-x86.em.
	(eelf_x86_64_sol2.c): Likewise.
	* Makefile.in: Regenerated.
	* emulparams/call_nop.sh: Set x86-specific linker options via
	params.
	* emulparams/cet.sh: Likewise.
	* emulparams/reloc_overflow.sh: Likewise.
	* emulparams/elf32_x86_64.sh (EXTRA_EM_FILE): New.  Set to
	"elf-x86".
	* emulparams/elf_i386.sh: Likewise.
	* emulparams/elf_i386_be.sh: Likewise.
	* emulparams/elf_i386_chaos.sh: Likewise.
	* emulparams/elf_i386_ldso.sh: Likewise.
	* emulparams/elf_i386_vxworks.sh: Likewise.
	* emulparams/elf_iamcu.sh: Likewise.
	* emulparams/elf_k1om.sh: Likewise.
	* emulparams/elf_l1om.sh: Likewise.
	* emulparams/elf_x86_64.sh: Likewise.
	* emulparams/elf_i386_sol2.sh (EXTRA_EM_FILE): Changed to
	"solaris2-x86".
	* emulparams/elf_x86_64_sol2.sh: Likewise.
	* emultempl/elf-x86.em: New file.
	* emultempl/solaris2-x86.em: Likewise.
	* emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Don't
	set link_info.call_nop_byte.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Merge libiberty from gcc
@ 2019-04-07 13:25 sergiodj+buildbot
  2019-04-11  6:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-07 13:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 07ffcfecac22d21774a110db0f65f0387c8f1102 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 07ffcfecac22d21774a110db0f65f0387c8f1102

Merge libiberty from gcc


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24421, Wrong brackets in opcodes/arm-dis.c
@ 2019-04-07 13:40 sergiodj+buildbot
  2019-04-11  8:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-07 13:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT dffaa15c481cea4081732d616334e24abc557fd1 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: dffaa15c481cea4081732d616334e24abc557fd1

PR24421, Wrong brackets in opcodes/arm-dis.c

	PR 24421
	* arm-dis.c (print_insn_coprocessor): Correct bracket placement.
	(print_insn_neon, print_insn_arm): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix x86_64-rdos build fail
@ 2019-04-08  4:59 sergiodj+buildbot
  2019-04-11 11:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-08  4:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5f2a6b85105b51f2963aaeb1212c724cab678050 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 5f2a6b85105b51f2963aaeb1212c724cab678050

Fix x86_64-rdos build fail

x86_64-rdos is one of the few x86_64 targets that is 64-bit only and
the x86_64 configure entries don't depend on elf-vxworks.lo.  This
results in undefined references from elfxx-x86.o.

	* configure.ac (elfxx_x86): Define and use.
	* configure: Regenerate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Simplify exception handling
@ 2019-04-08 15:37 sergiodj+buildbot
  2019-04-11 13:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 15:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c5c10118216867e133c132b4f46e19fb6aa9258a ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: c5c10118216867e133c132b4f46e19fb6aa9258a

Simplify exception handling

Now that cleanups have been removed, TRY/CATCH can't be SJLJ-based any
more.  This patch simplifies the exception handling code, by removing
the non-working variants.

Note that the "pure" C++ exception handling code is removed as well; I
think the route forward must be to change exceptions to be
self-destructing, so that try_scope_depth can simply be removed.

Some longjmp-based code remains, as it is needed to throw an exception
through readline.

gdb/ChangeLog
2019-04-08  Tom Tromey  <tom@tromey.com>

	* common/common-exceptions.h (GDB_XCPT_SJMP, GDB_XCPT_TRY)
	(GDB_XCPT_RAW_TRY, GDB_XCPT): Remove.
	(TRY, CATCH, END_CATCH): Remove some definitions.
	* common/common-exceptions.c: Don't use GDB_XCPT.
	(catcher_list_size): Remove.
	(throw_exception, throw_it): Simplify.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make exceptions use std::string and be self-managing
@ 2019-04-08 15:53 sergiodj+buildbot
  2019-04-11 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 15:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3d6e9d2336c9ffcedb10f89631981a23dd518e8e ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 3d6e9d2336c9ffcedb10f89631981a23dd518e8e

Make exceptions use std::string and be self-managing

This changes the exception's "message" member to be a shared_ptr
wrapping a std::string.  This allows removing the stack of exception
messages, because now exceptions will self-destruct when needed.  This
also adds a noexcept copy constructor and operator= to gdb_exception,
plus a "what" method.

gdb/ChangeLog
2019-04-08  Tom Tromey  <tom@tromey.com>

	* xml-support.c (gdb_xml_parser::parse): Update.
	* x86-linux-nat.c (x86_linux_nat_target::enable_btrace): Update.
	* value.c (show_convenience): Update.
	* unittests/cli-utils-selftests.c (test_number_or_range_parser)
	(test_parse_flags_qcs): Update.
	* thread.c (thr_try_catch_cmd): Update.
	* target.c (target_translate_tls_address): Update.
	* stack.c (print_frame_arg, read_frame_local, read_frame_arg)
	(info_frame_command_core, frame_apply_command_count): Update.
	* rust-exp.y (rust_lex_exception_test): Update.
	* riscv-tdep.c (riscv_print_one_register_info): Update.
	* remote.c (remote_target::enable_btrace): Update.
	* record-btrace.c (record_btrace_enable_warn): Update.
	* python/py-utils.c (gdbpy_convert_exception): Update.
	* printcmd.c (do_one_display, print_variable_and_value): Update.
	* mi/mi-main.c (mi_print_exception): Update.
	* mi/mi-interp.c (mi_cmd_interpreter_exec): Use SCOPE_EXIT.
	* mi/mi-cmd-stack.c (list_arg_or_local): Update.
	* linux-nat.c (linux_nat_target::attach): Update.
	* linux-fork.c (class scoped_switch_fork_info): Update.
	* infrun.c (displaced_step_prepare): Update.
	* infcall.c (call_function_by_hand_dummy): Update.
	* guile/scm-exception.c (gdbscm_scm_from_gdb_exception): Update.
	* gnu-v3-abi.c (print_one_vtable): Update.
	* frame.c (get_prev_frame_always): Update.
	* f-valprint.c (info_common_command_for_block): Update.
	* exec.c (try_open_exec_file): Update.
	* exceptions.c (print_exception, exception_print)
	(exception_fprintf, exception_print_same): Update.
	* dwarf2-frame.c (dwarf2_build_frame_info): Update.
	* dwarf-index-cache.c (index_cache::store)
	(index_cache::lookup_gdb_index): Update.
	* darwin-nat.c (maybe_cache_shell): Update.
	* cp-valprint.c (cp_print_value_fields): Update.
	* compile/compile-cplus-symbols.c (gcc_cplus_convert_symbol)
	(gcc_cplus_symbol_address): Update.
	* compile/compile-c-symbols.c (gcc_convert_symbol)
	(gcc_symbol_address, generate_c_for_for_one_variable): Update.
	* common/selftest.c: Update.
	* common/common-exceptions.h (struct gdb_exception) <message>: Now
	a std::string.
	(exception_try_scope_entry, exception_try_scope_exit): Don't
	declare.
	(struct exception_try_scope): Remove.
	(TRY): Don't use exception_try_scope.
	(struct gdb_exception): Add constructor, operator=.
	<what>: New method.
	(struct gdb_exception_RETURN_MASK_ALL)
	(struct gdb_exception_RETURN_MASK_ERROR)
	(struct gdb_exception_RETURN_MASK_QUIT): Add constructor.
	(struct gdb_quit_bad_alloc): Update.
	* common/common-exceptions.c (exception_none): Change
	initializer.
	(struct catcher) <state, exception>: Initialize inline.
	<prev>: Remove member.
	(current_catcher): Remove.
	(catchers): New global.
	(exceptions_state_mc_init): Simplify.
	(catcher_pop): Remove.
	(exceptions_state_mc, exceptions_state_mc_catch): Update.
	(try_scope_depth, exception_try_scope_entry)
	(exception_try_scope_exit): Remove.
	(throw_exception_sjlj): Update.
	(exception_messages, exception_messages_size): Remove.
	(throw_it): Simplify.
	(gdb_exception_sliced_copy): Remove.
	(throw_exception_cxx): Update.
	* cli/cli-script.c (script_from_file): Update.
	* breakpoint.c (insert_bp_location, update_breakpoint_locations):
	Update.
	* ada-valprint.c (ada_val_print): Update.
	* ada-lang.c (ada_to_fixed_type_1, ada_exception_name_addr)
	(create_excep_cond_exprs): Update.

gdb/gdbserver/ChangeLog
2019-04-08  Tom Tromey  <tom@tromey.com>

	* server.c (handle_btrace_general_set, handle_qxfer_btrace)
	(handle_qxfer_btrace_conf, detach_or_kill_for_exit_cleanup)
	(captured_main, main): Update.
	* gdbreplay.c (main): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Rewrite TRY/CATCH
@ 2019-04-08 16:39 sergiodj+buildbot
  2019-04-11 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 16:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a70b814420059e1f2de2130d532ddd7b2b2500fc ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: a70b814420059e1f2de2130d532ddd7b2b2500fc

Rewrite TRY/CATCH

This rewrites gdb's TRY/CATCH to plain C++ try/catch.  The patch was
largely written by script, though one change (to a comment in
common-exceptions.h) was reverted by hand.

gdb/ChangeLog
2019-04-08  Tom Tromey  <tom@tromey.com>

	* xml-support.c: Use C++ exception handling.
	* x86-linux-nat.c: Use C++ exception handling.
	* windows-nat.c: Use C++ exception handling.
	* varobj.c: Use C++ exception handling.
	* value.c: Use C++ exception handling.
	* valprint.c: Use C++ exception handling.
	* valops.c: Use C++ exception handling.
	* unittests/parse-connection-spec-selftests.c: Use C++ exception
	handling.
	* unittests/cli-utils-selftests.c: Use C++ exception handling.
	* typeprint.c: Use C++ exception handling.
	* tui/tui.c: Use C++ exception handling.
	* tracefile-tfile.c: Use C++ exception handling.
	* top.c: Use C++ exception handling.
	* thread.c: Use C++ exception handling.
	* target.c: Use C++ exception handling.
	* symmisc.c: Use C++ exception handling.
	* symfile-mem.c: Use C++ exception handling.
	* stack.c: Use C++ exception handling.
	* sparc64-linux-tdep.c: Use C++ exception handling.
	* solib.c: Use C++ exception handling.
	* solib-svr4.c: Use C++ exception handling.
	* solib-spu.c: Use C++ exception handling.
	* solib-frv.c: Use C++ exception handling.
	* solib-dsbt.c: Use C++ exception handling.
	* selftest-arch.c: Use C++ exception handling.
	* s390-tdep.c: Use C++ exception handling.
	* rust-lang.c: Use C++ exception handling.
	* rust-exp.y: Use C++ exception handling.
	* rs6000-tdep.c: Use C++ exception handling.
	* rs6000-aix-tdep.c: Use C++ exception handling.
	* riscv-tdep.c: Use C++ exception handling.
	* remote.c: Use C++ exception handling.
	* remote-fileio.c: Use C++ exception handling.
	* record-full.c: Use C++ exception handling.
	* record-btrace.c: Use C++ exception handling.
	* python/python.c: Use C++ exception handling.
	* python/py-value.c: Use C++ exception handling.
	* python/py-utils.c: Use C++ exception handling.
	* python/py-unwind.c: Use C++ exception handling.
	* python/py-type.c: Use C++ exception handling.
	* python/py-symbol.c: Use C++ exception handling.
	* python/py-record.c: Use C++ exception handling.
	* python/py-record-btrace.c: Use C++ exception handling.
	* python/py-progspace.c: Use C++ exception handling.
	* python/py-prettyprint.c: Use C++ exception handling.
	* python/py-param.c: Use C++ exception handling.
	* python/py-objfile.c: Use C++ exception handling.
	* python/py-linetable.c: Use C++ exception handling.
	* python/py-lazy-string.c: Use C++ exception handling.
	* python/py-infthread.c: Use C++ exception handling.
	* python/py-inferior.c: Use C++ exception handling.
	* python/py-gdb-readline.c: Use C++ exception handling.
	* python/py-framefilter.c: Use C++ exception handling.
	* python/py-frame.c: Use C++ exception handling.
	* python/py-finishbreakpoint.c: Use C++ exception handling.
	* python/py-cmd.c: Use C++ exception handling.
	* python/py-breakpoint.c: Use C++ exception handling.
	* python/py-arch.c: Use C++ exception handling.
	* printcmd.c: Use C++ exception handling.
	* ppc-linux-tdep.c: Use C++ exception handling.
	* parse.c: Use C++ exception handling.
	* p-valprint.c: Use C++ exception handling.
	* objc-lang.c: Use C++ exception handling.
	* mi/mi-main.c: Use C++ exception handling.
	* mi/mi-interp.c: Use C++ exception handling.
	* mi/mi-cmd-stack.c: Use C++ exception handling.
	* mi/mi-cmd-break.c: Use C++ exception handling.
	* main.c: Use C++ exception handling.
	* linux-thread-db.c: Use C++ exception handling.
	* linux-tdep.c: Use C++ exception handling.
	* linux-nat.c: Use C++ exception handling.
	* linux-fork.c: Use C++ exception handling.
	* linespec.c: Use C++ exception handling.
	* language.c: Use C++ exception handling.
	* jit.c: Use C++ exception handling.
	* infrun.c: Use C++ exception handling.
	* infcmd.c: Use C++ exception handling.
	* infcall.c: Use C++ exception handling.
	* inf-loop.c: Use C++ exception handling.
	* i386-tdep.c: Use C++ exception handling.
	* i386-linux-tdep.c: Use C++ exception handling.
	* guile/scm-value.c: Use C++ exception handling.
	* guile/scm-type.c: Use C++ exception handling.
	* guile/scm-symtab.c: Use C++ exception handling.
	* guile/scm-symbol.c: Use C++ exception handling.
	* guile/scm-pretty-print.c: Use C++ exception handling.
	* guile/scm-ports.c: Use C++ exception handling.
	* guile/scm-param.c: Use C++ exception handling.
	* guile/scm-math.c: Use C++ exception handling.
	* guile/scm-lazy-string.c: Use C++ exception handling.
	* guile/scm-frame.c: Use C++ exception handling.
	* guile/scm-disasm.c: Use C++ exception handling.
	* guile/scm-cmd.c: Use C++ exception handling.
	* guile/scm-breakpoint.c: Use C++ exception handling.
	* guile/scm-block.c: Use C++ exception handling.
	* guile/guile-internal.h: Use C++ exception handling.
	* gnu-v3-abi.c: Use C++ exception handling.
	* gdbtypes.c: Use C++ exception handling.
	* frame.c: Use C++ exception handling.
	* frame-unwind.c: Use C++ exception handling.
	* fbsd-tdep.c: Use C++ exception handling.
	* f-valprint.c: Use C++ exception handling.
	* exec.c: Use C++ exception handling.
	* event-top.c: Use C++ exception handling.
	* event-loop.c: Use C++ exception handling.
	* eval.c: Use C++ exception handling.
	* dwarf2read.c: Use C++ exception handling.
	* dwarf2loc.c: Use C++ exception handling.
	* dwarf2-frame.c: Use C++ exception handling.
	* dwarf2-frame-tailcall.c: Use C++ exception handling.
	* dwarf-index-write.c: Use C++ exception handling.
	* dwarf-index-cache.c: Use C++ exception handling.
	* dtrace-probe.c: Use C++ exception handling.
	* disasm-selftests.c: Use C++ exception handling.
	* darwin-nat.c: Use C++ exception handling.
	* cp-valprint.c: Use C++ exception handling.
	* cp-support.c: Use C++ exception handling.
	* cp-abi.c: Use C++ exception handling.
	* corelow.c: Use C++ exception handling.
	* completer.c: Use C++ exception handling.
	* compile/compile-object-run.c: Use C++ exception handling.
	* compile/compile-object-load.c: Use C++ exception handling.
	* compile/compile-cplus-symbols.c: Use C++ exception handling.
	* compile/compile-c-symbols.c: Use C++ exception handling.
	* common/selftest.c: Use C++ exception handling.
	* common/new-op.c: Use C++ exception handling.
	* cli/cli-script.c: Use C++ exception handling.
	* cli/cli-interp.c: Use C++ exception handling.
	* cli/cli-cmds.c: Use C++ exception handling.
	* c-varobj.c: Use C++ exception handling.
	* btrace.c: Use C++ exception handling.
	* breakpoint.c: Use C++ exception handling.
	* break-catch-throw.c: Use C++ exception handling.
	* arch-utils.c: Use C++ exception handling.
	* amd64-tdep.c: Use C++ exception handling.
	* ada-valprint.c: Use C++ exception handling.
	* ada-typeprint.c: Use C++ exception handling.
	* ada-lang.c: Use C++ exception handling.
	* aarch64-tdep.c: Use C++ exception handling.

gdb/gdbserver/ChangeLog
2019-04-08  Tom Tromey  <tom@tromey.com>

	* server.c: Use C++ exception handling.
	* linux-low.c: Use C++ exception handling.
	* gdbreplay.c: Use C++ exception handling.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove some now-dead exception code
@ 2019-04-08 16:39 sergiodj+buildbot
  2019-04-11 20:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 16:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d272eb370a4c086a1d0f86a7a94e89328ec8d97e ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d272eb370a4c086a1d0f86a7a94e89328ec8d97e

Remove some now-dead exception code

After the rewriting to use try/catch, some of the exception code is
now unused.  This patch removes that code.

gdb/ChangeLog
2019-04-08  Tom Tromey  <tom@tromey.com>

	* common/common-exceptions.h (exception_rethrow): Don't declare.
	(TRY_SJLJ): Update comment.
	(TRY, CATCH, END_CATCH): Remove.
	* common/common-exceptions.c (exception_rethrow): Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Replace throw_exception with throw in some cases
@ 2019-04-08 17:11 sergiodj+buildbot
  2019-04-12  0:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 17:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT eedc3f4f0a02c9774277bd1a34aab6ebdc32f797 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: eedc3f4f0a02c9774277bd1a34aab6ebdc32f797

Replace throw_exception with throw in some cases

This replaces throw_exception with "throw;" when possible.  This was
written by script.  The rule that is followed is that uses of the
form:

   catch (... &name)
     {
       ...
       throw_exception (name);
     }

... can be rewritten.  This should always be safe, because exceptions
are caught by const reference, and therefore can't be modified in the
body of the catch.

gdb/ChangeLog
2019-04-08  Tom Tromey  <tom@tromey.com>

	* valops.c (value_rtti_indirect_type): Replace throw_exception
	with throw.
	* tracefile-tfile.c (tfile_target_open): Replace throw_exception
	with throw.
	* thread.c (thr_try_catch_cmd): Replace throw_exception with
	throw.
	* target.c (target_translate_tls_address): Replace throw_exception
	with throw.
	* stack.c (frame_apply_command_count): Replace throw_exception
	with throw.
	* solib-spu.c (append_ocl_sos): Replace throw_exception with
	throw.
	* s390-tdep.c (s390_frame_unwind_cache): Replace throw_exception
	with throw.
	* rs6000-tdep.c (rs6000_frame_cache)
	(rs6000_epilogue_frame_cache): Replace throw_exception with throw.
	* remote.c: Replace throw_exception with throw.
	* record-full.c (record_full_message, record_full_wait_1)
	(record_full_restore): Replace throw_exception with throw.
	* record-btrace.c:
	(get_thread_current_frame_id, record_btrace_start_replaying)
	(cmd_record_btrace_bts_start, cmd_record_btrace_pt_start)
	(cmd_record_btrace_start): Replace throw_exception with throw.
	* parse.c (parse_exp_in_context_1): Replace throw_exception with
	throw.
	* linux-nat.c (detach_one_lwp, linux_resume_one_lwp)
	(resume_stopped_resumed_lwps): Replace throw_exception with throw.
	* linespec.c:
	(find_linespec_symbols): Replace throw_exception with throw.
	* infrun.c (displaced_step_prepare, resume): Replace
	throw_exception with throw.
	* infcmd.c (post_create_inferior): Replace throw_exception with
	throw.
	* inf-loop.c (inferior_event_handler): Replace throw_exception
	with throw.
	* i386-tdep.c (i386_frame_cache, i386_epilogue_frame_cache)
	(i386_sigtramp_frame_cache): Replace throw_exception with throw.
	* frame.c (frame_unwind_pc, get_prev_frame_if_no_cycle)
	(get_prev_frame_always, get_frame_pc_if_available)
	(get_frame_address_in_block_if_available, get_frame_language):
	Replace throw_exception with throw.
	* frame-unwind.c (frame_unwind_try_unwinder): Replace
	throw_exception with throw.
	* eval.c (fetch_subexp_value, evaluate_var_value)
	(evaluate_funcall, evaluate_subexp_standard): Replace
	throw_exception with throw.
	* dwarf2loc.c (call_site_find_chain)
	(dwarf2_evaluate_loc_desc_full, dwarf2_locexpr_baton_eval):
	Replace throw_exception with throw.
	* dwarf2-frame.c (dwarf2_frame_cache): Replace throw_exception
	with throw.
	* darwin-nat.c (darwin_attach_pid): Replace throw_exception with
	throw.
	* cp-abi.c (baseclass_offset): Replace throw_exception with throw.
	* completer.c (complete_line_internal): Replace throw_exception
	with throw.
	* compile/compile-object-run.c (compile_object_run): Replace
	throw_exception with throw.
	* cli/cli-script.c (process_next_line): Replace throw_exception
	with throw.
	* btrace.c (btrace_compute_ftrace_pt, btrace_compute_ftrace)
	(btrace_enable, btrace_maint_update_pt_packets): Replace
	throw_exception with throw.
	* breakpoint.c (create_breakpoint, save_breakpoints): Replace
	throw_exception with throw.
	* break-catch-throw.c (re_set_exception_catchpoint): Replace
	throw_exception with throw.
	* amd64-tdep.c (amd64_frame_cache, amd64_sigtramp_frame_cache)
	(amd64_epilogue_frame_cache): Replace throw_exception with throw.
	* aarch64-tdep.c (aarch64_make_prologue_cache)
	(aarch64_make_stub_cache): Replace throw_exception with throw.

gdb/gdbserver/ChangeLog
2019-04-08  Tom Tromey  <tom@tromey.com>

	* linux-low.c (linux_detach_one_lwp): Replace throw_exception with
	throw.
	(linux_resume_one_lwp): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86: Remove i386-*-kaos* and i386-*-chaos targets
@ 2019-04-08 19:19 sergiodj+buildbot
  2019-04-12  3:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 19:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3ae61bb67d62eb53d110835b8b7c3a289e6bce45 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 3ae61bb67d62eb53d110835b8b7c3a289e6bce45

x86: Remove i386-*-kaos* and i386-*-chaos targets

Remove i386-*-kaos* and i386-*-chaos targets since they are no longer
supported by config.sub:

$ .../config.sub i386-kaos
Invalid configuration `i386-kaos': system `kaos' not recognized
$ .../config.sub i386-chaos
Invalid configuration `i386-chaos': system `chaos' not recognized
$

bfd/

	* config.bfd: Remove i[3-7]86-*-kaos* and i[3-7]86-*-chaos targets.

gas/

	* configure.tgt: Remove i386-*-kaos* and i386-*-chaos targets.
	* testsuite/gas/i386/i386.exp: Remove *-*-caos* and "*-*-kaos*
	check.

ld/

	* Makefile.am (ALL_EMULATION_SOURCES): Remove eelf_i386_chaos.c.
	(eelf_i386_chaos.c): Removed.
	* Makefile.in: Regenerated.
	* configure.tgt: Remove i[3-7]86-*-kaos*.
	* emulparams/elf_i386_chaos.sh: Removed.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Some gdb_exception{,error,quit} tweaks
@ 2019-04-08 19:35 sergiodj+buildbot
  2019-04-12  5:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 19:35 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 56be6ea89cdf94078d5dff3734b8c1970dbf52fa ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 56be6ea89cdf94078d5dff3734b8c1970dbf52fa

Some gdb_exception{,error,quit} tweaks

- Explicitly include <string> for std::string.

- Use std::make_shared to construct gdb_exception::message instead of
  operator new, avoiding one heap allocation (2 instead of 3).  Add
  'const char *fmt, va_list ap' parameters to
  gdb_exception{,error,quit}'s ctors, and do the std::make_shared in
  the gdb_exception ctor.

- gdb_exception_error's constructor does not need to have an 'enum
  return_reason' parameter, since it is always RETURN_ERROR, by
  definition.

- Similarly, gdb_exception_quit's contructor does not need to have
  'enum return_reason'/'enum errors' parameters.

- In the gdb_exception_{quit,_error} ctors that take a gdb_exception
  as argument, assert that they're being passed a gdb_exception object
  of the right 'reason'.

gdb/ChangeLog:
2019-04-08  Pedro Alves  <palves@redhat.com>

	* common/common-exceptions.c (throw_exception): Don't create
	named object to throw; throw directly.
	(throw_it): Likewise.  Don't initialize gdb_exception::message
	here, with new; pass FMT and AP to the ctor instead.
	* common/common-exceptions.h: Include <string>.
	(gdb_exception::gdb_exception(enum return_reason, enum errors,
	const char *, va_list)): New ctor.  Use std::make_shared.
	(gdb_exception_error::gdb_exception_error(enum return_reason, enum
	errors)): Delete.
	(gdb_exception_error::gdb_exception_error(enum errors, const char
	*, va_list)): New.
	(gdb_exception_error::gdb_exception_error(const gdb_exception &)):
	Add assertion.
	(gdb_exception_quit::gdb_exception_quit(enum return_reason, enum
	errors)): Delete.
	(gdb_exception_quit::gdb_exception_quit(const char *, va_list)): New.
	(gdb_exception_quit::gdb_exception_quit(const gdb_exception &)):
	Add assertion.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add python method InferiorThread.handle
@ 2019-04-09  4:09 sergiodj+buildbot
  2019-04-12 10:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-09  4:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cf63b0162b6cbf74bdb056609d1ad777c6d48954 ***

Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: cf63b0162b6cbf74bdb056609d1ad777c6d48954

Add python method InferiorThread.handle

gdb/ChangeLog:

	* python/py-infthread.c (thpy_thread_handle): New function.
	(thread_object_methods): Register thpy_thread_handle.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Tests for gdb.InferiorThread.handle
@ 2019-04-09  4:40 sergiodj+buildbot
  2019-04-12 13:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-09  4:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 947210e5690c61b395ccd887bc58bcb45ccd357b ***

Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: 947210e5690c61b395ccd887bc58bcb45ccd357b

Tests for gdb.InferiorThread.handle

gdb/testsuite/ChangeLog:

	* gdb.python/py-thrhandle.exp: Add tests for
	gdb.InferiorThread.handle.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [MIPS] Add RDHWR with the SEL field for MIPS R6.
@ 2019-04-09 10:15 sergiodj+buildbot
  2019-04-12 17:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 10:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7e96e219a4fc703282ea5b0cc8845a96c01ca030 ***

Author: Robert Suchanek <robert.suchanek@mips.com>
Branch: master
Commit: 7e96e219a4fc703282ea5b0cc8845a96c01ca030

[MIPS] Add RDHWR with the SEL field for MIPS R6.

In Release 6 of the MIPS architecture [1], instruction RDHWR supports
a 3rd operand to serve as the 3-bit select field for the hardware
register.

[1] "MIPS Architecture for Programmers Volume II-A: The MIPS32
    Instruction Set Manual", Imagination Technologies Ltd., Document
    Number: MD00086, Revision 6.06, December 15, 2016, Section 3.2
    "Alphabetical List of Instructions", pp. 332-334

opcodes/
	* mips-opc.c (mips_builtin_opcodes): Add RDHWR rt rd sel.

gas/
	* testsuite/gas/mips/mips.exp: Run hwr-names test.
	* testsuite/gas/mips/hwr-names.s: Add test cases for RDHWR with
	the SEL field.
	* testsuite/gas/mips/mipsr6@hwr-names.d: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove parser_state "initial_size" parameter
@ 2019-04-09 16:15 sergiodj+buildbot
  2019-04-09 16:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 16:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1201a264c8fd227737342345ab54e938295188b6 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1201a264c8fd227737342345ab54e938295188b6

Remove parser_state "initial_size" parameter

All the real (not test) uses of parser_state pass 10 as the
"initial_size" parameter, and it seems to me that there's no real
reason to require callers to set this.  This patch removes this
parameter.

gdb/ChangeLog
2019-04-04  Tom Tromey  <tom@tromey.com>

	* dtrace-probe.c (dtrace_probe::build_arg_exprs): Update.
	* stap-probe.c (stap_parse_argument): Update.
	* stap-probe.h (struct stap_parse_info) <stap_parse_info>: Remove
	initial_size parameter.
	* rust-exp.y (rust_lex_tests): Update.
	* parse.c (parser_state): Update.
	(parse_exp_in_context): Update.
	* parser-defs.h (struct parser_state) <parser_state>: Remove
	"initial_size" parameter.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use -qualified flag when setting temporary breakpoint in start command
@ 2019-04-09 16:54 sergiodj+buildbot
  2019-04-12 19:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 16:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e242fd1249ae85a97f08f95d5c61f4cbe3b906e0 ***

Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: e242fd1249ae85a97f08f95d5c61f4cbe3b906e0

Use -qualified flag when setting temporary breakpoint in start command

When using the "start" command, GDB puts a temporary breakpoint on the
"main" symbol (we literally invoke the tbreak command).  However, since
it does wild matching by default, it also puts a breakpoint on any C++
method or "main" function in a namespace.  For example, when debugging
GDB, it creates a total of 24 locations:

  (gdb) start
  Temporary breakpoint 1 at 0x198c1e9: main. (24 locations)

as there are a bunch of methods called main in the selftests, such as

  selftests::string_view::capacity_1::main()

If such method was called in the constructor of a global object, or a
function marked with the attribute "constructor", then we would stop at
the wrong place.  Also, this causes a few extra symtabs (those that
contain the "wrong" mains) to be expanded for nothing.

The dummiest, most straightforward solution is to add -qualified when
invoking tbreak.  With this patch, "start" creates a single-location
breakpoint, as expected.

I copied the start.exp test to start-cpp.exp and made it use a C++ test
file, which contains two main functions.  The new test verifies that the
output of "start" is the output we get when we set a single-location
breakpoint.

gdb/ChangeLog:

	* infcmd.c (run_command_1): Pass -qualified to tbreak when usind
	the "start" command.

gdb/testsuite/ChangeLog:

	* gdb.base/start-cpp.exp: New file.
	* gdb.base/start-cpp.cc: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Consistently use bool for fake_pid_p
@ 2019-04-09 18:18 sergiodj+buildbot
  2019-04-12 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 18:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9ab8741a48294e19d514721c710c81bba46db7f2 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 9ab8741a48294e19d514721c710c81bba46db7f2

Consistently use bool for fake_pid_p

I noticed a few spots where fake_pid_p is handled as an int, whereas
the field in struct inferior has type bool.  This patch changes the
remaining places to use bool as well.

Tested by the buildbot.

gdb/ChangeLog
2019-04-09  Tom Tromey  <tromey@adacore.com>

	* remote.c (remote_target::remote_add_inferior): Change fake_pid_p
	to bool.
	(extended_remote_target::attach): Update.
	(remote_target::remote_notice_new_inferior): Update.
	(remote_target::add_current_inferior_and_thread): Update.
	* inferior.c (exit_inferior_1): Use "false".
	* corelow.c (add_to_thread_list): Make fake_pid_p bool.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Turn parse_language into a method
@ 2019-04-09 19:44 sergiodj+buildbot
  2019-04-09 20:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 19:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 73923d7eedc7ab52144308ef7e9c12cbe4341bca ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 73923d7eedc7ab52144308ef7e9c12cbe4341bca

Turn parse_language into a method

This changes parse_language into a method of parser_state.  This patch
was written by a script.

gdb/ChangeLog
2019-04-04  Tom Tromey  <tom@tromey.com>

	* rust-exp.y: Replace "parse_language" with method call.
	* p-exp.y:
	(yylex): Replace "parse_language" with method call.
	* m2-exp.y:
	(yylex): Replace "parse_language" with method call.
	* go-exp.y (classify_name): Replace "parse_language" with method
	call.
	* f-exp.y (yylex): Replace "parse_language" with method call.
	* d-exp.y (lex_one_token): Replace "parse_language" with method
	call.
	* c-exp.y:
	(lex_one_token, classify_name, yylex): Replace "parse_language"
	with method call.
	* ada-exp.y (find_primitive_type, type_char)
	(type_system_address): Replace "parse_language" with method call.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix Rust lexer buglet
@ 2019-04-09 19:44 sergiodj+buildbot
  2019-04-13  0:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 19:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8dc433a0fb04f8fa37530d0788053dd9bea5c37d ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 8dc433a0fb04f8fa37530d0788053dd9bea5c37d

Fix Rust lexer buglet

PR rust/24414 points out that the Rust lexer uses strtoul when lexing
an integer, and that this can give the wrong results in some
situations.

This patch changes it to use strtoulst, like most of the rest of gdb.
It also adds a self test.

Tested on x86-64 Fedora 29 using an i686 build.

gdb/ChangeLog
2019-04-09  Ivan Begert  <ivanbegert@gmail.com>
	    Tom Tromey  <tromey@adacore.com>

	PR rust/24414:
	* rust-exp.y (rust_parser::lex_number): Use strtoulst.
	(rust_lex_int_test): Change "value" to be LONGEST.
	(rust_lex_tests): Add test for long integer literal.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move type stack handling to a new class
@ 2019-04-10  9:17 sergiodj+buildbot
  2019-04-10  9:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-10  9:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT dac43e327d002107f6bc9481749de039f410df73 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: dac43e327d002107f6bc9481749de039f410df73

Move type stack handling to a new class

This introduces a new "type_stack" class, and moves all the parser
type stack handling to this class.  Parsers that wish to use this
facility must now instantiate this class somehow.  I chose this
approach because a minority of the existing parsers require this.

gdb/ChangeLog
2019-04-04  Tom Tromey  <tom@tromey.com>

	* type-stack.h: New file.
	* type-stack.c: New file.
	* parser-defs.h (enum type_pieces, union type_stack_elt): Move to
	type-stack.h.
	(insert_into_type_stack, insert_type, push_type, push_type_int)
	(insert_type_address_space, pop_type, pop_type_int)
	(pop_typelist, pop_type_stack, append_type_stack)
	(push_type_stack, get_type_stack, push_typelist)
	(follow_type_instance_flags, follow_types): Don't declare.
	* parse.c (type_stack): Remove global.
	(parse_exp_in_context): Update.
	(insert_into_type_stack, insert_type, push_type, push_type_int)
	(insert_type_address_space, pop_type, pop_type_int)
	(pop_typelist, pop_type_stack, append_type_stack)
	(push_type_stack, get_type_stack, push_typelist)
	(follow_type_instance_flags, follow_types): Remove (moved to
	type-stack.c).
	* f-exp.y (type_stack): New global.
	Update rules.
	(push_kind_type, f_parse): Update.
	* d-exp.y (type_stack): New global.
	Update rules.
	(d_parse): Update.
	* c-exp.y (struct c_parse_state) <type_stack>: New member.
	Update rules.
	* Makefile.in (COMMON_SFILES): Add type-stack.c.
	(HFILES_NO_SRCDIR): Add type-stack.h.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24427, bfd/doc/chew.c reads uninitialized memory and subtracts from function pointer
@ 2019-04-10  9:22 sergiodj+buildbot
  2019-04-13  2:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-10  9:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b05971a652c35ed72d3c95290e18d8f6e4ef6c46 ***

Author: Michael Forney <mforney@mforney.org>
Branch: master
Commit: b05971a652c35ed72d3c95290e18d8f6e4ef6c46

PR24427, bfd/doc/chew.c reads uninitialized memory and subtracts from function pointer

	PR 24427
	* doc/chew.c (free_words): Correctly free "push_text" strings.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove some uses of "object_files"
@ 2019-04-10 14:24 sergiodj+buildbot
  2019-04-13  4:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-10 14:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bf227d6105cb3908cde816429c84569da12e829c ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bf227d6105cb3908cde816429c84569da12e829c

Remove some uses of "object_files"

The "object_files" macro is sometimes used when iterating over
objfiles.  This patch removes a few such uses in favor of the new
range adapter.

gdb/ChangeLog
2019-04-10  Tom Tromey  <tom@tromey.com>

	* ia64-tdep.c (ia64_get_dyn_info_list): Use foreach.
	* minsyms.c (lookup_minimal_symbol): Use foreach.
	(lookup_minimal_symbol_text, lookup_minimal_symbol_by_pc_name)
	(lookup_minimal_symbol_solib_trampoline): Likewise.
	* symfile.c (reread_symbols): Use foreach.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86: Support Intel AVX512 BF16
@ 2019-04-10 16:12 sergiodj+buildbot
  2019-04-10 16:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-10 16:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d6aab7a11b8bd85de43f9fe6b1cea95b504e73ad ***

Author: Xuepeng Guo <xuepeng.guo@intel.com>
Branch: master
Commit: d6aab7a11b8bd85de43f9fe6b1cea95b504e73ad

x86: Support Intel AVX512 BF16

Add assembler and disassembler support Intel AVX512 BF16:

https://software.intel.com/en-us/download/intel-architecture-instruction-set-extensions-programming-reference

gas/

2019-04-05  Xuepeng Guo  <xuepeng.guo@intel.com>

	* config/tc-i386.c (cpu_arch): Add .avx512_bf16.
	(cpu_noarch): Add noavx512_bf16.
	* doc/c-i386.texi: Document avx512_bf16.
	* testsuite/gas/i386/avx512_bf16.d: New file.
	* testsuite/gas/i386/avx512_bf16.s: Likewise.
	* testsuite/gas/i386/avx512_bf16_vl-inval.l: Likewise.
	* testsuite/gas/i386/avx512_bf16_vl-inval.s: Likewise.
	* testsuite/gas/i386/avx512_bf16_vl.d: Likewise.
	* testsuite/gas/i386/avx512_bf16_vl.s: Likewise.
	* testsuite/gas/i386/x86-64-avx512_bf16.d: Likewise.
	* testsuite/gas/i386/x86-64-avx512_bf16.s: Likewise.
	* testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.l: Likesie.
	* testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.s: Likewise.
	* testsuite/gas/i386/x86-64-avx512_bf16_vl.d: Likewise.
	* testsuite/gas/i386/x86-64-avx512_bf16_vl.s: Likewise.
	* testsuite/gas/i386/i386.exp: Add BF16 related tests.

opcodes/

2019-04-05  Xuepeng Guo  <xuepeng.guo@intel.com>

	* i386-dis-evex.h (evex_table): Updated to support BF16
	instructions.
	* i386-dis.c (enum): Add EVEX_W_0F3852_P_1, EVEX_W_0F3872_P_1
	and EVEX_W_0F3872_P_3.
	* i386-gen.c (cpu_flag_init): Add CPU_AVX512_BF16_FLAGS.
	(cpu_flags): Add bitfield for CpuAVX512_BF16.
	* i386-opc.h (enum): Add CpuAVX512_BF16.
	(i386_cpu_flags): Add bitfield for cpuavx512_bf16.
	* i386-opc.tbl: Add AVX512 BF16 instructions.
	* i386-init.h: Regenerated.
	* i386-tbl.h: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix amd64->i386 linux syscall restart problem
@ 2019-04-11  0:58 sergiodj+buildbot
  2019-04-13 11:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-11  0:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3f52fdbcb599f76b4838020721ca6c9f1cc28f84 ***

Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: 3f52fdbcb599f76b4838020721ca6c9f1cc28f84

Fix amd64->i386 linux syscall restart problem

This commit fixes some failures in gdb.base/interrupt.exp
when debugging a 32-bit i386 linux inferior from an amd64 host.

When running the following test...

  make check RUNTESTFLAGS="--target_board unix/-m32 interrupt.exp"

... without this commit, I see the following output:

FAIL: gdb.base/interrupt.exp: continue (the program exited)
FAIL: gdb.base/interrupt.exp: echo data
FAIL: gdb.base/interrupt.exp: Send Control-C, second time
FAIL: gdb.base/interrupt.exp: signal SIGINT (the program is no longer running)
ERROR: Undefined command "".
ERROR: GDB process no longer exists

		=== gdb Summary ===

When the test is run with this commit in place, we see 12 passes
instead.  This is the desired behavior.

Analysis:

On Linux, when a syscall is interrupted by a signal, the syscall
may return -ERESTARTSYS when a signal occurs.  Doing so indicates that
the syscall is restartable.  Then, depending on settings associated
with the signal handler, and after the signal handler is called, the
kernel can then either return -EINTR or can cause the syscall to be
restarted.  In this discussion, we are concerned with the latter
case.

On i386, the kernel returns this status via the EAX register.

When debugging a 32-bit (i386) process from a 64-bit (amd64)
GDB, the debugger fetches 64-bit registers even though the
process being debugged is 32-bit.  Since we're debugging a 32-bit
target, only 32 bits are being saved in the register cache.
Now, ideally, GDB would save all 64-bits in the regcache and
then would be able to restore those same values when it comes
time to continue the target.  I've looked into doing this, but
it's not easy and I don't see many benefits to doing so.  One
benefit, however, would be that EAX would appear as a negative
value for doing syscall restarts.

At the moment, GDB is setting the high 32 bits of RAX (and other
registers too) to 0.  So, when GDB restores EAX just prior to
a syscall restart, the high 32 bits of RAX are zeroed, thus making
it look like a positive value.  For this particular purpose, we
need to sign extend EAX so that RAX will appear as a negative
value when EAX is set to -ERESTARTSYS.  This in turn will cause
the signal handling code in the kernel to recognize -ERESTARTSYS
which will in turn cause the syscall to be restarted.

This commit is based on work by Jan Kratochvil from 2009:

https://sourceware.org/ml/gdb-patches/2009-11/msg00592.html

Jan's patch had the sign extension code in amd64-nat.c.  Several
other native targets make use of this code, so it seemed better
to move the sign extension code to a linux specific file.  I
also added similar code to gdbserver.

Another approach is to fix the problem in the kernel.  Hui Zhu
tried to get a fix into the kernel back in 2014, but it was not
accepted.  Discussion regarding this approach may be found here:

https://lore.kernel.org/patchwork/patch/457841/

Even if a fix were to be put into the kernel, we'd still need
some kind of fix in GDB in order to support older kernels.

Finally, I'll note that Fedora has been carrying a similar patch for
at least nine years.  Other distributions, including RHEL and CentOS
have picked up this change and have been using it too.

gdb/ChangeLog:

	* amd64-linux-nat.c (amd64_linux_collect_native_gregset): New
	function.
	(fill_gregset): Call amd64_linux_collect_native_gregset instead
	of amd64_collect_native_gregset.
	(amd64_linux_nat_target::store_registers): Likewise.

gdb/gdbserver/ChangeLog:

	* linux-x86-low.c (x86_fill_gregset): Sign extend EAX value
	when using a 64-bit gdbserver.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] print_insn_powerpc tidy
@ 2019-04-11  9:21 sergiodj+buildbot
  2019-04-11  9:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-11  9:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e392bad3ec99458369723e14ded8c23b5b13073c ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: e392bad3ec99458369723e14ded8c23b5b13073c

print_insn_powerpc tidy

	* ppc-dis.c (print_insn_powerpc): Use a tiny state machine
	op_separator to control printing of spaces, comma and parens
	rather than need_comma, need_paren and spaces vars.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: When DF_BIND_NOW don't use TLSDESC GOT value.
@ 2019-04-11 10:57 sergiodj+buildbot
  2019-04-13 18:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 10:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ce12121b63145322b4961bbb2b94b939cb916ba7 ***

Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: ce12121b63145322b4961bbb2b94b939cb916ba7

AArch64: When DF_BIND_NOW don't use TLSDESC GOT value.

When using DF_BIND_NOW on AArch64 we don't reserve the GOT slot for a TLSDESC,
but we still emitted DT_TLSDESC_GOT and DT_TLSDESC_PLT.  This caused random
memory corruption as the "special" value of (bfd_vma)-1 would be set for
dt_tlsdesc_got.

Since we don't have a value of dt_tlsdesc_got I also don't emit DT_TLSDESC_PLT
now becuase it would point to an incomplete PLT. To be able to write the PLT
entry DT_TLSDESC_GOT is needed and since we don't have one we can't write the
PLT entry either.

It is my understanding that GLIBC doesn't need these two entries when not lazy
loading.  Conversely AArch32 does not reserve neither the GOT not the PLT slot
when doing DF_BIND_NOW.

AArch32 does not need these checks because these values are initialized to 0
and so the if (...) checks don't pass, but on AArch64 these are initialized
to (bfd_vma)-1 and thus we need some extra checks.

bfd/ChangeLog:

	PR ld/24302
	* elfnn-aarch64.c (elfNN_aarch64_size_dynamic_sections): Don't emit
	DT_TLSDESC_GOT and DT_TLSDESC_PLT when DF_BIND_NOW.
	(elfNN_aarch64_finish_dynamic_sections): Don't write PLT if DF_BIND_NOW.

ld/ChangeLog:

	PR ld/24302
	* testsuite/ld-aarch64/aarch64-elf.exp: Add new test.
	* testsuite/ld-aarch64/tls-relax-gdesc-le-now.d: New test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24435, buffer overflow reading dynamic entries
@ 2019-04-11 11:45 sergiodj+buildbot
  2019-04-13 20:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 11:45 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9bff840e8cc560f5096a43609ed3e0d980733fd9 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 9bff840e8cc560f5096a43609ed3e0d980733fd9

PR24435, buffer overflow reading dynamic entries

	PR 24435
	* elflink.c (elf_link_add_object_symbols): Don't read partial
	dynamic entries from fuzzed objects.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make "msg" const in internal_vproblem
@ 2019-04-11 19:21 sergiodj+buildbot
  2019-04-14  3:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 19:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 02cf60c7a42710ee0364698c436b6ca5e771374b ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 02cf60c7a42710ee0364698c436b6ca5e771374b

Make "msg" const in internal_vproblem

I noticed that the "msg" variable in internal_vproblem could be
"const".  This seems like an improvement because it can wind up in
rodata.

Tested by rebuilding.

gdb/ChangeLog
2019-04-11  Tom Tromey  <tromey@adacore.com>

	* utils.c (internal_vproblem): Make "msg" const.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Fix alignment computation for structs with only static fields
@ 2019-04-11 23:12 sergiodj+buildbot
  2019-04-14  6:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 23:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 41077b6625d16cc6c0c4b404a177a8850300b8a0 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 41077b6625d16cc6c0c4b404a177a8850300b8a0

gdb: Fix alignment computation for structs with only static fields

The current code in gdbtypes.c:type_align incorrectly returns 0 as the
alignment for a structure containing only static fields.  After this
patch the correct value of 1 is returned.  The gdb.base/align.exp test
is extended to cover this case.

gdb/ChangeLog:

	* gdbtypes.c (type_align): A struct with no non-static fields also
	has alignment of 1.

gdb/testsuite/ChangeLog:

	* gdb.base/align.exp: Extend test to cover structures containing
	only static fields.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86: Define GNU_PROPERTY_X86_ISA_1_AVX512_BF16
@ 2019-04-12  6:05 sergiodj+buildbot
  2019-04-12  7:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-12  6:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 462cac5884ed4c38e6180b2e2769aaa5225e695b ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 462cac5884ed4c38e6180b2e2769aaa5225e695b

x86: Define GNU_PROPERTY_X86_ISA_1_AVX512_BF16

Update assembler and readelf to support

 #define GNU_PROPERTY_X86_ISA_1_AVX512_BF16  (1U << 24)

for AVX512_BF16.

binutils/

	* readelf.c (decode_x86_isa): Handle
	GNU_PROPERTY_X86_ISA_1_AVX512_BF16.
	* testsuite/binutils-all/i386/pr21231b.d: Updated.
	* testsuite/binutils-all/x86-64/pr21231b.d: Likewise.

gas/

	* config/tc-i386.c (output_insn): Support
	GNU_PROPERTY_X86_ISA_1_AVX512_BF16.
	* testsuite/gas/i386/property-2.s: Add AVX512_BF16 test.
	* testsuite/gas/i386/property-2.d: Updated.
	* testsuite/gas/i386/x86-64-property-2.d: Likewise.

include/

	* elf/common.h (GNU_PROPERTY_X86_ISA_1_AVX512_BF16): New.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Testsuite: Add gdbserver sysroot test
@ 2019-04-12 10:57 sergiodj+buildbot
  2019-04-14 12:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 10:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e5a1a79a4e0ee33292d45b10a759eb41f7358b7c ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: e5a1a79a4e0ee33292d45b10a759eb41f7358b7c

Testsuite: Add gdbserver sysroot test

The local board file ensures that the sysroot is always set to load
files from the local filesystem.

Add a gdbserver test to explicitly test the sysroot set to both the
remote target and the local filesystem.

gdb/testsuite/ChangeLog:

	* gdb.server/sysroot.c: New test.
	* gdb.server/sysroot.exp: New file.
	* lib/gdbserver-support.exp (gdb_target_cmd): Add additional text
        matching param.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Another fix for GDB styling
@ 2019-04-12 12:53 sergiodj+buildbot
  2019-04-14 13:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 12:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 51196bbc5618a3741bd7bbed01ac76b25a2e6f9c ***

Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 51196bbc5618a3741bd7bbed01ac76b25a2e6f9c

Another fix for GDB styling

gdb/ChangeLog:
2019-04-12  Eli Zaretskii  <eliz@gnu.org>

	* utils.c (prompt_for_continue): Don't restore the styling at the
	end, as applied_style has the wrong value.  This fixes styling in
	long lists of file names that are interrupted by the "Continue?"
	prompt.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Introduce a separate debug objfile iterator
@ 2019-04-12 15:20 sergiodj+buildbot
  2019-04-13  7:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 15:20 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e9ad22ee5f0a40dfa1182ee68e3349dd72a42afe ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e9ad22ee5f0a40dfa1182ee68e3349dd72a42afe

Introduce a separate debug objfile iterator

This introduces a new iterator and range adapter for iteration over
the separate debug files of a given objfile.  As in the current
approach, the requested objfile is returned first, followed by the
separate debug objfiles.

gdb/ChangeLog
2019-04-10  Tom Tromey  <tom@tromey.com>

	* symtab.c (lookup_global_symbol_from_objfile)
	(lookup_symbol_in_objfile_from_linkage_name): Use the iterator.
	* objfiles.h (class separate_debug_iterator): New.
	(class separate_debug_range): New.
	(struct objfile) <separate_debug_objfiles>: New method.
	(objfile_separate_debug_iterate): Don't declare.
	* objfiles.c (separate_debug_iterator::operator++): Rename from
	objfile_separate_debug_iterate.
	(objfile_relocate, objfile_rebase, objfile_has_symbols): Use the
	iterator.
	* minsyms.c (lookup_minimal_symbol_by_pc_section): Use the
	iterator.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Ensure regcache is reset between tests
@ 2019-04-12 15:22 sergiodj+buildbot
  2019-04-13 13:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 15:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 68811f8ff84895ef1cad37ac6947f1a340dd2ae2 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 68811f8ff84895ef1cad37ac6947f1a340dd2ae2

AArch64: Ensure regcache is reset between tests

A recent change made the AArch64 self tests resuse the saved regs
cache, rather than creating a new one.  Ensure it is reset to default
values between tests.

Do this by splitting the reset functionality from trad_frame_alloc_saved_regs
into a new function.

Fixes selftest on AArch64.

gdb/ChangeLog:

	* aarch64-tdep.c (aarch64_analyze_prologue_test): Reset saved regs.
	* trad-frame.c (trad_frame_reset_saved_regs): New function.
	(trad_frame_alloc_saved_regs): Call trad_frame_reset_saved_regs.
	* trad-frame.h (trad_frame_reset_saved_regs): New declaration.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86: Add -z cet-report=[none|warning|error]
@ 2019-04-12 15:25 sergiodj+buildbot
  2019-04-13 23:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 15:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 233a00833b984319d5e94db3f5d5d9a735edc984 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 233a00833b984319d5e94db3f5d5d9a735edc984

x86: Add -z cet-report=[none|warning|error]

Add -z cet-report=[none|warning|error] to report the missing Intel
Indirect Branch Tracking (IBT) and Shadow Stack (SHSTK) properties
in input .note.gnu.property section.  -z cet-report=none, which is
the default, will make the linker not report missing properties in
input files.  -z cet-report=warning will make the linker issue a
warning for missing properties in input files.  -z cet-report=error
will make the linker issue an error for missing properties in input
files.  Note that -z ibt will turn off the missing IBT property report
and -z shstk will turn off the missing SHSTK property report.
Supported for Linux/i386 and Linux/x86_64.

bfd/

	* elf-linker-x86.h (elf_x86_cet_report): New.
	(elf_linker_x86_params): Add cet_report.
	* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Report
	missing IBT and SHSTK properties if needed.

ld/

	* ld.texi: Document -z cet-report=[none|warning|error].
	* emulparams/cet.sh: Add -z cet-report=[none|warning|error].
	* testsuite/ld-i386/i386.exp: Run -z cet-report=[warning|error]
	tests.
	* testsuite/ld-x86-64/x86-64.exp: Likewise.
	* testsuite/ld-i386/property-x86-cet1.d: New file.
	* testsuite/ld-i386/property-x86-cet2a.d: Likewise.
	* testsuite/ld-i386/property-x86-cet2b.d: Likewise.
	* testsuite/ld-i386/property-x86-cet3a.d: Likewise.
	* testsuite/ld-i386/property-x86-cet3b.d: Likewise.
	* testsuite/ld-i386/property-x86-cet4a.d: Likewise.
	* testsuite/ld-i386/property-x86-cet4b.d: Likewise.
	* testsuite/ld-i386/property-x86-cet5a.d: Likewise.
	* testsuite/ld-i386/property-x86-cet5b.d: Likewise.
	* testsuite/ld-i386/property-x86-cet6.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet.s: Likewise.
	* testsuite/ld-x86-64/property-x86-cet1-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet1.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet2a-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet2a.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet2b-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet2b.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet3a-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet3a.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet3b-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet3b.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet4a-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet4a.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet4b-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet4b.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet5a-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet5a.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet5b-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet5b.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet6-x32.d: Likewise.
	* testsuite/ld-x86-64/property-x86-cet6.d: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Remove riscv_type_alignment function
@ 2019-04-12 15:29 sergiodj+buildbot
  2019-04-14  8:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 15:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a9158a863c18545634cb0f0462b326aeca30634c ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: a9158a863c18545634cb0f0462b326aeca30634c

gdb/riscv: Remove riscv_type_alignment function

Make use of the type_align function and remove riscv_type_alignment as
it is no longer needed.  I tested this against a number of RV32 and
RV64 targets, and I also ran the tests with an assertion in place
checking that the old riscv_type_alignment function gives the same
answer as the common type_align function - it does, and all the tests
still pass.

gdb/ChangeLog:

	* riscv-tdep.c (riscv_type_align): New function.
	(riscv_type_alignment): Delete.
	(riscv_arg_location): Use 'type_align'.
	(riscv_gdbarch_init): Register riscv_type_align gdbarch function.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils, ARM, 9/16] New BFL instruction for Armv8.1-M Mainline
@ 2019-04-15 13:33 sergiodj+buildbot
  2019-04-16  0:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 13:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 65d1bc05e89e45b102783422c3984ed718547d5c ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 65d1bc05e89e45b102783422c3984ed718547d5c

[binutils, ARM, 9/16] New BFL instruction for Armv8.1-M Mainline

This patch is part of a series of patches to add support for Armv8.1-M Mainline
instructions to binutils.

This patch adds the BFL instruction.

*** gas/ChangeLog ***

2019-04-15  Sudakshina Das  <sudi.das@arm.com>
             Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/tc-arm.c (T16_32_TAB): New entrie for bfl.
	(do_t_v8_1_branch): New switch case for bfl.
	(insns): New instruction for bfl.
	* testsuite/gas/arm/armv8_1-m-bfl.d: New.
	* testsuite/gas/arm/armv8_1-m-bfl.s: New.
	* testsuite/gas/arm/armv8_1-m-bfl-bad.s: New.
	* testsuite/gas/arm/armv8_1-m-bfl-bad.d: New.
	* testsuite/gas/arm/armv8_1-m-bfl-bad.l: New.
	* testsuite/gas/arm/armv8_1-m-bfl-rel.d: New.
	* testsuite/gas/arm/armv8_1-m-bfl-rel.s: New.

*** ld/ChangeLog ***

2019-04-15  Sudakshina Das  <sudi.das@arm.com>

	* testsuite/ld-arm/bfl.s: New.
	* testsuite/ld-arm/bfl.d: New.
	* testsuite/ld-arm/arm-elf.exp: Add above test.

*** opcodes/ChangeLog ***

2019-04-15  Sudakshina Das  <sudi.das@arm.com>

	* arm-dis.c (thumb32_opcodes): New instruction bfl.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils, ARM, 13/16] Add support for CLRM
@ 2019-04-15 14:41 sergiodj+buildbot
  2019-04-16  7:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 14:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4b5a202f107b5393da30fd0b488c3eff2bc758a5 ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 4b5a202f107b5393da30fd0b488c3eff2bc758a5

[binutils, ARM, 13/16] Add support for CLRM

Given the similarity between LDM/STM and CLRM register lists, most of the changes in this patch aim at sharing code between those two sets of instruction. Sharing is achieved both in parsing and encoding of those instructions.

In terms of parsing, parse_reg_list () is extended to take a type that describe what type of instruction is being parsed. The reg_list_els used for parse_vfp_reg_list () is reused for the type and that function is added an assert for the new REGLIST_CLRM and REGLIST_RN enumerators.
parse_reg_list () is then taught to accept APSR and reject SP and PC when parsing for a CLRM instruction. At last, caller of parse_reg_list () is updated accordingly and logic is added for the new OP_CLRMLST operand.

Encoding-wise, encode_thumb2_ldmstm () is reused to encode the variable bits of CLRM and is thus renamed encode_thumb2_multi (). A new do_io parameter is added to distinguish between LDM/STM and CLRM which guard all the LDM/STM specific code of the function.

Finally objdump is told how to disassemble CLRM, again reusing the logic to print the LDM/STM register list (format specifier 'm'). Tests are also added in the form of negative tests to check parsing and encoding/disassembling tests.

ChangeLog entries are as follows:

*** gas/ChangeLog ***

2019-04-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (enum reg_list_els): Define earlier and add
	REGLIST_RN and REGLIST_CLRM enumerators.
	(parse_reg_list): Add etype parameter to distinguish between regular
	core register list and CLRM register list.  Add logic to
	recognize CLRM register list.
	(parse_vfp_reg_list): Assert type is not for core register list.
	(s_arm_unwind_save_core): Update call to parse_reg_list to new
	prototype.
	(enum operand_parse_code): Declare OP_CLRMLST enumerator.
	(parse_operands): Update call to parse_reg_list to new prototype.  Add
	logic for OP_CLRMLST.
	(encode_thumb2_ldmstm): Rename into ...
	(encode_thumb2_multi): This.  Add do_io parameter.  Add logic to
	encode CLRM and guard LDM/STM only code by do_io.
	(do_t_ldmstm): Adapt to use encode_thumb2_multi.
	(do_t_push_pop): Likewise.
	(do_t_clrm): New function.
	(insns): Define CLRM.
	* testsuite/gas/arm/archv8m_1m-cmse-main-bad.d: New file.
	* testsuite/gas/arm/archv8m_1m-cmse-main-bad.l: Likewise.
	* testsuite/gas/arm/archv8m_1m-cmse-main-bad.s: Likewise.
	* testsuite/gas/arm/archv8m_1m-cmse-main.d: Likewise.
	* testsuite/gas/arm/archv8m_1m-cmse-main.s: Likewise.

*** opcodes/ChangeLog ***

2019-04-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* arm-dis.c (thumb_opcodes): Document %n control code.  Add entry for
	CLRM.
	(print_insn_thumb32): Add logic to print %n CLRM register list.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils, ARM, 16/16] Add support to VLDR and VSTR of system registers
@ 2019-04-15 15:32 sergiodj+buildbot
  2019-04-16 12:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 15:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 32c36c3ce94becbf0b8e1adad6ff28aa9d5e0b66 ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 32c36c3ce94becbf0b8e1adad6ff28aa9d5e0b66

[binutils, ARM, 16/16] Add support to VLDR and VSTR of system registers

GNU as' Arm backend assumes each mnemonic has a single entry in the instruction table but VLDR (system register) and VSTR (system register) are different instructions than VLDR and VSTR. It is thus necessary to add some form of demultiplexing in the parser. It starts by creating a new operand type OP_VLDR which indicate that the operand is either the existing OP_RVSD operand or a system register. The function parse_operands () then tries these two cases in order, calling the new parse_sys_vldr_vstr for the second case.

Since the encoding function is specified in the instruction table entry, it also need to have some sort of demultiplexing. This is done in do_vldr_vstr which either calls the existing do_neon_ldr_str () or calls the new do_t_vldr_vstr_sysreg ().

A new internal relocation is needed as well since the offset has a shorter range than in other Thumb coprocessor instructions. Disassembly also requires special care since VSTR (system register) reuse the STC encoding with the coprocessor number 15. Armv8.1-M Mainline ARM manual states that coprocessor 8, 14 and 15 are reserved for floating-point and MVE instructions a feature bit check is added if the coprocessor number is one of this value and we are trying to match a coprocessor instruction (eg. STC) to forbid the match.

ChangeLog entries are as follows:

*** bfd/ChangeLog ***

2019-04-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* reloc.c (BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM): New internal
	relocation.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Likewise.

*** gas/ChangeLog ***

2019-04-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (parse_sys_vldr_vstr): New function.
	(OP_VLDR): New enum operand_parse_code enumerator.
	(parse_operands): Add logic for OP_VLDR.
	(do_t_vldr_vstr_sysreg): New function.
	(do_vldr_vstr): Likewise.
	(insns): Guard VLDR and VSTR by arm_ext_v4t for Thumb mode.
	(md_apply_fix): Add bound check for VLDR and VSTR co-processor offset.
	Add masking logic for BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM relocation.
	* testsuite/gas/arm/archv8m_1m-cmse-main-bad.s: Add examples of bad
	uses of VLDR and VSTR.
	* testsuite/gas/arm/archv8m_1m-cmse-main-bad.l: Add error messages for
	above bad uses.
	* testsuite/gas/arm/archv8m_1m-cmse-main.s: Add examples of VLDR and
	VSTR valid uses.
	* testsuite/gas/arm/archv8m_1m-cmse-main.d: Add disassembly for the
	above examples.

*** opcodes/ChangeLog ***

2019-04-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* arm-dis.c (coprocessor_opcodes): Document new %J and %K format
	specifier.  Add entries for VLDR and VSTR of system registers.
	(print_insn_coprocessor): Forbid coprocessor numbers 8, 14 and 15 in
	coprocessor instructions on Armv8.1-M Mainline targets.  Add handling
	of %J and %K format specifier.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Tidy up aarch64_gdbarch_init
@ 2019-04-15 15:51 sergiodj+buildbot
  2019-04-16 14:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 15:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ccb8d7e8194b848a6c4aa43272540eec0f4f21f2 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: ccb8d7e8194b848a6c4aa43272540eec0f4f21f2

AArch64: Tidy up aarch64_gdbarch_init

Move the lookup_by_info to the top of the function to avoid unnecessarily
creating a new feature when the gdbarch already exists.

Add some additional cleanups that have no functional effect.

gdb/ChangeLog:

	* aarch64-tdep.c (aarch64_gdbarch_init): Move gdbarch lookup.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64 SVE: Check for vector length change when getting gdbarch
@ 2019-04-15 16:10 sergiodj+buildbot
  2019-04-16 15:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 16:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4da037ef9dba6c17089250d228efdbe6f7d830c9 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 4da037ef9dba6c17089250d228efdbe6f7d830c9

AArch64 SVE: Check for vector length change when getting gdbarch

Override the thread_architecture method, similar to SPU.  If the vector
length has changed, then find the arch using info, making sure the vector
length is passed down to the init routine.

In the init routine, ensure the arch has the correct vector length.

Example output. Program is stopped in thread 2, just before it calls prctl
to change the vector length

(gdb) info threads
  Id   Target Id                                     Frame
  1    Thread 0xffffbf6f4000 (LWP 3188) "sve_change" 0x0000ffffbf6ae130 in pthread_join ()
* 2    Thread 0xffffbf55e200 (LWP 3189) "sve_change" thread1 (arg=0xfeedface) at sve_change_size.c:28
(gdb) print $vg
$1 = 8
(gdb) print $z0.s.u
$2 = {623191333, 623191333, 623191333, 623191333, 0 <repeats 12 times>}
(gdb) n
29	  int ret = prctl(PR_SVE_SET_VL, vl/2);
(gdb) n
30	  printf ("Changed: ret\n", ret);
(gdb) print $vg
$4 = 4
(gdb) print $z0.s.u
$5 = {623191333, 623191333, 623191333, 623191333, 0, 0, 0, 0}
(gdb) thr 1
[Switching to thread 1 (Thread 0xffffbf6f4000 (LWP 3181))]
(gdb) print $vg
$6 = 8
(gdb) print $z0.s.u
$7 = {623191333, 623191333, 623191333, 623191333, 0 <repeats 12 times>}

gdb/ChangeLog:

	* aarch64-linux-nat.c
	(aarch64_linux_nat_target::thread_architecture): Add override.
	* aarch64-tdep.c (aarch64_gdbarch_init): Ensure different tdesc for
	each VQ.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix AMD64 return value ABI in expression evaluation
@ 2019-04-15 16:46 sergiodj+buildbot
  2019-04-16 19:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 16:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4aa866af6b13c7080c6d92201fc1a2f4ea19998e ***

Author: Leszek Swirski <leszeks@google.com>
Branch: master
Commit: 4aa866af6b13c7080c6d92201fc1a2f4ea19998e

Fix AMD64 return value ABI in expression evaluation

The AMD64 System V ABI specifies that when a function has a return type
classified as MEMORY, the caller provides space for the value and passes
the address to this space as the first argument to the function (before
even the "this" pointer). The classification of MEMORY is applied to
struct that are sufficiently large, or ones with unaligned fields.

The expression evaluator uses call_function_by_hand to call functions,
and the hand-built frame has to push arguments in a way that matches the
ABI of the called function. call_function_by_hand supports ABI-based
struct returns, based on the value of gdbarch_return_value, however on
AMD64 the implementation of the classifier incorrectly assumed that all
non-POD types (implemented as "all types with a base class") should be
classified as MEMORY and use the struct return.

This ABI mismatch resulted in issues when calling a function that returns
a class of size <16 bytes which has a base class, including issues such
as the "this" pointer being incorrect (as it was passed as the second
argument rather than the first).

This is now fixed by checking for field alignment rather than POD-ness,
and a testsuite is added to test expression evaluation for AMD64.

gdb/ChangeLog:

	* amd64-tdep.c (amd64_classify_aggregate): Use cp_pass_by_reference
	rather than a hand-rolled POD check when checking for forced MEMORY
	classification.

gdb/testsuite/ChangeLog:

	* gdb.arch/amd64-eval.cc: New file.
	* gdb.arch/amd64-eval.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils, ARM, 12/16] Scalar Low Overhead loop instructions for Armv8.1-M Mainline
@ 2019-04-16  4:47 sergiodj+buildbot
  2019-04-16  4:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-16  4:47 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 60f993ce170b91876ad41e8f7339c24afd63fac2 ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 60f993ce170b91876ad41e8f7339c24afd63fac2

[binutils, ARM, 12/16] Scalar Low Overhead loop instructions for Armv8.1-M Mainline

s patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils.
This patch adds support to the Scalar low overhead loop instructions:
LE
WLS
DLS

We also add a new assembler resolvable relocation bfd_reloc_code_real enum for the 12-bit branch offset used in these instructions.

ChangeLog entries are as follows:
*** bfd/ChnageLog ***

2019-04-12  Sudakshina Das  <sudi.das@arm.com>

	* reloc.c (BFD_RELOC_ARM_THUMB_LOOP12): New.
	* bfd-in2.h: Regenerated.
	* libbfd.h: Regenerated.

*** gas/ChangeLog ***

2019-04-12  Sudakshina Das  <sudi.das@arm.com>
             Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/tc-arm.c (operand_parse_code): Add OP_LR and OP_oLR
	for the LR operand and optional LR operand.
	(parse_operands): Add switch cases for OP_LR and OP_oLR for
	both type checking and value checking.
	(encode_thumb32_addr_mode): New entries for DLS, WLS and LE.
	(v8_1_loop_reloc): New helper function for handling labels
	for the low overhead loop instructions.
	(do_t_loloop): New function to encode DLS, WLS and LE.
	(insns): New entries for WLS, DLS and LE.
	(md_pcrel_from_section): New switch case
	for BFD_RELOC_ARM_THUMB_LOOP12.
	(md_appdy_fix): Likewise.
	(tc_gen_reloc): Likewise.
	* testsuite/gas/arm/armv8_1-m-tloop.s: New.
	* testsuite/gas/arm/armv8_1-m-tloop.d: New.
	* testsuite/gas/arm/armv8_1-m-tloop-bad.s: New.
	* testsuite/gas/arm/armv8_1-m-tloop-bad.d: New.
	* testsuite/gas/arm/armv8_1-m-tloop-bad.l: New.

*** opcodes/ChangeLog ***

2019-04-12  Sudakshina Das  <sudi.das@arm.com>

	* arm-dis.c (print_insn_thumb32): Updated to accept new %P
	and %Q patterns.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [opcodes, ARM, 14/16] Add mode availability to coprocessor table entries
@ 2019-04-16  7:40 sergiodj+buildbot
  2019-04-16  8:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-16  7:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6b0dd094741bc5e9963eabc64a7030783e471941 ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 6b0dd094741bc5e9963eabc64a7030783e471941

[opcodes, ARM, 14/16] Add mode availability to coprocessor table entries

The coprocessor_opcodes table is used both to share commonalities in coprocessor-related instructions and to avoid duplication between Arm and Thumb mode. However, some instructions do have differences between Arm and Thumb. For instance, vldmia allows PC as base register in Arm mode but not in Thumb mode.

In that very case the distinction becomes necessary because the encoding with PC as base register is used in Thumb mode to denote a VSCCLRM. It is thus necessary to distinguish what is Arm or Thumb only from what is shared. This patch adds an extra field to the coprocessor_opcodes table entries to indicate what mode is a given instruction available in. The print_insn_coprocessor then uses that field to determine if an entry that matched the mark and value checked should be allowed to match or not given the current mode.

ChangeLog entry is as follows:

*** opcodes/ChangeLog ***

2019-04-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* arm-dis.c (enum isa): New enum.
	(struct sopcode32): New structure.
	(coprocessor_opcodes): change type of entries to struct sopcode32 and
	set isa field of all current entries to ANY.
	(print_insn_coprocessor): Change type of insn to struct sopcode32.
	Only match an entry if its isa field allows the current mode.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Allow breakpoints to be created at invalid addresses
@ 2019-04-17  0:08 sergiodj+buildbot
  2019-04-17  1:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-17  0:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c01660c625766e848195285cc20581b9ed7ecfe2 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: c01660c625766e848195285cc20581b9ed7ecfe2

gdb/riscv: Allow breakpoints to be created at invalid addresses

Some testsuite cases (gdb.cp/nsalias.exp for example) construct dwarf2
debug info for fake functions to test that this debug info is handled
correctly.

We currently get an error trying to read from an invalid address while
creating breakpoints for these fake functions.

Other targets allow creating breakpoints on invalid addresses, and
only error when GDB actually tries to insert the breakpoints.

In order to make RISC-V behave in the same way as other targets, this
commit makes the failure to read memory during breakpoint creation
non-fatal, we then expect to see a failure when GDB tries to insert
the breakpoint, just like other targets.

Tested with a riscv64-linux native testsuite run.

gdb/ChangeLog:

	* riscv-tdep.c (riscv_breakpoint_kind_from_pc): Hanndle case where
	code read might fail, assume 4-byte breakpoint in that case.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdbserver: Ensure all debug output uses debug functions
@ 2019-04-17 13:47 sergiodj+buildbot
  2019-04-17 13:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-17 13:47 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a7e559cc087b10b9ea337b58e52cc13964aae3fb ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: a7e559cc087b10b9ea337b58e52cc13964aae3fb

gdbserver: Ensure all debug output uses debug functions

All debug output needs to go via debug functions to ensure it writes to the
correct output stream.

gdb/ChangeLog:

	* nat/linux-waitpid.c (linux_debug): Call debug_vprintf.

gdb/gdbserver/ChangeLog:

	* ax.c (ax_vdebug): Call debug_printf.
	* debug.c (debug_write): New function.
	* debug.h (debug_write): New declaration.
	* linux-low.c (sigchld_handler): Call debug_write.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86: Also check x86 linker_def for non-shared definition
@ 2019-04-17 16:36 sergiodj+buildbot
  2019-04-17 17:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-17 16:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4e84a8f8bbeab52fa7048873655e582ceb92534d ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 4e84a8f8bbeab52fa7048873655e582ceb92534d

x86: Also check x86 linker_def for non-shared definition

Since elf_x86_linker_defined sets linker_def in elf_x86_link_hash_entry
for linker defined symbols, SYMBOL_DEFINED_NON_SHARED_P should also check
linker_def in elf_x86_link_hash_entry.

bfd/

	PR ld/24458
	* elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): Also check x86
	linker_def.

ld/

	PR ld/24458
	* testsuite/ld-x86-64/x86-64.exp: Run PR ld/24458 tests.
	* testsuite/ld-x86-64/pr24458.s: New file.
	* testsuite/ld-x86-64/pr24458a-x32.d: Likewise.
	* testsuite/ld-x86-64/pr24458a.d: Likewise.
	* testsuite/ld-x86-64/pr24458b-x32.d: Likewise.
	* testsuite/ld-x86-64/pr24458b.d: Likewise.
	* testsuite/ld-x86-64/pr24458c-x32.d: Likewise.
	* testsuite/ld-x86-64/pr24458c.d: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86: Suggest -fPIE when not building shared object
@ 2019-04-17 17:44 sergiodj+buildbot
  2019-04-17 19:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-17 17:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9a7f0679fd3b9815b8eb938bfdad3934b8435419 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 9a7f0679fd3b9815b8eb938bfdad3934b8435419

x86: Suggest -fPIE when not building shared object

When PIC is needed, linker should suggest -fPIE, instead of -fPIC, when
not building shared object.

bfd/

	* elf64-x86-64.c (elf_x86_64_need_pic): Suggest -fPIE when not
	building shared object.
	* elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Likewise.

ld/

	* testsuite/ld-i386/i386.exp: Run pr18801a and pr18801b instead
	of pr18801.
	* testsuite/ld-x86-64/x86-64.exp: Likewise.
	* testsuite/ld-i386/pr18801.d: Removed.
	* testsuite/ld-x86-64/pr18801.d: Likewise.
	* testsuite/ld-i386/pr18801a.d: New file.
	* testsuite/ld-i386/pr18801b.d: Likewise.
	* testsuite/ld-x86-64/pr18801a.d: Likewise.
	* testsuite/ld-x86-64/pr18801b.d: Likewise.
	* testsuite/ld-x86-64/pie2.d: Suggest -fPIE instead of -fPIC.
	* testsuite/ld-x86-64/pie2.d: Likewise.
	* testsuite/ld-x86-64/pr19719.d: Likewise.
	* testsuite/ld-x86-64/pr19807-2a.d: Likewise.
	* testsuite/ld-x86-64/pr19969.d: Likewise.
	* testsuite/ld-x86-64/pr21997-1a.err: Likewise.
	* testsuite/ld-x86-64/pr21997-1b.err: Likewise.
	* testsuite/ld-x86-64/pr22001-1a.err: Likewise.
	* testsuite/ld-x86-64/pr22001-1b.err: Likewise.
	* testsuite/ld-x86-64/pr22791-1.err: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb] Handle vfork in thread with follow-fork-mode child
@ 2019-04-18 16:30 sergiodj+buildbot
  2019-04-18 18:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-18 16:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b73715df01e6e9b3de5a49cd7bf4170deef48461 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: b73715df01e6e9b3de5a49cd7bf4170deef48461

[gdb] Handle vfork in thread with follow-fork-mode child

When debugging any of the testcases added by this commit, which do a
vfork in a thread with "set follow-fork-mode child" + "set
detach-on-fork on", we run into this assertion:

...
src/gdb/nat/x86-linux-dregs.c:146: internal-error: \
  void x86_linux_update_debug_registers(lwp_info*): \
  Assertion `lwp_is_stopped (lwp)' failed.
...

The assert is caused by the following: the vfork-child exit or exec
event is handled by handle_vfork_child_exec_or_exit, which calls
target_detach to detach from the vfork parent.  During target_detach
we call linux_nat_target::detach, which:

#1 - stops all the threads
#2 - waits for all the threads to be stopped
#3 - detaches all the threads

However, during the second step we run into this code in
stop_wait_callback:

...
  /* If this is a vfork parent, bail out, it is not going to report
     any SIGSTOP until the vfork is done with.  */
  if (inf->vfork_child != NULL)
    return 0;
...

and we don't wait for the threads to be stopped, which results in this
assert in x86_linux_update_debug_registers triggering during the third
step:

...
  gdb_assert (lwp_is_stopped (lwp));
...

The fix is to reset the vfork parent's vfork_child field before
calling target_detach in handle_vfork_child_exec_or_exit.  There's
already similar code for the other paths handled by
handle_vfork_child_exec_or_exit, so this commit refactors the code a
bit so that all paths share the same code.

The new tests cover both a vfork child exiting, and a vfork child
execing, since both cases would trigger the assertion.

The new testcases also exercise following the vfork children with "set
detach-on-fork off", since it doesn't seem to be tested anywhere.

Tested on x86_64-linux, using native and native-gdbserver.

gdb/ChangeLog:
2019-04-18  Tom de Vries  <tdevries@suse.de>
	    Pedro Alves  <palves@redhat.com>

	PR gdb/24454
	* infrun.c (handle_vfork_child_exec_or_exit): Reset vfork parent's
	vfork_child field before calling target_detach.

gdb/testsuite/ChangeLog:
2019-04-18  Tom de Vries  <tdevries@suse.de>
	    Pedro Alves  <palves@redhat.com>

	PR gdb/24454
	* gdb.threads/vfork-follow-child-exec.c: New file.
	* gdb.threads/vfork-follow-child-exec.exp: New file.
	* gdb.threads/vfork-follow-child-exit.c: New file.
	* gdb.threads/vfork-follow-child-exit.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix gdb.base/break-probes.exp with native-gdbserver
@ 2019-04-18 21:56 sergiodj+buildbot
  2019-04-18 23:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-18 21:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 36cd4ba59817473935f781174744e7883ff221ee ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 36cd4ba59817473935f781174744e7883ff221ee

[gdb/testsuite] Fix gdb.base/break-probes.exp with native-gdbserver

When running break-probes.exp with native-gdbserver, we run into:
...
FAIL: gdb.base/break-probes.exp: run til our library loads (the program exited)
FAIL: gdb.base/break-probes.exp: call (int) foo(23)
...
due to the fact that we're trying to match:
...
Inferior loaded /data/gdb_versions/devel/build/gdb/testsuite/outputs/gdb.base\
  /break-probes/break-probes-solib.so
...
using pattern:
...
Inferior loaded $sysroot$binfile_lib
...
which expands into:
...
Inferior loaded //data/gdb_versions/devel/build/gdb/testsuite/outputs/gdb.base\
  /break-probes/break-probes-solib.so
...

Fix by setting sysroot to "" in local-board.exp.

Tested on x86_64-linux with native-gdbserver.

gdb/testsuite/ChangeLog:

2019-04-18  Tom de Vries  <tdevries@suse.de>

	PR gdb/24433
	* boards/local-board.exp: Set sysroot to "".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] OBVIOUS move add_comm_alias "!" <=> "shell" near the add_com "shell"
@ 2019-04-20 15:04 sergiodj+buildbot
  2019-04-20 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 15:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d563b953142db796f61425a1a300f0feddcdcd55 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: d563b953142db796f61425a1a300f0feddcdcd55

OBVIOUS move add_comm_alias "!" <=> "shell" near the add_com "shell"

gdb/ChangeLog

2019-04-19  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* cli/cli-cmds.c (_initialize_cli_cmds): Move "shell" "!" alias
	close to the add_com "shell".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix "list" when control characters are seen
@ 2019-04-20 15:56 sergiodj+buildbot
  2019-04-20 23:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 15:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 62160ec9547cdd21ac7334d9a378ca2930aac61c ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 62160ec9547cdd21ac7334d9a378ca2930aac61c

Fix "list" when control characters are seen

PR symtab/24423 points out that control characters in a source file
cause a hang in the "list" command, a regression introduced by the
styling changes.

This patch, from the PR, fixes the bug.  I've included a minimal
change to the "list" test that exercises this code.

I recall that this bug was discussed on gdb-patches, and I thought
there was a patch there as well, but I was unable to find it.

gdb/ChangeLog
2019-04-19  Ilya Yu. Malakhov  <malakhov@mcst.ru>

	PR symtab/24423:
	* source.c (print_source_lines_base): Advance "iter" when a
	control character is seen.

gdb/testsuite/ChangeLog
2019-04-19  Tom Tromey  <tromey@adacore.com>

	PR symtab/24423:
	* gdb.base/list0.h (foo): Add a control-l character.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make copy_name return std::string
@ 2019-04-20 17:12 sergiodj+buildbot
  2019-04-21  8:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 17:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 61f4b350419e91560be94e0671a760b2e4902c65 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 61f4b350419e91560be94e0671a760b2e4902c65

Make copy_name return std::string

This changes copy_name to return a std::string, updating all the
callers.  In some cases, an extra copy was removed.  This also
required a little bit of constification.

Tested by the buildbot.

gdb/ChangeLog
2019-04-19  Tom Tromey  <tom@tromey.com>

	* type-stack.h (struct type_stack) <insert>: Constify string.
	* type-stack.c (type_stack::insert): Constify string.
	* gdbtypes.h (lookup_template_type): Update.
	(address_space_name_to_int): Update.
	* gdbtypes.c (address_space_name_to_int): Make space_identifier
	const.
	(lookup_template_type): Make name const.
	* c-exp.y: Update rules.
	(lex_one_token, classify_name, classify_inner_name)
	(c_print_token): Update.
	* p-exp.y: Update rules.
	(yylex): Update.
	* f-exp.y: Update rules.
	(yylex): Update.
	* d-exp.y: Update rules.
	(lex_one_token, classify_name, classify_inner_name): Update.
	* parse.c (write_dollar_variable, copy_name): Return std::string.
	* parser-defs.h (copy_name): Change return type.
	* m2-exp.y: Update rules.
	(yylex): Update.
	* go-exp.y (lex_one_token): Update.
	Update rules.
	(classify_unsafe_function, classify_packaged_name)
	(classify_name, yylex): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make objfile::static_links an htab_up
@ 2019-04-20 17:28 sergiodj+buildbot
  2019-04-21 11:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 17:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cf250e36790aaa255bb486e2122bb83c95c7669b ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: cf250e36790aaa255bb486e2122bb83c95c7669b

Make objfile::static_links an htab_up

This changes objfile::static_links to be an htab_up, so that ~objfile
no longer has to explicitly destroy it.

Tested by the buildbot.

gdb/ChangeLog
2019-04-19  Tom Tromey  <tom@tromey.com>

	* symfile.c (reread_symbols): Update.
	* objfiles.c (objfile_register_static_link)
	(objfile_lookup_static_link): Update
	(~objfile) Don't delete static_links.
	* objfiles.h (struct objfile) <static_links>: Now an htab_up.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use std::list for event notifications in gdbserver
@ 2019-04-20 17:46 sergiodj+buildbot
  2019-04-21 12:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 17:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b494cdff6922944383ef4dc20fcc90c4d823d315 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b494cdff6922944383ef4dc20fcc90c4d823d315

Use std::list for event notifications in gdbserver

This changes gdbserver to use std::list rather than common/queue.h for
event notifications.

gdb/gdbserver/ChangeLog
2019-04-19  Tom Tromey  <tom@tromey.com>

	* server.c (struct vstop_notif): Derive from notif_event.
	<base>: Remove.
	(queue_stop_reply): Update.
	(remove_all_on_match_ptid): Change type.  Rewrite.
	(discard_queued_stop_replies): Rewrite.
	(in_queued_stop_replies_ptid): Change type.
	(in_queued_stop_replies): Rewrite.
	(notif_stop): Update.
	(queue_stop_reply_callback): Update.
	(captured_main): Don't call initialize_notif.
	(push_stop_notification): Update.
	* notif.c (notif_write_event, handle_notif_ack)
	(notif_event_enque, notif_push): Update.
	(notif_event_xfree, initialize_notif): Remove.
	* notif.h (struct notif_event): Include <list>, not
	"common/queue.h".
	(struct notif_server) <queue>: Now a std::list.
	(notif_event_p): Remove typedef.
	(initialize_notif): Don't declare.
	(struct notif_event): Add virtual destructor.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove common/queue.h
@ 2019-04-20 18:38 sergiodj+buildbot
  2019-04-21 17:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 18:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fb8819867993ee942aacd8ea6d5027b16cecda48 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: fb8819867993ee942aacd8ea6d5027b16cecda48

Remove common/queue.h

gdb no longer needs common/queue.h, so this removes it.

gdb/ChangeLog
2019-04-19  Tom Tromey  <tom@tromey.com>

	* common/queue.h: Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/configure.ac: add --enable-source-highlight
@ 2019-04-21  4:17 sergiodj+buildbot
  2019-04-21  5:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-21  4:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 189b8c2e104017600104457b97315da74a22f549 ***

Author: Sergei Trofimovich <siarheit@google.com>
Branch: master
Commit: 189b8c2e104017600104457b97315da74a22f549

gdb/configure.ac: add --enable-source-highlight

Allow disabling source-highlight dependency autodetection even
it exists in the system. More details on problem of automatic
dependencies:
https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Automagic_dependencies

Noticed by Jeroen Roovers in https://bugs.gentoo.org/680238

	* configure.ac: add --enable-source-highlight switch.
	* configure: Regenerate.
	* top.c (print_gdb_version): plumb --enable-source-highlight
	status to "show configuration".

gdb/ChangeLog
2019-04-19  Sergei Trofimovich <siarheit@google.com>

	* configure.ac: add --enable-source-highlight switch.
	* configure: Regenerate.
	* top.c (print_gdb_version): plumb --enable-source-highlight
	status to "show configuration".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use std::list for remote_notif_state::notif_queue
@ 2019-04-21 14:06 sergiodj+buildbot
  2019-04-21 14:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-21 14:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8

Use std::list for remote_notif_state::notif_queue

This changes remote_notif_state::notif_queue to be a std::list and
updates all the uses.

gdb/ChangeLog
2019-04-19  Tom Tromey  <tom@tromey.com>

	* remote.c (remote_target): Use delete.
	* remote-notif.h: Include <list>, not "common/queue.h".
	(notif_client_p): Remove typedef.
	(remote_notif_state): Add constructor, destructor, initializer.
	<notif_queue>: Now a std::list.
	(remote_notif_state_xfree): Don't declare.
	* remote-notif.c (remote_notif_process, handle_notification)
	(remote_notif_state_allocate): Update.
	(~remote_notif_state): Rename from remote_notif_state_xfree.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Support for DW_OP_addrx and DW_FORM_addrx tags
@ 2019-04-23  4:05 sergiodj+buildbot
  2019-04-23  9:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-23  4:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 336d760da60d93ce76c4560525f65339f3403914 ***

Author: Ali Tamur <tamur@google.com>
Branch: master
Commit: 336d760da60d93ce76c4560525f65339f3403914

Support for DW_OP_addrx and DW_FORM_addrx tags

DW_OP_addrx is the new name of DW_OP_GNU_addr_index, and DW_FORM_addrx
is the name of DW_FORM_addr_index in the Dwarf 5 standard. This is a small
step towards supporting Dwarf 5 in gdb.

Note: I could not find any tests specifically for *_GNU_addr_index, and
I did not add any new tests, please advise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Testsuite: Remove pie from trace tests
@ 2019-04-23 13:32 sergiodj+buildbot
  2019-04-23 15:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 13:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ba22ff8694e366fe5f27824566aae65fc6626841 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: ba22ff8694e366fe5f27824566aae65fc6626841

Testsuite: Remove pie from trace tests

Ubuntu/Debian defaults PIE to enabled.  This causes the trace tests
to fall over due to variables being returned as "unavailable".  The
tests were never designed to work with pie.

Simply ensure the nopie flag is always used for the failing tests.

This removes 100+ failures when running native-gdbserver on Ubuntu 18.04.

gdb/testsuite/ChangeLog:

	* gdb.trace/backtrace.exp: Use nopie flag.
	* gdb.trace/circ.exp: Likewise.
	* gdb.trace/collection.exp: Likewise.
	* gdb.trace/ftrace.exp: Likewise.
	* gdb.trace/mi-trace-unavailable.exp: Likewise.
	* gdb.trace/mi-traceframe-changed.exp: Likewise.
	* gdb.trace/qtro.exp: Likewise.
	* gdb.trace/read-memory.exp: Likewise.
	* gdb.trace/report.exp: Likewise.
	* gdb.trace/tfile.exp: Likewise.
	* gdb.trace/tfind.exp: Likewise.
	* gdb.trace/unavailable.exp: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix gdb.btrace/reconnect.exp with native-gdbserver
@ 2019-04-23 14:16 sergiodj+buildbot
  2019-04-23 20:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 14:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5c565afd4c7ab6f3d287c9abd288d1d1e3e7cade ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 5c565afd4c7ab6f3d287c9abd288d1d1e3e7cade

[gdb/testsuite] Fix gdb.btrace/reconnect.exp with native-gdbserver

When running gdb.btrace/reconnect.exp with native-gdbserver, we run into:
...
FAIL: gdb.btrace/reconnect.exp: first: stepi 19
...
due to the fact that we're trying to match:
...
stepi 19^M
0x00007ffff7dd8b57 in _dl_start () from /lib64/ld-linux-x86-64.so.2^M
...
using pattern:
...
  gdb_test "stepi 19" "0x.* in .* from target.*"
...

Fix this by changing the pattern to:
...
  gdb_test "stepi 19" "0x.* in .* from .*"
...

Tested on x86_64-linux with native and native-gdbserver.

gdb/testsuite/ChangeLog:

2019-04-23  Tom de Vries  <tdevries@suse.de>

	PR gdb/24433
	* gdb.btrace/reconnect.exp: Fix stepi 19 pattern.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove unused overload of line_header::file_name_at
@ 2019-04-23 17:28 sergiodj+buildbot
  2019-04-23 22:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 17:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9e97ba436a8e59ac4574001d618240eac0328934 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 9e97ba436a8e59ac4574001d618240eac0328934

Remove unused overload of line_header::file_name_at

I noticed that one of the overloads of line_header::file_name_at is
unused.  This patch removes it.

gdb/ChangeLog
2019-04-23  Tom Tromey  <tromey@adacore.com>

	* dwarf2read.c (line_header::file_name_at): Remove unused
	overload.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/iq2000: Use default gdbarch methods where possible
@ 2019-04-23 22:28 sergiodj+buildbot
  2019-04-24 12:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 22:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bf12844a68f3f4f267846a19df6a280f53e7ec5f ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: bf12844a68f3f4f267846a19df6a280f53e7ec5f

gdb/iq2000: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* gdb/iq2000-tdep.c (iq2000_unwind_sp): Delete.
	(iq2000_unwind_pc): Delete.
	(iq2000_dummy_id): Delete.
	(iq2000_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/aarch64: Use type_align instead of aarch64_type_align
@ 2019-04-23 22:46 sergiodj+buildbot
  2019-04-24  2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 22:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b907456c3eb8a08f6b211f66abb448df962749e1 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: b907456c3eb8a08f6b211f66abb448df962749e1

gdb/aarch64: Use type_align instead of aarch64_type_align

Replaces use of aarch64_type_align with common type_align function.

Doing this fixes a bug in aarch64_type_align where static fields are
considered as part of the alignment calculation of a struct, which
results in arguments passed on the stack being misaligned.  This bug
is exposed in the new test gdb.cp/many-args.exp.

Part of the old aarch64_type_align is retained and used as the gdbarch
type align callback in order to correctly align vectors.

gdb/ChangeLog:

	* aarch64-tdep.c (aarch64_type_align): Only handle vector override
	case.
	(pass_on_stack): Use type_align.
	(aarch64_gdbarch_init): Register aarch64_type_align gdbarch
	function.

gdb/testsuite/ChangeLog:

	* gdb.cp/many-args.cc: New file.
	* gdb.cp/many-args.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/lm32: Use default gdbarch methods where possible
@ 2019-04-23 22:47 sergiodj+buildbot
  2019-04-24 14:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 22:47 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 946c28d2f93789ff4eec86a8c321af35759fa20a ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 946c28d2f93789ff4eec86a8c321af35759fa20a

gdb/lm32: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* gdb/lm32-tdep.c (lm32_unwind_sp): Delete.
	(lm32_unwind_pc): Delete.
	(lm32_dummy_id): Delete.
	(lm32_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/m32c: Use default gdbarch methods where possible
@ 2019-04-23 23:54 sergiodj+buildbot
  2019-04-24 15:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 23:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 89b268d8233e11acdfbc5af196166aacc1440ff3 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 89b268d8233e11acdfbc5af196166aacc1440ff3

gdb/m32c: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* m32c-tdep.c (m32c_unwind_pc): Delete.
	(m32c_unwind_sp): Delete.
	(m32c_dummy_id): Delete.
	(m32c_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/moxie: Use default gdbarch methods where possible
@ 2019-04-24  1:15 sergiodj+buildbot
  2019-04-25  3:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24  1:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 27f113c8e9b2361caf3dfcf15437020306bf93b9 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 27f113c8e9b2361caf3dfcf15437020306bf93b9

gdb/moxie: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* moxie-tdep.c (moxie_unwind_sp): Delete.
	(moxie_unwind_pc): Delete.
	(moxie_dummy_id): Delete.
	(moxie_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/msp430: Use default gdbarch methods where possible
@ 2019-04-24  1:32 sergiodj+buildbot
  2019-04-25  5:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24  1:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c825904428f7c89a65eeb313b243f65e950a0a19 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: c825904428f7c89a65eeb313b243f65e950a0a19

gdb/msp430: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* msp430-tdep.c (msp430_unwind_pc): Delete.
	(msp430_unwind_sp): Delete.
	(msp430_dummy_id): Delete.
	(msp430_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/nds32: Use default gdbarch methods where possible
@ 2019-04-24  1:49 sergiodj+buildbot
  2019-04-25  7:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24  1:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ca0ab0aa8194eda711cf52efe6c26cb821218476 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: ca0ab0aa8194eda711cf52efe6c26cb821218476

gdb/nds32: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* nds32-tdep.c (nds32_dummy_id): Delete.
	(nds32_unwind_pc): Delete.
	(nds32_unwind_sp): Delete.
	(nds32_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/or1k: Use default gdbarch methods where possible
@ 2019-04-24  2:22 sergiodj+buildbot
  2019-04-25 10:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24  2:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3f2cef4945a916e3b566010340bbc70cfe927916 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 3f2cef4945a916e3b566010340bbc70cfe927916

gdb/or1k: Use default gdbarch methods where possible

Make use of the default gdbarch method gdbarch_dummy_id where
possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

This commit leaves or1k_unwind_sp and or1k_unwind_pc in place.  These
functions do match the default methods except that they add additional
debugging code.  In order to preserve the debug I have left these
functions unchanged.

gdb/ChangeLog:

	* or1k-tdep.c (or1k_dummy_id): Delete.
	(or1k_gdbarch_init): Don't register deleted function with gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/sparc: Use default_unwind_pc
@ 2019-04-24  3:46 sergiodj+buildbot
  2019-04-25 20:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24  3:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d31f262c36a450fe64e5886228d585c75cfecf14 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: d31f262c36a450fe64e5886228d585c75cfecf14

gdb/sparc: Use default_unwind_pc

Make use of the default gdbarch method gdbarch_unwind_pc where
possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* sparc-tdep.c (sparc_unwind_pc): Delete.
	(sparc32_gdbarch_init): Don't register deleted function with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/xstormy16: Use default gdbarch methods where possible
@ 2019-04-24  5:07 sergiodj+buildbot
  2019-04-26  5:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24  5:07 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 14faed38e730e3ab2a1aa8d5232b4883638fd857 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 14faed38e730e3ab2a1aa8d5232b4883638fd857

gdb/xstormy16: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* xstormy16-tdep.c (xstormy16_unwind_sp): Delete.
	(xstormy16_unwind_pc): Delete.
	(xstormy16_dummy_id): Delete.
	(xstormy16_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/rl78: Use default gdbarch methods where possible
@ 2019-04-24  5:24 sergiodj+buildbot
  2019-04-26  6:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24  5:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b614e6f3f820fe08d407b57821456f672d4d1a6f ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: b614e6f3f820fe08d407b57821456f672d4d1a6f

gdb/rl78: Use default gdbarch methods where possible

Make use of the default gdbarch method gdbarch_unwind_sp where
possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* rl78-tdep.c (rl78_unwind_sp): Delete.
	(rl78_gdbarch_init): Don't register deleted function with gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/arm: Use type_align instead of arm_type_align
@ 2019-04-24  7:30 sergiodj+buildbot
  2019-04-24  8:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24  7:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 030197b43cd8ccfe6869f798dd39fa27a29c0e01 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 030197b43cd8ccfe6869f798dd39fa27a29c0e01

gdb/arm: Use type_align instead of arm_type_align

Replaces use of arm_type_align with common type_align function.

Doing this fixes a bug in arm_type_align where static fields are
considered as part of the alignment calculation of a struct, which
results in arguments passed on the stack being misaligned, this bug
was causing a failure in gdb.cp/many-args.exp.

Part of the old arm_type_align is retained and used as the gdbarch
type align callback in order to correctly align vectors.

gdb/ChangeLog:

	* arm-tdep.c (arm_type_align): Only handle vector override case.
	(arm_push_dummy_call): Use type_align.
	(arm_gdbarch_init): Register arm_type_align gdbarch function.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/nds32: Use type_align instead of nds32_type_align
@ 2019-04-24  9:52 sergiodj+buildbot
  2019-04-24 11:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24  9:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ecbc06d2a687f369da7c304201c9f2cbfed80ec6 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: ecbc06d2a687f369da7c304201c9f2cbfed80ec6

gdb/nds32: Use type_align instead of nds32_type_align

The general type_align method should be a suitable alternative to
nds32_type_align, so switch to use that.

The only change this will introduce is related to static fields in a
struct or union, the existing code doesn't take account of static
fields when computing the alignment for structs of unions, though this
is probably a bug - which would probably be exposed by the test case
gdb.cp/many-args.exp, though I don't have any way to test this target
right now.

gdb/ChangeLog:

	* nds32-tdep.c (nds32_type_align): Delete.
	(nds32_push_dummy_call): Use type_align instead.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/m32r: Use default gdbarch methods where possible
@ 2019-04-24 17:03 sergiodj+buildbot
  2019-04-24 17:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 17:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5e79b7bb69c797c3ca401cfa0f7a616eb2e3efe8 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 5e79b7bb69c797c3ca401cfa0f7a616eb2e3efe8

gdb/m32r: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* m32r-tdep.c (m32r_unwind_sp): Delete.
	(m32r_unwind_pc): Delete.
	(m32r_dummy_id): Delete.
	(m32r_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix passing of struct with bitfields on x86-64
@ 2019-04-24 18:26 sergiodj+buildbot
  2019-04-26 14:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 18:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a59240a41ac34d91e4ef5dd8b484763639388364 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: a59240a41ac34d91e4ef5dd8b484763639388364

Fix passing of struct with bitfields on x86-64

Commit 4aa866af ("Fix AMD64 return value ABI in expression
evaluation") introduced a regression when calling a function with a
structure that contains bitfields.

Because the caller of amd64_has_unaligned_fields handles bitfields
already, it seemed to me that the simplest fix was to ignore bitfields
here.

gdb/ChangeLog
2019-04-24  Tom Tromey  <tromey@adacore.com>

	* amd64-tdep.c (amd64_has_unaligned_fields): Ignore bitfields.

gdb/testsuite/ChangeLog
2019-04-24  Tom Tromey  <tromey@adacore.com>

	* gdb.arch/amd64-eval.exp: Test bitfield return.
	* gdb.arch/amd64-eval.cc (struct Bitfields): New.
	(class Foo) <return_bitfields>: New method.
	(main): Call it.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix Rust testing
@ 2019-04-24 20:48 sergiodj+buildbot
  2019-04-26 18:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 20:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1670072efb31e82d52d408940062860e2835d79c ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 1670072efb31e82d52d408940062860e2835d79c

Fix Rust testing

This changes the gdb test suite to omit -fno-stack-protector when
compiling Rust code.  This makes Rust testing work again.

I think I saw this patch somewhere already, but I couldn't find it
again just now, so I'm checking this version in.

gdb/testsuite/ChangeLog
2019-04-24  Tom Tromey  <tromey@adacore.com>

	* lib/gdb.exp (gdb_compile): Don't add -fno-stack-protector for
	Rust.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/mep: Use default gdbarch methods where possible
@ 2019-04-24 23:39 sergiodj+buildbot
  2019-04-24 23:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 23:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8e2b5aea9d3f16961f7fac15caec00e955c1dc81 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 8e2b5aea9d3f16961f7fac15caec00e955c1dc81

gdb/mep: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* mep-tdep.c (mep_unwind_pc): Delete.
	(mep_unwind_sp): Delete.
	(mep_dummy_id): Delete.
	(mep_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/rx: Use default gdbarch methods where possible
@ 2019-04-25 13:08 sergiodj+buildbot
  2019-04-25 15:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 13:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 47c47d6907bc44a599baff948d2809616c74c44e ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 47c47d6907bc44a599baff948d2809616c74c44e

gdb/rx: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* rx-tdep.c (rx_unwind_pc): Delete.
	(rx_unwind_sp): Delete.
	(rx_dummy_id): Delete.
	(rx_gdbarch_init): Don't register deleted functions with
	gdbarch.  Update comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [BFD, AArch64] Improve bti/pac plts.
@ 2019-04-25 13:53 sergiodj+buildbot
  2019-04-26 22:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 13:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 68bb0359eec3093560929b8ad2b3f5d30e7a7e1d ***

Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 68bb0359eec3093560929b8ad2b3f5d30e7a7e1d

[BFD, AArch64] Improve bti/pac plts.

This patch aims to improve the definitions of BTI and PAC based PLTs.
The following changes are made:
   * PLT0 does not need PAC instructions since the PLTGOT[2] (and PLTGOT[1])
     are readonly so they cannot be corrupted at runtime. Thus both PAC plt0
     and BTI+PAC plt0 are removed and we can use basic plt0 and BTI plt0
     instead, respectively.
   * We can remove the extra padding nops when we add the new bti instructions.
     BTI plt0 and BTI TLSDESC plt are updated.
   * For better performance PLTn could be padded to 24bytes. Both BTI pltn and
     PAC pltn are updated.

*** bfd/ChangeLog ***

2019-04-25  Sudakshina Das  <sudi.das@arm.com>

	* elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): Remove.
	(PLT_BTI_TLSDESC_ENTRY_SIZE): Remove.
	(PLT_PAC_ENTRY_SIZE, PLT_BTI_PAC_ENTRY_SIZE): Remove.
	(PLT_BTI_SMALL_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): Update.
	(elfNN_aarch64_small_plt0_pac_entry): Remove.
	(elfNN_aarch64_small_plt0_bti_pac_entry): Remove.
	(elfNN_aarch64_small_plt0_bti_entry): Update.
	(elfNN_aarch64_small_plt_bti_entry): Update.
	(elfNN_aarch64_small_plt_pac_entry): Update.
	(elfNN_aarch64_tlsdesc_small_plt_bti_entry): Update.
	(setup_plt_values): Setup new entries.
	(elfNN_aarch64_finish_dynamic_sections): Remove size change.
	(elfNN_aarch64_plt_sym_val): Likewise.

*** ld/ChangeLog ***

2019-04-25  Sudakshina Das  <sudi.das@arm.com>

	* testsuite/ld-aarch64/bti-pac-plt-1.d: Update.
	* testsuite/ld-aarch64/bti-pac-plt-2.d: Update.
	* testsuite/ld-aarch64/bti-plt-1.d: Update.
	* testsuite/ld-aarch64/bti-plt-3.d: Update.
	* testsuite/ld-aarch64/bti-plt-5.d: Update.
	* testsuite/ld-aarch64/pac-plt-1.d: Update.
	* testsuite/ld-aarch64/pac-plt-2.d: Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Implement dump of mappings with ELF headers by gcore
@ 2019-04-25 19:20 sergiodj+buildbot
  2019-04-27  3:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 19:20 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 57e5e645010430b3d73f8c6a757d09f48dc8f8d5 ***

Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 57e5e645010430b3d73f8c6a757d09f48dc8f8d5

Implement dump of mappings with ELF headers by gcore

This patch has a long story, but it all started back in 2015, with
commit df8411da087dc05481926f4c4a82deabc5bc3859 ("Implement support
for checking /proc/PID/coredump_filter").  The purpose of that commit
was to bring GDB's corefile generation closer to what the Linux kernel
does.  However, back then, I did not implement the full support for
the dumping of memory mappings containing ELF headers (like mappings
of DSOs or executables).  These mappings were being dumped most of
time, though, because the default value of /proc/PID/coredump_filter
is 0x33, which would cause anonymous private mappings (DSOs/executable
code mappings have this type) to be dumped.  Well, until something
happened on binutils...

A while ago, I noticed something strange was happening with one of our
local testcases on Fedora GDB: it was failing due to some strange
build-id problem.  On Fedora GDB, we (unfortunately) carry a bunch of
"local" patches, and some of these patches actually extend upstream's
build-id support in order to generate more useful information for the
user of a Fedora system (for example, when the user loads a corefile
into GDB, we detect whether the executable that generated that
corefile is present, and if it's not we issue a warning suggesting
that it should be installed, while also providing the build-id of the
executable).  A while ago, Fedora GDB stopped printing those warnings.

I wanted to investigate this right away, and spent some time trying to
determine what was going on, but other things happened and I got
sidetracked.  Meanwhile, the bug started to be noticed by some of our
users, and its priority started changing.  Then, someone on IRC also
mentioned the problem, and when I tried helping him, I noticed he
wasn't running Fedora.  Hm...  So maybe the bug was *also* present
upstream.

After "some" time investigating, and with a lot of help from Keith and
others, I was finally able to determine that yes, the bug is also
present upstream, and that even though it started with a change in ld,
it is indeed a GDB issue.

So, as I said, the problem started with binutils, more specifically
after the following commit was pushed:

  commit f6aec96dce1ddbd8961a3aa8a2925db2021719bb
  Author: H.J. Lu <hjl.tools@gmail.com>
  Date:   Tue Feb 27 11:34:20 2018 -0800

      ld: Add --enable-separate-code

This commit makes ld use "-z separate-code" by default on x86-64
machines.  What this means is that code pages and data pages are now
separated in the binary, which is confusing GDB when it tries to decide
what to dump.

BTW, Fedora 28 binutils doesn't have this code, which means that
Fedora 28 GDB doesn't have the problem.  From Fedora 29 on, binutils
was rebased and incorporated the commit above, which started causing
Fedora GDB to fail.

Anyway, the first thing I tried was to pass "-z max-page-size" and
specify a bigger page size (I saw a patch that did this and was
proposed to Linux, so I thought it might help).  Obviously, this
didn't work, because the real "problem" is that ld will always use
separate pages for code and data.  So I decided to look into how GDB
dumped the pages, and that's where I found the real issue.

What happens is that, because of "-z separate-code", the first two pages
of the ELF binary are (from /proc/PID/smaps):

  00400000-00401000 r--p 00000000 fc:01 799548                             /file
  Size:                  4 kB
  KernelPageSize:        4 kB
  MMUPageSize:           4 kB
  Rss:                   4 kB
  Pss:                   4 kB
  Shared_Clean:          0 kB
  Shared_Dirty:          0 kB
  Private_Clean:         4 kB
  Private_Dirty:         0 kB
  Referenced:            4 kB
  Anonymous:             0 kB
  LazyFree:              0 kB
  AnonHugePages:         0 kB
  ShmemPmdMapped:        0 kB
  Shared_Hugetlb:        0 kB
  Private_Hugetlb:       0 kB
  Swap:                  0 kB
  SwapPss:               0 kB
  Locked:                0 kB
  THPeligible:    0
  VmFlags: rd mr mw me dw sd
  00401000-00402000 r-xp 00001000 fc:01 799548                             /file
  Size:                  4 kB
  KernelPageSize:        4 kB
  MMUPageSize:           4 kB
  Rss:                   4 kB
  Pss:                   4 kB
  Shared_Clean:          0 kB
  Shared_Dirty:          0 kB
  Private_Clean:         0 kB
  Private_Dirty:         4 kB
  Referenced:            4 kB
  Anonymous:             4 kB
  LazyFree:              0 kB
  AnonHugePages:         0 kB
  ShmemPmdMapped:        0 kB
  Shared_Hugetlb:        0 kB
  Private_Hugetlb:       0 kB
  Swap:                  0 kB
  SwapPss:               0 kB
  Locked:                0 kB
  THPeligible:    0
  VmFlags: rd ex mr mw me dw sd

Whereas before, we had only one:

  00400000-00401000 r-xp 00000000 fc:01 798593                             /file
  Size:                  4 kB
  KernelPageSize:        4 kB
  MMUPageSize:           4 kB
  Rss:                   4 kB
  Pss:                   4 kB
  Shared_Clean:          0 kB
  Shared_Dirty:          0 kB
  Private_Clean:         0 kB
  Private_Dirty:         4 kB
  Referenced:            4 kB
  Anonymous:             4 kB
  LazyFree:              0 kB
  AnonHugePages:         0 kB
  ShmemPmdMapped:        0 kB
  Shared_Hugetlb:        0 kB
  Private_Hugetlb:       0 kB
  Swap:                  0 kB
  SwapPss:               0 kB
  Locked:                0 kB
  THPeligible:    0
  VmFlags: rd ex mr mw me dw sd

Notice how we have "Anonymous" data mapped into the page.  This will be
important.

So, the way GDB decides which pages it should dump has been revamped
by my patch in 2015, and now it takes the contents of
/proc/PID/coredump_filter into account.  The default value for Linux
is 0x33, which means:

  Dump anonymous private, anonymous shared, ELF headers and HugeTLB
  private pages.

Or:

  filter_flags filterflags = (COREFILTER_ANON_PRIVATE
			      | COREFILTER_ANON_SHARED
			      | COREFILTER_ELF_HEADERS
			      | COREFILTER_HUGETLB_PRIVATE);

Now, it is important to keep in mind that GDB doesn't always have *all*
of the necessary information to exactly determine the type of a page, so
the whole algorithm is based on heuristics (you can take a look at
linux-tdep.c:dump_mapping_p and
linux-tdep.c:linux_find_memory_regions_full for more info).

Before the patch to make ld use "-z separate-code", the (single) page
containing data and code was being flagged as an anonymous (due to the
non-zero "Anonymous:" field) private (due to the "r-xp" permission),
which means that it was being dumped into the corefile.  That's why it
was working fine.

Now, as you can imagine, when "-z separate-code" is used, the *data*
page (which is where the ELF notes are, including the build-id one) now
doesn't have any "Anonymous:" mapping, so the heuristic is flagging it
as file-backed private, which is *not* dumped by default.

The next question I had to answer was: how come a corefile generated by
the Linux kernel was correct?  Well, the answer is that GDB, unlike
Linux, doesn't actually implement the COREFILTER_ELF_HEADERS support.
On Linux, even though the data page is also treated as a file-backed
private mapping, it is also checked to see if there are any ELF headers
in the page, and then, because we *do* have ELF headers there, it is
dumped.

So, after more time trying to think of ways to fix this, I was able to
implement an algorithm that reads the first few bytes of the memory
mapping being processed, and checks to see if the ELF magic code is
present.  This is basically what Linux does as well, except that, if
it finds the ELF magic code, it just dumps one page to the corefile,
whereas GDB will dump the whole mapping.  But I don't think that's a
big issue, to be honest.

It's also important to explain that we *only* perform the ELF magic
code check if:

  - The algorithm has decided *not* to dump the mapping so far, and;
  - The mapping is private, and;
  - The mapping's offset is zero, and;
  - The user has requested us to dump mappings with ELF headers.

IOW, we're not going to blindly check every mapping.

As for the testcase, I struggled even more trying to write it.  Since
our build-id support on upstream GDB is not very extensive, it's not
really possible to determine whether a corefile contains build-id
information or not just by using GDB.  So, after thinking a lot about
the problem, I decided to rely on an external tool, eu-unstrip, in
order to verify whether the dump was successful.  I verified the test
here on my machine, and everything seems to work as expected (i.e., it
fails without the patch, and works with the patch applied).  We are
working hard to upstream our "local" Fedora GDB patches, and we intend
to submit our build-id extension patches "soon", so hopefully we'll be
able to use GDB itself to perform this verification.

I built and regtested this on the BuildBot, and no problems were
found.

gdb/ChangeLog:
2019-04-25  Sergio Durigan Junior  <sergiodj@redhat.com>

	PR corefiles/11608
	PR corefiles/18187
	* linux-tdep.c (dump_mapping_p): Add new parameters ADDR and
	OFFSET.  Verify if current mapping contains an ELF header.
	(linux_find_memory_regions_full): Adjust call to
	dump_mapping_p.

gdb/testsuite/ChangeLog:
2019-04-25  Sergio Durigan Junior  <sergiodj@redhat.com>

	PR corefiles/11608
	PR corefiles/18187
	* gdb.base/coredump-filter-build-id.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make SJLJ exceptions more efficient
@ 2019-04-25 19:44 sergiodj+buildbot
  2019-04-27 10:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 19:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c6fdd8b2052baa9b7a27d4d34f109c9622b53509 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: c6fdd8b2052baa9b7a27d4d34f109c9622b53509

Make SJLJ exceptions more efficient

This changes the SJLJ exception handling code to be a bit more
efficient, by using rvalue references and move assignment when
possible.

Tested by the buildbot.

gdb/ChangeLog
2019-04-25  Tom Tromey  <tromey@adacore.com>

	* event-top.c (gdb_rl_callback_read_char_wrapper_noexcept)
	(gdb_rl_callback_handler): Use std::move.
	* common/common-exceptions.h (struct gdb_exception): Add move
	assignment operator.
	(throw_exception_sjlj): Change "exception" to const reference.
	* common/common-exceptions.c (exceptions_state_mc_catch): Update.
	(throw_exception_sjlj): Change "exception" to const reference.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] c++/24367: Infinite recursion of typedef substitution
@ 2019-04-25 20:51 sergiodj+buildbot
  2019-04-27 18:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 20:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 725cbb63263d27e87f5a4f9b73281e7710de53e4 ***

Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: 725cbb63263d27e87f5a4f9b73281e7710de53e4

c++/24367: Infinite recursion of typedef substitution

This bug finds another usage where we end up segfaulting while
normalizing user input.  inspect_type and replace_type recurse,
attempting to substitute the "real" symbol name for the typedef name.
However, since the both these names are the same, they keep calling
each other until the stack overflows.

A simple reproducer for it is given by

  typedef struct foo foo;
  int qux (foo *f) { return 0; }

  (gdb) b qux(foo*)
  Segmentation fault

inspect_type already contains some special handling to prevent a
similar situation from occurring with namespaces.  I wonder, however,
whether we need be so pedantic about the exact nature of the substitution.

This patch implements this rather more aggressive assumption that these
substitutions should be avoided whenever the replacement symbol's name is
exactly the same as the one we're trying to substitute.  [In the above
example, we're trying to substitute the tyepdef named "foo" with the symbol
named "foo" (a struct).]

gdb/ChangeLog:

	PR c++/24367
	* cp-support.c (inspect_type): Don't attempt substitutions
	of symbol with the same name.

gdb/testsuite/ChangeLog:

	PR c++/24367
	* gdb.cp/meth-typedefs.cc (incomplete_struct)
	(another_incomplete_struct, test_incomplete): New definitions.
	(main): Use new definitions.
	* gdb.cp/meth-typedefs.exp: Add new tests for `test_incomplete'
	functions.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/tilegx: Use default gdbarch methods where possible
@ 2019-04-25 23:25 sergiodj+buildbot
  2019-04-25 23:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 23:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0f534d767b257fffd8a9b231c97ff9ed33688452 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 0f534d767b257fffd8a9b231c97ff9ed33688452

gdb/tilegx: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* tilegx-tdep.c (tilegx_unwind_sp): Delete.
	(tilegx_unwind_pc): Delete.
	(tilegx_unwind_dummy_id): Delete.
	(tilegx_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/s12z: Use default gdbarch methods where possible
@ 2019-04-26  8:03 sergiodj+buildbot
  2019-04-26  9:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-26  8:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f872fdbb5b83f39f359bc1cd016dcc0456cb0c0a ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: f872fdbb5b83f39f359bc1cd016dcc0456cb0c0a

gdb/s12z: Use default gdbarch methods where possible

Make use of the default gdbarch methods for gdbarch_unwind_pc, and
gdbarch_unwind_sp where possible.

I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.

gdb/ChangeLog:

	* s12z-tdep.c (s12z_unwind_pc): Delete.
	(s12z_unwind_sp): Delete.
	(s12z_gdbarch_init): Don't register deleted functions with
	gdbarch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use "pulongest" on aarch64-tdep.c:aarch64_gdbarch_init
@ 2019-04-26 15:11 sergiodj+buildbot
  2019-04-26 16:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-26 15:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 596179f77c803d3fc5586465f4ece6503055d035 ***

Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 596179f77c803d3fc5586465f4ece6503055d035

Use "pulongest" on aarch64-tdep.c:aarch64_gdbarch_init

While trying to build GDB on i686, I found the following error:

 In file included from ../../gdb/common/common-defs.h:105,
                  from ../../gdb/defs.h:28,
                  from ../../gdb/aarch64-tdep.c:21:
 ../../gdb/aarch64-tdep.c: In function 'gdbarch* aarch64_gdbarch_init(gdbarch_info, gdbarch_list*)':
 ../../gdb/aarch64-tdep.c:3176:43: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'uint64_t' {aka 'long long unsigned int'} [-Werror=format=]
  3176 |     internal_error (__FILE__, __LINE__, _("VQ out of bounds: %ld (max %d)"),
       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ../../gdb/common/gdb_locale.h:28:29: note: in definition of macro '_'
    28 | # define _(String) gettext (String)
       |                             ^~~~~~
 ../../gdb/aarch64-tdep.c:3176:64: note: format string is defined here
  3176 |     internal_error (__FILE__, __LINE__, _("VQ out of bounds: %ld (max %d)"),
       |                                                              ~~^
       |                                                                |
       |                                                                long int
       |                                                              %lld

This happens because aarch64-tdep.c:aarch64_gdbarch_init prints a
"uint64_t" variable using "%ld".  This patch fixes the build by using
"pulongest" instead.  As explained in a similar fix (commit
495143533ad95369811391c6e3c6dadd69d7dd67), this should be safe because
if aarch64-tdep.c is included in the build, then ULONGEST must be a
64-bit type.

gdb/ChangeLog:
2019-04-24  Sergio Durigan Junior  <sergiodj@redhat.com>

	* aarch64-tdep.c (aarch64_gdbarch_init): Use "pulongest" to print
	"vq".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [PATCH] Support for DW_FORM_strx tag
@ 2019-04-27  3:38 sergiodj+buildbot
  2019-04-27  5:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-27  3:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cf532bd13616fbabe487d98107cde3202ad58ab7 ***

Author: Ali Tamur <tamur@google.com>
Branch: master
Commit: cf532bd13616fbabe487d98107cde3202ad58ab7

[PATCH] Support for DW_FORM_strx tag

DW_FORM_strx is the new name of DW_FORM_GNU_str_index in the Dwarf 5 standard.
This is a small step towards supporting Dwarf 5 in gdb.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Avoid undefined behavior in Guile exception handling
@ 2019-04-27 10:41 sergiodj+buildbot
  2019-04-27 11:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 10:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 680d7fd5fcff860a31021845389d4dfeb7b42e3c ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 680d7fd5fcff860a31021845389d4dfeb7b42e3c

Avoid undefined behavior in Guile exception handling

The Guile code will longjmp (via scm_throw) when an object requiring
destruction is on the stack.  This is undefined behavior.

This changes this code to run any destructors in inner scopes, and to
pass a POD to gdbscm_throw_gdb_exception.

gdb/ChangeLog
2019-04-25  Tom Tromey  <tromey@adacore.com>

	* guile/scm-exception.c (gdbscm_scm_from_gdb_exception)
	(gdbscm_throw_gdb_exception): Take a gdbscm_gdb_exception.
	* guile/scm-block.c, guile/scm-breakpoint.c, guile/scm-cmd.c,
	guile/scm-disasm.c, guile/scm-frame.c, guile/scm-lazy-string.c,
	guile/scm-math.c, guile/scm-param.c, guile/scm-ports.c,
	guile/scm-symbol.c, guile/scm-symtab.c, guile/scm-type.c,
	guile/scm-value.c: Use unpack.
	* guile/guile-internal.h (gdbscm_scm_from_gdb_exception): Take a
	gdbscm_gdb_exception.
	(gdbscm_throw_gdb_exception): Likewise.
	(struct gdbscm_gdb_exception): New.
	(unpack): New function.
	(gdbscm_wrap): Use unpack.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Implement show | set may-call-functions [on|off]
@ 2019-04-27 11:41 sergiodj+buildbot
  2019-04-28  0:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 11:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 136afab8c7d8a8a91dbf38e79be4f9dc4125d552 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 136afab8c7d8a8a91dbf38e79be4f9dc4125d552

Implement show | set may-call-functions [on|off]

Inferior function calls are powerful but might lead to undesired
results such as crashes when calling nested functions (frequently
used in particular in Ada).

This implements a GDB setting to disable calling inferior functions.

Note: the idea is that if/when the 'slash command' patch is pushed,
that this setting can be changed e.g. by using the shortcut /c.

This is version 2 of the patch.  It handles all the received comments,
mostly replace 'can-call' by 'may-call', and avoid using
'inferior function call' in factor of 'calling function in the program'.

2019-04-26  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

gdb/ChangeLog
	* NEWS: Mention the new set|show may-call-functions.
	* infcall.c (may_call_functions_p): New variable.
	(show_may_call_functions_p): New function.
	(call_function_by_hand_dummy): Throws an error if not
	may-call-functions.
	(_initialize_infcall): Call add_setshow_boolean_cmd for
	may-call-functions.

gdb/testsuite/ChangeLog
	* gdb.base/callexit.exp: Test may-call-functions off.

gdb/doc/ChangeLog
	* gdb.texinfo (Calling): Document the new
	set|show may-call-functions.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make exception handling more efficient
@ 2019-04-27 12:26 sergiodj+buildbot
  2019-04-27 13:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 12:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 94aeb44b001ab2d632806242a3bacb0a879abe15 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 94aeb44b001ab2d632806242a3bacb0a879abe15

Make exception handling more efficient

This makes exception handling more efficient in a few spots, through
the use of const- and rvalue-references.

I wrote this patch by commenting out the gdb_exception copy
constructor and then examining the resulting error messages one by
one, introducing the use of std::move where appropriate.

gdb/ChangeLog
2019-04-25  Tom Tromey  <tromey@adacore.com>

	* xml-support.c (struct gdb_xml_parser) <set_error>: Take an
	rvalue reference.
	(gdb_xml_start_element_wrapper, gdb_xml_end_element_wrapper)
	(gdb_xml_parser::parse): Use std::move.
	* python/python-internal.h (gdbpy_convert_exception): Take a const
	reference.
	* python/py-value.c (valpy_getitem, valpy_nonzero): Use
	std::move.
	* python/py-utils.c (gdbpy_convert_exception): Take a const
	reference.
	* python/py-inferior.c (infpy_write_memory, infpy_search_memory):
	Use std::move.
	* python/py-breakpoint.c (bppy_set_condition, bppy_set_commands):
	Use std::move.
	* mi/mi-main.c (mi_print_exception): Take a const reference.
	* main.c (handle_command_errors): Take a const reference.
	* linespec.c (parse_linespec): Use std::move.
	* infcall.c (run_inferior_call): Use std::move.
	(call_function_by_hand_dummy): Use std::move.
	* exec.c (try_open_exec_file): Use std::move.
	* exceptions.h (exception_print, exception_fprintf)
	(exception_print_same): Update.
	* exceptions.c (print_exception, exception_print)
	(exception_fprintf, exception_print_same): Change parameters to
	const reference.
	* event-top.c (gdb_rl_callback_read_char_wrapper): Update.
	* common/new-op.c: Use std::move.
	* common/common-exceptions.h (struct gdb_exception): Add move
	constructor.
	(struct gdb_exception_error, struct gdb_exception_quit, struct
	gdb_quit_bad_alloc): Change constructor to move constructor.
	(throw_exception): Change parameter to rvalue reference.
	* common/common-exceptions.c (throw_exception): Take rvalue
	reference.
	* cli/cli-interp.c (safe_execute_command): Use std::move.
	* breakpoint.c (insert_bp_location, location_to_sals): Use
	std::move.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't complain undefined weak dynamic reference
@ 2019-04-27 20:23 sergiodj+buildbot
  2019-04-27 21:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 20:23 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c54f15248ee990df6cea0b4730cd61b227a0e082 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: c54f15248ee990df6cea0b4730cd61b227a0e082

Don't complain undefined weak dynamic reference

When undefined non-weak references in IR objects are optimized out
by LTO, we can have weak dynamic referencs to symbols marked with
bfd_link_hash_undefined.  We shouldn't complain such undefined weak
dynamic references.

bfd/

	PR ld/24486
	* elflink.c (elf_link_output_extsym): Don't complain undefined
	weak dynamic reference.

ld/

	PR ld/24486
	* testsuite/ld-plugin/lto.exp: Run PR ld/24486 tests.
	* testsuite/ld-plugin/pr24486a.c: New file.
	* testsuite/ld-plugin/pr24486b.c: Likewise.
	* testsuite/ld-plugin/pr24486c.c: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Have 'thread|frame apply' style their output.
@ 2019-04-28  1:28 sergiodj+buildbot
  2019-04-28  2:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-28  1:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8a522c6cab56bd55f1454638786f999f6f636354 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 8a522c6cab56bd55f1454638786f999f6f636354

Have 'thread|frame apply' style their output.

'thread|frame apply CMD' launches CMD so that CMD output goes to a string_file.
This patch ensures that string_file for such CMD output contains
style escape sequences that 'thread|frame apply' will later on
output on the real terminal, so as to have CMD output properly styled.

The idea is to have the class ui_file having overridable methods
to indicate that the output to this ui_file should be done using
'terminal' behaviour such as styling.
Then these methods are overriden in string_file so that a specially
constructed string_file will get output with style escape sequences.

After this patch, the output of CMD by thread|frame apply CMD is styled
similarly as when CMD is launched directly.
Note that string_file (term_out true) could also support wrapping,
but this is not done (yet?).

Tested on debian/amd64.

gdb/ChangeLog
2019-04-27  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	Support style in 'frame|thread apply'

	* gdbcmd.h (execute_command_to_string): New term_out parameter.
	* record.c (record_start, record_stop): Update callers of
	execute_command_to_string with false.
	* ui-file.h (class ui_file): New term_out and can_emit_style_escape
	methods.
	(class string_file): New constructor with term_out parameter.
	Override methods term_out and can_emit_style_escape.  New member
	term_out.
	(class stdio_file): Override can_emit_style_escape.
	(class tee_file): Override term_out and can_emit_style_escape.
	* utils.h (can_emit_style_escape): Remove.
	* utils.c (can_emit_style_escape): Likewise.
	Update all callers of can_emit_style_escape (SOMESTREAM) to
	SOMESTREAM->can_emit_style_escape.
	* source-cache.c (source_cache::get_source_lines): Likewise.
	* stack.c (frame_apply_command_count): Call execute_command_to_string
	passing the term_out characteristic of the current gdb_stdout.
	* thread.c (thr_try_catch_cmd): Likewise.
	* top.c (execute_command_to_string): pass term_out parameter
	to construct the string_file for the command output.
	* ui-file.c (term_cli_styling): New function (most code moved
	from utils.c can_emit_style_escape).
	(string_file::string_file, string_file::can_emit_style_escape,
	stdio_file::can_emit_style_escape, tee_file::term_out,
	tee_file::can_emit_style_escape): New functions.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Follow-up to Support style in 'frame|thread apply'
@ 2019-04-28  5:25 sergiodj+buildbot
  2019-04-28  6:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-28  5:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fa731fa0d400568fb1fd68c247fc0c55b53c2a2f ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: fa731fa0d400568fb1fd68c247fc0c55b53c2a2f

Follow-up to Support style in 'frame|thread apply'

Fix build problem when configuring with guile.
Fix the forgotten copy of ChangeLog info to ChangeLog.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] S12Z: Opcodes: Fix crash when trying to decode a truncated operation.
@ 2019-04-29 14:33 sergiodj+buildbot
  2019-04-29 16:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-29 14:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4a90ce955e5bcde074b8616ff9d20f9939a9a358 ***

Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: 4a90ce955e5bcde074b8616ff9d20f9939a9a358

S12Z: Opcodes: Fix crash when trying to decode a truncated operation.

opcodes/
	* s12z-opc.c (shift_discrim): Return OP_INVALID when reading fails.

gas/
	* testsuite/gas/s12z/truncated.d: New file.
	* testsuite/gas/s12z/truncated.s: New file.
	* testsuite/gas/s12z/s12z.exp: Add new test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/ada: Update some predicate functions to return bool
@ 2019-04-29 21:43 sergiodj+buildbot
  2019-04-29 22:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-29 21:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fc913e53c353218ba1a9efa423c08767691a682a ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: fc913e53c353218ba1a9efa423c08767691a682a

gdb/ada: Update some predicate functions to return bool

A later commit would like to make use of a pointer to the function
ada_is_string_type, however, this will require the function to return
a bool (so the signature matches).

As the ada_is_string_type is a predicate function, and its return
value is only ever used as either true or false, then this commit
updates the function to return a bool.

As a consequence ada_is_character_type needs to change too.

There should be no user visible changes after this commit.

gdb/ChangeLog:

	* ada-lang.c (ada_is_character_type): Change return type to bool.
	(ada_is_string_type): Likewise.
	* ada-lang.h (ada_is_character_type): Update declaration
	(ada_is_string_type): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Introduce new language field la_is_string_type_p
@ 2019-04-29 21:55 sergiodj+buildbot
  2019-04-30  2:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-29 21:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4be290b2517839872ef7de47230be8dbd291a7e5 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 4be290b2517839872ef7de47230be8dbd291a7e5

gdb: Introduce new language field la_is_string_type_p

This commit is preparation work for the next commit, and by itself
makes no user visible change to GDB.  I've split this work into a
separate commit in order to make code review easier.

This commit adds a new field 'la_is_string_type_p' to the language
struct, this predicate will return true if a type is a string type for
the given language.

Some languages already have a "is this a string" predicate that I was
able to reuse, while for other languages I've had to add a new
predicate.  In this case I took inspiration from the value printing
code for that language - what different conditions would result in
printing something as a string.

A default "is this a string" method has also been added that looks for
TYPE_CODE_STRING, this is the fallback I've used for a couple of
languages.

In this commit I add the new field and initialise it for each
language, however at this stage the new field is never used.

gdb/ChangeLog:

	* ada-lang.c (ada_language_defn): Initialise new field.
	* c-lang.c (c_is_string_type_p): New function.
	(c_language_defn): Initialise new field.
	(cplus_language_defn): Initialise new field.
	(asm_language_defn): Initialise new field.
	(minimal_language_defn): Initialise new field.
	* c-lang.h (c_is_string_type_p): Declare new function.
	* d-lang.c (d_language_defn): Initialise new field.
	* f-lang.c (f_is_string_type_p): New function.
	(f_language_defn): Initialise new field.
	* go-lang.c (go_is_string_type_p): New function.
	(go_language_defn): Initialise new field.
	* language.c (default_is_string_type_p): New function.
	(unknown_language_defn): Initialise new field.
	(auto_language_defn): Initialise new field.
	* language.h (struct language_defn) <la_is_string_type_p>: New
	member variable.
	(default_is_string_type_p): Declare new function.
	* m2-lang.c (m2_language_defn): Initialise new field.
	* objc-lang.c (objc_language_defn): Initialise new field.
	* opencl-lang.c (opencl_language_defn): Initialise new field.
	* p-lang.c (pascal_is_string_type_p): New function.
	(pascal_language_defn): Initialise new field.
	* rust-lang.c (rust_is_string_type_p): New function.
	(rust_language_defn): Initialise new field.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Introduce 'print max-depth' feature
@ 2019-04-29 22:12 sergiodj+buildbot
  2019-04-30  4:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-29 22:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2e62ab400ff96334c92e5acf0a462cb9dc0d19a7 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 2e62ab400ff96334c92e5acf0a462cb9dc0d19a7

gdb: Introduce 'print max-depth' feature

Introduce a new print setting max-depth which can be set with 'set
print max-depth DEPTH'.  The default value of DEPTH is 20, but this
can also be set to unlimited.

When GDB is printing a value containing nested structures GDB will
stop descending at depth DEPTH.  Here is a small example:

    typedef struct s1 { int a; } s1;
    typedef struct s2 { s1 b; } s2;
    typedef struct s3 { s2 c; } s3;
    typedef struct s4 { s3 d; } s4;

    s4 var = { { { { 3 } } } };

The following table shows how various depth settings affect printing
of 'var':

    | Depth Setting | Result of 'p var'              |
    |---------------+--------------------------------|
    |     Unlimited | $1 = {d = {c = {b = {a = 3}}}} |
    |             4 | $1 = {d = {c = {b = {a = 3}}}} |
    |             3 | $1 = {d = {c = {b = {...}}}}   |
    |             2 | $1 = {d = {c = {...}}}         |
    |             1 | $1 = {d = {...}}               |
    |             0 | $1 = {...}                     |

Only structures, unions, and arrays are replaced in this way, scalars
and strings are not replaced.

The replacement is counted from the level at which you print, not from
the top level of the structure.  So, consider the above example and
this GDB session:

    (gdb) set print max-depth 2
    (gdb) p var
    $1 = {d = {c = {...}}}
    (gdb) p var.d
    $2 = {c = {b = {...}}}
    (gdb) p var.d.c
    $3 = {b = {a = 3}}

Setting the max-depth to 2 doesn't prevent the user from exploring
deeper into 'var' by asking for specific sub-fields to be printed.

The motivation behind this feature is to try and give the user more
control over how much is printed when examining large, complex data
structures.

The default max-depth of 20 means that there is a change in GDB's
default behaviour.  Someone printing a data structure with 20 levels
of nesting will now see '{...}' instead of their data, they would need
to adjust the max depth, or call print again naming a specific field
in order to dig deeper into their data structure.  If this is
considered a problem then we could increase the default, or even make
the default unlimited.

This commit relies on the previous commit, which added a new field to
the language structure, this new field was a string that contained the
pattern that should be used when a structure/union/array is replaced
in the output, this allows languages to use a syntax that is more
appropriate, mostly this will be selecting the correct types of
bracket '(...)' or '{...}', both of which are currently in use.

This commit should have no impact on MI output, expressions are
printed through the MI using -var-create and then -var-list-children.
As each use of -var-list-children only ever displays a single level of
an expression then the max-depth setting will have no impact.

This commit also adds the max-depth mechanism to the scripting
language pretty printers following basically the same rules as for the
built in value printing.

One quirk is that when printing a value using the display hint 'map',
if the keys of the map are structs then GDB will hide the keys one
depth level after it hides the values, this ensures that GDB produces
output like this:

  $1 = map_object = {[{key1}] = {...}, [{key2}] = {...}}

Instead of this less helpful output:

  $1 = map_object = {[{...}] = {...}, [{...}] = {...}}

This is covered by the new tests in gdb.python/py-nested-maps.exp.

gdb/ChangeLog:

	* cp-valprint.c (cp_print_value_fields): Allow an additional level
	of depth when printing anonymous structs or unions.
	* guile/scm-pretty-print.c (gdbscm_apply_val_pretty_printer):
	Don't print either the top-level value, or the children if the
	max-depth is exceeded.
	(ppscm_print_children): When printing the key of a map, allow one
	extra level of depth.
	* python/py-prettyprint.c (gdbpy_apply_val_pretty_printer): Don't
	print either the top-level value, or the children if the max-depth
	is exceeded.
	(print_children): When printing the key of a map, allow one extra
	level of depth.
	* python/py-value.c (valpy_format_string): Add max_depth keyword.
	* valprint.c: (PRINT_MAX_DEPTH_DEFAULT): Define.
	(user_print_options): Initialise max_depth field.
	(val_print_scalar_or_string_type_p): New function.
	(val_print): Check to see if the max depth has been reached.
	(val_print_check_max_depth): Define new function.
	(show_print_max_depth): New function.
	(_initialize_valprint): Add 'print max-depth' option.
	* valprint.h (struct value_print_options) <max_depth>: New field.
	(val_print_check_max_depth): Declare new function.
	* NEWS: Document new feature.

gdb/doc/ChangeLog:

	* gdb.texinfo (Print Settings): Document 'print max-depth'.
	* guile.texi (Guile Pretty Printing API): Document that 'print
	max-depth' can effect the display of a values children.
	* python.texi (Pretty Printing API): Likewise.
	(Values From Inferior): Document max_depth keyword.

gdb/testsuite/ChangeLog:

	* gdb.base/max-depth.c: New file.
	* gdb.base/max-depth.exp: New file.
	* gdb.python/py-nested-maps.c: New file.
	* gdb.python/py-nested-maps.exp: New file.
	* gdb.python/py-nested-maps.py: New file.
	* gdb.python/py-format-string.exp (test_max_depth): New proc.
	(test_all_common): Call test_max_depth.
	* gdb.fortran/max-depth.exp: New file.
	* gdb.fortran/max-depth.f90: New file.
	* gdb.go/max-depth.exp: New file.
	* gdb.go/max-depth.go: New file.
	* gdb.modula2/max-depth.exp: New file.
	* gdb.modula2/max-depth.c: New file.
	* lib/gdb.exp (get_print_expr_at_depths): New proc.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Remove an unbalanced stray double quote from a comment
@ 2019-04-30 12:53 sergiodj+buildbot
  2019-04-30 13:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 12:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6fdcd7cc87a5e345a1c09fcf898012d80eb43ee1 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 6fdcd7cc87a5e345a1c09fcf898012d80eb43ee1

gdb: Remove an unbalanced stray double quote from a comment

What appears to be a stray double quote character in std-operator.def
causes incorrect highlighting in my editor.

The quote was introduced in this commit:

    commit 858be34c5a03bb8973679ebf00d360182434dc00
    Date:   Mon Sep 4 20:21:15 2017 +0100

        Handle "p S::method()::static_var" in the C++ parser

I can't see any reason why the quote should be there, so this commit
removes it.

gdb/ChangeLog:

	* std-operator.def: Remove unbalanced, stray double quote
	character.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Additional builtin procedures
@ 2019-04-30 13:16 sergiodj+buildbot
  2019-04-30 17:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 13:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b6d03bb2b65ac5c919f1d08674bbaa2a9bfb2d0c ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: b6d03bb2b65ac5c919f1d08674bbaa2a9bfb2d0c

gdb/fortran: Additional builtin procedures

Add some additional builtin procedures for Fortran, these are MOD,
CEILING, FLOOR, MODULO, and CMPLX.

gdb/ChangeLog:

	* f-exp.y (BINOP_INTRINSIC): New token.
	(exp): New parser rule handling BINOP_INTRINSIC.
	(f77_keywords): Add new builtin procedures.
	* f-lang.c (evaluate_subexp_f): Handle BINOP_MOD, UNOP_FORTRAN_CEILING,
	UNOP_FORTRAN_FLOOR, BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX.
	(operator_length_f): Handle UNOP_FORTRAN_CEILING,
	UNOP_FORTRAN_FLOOR, BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX.
	(print_unop_subexp_f): New function.
	(print_binop_subexp_f): New function.
	(print_subexp_f): Handle UNOP_FORTRAN_CEILING, UNOP_FORTRAN_FLOOR,
	BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX.
	(dump_subexp_body_f): Likewise.
	(operator_check_f): Likewise.
	* fortran-operator.def: Add UNOP_FORTRAN_CEILING, UNOP_FORTRAN_FLOOR,
	BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX

gdb/testsuite/ChangeLog:

	* gdb.fortran/intrinsics.exp: Extend to cover MOD, CEILING, FLOOR,
	MODULO, CMPLX.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: print function arguments when printing function type
@ 2019-04-30 13:50 sergiodj+buildbot
  2019-04-30 22:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 13:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bf7a4de1722a63c8b017d010e75d5e9e5e622f36 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: bf7a4de1722a63c8b017d010e75d5e9e5e622f36

gdb/fortran: print function arguments when printing function type

Before this commit using ptype on a Fortran function will include
information about the functions return type, but not the expected
arguments as it would for C or C++.  After this commit argument types
are included in the ptype output.

For example, before GDB prints:

    (gdb) ptype fun1
    type = integer(kind=4) ()
    (gdb) ptype is_bigger
    type = logical(kind=4) ()

and after GDB prints:

    (gdb) ptype fun1
    type = integer(kind=4) (integer(kind=4))
    (gdb) ptype is_bigger
    type = logical(kind=4) (integer(kind=4), integer(kind=4))

gdb/ChangeLog:

	* f-typeprint.c (f_type_print_varspec_suffix): Handle printing
	function arguments.

gdb/testsuite/ChangeLog:

	* gdb.fortran/ptype-on-functions.exp: New file.
	* gdb.fortran/ptype-on-functions.f90: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Introduce fortran-operator.def file
@ 2019-04-30 14:39 sergiodj+buildbot
  2019-04-30 15:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 14:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 83228e93efa82f84a132f7cec44d0e760d4ad22b ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 83228e93efa82f84a132f7cec44d0e760d4ad22b

gdb/fortran: Introduce fortran-operator.def file

Future commits will add more Fortran specific expression operators.

In preparation for these new operators, this commit adds a new
fortran-operator.def file similar to how GDB already has
ada-operator.def.

I've moved UNOP_KIND the Fortran specific operator I introduced in
commit 4d00f5d8f6c4 into this file, and renamed it to make it clearer
that the operator is Fortran specific.  I've then updated the Fortran
exp_descriptor table (exp_descriptor_f) to use entirely Fortran
specific functions that now handle UNOP_FORTRAN_KIND (the new name for
UNOP_KIND).

There should be no visible changes for standard users after this
commit, though for developers, the output when 'set debug expression
1' is now better, before:

  (gdb) p kind (l1)
  Dump of expression @ 0x2ccc7a0, before conversion to prefix form:
  	Language fortran, 5 elements, 16 bytes each.
  	Index                Opcode         Hex Value  String Value
  	    0          OP_VAR_VALUE  42  *...............
  	    1               OP_NULL  47730176  .N..............
  	    2          BINOP_INTDIV  47729184   J..............
  	    3          OP_VAR_VALUE  42  *...............
  	    4             UNOP_KIND  78  N...............
  Dump of expression @ 0x2ccc7a0, after conversion to prefix form:
  Expression: `Invalid expression
  (gdb)

and after:

  (gdb) p kind (l1)
  Dump of expression @ 0x294d0b0, before conversion to prefix form:
  	Language fortran, 5 elements, 16 bytes each.
  	Index                Opcode         Hex Value  String Value
  	    0          OP_VAR_VALUE  40  (...............
  	    1   unknown opcode: 224  44088544  ................
  	    2   unknown opcode: 208  44087504  ................
  	    3          OP_VAR_VALUE  40  (...............
  	    4     UNOP_FORTRAN_KIND  119  w...............
  Dump of expression @ 0x294d0b0, after conversion to prefix form:
  Expression: `KIND(test::l1)'
  	Language fortran, 5 elements, 16 bytes each.

  	    0  UNOP_FORTRAN_KIND
  	    1    OP_VAR_VALUE          Block @0x2a0bce0, symbol @0x2a0b8d0 (l1)
  $1 = 1
  (gdb)

gdb/ChangeLog:

	* gdb/expprint.c (dump_subexp_body_standard): Remove use of
	UNOP_KIND.
	* gdb/expression.h (exp_opcode): Include 'fortran-operator.def'.
	* gdb/f-exp.y (exp): Rename UNOP_KIND to UNOP_FORTRAN_KIND.
	* gdb/f-lang.c (evaluate_subexp_f): Likewise.
	(operator_length_f): New fuction.
	(print_subexp_f): New function.
	(op_name_f): New function.
	(dump_subexp_body_f): New function.
	(operator_check_f): New function.
	(exp_descriptor_f): Replace standard expression handling functions
	with new functions.
	* gdb/fortran-operator.def: New file.
	* gdb/parse.c (operator_length_standard): Remove use of UNOP_KIND.
	* gdb/std-operator.def: Remove UNOP_KIND.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix crash in dwarf2read.c with template parameters
@ 2019-04-30 15:12 sergiodj+buildbot
  2019-05-01  8:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 15:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a776957c8c3a9177345ee7ca91077234ed7f508e ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: a776957c8c3a9177345ee7ca91077234ed7f508e

Fix crash in dwarf2read.c with template parameters

PR c++/24470 concerns a crash in dwarf2read.c that occurs with a
particular test case.

The issue turns out to be that process_structure_scope will pass NULL
to symbol_symtab.  This happens because new_symbol decided not to
create a symbol for the particular DIE.

This patch fixes the problem by finding another reasonably-appropriate
symtab to use instead; issuing a complaint if one cannot be found for
some reason.

As mentioned in the bug, I think there are other bugs here.  For
example, when using "ptype" on the "l" object in the test case, I
think I would expect to see the template parameter.  I didn't research
this too closely, since it seemed more important to fix the crash.

Tested on x86-64 Fedora 29.

I'd like to check this in to the 8.3 branch as well.

2019-04-30  Tom Tromey  <tromey@adacore.com>

	PR c++/24470:
	* dwarf2read.c (process_structure_scope): Handle case where type
	has template parameters but no symbol was created.

gdb/testsuite/ChangeLog
2019-04-30  Tom Tromey  <tromey@adacore.com>

	PR c++/24470:
	* gdb.cp/temargs.cc: Add test code from PR.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix "catch exception" with dynamic linking
@ 2019-04-30 15:28 sergiodj+buildbot
  2019-05-01 10:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 15:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2ff0a947394eebf5ff9cd26088dce60ec8c10b48 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 2ff0a947394eebf5ff9cd26088dce60ec8c10b48

Fix "catch exception" with dynamic linking

When an Ada program is dynamically linked against libgnat, and when
one of the standard exceptions is used, the exception object may be
referenced by the main executable using a copy relocation.

In this situation, a "catch exception" for those exceptions will not
manage to stop.  This happens because, under the hood, "catch
exception" creates an expression object that examines the object
addresses -- but in this case, the address will be incorrect.

This patch fixes the problem by arranging for these filter expressions
to examine all the relevant minimal symbols.  This way, the object
from libgnat will be found as well.

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-04-30  Tom Tromey  <tromey@adacore.com>

	* ada-lang.c (ada_lookup_simple_minsyms): New function.
	(create_excep_cond_exprs): Iterate over program spaces.
	(ada_exception_catchpoint_cond_string): Examine all minimal
	symbols for exception types.

gdb/testsuite/ChangeLog
2019-04-30  Tom Tromey  <tromey@adacore.com>

	* lib/ada.exp (find_ada_tool): New proc.
	* lib/gdb.exp (gdb_compile_shlib): Allow .o files as inputs.
	* gdb.ada/catch_ex_std.exp: New file.
	* gdb.ada/catch_ex_std/foo.adb: New file.
	* gdb.ada/catch_ex_std/some_package.adb: New file.
	* gdb.ada/catch_ex_std/some_package.ads: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/windows-nat.c: Get rid of main_thread_id global
@ 2019-04-30 21:55 sergiodj+buildbot
  2019-05-01 16:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 21:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ab4ee6147eb2e8fafd1fb96c945029c789182d3b ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: ab4ee6147eb2e8fafd1fb96c945029c789182d3b

gdb/windows-nat.c: Get rid of main_thread_id global

This global is meant to point to the "main" thread of execution of
the program we are debugging. It is set when attaching to a process
or when receiving a CREATE_PROCESS_DEBUG_EVENT event. The theory at
the time was that this was also going to be the thread receiving
the EXIT_PROCESS_DEBUG_EVENT event.

Unfortunately, we have discovered since then that this is actually
not guaranteed. What this means in practice is that there is moderate
risk that main_thread_id refers to a thread which no longer exists.

This global is used in 3 situations:
  - OUTPUT_DEBUG_STRING_EVENT
  - LOAD_DLL_DEBUG_EVENT
  - UNLOAD_DLL_DEBUG_EVENT

It's not clear why we would need to use the main_thread_id in those cases
instead of using the thread ID provided by the kernel events itself.
So this patch implements this approach, which then allows us to delete
the main_thread_id global.

gdb/testsuite:

	* windows-nat.c (main_thread_id): Delete.
	(handle_output_debug_string): Replace main_thread_id by
	current_event.dwThreadId.
	(fake_create_process): Likewise.
	(get_windows_debug_event) <CREATE_PROCESS_DEBUG_EVENT>:
	Do not set main_thread_id.
	<LOAD_DLL_DEBUG_EVENT>: Replace main_thread_id by
	current_event.dwThreadId.
	<UNLOAD_DLL_DEBUG_EVENT>: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms.
@ 2019-04-30 23:41 sergiodj+buildbot
  2019-05-01 17:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 23:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 15f18d1467aa08ff7a4793f21e02fd4c2ebc0a0b ***

Author: Ali Tamur <tamur@google.com>
Branch: master
Commit: 15f18d1467aa08ff7a4793f21e02fd4c2ebc0a0b

Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms.

Dwarf5 defines DW_FORM_strx1 and others, which are similar
to DW_FORM_strx but uses 1-4 bytes unsigned integers. This is
a small step towards supporting dwarf5 in gdb.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC64 GOT indirect to GOT relative optimisation
@ 2019-05-01  3:08 sergiodj+buildbot
  2019-05-01  3:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-01  3:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 066f4018ae7822d81cb6747fd9494e5dd63bfecf ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 066f4018ae7822d81cb6747fd9494e5dd63bfecf

PowerPC64 GOT indirect to GOT relative optimisation

This implements an optimisation that converts sequences like
  addis r9,r2,sym@got@ha
  ld r3,sym@got@l(r9)
to
  addis r9,r2,sym@toc@ha
  addi r3,r9,sym@toc@l
when "sym" is locally defined and can't be overridden.

bfd/
	* elf64-ppc.c (struct ppc64_elf_obj_tdata): Add has_gotrel.
	(struct _ppc64_elf_section_data): Likewise.
	(ppc64_elf_check_relocs): Set above fields.
	(ppc64_elf_edit_toc): Add a pass over GOT relocs.
	(ppc64_elf_relocate_section): Edit GOT indirect to GOT relative
	when possible.
ld/
	* testsuite/ld-powerpc/elfv2exe.d: Update.
	* testsuite/ld-powerpc/elfv2so.d: Update.
	* testsuite/ld-powerpc/tocopt.d: Update.
	* testsuite/ld-powerpc/tocopt.s: Update.
	* testsuite/ld-powerpc/tocopt5.d: Update.
	* testsuite/ld-powerpc/tocopt5.s: Update.
	* testsuite/ld-powerpc/tocopt7.d: Update.
	* testsuite/ld-powerpc/tocopt7.s: Update.
	* testsuite/ld-powerpc/tocopt8.d: Update.
	* testsuite/ld-powerpc/tocopt8.s: Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] (Windows) fix thr != nullptr assert failure in delete_thread_1
@ 2019-05-01 13:10 sergiodj+buildbot
  2019-05-01 13:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-01 13:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8ed5b76ea2de370265382dab1d538a919e2603ab ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 8ed5b76ea2de370265382dab1d538a919e2603ab

(Windows) fix thr != nullptr assert failure in delete_thread_1

We have observed that GDB would randomly trip the following
assertion failure when debugging on Windows. When allowing
the program to run until the inferior exits, we occasionally see:

     (gdb) cont
     Continuing.
     [Thread 48192.0xd100 exited with code 1]
     [Thread 48192.0x10ad8 exited with code 1]
     [Thread 48192.0x36e28 exited with code 0]
     [Thread 48192.0x52be4 exited with code 0]
     [Thread 48192.0x5aa40 exited with code 0]
     ../../src/gdb/thread.c:453: internal-error: void delete_thread_1(thread_inf
o*, bool): Assertion `thr != nullptr' failed.

Running the same scenario with some additional traces enabled...

    (gdb) set verbose
    (gdb) set debugevents

... allows us to understand what the issue is. To understand, we need
to first look at the events received when starting the program, and
in particular which threads got created how. First, we get a
CREATE_PROCESS_DEBUG_EVENT for tid=0x442a8:

    gdb: kernel event for pid=317536 tid=0x442a8 code=CREATE_PROCESS_DEBUG_EVENT)

Shortly after, we get some CREATE_THREAD_DEBUG_EVENT events,
one of them being for tid=0x4010c:

    gdb: kernel event for pid=317536 tid=0x4010c code=CREATE_THREAD_DEBUG_EVENT)
Fast forward a bit of debugging, and we do a "cont" as above,
at which point the programs reaches the end, and the system reports
"exit" events. The first interesting one is the following:

    gdb: kernel event for pid=317536 tid=0x442a8 code=EXIT_THREAD_DEBUG_EVENT)

This is reporting a thread-exit event for a thread whose tid
is the TID of what we call the "main thread". That's the thread
that was created when we received the CREATE_PROCESS_DEBUG_EVENT
notification, and whose TID is actually stored in a global variable
named main_thread_id. This is not something we expected, as
the assumption we made was that the main thread would exit last,
and we would be notified of it via an EXIT_PROCESS_DEBUG_EVENT.
But apparently, this is not always true, at least on Windows Server
2012 and 2016 where this issue has been observed happening randomly.

The consequence of the above notification is that we call
windows_delete_thread for that thread, which removes it from
our list of known threads.

And a little bit later, then we then get the EXIT_PROCESS_DEBUG_EVENT,
and we can see that the associated tid is not the main_thread_id,
but rather the tid of one of the threads that was created during
the lifetime of the program, in this case tid=0x4010c:

    gdb: kernel event for pid=317536 tid=0x4010c code=EXIT_PROCESS_DEBUG_EVENT)

And the debug trace printed right after shows why we're crashing:

    [Deleting Thread 317536.0x442a8]

We are trying to delete the thread whose tid=0x442a8, which is
the main_thread_id! As we have already deleted that thread before,
the search for it returns a nullptr, which then trips the assertion
check in delete_thread_1.

This commit fixes this issue. It ignores the open question of
what to do with the main_thread_id global, particularly after
that thread has been removed from our list of threads. This will
be dealt with as a separate patch, to allow cherry-picking
this patch into a release branch.

For now, we fix the code so as to avoid this crash.

gdb/ChangeLog:

	* windows-nat.c (get_windows_debug_event) <EXIT_PROCESS_DEBUG_EVENT>:
	Use current_event.dwThreadId instead of main_thread_id.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix "unable to find usable gdb" error with cc-with-tweaks.exp
@ 2019-05-01 13:53 sergiodj+buildbot
  2019-05-01 21:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-01 13:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f59f30f55776b10d4f728065e9f9a10cf63a1b29 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: f59f30f55776b10d4f728065e9f9a10cf63a1b29

[gdb/testsuite] Fix "unable to find usable gdb" error with cc-with-tweaks.exp

When running fullpath-expand.exp with target_board=dwarf4-gdb-index, we run
into:
...
$ make check-gdb RUNTESTFLAGS="--target_board=dwarf4-gdb-index fullpath-expand.exp"
Running src/gdb/testsuite/gdb.base/fullpath-expand.exp ...
gdb compile failed, cc-with-tweaks.sh: unable to find usable gdb

                === gdb Summary ===

nr of untested testcases         1
...
The same happens with fullname.exp.

The dwarf4-gdb-index.exp board file includes cc-with-tweaks.exp, which uses
cc-with-tweaks.sh, which calls gdb-add-index.sh.

The gdb-add-index.sh script uses a gdb executable, defaulting to gdb:
...
GDB=${GDB:=gdb}
...

The cc-with-tweaks.sh script tries to ensure that the build gdb executable is
used by gdb-add-index.sh:
...
if [ -z "$GDB" ]
then
    if [ -f ./gdb ]
    then
	GDB="./gdb -data-directory data-directory"
    elif [ -f ../gdb ]
    then
	GDB="../gdb -data-directory ../data-directory"
    elif [ -f ../../gdb ]
    then
	GDB="../../gdb -data-directory ../../data-directory"
    else
	echo "$myname: unable to find usable gdb" >&2
	exit 1
    fi
fi
...
So, if the current directory is build/gdb/testsuite, then a gdb executable
build/gdb/testsuite/../gdb will be used.

However, in the case of fullpath-expand.exp the test cd's into the sources:
...
set saved_pwd [pwd]
cd $srcdir
set err [gdb_compile "${subdir}/${srcfile} ${subdir}/${srcfile2}" $binfile \
         executable {debug}]
cd $saved_pwd
...
and cc-with-tweaks.sh generates the "unable to find usable gdb" error.

The same error occurs if we use --target_board=cc-with-dwz instead (only in
this case we actually don't need gdb, we just need the GDB variable to be set
in cc-with-tweaks.sh, which arguably is a bug in cc-with-tweaks.sh).

Fix both errors in cc-with-tweaks.exp by generating a gdb script gdb.sh using
$GDB, $GDBFLAGS and $INTERNAL_GDBFLAGS and passing this script to
cc-with-tweaks.sh by setting env(GDB).

Tested on x86_64-linux for gdb.base.

gdb/testsuite/ChangeLog:

2019-05-01  Tom de Vries  <tdevries@suse.de>

	* boards/cc-with-tweaks.exp: Generate gdb.sh, and pass it in env(GDB).


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [BINUTILS, AArch64] Enable Transactional Memory Extension
@ 2019-05-01 16:32 sergiodj+buildbot
  2019-05-02  2:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-01 16:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b83b4b138298d2a6bfab11f533d7e315c0a1c97b ***

Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: b83b4b138298d2a6bfab11f533d7e315c0a1c97b

[BINUTILS, AArch64] Enable Transactional Memory Extension

This patch enables the new Transactional Memory Extension added recently
as part of Arm's new architecture technologies.

We introduce a new optional extension "tme" to enable this. The following
instructions are part of the extension:
   * tstart <Xt>
   * ttest <Xt>
   * tcommit
   * tcancel #<imm>
The ISA for the above can be found here:
https://developer.arm.com/docs/ddi0602/latest/base-instructions-alphabetic-order

*** gas/ChangeLog ***

2019-05-01  Sudakshina Das  <sudi.das@arm.com>

	* config/tc-aarch64.c (parse_operands): Add case for
	AARCH64_OPND_TME_UIMM16.
	(aarch64_features): Add "tme".
	* doc/c-aarch64.texi: Document the same.
	* testsuite/gas/aarch64/tme-invalid.d: New test.
	* testsuite/gas/aarch64/tme-invalid.l: New test.
	* testsuite/gas/aarch64/tme-invalid.s: New test.
	* testsuite/gas/aarch64/tme.d: New test.
	* testsuite/gas/aarch64/tme.s: New test.

*** include/ChangeLog ***

2019-05-01  Sudakshina Das  <sudi.das@arm.com>

	* opcode/aarch64.h (AARCH64_FEATURE_TME): New.
	(enum aarch64_opnd): Add AARCH64_OPND_TME_UIMM16.

*** opcodes/ChangeLog ***

2019-05-01  Sudakshina Das  <sudi.das@arm.com>

	* aarch64-asm-2.c: Regenerated.
	* aarch64-dis-2.c: Regenerated.
	* aarch64-opc-2.c: Regenerated.
	* aarch64-opc.c (operand_general_constraint_met_p): Add case for
	AARCH64_OPND_TME_UIMM16.
	(aarch64_print_operand): Likewise.
	* aarch64-tbl.h (QL_IMM_NIL): New.
	(TME): New.
	(_TME_INSN): New.
	(struct aarch64_opcode): Add tstart, tcommit, ttest and tcancel.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix big-endian aggregate assignment in Ada
@ 2019-05-01 22:56 sergiodj+buildbot
  2019-05-01 23:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-01 22:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d48e62f4a263a871b7a62793e8000625735bc2f6 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: d48e62f4a263a871b7a62793e8000625735bc2f6

Fix big-endian aggregate assignment in Ada

A bug internal to AdaCore notes that assigning a non-scalar value to
an element of a packed array will sometimes fail.

The bug turns out to be that ada_value_assign incorrectly computes the
starting point for the assignment.  This patch fixes the problem.

gdb/ChangeLog
2019-05-01  Tom Tromey  <tromey@adacore.com>

	* ada-lang.c (ada_value_assign): Correctly compute starting offset
	for big-endian copies.

gdb/testsuite/ChangeLog
2019-05-01  Tom Tromey  <tromey@adacore.com>

	* gdb.ada/packed_array_assign.exp: Add packed assignment
	regression test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove _initialize_valarith
@ 2019-05-03  1:02 sergiodj+buildbot
  2019-05-03  3:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-03  1:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b8c05e85ef4ce9610a3a43198180cf24aea327cb ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: b8c05e85ef4ce9610a3a43198180cf24aea327cb

Remove _initialize_valarith

I noticed that _initialize_valarith is empty.  This patch removes it.
Because init.c is constructed at build time, there's no reason to keep
empty initialization functions around, because there's no overhead to
reintroducing them when needed.

gdb/ChangeLog
2019-05-02  Tom Tromey  <tromey@adacore.com>

	* valarith.c (_initialize_valarith): Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix lookup of separate debug file on MS-Windows.
@ 2019-05-03 10:03 sergiodj+buildbot
  2019-05-03 10:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-03 10:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5f2459c233faebe8f882e556b2f4a86594a51292 ***

Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 5f2459c233faebe8f882e556b2f4a86594a51292

Fix lookup of separate debug file on MS-Windows.

If you put the separate debug file in a global debug directory, GDB on
MS-Windows would fail to find it.  This happens because we obtain the
directory to look up the debug file by concatenating the debug
directory name with the leading directories of the executable, and the
latter includes the drive letter on MS-Windows.  So we get an invalid
file name like

   d:/usr/lib/debug/d:/usr/bin/foo.debug

This commit fixes that by removing the colon of the drive letter,
thus producing

   d:/usr/lib/debug/d/usr/bin/foo.debug

gdb/ChangeLog:
2019-05-03  Eli Zaretskii  <eliz@gnu.org>

	* symfile.c (find_separate_debug_file): Remove colon from the
	drive spec of DOS/Windows file names of the target, so that the
	file name produced from DEBUGDIR and the target's directory will
	be valid on DOS/Windows systems.

gdb/doc/ChangeLog:
2019-05-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Separate Debug Files): Document how the
	subdirectory of the global debug directory is computed on
	MS-Windows/MS-DOS.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Add cc-with-gdb-index.exp
@ 2019-05-03 11:15 sergiodj+buildbot
  2019-05-03 20:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-03 11:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0fdfd794d22b3b516c3031e76afecaa0ed813931 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 0fdfd794d22b3b516c3031e76afecaa0ed813931

[gdb/testsuite] Add cc-with-gdb-index.exp

Add a target board cc-with-gdb-index.exp, to make it easy to run cc-with-tweaks
with CC_WITH_TWEAKS_FLAGS='-i'.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2019-05-03  Tom de Vries  <tdevries@suse.de>

	* boards/cc-with-gdb-index.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix cast of character to enum type in Ada
@ 2019-05-03 23:39 sergiodj+buildbot
  2019-05-04  1:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-03 23:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 222a8d255834c717f1690658a9f85501a46f9403 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 222a8d255834c717f1690658a9f85501a46f9403

Fix cast of character to enum type in Ada

An internal bug report points out that, when a global character enum
type is used, casting fails, like:

    (gdb) print global_char_enum'('F')
    $1 = 70

The bug here turns out to be that enumerators are qualified, so for
example the mangled name might be "pck__QU48", rather than "QU48".

This patch fixes the problem by only examining the suffix of the
enumerator.  This is ok because the type is already known, and because
the mangling scheme ensures that there won't be clashes.

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-05-03  Tom Tromey  <tromey@adacore.com>

	* ada-exp.y (convert_char_literal): Check suffix of each
	enumerator.

gdb/testsuite/ChangeLog
2019-05-03  Tom Tromey  <tromey@adacore.com>

	* gdb.ada/char_enum/pck.ads (Global_Enum_Type): New type.
	* gdb.ada/char_enum/foo.adb: Use Global_Enum_Type.
	* gdb.ada/char_enum.exp: Add test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove "struct" from foreach statements
@ 2019-05-04  3:19 sergiodj+buildbot
  2019-05-04  3:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-04  3:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bde09ab7026edf3d79122872b79c6a8f164ee0ff ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bde09ab7026edf3d79122872b79c6a8f164ee0ff

Remove "struct" from foreach statements

Some versions of gcc have a bug that causes

    for (struct mumble : something)

... to give a compiler error.  We routinely work around this bug in
gdb, but apparently had not done so in a while.  This patch fixes the
remaining known cases of this problem.

gdb/ChangeLog
2019-05-03  Sandra Loosemore  <sandra@codesourcery.com>
	    Tom Tromey  <tom@tromey.com>

	* dictionary.c (collate_pending_symbols_by_language): Remove
	"struct" from foreach.
	* symtab.c (lookup_global_symbol_from_objfile)
	(lookup_symbol_in_objfile_from_linkage_name): Remove "struct" from
	foreach.
	* ser-tcp.c (net_open): Remove "struct" from foreach.
	* objfiles.c (objfile_relocate, objfile_rebase)
	(objfile_has_symbols): Remove "struct" from foreach.
	* minsyms.c (lookup_minimal_symbol_by_pc_section): Remove "struct"
	from foreach.
	* dwarf2read.c (handle_struct_member_die): Remove "struct" from
	foreach.
	* darwin-nat.c (thread_info_from_private_thread_info): Remove
	"struct" from foreach.
	* ada-lang.c (create_excep_cond_exprs)
	(ada_exception_catchpoint_cond_string): Remove "struct" from
	foreach.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix leaks by clearing registers and frame caches.
@ 2019-05-04  6:26 sergiodj+buildbot
  2019-05-04  6:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-04  6:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 66452beb773568c7f60dbc6b7c70f671a8c9cf4b ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 66452beb773568c7f60dbc6b7c70f671a8c9cf4b

Fix leaks by clearing registers and frame caches.

Valgrind reports leaks such as the below in the tests:
gdb.threads/corethreads.exp
gdb.threads/gcore-thread.exp
gdb.ada/task_switch_in_core.exp
gdb.trace/tfile.exp
gdb.base/siginfo-thread.exp

==12701== 1,123 (72 direct, 1,051 indirect) bytes in 1 blocks are definitely lost in loss record 2,928 of 3,247
==12701==    at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344)
==12701==    by 0x5CF771: get_thread_arch_aspace_regcache(ptid_t, gdbarch*, address_space*) (regcache.c:330)
==12701==    by 0x5CF92A: get_thread_regcache (regcache.c:366)
==12701==    by 0x5CF92A: get_current_regcache() (regcache.c:372)
==12701==    by 0x4C7964: get_current_frame() (frame.c:1587)
==12701==    by 0x4C7A3C: get_selected_frame(char const*) (frame.c:1651)
==12701==    by 0x669EAD: print_thread_info_1(ui_out*, char const*, int, int, int) (thread.c:1151)
==12701==    by 0x66A9A1: info_threads_command(char const*, int) (thread.c:1217)
==12701==    by 0x40A878: cmd_func(cmd_list_element*, char const*, int) (cli-decode.c:1892)
...

Fix these leaks by clearing registers and frame caches.
This leak and fix is similar to the leak fixed by 799efbe8e01


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't derive partial_symbol from general_symbol_info
@ 2019-05-04 20:02 sergiodj+buildbot
  2019-05-04 21:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 20:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT af97b4161f07a716783183f1b17fa5cac9f99a49 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: af97b4161f07a716783183f1b17fa5cac9f99a49

Don't derive partial_symbol from general_symbol_info

This patch partly reverts commit 8a6d42345 ("Change representation of
psymbol to flush out accessors"); specifically, it changes
partial_symbol to no longer derive from general_symbol_info.

The basic problem here is that the bcache compares objects bitwise,
and this change made it less likely that the relevant fields in the
psymbol would be fully initialized.  This could be seen by running a
test under valgrind on the Fedora-i686 buildbot.

I considered a simpler patch, namely just zeroing the psymbol's
"value" field in add_psymbol_to_bcache.  However, it wasn't clear to
me that this memset could not then be optimized away by the compiler.

Regression tested by the buildbot.  I think this should go in 8.3 as
well.

gdb/ChangeLog
2019-05-04  Tom Tromey  <tom@tromey.com>

	* psymtab.c (psymbol_name_matches, match_partial_symbol)
	(lookup_partial_symbol, print_partial_symbols)
	(recursively_search_psymtabs, sort_pst_symbols, psymbol_hash)
	(psymbol_compare): Update.
	(add_psymbol_to_bcache): Clear the entire psymbol.
	(maintenance_check_psymtabs): Update.
	* psympriv.h (struct partial_symbol): Don't derive from
	general_symbol_info.
	<obj_section, unrelocated_address, address,
	set_unrelocated_address>: Update.
	<ginfo>: New member.
	* dwarf-index-write.c (write_psymbols, debug_names::insert)
	(debug_names::write_psymbols): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change valid_user_defined_cmd_name_p to return bool
@ 2019-05-04 21:04 sergiodj+buildbot
  2019-05-05  4:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 21:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7f008c9e6a3cbb248f5b6e8638af4b9d5225981b ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7f008c9e6a3cbb248f5b6e8638af4b9d5225981b

Change valid_user_defined_cmd_name_p to return bool

This changes valid_user_defined_cmd_name_p to return bool.

gdb/ChangeLog
2019-05-04  Tom Tromey  <tom@tromey.com>

	* cli/cli-decode.c (valid_user_defined_cmd_name_p): Return bool.
	* command.h (valid_user_defined_cmd_name_p): Channge return type.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use "false" in compile_cplus_convert_enum
@ 2019-05-04 22:08 sergiodj+buildbot
  2019-05-05 12:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 22:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9c056022194f9d1f068885cb45c9d23a2e44db54 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9c056022194f9d1f068885cb45c9d23a2e44db54

Use "false" in compile_cplus_convert_enum

This changes compile_cplus_convert_enum to use "false".

Note that this variable is never modified, which seems like an error.
I filed PR compile/24473 for this.

gdb/ChangeLog
2019-05-04  Tom Tromey  <tom@tromey.com>

	* compile/compile-cplus-types.c (compile_cplus_convert_enum): Use
	"false".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use gdb_assert_not_reached in arm-linux-nat.c
@ 2019-05-04 22:24 sergiodj+buildbot
  2019-05-05 14:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 22:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 06d16ec97736b5fc0f41cb5a43f756b7ba3d974b ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 06d16ec97736b5fc0f41cb5a43f756b7ba3d974b

Use gdb_assert_not_reached in arm-linux-nat.c

This changes arm-linux-nat.c to use gdb_assert_not_reached rather than
an assert of false.

gdb/ChangeLog
2019-05-04  Tom Tromey  <tom@tromey.com>

	* arm-linux-nat.c (arm_linux_nat_target::can_use_hw_breakpoint):
	Use gdb_assert_not_reached.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change arc_tdesc_init to return bool
@ 2019-05-04 22:41 sergiodj+buildbot
  2019-05-05 15:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 22:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fbdf05a16ec647358e65582721c4ca7dae15e58d ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: fbdf05a16ec647358e65582721c4ca7dae15e58d

Change arc_tdesc_init to return bool

This changes arc_tdesc_init to return bool.

gdb/ChangeLog
2019-05-04  Tom Tromey  <tom@tromey.com>

	* arc-tdep.c (arc_tdesc_init): Return bool.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix incorrect use of 'is' operator for comparison in python/lib/gdb/command/prompt.py
@ 2019-05-05  1:02 sergiodj+buildbot
  2019-05-05  0:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-05  1:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b6484282f85bf7f11451b2441599c241d302ad9d ***

Author: Raul Tambre <raul@tambre.ee>
Branch: master
Commit: b6484282f85bf7f11451b2441599c241d302ad9d

Fix incorrect use of 'is' operator for comparison in python/lib/gdb/command/prompt.py

The 'is' operator is not meant to be used for comparisons. It currently working
is an implementation detail of CPython.  CPython 3.8 has added a SyntaxWarning
for this.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use "false" in select_frame_for_mi
@ 2019-05-05  8:19 sergiodj+buildbot
  2019-05-05  8:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-05  8:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e2eb806a17490963f23be1d567cff357537df678 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e2eb806a17490963f23be1d567cff357537df678

Use "false" in select_frame_for_mi

This changes select_frame_for_mi to use "false" rather than "FALSE".

gdb/ChangeLog
2019-05-04  Tom Tromey  <tom@tromey.com>

	* stack.c (select_frame_for_mi): Use "false", not "FALSE".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove a VEC from ppc-linux-nat.c
@ 2019-05-05 17:17 sergiodj+buildbot
  2019-05-05 17:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-05 17:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5da01df5b5601cae695cee588547fb9ef0967081 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5da01df5b5601cae695cee588547fb9ef0967081

Remove a VEC from ppc-linux-nat.c

This replaces a VEC in ppc-linux-nat.c with a std::vector.

gdb/ChangeLog
2019-05-04  Simon Marchi  <simon.marchi@efficios.com>
	    Tom Tromey  <tom@tromey.com>

	* ppc-linux-nat.c (thread_points_p): Remove typedef and DEF_VEC.
	(ppc_threads): Now a std::vector.  Now static.
	(hwdebug_find_thread_points_by_tid)
	(ppc_linux_nat_target::low_new_thread, ppc_linux_thread_exit):
	Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC reloc symbols that shouldn't be adjusted
@ 2019-05-06  3:06 sergiodj+buildbot
  2019-05-06  3:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-06  3:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 334d91b9407c5f9f37f224b0f43551c01964eff1 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 334d91b9407c5f9f37f224b0f43551c01964eff1

PowerPC reloc symbols that shouldn't be adjusted

GOT and PLT relocs shouldn't have their symbols replaced with a
section symbol plus added.  Nor should the HIGHA TLS relocations,
which failed to be caught by the range test in ppc_fix_adjustable.

bfd/
	* reloc.c (BFD_RELOC_PPC64_TPREL16_HIGH, BFD_RELOC_PPC64_TPREL16_HIGHA),
	(BFD_RELOC_PPC64_DTPREL16_HIGH, BFD_RELOC_PPC64_DTPREL16_HIGHA):
	Sort before BFD_RELOC_PPC64_DTPREL16_HIGHESTA entry.
gas/
	* config/tc-ppc.c (ppc_fix_adjustable): Exclude all GOT and PLT
	relocs, and VLE sdarel relocs.
	* testsuite/gas/ppc/power4.d: Adjust.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PicoJava weak undefined symbols
@ 2019-05-06  3:06 sergiodj+buildbot
  2019-05-06  5:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-06  3:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e1cbf07ac4f8c8525dfadaa19bfb2997a2bfaad9 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: e1cbf07ac4f8c8525dfadaa19bfb2997a2bfaad9

PicoJava weak undefined symbols

This fixes the recently added ld-elf/pr24511 test failure on pj-elf.
Incidentally, pj-elf has failed its gas "pj" test since 2005-12-22
(git commit 54758c3e39).  I think that makes the target ripe for
obsolescence.

bfd/
	* elf32-pj.c (pj_elf_reloc): Don't report undefined weak as an error.
ld/
	* testsuite/ld-undefined/weak-undef.exp: Don't xfail pj.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index, debug-names}
@ 2019-05-06  7:21 sergiodj+buildbot
  2019-05-06  7:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-06  7:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5a56d6a65f8406f1aadb4569fbb8ff00a6e92d02 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 5a56d6a65f8406f1aadb4569fbb8ff00a6e92d02

[gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index,debug-names}

In gdb.base/index-cache.exp, handle the case that binfile contains either a
.gdb_index or .debug_names index section.

Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names.

gdb/testsuite/ChangeLog:

2019-05-06  Tom de Vries  <tdevries@suse.de>

	* lib/gdb.exp (exec_has_index_section): New proc.
	* gdb.base/index-cache.exp: Handle case that binfile contains an index
	section.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add load-link, store-conditional paired EVA instructions
@ 2019-05-06 14:09 sergiodj+buildbot
  2019-05-06 14:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-06 14:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 41cee0897b670168e0d6f455c9bc45c73f8023df ***

Author: Faraz Shahbazker <fshahbazker@wavecomp.com>
Branch: master
Commit: 41cee0897b670168e0d6f455c9bc45c73f8023df

Add load-link, store-conditional paired EVA instructions

Add paired load-link and store-conditional instructions to the
EVA ASE for MIPS32R6[1].  These instructions are optional within
the EVA ASE.  Their presence is indicated by the XNP bit in the
Config5 register.

[1] "MIPS Architecture for Programmers Volume II-A: The MIPS32
     Instruction Set Manual", Imagination Technologies Ltd., Document
     Number: MD00086, Revision 6.06, December 15, 2016, Section 3.2
     "Alphabetical List of Instructions", pp. 230-231, pp. 357-360.

gas/
	* config/tc-mips.c (mips_set_ase): Handle ASE_EVA_R6.
	(macro) <M_LLWPE_AB, M_SCWPE_AB>: New cases.
	(mips_after_parse_args): Translate EVA to EVA_R6.
	* testsuite/gas/mips/ase-errors-1.s: Add new instructions.
	* testsuite/gas/mips/eva.s: Likewise.
	* testsuite/gas/mips/ase-errors-1.l: Check errors for
	 new instructions.
	* testsuite/gas/mips/mipsr6@eva.d: Check new test cases.

include/
	* opcode/mips.h (ASE_EVA_R6): New macro.
	(M_LLWPE_AB, M_SCWPE_AB): New enum values.

opcodes/
	* mips-dis.c (mips_calculate_combination_ases): Add ISA
	argument and set ASE_EVA_R6 appropriately.
	(set_default_mips_dis_options): Pass ISA to above.
	(parse_mips_dis_option): Likewise.
	* mips-opc.c (EVAR6): New macro.
	(mips_builtin_opcodes): Add llwpe, scwpe.

Derived from patch authored by Andrew Bennett <andrew.bennett@imgtec.com>


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix scoped_mmap includes
@ 2019-05-07  4:22 sergiodj+buildbot
  2019-05-07  4:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-07  4:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 26bfd82367d6ffeb1a61495ac445542e757df5b2 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 26bfd82367d6ffeb1a61495ac445542e757df5b2

Fix scoped_mmap includes

I noticed that scoped_mmap.h included config.h, and that scoped_mmap.c
included defs.h.  This patch fixes both of these problems.

Tested by the buildbot.

gdb/ChangeLog
2019-05-06  Tom Tromey  <tom@tromey.com>

	* common/scoped_mmap.c: Include common-defs.h.
	* common/scoped_mmap.h: Don't include config.h.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix .debug_aranges in dw2-case-insensitive-debug.S
@ 2019-05-07  9:16 sergiodj+buildbot
  2019-05-07 11:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-07  9:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 77e7aaa4bd980fb96244b874bc867e20b399fe60 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 77e7aaa4bd980fb96244b874bc867e20b399fe60

[gdb/testsuite] Fix .debug_aranges in dw2-case-insensitive-debug.S

When running gdb.dwarf2/dw2-case-insensitive.exp with target board
cc-with-debug-names, we run into:
...
FAIL: gdb.dwarf2/dw2-case-insensitive.exp: regexp case-sensitive off \
  (GDB internal error)
...
in more detail:
...
(gdb) info functions fUnC_lang
gdb/dwarf2read.c:5293: internal-error: \
  compunit_symtab* dw2_find_pc_sect_compunit_symtab(objfile*, \
  bound_minimal_symbol, CORE_ADDR, obj_section*, int): \
  Assertion `result != NULL' failed.
...

The problem is that the .debug_aranges section in dw2-case-insensitive-debug.S
contains a debug_info_offset which is set to 0:
...
        .section        .debug_aranges,"",@progbits
        .4byte  .Laranges_end - .Laranges_start
.Laranges_start:
        .2byte  0x2
        .4byte  0
...
while the compilation unit at offset 0 in the .debug_section of the executable
is in fact not the compilation unit generated from
dw2-case-insensitive-debug.S.

This happens when linked in object files contain dwarf info and are placed in
the .debug_info section before the compilation unit generated from
dw2-case-insensitive-debug.S.

Fix this by defining the debug_info_offset field using the label .Lcu1_begin
that defines the start of the compilation unit:
...
-       .4byte  0
+       .4byte  .Lcu1_begin
...

Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names.

gdb/testsuite/ChangeLog:

2019-05-07  Tom de Vries  <tdevries@suse.de>

	PR testsuite/24522
	* gdb.dwarf2/dw2-case-insensitive-debug.S: Fix debug_info_offset in
	.debug_aranges section.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix handling of DW_FORM_ref_addr in dwarf assembler
@ 2019-05-07  9:16 sergiodj+buildbot
  2019-05-07  9:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-07  9:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 456ba0fa36d17648a6cf32d1561c8c5802103153 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 456ba0fa36d17648a6cf32d1561c8c5802103153

[gdb/testsuite] Fix handling of DW_FORM_ref_addr in dwarf assembler

When running gdb.dwarf2/multidictionary.exp with target board cc-with-dwz and
current dwz, we run into a dwz abort:
...
gdb compile failed, gdb/contrib/cc-with-tweaks.sh: line 188: 11484 Aborted \
  (core dumped) $DWZ "$output_file" > /dev/null 2>&1
UNTESTED: gdb.dwarf2/multidictionary.exp: multidictionary.exp
...
The dwz abort (PR dwz/24169) is caused by an invalid DW_FORM_ref_addr in the
multidictionary binary.

The multidictionary binary is build from multidictionary.S which is generated
using the dwarf assembler, and multidictionary.S contains dwarf for 3
compilation units.

In multidictionary0.o (generated from multidictionary.S), we find a concrete
formal parameter DIE:
...
 <2><dc>: Abbrev Number: 4 (DW_TAG_formal_parameter)
    <dd>   DW_AT_abstract_origin: <0xa6>
...
referring to an abstract formal parameter DIE at 0xa6:
...
 <2><a6>: Abbrev Number: 8 (DW_TAG_formal_parameter)
    <a7>   DW_AT_name        : msg
    <ab>   DW_AT_type        : <0x92>
...
but in the multidictionary binary the concrete formal parameter DIE is still
referring to 0xa6:
...
 <2><1a3>: Abbrev Number: 4 (DW_TAG_formal_parameter)
    <1a4>   DW_AT_abstract_origin: <0xa6>
...
while the abstract formal parameter DIE has moved to 0x16d:
...
 <2><16d>: Abbrev Number: 8 (DW_TAG_formal_parameter)
    <16e>   DW_AT_name        : msg
    <172>   DW_AT_type        : <0x159>
...

The concrete formal parameter DIE is specified in multidictionary.S like this:
...
.Llabel21:
        .uleb128        4
        .4byte        .Llabel17 - .Lcu1_begin
...

The problem is that the .Lcu1_begin label is assumed to mark the start of the
.debug_info section in the executable, but in fact it marks the start of the
first compilation unit from multidictionary.S in the executable.  Usually
these two entities are the same, but they are not when linked in object files
contain dwarf info and are placed in the .debug_info section before the
compilation units generated from multidictionary.S.

Fix this in the dwarf assembler by generating instead the label itself:
...
.Llabel21:
        .uleb128        4
        .4byte        .Llabel17
...
resulting in a relocation in the object file:
...
  Offset          Info           Type           Sym. Value    Sym. Name + Addend
0000000000dd  00040000000a R_X86_64_32       0000000000000000 .debug_info + a6
...
and resulting in the correct offset in the executable:
...
 <2><1a3>: Abbrev Number: 4 (DW_TAG_formal_parameter)
    <1a4>   DW_AT_abstract_origin: <0x16d>
...

Tested on x86_64-linux with native and cc-with-dwz.

gdb/testsuite/ChangeLog:

2019-05-07  Tom de Vries  <tdevries@suse.de>

	PR testsuite/24159
	* lib/dwarf.exp: Fix handling of DW_FORM_ref_addr.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix .debug_aranges in watch-loc.c
@ 2019-05-07  9:52 sergiodj+buildbot
  2019-05-07 13:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-07  9:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 75f06e9dc59d3f810e2afe2f47afbcb74204ef61 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 75f06e9dc59d3f810e2afe2f47afbcb74204ef61

[gdb/testsuite] Fix .debug_aranges in watch-loc.c

When running gdb.dlang/watch-loc.exp with target board cc-with-debug-names, we
run into:
...
FAIL: gdb.dlang/watch-loc.exp: disassemble _Dmain (GDB internal error)
...
in more detail:
...
(gdb) disassemble _Dmain
gdb/dwarf2read.c:5293: internal-error: \
  compunit_symtab* dw2_find_pc_sect_compunit_symtab(objfile*, \
  bound_minimal_symbol, CORE_ADDR, obj_section*, int): \
  Assertion `result != NULL' failed.
...

The problem is that the .debug_aranges section in watch-loc.c contains a
debug_info_offset which is set to 0:
...
asm (
  "      .pushsection    .debug_aranges,\"\",%progbits\n"
  "      .4byte  .Laranges_end - .Laranges_start\n"
  ".Laranges_start:\n"
  "      .2byte  0x2\n"
  "      .4byte  0\n"
...
while the compilation unit at offset 0 in the .debug_section in the executable
is in fact not the compilation unit generated from watch-loc-dw.S.

[ Note: this is a non-trivial test-case.  The file watch-loc-dw.S contains a
.debug_info section, but not an .debug_aranges section or any actual code.
The file watch-loc.c contains code and a .debug_aranges section, but no other
debug section.  So, the intent for the .debug_aranges section in watch-loc.c
is to refer to a compilation unit in the .debug_info section in
watch-loc-dw.S. ]

This happens when linked in object files contain dwarf info and are placed in
the .debug_info section before the compilation units generated from
watch-loc.c and watch-loc-dw.S.

Fix this by defining the debug_info_offset field using a label .Lcu1_begin
that defines the start of an empty .debug_section compilation unit:
...
 asm (
+  "      .pushsection    .debug_info,\"\",%progbits\n"
+  ".Lcu1_begin:"
+  "      .popsection\n"
   "      .pushsection    .debug_aranges,\"\",%progbits\n"
   "      .4byte  .Laranges_end - .Laranges_start \n"
   ".Laranges_start:\n"
   "      .2byte  0x2\n"
-  "      .4byte  0\n"
+  "      .4byte  .Lcu1_begin\n"
...
which during linking merges with the start of the .debug_info section of
watch-loc-dw.S.

Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names.

gdb/testsuite/ChangeLog:

2019-05-07  Tom de Vries  <tdevries@suse.de>

	PR testsuite/24522
	* gdb.dlang/watch-loc.c: Fix debug_info_offset in .debug_aranges
	section.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix ls_host return in index-cache.exp
@ 2019-05-07 10:09 sergiodj+buildbot
  2019-05-07 15:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-07 10:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7bd55dac80c2faced875119b60acfb51741e397e ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 7bd55dac80c2faced875119b60acfb51741e397e

[gdb/testsuite] Fix ls_host return in index-cache.exp

When adding a debug print here in index-cache.exp:
...
 proc_with_prefix test_cache_disabled { cache_dir } {
     lassign [ls_host $cache_dir] ret files_before
+    puts "before: '$files_before'"
+    exit
...
we have:
...
files_before: ''
...

When further adding:
...
 proc_with_prefix test_cache_disabled { cache_dir } {
+    exec touch $cache_dir/foo.1 $cache_dir/foo.2 $cache_dir/foo.3
...
we have:
...
files_before: 'foo.1'
...
while we're expecting file_before to contain foo.[123].

Fix this by making the return statement in ls_host return a list rather than a
string (in accordance with the ls_host documentation), after which we have:
...
files_before: 'foo.1 foo.2 foo.3'
...

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2019-05-07  Tom de Vries  <tdevries@suse.de>

	* gdb.base/index-cache.exp (ls_host): Fix return statement.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix VLA printing for Ada
@ 2019-05-08 16:34 sergiodj+buildbot
  2019-05-08 17:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 16:34 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 988915ee7b880ff059f849893b71118d9bd2c4fc ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 988915ee7b880ff059f849893b71118d9bd2c4fc

Fix VLA printing for Ada

While looking at a different Ada problem, I found that printing a
record containing a VLA did not work properly.

I tracked the problem down to dwarf2_evaluate_property trying, and
failing, to compare two types that differed only in qualifiers.

This patch changes dwarf2_evaluate_property to ignore qualifiers when
comparing types.

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tromey@adacore.com>

	* dwarf2loc.c (dwarf2_evaluate_property) <PROP_ADDR_OFFSET>:
	Compare main types.

gdb/testsuite/ChangeLog
2019-05-08  Tom Tromey  <tromey@adacore.com>

	* gdb.ada/vla.exp: New file.
	* gdb.ada/vla/vla.adb: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change ptype/o to print bit offset
@ 2019-05-08 17:16 sergiodj+buildbot
  2019-05-08 20:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 17:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9d3421afbb9f3cfc8e67366ba75ea12ed8f732a3 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 9d3421afbb9f3cfc8e67366ba75ea12ed8f732a3

Change ptype/o to print bit offset

Consider this short C example:

    struct inner
    {
      unsigned x;
      unsigned y : 3;
      unsigned z : 3;
    };

    struct outer
    {
      unsigned char o : 3;
      struct inner i __attribute__ ((packed));
    };

When I use "ptype/o" on this, I get:

    (gdb) ptype/o struct outer
    /* offset    |  size */  type = struct outer {
    /*    0: 5   |     1 */    unsigned char o : 3;
    /* XXX  5-bit hole  */
    /*    1      |     8 */    struct inner {
    /*    1      |     4 */        unsigned int x;
    /*    5:29   |     4 */        unsigned int y : 3;
    /*    5:26   |     4 */        unsigned int z : 3;
    /* XXX  2-bit padding  */
    /* XXX  3-byte padding */

				   /* total size (bytes):    8 */
			       } i;

			       /* total size (bytes):    9 */
			     }

In the location of "o" ("0: 5"), the "5" means "there are 5 bits left
relative to the size of the underlying type.

I find this very difficult to follow.  On irc, Sergio said that this
choice came because it is what pahole does.  However, I think it's not
very useful, and maybe is just an artifact of the way that
DW_AT_bit_offset was defined in DWARF 3.

This patch changes ptype/o to print the offset of a bitfield in a more
natural way, that is, using the bit number according to the platform's
bit numbering.

With this patch, the output is now:

    (gdb) ptype/o struct outer
    /* offset    |  size */  type = struct outer {
    /*    0: 0   |     1 */    unsigned char o : 3;
    /* XXX  5-bit hole  */
    /*    1      |     8 */    struct inner {
    /*    1      |     4 */        unsigned int x;
    /*    5: 0   |     4 */        unsigned int y : 3;
    /*    5: 3   |     4 */        unsigned int z : 3;
    /* XXX  2-bit padding  */
    /* XXX  3-byte padding */

				   /* total size (bytes):    8 */
			       } i;

			       /* total size (bytes):    9 */
			     }

This is better, IMO, because now the "offset" of a bitfield is
consistent with the offset of an ordinary member, referring to its
offset from the start of the structure.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tromey@adacore.com>

	* typeprint.c (print_offset_data::update): Print the bit offset,
	not the number of bits remaining.

gdb/doc/ChangeLog
2019-05-08  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Symbols): Document change to ptype/o.

gdb/testsuite/ChangeLog
2019-05-08  Tom Tromey  <tromey@adacore.com>

	* gdb.base/ptype-offsets.exp: Update tests.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Correctly handle non-C-style arrays in c_get_string
@ 2019-05-08 17:32 sergiodj+buildbot
  2019-05-08 22:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 17:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 80e55b132940813fa454da2592a31db6c8af85f1 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 80e55b132940813fa454da2592a31db6c8af85f1

Correctly handle non-C-style arrays in c_get_string

A user here noticed that the Python Value.string method did not work
for Ada arrays.  I tracked this down to an oddity in value_as_address
-- namely, it calls coerce_array, but that function will not force
array coercion when the language has c_style_arrays=false, as Ada
does.

This patch fixes the problem by changing c_get_string so that arrays
take the "in GDB's memory" branch.  The actual patch is somewhat more
complicated than you might think, because the caller can request more
array elements than the type allows.  This is normal when the type is
using the C struct hack.

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tromey@adacore.com>

	* c-lang.c (c_get_string): Handle non-C-style arrays.

gdb/testsuite/ChangeLog
2019-05-08  Tom Tromey  <tromey@adacore.com>

	* gdb.python/py-value.exp (test_value_in_inferior): Add Ada test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Merge two 'New commands' sections in NEWS file
@ 2019-05-08 20:19 sergiodj+buildbot
  2019-05-09 14:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 20:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1bd0c6e4964f68523794aded05aa4d184db44d48 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 1bd0c6e4964f68523794aded05aa4d184db44d48

gdb: Merge two 'New commands' sections in NEWS file

Commit 2e62ab400ff9 added a second 'New commands' section to the NEWS
file, this commit merges the two together.

gdb/ChangeLog:

	* NEWS: Merge two 'New commands' sections.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert main_info to type-safe registry API
@ 2019-05-08 22:42 sergiodj+buildbot
  2019-05-09 17:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 22:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a32ad8c55c5c6bcdbc6773b6b825c4505fd44c16 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: a32ad8c55c5c6bcdbc6773b6b825c4505fd44c16

Convert main_info to type-safe registry API

This changes main_info to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* symtab.c (struct main_info): Add destructor and initializers.
	(main_progspace_key): Move.  Change type.
	(get_main_info): Update.
	(main_info_cleanup): Remove.
	(_initialize_symtab): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't declare read_unsigned_leb128 in defs.h
@ 2019-05-08 23:06 sergiodj+buildbot
  2019-05-09  5:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 23:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 587ee17bd492a324c927437fb561b99b274e1d8e ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 587ee17bd492a324c927437fb561b99b274e1d8e

Don't declare read_unsigned_leb128 in defs.h

I noticed that read_unsigned_leb128 is declared in defs.h.  There's no
reason this should be here, so this patch moves it to dwarf2read.h.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tromey@adacore.com>

	* dwarf2loc.c: Include dwarf2read.h.
	* defs.h (read_unsigned_leb128): Don't declare.
	* dwarf2read.h (read_unsigned_leb128): Declare.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert break-catch-syscall.c to type-safe registry API
@ 2019-05-08 23:46 sergiodj+buildbot
  2019-05-10  0:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 23:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6ae614f66a0a86c9e83b9f40ee1f4e105b681f7b ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6ae614f66a0a86c9e83b9f40ee1f4e105b681f7b

Convert break-catch-syscall.c to type-safe registry API

This changes break-catch-syscall.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* break-catch-syscall.c (catch_syscall_inferior_data): Move.
	Change type.
	(get_catch_syscall_inferior_data): Update.
	(catch_syscall_inferior_data_cleanup): Remove.
	(_initialize_break_catch_syscall): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert auto-load.c to type-safe registry API
@ 2019-05-09  0:18 sergiodj+buildbot
  2019-05-10  4:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09  0:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e85e19b4d7d9b3b322f27684f8c0a3a9ac0e57ab ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e85e19b4d7d9b3b322f27684f8c0a3a9ac0e57ab

Convert auto-load.c to type-safe registry API

This changes auto-load.c to use the type-safe registry API.  It also
changes a couple of types to "bool", removing uses of "FALSE".

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* auto-load.c (struct auto_load_pspace_info): Add destructor and
	initializers.
	<unsupported_script_warning_printed,
	script_not_found_warning_printed>: Now bool.
	(auto_load_pspace_data): Change type.
	(~auto_load_pspace_info): Rename from
	auto_load_pspace_data_cleanup.
	(get_auto_load_pspace_data, init_loaded_scripts_info)
	(clear_section_scripts, maybe_print_unsupported_script_warning)
	(maybe_print_script_not_found_warning, _initialize_auto_load):
	Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert breakpoint.c to type-safe registry API
@ 2019-05-09  1:46 sergiodj+buildbot
  2019-05-10 13:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09  1:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 51d3063a35fad1fa0cd53c167bb5a4325afeea16 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 51d3063a35fad1fa0cd53c167bb5a4325afeea16

Convert breakpoint.c to type-safe registry API

This changes breakpoint.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* breakpoint.c (breakpoint_objfile_key): Change type.
	(get_breakpoint_objfile_data): Update.
	(free_breakpoint_objfile_data): Remove.
	(_initialize_breakpoint): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change some remote.c globals to "static"
@ 2019-05-09  1:54 sergiodj+buildbot
  2019-05-09 10:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09  1:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 60fcc1c3d0d8f1e271b19210b1707b4aa589f273 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 60fcc1c3d0d8f1e271b19210b1707b4aa589f273

Change some remote.c globals to "static"

I noticed a three globals in remote.c that could be static.  This
patch makes this change.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tromey@adacore.com>

	* remote.c (remote_hw_watchpoint_limit)
	(remote_hw_watchpoint_length_limit, remote_hw_breakpoint_limit):
	Now static.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert remote.c to type-safe registry API
@ 2019-05-09  2:03 sergiodj+buildbot
  2019-05-10 15:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09  2:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7b4a314f8b9b50c2289ca6b5d21513052c48730b ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7b4a314f8b9b50c2289ca6b5d21513052c48730b

Convert remote.c to type-safe registry API

This changes remote.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* remote.c (remote_pspace_data): Change type.
	(remote_pspace_data_cleanup): Remove.
	(get_remote_exec_file, set_pspace_remote_exec_file)
	(_initialize_remote): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert ada-lang.c to type-safe registry API
@ 2019-05-09  4:18 sergiodj+buildbot
  2019-05-11  4:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09  4:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f37b313d5cafbed4e724db4724d1ab567b373be4 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: f37b313d5cafbed4e724db4724d1ab567b373be4

Convert ada-lang.c to type-safe registry API

This changes ada-lang.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* ada-lang.c (struct ada_inferior_data): Add initializers.
	(ada_inferior_data): Change type.
	(ada_inferior_data_cleanup): Remove.
	(get_ada_inferior_data, ada_inferior_exit)
	(struct ada_pspace_data): Add initializers, destructor.
	(ada_pspace_data_handle): Change type.
	(get_ada_pspace_data): Update.
	(ada_pspace_data_cleanup): Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add a type-safe C++ interface to a registry
@ 2019-05-09  4:53 sergiodj+buildbot
  2019-05-09 15:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09  4:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5f6e90a0cec8c269634ba0bff3c9e549a903c39a ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5f6e90a0cec8c269634ba0bff3c9e549a903c39a

Add a type-safe C++ interface to a registry

This changes DECLARE_REGISTRY to add a type-safe interface.  This
interface is a C++ class that handles the details of registering a
key, and provides various useful methods, including policy-based
cleanup.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* registry.h (DECLARE_REGISTRY): Define the _key class.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert stabsread.c to type-safe registry API
@ 2019-05-09  6:17 sergiodj+buildbot
  2019-05-11 16:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09  6:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d772d2abcc163142fc38655896c4704b06dae0b6 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d772d2abcc163142fc38655896c4704b06dae0b6

Convert stabsread.c to type-safe registry API

This changes stabsread.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* stabsread.c (rs6000_builtin_type_data): Change type.
	(rs6000_builtin_type, _initialize_stabsread): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert target dcache to type-safe registry API
@ 2019-05-09  7:07 sergiodj+buildbot
  2019-05-09 21:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09  7:07 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 35632941c90f406f69512c9559ae7ba561f7eee8 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 35632941c90f406f69512c9559ae7ba561f7eee8

Convert target dcache to type-safe registry API

This changes the target dcache to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* target-dcache.c (target_dcache_cleanup): Remove.
	(target_dcache_aspace_key): Change type.
	(target_dcache_init_p, target_dcache_invalidate)
	(target_dcache_get, target_dcache_get_or_init)
	(_initialize_target_dcache): Update.
	* dcache.h (struct dcache_deleter): New.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert objfiles.c to type-safe registry API
@ 2019-05-09  9:44 sergiodj+buildbot
  2019-05-10  2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09  9:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f6aa7436201194e80e8d7761e6d88ecf0ec1e327 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: f6aa7436201194e80e8d7761e6d88ecf0ec1e327

Convert objfiles.c to type-safe registry API

This changes objfiles.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* objfiles.c (objfile_pspace_info): Add destructor and
	initializers.
	(objfiles_pspace_data): Change type.
	(~objfile_pspace_info): Rename from objfiles_pspace_data_cleanup.
	(get_objfile_pspace_data): Update.
	(objfiles_bfd_data): Change type.
	(get_objfile_bfd_data): Update.
	(objfile_bfd_data_free, _initialize_objfiles): Remove.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils][aarch64] Introduce SVE_IMM_ROT3 operand.
@ 2019-05-09 10:22 sergiodj+buildbot
  2019-05-12  5:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 10:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT adccc50753467ac66573471f180a60d8d96ce223 ***

Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: adccc50753467ac66573471f180a60d8d96ce223

[binutils][aarch64] Introduce SVE_IMM_ROT3 operand.

New operand AARCH64_OPND_SVE_IMM_ROT3 handles a single bit rotate
operand encoded at bit position 10.

gas/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* config/tc-aarch64.c (parse_operands): Handle new SVE_IMM_ROT3 operand.

include/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* opcode/aarch64.h (enum aarch64_opnd): New SVE_IMM_ROT3 operand.

opcodes/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* aarch64-asm-2.c: Regenerated.
	* aarch64-dis-2.c: Regenerated.
	* aarch64-opc-2.c: Regenerated.
	* aarch64-opc.c (operand_general_constraint_met_p): Constraint checking
	for SVE_IMM_ROT3.
	(aarch64_print_operand): Add printing for SVE_IMM_ROT3.
	(fields): Handle SVE_rot3 field.
	* aarch64-opc.h (enum aarch64_field_kind): New SVE_rot3 field.
	* aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_IMM_ROT3 operand.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils][aarch64] New iclass sve_size_hsd2.
@ 2019-05-09 10:37 sergiodj+buildbot
  2019-05-12  6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 10:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3bd82c86f0f432bd7653101069bf056fda14b7cd ***

Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 3bd82c86f0f432bd7653101069bf056fda14b7cd

[binutils][aarch64] New iclass sve_size_hsd2.

Add "sve_size_hsd2" iclass decode that uses the new FLD_SVE_size field
value to determine the variant of an instruction.

include/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_hsd2 iclass.

opcodes/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle
	sve_size_hsd2 iclass encode.
	* aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle
	sve_size_hsd2 iclass decode.
	* aarch64-opc.c (fields): Handle SVE_size field.
	* aarch64-opc.h (enum aarch64_field_kind): New SVE_size field.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils][aarch64] New sve_size_013 iclass.
@ 2019-05-09 11:57 sergiodj+buildbot
  2019-05-12 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 11:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cd50a87ae29f163e7d254729a902a5e51fcccbbc ***

Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: cd50a87ae29f163e7d254729a902a5e51fcccbbc

[binutils][aarch64] New sve_size_013 iclass.

Add sve_size_013 instruction class

This new iclass handles instructions such as pmullb whose size specifier
can only be encoded as 0, 1, or 3.

include/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_013 iclass.

opcodes/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle
	sve_size_013 iclass encode.
	* aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle
	sve_size_013 iclass decode.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils][aarch64] New SVE_SHRIMM_UNPRED_22 operand.
@ 2019-05-09 12:14 sergiodj+buildbot
  2019-05-12 16:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 12:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3c17238bc9fe8a078a6199470291f07bab9c64c8 ***

Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 3c17238bc9fe8a078a6199470291f07bab9c64c8

[binutils][aarch64] New SVE_SHRIMM_UNPRED_22 operand.

Include a new iclass to extract the variant from the most significant 3
bits of this operand.

Instructions such as rshrnb include a constant shift amount as an
operand, where the most significant three bits of this operand determine
what size elements the instruction is operating on.

The new SVE_SHRIMM_UNPRED_22 operand denotes this constant encoded in
bits 22:20-19:18-16 while the new sve_shift_tsz_hsd iclass denotes that
the SVE qualifier is encoded in bits 22:20-19.

gas/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* config/tc-aarch64.c (parse_operands): Handle new SVE_SHRIMM_UNPRED_22
	operand.

include/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* opcode/aarch64.h (enum aarch64_opnd): New SVE_SHRIMM_UNPRED_22
	operand.
	(enum aarch64_insn_class): Add sve_shift_tsz_hsd iclass.

opcodes/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* aarch64-asm-2.c: Regenerated.
	* aarch64-dis-2.c: Regenerated.
	* aarch64-opc-2.c: Regenerated.
	* aarch64-asm.c (aarch64_ins_sve_shrimm):
	(aarch64_encode_variant_using_iclass): Handle
	sve_shift_tsz_hsd iclass encode.
	* aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle
	sve_shift_tsz_hsd iclass decode.
	* aarch64-opc.c (operand_general_constraint_met_p): Constraint checking
	for SVE_SHRIMM_UNPRED_22.
	(aarch64_print_operand): Add printing for SVE_SHRIMM_UNPRED_22.
	* aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_SHRIMM_UNPRED_22
	operand.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert symfile-debug.c to type-safe registry API
@ 2019-05-09 12:22 sergiodj+buildbot
  2019-05-10  8:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 12:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8c42777cd8e1557ffb29fe9c172edd8cc1de14b7 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 8c42777cd8e1557ffb29fe9c172edd8cc1de14b7

Convert symfile-debug.c to type-safe registry API

This changes symfile-debug.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* symfile-debug.c (struct debug_sym_fns_data): Add initializers.
	(symfile_debug_objfile_data_key): Change type.
	(symfile_debug_installed, debug_qf_has_symbols)
	(debug_qf_find_last_source_symtab)
	(debug_qf_forget_cached_source_info)
	(debug_qf_map_symtabs_matching_filename, debug_qf_lookup_symbol)
	(debug_qf_print_stats, debug_qf_dump)
	(debug_qf_expand_symtabs_for_function)
	(debug_qf_expand_all_symtabs)
	(debug_qf_expand_symtabs_with_fullname)
	(debug_qf_map_matching_symbols)
	(debug_qf_expand_symtabs_matching)
	(debug_qf_find_pc_sect_compunit_symtab)
	(debug_qf_map_symbol_filenames)
	(debug_qf_find_compunit_symtab_by_address, debug_sym_get_probes)
	(debug_sym_new_init, debug_sym_init, debug_sym_read)
	(debug_sym_read_psymbols, debug_sym_finish, debug_sym_offsets)
	(debug_sym_read_linetable, debug_sym_relocate): Update.
	(symfile_debug_free_objfile): Remove.
	(install_symfile_debug_logging, _initialize_symfile_debug):
	Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert linux-tdep.c to type-safe registry API
@ 2019-05-09 14:30 sergiodj+buildbot
  2019-05-10 12:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 14:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 89fb8848d7f00cabeb56344762860469238c24e1 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 89fb8848d7f00cabeb56344762860469238c24e1

Convert linux-tdep.c to type-safe registry API

This changes linux-tdep.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* linux-tdep.c (struct linux_info): Add initializers.
	(linux_inferior_data): Move.  Change type.
	(invalidate_linux_cache_inf): Update.
	(linux_inferior_data_cleanup): Remove.
	(get_linux_inferior_data, _initialize_linux_tdep): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert solib-svr4.c to type-safe registry API
@ 2019-05-09 17:08 sergiodj+buildbot
  2019-05-10 16:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 17:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 092324387247f92c66f25a3e1927cf8821bb4943 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 092324387247f92c66f25a3e1927cf8821bb4943

Convert solib-svr4.c to type-safe registry API

This changes solib-svr4y.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* solib-svr4.c (struct svr4_info): Add initializers and
	destructor.
	<probes_table>: Now an htab_up.
	(solib_svr4_pspace_data): Change type.
	(free_probes_table): Simplify.
	(~svr4_info): Rename from svr4_pspace_data_cleanup.
	(get_svr4_info, probes_table_htab_remove_objfile_probes)
	(probes_table_remove_objfile_probes, register_solib_event_probe)
	(solib_event_probe_at, svr4_update_solib_event_breakpoint)
	(_initialize_svr4_solib): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert fbsd-tdep.c to type-safe registry API
@ 2019-05-09 20:54 sergiodj+buildbot
  2019-05-11  0:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 20:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d4e05d2fea956e65618fc12c57fb81e8788ef07d ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d4e05d2fea956e65618fc12c57fb81e8788ef07d

Convert fbsd-tdep.c to type-safe registry API

This changes fbsd-tdep.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* fbsd-tdep.c (struct fbsd_pspace_data): Add initializers.
	(fbsd_pspace_data_handle): Move lower.  Change type.
	(get_fbsd_pspace_data): Update.
	(fbsd_pspace_data_cleanup): Remove.
	(_initialize_fbsd_tdep): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert nto-tdep.c to type-safe registry API
@ 2019-05-09 23:40 sergiodj+buildbot
  2019-05-11  5:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 23:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bdb3ed9e634d3db8164d90dee12bc8b5e2458786 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bdb3ed9e634d3db8164d90dee12bc8b5e2458786

Convert nto-tdep.c to type-safe registry API

This changes nto-tdep.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* nto-tdep.c (nto_inferior_data_reg): Change type.
	(nto_inferior_data): Update.
	(nto_inferior_data_cleanup, nto_new_inferior_data)
	(_initialize_nto_tdep): Remove.
	* nto-tdep.h (struct nto_inferior_data): Add initializers.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove mips_pdr_data
@ 2019-05-10  3:57 sergiodj+buildbot
  2019-05-11 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-10  3:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d11d83f47bad5dfc959ac60b3619017ac60bdaf9 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d11d83f47bad5dfc959ac60b3619017ac60bdaf9

Remove mips_pdr_data

mips_pdr_data is unused, so this patch removes it.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* mips-tdep.c (mips_pdr_data): Remove.
	(_initialize_mips_tdep): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert dwarf2-frame.c to type-safe registry API
@ 2019-05-10  6:46 sergiodj+buildbot
  2019-05-11 19:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-10  6:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 924d79e23306bb85fd1dd78564f4779fd3aeec56 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 924d79e23306bb85fd1dd78564f4779fd3aeec56

Convert dwarf2-frame.c to type-safe registry API

This changes dwarf2-frame.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* dwarf2-frame.c (dwarf2_frame_objfile_data): Change type.
	(dwarf2_frame_find_fde, dwarf2_build_frame_info)
	(_initialize_dwarf2_frame): Update.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils][aarch64] SVE2 feature extension flags.
@ 2019-05-10 12:03 sergiodj+buildbot
  2019-05-12  1:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-10 12:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7ce2460a77a8f66a145c11522f494f3262255390 ***

Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 7ce2460a77a8f66a145c11522f494f3262255390

[binutils][aarch64] SVE2 feature extension flags.

Include all feature flag macros.

The "sve2" extension that enables the core sve2 instructions.
This also enables the sve extension, since sve is a requirement of sve2.

Extra optional sve2 features are the bitperm, sm4, aes, and sha3 extensions.
These are all given extra feature flags, "bitperm", "sve2-sm4",
"sve2-aes", and "sve2-sha3" respectively.
The sm4, aes, and sha3 extensions are explicitly marked as sve2
extensions to distinguish them from the corresponding NEON extensions.

Rather than continue extending the current feature flag numbers, I used
some bits that have been skipped.

gas/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* config/tc-aarch64.c: Add command line architecture feature flags
	"sve2", "sve2-sm4", "sve2-aes", "sve2-sha3", "bitperm".
	* doc/c-aarch64.texi: Document new architecture feature flags.

include/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* opcode/aarch64.h (AARCH64_FEATURE_SVE2
	AARCH64_FEATURE_SVE2_AES, AARCH64_FEATURE_SVE2_BITPERM,
	AARCH64_FEATURE_SVE2_SM4, AARCH64_FEATURE_SVE2_SHA3): New
	feature macros.

opcodes/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* aarch64-tbl.h
	(aarch64_feature_sve2, aarch64_feature_sve2aes,
	aarch64_feature_sve2sha3, aarch64_feature_sve2sm4,
	aarch64_feature_sve2bitperm): New feature sets.
	(SVE2, SVE2_AES, SVE2_SHA3, SVE2_SM4, SVE2_BITPERM): New macros
	for feature set addresses.
	(SVE2_INSN, SVE2_INSNC, SVE2AES_INSN, SVE2SHA3_INSN,
	SVE2SM4_INSN, SVE2SM4_INSNC, SVE2BITPERM_INSN): New macros.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add completion for Ada catch commands
@ 2019-05-10 16:16 sergiodj+buildbot
  2019-05-13  9:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-10 16:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 71bed2dba6c0706633ead4994cc89e063abf28ea ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 71bed2dba6c0706633ead4994cc89e063abf28ea

Add completion for Ada catch commands

This patch adds a completion function to the "catch exception"
and "catch handlers" commands.

Tested on x86-64 Fedora 29; reviewed off-list by Joel.

gdb/ChangeLog
2019-05-10  Tom Tromey  <tromey@adacore.com>

	* ada-lang.c (catch_ada_completer): New function.
	(_initialize_ada_language): Use it.

gdb/testsuite/ChangeLog
2019-05-10  Tom Tromey  <tromey@adacore.com>

	* gdb.ada/info_exc.exp: Add "complete" test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils][aarch64] New SVE_ADDR_ZX operand.
@ 2019-05-10 16:33 sergiodj+buildbot
  2019-05-12 10:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-10 16:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c469c86473273e115b267a6f8c93c8942deb93c4 ***

Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: c469c86473273e115b267a6f8c93c8942deb93c4

[binutils][aarch64] New SVE_ADDR_ZX operand.

Add AARCH64_OPND_SVE_ADDR_ZX operand that allows a vector of addresses
in a Zn register, offset by an Xm register.
This is used with scatter/gather SVE2 instructions.

gas/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* config/tc-aarch64.c (REG_ZR): Macro specifying zero register.
	(parse_address_main): Account for new addressing mode [Zn.S, Xm].
	(parse_operands): Handle new SVE_ADDR_ZX operand.

include/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* opcode/aarch64.h (enum aarch64_opnd): New SVE_ADDR_ZX operand.

opcodes/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* aarch64-asm-2.c: Regenerated.
	* aarch64-dis-2.c: Regenerated.
	* aarch64-opc-2.c: Regenerated.
	* aarch64-opc.c (operand_general_constraint_met_p): Constraint checking
	for SVE_ADDR_ZX.
	(aarch64_print_operand): Add printing for SVE_ADDR_ZX.
	* aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_ADDR_ZX operand.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils][aarch64] Add SVE2 instructions.
@ 2019-05-11  0:43 sergiodj+buildbot
  2019-05-13  2:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-11  0:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 42e6288f9f9d7dfe560d2bed1fb5e7f27ac3256f ***

Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 42e6288f9f9d7dfe560d2bed1fb5e7f27ac3256f

[binutils][aarch64] Add SVE2 instructions.

This patch adds all the SVE2 instructions and their associated qualifier
sets.
Ok for trunk?

opcodes/ChangeLog:

2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	* aarch64-dis-2.c: Regenerate.
	* aarch64-tbl.h (OP_SVE_BBU): New variant set.
	(OP_SVE_BBB): New variant set.
	(OP_SVE_DDDD): New variant set.
	(OP_SVE_HHH): New variant set.
	(OP_SVE_HHHU): New variant set.
	(OP_SVE_SSS): New variant set.
	(OP_SVE_SSSU): New variant set.
	(OP_SVE_SHH): New variant set.
	(OP_SVE_SBBU): New variant set.
	(OP_SVE_DSS): New variant set.
	(OP_SVE_DHHU): New variant set.
	(OP_SVE_VMV_HSD_BHS): New variant set.
	(OP_SVE_VVU_HSD_BHS): New variant set.
	(OP_SVE_VVVU_SD_BH): New variant set.
	(OP_SVE_VVVU_BHSD): New variant set.
	(OP_SVE_VVV_QHD_DBS): New variant set.
	(OP_SVE_VVV_HSD_BHS): New variant set.
	(OP_SVE_VVV_HSD_BHS2): New variant set.
	(OP_SVE_VVV_BHS_HSD): New variant set.
	(OP_SVE_VV_BHS_HSD): New variant set.
	(OP_SVE_VVV_SD): New variant set.
	(OP_SVE_VVU_BHS_HSD): New variant set.
	(OP_SVE_VZVV_SD): New variant set.
	(OP_SVE_VZVV_BH): New variant set.
	(OP_SVE_VZV_SD): New variant set.
	(aarch64_opcode_table): Add sve2 instructions.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC objdump -Mraw
@ 2019-05-11  0:59 sergiodj+buildbot
  2019-05-13 15:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-11  0:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0067be51e9436c5bbd961a4f54c10dbd50c491ea ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 0067be51e9436c5bbd961a4f54c10dbd50c491ea

PowerPC objdump -Mraw

	* ppc-dis.c (print_insn_powerpc) Don't skip optional operands
	when -Mraw is in effect.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update printing of optional operands during disassembly.
@ 2019-05-11  2:38 sergiodj+buildbot
  2019-05-13  7:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-11  2:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bda678b9e5e4a343a9bb2b0fd20cf52035bad78e ***

Author: Peter Bergner <bergner@linux.ibm.com>
Branch: master
Commit: bda678b9e5e4a343a9bb2b0fd20cf52035bad78e

Update printing of optional operands during disassembly.

opcodes/
	* ppc-dis.c (skip_optional_operands): Change return type and returns.
	(print_insn_powerpc) <skip_optional>: Change type.
	Call skip_optional_operands if we have not skipped any operands.
gas/
	* testsuite/gas/ppc/476.d: Update expected output.
	* testsuite/gas/ppc/power6.d: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix GDB build when using --disable-gdbmi
@ 2019-05-11  8:39 sergiodj+buildbot
  2019-05-13 12:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-11  8:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1367480341749b1498a6c5e7a7b79c7a4ab4ed34 ***

Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 1367480341749b1498a6c5e7a7b79c7a4ab4ed34

Fix GDB build when using --disable-gdbmi

Since commit

    b4be1b064860 ("Fix MI output for multi-location breakpoints")

we get this error when building with --disable-gdbmi:

      CXXLD  gdb
    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:6358: error: undefined reference to 'mi_multi_location_breakpoint_output_fixed(ui_out*)'

This is due to breakpoint.c using a function defined in mi/mi-main.c, even
though mi/mi-main.c isn't included in the build.

To fix it, use the flags feature of ui_out.  mi_ui_out has the new
fix_multi_location_breakpoint_output flag set for versions >= 3.  Also,
move the global variable fix_multi_location_breakpoint_output to
breakpoint.c, so it can be read there even when we build without MI.  I
renamed it to fix_multi_location_breakpoint_output_globally so it
doesn't clash with the new enumerator.

gdb/ChangeLog:

	* breakpoint.h (fix_multi_location_breakpoint_output_globally):
	New variable declaration.
	* breakpoint.c (fix_multi_location_breakpoint_output_globally):
	New variable.
	(print_one_breakpoint): Use ui_out::test_flags and new global
	variable to compute use_fixed_output.
	* mi/mi-main.h (mi_multi_location_breakpoint_output_fixed):
	Remove.
	* mi/mi-main.c (fix_multi_location_breakpoint_output): Remove.
	(mi_multi_location_breakpoint_output_fixed): Remove.
	(mi_cmd_fix_multi_location_breakpoint_output): Adjust to set the
	new variable.
	* mi/mi-out.c (mi_ui_out::mi_ui_out): Set
	fix_multi_location_breakpoint_output flag if version >= 3.
	* ui-out.h (enum ui_out_flag)
	<fix_multi_location_breakpoint_output>: New enumerator.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add macro expansions for ADD, SUB, DADD and DSUB for MIPS r6
@ 2019-05-11 12:31 sergiodj+buildbot
  2019-05-13 16:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-11 12:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 387e762476ff224ee40760910e73a3905a2c380a ***

Author: Faraz Shahbazker <fshahbazker@wavecomp.com>
Branch: master
Commit: 387e762476ff224ee40760910e73a3905a2c380a

Add macro expansions for ADD, SUB, DADD and DSUB for MIPS r6

Release 6 of the MIPS architecture does not have an ADDI instruction.
ADD/SUB instructions with immediate operands can be expanded to load
and immediate value and then perform the operation.

gas/
	* config/tc-mips.c (macro) <M_ADD_I, M_SUB_I, M_DADD_I, M_DSUB_I>:
	Add expansions for MIPS r6.
	* testsuite/gas/mips/add.s: Enable tests for R6.
	* testsuite/gas/mips/daddi.s: Annotate to test DADD for R6.
	* testsuite/gas/mips/mipsr6@add.d: Likewise.
	* gas/testsuite/gas/mips/mipsr6@dadd.d: New test.
	* gas/testsuite/gas/mips/mips.exp: Run the new test.

opcodes/
        * mips-opc.c (mips_opcodes): Enable ADD, SUB, DADD and DSUB
	macros for R6.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix two langauge -> language typos
@ 2019-05-12 16:12 sergiodj+buildbot
  2019-05-14  6:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-12 16:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 66b8bb74ca8fb23e407b80e1b0e7c1a433286b41 ***

Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 66b8bb74ca8fb23e407b80e1b0e7c1a433286b41

Fix two langauge -> language typos


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix base address selection entry encoding in dw2-skip-prologue.S
@ 2019-05-14  8:28 sergiodj+buildbot
  2019-05-14  9:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-14  8:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2764128dee821448ba43a50ed8cee387f2ee8dca ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 2764128dee821448ba43a50ed8cee387f2ee8dca

[gdb/testsuite] Fix base address selection entry encoding in dw2-skip-prologue.S

A base address selection entry in a location list consist of two (constant or
relocated) address offsets.  The two offsets are the same size as an address
on the target machine.

The test-case gdb.dwarf2/dw2-skip-prologue.S encodes a base address selection
entry using .4byte, which is incorrect for 8-byte pointer size. [ Which
triggers an assert in dwz, see PR dwz/24172. ]

Fix this by using PTRBYTE instead.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2019-05-14  Tom de Vries  <tdevries@suse.de>

	* gdb.dwarf2/dw2-skip-prologue.S (.debug_loc): Fix base address
	selection entry encoding.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Add half float view to V registers
@ 2019-05-14  9:55 sergiodj+buildbot
  2019-05-14 10:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-14  9:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a6d0f2490c0c7969eb60038f01c0ee0f46e4d5fd ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: a6d0f2490c0c7969eb60038f01c0ee0f46e4d5fd

AArch64: Add half float view to V registers

AArch64 can fill the vector registers with half precision floats.
Add a view for this.

Add builtin type ieee half and connect this to the existing
floatformats_ieee_half.

gdb/ChangeLog:

2019-05-14  Alan Hayward  <alan.hayward@arm.com>

	* aarch64-tdep.c (aarch64_vnh_type): Add half view.
	(aarch64_vnv_type): Likewise.
	* target-descriptions.c (make_gdb_type): Add TDESC_TYPE_IEEE_HALF.
	* common/tdesc.c: Likewise.
	* common/tdesc.h (enum tdesc_type_kind): Likewise.
	* features/aarch64-fpu.c (create_feature_aarch64_fpu): Regenerate.
	* features/aarch64-fpu.xml: Add ieee half view.
	* features/aarch64-sve.c (create_feature_aarch64_fpu): Likewise.
	* gdbtypes.c (gdbtypes_post_init): Add builtin_half
	* gdbtypes.h (struct builtin_type): Likewise.
	(struct objfile_type): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled.
@ 2019-05-14 10:15 sergiodj+buildbot
  2019-05-14 12:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-14 10:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3076e59490428c9719765f9b007d6d0d0238f006 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 3076e59490428c9719765f9b007d6d0d0238f006

A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled.

	PR 24538
gas	* macro.c (get_any_string): Increase size of buffer used to hold
	decimal value of expression result.
	* dw2gencfi.c (get_debugseg_name): Handle an empty name.
	* dwarf2dbg.c (get_filenum): Catch integer wraparound when
	extending allocate file array.
	(dwarf2_directive_filename): Add extra checks of the computed file
	number.
	* config/tc-arm.c (arm_tc_equal_in_insn): Insert copy of name into
	warning hash table.
	(s_arm_eabi_attribute): Check for obj_elf_vendor_attribute
	returning -1.
	* config/tc-i386.c (i386_output_nops): Catch an attempt to
	generate nops of negative lengths.
	* as.h (MAX_LITTLENUMS): Move definition to here from...
	* config/atof-ieee.c: ...here.
	* config/tc-aarch64.c: ...here.
	* config/tc-arc.c: ...here.
	* config/tc-arm.c: ...here.
	* config/tc-epiphany.c: ...here.
	* config/tc-i386.c: ...here.
	* config/tc-ia64.c: ...here.  (And correct the value).
	* config/tc-m32c.c: ...here.
	* config/tc-m32r.c: ...here.
	* config/tc-metag.c: ...here.
	* config/tc-microblaze.c: ...here.
	* config/tc-nds32.c: ...here.
	* config/tc-or1k.c: ...here.
	* config/tc-score.c: ...here.
	* config/tc-score7.c: ...here.
	* config/tc-tic4x.c: ...here.
	* config/tc-tilegx.c: ...here.
	* config/tc-tilepro.c: ...here.
	* config/tc-visium.c: ...here.
	* config/tc-sh.c (md_assemble): Add check for an instruction with
	no opcodes.
	* config/tc-mips.c (mips_lookup_insn): Add check for very short
	instruction name.
	* config/tc-tic54x.c: Use unsigned chars to access is_end_of_line
	array.
	(tic54x_start_line_hook): Check for an empty line.
	(next_line_shows_parallel): Do not walk off the end of the string.
	(tic54x_macro_start): Check for too much macro nesting.
	(tic54x_start_label): Add label_start parameter.  Use this
	parameter to check the first character of the label.
	* config/tc-tic54x.h (TC_START_LABEL_WITHOUT_COLON): Pass
	line_start variable to tic54x_start_label.

	PR 24538
opcodes	* ia64-opc.c (ia64_find_matching_opcode): Check for reaching the
	end of the table prematurely.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add new option to objcopy: --verilog-data-width. Use this option to set the size of byte bundles generated in verilog format files.
@ 2019-05-14 10:31 sergiodj+buildbot
  2019-05-14 14:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-14 10:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 37d0d09177dc02e0002ab8b90d9b7bc402af9240 ***

Author: Jamey Hicks <jamey.hicks@gmail.com>
Branch: master
Commit: 37d0d09177dc02e0002ab8b90d9b7bc402af9240

Add new option to objcopy: --verilog-data-width.  Use this option to set the size of byte bundles generated in verilog format files.

	PR 19921
binutils* objcopy.c: Add new option --verilog-data-width.  Use it to set
	the value of VerilogDataWidth.
	* doc/binutils.texi: Document the new option.
	* testsuite/binutils-all/objcopy.exp: Run tests of new option.
	* testsuite/binutils-all/verilog-1.hex: New file.
	* testsuite/binutils-all/verilog-2.hex: New file.
	* testsuite/binutils-all/verilog-4.hex: New file.
	* testsuite/binutils-all/verilog-8.hex: New file.
	* NEWS: Mention the new feature.

bfd	* verilog.c: (VerilogDataWidth): New variable.
	(verilog_write_record): Emit bytes in VerilogDataWidth bundles.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix assertion failure in coerce_unspec_val_to_type
@ 2019-05-14 22:29 sergiodj+buildbot
  2019-05-14 22:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-14 22:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c408a94f8115767ea7e6aa1a75bc59ea5ae960fa ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: c408a94f8115767ea7e6aa1a75bc59ea5ae960fa

Fix assertion failure in coerce_unspec_val_to_type

coerce_unspec_val_to_type does:

      set_value_address (result, value_address (val));

However, this is only valid for lval_memory.  This patch changes this
code to only set the address for lval_memory values.

This seems like an ordinary oversight in coerce_unspec_val_to_type,
and a test case would be difficult to write, so I'm submitting it
without a test case.

Tested on x86-64 Fedora 29; plus using an Ada program that exhibits
the bug (but which cannot be shared).

gdb/ChangeLog
2019-05-14  Tom Tromey  <tromey@adacore.com>

	* ada-lang.c (coerce_unspec_val_to_type): Only set address when
	value is not lval_memory.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] GDB (s12z): Improve reliability of the stack unwinder.
@ 2019-05-15  5:50 sergiodj+buildbot
  2019-05-15  6:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-15  5:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c5358db468d582e658488c2bcc1befe6e6e47366 ***

Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: c5358db468d582e658488c2bcc1befe6e6e47366

GDB (s12z): Improve reliability of the stack unwinder.

Previously, the stack unwinder searched through consecutive bytes for values
which it thought might be the start of a stack mutating operation.
This was error prone, because such bytes could also be the operands of other
instructions.  This change uses the opcodes api to interpret the code in each
frame.

gdb/ChangeLog:
	* s12z-tdep.c (push_pull_get_stack_adjustment): New function.
	(advance, posn, abstract_read_memory): New functions.
	[struct mem_read_abstraction]: New struct.
	(s12z_frame_cache): Use opcodes API to interpret stack frame code.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] linux-thread-db.c: use bool where possible in thread_db code
@ 2019-05-15 15:54 sergiodj+buildbot
  2019-05-15 21:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-15 15:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9ddc1af18c31e775ae7b107779addfcde92c723f ***

Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 9ddc1af18c31e775ae7b107779addfcde92c723f

linux-thread-db.c: use bool where possible in thread_db code

I happened to be looking at this code and noticed we could replace ints
by bools at a few places.

gdb/ChangeLog:

	* linux-thread-db.c (try_thread_db_load_1): Change return type
	to bool.
	(try_thread_db_load): Likewise.
	(try_thread_db_load_from_pdir_1): Likewise.
	(try_thread_db_load_from_pdir): Likewise.
	(try_thread_db_load_from_sdir): Likewise.
	(try_thread_db_load_from_dir): Likewise.
	(thread_db_load_search): Likewise.
	(has_libpthread): Likewise.
	(thread_db_load): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Add sizeof tests for indexed and sliced arrays
@ 2019-05-15 21:57 sergiodj+buildbot
  2019-05-15 22:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-15 21:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 14237686d71b6ef1e6a85f2791cb54d1ec019cb1 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 14237686d71b6ef1e6a85f2791cb54d1ec019cb1

gdb/fortran: Add sizeof tests for indexed and sliced arrays

Add tests for calling sizeof on indexed and sliced arrays, and on
pointers to arrays.  These are all things that currently work, but
were previously untested.

gdb/testsuite/ChangeLog:

	* gdb.fortran/vla-sizeof.exp: Add tests of sizeof applied to
	indexed and sliced arrays, and pointers to arrays.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Revert "ARM STM32L4XX erratum test failure"
@ 2019-05-16 13:25 sergiodj+buildbot
  2019-05-16 14:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 13:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a2699ef206aedf8e8d49d8519ae8a535e4b4afe5 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: a2699ef206aedf8e8d49d8519ae8a535e4b4afe5

Revert "ARM STM32L4XX erratum test failure"

This reverts commit 3a1bb98c3c4f983b950fbaf2797ddcd21fcb5211.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [PATCH 45/57][Arm][OBJDUMP] Add support for MVE instructions: vmov, vmvn, vorr, vorn, vmovx and vbic
@ 2019-05-16 16:29 sergiodj+buildbot
  2019-05-16 21:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 16:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c507f10b0711f24e1b82b8bd096e605317cf77fe ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: c507f10b0711f24e1b82b8bd096e605317cf77fe

[PATCH 45/57][Arm][OBJDUMP] Add support for MVE instructions: vmov, vmvn, vorr, vorn, vmovx and vbic

opcodes/ChangeLog:
2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
	    Michael Collison <michael.collison@arm.com>

	* arm-dis.c (enum mve_instructions): Add new instructions.
	(enum mve_unpredictable): Add new reasons.
	(enum mve_undefined): Likewise.
	(is_mve_okay_in_it): Handle new isntructions.
	(is_mve_encoding_conflict): Likewise.
	(is_mve_undefined): Likewise.
	(is_mve_unpredictable): Likewise.
	(print_mve_vmov_index): Likewise.
	(print_simd_imm8): Likewise.
	(print_mve_undefined): Likewise.
	(print_mve_unpredictable): Likewise.
	(print_mve_size): Likewise.
	(print_insn_mve): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [PATCH 48/57][Arm][OBJDUMP] Add support for MVE instructions: vddup, vdwdup, vidup and viwdup
@ 2019-05-16 17:22 sergiodj+buildbot
  2019-05-17  2:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 17:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1c8f2df85f56d8f3213667e2a11cd480f2a26667 ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 1c8f2df85f56d8f3213667e2a11cd480f2a26667

[PATCH 48/57][Arm][OBJDUMP] Add support for MVE instructions: vddup, vdwdup, vidup and viwdup

opcodes/ChangeLog:
2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
	    Michael Collison <michael.collison@arm.com>

	* arm-dis.c (enum mve_instructions): Add new instructions.
	(is_mve_encoding_conflict): Handle new instructions.
	(is_mve_unpredictable): Likewise.
	(print_mve_size): Likewise.
	(print_insn_mve): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [PATCH 50/57][Arm][OBJDUMP] Add support for MVE shift instructions
@ 2019-05-16 17:53 sergiodj+buildbot
  2019-05-17  6:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 17:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ed63aa178c4b5e47eb8658813b2a3b621b7a092b ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: ed63aa178c4b5e47eb8658813b2a3b621b7a092b

[PATCH 50/57][Arm][OBJDUMP] Add support for MVE shift instructions

opcodes/ChangeLog:
2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
	    Michael Collison <michael.collison@arm.com>

	* arm-dis.c (enum mve_instructions): Add new instructions.
	(enum mve_undefined): Add new reasons.
	(is_mve_encoding_conflict): Handle new instructions.
	(is_mve_undefined): Likewise.
	(is_mve_unpredictable): Likewise.
	(print_mve_undefined): Likewise.
	(print_mve_size): Likewise.
	(print_mve_shift_n): Likewise.
	(print_insn_mve): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [PATCH 52/57][Arm][OBJDUMP] Add support for MVE instructions: vadc, vabav, vabd, vabs, vadd, vsbc and vsub
@ 2019-05-16 18:25 sergiodj+buildbot
  2019-05-17  9:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 18:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 66dcaa5d55eb39471d962bb949df009a9ea3f959 ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 66dcaa5d55eb39471d962bb949df009a9ea3f959

[PATCH 52/57][Arm][OBJDUMP] Add support for MVE instructions: vadc, vabav, vabd, vabs, vadd, vsbc and vsub

opcodes/ChangeLog:
2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
	    Michael Collison <michael.collison@arm.com>

	* arm-dis.c (thumb32_opcodes): Add new instructions.
	(enum mve_instructions): Likewise.
	(is_mve_encoding_conflict): Handle new instructions.
	(is_mve_undefined): Likewise.
	(is_mve_unpredictable): Likewise.
	(print_mve_size): Likewise.
	(print_insn_mve): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [PATCH 53/57][Arm][OBJDUMP] Add support for MVE instructions: vand, vbrsr, vcls, vclz and vctp
@ 2019-05-16 18:42 sergiodj+buildbot
  2019-05-17 12:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 18:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e523f10159d469dc0ca77069d092411f200685a1 ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: e523f10159d469dc0ca77069d092411f200685a1

[PATCH 53/57][Arm][OBJDUMP] Add support for MVE instructions: vand, vbrsr, vcls, vclz and vctp

opcodes/ChangeLog:
2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
	    Michael Collison <michael.collison@arm.com>

	* arm-dis.c (thumb32_opcodes): Add new instructions.
	(enum mve_instructions): Likewise.
	(is_mve_encoding_conflict): Handle new instructions.
	(is_mve_undefined): Likewise.
	(is_mve_unpredictable): Likewise.
	(print_mve_size): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix darwin-nat.c build
@ 2019-05-16 19:46 sergiodj+buildbot
  2019-05-17 20:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 19:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 61c9c4212daa0be96503b9069da387aebf9cba04 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 61c9c4212daa0be96503b9069da387aebf9cba04

Fix darwin-nat.c build

John Marshall pointed out that darwin-nat.c fails to build:

    CXX    darwin-nat.o
    ../../../binutils-gdb/gdb/darwin-nat.c:1709:8: error: must use 'class' tag to refer to type 'thread_info' in this scope
    for (thread_info *it : all_threads ())
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/mach/thread_act.h:240:15: note:
    class 'thread_info' is hidden by a non-type declaration of 'thread_info' here
    kern_return_t thread_info

    Mach has a thread_info() function declared in that header, which darwin-nat.c #includes.

This patch fixes the problem by reintroducing the struct keyword.

gdb/ChangeLog
2019-05-16  Tom Tromey  <tromey@adacore.com>

	* darwin-nat.c (thread_info_from_private_thread_info): Add struct
	keyword to foreach.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Bool-ify stap-probe.c and stap-related code on i386-tdep.c
@ 2019-05-16 20:49 sergiodj+buildbot
  2019-05-17 22:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 20:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT af2d9beee989c7b75de849d9c08629a1e3f567ad ***

Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: af2d9beee989c7b75de849d9c08629a1e3f567ad

Bool-ify stap-probe.c and stap-related code on i386-tdep.c

This simple patch converts a bunch of "int"s to "bool" on stap-probe.c
and on the stap-related code present on i386-tdep.c.

Pushed as obvious (+ I'm the maintainer of this code).

gdb/ChangeLog:
2019-05-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* i386-tdep.c (i386_stap_parse_special_token_triplet): Change
	return type to 'bool'.  Adjust comment.  Use 'bool' when
	appropriate.
	(i386_stap_parse_special_token_three_arg_disp): Likewise.
	* stap-probe.c (stap_parse_argument_1): Likewise.
	(stap_is_operator): Likewise.
	(stap_is_generic_prefix): Likewise.
	(stap_is_register_prefix): Likewise.
	(stap_is_register_indirection_prefix): Likewise.
	(stap_is_integer_prefix): Likewise.
	(stap_generic_check_suffix): Likewise.
	(stap_check_integer_suffix): Likewise.
	(stap_check_register_suffix): Likewise.
	(stap_check_register_indirection_suffix): Likewise.
	(stap_parse_register_operand): Likewise.
	(stap_parse_single_operand): Likewise.
	(stap_parse_argument_1): Likewise.
	(stap_probe::get_argument_count): Likewise.
	(stap_is_operator): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [PATCH 49/57][Arm][OBJDUMP] Add support for MVE complex number instructions
@ 2019-05-16 21:12 sergiodj+buildbot
  2019-05-17  4:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 21:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 897b9bbcffa894bd3f3664d7f1b666379493d9b2 ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 897b9bbcffa894bd3f3664d7f1b666379493d9b2

[PATCH 49/57][Arm][OBJDUMP] Add support for MVE complex number instructions

opcodes/ChangeLog:
2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
	    Michael Collison <michael.collison@arm.com>

	* arm-dis.c (enum mve_instructions): Add new instructions.
	(is_mve_encoding_conflict): Handle new instructions.
	(is_mve_unpredictable): Likewise.
	(print_mve_rotate): Likewise.
	(print_mve_size): Likewise.
	(print_insn_mve): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix complaint string formatting on stap-probe.c
@ 2019-05-16 21:37 sergiodj+buildbot
  2019-05-18  4:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 21:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f3da9116654bb2e899063a0aa9e11c2606b38fff ***

Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: f3da9116654bb2e899063a0aa9e11c2606b38fff

Fix complaint string formatting on stap-probe.c

I think the string formatting for complaints was messed up by Tom's
patch to simplify the complaint mechanism.  This small and trivial
patch fixes them.

Pushed as obvious.

gdb/ChangeLog:
2019-05-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* stap-probe.c (handle_stap_probe): Fix complaint formatting.
	(stap_static_probe_ops::get_probes): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make stap-probe.c:stap_parse_register_operand's "regname" an std::string
@ 2019-05-16 21:53 sergiodj+buildbot
  2019-05-18  6:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 21:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 677052f2a5c67f1d9b2e6d1b2a2149b5f0c20cd0 ***

Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 677052f2a5c67f1d9b2e6d1b2a2149b5f0c20cd0

Make stap-probe.c:stap_parse_register_operand's "regname" an std::string

This patch simplifies the code of
stap-probe.c:stap_parse_register_operand by making "regname" an
std::string.  No functionality change.

I'm this code's maintainer, so I'm pushing this as it's a fairly
trivial patch.

gdb/ChangeLog:
2019-05-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* stap-probe.c (stap_parse_register_operand): Make "regname" an
	"std::string", simplifying the algorithm.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [PATCH 51/57][Arm][OBJDUMP] Add support for MVE instructions: lctp, letp, wlstp and dlstp
@ 2019-05-16 23:02 sergiodj+buildbot
  2019-05-17  7:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 23:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d052b9b7cb90e0f76e35b0cf3c44e9b168b158c2 ***

Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: d052b9b7cb90e0f76e35b0cf3c44e9b168b158c2

[PATCH 51/57][Arm][OBJDUMP] Add support for MVE instructions: lctp, letp, wlstp and dlstp

opcodes/ChangeLog:
2019-05-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
	    Michael Collison <michael.collison@arm.com>

	* arm-dis.c (thumb32_opcodes): Add new instructions.
	(print_insn_thumb32): Handle new instructions.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb] Fix heap-use-after-free in typename_concat
@ 2019-05-17  7:58 sergiodj+buildbot
  2019-05-18  8:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-17  7:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fb816e8b1c8ef6b7b07eb3612bb61bd7ef1ff94f ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: fb816e8b1c8ef6b7b07eb3612bb61bd7ef1ff94f

[gdb] Fix heap-use-after-free in typename_concat

When running gdb using AddressSanitizer, and loading a cc1plus binary built
with profiledbootstrap and -flto, we run into a heap-use-after-free error:
...
$ LD_PRELOAD=/usr/lib64/libasan.so.3 ./gdb -batch cc1plus
==26855==ERROR: AddressSanitizer: heap-use-after-free on address \
  0x62100ad8a8b0 at pc 0x7f13803cc9e3 bp 0x7ffe55b0d090 sp 0x7ffe55b0c840
READ of size 47 at 0x62100ad8a8b0 thread T0
    #0 0x7f13803cc9e2  (/usr/lib64/libasan.so.3+0x3e9e2)
    #1 0x5e7a0d in typename_concat gdb/dwarf2read.c:22661
    #2 0x5c6437 in partial_die_full_name gdb/dwarf2read.c:8876
    #3 0x5c6555 in add_partial_symbol gdb/dwarf2read.c:8893
    #4 0x5c6ecf in add_partial_subprogram gdb/dwarf2read.c:9156
    #5 0x5c5e90 in scan_partial_symbols gdb/dwarf2read.c:8668
    #6 0x5c6c0a in add_partial_namespace gdb/dwarf2read.c:9081
    #7 0x5c5f99 in scan_partial_symbols gdb/dwarf2read.c:8702
    #8 0x5c48b6 in process_psymtab_comp_unit_reader gdb/dwarf2read.c:8056
    #9 0x5c3c1f in init_cutu_and_read_dies gdb/dwarf2read.c:7689
    #10 0x5c4c03 in process_psymtab_comp_unit gdb/dwarf2read.c:8140
    #11 0x5c58a2 in dwarf2_build_psymtabs_hard gdb/dwarf2read.c:8500
    #12 0x5c0d03 in dwarf2_build_psymtabs(objfile*) gdb/dwarf2read.c:6337
    #13 0x612359 in read_psyms gdb/elfread.c:1311
    #14 0x798a64 in require_partial_symbols(objfile*, int) gdb/psymtab.c:115
    #15 0x867d7b in read_symbols gdb/symfile.c:821
    #16 0x8683d9 in syms_from_objfile_1 gdb/symfile.c:1000
    #17 0x8684a1 in syms_from_objfile gdb/symfile.c:1017
    #18 0x868873 in symbol_file_add_with_addrs gdb/symfile.c:1124
    #19 0x868b0a in symbol_file_add_from_bfd(bfd*, char const*, \
                    enum_flags<symfile_add_flag>, std::vector<other_sections, \
		    std::allocator<other_sections> >*, \
		    enum_flags<objfile_flag>, objfile*) gdb/symfile.c:1204
    #20 0x868b64 in symbol_file_add(char const*, \
                    enum_flags<symfile_add_flag>, \
		    std::vector<other_sections, \
		    std::allocator<other_sections> >*, \
		    enum_flags<objfile_flag>) gdb/symfile.c:1217
    #21 0x868c39 in symbol_file_add_main_1 gdb/symfile.c:1240
    #22 0x868bd0 in symbol_file_add_main(char const*, \
                    enum_flags<symfile_add_flag>) gdb/symfile.c:1231
    #23 0x71f1b2 in symbol_file_add_main_adapter gdb/main.c:395
    #24 0x71f10e in catch_command_errors gdb/main.c:372
    #25 0x71ff5f in captured_main_1 gdb/main.c:1043
    #26 0x72045d in captured_main gdb/main.c:1163
    #27 0x7204c8 in gdb_main(captured_main_args*) gdb/main.c:1188
    #28 0x40fd7d in main gdb/gdb.c:32
    #29 0x7f137e300f49 in __libc_start_main (/lib64/libc.so.6+0x20f49)
    #30 0x40fc89 in _start (/data/gdb_versions/devel/build/gdb/gdb+0x40fc89)

0x62100ad8a8b0 is located 944 bytes inside of 4064-byte region \
  [0x62100ad8a500,0x62100ad8b4e0)
freed by thread T0 here:
    #0 0x7f13804523a0 in __interceptor_free (/usr/lib64/libasan.so.3+0xc43a0)
    #1 0x435e44 in xfree<void> gdb/common/common-utils.h:60
    #2 0xa82c25 in call_freefun libiberty/obstack.c:103
    #3 0xa83098 in _obstack_free libiberty/obstack.c:280
    #4 0x4367da in auto_obstack::~auto_obstack() gdb/gdb_obstack.h:101
    #5 0x5ed72c in dwarf2_cu::~dwarf2_cu() gdb/dwarf2read.c:25341
    #6 0x5fb5bb in std::default_delete<dwarf2_cu>::operator()(dwarf2_cu*) const \
                   /usr/include/c++/7/bits/unique_ptr.h:78
    #7 0x5f7334 in std::unique_ptr<dwarf2_cu, \
                   std::default_delete<dwarf2_cu> >::~unique_ptr() \
		   /usr/include/c++/7/bits/unique_ptr.h:268
    #8 0x5c3ce5 in init_cutu_and_read_dies gdb/dwarf2read.c:7624
    #9 0x5c4c03 in process_psymtab_comp_unit gdb/dwarf2read.c:8140
    #10 0x5c58a2 in dwarf2_build_psymtabs_hard gdb/dwarf2read.c:8500
    #11 0x5c0d03 in dwarf2_build_psymtabs(objfile*) gdb/dwarf2read.c:6337
    #12 0x612359 in read_psyms gdb/elfread.c:1311
    #13 0x798a64 in require_partial_symbols(objfile*, int) gdb/psymtab.c:115
    #14 0x867d7b in read_symbols gdb/symfile.c:821
    #15 0x8683d9 in syms_from_objfile_1 gdb/symfile.c:1000
    #16 0x8684a1 in syms_from_objfile gdb/symfile.c:1017
    #17 0x868873 in symbol_file_add_with_addrs gdb/symfile.c:1124
    #18 0x868b0a in symbol_file_add_from_bfd(bfd*, char const*, \
                    enum_flags<symfile_add_flag>, std::vector<other_sections,  \
		    std::allocator<other_sections> >*, \
		    enum_flags<objfile_flag>, objfile*) gdb/symfile.c:1204
    #19 0x868b64 in symbol_file_add(char const*, \
                    enum_flags<symfile_add_flag>, std::vector<other_sections, \
		    std::allocator<other_sections> >*, \
		    enum_flags<objfile_flag>) gdb/symfile.c:1217
    #20 0x868c39 in symbol_file_add_main_1 gdb/symfile.c:1240
    #21 0x868bd0 in symbol_file_add_main(char const*, \
                    enum_flags<symfile_add_flag>) gdb/symfile.c:1231
    #22 0x71f1b2 in symbol_file_add_main_adapter gdb/main.c:395
    #23 0x71f10e in catch_command_errors gdb/main.c:372
    #24 0x71ff5f in captured_main_1 gdb/main.c:1043
    #25 0x72045d in captured_main gdb/main.c:1163
    #26 0x7204c8 in gdb_main(captured_main_args*) gdb/main.c:1188
    #27 0x40fd7d in main gdb/gdb.c:32
    #28 0x7f137e300f49 in __libc_start_main (/lib64/libc.so.6+0x20f49)

previously allocated by thread T0 here:
    #0 0x7f13804526b8 in __interceptor_malloc (/usr/lib64/libasan.so.3+0xc46b8)
    #1 0x5114b5 in xmalloc gdb/common/common-utils.c:44
    #2 0xa82bd5 in call_chunkfun libiberty/obstack.c:94
    #3 0xa82eda in _obstack_newchunk libiberty/obstack.c:206
    #4 0x477310 in allocate_on_obstack::operator new(unsigned long, obstack*) \
                   gdb/gdb_obstack.h:117
    #5 0x5dea8c in load_partial_dies gdb/dwarf2read.c:18571
    #6 0x5c487f in process_psymtab_comp_unit_reader gdb/dwarf2read.c:8054
    #7 0x5c3c1f in init_cutu_and_read_dies gdb/dwarf2read.c:7689
    #8 0x5c4c03 in process_psymtab_comp_unit gdb/dwarf2read.c:8140
    #9 0x5c58a2 in dwarf2_build_psymtabs_hard gdb/dwarf2read.c:8500
    #10 0x5c0d03 in dwarf2_build_psymtabs(objfile*) gdb/dwarf2read.c:6337
    #11 0x612359 in read_psyms gdb/elfread.c:1311
    #12 0x798a64 in require_partial_symbols(objfile*, int) gdb/psymtab.c:115
    #13 0x867d7b in read_symbols gdb/symfile.c:821
    #14 0x8683d9 in syms_from_objfile_1 gdb/symfile.c:1000
    #15 0x8684a1 in syms_from_objfile gdb/symfile.c:1017
    #16 0x868873 in symbol_file_add_with_addrs gdb/symfile.c:1124
    #17 0x868b0a in symbol_file_add_from_bfd(bfd*, char const*, \
                    enum_flags<symfile_add_flag>, \
		    std::vector<other_sections, \
		    std::allocator<other_sections> >*, \
		    enum_flags<objfile_flag>, objfile*) gdb/symfile.c:1204
    #18 0x868b64 in symbol_file_add(char const*, enum_flags<symfile_add_flag>, \
                    std::vector<other_sections, \
		    std::allocator<other_sections> >*, \
		    enum_flags<objfile_flag>) gdb/symfile.c:1217
    #19 0x868c39 in symbol_file_add_main_1 gdb/symfile.c:1240
    #20 0x868bd0 in symbol_file_add_main(char const*, \
                    enum_flags<symfile_add_flag>) gdb/symfile.c:1231
    #21 0x71f1b2 in symbol_file_add_main_adapter gdb/main.c:395
    #22 0x71f10e in catch_command_errors gdb/main.c:372
    #23 0x71ff5f in captured_main_1 gdb/main.c:1043
    #24 0x72045d in captured_main gdb/main.c:1163
    #25 0x7204c8 in gdb_main(captured_main_args*) gdb/main.c:1188
    #26 0x40fd7d in main gdb/gdb.c:32
    #27 0x7f137e300f49 in __libc_start_main (/lib64/libc.so.6+0x20f49)
...

This error happens as follows.

The function find_partial_die has a cu argument, but returns a pdi which may
or may not be from that cu:
...
/* Find a partial DIE at OFFSET, which may or may not be in CU,
   except in the case of .debug_types DIEs which do not reference
   outside their CU (they do however referencing other types via
   DW_FORM_ref_sig8).  */

static struct partial_die_info *
find_partial_die (sect_offset sect_off, int offset_in_dwz, struct dwarf2_cu *cu)
...

So the pdi returned by find_partial_die here in partial_die_parent_scope may
be from another cu:
...
partial_die_parent_scope (struct partial_die_info *pdi,
                          struct dwarf2_cu *cu)
{
  const char *grandparent_scope;
  struct partial_die_info *parent, *real_pdi;

  /* We need to look at our parent DIE; if we have a DW_AT_specification,
     then this means the parent of the specification DIE.  */

  real_pdi = pdi;
  while (real_pdi->has_specification)
    real_pdi = find_partial_die (real_pdi->spec_offset,
                                 real_pdi->spec_is_dwz, cu);

  parent = real_pdi->die_parent;
...
in which case both real_pdi and parent will be not from cu, but from another
one, say cu2.

Subsequently, cu's comp_unit_obstack is used to set parent->scope:
...
        parent->scope = typename_concat (&cu->comp_unit_obstack,
                                         grandparent_scope,
                                         parent->name, 0, cu);
...

So, we use cu->comp_unit_obstack to assign a value to the scope field of
a pdi belonging to cu2, and when cu is deleted, the scope field points to a
freed value.

Fix this by making find_partial_die return the cu corresponding to the
returned pdi, and handling this at the call sites.

Tested on x86_64-linux.

gdb/ChangeLog:

2019-05-17  Tom de Vries  <tdevries@suse.de>

	PR gdb/24094
	* dwarf2read.c (struct cu_partial_die_info): New struct.
	(find_partial_die): Return cu_partial_die_info.
	(partial_die_parent_scope, guess_partial_die_structure_name)
	(partial_die_info::fixup): Handle new return type of find_partial_die.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] MI: extract command completion logic from complete_command()
@ 2019-05-17 10:42 sergiodj+buildbot
  2019-05-19  0:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 10:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6e035501e15e72398fcd9db88c97dd30e585a9ae ***

Author: Jan Vrany <jan.vrany@fit.cvut.cz>
Branch: master
Commit: 6e035501e15e72398fcd9db88c97dd30e585a9ae

MI: extract command completion logic from complete_command()

Extract completion logic from CLI complete_command() into a new
helper function complete().

gdb/Changelog:

	* completer.h (complete): New function.
	* completer.c (complete): Likewise.
	* cli/cli-cmds.c: (complete_command): Update to use new complete()
	function defined in completer.h.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] MI: Add new command -complete
@ 2019-05-17 11:02 sergiodj+buildbot
  2019-05-19  3:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 11:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 26648588294d039fcf1efbf512d785753cb6286d ***

Author: Jan Vrany <jan.vrany@fit.cvut.cz>
Branch: master
Commit: 26648588294d039fcf1efbf512d785753cb6286d

MI: Add new command -complete

There is a CLI command 'complete' intended to use with emacs. Such a command
would also be useful for MI frontends, when separate CLI and MI channels cannot
be used. For example, on Windows (because of lack of PTYs) or when GDB is used
through SSH session.

This commit adds a new '-complete' MI command.

gdb/Changelog:
2019-01-28  Jan Vrany  <jan.vrany@fit.cvut.cz>

	* mi/mi-cmds.h (mi_cmd_complete): New function.
	* mi/mi-main.c (mi_cmd_complete): Likewise.
	* mi/mi-cmds.c: Define new MI command -complete.
	* NEWS: Mention new -complete command.

gdb/doc/ChangeLog:
2019-01-28  Jan Vrany  <jan.vrany@fit.cvut.cz>

	* gdb.texinfo (Miscellaneous GDB/MI Commands): Document new
	MI command -complete.

gdb/testsuite/ChangeLog:
2019-01-28  Jan Vrany  <jan.vrany@fit.cvut.cz>

	* gdb.mi/mi-complete.exp: New file.
	* gdb.mi/mi-complete.cc: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change file close behavior for tee_file
@ 2019-05-17 13:27 sergiodj+buildbot
  2019-05-19  6:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 13:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f3a09c800fcd1d597fa2b9578cb59adfc15b698d ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: f3a09c800fcd1d597fa2b9578cb59adfc15b698d

Change file close behavior for tee_file

Instead of using two bools to decide if the files should close when tee_file
is closed, make file one stay open and file two close.  This simplifies the
use cases for it.

Inline the make_logging_output into the calling functions (the logic here
looks ugly in order to simplify a later change).

Expand ui-redirect.exp to cover the changes, similar to mi-logging.exp.

gdb/ChangeLog:

	* cli/cli-interp.c (cli_interp_base::set_logging): Create tee_file
	directly.
	* cli/cli-interp.h (make_logging_output): Remove declaration.
	* cli/cli-logging.c (make_logging_output): Remove function.
	* mi/mi-interp.c (mi_interp::set_logging): Create tee_file
	directly.
	* ui-file.c (tee_file::tee_file): Remove bools.
	(tee_file::~tee_file): Remove deletes.
	* ui-file.h (tee_file): Remove bools.

gdb/testsuite/ChangeLog:

	* gdb.base/ui-redirect.exp: Test redirection.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add debug redirect option
@ 2019-05-17 13:46 sergiodj+buildbot
  2019-05-19  9:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 13:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ca1285d17534cff3041c07ac7841288e1b3ba19c ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: ca1285d17534cff3041c07ac7841288e1b3ba19c

Add debug redirect option

Currently, when logging is enabled, output will be sent to both a
logfile and standard terminal output.  The redirect option sends output
only to the logfile.  This includes all debug output.

Add the option to redirect debug output seperately to normal
output, using the cli command:

  set logging debugredirect on

By setting this and enabling logging, all output and debug will
be sent to the logfile.  The user will still see all output but
no debug output.

This causes a change in behaviour for anyone currently using
logging redirect, as now only output will be redirected.  Users
will have to issue the additional command above to also redirect
debug.

Expand ui-redirect.exp cover the changes.

gdb/ChangeLog:

	* cli/cli-interp.c (struct saved_output_files): Add saved entry.
	(cli_interp_base::set_logging): Check debug_redirect.
	* cli/cli-interp.h (set_logging): Add debug_redirect parameter.
	* cli/cli-logging.c (debug_redirect): Add static variable.
	(pop_output_files): Add default param.
	(handle_redirections): Print debug setting.
	(show_logging_command): Likewise.
	(_initialize_cli_logging): Add debugredirect command.
	* interps.c (current_interp_set_logging): Add debug_redirect
	parameter.
	* interps.h (set_logging): Add debug_redirect parameter.
	(current_interp_set_logging): Likewise.
	* mi/mi-common.h: Likewise.
	* mi/mi-interp.c (mi_interp::set_logging): Likewise.

gdb/testsuite/ChangeLog:

	* gdb.base/ui-redirect.exp: Add debug redirect tests.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] testsuite: Disable some tests when logging
@ 2019-05-17 14:55 sergiodj+buildbot
  2019-05-19 13:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 14:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 81f47ac29f8cdb888f2d81c5daa9bfc4747738aa ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 81f47ac29f8cdb888f2d81c5daa9bfc4747738aa

testsuite: Disable some tests when logging

Fix up all failures encountered when running the testsuite with
GDB_DEBUG="infrun".

Some tests rely on enabling debugging for various components.  With
debugging on, this will be lost to the debug file.

Disable separate tty for mi tests when debugging.  This currently
does not work.

disasm.c should send errors to the stderr instead of the logfile.

Note that enabling debug for other components might still cause
additional errors above what has been fixed here.

gdb/ChangeLog:

	* disasm.c (set_disassembler_options): Send errors to stderr.

gdb/testsuite/ChangeLog:

	* gdb.base/breakpoint-in-ro-region.exp: Disable when debugging.
	* gdb.base/debug-expr.exp: Likewise.
	* gdb.base/foll-fork.exp: Likewise.
	* gdb.base/foll-vfork.exp: Likewise.
	* gdb.base/fork-print-inferior-events.exp: Likewise.
	* gdb.base/gdb-sigterm.exp: Likewise.
	* gdb.base/gdbinit-history.exp: Likewise.
	* gdb.base/osabi.exp: Likewise.
	* gdb.base/sss-bp-on-user-bp-2.exp: Likewise.
	* gdb.base/ui-redirect.exp: Likewise.
	* gdb.gdb/unittest.exp: Likewise.
	* gdb.mi/mi-break.exp: Disable separate-mi-tty when debugging.
	* gdb.mi/mi-watch.exp: Likewise.
	* gdb.mi/new-ui-mi-sync.exp: Likewise.
	* gdb.mi/user-selected-context-sync.exp: Likewise.
	* gdb.python/python.exp: Disable debug test when debugging.
	* gdb.threads/check-libthread-db.exp: Disable when debugging.
	* gdb.threads/signal-while-stepping-over-bp-other-thread.exp:
	Likewise.
	* gdb.threads/stepi-random-signal.exp: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] testsuite: Add replay logging to GDBSERVER_DEBUG
@ 2019-05-17 16:26 sergiodj+buildbot
  2019-05-20  3:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 16:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b420b89e4b321ff31f2e76cac499b908f042069b ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: b420b89e4b321ff31f2e76cac499b908f042069b

testsuite: Add replay logging to GDBSERVER_DEBUG

Add "replay" to the list of GDBSERVER_DEBUG options.  This will
cause a gdbserver.replay file to be written to the test output
directory.

At the same time switch this to a comma separated list in order
to easily handle all possible options.

The replay log is created by GDB, but has been added to
GDBSERVER_DEBUG as it is only required for gdbserver tests. To
enable it, the gdb_debug_init is overridden to allow the additional
checking, before calling the original function.

gdb/testsuite/ChangeLog:

        * README (Testsuite Parameters): Add replay logging to
        GDBSERVER_DEBUG.
        (gdbserver,debug): Refer to GDBSERVER_DEBUG.
        * lib/gdbserver-support.exp (gdbserver_start): Treat gdbserverdebug
        as a comma separated list.
        (gdb_debug_init): Override procedure.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] testsuite: Remove TRANSCRIPT support
@ 2019-05-17 16:43 sergiodj+buildbot
  2019-05-20 15:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 16:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 87781e8475f8ec80463937130cde48540ff87149 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 87781e8475f8ec80463937130cde48540ff87149

testsuite: Remove TRANSCRIPT support

TRANSCRIPT is superseeded by the .in, .cmd and .debug files, and
can be removed.

gdb/testsuite/ChangeLog

	* README (Running the Testsuite): Change example.
	(Testsuite Parameters): Remove TRANSCRIPT.
	* lib/gdb.exp: Remove TRANSCRIPT check.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Constify annotate_source
@ 2019-05-17 17:00 sergiodj+buildbot
  2019-05-20 16:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 17:00 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a45575b0356d671df2c55fcfc66de719b6b2e5e5 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: a45575b0356d671df2c55fcfc66de719b6b2e5e5

Constify annotate_source

I noticed that annotate_source takes a "char *", but really should
take a "const char *".  This patch fixes this.

gdb/ChangeLog
2019-05-17  Tom Tromey  <tromey@adacore.com>

	* annotate.c (annotate_source): Make "filename" const.
	* annotate.h (annotate_source): Use const.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't cast away const in find_and_open_source
@ 2019-05-17 17:37 sergiodj+buildbot
  2019-05-20 21:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 17:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 33d0e35aed8870ad317af7eeca5274cf4fd87d15 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 33d0e35aed8870ad317af7eeca5274cf4fd87d15

Don't cast away const in find_and_open_source

find_and_open_source casts away const, but hasn't needed to in a
while.  This removes the cast and a strangely hostile comment.

gdb/ChangeLog
2019-05-17  Tom Tromey  <tromey@adacore.com>

	* source.c (find_and_open_source): Remove cast.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] testsuite: Add option to capture GDB debug
@ 2019-05-17 19:13 sergiodj+buildbot
  2019-05-19 12:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 19:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 29b523140ecf72bc3fdf570c71fbda6fe85cf930 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 29b523140ecf72bc3fdf570c71fbda6fe85cf930

testsuite: Add option to capture GDB debug

Add both board option and environment variable which enables gdb
debug via a comma separated list and sends it to the file gdb.debug,
located in the output directory for the current test.  Document this.

Add support for the environment variable in the Makefile.

The testsuite can be run with gdb debug enabled in the following way:

	make check GDB_DEBUG="infrun,target,remote"

A Test with multiple invocations of GDB will all append debug to the
same log file.

gdb/testsuite/ChangeLog:

	* Makefile.in: Pass through GDB_DEBUG.
	* README (Testsuite Parameters): Add GDB_DEBUG.
        (gdb,debug): Add board setting.
 	* lib/gdb.exp (default_gdb_start): Start debugging.
 	(gdb_debug_enabled): New procedure.
 	(gdb_debug_init): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Updated translations for various binutils subdirectories.
@ 2019-05-21  7:37 sergiodj+buildbot
  2019-05-21  8:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-21  7:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 999b073bdb188635feaf1f719237b4845b5b06f3 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 999b073bdb188635feaf1f719237b4845b5b06f3

Updated translations for various binutils subdirectories.

bfd	* po/fr.po: Updated French translation.
binutils* po/ca.po: Updated Catalan translation.
gprof	* po/de.po: Updated German translation.
opcodes	* po/fr.po: Updated French translation.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix PR 24571 - Relaxation does not shorten jmp or call to target at pc-relative range boundary
@ 2019-05-21 10:14 sergiodj+buildbot
  2019-05-21 12:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 10:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7622049e0bef81fab900860400838bc977449892 ***

Author: Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com>
Branch: master
Commit: 7622049e0bef81fab900860400838bc977449892

Fix PR 24571 -  Relaxation does not shorten jmp or call to target at pc-relative range boundary

The range check done to transform an absolute call/jump to a pc-relative one is
off-by-one, and that causes this shortening optimization to be missed if the
branch target is right at the range boundary.

In the non-shrinkable case, the range is what is mentioned in the ISA - -4094
bytes in the backward direction, and 4096 bytes in the positive direction.

In the shrinkable case, the forward jump range increases by two bytes (deleted
because of the shortening from call/jmp to rcall/rjmp), and therefore, the
range is -4094 in the reverse, and 4098 in the positive direction.

Fix the ranges for !shrinkable and shrinkable cases, and add a test caes to
ensure jumps to max forward and backward ranges get relaxed to rjmp.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Implement choice between Cortex-A53 erratum workarounds. (PR ld/24373)
@ 2019-05-21 14:27 sergiodj+buildbot
  2019-05-21 15:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 14:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 739b5c9c778dee9e2f54d864f83a81ecb0639535 ***

Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 739b5c9c778dee9e2f54d864f83a81ecb0639535

AArch64: Implement choice between Cortex-A53 erratum workarounds. (PR ld/24373)

The Cortex-A53 erratum currently has two ways it can resolve the erratum when
using the flag --fix-cortex-a53-843419:

1) If the address is within the range of an ADR instruction it rewrites the ADRP
   into an ADR, and those doesn't need the use of a veneer.

2) If the address is not within range, it adds a branch to a veneer which will
   execute the final bit of the erratum workaround and branch back to the call
   site.

When we do this we always generate the veneers and we always align the size of
the text section to 4KB.  This is because we only know which workaround we can
use after all linking has finished and all addresses are known.  This means even
though the veneers are not used, we still generate the section and we still
change the size of the input section.

This is problematic for small memory devices as this would require the user to
take about a ~4KB hit in memory even though it's not even used.

Since there's no real way to restart the linking process from the final write
phase this patch solves the issue by allowing the user more control over which
erratum workaround gets used.

Concretely this changes the option --fix-cortex-a53-843419 to take optional
arguments --fix-cortex-a53-843419[=full|adr|adrp]

- full (default): Use both ADRP and ADR workaround. This is equivalent to not
		  specifying any options and is the default behavior before this
		  patch.

- adr: Only use the ADR workaround, this will not cause any increase in binary
       size but linking will fail if the referenced address is out of range of
       an ADR instruction.

- adrp: Use only the ADRP workaround, this will never rewrite your ADRP.

In the cases where the user knows how big their binaries are the `adr` option
would prevent the unneeded overhead.

bfd/ChangeLog:

	PR ld/24373
	* bfd-in.h (enum erratum_84319_opts): New
	(bfd_elf64_aarch64_set_options, bfd_elf32_aarch64_set_options): Change
	int to enum erratum_84319_opts.
	* bfd-in2.h: Regenerate.
	* elfnn-aarch64.c (struct elf_aarch64_link_hash_table): Change
	fix_erratum_843419 to use new enum, remove fix_erratum_843419_adr.
	(_bfd_aarch64_add_stub_entry_after): Conditionally create erratum stub.
	(aarch64_size_one_stub): Conditionally size erratum 843419 stubs.
	(_bfd_aarch64_resize_stubs): Amend comment.
	(elfNN_aarch64_size_stubs): Don't generate stubs when no workaround
	requested.
	(bfd_elfNN_aarch64_set_options): Use new fix_erratum_843419 enum.
	(_bfd_aarch64_erratum_843419_branch_to_stub): Implement selection of
	erratum workaround.
	(clear_erratum_843419_entry): Update erratum conditional.

ld/ChangeLog:

	PR ld/24373
	* emultempl/aarch64elf.em (PARSE_AND_LIST_LONGOPTS): Add optional args
	to flags.
	* NEWS: Add changes to flag.
	(PARSE_AND_LIST_OPTIONS): Update help descriptions.
	(PARSE_AND_LIST_ARGS_CASES): Add new options to parser.
	* testsuite/ld-aarch64/aarch64-elf.exp: Add new run_dump_tests.
	* testsuite/ld-aarch64/erratum843419-adr.d: New test.
	* testsuite/ld-aarch64/erratum843419-adrp.d: New test.
	* testsuite/ld-aarch64/erratum843419-far-adr.d: New test.
	* testsuite/ld-aarch64/erratum843419-far-full.d: New test.
	* testsuite/ld-aarch64/erratum843419-far.s: New test.
	* testsuite/ld-aarch64/erratum843419-full.d: New test.
	* testsuite/ld-aarch64/erratum843419-near.s: New test.
	* testsuite/ld-aarch64/erratum843419-no-args.d: New test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Require c++11 where necessary
@ 2019-05-21 16:56 sergiodj+buildbot
  2019-05-21 18:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 16:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 669d0468399d8375f4d25289938a0c06d12e7f2e ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 669d0468399d8375f4d25289938a0c06d12e7f2e

[gdb/testsuite] Require c++11 where necessary

When building gdb on ubuntu 16.04 with gcc 5.4.0, and running the gdb
testsuite we run into failures due test-cases requiring at least c++1.

Fix this by adding -std=c++11 to those test-cases.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2019-05-21  Tom de Vries  <tdevries@suse.de>

	* gdb.arch/amd64-eval.exp: Require c++11.
	* gdb.base/max-depth.exp: Same.
	* gdb.compile/compile-cplus-array-decay.exp: Same.
	* gdb.cp/meth-typedefs.exp: Same.
	* gdb.cp/subtypes.exp: Same.
	* gdb.cp/temargs.exp: Same.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/cli] Fix use of uninitialized variable in complete_command
@ 2019-05-21 17:09 sergiodj+buildbot
  2019-05-21 21:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 17:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fb7806c7a49d6eb75cdbff183d10d00f75968c0f ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: fb7806c7a49d6eb75cdbff183d10d00f75968c0f

[gdb/cli] Fix use of uninitialized variable in complete_command

When building gdb on ubuntu 16.04 with gcc 5.4.0, and running the gdb
testsuite we run into:
...
FAIL: gdb.linespec/explicit.exp: complete after -line: \
  cmd complete "b -line argument " (timeout)
...

The failure is reproducible outside the testsuite like this:
...
$ gdb -q build/gdb/testsuite/outputs/gdb.linespec/explicit/explicit \
  -ex "complete b -line argument"
Reading symbols from \
  build/gdb/testsuite/outputs/gdb.linespec/explicit/explicit...
terminate called after throwing an instance of 'std::length_error'
  what():  basic_string::_M_create
  Aborted (core dumped)
...

The problem is here in complete_command:
...
  completion_result result = complete (arg, &word, &quote_char);

  std::string arg_prefix (arg, word - arg);

  if (result.number_matches != 0)
...
The problem is that the word variable is not initialized when
result.number_matches == 0, but the variable is still used in the arg_prefix
initialization.

Fix this by guarding the arg_prefix initialization with the
'result.number_matches != 0' test.

Build and tested on x86_64-linux.

gdb/ChangeLog:

2019-05-21  Tom de Vries  <tdevries@suse.de>

	PR cli/24587
	* cli/cli-cmds.c (complete_command): Fix use of unitialized variable.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Fix -Werror on build
@ 2019-05-21 18:17 sergiodj+buildbot
  2019-05-21 23:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 18:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6467207116c66ff2c58f8bc35cb15b2596f5c457 ***

Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 6467207116c66ff2c58f8bc35cb15b2596f5c457

AArch64: Fix -Werror on build

This patch fixes a hardcoded `l` specifier on a `bfd_signed_vma`.
Instead this now uses BFD_VMA_FMT which fixes the build on 32 bit
hosts.

Committed under the obvious rule.

bfd/ChangeLog:

	PR ld/24373
	* elfnn-aarch64.c (_bfd_aarch64_erratum_843419_branch_to_stub):
	Fix print formatter.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [binutils, Arm] Add support for conditional instructions in Armv8.1-M Mainline
@ 2019-05-21 19:25 sergiodj+buildbot
  2019-05-22  9:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 19:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e39c1607a2df3a97bf7b70bef6de5b7a2db55eea ***

Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: e39c1607a2df3a97bf7b70bef6de5b7a2db55eea

[binutils, Arm] Add support for conditional instructions in Armv8.1-M Mainline

This patch adds the following instructions which are part of the
Armv8.1-M Mainline:
CINC
CINV
CNEG
CSINC
CSINV
CSNEG
CSET
CSETM
CSEL

gas/ChangeLog:

2019-05-21  Sudakshina Das  <sudi.das@arm.com>

	* config/tc-arm.c (TOGGLE_BIT): New.
	(T16_32_TAB): New entries for cinc, cinv, cneg, csinc,
	csinv, csneg, cset, csetm and csel.
	(operand_parse_code): New OP_RR_ZR.
	(parse_operand): Handle case for OP_RR_ZR.
	(do_t_cond): New.
	(insns): New instructions for cinc, cinv, cneg, csinc,
	csinv, csneg, cset, csetm, csel.
	* testsuite/gas/arm/armv8_1-m-cond-bad.d: New test.
	* testsuite/gas/arm/armv8_1-m-cond-bad.l: New test.
	* testsuite/gas/arm/armv8_1-m-cond-bad.s: New test.
	* testsuite/gas/arm/armv8_1-m-cond.d: New test.
	* testsuite/gas/arm/armv8_1-m-cond.s: New test.

opcodes/ChangeLog:

2019-05-21  Sudakshina Das  <sudi.das@arm.com>

	* arm-dis.c (enum mve_instructions): New enum
	for csinc, csinv, csneg, csel, cset, csetm, cinv, cinv
	and cneg.
	(mve_opcodes): New instructions as above.
	(is_mve_encoding_conflict): Add cases for csinc, csinv,
	csneg and csel.
	(print_insn_mve): Accept new %<bitfield>c and %<bitfield>C.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] MIPS/LD: Fix memory fault linking non-PIC object in to shared library
@ 2019-05-21 20:39 sergiodj+buildbot
  2019-05-22 10:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 20:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 304f09d0d4b519f143144d213e1280a0691de8ba ***

Author: Faraz Shahbazker <fshahbazker@wavecomp.com>
Branch: master
Commit: 304f09d0d4b519f143144d213e1280a0691de8ba

MIPS/LD: Fix memory fault linking non-PIC object in to shared library

bfd/
	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Add NULL pointer
	checks.  Search the RELA table for n64 relocations.

ld/
	* testsuite/ld-mips-elf/pic-reloc-5.d: New test.
	* testsuite/ld-mips-elf/pic-reloc-6.d: New test.
	* testsuite/ld-mips-elf/pic-reloc-7.d: New test.
	* testsuite/ld-mips-elf/pic-reloc-5.s: New test source.
	* testsuite/ld-mips-elf/pic-reloc-6.s: New test source.
	* testsuite/ld-mips-elf/pic-reloc-7.s: New test source.
	* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] MIPS/LD: Reject tprel_hi and tprel_lo relocations in shared library
@ 2019-05-21 21:26 sergiodj+buildbot
  2019-05-22 11:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 21:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b474a2022dc14fea0dd8ea4cc66b813486132075 ***

Author: Faraz Shahbazker <fshahbazker@wavecomp.com>
Branch: master
Commit: b474a2022dc14fea0dd8ea4cc66b813486132075

MIPS/LD: Reject tprel_hi and tprel_lo relocations in shared library

bfd/
	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Generate error
	for TLS_TPREL_HI16(/LO16) relocations in shared library.

ld/
	* testsuite/ld-mips-elf/pic-reloc-5.s: Add tests for
	%tprel_hi and %tprel_lo relocations.
	* testsuite/ld-mips-elf/pic-reloc-6.s: Likewise.
	* testsuite/ld-mips-elf/pic-reloc-5.d: Update accordingly.
	* testsuite/ld-mips-elf/pic-reloc-6.d: Likewise.
	* testsuite/ld-mips-elf/pic-reloc-tls.ld: New test linker
	script file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Handle gdbarch_floatformat_for_type returning nullptr
@ 2019-05-22  0:49 sergiodj+buildbot
  2019-05-22 13:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-22  0:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT dc42e902cc54af2b7e7b54a1171d562f867342d5 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: dc42e902cc54af2b7e7b54a1171d562f867342d5

gdb/fortran: Handle gdbarch_floatformat_for_type returning nullptr

In this commit:

  commit 34d11c682fd96c7dbe3ebd6cd9033e65d51ec7a3
  Date:   Fri May 3 15:23:55 2019 +0100

      gdb/fortran: Use floatformats_ia64_quad for fortran 16-byte floats

GDB was changed such that the Fortran's 16-byte float format was
obtained by calling gdbarch_floatformat_for_type instead of just using
gdbarch_long_double_format as it was before.

The problem with this default_floatformat_for_type can return NULL in
some cases, and the code introduced in 34d11c682f didn't consider
this.

This commit introduces several alternative strategies for finding a
suitable 16-byte floating point type.  First GDB calls
gdbarch_floatformat_for_type (this was what 34d11c682f added), if this
returns null GDB will use gdbarch_long_double_format if it is the
correct size (this was the format used before 34d11c682f).  Finally,
if neither of the above provides a suitable type then GDB will create
a new dummy type.

This final dummy type is unlikely to provide an correct debug
experience as far as examining the 16-byte floats, but it should
prevent GDB crashing.

gdb/ChangeLog:

	PR gdb/18644:
	* f-lang.c (build_fortran_types): Handle the case where
	gdbarch_floatformat_for_type returns a nullptr.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfdtest1 segfaults on hppa-hp-hpux10
@ 2019-05-22 10:41 sergiodj+buildbot
  2019-05-22 16:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 10:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4decd602d8570eda5d36fd6cca2e50091000fa7a ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 4decd602d8570eda5d36fd6cca2e50091000fa7a

bfdtest1 segfaults on hppa-hp-hpux10

The archive element cache needs tidying when closing an archive element.
This patch fixes these failures:
-FAIL: ar long file names (bfdtest1)
-FAIL: ar thin archive (bfdtest1)
-FAIL: ar thin archive with nested archive (bfdtest1)

	* som.c (som_bfd_free_cached_info): Call
	_bfd_generic_close_and_cleanup.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Improve flen length determination
@ 2019-05-22 13:57 sergiodj+buildbot
  2019-05-22 23:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 13:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0a5954bd5f96dd665cb733b9ab6f2ca67bb4632d ***

Author: Simon Cook <simon.cook@embecosm.com>
Branch: master
Commit: 0a5954bd5f96dd665cb733b9ab6f2ca67bb4632d

gdb/riscv: Improve flen length determination

This solves an assertion failure when a remote provides a target
description which only refers to floating point registers by their
hardware name (e.g. f0), rather than their ABI name (e.g. ft0). GDB
assumed that should the floating point register feature be presented,
it would contain a register called ft0.

The floating point length is now instead determined by searching for
the same register, but looking for any of its aliases.

gdb/ChangeLog:

	* riscv-tdep.c (riscv_gdbarch_init): Support determining flen from
	target descriptions using exclusively floating point register name
	aliases.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Treat pauth ops as nops on non-pauth systems
@ 2019-05-22 16:32 sergiodj+buildbot
  2019-05-23 17:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 16:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8fca4da0759df376bcb646bc4b79a92ba27e2362 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 8fca4da0759df376bcb646bc4b79a92ba27e2362

AArch64: Treat pauth ops as nops on non-pauth systems

Running an address signed binary through GDB on a non pauth system
gives the following error:
Call Frame Instruction op 45 in vendor extension space is not handled on this architecture.

Instead GDB should ignore the op, treating it as a nop.

Add test case for pauth binaries, regardless of whether the target
supports it.

gdb/ChangeLog:

	* aarch64-tdep.c (aarch64_execute_dwarf_cfa_vendor_op): Treat
	DW_CFA_AARCH64_negate_ra_state as nop on non pauth targets.

gdb/testsuite/ChangeLog:

	* gdb.arch/aarch64-pauth.c: New test.
	* gdb.arch/aarch64-pauth.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Add missing mi_skip_python_tests to py-mi-var-info-path-expression.exp
@ 2019-05-22 18:22 sergiodj+buildbot
  2019-05-23 17:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 18:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e7fe496b1b8c0dfc44876f86131f756b424d4e70 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: e7fe496b1b8c0dfc44876f86131f756b424d4e70

[gdb/testsuite] Add missing mi_skip_python_tests to py-mi-var-info-path-expression.exp

Fix gdb.python/py-mi-var-info-path-expression.exp for a gdb build without
python support.

gdb/testsuite/ChangeLog:

2019-05-22  Tom de Vries  <tdevries@suse.de>

	PR testsuite/24586
	* gdb.python/py-mi-var-info-path-expression.exp: Call
	mi_skip_python_tests to check if python is supported.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Require c++11 for gdb.base/align.exp
@ 2019-05-22 18:33 sergiodj+buildbot
  2019-05-23 18:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 18:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT af1a8d038798bef11471e28d999ad1687312a6a7 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: af1a8d038798bef11471e28d999ad1687312a6a7

[gdb/testsuite] Require c++11 for gdb.base/align.exp

When building gdb on ubuntu 16.04 with gcc 5.4.0, and running the gdb
testsuite we run into a failure due align.exp requiring at least c++11.

Fix this by adding -std=c++11.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2019-05-22  Tom de Vries  <tdevries@suse.de>

	* gdb.base/align.exp: Require c++11.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] opcodes: add support for eBPF
@ 2019-05-23 20:19 sergiodj+buildbot
  2019-05-24  2:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-23 20:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 79472b45328232b083e897a511d4160a6dde0463 ***

Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Branch: master
Commit: 79472b45328232b083e897a511d4160a6dde0463

opcodes: add support for eBPF

This patch adds support for the Linux kernel eBPF architecture to the
opcodes.  The port is based on CGEN.

opcodes/ChangeLog:

2019-05-23  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* configure.ac (SHARED_DEPENDENCIES): Add case for bfd_bpf_arch.
	* configure: Regenerated.
	* Makefile.am: Add rules for the files generated from cpu/bpf.cpu
	and cpu/bpf.opc.
	(HFILES): Add bpf-desc.h and bpf-opc.h.
	(TARGET_LIBOPCODES_CFILES): Add bpf-asm.c, bpf-desc.c, bpf-dis.c,
	bpf-ibld.c and bpf-opc.c.
	(BPF_DEPS): Define.
	* Makefile.in: Regenerated.
	* disassemble.c (ARCH_bpf): Define.
	(disassembler): Add case for bfd_arch_bpf.
	(disassemble_init_for_target): Likewise.
	(enum epbf_isa_attr): Define.
	* disassemble.h: extern print_insn_bpf.
	* bpf-asm.c: Generated.
	* bpf-opc.h: Likewise.
	* bpf-opc.c: Likewise.
	* bpf-ibld.c: Likewise.
	* bpf-dis.c: Likewise.
	* bpf-desc.h: Likewise.
	* bpf-desc.c: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfd: add support for eBPF
@ 2019-05-23 20:52 sergiodj+buildbot
  2019-05-24  0:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-23 20:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fd0de36e274c8141a5dd4579cd04856dc88370da ***

Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Branch: master
Commit: fd0de36e274c8141a5dd4579cd04856dc88370da

bfd: add support for eBPF

This patch adds support to BFD for elf64-bpf, in both little-endian
and big-endian variants.

bfd/ChangeLog:

2019-05-23  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* configure.ac: Add bpf_elf64_le_vec and bpf_elf64_be_vec.
	* configure: Regenerated.
	* Makefile.am (ALL_MACHINES): Add cpu-bpf.lo.
	(ALL_MACHINES_CFILES): Add cpu-bpf.c.
	(BFD64_BACKENDS): Add elf64-bpf.lo.
	(BFD64_BACKENDS_CFILES): Add elf64-bpf.c.
	* Makefile.in (SOURCE_HFILES): Regenerate.
	* config.bfd (targ_cpu): Handle bpf-*-* targets.
	* cpu-bpf.c: New file.
	* elf64-bpf.c: Likewise.
	* targets.c (_bfd_target_vector): Add bpf_elf64_be_vec and
	bpf_elf64_le_vec.
	* archures.c: Define architecture bfd_arch_bpf and machine
	bfd_arch_bpf.
	* reloc.c: Define BFD relocations used by the BPF target.
	* bfd-in2.h: Regenerated.
	* libbfd.h: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC add initial -mfuture instruction support
@ 2019-05-24  2:50 sergiodj+buildbot
  2019-05-24  4:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-24  2:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT dd7efa79151ed5a56caccfac870865764d922a2f ***

Author: Peter Bergner <bergner@linux.ibm.com>
Branch: master
Commit: dd7efa79151ed5a56caccfac870865764d922a2f

PowerPC add initial -mfuture instruction support

This patch adds initial 64-bit insn assembler/disassembler support.
The only instruction added is "pnop" along with the automatic aligning
of prefix instruction so they do not cross 64-byte boundaries.

include/
	* dis-asm.h (WIDE_OUTPUT): Define.
	* opcode/ppc.h (prefix_opcodes, prefix_num_opcodes): Declare.
	(PPC_OPCODE_POWERXX, PPC_GET_PREFIX, PPC_GET_SUFFIX),
	(PPC_PREFIX_P, PPC_PREFIX_SEG): Define.
opcodes/
	* ppc-dis.c (ppc_opts): Add "future" entry.
	(PREFIX_OPCD_SEGS): Define.
	(prefix_opcd_indices): New array.
	(disassemble_init_powerpc): Initialize prefix_opcd_indices.
	(lookup_prefix): New function.
	(print_insn_powerpc): Handle 64-bit prefix instructions.
	* ppc-opc.c (PREFIX_OP, PREFIX_FORM, SUFFIX_MASK, PREFIX_MASK),
	(PMRR, POWERXX): Define.
	(prefix_opcodes): New instruction table.
	(prefix_num_opcodes): New constant.
binutils/
	* objdump.c (disassemble_bytes): Set WIDE_OUTPUT in flags.
gas/
	* config/tc-ppc.c (ppc_setup_opcodes): Handle prefix_opcodes.
	(struct insn_label_list): New.
	(insn_labels, free_insn_labels): New variables.
	(ppc_record_label, ppc_clear_labels, ppc_start_line_hook): New funcs.
	(ppc_frob_label, ppc_new_dot_label): Move functions earlier in file
	and call ppc_record_label.
	(md_assemble): Handle 64-bit prefix instructions.  Align labels
	that are on the same line as a prefix instruction.
	* config/tc-ppc.h (tc_frob_label, ppc_frob_label): Move to
	later in the file.
	(md_start_line_hook): Define.
	(ppc_start_line_hook): Declare.
	* testsuite/gas/ppc/prefix-align.d,
	* testsuite/gas/ppc/prefix-align.s: New test.
	* testsuite/gas/ppc/ppc.exp: Run new test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC relocations for prefix insns
@ 2019-05-24  3:29 sergiodj+buildbot
  2019-05-24 22:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-24  3:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5663e321848545857a690f30a780187e3366bd2d ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 5663e321848545857a690f30a780187e3366bd2d

PowerPC relocations for prefix insns

include/
	* elf/ppc64.h (R_PPC64_PLTSEQ_NOTOC, R_PPC64_PLTCALL_NOTOC),
	(R_PPC64_PCREL_OPT, R_PPC64_D34, R_PPC64_D34_LO, R_PPC64_D34_HI30),
	(R_PPC64_D34_HA30, R_PPC64_PCREL34, R_PPC64_GOT_PCREL34),
	(R_PPC64_PLT_PCREL34, R_PPC64_PLT_PCREL34_NOTOC),
	(R_PPC64_ADDR16_HIGHER34, R_PPC64_ADDR16_HIGHERA34),
	(R_PPC64_ADDR16_HIGHEST34, R_PPC64_ADDR16_HIGHESTA34),
	(R_PPC64_REL16_HIGHER34, R_PPC64_REL16_HIGHERA34),
	(R_PPC64_REL16_HIGHEST34, R_PPC64_REL16_HIGHESTA34),
	(R_PPC64_D28, R_PPC64_PCREL28): Define.
bfd/
	* reloc.c (BFD_RELOC_PPC64_D34, BFD_RELOC_PPC64_D34_LO),
	(BFD_RELOC_PPC64_D34_HI30, BFD_RELOC_PPC64_D34_HA30),
	(BFD_RELOC_PPC64_PCREL34, BFD_RELOC_PPC64_GOT_PCREL34),
	(BFD_RELOC_PPC64_PLT_PCREL34),
	(BFD_RELOC_PPC64_ADDR16_HIGHER34, BFD_RELOC_PPC64_ADDR16_HIGHERA34),
	(BFD_RELOC_PPC64_ADDR16_HIGHEST34, BFD_RELOC_PPC64_ADDR16_HIGHESTA34),
	(BFD_RELOC_PPC64_REL16_HIGHER34, BFD_RELOC_PPC64_REL16_HIGHERA34),
	(BFD_RELOC_PPC64_REL16_HIGHEST34, BFD_RELOC_PPC64_REL16_HIGHESTA34),
	(BFD_RELOC_PPC64_D28, BFD_RELOC_PPC64_PCREL28): New reloc enums.
	* elf64-ppc.c (PNOP): Define.
	(ppc64_elf_howto_raw): Add reloc howtos for new relocations.
	(ppc64_elf_reloc_type_lookup): Translate new bfd reloc numbers.
	(ppc64_elf_ha_reloc): Adjust addend for highera34 and highesta34
	relocs.
	(ppc64_elf_prefix_reloc): New function.
	(struct ppc_link_hash_table): Add notoc_plt.
	(is_branch_reloc): Add R_PPC64_PLTCALL_NOTOC.
	(is_plt_seq_reloc): Add R_PPC64_PLT_PCREL34,
	R_PPC64_PLT_PCREL34_NOTOC, and R_PPC64_PLTSEQ_NOTOC.
	(ppc64_elf_check_relocs): Handle pcrel got and plt relocs.  Set
	has_pltcall for section on seeing R_PPC64_PLTCALL_NOTOC.  Handle
	possible need for dynamic relocs on non-pcrel powerxx relocs.
	(dec_dynrel_count): Handle non-pcrel powerxx relocs.
	(ppc64_elf_inline_plt): Handle R_PPC64_PLTCALL_NOTOC.
	(toc_adjusting_stub_needed): Likewise.
	(ppc64_elf_tls_optimize): Handle R_PPC64_PLTSEQ_NOTOC.
	(ppc64_elf_relocate_section): Handle new powerxx relocs.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
gas/
	* config/tc-ppc.c (ppc_elf_suffix): Support @pcrel, @got@pcrel,
	@plt@pcrel, @higher34, @highera34, @highest34, and @highesta34.
	(fixup_size): Handle new powerxx relocs.
	(md_assemble): Warn for @pcrel on non-prefix insns.
	Accept @l, @h and @ha on prefix insns, and infer reloc without
	any @ suffix.  Translate powerxx relocs to suit DQ and DS field
	instructions.  Include operand tests as well as opcode test to
	translate BFD_RELOC_HI16_S to BFD_RELOC_PPC_16DX_HA.
	(ppc_fix_adjustable): Return false for pcrel GOT and PLT relocs.
	(md_apply_fix): Handle new powerxx relocs.
	* config/tc-ppc.h (TC_FORCE_RELOCATION_SUB_LOCAL): Accept
	BFD_RELOC_PPC64_ADDR16_HIGHER34, BFD_RELOC_PPC64_ADDR16_HIGHERA34,
	BFD_RELOC_PPC64_ADDR16_HIGHEST34, BFD_RELOC_PPC64_ADDR16_HIGHESTA34,
	BFD_RELOC_PPC64_D34, and BFD_RELOC_PPC64_D28.
	* testsuite/gas/ppc/prefix-reloc.d,
	* testsuite/gas/ppc/prefix-reloc.s: New test.
	* testsuite/gas/ppc/ppc.exp: Run it.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC GOT_PCREL34 optimisation
@ 2019-05-24  3:52 sergiodj+buildbot
  2019-05-24 23:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-24  3:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4a421c53cf609d68fe956c2e7270d34c0ab8500f ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 4a421c53cf609d68fe956c2e7270d34c0ab8500f

PowerPC GOT_PCREL34 optimisation

bfd/
	* elf64-ppc.c (ppc64_elf_check_relocs): Set has_gotrel for
	R_PPC64_GOT_PCREL34.
	(xlate_pcrel_opt): New function.
	(ppc64_elf_edit_toc): Handle R_PPC64_GOT_PCREL34.
	(ppc64_elf_relocate_section): Edit GOT indirect to GOT relative
	for R_PPC64_GOT_PCREL34.  Implement R_PPC64_PCREL_OPT optimisation.
ld/
	* testsuite/ld-powerpc/pcrelopt.s,
	* testsuite/ld-powerpc/pcrelopt.d,
	* testsuite/ld-powerpc/pcrelopt.sec: New test.
	* testsuite/ld-powerpc/powerpc.exp: Run it.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC notoc linkage stubs
@ 2019-05-24  4:14 sergiodj+buildbot
  2019-05-24 23:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-24  4:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 04bdff6a76b863e61ee46375dd7cdc9adfb75540 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 04bdff6a76b863e61ee46375dd7cdc9adfb75540

PowerPC notoc linkage stubs

Use pcrel addressing instructions in linkage stubs.

bfd/
	* elf64-ppc.c: Comment on powerxx _notoc stub variants.
	(LI_R11_0, LIS_R11, ORI_R11_R11_0, SLDI_R11_R11_34): Define.
	(PADDI_R12_PC, PLD_R12_PC, D34, HA34): Define.
	(struct ppc_link_hash_table): Add powerxx_stubs.
	(ppc64_elf_check_relocs): Set powerxx_stubs.
	(build_powerxx_offset, size_powerxx_offset),
	(num_relocs_for_powerxx_offset),
	(emit_relocs_for_powerxx_offset): New functions.
	(plt_stub_size): Size powerxx stubs.
	(ppc_build_one_stub): Emit powerxx stubs.
	(ppc_size_one_stub): Size powerxx stubs.  Omit .eh_frame for
	powerxx stubs.
ld/
	* testsuite/ld-powerpc/notoc2.d,
	* testsuite/ld-powerpc/notoc2.s: New test.
	* testsuite/ld-powerpc/powerpc.exp: Run it.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] aarch64: add STO_AARCH64_VARIANT_PCS and DT_AARCH64_VARIANT_PCS
@ 2019-05-25  0:33 sergiodj+buildbot
  2019-05-27  7:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-25  0:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2301ed1c9af1316b4bad3747d2b03f7d44940f87 ***

Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: 2301ed1c9af1316b4bad3747d2b03f7d44940f87

aarch64: add STO_AARCH64_VARIANT_PCS and DT_AARCH64_VARIANT_PCS

The bottom 2 bits of st_other are used for visibility, the top 6 bits are
de facto reserved for processor specific use.  This patch defines a
bits to mark function symbols that follow a variant procedure call standard
with different register usage convention.

A dynamic tag is also defined that marks modules with R_<CLS>_JUMP_SLOT
relocations referencing symbols marked with STO_AARCH64_VARIANT_PCS.
This can be used by dynamic linkers that support lazy binding to decide
what registers need to be preserved during symbol resolution.

binutils/ChangeLog:

	* readelf.c (get_aarch64_dynamic_type): Handle DT_AARCH64_VARIANT_PCS.
	(get_aarch64_symbol_other): New, handles STO_AARCH64_VARIANT_PCS.
	(get_symbol_other): Call get_aarch64_symbol_other.

include/ChangeLog:

	* elf/aarch64.h (DT_AARCH64_VARIANT_PCS): Define.
	(STO_AARCH64_VARIANT_PCS): Define.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] aarch64: handle STO_AARCH64_VARIANT_PCS in bfd
@ 2019-05-25  0:56 sergiodj+buildbot
  2019-05-27  7:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-25  0:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 823710d5856996d1f54f04ecb2f7647aeae99b5b ***

Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: 823710d5856996d1f54f04ecb2f7647aeae99b5b

aarch64: handle STO_AARCH64_VARIANT_PCS in bfd

Propagate STO_AARCH64_VARIANT_PCS st_other attribute to the output and
add DT_AARCH64_VARIANT_PCS dynamic tag if necessary.

Mismatching attributes are not diagnosed.

bfd/ChangeLog:

	* elfnn-aarch64.c (elfNN_aarch64_merge_symbol_attribute): New function.
	(struct elf_aarch64_link_hash_table): Add variant_pcs member.
	(elfNN_aarch64_allocate_dynrelocs): Update variant_pcs.
	(elfNN_aarch64_size_dynamic_sections): Add DT_AARCH64_VARIANT_PCS.
	(elf_backend_merge_symbol_attribute): Define.

ld/ChangeLog:

	* testsuite/ld-aarch64/aarch64-elf.exp: Add new tests.
	* testsuite/ld-aarch64/variant_pcs-1.s: New asm for tests.
	* testsuite/ld-aarch64/variant_pcs-2.s: New asm for tests.
	* testsuite/ld-aarch64/variant_pcs-now.d: New test.
	* testsuite/ld-aarch64/variant_pcs-r.d: New test.
	* testsuite/ld-aarch64/variant_pcs-shared.d: New test.
	* testsuite/ld-aarch64/variant_pcs.ld: New linker script for tests.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Regen POTFILES for bpf
@ 2019-05-25  1:22 sergiodj+buildbot
  2019-05-25  4:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-25  1:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 405b5bd86fbcfa9ad5e67e9cdc49dfcdaacf533c ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 405b5bd86fbcfa9ad5e67e9cdc49dfcdaacf533c

Regen POTFILES for bpf

bfd/
	* po/SRC-POTFILES.in: Regenerate.
gas/
	* po/POTFILES.in: Regenerate.
ld/
	* po/BLD-POTFILES.in: Regenerate.
opcodes/
	* po/POTFILES.in: Regenerate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix typo in gdb/NEWS
@ 2019-05-28  3:44 sergiodj+buildbot
  2019-05-28  4:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-28  3:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT eb41253a15e2c976869ba1b1f0c3c0e60065fd4f ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: eb41253a15e2c976869ba1b1f0c3c0e60065fd4f

Fix typo in gdb/NEWS

I noticed a typo in gdb/NEWS.  This fixes it.

gdb/ChangeLog
2019-05-27  Tom Tromey  <tom@tromey.com>

	* NEWS: Fix typo.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] XCOFF linker segmentation fault
@ 2019-05-28  4:24 sergiodj+buildbot
  2019-05-28 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-28  4:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0eb32b6e1dee07ac199b4bba855205e4de099213 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 0eb32b6e1dee07ac199b4bba855205e4de099213

XCOFF linker segmentation fault

The XCOFF linker temporarily trims the output bfd section list,
without adjusting section_count to suit.  This is a little rude, but
the dwarf line number code can easily cope with this situation.  So
check for a NULL end of list as well as limiting the saved section
VMAs to the first section_count list entries.

Also fixes
-FAIL: Weak test 3 (main, static) (32-bit)
-FAIL: Weak test 3 (main, static) (64-bit)

	PR 24596
	* dwarf2.c (save_section_vma, section_vma_same): Check for NULL
	end of section list as well as section_count.
	* xcofflink.c (xcoff_link_add_symbols): Fix temporarily changed
	section list before returning error.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] LM32 linker segmentation faults
@ 2019-05-29  0:02 sergiodj+buildbot
  2019-05-29  3:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  0:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a0f6fd217fa53ab80a335fb69f12f1f28ac3335a ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: a0f6fd217fa53ab80a335fb69f12f1f28ac3335a

LM32 linker segmentation faults

	PR 24596
	* elf32-lm32.c (lm32_elf_finish_dynamic_sections): Don't segfault
	on NULL output_section.
	* elflink.c (elf_final_link_free): Don't free -1 symshndxbuf.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Alpha-linux linker segmentation fault
@ 2019-05-29  0:04 sergiodj+buildbot
  2019-05-29  5:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  0:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 28fbeab8064f97ca5fe1a851fdc4146b7aed8863 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 28fbeab8064f97ca5fe1a851fdc4146b7aed8863

Alpha-linux linker segmentation fault

This patch cures a linker segfault, and "FAIL: Build pr22263-1".

	PR 24596
	* elf64-alpha.c (elf64_alpha_relocate_section): Don't attempt
	to emit R_ALPHA_GOTTPREL in PIEs, for which no space is
	allocated in alpha_dynamic_entries_for_reloc.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Microblaze linker segmentation fault
@ 2019-05-29  0:06 sergiodj+buildbot
  2019-05-29  8:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  0:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 94667ab146a0c94f87f3d9aa7d1c819663b28338 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 94667ab146a0c94f87f3d9aa7d1c819663b28338

Microblaze linker segmentation fault

	PR 24596
	* elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Don't
	attempt to set sh_entsize for excluded PLT section.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Suppress SIGTTOU when handling errors
@ 2019-05-29  0:08 sergiodj+buildbot
  2019-05-29 11:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  0:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 766f883622ef008230250aa5aecef9fb9b29f233 ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 766f883622ef008230250aa5aecef9fb9b29f233

Suppress SIGTTOU when handling errors

Calls to error () can cause SIGTTOU to send gdb to the background.

For example, on an Arm build:
  (gdb) b main
  Breakpoint 1 at 0x10774: file /build/gdb/testsuite/../../../src/binutils-gdb/gdb/testsuite/gdb.base/watchpoint.c, line 174.
  (gdb) r
  Starting program: /build/gdb/testsuite/outputs/gdb.base/watchpoint/watchpoint

  [1]+  Stopped                 ../gdb ./outputs/gdb.base/watchpoint/watchpoint
  localhost$ fg
  ../gdb ./outputs/gdb.base/watchpoint/watchpoint
  Cannot parse expression `.L1199 4@r4'.
  warning: Probes-based dynamic linker interface failed.
  Reverting to original interface.

The SIGTTOU is raised whilst inside a syscall during the call to tcdrain.
Fix is to use scoped_ignore_sigttou to ensure SIGTTOU is blocked.

In addition fix include comments - job_control is not included via terminal.h

gdb/ChangeLog:

	* event-top.c: Remove include comment.
	* inflow.c (class scoped_ignore_sigttou): Move from here...
	* inflow.h (class scoped_ignore_sigttou): ...to here.
	* ser-unix.c (hardwire_drain_output): Block SIGTTOU during drain.
	* top.c:  Remove include comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] include: new header ctf-api.h
@ 2019-05-29  0:11 sergiodj+buildbot
  2019-05-29 15:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  0:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2e94b05630514109994abb77ee2dae730f17c263 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 2e94b05630514109994abb77ee2dae730f17c263

include: new header ctf-api.h

This non-installed header is the means by which libctf consumers
communicate with libctf.

This header will be extended in subsequent commits.

include/
	* ctf-api.h: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] m68k linker segmentation faults
@ 2019-05-29  0:24 sergiodj+buildbot
  2019-05-29  1:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  0:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c83004d526c9f5e203926a979d405f7b720b9ede ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: c83004d526c9f5e203926a979d405f7b720b9ede

m68k linker segmentation faults

This doesn't fix the underlying bug, but an abort is better than a
segfault.

	PR 24596
	* elf32-m68k.c (elf_m68k_get_got_entry): Don't create a new
	entry when MUST_FIND.  Abort when MUST_FIND not found.
	(elf_m68k_get_bfd2got_entry): Likewise.
	(elf_m68k_relocate_section): Remove now useless assert.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: build system
@ 2019-05-29  0:50 sergiodj+buildbot
  2019-06-01 10:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  0:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0e65dfbaf3a0299e4837216a103c28625d4b4f1d ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 0e65dfbaf3a0299e4837216a103c28625d4b4f1d

libctf: build system

This ties libctf into the build system, and makes binutils depend on it
(used by the next commits).

	* Makefile.def (host_modules): Add libctf.
	* Makefile.def (dependencies): Likewise.
	libctf depends on zlib, libiberty, and bfd.
	* Makefile.in: Regenerated.
	* configure.ac (host_libs): Add libctf.
	* configure: Regenerated.

libctf/
	* Makefile.am: New.
	* Makefile.in: Regenerated.
	* config.h.in: Likewise.
	* aclocal.m4: Likewise.
	* configure: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove find_old_style_renaming_symbol
@ 2019-05-29  1:04 sergiodj+buildbot
  2019-06-01 11:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  1:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c0e70c624fc7d89f5cf281350692de89a063786f ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: c0e70c624fc7d89f5cf281350692de89a063786f

Remove find_old_style_renaming_symbol

We found a case where a "bt" was very slow with Ada code.  Profiling
with callgrind showed this to be primarily due to calls to
find_old_style_renaming_symbol.  Because new-style renaming symbols
were implemented in 2007, it seems safe enough to remove this old
code.

A "-batch -ex bt" test on a large Ada program improves from:

    13.23user 0.57system 0:13.82elapsed 99%CPU (0avgtext+0avgdata 571408maxresident)k

to

    4.25user 0.48system 0:04.74elapsed 99%CPU (0avgtext+0avgdata 559844maxresident)k

with this patch.

Tested on x86-64 Fedora 29.  Joel reviewed this internally; and as it
is Ada-specific, I am checking it in.

gdb/ChangeLog
2019-05-28  Tom Tromey  <tromey@adacore.com>

	* ada-lang.c (ada_remove_Xbn_suffix)
	(find_old_style_renaming_symbol)
	(parse_old_style_renaming): Remove.
	(ada_find_renaming_symbol): Don't call
	find_old_style_renaming_symbol.
	(ada_is_renaming_symbol): Rename from
	ada_find_renaming_symbol.  Remove "block" parameter.  Return
	bool.  Now static.
	(ada_read_var_value): Update and simplify.
	* ada-exp.y (write_var_or_type): Remove old code.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86: Add CheckRegSize to AVX512_BF16 instructions with Disp8ShiftVL
@ 2019-05-29  1:10 sergiodj+buildbot
  2019-06-01 11:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  1:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a2f4b66c9eb5210f8ef6038d7194af1e5f314f97 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: a2f4b66c9eb5210f8ef6038d7194af1e5f314f97

x86: Add CheckRegSize to AVX512_BF16 instructions with Disp8ShiftVL

For AVX512 instructions with Disp8ShiftVL and Broadcast, we may need to
add CheckRegSize to check if broadcast matches the destination register
size.

gas/

	PR gas/24625
	* testsuite/gas/i386/inval-avx512f.s: Add tests for AVX512_BF16
	instructions with invalid broadcast.
	* testsuite/gas/i386/x86-64-inval-avx512f.s: Likewise.
	* testsuite/gas/i386/inval-avx512f.l: Updated.
	* testsuite/gas/i386/x86-64-inval-avx512f.l: Likewise.

opcodes/

	PR gas/24625
	* i386-opc.tbl: Add CheckRegSize to AVX512_BF16 instructions with
	Disp8ShiftVL.
	* i386-tbl.h: Regenerated.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] MIPS/LD: Skip overflow check for %pcrel_hi relocations
@ 2019-05-29  1:13 sergiodj+buildbot
  2019-06-01 11:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  1:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1e129bbefadbf09ace0fc7fcb3cfcda13700e3b8 ***

Author: Faraz Shahbazker <fshahbazker@wavecomp.com>
Branch: master
Commit: 1e129bbefadbf09ace0fc7fcb3cfcda13700e3b8

MIPS/LD: Skip overflow check for %pcrel_hi relocations

Overflow checks were removed for all hi16 relocations except PC-relative
high relocations per PR ld/16720.  Remove overflow checks from %pcrel_hi
relocations so that we can correctly handle negative offsets from PC.

bfd/
	* elfxx-mips.c (mips_elf_calculate_relocation) <R_MIPS_PCHI16>:
	Remove overflow check.

ld/
	* testsuite/ld-mips-elf/undefweak-overflow.s: Remove test case
	for pcrel_hi/pcrel_lo.
	* testsuite/ld-mips-elf/undefweak-overflow.d: Update to match.
	* testsuite/ld-mips-elf/reloc-pcrel-r6.s: New test source.
	* testsuite/ld-mips-elf/reloc-pcrel-r6.d: New test linker script.
	* testsuite/ld-mips-elf/reloc-pcrel-r6.ld: New test.
	* testsuite/ld-mips-elf/mips-elf.exp: Run the new test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: opening
@ 2019-05-29  2:19 sergiodj+buildbot
  2019-05-30  3:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  2:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 72f3392127e1892cb203a98092b4ae32485365fe ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 72f3392127e1892cb203a98092b4ae32485365fe

libctf: opening

This fills in the other half of the opening/creation puzzle: opening of
already-existing CTF files.  Such files are always read-only: if you
want to add to a CTF file opened with one of the opening functions in
this file, use ctf_add_type(), in a later commit, to copy appropriate
types into a newly ctf_create()d, writable container.

The lowest-level opening functions are in here: ctf_bufopen(), which
takes ctf_sect_t structures akin to ELF section headers, and
ctf_simple_open(), which can be used if you don't have an entire ELF
section header to work from.  Both will malloc() new space for the
buffers only if necessary, will mmap() directly from the file if
requested, and will mprotect() it afterwards to prevent accidental
corruption of the types. These functions are also used by ctf_update()
when converting types in a writable container into read-only types that
can be looked up using the lookup functions (in later commits).

The files are always of the native endianness of the system that created
them: at read time, the endianness of the header magic number is used to
determine whether or not the file needs byte-swapping, and the entire
thing is aggressively byte-swapped.

The agggressive nature of this swapping avoids complicating the rest of
the code with endianness conversions, while the native endianness
introduces no byte-swapping overhead in the common case. (The
endianness-independence code is also much newer than everything else in
this file, and deserves closer scrutiny.)

The accessors at the top of the file are there to transparently support
older versions of the CTF file format, allowing translation from older
formats that have different sizes for the structures in ctf.h:
currently, these older formats are intermingled with the newer ones in
ctf.h: they will probably migrate to a compatibility header in time, to
ease readability.  The ctf_set_base() function is split out for the same
reason: when conversion code to a newer format is written, it would need
to malloc() new storage for the entire ctf_file_t if a file format
change causes it to grow, and for that we need ctf_set_base() to be a
separate function.

One pair of linked data structures supported by this file has no
creation code in libctf yet: the data and function object sections read
by init_symtab(). These will probably arrive soon, when the linker comes
to need them. (init_symtab() has hardly been changed since 2009, but if
any code in libctf has rotted over time, this will.)

A few simple accessors are also present that can even be called on
read-only containers because they don't actually modify them, since the
relevant things are not stored in the container but merely change its
operation: ctf_setmodel(), which lets you specify whether a container is
LP64 or not (used to statically determine the sizes of a few types),
ctf_import(), which is the only way to associate a parent container with
a child container, and ctf_setspecific(), which lets the caller
associate an arbitrary pointer with the CTF container for any use. If
the user doesn't call these functions correctly, libctf will misbehave:
this is particularly important for ctf_import(), since a container built
against a given parent container will not be able to resolve types that
depend on types in the parent unless it is ctf_import()ed with a parent
container with the same set of types at the same IDs, or a superset.

Possible future extensions (also noted in the ctf-hash.c file) include
storing a count of things so that we don't need to do one pass over the
CTF file counting everything, and computing a perfect hash at CTF
creation time in some compact form, storing it in the CTF file, and
using it to hash things so we don't need to do a second pass over the
entire CTF file to set up the hashes used to go from names to type IDs.
(There are multiple such hashes, one for each C type namespace: types,
enums, structs, and unions.)

libctf/
	* ctf-open.c: New file.
	* swap.h: Likewise.
include/
	* ctf-api.h (ctf_file_close): New declaration.
	(ctf_getdatasect): Likewise.
	(ctf_parent_file): Likewise.
	(ctf_parent_name): Likewise.
	(ctf_parent_name_set): Likewise.
	(ctf_import): Likewise.
	(ctf_setmodel): Likewise.
	(ctf_getmodel): Likewise.
	(ctf_setspecific): Likewise.
	(ctf_getspecific): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: core type lookup
@ 2019-05-29  3:33 sergiodj+buildbot
  2019-05-31 16:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  3:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 316afdb130346e44622229793d1fb8d391059f8d ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 316afdb130346e44622229793d1fb8d391059f8d

libctf: core type lookup

Finally we get to the functions used to actually look up and enumerate
properties of types in a container (names, sizes, members, what type a
pointer or cv-qual references, determination of whether two types are
assignment-compatible, etc).

With a very few exceptions these do not work for types newly added via
ctf_add_*(): they only work on types in read-only containers, or types
added before the most recent call to ctf_update().

This also adds support for lookup of "variables" (string -> type ID
mappings) and for generation of C type names corresponding to a type ID.

libctf/
	* ctf-decl.c: New file.
	* ctf-types.c: Likewise.
	* ctf-impl.h: New declarations.

include/
	* ctf-api.h (ctf_visit_f): New definition.
	(ctf_member_f): Likewise.
	(ctf_enum_f): Likewise.
	(ctf_variable_f): Likewise.
	(ctf_type_f): Likewise.
	(ctf_type_isparent): Likewise.
	(ctf_type_ischild): Likewise.
	(ctf_type_resolve): Likewise.
	(ctf_type_aname): Likewise.
	(ctf_type_lname): Likewise.
	(ctf_type_name): Likewise.
	(ctf_type_sizee): Likewise.
	(ctf_type_align): Likewise.
	(ctf_type_kind): Likewise.
	(ctf_type_reference): Likewise.
	(ctf_type_pointer): Likewise.
	(ctf_type_encoding): Likewise.
	(ctf_type_visit): Likewise.
	(ctf_type_cmp): Likewise.
	(ctf_type_compat): Likewise.
	(ctf_member_info): Likewise.
	(ctf_array_info): Likewise.
	(ctf_enum_name): Likewise.
	(ctf_enum_value): Likewise.
	(ctf_member_iter): Likewise.
	(ctf_enum_iter): Likewise.
	(ctf_type_iter): Likewise.
	(ctf_variable_iter): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: library version enforcement
@ 2019-05-29  4:16 sergiodj+buildbot
  2019-05-31 21:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  4:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6c33b742ce19cc2fd226d84f2991572239199a62 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 6c33b742ce19cc2fd226d84f2991572239199a62

libctf: library version enforcement

This old Solaris standard allows callers to specify that they are
expecting one particular API and/or CTF file format from the library.

libctf/
	* ctf-impl.h (_libctf_version): New declaration.
	* ctf-subr.c (_libctf_version): Define it.
	(ctf_version): New.

include/
	* ctf-api.h (ctf_version): New.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: labels
@ 2019-05-29  4:47 sergiodj+buildbot
  2019-06-01  6:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  4:47 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6dbf2b734063522b4f3d7403ce7a2b436802b839 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 6dbf2b734063522b4f3d7403ce7a2b436802b839

libctf: labels

This facility allows you to associate regions of type IDs with *labels*,
a labelled tiling of the type ID space. You can use these to define
CTF containers with distinct parents for distinct ranges of the ID
space, or to assist with parallelization of CTF processing, or for any
other purpose you can think of.

Notably absent from here (though declared in the API header) is any way
to define new labels: this will probably be introduced soon, as part of
the linker deduplication work.  (One existed in the past, but was deeply
tied to the Solaris CTF file generator and had to be torn out.)

libctf/
	* ctf-labels.c: New.
include/
	* ctf-api.h (ctf_label_f): New.
	(ctf_label_set): New.
	(ctf_label_get): New.
	(ctf_label_topmost): New.
	(ctf_label_info): New.
	(ctf_label_iter): New.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: debug dumping
@ 2019-05-29  4:51 sergiodj+buildbot
  2019-06-01  8:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  4:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a30b3e182aad25f94de6412efd5d78f7805fb4d3 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: a30b3e182aad25f94de6412efd5d78f7805fb4d3

libctf: debug dumping

This introduces ctf_dump(), an iterator which returns a series of
strings, each representing a debugging dump of one item from a given
section in the CTF file.  The items may be multiline: a callback is
provided to allow the caller to decorate each line as they desire before
the line is returned.

libctf/
	* ctf-dump.c: New.

include/
	* ctf-api.h (ctf_dump_decorate_f): New.
	(ctf_dump_state_t): new.
	(ctf_dump): New.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] COFF linker segmentation faults
@ 2019-05-29  5:10 sergiodj+buildbot
  2019-05-29  9:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  5:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0f4a61b42002f568473f821f00dd240413beadd0 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 0f4a61b42002f568473f821f00dd240413beadd0

COFF linker segmentation faults

A plugin can change the element, so call the generic
bfd_link_add_symbols.

	PR 24596
	* cofflink.c (coff_link_check_archive_element): Don't assume
	element is a coff object file after calling add_archive_element.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: lowest-level memory allocation and debug-dumping wrappers
@ 2019-05-29  9:28 sergiodj+buildbot
  2019-05-29 16:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29  9:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 60da9d955964759b1f52690bff587ad32a198507 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 60da9d955964759b1f52690bff587ad32a198507

libctf: lowest-level memory allocation and debug-dumping wrappers

The memory-allocation wrappers are simple things to allow malloc
interposition: they are only used inconsistently at present, usually
where malloc debugging was required in the past.

These provide a default implementation that is environment-variable
triggered (initialized on the first call to the libctf creation and
file-opening functions, the first functions people will use), and
a ctf_setdebug()/ctf_getdebug() pair that allows the caller to
explicitly turn debugging off and on.  If ctf_setdebug() is called,
the automatic setting from an environment variable is skipped.

libctf/
	* ctf-impl.h: New file.
	* ctf-subr.c: New file.

include/
	* ctf-api.h (ctf_setdebug): New.
	(ctf_getdebug): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: error handling
@ 2019-05-29 10:59 sergiodj+buildbot
  2019-05-29 20:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 10:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 479604f44fc1eaa02a97ebcc1b60f55a606c4046 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 479604f44fc1eaa02a97ebcc1b60f55a606c4046

libctf: error handling

CTF functions return zero on success or an extended errno value which
can be translated into a string via the functions in this commit.

The errno numbers start at -CTF_BASE.

libctf/
	* ctf-error.c: New file.

include/
	* ctf-api.h (ctf_errno): New declaration.
	(ctf_errmsg): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: implementation definitions related to file creation
@ 2019-05-29 12:26 sergiodj+buildbot
  2019-05-30  1:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 12:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a5be9bbe896d4adb6077e9bb2ebcaaa4426bdde1 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: a5be9bbe896d4adb6077e9bb2ebcaaa4426bdde1

libctf: implementation definitions related to file creation

We now enter a series of commits that are sufficiently tangled that
avoiding forward definitions is almost impossible: no attempt is made to
make individual commits compilable (which is why the build system does
not reference any of them yet): the only important thing is that they
should form something like conceptual groups.

But first, some definitions, including the core ctf_file_t itself.  Uses
of these definitions will be introduced in later commits.

libctf/
	* ctf-impl.h: New definitions and declarations for type creation
	and lookup.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: ELF file opening via BFD
@ 2019-05-29 16:18 sergiodj+buildbot
  2019-05-31 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 16:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 143dce8481f09f60704ab52b98cf8fe6d8b29fc9 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 143dce8481f09f60704ab52b98cf8fe6d8b29fc9

libctf: ELF file opening via BFD

These functions let you open an ELF file with a customarily-named CTF
section in it, automatically opening the CTF file or archive and
associating the symbol and string tables in the ELF file with the CTF
container, so that you can look up the types of symbols in the ELF file
via ctf_lookup_by_symbol(), and so that strings can be shared between
the ELF file and CTF container, to save space.

It uses BFD machinery to do so.  This has now been lightly tested and
seems to work.  In particular, if you already have a bfd you can pass
it in to ctf_bfdopen(), and if you want a bfd made for you you can
call ctf_open() or ctf_fdopen(), optionally specifying a target (or
try once without a target and then again with one if you get
ECTF_BFD_AMBIGUOUS back).

We use a forward declaration for the struct bfd in ctf-api.h, so that
ctf-api.h users are not required to pull in <bfd.h>.  (This is mostly
for the sake of readelf.)

libctf/
	* ctf-open-bfd.c: New file.
	* ctf-open.c (ctf_close): New.
	* ctf-impl.h: Include bfd.h.
	(ctf_file): New members ctf_data_mmapped, ctf_data_mmapped_len.
	(ctf_archive_internal): New members ctfi_abfd, ctfi_data,
	ctfi_bfd_close.
	(ctf_bfdopen_ctfsect): New declaration.
	(_CTF_SECTION): likewise.

include/
	* ctf-api.h (struct bfd): New forward.
	(ctf_fdopen): New.
	(ctf_bfdopen): Likewise.
	(ctf_open): Likewise.
	(ctf_arc_open): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: lookups by name and symbol
@ 2019-05-29 19:15 sergiodj+buildbot
  2019-05-31 16:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 19:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b437bfe0f4cf06559ca4c508a2869383196ddc6b ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: b437bfe0f4cf06559ca4c508a2869383196ddc6b

libctf: lookups by name and symbol

These functions allow you to look up types given a name in a simple
subset of C declarator syntax (no function pointers), to look up the
types of variables given a name, and to look up the types of data
objects and the type signatures of functions given symbol table offsets.

(Despite its name, one function in this commit, ctf_lookup_symbol_name(),
is for the internal use of libctf only, and does not appear in any
public header files.)

libctf/
	* ctf-lookup.c (isqualifier): New.
	(ctf_lookup_by_name): Likewise.
	(struct ctf_lookup_var_key): Likewise.
	(ctf_lookup_var): Likewise.
	(ctf_lookup_variable): Likewise.
	(ctf_lookup_symbol_name): Likewise.
	(ctf_lookup_by_symbol): Likewise.
	(ctf_func_info): Likewise.
	(ctf_func_args): Likewise.

include/
	* ctf-api.h (ctf_func_info): New.
	(ctf_func_args): Likewise.
	(ctf_lookup_by_symbol): Likewise.
	(ctf_lookup_by_symbol): Likewise.
	(ctf_lookup_variable): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Revert "Sync top level files with versions from gcc."
@ 2019-05-30 11:54 sergiodj+buildbot
  2019-06-02  0:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-30 11:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e3f56a99f66298bb505d0426950b9716a853a5df ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: e3f56a99f66298bb505d0426950b9716a853a5df

Revert "Sync top level files with versions from gcc."

This reverts commit f948b2de97884bfb4e5fc11d40a6bea9e0b096ae.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Two comment fixes in gdbtypes.h
@ 2019-05-30 16:46 sergiodj+buildbot
  2019-06-02  3:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-30 16:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bfcdb85206cd3c3b8ad73b13db6bfb2ec608239b ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: bfcdb85206cd3c3b8ad73b13db6bfb2ec608239b

Two comment fixes in gdbtypes.h

This fixes a couple of comments in gdbtypes.h.  One comment had a
typo; and another comment referred to "Moto", which is presumably some
long-gone Motorola-related project.

Tested by rebuilding.

gdb/ChangeLog
2019-05-30  Tom Tromey  <tromey@adacore.com>

	* gdbtypes.h (struct range_bounds) <flag_upper_bound_is_count>:
	Fix comment.
	(TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED): Rewrite comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add previous_saved_command_line to allow a command to repeat a previous command.
@ 2019-05-31 17:03 sergiodj+buildbot
  2019-06-02 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-31 17:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 68bb5386b84af4031175bf186269eb6b54b8611d ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 68bb5386b84af4031175bf186269eb6b54b8611d

Add previous_saved_command_line to allow a command to repeat a previous command.

Currently, a previous command can be repeated when the user types an
empty line.  This is implemented in handle_line_of_input by
returning saved_command_line in case an empty line has been input.

If we want a command to repeat the previous command, we need to save
the previous saved_command_line, as when a command runs, the saved_command_line
already contains the current command line of the command being executed.

As suggested by Tom, the previous_saved_command_line is made static.
At the same time, saved_command_line is also made static.
The support functions/variables for the repeat command logic are now all
located inside top.c.

gdb/ChangeLog
2019-05-31  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* top.h (saved_command_line): Remove declaration.
	* top.c (previous_saved_command_line, previous_repeat_arguments):
	New variables.
	(saved_command_line): Make static, define together with other
	'repeat variables'.
	(dont_repeat): Clear repeat_arguments.
	(repeat_previous, get_saved_command_line, save_command_line):
	New functions.
	(gdb_init): Initialize saved_command_line
	and previous_saved_command_line.
	* main.c (captured_main_1): Remove saved_command_line initialization.
	* event-top.c (handle_line_of_input): Update to use
	the new 'repeat' related functions instead of direct access to
	saved_command_line.
	* command.h (repeat_previous, get_saved_command_line,
	save_command_line): New declarations.
	(dont_repeat): Add comment.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Implement | (pipe) command.
@ 2019-05-31 18:04 sergiodj+buildbot
  2019-06-02 23:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-31 18:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 947d39462e26b0edee9b58003ea579552dbf4fa8 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 947d39462e26b0edee9b58003ea579552dbf4fa8

Implement | (pipe) command.

The pipe command allows to run a GDB command, and pipe its output
to a shell command:
  (gdb) help pipe
  Send the output of a gdb command to a shell command.
  Usage: | [COMMAND] | SHELL_COMMAND
  Usage: | -d DELIM COMMAND DELIM SHELL_COMMAND
  Usage: pipe [COMMAND] | SHELL_COMMAND
  Usage: pipe -d DELIM COMMAND DELIM SHELL_COMMAND

  Executes COMMAND and sends its output to SHELL_COMMAND.

  The -d option indicates to use the string DELIM to separate COMMAND
  from SHELL_COMMAND, in alternative to |.  This is useful in
  case COMMAND contains a | character.

  With no COMMAND, repeat the last executed command
  and send its output to SHELL_COMMAND.
  (gdb)

For example:
  (gdb) pipe print some_data_structure | grep -B3 -A3 something

The pipe character is defined as an alias for pipe command, so that
the above can be typed as:
  (gdb) | print some_data_structure | grep -B3 -A3 something

If no GDB COMMAND is given, then the previous command is relaunched,
and its output is sent to the given SHELL_COMMAND.

This also defines convenience vars $_shell_exitcode and $_shell_exitsignal
to record the exit code and exit signal of the last shell command
launched by GDB e.g. by "shell", "pipe", ...

gdb/ChangeLog
2019-05-31  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* cli/cli-cmds.c (pipe_command): New function.
	(_initialize_cli_cmds): Call add_com for pipe_command.
	Define | as an alias for pipe.
	(exit_status_set_internal_vars): New function.
	(shell_escape): Call exit_status_set_internal_vars.
	cli/cli-decode.c (find_command_name_length): Recognize | as
	a single character command.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add function execute_command_to_ui_file
@ 2019-05-31 18:34 sergiodj+buildbot
  2019-06-02 23:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-31 18:34 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b8fd091888383703f5d708c597c496d7b9e47a21 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: b8fd091888383703f5d708c597c496d7b9e47a21

Add function execute_command_to_ui_file

2019-05-31  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdbcmd.h (execute_command_to_ui_file): New declaration.
	top.c (execute_command_to_ui_file): New function, mostly a copy
	of execute_command_to_string.
	(execute_command_to_string): Implement by calling
	execute_command_to_ui_file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] NEWS and documentation for | (pipe) command.
@ 2019-05-31 18:35 sergiodj+buildbot
  2019-06-03  2:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-05-31 18:35 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e2c52041c02e2bdee5b28e97c7997caf0ee5bb2d ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: e2c52041c02e2bdee5b28e97c7997caf0ee5bb2d

NEWS and documentation for | (pipe) command.

gdb/ChangeLog
	* NEWS: Mention new pipe command and new convenience variables.

gdb/doc/ChangeLog
	* gdb.texinfo (Shell Commands): Document pipe command.
	(Logging Output): Add a reference to pipe command.
	(Convenience Variables): Document $_shell_exitcode and
	$_shell_exitstatus.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove fromhex implementation from gdbreplay
@ 2019-06-03  2:58 sergiodj+buildbot
  2019-06-03 15:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-03  2:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 88ed7edbc632245fad33145e723d27976b6732ca ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 88ed7edbc632245fad33145e723d27976b6732ca

Remove fromhex implementation from gdbreplay

gdbreplay had its own implementation of fromhex.  This patch changes
it to use the one in common/.

gdb/gdbserver/ChangeLog
2019-06-02  Tom Tromey  <tom@tromey.com>

	* gdbreplay.c (fromhex): Remove.
	* Makefile.in (GDBREPLAY_OBS): Add rsp-low.o.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't waste space in prefix_opcd_indices
@ 2019-06-03 16:02 sergiodj+buildbot
  2019-06-03 20:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 16:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4f6d070adb32e61c3c61e621c6566fc2d5af2232 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 4f6d070adb32e61c3c61e621c6566fc2d5af2232

Don't waste space in prefix_opcd_indices

	* ppc-dis.c (prefix_opcd_indices): Correct size.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Revert patch that disables building libctf for non-ELF based targets.
@ 2019-06-03 21:15 sergiodj+buildbot
  2019-06-03 21:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 21:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 79b377b3cf3a0e71e1e4710c4ee1e65e7a27a5d4 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 79b377b3cf3a0e71e1e4710c4ee1e65e7a27a5d4

Revert patch that disables building libctf for non-ELF based targets.

Revert:
binutls	2019-05-29  Nick Clifton  <nickc@redhat.com>

	* configure.ac (LIBCTF): Export.  Set to empty for non-ELF based
	targets.
	(HAVE_LIBCTF): Define if libctf support is available.
	* Makefile.am (LIBCTF): Set value to @LIBCTF@.
	* objdump.c: Make CTF code conditional upon HAVE_LIBCTF being
	defined.
	* readelf.c: Likewise.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* config.in: Regenerate.

top	2019-05-29  Nick Clifton  <nickc@redhat.com>

	* configure.ac (noconfigdirs): Add libctf if the target does not use
	the ELF file format.
	* configure: Regenerate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add highlight style, title style, fputs_highlighted. Improve 'show style'
@ 2019-06-03 21:49 sergiodj+buildbot
  2019-06-03 23:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 21:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9303eb2fb1630678def10613c81215c2bd21d278 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 9303eb2fb1630678def10613c81215c2bd21d278

Add highlight style, title style, fputs_highlighted. Improve 'show style'

Have 'show style' and its subcommands using a style to style its output.
This allows the GDB user or developer to use 'show style' to visually see
with one command how all the current styles look like.

Add 2 new styles highlight style, title style and fputs_highlighted function.

Highlight style is used by fputs_highlighted to highlight the parts of
its char *STR argument that match a HIGHLIGHT regexp.
This (and the title style) will be used in a following patch.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Improve usability and/or readibility of help and apropos output.
@ 2019-06-03 22:05 sergiodj+buildbot
  2019-06-04 17:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 22:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 66d8c862859ab241c1db9b40c3981f8a71951bd4 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 66d8c862859ab241c1db9b40c3981f8a71951bd4

Improve usability and/or readibility of help and apropos output.

The "help" command can output long list of command names or classes.
Use the title style to style the command names or classes to make
the output more readable.

Similarly, change "apropos" command to also style the command names.

It is sometimes unclear why "apropos REGEXP" lists some commands,
and then the user has to manually do 'help command' for all commands
listed by "apropos" to see more details about the matching commands.

=> Add an optional flag -v so that "apropos -v REGEXP":
  * outputs the full documentation of matching commands.
  * highlights the documentation parts matching REGEXP.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update tests following changes to "help" and "apropos"
@ 2019-06-03 22:28 sergiodj+buildbot
  2019-06-04 19:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 22:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 206584bdf15aa19bb3c971b28e2c1fc04f32d027 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 206584bdf15aa19bb3c971b28e2c1fc04f32d027

Update tests following changes to "help" and "apropos"

Factorizes the testing of the help output, by having a single place
that defines the common help trailer and/or prefix messages.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Document in NEWS and gdb.texinfo the "help", "apropos" and "show style" changes.
@ 2019-06-03 23:06 sergiodj+buildbot
  2019-06-04 20:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 23:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e664d728038abf414b6fb1a1c8cd3aacd0bb3b67 ***

Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: e664d728038abf414b6fb1a1c8cd3aacd0bb3b67

Document in NEWS and gdb.texinfo the "help", "apropos" and "show style" changes.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove an unnecessary set of parentheses in the arm-dis.c source file.
@ 2019-06-04 16:15 sergiodj+buildbot
  2019-06-04 22:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 16:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a9d96ab97edabea31bed089bfd4caca80838e31c ***

Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: a9d96ab97edabea31bed089bfd4caca80838e31c

Remove an unnecessary set of parentheses in the arm-dis.c source file.

	* arm-dis.c (is_mve_unpredictable): Remove spurious paranthesis.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add support for Intel ENQCMD[S] instructions
@ 2019-06-04 17:11 sergiodj+buildbot
  2019-06-05  0:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 17:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5d79adc4b22b0abd4f12ea973a00e7fb0c1dad64 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 5d79adc4b22b0abd4f12ea973a00e7fb0c1dad64

Add support for Intel ENQCMD[S] instructions

This patch enables support for ENQCMD[S] in binutils.  Please refer to

https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf

for ENQCMD[S] details.

Make check-gas is ok.

gas/ChangeLog:

2019-06-04  Xuepeng Guo  <xuepeng.guo@intel.com>
	    Lili Cui  <lili.cui@intel.com>

	* doc/c-i386.texi: Document enqcmd.
	* testsuite/gas/i386/enqcmd-intel.d: New file.
	* testsuite/gas/i386/enqcmd-inval.l: Likewise.
	* testsuite/gas/i386/enqcmd-inval.s: Likewise.
	* testsuite/gas/i386/enqcmd.d: Likewise.
	* testsuite/gas/i386/enqcmd.s: Likewise.
	* testsuite/gas/i386/x86-64-enqcmd-intel.d: Likewise.
	* testsuite/gas/i386/x86-64-enqcmd-inval.l: Likewise.
	* testsuite/gas/i386/x86-64-enqcmd-inval.s: Likewise.
	* testsuite/gas/i386/x86-64-enqcmd.d: Likewise.
	* testsuite/gas/i386/x86-64-enqcmd.s: Likewise.
	* testsuite/gas/i386/i386.exp: Run enqcmd-intel, enqcmd-inval,
	enqcmd, x86-64-enqcmd-intel, x86-64-enqcmd-inval,
	and x86-64-enqcmd.

opcodes/ChangeLog:

2019-06-04  Xuepeng Guo  <xuepeng.guo@intel.com>
	    Lili Cui  <lili.cui@intel.com>

	* i386-dis.c (enum): Add MOD_0F38F8_PREFIX_1 and
	MOD_0F38F8_PREFIX_3.
	(prefix_table): New instructions (see prefix above).
	(mod_table): New instructions (see prefix above).
	* i386-gen.c (cpu_flag_init): Add entries for enqcmd.
	(cpu_flags): Add a bitfield for enqmcd.
	* i386-init.h: Regenerated.
	* i386-opc.h (enum): Add CpuENQCMD.
	(i386_cpu_flags): Add a bitfield for cpuenqcmd.
	* i386-opc.tbl: Add enqcmd and enqcmds instructions.
	* i386-init.h: Regenerated.
	* i386-tbl.h: Regenerated.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Enable Intel AVX512_VP2INTERSECT insn
@ 2019-06-04 17:31 sergiodj+buildbot
  2019-06-05  0:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 17:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9186c494a3bb61a55a29ec04aa0d1684a8c46838 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 9186c494a3bb61a55a29ec04aa0d1684a8c46838

Enable Intel AVX512_VP2INTERSECT insn

This patch enables support for VP2INTERSECT in binutils.  Please refer to

https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf

for VP2INTERSECT details.

Make check-gas is ok.

gas/

2019-06-04  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
	    Lili Cui  <lili.cui@intel.com>

	* config/tc-i386.c (cpu_arch): Add .avx512_vp2intersect.
	(cpu_noarch): Likewise.
	* doc/c-i386.texi: Document avx512_vp2intersect.
	* testsuite/gas/i386/i386.exp: Run vp2intersect tests.
	* testsuite/gas/i386/vp2intersect-intel.d: New test.
	* testsuite/gas/i386/vp2intersect.d: Likewise.
	* testsuite/gas/i386/vp2intersect.s: Likewise.
	* testsuite/gas/i386/vp2intersect-inval-bcast.l: Likewise.
	* testsuite/gas/i386/vp2intersect-inval-bcast.s: Likewise.
	* testsuite/gas/i386/x86-64-vp2intersect-intel.d: Likewise.
	* testsuite/gas/i386/x86-64-vp2intersect.d: Likewise.
	* testsuite/gas/i386/x86-64-vp2intersect.s: Likewise.
	* testsuite/gas/i386/x86-64-vp2intersect-inval-bcast.l: Likewise.
	* testsuite/gas/i386/x86-64-vp2intersect-inval-bcast.s: Likewise.

opcodes/

2019-06-04  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
	    Lili Cui  <lili.cui@intel.com>

	* i386-dis.c (enum): Add PREFIX_EVEX_0F3868, EVEX_W_0F3868_P_3.
	* i386-dis-evex.h (evex_table): Add AVX512_VP2INTERSECT
	instructions.
	* i386-gen.c (cpu_flag_init): Add CPU_AVX512_VP2INTERSECT_FLAGS,
	CPU_ANY_AVX512_VP2INTERSECT_FLAGS.
	(cpu_flags): Add CpuAVX512_VP2INTERSECT.
	* i386-opc.h (enum): Add CpuAVX512_VP2INTERSECT.
	(i386_cpu_flags): Add cpuavx512_vp2intersect.
	* i386-opc.tbl: Add AVX512_VP2INTERSECT insns.
	* i386-init.h: Regenerated.
	* i386-tbl.h: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: fix the type of ctf_enum.cte_value
@ 2019-06-04 18:26 sergiodj+buildbot
  2019-06-05  2:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 18:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a610aa4f9cf61d38b8e0fe60dfaac078d636089f ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: a610aa4f9cf61d38b8e0fe60dfaac078d636089f

libctf: fix the type of ctf_enum.cte_value

This stops the file format from depending on the size of the host int.
(It does mean that we cannot encode enums with a value > 2^32 on
platforms with an int > 2^32: this will be fixed in the next format
revision.)

include/
	* ctf.h (ctf_enum.cte_value): Fix type to int32_t.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: look for BSD versus GNU qsort_r signatures
@ 2019-06-04 19:32 sergiodj+buildbot
  2019-06-05  9:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 19:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6b22174ff163b828a2069f22353018ca97fc0fb4 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 6b22174ff163b828a2069f22353018ca97fc0fb4

libctf: look for BSD versus GNU qsort_r signatures

We cannot just look for any declaration of qsort_r, because some
operating systems have a qsort_r that has a different prototype
but which still has a pair of pointers in the right places (the last two
args are interchanged): so use AC_LINK_IFELSE to check for both
known variants of qsort_r(), and swap their args into a consistent order
in a suitable inline function.  (The code for this is taken almost
unchanged from gnulib.)

(Now we are not using AC_LIBOBJ any more, we can use a better name for
the qsort_r replacement as well.)

libctf/
	* qsort_r.c: Rename to...
	* ctf-qsort_r.c: ... this.
	(_quicksort): Define to ctf_qsort_r.
	* ctf-decls.h (qsort_r): Remove.
	(ctf_qsort_r): Add.
	(struct ctf_qsort_arg): New, transport the real ARG and COMPAR.
	(ctf_qsort_compar_thunk): Rearrange the arguments to COMPAR.
	* Makefile.am (libctf_a_LIBADD): Remove.
	(libctf_a_SOURCES): New, add ctf-qsort_r.c.
	* ctf-archive.c (ctf_arc_write): Call ctf_qsort_r, not qsort_r.
	* ctf-create.c (ctf_update): Likewise.
	* configure.ac: Check for BSD versus GNU qsort_r signature.
	* Makefile.in: Regenerate.
	* config.h.in: Likewise.
	* configure: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: work on platforms without O_CLOEXEC.
@ 2019-06-04 19:41 sergiodj+buildbot
  2019-06-05  9:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 19:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ad118caa9f690114d11384b0813f30980cc333f3 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: ad118caa9f690114d11384b0813f30980cc333f3

libctf: work on platforms without O_CLOEXEC.

(Not tested on any such platforms, since I don't have access to any at
the moment.  Testing encouraged.)

libctf/
	* configure.ac: Check for O_CLOEXEC.
	* ctf-decls.h (O_CLOEXEC): Define (to 0), if need be.
	* config.h.in: Regenerate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] i386: Check for reserved VEX.vvvv and EVEX.vvvv
@ 2019-06-04 21:05 sergiodj+buildbot
  2019-06-05 10:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 21:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 63c6fc6cacf82e6b39f7373d44c1e1e1a0a757fa ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 63c6fc6cacf82e6b39f7373d44c1e1e1a0a757fa

i386: Check for reserved VEX.vvvv and EVEX.vvvv

If VEX.vvvv and EVEX.vvvv are reserved, they must be all 1s, which are
all 0s in inverted form.  Add check for unused VEX.vvvv and EVEX.vvvv
when disassembling VEX and EVEX instructions.

gas/

	PR binutils/24626
	* testsuite/gas/i386/disassem.s: Add tests for reserved VEX.vvvv
	and EVEX.vvvv.
	* testsuite/gas/i386/x86-64-disassem.s: Likewise.
	* testsuite/gas/i386/disassem.d: Updated.
	* testsuite/gas/i386/x86-64-disassem.d: Likewise.

opcodes/

	PR binutils/24626
	* i386-dis.c (print_insn): Check for unused VEX.vvvv and
	EVEX.vvvv when disassembling VEX and EVEX instructions.
	(OP_VEX): Set vex.register_specifier to 0 after readding
	vex.register_specifier.
	(OP_Vex_2src_1): Likewise.
	(OP_Vex_2src_2): Likewise.
	(OP_LWP_E): Likewise.
	(OP_EX_Vex): Don't check vex.register_specifier.
	(OP_XMM_Vex): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use CHAR_BIT instead of NBBY in libctf
@ 2019-06-04 21:37 sergiodj+buildbot
  2019-06-05 10:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 21:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 76fad9996335e52f177c99c1ebf024fc7f761be2 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 76fad9996335e52f177c99c1ebf024fc7f761be2

Use CHAR_BIT instead of NBBY in libctf

On x86-64 Fedora 29, I tried to build a mingw-hosted gdb that targets
ppc-linux.  You can do this with:

    ../binutils-gdb/configure --host=i686-w64-mingw32 --target=ppc-linux \
        --disable-{binutils,gas,gold,gprof,ld}

The build failed with these errors in libctf:

In file included from ../../binutils-gdb/libctf/ctf-create.c:20:
../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_encoded':
../../binutils-gdb/libctf/ctf-create.c:803:59: error: 'NBBY' undeclared (first use in this function)
   dtd->dtd_data.ctt_size = clp2 (P2ROUNDUP (ep->cte_bits, NBBY) / NBBY);
                                                           ^~~~
../../binutils-gdb/libctf/ctf-impl.h:254:42: note: in definition of macro 'P2ROUNDUP'
 #define P2ROUNDUP(x, align)  (-(-(x) & -(align)))
                                          ^~~~~
../../binutils-gdb/libctf/ctf-create.c:803:59: note: each undeclared identifier is reported only once for each function it appears in
   dtd->dtd_data.ctt_size = clp2 (P2ROUNDUP (ep->cte_bits, NBBY) / NBBY);
                                                           ^~~~
../../binutils-gdb/libctf/ctf-impl.h:254:42: note: in definition of macro 'P2ROUNDUP'
 #define P2ROUNDUP(x, align)  (-(-(x) & -(align)))
                                          ^~~~~
../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_slice':
../../binutils-gdb/libctf/ctf-create.c:862:59: error: 'NBBY' undeclared (first use in this function)
   dtd->dtd_data.ctt_size = clp2 (P2ROUNDUP (ep->cte_bits, NBBY) / NBBY);
                                                           ^~~~
../../binutils-gdb/libctf/ctf-impl.h:254:42: note: in definition of macro 'P2ROUNDUP'
 #define P2ROUNDUP(x, align)  (-(-(x) & -(align)))
                                          ^~~~~
../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_member_offset':
../../binutils-gdb/libctf/ctf-create.c:1341:21: error: 'NBBY' undeclared (first use in this function)
      off += lsize * NBBY;
                     ^~~~
../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_type':
../../binutils-gdb/libctf/ctf-create.c:1822:16: warning: unknown conversion type character 'z' in format [-Wformat=]
   ctf_dprintf ("Conflict for type %s against ID %lx: "
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../binutils-gdb/libctf/ctf-create.c:1823:35: note: format string is defined here
         "union size differs, old %zi, new %zi\n",
                                   ^
../../binutils-gdb/libctf/ctf-create.c:1822:16: warning: unknown conversion type character 'z' in format [-Wformat=]
   ctf_dprintf ("Conflict for type %s against ID %lx: "
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../binutils-gdb/libctf/ctf-create.c:1823:44: note: format string is defined here
         "union size differs, old %zi, new %zi\n",
                                            ^
../../binutils-gdb/libctf/ctf-create.c:1822:16: warning: too many arguments for format [-Wformat-extra-args]
   ctf_dprintf ("Conflict for type %s against ID %lx: "
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This patch fixes the actual errors in here.  I did not try to fix the
printf warnings, though I think someone ought to.

Ok?

libctf/ChangeLog
2019-06-04  Tom Tromey  <tromey@adacore.com>

	* ctf-create.c (ctf_add_encoded, ctf_add_slice)
	(ctf_add_member_offset): Use CHAR_BIT, not NBBY.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: fix use-after-free in function dumping
@ 2019-06-04 22:03 sergiodj+buildbot
  2019-06-05  4:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 22:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 941accce38bc70a23c62e3c9439b67bf23298124 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 941accce38bc70a23c62e3c9439b67bf23298124

libctf: fix use-after-free in function dumping

This is actually a free-before-initializing (i.e. a free of garbage).

libctf/
	* ctf-dump.c (ctf_dump_funcs): Free in the right place.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Introduce and use make_unique_xstrdup
@ 2019-06-04 23:38 sergiodj+buildbot
  2019-06-05 10:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 23:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b02f78f9285728ce2d05ce01e7b14880f70cd6e6 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: b02f78f9285728ce2d05ce01e7b14880f70cd6e6

Introduce and use make_unique_xstrdup

Adds an utility function to make it shorter to write the common case
of wrapping an xstrdup with a unique_xmalloc_ptr, and uses it
throughout.

Note: I tried to put this in common/common-utils.h near skip_spaces,
etc. but that is included in common/common-defs.h before
common/gdb_unique_ptr.h is included, so it would fail to compile
because gdb::unique_xmalloc_ptr isn't defined at that point yet.  I
tried moving the gdb_unique_ptr.h inclusion before common-utils.h, but
that doesn't work because gdb_unique_ptr.h depends on common-utils.h
for xfree.

gdb/ChangeLog:
2019-06-04  Pedro Alves  <palves@redhat.com>

	* common/gdb_unique_ptr.h (make_unique_xstrdup): New.

	* ada-lang.c (catch_ada_completer): Use make_unique_xstrdup.
	* breakpoint.c (condition_completer): Likewise.
	* cli/cli-dump.c (scan_expression): Likewise.
	* common/filestuff.c (mkdir_recursive): Likewise.
	* common/gdb_tilde_expand.c (gdb_tilde_expand_up)
	* common/pathstuff.c (gdb_realpath, gdb_realpath_keepfile)
	(gdb_abspath): Likewise.
	* compile/compile-cplus-types.c
	(compile_cplus_instance::decl_name): Likewise.
	* completer.c (complete_explicit_location):
	(signal_completer, reg_or_group_completer_1): Likewise.
	* cp-support.c (cp_remove_params_if_any): Likewise.
	* fbsd-tdep.c (fbsd_core_vnode_path): Likewise.
	* guile/scm-safe-call.c (gdbscm_safe_eval_string): Likewise.
	* infcmd.c (strip_bg_char): Likewise.
	* linespec.c (copy_token_string): Likewise.
	* mi/mi-main.c (output_cores): Likewise.
	* psymtab.c (psymtab_search_name):
	* symfile.c (test_set_ext_lang_command): Likewise.
	* target.c (target_fileio_read_stralloc): Likewise.
	* tui/tui-regs.c (tui_reggroup_completer): Likewise.
	* value.c (complete_internalvar): Likewise.

gdb/gdbserver/ChangeLog:
2019-06-04  Pedro Alves  <palves@redhat.com>

	* server.c (captured_main): Use make_unique_xstrdup.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/riscv: Don't error when decoding a 6 or 8 byte instruction
@ 2019-06-05 10:48 sergiodj+buildbot
  2019-06-05 11:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-05 10:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 312617a3d06b8df67b9f4f63f92ebfaa6b591921 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 312617a3d06b8df67b9f4f63f92ebfaa6b591921

gdb/riscv: Don't error when decoding a 6 or 8 byte instruction

If the RISC-V prologue scanner finds a 6 or 8 byte instruction we
currently throw an internal error, which is not great for the user.

A mechanism already exists in the prologue scanner to leave
instructions marked as unknown so that we can stop the prologue scan
without raising an error, this is used for all 2 and 4 byte
instructions that are not part of the small set the prologue scanner
actually understands.

This commit changes GDB so that all 6 and 8 byte instructions are
marked as unknown, rather than causing an error.

gdb/ChangeLog:

	* riscv-tdep.c (riscv_insn::decode): Gracefully ignore
	instructions of lengths 6 or 8 bytes.

gdb/testsuite/ChangeLog:

	* gdb.arch/riscv-unwind-long-insn-6.s: New file.
	* gdb.arch/riscv-unwind-long-insn-8.s: New file.
	* gdb.arch/riscv-unwind-long-insn.c: New file.
	* gdb.arch/riscv-unwind-long-insn.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: eschew %zi format specifier
@ 2019-06-05 18:25 sergiodj+buildbot
  2019-06-06 11:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-05 18:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 62d8e3b73139b159963025b5568ec1f5051450f0 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 62d8e3b73139b159963025b5568ec1f5051450f0

libctf: eschew %zi format specifier

Too many platforms don't support it, and we can always safely use %lu or
%li anyway, because the only uses are in debugging output.

libctf/
	* ctf-archive.c (ctf_arc_write): Eschew %zi format specifier.
	(ctf_arc_open_by_offset): Likewise.
	* ctf-create.c (ctf_add_type): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [LD, AArch64] Move ELF options behind -z
@ 2019-06-06 13:19 sergiodj+buildbot
  2019-06-06 15:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-06 13:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8bf6d176b0a442a8091d338d4af971591d19922c ***

Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 8bf6d176b0a442a8091d338d4af971591d19922c

[LD, AArch64] Move ELF options behind -z

This patch moves the current AArch64 ld options of --force-bti
and --pac-plt to -z force-bti and -z pac-plt since these are
ELF specific options.

*** bfd/ChangeLog ***

2019-06-06  Sudakshina Das  <sudi.das@arm.com>

	* bfd-in.h: Change comment.
	* bfd-in2.h: Regenerate.
	* elfnn-aarch64.c (elfNN_aarch64_merge_gnu_properties): Update warning.
	* elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties):
	Likwise.

*** ld/ChangeLog ***

2019-06-06  Sudakshina Das  <sudi.das@arm.com>

	* NEWS: Update options names.
	* emultempl/aarch64elf.em (OPTION_FORCE_BTI, OPTION_PAC_PLT): Remove.
	(PARSE_AND_LIST_LONGOPTS): Remove force-bti and pac-plt.
	(PARSE_AND_LIST_OPTIONS): Update to -z.
	(PARSE_AND_LIST_ARGS_CASE_Z_AARCH64): New.
	(PARSE_AND_LIST_ARGS_CASE_Z): Add PARSE_AND_LIST_ARGS_CASE_Z_AARCH64.
	(PARSE_AND_LIST_ARGS_CASES): Move cases for these options.
	* testsuite/ld-aarch64/bti-pac-plt-1.d: Update option.
	* testsuite/ld-aarch64/bti-pac-plt-2.d: Likewise.
	* testsuite/ld-aarch64/bti-plt-1.d: Likewise.
	* testsuite/ld-aarch64/bti-plt-2.d: Likewise.
	* testsuite/ld-aarch64/bti-plt-3.d: Likewise.
	* testsuite/ld-aarch64/bti-plt-4.d: Likewise.
	* testsuite/ld-aarch64/bti-plt-6.d: Likewise.
	* testsuite/ld-aarch64/bti-plt-7.d: Likewise.
	* testsuite/ld-aarch64/bti-warn.d: Likewise.
	* testsuite/ld-aarch64/pac-plt-1.d: Likewise.
	* testsuite/ld-aarch64/pac-plt-2.d: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [BFD, AArch64] Fix PT_GNU_PROPERTY alignment issue
@ 2019-06-06 15:13 sergiodj+buildbot
  2019-06-06 17:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-06 15:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 237df8fe1863bb47fcf71ce125cd962666173aaa ***

Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 237df8fe1863bb47fcf71ce125cd962666173aaa

[BFD, AArch64] Fix PT_GNU_PROPERTY alignment issue

If the new GNU property section was being created by the linker
(this will happen only if none of the inputs have any GNU property
section but the command line to the linker forces a bti with
--force-bti), the alignment of the section and hence the program
header of PT_GNU_PROPERTY type was not being set correctly. This
patch fixes this issue.

bfd/ChangeLog:

2019-06-06  Sudakshina Das  <sudi.das@arm.com>

	* elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Set
	alignment of the new gnu property section.

ld/ChangeLog:

2019-06-06  Sudakshina Das  <sudi.das@arm.com>

	* testsuite/ld-aarch64/aarch64-elf.exp: Add new tests.
	* testsuite/ld-aarch64/property-bti-pac4-a.d: New test.
	* testsuite/ld-aarch64/property-bti-pac4-b.d: New test.
	* testsuite/ld-aarch64/property-bti-pac4.s: New test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add timestamps to "maint time" output
@ 2019-06-06 18:15 sergiodj+buildbot
  2019-06-06 18:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-06 18:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3847a7bfbf6340372962c07f31187ff87b4f492c ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 3847a7bfbf6340372962c07f31187ff87b4f492c

Add timestamps to "maint time" output

Currently "maint time" will print the amount of time a command took.
Sometimes, though, it's useful to have a timestamp as well -- for
example if one is correlating a gdb log with some other log.

This patch adds a timestamp to the start and end of each command when
this setting is in effect.

This also removes a "//" comment and changes scoped_command_stats to
use DISABLE_COPY_AND_ASSIGN; two minor things I noticed while working
on the patch.

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-06-06  Tom Tromey  <tromey@adacore.com>

	* maint.h (class scoped_command_stats): Use
	DISABLE_COPY_AND_ASSIGN.
	<print_time>: New method.
	* maint.c (scoped_command_stats, ~scoped_command_stats): Call
	print_time.
	(scoped_command_stats::print_time): New method.

gdb/testsuite/ChangeLog
2019-06-06  Tom Tromey  <tromey@adacore.com>

	* gdb.base/maint.exp: Expect command started/finished output.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add thread-exit annotation.
@ 2019-06-06 19:36 sergiodj+buildbot
  2019-06-07 13:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-06 19:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1a3da2cd6175e8f25cec95fc685d4f0f43bf6807 ***

Author: Amos Bird <amosbird@gmail.com>
Branch: master
Commit: 1a3da2cd6175e8f25cec95fc685d4f0f43bf6807

Add thread-exit annotation.

gdb/ChangeLog
2019-04-26  Amos Bird  <amosbird@gmail.com>

	* annotate.c (annotate_thread_exited): Add "thread-exited"
	annotation.

gdb/doc/ChangeLog
2019-06-06  Amos Bird  <amosbird@gmail.com>

	* annotate.texinfo (Multi-threaded Apps): Add entry for thread-exited
	annotation.

gdb/testsuite/ChangeLog
2019-06-06  Amos Bird  <amosbird@gmail.com>

	* gdb.base/annota1.exp (thread_switch): Add test for
	thread-exited annotation.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: mark various args as unused in the !HAVE_MMAP case
@ 2019-06-07 14:40 sergiodj+buildbot
  2019-06-07 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-07 14:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f5e73be11b24b6c4b7ecec5f762784c4bb40ec18 ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: f5e73be11b24b6c4b7ecec5f762784c4bb40ec18

libctf: mark various args as unused in the !HAVE_MMAP case

Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0,
sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32.

libctf/
	* ctf-archive.c (arc_mmap_header): Mark fd as potentially unused.
	* ctf-subr.c (ctf_data_protect): Mark both args as potentially unused.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: avoid strndup
@ 2019-06-07 15:36 sergiodj+buildbot
  2019-06-10  8:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-07 15:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 942d35f72bea5a0d19a5d0e0a5ca533e37a88b2c ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 942d35f72bea5a0d19a5d0e0a5ca533e37a88b2c

libctf: avoid strndup

Not all platforms have it.  Use libiberty xstrndup() instead.

(The include of libiberty.h happens in an unusual place due to the
requirements of synchronization of most source files between this
project and another that does not use libiberty.  It serves to pull
libiberty.h in for all source files in libctf/, which does the trick.)

Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0,
sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32.

libctf/
	* ctf-decls.h: Include <libiberty.h>.
	* ctf-lookup.c (ctf_lookup_by_name): Call xstrndup(), not strndup().


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/symtab] Support DW_AT_main_subprogram with -readnow.
@ 2019-06-10 13:53 sergiodj+buildbot
  2019-06-10 14:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 13:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 81873cc81effbd657efe5f525d369e430ce77d7a ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 81873cc81effbd657efe5f525d369e430ce77d7a

[gdb/symtab] Support DW_AT_main_subprogram with -readnow.

DW_AT_main_subprogram is supported in normal mode in read_partial_die, but not
in -readnow mode.

Fix this by adding support for DW_AT_main_subprogram in read_func_scope.

Tested on x86_64-linux with native and RFC target board readnow (
https://sourceware.org/ml/gdb-patches/2019-05/msg00073.html ).

gdb/ChangeLog:

2019-06-10  Tom de Vries  <tdevries@suse.de>

	PR symtab/16264
	PR symtab/24517
	* dwarf2read.c (read_func_scope): Handle DW_AT_main_subprogram.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Delay allocation of dbx_symfile_info
@ 2019-06-10 14:44 sergiodj+buildbot
  2019-06-10 15:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 14:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT caa429d81a9999699a40b6394c9fb7b258669d54 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: caa429d81a9999699a40b6394c9fb7b258669d54

Delay allocation of dbx_symfile_info

I noticed that elfread.c always allocates a dbx_symfile_info, even
though this is only ever needed in the unusual case of reading stabs
in ELF.

This patch moves the allocation into dbxread.c, and applies the same
treatment to similar code in coffread.c.

Regression tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-06-10  Tom Tromey  <tromey@adacore.com>

	* elfread.c (elf_read_minimal_symbols): Don't set the dbx objfile
	data.
	(elf_new_init): Don't call stabsread_new_init.
	* dbxread.c (coffstab_build_psymtabs): Set dbx objfile data.
	(elfstab_build_psymtabs): Likewise.  Call stabsread_new_init.
	* coffread.c (coff_symfile_init): Don't set the dbx objfile data.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use gdbpy_enter in py-breakpoint.c
@ 2019-06-10 14:58 sergiodj+buildbot
  2019-06-10 16:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 14:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 25ce02ee7b7667fb7bb882421ff869c080777bee ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 25ce02ee7b7667fb7bb882421ff869c080777bee

Use gdbpy_enter in py-breakpoint.c

A few spots in py-breakpoint.c acquire the GIL manually.  However,
because these spots generate events, and because events are expected
to be arbitrary gdb-flavored Python code, it's important to use
gdbpy_enter instead, in order to ensure that the other gdb-related
Python globals are set correctly.

This patch makes this change.  Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-06-10  Tom Tromey  <tom@tromey.com>

	* python/py-breakpoint.c (gdbpy_breakpoint_created)
	(gdbpy_breakpoint_deleted, gdbpy_breakpoint_modified): Use
	gdbpy_enter.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add support for NetBSD/sh3 core file sections. Merge multiple copies of auxv section creation into one function.
@ 2019-06-10 17:18 sergiodj+buildbot
  2019-06-10 17:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 17:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 58e07198f34c3a8bb7d64392e8b978a0d741244e ***

Author: Christos Zoulas <christos@zoulas.com>
Branch: master
Commit: 58e07198f34c3a8bb7d64392e8b978a0d741244e

Add support for NetBSD/sh3 core file sections.  Merge multiple copies of auxv section creation into one function.

	PR 24650
	* elf.c (elfcore_make_auxv_note_section): New function.
	(elfcore_grok_note): Use it.
	(elfcore_grok_freebsd_note): Likewise.
	(elfcore_grok_openbsd_note): Likewise.
	(elfcore_grok_netbsd_note): Likewise.  Plus add support for
	NT_NETBSDCORE_AUXV notes.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove newlines from warnings
@ 2019-06-10 18:19 sergiodj+buildbot
  2019-06-10 18:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 18:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 422186a95cbb02ee1d34388adceeb4bd289074b9 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 422186a95cbb02ee1d34388adceeb4bd289074b9

Remove newlines from warnings

ARI pointed out that a recent patch introduced a call to "warning"
with a string that ended in a newline:

    https://sourceware.org/ml/gdb-patches/2019-06/msg00000.html

This is generally forbidden, I believe, because warning adds its own
newline.

This patch removes all of the trailing newlines I was able to find.  I
searched for 'warning (.*\\n"' and then fixed the ones where the
newline appeared at the end of the string (some had internal
newlines).

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-06-10  Tom Tromey  <tromey@adacore.com>

	* m32c-tdep.c (m32c_m16c_address_to_pointer): Don't end warning
	with a newline.
	* guile/guile.c (handle_boot_error): Don't end warning with a
	newline.
	* cli/cli-cmds.c (exit_status_set_internal_vars): Don't end
	warning with a newline.
	* s12z-tdep.c (s12z_skip_prologue): Don't end warning with a
	newline.
	(s12z_frame_cache): Likewise.
	* dwarf-index-cache.c (index_cache::store): Don't end warning with
	a newline.
	* solib-svr4.c (disable_probes_interface): Don't end warning with
	a newline.
	* nat/fork-inferior.c (fork_inferior): Don't end warning with a
	newline.
	* python/python.c (do_finish_initialization): Don't end warning
	with a newline.

gdb/gdbserver/ChangeLog
2019-06-10  Tom Tromey  <tromey@adacore.com>

	* remote-utils.c (look_up_one_symbol, relocate_instruction): Don't
	end warning with a newline.
	* linux-s390-low.c (s390_get_wordsize): Don't end warning with a
	newline.
	* thread-db.c (attach_thread): Don't end warning with a newline.
	(thread_db_notice_clone): Likewise.
	* tracepoint.c (gdb_agent_helper_thread): Don't end warning with a
	newline.
	* linux-x86-low.c (x86_get_min_fast_tracepoint_insn_len): Don't
	end warning with a newline.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/symtab] Fix symbol loading performance regression
@ 2019-06-10 19:04 sergiodj+buildbot
  2019-06-10 20:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 19:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e99f9db0f5211455ca4256e8db9d9081967d255e ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: e99f9db0f5211455ca4256e8db9d9081967d255e

[gdb/symtab] Fix symbol loading performance regression

The commit "[gdb/symtab] Fix language of duplicate static minimal symbol"
introduces a performance regression, when loading a cc1 executable build with
-O0 -g and gcc 7.4.0.  The performance regression, measured in 'real' time is
about 175%.

The slower execution comes from the fact that the fix in symbol_set_names
makes the call to symbol_find_demangled_name unconditional.

Fix this by reverting the commit, and redoing the fix as follows.

Recapturing the original problem, the first time symbol_set_names is called
with gsymbol.language == lang_auto and linkage_name == "_ZL3foov", the name is
not present in the per_bfd->demangled_names_hash hash table, so
symbol_find_demangled_name is called to demangle the name, after which the
mangled/demangled pair is added to the hashtable.  The call to
symbol_find_demangled_name also sets gsymbol.language to lang_cplus.
The second time symbol_set_names is called with gsymbol.language == lang_auto
and linkage_name == "_ZL3foov", the name is present in the hash table, so the
demangled name from the hash table is used.  However, the language of the
symbol remains lang_auto.

Fix this by adding a field language in struct demangled_name_entry, and using
the field in symbol_set_names to set the language of gsymbol, if necessary.

Tested on x86_64-linux.

gdb/ChangeLog:

2019-06-10  Tom de Vries  <tdevries@suse.de>

	PR symtab/24545
	* symtab.c (struct demangled_name_entry): Add language field.
	(symbol_set_names):  Revert "[gdb/symtab] Fix language of duplicate
	static minimal symbol".  Set and use language field.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb] Fix dynamic-stack-buffer-overflow in linespec_lexer_lex_string
@ 2019-06-10 19:29 sergiodj+buildbot
  2019-06-10 22:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 19:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f19e22e9226444ee566b5b5633c0a48a4f981eda ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: f19e22e9226444ee566b5b5633c0a48a4f981eda

[gdb] Fix dynamic-stack-buffer-overflow in linespec_lexer_lex_string

When compiling gdb with '-lasan -fsanitizer=address' and running tests with
'export ASAN_OPTIONS="detect_leaks=0:alloc_dealloc_mismatch=0"', I run into:
...
ERROR: GDB process no longer exists
UNRESOLVED: gdb.linespec/cpls-abi-tag.exp: \
  test_abi_tag: completion: at tag: tab complete "b test_abi_tag_function[abi:"
...

In more detail:
...
==3637==ERROR: AddressSanitizer: dynamic-stack-buffer-overflow on address \
  0x7fff5952bbdd at pc 0x000000fe5c57 bp 0x7fff5952af30 sp 0x7fff5952af28
READ of size 1 at 0x7fff5952bbdd thread T0
    #0 0xfe5c56 in linespec_lexer_lex_string src/gdb/linespec.c:727
    #1 0xfe7473 in linespec_lexer_lex_one src/gdb/linespec.c:946
    #2 0xfe799d in linespec_lexer_consume_token src/gdb/linespec.c:982
    #3 0xff446d in parse_linespec src/gdb/linespec.c:2564
    #4 0xff78be in linespec_complete(completion_tracker&, char const*, \
                   symbol_name_match_type) src/gdb/linespec.c:2961
    #5 0xb9299c in complete_address_and_linespec_locations \
                   src/gdb/completer.c:573
    #6 0xb93e90 in location_completer(cmd_list_element*, completion_tracker&, \
                   char const*, char const*) src/gdb/completer.c:919
    #7 0xb940c5 in location_completer_handle_brkchars src/gdb/completer.c:956
    #8 0xb957ec in complete_line_internal_normal_command \
                   src/gdb/completer.c:1208
    #9 0xb96507 in complete_line_internal_1 src/gdb/completer.c:1430
    #10 0xb965c2 in complete_line_internal src/gdb/completer.c:1449
    #11 0xb98630 in gdb_completion_word_break_characters_throw \
                    src/gdb/completer.c:1862
    #12 0xb98838 in gdb_completion_word_break_characters() \
                    src/gdb/completer.c:1897
    #13 0x16c6362 in _rl_find_completion_word src/readline/complete.c:943
    #14 0x16ca8d0 in rl_complete_internal src/readline/complete.c:1843
    #15 0x16c460c in rl_complete src/readline/complete.c:408
    #16 0x16b3368 in _rl_dispatch_subseq src/readline/readline.c:774
    #17 0x16b3092 in _rl_dispatch src/readline/readline.c:724
    #18 0x16b2939 in readline_internal_char src/readline/readline.c:552
    #19 0x16f1fb0 in rl_callback_read_char src/readline/callback.c:201
    #20 0xddc5a1 in gdb_rl_callback_read_char_wrapper_noexcept \
                    src/gdb/event-top.c:175
    #21 0xddc773 in gdb_rl_callback_read_char_wrapper src/gdb/event-top.c:192
    #22 0xddd9f5 in stdin_event_handler(int, void*) src/gdb/event-top.c:514
    #23 0xdd7d8f in handle_file_event src/gdb/event-loop.c:731
    #24 0xdd8607 in gdb_wait_for_event src/gdb/event-loop.c:857
    #25 0xdd629c in gdb_do_one_event() src/gdb/event-loop.c:321
    #26 0xdd6344 in start_event_loop() src/gdb/event-loop.c:370
    #27 0x10a7715 in captured_command_loop src/gdb/main.c:331
    #28 0x10aa548 in captured_main src/gdb/main.c:1173
    #29 0x10aa5d8 in gdb_main(captured_main_args*) src/gdb/main.c:1188
    #30 0x87bd35 in main src/gdb/gdb.c:32
    #31 0x7fb0364c6f89 in __libc_start_main (/lib64/libc.so.6+0x20f89)
    #32 0x87bb49 in _start (build/gdb/gdb+0x87bb49)

Address 0x7fff5952bbdd is located in stack of thread T0 at offset 557 in frame
    #0 0xb93702 in location_completer(cmd_list_element*, completion_tracker&, \
                   char const*, char const*) src/gdb/completer.c:831

  This frame has 4 object(s):
    [32, 40) 'copy'
    [96, 104) 'location'
    [160, 168) 'text'
    [224, 256) 'completion_info' <== Memory access at offset 557 overflows \
                                    this variable
HINT: this may be a false positive if your program uses some custom stack \
      unwind mechanism or swapcontext
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: dynamic-stack-buffer-overflow \
         src/gdb/linespec.c:727 in linespec_lexer_lex_string
Shadow bytes around the buggy address:
  0x10006b29d720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10006b29d730: 00 00 00 00 00 00 f1 f1 f1 f1 00 f2 f2 f2 f2 f2
  0x10006b29d740: f2 f2 00 f2 f2 f2 f2 f2 f2 f2 00 f2 f2 f2 f2 f2
  0x10006b29d750: f2 f2 00 00 00 00 f3 f3 f3 f3 00 00 00 00 00 00
  0x10006b29d760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x10006b29d770: 00 00 00 00 ca ca ca ca 00 00 00[05]cb cb cb cb
  0x10006b29d780: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
  0x10006b29d790: 00 f2 f2 f2 f2 f2 f2 f2 00 f2 f2 f2 f3 f3 f3 f3
  0x10006b29d7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10006b29d7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10006b29d7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==3637==ABORTING
...

The problem happens in linespec_lexer_lex_string when lexing
"b test_abi_tag_function[abi:\0" (using a notation where we make the implicit
terminating \0 explicit).

We arrrive here with (PARSER_STREAM (parser)) == ":\0":
...
             /* Do not tokenize ABI tags such as "[abi:cxx11]".  */
             else if (PARSER_STREAM (parser) - start > 4
                      && startswith (PARSER_STREAM (parser) - 4, "[abi"))
               ++(PARSER_STREAM (parser));
...
and consume ':', after which we end up here and consume '\0':
...
         /* Advance the stream.  */
         ++(PARSER_STREAM (parser));
...
after which (PARSER_STREAM (parser)) points past the end of the string.

Fix this by removing the first "++(PARSER_STREAM (parser))", and add an assert
to the second one to detect moving past the end-of-string.

Build and tested on x86_64-linux.

gdb/ChangeLog:

2019-06-10  Tom de Vries  <tdevries@suse.de>

	PR gdb/24611
	* linespec.c (linespec_lexer_lex_string): Remove incorrect
	"++(PARSER_STREAM (parser))" for "[abi"-prefixed colon.  Add assert.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb] Fix heap-buffer-overflow in cp_find_first_component_aux
@ 2019-06-10 20:13 sergiodj+buildbot
  2019-06-10 23:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 20:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9ab084121f50a6858b7298de6c5326cee3687c43 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 9ab084121f50a6858b7298de6c5326cee3687c43

[gdb] Fix heap-buffer-overflow in cp_find_first_component_aux

When compiling gdb with '-lasan -fsanitizer=address' and running tests with:
- export ASAN_OPTIONS="detect_leaks=0:alloc_dealloc_mismatch=0",
- target board cc-with-gdb-index,
- the "[gdb/testsuite] Fix gdb.base/break-probes.exp with native-gdbserver"
  commit reverted to avoid running into PR24617,
we get with gdb.arch/amd64-init-x87-values.exp:
...
==31229==ERROR: AddressSanitizer: heap-buffer-overflow on address \
  0x62500098c93c at pc 0x000000bcc748 bp 0x7ffe39487660 sp 0x7ffe39487658
READ of size 1 at 0x62500098c93c thread T0
    #0 0xbcc747 in cp_find_first_component_aux src/gdb/cp-support.c:999
    #1 0xbcc6e9 in cp_find_first_component(char const*) \
                   src/gdb/cp-support.c:977
    #2 0xcc2cf3 in mapped_index_base::build_name_components() \
                   src/gdb/dwarf2read.c:4499
    #3 0xcc3322 in dw2_expand_symtabs_matching_symbol src/gdb/dwarf2read.c:4552
    #4 0xcc817f in dw2_expand_symtabs_matching src/gdb/dwarf2read.c:5228
    #5 0xfe8f48 in iterate_over_all_matching_symtabs src/gdb/linespec.c:1147
    #6 0x1003506 in add_matching_symbols_to_info src/gdb/linespec.c:4413
    #7 0xffe21b in find_function_symbols src/gdb/linespec.c:3886
    #8 0xffe4a2 in find_linespec_symbols src/gdb/linespec.c:3914
    #9 0xfee3ad in linespec_parse_basic src/gdb/linespec.c:1865
    #10 0xff5128 in parse_linespec src/gdb/linespec.c:2655
    #11 0xff8872 in event_location_to_sals src/gdb/linespec.c:3150
    #12 0xff90a8 in decode_line_full(event_location const*, int, \
                    program_space*, symtab*, int, linespec_result*, \
		    char const*, char const*) src/gdb/linespec.c:3230
    #13 0x9ce449 in parse_breakpoint_sals src/gdb/breakpoint.c:9057
    #14 0x9ea022 in create_sals_from_location_default src/gdb/breakpoint.c:13708
    #15 0x9e2c1f in bkpt_create_sals_from_location src/gdb/breakpoint.c:12514
    #16 0x9cff06 in create_breakpoint(gdbarch*, event_location const*, \
                    char const*, int, char const*, int, int, bptype, int, \
		    auto_boolean, breakpoint_ops const*, int, int, int, \
		    unsigned int) src/gdb/breakpoint.c:9238
    #17 0x9d114a in break_command_1 src/gdb/breakpoint.c:9402
    #18 0x9d1b60 in break_command(char const*, int) src/gdb/breakpoint.c:9473
    #19 0xac96aa in do_const_cfunc src/gdb/cli/cli-decode.c:106
    #20 0xad0e5a in cmd_func(cmd_list_element*, char const*, int) \
                    src/gdb/cli/cli-decode.c:1892
    #21 0x15226f6 in execute_command(char const*, int) src/gdb/top.c:630
    #22 0xddde37 in command_handler(char const*) src/gdb/event-top.c:586
    #23 0xdde7c1 in command_line_handler(std::unique_ptr<char, \
                    gdb::xfree_deleter<char> >&&) src/gdb/event-top.c:773
    #24 0xddc9e8 in gdb_rl_callback_handler src/gdb/event-top.c:217
    #25 0x16f2198 in rl_callback_read_char src/readline/callback.c:220
    #26 0xddc5a1 in gdb_rl_callback_read_char_wrapper_noexcept \
                    src/gdb/event-top.c:175
    #27 0xddc773 in gdb_rl_callback_read_char_wrapper src/gdb/event-top.c:192
    #28 0xddd9f5 in stdin_event_handler(int, void*) src/gdb/event-top.c:514
    #29 0xdd7d8f in handle_file_event src/gdb/event-loop.c:731
    #30 0xdd8607 in gdb_wait_for_event src/gdb/event-loop.c:857
    #31 0xdd629c in gdb_do_one_event() src/gdb/event-loop.c:321
    #32 0xdd6344 in start_event_loop() src/gdb/event-loop.c:370
    #33 0x10a7715 in captured_command_loop src/gdb/main.c:331
    #34 0x10aa548 in captured_main src/gdb/main.c:1173
    #35 0x10aa5d8 in gdb_main(captured_main_args*) src/gdb/main.c:1188
    #36 0x87bd35 in main src/gdb/gdb.c:32
    #37 0x7f16e1434f89 in __libc_start_main (/lib64/libc.so.6+0x20f89)
    #38 0x87bb49 in _start (build/gdb/gdb+0x87bb49)

0x62500098c93c is located 0 bytes to the right of 8252-byte region \
  [0x62500098a900,0x62500098c93c)
allocated by thread T0 here:
    #0 0x7f16e359a600 in malloc (/usr/lib64/libasan.so.5+0xeb600)
    #1 0x1742ddf in bfd_malloc src/bfd/libbfd.c:275
    #2 0x1738824 in bfd_get_full_section_contents src/bfd/compress.c:253
    #3 0xe30044 in gdb_bfd_map_section(bfd_section*, unsigned long*) \
                   src/gdb/gdb_bfd.c:704
    #4 0xcb56bf in dwarf2_read_section(objfile*, dwarf2_section_info*) \
                   src/gdb/dwarf2read.c:2539
    #5 0xd5bcd0 in get_gdb_index_contents_from_section<dwarf2_per_objfile> \
                   src/gdb/dwarf2read.c:6217
    #6 0xd7fc7d in gdb::function_view<gdb::array_view<unsigned char const> \
                   (...) const src/gdb/common/function-view.h:284
    #7 0xd7fddd in gdb::function_view<gdb::array_view<unsigned char const> \
                   (...) src/gdb/common/function-view.h:278
    #8 0xd730cf in gdb::function_view<gdb::array_view<unsigned char const> \
                   (...) const src/gdb/common/function-view.h:247
    #9 0xcbc7ee in dwarf2_read_gdb_index src/gdb/dwarf2read.c:3582
    #10 0xcce731 in dwarf2_initialize_objfile(objfile*, dw_index_kind*) \
                    src/gdb/dwarf2read.c:6297
    #11 0xdb88c4 in elf_symfile_read src/gdb/elfread.c:1256
    #12 0x141262a in read_symbols src/gdb/symfile.c:798
    #13 0x14140a7 in syms_from_objfile_1 src/gdb/symfile.c:1000
    #14 0x1414393 in syms_from_objfile src/gdb/symfile.c:1017
    #15 0x1414fb7 in symbol_file_add_with_addrs src/gdb/symfile.c:1124
    #16 0x14159b7 in symbol_file_add_from_bfd(bfd*, char const*, \
                     enum_flags<symfile_add_flag>, std::vector<other_sections, \
	             std::allocator<other_sections> >*, \
		     enum_flags<objfile_flag>, objfile*) src/gdb/symfile.c:1203
    #17 0x1415b6c in symbol_file_add(char const*,
                     enum_flags<symfile_add_flag>, std::vector<other_sections, \
		     std::allocator<other_sections> >*, \
		     enum_flags<objfile_flag>) src/gdb/symfile.c:1216
    #18 0x1415f2f in symbol_file_add_main_1 src/gdb/symfile.c:1240
    #19 0x1418599 in symbol_file_command(char const*, int) \
                     src/gdb/symfile.c:1675
    #20 0xde2fa6 in file_command src/gdb/exec.c:433
    #21 0xac96aa in do_const_cfunc src/gdb/cli/cli-decode.c:106
    #22 0xad0e5a in cmd_func(cmd_list_element*, char const*, int) \
                    src/gdb/cli/cli-decode.c:1892
    #23 0x15226f6 in execute_command(char const*, int) src/gdb/top.c:630
    #24 0xddde37 in command_handler(char const*) src/gdb/event-top.c:586
    #25 0xdde7c1 in command_line_handler(std::unique_ptr<char, \
                    gdb::xfree_deleter<char> >&&) src/gdb/event-top.c:773
    #26 0xddc9e8 in gdb_rl_callback_handler src/gdb/event-top.c:217
    #27 0x16f2198 in rl_callback_read_char src/readline/callback.c:220
    #28 0xddc5a1 in gdb_rl_callback_read_char_wrapper_noexcept \
                    src/gdb/event-top.c:175
    #29 0xddc773 in gdb_rl_callback_read_char_wrapper src/gdb/event-top.c:192

SUMMARY: AddressSanitizer: heap-buffer-overflow src/gdb/cp-support.c:999 in \
  cp_find_first_component_aux
Shadow bytes around the buggy address:
  0x0c4a801298d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c4a801298e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c4a801298f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c4a80129900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c4a80129910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c4a80129920: 00 00 00 00 00 00 00[04]fa fa fa fa fa fa fa fa
  0x0c4a80129930: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c4a80129940: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c4a80129950: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c4a80129960: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c4a80129970: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==31229==ABORTING
...

The problem happens as follows.

The executable amd64-init-x87-values gets an index (due to target board
cc-with-gdb-index), which looks as follows:
...
Hex dump of section '.gdb_index':
  0x00000000 08000000 18000000 28000000 28000000 ........(...(...
  0x00000010 3c000000 3c200000 00000000 00000000 <...< ..........
  0x00000020 2e000000 00000000 d4004000 00000000 ..........@.....
  0x00000030 db004000 00000000 00000000 00000000 ..@.............
  0x00000040 00000000 00000000 00000000 00000000 ................
  0x00000050 00000000 00000000 00000000 00000000 ................
  ... more zeroes ...
  0x00002010 00000000 00000000 00000000 00000000 ................
  0x00002020 00000000 00000000 00000000 00000000 ................
  0x00002030 00000000 00000000 00000000          ............
...

The structure of this index is:
...
header       : [0x0, 0x18)     : size 0x18
culist       : [0x18 ,0x28)    : size 0x10
typesculist  : [0x28, 0x28)    : size 0x0
adress area  : [0x28, 0x3c)    : size 0x14
symbol table : [0x3c, 0x203c)  : size 0x2000
constant pool: [0x203c, 0x203c): size 0x0
EOF          : 0x203c
...

Note that the symbol table consists entirely of empty slots (where an empty
slot is a pair of 32-bit zeroes), and that the constant pool is empty.

The problem happens here in mapped_index_base::build_name_components:
...
  auto count = this->symbol_name_count ();
  for (offset_type idx = 0; idx < count; idx++)
    {
      if (this->symbol_name_slot_invalid (idx))
	continue;

      const char *name = this->symbol_name_at (idx);
...
when accessing the slot at idx == 0 in the symbol table,
symbol_name_slot_invalid returns false so we calculate name, which is
calculated using 'constant_pool + symbol_table[idx].name', which means we get
name == constant_pool.  And given that the constant pool is empty, name now
points past the memory allocated for the index, and when we access name[0] for
the first time in cp_find_first_component_aux, we run into the
heap-buffer-overflow.

Fix this by fixing the definition of symbol_name_slot_invalid:
...
-    return bucket.name == 0 && bucket.vec;
+    return bucket.name == 0 && bucket.vec == 0;
...

Tested on x86_64-linux.

gdb/ChangeLog:

2019-06-10  Tom de Vries  <tdevries@suse.de>

	PR gdb/24618
	* dwarf2read.c (struct mapped_index::symbol_name_slot_invalid): Make
	sure an empty slot (defined by a 32-bit zero pair) is recognized as
	invalid.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Check for not allocated/associated values during array slicing
@ 2019-06-11  7:57 sergiodj+buildbot
  2019-06-11  8:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-11  7:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a7067863418451b27130bb4300ac1890ff806c12 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: a7067863418451b27130bb4300ac1890ff806c12

gdb: Check for not allocated/associated values during array slicing

When extracting an array slice we should give up if the array is
not-allocated or not-associated.  For Fortran, at least in gfortran
compiled code, the upper and lower bounds are undefined if the array
is not allocated or not associated, in which case performing checks
against these bounds will result in undefined behaviour.

Better then to throw an error if we try to slice such an array.  This
changes the error message that the user will receive in these
cases (if they got an error message before).  Previously they may have
gotten "slice out of range" now they'll get "array not allocated" or
"array not associated".

gdb/ChangeLog:

	* valops.c (value_slice): Check for not allocated or not
	associated values.

gdb/testsuite/ChangeLog:

	* gdb.fortran/vla-sizeof.exp: Update expected results.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Add readnow.exp
@ 2019-06-11 11:55 sergiodj+buildbot
  2019-06-11 12:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-11 11:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b49851c8e2bbb38e0e0f977e3fcc7abe3ad157b5 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: b49851c8e2bbb38e0e0f977e3fcc7abe3ad157b5

[gdb/testsuite] Add readnow.exp

Add a target board to test -readnow.

gdb/testsuite/ChangeLog:

2019-06-11  Tom de Vries  <tdevries@suse.de>

	* boards/readnow.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove shadowing from darwin-nat.c
@ 2019-06-11 13:14 sergiodj+buildbot
  2019-06-11 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-11 13:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 86108c1311d82af6707d38e6d3dae1ec0aa92ec9 ***

Author: Tom Tromey <tromey@blackburn.act-europe.fr>
Branch: master
Commit: 86108c1311d82af6707d38e6d3dae1ec0aa92ec9

Remove shadowing from darwin-nat.c

Building on Darwin with gcc showed that darwin-nat.c had some
shadowing variable declarations.  This removes them.

gdb/ChangeLog
2019-06-11  Tom Tromey  <tromey@adacore.com>

	* darwin-nat.c (darwin_decode_exception_message)
	(darwin_decode_message, darwin_nat_target::kill): Fix shadowing.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove trailing newlines from help text
@ 2019-06-11 15:52 sergiodj+buildbot
  2019-06-11 16:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-11 15:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 89549d7f4d27b63c4aaab4456e21dab1ee96a40a ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 89549d7f4d27b63c4aaab4456e21dab1ee96a40a

Remove trailing newlines from help text

I noticed recently that some command had a trailing newline in its
"help" output.  So, I temporarily hacked cli-decode.c to print
something when a new command was installed that had a trailing newline
in its help message, and wrote this patch, which removes all the ones
I could find this way.  (There could still be a few more in *-nat
files.)

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-06-11  Tom Tromey  <tromey@adacore.com>

	* infcall.c (_initialize_infcall): Remove trailing newline from
	help.
	* user-regs.c (_initialize_user_regs): Remove trailing newline
	from help.
	* typeprint.c (_initialize_typeprint): Remove trailing newline
	from help.
	* reverse.c (_initialize_reverse): Remove trailing newlines from
	help.
	* tracepoint.c (_initialize_tracepoint): Remove trailing newlines
	from help.
	* language.c (add_set_language_command): Remove trailing newline
	from help.
	* infcmd.c (_initialize_infcmd): Remove trailing newlines from
	help.
	* disasm.c (_initialize_disasm): Remove trailing newline from
	help.
	* top.c (init_main): Remove trailing newline from help.
	* interps.c (_initialize_interpreter): Remove trailing newline
	from help.
	* btrace.c (_initialize_btrace): Remove trailing newlines from
	help.
	* breakpoint.c (_initialize_breakpoint): Remove trailing newline
	from help.
	* python/python.c (_initialize_python): Remove trailing newline
	from help.
	* spu-tdep.c (_initialize_spu_tdep): Remove trailing newlines from
	help.
	* tui/tui-win.c (_initialize_tui_win): Remove trailing newlines
	from help.  Reformat some text.
	* tui/tui-stack.c (_initialize_tui_stack): Remove trailing newline
	from help.
	* tui/tui-layout.c (_initialize_tui_layout): Remove trailing
	newline from help.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Dwarf: Don't add nameless modules to partial symbol table
@ 2019-06-12 15:03 sergiodj+buildbot
  2019-06-12 15:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-12 15:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a5fd13a91534b1c79a4b61995894a5bb4f08d3b0 ***

Author: Bernhard Heckel <bernhard.heckel@intel.com>
Branch: master
Commit: a5fd13a91534b1c79a4b61995894a5bb4f08d3b0

Dwarf: Don't add nameless modules to partial symbol table

A name for BLOCK DATA in Fortran is optional.  If no name has been
assigned, GDB crashes during read-in of DWARF when BLOCK DATA is
represented via DW_TAG_module.  BLOCK DATA is used for one-time
initialization of non-pointer variables in named common blocks.

As of now there is no issue when gfortran is used as DW_TAG_module is
not emitted.  However, with Intel ifort the nameless DW_TAG_module is
present and has the following form:

 ...
  <1><dd>: Abbrev Number: 7 (DW_TAG_module)
     <de>   DW_AT_decl_line   : 46
     <df>   DW_AT_decl_file   : 1
     <e0>   DW_AT_description : (indirect string, offset: 0x110): block
 data
     <e4>   DW_AT_high_pc     : 0x402bb7
     <ec>   DW_AT_low_pc      : 0x402bb7
 ...

The missing name leads to a crash in add_partial_symbol, during length
calculation.

gdb/ChangeLog:
2019-06-11  Bernhard Heckel  <bernhard.heckel@intel.com>

	* dwarf2read.c (add_partial_symbol): Skip nameless modules.

gdb/testsuite/Changelog:
2019-06-11  Bernhard Heckel  <bernhard.heckel@intel.com>

	* gdb.fortran/block-data.f: New.
	* gdb.fortran/block-data.exp: New.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Prevent a seg-fault from objdup when disassembling binaries which do not contain a symbol table.
@ 2019-06-12 21:16 sergiodj+buildbot
  2019-06-12 21:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-12 21:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 62e0492f5723dd3db5e5a48a3a0ac161d7ba2701 ***

Author: Adam Lackorzymski <adam@os.inf.tu-dresden.de>
Branch: master
Commit: 62e0492f5723dd3db5e5a48a3a0ac161d7ba2701

Prevent a seg-fault from objdup when disassembling binaries which do not contain a symbol table.

	PR 24643
	* elf32-arm.c (arm_elf_find_function): Fail if the symol table is
	absent, or the bfd is not in the ELF formart.
	* elfnn-aarch64.c (aarch64_elf_find_function): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] opcodes/or1k: Regenerate opcodes
@ 2019-06-12 23:45 sergiodj+buildbot
  2019-06-13  0:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-12 23:45 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e4c4ac46e8e7ef92311181f85b193af369897151 ***

Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: e4c4ac46e8e7ef92311181f85b193af369897151

opcodes/or1k: Regenerate opcodes

This picks up changes for:
  - new orfpx64a32 spec additions
  - new unordered instructions
  - symbol and documentation updates

opcodes/ChangeLog:

	* or1k-asm.c: Regenerated.
	* or1k-desc.c: Regenerated.
	* or1k-desc.h: Regenerated.
	* or1k-dis.c: Regenerated.
	* or1k-ibld.c: Regenerated.
	* or1k-opc.c: Regenerated.
	* or1k-opc.h: Regenerated.
	* or1k-opinst.c: Regenerated.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Allow "unlimited" abbreviations
@ 2019-06-13  1:56 sergiodj+buildbot
  2019-06-13  8:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13  1:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 93bcb04349eb500781747a542ececc7a8ba3bd95 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 93bcb04349eb500781747a542ececc7a8ba3bd95

Allow "unlimited" abbreviations

Currently we can abbreviate "on/off/enable/disable/yes/no" in boolean
settings,

  (gdb) set non-stop of
  (gdb) set non-stop en

we can abbreviate the items of enumeration commands,

  (gdb) set print frame-arguments scal
  (gdb) set scheduler-locking rep

but we cannot abbreviate "unlimited" in integer commands.

 (gdb) set print elements u
 No symbol "u" in current context.

This commit fixes that.

Testcases will be in gdb.base/settings.exp and gdb.base/options.exp,
in following patches.

gdb/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* cli/cli-setshow.c (is_unlimited_literal): Allow abbreviations.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove "show" command completers, "set" command completers for string commands
@ 2019-06-13  2:25 sergiodj+buildbot
  2019-06-13  9:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13  2:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 597bf39df91c9a2e27cf1966dd4c942ac645ae33 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 597bf39df91c9a2e27cf1966dd4c942ac645ae33

Remove "show" command completers, "set" command completers for string commands

The default command completer is symbol_completer, but it makes no
sense for a "show" command to complete on symbols, or anything else,
really.

I wonder whether we should instead make the default be no completer.
That seems like a much larger/complicated audit/change, so I'd like to
move forward with this version, as it'll be covered by tests.  I
noticed this because a following patch will add a new
gdb.base/settings.exp testcase that exercises all sorts of details of
settings commands, including completing the show commands, using new
representative "maint test-settings <type or settings command>"
commands.

Also remove the completer for var_string and var_string_noescape
commands.  No point in completing symbols when GDB is expecting a
string.

gdb/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* cli/cli-decode.c (add_setshow_cmd_full): Remove "show"
	completer.
	(add_setshow_string_cmd, add_setshow_string_noescape_cmd): Remove
	"set" completers.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] New set/show testing framework (gdb.base/settings.exp)
@ 2019-06-13  2:36 sergiodj+buildbot
  2019-06-13 11:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13  2:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT dca0f6c0a4bafff9039d8bdb2a7efec9f70ce82f ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: dca0f6c0a4bafff9039d8bdb2a7efec9f70ce82f

New set/show testing framework (gdb.base/settings.exp)

This commit adds new representative commands for all types of settings
commands supported by gdb (enum var_types), and then uses them to
exercise settings parsing and completion.

  (gdb) maint test-settings s[TAB]
  set   show

  (gdb) maint test-settings set [TAB]
  auto-boolean         integer              uinteger
  boolean              optional-filename    zinteger
  enum                 string               zuinteger
  filename             string-noescape      zuinteger-unlimited

  (gdb) maint test-settings set enum [TAB]
  xxx  yyy  zzz

  etc.

This is basically unit testing, except that it goes fully via GDB.  It
must be done this way in order to exercise TAB completion properly,
which must go via readline.

gdb/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* Makefile.in (COMMON_SFILES): Add maint-test-settings.c.
	* NEWS: Mention maint test-settings KIND.
	* maint-test-settings.c: New file.

gdb/doc/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document "maint
	test-settings" commands.

gdb/testsuite/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.base/settings.c: New file.
	* gdb.base/settings.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Introduce generic command options framework
@ 2019-06-13  2:48 sergiodj+buildbot
  2019-06-13 13:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13  2:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9d0faba9f52b898f0be539bc4d6fbd084772259d ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 9d0faba9f52b898f0be539bc4d6fbd084772259d

Introduce generic command options framework

This commit adds a generic command options framework, that makes it
easy enough to add '-'-style options to commands in a uniform way,
instead of each command implementing option parsing in its own way.

Options are defined in arrays of option_def objects (for option
definition), and the same options definitions are used for supporting
TAB completion, and also for generating the relevant help fragment of
the "help" command.  See the gdb::options::build_help function, which
returns a string with the result of replacing %OPTIONS% in a template
string with an auto-generated "help" string fragment for all the
passed-in options.

Since most options in GDB are in the form of "-OPT", with a single
dash, this is the format that the framework supports.

I like to think of gdb's "-OPT" as the equivalent to getopt's long
options format ("--OPT"), and gdb's "/" as the equivalent to getopt's
short options format.  getopt's short options format allows mixing
several one-character options, like "ls -als", kind of similar to
gdb's "x /FMT" and "disassemble /MOD", etc.  While with gdb's "-"
options, the option is expected to have a full name, and to be
abbreviatable.  E.g., "watch -location", "break -function main", etc.

This patch only deals with "-" options.  The above comment serves more
to disclose why I don't think we should support mixing several
unrelated options in a single "-" option invocation, like "thread
apply -qcs" instead of "thread apply -q -c -s".

The following patches will add uses of the infrastructure to several
key commands.  Most notably, "print", "compile print", "backtrace",
"frame apply" and "thread apply".  I tried to add options to several
commands in order to make sure the framework didn't leave that many
open holes open.

Options use the same type as set commands -- enum var_types.  So
boolean options are var_boolean, enum options are var_enum, etc.  The
idea is to share code between settings commands and command options.
The "print" options will be based on the "set print" commands, and
their names will be the same.  Actually, their definitions will be the
same too.  There is a function to create "set/show" commands from an
array for option definitions:

 /* Install set/show commands for options defined in OPTIONS.  DATA is
    a pointer to the structure that holds the data associated with the
    OPTIONS array.  */
 extern void add_setshow_cmds_for_options (command_class cmd_class, void *data,
					   gdb::array_view<const option_def> options,
					   struct cmd_list_element **set_list,
					   struct cmd_list_element **show_list);

That will be used by several following patches.

Other features:

 - You can use the "--" delimiter to explicitly indicate end of
   options.  Several existing commands use this token sequence for
   this effect already, so this just standardizes it.

 - You can shorten option names, as long as unambiguous.  Currently,
   some commands allow this (e.g., break -function), while others do
   not (thread apply all -ascending).  As GDB allows abbreviating
   command names and other things, it feels more GDB-ish to allow
   abbreviating option names too, to me.

 - For boolean options, 0/1 stands for off/on, just like with boolean
   "set" commands.

 - For boolean options, "true" is implied, just like with boolean "set
   commands.

These are the option types supported, with a few examples:

 - boolean options (var_boolean).  The option's argument is optional.

   (gdb) print -pretty on -- *obj
   (gdb) print -pretty off -- *obj
   (gdb) print -p -- *obj
   (gdb) print -p 0 -- *obj

 - flag options (like var_boolean, but no option argument (on/off))

   (gdb) thread apply all -s COMMAND

 - enum options  (var_enum)

   (gdb) bt -entry-values compact
   (gdb) bt -e c

 - uinteger options (var_uinteger)

   (gdb) print -elements 100 -- *obj
   (gdb) print -e 100 -- *obj
   (gdb) print -elements unlimited -- *obj
   (gdb) print -e u -- *obj

 - zuinteger-unlimited options (var_zuinteger_unlimited)

   (gdb) print -max-depth 100 -- obj
   (gdb) print -max-depth -1 -- obj
   (gdb) print -max-depth unlimited -- obj

Other var_types could be supported, of course.  These were just the
types that I needed for the commands that I ported over, in the
following patches.

It was interesting (and unfortunate) to find that we need at least 3
different modes to cover the existing commands:

- Commands that require ending options with "--" if you specify any
  option: "print" and "compile print".

- Commands that do not want to require "--", and want to error out if
  you specify an unknown option (i.e., an unknown argument that starts
  with '-'): "compile code" / "compile file".

- Commands that do not want to require "--", and want to process
  unknown options themselves: "bt", because of "bt -COUNT",
  "thread/frame apply", because "-" is a valid command.

The different behavior is encoded in the process_options_mode enum,
passed to process_options/complete_options.

For testing, this patch adds one representative maintenance command
for each of the process_options_mode values, that are used by the
testsuite to exercise the options framework:

 (gdb) maint test-options require-delimiter
 (gdb) maint test-options unknown-is-error
 (gdb) maint test-options unknown-is-operand

and adds another command to help with TAB-completion testing:

 (gdb) maint show test-options-completion-result

See their description at the top of the maint-test-options.c file.

Docs/NEWS are in a patch later in the series.

gdb/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* Makefile.in (SUBDIR_CLI_SRCS): Add cli/cli-option.c.
	(COMMON_SFILES): Add maint-test-settings.c.
	* cli/cli-decode.c (boolean_enums): New global, factored out from
	...
	(add_setshow_boolean_cmd): ... here.
	* cli/cli-decode.h (boolean_enums): Declare.
	* cli/cli-option.c: New file.
	* cli/cli-option.h: New file.
	* cli/cli-setshow.c (parse_cli_boolean_value(const char **)): New,
	factored out from ...
	(parse_cli_boolean_value(const char *)): ... this.
	(is_unlimited_literal): Change parameter type to pointer to
	pointer.  Adjust and advance ARG pointer.
	(parse_cli_var_uinteger, parse_cli_var_zuinteger_unlimited)
	(parse_cli_var_enum): New, factored out from ...
	(do_set_command): ... this.  Adjust.
	* cli/cli-setshow.h (parse_cli_boolean_value)
	(parse_cli_var_uinteger, parse_cli_var_zuinteger_unlimited)
	(parse_cli_var_enum): Declare.
	* cli/cli-utils.c: Include "cli/cli-option.h".
	(get_ulongest): New.
	* cli/cli-utils.h (get_ulongest): Declare.
	(check_for_argument): New overloads.
	* maint-test-options.c: New file.

gdb/testsuite/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.base/options.c: New file.
	* gdb.base/options.exp: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make "print" and "compile print" support -OPT options
@ 2019-06-13  2:53 sergiodj+buildbot
  2019-06-13 15:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13  2:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7d8062de98203eeec70d4439ab460b9ef50a2e0f ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 7d8062de98203eeec70d4439ab460b9ef50a2e0f

Make "print" and "compile print" support -OPT options

This patch adds support for "print -option optval --", etc.
Likewise for "compile print".

We'll get:

~~~~~~
(gdb) help print
Print value of expression EXP.
Usage: print [[OPTION]... --] [/FMT] [EXP]

Options:
  -address [on|off]
    Set printing of addresses.

  -array [on|off]
    Set pretty formatting of arrays.

  -array-indexes [on|off]
    Set printing of array indexes.

  -elements NUMBER|unlimited
    Set limit on string chars or array elements to print.
    "unlimited" causes there to be no limit.

  -max-depth NUMBER|unlimited
    Set maximum print depth for nested structures, unions and arrays.
    When structures, unions, or arrays are nested beyond this depth then they
    will be replaced with either '{...}' or '(...)' depending on the language.
    Use "unlimited" to print the complete structure.

  -null-stop [on|off]
    Set printing of char arrays to stop at first null char.

  -object [on|off]
    Set printing of C++ virtual function tables.

  -pretty [on|off]
    Set pretty formatting of structures.

  -repeats NUMBER|unlimited
    Set threshold for repeated print elements.
    "unlimited" causes all elements to be individually printed.

  -static-members [on|off]
    Set printing of C++ static members.

  -symbol [on|off]
    Set printing of symbol names when printing pointers.

  -union [on|off]
    Set printing of unions interior to structures.

  -vtbl [on|off]
    Set printing of C++ virtual function tables.

Note: because this command accepts arbitrary expressions, if you
specify any command option, you must use a double dash ("--")
to mark the end of option processing.  E.g.: "print -o -- myobj".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I want to highlight the comment above about "--".

At first, I thought we could make the print command parse the options,
and if the option wasn't recognized, fallback to parsing as an
expression.  Then, if the user wanted to disambiguate, he'd use the
"--" option delimiter.  For example, if you had a variable called
"object" and you wanted to print its negative, you'd have to do:

  (gdb) print -- -object

After getting that working, I saw that gdb.pascal/floats.exp
regressed, in these tests:

 gdb_test "print -r" " = -1\\.2(499.*|5|500.*)"
 gdb_test "print -(r)" " = -1.2(499.*|5|500.*)"
 gdb_test "print -(r + s)" " = -3\\.4(499.*|5|500.*)"

It's the first one that I found most concerning.  It regressed because
"-r" is the abbreviation of "-raw".  I realized then that the behavior
change was a bit risker than I'd like, considering scripts, wrappers
around gdb, etc., and even user expectation.  So instead, I made the
print command _require_ the "--" options delimiter if you want to
specify any option.  So:

  (gdb) print -r

is parsed as an expression, and

  (gdb) print -r --

is parsed as an option.

I noticed that that's also what lldb's expr (the equivalent of print)
does to handle the same problem.

Going back the options themselves, note that:

 - you can shorten option names, as long as unambiguous.
 - For boolean options, 0/1 stand for off/on.
 - For boolean options, "true" is implied.

So these are all equivalent:

 (gdb) print -object on -static-members off -pretty on -- foo
 (gdb) print -object -static-members off -pretty -- foo
 (gdb) print -object -static-members 0 -pretty -- foo
 (gdb) print -o -st 0 -p -- foo

TAB completion is fully supported:

  (gdb) p -[TAB]
  -address         -elements        -pretty          -symbol
  -array           -null-stop       -repeats         -union
  -array-indexes   -object          -static-members  -vtbl

Note that the code is organized such that some of the options and the
"set/show" commands code is shared.  In particular, the "print"
options and the corresponding "set print" commands are defined with
the same structures.  The commands are installed with the
gdb::option::add_setshow_cmds_for_options function.

gdb/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* compile/compile.c: Include "cli/cli-option.h".
	(compile_print_value): Scope data pointer is now a
	value_print_options pointer; adjust.
	(compile_print_command): Process options.  Scope data pointer is
	now a value_print_options pointer; adjust.
	(_initialize_compile): Update "compile print"'s help to include
	supported options.  Install a completer for "compile print".
	* cp-valprint.c (show_vtblprint, show_objectprint)
	(show_static_field_print): Delete.
	(_initialize_cp_valprint): Don't install "set print
	static-members", "set print vtbl", "set print object" here.
	* printcmd.c: Include "cli/cli-option.h" and
	"common/gdb_optional.h".
	(print_command_parse_format): Rework to fill in a
	value_print_options instead of a format_data.
	(print_value): Change parameter type from format_data pointer to
	value_print_options reference.  Adjust.
	(print_command_1): Process options.  Adjust to pass down a
	value_print_options.
	(print_command_completer): New.
	(_initialize_printcmd): Install print_command_completer as
	handle_brkchars completer for the "print" command.  Update
	"print"'s help to include supported options.
	* valprint.c: Include "cli/cli-option.h".
	(show_vtblprint, show_objectprint, show_static_field_print): Moved
	here from cp-valprint.c.
	(boolean_option_def, uinteger_option_def)
	(value_print_option_defs, make_value_print_options_def_group):
	New.  Use gdb::option::add_setshow_cmds_for_options to install
	"set print elements", "set print null-stop", "set print repeats",
	"set print pretty", "set print union", "set print array", "set
	print address", "set print symbol", "set print array-indexes".
	* valprint.h: Include <string> and "cli/cli-option.h".
	(make_value_print_options_def_group): Declare.
	(print_value): Change parameter type from format_data pointer to
	value_print_options reference.
	(print_command_completer): Declare.

gdb/testsuite/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.base/options.exp: Build executable.
	(test-print): New procedure.
	(top level): Call it, once for "print" and another for "compile
	print".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] "set print raw frame-arguments" -> "set print raw-frame-arguments"
@ 2019-06-13  3:01 sergiodj+buildbot
  2019-06-13 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13  3:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2daf894ed0baf72dd3f422b7a71630145568db30 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 2daf894ed0baf72dd3f422b7a71630145568db30

"set print raw frame-arguments" -> "set print raw-frame-arguments"

A following patch will introduce options for the "backtrace" command,
based on some "set print" and "set backtrace" settings.  There's one
setting in particular that is a bit annoying if we want to describe
the backtrace options and the settings commands using the same data
structures:

  "set print raw frame-arguments"

The problem is that space between "raw" and "frame-arguments".

Calling the option

  "bt -raw frame-arguments"

would be odd.  So I'm calling the option

  "bt -raw-frame-arguments"

instead.

And for consistency, this patch renames the set/show commands to:

 "set print raw-frame-arguments"
 "show print raw-frame-arguments"

I.e., dash instead of space.  The old commands are left in place, but
marked deprecated.

We need to adjust a couple testcases, because the relevant tests use
gdb_test_no_output and the old commands are no longer silent:

  (gdb) set print raw frame-arguments on
  Warning: command 'set print raw frame-arguments' is deprecated.
  Use 'set print raw-frame-arguments'.

gdb/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* NEWS (Changed commands): Mention set/show print raw-frame-arguments,
	and that "set/show print raw frame-arguments" are now deprecated.

	* cli/cli-decode.c (add_setshow_boolean_cmd): Now returns the
	command.
	* command.h (add_setshow_boolean_cmd): Return cmd_list_element *.
	* stack.c (_initialize_stack): Install "set/show print
	raw-frame-arguments", and deprecate "set/show print raw
	frame-arguments".
	* valprint.c (_initialize_valprint): Deprecate "set/show print
	raw".

gdb/doc/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Print Settings): Document "set/show print
	raw-frame-arguments" instead of "set/show print raw
	frame-arguments".

gdb/testsuite/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.guile/scm-frame-args.exp: Use "set print
	raw-frame-arguments" instead of "set print raw frame-arguments".
	* gdb.python/py-frame-args.exp: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] lib/completion-support.exp: Add test_gdb_completion_offers_commands
@ 2019-06-13  3:40 sergiodj+buildbot
  2019-06-15  1:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13  3:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e2a689da55d3feb7b79a141f69c4049112f59c91 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: e2a689da55d3feb7b79a141f69c4049112f59c91

lib/completion-support.exp: Add test_gdb_completion_offers_commands

This adds a procedure to the collection of completion-testing
routines, that allows checking whether completion offers all commands
as completion candidates.  This will be used for testing completing
"frame apply all [TAB]", "thread apply all [TAB]", etc.

gdb/testsuite/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

        * lib/completion-support.exp (test_gdb_complete_tab_multiple)
	(test_gdb_complete_cmd_multiple, test_gdb_complete_multiple): Add
	'max_completions' parameter and handle it.
	(test_gdb_completion_offers_commands): New.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make "frame apply" support -OPT options
@ 2019-06-13  3:56 sergiodj+buildbot
  2019-06-15 12:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13  3:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5d7071341dd3c01d38fc01398ef8b23b1bd3783c ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 5d7071341dd3c01d38fc01398ef8b23b1bd3783c

Make "frame apply" support -OPT options

This adds support for '-'-style options to the "frame apply" family of
commands -- "frame apply COUNT", "frame apply level", "frame apply
all", "faas" and "tfaas".

The -q/-c/-s flags were already supported, -past-main/-past-entry is
new:

~~~
(gdb) help frame apply all
Apply a command to all frames.

Usage: frame apply all [OPTION]... COMMAND
Prints the frame location information followed by COMMAND output.

By default, an error raised during the execution of COMMAND
aborts "frame apply".

Options:
  -q
    Disables printing the frame location information.

  -c
    Print any error raised by COMMAND and continue.

  -s
    Silently ignore any errors or empty output produced by COMMAND.

  -past-main [on|off]
    Set whether backtraces should continue past "main".
    Normally the caller of "main" is not of interest, so GDB will terminate
    the backtrace at "main".  Set this if you need to see the rest
    of the stack trace.

  -past-entry [on|off]
    Set whether backtraces should continue past the entry point of a program.
    Normally there are no callers beyond the entry point of a program, so GDB
    will terminate the backtrace there.  Set this if you need to see
    the rest of the stack trace.
~~~

TAB completion of options is now supported.  Also, TAB completion of
COMMAND in "frame apply all COMMAND" does the right thing now, making
use of complete_command, added by the previous patch.  E.g.:

 (gdb) thread apply all -ascending frame apply all -past-main print -[TAB]
 -address         -elements        -pretty          -symbol
 -array           -null-stop       -repeats         -union
 -array-indexes   -object          -static-members  -vtbl
 (gdb) thread apply all -ascending frame apply all -past-main print glo[TAB]
 global1         global2

The change to tfaas_command is necessary because otherwise you get
this:

 (gdb) tfaas --
 Unrecognized option at: frame apply all -s --

That's because the above is equivalent to:

 (gdb) thread apply all -s frame apply all -s --

and the "--" instructs "thread apply" to consider everything up to
"--" as its command options.  And from that view, "frame" is an
invalid option.

The change makes tfaas be equivalent to:

 (gdb) thread apply all -s -- frame apply all -s --

gdb/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* cli/cli-utils.c (parse_flags_qcs): Use validate_flags_qcs.
	(validate_flags_qcs): New.
	* cli/cli-utils.h (struct qcs_flags): Change field types to int.
	(validate_flags_qcs): Declare.
	* stack.c (qcs_flag_option_def, fr_qcs_flags_option_defs): New.
	(make_frame_apply_options_def_group): New.
	(frame_apply_command_count): Process options with
	gdb::option::process_options.
	(frame_apply_completer): New.
	(frame_apply_level_completer, frame_apply_all_completer)
	(frame_apply_completer): New.
	(_initialize_stack): Update help of "frame apply", "frame apply
	level", "frame apply all" and "faas" to mention supported options
	and install command completers.
	* stack.h (frame_apply_all_completer): Declare.
	* thread.c: Include "stack.h".
	(tfaas_command): Add "--".
	(_initialize_thread): Update help "tfaas" to mention supported
	options and install command completer.

gdb/testsuite/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.base/options.exp (test-frame-apply): New.
	(top level): Test print commands with different "frame apply"
	prefixes.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make "thread apply" use the gdb::option framework
@ 2019-06-13  4:21 sergiodj+buildbot
  2019-06-15 15:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13  4:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6665660a411ead049daa85cac5c629d637e22044 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 6665660a411ead049daa85cac5c629d637e22044

Make "thread apply" use the gdb::option framework

Similarly to the "frame apply" patch, this makes the "thread apply"
family of commands -- "thread apply TID", "thread apply all" and
"taas" use the gdb::option framework for '-'-style options.

No new options are added, but there are some user-visible changes:

- Can now abbreviate and complete "-ascending"

- We now have a completer for "thread apply" commands

  Can now complete options ("thread apply all -[TAB]"), and also,
  'thread apply all COMMAND[TAB]' now does what you'd expect, by
  making use of the new complete_command routine.

- "help" output tweaked with auto-generated option descriptions:

   ~~~
   Usage: thread apply all [OPTION]... COMMAND
   Prints per-inferior thread number and target system's thread id
   followed by COMMAND output.

   By default, an error raised during the execution of COMMAND
   aborts "thread apply".

   Options:
     -ascending
       Call COMMAND for all threads in ascending order.
       The default is descending order.

     -q
       Disables printing the thread information.

     -c
       Print any error raised by COMMAND and continue.

     -s
       Silently ignore any errors or empty output produced by COMMAND.
   ~~~

  The "By default ..." sentence is new as well.

gdb/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* thread.c: Include "cli/cli-option.h".
	(tp_array_compar_ascending): Global.
	(tp_array_compar): Delete function.
	(tp_array_compar_ascending, tp_array_compar_descending): New
	functions.
	(ascending_option_def, qcs_flag_option_def)
	(thr_qcs_flags_option_defs)
	(make_thread_apply_all_options_def_group)
	(make_thread_apply_options_def_group): New.
	(thread_apply_all_command): Use gdb::option::process_options.
	(thread_apply_command_completer)
	(thread_apply_all_command_completer): New.
	(thread_apply_command): Use gdb::option::process_options.
	(_initialize_thread): Delete THREAD_APPLY_FLAGS_HELP, replace it
	with a new THREAD_APPLY_OPTION_HELP.  Use gdb::option::build_help
	to generate help text of "thread apply".  Adjust "taas"'s help.
	* tid-parse.c (tid_range_parser::in_thread_range): New method.
	* tid-parse.h (tid_range_parser::in_thread_range): New method.

gdb/testsuite/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.base/options.exp (test-thread-apply): New.
	(top level): Call it.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix gdb build with -std=gnu++11
@ 2019-06-13 10:19 sergiodj+buildbot
  2019-06-15 17:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 10:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 66eb1ed3882aa3c54daa2fe24b7479b5ee0538f2 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 66eb1ed3882aa3c54daa2fe24b7479b5ee0538f2

Fix gdb build with -std=gnu++11

The options framework series broken the build with gcc 4.8, or any
other compiler were we end up forcing -std=gnu++11, causing errors
like these:

 ../../binutils-gdb/gdb/compile/compile.c: In function gdb::option::option_def_group make_compile_options_def_group(compile_options*):
 ../../binutils-gdb/gdb/compile/compile.c:266:44: error: could not convert (const gdb::option::option_def*)(& compile_command_option_defs) from const gdb::option::option_def* to gdb::array_view<const gdb::option::option_def>
    return {compile_command_option_defs, opts};
					     ^
   CXX    copying.o
 ../../binutils-gdb/gdb/compile/compile.c:267:1: error: control reaches end of non-void function [-Werror=return-type]
  }
  ^

This is a C++11 vs C++14 difference -- C++14 relaxed the rules for
eliding braces.

This commit fixes it by adding the missing (in C++11) braces.  Tested
with g++ 4.8.

gdb/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* compile/compile.c (make_compile_options_def_group): Add braces
	around array_view initializer.
	* thread.c (make_thread_apply_all_options_def_group)
	(make_thread_apply_all_options_def_group): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] sim/common: wire up new unordered comparisons
@ 2019-06-13 14:32 sergiodj+buildbot
  2019-06-15 20:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 14:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f1cc84f59441d59827748e47a5971a12ed1ac283 ***

Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: f1cc84f59441d59827748e47a5971a12ed1ac283

sim/common: wire up new unordered comparisons

Define and wire up unordered floating point comparison operations for cgen
targets.  This patch depends on my posted cgen patches[0].

[0] https://www.sourceware.org/ml/cgen/2019-q2/msg00013.html

sim/common/ChangeLog:

yyyy-mm-dd  Stafford Horne  <shorne@gmail.com>

	* cgen-accfp.c (unorderedsf, unordereddf): New functions.
	(cgen_init_accurate_fpu): Wire up unorderedsf and unordereddf.
	* cgen-fpu.h (cgen_fp_ops): Define fields unorderedsf and unordereddf.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] sim/testsuite/or1k: Add tests for unordered compares
@ 2019-06-13 15:25 sergiodj+buildbot
  2019-06-15 21:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 15:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 57a63d27dcc8c7620f2168b370b649c7458c687e ***

Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: 57a63d27dcc8c7620f2168b370b649c7458c687e

sim/testsuite/or1k: Add tests for unordered compares

Add tests for 32-bit and 64-bit unordered compare instructions.

sim/testsuite/sim/or1k/ChangeLog:

yyyy-mm-dd  Stafford Horne  <shorne@gmail.com>

	* fpu-unordered.S: New file.
	* fpu64a32-unordered.S: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Regenerate with approved autotools version
@ 2019-06-14  6:59 sergiodj+buildbot
  2019-06-15 21:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-14  6:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3a3a077c4acaed1ab231a376ff9faf6b71b7a0f1 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 3a3a077c4acaed1ab231a376ff9faf6b71b7a0f1

Regenerate with approved autotools version

bfd/
	* Makefile.in: Regenerate.
	* configure: Regenerate.
binutils/
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* doc/Makefile.in: Regenerate.
gas/
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.
ld/
	* Makefile.in: Regenerate.
	* configure: Regenerate.
libctf/
	* configure: Regenerate.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] sim/testsuite/or1k: Add test for 64-bit fpu operations
@ 2019-06-14  7:17 sergiodj+buildbot
  2019-06-15 20:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-14  7:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b4f9e0034660e15d233627f9c5a732ab023b7daf ***

Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: b4f9e0034660e15d233627f9c5a732ab023b7daf

sim/testsuite/or1k: Add test for 64-bit fpu operations

This is a very basic test but it ensure the machine is wired up
correctly and that the assembler works.

sim/testsuite/sim/or1k/ChangeLog:

yyyy-mm-dd  Stafford Horne  <shorne@gmail.com>

	* fpu64a32.S: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix "set integer-command unlimited junk"
@ 2019-06-14  9:52 sergiodj+buildbot
  2019-06-15 21:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-14  9:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4c04873103043dc9a1c8d6cdeea1b9b1f545f375 ***

Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 4c04873103043dc9a1c8d6cdeea1b9b1f545f375

Fix "set integer-command unlimited junk"

With integer commands that support "unlimited", we currently fail to
notice junk after "unlimited":

 (gdb) show print elements
 Limit on string chars or array elements to print is 200.
 (gdb) set print elements unlimited foo
 (gdb) show print elements
 Limit on string chars or array elements to print is unlimited.

This commit fixes that.  After, we get:

 (gdb) set print elements unlimited foo
 Junk after "unlimited": foo

gdb/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* cli/cli-setshow.c (cli/cli-setshow.c): New parameter
	'expression'.  When parsing an expression, error out if there's
	junk after "unlimited".
	(parse_cli_var_uinteger, parse_cli_var_zuinteger_unlimited)
	(do_set_command): Adjust calls to is_unlimited_literal.

gdb/testsuite/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.base/settings.exp (test-integer): Test junk after
	"unlimited".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC comment fixes
@ 2019-06-14 13:09 sergiodj+buildbot
  2019-06-15 21:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 13:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d4b87b1eb6439e1cd01d1a9f90dcf19428db4b17 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: d4b87b1eb6439e1cd01d1a9f90dcf19428db4b17

PowerPC comment fixes

"paddi rt,sym@pcrel" as an abbreviation for "paddi rt,0,sym@pcrel,1"
is invalid, so replace with "pla rt,sym@pcrel" which is a valid form
of "pla rt,sym@pcrel(0),1".

	* elf64-ppc.c: Fix comments involving paddi.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix gdb.ada/vla.exp
@ 2019-06-14 14:49 sergiodj+buildbot
  2019-06-15 21:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 14:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9a9e394b05a841bdd9163f280d7ef19cc65634d6 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 9a9e394b05a841bdd9163f280d7ef19cc65634d6

Fix gdb.ada/vla.exp

PR ada/24539 concerns a test failure in gdb.ada/vla.exp.

The problem here is that different versions of Gnat emit the
structure's fields in different orders -- with the order currently
failing actually being the correct one.

Joel pointed out that this can be fixed by simply adding the
No_Component_Reordering pragma to the type in question, which is what
this patch does.

I've reported a Gnat compiler bug internally in hopes of getting the
underlying problem fixed.

gdb/testsuite/ChangeLog
2019-06-14  Tom Tromey  <tromey@adacore.com>

	PR ada/24539:
	* gdb.ada/vla.exp: Update tests.
	* gdb.ada/vla/vla.adb (Record_Type): Use No_Component_Reordering
	pragma.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add R_AARCH64_P32_MOVW_PREL_* ELF32 relocs
@ 2019-06-14 14:49 sergiodj+buildbot
  2019-06-15 21:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 14:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e30d1fa1bfb1ff2e225cfac9226c357f2cf07a26 ***

Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: e30d1fa1bfb1ff2e225cfac9226c357f2cf07a26

Add R_AARCH64_P32_MOVW_PREL_* ELF32 relocs

These ilp32 relocations were missing for some reason.

bfd/ChangeLog:

	* elfnn-aarch64.c: Enable MOVW_PREL relocs for ELF32.

include/ChangeLog:

	* elf/aarch64.h (R_AARCH64_P32_MOVW_PREL_G0): Define.
	(R_AARCH64_P32_MOVW_PREL_G0_NC): Define.
	(R_AARCH64_P32_MOVW_PREL_G1): Define.

ld/ChangeLog:

	* testsuite/ld-aarch64/aarch64-elf.exp: Add emit-relocs-22 and -23.
	* testsuite/ld-aarch64/emit-relocs-22.d: New test.
	* testsuite/ld-aarch64/emit-relocs-22.s: New test.
	* testsuite/ld-aarch64/emit-relocs-23.d: New test.
	* testsuite/ld-aarch64/emit-relocs-23.s: New test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Recognize _ in attribute names
@ 2019-06-14 15:48 sergiodj+buildbot
  2019-06-16  0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 15:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4268ec187d401b9b132afa1a13c73e0026a53c5d ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 4268ec187d401b9b132afa1a13c73e0026a53c5d

Recognize _ in attribute names

Ada attribute names can contain "_", but the lexer currently does not
allow this -- even though the "attributes" array lists some attributes
spelled this way.

This patch fixes the bug and adds test cases for the existing
attributes.

This was reviewed off-list by Joel.  I'm checking it in.

gdb/ChangeLog
2019-06-14  Tom Tromey  <tromey@adacore.com>

	* ada-lex.l: Allow "_" in attribute names.

gdb/testsuite/ChangeLog
2019-06-14  Tom Tromey  <tromey@adacore.com>

	* gdb.ada/formatted_ref.exp (test_p_x_addr): Check
	'unchecked_access and 'unrestricted_access as well.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Use scoped_restore_terminal_state in annotate.c
@ 2019-06-14 16:19 sergiodj+buildbot
  2019-06-16  2:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 16:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7c39e397aafaea64812f2611b061bdd50f30dce4 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 7c39e397aafaea64812f2611b061bdd50f30dce4

gdb: Use scoped_restore_terminal_state in annotate.c

In a couple of places in annotate.c we are manually backing up and
restoring the terminal ownership, we could instead make use of
scoped_restore_terminal_state.

gdb/ChangeLog:

	* annotate.c (annotate_breakpoints_invalid): Make use of
	scoped_restore_terminal_state.
	(annotate_frames_invalid): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Allow re-assigning to convenience variables
@ 2019-06-14 19:25 sergiodj+buildbot
  2019-06-16  1:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 19:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f411722cbc18820e5266ec4c2aadd2269eb15447 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: f411722cbc18820e5266ec4c2aadd2269eb15447

Allow re-assigning to convenience variables

In Ada mode, re-assigning an array of a different size to a
convenience variable will cause an error:

    (gdb) set lang ada
    (gdb) set $v := "abc"
    (gdb) set $v := "abcd"
    cannot assign arrays of different length

However, this does not really make sense -- instead, it should always
be possible to overwrite a convenience variable.

This patch fixes this bug.

This was reviewed off-list by Joel.  I'm checking it in.

gdb/ChangeLog
2019-06-14  Tom Tromey  <tromey@adacore.com>

	* ada-lang.c (ada_evaluate_subexp) <case BINOP_ASSIGN>: Always
	allow assignment to an internalvar.

gdb/testsuite/ChangeLog
2019-06-14  Tom Tromey  <tromey@adacore.com>

	* gdb.ada/set_wstr.exp: Add reassignment test.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Warn if add-symbol-file does not provide any symbols
@ 2019-06-14 22:55 sergiodj+buildbot
  2019-06-16  8:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 22:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f568655424ad268c8c5df3f56e4e19a86b16623d ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: f568655424ad268c8c5df3f56e4e19a86b16623d

Warn if add-symbol-file does not provide any symbols

A user suggested that add-symbol-file ought to warn if the file does
not in fact provide any symbols.  This seemed like a decent idea, so
this patch implements this idea.

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-06-14  Tom Tromey  <tromey@adacore.com>

	* symfile.c (add_symbol_file_command): Remove obsolete comment.
	Warn if symbol file does not provide any symbols.

gdb/testsuite/ChangeLog
2019-06-14  Tom Tromey  <tromey@adacore.com>

	* gdb.base/symfile-warn.exp: New file.
	* gdb.base/symfile-warn.c: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Minor NEWS rearrangement
@ 2019-06-14 23:38 sergiodj+buildbot
  2019-06-16 12:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 23:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 52ce35e2894e55cea94011dda6443be51e154f37 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 52ce35e2894e55cea94011dda6443be51e154f37

Minor NEWS rearrangement

I noticed that a NEWS item about Python scripting changes appeared
between an item about a convenience function and an item about a
convenience variable.  I think it's better for the latter to be next
to each other.

gdb/ChangeLog
2019-06-14  Tom Tromey  <tromey@adacore.com>

	* NEWS: Move convenience variable news above Python news.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Remove file path from test name
@ 2019-06-15 22:01 sergiodj+buildbot
  2019-06-16 14:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-15 22:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 09e4c4e1f1732ed978db4b8c75877bf8a8097ae9 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 09e4c4e1f1732ed978db4b8c75877bf8a8097ae9

gdb: Remove file path from test name

Having paths in test names makes comparing sum files difficult, rename
a test to avoid paths in test names.

gdb/testsuite/ChangeLog:

	* gdb.base/style-logging.exp: Remove path from test name.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: New function to open source file and compute line charpos data
@ 2019-06-15 22:42 sergiodj+buildbot
  2019-06-16 14:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-15 22:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 00df30ae1ea6db8f3693cad8a499f55f1d66e913 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 00df30ae1ea6db8f3693cad8a499f55f1d66e913

gdb: New function to open source file and compute line charpos data

Every place that a symtab's line_charpos data is loaded always follows
the same pattern, so create a new function to contain this logic and
make use of it throughout GDB.

There should be no user visible changes after this commit.

gdb/ChangeLog:

	* source-cache.c (source_cache::get_plain_source_lines): Use
	open_source_file_with_line_charpos instead of just
	open_source_file, remove call to find_source_lines.
	(source_cache::get_source_lines): Likewise.
	* source.c (find_source_lines): Make static.
	(get_filename_and_charpos): Renamed into...
	(open_source_file_with_line_charpos): ..this along with changes to
	return a scoped_fd, and some other minor clean ups.
	(identify_source_line): Use open_source_file_with_line_charpos.
	(search_command_helper): Use open_source_file_with_line_charpos
	instead of just open_source_file, remove call to
	find_source_lines.
	* source.h (open_source_file_with_line_charpos): Declare new
	function.
	(find_source_lines): Delete declaration.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Remove unused parameter
@ 2019-06-15 23:31 sergiodj+buildbot
  2019-06-16 14:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-15 23:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT afda45a206f83389782a400f86668714400a1cb7 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: afda45a206f83389782a400f86668714400a1cb7

gdb: Remove unused parameter

The parameter 'fullname' is always passed as NULL to the function
get_filename_and_charpos in source.c, so lets remove the parameter.
There should be no user visible changes after this commit.

gdb/ChangeLog:

	* source.c (get_filename_and_charpos): Remove fullname
	parameter.
	(identify_source_line): Update call to get_filename_and_charpos.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/mi: New commands to catch C++ exceptions
@ 2019-06-16  0:13 sergiodj+buildbot
  2019-06-16 15:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-16  0:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 30056ea04ae3ecd828e2a06e12e6f174ae6659c9 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 30056ea04ae3ecd828e2a06e12e6f174ae6659c9

gdb/mi: New commands to catch C++ exceptions

Adds some MI commands to catch C++ exceptions.  The new commands are
-catch-throw, -catch-rethrow, and -catch-catch, these all correspond
to the CLI commands 'catch throw', 'catch rethrow', and 'catch catch'.

Each MI command takes two optional arguments, '-t' has the effect of
calling 'tcatch' instead of 'catch', for example:

   (gdb)
   -catch-throw -t

Is the same as:

   (gdb) tcatch throw

There is also a '-r REGEXP' argument that can supply a regexp to match
against the exception type, so:

   (gdb)
   -catch-catch -r PATTERN

Is the same as:

   (gdb) catch catch PATTERN

The change in print_mention_exception_catchpoint might seem a little
strange; changing the output from using ui_out::field_int and
ui_out::text to using  ui_out::message.

The print_mention_exception_catchpoint is used as the 'print_mention'
method for the exception catchpoint breakpoint object.  Most of the
other 'print_mention' methods (see breakpoint.c) use either
printf_filtered, of ui_out::message.  Using field_int was causing an
unexpected field to be added to the MI output.  Here's the output
without the change in print_mention_exception_catchpoint:

    (gdb)
    -catch-throw
    ^done,bkptno="1",bkpt={number="1",type="breakpoint",disp="keep",
                           enabled="y",addr="0x00000000004006c0",
                           what="exception throw",catch-type="throw",
                           thread-groups=["i1"],times="0"}

Notice the breakpoint number appears in both the 'bkptno' field, and
the 'number' field within the 'bkpt' tuple.  Here's the output with
the change in print_mention_exception_catchpoint:

    (gdb)
    -catch-throw
    ^done,bkpt={number="1",type="breakpoint",disp="keep",
                enabled="y",addr="0x00000000004006c0",
                what="exception throw",catch-type="throw",
                thread-groups=["i1"],times="0"}

gdb/ChangeLog:

	* NEWS: Mention new MI commands.
	* break-catch-throw.c (enum exception_event_kind): Move to
	breakpoint.h.
	(print_mention_exception_catchpoint): Output text as a single
	message.
	(catch_exception_command_1): Rename to...
	(catch_exception_event): ...this, make non-static, update header
	command, and change some parameter types.
	(catch_catch_command): Update for changes to
	catch_exception_command_1.
	(catch_throw_command): Likewise.
	(catch_rethrow_command): Likewise.
	* breakpoint.c (enum exception_event_kind): Delete.
	* breakpoint.h (enum exception_event_kind): Moved here from
	break-catch-throw.c.
	(catch_exception_event): Declare.
	* mi/mi-cmd-catch.c (mi_cmd_catch_exception_event): New function.
	(mi_cmd_catch_throw): New function.
	(mi_cmd_catch_rethrow): New function.
	(mi_cmd_catch_catch): New function.
	* mi/mi-cmds.c (mi_cmds): Add 'catch-throw', 'catch-rethrow', and
	'catch-catch' entries.
	* mi/mi-cmds.h (mi_cmd_catch_throw): Declare.
	(mi_cmd_catch_rethrow): Declare.
	(mi_cmd_catch_catch): Declare.

gdb/doc/ChangeLog:

	* gdb.texinfo (GDB/MI Catchpoint Commands): Add menu entry to new
	node.
	(C++ Exception GDB/MI Catchpoint Commands): New node to describe
	new MI commands.

gdb/testsuite/ChangeLog:

	* gdb.mi/mi-catch-cpp-exceptions.cc: New file.
	* gdb.mi/mi-catch-cpp-exceptions.exp: New file.
	* lib/mi-support.exp (mi_expect_stop): Handle 'exception-caught'
	as a stop reason.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Show the type for non allocated / associated types
@ 2019-06-16  1:15 sergiodj+buildbot
  2019-06-16 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-16  1:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 584a927c5ad0d18e9995a0049066b6c503bb7482 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 584a927c5ad0d18e9995a0049066b6c503bb7482

gdb/fortran: Show the type for non allocated / associated types

Show the type of not-allocated and/or not-associated types.  For array
types and pointer to array types we are going to print the number of
ranks.

Consider this Fortran program:

  program test
    integer, allocatable :: vla (:)
    logical l
    allocate (vla(5:12))
    l = allocated (vla)
  end program test

And this GDB session with current HEAD:

  (gdb) start
  ...
  2	  integer, allocatable :: vla (:)
  (gdb) n
  4	  allocate (vla(5:12))
  (gdb) ptype vla
  type = <not allocated>
  (gdb) p vla
  $1 = <not allocated>
  (gdb)

And the same session with this patch applied:

  (gdb) start
  ...
  2	  integer, allocatable :: vla (:)
  (gdb) n
  4	  allocate (vla(5:12))
  (gdb) ptype vla
  type = integer(kind=4), allocatable (:)
  (gdb) p vla
  $1 = <not allocated>
  (gdb)

The type of 'vla' is now printed correctly, while the value itself
still shows as '<not allocated>'.  How GDB prints the type of
associated pointers has changed in a similar way.

gdb/ChangeLog:

	* f-typeprint.c (f_print_type): Don't return early for not
	associated or not allocated types.
	(f_type_print_varspec_suffix): Add print_rank parameter and print
	ranks of array types in case they dangling.
	(f_type_print_base): Add print_rank parameter.

gdb/testsuite/ChangeLog:

	* gdb.fortran/pointers.f90: New file.
	* gdb.fortran/print_type.exp: New file.
	* gdb.fortran/vla-ptype.exp: Adapt expected results.
	* gdb.fortran/vla-type.exp: Likewise.
	* gdb.fortran/vla-value.exp: Likewise.
	* gdb.mi/mi-vla-fortran.exp: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Don't allow annotations to influence what else GDB prints
@ 2019-06-16  2:06 sergiodj+buildbot
  2019-06-16 15:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-16  2:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ec8e2b6d3051f0b4b2a8eee9917898e95046c62f ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: ec8e2b6d3051f0b4b2a8eee9917898e95046c62f

gdb: Don't allow annotations to influence what else GDB prints

The annotations should be additional information printed by GDB to be
consumed by users (GUIs), but GDB shouldn't reduce what it prints
based on whether annotations are on or not.  However, this is what
happens for annotate_source_line.

This commit makes annotate_source_line a void function that simply
outputs the annotation information, GDB will then print the contents
of the source line to the terminal in the normal way.

Some tests needed to be updated after this commit.

gdb/ChangeLog:

	* annotate.c (annotate_source_line): Change return type to void,
	update implementation to match.
	* annotate.h (annotate_source_line): Change return type to void,
	update header comment.
	* stack.c (print_frame_info): Don't change what frame information
	is printed based on whether annotations are on or not.

gdb/testsuite/ChangeLog:

	* gdb.base/annota1.exp: Update expected results.
	* gdb.cp/annota2.exp: Likewise.
	* gdb.cp/annota3.exp: Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove some NULL checks from the TUI
@ 2019-06-16 16:53 sergiodj+buildbot
  2019-06-16 20:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 16:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 730ead81dfffc181f79a4b79ba8abf6850e63596 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 730ead81dfffc181f79a4b79ba8abf6850e63596

Remove some NULL checks from the TUI

I found a few spots in the TUI that were NULL-checking the result of
XNEW.  This cannot return NULL, so this patch removes the checks.

gdb/ChangeLog
2019-06-16  Tom Tromey  <tom@tromey.com>

	* tui/tui-data.c (tui_alloc_generic_win_info)
	(tui_alloc_win_info, tui_add_content_elements): Remove NULL
	checks.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Write index for dwz -m file
@ 2019-06-16 20:58 sergiodj+buildbot
  2019-06-17  4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 20:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c4973306879b6079bdfc997474a2cbbd89f49bd2 ***

Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: c4973306879b6079bdfc997474a2cbbd89f49bd2

Write index for dwz -m file

PR 24445 ("dwz multifile index not written to index cache") exposed the
fact that we are not doing things right when we generate an index for an
object file that has is linked to a dwz file.  The same happens whether
the index is generated with the intent of populating the index cache or
using the save gdb-index command.

The problem can be observed when running these tests with the
cc-with-dwz-m board:

    FAIL: gdb.base/index-cache.exp: test_cache_enabled_hit: check index-cache stats
    FAIL: gdb.dwarf2/gdb-index.exp: index used
    FAIL: gdb.dwarf2/gdb-index.exp: index used after symbol reloading

When generating the index for such file and inspecting the CU list of the
resulting index (with readelf --debug-dump=gdb_index), we can see something
like:

    CU table:
    [  0] 0x0 - 0xb9
    [  1] 0x0 - 0x44

This is supposed to be a sorted list of the ranges of all CUs in the
file this index represents, so already having some overlap is a red
flag.  It turns out that we save the ranges of CUs coming from both the
main file and the dwz file in the same index.

After digging a little bit, it became quite obvious that the index in
the main file should only list the CUs present in the main file, and a
separate index should be generated for the dwz file, listing the CUs
present in that file.

First, that's what happens if you run dwz on a file that already has a
GDB index embedded.  Second, dwarf2read.c has code to read an index from
a dwz file.  The index in the dwz file is actually required to be
present, if the main file has an index.

So this patch changes write_psymtabs_to_index to generate an index for
the dwz file, if present.  That index only contains a CU list, just like
what the dwz tool does when processing a file that already contains an
index.

Some notes about the implementation:

- The file management (creating a temp file, make sure it's
  close/removed on error - in the right order) is a bit heavy in
  write_psymtabs_to_index, and I needed to add a third file.  I factored
  this pattern in a separate class, index_wip_file.
- It became a bit tedious to keep the call to assert_file_size in
  write_psymtabs_to_index, write_gdbindex would have had to return two
  sizes.  Instead, I moved the calls to assert_file_size where the file
  is written.  The downside is that we lose the filename at this point,
  but it was only used for the very improbable case of ftell failing, so
  I think it's not a problem.
- The actual writing of the index file is factored out to
  write_gdbindex_1, so it can be re-used for both index files.
- While the "save gdb-index" command will now write two .gdb-index
  files, this patch does not update the gdb-add-index.sh script, this
  will come in a later patch.

gdb/ChangeLog:

YYYY-MM-DD  Simon Marchi  <simon.marchi@efficios.com>

	PR gdb/24445
	* dwarf-index-write.h (write_psymtabs_to_index): Add
	dwz_basename parameter.
	* dwarf-index-write.c (write_gdbindex): Move file writing to
	write_gdbindex_1.  Change return type void.
	(assert_file_size): Move up, remove filename parameter.
	(write_gdbindex_1): New function.
	(write_debug_names): Change return type to void, call
	assert_file_size.
	(struct index_wip_file): New struct.
	(write_psymtabs_to_index): Add dwz_basename parameter.  Move
	file logic to index_wip_file.  Write index for dwz file if
	needed.
	(save_gdb_index_command): Pass basename of dwz file, if present.
	* dwarf-index-cache.c (index_cache::store): Obtain and pass
	build-id of dwz file, if present.
	* dwarf2read.c (struct dwz_file): Move to dwarf2read.h.
	(dwarf2_get_dwz_file): Likewise.
	* dwarf2read.h (struct dwz_file): Move from dwarf2read.c.
	(dwarf2_get_dwz_file): Likewise.

gdb/testsuite/ChangeLog:

YYYY-MM-DD  Tom de Vries  <tdevries@suse.de>

	PR gdb/24445
	* gdb.dwarf2/gdb-index.exp (add_gdb_index): Update dwz file with
	generated index.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't cast a tui_win_info directly to tui_gen_win_info
@ 2019-06-16 21:57 sergiodj+buildbot
  2019-06-17 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 21:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 431b3eadc4f842231d404e7e995ae5c1dbd28414 ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 431b3eadc4f842231d404e7e995ae5c1dbd28414

Don't cast a tui_win_info directly to tui_gen_win_info

I found a few spots that directly cast a tui_win_info to a
tui_gen_win_info.  However, I think it's a bit better here to take the
address of the "generic" member.  As far as I know, nothing relies on
being able to downcast here, so this gives us the freedom to rearrange
the structure.

gdb/ChangeLog
2019-06-16  Tom Tromey  <tom@tromey.com>

	* tui/tui-wingeneral.c (tui_unhighlight_win, tui_highlight_win)
	(make_all_visible): Use address of member.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] aarch64: remove unnecessary loc_hash_table traversal
@ 2019-06-17 18:56 sergiodj+buildbot
  2019-06-17 19:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-17 18:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 39c05d9435893ed0b51c4b5c8e95fe977b983921 ***

Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: 39c05d9435893ed0b51c4b5c8e95fe977b983921

aarch64: remove unnecessary loc_hash_table traversal

The loc_hash_table should only contain local ifunc symbols. The current
code already aborts if there is anything else and for defined ifunc
symbols elfNN_aarch64_allocate_dynrelocs is a no-op.

bfd/ChangeLog:

	* elfnn-aarch64.c (elfNN_aarch64_allocate_local_dynrelocs): Remove.
	(elfNN_aarch64_size_dynamic_sections): Remove loc_hash_table traversal
	with elfNN_aarch64_allocate_local_dynrelocs.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] i386: Check vector length for vshufXXX/vinsertXXX/vextractXXX
@ 2019-06-17 19:36 sergiodj+buildbot
  2019-06-17 20:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-17 19:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6e1c90b7f5d60aedc547dd84873d1c9291eefcdc ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 6e1c90b7f5d60aedc547dd84873d1c9291eefcdc

i386: Check vector length for vshufXXX/vinsertXXX/vextractXXX

Since not all vector lengths are supported by vshufXXX, vinsertXXX and
vextractXXX, decode them only with supported vector lengths.

gas/

	PR binutils/24691
	* testsuite/gas/i386/disassem.s: Add test for vshuff32x4 with
	invalid vector length.
	* testsuite/gas/i386/x86-64-disassem.s: Likewise.
	* testsuite/gas/i386/disassem.d: Updated.
	* testsuite/gas/i386/x86-64-disassem.d: Likewise.

opcodes/

	PR binutils/24691
	* i386-dis-evex.h (evex_table): Update EVEX_W_0F3A23_P_2,
	EVEX_W_0F3A38_P_2, EVEX_W_0F3A39_P_2, EVEX_W_0F3A3A_P_2,
	EVEX_W_0F3A3B_P_2 and EVEX_W_0F3A43_P_2.
	(evex_len_table): Add EVEX_LEN_0F3A23_P_2_W_0,
	EVEX_LEN_0F3A23_P_2_W_1, EVEX_LEN_0F3A38_P_2_W_0,
	EVEX_LEN_0F3A38_P_2_W_1, EVEX_LEN_0F3A39_P_2_W_0,
	EVEX_LEN_0F3A39_P_2_W_1, EVEX_LEN_0F3A3A_P_2_W_0,
	EVEX_LEN_0F3A3A_P_2_W_1, EVEX_LEN_0F3A3B_P_2_W_0,
	EVEX_LEN_0F3A3B_P_2_W_1, EVEX_LEN_0F3A43_P_2_W_0 and
	EVEX_LEN_0F3A43_P_2_W_1.
	* i386-dis.c (EVEX_LEN_0F3A23_P_2_W_0): New enum.
	(EVEX_LEN_0F3A23_P_2_W_1): Likewise.
	(EVEX_LEN_0F3A38_P_2_W_0): Likewise.
	(EVEX_LEN_0F3A38_P_2_W_1): Likewise.
	(EVEX_LEN_0F3A39_P_2_W_0): Likewise.
	(EVEX_LEN_0F3A39_P_2_W_1): Likewise.
	(EVEX_LEN_0F3A3A_P_2_W_0): Likewise.
	(EVEX_LEN_0F3A3A_P_2_W_1): Likewise.
	(EVEX_LEN_0F3A3B_P_2_W_0): Likewise.
	(EVEX_LEN_0F3A3B_P_2_W_1): Likewise.
	(EVEX_LEN_0F3A43_P_2_W_0): Likewise.
	(EVEX_LEN_0F3A43_P_2_W_1): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR gdb/24364: Don't call dtrace_process_dof with NULL dof.
@ 2019-06-18  2:06 sergiodj+buildbot
  2019-06-18  7:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-18  2:06 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ba9777bef059df0926ad5dd6813d5785cb652ccf ***

Author: Paul Pluzhnikov <ppluzhnikov@google.com>
Branch: master
Commit: ba9777bef059df0926ad5dd6813d5785cb652ccf

PR gdb/24364: Don't call dtrace_process_dof with NULL dof.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb] Fix heap-buffer-overflow in child_path
@ 2019-06-18  7:53 sergiodj+buildbot
  2019-06-18 16:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-18  7:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 310b3441a07cb07713a8065a39032504e098047b ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 310b3441a07cb07713a8065a39032504e098047b

[gdb] Fix heap-buffer-overflow in child_path

When compiling gdb with '-lasan -fsanitizer=address' and running tests with:
- export ASAN_OPTIONS="detect_leaks=0:alloc_dealloc_mismatch=0", and
- a target board using local-board.exp, which sets sysroot to ""
we run into a heap-buffer-overflow in child_path for f.i. gdb.arch/amd64-byte:
...
==3997==ERROR: AddressSanitizer: heap-buffer-overflow on address \
  0x60200002abcf at pc 0x5602acdf6872 bp 0x7ffe5237a090 sp 0x7ffe5237a080
READ of size 1 at 0x60200002abcf thread T0
    #0 0x5602acdf6871 in child_path(char const*, char const*) \
                      gdb/common/pathstuff.c:161
    #1 0x5602adb06587 in find_separate_debug_file gdb/symfile.c:1483
    #2 0x5602adb06f2f in find_separate_debug_file_by_debuglink[abi:cxx11](...) \
                      gdb/symfile.c:1563
    #3 0x5602ad13b743 in elf_symfile_read gdb/elfread.c:1293
    #4 0x5602adb01cfa in read_symbols gdb/symfile.c:798
    #5 0x5602adb03769 in syms_from_objfile_1 gdb/symfile.c:1000
    #6 0x5602adb039d0 in syms_from_objfile gdb/symfile.c:1017
    #7 0x5602adb04551 in symbol_file_add_with_addrs gdb/symfile.c:1124
    #8 0x5602adb04ebf in symbol_file_add_from_bfd(...) gdb/symfile.c:1204
    #9 0x5602ada5a78d in solib_read_symbols(...) gdb/solib.c:695
    #10 0x5602ada5bdae in solib_add(char const*, int, int) gdb/solib.c:1004
    #11 0x5602ada49bcd in enable_break gdb/solib-svr4.c:2394
    #12 0x5602ada4dae9 in svr4_solib_create_inferior_hook gdb/solib-svr4.c:3028
    #13 0x5602ada5d4f1 in solib_create_inferior_hook(int) gdb/solib.c:1215
    #14 0x5602ad347f66 in post_create_inferior(target_ops*, int) \
                          gdb/infcmd.c:467
    #15 0x5602ad348b3c in run_command_1 gdb/infcmd.c:663
    #16 0x5602ad348e55 in run_command gdb/infcmd.c:686
    #17 0x5602acd7d32b in do_const_cfunc gdb/cli/cli-decode.c:106
    #18 0x5602acd84bfe in cmd_func(cmd_list_element*, char const*, int) \
                          gdb/cli/cli-decode.c:1892
    #19 0x5602adc62a90 in execute_command(char const*, int) gdb/top.c:630
    #20 0x5602ad5053e6 in catch_command_errors gdb/main.c:372
    #21 0x5602ad507eb1 in captured_main_1 gdb/main.c:1138
    #22 0x5602ad5081ec in captured_main gdb/main.c:1163
    #23 0x5602ad508281 in gdb_main(captured_main_args*) gdb/main.c:1188
    #24 0x5602ac9ddc3a in main gdb/gdb.c:32
    #25 0x7f582b56eb96 in __libc_start_main \
                       (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    #26 0x5602ac9dda09 in _start \
                       (/home/smarchi/build/binutils-gdb/gdb/gdb+0x19a2a09)

0x60200002abcf is located 1 bytes to the left of 1-byte region \
  [0x60200002abd0,0x60200002abd1)
allocated by thread T0 here:
    #0 0x7f582e0e4b50 in __interceptor_malloc \
                      (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb50)
    #1 0x5602acdd3656 in xmalloc gdb/common/common-utils.c:44
    #2 0x5602aefe17d1 in xstrdup libiberty/xstrdup.c:34
    #3 0x5602acdf61f6 in gdb_realpath(char const*) gdb/common/pathstuff.c:80
    #4 0x5602adb06278 in find_separate_debug_file gdb/symfile.c:1444
    #5 0x5602adb06f2f in find_separate_debug_file_by_debuglink[abi:cxx11](...) \
                      gdb/symfile.c:1563
    #6 0x5602ad13b743 in elf_symfile_read gdb/elfread.c:1293
    #7 0x5602adb01cfa in read_symbols gdb/symfile.c:798
    #8 0x5602adb03769 in syms_from_objfile_1 gdb/symfile.c:1000
    #9 0x5602adb039d0 in syms_from_objfile gdb/symfile.c:1017
    #10 0x5602adb04551 in symbol_file_add_with_addrs gdb/symfile.c:1124
    #11 0x5602adb04ebf in symbol_file_add_from_bfd(...) gdb/solib.c:695
    #13 0x5602ada5bdae in solib_add(char const*, int, int) gdb/solib.c:1004
    #14 0x5602ada49bcd in enable_break gdb/solib-svr4.c:2394
    #15 0x5602ada4dae9 in svr4_solib_create_inferior_hook gdb/solib-svr4.c:3028
    #16 0x5602ada5d4f1 in solib_create_inferior_hook(int) gdb/solib.c:1215
    #17 0x5602ad347f66 in post_create_inferior(target_ops*, int) \
                       gdb/infcmd.c:467
    #18 0x5602ad348b3c in run_command_1 gdb/infcmd.c:663
    #19 0x5602ad348e55 in run_command gdb/infcmd.c:686
    #20 0x5602acd7d32b in do_const_cfunc gdb/cli/cli-decode.c:106
    #21 0x5602acd84bfe in cmd_func(cmd_list_element*, char const*, int) \
                       gdb/cli/cli-decode.c:1892
    #22 0x5602adc62a90 in execute_command(char const*, int) gdb/top.c:630
    #23 0x5602ad5053e6 in catch_command_errors gdb/main.c:372
    #24 0x5602ad507eb1 in captured_main_1 gdb/main.c:1138
    #25 0x5602ad5081ec in captured_main gdb/main.c:1163
    #26 0x5602ad508281 in gdb_main(captured_main_args*) gdb/main.c:1188
    #27 0x5602ac9ddc3a in main gdb/gdb.c:32
    #28 0x7f582b56eb96 in __libc_start_main \
                       (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

SUMMARY: AddressSanitizer: heap-buffer-overflow gdb/common/pathstuff.c:161 \
  in child_path(char const*, char const*)
Shadow bytes around the buggy address:
  0x0c047fffd520: fa fa fd fd fa fa fd fd fa fa fd fa fa fa fd fa
  0x0c047fffd530: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa
  0x0c047fffd540: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa
  0x0c047fffd550: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fa
  0x0c047fffd560: fa fa fd fa fa fa fd fa fa fa fd fa fa fa 00 00
=>0x0c047fffd570: fa fa 07 fa fa fa 00 fa fa[fa]01 fa fa fa fa fa
  0x0c047fffd580: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffd590: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffd5a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffd5b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffd5c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==3997==ABORTING
...

The direct cause is that child_path gets called with parent == "", so this
test:
...
  if (IS_DIR_SEPARATOR (parent[parent_len - 1]))
...
accesses parent[-1].

[ There is an open discussion (1) about whether an empty sysroot should indeed
be represented internally as "".  But this patch focuses on fixing the
heap-buffer-overflow without any redesign. ]

Fix this by guarding the test with 'parent_len > 0'.

Note that the fix makes child_path behave the same for:
- parent == "/" && child == "/foo" (returns "foo")
- parent == "" and child == "/foo" (returns "foo").

Build and reg-tested on x86_64-linux.

(1) https://sourceware.org/ml/gdb-patches/2019-05/msg00193.html

gdb/ChangeLog:

2019-06-17  Tom de Vries  <tdevries@suse.de>

	PR gdb/24617
	* common/pathstuff.c (child_path): Make sure parent_len > 0 before
	accessing parent[parent_len - 1].


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Break up long debug_flags line in fission.exp
@ 2019-06-18 16:46 sergiodj+buildbot
  2019-06-18 17:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-18 16:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 86e04673b48d5f8121f28b7958cc5a0d9dd01132 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 86e04673b48d5f8121f28b7958cc5a0d9dd01132

[gdb/testsuite] Break up long debug_flags line in fission.exp

gdb/testsuite/ChangeLog:

2019-06-18  Tom de Vries  <tdevries@suse.de>

	* boards/fission.exp: Break up long debug_flags line.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add comment to list0.h
@ 2019-06-18 17:21 sergiodj+buildbot
  2019-06-18 18:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-18 17:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d20ed5fd574ce1b72543c2963fa53946eb2225de ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: d20ed5fd574ce1b72543c2963fa53946eb2225de

Add comment to list0.h

Pedro suggested adding a comment to list0.h to explain the control
character.

Tested on x86-64 Fedora 29.

gdb/testsuite/ChangeLog
2019-06-18  Tom Tromey  <tromey@adacore.com>

	* gdb.base/list0.h: Add comment explaining control character.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Use -fuse-ld=gold in fission.exp
@ 2019-06-18 18:53 sergiodj+buildbot
  2019-06-19  4:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-18 18:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0ed4690a67e2c4703d9088312de652d0d5f1aaaf ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 0ed4690a67e2c4703d9088312de652d0d5f1aaaf

[gdb/testsuite] Use -fuse-ld=gold in fission.exp

The target board fission.exp requires the gold linker (because it supports
--gdb-index).

When running the target board on a system where the default linker is not
gold, most tests will fail to compile.

Fix this by adding "-fuse-ld=gold" ( supported in gcc since version 4.8).

gdb/testsuite/ChangeLog:

2019-06-18  Tom de Vries  <tdevries@suse.de>

	* boards/fission.exp (debug_flags): Add "-fuse-ld=gold".


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Remove use of deprecated_interactive_hook
@ 2019-06-19  5:18 sergiodj+buildbot
  2019-06-19  8:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-19  5:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 494986d596a977e1d24f9f068696f5b3e993ebf7 ***

Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 494986d596a977e1d24f9f068696f5b3e993ebf7

gdb: Remove use of deprecated_interactive_hook

The deprecated_interactive_hook is not used within GDB.  It is used in
gdbtk, however this patch removes that use:

  https://sourceware.org/ml/insight/2019-q2/msg00001.html

So I think there is no longer a reason to keep this hook around.

This patch removes it.  There should be no user visible changes after
this commit.

gdb/ChangeLog:

	* defs.h (deprecated_interactive_hook): Delete declaration.
	* interps.c (clear_interpreter_hooks): Remove use of
	deprecated_interactive_hook.
	* top.c (deprecated_interactive_hook): Delete definition.
	* utils.c (maybe_quit): Remove use of deprecated_interactive_hook.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Instantiate a single source highlighter
@ 2019-06-19 12:58 sergiodj+buildbot
  2019-06-19 15:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-19 12:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT dcf3792354ddcd6e10e59e32060e34b27246e7da ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: dcf3792354ddcd6e10e59e32060e34b27246e7da

Instantiate a single source highlighter

It occurred to me that there's no reason to make a new source
highlighter each time gdb needs to highlight some source code.
Instead, a single one can be created and then simply reused each time.

This patch implements this idea.  Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-06-19  Tom Tromey  <tromey@adacore.com>

	* source-cache.c (highlighter): New global.
	(source_cache::get_source_lines): Create a highlighter on demand.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix crash when setting breakpoint condition
@ 2019-06-19 14:38 sergiodj+buildbot
  2019-06-19 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-19 14:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 680e1beed31da40080f61a35f6ccd626de818056 ***

Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 680e1beed31da40080f61a35f6ccd626de818056

Fix crash when setting breakpoint condition

gdb could crash when setting a breakpoint condition on a breakpoint
when using the Ada language.  The problem occurred because the
ada_evaluate_subexp would try to evaluate the array to compute its
attributes, but evaluating can't really be done at this time.

This patch fixes the problem by arranging not to try to evaluate in
EVAL_AVOID_SIDE_EFFECTS mode when computing an attribute.

Tested on x86-64 Fedora 29.  Because this is Ada-specific, and because
Joel approved it internally, I am checking it in.

gdb/ChangeLog
2019-06-19  Tom Tromey  <tromey@adacore.com>

	* ada-lang.c (ada_evaluate_subexp) <case OP_ATR_FIRST>: Handle
	EVAL_AVOID_SIDE_EFFECTS specially.

gdb/testsuite/ChangeLog
2019-06-19  Tom Tromey  <tromey@adacore.com>

	* gdb.ada/length_cond.exp: New file.
	* gdb.ada/length_cond/length_cond.adb: New file.
	* gdb.ada/length_cond/pck.adb: New file.
	* gdb.ada/length_cond/pck.ads: New file.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb] Fix build breaker with gcc 4.8
@ 2019-06-19 17:31 sergiodj+buildbot
  2019-06-20  5:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-19 17:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f23f598e28ad39dac7ae87cdc400d2f6b27dc403 ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: f23f598e28ad39dac7ae87cdc400d2f6b27dc403

[gdb] Fix build breaker with gcc 4.8

When compiling with gcc 4.8, we run into:
...
/usr/include/c++/4.8/bits/unordered_map.h:100:18: required from \
  class std::unordered_map<sect_offset, std::vector<sect_offset> >
src/gdb/dwarf2read.h:260:5:   required from here
/usr/include/c++/4.8/bits/hashtable_policy.h:1070:12: error: invalid use of \
  incomplete type struct std::hash<sect_offset>
...

Fix this by setting the Hash template parameter of the unordered_map to
gdb::hash_enum<sect_offset>, rather than using the default
std::hash<sect_offset>.

Build and reg-tested on x86_64-linux with gcc 4.8.

gdb/ChangeLog:

2019-06-19  Tom de Vries  <tdevries@suse.de>

	* dwarf2read.h (abstract_to_concrete): Change type to
	std::unordered_map<sect_offset, std::vector<sect_offset>,
	gdb::hash_enum<sect_offset>>.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] i386: Check vector length for EVEX broadcast instructions
@ 2019-06-20  5:24 sergiodj+buildbot
  2019-06-20  9:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-20  5:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f0a6222e30215d4b8ecb8124fe5ad4c3f321f8c4 ***

Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: f0a6222e30215d4b8ecb8124fe5ad4c3f321f8c4

i386: Check vector length for EVEX broadcast instructions

Since not all vector lengths are supported by EVEX broadcast instructions,
decode them only with supported vector lengths.

gas/

	PR binutils/24700
	* testsuite/gas/i386/disassem.s: Add test for vbroadcasti32x8
	with invalid vector length.
	* testsuite/gas/i386/x86-64-disassem.s: Likewise.
	* testsuite/gas/i386/disassem.d: Updated.
	* testsuite/gas/i386/x86-64-disassem.d: Likewise.

opcodes/

	PR binutils/24700
	* i386-dis-evex.h (evex_table): Update EVEX_W_0F3819_P_2,
	EVEX_W_0F381A_P_2, EVEX_W_0F381B_P_2, EVEX_W_0F385A_P_2 and
	EVEX_W_0F385B_P_2.
	(evex_len_table): Add EVEX_LEN_0F3819_P_2_W_0,
	EVEX_LEN_0F3819_P_2_W_1, EVEX_LEN_0F381A_P_2_W_0,
	EVEX_LEN_0F381A_P_2_W_1, EVEX_LEN_0F381B_P_2_W_0,
	EVEX_LEN_0F381B_P_2_W_1, EVEX_LEN_0F385A_P_2_W_0,
	EVEX_LEN_0F385A_P_2_W_1, EVEX_LEN_0F385B_P_2_W_0 and
	EVEX_LEN_0F385B_P_2_W_1.
	* i386-dis.c (EVEX_LEN_0F3819_P_2_W_0): New enum.
	(EVEX_LEN_0F3819_P_2_W_1): Likewise.
	(EVEX_LEN_0F381A_P_2_W_0): Likewise.
	(EVEX_LEN_0F381A_P_2_W_1): Likewise.
	(EVEX_LEN_0F381B_P_2_W_0): Likewise.
	(EVEX_LEN_0F381B_P_2_W_1): Likewise.
	(EVEX_LEN_0F385A_P_2_W_0): Likewise.
	(EVEX_LEN_0F385A_P_2_W_1): Likewise.
	(EVEX_LEN_0F385B_P_2_W_0): Likewise.
	(EVEX_LEN_0F385B_P_2_W_1): Likewise.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't declare tui_init_content_element
@ 2019-06-20  9:51 sergiodj+buildbot
  2019-06-20 10:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-20  9:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e6a1c5cbcb9cee5a08d814669419936ee151b19d ***

Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e6a1c5cbcb9cee5a08d814669419936ee151b19d

Don't declare tui_init_content_element

I noticed that tui_init_content_element is declared but never defined.
This removes the declaration.  Tested by rebuilding.  (I should have
merged this with the previous patch but I had forgotten that I found
two of these.)

gdb/ChangeLog
2019-06-19  Tom Tromey  <tom@tromey.com>

	* tui/tui-data.h (tui_init_content_element): Don't declare.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdbserver] Fix s390x -m31 gdbserver build
@ 2019-06-21  7:56 sergiodj+buildbot
  2019-06-21 12:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-21  7:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7d10623d3b153d6c15406b203fb1cf111c53f1dd ***

Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 7d10623d3b153d6c15406b203fb1cf111c53f1dd

[gdbserver] Fix s390x -m31 gdbserver build

When building gdb on s390x with -m31, we run into this error:
...
gdb/gdbserver/linux-s390-ipa.c: \
  In function 'const target_desc* get_ipa_tdesc(int)':
gdb/gdbserver/linux-s390-ipa.c:371:18: error: 's390_te_ft_collect_regmap' \
  was not declared in this scope
       SET_REGMAP(s390_te_ft_collect_regmap, 0);

The offending line is part of this code snippet:
...
    case S390_TDESC_GS:
      SET_REGMAP(s390_te_ft_collect_regmap, 0);
      return tdesc_s390_gs_linux64;
...
introduced in commit ce29f8439f "S390: Make IPA recognize tdescs with guarded
storage".

The snippet is part of an #ifdef __s390x__ construct, in the false branch, and
in the true branch we find a snippet introduced by the same commit:
...
    case S390_TDESC_GS:
      SET_REGMAP(s390x_te_ft_collect_regmap, 0);
      return tdesc_s390x_gs_linux64;
...
which is paired with a comment update for s390x_te_ft_collect_regmap:
...
-/* Used for s390x-te-linux64, s390x-tevx-linux64.  */
+/* Used for s390x-te-linux64, s390x-tevx-linux64, and
+   s390x-gs-linux64.  */

 static const int s390x_te_ft_collect_regmap[] = {
...

A similar comment update is added in the same commit for
s390_te_linux64_ft_collect_regmap:
...
-/* Used for s390-te-linux64, s390-tevx-linux64.  */
+/* Used for s390-te-linux64, s390-tevx-linux64, and s390-gs-linux64.  */

 static const int s390_te_linux64_ft_collect_regmap[] = {
...
but not paired with any update.

Fix the build breaker by making the offending SET_REGMAP use the regmap
indicated by the comment.
...
-      SET_REGMAP(s390_te_ft_collect_regmap, 0);
+      SET_REGMAP(s390_te_linux64_ft_collect_regmap, 0);
...

Build on s390x-linux with -m31.

gdb/gdbserver/ChangeLog:

2019-06-20  Tom de Vries  <tdevries@suse.de>

	* linux-s390-ipa.c (get_ipa_tdesc)[!__s390x__]: Use
	s390_te_linux64_ft_collect_regmap for S390_TDESC_GS.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24689, string table corruption
@ 2019-06-21 12:52 sergiodj+buildbot
  2019-06-21 13:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 12:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 890f750a3b053532a4b839a2dd6243076de12031 ***

Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 890f750a3b053532a4b839a2dd6243076de12031

PR24689, string table corruption

The testcase in the PR had a e_shstrndx section of type SHT_GROUP.
hdr->contents were initialized by setup_group rather than being read
from the file, thus last byte was not zero and string dereference ran
off the end of the buffer.

	PR 24689
	* elfcode.h (elf_object_p): Check type of e_shstrndx section.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: dump header offsets into the debugging output
@ 2019-06-21 14:34 sergiodj+buildbot
  2019-06-21 17:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 14:34 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 364620bf636a0a961892c9274616f8d5ad85eecc ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 364620bf636a0a961892c9274616f8d5ad85eecc

libctf: dump header offsets into the debugging output

This is an essential first piece of info needed to debug both libctf
writing and reading problems, and we weren't recording it anywhere!

(This is a short-term fix: fairly soon, we will record all of this in a
form that outlives ctf_bufopen, and then ctf_dump() will be able to dump
it like it can everything else.)

libctf/
	* ctf-open.c (ctf_bufopen): Dump header offsets into the debugging
	output.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] libctf: unidentified type kinds on open are a sign of file corruption
@ 2019-06-21 15:10 sergiodj+buildbot
  2019-06-21 18:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 15:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0b4fa56e07639ed28cbbcd890868e01a82a5e45c ***

Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 0b4fa56e07639ed28cbbcd890868e01a82a5e45c

libctf: unidentified type kinds on open are a sign of file corruption

If we see a CTF type with a kind we do not recognize in its ctt_info
during opening, we cannot skip it and continue opening the file: if the
type kind is unknown, we do not know how long its vlen is, and we cannot
have skipped past it: so if we continue reading we will almost certainly
read in part of the vlen as if it were a new ctf_type_t.

Avoid this trouble by considering unknown type kinds to be a reason to
return ECTF_CORRUPT, just like everything else that reads in type kinds
does.

libctf/
	* ctf-open.c (ctf_types): Fail when unidentified type kinds are
	seen.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix nullptr in with_command_1
@ 2019-08-21 21:57 gdb-buildbot
  2019-08-21 22:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-21 21:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 26c957f12762816a90d5145c7c527ca48c890855 ***

commit 26c957f12762816a90d5145c7c527ca48c890855
Author:     Pedro Alves <palves@redhat.com>
AuthorDate: Wed Aug 21 21:11:33 2019 +0100
Commit:     Pedro Alves <palves@redhat.com>
CommitDate: Wed Aug 21 21:11:33 2019 +0100

    Fix nullptr in with_command_1
    
    Running 'with' without arguments crashes GDB.  This fixes it.
    
    gdb/ChangeLog:
    2019-08-21  Bogdan Harjoc  <harjoc@gmail.com>
    
            * cli/cli-cmds.c (with_command_1): Error out if no arguments.
    
    gdb/testsuite/ChangeLog:
    2019-08-21  Pedro Alves  <palves@redhat.com>
    
            * gdb.base/with.exp: Test "with" with no arguments.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 01e60fb189..966bfb7d9f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-21  Bogdan Harjoc  <harjoc@gmail.com>
+
+	* cli/cli-cmds.c (with_command_1): Error out if no arguments.
+
 2019-08-21  Christian Biesinger  <cbiesinger@google.com>
 
 	* tui/tui-data.h (tui_gen_win_info): Add an =default
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 30e0958b60..4fc656775c 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -217,6 +217,9 @@ void
 with_command_1 (const char *set_cmd_prefix,
 		cmd_list_element *setlist, const char *args, int from_tty)
 {
+  if (args == nullptr)
+    error (_("Missing arguments."));
+
   const char *delim = strstr (args, "--");
   const char *nested_cmd = nullptr;
 
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 7fea9cd071..e56cc16628 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-21  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/with.exp: Test "with" with no arguments.
+
 2019-08-21  Tom de Vries  <tdevries@suse.de>
 
 	* gdb.base/gdb-caching-proc.exp: Sort files.
diff --git a/gdb/testsuite/gdb.base/with.exp b/gdb/testsuite/gdb.base/with.exp
index 9ea768563a..a972296d78 100644
--- a/gdb/testsuite/gdb.base/with.exp
+++ b/gdb/testsuite/gdb.base/with.exp
@@ -220,6 +220,8 @@ with_test_prefix "run control" {
 
 # Check errors.
 with_test_prefix "errors" {
+    gdb_test "with" "Missing arguments\\."
+
     # Try both an unknown root setting and an unknown prefixed
     # setting.  The errors come from different locations in the
     # sources.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] ARM CMSE symbols
@ 2019-08-22  5:38 gdb-buildbot
  2019-08-22  9:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-22  5:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT baf46cd78048e1b959462567556e1de1ef6b9039 ***

commit baf46cd78048e1b959462567556e1de1ef6b9039
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Thu Aug 22 11:21:48 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Thu Aug 22 14:14:23 2019 +0930

    ARM CMSE symbols
    
    This patch removes use of st_target_internal to cache the result of
    comparing symbol names against CMSE_PREFIX.  The problem with setting
    a bit in st_target_internal in swap_symbol_in is that calling
    bfd_elf_sym_name from swap_symbol_in requires symtab_hdr, and you
    don't know for sure whether swap_symbol_in is operating on dynsyms
    (and thus elf_tdata (abfd)->dynsymtab_hdr should be used) or on the
    normal symtab (thus elf_tdata (abfd)->symtab_hdr).  You can make an
    educated guess based on abfd->flags & DYNAMIC but that relies on
    knowing a lot about calls to bfd_elf_get_elf_syms, and is fragile in
    the face of possible future changes.
    
    include/
            * elf/arm.h (ARM_GET_SYM_CMSE_SPCL, ARM_SET_SYM_CMSE_SPCL): Delete.
    bfd/
            * elf32-arm.c (cmse_scan): Don't use ARM_GET_SYM_CMSE_SPCL,
            instead recognize CMSE_PREFIX in symbol name.
            (elf32_arm_gc_mark_extra_sections): Likewise.
            (elf32_arm_filter_cmse_symbols): Don't test ARM_GET_SYM_CMSE_SPCL.
            (elf32_arm_swap_symbol_in): Don't invoke ARM_SET_SYM_CMSE_SPCL.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 97d3726516..a725504c02 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-22  Alan Modra  <amodra@gmail.com>
+
+	* elf32-arm.c (cmse_scan): Don't use ARM_GET_SYM_CMSE_SPCL,
+	instead recognize CMSE_PREFIX in symbol name.
+	(elf32_arm_gc_mark_extra_sections): Likewise.
+	(elf32_arm_filter_cmse_symbols): Don't test ARM_GET_SYM_CMSE_SPCL.
+	(elf32_arm_swap_symbol_in): Don't invoke ARM_SET_SYM_CMSE_SPCL.
+
 2019-08-20  Dennis Zhang  <dennis.zhang@arm.com>
 
 	* cpu-aarch64.c: New entries for Cortex-A34, Cortex-A65,
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index d1548d6db3..b675fc60c1 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -6002,12 +6002,12 @@ cmse_scan (bfd *input_bfd, struct elf32_arm_link_hash_table *htab,
       if (i < ext_start)
 	{
 	  cmse_sym = &local_syms[i];
-	  /* Not a special symbol.  */
-	  if (!ARM_GET_SYM_CMSE_SPCL (cmse_sym->st_target_internal))
-	    continue;
 	  sym_name = bfd_elf_string_from_elf_section (input_bfd,
 						      symtab_hdr->sh_link,
 						      cmse_sym->st_name);
+	  if (!sym_name || !CONST_STRNEQ (sym_name, CMSE_PREFIX))
+	    continue;
+
 	  /* Special symbol with local binding.  */
 	  cmse_invalid = TRUE;
 	}
@@ -6015,9 +6015,7 @@ cmse_scan (bfd *input_bfd, struct elf32_arm_link_hash_table *htab,
 	{
 	  cmse_hash = elf32_arm_hash_entry (sym_hashes[i - ext_start]);
 	  sym_name = (char *) cmse_hash->root.root.root.string;
-
-	  /* Not a special symbol.  */
-	  if (!ARM_GET_SYM_CMSE_SPCL (cmse_hash->root.target_internal))
+	  if (!CONST_STRNEQ (sym_name, CMSE_PREFIX))
 	    continue;
 
 	  /* Special symbol has incorrect binding or type.  */
@@ -15990,7 +15988,8 @@ elf32_arm_gc_mark_extra_sections (struct bfd_link_info *info,
 
 		  /* Assume it is a special symbol.  If not, cmse_scan will
 		     warn about it and user can do something about it.  */
-		  if (ARM_GET_SYM_CMSE_SPCL (cmse_hash->root.target_internal))
+		  if (CONST_STRNEQ (cmse_hash->root.root.root.string,
+				    CMSE_PREFIX))
 		    {
 		      cmse_sec = cmse_hash->root.root.u.def.section;
 		      if (!cmse_sec->gc_mark
@@ -18610,9 +18609,6 @@ elf32_arm_filter_cmse_symbols (bfd *abfd ATTRIBUTE_UNUSED,
 	  || cmse_hash->root.type != STT_FUNC)
 	continue;
 
-      if (!ARM_GET_SYM_CMSE_SPCL (cmse_hash->root.target_internal))
-	continue;
-
       syms[dst_count++] = sym;
     }
   free (cmse_name);
@@ -19935,9 +19931,6 @@ elf32_arm_swap_symbol_in (bfd * abfd,
 			  const void *pshn,
 			  Elf_Internal_Sym *dst)
 {
-  Elf_Internal_Shdr *symtab_hdr;
-  const char *name = NULL;
-
   if (!bfd_elf32_swap_symbol_in (abfd, psrc, pshn, dst))
     return FALSE;
   dst->st_target_internal = 0;
@@ -19966,13 +19959,6 @@ elf32_arm_swap_symbol_in (bfd * abfd,
   else
     ARM_SET_SYM_BRANCH_TYPE (dst->st_target_internal, ST_BRANCH_UNKNOWN);
 
-  /* Mark CMSE special symbols.  */
-  symtab_hdr = & elf_symtab_hdr (abfd);
-  if (symtab_hdr->sh_size)
-    name = bfd_elf_sym_name (abfd, symtab_hdr, dst, NULL);
-  if (name && CONST_STRNEQ (name, CMSE_PREFIX))
-    ARM_SET_SYM_CMSE_SPCL (dst->st_target_internal);
-
   return TRUE;
 }
 
diff --git a/include/ChangeLog b/include/ChangeLog
index 1813cb38d8..e779c17702 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-22  Alan Modra  <amodra@gmail.com>
+
+	* elf/arm.h (ARM_GET_SYM_CMSE_SPCL, ARM_SET_SYM_CMSE_SPCL): Delete.
+
 2019-08-09  Mihailo Stojanovic  <mihailo.stojanovic@rt-rk.com>
 
 	* elf/mips.h (SHT_GNU_XHASH): New define.
diff --git a/include/elf/arm.h b/include/elf/arm.h
index 5cb9970644..75fb5e26ca 100644
--- a/include/elf/arm.h
+++ b/include/elf/arm.h
@@ -399,11 +399,4 @@ enum arm_st_branch_type {
 	   | ((TYPE) & ENUM_ARM_ST_BRANCH_TYPE_BITMASK))
 #endif
 
-/* Get or set whether a symbol is a special symbol of an entry function of CMSE
-   secure code.  */
-#define ARM_GET_SYM_CMSE_SPCL(SYM_TARGET_INTERNAL) \
-  (((SYM_TARGET_INTERNAL) >> 2) & 1)
-#define ARM_SET_SYM_CMSE_SPCL(SYM_TARGET_INTERNAL) \
-  (SYM_TARGET_INTERNAL) |= 4
-
 #endif /* _ELF_ARM_H */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] AArch64: Fix LD crash on weak and undefined TLS symbols. (PR/24602).
@ 2019-08-22 11:36 gdb-buildbot
  2019-08-22 12:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-22 11:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 652afeef247770b22c44ca292d1f4c65be40a696 ***

commit 652afeef247770b22c44ca292d1f4c65be40a696
Author:     Tamar Christina <tamar.christina@arm.com>
AuthorDate: Thu Aug 22 11:35:35 2019 +0100
Commit:     Tamar Christina <tamar.christina@arm.com>
CommitDate: Thu Aug 22 11:43:15 2019 +0100

    AArch64: Fix LD crash on weak and undefined TLS symbols. (PR/24602).
    
    This patch fixes a few linker crashes due to TLS code reaching an assert when it
    shouldn't.
    
    The first scenario is with weak TLS symbols that remain weak during linking.  In
    this case the mid-end would not have seen a TLS symbol and so wouldn't have
    allocated the TLS section.  We currently assert here and the linker crashes with
    a not very useful message.
    
    This patch changes this to return the value 0 for the TLS symbol in question
    emulating what lld and gold and other BFD targets do.  However because weak TLS
    is implementation defined and we don't define any behavior for it I also emit a
    warning to the user to inform them of such.
    
    Secondly when a strong TLS reference is undefined. The linker crashes even after
    it correctly reported that there is an undefined reference.  This changes it so
    that it gracefully exits and reports a useful error.
    
    bfd/ChangeLog:
    
            PR ld/24601
            * elfnn-aarch64.c (aarch64_relocate): Handle weak TLS and undefined TLS.
            Also Pass input_bfd to _bfd_aarch64_elf_resolve_relocation.
            * elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Use it.
            * elfxx-aarch64.h (_bfd_aarch64_elf_resolve_relocation): Emit warning
            for weak TLS.
    
    ld/ChangeLog:
    
            PR ld/24601
            * testsuite/ld-aarch64/aarch64-elf.exp (undef-tls, weak-tls): New.
            * testsuite/ld-aarch64/undef-tls.d: New test.
            * testsuite/ld-aarch64/undef-tls.s: New test.
            * testsuite/ld-aarch64/weak-tls.d: New test.
            * testsuite/ld-aarch64/weak-tls.s: New test.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a725504c02..ef9eee4716 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2019-08-22  Tamar Christina  <tamar.christina@arm.com>
+
+	PR ld/24601
+	* elfnn-aarch64.c (aarch64_relocate): Handle weak TLS and undefined TLS.
+	Also Pass input_bfd to _bfd_aarch64_elf_resolve_relocation.
+	* elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Use it.
+	* elfxx-aarch64.h (_bfd_aarch64_elf_resolve_relocation): Emit warning
+	for weak TLS.
+
 2019-08-22  Alan Modra  <amodra@gmail.com>
 
 	* elf32-arm.c (cmse_scan): Don't use ARM_GET_SYM_CMSE_SPCL,
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 4e6cbc9a3a..fd44505da4 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -3004,7 +3004,8 @@ aarch64_relocate (unsigned int r_type, bfd *input_bfd, asection *input_section,
 	   + offset);
 
   r_type = elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type);
-  value = _bfd_aarch64_elf_resolve_relocation (r_type, place, value, 0, FALSE);
+  value = _bfd_aarch64_elf_resolve_relocation (input_bfd, r_type, place,
+					       value, 0, FALSE);
   return _bfd_aarch64_elf_put_addend (input_bfd,
 				      input_section->contents + offset, r_type,
 				      howto, value) == bfd_reloc_ok;
@@ -5585,7 +5586,8 @@ bad_ifunc_reloc:
 	  /* FALLTHROUGH */
 	case BFD_RELOC_AARCH64_CALL26:
 	case BFD_RELOC_AARCH64_JUMP26:
-	  value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+	  value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						       place, value,
 						       signed_addend,
 						       weak_undef_p);
 	  return _bfd_aarch64_elf_put_addend (input_bfd, hit_data, bfd_r_type,
@@ -5662,7 +5664,8 @@ bad_ifunc_reloc:
 	    addend = (globals->root.sgot->output_section->vma
 		      + globals->root.sgot->output_offset);
 
-	  value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+	  value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						       place, value,
 						       addend, weak_undef_p);
 	  return _bfd_aarch64_elf_put_addend (input_bfd, hit_data, bfd_r_type, howto, value);
 	case BFD_RELOC_AARCH64_ADD_LO12:
@@ -5840,7 +5843,8 @@ bad_ifunc_reloc:
 	    signed_addend = 0;
 	  }
       }
-      value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+      value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						   place, value,
 						   signed_addend, weak_undef_p);
       *unresolved_reloc_p = FALSE;
       break;
@@ -5900,7 +5904,8 @@ bad_ifunc_reloc:
     case BFD_RELOC_AARCH64_MOVW_G2_S:
     case BFD_RELOC_AARCH64_MOVW_G3:
     case BFD_RELOC_AARCH64_TSTBR14:
-      value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+      value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						   place, value,
 						   signed_addend, weak_undef_p);
       break;
 
@@ -5945,7 +5950,8 @@ bad_ifunc_reloc:
 	  if (aarch64_relocation_aginst_gp_p (bfd_r_type))
 	    addend = (globals->root.sgot->output_section->vma
 		      + globals->root.sgot->output_offset);
-	  value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+	  value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						       place, value,
 						       addend, weak_undef_p);
 	}
       else
@@ -5992,7 +5998,8 @@ bad_ifunc_reloc:
 	if (aarch64_relocation_aginst_gp_p (bfd_r_type))
 	  addend = base_got->output_section->vma + base_got->output_offset;
 
-	value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+	value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						     place, value,
 						     addend, weak_undef_p);
       }
 
@@ -6029,7 +6036,8 @@ bad_ifunc_reloc:
 	       + globals->root.sgot->output_section->vma
 	       + globals->root.sgot->output_offset);
 
-      value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+      value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						   place, value,
 						   0, weak_undef_p);
       *unresolved_reloc_p = FALSE;
       break;
@@ -6042,7 +6050,8 @@ bad_ifunc_reloc:
 	return bfd_reloc_notsupported;
 
       value = symbol_got_offset (input_bfd, h, r_symndx);
-      value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+      value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						   place, value,
 						   0, weak_undef_p);
       *unresolved_reloc_p = FALSE;
       break;
@@ -6063,10 +6072,26 @@ bad_ifunc_reloc:
     case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1:
     case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC:
     case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2:
-      value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
-						   signed_addend - dtpoff_base (info),
-						   weak_undef_p);
-      break;
+      {
+	if (!(weak_undef_p || elf_hash_table (info)->tls_sec))
+	  {
+	    int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START;
+	    _bfd_error_handler
+	      /* xgettext:c-format */
+	      (_("%pB: TLS relocation %s against undefined symbol `%s'"),
+		 input_bfd, elfNN_aarch64_howto_table[howto_index].name,
+		 h->root.root.string);
+	    bfd_set_error (bfd_error_bad_value);
+	    return bfd_reloc_notsupported;
+	  }
+
+	bfd_vma def_value
+	  = weak_undef_p ? 0 : signed_addend - dtpoff_base (info);
+	value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						     place, value,
+						     def_value, weak_undef_p);
+	break;
+      }
 
     case BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12:
     case BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12:
@@ -6084,11 +6109,27 @@ bad_ifunc_reloc:
     case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1:
     case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC:
     case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2:
-      value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
-						   signed_addend - tpoff_base (info),
-						   weak_undef_p);
-      *unresolved_reloc_p = FALSE;
-      break;
+      {
+	if (!(weak_undef_p || elf_hash_table (info)->tls_sec))
+	  {
+	    int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START;
+	    _bfd_error_handler
+	      /* xgettext:c-format */
+	      (_("%pB: TLS relocation %s against undefined symbol `%s'"),
+		 input_bfd, elfNN_aarch64_howto_table[howto_index].name,
+		 h->root.root.string);
+	    bfd_set_error (bfd_error_bad_value);
+	    return bfd_reloc_notsupported;
+	  }
+
+	bfd_vma def_value
+	  = weak_undef_p ? 0 : signed_addend - tpoff_base (info);
+	value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						     place, value,
+						     def_value, weak_undef_p);
+        *unresolved_reloc_p = FALSE;
+	break;
+      }
 
     case BFD_RELOC_AARCH64_TLSDESC_ADD_LO12:
     case BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21:
@@ -6103,7 +6144,8 @@ bad_ifunc_reloc:
 	       + globals->root.sgotplt->output_offset
 	       + globals->sgotplt_jump_table_size);
 
-      value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+      value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						   place, value,
 						   0, weak_undef_p);
       *unresolved_reloc_p = FALSE;
       break;
@@ -6121,7 +6163,8 @@ bad_ifunc_reloc:
       value -= (globals->root.sgot->output_section->vma
 		+ globals->root.sgot->output_offset);
 
-      value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+      value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+						   place, value,
 						   0, weak_undef_p);
       *unresolved_reloc_p = FALSE;
       break;
diff --git a/bfd/elfxx-aarch64.c b/bfd/elfxx-aarch64.c
index 33af6c22e1..1f69280713 100644
--- a/bfd/elfxx-aarch64.c
+++ b/bfd/elfxx-aarch64.c
@@ -395,10 +395,12 @@ _bfd_aarch64_elf_put_addend (bfd *abfd,
 }
 
 bfd_vma
-_bfd_aarch64_elf_resolve_relocation (bfd_reloc_code_real_type r_type,
+_bfd_aarch64_elf_resolve_relocation (bfd *input_bfd,
+				     bfd_reloc_code_real_type r_type,
 				     bfd_vma place, bfd_vma value,
 				     bfd_vma addend, bfd_boolean weak_undef_p)
 {
+  bfd_boolean tls_reloc = TRUE;
   switch (r_type)
     {
     case BFD_RELOC_AARCH64_NONE:
@@ -446,6 +448,8 @@ _bfd_aarch64_elf_resolve_relocation (bfd_reloc_code_real_type r_type,
     case BFD_RELOC_AARCH64_MOVW_G2_NC:
     case BFD_RELOC_AARCH64_MOVW_G2_S:
     case BFD_RELOC_AARCH64_MOVW_G3:
+      tls_reloc = FALSE;
+      /* fall-through.  */
     case BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:
     case BFD_RELOC_AARCH64_TLSDESC_OFF_G1:
     case BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:
@@ -466,6 +470,15 @@ _bfd_aarch64_elf_resolve_relocation (bfd_reloc_code_real_type r_type,
     case BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12:
     case BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12:
     case BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12:
+      /* Weak Symbols and TLS relocations are implementation defined.  For this
+	 case we choose to emit 0.  */
+      if (weak_undef_p && tls_reloc)
+	{
+	  _bfd_error_handler (_("%pB: warning: Weak TLS is implementation "
+				"defined and may not work as expected"),
+				input_bfd);
+	  value = place;
+	}
       value = value + addend;
       break;
 
diff --git a/bfd/elfxx-aarch64.h b/bfd/elfxx-aarch64.h
index 9ab13bb865..f5988529d7 100644
--- a/bfd/elfxx-aarch64.h
+++ b/bfd/elfxx-aarch64.h
@@ -40,8 +40,8 @@ _bfd_aarch64_elf_put_addend (bfd *, bfd_byte *, bfd_reloc_code_real_type,
 			     reloc_howto_type *, bfd_signed_vma);
 
 extern bfd_vma
-_bfd_aarch64_elf_resolve_relocation (bfd_reloc_code_real_type, bfd_vma, bfd_vma,
-				     bfd_vma, bfd_boolean);
+_bfd_aarch64_elf_resolve_relocation (bfd *, bfd_reloc_code_real_type, bfd_vma,
+				     bfd_vma, bfd_vma, bfd_boolean);
 
 extern bfd_boolean
 _bfd_aarch64_elf_grok_prstatus (bfd *, Elf_Internal_Note *);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 4f71ce81bd..ed646acffa 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+2019-08-22  Tamar Christina  <tamar.christina@arm.com>
+
+	PR ld/24601
+	* testsuite/ld-aarch64/aarch64-elf.exp (undef-tls, weak-tls): New.
+	* testsuite/ld-aarch64/undef-tls.d: New test.
+	* testsuite/ld-aarch64/undef-tls.s: New test.
+	* testsuite/ld-aarch64/weak-tls.d: New test.
+	* testsuite/ld-aarch64/weak-tls.s: New test.
+
 2019-08-20  Tamar Christina  <tamar.christina@arm.com>
 
 	* testsuite/ld-arm/cortex-a8-fix-b-plt.d: Update Testcase.
diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp
index ab8d15271c..631fde0f31 100644
--- a/ld/testsuite/ld-aarch64/aarch64-elf.exp
+++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp
@@ -424,3 +424,5 @@ run_dump_test "bti-pac-plt-1"
 run_dump_test "bti-pac-plt-2"
 
 run_dump_test "bti-warn"
+run_dump_test "weak-tls"
+run_dump_test "undef-tls"
diff --git a/ld/testsuite/ld-aarch64/undef-tls.d b/ld/testsuite/ld-aarch64/undef-tls.d
new file mode 100644
index 0000000000..8b43ca4c1d
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/undef-tls.d
@@ -0,0 +1,17 @@
+#source: undef-tls.s
+#ld: -e0 --emit-relocs
+#objdump: -dr
+#...
+#error:.*: in function `get':.*
+#error:.*: undefined reference to `tls'.*
+#error:.*: TLS relocation R_AARCH64_TLSLE_ADD_TPREL_HI12 against undefined symbol `tls'.*
+#error:.*: dangerous relocation: unsupported relocation.*
+#error:.*: undefined reference to `tls'.*
+#error:.*: TLS relocation R_AARCH64_TLSLE_ADD_TPREL_LO12_NC against undefined symbol `tls'.*
+#error:.*: dangerous relocation: unsupported relocation.*
+#error:.*: undefined reference to `dtl'.*
+#error:.*: TLS relocation R_AARCH64_TLSLD_ADD_DTPREL_HI12 against undefined symbol `dtl'.*
+#error:.*: dangerous relocation: unsupported relocation.*
+#error:.*: undefined reference to `dtl'.*
+#error:.*: TLS relocation R_AARCH64_TLSLD_ADD_DTPREL_LO12 against undefined symbol `dtl'.*
+#error:.*: dangerous relocation: unsupported relocation.*
diff --git a/ld/testsuite/ld-aarch64/undef-tls.s b/ld/testsuite/ld-aarch64/undef-tls.s
new file mode 100644
index 0000000000..6d57afbb54
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/undef-tls.s
@@ -0,0 +1,13 @@
+        .global get
+        .type   get, %function
+get:
+.LFB0:
+        mrs     x0, tpidr_el0
+        add     x0, x0, #:tprel_hi12:tls, lsl #12
+        add     x0, x0, #:tprel_lo12_nc:tls
+	add	x0, x0, #:dtprel_hi12:dtl
+	add	x0, x0, #:dtprel_lo12:dtl
+        ret
+.LFE0:
+        .size   get, .-get
+
diff --git a/ld/testsuite/ld-aarch64/weak-tls.d b/ld/testsuite/ld-aarch64/weak-tls.d
new file mode 100644
index 0000000000..a826940689
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/weak-tls.d
@@ -0,0 +1,8 @@
+#source: weak-tls.s
+#ld: -e0 --emit-relocs
+#objdump: -dr
+#...
+#error:.*: warning: Weak TLS is implementation defined and may not work as expected.*
+#error:.*: warning: Weak TLS is implementation defined and may not work as expected.*
+#error:.*: in function `get':.*
+#error:.*: relocation truncated to fit: R_AARCH64_TLSLD_ADD_DTPREL_LO12 against undefined symbol `dtl'.*
diff --git a/ld/testsuite/ld-aarch64/weak-tls.s b/ld/testsuite/ld-aarch64/weak-tls.s
new file mode 100644
index 0000000000..3520a85589
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/weak-tls.s
@@ -0,0 +1,16 @@
+        .global get
+        .type   get, %function
+	.global dtl
+	.weak dtl
+get:
+.LFB0:
+        mrs     x0, tpidr_el0
+        add     x0, x0, #:tprel_hi12:tls, lsl #12
+        add     x0, x0, #:tprel_lo12_nc:tls
+	add	x0, x0, #:dtprel_hi12:dtl
+	add	x0, x0, #:dtprel_lo12:dtl
+        ret
+.LFE0:
+        .size   get, .-get
+        .weak   tls
+


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Remove some dead code from the parser
@ 2019-08-22 12:18 gdb-buildbot
  2019-08-22 13:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-22 12:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 43771869e5021b6bdc02b6eaae103a33c05a821c ***

commit 43771869e5021b6bdc02b6eaae103a33c05a821c
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Thu Aug 22 10:07:00 2019 +0100
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Thu Aug 22 12:34:42 2019 +0100

    gdb/fortran: Remove some dead code from the parser
    
    The Fortran parser contains some code that looks like it was probably
    inherited from the C/C++ parser as it checks to see if the current
    language is C++, which should never be true when we're in the Fortran
    parser.
    
    gdb/ChangeLog:
    
            * f-exp.y (yylex): Remove is_a_field_of_this local variable, and
            all uses as this was never set to anything but a zero value.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 966bfb7d9f..b6d200d3d8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-22  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* f-exp.y (yylex): Remove is_a_field_of_this local variable, and
+	all uses as this was never set to anything but a zero value.
+
 2019-08-21  Bogdan Harjoc  <harjoc@gmail.com>
 
 	* cli/cli-cmds.c (with_command_1): Error out if no arguments.
diff --git a/gdb/f-exp.y b/gdb/f-exp.y
index 14ea3869bb..9784ad57d8 100644
--- a/gdb/f-exp.y
+++ b/gdb/f-exp.y
@@ -1275,7 +1275,6 @@ yylex (void)
   {
     std::string tmp = copy_name (yylval.sval);
     struct block_symbol result;
-    struct field_of_this_result is_a_field_of_this;
     enum domain_enum_tag lookup_domains[] =
     {
       STRUCT_DOMAIN,
@@ -1286,15 +1285,8 @@ yylex (void)
 
     for (int i = 0; i < ARRAY_SIZE (lookup_domains); ++i)
       {
-	/* Initialize this in case we *don't* use it in this call; that
-	   way we can refer to it unconditionally below.  */
-	memset (&is_a_field_of_this, 0, sizeof (is_a_field_of_this));
-
 	result = lookup_symbol (tmp.c_str (), pstate->expression_context_block,
-				lookup_domains[i],
-				pstate->language ()->la_language
-				== language_cplus
-				  ? &is_a_field_of_this : NULL);
+				lookup_domains[i], NULL);
 	if (result.symbol && SYMBOL_CLASS (result.symbol) == LOC_TYPEDEF)
 	  {
 	    yylval.tsym.type = SYMBOL_TYPE (result.symbol);
@@ -1323,14 +1315,14 @@ yylex (void)
 	if (hextype == INT)
 	  {
 	    yylval.ssym.sym = result;
-	    yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
+	    yylval.ssym.is_a_field_of_this = false;
 	    return NAME_OR_INT;
 	  }
       }
     
     /* Any other kind of symbol */
     yylval.ssym.sym = result;
-    yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
+    yylval.ssym.is_a_field_of_this = false;
     return NAME;
   }
 }


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix an illegal memory access when dumping corrupt x86_64 PE unwind data.
@ 2019-08-22 14:33 gdb-buildbot
  2019-08-22 14:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-22 14:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 03da31c6764c1bca9b0b0529344a8ea933c825ea ***

commit 03da31c6764c1bca9b0b0529344a8ea933c825ea
Author:     Nick Clifton <nickc@redhat.com>
AuthorDate: Thu Aug 22 14:37:03 2019 +0100
Commit:     Nick Clifton <nickc@redhat.com>
CommitDate: Thu Aug 22 14:37:03 2019 +0100

    Fix an illegal memory access when dumping corrupt x86_64 PE unwind data.
    
            PR 24922
            * pei-x86_64.c (pex64_xdata_print_uwd_codes): Add checks before
            reading data from extra records.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ef9eee4716..1c08d38908 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-22  Nick Clifton  <nickc@redhat.com>
+
+	PR 24922
+	* pei-x86_64.c (pex64_xdata_print_uwd_codes): Add checks before
+	reading data from extra records.
+
 2019-08-22  Tamar Christina  <tamar.christina@arm.com>
 
 	PR ld/24601
diff --git a/bfd/pei-x86_64.c b/bfd/pei-x86_64.c
index 8a88827b82..2588e6c6e9 100644
--- a/bfd/pei-x86_64.c
+++ b/bfd/pei-x86_64.c
@@ -228,27 +228,41 @@ pex64_xdata_print_uwd_codes (FILE *file, bfd *abfd,
       int unexpected = FALSE;
 
       fprintf (file, "\t  pc+0x%02x: ", (unsigned int) dta[0]);
+
       switch (PEX64_UNWCODE_CODE (dta[1]))
 	{
 	case UWOP_PUSH_NONVOL:
 	  fprintf (file, "push %s", pex_regs[info]);
 	  break;
+
 	case UWOP_ALLOC_LARGE:
 	  if (info == 0)
 	    {
-	      tmp = bfd_get_16 (abfd, &dta[2]) * 8;
+	      if (dta + 4 > ui->rawUnwindCodesEnd)
+		{
+		  fprintf (file, _("warning: corrupt unwind data\n"));
+		  return;
+		}
+	      tmp = bfd_get_16 (abfd, dta + 2) * 8;
 	      i++;
 	    }
 	  else
 	    {
-	      tmp = bfd_get_32 (abfd, &dta[2]);
+	      if (dta + 6 > ui->rawUnwindCodesEnd)
+		{
+		  fprintf (file, _("warning: corrupt unwind data\n"));
+		  return;
+		}
+	      tmp = bfd_get_32 (abfd, dta + 2);
 	      i += 2;
 	    }
 	  fprintf (file, "alloc large area: rsp = rsp - 0x%x", tmp);
 	  break;
+
 	case UWOP_ALLOC_SMALL:
 	  fprintf (file, "alloc small area: rsp = rsp - 0x%x", (info + 1) * 8);
 	  break;
+
 	case UWOP_SET_FPREG:
 	  /* According to the documentation, info field is unused.  */
 	  fprintf (file, "FPReg: %s = rsp + 0x%x (info = 0x%x)",
@@ -257,22 +271,40 @@ pex64_xdata_print_uwd_codes (FILE *file, bfd *abfd,
 	  unexpected = ui->FrameRegister == 0;
 	  save_allowed = FALSE;
 	  break;
+
 	case UWOP_SAVE_NONVOL:
-	  tmp = bfd_get_16 (abfd, &dta[2]) * 8;
+	  if (dta + 4 > ui->rawUnwindCodesEnd)
+	    {
+	      fprintf (file, _("warning: corrupt unwind data\n"));
+	      return;
+	    }
+	  tmp = bfd_get_16 (abfd, dta + 2) * 8;
 	  i++;
 	  fprintf (file, "save %s at rsp + 0x%x", pex_regs[info], tmp);
 	  unexpected = !save_allowed;
 	  break;
+
 	case UWOP_SAVE_NONVOL_FAR:
-	  tmp = bfd_get_32 (abfd, &dta[2]);
+	  if (dta + 6 > ui->rawUnwindCodesEnd)
+	    {
+	      fprintf (file, _("warning: corrupt unwind data\n"));
+	      return;
+	    }
+	  tmp = bfd_get_32 (abfd, dta + 2);
 	  i += 2;
 	  fprintf (file, "save %s at rsp + 0x%x", pex_regs[info], tmp);
 	  unexpected = !save_allowed;
 	  break;
+
 	case UWOP_SAVE_XMM:
 	  if (ui->Version == 1)
 	    {
-	      tmp = bfd_get_16 (abfd, &dta[2]) * 8;
+	      if (dta + 4 > ui->rawUnwindCodesEnd)
+		{
+		  fprintf (file, _("warning: corrupt unwind data\n"));
+		  return;
+		}
+	      tmp = bfd_get_16 (abfd, dta + 2) * 8;
 	      i++;
 	      fprintf (file, "save mm%u at rsp + 0x%x", info, tmp);
 	      unexpected = !save_allowed;
@@ -283,24 +315,43 @@ pex64_xdata_print_uwd_codes (FILE *file, bfd *abfd,
 	      unexpected = TRUE;
 	    }
 	  break;
+
 	case UWOP_SAVE_XMM_FAR:
-	  tmp = bfd_get_32 (abfd, &dta[2]) * 8;
+	  if (dta + 6 > ui->rawUnwindCodesEnd)
+	    {
+	      fprintf (file, _("warning: corrupt unwind data\n"));
+	      return;
+	    }
+	  tmp = bfd_get_32 (abfd, dta + 2) * 8;
 	  i += 2;
 	  fprintf (file, "save mm%u at rsp + 0x%x", info, tmp);
 	  unexpected = !save_allowed;
 	  break;
+
 	case UWOP_SAVE_XMM128:
-	  tmp = bfd_get_16 (abfd, &dta[2]) * 16;
+	  if (dta + 4 > ui->rawUnwindCodesEnd)
+	    {
+	      fprintf (file, _("warning: corrupt unwind data\n"));
+	      return;
+	    }
+	  tmp = bfd_get_16 (abfd, dta + 2) * 16;
 	  i++;
 	  fprintf (file, "save xmm%u at rsp + 0x%x", info, tmp);
 	  unexpected = !save_allowed;
 	  break;
+
 	case UWOP_SAVE_XMM128_FAR:
-	  tmp = bfd_get_32 (abfd, &dta[2]) * 16;
+	  if (dta + 6 > ui->rawUnwindCodesEnd)
+	    {
+	      fprintf (file, _("warning: corrupt unwind data\n"));
+	      return;
+	    }
+	  tmp = bfd_get_32 (abfd, dta + 2) * 16;
 	  i += 2;
 	  fprintf (file, "save xmm%u at rsp + 0x%x", info, tmp);
 	  unexpected = !save_allowed;
 	  break;
+
 	case UWOP_PUSH_MACHFRAME:
 	  fprintf (file, "interrupt entry (SS, old RSP, EFLAGS, CS, RIP");
 	  if (info == 0)
@@ -310,11 +361,13 @@ pex64_xdata_print_uwd_codes (FILE *file, bfd *abfd,
 	  else
 	    fprintf (file, ", unknown(%u))", info);
 	  break;
+
 	default:
 	  /* PR 17512: file: 2245-7442-0.004.  */
 	  fprintf (file, _("Unknown: %x"), PEX64_UNWCODE_CODE (dta[1]));
 	  break;
-      }
+	}
+
       if (unexpected)
 	fprintf (file, " [Unexpected!]");
       fputc ('\n', file);


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Arm: Add support for missing CPUs
@ 2019-08-22 15:14 gdb-buildbot
  2019-08-22 16:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-22 15:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0535e5d74d6164c49473fe0ce89213aa2b6270b8 ***

commit 0535e5d74d6164c49473fe0ce89213aa2b6270b8
Author:     Dennis Zhang <dennis.zhang@arm.com>
AuthorDate: Thu Aug 22 15:21:32 2019 +0100
Commit:     Tamar Christina <tamar.christina@arm.com>
CommitDate: Thu Aug 22 15:35:43 2019 +0100

    Arm: Add support for missing CPUs
    
    This patch adds support for following CPUs:
    Cortex-M35P, Cortex-A77, Cortex-A76AE.
    
    Related specifications can be found at https://developer.arm.com/ip-products/processors.
    
    gas/ChangeLog:
    
            * config/tc-arm.c: New entries for Cortex-M35P, Cortex-A77,
            and Cortex-A76AE.
            * doc/c-arm.texi: Document new processors.
            * testsuite/gas/arm/cpu-cortex-a76ae.d: New test.
            * testsuite/gas/arm/cpu-cortex-a77.d: New test.
            * testsuite/gas/arm/cpu-cortex-m35p.d: New test.
    
    bfd/ChangeLog:
    
            * cpu-arm.c: New entries for Cortex-M35P, Cortex-A77, Cortex-A76AE.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1c08d38908..0eb514d314 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-22  Dennis Zhang  <dennis.zhang@arm.com>
+
+	* cpu-arm.c: New entries for Cortex-M35P, Cortex-A77, Cortex-A76AE.
+
 2019-08-22  Nick Clifton  <nickc@redhat.com>
 
 	PR 24922
diff --git a/bfd/cpu-arm.c b/bfd/cpu-arm.c
index 5a5da93cb4..8d70b84b8b 100644
--- a/bfd/cpu-arm.c
+++ b/bfd/cpu-arm.c
@@ -147,12 +147,15 @@ processors[] =
   { bfd_mach_arm_8,	  "cortex-a73"	    },
   { bfd_mach_arm_8,	  "cortex-a75"	    },
   { bfd_mach_arm_8,	  "cortex-a76"	    },
+  { bfd_mach_arm_8,	  "cortex-a76ae"    },
+  { bfd_mach_arm_8,	  "cortex-a77"	    },
   { bfd_mach_arm_6SM,	  "cortex-m0"	    },
   { bfd_mach_arm_6SM,	  "cortex-m0plus"   },
   { bfd_mach_arm_6SM,	  "cortex-m1"	    },
   { bfd_mach_arm_8M_BASE, "cortex-m23"	    },
   { bfd_mach_arm_7,	  "cortex-m3"	    },
   { bfd_mach_arm_8M_MAIN, "cortex-m33"	    },
+  { bfd_mach_arm_8M_MAIN, "cortex-m35p"	    },
   { bfd_mach_arm_7EM,	  "cortex-m4"	    },
   { bfd_mach_arm_7EM,	  "cortex-m7"	    },
   { bfd_mach_arm_7,	  "cortex-r4"	    },
diff --git a/gas/ChangeLog b/gas/ChangeLog
index bd9887e424..4d6b571a42 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,12 @@
+2019-08-22  Dennis Zhang  <dennis.zhang@arm.com>
+
+	* config/tc-arm.c: New entries for Cortex-M35P, Cortex-A77,
+	and Cortex-A76AE.
+	* doc/c-arm.texi: Document new processors.
+	* testsuite/gas/arm/cpu-cortex-a76ae.d: New test.
+	* testsuite/gas/arm/cpu-cortex-a77.d: New test.
+	* testsuite/gas/arm/cpu-cortex-m35p.d: New test.
+
 2019-08-22  Bosco Garca  <jbgg.gnu@gmail.com>
 	    Nick Clifton  <nickc@redhat.com>
 
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index c58748dfaa..27c6f0e52f 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -30591,6 +30591,12 @@ static const struct arm_cpu_option_table arm_cpus[] =
   ARM_CPU_OPT ("cortex-a76",    "Cortex-A76",	       ARM_ARCH_V8_2A,
 	       ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
 	       FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD),
+  ARM_CPU_OPT ("cortex-a76ae",    "Cortex-A76AE",      ARM_ARCH_V8_2A,
+	       ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+	       FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD),
+  ARM_CPU_OPT ("cortex-a77",    "Cortex-A77",	       ARM_ARCH_V8_2A,
+	       ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+	       FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD),
   ARM_CPU_OPT ("ares",    "Ares",	       ARM_ARCH_V8_2A,
 	       ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
 	       FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD),
@@ -30612,6 +30618,9 @@ static const struct arm_cpu_option_table arm_cpus[] =
   ARM_CPU_OPT ("cortex-r52",	  "Cortex-R52",	       ARM_ARCH_V8R,
 	      ARM_FEATURE_COPROC (CRC_EXT_ARMV8),
 	      FPU_ARCH_NEON_VFP_ARMV8),
+  ARM_CPU_OPT ("cortex-m35p",	  "Cortex-M35P",       ARM_ARCH_V8M_MAIN,
+	       ARM_FEATURE_CORE_LOW (ARM_EXT_V5ExP | ARM_EXT_V6_DSP),
+	       FPU_NONE),
   ARM_CPU_OPT ("cortex-m33",	  "Cortex-M33",	       ARM_ARCH_V8M_MAIN,
 	       ARM_FEATURE_CORE_LOW (ARM_EXT_V5ExP | ARM_EXT_V6_DSP),
 	       FPU_NONE),
diff --git a/gas/doc/c-arm.texi b/gas/doc/c-arm.texi
index 481eddf0cf..175de8eae1 100644
--- a/gas/doc/c-arm.texi
+++ b/gas/doc/c-arm.texi
@@ -129,6 +129,8 @@ recognized:
 @code{cortex-a73},
 @code{cortex-a75},
 @code{cortex-a76},
+@code{cortex-a76ae},
+@code{cortex-a77},
 @code{ares},
 @code{cortex-r4},
 @code{cortex-r4f},
@@ -136,6 +138,7 @@ recognized:
 @code{cortex-r7},
 @code{cortex-r8},
 @code{cortex-r52},
+@code{cortex-m35p},
 @code{cortex-m33},
 @code{cortex-m23},
 @code{cortex-m7},
diff --git a/gas/testsuite/gas/arm/cpu-cortex-a76ae.d b/gas/testsuite/gas/arm/cpu-cortex-a76ae.d
new file mode 100644
index 0000000000..7f7cf2952c
--- /dev/null
+++ b/gas/testsuite/gas/arm/cpu-cortex-a76ae.d
@@ -0,0 +1,6 @@
+# name: Assemble and dump for cortex-a76ae CPU
+# source: nop-asm.s
+# as: -mcpu=cortex-a76ae
+# objdump: -d -mcortex-a76ae
+
+#...
diff --git a/gas/testsuite/gas/arm/cpu-cortex-a77.d b/gas/testsuite/gas/arm/cpu-cortex-a77.d
new file mode 100644
index 0000000000..caff73fe07
--- /dev/null
+++ b/gas/testsuite/gas/arm/cpu-cortex-a77.d
@@ -0,0 +1,6 @@
+# name: Assemble and dump for cortex-a77 CPU
+# source: nop-asm.s
+# as: -mcpu=cortex-a77
+# objdump: -d -mcortex-a77
+
+#...
diff --git a/gas/testsuite/gas/arm/cpu-cortex-m35p.d b/gas/testsuite/gas/arm/cpu-cortex-m35p.d
new file mode 100644
index 0000000000..f60339f662
--- /dev/null
+++ b/gas/testsuite/gas/arm/cpu-cortex-m35p.d
@@ -0,0 +1,6 @@
+# name: Assemble and dump for cortex-m35p CPU
+# source: nop-asm.s
+# as: -mcpu=cortex-m35p
+# objdump: -d -M force-thumb -mcortex-m35p
+
+#...


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Make gdb_test message more informative in multi-term-settings.exp
@ 2019-08-22 16:40 gdb-buildbot
  2019-08-22 18:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-22 16:40 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 395fad095c9cbc5a8b10557443da981cc3f61885 ***

commit 395fad095c9cbc5a8b10557443da981cc3f61885
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Aug 22 16:54:59 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Thu Aug 22 16:54:59 2019 +0200

    [gdb/testsuite] Make gdb_test message more informative in multi-term-settings.exp
    
    This racy fail message, reported in PR24929:
    ...
    FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: \
      stop with control-c
    ...
    does not make clear which gdb_test fails here:
    ...
        if {$expect_ttou} {
           gdb_test "" "Quit" "stop with control-c"
        } else {
           gdb_test "" "received signal SIGINT.*" "stop with control-c"
        }
    ...
    
    Fix this by making the gdb_test message argument more informative.
    
    Tested on x86_64-linux.
    
    gdb/testsuite/ChangeLog:
    
    2019-08-22  Tom de Vries  <tdevries@suse.de>
    
            * gdb.multi/multi-term-settings.exp (coretest): Make gdb_test messages
            more informative.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index e56cc16628..639bea20e7 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-22  Tom de Vries  <tdevries@suse.de>
+
+	* gdb.multi/multi-term-settings.exp (coretest): Make gdb_test messages
+	more informative.
+
 2019-08-21  Pedro Alves  <palves@redhat.com>
 
 	* gdb.base/with.exp: Test "with" with no arguments.
diff --git a/gdb/testsuite/gdb.multi/multi-term-settings.exp b/gdb/testsuite/gdb.multi/multi-term-settings.exp
index fd3883b692..1c550aaa2e 100644
--- a/gdb/testsuite/gdb.multi/multi-term-settings.exp
+++ b/gdb/testsuite/gdb.multi/multi-term-settings.exp
@@ -212,9 +212,9 @@ proc coretest {inf1_how inf2_how} {
 
     send_gdb "\003"
     if {$expect_ttou} {
-	gdb_test "" "Quit" "stop with control-c"
+	gdb_test "" "Quit" "stop with control-c (Quit)"
     } else {
-	gdb_test "" "received signal SIGINT.*" "stop with control-c"
+	gdb_test "" "received signal SIGINT.*" "stop with control-c (SIGINT)"
     }
 
     # Useful for debugging in case the Ctrl-C above fails.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make GDB compile with Python 3 on MinGW
@ 2019-08-22 23:24 gdb-buildbot
  2019-08-23  4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-22 23:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 272044897e178835f596c96740c5a1800ec6f9fb ***

commit 272044897e178835f596c96740c5a1800ec6f9fb
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Aug 13 14:48:05 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Thu Aug 22 17:44:58 2019 -0500

    Make GDB compile with Python 3 on MinGW
    
    PyFile_FromString and PyFile_AsFile have been removed in Python 3.
    There is no obvious replacement that works here, and we can't just
    pass our FILE* to a DLL in Windows because it may use a different
    C runtime.
    
    So we just call a Python function which reads and executes file
    contents. Care must be taken to execute it in the context of
    __main__.
    
    Tested by inverting the ifdef and running the testsuite on Debian
    Linux (even without the patch, I failed at running the testsuite
    on Windows). I did test with both Python 2 and 3.
    
    gdb/ChangeLog:
    
    2019-08-22  Christian Biesinger  <cbiesinger@google.com>
    
            * python/lib/gdb/__init__.py (_execute_file): New function.
            * python/python.c (python_run_simple_file): Call gdb._execute_file
            on Windows.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b6d200d3d8..ac84245c34 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-22  Christian Biesinger  <cbiesinger@google.com>
+
+	* python/lib/gdb/__init__.py (_execute_file): New function.
+	* python/python.c (python_run_simple_file): Call gdb._execute_file
+	on Windows.
+
 2019-08-22  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* f-exp.y (yylex): Remove is_a_field_of_this local variable, and
diff --git a/gdb/python/lib/gdb/__init__.py b/gdb/python/lib/gdb/__init__.py
index 8af9e47117..9c23970f39 100644
--- a/gdb/python/lib/gdb/__init__.py
+++ b/gdb/python/lib/gdb/__init__.py
@@ -106,6 +106,32 @@ def _execute_unwinders(pending_frame):
 
     return None
 
+def _execute_file(filepath):
+    """This function is used to replace Python 2's PyRun_SimpleFile.
+
+    Loads and executes the given file.
+
+    We could use the runpy module, but its documentation says:
+    "Furthermore, any functions and classes defined by the executed code are
+    not guaranteed to work correctly after a runpy function has returned."
+    """
+    globals = sys.modules['__main__'].__dict__
+    set_file = False
+    # Set file (if not set) so that the imported file can use it (e.g. to
+    # access file-relative paths). This matches what PyRun_SimpleFile does.
+    if not hasattr(globals, '__file__'):
+        globals['__file__'] = filepath
+        set_file = True
+    try:
+        with open(filepath, 'rb') as file:
+            # We pass globals also as locals to match what Python does
+            # in PyRun_SimpleFile.
+            compiled = compile(file.read(), filepath, 'exec')
+            exec(compiled, globals, globals)
+    finally:
+        if set_file:
+            del globals['__file__']
+
 
 # Convenience variable to GDB's python directory
 PYTHONDIR = os.path.dirname(os.path.dirname(__file__))
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 162470dcc0..cca7c4cd6b 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -323,9 +323,8 @@ python_interactive_command (const char *arg, int from_tty)
    A FILE * from one runtime does not necessarily operate correctly in
    the other runtime.
 
-   To work around this potential issue, we create on Windows hosts the
-   FILE object using Python routines, thus making sure that it is
-   compatible with the Python library.  */
+   To work around this potential issue, we run code in Python to load
+   the script.  */
 
 static void
 python_run_simple_file (FILE *file, const char *filename)
@@ -339,15 +338,21 @@ python_run_simple_file (FILE *file, const char *filename)
   /* Because we have a string for a filename, and are using Python to
      open the file, we need to expand any tilde in the path first.  */
   gdb::unique_xmalloc_ptr<char> full_path (tilde_expand (filename));
-  gdbpy_ref<> python_file (PyFile_FromString (full_path.get (), (char *) "r"));
-  if (python_file == NULL)
+
+  if (gdb_python_module == nullptr
+      || ! PyObject_HasAttrString (gdb_python_module, "_execute_file"))
+    error (_("Installation error: gdb._execute_file function is missing"));
+
+  gdbpy_ref<> return_value
+    (PyObject_CallMethod (gdb_python_module, "_execute_file", "s",
+			  full_path.get ()));
+  if (return_value == nullptr)
     {
-      gdbpy_print_stack ();
-      error (_("Error while opening file: %s"), full_path.get ());
+      /* Use PyErr_PrintEx instead of gdbpy_print_stack to better match the
+         behavior of the non-Windows codepath.  */
+      PyErr_PrintEx(0);
     }
 
-  PyRun_SimpleFile (PyFile_AsFile (python_file.get ()), filename);
-
 #endif /* _WIN32 */
 }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24933, Memory leak in elf_x86_64_get_synthetic_symtab
@ 2019-08-23 10:41 gdb-buildbot
  2019-08-23 12:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-23 10:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2600d80ccd04666f28608364be74d7ee552977ae ***

commit 2600d80ccd04666f28608364be74d7ee552977ae
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Fri Aug 23 19:16:25 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Fri Aug 23 19:29:51 2019 +0930

    PR24933, Memory leak in elf_x86_64_get_synthetic_symtab
    
            PR 24933
            * elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Don't exit
            on error without freeing plts[] contents.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0eb514d314..b39acb19b2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-23  Alan Modra  <amodra@gmail.com>
+
+	PR 24933
+	* elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Don't exit
+	on error without freeing plts[] contents.
+
 2019-08-22  Dennis Zhang  <dennis.zhang@arm.com>
 
 	* cpu-arm.c: New entries for Cortex-M35P, Cortex-A77, Cortex-A76AE.
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 78ed41ad38..634f911ca5 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2171,17 +2171,18 @@ _bfd_x86_elf_get_synthetic_symtab (bfd *abfd,
 			      bfd_vma);
   bfd_boolean (*valid_plt_reloc_p) (unsigned int);
 
+  dynrelbuf = NULL;
   if (count == 0)
-    return -1;
+    goto bad_return;
 
   dynrelbuf = (arelent **) bfd_malloc (relsize);
   if (dynrelbuf == NULL)
-    return -1;
+    goto bad_return;
 
   dynrelcount = bfd_canonicalize_dynamic_reloc (abfd, dynrelbuf,
 						dynsyms);
   if (dynrelcount <= 0)
-    return -1;
+    goto bad_return;
 
   /* Sort the relocs by address.  */
   qsort (dynrelbuf, dynrelcount, sizeof (arelent *),


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Stop the BFD library from failing when encountering a second set of relocs for the same section.
@ 2019-08-23 13:01 gdb-buildbot
  2019-08-23 13:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-23 13:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a7ba389645d178c43100ec47e513389ae8bf8f93 ***

commit a7ba389645d178c43100ec47e513389ae8bf8f93
Author:     Nick Clifton <nickc@redhat.com>
AuthorDate: Fri Aug 23 13:22:02 2019 +0100
Commit:     Nick Clifton <nickc@redhat.com>
CommitDate: Fri Aug 23 13:22:02 2019 +0100

    Stop the BFD library from failing when encountering a second set of relocs for the same section.
    
            PR 24456
            * elf.c (bfd_section_from_shdr): Issue an informative warning
            message and continue processing other sections after encountering
            a reloc section for a section which already has other relocs
            associated with it.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index b39acb19b2..00afa81398 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-23  Nick Clifton  <nickc@redhat.com>
+
+	PR 24456
+	* elf.c (bfd_section_from_shdr): Issue an informative warning
+	message and continue processing other sections after encountering
+	a reloc section for a section which already has other relocs
+	associated with it.
+
 2019-08-23  Alan Modra  <amodra@gmail.com>
 
 	PR 24933
diff --git a/bfd/elf.c b/bfd/elf.c
index 42ae1627ba..5a061c9110 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -2466,9 +2466,18 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex)
 	else
 	  p_hdr = &esdt->rel.hdr;
 
-	/* PR 17512: file: 0b4f81b7.  */
+	/* PR 17512: file: 0b4f81b7.
+	   Also see PR 24456, for a file which deliberately has two reloc
+	   sections.  */
 	if (*p_hdr != NULL)
-	  goto fail;
+	  {
+	    _bfd_error_handler
+	      /* xgettext:c-format */
+	      (_("%pB: warning: multiple relocation sections for section %pA \
+found - ignoring all but the first"),
+	       abfd, target_sect);
+	    goto success;
+	  }
 	hdr2 = (Elf_Internal_Shdr *) bfd_alloc (abfd, sizeof (*hdr2));
 	if (hdr2 == NULL)
 	  goto fail;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] or1k: Fix incorrect value in PLT GOT entries, causing infinite loop
@ 2019-08-23 14:14 gdb-buildbot
  2019-08-23 15:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-23 14:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 09f7b0de537d465fc8ed9f9433e348c1bc78aab2 ***

commit 09f7b0de537d465fc8ed9f9433e348c1bc78aab2
Author:     Stafford Horne <shorne@gmail.com>
AuthorDate: Fri Aug 23 22:25:55 2019 +0900
Commit:     Stafford Horne <shorne@gmail.com>
CommitDate: Fri Aug 23 22:25:55 2019 +0900

    or1k: Fix incorrect value in PLT GOT entries, causing infinite loop
    
    The PLT GOT entry should point to the first PLT entry which contains the
    runtime linker function.  It was pointing back to the symbol PLT entry
    causing an infinite loop.
    
    I found this when testing the OpenRISC glibc port which uses the runtime
    dynamic linker.  It seems other libc's we use so far have not been
    making use of the initial PLT GOT entries.
    
    bfd/ChangeLog:
    
            * elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Use correct value for
            PLT GOT entries.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 00afa81398..981e0cd4e9 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-23  Stafford Horne  <shorne@gmail.com>
+
+	* elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Use correct value for
+	PLT GOT entries.
+
 2019-08-23  Nick Clifton  <nickc@redhat.com>
 
 	PR 24456
diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c
index c2069a3180..0d1336ceac 100644
--- a/bfd/elf32-or1k.c
+++ b/bfd/elf32-or1k.c
@@ -2377,8 +2377,11 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd,
       or1k_write_plt_entry (output_bfd, splt->contents + h->plt.offset,
 			    plt0, plt1, plt2, OR1K_JR(12));
 
-      /* Fill in the entry in the global offset table.  */
-      bfd_put_32 (output_bfd, plt_addr, sgot->contents + got_offset);
+      /* Fill in the entry in the global offset table.  We initialize it to
+	 point to the top of the plt.  This is done to lazy lookup the actual
+	 symbol as the first plt entry will be setup by libc to call the
+	 runtime dynamic linker.  */
+      bfd_put_32 (output_bfd, plt_base_addr, sgot->contents + got_offset);
 
       /* Fill in the entry in the .rela.plt section.  */
       rela.r_offset = got_addr;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix bug in nios2 prologue analysis.
@ 2019-08-23 16:00 gdb-buildbot
  2019-08-23 17:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-23 16:00 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT de8af80891ff0eee61cd219b316e176e9ae88e91 ***

commit de8af80891ff0eee61cd219b316e176e9ae88e91
Author:     Sandra Loosemore <sandra@codesourcery.com>
AuthorDate: Fri Aug 23 08:18:54 2019 -0700
Commit:     Sandra Loosemore <sandra@codesourcery.com>
CommitDate: Fri Aug 23 08:18:54 2019 -0700

    Fix bug in nios2 prologue analysis.
    
    The nios2 prologue analyzer was mistakenly using an unsigned int field
    to represent a 32-bit signed value.  This caused problems with an
    incorrect conversion being applied to negative values when they were
    automatically promoted for addition to a 64-bit CORE_ADDR value.
    
    This patch fixes test failures in gdb.base/large-frame.exp and
    gdb.dwarf2/dw2-ref-missing-frame.exp.  Normally the nios2 backend
    prefers to use the dwarf2 unwinder so the prologue analyzer is only
    invoked if there is no dwarf2 information.
    
    2019-08-23  Sandra Loosemore  <sandra@codesourcery.com>
    
            gdb/
            * nios2-tdep.c (struct reg_value): Improve comments.  Make
            the offset field signed.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ac84245c34..df8488b109 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-23  Sandra Loosemore  <sandra@codesourcery.com>
+
+	* nios2-tdep.c (struct reg_value): Improve comments.  Make
+	the offset field signed.
+
 2019-08-22  Christian Biesinger  <cbiesinger@google.com>
 
 	* python/lib/gdb/__init__.py (_execute_file): New function.
diff --git a/gdb/nios2-tdep.c b/gdb/nios2-tdep.c
index 2a21c33b83..8d685d4aca 100644
--- a/gdb/nios2-tdep.c
+++ b/gdb/nios2-tdep.c
@@ -58,13 +58,15 @@ static int nios2_debug = 0;
    analysis; see the reg_value and reg_saved tables in
    struct nios2_unwind_cache, respectively.  */
 
-/* struct reg_value is used to record that a register has the same value
-   as reg at the given offset from the start of a function.  */
+/* struct reg_value is used to record that a register has reg's initial
+   value at the start of a function plus the given constant offset.
+   If reg == 0, then the value is just the offset.
+   If reg < 0, then the value is unknown.  */
 
 struct reg_value
 {
   int reg;
-  unsigned int offset;
+  int offset;
 };
 
 /* struct reg_saved is used to record that a register value has been saved at


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move gdb-dlfcn.[ch] to gdbsupport/
@ 2019-08-23 18:28 gdb-buildbot
  2019-08-24  0:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-23 18:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2d41fa1165c0e28d938ee3bae5c32db371dccf29 ***

commit 2d41fa1165c0e28d938ee3bae5c32db371dccf29
Author:     Sergio Durigan Junior <sergiodj@redhat.com>
AuthorDate: Wed Aug 21 16:22:45 2019 -0400
Commit:     Sergio Durigan Junior <sergiodj@redhat.com>
CommitDate: Fri Aug 23 13:13:18 2019 -0400

    Move gdb-dlfcn.[ch] to gdbsupport/
    
    I need to use 'gdb_dlopen' inside 'gdbsupport/', but it's not yet
    supported there.  This commit moves 'gdb-dlfcn.[ch]' to 'gdbsupport/',
    which makes it available also on gdbserver.
    
    gdb/ChangeLog:
    2019-08-23  Sergio Durigan Junior  <sergiodj@redhat.com>
    
            * configure.ac: Don't check for 'dlfcn.h' (moved to
            gdbsupport/common.m4).
            * Makefile.in (COMMON_SFILES): Move 'gdb-dlfcn.c' to
            'gdbsupport/'.
            (HFILES_NO_SRCDIR): Likewise, for 'gdb-dlfcn.h'.
            * compile/compile-c-support.c: Include
            'gdbsupport/gdb-dlfcn.h'.
            * gdbsupport/common.m4: Check for 'dlfcn.h'.
            * gdb-dlfcn.c: Move to...
            * gdbsupport/gdb-dlfcn.c: ... here.
            * gdb-dlfcn.h: Move to...
            * gdbsupport/gdb-dlfcn.h: ... here.
    
    gdb/gdbserver/ChangeLog:
    2019-08-23  Sergio Durigan Junior  <sergiodj@redhat.com>
    
            * Makefile.in (SFILES): Add 'gdbsupport/gdb-dlfcn.c'.
            (OBS): Add 'gdbsupport/gdb-dlfcn.o'.
            * config.in: Regenerate.
            * configure: Regenerate.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index df8488b109..1d85249789 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,18 @@
+2019-08-23  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* configure.ac: Don't check for 'dlfcn.h' (moved to
+	gdbsupport/common.m4).
+	* Makefile.in (COMMON_SFILES): Move 'gdb-dlfcn.c' to
+	'gdbsupport/'.
+	(HFILES_NO_SRCDIR): Likewise, for 'gdb-dlfcn.h'.
+	* compile/compile-c-support.c: Include
+	'gdbsupport/gdb-dlfcn.h'.
+	* gdbsupport/common.m4: Check for 'dlfcn.h'.
+	* gdb-dlfcn.c: Move to...
+	* gdbsupport/gdb-dlfcn.c: ... here.
+	* gdb-dlfcn.h: Move to...
+	* gdbsupport/gdb-dlfcn.h: ... here.
+
 2019-08-23  Sandra Loosemore  <sandra@codesourcery.com>
 
 	* nios2-tdep.c (struct reg_value): Improve comments.  Make
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index d5d095aae4..e7e26a44a0 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -964,6 +964,7 @@ COMMON_SFILES = \
 	gdbsupport/filestuff.c \
 	gdbsupport/format.c \
 	gdbsupport/job-control.c \
+	gdbsupport/gdb-dlfcn.c \
 	gdbsupport/gdb_tilde_expand.c \
 	gdbsupport/gdb_vecs.c \
 	gdbsupport/netstuff.c \
@@ -1028,7 +1029,6 @@ COMMON_SFILES = \
 	frame-unwind.c \
 	gcore.c \
 	gdb_bfd.c \
-	gdb-dlfcn.c \
 	gdb_obstack.c \
 	gdb_regex.c \
 	gdb_usleep.c \
@@ -1262,7 +1262,6 @@ HFILES_NO_SRCDIR = \
 	gcore.h \
 	gdb_bfd.h \
 	gdb_curses.h \
-	gdb-dlfcn.h \
 	gdb_expat.h \
 	gdb_obstack.h \
 	gdb_proc_service.h \
@@ -1460,6 +1459,7 @@ HFILES_NO_SRCDIR = \
 	gdbsupport/environ.h \
 	gdbsupport/fileio.h \
 	gdbsupport/format.h \
+	gdbsupport/gdb-dlfcn.h \
 	gdbsupport/gdb_assert.h \
 	gdbsupport/gdb_tilde_expand.h \
 	gdbsupport/gdb_locale.h \
diff --git a/gdb/compile/compile-c-support.c b/gdb/compile/compile-c-support.c
index a6727e83af..9de827a72c 100644
--- a/gdb/compile/compile-c-support.c
+++ b/gdb/compile/compile-c-support.c
@@ -22,12 +22,12 @@
 #include "compile-c.h"
 #include "compile-cplus.h"
 #include "compile.h"
-#include "gdb-dlfcn.h"
 #include "c-lang.h"
 #include "macrotab.h"
 #include "macroscope.h"
 #include "regcache.h"
 #include "gdbsupport/function-view.h"
+#include "gdbsupport/gdb-dlfcn.h"
 #include "gdbsupport/preprocessor.h"
 #include "gdbarch.h"
 
diff --git a/gdb/configure b/gdb/configure
index cb71bbf057..22a5f6051d 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -12024,8 +12024,7 @@ for ac_header in nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
 		  sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
 		  sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
 		  sys/reg.h sys/debugreg.h sys/select.h \
-		  termios.h elf_hp.h \
-		  dlfcn.h
+		  termios.h elf_hp.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -13516,7 +13515,7 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
   fi
 
 
-  for ac_header in linux/perf_event.h locale.h memory.h signal.h 		   sys/resource.h sys/socket.h 		   sys/un.h sys/wait.h 		   thread_db.h wait.h 		   termios.h
+  for ac_header in linux/perf_event.h locale.h memory.h signal.h 		   sys/resource.h sys/socket.h 		   sys/un.h sys/wait.h 		   thread_db.h wait.h 		   termios.h 		   dlfcn.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 5a18c16405..9da8818fb5 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1308,8 +1308,7 @@ AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
 		  sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
 		  sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
 		  sys/reg.h sys/debugreg.h sys/select.h \
-		  termios.h elf_hp.h \
-		  dlfcn.h])
+		  termios.h elf_hp.h])
 AC_CHECK_HEADERS(sys/user.h, [], [],
 [#if HAVE_SYS_PARAM_H
 # include <sys/param.h>
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index adac3e8c8d..faafdfd967 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,10 @@
+2019-08-23  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (SFILES): Add 'gdbsupport/gdb-dlfcn.c'.
+	(OBS): Add 'gdbsupport/gdb-dlfcn.o'.
+	* config.in: Regenerate.
+	* configure: Regenerate.
+
 2019-08-15  Tom Tromey  <tromey@adacore.com>
 
 	* target.c (target_write_memory): Use gdb::byte_vector.
diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
index ba0356b1d5..ca0a4cbd10 100644
--- a/gdb/gdbserver/Makefile.in
+++ b/gdb/gdbserver/Makefile.in
@@ -210,6 +210,7 @@ SFILES = \
 	$(srcdir)/gdbsupport/fileio.c \
 	$(srcdir)/gdbsupport/filestuff.c \
 	$(srcdir)/gdbsupport/job-control.c \
+	$(srcdir)/gdbsupport/gdb-dlfcn.c \
 	$(srcdir)/gdbsupport/gdb_tilde_expand.c \
 	$(srcdir)/gdbsupport/gdb_vecs.c \
 	$(srcdir)/gdbsupport/netstuff.c \
@@ -255,6 +256,7 @@ OBS = \
 	gdbsupport/fileio.o \
 	gdbsupport/filestuff.o \
 	gdbsupport/format.o \
+	gdbsupport/gdb-dlfcn.o \
 	gdbsupport/gdb_tilde_expand.o \
 	gdbsupport/gdb_vecs.o \
 	gdbsupport/netstuff.o \
diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in
index 3991964f9b..f05e9be48a 100644
--- a/gdb/gdbserver/config.in
+++ b/gdb/gdbserver/config.in
@@ -90,6 +90,9 @@
 /* Define to 1 if you have the `dladdr' function. */
 #undef HAVE_DLADDR
 
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
 /* Define to 1 if the system has the type `Elf32_auxv_t'. */
 #undef HAVE_ELF32_AUXV_T
 
diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure
index 7e5be51cb2..692cb0f308 100755
--- a/gdb/gdbserver/configure
+++ b/gdb/gdbserver/configure
@@ -6807,7 +6807,7 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
   fi
 
 
-  for ac_header in linux/perf_event.h locale.h memory.h signal.h 		   sys/resource.h sys/socket.h 		   sys/un.h sys/wait.h 		   thread_db.h wait.h 		   termios.h
+  for ac_header in linux/perf_event.h locale.h memory.h signal.h 		   sys/resource.h sys/socket.h 		   sys/un.h sys/wait.h 		   thread_db.h wait.h 		   termios.h 		   dlfcn.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
diff --git a/gdb/gdbsupport/common.m4 b/gdb/gdbsupport/common.m4
index 5701dd9829..903889463f 100644
--- a/gdb/gdbsupport/common.m4
+++ b/gdb/gdbsupport/common.m4
@@ -29,7 +29,8 @@ AC_DEFUN([GDB_AC_COMMON], [
 		   sys/resource.h sys/socket.h dnl
 		   sys/un.h sys/wait.h dnl
 		   thread_db.h wait.h dnl
-		   termios.h)
+		   termios.h dnl
+		   dlfcn.h)
 
   AC_CHECK_FUNCS([fdwalk getrlimit pipe pipe2 socketpair sigaction])
 
diff --git a/gdb/gdb-dlfcn.c b/gdb/gdbsupport/gdb-dlfcn.c
similarity index 99%
rename from gdb/gdb-dlfcn.c
rename to gdb/gdbsupport/gdb-dlfcn.c
index 4d060d4eb1..921f10f3d8 100644
--- a/gdb/gdb-dlfcn.c
+++ b/gdb/gdbsupport/gdb-dlfcn.c
@@ -17,7 +17,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "defs.h"
+#include "common-defs.h"
 #include "gdb-dlfcn.h"
 
 #ifdef HAVE_DLFCN_H
diff --git a/gdb/gdb-dlfcn.h b/gdb/gdbsupport/gdb-dlfcn.h
similarity index 100%
rename from gdb/gdb-dlfcn.h
rename to gdb/gdbsupport/gdb-dlfcn.h
diff --git a/gdb/jit.c b/gdb/jit.c
index 87f8d8f885..5fef03700c 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -36,7 +36,7 @@
 #include "symfile.h"
 #include "symtab.h"
 #include "target.h"
-#include "gdb-dlfcn.h"
+#include "gdbsupport/gdb-dlfcn.h"
 #include <sys/stat.h>
 #include "gdb_bfd.h"
 #include "readline/tilde.h"


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC64 segfault in ppc64_elf_edit_toc
@ 2019-08-24  1:17 gdb-buildbot
  2019-08-24 22:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-24  1:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6d5554a605a8ce908ba04b00fd960d02ca9fc613 ***

commit 6d5554a605a8ce908ba04b00fd960d02ca9fc613
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Sat Aug 24 09:59:03 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Sat Aug 24 10:05:40 2019 +0930

    PowerPC64 segfault in ppc64_elf_edit_toc
    
    Found on a GOT reference to __ehdr_start, which is tweaked to be
    undefined weak at some stages of linking.  SYMBOL_REFERENCES_LOCAL
    isn't a sufficient test.
    
            * elf64-ppc.c (ppc64_elf_edit_toc): Exclude undefined weak
            symbols from GOT optimisation.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 981e0cd4e9..9f7a8cfc6a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-24  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_edit_toc): Exclude undefined weak
+	symbols from GOT optimisation.
+
 2019-08-23  Stafford Horne  <shorne@gmail.com>
 
 	* elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Use correct value for
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 60918d91a1..4eba829450 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -9112,6 +9112,11 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
 			      r_symndx, ibfd))
 		goto got_error_ret;
 
+	      if (sym_sec == NULL
+		  || sym_sec->output_section == NULL
+		  || discarded_section (sym_sec))
+		continue;
+
 	      if (!SYMBOL_REFERENCES_LOCAL (info, h))
 		continue;
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix compile warning in symtab.c
@ 2019-08-24 22:23 gdb-buildbot
  2019-08-25  9:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-24 22:23 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d0509ba44323dc5550852f0dbdcb2ccc2818d5b3 ***

commit d0509ba44323dc5550852f0dbdcb2ccc2818d5b3
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Fri Aug 9 14:25:15 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Sat Aug 24 16:45:59 2019 -0500

    Fix compile warning in symtab.c
    
    My compiler (g++ 8.2) can't tell that *bsc_ptr and *slot_ptr are
    only used in the cases when it does get initialized. Just initialize
    the vars earlier to avoid the warning, there does not seem to be a
    downside to it.
    
    ../../gdb/symtab.c: In function block_symbol lookup_static_symbol(const char*, domain_enum):
    ../../gdb/symtab.c:1366:11: warning: slot may be used uninitialized in this function [-Wmaybe-uninitialized]
         xfree (slot->value.not_found.name);
         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../../gdb/symtab.c:2578:29: note: slot was declared here
       struct symbol_cache_slot *slot;
                                 ^~~~
    ../../gdb/symtab.c:1405:3: warning: bsc may be used uninitialized in this function [-Wmaybe-uninitialized]
       if (bsc == NULL)
       ^~
    ../../gdb/symtab.c:2577:30: note: bsc was declared here
       struct block_symbol_cache *bsc;
                                  ^~~
    ../../gdb/symtab.c: In function block_symbol lookup_global_symbol(const char*, const block*, domain_enum):
    ../../gdb/symtab.c:1366:11: warning: slot may be used uninitialized in this function [-Wmaybe-uninitialized]
         xfree (slot->value.not_found.name);
         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../../gdb/symtab.c:2658:29: note: slot was declared here
       struct symbol_cache_slot *slot;
                                 ^~~~
    ../../gdb/symtab.c:1409:14: warning: bsc may be used uninitialized in this function [-Wmaybe-uninitialized]
           ++bsc->collisions;
             ~~~~~^~~~~~~~~~
    ../../gdb/symtab.c:2657:30: note: bsc was declared here
       struct block_symbol_cache *bsc;
                                  ^~~
    
    gdb/ChangeLog:
    
    2019-08-22  Christian Biesinger  <cbiesinger@google.com>
    
            * symtab.c (symbol_cache_lookup): Always initialize *bsc_ptr and *slot_ptr.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1d85249789..073ed74b4f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-22  Christian Biesinger  <cbiesinger@google.com>
+
+	* symtab.c (symbol_cache_lookup): Always initialize *bsc_ptr and
+	*slot_ptr.
+
 2019-08-23  Sergio Durigan Junior  <sergiodj@redhat.com>
 
 	* configure.ac: Don't check for 'dlfcn.h' (moved to
diff --git a/gdb/symtab.c b/gdb/symtab.c
index cd208ab921..d85c77b4ce 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -1297,9 +1297,8 @@ set_symbol_cache_size_handler (const char *args, int from_tty,
    The result is the symbol if found, SYMBOL_LOOKUP_FAILED if a previous lookup
    failed (and thus this one will too), or NULL if the symbol is not present
    in the cache.
-   If the symbol is not present in the cache, then *BSC_PTR and *SLOT_PTR are
-   set to the cache and slot of the symbol to save the result of a full lookup
-   attempt.  */
+   *BSC_PTR and *SLOT_PTR are set to the cache and slot of the symbol, which
+   can be used to save the result of a full lookup attempt.  */
 
 static struct block_symbol
 symbol_cache_lookup (struct symbol_cache *cache,
@@ -1326,6 +1325,9 @@ symbol_cache_lookup (struct symbol_cache *cache,
   hash = hash_symbol_entry (objfile_context, name, domain);
   slot = bsc->symbols + hash % bsc->size;
 
+  *bsc_ptr = bsc;
+  *slot_ptr = slot;
+
   if (eq_symbol_entry (slot, objfile_context, name, domain))
     {
       if (symbol_lookup_debug)
@@ -1343,9 +1345,6 @@ symbol_cache_lookup (struct symbol_cache *cache,
 
   /* Symbol is not present in the cache.  */
 
-  *bsc_ptr = bsc;
-  *slot_ptr = slot;
-
   if (symbol_lookup_debug)
     {
       fprintf_unfiltered (gdb_stdlog,


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert the RX target to make use of target descriptions.
@ 2019-08-25 11:38 gdb-buildbot
  2019-08-25 12:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-25 11:38 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e3ec872f8012377e50f0c9c888d2bc3163a356b2 ***

commit e3ec872f8012377e50f0c9c888d2bc3163a356b2
Author:     Yoshinori Sato <ysato@users.sourceforge.jp>
AuthorDate: Wed Aug 21 00:24:37 2019 +0900
Commit:     Yoshinori Sato <ysato@users.sourceforge.jp>
CommitDate: Sun Aug 25 17:00:08 2019 +0900

    Convert the RX target to make use of target descriptions.
    
    gdb/ChangeLog
    
    2019-08-25  Yoshinori Sato <ysato@users.sourceforge.jp>
    
            * gdb/rx-tdep.c (rx_register_names): New.
            (rx_register_name): Delete.
            (rx_psw_type): Delete.
            (rx_fpsw_type): Delete.
            (rx_register_type): Delete.
            (rx_gdbarch_init): Convert target-descriptions.
            (_initialize_rx_tdep): Add initialize_tdesc_rx.
            * gdb/features/Makefile: Add rx.xml.
            * gdb/features/rx.xml: New.
            * gdb/features/rx.c: Generated.
            * gdb/NEWS: Mention target description support.
    
    gdb/doc/ChangeLog:
    
    2019-08-25  Yoshinori Sato <ysato@users.sourceforge.jp>
    
            * gdb.texinfo (Standard Target Features): Add RX Features sub-section.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 073ed74b4f..cbb83347f1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,17 @@
+2019-08-25  Yoshinori Sato <ysato@users.sourceforge.jp>
+
+        * gdb/rx-tdep.c (rx_register_names): New.
+        (rx_register_name): Delete.
+        (rx_psw_type): Delete.
+        (rx_fpsw_type): Delete.
+        (rx_register_type): Delete.
+        (rx_gdbarch_init): Convert target-descriptions.
+        (_initialize_rx_tdep): Add initialize_tdesc_rx.
+        * gdb/features/Makefile: Add rx.xml.
+        * gdb/features/rx.xml: New.
+        * gdb/features/rx.c: Generated.
+        * gdb/NEWS: Mention target description support.
+
 2019-08-22  Christian Biesinger  <cbiesinger@google.com>
 
 	* symtab.c (symbol_cache_lookup): Always initialize *bsc_ptr and
diff --git a/gdb/NEWS b/gdb/NEWS
index 0a4e0f260f..0d78237085 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -27,6 +27,8 @@
   provide the exitcode or exit status of the shell commands launched by
   GDB commands such as "shell", "pipe" and "make".
 
+* The RX port now supports XML target descriptions.
+
 * Python API
 
   ** The gdb.Value type has a new method 'format_string' which returns a
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 339f3375e0..7fa73fb40f 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-25  Yoshinori Sato <ysato@users.sourceforge.jp>
+
+        * gdb.texinfo (Standard Target Features): Add RX Features sub-section.
+
 2019-08-16  Alan Hayward  <alan.hayward@arm.com>
 
 	* gdb.texinfo (AArch64 Pointer Authentication)
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index bcf0420779..e1bc8143e6 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -44084,6 +44084,7 @@ registers using the capitalization used in the description.
 * OpenRISC 1000 Features::
 * PowerPC Features::
 * RISC-V Features::
+* RX Features::
 * S/390 and System z Features::
 * Sparc Features::
 * TIC6x Features::
@@ -44514,6 +44515,15 @@ target has floating point hardware, but can be moved into the csr
 feature if the target has the floating point control registers, but no
 other floating point hardware.
 
+@node RX Features
+@subsection RX Features
+@cindex target descriptions, RX Features
+
+The @samp{org.gnu.gdb.rx.core} feature is required for RX
+targets.  It should contain the registers @samp{r0} through
+@samp{r15}, @samp{usp}, @samp{isp}, @samp{psw}, @samp{pc}, @samp{intb},
+@samp{bpsw}, @samp{bpc}, @samp{fintv}, @samp{fpsw}, and @samp{acc}.
+
 @node S/390 and System z Features
 @subsection S/390 and System z Features
 @cindex target descriptions, S/390 features
diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index 0c84faf405..2b65d46df0 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -161,6 +161,7 @@ XMLTOC = \
 	rs6000/powerpc-vsx64.xml \
 	rs6000/powerpc-vsx64l.xml \
 	rs6000/rs6000.xml \
+	rx.xml \
 	s390-linux32.xml \
 	s390-linux32v1.xml \
 	s390-linux32v2.xml \
@@ -238,6 +239,7 @@ FEATURE_XMLFILES = aarch64-core.xml \
 	riscv/64bit-cpu.xml \
 	riscv/64bit-csr.xml \
 	riscv/64bit-fpu.xml \
+	rx.xml \
 	tic6x-c6xp.xml \
 	tic6x-core.xml \
 	tic6x-gp.xml
diff --git a/gdb/features/rx.c b/gdb/features/rx.c
new file mode 100644
index 0000000000..d2c29c126f
--- /dev/null
+++ b/gdb/features/rx.c
@@ -0,0 +1,80 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: rx.xml.tmp */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_rx;
+static void
+initialize_tdesc_rx (void)
+{
+  struct target_desc *result = allocate_target_description ();
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.rx.core");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_flags (feature, "psw_flags", 4);
+  tdesc_add_flag (type_with_fields, 0, "C");
+  tdesc_add_flag (type_with_fields, 1, "Z");
+  tdesc_add_flag (type_with_fields, 2, "S");
+  tdesc_add_flag (type_with_fields, 3, "O");
+  tdesc_add_flag (type_with_fields, 16, "I");
+  tdesc_add_flag (type_with_fields, 17, "U");
+  tdesc_add_flag (type_with_fields, 20, "PM");
+  tdesc_add_flag (type_with_fields, 24, "IPL0");
+  tdesc_add_flag (type_with_fields, 25, "IPL1");
+  tdesc_add_flag (type_with_fields, 26, "IPL2");
+  tdesc_add_flag (type_with_fields, 27, "IPL3");
+
+  type_with_fields = tdesc_create_flags (feature, "fpsw_flags", 4);
+  tdesc_add_flag (type_with_fields, 0, "RM0");
+  tdesc_add_flag (type_with_fields, 1, "RM1");
+  tdesc_add_flag (type_with_fields, 2, "CV");
+  tdesc_add_flag (type_with_fields, 3, "CO");
+  tdesc_add_flag (type_with_fields, 4, "CZ");
+  tdesc_add_flag (type_with_fields, 5, "CU");
+  tdesc_add_flag (type_with_fields, 6, "CX");
+  tdesc_add_flag (type_with_fields, 7, "CE");
+  tdesc_add_flag (type_with_fields, 8, "DN");
+  tdesc_add_flag (type_with_fields, 10, "EV");
+  tdesc_add_flag (type_with_fields, 11, "EO");
+  tdesc_add_flag (type_with_fields, 12, "EZ");
+  tdesc_add_flag (type_with_fields, 13, "EU");
+  tdesc_add_flag (type_with_fields, 14, "EX");
+  tdesc_add_flag (type_with_fields, 26, "FV");
+  tdesc_add_flag (type_with_fields, 27, "FO");
+  tdesc_add_flag (type_with_fields, 28, "FZ");
+  tdesc_add_flag (type_with_fields, 29, "FU");
+  tdesc_add_flag (type_with_fields, 30, "FX");
+  tdesc_add_flag (type_with_fields, 31, "FS");
+
+  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "usp", 16, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "isp", 17, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "psw", 18, 1, NULL, 32, "psw_flags");
+  tdesc_create_reg (feature, "pc", 19, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "intb", 20, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "bpsw", 21, 1, NULL, 32, "psw_flags");
+  tdesc_create_reg (feature, "bpc", 22, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "fintv", 23, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "fpsw", 24, 1, NULL, 32, "fpsw_flags");
+  tdesc_create_reg (feature, "acc", 25, 1, NULL, 64, "uint64");
+
+  tdesc_rx = result;
+}
diff --git a/gdb/features/rx.xml b/gdb/features/rx.xml
new file mode 100644
index 0000000000..597f92974b
--- /dev/null
+++ b/gdb/features/rx.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2019 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.rx.core">
+  <reg name="r0" bitsize="32" type="data_ptr"/>
+  <reg name="r1" bitsize="32" type="uint32"/>
+  <reg name="r2" bitsize="32" type="uint32"/>
+  <reg name="r3" bitsize="32" type="uint32"/>
+  <reg name="r4" bitsize="32" type="uint32"/>
+  <reg name="r5" bitsize="32" type="uint32"/>
+  <reg name="r6" bitsize="32" type="uint32"/>
+  <reg name="r7" bitsize="32" type="uint32"/>
+  <reg name="r8" bitsize="32" type="uint32"/>
+  <reg name="r9" bitsize="32" type="uint32"/>
+  <reg name="r10" bitsize="32" type="uint32"/>
+  <reg name="r11" bitsize="32" type="uint32"/>
+  <reg name="r12" bitsize="32" type="uint32"/>
+  <reg name="r13" bitsize="32" type="uint32"/>
+  <reg name="r14" bitsize="32" type="uint32"/>
+  <reg name="r15" bitsize="32" type="uint32"/>
+
+  <flags id="psw_flags" size="4">
+    <field name="C" start="0" end="0"/>
+    <field name="Z" start="1" end="1"/>
+    <field name="S" start="2" end="2"/>
+    <field name="O" start="3" end="3"/>
+    <field name="I" start="16" end="16"/>
+    <field name="U" start="17" end="17"/>
+    <field name="PM" start="20" end="20"/>
+    <field name="IPL0" start="24" end="24"/>
+    <field name="IPL1" start="25" end="25"/>
+    <field name="IPL2" start="26" end="26"/>
+    <field name="IPL3" start="27" end="27"/>
+  </flags>
+
+  <flags id="fpsw_flags" size="4">
+    <field name="RM0" start="0" end="0"/>
+    <field name="RM1" start="1" end="1"/>
+    <field name="CV" start="2" end="2"/>
+    <field name="CO" start="3" end="3"/>
+    <field name="CZ" start="4" end="4"/>
+    <field name="CU" start="5" end="5"/>
+    <field name="CX" start="6" end="6"/>
+    <field name="CE" start="7" end="7"/>
+    <field name="DN" start="8" end="8"/>
+    <field name="EV" start="10" end="10"/>
+    <field name="EO" start="11" end="11"/>
+    <field name="EZ" start="12" end="12"/>
+    <field name="EU" start="13" end="13"/>
+    <field name="EX" start="14" end="14"/>
+    <field name="FV" start="26" end="26"/>
+    <field name="FO" start="27" end="27"/>
+    <field name="FZ" start="28" end="28"/>
+    <field name="FU" start="29" end="29"/>
+    <field name="FX" start="30" end="30"/>
+    <field name="FS" start="31" end="31"/>
+  </flags>
+
+  <reg name="usp" bitsize="32" type="data_ptr"/>
+  <reg name="isp" bitsize="32" type="data_ptr"/>
+  <reg name="psw" bitsize="32" type="psw_flags"/>
+  <reg name="pc" bitsize="32" type="code_ptr"/>
+  <reg name="intb" bitsize="32" type="data_ptr"/>
+  <reg name="bpsw" bitsize="32" type="psw_flags"/>
+  <reg name="bpc" bitsize="32" type="code_ptr"/>
+  <reg name="fintv" bitsize="32" type="code_ptr"/>
+  <reg name="fpsw" bitsize="32" type="fpsw_flags"/>
+  <reg name="acc" bitsize="64" type="uint64"/>
+</feature>
diff --git a/gdb/rx-tdep.c b/gdb/rx-tdep.c
index 4cbf919db9..45cc8b4535 100644
--- a/gdb/rx-tdep.c
+++ b/gdb/rx-tdep.c
@@ -33,11 +33,15 @@
 #include "value.h"
 #include "gdbcore.h"
 #include "dwarf2-frame.h"
+#include "remote.h"
+#include "target-descriptions.h"
 
 #include "elf/rx.h"
 #include "elf-bfd.h"
 #include <algorithm>
 
+#include "features/rx.c"
+
 /* Certain important register numbers.  */
 enum
 {
@@ -114,117 +118,13 @@ struct rx_prologue
   int reg_offset[RX_NUM_REGS];
 };
 
-/* Implement the "register_name" gdbarch method.  */
-static const char *
-rx_register_name (struct gdbarch *gdbarch, int regnr)
-{
-  static const char *const reg_names[] = {
-    "r0",
-    "r1",
-    "r2",
-    "r3",
-    "r4",
-    "r5",
-    "r6",
-    "r7",
-    "r8",
-    "r9",
-    "r10",
-    "r11",
-    "r12",
-    "r13",
-    "r14",
-    "r15",
-    "usp",
-    "isp",
-    "psw",
-    "pc",
-    "intb",
-    "bpsw",
-    "bpc",
-    "fintv",
-    "fpsw",
-    "acc"
-  };
-
-  return reg_names[regnr];
-}
-
-/* Construct the flags type for PSW and BPSW.  */
-
-static struct type *
-rx_psw_type (struct gdbarch *gdbarch)
-{
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
-  if (tdep->rx_psw_type == NULL)
-    {
-      tdep->rx_psw_type = arch_flags_type (gdbarch, "rx_psw_type", 32);
-      append_flags_type_flag (tdep->rx_psw_type, 0, "C");
-      append_flags_type_flag (tdep->rx_psw_type, 1, "Z");
-      append_flags_type_flag (tdep->rx_psw_type, 2, "S");
-      append_flags_type_flag (tdep->rx_psw_type, 3, "O");
-      append_flags_type_flag (tdep->rx_psw_type, 16, "I");
-      append_flags_type_flag (tdep->rx_psw_type, 17, "U");
-      append_flags_type_flag (tdep->rx_psw_type, 20, "PM");
-      append_flags_type_flag (tdep->rx_psw_type, 24, "IPL0");
-      append_flags_type_flag (tdep->rx_psw_type, 25, "IPL1");
-      append_flags_type_flag (tdep->rx_psw_type, 26, "IPL2");
-      append_flags_type_flag (tdep->rx_psw_type, 27, "IPL3");
-    }
-  return tdep->rx_psw_type;
-}
-
-/* Construct flags type for FPSW.  */
-
-static struct type *
-rx_fpsw_type (struct gdbarch *gdbarch)
-{
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
-  if (tdep->rx_fpsw_type == NULL)
-    {
-      tdep->rx_fpsw_type = arch_flags_type (gdbarch, "rx_fpsw_type", 32);
-      append_flags_type_flag (tdep->rx_fpsw_type, 0, "RM0");
-      append_flags_type_flag (tdep->rx_fpsw_type, 1, "RM1");
-      append_flags_type_flag (tdep->rx_fpsw_type, 2, "CV");
-      append_flags_type_flag (tdep->rx_fpsw_type, 3, "CO");
-      append_flags_type_flag (tdep->rx_fpsw_type, 4, "CZ");
-      append_flags_type_flag (tdep->rx_fpsw_type, 5, "CU");
-      append_flags_type_flag (tdep->rx_fpsw_type, 6, "CX");
-      append_flags_type_flag (tdep->rx_fpsw_type, 7, "CE");
-      append_flags_type_flag (tdep->rx_fpsw_type, 8, "DN");
-      append_flags_type_flag (tdep->rx_fpsw_type, 10, "EV");
-      append_flags_type_flag (tdep->rx_fpsw_type, 11, "EO");
-      append_flags_type_flag (tdep->rx_fpsw_type, 12, "EZ");
-      append_flags_type_flag (tdep->rx_fpsw_type, 13, "EU");
-      append_flags_type_flag (tdep->rx_fpsw_type, 14, "EX");
-      append_flags_type_flag (tdep->rx_fpsw_type, 26, "FV");
-      append_flags_type_flag (tdep->rx_fpsw_type, 27, "FO");
-      append_flags_type_flag (tdep->rx_fpsw_type, 28, "FZ");
-      append_flags_type_flag (tdep->rx_fpsw_type, 29, "FU");
-      append_flags_type_flag (tdep->rx_fpsw_type, 30, "FX");
-      append_flags_type_flag (tdep->rx_fpsw_type, 31, "FS");
-    }
-
-  return tdep->rx_fpsw_type;
-}
-
-/* Implement the "register_type" gdbarch method.  */
-static struct type *
-rx_register_type (struct gdbarch *gdbarch, int reg_nr)
-{
-  if (reg_nr == RX_PC_REGNUM)
-    return builtin_type (gdbarch)->builtin_func_ptr;
-  else if (reg_nr == RX_PSW_REGNUM || reg_nr == RX_BPSW_REGNUM)
-    return rx_psw_type (gdbarch);
-  else if (reg_nr == RX_FPSW_REGNUM)
-    return rx_fpsw_type (gdbarch);
-  else if (reg_nr == RX_ACC_REGNUM)
-    return builtin_type (gdbarch)->builtin_unsigned_long_long;
-  else
-    return builtin_type (gdbarch)->builtin_unsigned_long;
-}
+/* RX register names */
+static const char *const rx_register_names[] = {
+  "r0",  "r1",  "r2",  "r3",  "r4",  "r5",  "r6",  "r7",
+  "r8",  "r9",  "r10", "r11", "r12", "r13", "r14", "r15",
+  "usp", "isp", "psw", "pc",  "intb", "bpsw","bpc","fintv",
+  "fpsw", "acc",
+};
 
 
 /* Function for finding saved registers in a 'struct pv_area'; this
@@ -1044,6 +944,8 @@ rx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   struct gdbarch *gdbarch;
   struct gdbarch_tdep *tdep;
   int elf_flags;
+  struct tdesc_arch_data *tdesc_data = NULL;
+  const struct target_desc *tdesc = info.target_desc;
 
   /* Extract the elf_flags if available.  */
   if (info.abfd != NULL
@@ -1065,16 +967,42 @@ rx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
       return arches->gdbarch;
     }
 
-  /* None found, create a new architecture from the information
-     provided.  */
+  if (tdesc == NULL)
+      tdesc = tdesc_rx;
+
+  /* Check any target description for validity.  */
+  if (tdesc_has_registers (tdesc))
+    {
+      const struct tdesc_feature *feature;
+      bool valid_p = true;
+
+      feature = tdesc_find_feature (tdesc, "org.gnu.gdb.rx.core");
+
+      if (feature != NULL)
+	{
+	  tdesc_data = tdesc_data_alloc ();
+	  for (int i = 0; i < RX_NUM_REGS; i++)
+	    valid_p &= tdesc_numbered_register (feature, tdesc_data, i,
+                                            rx_register_names[i]);
+	}
+
+      if (!valid_p)
+	{
+	  tdesc_data_cleanup (tdesc_data);
+	  return NULL;
+	}
+    }
+
+  gdb_assert(tdesc_data != NULL);
+
   tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
   tdep->elf_flags = elf_flags;
 
   set_gdbarch_num_regs (gdbarch, RX_NUM_REGS);
+  tdesc_use_registers (gdbarch, tdesc, tdesc_data);
+
   set_gdbarch_num_pseudo_regs (gdbarch, 0);
-  set_gdbarch_register_name (gdbarch, rx_register_name);
-  set_gdbarch_register_type (gdbarch, rx_register_type);
   set_gdbarch_pc_regnum (gdbarch, RX_PC_REGNUM);
   set_gdbarch_sp_regnum (gdbarch, RX_SP_REGNUM);
   set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
@@ -1092,6 +1020,7 @@ rx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_ptr_bit (gdbarch, 32);
   set_gdbarch_float_bit (gdbarch, 32);
   set_gdbarch_float_format (gdbarch, floatformats_ieee_single);
+
   if (elf_flags & E_FLAG_RX_64BIT_DOUBLES)
     {
       set_gdbarch_double_bit (gdbarch, 64);
@@ -1132,4 +1061,5 @@ void
 _initialize_rx_tdep (void)
 {
   register_gdbarch_init (bfd_arch_rx, rx_gdbarch_init);
+  initialize_tdesc_rx ();
 }


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] dwarf2read: replace gdb::optional<bool> with enum
@ 2019-08-25 23:11 gdb-buildbot
  2019-08-26  2:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-25 23:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT beadd3e84ed8e652015f07eb4734a6d3b17e79cb ***

commit beadd3e84ed8e652015f07eb4734a6d3b17e79cb
Author:     Simon Marchi <simon.marchi@efficios.com>
AuthorDate: Sun Aug 25 18:09:47 2019 -0400
Commit:     Simon Marchi <simon.marchi@efficios.com>
CommitDate: Sun Aug 25 18:09:47 2019 -0400

    dwarf2read: replace gdb::optional<bool> with enum
    
    gdb::optional<bool> is dangerous, because it's easy to do:
    
      if (opt_bool)
    
    when you actually meant
    
      if (*opt_bool)
    
    or vice-versa.  The first checks if the optional is set, the second
    checks if the wrapped bool is true.
    
    Replace it with an enum that explicitly defines the three possible
    states.
    
    gdb/ChangeLog:
    
            * dwarf2read.c (dw2_debug_names_iterator::next): Use enum to
            represent whether the symbol is static, dynamic, or we don't
            know.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index cbb83347f1..5f64ca6d4a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	* dwarf2read.c (dw2_debug_names_iterator::next): Use enum to
+	represent whether the symbol is static, dynamic, or we don't
+	know.
+
 2019-08-25  Yoshinori Sato <ysato@users.sourceforge.jp>
 
         * gdb/rx-tdep.c (rx_register_names): New.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index de9755f6ce..a0b989fd0c 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -5843,7 +5843,11 @@ dw2_debug_names_iterator::next ()
       return NULL;
     }
   const mapped_debug_names::index_val &indexval = indexval_it->second;
-  gdb::optional<bool> is_static;
+  enum class symbol_linkage {
+    unknown,
+    static_,
+    extern_,
+  } symbol_linkage = symbol_linkage::unknown;
   dwarf2_per_cu_data *per_cu = NULL;
   for (const mapped_debug_names::index_val::attr &attr : indexval.attr_vec)
     {
@@ -5895,12 +5899,12 @@ dw2_debug_names_iterator::next ()
 	case DW_IDX_GNU_internal:
 	  if (!m_map.augmentation_is_gdb)
 	    break;
-	  is_static = true;
+	  symbol_linkage = symbol_linkage::static_;
 	  break;
 	case DW_IDX_GNU_external:
 	  if (!m_map.augmentation_is_gdb)
 	    break;
-	  is_static = false;
+	  symbol_linkage = symbol_linkage::extern_;
 	  break;
 	}
     }
@@ -5910,10 +5914,11 @@ dw2_debug_names_iterator::next ()
     goto again;
 
   /* Check static vs global.  */
-  if (is_static.has_value () && m_block_index.has_value ())
+  if (symbol_linkage != symbol_linkage::unknown && m_block_index.has_value ())
     {
 	const bool want_static = *m_block_index == STATIC_BLOCK;
-	if (want_static != *is_static)
+	const bool symbol_is_static = symbol_linkage == symbol_linkage::static_;
+	if (want_static != symbol_is_static)
 	  goto again;
     }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] dwarf2read: fix compilation issue with gcc 4.8
@ 2019-08-26  2:14 gdb-buildbot
  2019-08-26 13:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-26  2:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 23c13d42999cdcf9d224f089891fd3f3c8bdc6aa ***

commit 23c13d42999cdcf9d224f089891fd3f3c8bdc6aa
Author:     Simon Marchi <simon.marchi@efficios.com>
AuthorDate: Sun Aug 25 21:30:02 2019 -0400
Commit:     Simon Marchi <simon.marchi@efficios.com>
CommitDate: Sun Aug 25 21:30:12 2019 -0400

    dwarf2read: fix compilation issue with gcc 4.8
    
    gcc 4.8 (and probably other versions too) doesn't like that the local
    variable symbol_linkage has the same name as the enum class defined in
    the same context:
    
          CXX    dwarf2read.o
        /home/smarchi/src/binutils-gdb/gdb/dwarf2read.c: In member function dwarf2_per_cu_data* dw2_debug_names_iterator::next():
        /home/smarchi/src/binutils-gdb/gdb/dwarf2read.c:5850:22: error: symbol_linkage is not a class, namespace, or enumeration
           } symbol_linkage = symbol_linkage::unknown;
                          ^
    
    Rename the local variable to avoid this.
    
    This problem was originally reported with the Netbsd builder on the
    buildbot, which uses gcc 5.5, I believe.  I am not able to test it on
    that builder right now, but chances are that the fix will work there
    too.
    
    gdb/ChangeLog:
    
            * dwarf2read.c (dw2_debug_names_iterator::next): Rename local
            variable symbol_linkage to symbol_linkage_.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5f64ca6d4a..d4b1e539c3 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	* dwarf2read.c (dw2_debug_names_iterator::next): Rename local
+	variable symbol_linkage to symbol_linkage_.
+
 2019-08-25  Simon Marchi  <simon.marchi@efficios.com>
 
 	* dwarf2read.c (dw2_debug_names_iterator::next): Use enum to
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index a0b989fd0c..af4af195a0 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -5847,7 +5847,7 @@ dw2_debug_names_iterator::next ()
     unknown,
     static_,
     extern_,
-  } symbol_linkage = symbol_linkage::unknown;
+  } symbol_linkage_ = symbol_linkage::unknown;
   dwarf2_per_cu_data *per_cu = NULL;
   for (const mapped_debug_names::index_val::attr &attr : indexval.attr_vec)
     {
@@ -5899,12 +5899,12 @@ dw2_debug_names_iterator::next ()
 	case DW_IDX_GNU_internal:
 	  if (!m_map.augmentation_is_gdb)
 	    break;
-	  symbol_linkage = symbol_linkage::static_;
+	  symbol_linkage_ = symbol_linkage::static_;
 	  break;
 	case DW_IDX_GNU_external:
 	  if (!m_map.augmentation_is_gdb)
 	    break;
-	  symbol_linkage = symbol_linkage::extern_;
+	  symbol_linkage_ = symbol_linkage::extern_;
 	  break;
 	}
     }
@@ -5914,10 +5914,11 @@ dw2_debug_names_iterator::next ()
     goto again;
 
   /* Check static vs global.  */
-  if (symbol_linkage != symbol_linkage::unknown && m_block_index.has_value ())
+  if (symbol_linkage_ != symbol_linkage::unknown && m_block_index.has_value ())
     {
 	const bool want_static = *m_block_index == STATIC_BLOCK;
-	const bool symbol_is_static = symbol_linkage == symbol_linkage::static_;
+	const bool symbol_is_static =
+	  symbol_linkage_ == symbol_linkage::static_;
 	if (want_static != symbol_is_static)
 	  goto again;
     }


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use raw strings on gdb.python/py-xmethods.exp (and fix Python 3.8's "SyntaxWarning: invalid escape sequence")
@ 2019-08-26 13:56 gdb-buildbot
  2019-08-26 17:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-26 13:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d9c4ba536c522b8dc2194d4100270a159be7894a ***

commit d9c4ba536c522b8dc2194d4100270a159be7894a
Author:     Sergio Durigan Junior <sergiodj@redhat.com>
AuthorDate: Sun Aug 25 12:10:35 2019 -0400
Commit:     Sergio Durigan Junior <sergiodj@redhat.com>
CommitDate: Mon Aug 26 09:18:37 2019 -0400

    Use raw strings on gdb.python/py-xmethods.exp (and fix Python 3.8's "SyntaxWarning: invalid escape sequence")
    
    The way unrecognized escape sequences are handled has changed in
    Python 3.8: users now see a SyntaxWarning message, which will
    eventually become a SyntaxError in future versions of Python:
    
      (gdb) source /blabla/gdb.python/py-xmethods/py-xmethods.py
      /blabla/gdb.python/py-xmethods/py-xmethods.py:204: SyntaxWarning: invalid escape seque
      nce \+
        'operator\+',
      /blabla/gdb.python/py-xmethods/py-xmethods.py:211: SyntaxWarning: invalid escape seque
      nce \+
        'operator\+\+',
    
    One of our testcases, gdb.python/py-xmethods.exp, contains strings in
    the form of "operator\+".  This is not recognized by Python, but is
    still needed by the testsuite to work properly.  The solution is
    simple: we just have to make sure these strings are marked as
    raw (i.e, r"").  This is what this patch does.  I took the opportunity
    to also convert other strings to raw, which, in two cases, allowed the
    removal of an extra backslash.
    
    I tested this using Python 3.7 and Python 3.8, and everything works
    fine.
    
    I think I could push this as obvious, but decided to send it to
    gdb-patches just in case.
    
    gdb/testsuite/ChangeLog:
    2019-08-26  Sergio Durigan Junior  <sergiodj@redhat.com>
    
            * gdb.python/py-xmethods.exp: Use raw strings when passing
            arguments to SimpleXMethodMatcher.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 639bea20e7..e8445f8e88 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-26  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.python/py-xmethods.exp: Use raw strings when passing
+	arguments to SimpleXMethodMatcher.
+
 2019-08-22  Tom de Vries  <tdevries@suse.de>
 
 	* gdb.multi/multi-term-settings.exp (coretest): Make gdb_test messages
diff --git a/gdb/testsuite/gdb.python/py-xmethods.py b/gdb/testsuite/gdb.python/py-xmethods.py
index 587842d736..cea48b80d8 100644
--- a/gdb/testsuite/gdb.python/py-xmethods.py
+++ b/gdb/testsuite/gdb.python/py-xmethods.py
@@ -199,34 +199,34 @@ class G_methods_matcher(XMethodMatcher):
 
 
 global_dm_list = [
-    SimpleXMethodMatcher('A_plus_A',
-                         '^dop::A$',
-                         'operator\+',
+    SimpleXMethodMatcher(r'A_plus_A',
+                         r'^dop::A$',
+                         r'operator\+',
                          A_plus_A,
                          # This is a replacement, hence match the arg type
                          # exactly!
                          type_A.const().reference()),
-    SimpleXMethodMatcher('plus_plus_A',
-                         '^dop::A$',
-                         'operator\+\+',
+    SimpleXMethodMatcher(r'plus_plus_A',
+                         r'^dop::A$',
+                         r'operator\+\+',
                          plus_plus_A),
-    SimpleXMethodMatcher('A_geta',
-                         '^dop::A$',
-                         '^geta$',
+    SimpleXMethodMatcher(r'A_geta',
+                         r'^dop::A$',
+                         r'^geta$',
                          A_geta),
-    SimpleXMethodMatcher('A_getarrayind',
-                         '^dop::A$',
-                         '^getarrayind$',
+    SimpleXMethodMatcher(r'A_getarrayind',
+                         r'^dop::A$',
+                         r'^getarrayind$',
                          A_getarrayind,
                          type_int),
-    SimpleXMethodMatcher('A_indexoper',
-                         '^dop::A$',
-                         'operator\\[\\]',
+    SimpleXMethodMatcher(r'A_indexoper',
+                         r'^dop::A$',
+                         r'operator\[\]',
                          A_indexoper,
                          type_int),
-    SimpleXMethodMatcher('B_indexoper',
-                         '^dop::B$',
-                         'operator\\[\\]',
+    SimpleXMethodMatcher(r'B_indexoper',
+                         r'^dop::B$',
+                         r'operator\[\]',
                          B_indexoper,
                          type_int)
 ]


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Make skip_libstdcxx_probe_tests return 1 if true
@ 2019-08-26 17:29 gdb-buildbot
  2019-08-26 18:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-26 17:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b694989f508a83dd7c1f5d0d08716439d312e1cb ***

commit b694989f508a83dd7c1f5d0d08716439d312e1cb
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Mon Aug 26 18:48:02 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Mon Aug 26 18:48:02 2019 +0200

    [gdb/testsuite] Make skip_libstdcxx_probe_tests return 1 if true
    
    The tcl proc skip_libstdcxx_probe_tests currently returns 0 if the probe tests
    need to be skipped, while tcl interprets 0 as false rather than true, which is
    confusing.
    
    Fix this by making skip_libstdcxx_probe_tests return 1 if the probe tests need
    to be skipped.
    
    Tested on x86_64-linux.
    
    gdb/testsuite/ChangeLog:
    
    2019-08-26  Tom de Vries  <tdevries@suse.de>
    
            * lib/gdb.exp (skip_libstdcxx_probe_tests_prompt): Return 1 if probe
            * tests need to be skipped.
            * gdb.cp/exceptprint.exp: Update call to skip_libstdcxx_probe_tests.
            * gdb.mi/mi-catch-cpp-exceptions.exp: Update call to
            mi_skip_libstdcxx_probe_tests.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index e8445f8e88..c41b4981e3 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-26  Tom de Vries  <tdevries@suse.de>
+
+	* lib/gdb.exp (skip_libstdcxx_probe_tests_prompt): Return 1 if probe
+	* tests need to be skipped.
+	* gdb.cp/exceptprint.exp: Update call to skip_libstdcxx_probe_tests.
+	* gdb.mi/mi-catch-cpp-exceptions.exp: Update call to
+	mi_skip_libstdcxx_probe_tests.
+
 2019-08-26  Sergio Durigan Junior  <sergiodj@redhat.com>
 
 	* gdb.python/py-xmethods.exp: Use raw strings when passing
diff --git a/gdb/testsuite/gdb.cp/exceptprint.exp b/gdb/testsuite/gdb.cp/exceptprint.exp
index 46378d1b69..f6dcd0f5bd 100644
--- a/gdb/testsuite/gdb.cp/exceptprint.exp
+++ b/gdb/testsuite/gdb.cp/exceptprint.exp
@@ -27,7 +27,7 @@ if {![runto_main]} {
     return -1
 }
 
-if {![skip_libstdcxx_probe_tests]} {
+if {[skip_libstdcxx_probe_tests]} {
     untested "could not find libstdc++ stap probe"
     return -1
 }
diff --git a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
index 029dc1bd02..2951497882 100644
--- a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
+++ b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
@@ -36,7 +36,7 @@ mi_gdb_load ${binfile}
 if {![mi_run_to_main]} {
     return -1
 }
-set libstdcxx_probe_tests_supported [mi_skip_libstdcxx_probe_tests]
+set libstdcxx_probe_tests_supported [expr ![mi_skip_libstdcxx_probe_tests]]
 
 # Grab some line numbers we'll need.
 set catch_1_lineno [gdb_get_line_number "Catch 1"]
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index af56e8aa12..76805fb5ec 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -3158,20 +3158,21 @@ proc skip_unwinder_tests {} {
     return $ok
 }
 
-# Return 0 if we should skip tests that require the libstdc++ stap
+# Return 1 if we should skip tests that require the libstdc++ stap
 # probes.  This must be invoked while gdb is running, after shared
 # libraries have been loaded.  PROMPT_REGEXP is the expected prompt.
 
 proc skip_libstdcxx_probe_tests_prompt { prompt_regexp } {
-    set ok 0
+    set supported 0
     gdb_test_multiple "info probe" "check for stap probe in libstdc++" {
 	-re ".*libstdcxx.*catch.*\r\n$prompt_regexp" {
-	    set ok 1
+	    set supported 1
 	}
 	-re "\r\n$prompt_regexp" {
 	}
     } "$prompt_regexp"
-    return $ok
+    set skip [expr !$supported]
+    return $skip
 }
 
 # As skip_libstdcxx_probe_tests_prompt, with gdb_prompt.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb, c++] Improve error message when using libstdcxx without SDT probes
@ 2019-08-26 18:01 gdb-buildbot
  2019-08-26 19:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-26 18:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5c31b35808e467d39d05ffa95428e22bb10fd72d ***

commit 5c31b35808e467d39d05ffa95428e22bb10fd72d
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Mon Aug 26 19:24:59 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Mon Aug 26 19:24:59 2019 +0200

    [gdb, c++] Improve error message when using libstdcxx without SDT probes
    
    When using catch catch/rethrow/catch, a libstdcxx with SDT probes is required
    for both the regexp argument, and the convenience variable $_exception (
    https://sourceware.org/gdb/current/onlinedocs/gdb/Set-Catchpoints.html ).
    
    Currently, when using these features with a libstdcxx without SDT probes, we
    get the cryptic error message:
    ...
    not stopped at a C++ exception catchpoint
    ...
    
    Improve this by instead emitting the more helpful:
    ...
    did not find exception probe (does libstdcxx have SDT probes?)
    ...
    
    Tested on x86_64-linux.
    
    gdb/ChangeLog:
    
    2019-08-26  Tom de Vries  <tdevries@suse.de>
    
            PR c++/24852
            * break-catch-throw.c (fetch_probe_arguments): Improve error mesage
            when pc_probe.prob == NULL.
    
    gdb/testsuite/ChangeLog:
    
    2019-08-26  Tom de Vries  <tdevries@suse.de>
    
            PR c++/24852
            * gdb.cp/no-libstdcxx-probe.exp: New test.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d4b1e539c3..f171031961 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-26  Tom de Vries  <tdevries@suse.de>
+
+	PR c++/24852
+	* break-catch-throw.c (fetch_probe_arguments): Improve error mesage
+	when pc_probe.prob == NULL.
+
 2019-08-25  Simon Marchi  <simon.marchi@efficios.com>
 
 	* dwarf2read.c (dw2_debug_names_iterator::next): Rename local
diff --git a/gdb/break-catch-throw.c b/gdb/break-catch-throw.c
index 0677a55ee5..2d91285312 100644
--- a/gdb/break-catch-throw.c
+++ b/gdb/break-catch-throw.c
@@ -106,8 +106,10 @@ fetch_probe_arguments (struct value **arg0, struct value **arg1)
   unsigned n_args;
 
   pc_probe = find_probe_by_pc (pc);
-  if (pc_probe.prob == NULL
-      || pc_probe.prob->get_provider () != "libstdcxx"
+  if (pc_probe.prob == NULL)
+    error (_("did not find exception probe (does libstdcxx have SDT probes?)"));
+
+  if (pc_probe.prob->get_provider () != "libstdcxx"
       || (pc_probe.prob->get_name () != "catch"
 	  && pc_probe.prob->get_name () != "throw"
 	  && pc_probe.prob->get_name () != "rethrow"))
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index c41b4981e3..3117fe78bf 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-26  Tom de Vries  <tdevries@suse.de>
+
+	PR c++/24852
+	* gdb.cp/no-libstdcxx-probe.exp: New test.
+
 2019-08-26  Tom de Vries  <tdevries@suse.de>
 
 	* lib/gdb.exp (skip_libstdcxx_probe_tests_prompt): Return 1 if probe
diff --git a/gdb/testsuite/gdb.cp/no-libstdcxx-probe.exp b/gdb/testsuite/gdb.cp/no-libstdcxx-probe.exp
new file mode 100644
index 0000000000..79826ea2d2
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/no-libstdcxx-probe.exp
@@ -0,0 +1,41 @@
+# Copyright 2019 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+standard_testfile exceptprint.cc
+
+if {[skip_cplus_tests]} {
+    return -1
+}
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
+    return -1
+}
+
+if {![runto_main]} {
+    return -1
+}
+
+if { [skip_libstdcxx_probe_tests] == 0 } {
+    untested "Have libstdc++ stap probe"
+    return -1
+}
+
+gdb_test "catch throw" "Catchpoint $decimal \\(throw\\)" \
+    "catch throw"
+
+gdb_test "continue" "Continuing.*Catchpoint $decimal.*"
+
+gdb_test "print \$_exception" \
+    "did not find exception probe \\(does libstdcxx have SDT probes\\?\\).*"


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Factor out the common code in lookup_{static,global}_symbol
@ 2019-08-26 22:05 gdb-buildbot
  2019-08-27  5:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-26 22:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9aa5520697ee3b65bfbb705c21c2dfb2c0dee12e ***

commit 9aa5520697ee3b65bfbb705c21c2dfb2c0dee12e
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Fri Aug 2 19:59:37 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Mon Aug 26 16:24:33 2019 -0500

    Factor out the common code in lookup_{static,global}_symbol
    
    The two functions are extremely similar; this factors out their code into
    a shared _internal function.
    
    gdb/ChangeLog:
    
    2019-08-26  Christian Biesinger  <cbiesinger@google.com>
    
            * symtab.c (lookup_static_symbol): Call the new function (and move
            it down to be next to lookup_global_symbol).
            (struct global_sym_lookup_data): Add block_enum member and rename to...
            (struct global_or_static_sym_lookup_data): ...this.
            (lookup_symbol_global_iterator_cb): Pass block_index instead of
            GLOBAL_BLOCK to lookup_symbol_in_objfile and rename to...
            (lookup_symbol_global_or_static_iterator_cb): ...this.
            (lookup_global_or_static_symbol): New function.
            (lookup_global_symbol): Call new function.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f171031961..dda3115532 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2019-08-26  Christian Biesinger  <cbiesinger@google.com>
+
+	* symtab.c (lookup_static_symbol): Call the new function (and move
+	it down to be next to lookup_global_symbol).
+	(struct global_sym_lookup_data): Add block_enum member and rename to...
+	(struct global_or_static_sym_lookup_data): ...this.
+	(lookup_symbol_global_iterator_cb): Pass block_index instead of
+	GLOBAL_BLOCK to lookup_symbol_in_objfile and rename to...
+	(lookup_symbol_global_or_static_iterator_cb): ...this.
+	(lookup_global_or_static_symbol): New function.
+	(lookup_global_symbol): Call new function.
+
 2019-08-26  Tom de Vries  <tdevries@suse.de>
 
 	PR c++/24852
diff --git a/gdb/symtab.c b/gdb/symtab.c
index d85c77b4ce..787ecfe33b 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -2566,47 +2566,9 @@ lookup_symbol_in_objfile (struct objfile *objfile, enum block_enum block_index,
   return result;
 }
 
-/* See symtab.h.  */
-
-struct block_symbol
-lookup_static_symbol (const char *name, const domain_enum domain)
-{
-  struct symbol_cache *cache = get_symbol_cache (current_program_space);
-  struct block_symbol result;
-  struct block_symbol_cache *bsc;
-  struct symbol_cache_slot *slot;
-
-  /* Lookup in STATIC_BLOCK is not current-objfile-dependent, so just pass
-     NULL for OBJFILE_CONTEXT.  */
-  result = symbol_cache_lookup (cache, NULL, STATIC_BLOCK, name, domain,
-				&bsc, &slot);
-  if (result.symbol != NULL)
-    {
-      if (SYMBOL_LOOKUP_FAILED_P (result))
-	return {};
-      return result;
-    }
-
-  for (objfile *objfile : current_program_space->objfiles ())
-    {
-      result = lookup_symbol_in_objfile (objfile, STATIC_BLOCK, name, domain);
-      if (result.symbol != NULL)
-	{
-	  /* Still pass NULL for OBJFILE_CONTEXT here.  */
-	  symbol_cache_mark_found (bsc, slot, NULL, result.symbol,
-				   result.block);
-	  return result;
-	}
-    }
-
-  /* Still pass NULL for OBJFILE_CONTEXT here.  */
-  symbol_cache_mark_not_found (bsc, slot, NULL, name, domain);
-  return {};
-}
-
 /* Private data to be used with lookup_symbol_global_iterator_cb.  */
 
-struct global_sym_lookup_data
+struct global_or_static_sym_lookup_data
 {
   /* The name of the symbol we are searching for.  */
   const char *name;
@@ -2614,27 +2576,30 @@ struct global_sym_lookup_data
   /* The domain to use for our search.  */
   domain_enum domain;
 
+  /* The block index in which to search.  */
+  enum block_enum block_index;
+
   /* The field where the callback should store the symbol if found.
      It should be initialized to {NULL, NULL} before the search is started.  */
   struct block_symbol result;
 };
 
 /* A callback function for gdbarch_iterate_over_objfiles_in_search_order.
-   It searches by name for a symbol in the GLOBAL_BLOCK of the given
-   OBJFILE.  The arguments for the search are passed via CB_DATA,
-   which in reality is a pointer to struct global_sym_lookup_data.  */
+   It searches by name for a symbol in the block given by BLOCK_INDEX of the
+   given OBJFILE.  The arguments for the search are passed via CB_DATA, which
+   in reality is a pointer to struct global_or_static_sym_lookup_data.  */
 
 static int
-lookup_symbol_global_iterator_cb (struct objfile *objfile,
-				  void *cb_data)
+lookup_symbol_global_or_static_iterator_cb (struct objfile *objfile,
+					    void *cb_data)
 {
-  struct global_sym_lookup_data *data =
-    (struct global_sym_lookup_data *) cb_data;
+  struct global_or_static_sym_lookup_data *data =
+    (struct global_or_static_sym_lookup_data *) cb_data;
 
   gdb_assert (data->result.symbol == NULL
 	      && data->result.block == NULL);
 
-  data->result = lookup_symbol_in_objfile (objfile, GLOBAL_BLOCK,
+  data->result = lookup_symbol_in_objfile (objfile, data->block_index,
 					   data->name, data->domain);
 
   /* If we found a match, tell the iterator to stop.  Otherwise,
@@ -2642,25 +2607,28 @@ lookup_symbol_global_iterator_cb (struct objfile *objfile,
   return (data->result.symbol != NULL);
 }
 
-/* See symtab.h.  */
+/* This function contains the common code of lookup_{global,static}_symbol.
+   OBJFILE is only used if BLOCK_INDEX is GLOBAL_SCOPE, in which case it is
+   the objfile to start the lookup in.  */
 
-struct block_symbol
-lookup_global_symbol (const char *name,
-		      const struct block *block,
-		      const domain_enum domain)
+static struct block_symbol
+lookup_global_or_static_symbol (const char *name,
+				enum block_enum block_index,
+				struct objfile *objfile,
+				const domain_enum domain)
 {
   struct symbol_cache *cache = get_symbol_cache (current_program_space);
   struct block_symbol result;
-  struct objfile *objfile;
-  struct global_sym_lookup_data lookup_data;
+  struct global_or_static_sym_lookup_data lookup_data;
   struct block_symbol_cache *bsc;
   struct symbol_cache_slot *slot;
 
-  objfile = lookup_objfile_from_block (block);
+  gdb_assert (block_index == GLOBAL_BLOCK || block_index == STATIC_BLOCK);
+  gdb_assert (objfile == nullptr || block_index == GLOBAL_BLOCK);
 
   /* First see if we can find the symbol in the cache.
      This works because we use the current objfile to qualify the lookup.  */
-  result = symbol_cache_lookup (cache, objfile, GLOBAL_BLOCK, name, domain,
+  result = symbol_cache_lookup (cache, objfile, block_index, name, domain,
 				&bsc, &slot);
   if (result.symbol != NULL)
     {
@@ -2678,10 +2646,11 @@ lookup_global_symbol (const char *name,
     {
       memset (&lookup_data, 0, sizeof (lookup_data));
       lookup_data.name = name;
+      lookup_data.block_index = block_index;
       lookup_data.domain = domain;
       gdbarch_iterate_over_objfiles_in_search_order
 	(objfile != NULL ? get_objfile_arch (objfile) : target_gdbarch (),
-	 lookup_symbol_global_iterator_cb, &lookup_data, objfile);
+	 lookup_symbol_global_or_static_iterator_cb, &lookup_data, objfile);
       result = lookup_data.result;
     }
 
@@ -2693,6 +2662,25 @@ lookup_global_symbol (const char *name,
   return result;
 }
 
+/* See symtab.h.  */
+
+struct block_symbol
+lookup_static_symbol (const char *name, const domain_enum domain)
+{
+  return lookup_global_or_static_symbol (name, STATIC_BLOCK, nullptr, domain);
+}
+
+/* See symtab.h.  */
+
+struct block_symbol
+lookup_global_symbol (const char *name,
+		      const struct block *block,
+		      const domain_enum domain)
+{
+  struct objfile *objfile = lookup_objfile_from_block (block);
+  return lookup_global_or_static_symbol (name, GLOBAL_BLOCK, objfile, domain);
+}
+
 int
 symbol_matches_domain (enum language symbol_language,
 		       domain_enum symbol_domain,


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add support for the MVE VMOV instruction to the ARM assembler.  This instruction copies the value of one vector register to another vector register.  The patch also modifies the decoding of VORR instruction which is effecting decoding of VMOV instruction.
@ 2019-08-27 11:48 gdb-buildbot
  2019-08-27 15:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-27 11:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c4a23bf878f2e9a64034006c91596401faf6db3e ***

commit c4a23bf878f2e9a64034006c91596401faf6db3e
Author:     Srinath Parvathaneni <srinath.parvathaneni@arm.com>
AuthorDate: Tue Aug 27 12:08:21 2019 +0100
Commit:     Nick Clifton <nickc@redhat.com>
CommitDate: Tue Aug 27 12:08:21 2019 +0100

    Add support for the MVE VMOV instruction to the ARM assembler.  This instruction copies the value of one vector register to another vector register.  The patch also modifies the decoding of VORR instruction which is effecting decoding of VMOV instruction.
    
    gas     * config/tc-arm.c (parse_neon_mov): Add check to accept vector
            register to both the arguments in VMOV instruction.
            * testsuite/gas/arm/mve-vmov-1.d: Modify.
            * testsuite/gas/arm/mve-vmov-1.s: Likewise.
            * testsuite/gas/arm/mve-vorr.d: Likewise.
    
    opcodes * arm-dis.c (mve_opcodes): Add entry for MVE_VMOV_VEC_TO_VEC.
            (is_mve_undefined): Add case for MVE_VMOV_VEC_TO_VEC.
            (print_insn_mve): Add condition to check Qm==Qn of VORR instruction.

diff --git a/gas/ChangeLog b/gas/ChangeLog
index ff9b3e4762..980d970bbc 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-27  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+
+	* config/tc-arm.c (parse_neon_mov): Add check to accept vector
+	register to both the arguments in VMOV instruction.
+	* testsuite/gas/arm/mve-vmov-1.d: Modify.
+	* testsuite/gas/arm/mve-vmov-1.s: Likewise.
+	* testsuite/gas/arm/mve-vorr.d: Likewise.
+
 2019-08-23  Nick Clifton  <nickc@redhat.com>
 
 	* po/sv.po: Updated Swedish translation.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 27c6f0e52f..9a367ca728 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -6743,8 +6743,10 @@ parse_neon_mov (char **str, int *which_operand)
 	      inst.operands[i].present = 1;
 	    }
 	}
-      else if ((val = arm_typed_reg_parse (&ptr, REG_TYPE_NSDQ, &rtype,
-					   &optype)) != FAIL)
+      else if (((val = arm_typed_reg_parse (&ptr, REG_TYPE_NSDQ, &rtype,
+		&optype)) != FAIL)
+	       || ((val = arm_typed_reg_parse (&ptr, REG_TYPE_MQ, &rtype,
+		   &optype)) != FAIL))
 	{
 	  /* Case 0: VMOV<c><q> <Qd>, <Qm>
 	     Case 1: VMOV<c><q> <Dd>, <Dm>
diff --git a/gas/testsuite/gas/arm/mve-vmov-1.d b/gas/testsuite/gas/arm/mve-vmov-1.d
index 5f317d8646..504b3e7936 100644
--- a/gas/testsuite/gas/arm/mve-vmov-1.d
+++ b/gas/testsuite/gas/arm/mve-vmov-1.d
@@ -4154,3 +4154,28 @@ Disassembly of section .text:
 [^>]*> ef80 0e74 	vmov.i64	q0, #0x0000000000ff0000
 [^>]*> ef80 0e72 	vmov.i64	q0, #0x000000000000ff00
 [^>]*> ef80 0e71 	vmov.i64	q0, #0x00000000000000ff
+[^>]*> ef20 0150 	vmov	q0, q0
+[^>]*> ef22 0152 	vmov	q0, q1
+[^>]*> ef24 0154 	vmov	q0, q2
+[^>]*> ef28 0158 	vmov	q0, q4
+[^>]*> ef2e 015e 	vmov	q0, q7
+[^>]*> ef20 2150 	vmov	q1, q0
+[^>]*> ef22 2152 	vmov	q1, q1
+[^>]*> ef24 2154 	vmov	q1, q2
+[^>]*> ef28 2158 	vmov	q1, q4
+[^>]*> ef2e 215e 	vmov	q1, q7
+[^>]*> ef20 4150 	vmov	q2, q0
+[^>]*> ef22 4152 	vmov	q2, q1
+[^>]*> ef24 4154 	vmov	q2, q2
+[^>]*> ef28 4158 	vmov	q2, q4
+[^>]*> ef2e 415e 	vmov	q2, q7
+[^>]*> ef20 8150 	vmov	q4, q0
+[^>]*> ef22 8152 	vmov	q4, q1
+[^>]*> ef24 8154 	vmov	q4, q2
+[^>]*> ef28 8158 	vmov	q4, q4
+[^>]*> ef2e 815e 	vmov	q4, q7
+[^>]*> ef20 e150 	vmov	q7, q0
+[^>]*> ef22 e152 	vmov	q7, q1
+[^>]*> ef24 e154 	vmov	q7, q2
+[^>]*> ef28 e158 	vmov	q7, q4
+[^>]*> ef2e e15e 	vmov	q7, q7
diff --git a/gas/testsuite/gas/arm/mve-vmov-1.s b/gas/testsuite/gas/arm/mve-vmov-1.s
index 60c77d0a7c..d24fae60f3 100644
--- a/gas/testsuite/gas/arm/mve-vmov-1.s
+++ b/gas/testsuite/gas/arm/mve-vmov-1.s
@@ -130,3 +130,9 @@ vmov.i64 q0, #4278190080 @ 0x00000000FF000000
 vmov.i64 q0, #16711680 @ 0x00000000000FF0000
 vmov.i64 q0, #65280 @ 0x0000000000000FF00
 vmov.i64 q0, #255 @ 0x000000000000000FF
+
+.irp op1, q0, q1, q2, q4, q7
+.irp op2, q0, q1, q2, q4, q7
+vmov \op1, \op2
+.endr
+.endr
diff --git a/gas/testsuite/gas/arm/mve-vorr.d b/gas/testsuite/gas/arm/mve-vorr.d
index 72dcc89538..96a69d8d13 100644
--- a/gas/testsuite/gas/arm/mve-vorr.d
+++ b/gas/testsuite/gas/arm/mve-vorr.d
@@ -5,14 +5,14 @@
 .*: +file format .*arm.*
 
 Disassembly of section .text:
-[^>]*> ef20 0150 	vorr	q0, q0, q0
-[^>]*> ef20 0150 	vorr	q0, q0, q0
-[^>]*> ef20 0150 	vorr	q0, q0, q0
-[^>]*> ef20 0150 	vorr	q0, q0, q0
-[^>]*> ef20 0150 	vorr	q0, q0, q0
-[^>]*> ef20 0150 	vorr	q0, q0, q0
-[^>]*> ef20 0150 	vorr	q0, q0, q0
-[^>]*> ef20 0150 	vorr	q0, q0, q0
+[^>]*> ef20 0150 	vmov	q0, q0
+[^>]*> ef20 0150 	vmov	q0, q0
+[^>]*> ef20 0150 	vmov	q0, q0
+[^>]*> ef20 0150 	vmov	q0, q0
+[^>]*> ef20 0150 	vmov	q0, q0
+[^>]*> ef20 0150 	vmov	q0, q0
+[^>]*> ef20 0150 	vmov	q0, q0
+[^>]*> ef20 0150 	vmov	q0, q0
 [^>]*> ef20 0152 	vorr	q0, q0, q1
 [^>]*> ef20 0152 	vorr	q0, q0, q1
 [^>]*> ef20 0152 	vorr	q0, q0, q1
@@ -53,14 +53,14 @@ Disassembly of section .text:
 [^>]*> ef22 0150 	vorr	q0, q1, q0
 [^>]*> ef22 0150 	vorr	q0, q1, q0
 [^>]*> ef22 0150 	vorr	q0, q1, q0
-[^>]*> ef22 0152 	vorr	q0, q1, q1
-[^>]*> ef22 0152 	vorr	q0, q1, q1
-[^>]*> ef22 0152 	vorr	q0, q1, q1
-[^>]*> ef22 0152 	vorr	q0, q1, q1
-[^>]*> ef22 0152 	vorr	q0, q1, q1
-[^>]*> ef22 0152 	vorr	q0, q1, q1
-[^>]*> ef22 0152 	vorr	q0, q1, q1
-[^>]*> ef22 0152 	vorr	q0, q1, q1
+[^>]*> ef22 0152 	vmov	q0, q1
+[^>]*> ef22 0152 	vmov	q0, q1
+[^>]*> ef22 0152 	vmov	q0, q1
+[^>]*> ef22 0152 	vmov	q0, q1
+[^>]*> ef22 0152 	vmov	q0, q1
+[^>]*> ef22 0152 	vmov	q0, q1
+[^>]*> ef22 0152 	vmov	q0, q1
+[^>]*> ef22 0152 	vmov	q0, q1
 [^>]*> ef22 0154 	vorr	q0, q1, q2
 [^>]*> ef22 0154 	vorr	q0, q1, q2
 [^>]*> ef22 0154 	vorr	q0, q1, q2
@@ -101,14 +101,14 @@ Disassembly of section .text:
 [^>]*> ef24 0152 	vorr	q0, q2, q1
 [^>]*> ef24 0152 	vorr	q0, q2, q1
 [^>]*> ef24 0152 	vorr	q0, q2, q1
-[^>]*> ef24 0154 	vorr	q0, q2, q2
-[^>]*> ef24 0154 	vorr	q0, q2, q2
-[^>]*> ef24 0154 	vorr	q0, q2, q2
-[^>]*> ef24 0154 	vorr	q0, q2, q2
-[^>]*> ef24 0154 	vorr	q0, q2, q2
-[^>]*> ef24 0154 	vorr	q0, q2, q2
-[^>]*> ef24 0154 	vorr	q0, q2, q2
-[^>]*> ef24 0154 	vorr	q0, q2, q2
+[^>]*> ef24 0154 	vmov	q0, q2
+[^>]*> ef24 0154 	vmov	q0, q2
+[^>]*> ef24 0154 	vmov	q0, q2
+[^>]*> ef24 0154 	vmov	q0, q2
+[^>]*> ef24 0154 	vmov	q0, q2
+[^>]*> ef24 0154 	vmov	q0, q2
+[^>]*> ef24 0154 	vmov	q0, q2
+[^>]*> ef24 0154 	vmov	q0, q2
 [^>]*> ef24 0158 	vorr	q0, q2, q4
 [^>]*> ef24 0158 	vorr	q0, q2, q4
 [^>]*> ef24 0158 	vorr	q0, q2, q4
@@ -149,14 +149,14 @@ Disassembly of section .text:
 [^>]*> ef28 0154 	vorr	q0, q4, q2
 [^>]*> ef28 0154 	vorr	q0, q4, q2
 [^>]*> ef28 0154 	vorr	q0, q4, q2
-[^>]*> ef28 0158 	vorr	q0, q4, q4
-[^>]*> ef28 0158 	vorr	q0, q4, q4
-[^>]*> ef28 0158 	vorr	q0, q4, q4
-[^>]*> ef28 0158 	vorr	q0, q4, q4
-[^>]*> ef28 0158 	vorr	q0, q4, q4
-[^>]*> ef28 0158 	vorr	q0, q4, q4
-[^>]*> ef28 0158 	vorr	q0, q4, q4
-[^>]*> ef28 0158 	vorr	q0, q4, q4
+[^>]*> ef28 0158 	vmov	q0, q4
+[^>]*> ef28 0158 	vmov	q0, q4
+[^>]*> ef28 0158 	vmov	q0, q4
+[^>]*> ef28 0158 	vmov	q0, q4
+[^>]*> ef28 0158 	vmov	q0, q4
+[^>]*> ef28 0158 	vmov	q0, q4
+[^>]*> ef28 0158 	vmov	q0, q4
+[^>]*> ef28 0158 	vmov	q0, q4
 [^>]*> ef28 015e 	vorr	q0, q4, q7
 [^>]*> ef28 015e 	vorr	q0, q4, q7
 [^>]*> ef28 015e 	vorr	q0, q4, q7
@@ -197,22 +197,22 @@ Disassembly of section .text:
 [^>]*> ef2e 0158 	vorr	q0, q7, q4
 [^>]*> ef2e 0158 	vorr	q0, q7, q4
 [^>]*> ef2e 0158 	vorr	q0, q7, q4
-[^>]*> ef2e 015e 	vorr	q0, q7, q7
-[^>]*> ef2e 015e 	vorr	q0, q7, q7
-[^>]*> ef2e 015e 	vorr	q0, q7, q7
-[^>]*> ef2e 015e 	vorr	q0, q7, q7
-[^>]*> ef2e 015e 	vorr	q0, q7, q7
-[^>]*> ef2e 015e 	vorr	q0, q7, q7
-[^>]*> ef2e 015e 	vorr	q0, q7, q7
-[^>]*> ef2e 015e 	vorr	q0, q7, q7
-[^>]*> ef20 2150 	vorr	q1, q0, q0
-[^>]*> ef20 2150 	vorr	q1, q0, q0
-[^>]*> ef20 2150 	vorr	q1, q0, q0
-[^>]*> ef20 2150 	vorr	q1, q0, q0
-[^>]*> ef20 2150 	vorr	q1, q0, q0
-[^>]*> ef20 2150 	vorr	q1, q0, q0
-[^>]*> ef20 2150 	vorr	q1, q0, q0
-[^>]*> ef20 2150 	vorr	q1, q0, q0
+[^>]*> ef2e 015e 	vmov	q0, q7
+[^>]*> ef2e 015e 	vmov	q0, q7
+[^>]*> ef2e 015e 	vmov	q0, q7
+[^>]*> ef2e 015e 	vmov	q0, q7
+[^>]*> ef2e 015e 	vmov	q0, q7
+[^>]*> ef2e 015e 	vmov	q0, q7
+[^>]*> ef2e 015e 	vmov	q0, q7
+[^>]*> ef2e 015e 	vmov	q0, q7
+[^>]*> ef20 2150 	vmov	q1, q0
+[^>]*> ef20 2150 	vmov	q1, q0
+[^>]*> ef20 2150 	vmov	q1, q0
+[^>]*> ef20 2150 	vmov	q1, q0
+[^>]*> ef20 2150 	vmov	q1, q0
+[^>]*> ef20 2150 	vmov	q1, q0
+[^>]*> ef20 2150 	vmov	q1, q0
+[^>]*> ef20 2150 	vmov	q1, q0
 [^>]*> ef20 2152 	vorr	q1, q0, q1
 [^>]*> ef20 2152 	vorr	q1, q0, q1
 [^>]*> ef20 2152 	vorr	q1, q0, q1
@@ -253,14 +253,14 @@ Disassembly of section .text:
 [^>]*> ef22 2150 	vorr	q1, q1, q0
 [^>]*> ef22 2150 	vorr	q1, q1, q0
 [^>]*> ef22 2150 	vorr	q1, q1, q0
-[^>]*> ef22 2152 	vorr	q1, q1, q1
-[^>]*> ef22 2152 	vorr	q1, q1, q1
-[^>]*> ef22 2152 	vorr	q1, q1, q1
-[^>]*> ef22 2152 	vorr	q1, q1, q1
-[^>]*> ef22 2152 	vorr	q1, q1, q1
-[^>]*> ef22 2152 	vorr	q1, q1, q1
-[^>]*> ef22 2152 	vorr	q1, q1, q1
-[^>]*> ef22 2152 	vorr	q1, q1, q1
+[^>]*> ef22 2152 	vmov	q1, q1
+[^>]*> ef22 2152 	vmov	q1, q1
+[^>]*> ef22 2152 	vmov	q1, q1
+[^>]*> ef22 2152 	vmov	q1, q1
+[^>]*> ef22 2152 	vmov	q1, q1
+[^>]*> ef22 2152 	vmov	q1, q1
+[^>]*> ef22 2152 	vmov	q1, q1
+[^>]*> ef22 2152 	vmov	q1, q1
 [^>]*> ef22 2154 	vorr	q1, q1, q2
 [^>]*> ef22 2154 	vorr	q1, q1, q2
 [^>]*> ef22 2154 	vorr	q1, q1, q2
@@ -301,14 +301,14 @@ Disassembly of section .text:
 [^>]*> ef24 2152 	vorr	q1, q2, q1
 [^>]*> ef24 2152 	vorr	q1, q2, q1
 [^>]*> ef24 2152 	vorr	q1, q2, q1
-[^>]*> ef24 2154 	vorr	q1, q2, q2
-[^>]*> ef24 2154 	vorr	q1, q2, q2
-[^>]*> ef24 2154 	vorr	q1, q2, q2
-[^>]*> ef24 2154 	vorr	q1, q2, q2
-[^>]*> ef24 2154 	vorr	q1, q2, q2
-[^>]*> ef24 2154 	vorr	q1, q2, q2
-[^>]*> ef24 2154 	vorr	q1, q2, q2
-[^>]*> ef24 2154 	vorr	q1, q2, q2
+[^>]*> ef24 2154 	vmov	q1, q2
+[^>]*> ef24 2154 	vmov	q1, q2
+[^>]*> ef24 2154 	vmov	q1, q2
+[^>]*> ef24 2154 	vmov	q1, q2
+[^>]*> ef24 2154 	vmov	q1, q2
+[^>]*> ef24 2154 	vmov	q1, q2
+[^>]*> ef24 2154 	vmov	q1, q2
+[^>]*> ef24 2154 	vmov	q1, q2
 [^>]*> ef24 2158 	vorr	q1, q2, q4
 [^>]*> ef24 2158 	vorr	q1, q2, q4
 [^>]*> ef24 2158 	vorr	q1, q2, q4
@@ -349,14 +349,14 @@ Disassembly of section .text:
 [^>]*> ef28 2154 	vorr	q1, q4, q2
 [^>]*> ef28 2154 	vorr	q1, q4, q2
 [^>]*> ef28 2154 	vorr	q1, q4, q2
-[^>]*> ef28 2158 	vorr	q1, q4, q4
-[^>]*> ef28 2158 	vorr	q1, q4, q4
-[^>]*> ef28 2158 	vorr	q1, q4, q4
-[^>]*> ef28 2158 	vorr	q1, q4, q4
-[^>]*> ef28 2158 	vorr	q1, q4, q4
-[^>]*> ef28 2158 	vorr	q1, q4, q4
-[^>]*> ef28 2158 	vorr	q1, q4, q4
-[^>]*> ef28 2158 	vorr	q1, q4, q4
+[^>]*> ef28 2158 	vmov	q1, q4
+[^>]*> ef28 2158 	vmov	q1, q4
+[^>]*> ef28 2158 	vmov	q1, q4
+[^>]*> ef28 2158 	vmov	q1, q4
+[^>]*> ef28 2158 	vmov	q1, q4
+[^>]*> ef28 2158 	vmov	q1, q4
+[^>]*> ef28 2158 	vmov	q1, q4
+[^>]*> ef28 2158 	vmov	q1, q4
 [^>]*> ef28 215e 	vorr	q1, q4, q7
 [^>]*> ef28 215e 	vorr	q1, q4, q7
 [^>]*> ef28 215e 	vorr	q1, q4, q7
@@ -397,22 +397,22 @@ Disassembly of section .text:
 [^>]*> ef2e 2158 	vorr	q1, q7, q4
 [^>]*> ef2e 2158 	vorr	q1, q7, q4
 [^>]*> ef2e 2158 	vorr	q1, q7, q4
-[^>]*> ef2e 215e 	vorr	q1, q7, q7
-[^>]*> ef2e 215e 	vorr	q1, q7, q7
-[^>]*> ef2e 215e 	vorr	q1, q7, q7
-[^>]*> ef2e 215e 	vorr	q1, q7, q7
-[^>]*> ef2e 215e 	vorr	q1, q7, q7
-[^>]*> ef2e 215e 	vorr	q1, q7, q7
-[^>]*> ef2e 215e 	vorr	q1, q7, q7
-[^>]*> ef2e 215e 	vorr	q1, q7, q7
-[^>]*> ef20 4150 	vorr	q2, q0, q0
-[^>]*> ef20 4150 	vorr	q2, q0, q0
-[^>]*> ef20 4150 	vorr	q2, q0, q0
-[^>]*> ef20 4150 	vorr	q2, q0, q0
-[^>]*> ef20 4150 	vorr	q2, q0, q0
-[^>]*> ef20 4150 	vorr	q2, q0, q0
-[^>]*> ef20 4150 	vorr	q2, q0, q0
-[^>]*> ef20 4150 	vorr	q2, q0, q0
+[^>]*> ef2e 215e 	vmov	q1, q7
+[^>]*> ef2e 215e 	vmov	q1, q7
+[^>]*> ef2e 215e 	vmov	q1, q7
+[^>]*> ef2e 215e 	vmov	q1, q7
+[^>]*> ef2e 215e 	vmov	q1, q7
+[^>]*> ef2e 215e 	vmov	q1, q7
+[^>]*> ef2e 215e 	vmov	q1, q7
+[^>]*> ef2e 215e 	vmov	q1, q7
+[^>]*> ef20 4150 	vmov	q2, q0
+[^>]*> ef20 4150 	vmov	q2, q0
+[^>]*> ef20 4150 	vmov	q2, q0
+[^>]*> ef20 4150 	vmov	q2, q0
+[^>]*> ef20 4150 	vmov	q2, q0
+[^>]*> ef20 4150 	vmov	q2, q0
+[^>]*> ef20 4150 	vmov	q2, q0
+[^>]*> ef20 4150 	vmov	q2, q0
 [^>]*> ef20 4152 	vorr	q2, q0, q1
 [^>]*> ef20 4152 	vorr	q2, q0, q1
 [^>]*> ef20 4152 	vorr	q2, q0, q1
@@ -453,14 +453,14 @@ Disassembly of section .text:
 [^>]*> ef22 4150 	vorr	q2, q1, q0
 [^>]*> ef22 4150 	vorr	q2, q1, q0
 [^>]*> ef22 4150 	vorr	q2, q1, q0
-[^>]*> ef22 4152 	vorr	q2, q1, q1
-[^>]*> ef22 4152 	vorr	q2, q1, q1
-[^>]*> ef22 4152 	vorr	q2, q1, q1
-[^>]*> ef22 4152 	vorr	q2, q1, q1
-[^>]*> ef22 4152 	vorr	q2, q1, q1
-[^>]*> ef22 4152 	vorr	q2, q1, q1
-[^>]*> ef22 4152 	vorr	q2, q1, q1
-[^>]*> ef22 4152 	vorr	q2, q1, q1
+[^>]*> ef22 4152 	vmov	q2, q1
+[^>]*> ef22 4152 	vmov	q2, q1
+[^>]*> ef22 4152 	vmov	q2, q1
+[^>]*> ef22 4152 	vmov	q2, q1
+[^>]*> ef22 4152 	vmov	q2, q1
+[^>]*> ef22 4152 	vmov	q2, q1
+[^>]*> ef22 4152 	vmov	q2, q1
+[^>]*> ef22 4152 	vmov	q2, q1
 [^>]*> ef22 4154 	vorr	q2, q1, q2
 [^>]*> ef22 4154 	vorr	q2, q1, q2
 [^>]*> ef22 4154 	vorr	q2, q1, q2
@@ -501,14 +501,14 @@ Disassembly of section .text:
 [^>]*> ef24 4152 	vorr	q2, q2, q1
 [^>]*> ef24 4152 	vorr	q2, q2, q1
 [^>]*> ef24 4152 	vorr	q2, q2, q1
-[^>]*> ef24 4154 	vorr	q2, q2, q2
-[^>]*> ef24 4154 	vorr	q2, q2, q2
-[^>]*> ef24 4154 	vorr	q2, q2, q2
-[^>]*> ef24 4154 	vorr	q2, q2, q2
-[^>]*> ef24 4154 	vorr	q2, q2, q2
-[^>]*> ef24 4154 	vorr	q2, q2, q2
-[^>]*> ef24 4154 	vorr	q2, q2, q2
-[^>]*> ef24 4154 	vorr	q2, q2, q2
+[^>]*> ef24 4154 	vmov	q2, q2
+[^>]*> ef24 4154 	vmov	q2, q2
+[^>]*> ef24 4154 	vmov	q2, q2
+[^>]*> ef24 4154 	vmov	q2, q2
+[^>]*> ef24 4154 	vmov	q2, q2
+[^>]*> ef24 4154 	vmov	q2, q2
+[^>]*> ef24 4154 	vmov	q2, q2
+[^>]*> ef24 4154 	vmov	q2, q2
 [^>]*> ef24 4158 	vorr	q2, q2, q4
 [^>]*> ef24 4158 	vorr	q2, q2, q4
 [^>]*> ef24 4158 	vorr	q2, q2, q4
@@ -549,14 +549,14 @@ Disassembly of section .text:
 [^>]*> ef28 4154 	vorr	q2, q4, q2
 [^>]*> ef28 4154 	vorr	q2, q4, q2
 [^>]*> ef28 4154 	vorr	q2, q4, q2
-[^>]*> ef28 4158 	vorr	q2, q4, q4
-[^>]*> ef28 4158 	vorr	q2, q4, q4
-[^>]*> ef28 4158 	vorr	q2, q4, q4
-[^>]*> ef28 4158 	vorr	q2, q4, q4
-[^>]*> ef28 4158 	vorr	q2, q4, q4
-[^>]*> ef28 4158 	vorr	q2, q4, q4
-[^>]*> ef28 4158 	vorr	q2, q4, q4
-[^>]*> ef28 4158 	vorr	q2, q4, q4
+[^>]*> ef28 4158 	vmov	q2, q4
+[^>]*> ef28 4158 	vmov	q2, q4
+[^>]*> ef28 4158 	vmov	q2, q4
+[^>]*> ef28 4158 	vmov	q2, q4
+[^>]*> ef28 4158 	vmov	q2, q4
+[^>]*> ef28 4158 	vmov	q2, q4
+[^>]*> ef28 4158 	vmov	q2, q4
+[^>]*> ef28 4158 	vmov	q2, q4
 [^>]*> ef28 415e 	vorr	q2, q4, q7
 [^>]*> ef28 415e 	vorr	q2, q4, q7
 [^>]*> ef28 415e 	vorr	q2, q4, q7
@@ -597,22 +597,22 @@ Disassembly of section .text:
 [^>]*> ef2e 4158 	vorr	q2, q7, q4
 [^>]*> ef2e 4158 	vorr	q2, q7, q4
 [^>]*> ef2e 4158 	vorr	q2, q7, q4
-[^>]*> ef2e 415e 	vorr	q2, q7, q7
-[^>]*> ef2e 415e 	vorr	q2, q7, q7
-[^>]*> ef2e 415e 	vorr	q2, q7, q7
-[^>]*> ef2e 415e 	vorr	q2, q7, q7
-[^>]*> ef2e 415e 	vorr	q2, q7, q7
-[^>]*> ef2e 415e 	vorr	q2, q7, q7
-[^>]*> ef2e 415e 	vorr	q2, q7, q7
-[^>]*> ef2e 415e 	vorr	q2, q7, q7
-[^>]*> ef20 8150 	vorr	q4, q0, q0
-[^>]*> ef20 8150 	vorr	q4, q0, q0
-[^>]*> ef20 8150 	vorr	q4, q0, q0
-[^>]*> ef20 8150 	vorr	q4, q0, q0
-[^>]*> ef20 8150 	vorr	q4, q0, q0
-[^>]*> ef20 8150 	vorr	q4, q0, q0
-[^>]*> ef20 8150 	vorr	q4, q0, q0
-[^>]*> ef20 8150 	vorr	q4, q0, q0
+[^>]*> ef2e 415e 	vmov	q2, q7
+[^>]*> ef2e 415e 	vmov	q2, q7
+[^>]*> ef2e 415e 	vmov	q2, q7
+[^>]*> ef2e 415e 	vmov	q2, q7
+[^>]*> ef2e 415e 	vmov	q2, q7
+[^>]*> ef2e 415e 	vmov	q2, q7
+[^>]*> ef2e 415e 	vmov	q2, q7
+[^>]*> ef2e 415e 	vmov	q2, q7
+[^>]*> ef20 8150 	vmov	q4, q0
+[^>]*> ef20 8150 	vmov	q4, q0
+[^>]*> ef20 8150 	vmov	q4, q0
+[^>]*> ef20 8150 	vmov	q4, q0
+[^>]*> ef20 8150 	vmov	q4, q0
+[^>]*> ef20 8150 	vmov	q4, q0
+[^>]*> ef20 8150 	vmov	q4, q0
+[^>]*> ef20 8150 	vmov	q4, q0
 [^>]*> ef20 8152 	vorr	q4, q0, q1
 [^>]*> ef20 8152 	vorr	q4, q0, q1
 [^>]*> ef20 8152 	vorr	q4, q0, q1
@@ -653,14 +653,14 @@ Disassembly of section .text:
 [^>]*> ef22 8150 	vorr	q4, q1, q0
 [^>]*> ef22 8150 	vorr	q4, q1, q0
 [^>]*> ef22 8150 	vorr	q4, q1, q0
-[^>]*> ef22 8152 	vorr	q4, q1, q1
-[^>]*> ef22 8152 	vorr	q4, q1, q1
-[^>]*> ef22 8152 	vorr	q4, q1, q1
-[^>]*> ef22 8152 	vorr	q4, q1, q1
-[^>]*> ef22 8152 	vorr	q4, q1, q1
-[^>]*> ef22 8152 	vorr	q4, q1, q1
-[^>]*> ef22 8152 	vorr	q4, q1, q1
-[^>]*> ef22 8152 	vorr	q4, q1, q1
+[^>]*> ef22 8152 	vmov	q4, q1
+[^>]*> ef22 8152 	vmov	q4, q1
+[^>]*> ef22 8152 	vmov	q4, q1
+[^>]*> ef22 8152 	vmov	q4, q1
+[^>]*> ef22 8152 	vmov	q4, q1
+[^>]*> ef22 8152 	vmov	q4, q1
+[^>]*> ef22 8152 	vmov	q4, q1
+[^>]*> ef22 8152 	vmov	q4, q1
 [^>]*> ef22 8154 	vorr	q4, q1, q2
 [^>]*> ef22 8154 	vorr	q4, q1, q2
 [^>]*> ef22 8154 	vorr	q4, q1, q2
@@ -701,14 +701,14 @@ Disassembly of section .text:
 [^>]*> ef24 8152 	vorr	q4, q2, q1
 [^>]*> ef24 8152 	vorr	q4, q2, q1
 [^>]*> ef24 8152 	vorr	q4, q2, q1
-[^>]*> ef24 8154 	vorr	q4, q2, q2
-[^>]*> ef24 8154 	vorr	q4, q2, q2
-[^>]*> ef24 8154 	vorr	q4, q2, q2
-[^>]*> ef24 8154 	vorr	q4, q2, q2
-[^>]*> ef24 8154 	vorr	q4, q2, q2
-[^>]*> ef24 8154 	vorr	q4, q2, q2
-[^>]*> ef24 8154 	vorr	q4, q2, q2
-[^>]*> ef24 8154 	vorr	q4, q2, q2
+[^>]*> ef24 8154 	vmov	q4, q2
+[^>]*> ef24 8154 	vmov	q4, q2
+[^>]*> ef24 8154 	vmov	q4, q2
+[^>]*> ef24 8154 	vmov	q4, q2
+[^>]*> ef24 8154 	vmov	q4, q2
+[^>]*> ef24 8154 	vmov	q4, q2
+[^>]*> ef24 8154 	vmov	q4, q2
+[^>]*> ef24 8154 	vmov	q4, q2
 [^>]*> ef24 8158 	vorr	q4, q2, q4
 [^>]*> ef24 8158 	vorr	q4, q2, q4
 [^>]*> ef24 8158 	vorr	q4, q2, q4
@@ -749,14 +749,14 @@ Disassembly of section .text:
 [^>]*> ef28 8154 	vorr	q4, q4, q2
 [^>]*> ef28 8154 	vorr	q4, q4, q2
 [^>]*> ef28 8154 	vorr	q4, q4, q2
-[^>]*> ef28 8158 	vorr	q4, q4, q4
-[^>]*> ef28 8158 	vorr	q4, q4, q4
-[^>]*> ef28 8158 	vorr	q4, q4, q4
-[^>]*> ef28 8158 	vorr	q4, q4, q4
-[^>]*> ef28 8158 	vorr	q4, q4, q4
-[^>]*> ef28 8158 	vorr	q4, q4, q4
-[^>]*> ef28 8158 	vorr	q4, q4, q4
-[^>]*> ef28 8158 	vorr	q4, q4, q4
+[^>]*> ef28 8158 	vmov	q4, q4
+[^>]*> ef28 8158 	vmov	q4, q4
+[^>]*> ef28 8158 	vmov	q4, q4
+[^>]*> ef28 8158 	vmov	q4, q4
+[^>]*> ef28 8158 	vmov	q4, q4
+[^>]*> ef28 8158 	vmov	q4, q4
+[^>]*> ef28 8158 	vmov	q4, q4
+[^>]*> ef28 8158 	vmov	q4, q4
 [^>]*> ef28 815e 	vorr	q4, q4, q7
 [^>]*> ef28 815e 	vorr	q4, q4, q7
 [^>]*> ef28 815e 	vorr	q4, q4, q7
@@ -797,22 +797,22 @@ Disassembly of section .text:
 [^>]*> ef2e 8158 	vorr	q4, q7, q4
 [^>]*> ef2e 8158 	vorr	q4, q7, q4
 [^>]*> ef2e 8158 	vorr	q4, q7, q4
-[^>]*> ef2e 815e 	vorr	q4, q7, q7
-[^>]*> ef2e 815e 	vorr	q4, q7, q7
-[^>]*> ef2e 815e 	vorr	q4, q7, q7
-[^>]*> ef2e 815e 	vorr	q4, q7, q7
-[^>]*> ef2e 815e 	vorr	q4, q7, q7
-[^>]*> ef2e 815e 	vorr	q4, q7, q7
-[^>]*> ef2e 815e 	vorr	q4, q7, q7
-[^>]*> ef2e 815e 	vorr	q4, q7, q7
-[^>]*> ef20 e150 	vorr	q7, q0, q0
-[^>]*> ef20 e150 	vorr	q7, q0, q0
-[^>]*> ef20 e150 	vorr	q7, q0, q0
-[^>]*> ef20 e150 	vorr	q7, q0, q0
-[^>]*> ef20 e150 	vorr	q7, q0, q0
-[^>]*> ef20 e150 	vorr	q7, q0, q0
-[^>]*> ef20 e150 	vorr	q7, q0, q0
-[^>]*> ef20 e150 	vorr	q7, q0, q0
+[^>]*> ef2e 815e 	vmov	q4, q7
+[^>]*> ef2e 815e 	vmov	q4, q7
+[^>]*> ef2e 815e 	vmov	q4, q7
+[^>]*> ef2e 815e 	vmov	q4, q7
+[^>]*> ef2e 815e 	vmov	q4, q7
+[^>]*> ef2e 815e 	vmov	q4, q7
+[^>]*> ef2e 815e 	vmov	q4, q7
+[^>]*> ef2e 815e 	vmov	q4, q7
+[^>]*> ef20 e150 	vmov	q7, q0
+[^>]*> ef20 e150 	vmov	q7, q0
+[^>]*> ef20 e150 	vmov	q7, q0
+[^>]*> ef20 e150 	vmov	q7, q0
+[^>]*> ef20 e150 	vmov	q7, q0
+[^>]*> ef20 e150 	vmov	q7, q0
+[^>]*> ef20 e150 	vmov	q7, q0
+[^>]*> ef20 e150 	vmov	q7, q0
 [^>]*> ef20 e152 	vorr	q7, q0, q1
 [^>]*> ef20 e152 	vorr	q7, q0, q1
 [^>]*> ef20 e152 	vorr	q7, q0, q1
@@ -853,14 +853,14 @@ Disassembly of section .text:
 [^>]*> ef22 e150 	vorr	q7, q1, q0
 [^>]*> ef22 e150 	vorr	q7, q1, q0
 [^>]*> ef22 e150 	vorr	q7, q1, q0
-[^>]*> ef22 e152 	vorr	q7, q1, q1
-[^>]*> ef22 e152 	vorr	q7, q1, q1
-[^>]*> ef22 e152 	vorr	q7, q1, q1
-[^>]*> ef22 e152 	vorr	q7, q1, q1
-[^>]*> ef22 e152 	vorr	q7, q1, q1
-[^>]*> ef22 e152 	vorr	q7, q1, q1
-[^>]*> ef22 e152 	vorr	q7, q1, q1
-[^>]*> ef22 e152 	vorr	q7, q1, q1
+[^>]*> ef22 e152 	vmov	q7, q1
+[^>]*> ef22 e152 	vmov	q7, q1
+[^>]*> ef22 e152 	vmov	q7, q1
+[^>]*> ef22 e152 	vmov	q7, q1
+[^>]*> ef22 e152 	vmov	q7, q1
+[^>]*> ef22 e152 	vmov	q7, q1
+[^>]*> ef22 e152 	vmov	q7, q1
+[^>]*> ef22 e152 	vmov	q7, q1
 [^>]*> ef22 e154 	vorr	q7, q1, q2
 [^>]*> ef22 e154 	vorr	q7, q1, q2
 [^>]*> ef22 e154 	vorr	q7, q1, q2
@@ -901,14 +901,14 @@ Disassembly of section .text:
 [^>]*> ef24 e152 	vorr	q7, q2, q1
 [^>]*> ef24 e152 	vorr	q7, q2, q1
 [^>]*> ef24 e152 	vorr	q7, q2, q1
-[^>]*> ef24 e154 	vorr	q7, q2, q2
-[^>]*> ef24 e154 	vorr	q7, q2, q2
-[^>]*> ef24 e154 	vorr	q7, q2, q2
-[^>]*> ef24 e154 	vorr	q7, q2, q2
-[^>]*> ef24 e154 	vorr	q7, q2, q2
-[^>]*> ef24 e154 	vorr	q7, q2, q2
-[^>]*> ef24 e154 	vorr	q7, q2, q2
-[^>]*> ef24 e154 	vorr	q7, q2, q2
+[^>]*> ef24 e154 	vmov	q7, q2
+[^>]*> ef24 e154 	vmov	q7, q2
+[^>]*> ef24 e154 	vmov	q7, q2
+[^>]*> ef24 e154 	vmov	q7, q2
+[^>]*> ef24 e154 	vmov	q7, q2
+[^>]*> ef24 e154 	vmov	q7, q2
+[^>]*> ef24 e154 	vmov	q7, q2
+[^>]*> ef24 e154 	vmov	q7, q2
 [^>]*> ef24 e158 	vorr	q7, q2, q4
 [^>]*> ef24 e158 	vorr	q7, q2, q4
 [^>]*> ef24 e158 	vorr	q7, q2, q4
@@ -949,14 +949,14 @@ Disassembly of section .text:
 [^>]*> ef28 e154 	vorr	q7, q4, q2
 [^>]*> ef28 e154 	vorr	q7, q4, q2
 [^>]*> ef28 e154 	vorr	q7, q4, q2
-[^>]*> ef28 e158 	vorr	q7, q4, q4
-[^>]*> ef28 e158 	vorr	q7, q4, q4
-[^>]*> ef28 e158 	vorr	q7, q4, q4
-[^>]*> ef28 e158 	vorr	q7, q4, q4
-[^>]*> ef28 e158 	vorr	q7, q4, q4
-[^>]*> ef28 e158 	vorr	q7, q4, q4
-[^>]*> ef28 e158 	vorr	q7, q4, q4
-[^>]*> ef28 e158 	vorr	q7, q4, q4
+[^>]*> ef28 e158 	vmov	q7, q4
+[^>]*> ef28 e158 	vmov	q7, q4
+[^>]*> ef28 e158 	vmov	q7, q4
+[^>]*> ef28 e158 	vmov	q7, q4
+[^>]*> ef28 e158 	vmov	q7, q4
+[^>]*> ef28 e158 	vmov	q7, q4
+[^>]*> ef28 e158 	vmov	q7, q4
+[^>]*> ef28 e158 	vmov	q7, q4
 [^>]*> ef28 e15e 	vorr	q7, q4, q7
 [^>]*> ef28 e15e 	vorr	q7, q4, q7
 [^>]*> ef28 e15e 	vorr	q7, q4, q7
@@ -997,14 +997,14 @@ Disassembly of section .text:
 [^>]*> ef2e e158 	vorr	q7, q7, q4
 [^>]*> ef2e e158 	vorr	q7, q7, q4
 [^>]*> ef2e e158 	vorr	q7, q7, q4
-[^>]*> ef2e e15e 	vorr	q7, q7, q7
-[^>]*> ef2e e15e 	vorr	q7, q7, q7
-[^>]*> ef2e e15e 	vorr	q7, q7, q7
-[^>]*> ef2e e15e 	vorr	q7, q7, q7
-[^>]*> ef2e e15e 	vorr	q7, q7, q7
-[^>]*> ef2e e15e 	vorr	q7, q7, q7
-[^>]*> ef2e e15e 	vorr	q7, q7, q7
-[^>]*> ef2e e15e 	vorr	q7, q7, q7
+[^>]*> ef2e e15e 	vmov	q7, q7
+[^>]*> ef2e e15e 	vmov	q7, q7
+[^>]*> ef2e e15e 	vmov	q7, q7
+[^>]*> ef2e e15e 	vmov	q7, q7
+[^>]*> ef2e e15e 	vmov	q7, q7
+[^>]*> ef2e e15e 	vmov	q7, q7
+[^>]*> ef2e e15e 	vmov	q7, q7
+[^>]*> ef2e e15e 	vmov	q7, q7
 [^>]*> ef80 0150 	vorr.i32	q0, #0	; 0x00000000
 [^>]*> ff87 015f 	vorr.i32	q0, #255	; 0x000000ff
 [^>]*> ff87 035f 	vorr.i32	q0, #65280	; 0x0000ff00
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 0017bd47f5..bec2b59cc4 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-27  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+
+	* arm-dis.c (mve_opcodes): Add entry for MVE_VMOV_VEC_TO_VEC.
+	(is_mve_undefined): Add case for MVE_VMOV_VEC_TO_VEC.
+	(print_insn_mve): Add condition to check Qm==Qn of VORR instruction.
+
 2019-08-22  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
 
 	* aarch64-opc.c (aarch64_sys_regs): Update encoding of tfsre0_el1,
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index 50d1306c19..8ff86bf4d6 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -2951,6 +2951,16 @@ static const struct mopcode32 mve_opcodes[] =
    0xef200150, 0xffb11f51,
    "vorr%v\t%13-15,22Q, %17-19,7Q, %1-3,5Q"},
 
+  /* Vector VMOV, vector to vector move. While decoding MVE_VORR_REG if
+     "Qm==Qn", VORR should replaced by its alias VMOV. For that to happen
+     MVE_VMOV_VEC_TO_VEC need to placed after MVE_VORR_REG in this mve_opcodes
+     array.  */
+
+  {ARM_FEATURE_COPROC (FPU_MVE),
+   MVE_VMOV_VEC_TO_VEC,
+   0xef200150, 0xffb11f51,
+   "vmov%v\t%13-15,22Q, %17-19,7Q"},
+
   /* Vector VQDMULL T1 variant.  */
   {ARM_FEATURE_COPROC (FPU_MVE),
    MVE_VQDMULL_T1,
@@ -6104,6 +6114,12 @@ is_mve_undefined (unsigned long given, enum mve_instructions matched_insn,
       else
 	return FALSE;
 
+    case MVE_VMOV_VEC_TO_VEC:
+      if ((arm_decode_field (given, 5, 5) == 1)
+	  || (arm_decode_field (given, 22, 22) == 1))
+	  return TRUE;
+      return FALSE;
+
     case MVE_VMOV_IMM_TO_VEC:
       if (arm_decode_field (given, 5, 5) == 0)
       {
@@ -9214,6 +9230,13 @@ print_insn_mve (struct disassemble_info *info, long given)
 	  if (is_mve_undefined (given, insn->mve_op, &undefined_cond))
 	    is_undefined = TRUE;
 
+	  /* In "VORR Qd, Qm, Qn", if Qm==Qn, VORR is nothing but VMOV,
+	     i.e "VMOV Qd, Qm".  */
+	  if ((insn->mve_op == MVE_VORR_REG)
+	      && (arm_decode_field (given, 1, 3)
+		  == arm_decode_field (given, 17, 19)))
+	    continue;
+
 	  for (c = insn->assembler; *c; c++)
 	    {
 	      if (*c == '%')


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Add new -n flag to some info commands
@ 2019-08-27 16:22 gdb-buildbot
  2019-08-27 16:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-27 16:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4acfdd20c9ef3c0368868b4221554f0abef04196 ***

commit 4acfdd20c9ef3c0368868b4221554f0abef04196
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Mon Jul 22 16:53:06 2019 +0100
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Tue Aug 27 16:21:42 2019 +0100

    gdb: Add new -n flag to some info commands
    
    The 'info variables', its alias 'whereis', and 'info functions' all
    include non-debug symbols in the output by default.  The list of
    non-debug symbols can sometimes be quite long, resulting in the
    debug symbol based results being scrolled off the screen.
    
    This commit adds a '-n' flag to all of the commands listed above that
    excludes the non-debug symbols from the results, leaving just the
    debug symbol based results.
    
    gdb/ChangeLog:
    
            * cli/cli-utils.c (info_print_options_defs): Delete.
            (make_info_print_options_def_group): Delete.
            (extract_info_print_options): Delete.
            (info_print_command_completer): Delete.
            (info_print_args_help): Add extra parameter, and optionally
            include text about -n flag.
            * cli/cli-utils.h (struct info_print_options): Delete.
            (extract_info_print_options): Delete declaration.
            (info_print_command_completer): Delete declaration.
            (info_print_args_help): Add extra parameter, extend header
            comment.
            * python/python.c (gdbpy_rbreak): Pass additional parameter to
            search_symbols.
            * stack.c (struct info_print_options): New type.
            (info_print_options_defs): New file scoped variable.
            (make_info_print_options_def_group): New static function.
            (info_print_command_completer): New static function.
            (info_locals_command): Update to use new local functions.
            (info_args_command): Likewise.
            (_initialize_stack): Add extra parameter to calls to
            info_print_args_help.
            * symtab.c (search_symbols): Add extra parameter, use this to
            possibly excluse non-debug symbols.
            (symtab_symbol_info): Add extra parameter, which is passed on to
            search_symbols.
            (struct info_print_options): New type.
            (info_print_options_defs): New file scoped variable.
            (make_info_print_options_def_group): New static function.
            (info_print_command_completer): New static function.
            (info_variables_command): Update to use local functions, and pass
            extra parameter through to symtab_symbol_info.
            (info_functions_command): Likewise.
            (info_types_command): Pass additional argument through to
            symtab_symbol_info.
            (rbreak_command): Pass extra argument to search_symbols.
            (_initialize_symtab): Add extra arguments for calls to
            info_print_args_help, and update help text for 'info variables',
            'whereis', and 'info functions' commands.
            * symtab.h (search_symbols): Add extra argument to declaration.
            * NEWS: Mention new flags.
    
    gdb/doc/ChangeLog:
    
            * gdb.texinfo (Symbols): Add information about the -n flag to
            "info variables" and "info functions".
    
    gdb/testsuite/ChangeLog:
    
            * gdb.base/info-fun.exp: Extend to test the -n flag for 'info
            functions'.  Reindent as needed.
            * gdb.base/info-var-f1.c: New file.
            * gdb.base/info-var-f2.c: New file.
            * gdb.base/info-var.exp: New file.
            * gdb.base/info-var.h: New file.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index dda3115532..c7d2dae4ff 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,46 @@
+2019-08-27  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* cli/cli-utils.c (info_print_options_defs): Delete.
+	(make_info_print_options_def_group): Delete.
+	(extract_info_print_options): Delete.
+	(info_print_command_completer): Delete.
+	(info_print_args_help): Add extra parameter, and optionally
+	include text about -n flag.
+	* cli/cli-utils.h (struct info_print_options): Delete.
+	(extract_info_print_options): Delete declaration.
+	(info_print_command_completer): Delete declaration.
+	(info_print_args_help): Add extra parameter, extend header
+	comment.
+	* python/python.c (gdbpy_rbreak): Pass additional parameter to
+	search_symbols.
+	* stack.c (struct info_print_options): New type.
+	(info_print_options_defs): New file scoped variable.
+	(make_info_print_options_def_group): New static function.
+	(info_print_command_completer): New static function.
+	(info_locals_command): Update to use new local functions.
+	(info_args_command): Likewise.
+	(_initialize_stack): Add extra parameter to calls to
+	info_print_args_help.
+	* symtab.c (search_symbols): Add extra parameter, use this to
+	possibly excluse non-debug symbols.
+	(symtab_symbol_info): Add extra parameter, which is passed on to
+	search_symbols.
+	(struct info_print_options): New type.
+	(info_print_options_defs): New file scoped variable.
+	(make_info_print_options_def_group): New static function.
+	(info_print_command_completer): New static function.
+	(info_variables_command): Update to use local functions, and pass
+	extra parameter through to symtab_symbol_info.
+	(info_functions_command): Likewise.
+	(info_types_command): Pass additional argument through to
+	symtab_symbol_info.
+	(rbreak_command): Pass extra argument to search_symbols.
+	(_initialize_symtab): Add extra arguments for calls to
+	info_print_args_help, and update help text for 'info variables',
+	'whereis', and 'info functions' commands.
+	* symtab.h (search_symbols): Add extra argument to declaration.
+	* NEWS: Mention new flags.
+
 2019-08-26  Christian Biesinger  <cbiesinger@google.com>
 
 	* symtab.c (lookup_static_symbol): Call the new function (and move
diff --git a/gdb/NEWS b/gdb/NEWS
index 0d78237085..f382e887c0 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -256,6 +256,11 @@ maint show test-options-completion-result
      printing of some header information in a similar fashion to "info
      variables" and "info functions".
 
+  ** The "info variables", "info functions", and "whereis" commands
+     now take a '-n' flag that excludes non-debug symbols (symbols
+     from the symbol table, not from the debug info such as DWARF)
+     from the results.
+
 * Completion improvements
 
   ** GDB can now complete the options of the "thread apply all" and
diff --git a/gdb/cli/cli-utils.c b/gdb/cli/cli-utils.c
index c6405505d9..b6b21c95b0 100644
--- a/gdb/cli/cli-utils.c
+++ b/gdb/cli/cli-utils.c
@@ -194,7 +194,8 @@ report_unrecognized_option_error (const char *command, const char *args)
 
 const char *
 info_print_args_help (const char *prefix,
-		      const char *entity_kind)
+		      const char *entity_kind,
+		      bool document_n_flag)
 {
   return xstrprintf (_("\
 %sIf NAMEREGEXP is provided, only prints the %s whose name\n\
@@ -204,8 +205,11 @@ matches TYPEREGEXP.  Note that the matching is done with the type\n\
 printed by the 'whatis' command.\n\
 By default, the command might produce headers and/or messages indicating\n\
 why no %s can be printed.\n\
-The flag -q disables the production of these headers and messages."),
-		     prefix, entity_kind, entity_kind, entity_kind);
+The flag -q disables the production of these headers and messages.%s"),
+		     prefix, entity_kind, entity_kind, entity_kind,
+		     (document_n_flag ? _("\n\
+By default, the command will include non-debug symbols in the output;\n\
+these can be excluded using the -n flag.") : ""));
 }
 
 /* See documentation in cli-utils.h.  */
@@ -435,58 +439,3 @@ validate_flags_qcs (const char *which_command, qcs_flags *flags)
     error (_("%s: -c and -s are mutually exclusive"), which_command);
 }
 
-/* The options used by the 'info variables' commands and similar.  */
-
-static const gdb::option::option_def info_print_options_defs[] = {
-  gdb::option::boolean_option_def<info_print_options> {
-    "q",
-    [] (info_print_options *opt) { return &opt->quiet; },
-    nullptr, /* show_cmd_cb */
-    nullptr /* set_doc */
-  },
-
-  gdb::option::string_option_def<info_print_options> {
-    "t",
-    [] (info_print_options *opt) { return &opt->type_regexp; },
-    nullptr, /* show_cmd_cb */
-    nullptr /* set_doc */
-  }
-};
-
-/* Returns the option group used by 'info variables' and similar.  */
-
-static gdb::option::option_def_group
-make_info_print_options_def_group (info_print_options *opts)
-{
-  return {{info_print_options_defs}, opts};
-}
-
-/* See documentation in cli-utils.h.  */
-
-void
-extract_info_print_options (info_print_options *opts,
-			    const char **args)
-{
-  auto grp = make_info_print_options_def_group (opts);
-  gdb::option::process_options
-    (args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
-  if (*args != nullptr && **args == '\0')
-    *args = nullptr;
-}
-
-/* See documentation in cli-utils.h.  */
-
-void
-info_print_command_completer (struct cmd_list_element *ignore,
-			      completion_tracker &tracker,
-			      const char *text, const char * /* word */)
-{
-  const auto group
-    = make_info_print_options_def_group (nullptr);
-  if (gdb::option::complete_options
-      (tracker, &text, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, group))
-    return;
-
-  const char *word = advance_to_expression_complete_word_point (tracker, text);
-  symbol_completer (ignore, tracker, text, word);
-}
diff --git a/gdb/cli/cli-utils.h b/gdb/cli/cli-utils.h
index 17cdd842b2..cbe8ff66e1 100644
--- a/gdb/cli/cli-utils.h
+++ b/gdb/cli/cli-utils.h
@@ -47,38 +47,6 @@ extern int get_number (char **);
    error instead of returning 0.  */
 extern ULONGEST get_ulongest (const char **pp, int trailer = '\0');
 
-/* Structure to hold the values of the options used by the 'info
-   variables' command and other similar commands.  These correspond to the
-   -q and -t options.  */
-
-struct info_print_options
-{
-  int quiet = false;
-  char *type_regexp = nullptr;
-
-  ~info_print_options ()
-  {
-    xfree (type_regexp);
-  }
-};
-
-/* Extract options from ARGS for commands like 'info variables', placing
-   the options into OPTS.  ARGS is updated to point to the first character
-   after the options, or, if there is nothing after the options, then ARGS
-   is set to nullptr.  */
-
-extern void extract_info_print_options (info_print_options *opts,
-					const char **args);
-
-/* Function that can be used as a command completer for 'info variable'
-   and friends.  This offers command option completion as well as symbol
-   completion.  At the moment all symbols are offered for all commands.  */
-
-extern void info_print_command_completer (struct cmd_list_element *ignore,
-					  completion_tracker &tracker,
-					  const char *text,
-					  const char * /* word */);
-
 /* Throws an error telling the user that ARGS starts with an option
    unrecognized by COMMAND.  */
 
@@ -87,10 +55,13 @@ extern void report_unrecognized_option_error (const char *command,
 
 
 /* Builds the help string for a command documented by PREFIX,
-   followed by the extract_info_print_args help for ENTITY_KIND.  */
+   followed by the extract_info_print_args help for ENTITY_KIND.  If
+   DOCUMENT_N_FLAG is true then help text descibing the -n flag is also
+   included.  */
 
 const char *info_print_args_help (const char *prefix,
-				  const char *entity_kind);
+				  const char *entity_kind,
+				  bool document_n_flag);
 
 /* Parse a number or a range.
    A number will be of the form handled by get_number.
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 7fa73fb40f..a5328259e0 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-27  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.texinfo (Symbols): Add information about the -n flag to
+	"info variables" and "info functions".
+
 2019-08-25  Yoshinori Sato <ysato@users.sourceforge.jp>
 
         * gdb.texinfo (Standard Target Features): Add RX Features sub-section.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index e1bc8143e6..53b7de91e4 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -18594,7 +18594,7 @@ The matching is case-sensitive, except on operating systems that
 have case-insensitive filesystem (e.g., MS-Windows).
 
 @kindex info functions
-@item info functions [-q]
+@item info functions [-q] [-n]
 Print the names and data types of all defined functions.
 Similarly to @samp{info types}, this command groups its output by source
 files and annotates each function definition with its source line
@@ -18607,11 +18607,16 @@ to print the function name and type according to the
 language of the function, other values mean to use
 the manually specified language (see @ref{Manually, ,Set Language Manually}).
 
+The @samp{-n} flag excludes @dfn{non-debugging symbols} from the
+results.  A non-debugging symbol is a symbol that comes from the
+executable's symbol table, not from the debug information (for
+example, DWARF) associated with the executable.
+
 The optional flag @samp{-q}, which stands for @samp{quiet}, disables
 printing header information and messages explaining why no functions
 have been printed.
 
-@item info functions [-q] [-t @var{type_regexp}] [@var{regexp}]
+@item info functions [-q] [-n] [-t @var{type_regexp}] [@var{regexp}]
 Like @samp{info functions}, but only print the names and data types
 of the functions selected with the provided regexp(s).
 
@@ -18641,7 +18646,7 @@ is printed only if its name matches @var{regexp} and its type matches
 
 
 @kindex info variables
-@item info variables [-q]
+@item info variables [-q] [-n]
 Print the names and data types of all variables that are defined
 outside of functions (i.e.@: excluding local variables).
 The printed variables are grouped by source files and annotated with
@@ -18654,11 +18659,13 @@ to print the variable name and type according to the
 language of the variable, other values mean to use
 the manually specified language (see @ref{Manually, ,Set Language Manually}).
 
+The @samp{-n} flag excludes non-debugging symbols from the results.
+
 The optional flag @samp{-q}, which stands for @samp{quiet}, disables
 printing header information and messages explaining why no variables
 have been printed.
 
-@item info variables [-q] [-t @var{type_regexp}] [@var{regexp}]
+@item info variables [-q] [-n] [-t @var{type_regexp}] [@var{regexp}]
 Like @kbd{info variables}, but only print the variables selected
 with the provided regexp(s).
 
diff --git a/gdb/python/python.c b/gdb/python/python.c
index cca7c4cd6b..b309ae91ba 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -739,10 +739,10 @@ gdbpy_rbreak (PyObject *self, PyObject *args, PyObject *kw)
       const char **files = symtab_paths.vec.data ();
 
       symbols = search_symbols (regex, FUNCTIONS_DOMAIN, NULL,
-				symtab_paths.vec.size (), files);
+				symtab_paths.vec.size (), files, false);
     }
   else
-    symbols = search_symbols (regex, FUNCTIONS_DOMAIN, NULL, 0, NULL);
+    symbols = search_symbols (regex, FUNCTIONS_DOMAIN, NULL, 0, NULL, false);
 
   /* Count the number of symbols (both symbols and optionally minimal
      symbols) so we can correctly check the throttle limit.  */
diff --git a/gdb/stack.c b/gdb/stack.c
index 06431ea354..10a88e99ab 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -2417,13 +2417,76 @@ print_frame_local_vars (struct frame_info *frame,
     }
 }
 
+/* Structure to hold the values of the options used by the 'info
+   variables' command and other similar commands.  These correspond to the
+   -q and -t options.  */
+
+struct info_print_options
+{
+  int quiet = false;
+  char *type_regexp = nullptr;
+
+  ~info_print_options ()
+  {
+    xfree (type_regexp);
+  }
+};
+
+/* The options used by the 'info locals' and 'info args' commands.  */
+
+static const gdb::option::option_def info_print_options_defs[] = {
+  gdb::option::boolean_option_def<info_print_options> {
+    "q",
+    [] (info_print_options *opt) { return &opt->quiet; },
+    nullptr, /* show_cmd_cb */
+    nullptr /* set_doc */
+  },
+
+  gdb::option::string_option_def<info_print_options> {
+    "t",
+    [] (info_print_options *opt) { return &opt->type_regexp; },
+    nullptr, /* show_cmd_cb */
+    nullptr /* set_doc */
+  }
+};
+
+/* Returns the option group used by 'info locals' and 'info args'
+   commands.  */
+
+static gdb::option::option_def_group
+make_info_print_options_def_group (info_print_options *opts)
+{
+  return {{info_print_options_defs}, opts};
+}
+
+/* Command completer for 'info locals' and 'info args'.  */
+
+static void
+info_print_command_completer (struct cmd_list_element *ignore,
+			      completion_tracker &tracker,
+			      const char *text, const char * /* word */)
+{
+  const auto group
+    = make_info_print_options_def_group (nullptr);
+  if (gdb::option::complete_options
+      (tracker, &text, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, group))
+    return;
+
+  const char *word = advance_to_expression_complete_word_point (tracker, text);
+  symbol_completer (ignore, tracker, text, word);
+}
+
 /* Implement the 'info locals' command.  */
 
 void
 info_locals_command (const char *args, int from_tty)
 {
   info_print_options opts;
-  extract_info_print_options (&opts, &args);
+  auto grp = make_info_print_options_def_group (&opts);
+  gdb::option::process_options
+    (&args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
+  if (args != nullptr && *args == '\0')
+    args = nullptr;
 
   print_frame_local_vars (get_selected_frame (_("No frame selected.")),
 			  opts.quiet, args, opts.type_regexp,
@@ -2530,7 +2593,11 @@ void
 info_args_command (const char *args, int from_tty)
 {
   info_print_options opts;
-  extract_info_print_options (&opts, &args);
+  auto grp = make_info_print_options_def_group (&opts);
+  gdb::option::process_options
+    (&args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
+  if (args != nullptr && *args == '\0')
+    args = nullptr;
 
   print_frame_arg_vars (get_selected_frame (_("No frame selected.")),
 			opts.quiet, args, opts.type_regexp, gdb_stdout);
@@ -3487,14 +3554,16 @@ Usage: info frame level LEVEL"),
 All local variables of current stack frame or those matching REGEXPs.\n\
 Usage: info locals [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n\
 Prints the local variables of the current stack frame.\n"),
-				  _("local variables")));
+					_("local variables"),
+					false));
   set_cmd_completer_handle_brkchars (cmd, info_print_command_completer);
   cmd = add_info ("args", info_args_command,
 		  info_print_args_help (_("\
 All argument variables of current stack frame or those matching REGEXPs.\n\
 Usage: info args [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n\
 Prints the argument variables of the current stack frame.\n"),
-				  _("argument variables")));
+					_("argument variables"),
+					false));
   set_cmd_completer_handle_brkchars (cmd, info_print_command_completer);
 
   if (dbx_commands)
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 787ecfe33b..7762c85708 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -4453,12 +4453,16 @@ sort_search_symbols_remove_dups (std::vector<symbol_search> *result)
 
    Within each file the results are sorted locally; each symtab's global and
    static blocks are separately alphabetized.
-   Duplicate entries are removed.  */
+   Duplicate entries are removed.
+
+   When EXCLUDE_MINSYMS is false then matching minsyms are also returned,
+   otherwise they are excluded.  */
 
 std::vector<symbol_search>
 search_symbols (const char *regexp, enum search_domain kind,
 		const char *t_regexp,
-		int nfiles, const char *files[])
+		int nfiles, const char *files[],
+		bool exclude_minsyms)
 {
   const struct blockvector *bv;
   const struct block *b;
@@ -4674,6 +4678,7 @@ search_symbols (const char *regexp, enum search_domain kind,
      as we assume that a minimal symbol does not have a type.  */
 
   if ((found_misc || (nfiles == 0 && kind != FUNCTIONS_DOMAIN))
+      && !exclude_minsyms
       && !treg.has_value ())
     {
       for (objfile *objfile : current_program_space->objfiles ())
@@ -4820,7 +4825,7 @@ print_msymbol_info (struct bound_minimal_symbol msymbol)
    matches.  */
 
 static void
-symtab_symbol_info (bool quiet,
+symtab_symbol_info (bool quiet, bool exclude_minsyms,
 		    const char *regexp, enum search_domain kind,
 		    const char *t_regexp, int from_tty)
 {
@@ -4836,7 +4841,8 @@ symtab_symbol_info (bool quiet,
 
   /* Must make sure that if we're interrupted, symbols gets freed.  */
   std::vector<symbol_search> symbols = search_symbols (regexp, kind,
-						       t_regexp, 0, NULL);
+						       t_regexp, 0, NULL,
+						       exclude_minsyms);
 
   if (!quiet)
     {
@@ -4889,15 +4895,87 @@ symtab_symbol_info (bool quiet,
     }
 }
 
+/* Structure to hold the values of the options used by the 'info variables'
+   and 'info functions' commands.  These correspond to the -q, -t, and -n
+   options.  */
+
+struct info_print_options
+{
+  int quiet = false;
+  int exclude_minsyms = false;
+  char *type_regexp = nullptr;
+
+  ~info_print_options ()
+  {
+    xfree (type_regexp);
+  }
+};
+
+/* The options used by the 'info variables' and 'info functions'
+   commands.  */
+
+static const gdb::option::option_def info_print_options_defs[] = {
+  gdb::option::boolean_option_def<info_print_options> {
+    "q",
+    [] (info_print_options *opt) { return &opt->quiet; },
+    nullptr, /* show_cmd_cb */
+    nullptr /* set_doc */
+  },
+
+  gdb::option::boolean_option_def<info_print_options> {
+    "n",
+    [] (info_print_options *opt) { return &opt->exclude_minsyms; },
+    nullptr, /* show_cmd_cb */
+    nullptr /* set_doc */
+  },
+
+  gdb::option::string_option_def<info_print_options> {
+    "t",
+    [] (info_print_options *opt) { return &opt->type_regexp; },
+    nullptr, /* show_cmd_cb */
+    nullptr /* set_doc */
+  }
+};
+
+/* Returns the option group used by 'info variables' and 'info
+   functions'.  */
+
+static gdb::option::option_def_group
+make_info_print_options_def_group (info_print_options *opts)
+{
+  return {{info_print_options_defs}, opts};
+}
+
+/* Command completer for 'info variables' and 'info functions'.  */
+
+static void
+info_print_command_completer (struct cmd_list_element *ignore,
+			      completion_tracker &tracker,
+			      const char *text, const char * /* word */)
+{
+  const auto group
+    = make_info_print_options_def_group (nullptr);
+  if (gdb::option::complete_options
+      (tracker, &text, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, group))
+    return;
+
+  const char *word = advance_to_expression_complete_word_point (tracker, text);
+  symbol_completer (ignore, tracker, text, word);
+}
+
 /* Implement the 'info variables' command.  */
 
 static void
 info_variables_command (const char *args, int from_tty)
 {
   info_print_options opts;
-  extract_info_print_options (&opts, &args);
+  auto grp = make_info_print_options_def_group (&opts);
+  gdb::option::process_options
+    (&args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
+  if (args != nullptr && *args == '\0')
+    args = nullptr;
 
-  symtab_symbol_info (opts.quiet, args, VARIABLES_DOMAIN,
+  symtab_symbol_info (opts.quiet, opts.exclude_minsyms, args, VARIABLES_DOMAIN,
 		      opts.type_regexp, from_tty);
 }
 
@@ -4907,10 +4985,14 @@ static void
 info_functions_command (const char *args, int from_tty)
 {
   info_print_options opts;
-  extract_info_print_options (&opts, &args);
+  auto grp = make_info_print_options_def_group (&opts);
+  gdb::option::process_options
+    (&args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
+  if (args != nullptr && *args == '\0')
+    args = nullptr;
 
-  symtab_symbol_info (opts.quiet, args, FUNCTIONS_DOMAIN,
-		      opts.type_regexp, from_tty);
+  symtab_symbol_info (opts.quiet, opts.exclude_minsyms, args,
+		      FUNCTIONS_DOMAIN, opts.type_regexp, from_tty);
 }
 
 /* Holds the -q option for the 'info types' command.  */
@@ -4951,7 +5033,7 @@ info_types_command (const char *args, int from_tty)
     (&args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
   if (args != nullptr && *args == '\0')
     args = nullptr;
-  symtab_symbol_info (opts.quiet, args, TYPES_DOMAIN, NULL, from_tty);
+  symtab_symbol_info (opts.quiet, false, args, TYPES_DOMAIN, NULL, from_tty);
 }
 
 /* Command completer for 'info types' command.  */
@@ -5012,7 +5094,8 @@ rbreak_command (const char *regexp, int from_tty)
   std::vector<symbol_search> symbols = search_symbols (regexp,
 						       FUNCTIONS_DOMAIN,
 						       NULL,
-						       nfiles, files);
+						       nfiles, files,
+						       false);
 
   scoped_rbreak_breakpoints finalize;
   for (const symbol_search &p : symbols)
@@ -6201,27 +6284,30 @@ _initialize_symtab (void)
   c = add_info ("variables", info_variables_command,
 		info_print_args_help (_("\
 All global and static variable names or those matching REGEXPs.\n\
-Usage: info variables [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n\
+Usage: info variables [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n\
 Prints the global and static variables.\n"),
-				  _("global and static variables")));
+				      _("global and static variables"),
+				      true));
   set_cmd_completer_handle_brkchars (c, info_print_command_completer);
   if (dbx_commands)
     {
       c = add_com ("whereis", class_info, info_variables_command,
 		   info_print_args_help (_("\
 All global and static variable names, or those matching REGEXPs.\n\
-Usage: whereis [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n\
+Usage: whereis [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n\
 Prints the global and static variables.\n"),
-				   _("global and static variables")));
+					 _("global and static variables"),
+					 true));
       set_cmd_completer_handle_brkchars (c, info_print_command_completer);
     }
 
   c = add_info ("functions", info_functions_command,
 		info_print_args_help (_("\
 All function names or those matching REGEXPs.\n\
-Usage: info functions [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n\
+Usage: info functions [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n\
 Prints the functions.\n"),
-				  _("functions")));
+				      _("functions"),
+				      true));
   set_cmd_completer_handle_brkchars (c, info_print_command_completer);
 
   c = add_info ("types", info_types_command, _("\
diff --git a/gdb/symtab.h b/gdb/symtab.h
index f2d59a9f90..f38e544cdb 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -2027,7 +2027,8 @@ extern std::vector<symbol_search> search_symbols (const char *,
 						  enum search_domain,
 						  const char *,
 						  int,
-						  const char **);
+						  const char **,
+						  bool);
 extern bool treg_matches_sym_type_name (const compiled_regex &treg,
 					const struct symbol *sym);
 
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 3117fe78bf..7b6793b0a2 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2019-08-27  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.base/info-fun.exp: Extend to test the -n flag for 'info
+	functions'.  Reindent as needed.
+	* gdb.base/info-var-f1.c: New file.
+	* gdb.base/info-var-f2.c: New file.
+	* gdb.base/info-var.exp: New file.
+	* gdb.base/info-var.h: New file.
+
 2019-08-26  Tom de Vries  <tdevries@suse.de>
 
 	PR c++/24852
diff --git a/gdb/testsuite/gdb.base/info-fun.exp b/gdb/testsuite/gdb.base/info-fun.exp
index 208525eda6..cee3a09ac1 100644
--- a/gdb/testsuite/gdb.base/info-fun.exp
+++ b/gdb/testsuite/gdb.base/info-fun.exp
@@ -30,54 +30,63 @@ if [get_compiler_info] {
     return -1
 }
 
-# SEP must be last for the possible `unsupported' error path.
-foreach libsepdebug {NO IN SEP} { with_test_prefix "$libsepdebug" {
+foreach_with_prefix n_flag { 0 1 } {
 
-    set sep_lib_flags $lib_flags
-    if {$libsepdebug != "NO"} {
-	lappend sep_lib_flags {debug}
-    }
-    if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $sep_lib_flags] != ""
-	 || [gdb_compile $srcdir/$subdir/${srcfile} ${binfile} \
-		 executable $bin_flags] != "" } {
-      untested "failed to compile"
-      return -1
-    }
+    # SEP must be last for the possible `unsupported' error path.
+    foreach libsepdebug {NO IN SEP} { with_test_prefix "$libsepdebug" {
 
-    if {$libsepdebug == "SEP"} {
-	if {[gdb_gnu_strip_debug $binfile_lib] != 0} {
-	    unsupported "could not split debug of $binfile_lib."
-	    return
-	} else {
-	    pass "split solib"
+	set sep_lib_flags $lib_flags
+	if {$libsepdebug != "NO"} {
+	    lappend sep_lib_flags {debug}
+	}
+	if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $sep_lib_flags] != ""
+	     || [gdb_compile $srcdir/$subdir/${srcfile} ${binfile} \
+		     executable $bin_flags] != "" } {
+	    untested "failed to compile"
+	    return -1
 	}
-    }
 
-    clean_restart $executable
+	if {$libsepdebug == "SEP"} {
+	    if {[gdb_gnu_strip_debug $binfile_lib] != 0} {
+		unsupported "could not split debug of $binfile_lib."
+		return
+	    } else {
+		pass "split solib"
+	    }
+	}
+
+	clean_restart $executable
+
+	if ![runto_main] then {
+	    fail "can't run to main"
+	    return 0
+	}
 
-    if ![runto_main] then {
-      fail "can't run to main"
-      return 0
-    }
+	set match_str {All functions matching regular expression "foo":[\r\n]*}
+	if { "$libsepdebug" != "NO"  } {
+	    append match_str {File .*/info-fun-solib[.]c:[\r\n]*}
+	    append match_str {\d+:\tint foo\(void\);[\r\n]*}
+	}
 
-    set match_str {All functions matching regular expression "foo":[\r\n]*}
-    if { "$libsepdebug" != "NO"  } {
-	append match_str {File .*/info-fun-solib[.]c:[\r\n]*}
-	append match_str {\d+:\tint foo\(void\);[\r\n]*}
-    }
-    append match_str {Non-debugging symbols:[\r\n]*}
-    # Note: Targets like {m68k,ppc64,s390x}-linux also have, e.g.,
-    # 00000011.plt_call.foo+0 (m68k).
-    set plt_foo_match "($hex \[^\r\n\]*plt\[^\r\n\]*foo\[^\r\n\]*\[\r\n\]*)?"
-    append match_str $plt_foo_match
-    # This text we want to match precisely.
-    append match_str "$hex *foo(@plt)?\[\r\n\]*"
-    # Watch for again to not have to worry about the order of appearance.
-    append match_str $plt_foo_match
-    if { "$libsepdebug" == "NO"  } {
-	# Note: The ".?" is for targets like m68k-linux that have ".foo" here.
-	append match_str "$hex *.?foo\[\r\n\]*"
-    }
+	set opt ""
+	if { !$n_flag } {
+	    append match_str {Non-debugging symbols:[\r\n]*}
+	    # Note: Targets like {m68k,ppc64,s390x}-linux also have, e.g.,
+	    # 00000011.plt_call.foo+0 (m68k).
+	    set plt_foo_match "($hex \[^\r\n\]*plt\[^\r\n\]*foo\[^\r\n\]*\[\r\n\]*)?"
+	    append match_str $plt_foo_match
+	    # This text we want to match precisely.
+	    append match_str "$hex *foo(@plt)?\[\r\n\]*"
+	    # Watch for again to not have to worry about the order of appearance.
+	    append match_str $plt_foo_match
+	    if { "$libsepdebug" == "NO"  } {
+		# Note: The ".?" is for targets like m68k-linux that have ".foo" here.
+		append match_str "$hex *.?foo\[\r\n\]*"
+	    }
+	} else {
+	    set opt "-n"
+	}
 
-    gdb_test "info fun foo" "$match_str"
-}}
+	gdb_test "info fun $opt foo" "$match_str"
+    }}
+}
diff --git a/gdb/testsuite/gdb.base/info-var-f1.c b/gdb/testsuite/gdb.base/info-var-f1.c
new file mode 100644
index 0000000000..b0587f12da
--- /dev/null
+++ b/gdb/testsuite/gdb.base/info-var-f1.c
@@ -0,0 +1,24 @@
+/* Copyright 2019 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "info-var.h"
+
+static int f1_var = -3;
+
+int
+main ()
+{
+  return global_var + get_offset() + f1_var;
+}
diff --git a/gdb/testsuite/gdb.base/info-var-f2.c b/gdb/testsuite/gdb.base/info-var-f2.c
new file mode 100644
index 0000000000..fdff696ebe
--- /dev/null
+++ b/gdb/testsuite/gdb.base/info-var-f2.c
@@ -0,0 +1,26 @@
+/* Copyright 2019 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "info-var.h"
+
+int global_var = 1;
+
+static int f2_var = 2;
+
+int
+get_offset (void)
+{
+  return f2_var;
+}
diff --git a/gdb/testsuite/gdb.base/info-var.exp b/gdb/testsuite/gdb.base/info-var.exp
new file mode 100644
index 0000000000..5a07d6214d
--- /dev/null
+++ b/gdb/testsuite/gdb.base/info-var.exp
@@ -0,0 +1,60 @@
+# Copyright 2019 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Some basic testing of 'info variables'.
+
+standard_testfile info-var-f1.c info-var-f2.c
+
+if {[prepare_for_testing "failed to prepare" \
+	 "${testfile}" "$srcfile $srcfile2" "debug"]} {
+    return -1
+}
+
+if ![runto_main] then {
+    fail "can't run to main"
+    return 0
+}
+
+gdb_test "info variables" \
+    [multi_line \
+	 "All defined variables:" \
+	 "" \
+	 "File .*${srcfile}:" \
+	 "18:\[ \t\]+static int f1_var;" \
+	 "" \
+	 "File .*${srcfile2}:" \
+	 "18:\[ \t\]+int global_var;" \
+	 "20:\[ \t\]+static int f2_var;" \
+	 "" \
+	 "Non-debugging symbols:" \
+	 ".*"]
+
+gdb_test "info variables -n" \
+    [multi_line \
+	 "All defined variables:" \
+	 "" \
+	 "File .*${srcfile}:" \
+	 "18:\[ \t\]+static int f1_var;" \
+	 "" \
+	 "File .*${srcfile2}:" \
+	 "18:\[ \t\]+int global_var;" \
+	 "20:\[ \t\]+static int f2_var;" ]
+
+gdb_test "info variables -n global" \
+    [multi_line \
+	 "All variables matching regular expression \"global\":" \
+	 "" \
+	 "File .*${srcfile2}:" \
+	 "18:\[ \t\]+int global_var;" ]
diff --git a/gdb/testsuite/gdb.base/info-var.h b/gdb/testsuite/gdb.base/info-var.h
new file mode 100644
index 0000000000..d65db82474
--- /dev/null
+++ b/gdb/testsuite/gdb.base/info-var.h
@@ -0,0 +1,18 @@
+/* Copyright 2019 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+extern int global_var;
+
+extern int get_offset (void);


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix compiler warning in linux-namespaces.c
@ 2019-08-27 19:31 gdb-buildbot
  2019-08-28 12:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-27 19:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 550105b77914a8b06498318775b28e85c610b9a3 ***

commit 550105b77914a8b06498318775b28e85c610b9a3
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Aug 27 13:22:38 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Tue Aug 27 13:53:05 2019 -0500

    Fix compiler warning in linux-namespaces.c
    
    ../../gdb/nat/linux-namespaces.c: In function void mnsh_main(int):
    ../../gdb/nat/linux-namespaces.c:604:8: warning: fd may be used uninitialized in this function [-Wmaybe-uninitialized]
      close (fd);
      ~~~~~~^~~~
    
    And the warning is correct -- mnsh_recv_message can return -1 and leave fd
    uninitialized, and mnsh_main will still call close (fd) if that happens.
    
    Initialize fd to -1 to avoid that.
    
    gdb/ChangeLog:
    
    2019-08-27  Christian Biesinger  <cbiesinger@google.com>
    
            * nat/linux-namespaces.c (mnsh_main): Initialize fd (to -1).

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c7d2dae4ff..002825312c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-27  Christian Biesinger  <cbiesinger@google.com>
+
+	* nat/linux-namespaces.c (mnsh_main): Initialize fd (to -1).
+
 2019-08-27  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* cli/cli-utils.c (info_print_options_defs): Delete.
diff --git a/gdb/nat/linux-namespaces.c b/gdb/nat/linux-namespaces.c
index 503f755903..e49bc1ade3 100644
--- a/gdb/nat/linux-namespaces.c
+++ b/gdb/nat/linux-namespaces.c
@@ -562,7 +562,7 @@ mnsh_main (int sock)
   while (1)
     {
       enum mnsh_msg_type type;
-      int fd, int1, int2;
+      int fd = -1, int1, int2;
       char buf[PATH_MAX];
       ssize_t size, response = -1;
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Implement la_print_typedef for Fortran
@ 2019-08-28 13:33 gdb-buildbot
  2019-08-28 13:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-28 13:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1f20c35ea4a0095e6a9d9b7819f6c437a0c4cfc1 ***

commit 1f20c35ea4a0095e6a9d9b7819f6c437a0c4cfc1
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Tue Jul 9 15:47:19 2019 +0100
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Wed Aug 28 13:33:54 2019 +0100

    gdb/fortran: Implement la_print_typedef for Fortran
    
    Implement an la_print_typedef method for Fortran, this allows 'info
    types' to work for Fortran.  The implementation is just copied from
    ada_print_typedef (with the appropriate changes).
    
    To support the testing of this patch I added a new proc,
    fortran_character1, to lib/fortran.exp which returns a regexp to match
    a 1-byte character type.  The regexp returned is correct for current
    versions of gFortran.  All of the other regexp are guesses based on
    all of the other support procs in lib/fortran.exp, I haven't tested
    them myself.
    
    gdb/ChangeLog:
    
            * f-lang.c (f_language_defn): Use f_print_typedef.
            * f-lang.h (f_print_typedef): Declare.
            * f-typeprint.c (f_print_typedef): Define.
    
    gdb/testsuite/ChangeLog:
    
            * gdb.fortran/info-types.exp: New file.
            * gdb.fortran/info-types.f90: New file.
            * lib/fortran.exp (fortran_character1): New proc.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 002825312c..4767e03b7e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-28  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* f-lang.c (f_language_defn): Use f_print_typedef.
+	* f-lang.h (f_print_typedef): Declare.
+	* f-typeprint.c (f_print_typedef): Define.
+
 2019-08-27  Christian Biesinger  <cbiesinger@google.com>
 
 	* nat/linux-namespaces.c (mnsh_main): Initialize fd (to -1).
diff --git a/gdb/f-lang.c b/gdb/f-lang.c
index e93a5f3427..ce7f1471c5 100644
--- a/gdb/f-lang.c
+++ b/gdb/f-lang.c
@@ -644,7 +644,7 @@ extern const struct language_defn f_language_defn =
   f_printstr,			/* function to print string constant */
   f_emit_char,			/* Function to print a single character */
   f_print_type,			/* Print a type using appropriate syntax */
-  default_print_typedef,	/* Print a typedef using appropriate syntax */
+  f_print_typedef,		/* Print a typedef using appropriate syntax */
   f_val_print,			/* Print a value using appropriate syntax */
   c_value_print,		/* FIXME */
   default_read_var_value,	/* la_read_var_value */
diff --git a/gdb/f-lang.h b/gdb/f-lang.h
index 1ba529d76c..cf6024c445 100644
--- a/gdb/f-lang.h
+++ b/gdb/f-lang.h
@@ -28,6 +28,11 @@ struct parser_state;
 
 extern int f_parse (struct parser_state *);
 
+/* Implement the la_print_typedef language method for Fortran.  */
+
+extern void f_print_typedef (struct type *type, struct symbol *new_symbol,
+			     struct ui_file *stream);
+
 extern void f_print_type (struct type *, const char *, struct ui_file *, int,
 			  int, const struct type_print_options *);
 
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
index 17ac02f4cc..92b5093874 100644
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -45,6 +45,17 @@ void f_type_print_varspec_prefix (struct type *, struct ui_file *,
 void f_type_print_base (struct type *, struct ui_file *, int, int);
 \f
 
+/* See documentation in f-lang.h.  */
+
+void
+f_print_typedef (struct type *type, struct symbol *new_symbol,
+		 struct ui_file *stream)
+{
+  type = check_typedef (type);
+  f_print_type (type, "", stream, 0, 0, &type_print_raw_options);
+  fprintf_filtered (stream, "\n");
+}
+
 /* LEVEL is the depth to indent lines by.  */
 
 void
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 7b6793b0a2..02a3c01667 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-28  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.fortran/info-types.exp: New file.
+	* gdb.fortran/info-types.f90: New file.
+	* lib/fortran.exp (fortran_character1): New proc.
+
 2019-08-27  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* gdb.base/info-fun.exp: Extend to test the -n flag for 'info
diff --git a/gdb/testsuite/gdb.fortran/info-types.exp b/gdb/testsuite/gdb.fortran/info-types.exp
new file mode 100644
index 0000000000..9571dc4559
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/info-types.exp
@@ -0,0 +1,45 @@
+# Copyright 2019 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# This file tests 'info types' for some Fortran types.
+
+load_lib "fortran.exp"
+
+if { [skip_fortran_tests] } { continue }
+
+standard_testfile .f90
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}] } {
+    return -1
+}
+
+if { ![runto MAIN__] } {
+    perror "Could not run to breakpoint `MAIN__'."
+    continue
+}
+
+set integer4 [fortran_int4]
+set logical4 [fortran_logical4]
+set character1 [fortran_character1]
+
+gdb_test "info types" \
+    [multi_line \
+	 "All defined types:" \
+	 "" \
+	 "File .*:" \
+	 "\[\t \]+${character1}" \
+	 "\[\t \]+${integer4}" \
+	 "\[\t \]+${logical4}" \
+	 "16:\[\t \]+Type s1;" ]
diff --git a/gdb/testsuite/gdb.fortran/info-types.f90 b/gdb/testsuite/gdb.fortran/info-types.f90
new file mode 100644
index 0000000000..21c9d9df63
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/info-types.f90
@@ -0,0 +1,25 @@
+! Copyright 2019 Free Software Foundation, Inc.
+!
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 2 of the License, or
+! (at your option) any later version.
+!
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+! GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License
+! along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+program info_types_test
+  type :: s1
+     integer :: a
+  end type s1
+
+  logical :: l
+  type (s1) :: var_a
+  var_a%a = 1
+  l = .FALSE.
+end program info_types_test
diff --git a/gdb/testsuite/lib/fortran.exp b/gdb/testsuite/lib/fortran.exp
index d3a35cd291..81811dbc3c 100644
--- a/gdb/testsuite/lib/fortran.exp
+++ b/gdb/testsuite/lib/fortran.exp
@@ -88,3 +88,15 @@ proc fortran_logical4 {} {
 	return "unknown"
     }
 }
+
+proc fortran_character1 {} {
+    if {[test_compiler_info {gcc-4-[012]-*}]} {
+	return "character1"
+    } elseif {[test_compiler_info {gcc-*}]} {
+	return "character\\(kind=1\\)"
+    } elseif {[test_compiler_info {icc-*}]} {
+	return "CHARACTER\\(1\\)"
+    } else {
+	return "unknown"
+    }
+}


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/fortran: Don't include module symbols when searching for types
@ 2019-08-28 13:58 gdb-buildbot
  2019-08-28 15:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-28 13:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d8f27c6018adbb32a3ebba39a5abac44a6b9e67c ***

commit d8f27c6018adbb32a3ebba39a5abac44a6b9e67c
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Tue Jul 9 15:49:07 2019 +0100
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Wed Aug 28 13:33:55 2019 +0100

    gdb/fortran: Don't include module symbols when searching for types
    
    Currently the 'info types' command will return symbols that correspond
    to Fortran modules.  This is because the symbols are created with
    domain MODULE_DOMAIN and address_class LOC_TYPEDEF.  The address_class
    LOC_TYPEDEF is the same address_class used for type symbols which is
    why the modules show up when listing types.
    
    This commit explicitly prevents symbols in the MODULE_DOMAIN from
    appearing when we search for symbols in the TYPES_DOMAIN, this
    prevents the Fortran module symbols from appearing in the output of
    'info types'.
    
    gdb/ChangeLog:
    
            * symtab.c (search_symbols): Don't include MODULE_DOMAIN symbols
            when searching for types.
    
    gdb/testsuite/ChangeLog:
    
            * gdb.fortran/info-types.exp: Add module.
            * gdb.fortran/info-types.f90: Update expected results.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4767e03b7e..a82f7c64ae 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-28  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* symtab.c (search_symbols): Don't include MODULE_DOMAIN symbols
+	when searching for types.
+
 2019-08-28  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* f-lang.c (f_language_defn): Use f_print_typedef.
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 7762c85708..88e34de05b 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -4659,7 +4659,8 @@ search_symbols (const char *regexp, enum search_domain kind,
 				      || treg_matches_sym_type_name (*treg,
 								     sym)))
 			      || (kind == TYPES_DOMAIN
-				  && SYMBOL_CLASS (sym) == LOC_TYPEDEF))))
+				  && SYMBOL_CLASS (sym) == LOC_TYPEDEF
+				  && SYMBOL_DOMAIN (sym) != MODULE_DOMAIN))))
 		    {
 		      /* match */
 		      result.emplace_back (i, sym);
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 02a3c01667..3939a747c5 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-28  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.fortran/info-types.exp: Add module.
+	* gdb.fortran/info-types.f90: Update expected results.
+
 2019-08-28  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* gdb.fortran/info-types.exp: New file.
diff --git a/gdb/testsuite/gdb.fortran/info-types.exp b/gdb/testsuite/gdb.fortran/info-types.exp
index 9571dc4559..81e67395e8 100644
--- a/gdb/testsuite/gdb.fortran/info-types.exp
+++ b/gdb/testsuite/gdb.fortran/info-types.exp
@@ -42,4 +42,6 @@ gdb_test "info types" \
 	 "\[\t \]+${character1}" \
 	 "\[\t \]+${integer4}" \
 	 "\[\t \]+${logical4}" \
-	 "16:\[\t \]+Type s1;" ]
+	 "20:\[\t \]+Type __vtype_mod1_M1t1;" \
+	 "17:\[\t \]+Type m1t1;" \
+	 "22:\[\t \]+Type s1;" ]
diff --git a/gdb/testsuite/gdb.fortran/info-types.f90 b/gdb/testsuite/gdb.fortran/info-types.f90
index 21c9d9df63..0e27e1ddf0 100644
--- a/gdb/testsuite/gdb.fortran/info-types.f90
+++ b/gdb/testsuite/gdb.fortran/info-types.f90
@@ -13,13 +13,24 @@
 ! You should have received a copy of the GNU General Public License
 ! along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+module mod1
+  type :: m1t1
+     integer :: b
+  end type m1t1
+end module mod1
+
 program info_types_test
+  use mod1
+
   type :: s1
      integer :: a
   end type s1
 
   logical :: l
   type (s1) :: var_a
+  type (m1t1) :: var_b
+
   var_a%a = 1
+  var_b%b = 2
   l = .FALSE.
 end program info_types_test


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix Gnulib glob.c resource leaks found by Coverity
@ 2019-08-28 15:15 gdb-buildbot
  2019-08-28 16:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-28 15:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8ae0786c30a3a8d846994d0a6e7a00646f0bcd20 ***

commit 8ae0786c30a3a8d846994d0a6e7a00646f0bcd20
Author:     Gary Benson <gbenson@redhat.com>
AuthorDate: Wed Aug 28 15:19:28 2019 +0100
Commit:     Gary Benson <gbenson@redhat.com>
CommitDate: Wed Aug 28 15:19:28 2019 +0100

    Fix Gnulib glob.c resource leaks found by Coverity
    
    Coverity discovered a number of resource leaks in Gnulib's glob.c.
    This commit backports the Gnulib commits that fix the leaks.
    
    gnulib/ChangeLog:
    
            * patches/0003-Fix-glob-c-Coverity-issues.patch: New file.
            * update-gnulib.sh: List the above.
            * import/glob.c: Rebuild.

diff --git a/gnulib/ChangeLog b/gnulib/ChangeLog
index 0117dc5bae..181fccd44b 100644
--- a/gnulib/ChangeLog
+++ b/gnulib/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-28  Gary Benson  <gbenson@redhat.com>
+
+	* patches/0003-Fix-glob-c-Coverity-issues.patch: New file.
+	* update-gnulib.sh: List the above.
+	* import/glob.c: Rebuild.
+
 2019-06-21  Gary Benson  <gbenson@redhat.com>
 
 	* update-gnulib.sh: Adjust paths.
diff --git a/gnulib/import/glob.c b/gnulib/import/glob.c
index 4b04b902e5..416d210b63 100644
--- a/gnulib/import/glob.c
+++ b/gnulib/import/glob.c
@@ -734,6 +734,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
                       pwtmpbuf = malloc (pwbuflen);
                       if (pwtmpbuf == NULL)
                         {
+                          if (__glibc_unlikely (malloc_name))
+                            free (name);
                           retval = GLOB_NOSPACE;
                           goto out;
                         }
@@ -762,6 +764,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
                           if (newp == NULL)
                             {
                               free (malloc_pwtmpbuf);
+                              if (__glibc_unlikely (malloc_name))
+                                free (name);
                               retval = GLOB_NOSPACE;
                               goto out;
                             }
@@ -797,23 +801,30 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
                               malloc_home_dir = 1;
                             }
                           memcpy (home_dir, p->pw_dir, home_dir_len);
-
-                          free (pwtmpbuf);
                         }
                     }
+                  free (malloc_pwtmpbuf);
+                }
+              else
+                {
+                  if (__glibc_unlikely (malloc_name))
+                    free (name);
                 }
             }
           if (home_dir == NULL || home_dir[0] == '\0')
             {
+              if (__glibc_unlikely (malloc_home_dir))
+                free (home_dir);
               if (flags & GLOB_TILDE_CHECK)
                 {
-                  if (__glibc_unlikely (malloc_home_dir))
-                    free (home_dir);
                   retval = GLOB_NOMATCH;
                   goto out;
                 }
               else
-                home_dir = (char *) "~"; /* No luck.  */
+                {
+                  home_dir = (char *) "~"; /* No luck.  */
+                  malloc_home_dir = 0;
+                }
             }
 #  endif /* WINDOWS32 */
 # endif
@@ -855,6 +866,9 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
               dirname = newp;
               dirlen += home_len - 1;
               malloc_dirname = !use_alloca;
+
+              if (__glibc_unlikely (malloc_home_dir))
+                free (home_dir);
             }
           dirname_modified = 1;
         }
@@ -1027,9 +1041,12 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
                 free (malloc_pwtmpbuf);
 
                 if (flags & GLOB_TILDE_CHECK)
-                  /* We have to regard it as an error if we cannot find the
-                     home directory.  */
-                  return GLOB_NOMATCH;
+                  {
+                    /* We have to regard it as an error if we cannot find the
+                       home directory.  */
+                    retval = GLOB_NOMATCH;
+                    goto out;
+                  }
               }
           }
         }
@@ -1059,7 +1076,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
               free (pglob->gl_pathv);
               pglob->gl_pathv = NULL;
               pglob->gl_pathc = 0;
-              return GLOB_NOSPACE;
+              retval = GLOB_NOSPACE;
+              goto out;
             }
 
           new_gl_pathv = realloc (pglob->gl_pathv,
@@ -1077,12 +1095,19 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
               p = mempcpy (pglob->gl_pathv[newcount], dirname, dirlen);
               p[0] = '/';
               p[1] = '\0';
+              if (__glibc_unlikely (malloc_dirname))
+                free (dirname);
             }
           else
             {
-              pglob->gl_pathv[newcount] = strdup (dirname);
-              if (pglob->gl_pathv[newcount] == NULL)
-                goto nospace;
+              if (__glibc_unlikely (malloc_dirname))
+                pglob->gl_pathv[newcount] = dirname;
+              else
+                {
+                  pglob->gl_pathv[newcount] = strdup (dirname);
+                  if (pglob->gl_pathv[newcount] == NULL)
+                    goto nospace;
+                }
             }
           pglob->gl_pathv[++newcount] = NULL;
           ++pglob->gl_pathc;
@@ -1092,7 +1117,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
         }
 
       /* Not found.  */
-      return GLOB_NOMATCH;
+      retval = GLOB_NOMATCH;
+      goto out;
     }
 
   meta = __glob_pattern_type (dirname, !(flags & GLOB_NOESCAPE));
@@ -1138,7 +1164,10 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
       if (status != 0)
         {
           if ((flags & GLOB_NOCHECK) == 0 || status != GLOB_NOMATCH)
-            return status;
+            {
+              retval = status;
+              goto out;
+            }
           goto no_matches;
         }
 
@@ -1157,7 +1186,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
             if (interrupt_state)
               {
                 globfree (&dirs);
-                return GLOB_ABORTED;
+                retval = GLOB_ABORTED;
+                goto out;
               }
           }
 #endif /* SHELL.  */
@@ -1176,7 +1206,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
               globfree (&dirs);
               globfree (pglob);
               pglob->gl_pathc = 0;
-              return status;
+              retval = status;
+              goto out;
             }
 
           /* Stick the directory on the front of each name.  */
@@ -1187,7 +1218,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
               globfree (&dirs);
               globfree (pglob);
               pglob->gl_pathc = 0;
-              return GLOB_NOSPACE;
+              retval = GLOB_NOSPACE;
+              goto out;
             }
         }
 
@@ -1209,7 +1241,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
                 {
                 nospace2:
                   globfree (&dirs);
-                  return GLOB_NOSPACE;
+                  retval = GLOB_NOSPACE;
+                  goto out;
                 }
 
               new_gl_pathv = realloc (pglob->gl_pathv,
@@ -1224,7 +1257,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
                   globfree (&dirs);
                   globfree (pglob);
                   pglob->gl_pathc = 0;
-                  return GLOB_NOSPACE;
+                  retval = GLOB_NOSPACE;
+                  goto out;
                 }
 
               ++pglob->gl_pathc;
@@ -1236,7 +1270,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
           else
             {
               globfree (&dirs);
-              return GLOB_NOMATCH;
+              retval = GLOB_NOMATCH;
+              goto out;
             }
         }
 
@@ -1282,7 +1317,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
               flags = orig_flags;
               goto no_matches;
             }
-          return status;
+          retval = status;
+          goto out;
         }
 
       if (dirlen > 0)
@@ -1294,7 +1330,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
             {
               globfree (pglob);
               pglob->gl_pathc = 0;
-              return GLOB_NOSPACE;
+              retval = GLOB_NOSPACE;
+              goto out;
             }
         }
     }
@@ -1319,7 +1356,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
               {
                 globfree (pglob);
                 pglob->gl_pathc = 0;
-                return GLOB_NOSPACE;
+                retval = GLOB_NOSPACE;
+                goto out;
               }
             strcpy (&new[len - 2], "/");
             pglob->gl_pathv[i] = new;
diff --git a/gnulib/patches/0003-Fix-glob-c-Coverity-issues.patch b/gnulib/patches/0003-Fix-glob-c-Coverity-issues.patch
new file mode 100644
index 0000000000..f976bb9e1a
--- /dev/null
+++ b/gnulib/patches/0003-Fix-glob-c-Coverity-issues.patch
@@ -0,0 +1,279 @@
+Coverity discovered a number of resource leaks in Gnulib.
+The solution is to backport the following Gnulib commits:
+
+  commit 0eee3ccaae5bb3d0016a0da8b8e5108767c02748
+  Author: Bruno Haible <bruno@clisp.org>
+  Date:   Fri Mar 31 22:41:38 2017 +0200
+
+      glob: Fix memory leaks.
+
+      * lib/glob.c (glob): Free allocated memory before returning.
+      Reported by Coverity via Tim Rhsen.
+
+  commit b1d7f3165ba1c7a44a29017eb80491094aa240ba
+  Author: Bruno Haible <bruno@clisp.org>
+  Date:   Fri Mar 31 22:43:35 2017 +0200
+
+      glob: Fix invalid free() call.
+
+      * lib/glob.c (glob): Reset malloc_home_dir when assigning a pointer to
+      static storage to home_dir.
+      Reported by Coverity via Tim Rhsen.
+
+  commit 1540f3441555f756558f3a18e5f68914c0b72227
+  Author: Bruno Haible <bruno@clisp.org>
+  Date:   Sat Apr 1 15:15:18 2017 +0200
+
+      glob: Fix more memory leaks.
+
+      * lib/glob.c (glob): Free allocated memory before returning.
+      Reported by Coverity via Tim Rhsen.
+
+  commit b19cb256c9a4d3a138c27181cffee5513edb0e81
+  Author: Bruno Haible <bruno@clisp.org>
+  Date:   Thu Jul 6 23:21:49 2017 +0200
+
+      glob: Fix more memory leaks.
+
+      * lib/glob.c (glob): Free dirname before returning.
+      Reported by Coverity and Tim Rhsen.
+
+  commit 8cb994d1fc4a957359780e1a4187b4f250c1cea5
+  Author: Tim Rhsen <tim.ruehsen@gmx.de>
+  Date:   Mon Jul 10 19:02:19 2017 +0200
+
+      glob: Fix more memory leaks.
+
+      * lib/glob.c (glob): Use 'goto out' in order to free dirname before
+      returning.
+      Reported by Tim Rhsen.
+
+diff --git a/gnulib/import/glob.c b/gnulib/import/glob.c
+index 4b04b90..416d210 100644
+--- a/gdb/gnulib/import/glob.c
++++ b/gdb/gnulib/import/glob.c
+@@ -734,6 +734,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+                       pwtmpbuf = malloc (pwbuflen);
+                       if (pwtmpbuf == NULL)
+                         {
++                          if (__glibc_unlikely (malloc_name))
++                            free (name);
+                           retval = GLOB_NOSPACE;
+                           goto out;
+                         }
+@@ -762,6 +764,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+                           if (newp == NULL)
+                             {
+                               free (malloc_pwtmpbuf);
++                              if (__glibc_unlikely (malloc_name))
++                                free (name);
+                               retval = GLOB_NOSPACE;
+                               goto out;
+                             }
+@@ -797,23 +801,30 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+                               malloc_home_dir = 1;
+                             }
+                           memcpy (home_dir, p->pw_dir, home_dir_len);
+-
+-                          free (pwtmpbuf);
+                         }
+                     }
++                  free (malloc_pwtmpbuf);
++                }
++              else
++                {
++                  if (__glibc_unlikely (malloc_name))
++                    free (name);
+                 }
+             }
+           if (home_dir == NULL || home_dir[0] == '\0')
+             {
++              if (__glibc_unlikely (malloc_home_dir))
++                free (home_dir);
+               if (flags & GLOB_TILDE_CHECK)
+                 {
+-                  if (__glibc_unlikely (malloc_home_dir))
+-                    free (home_dir);
+                   retval = GLOB_NOMATCH;
+                   goto out;
+                 }
+               else
+-                home_dir = (char *) "~"; /* No luck.  */
++                {
++                  home_dir = (char *) "~"; /* No luck.  */
++                  malloc_home_dir = 0;
++                }
+             }
+ #  endif /* WINDOWS32 */
+ # endif
+@@ -855,6 +866,9 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+               dirname = newp;
+               dirlen += home_len - 1;
+               malloc_dirname = !use_alloca;
++
++              if (__glibc_unlikely (malloc_home_dir))
++                free (home_dir);
+             }
+           dirname_modified = 1;
+         }
+@@ -1027,9 +1041,12 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+                 free (malloc_pwtmpbuf);
+ 
+                 if (flags & GLOB_TILDE_CHECK)
+-                  /* We have to regard it as an error if we cannot find the
+-                     home directory.  */
+-                  return GLOB_NOMATCH;
++                  {
++                    /* We have to regard it as an error if we cannot find the
++                       home directory.  */
++                    retval = GLOB_NOMATCH;
++                    goto out;
++                  }
+               }
+           }
+         }
+@@ -1059,7 +1076,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+               free (pglob->gl_pathv);
+               pglob->gl_pathv = NULL;
+               pglob->gl_pathc = 0;
+-              return GLOB_NOSPACE;
++              retval = GLOB_NOSPACE;
++              goto out;
+             }
+ 
+           new_gl_pathv = realloc (pglob->gl_pathv,
+@@ -1077,12 +1095,19 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+               p = mempcpy (pglob->gl_pathv[newcount], dirname, dirlen);
+               p[0] = '/';
+               p[1] = '\0';
++              if (__glibc_unlikely (malloc_dirname))
++                free (dirname);
+             }
+           else
+             {
+-              pglob->gl_pathv[newcount] = strdup (dirname);
+-              if (pglob->gl_pathv[newcount] == NULL)
+-                goto nospace;
++              if (__glibc_unlikely (malloc_dirname))
++                pglob->gl_pathv[newcount] = dirname;
++              else
++                {
++                  pglob->gl_pathv[newcount] = strdup (dirname);
++                  if (pglob->gl_pathv[newcount] == NULL)
++                    goto nospace;
++                }
+             }
+           pglob->gl_pathv[++newcount] = NULL;
+           ++pglob->gl_pathc;
+@@ -1092,7 +1117,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+         }
+ 
+       /* Not found.  */
+-      return GLOB_NOMATCH;
++      retval = GLOB_NOMATCH;
++      goto out;
+     }
+ 
+   meta = __glob_pattern_type (dirname, !(flags & GLOB_NOESCAPE));
+@@ -1138,7 +1164,10 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+       if (status != 0)
+         {
+           if ((flags & GLOB_NOCHECK) == 0 || status != GLOB_NOMATCH)
+-            return status;
++            {
++              retval = status;
++              goto out;
++            }
+           goto no_matches;
+         }
+ 
+@@ -1157,7 +1186,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+             if (interrupt_state)
+               {
+                 globfree (&dirs);
+-                return GLOB_ABORTED;
++                retval = GLOB_ABORTED;
++                goto out;
+               }
+           }
+ #endif /* SHELL.  */
+@@ -1176,7 +1206,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+               globfree (&dirs);
+               globfree (pglob);
+               pglob->gl_pathc = 0;
+-              return status;
++              retval = status;
++              goto out;
+             }
+ 
+           /* Stick the directory on the front of each name.  */
+@@ -1187,7 +1218,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+               globfree (&dirs);
+               globfree (pglob);
+               pglob->gl_pathc = 0;
+-              return GLOB_NOSPACE;
++              retval = GLOB_NOSPACE;
++              goto out;
+             }
+         }
+ 
+@@ -1209,7 +1241,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+                 {
+                 nospace2:
+                   globfree (&dirs);
+-                  return GLOB_NOSPACE;
++                  retval = GLOB_NOSPACE;
++                  goto out;
+                 }
+ 
+               new_gl_pathv = realloc (pglob->gl_pathv,
+@@ -1224,7 +1257,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+                   globfree (&dirs);
+                   globfree (pglob);
+                   pglob->gl_pathc = 0;
+-                  return GLOB_NOSPACE;
++                  retval = GLOB_NOSPACE;
++                  goto out;
+                 }
+ 
+               ++pglob->gl_pathc;
+@@ -1236,7 +1270,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+           else
+             {
+               globfree (&dirs);
+-              return GLOB_NOMATCH;
++              retval = GLOB_NOMATCH;
++              goto out;
+             }
+         }
+ 
+@@ -1282,7 +1317,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+               flags = orig_flags;
+               goto no_matches;
+             }
+-          return status;
++          retval = status;
++          goto out;
+         }
+ 
+       if (dirlen > 0)
+@@ -1294,7 +1330,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+             {
+               globfree (pglob);
+               pglob->gl_pathc = 0;
+-              return GLOB_NOSPACE;
++              retval = GLOB_NOSPACE;
++              goto out;
+             }
+         }
+     }
+@@ -1319,7 +1356,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+               {
+                 globfree (pglob);
+                 pglob->gl_pathc = 0;
+-                return GLOB_NOSPACE;
++                retval = GLOB_NOSPACE;
++                goto out;
+               }
+             strcpy (&new[len - 2], "/");
+             pglob->gl_pathv[i] = new;
diff --git a/gnulib/update-gnulib.sh b/gnulib/update-gnulib.sh
index 0e1df226de..0c8357c888 100755
--- a/gnulib/update-gnulib.sh
+++ b/gnulib/update-gnulib.sh
@@ -171,6 +171,7 @@ apply_patches ()
 
 apply_patches "patches/0001-Fix-PR-gdb-23558-Use-system-s-getcwd-when-cross-comp.patch"
 apply_patches "patches/0002-mkostemp-mkostemps-Fix-compilation-error-in-C-mode-o.patch"
+apply_patches "patches/0003-Fix-glob-c-Coverity-issues.patch"
 
 # Regenerate all necessary files...
 aclocal -Iimport/m4 -I../config &&


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix info-var.exp for debug info from other files
@ 2019-08-28 17:56 gdb-buildbot
  2019-08-28 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-28 17:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 48352473b1d2c213749a324f392cf8ec53d273a6 ***

commit 48352473b1d2c213749a324f392cf8ec53d273a6
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Wed Aug 28 19:13:29 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Wed Aug 28 19:13:29 2019 +0200

    [gdb/testsuite] Fix info-var.exp for debug info from other files
    
    On openSUSE Leap 15.1, I get:
    ...
    FAIL: gdb.base/info-var.exp: info variables
    FAIL: gdb.base/info-var.exp: info variables -n
    ...
    because the info variables command prints info also for init.c:
    ...
    File init.c:^M
    24:     const int _IO_stdin_used;^M
    ...
    while the regexps in the test-case only expect info for info-var-f1.c and
    info-var-f2.c.
    
    Fix this by extending the regexps.
    
    Tested on x86_64-linux, both openSUSE Leap 15.1 and Fedora 30.
    
    gdb/testsuite/ChangeLog:
    
    2019-08-28  Tom de Vries  <tdevries@suse.de>
    
            * gdb.base/info-var.exp: Allow info variables to print info for files
            other than info-var-f1.c and info-var-f2.c.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 3939a747c5..06ee15c97a 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-28  Tom de Vries  <tdevries@suse.de>
+
+	* gdb.base/info-var.exp: Allow info variables to print info for files
+	other than info-var-f1.c and info-var-f2.c.
+
 2019-08-28  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* gdb.fortran/info-types.exp: Add module.
diff --git a/gdb/testsuite/gdb.base/info-var.exp b/gdb/testsuite/gdb.base/info-var.exp
index 5a07d6214d..6dd896d8aa 100644
--- a/gdb/testsuite/gdb.base/info-var.exp
+++ b/gdb/testsuite/gdb.base/info-var.exp
@@ -37,7 +37,10 @@ gdb_test "info variables" \
 	 "File .*${srcfile2}:" \
 	 "18:\[ \t\]+int global_var;" \
 	 "20:\[ \t\]+static int f2_var;" \
-	 "" \
+	 "(" \
+	 "File .*:(" \
+	 "$decimal:.*" \
+	 ")+)*" \
 	 "Non-debugging symbols:" \
 	 ".*"]
 
@@ -50,7 +53,10 @@ gdb_test "info variables -n" \
 	 "" \
 	 "File .*${srcfile2}:" \
 	 "18:\[ \t\]+int global_var;" \
-	 "20:\[ \t\]+static int f2_var;" ]
+	 "20:\[ \t\]+static int f2_var;(" \
+	 "" \
+	 "File .*:(" \
+	 "$decimal:.*)+)*"]
 
 gdb_test "info variables -n global" \
     [multi_line \


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24891, objdump memory leaks when parsing malformed archive
@ 2019-08-29  0:55 gdb-buildbot
  2019-08-29  1:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-29  0:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 83cf0d04dcdc9a4e7f105a517390e4c1af444340 ***

commit 83cf0d04dcdc9a4e7f105a517390e4c1af444340
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Wed Aug 28 16:34:34 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Thu Aug 29 07:50:40 2019 +0930

    PR24891, objdump memory leaks when parsing malformed archive
    
    BFD was leaking memory in bfd_check_format_matches.  As part of
    deciding the proper format of an archive, BFD looks at the format of
    the first file stored.  That file's bfd was left open for reasons
    given in a comment removed in git commit 0e71e4955cd1 that said:
                 /* We ought to close `first' here, but we can't, because
                    we have no way to remove it from the archive cache.
                    It's close to impossible to figure out when we can
                    release bfd_ardata.  FIXME.  */
    Well, things have changed since that comment was true and we now can
    remove files from the archive cache.  Closing the first file is good
    and cures some of the leaks.  Other leaks are caused by
    bfd_check_format_matches throwing away bfd tdata before trying a new
    match.  That lost the element cache set up when format checking the
    first element in the archive.  The easiest and cleanest fix is to
    simply disable the caching when checking the first element.
    
            PR 24891
            * bfd.c (struct bfd): Add no_element_cache.
            * archive.c (_bfd_get_elt_at_filepos): Don't add element to
            archive cache when no_element_cache.
            (bfd_generic_archive_p): Set no_element_cache when opening first
            element to check format.  Close first element too.
            (do_slurp_bsd_armap): Don't zero ardata->cache here.
            * bfd-in2.h: Regenerate.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 9f7a8cfc6a..fe7f8eee6a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,14 @@
+2019-08-29  Alan Modra  <amodra@gmail.com>
+
+	PR 24891
+	* bfd.c (struct bfd): Add no_element_cache.
+	* archive.c (_bfd_get_elt_at_filepos): Don't add element to
+	archive cache when no_element_cache.
+	(bfd_generic_archive_p): Set no_element_cache when opening first
+	element to check format.  Close first element too.
+	(do_slurp_bsd_armap): Don't zero ardata->cache here.
+	* bfd-in2.h: Regenerate.
+
 2019-08-24  Alan Modra  <amodra@gmail.com>
 
 	* elf64-ppc.c (ppc64_elf_edit_toc): Exclude undefined weak
diff --git a/bfd/archive.c b/bfd/archive.c
index 0a7da3a0cb..3baf83d40c 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -734,7 +734,8 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
   /* Copy is_linker_input.  */
   n_bfd->is_linker_input = archive->is_linker_input;
 
-  if (_bfd_add_bfd_to_archive_cache (archive, filepos, n_bfd))
+  if (archive->no_element_cache
+      || _bfd_add_bfd_to_archive_cache (archive, filepos, n_bfd))
     return n_bfd;
 
   free (new_areldata);
@@ -885,6 +886,7 @@ bfd_generic_archive_p (bfd *abfd)
   if (abfd->target_defaulted && bfd_has_map (abfd))
     {
       bfd *first;
+      unsigned int save;
 
       /* This archive has a map, so we may presume that the contents
 	 are object files.  Make sure that if the first file in the
@@ -897,14 +899,17 @@ bfd_generic_archive_p (bfd *abfd)
 	 normal archive, regardless of the format of the object files.
 	 We do accept an empty archive.  */
 
+      save = abfd->no_element_cache;
+      abfd->no_element_cache = 1;
       first = bfd_openr_next_archived_file (abfd, NULL);
+      abfd->no_element_cache = save;
       if (first != NULL)
 	{
 	  first->target_defaulted = FALSE;
 	  if (bfd_check_format (first, bfd_object)
 	      && first->xvec != abfd->xvec)
 	    bfd_set_error (bfd_error_wrong_object_format);
-	  /* And we ought to close `first' here too.  */
+	  bfd_close (first);
 	}
     }
 
@@ -974,7 +979,6 @@ do_slurp_bsd_armap (bfd *abfd)
       goto byebye;
     }
 
-  ardata->cache = 0;
   rbase = raw_armap + BSD_SYMDEF_COUNT_SIZE;
   stringbase = ((char *) rbase
 		+ ardata->symdef_count * BSD_SYMDEF_SIZE
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index cf44bd0751..63b4792818 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -7180,6 +7180,9 @@ struct bfd
   /* Set if this is a thin archive.  */
   unsigned int is_thin_archive : 1;
 
+  /* Set if this archive should not cache element positions.  */
+  unsigned int no_element_cache : 1;
+
   /* Set if only required symbols should be added in the link hash table for
      this object.  Used by VMS linkers.  */
   unsigned int selective_search : 1;
diff --git a/bfd/bfd.c b/bfd/bfd.c
index a9b224b925..f56a8d342f 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -220,6 +220,9 @@ CODE_FRAGMENT
 .  {* Set if this is a thin archive.  *}
 .  unsigned int is_thin_archive : 1;
 .
+.  {* Set if this archive should not cache element positions.  *}
+.  unsigned int no_element_cache : 1;
+.
 .  {* Set if only required symbols should be added in the link hash table for
 .     this object.  Used by VMS linkers.  *}
 .  unsigned int selective_search : 1;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Fix a gp relaxation reloc overflow error.
@ 2019-08-29  1:25 gdb-buildbot
  2019-08-29  2:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-29  1:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 507685a390b47d853f22176273cb949e2ee8da81 ***

commit 507685a390b47d853f22176273cb949e2ee8da81
Author:     Jim Wilson <jimw@sifive.com>
AuthorDate: Wed Aug 28 17:47:01 2019 -0700
Commit:     Jim Wilson <jimw@sifive.com>
CommitDate: Wed Aug 28 17:47:01 2019 -0700

    RISC-V: Fix a gp relaxation reloc overflow error.
    
    This was broken when I changed how we compute the value for the gp register.
    It used to be computed inside the sdata section.  Now it is computed at the
    end which makes it an abs section symbol.  There is code that tries to use
    the alignment of the section that the gp value is in, but this does not work
    if it is in the abs section, as the abs section has alignment of 1 byte.
    There are people using alternative linker scripts that still define it in the
    sdata section, so the code is still useful.  Thus adding a check to disable
    this when gp is in the abs section.
    
            bfd/
            * elfnn-riscv.c (_bfd_riscv_relax_lui): Add check to exclude abs
            section when setting max_alignment.  Update comment.
            (_bfd_riscv_relax_pc): Likewise.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index fe7f8eee6a..ded2898771 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-28  Jim Wilson  <jimw@sifive.com>
+
+	* elfnn-riscv.c (_bfd_riscv_relax_lui): Add check to exclude abs
+	section when setting max_alignment.  Update comment.
+	(_bfd_riscv_relax_pc): Likewise.
+
 2019-08-29  Alan Modra  <amodra@gmail.com>
 
 	PR 24891
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index d14c29e833..4729bae09a 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -3533,12 +3533,13 @@ _bfd_riscv_relax_lui (bfd *abfd,
 
   if (gp)
     {
-      /* If gp and the symbol are in the same output section, then
-	 consider only that section's alignment.  */
+      /* If gp and the symbol are in the same output section, which is not the
+	 abs section, then consider only that output section's alignment.  */
       struct bfd_link_hash_entry *h =
 	bfd_link_hash_lookup (link_info->hash, RISCV_GP_SYMBOL, FALSE, FALSE,
 			      TRUE);
-      if (h->u.def.section->output_section == sym_sec->output_section)
+      if (h->u.def.section->output_section == sym_sec->output_section
+	  && sym_sec->output_section != bfd_abs_section_ptr)
 	max_alignment = (bfd_vma) 1 << sym_sec->output_section->alignment_power;
     }
 
@@ -3767,11 +3768,13 @@ _bfd_riscv_relax_pc  (bfd *abfd ATTRIBUTE_UNUSED,
 
   if (gp)
     {
-      /* If gp and the symbol are in the same output section, then
-	 consider only that section's alignment.  */
+      /* If gp and the symbol are in the same output section, which is not the
+	 abs section, then consider only that output section's alignment.  */
       struct bfd_link_hash_entry *h =
-	bfd_link_hash_lookup (link_info->hash, RISCV_GP_SYMBOL, FALSE, FALSE, TRUE);
-      if (h->u.def.section->output_section == sym_sec->output_section)
+	bfd_link_hash_lookup (link_info->hash, RISCV_GP_SYMBOL, FALSE, FALSE,
+			      TRUE);
+      if (h->u.def.section->output_section == sym_sec->output_section
+	  && sym_sec->output_section != bfd_abs_section_ptr)
 	max_alignment = (bfd_vma) 1 << sym_sec->output_section->alignment_power;
     }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC64 xlate_pcrel_opt
@ 2019-08-29  4:31 gdb-buildbot
  2019-08-29 11:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-29  4:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT dd9b12c2451f0e46e73ec54d8762727d428b4c14 ***

commit dd9b12c2451f0e46e73ec54d8762727d428b4c14
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Thu Aug 29 11:30:11 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Thu Aug 29 12:57:33 2019 +0930

    PowerPC64 xlate_pcrel_opt
    
    We can easily support an offset on the second instruction of a
    sequence marked with R_PPC64_PCREL_OPT.  For example,
      pla ra,symbol@pcrel
      ld rt,off(ra)
    can be optimised to
      pld rt,symbol+off@pcrel
      nop
    
            * elf64-ppc.c (xlate_pcrel_opt): Add poff parameter.  Allow offset
            on second insn, return it in poff.
            (ppc64_elf_relocate_section): Add offset to paddi addend for
            PCREL_OPT.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ded2898771..e604dc75f8 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-08-29  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (xlate_pcrel_opt): Add poff parameter.  Allow offset
+	on second insn, return it in poff.
+	(ppc64_elf_relocate_section): Add offset to paddi addend for
+	PCREL_OPT.
+
 2019-08-28  Jim Wilson  <jimw@sifive.com>
 
 	* elfnn-riscv.c (_bfd_riscv_relax_lui): Add check to exclude abs
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 4eba829450..a5bd3426ee 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -8265,25 +8265,26 @@ ok_lo_toc_insn (unsigned int insn, enum elf_ppc64_reloc_type r_type)
 
 /* PCREL_OPT in one instance flags to the linker that a pair of insns:
      pld ra,symbol@got@pcrel
-     load/store rt,0(ra)
+     load/store rt,off(ra)
    or
      pla ra,symbol@pcrel
-     load/store rt,0(ra)
+     load/store rt,off(ra)
    may be translated to
-     pload/pstore rt,symbol@pcrel
+     pload/pstore rt,symbol+off@pcrel
      nop.
    This function returns true if the optimization is possible, placing
-   the prefix insn in *PINSN1 and a NOP in *PINSN2.
+   the prefix insn in *PINSN1, a NOP in *PINSN2 and the offset in *POFF.
 
    On entry to this function, the linker has already determined that
    the pld can be replaced with pla: *PINSN1 is that pla insn,
    while *PINSN2 is the second instruction.  */
 
 static bfd_boolean
-xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2)
+xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
 {
   uint32_t insn2 = *pinsn2 >> 32;
   uint64_t i1new;
+  bfd_signed_vma off;
 
   /* Check that regs match.  */
   if (((insn2 >> 16) & 31) != ((*pinsn1 >> 21) & 31))
@@ -8306,27 +8307,28 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2)
     case 52: /* stfs */
     case 54: /* stfd */
       /* These are the PMLS cases, where we just need to tack a prefix
-	 on the insn.  Check that the D field is zero.  */
-      if ((insn2 & 0xffff) != 0)
-	return FALSE;
+	 on the insn.  */
       i1new = ((1ULL << 58) | (2ULL << 56) | (1ULL << 52)
 	       | (insn2 & ((63ULL << 26) | (31ULL << 21))));
+      off = insn2 & 0xffff;
       break;
 
     case 58: /* lwa, ld */
-      if ((insn2 & 0xfffd) != 0)
+      if ((insn2 & 1) != 0)
 	return FALSE;
       i1new = ((1ULL << 58) | (1ULL << 52)
 	       | (insn2 & 2 ? 41ULL << 26 : 57ULL << 26)
 	       | (insn2 & (31ULL << 21)));
+      off = insn2 & 0xfffc;
       break;
 
     case 57: /* lxsd, lxssp */
-      if ((insn2 & 0xfffc) != 0 || (insn2 & 3) < 2)
+      if ((insn2 & 3) < 2)
 	return FALSE;
       i1new = ((1ULL << 58) | (1ULL << 52)
 	       | ((40ULL | (insn2 & 3)) << 26)
 	       | (insn2 & (31ULL << 21)));
+      off = insn2 & 0xfffc;
       break;
 
     case 61: /* stxsd, stxssp, lxv, stxv  */
@@ -8334,40 +8336,39 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2)
 	return FALSE;
       else if ((insn2 & 3) >= 2)
 	{
-	  if ((insn2 & 0xfffc) != 0)
-	    return FALSE;
 	  i1new = ((1ULL << 58) | (1ULL << 52)
 		   | ((44ULL | (insn2 & 3)) << 26)
 		   | (insn2 & (31ULL << 21)));
+	  off = insn2 & 0xfffc;
 	}
       else
 	{
-	  if ((insn2 & 0xfff0) != 0)
-	    return FALSE;
 	  i1new = ((1ULL << 58) | (1ULL << 52)
 		   | ((50ULL | (insn2 & 4) | ((insn2 & 8) >> 3)) << 26)
 		   | (insn2 & (31ULL << 21)));
+	  off = insn2 & 0xfff0;
 	}
       break;
 
     case 56: /* lq */
-      if ((insn2 & 0xffff) != 0)
-	return FALSE;
       i1new = ((1ULL << 58) | (1ULL << 52)
 	       | (insn2 & ((63ULL << 26) | (31ULL << 21))));
+      off = insn2 & 0xffff;
       break;
 
     case 62: /* std, stq */
-      if ((insn2 & 0xfffd) != 0)
+      if ((insn2 & 1) != 0)
 	return FALSE;
       i1new = ((1ULL << 58) | (1ULL << 52)
 	       | ((insn2 & 2) == 0 ? 61ULL << 26 : 60ULL << 26)
 	       | (insn2 & (31ULL << 21)));
+      off = insn2 & 0xfffc;
       break;
     }
 
   *pinsn1 = i1new;
   *pinsn2 = (uint64_t) NOP << 32;
+  *poff = (off ^ 0x8000) - 0x8000;
   return TRUE;
 }
 
@@ -15408,12 +15409,15 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 		      if (off2 + 4 <= input_section->size)
 			{
 			  uint64_t pinsn2;
+			  bfd_signed_vma addend_off;
 			  pinsn2 = bfd_get_32 (input_bfd, contents + off2);
 			  pinsn2 <<= 32;
 			  if ((pinsn2 & (63ULL << 58)) == 1ULL << 58)
 			    break;
-			  if (xlate_pcrel_opt (&pinsn, &pinsn2))
+			  if (xlate_pcrel_opt (&pinsn, &pinsn2, &addend_off))
 			    {
+			      addend += addend_off;
+			      rel->r_addend = addend;
 			      bfd_put_32 (input_bfd, pinsn >> 32,
 					  contents + offset);
 			      bfd_put_32 (input_bfd, pinsn,
@@ -15428,7 +15432,6 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 	  break;
 	}
 
-      /* Set `addend'.  */
       tls_type = 0;
       save_unresolved_reloc = unresolved_reloc;
       switch (r_type)


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24697, R_PPC_EMB_SDA21 cannot be used when making a shared object
@ 2019-08-29 12:16 gdb-buildbot
  2019-08-29 13:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-29 12:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c0d9f31dbd8765dd925e6a4b4acdb9b23d1706f6 ***

commit c0d9f31dbd8765dd925e6a4b4acdb9b23d1706f6
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Thu Aug 29 18:35:54 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Thu Aug 29 21:07:00 2019 +0930

    PR24697, R_PPC_EMB_SDA21 cannot be used when making a shared object
    
    This removes a restriction on various R_PPC_EMB relocations that has
    been present for ppc32 since 1996-04-26 git commit e25a798839.  As far
    as I know, only those relocs that would require addressing via r2 for
    .sdata2/.sbss2 access are disallowed in shared libraries.
    
            PR 24697
            * elf32-ppc.c (ppc_elf_check_relocs): Call bad_shared_reloc
            when !bfd_link_executable for R_PPC_EMB_SDA2I16 and
            R_PPC_EMB_SDA2REL.  Don't call bad_shared_reloc for any other
            reloc.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index e604dc75f8..d292e87f56 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-29  Alan Modra  <amodra@gmail.com>
+
+	PR 24697
+	* elf32-ppc.c (ppc_elf_check_relocs): Call bad_shared_reloc
+	when !bfd_link_executable for R_PPC_EMB_SDA2I16 and
+	R_PPC_EMB_SDA2REL.  Don't call bad_shared_reloc for any other
+	reloc.
+
 2019-08-29  Alan Modra  <amodra@gmail.com>
 
 	* elf64-ppc.c (xlate_pcrel_opt): Add poff parameter.  Allow offset
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index 78d39efe48..5e5834a70c 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -3096,11 +3096,6 @@ ppc_elf_check_relocs (bfd *abfd,
 
 	  /* Indirect .sdata relocation.  */
 	case R_PPC_EMB_SDAI16:
-	  if (bfd_link_pic (info))
-	    {
-	      bad_shared_reloc (abfd, r_type);
-	      return FALSE;
-	    }
 	  htab->sdata[0].sym->ref_regular = 1;
 	  if (!elf_allocate_pointer_linker_section (abfd, &htab->sdata[0],
 						    h, rel))
@@ -3114,7 +3109,7 @@ ppc_elf_check_relocs (bfd *abfd,
 
 	  /* Indirect .sdata2 relocation.  */
 	case R_PPC_EMB_SDA2I16:
-	  if (bfd_link_pic (info))
+	  if (!bfd_link_executable (info))
 	    {
 	      bad_shared_reloc (abfd, r_type);
 	      return FALSE;
@@ -3160,7 +3155,7 @@ ppc_elf_check_relocs (bfd *abfd,
 	  break;
 
 	case R_PPC_EMB_SDA2REL:
-	  if (bfd_link_pic (info))
+	  if (!bfd_link_executable (info))
 	    {
 	      bad_shared_reloc (abfd, r_type);
 	      return FALSE;
@@ -3177,11 +3172,6 @@ ppc_elf_check_relocs (bfd *abfd,
 	case R_PPC_VLE_SDA21:
 	case R_PPC_EMB_SDA21:
 	case R_PPC_EMB_RELSDA:
-	  if (bfd_link_pic (info))
-	    {
-	      bad_shared_reloc (abfd, r_type);
-	      return FALSE;
-	    }
 	  if (h != NULL)
 	    {
 	      ppc_elf_hash_entry (h)->has_sda_refs = TRUE;
@@ -3194,11 +3184,6 @@ ppc_elf_check_relocs (bfd *abfd,
 	case R_PPC_EMB_NADDR16_LO:
 	case R_PPC_EMB_NADDR16_HI:
 	case R_PPC_EMB_NADDR16_HA:
-	  if (bfd_link_pic (info))
-	    {
-	      bad_shared_reloc (abfd, r_type);
-	      return FALSE;
-	    }
 	  if (h != NULL)
 	    h->non_got_ref = TRUE;
 	  break;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix gdb.fortran/info-types.exp regexp
@ 2019-08-29 13:44 gdb-buildbot
  2019-08-29 16:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-29 13:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8077c50dbb74ee63c038dbd3527c372dbe180fbb ***

commit 8077c50dbb74ee63c038dbd3527c372dbe180fbb
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Aug 29 14:43:11 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Thu Aug 29 14:43:11 2019 +0200

    [gdb/testsuite] Fix gdb.fortran/info-types.exp regexp
    
    The gdb.fortran/info-types.exp test-case passes with gcc 7 (though not on
    openSUSE, due to the extra debug info) and fails with gcc 4.8 and gcc 8.
    
    Fix the gdb_test regexp to fix all those cases.
    
    gdb/testsuite/ChangeLog:
    
    2019-08-29  Tom de Vries  <tdevries@suse.de>
    
            * gdb.fortran/info-types.exp: Fix gdb_test regexp to allow more
            diverse debug info.
            * lib/fortran.exp (fortran_int8): New proc, based on fortran_int4.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 06ee15c97a..b1dc7df4bb 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-29  Tom de Vries  <tdevries@suse.de>
+
+	* gdb.fortran/info-types.exp: Fix gdb_test regexp to allow more
+	diverse debug info.
+	* lib/fortran.exp (fortran_int8): New proc, based on fortran_int4.
+
 2019-08-28  Tom de Vries  <tdevries@suse.de>
 
 	* gdb.base/info-var.exp: Allow info variables to print info for files
diff --git a/gdb/testsuite/gdb.fortran/info-types.exp b/gdb/testsuite/gdb.fortran/info-types.exp
index 81e67395e8..30646287ee 100644
--- a/gdb/testsuite/gdb.fortran/info-types.exp
+++ b/gdb/testsuite/gdb.fortran/info-types.exp
@@ -31,6 +31,7 @@ if { ![runto MAIN__] } {
 }
 
 set integer4 [fortran_int4]
+set integer8 [fortran_int8]
 set logical4 [fortran_logical4]
 set character1 [fortran_character1]
 
@@ -41,7 +42,9 @@ gdb_test "info types" \
 	 "File .*:" \
 	 "\[\t \]+${character1}" \
 	 "\[\t \]+${integer4}" \
-	 "\[\t \]+${logical4}" \
-	 "20:\[\t \]+Type __vtype_mod1_M1t1;" \
-	 "17:\[\t \]+Type m1t1;" \
-	 "22:\[\t \]+Type s1;" ]
+	 "(\[\t \]+${integer8}" \
+	 ")?\[\t \]+${logical4}" \
+	 "(20:\[\t \]+Type __vtype_mod1_M1t1;" \
+	 ")?$decimal:\[\t \]+Type m1t1;" \
+	 "22:\[\t \]+Type s1;(" \
+	 ".*)?"]
diff --git a/gdb/testsuite/lib/fortran.exp b/gdb/testsuite/lib/fortran.exp
index 81811dbc3c..d523608807 100644
--- a/gdb/testsuite/lib/fortran.exp
+++ b/gdb/testsuite/lib/fortran.exp
@@ -41,6 +41,18 @@ proc fortran_int4 {} {
     }
 }
 
+proc fortran_int8 {} {
+    if {[test_compiler_info {gcc-4-[012]-*}]} {
+	return "int8"
+    } elseif {[test_compiler_info {gcc-*}]} {
+	return "integer\\(kind=8\\)"
+    } elseif {[test_compiler_info {icc-*}]} {
+	return "INTEGER\\(8\\)"
+    } else {
+	return "unknown"
+    }
+}
+
 proc fortran_real4 {} {
     if {[test_compiler_info {gcc-4-[012]-*}]} {
 	return "real4"


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix PR win32/24284: tcp_auto_retry doesn't work in MinGW
@ 2019-08-29 17:21 gdb-buildbot
  2019-08-29 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-29 17:21 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 16d01f9cd49f553a958a69ad3c9f781ebd402da8 ***

commit 16d01f9cd49f553a958a69ad3c9f781ebd402da8
Author:     Bernhard Wodok <barto@gmx.net>
AuthorDate: Tue Aug 27 11:40:31 2019 -0400
Commit:     Sergio Durigan Junior <sergiodj@redhat.com>
CommitDate: Thu Aug 29 12:35:58 2019 -0400

    Fix PR win32/24284: tcp_auto_retry doesn't work in MinGW
    
    This was reported by Bernhard Wodok, along with a patch to fix the
    issue.  I adjusted the patch a bit, and I'm submitting the patch on
    his behalf.
    
    According to Bernhard, the issue can be reproduced by doing:
    
      1. start gdb
      2. enter 'target remote :2345'
      3. observe that it throws a "connection refused" error immediately
      instead of waiting and throwing a timeout error
    
    I.e., I believe it can be reproduced by our current tests, which is
    why I'm not proposing any extra tests here (well, I don't use nor have
    any Windows system to test this, so...).
    
    The problem happens because, on ser-tcp:wait_for_connect, we call
    'gdb_select' passing 0 as its first argument, which, when using MinGW,
    ends up using the 'gdb_select' version from mingw-hdep.c, and when the
    first argument is 0 this means that WaitForMultipleObjects will be
    called with 0 as its first argument as well.  According to the MS API
    docs, this is forbidden:
    
      https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitformultipleobjects
    
    The proposed fix is simple: we just call Sleep when N == 0 (and when
    TIMEOUT is non-NULL), and return 0.  It makes sense to me.
    
    Both Bernhard and Paul Carroll confirmed that the fix works.  I'm
    Cc'ing Bernhard in case you have any questions about the patch.
    
    OK?
    
    gdb/ChangeLog:
    2019-08-29  Bernhard Wodok  <barto@gmx.net>
                Sergio Durigan Junior  <sergiodj@redhat.com>
    
            PR win32/24284
            * mingw-hdep.c (gdb_select): Handle case when 'n' is zero.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a82f7c64ae..fba2f4a995 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-29  Bernhard Wodok  <barto@gmx.net>
+	    Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR win32/24284
+	* mingw-hdep.c (gdb_select): Handle case when 'n' is zero.
+
 2019-08-28  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* symtab.c (search_symbols): Don't include MODULE_DOMAIN symbols
diff --git a/gdb/mingw-hdep.c b/gdb/mingw-hdep.c
index 44fb22e9a1..0af1b39acd 100644
--- a/gdb/mingw-hdep.c
+++ b/gdb/mingw-hdep.c
@@ -64,6 +64,17 @@ gdb_select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
   int num_ready;
   size_t indx;
 
+  if (n == 0)
+    {
+      /* The MS API says that the first argument to
+	 WaitForMultipleObjects cannot be zero.  That's why we just
+	 use a regular Sleep here.  */
+      if (timeout != NULL)
+	Sleep (timeout->tv_sec * 1000 + timeout->tv_usec / 1000);
+
+      return 0;
+    }
+
   num_ready = 0;
   num_handles = 0;
   num_scbs = 0;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Run argv0-symlink.exp only on native target and local host.
@ 2019-08-29 22:28 gdb-buildbot
  2019-08-30  8:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-29 22:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2ea1a07a0a6a15a55df28eeefddf71a4ac47e17d ***

commit 2ea1a07a0a6a15a55df28eeefddf71a4ac47e17d
Author:     Sandra Loosemore <sandra@codesourcery.com>
AuthorDate: Thu Aug 29 14:48:05 2019 -0700
Commit:     Sandra Loosemore <sandra@codesourcery.com>
CommitDate: Thu Aug 29 14:48:05 2019 -0700

    Run argv0-symlink.exp only on native target and local host.
    
    This testcase was originally for PR gdb/15415, a problem with the
    "run" command expanding symlinks in the name of the program being run.
    It does not correctly distinguish between files on build, host, and
    target, and it is not clear if it would be testing anything useful in
    configurations where "run" is not being used.
    
    2019-08-29  Sandra Loosemore  <sandra@codesourcery.com>
    
            * gdb.base/argv0-symlink.exp: Run only on native target
            and local host.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index b1dc7df4bb..e0991e091a 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-29  Sandra Loosemore  <sandra@codesourcery.com>
+
+	* gdb.base/argv0-symlink.exp: Run only on native target
+	and local host.
+
 2019-08-29  Tom de Vries  <tdevries@suse.de>
 
 	* gdb.fortran/info-types.exp: Fix gdb_test regexp to allow more
diff --git a/gdb/testsuite/gdb.base/argv0-symlink.exp b/gdb/testsuite/gdb.base/argv0-symlink.exp
index cce6ca613d..33301bd7c3 100644
--- a/gdb/testsuite/gdb.base/argv0-symlink.exp
+++ b/gdb/testsuite/gdb.base/argv0-symlink.exp
@@ -13,6 +13,23 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+# This testcase was originally for PR gdb/15415, a problem with the "run"
+# command expanding symlinks in the name of the program being run.
+# This test uses pathnames on build to create symbolic links on host and
+# expects the test program running on target to see those symbolic links.
+# Therefore, it can't work reliably on anything other than configurations 
+# where build/host/target are all the same.
+
+if { ![isnative] } {
+    unsupported "argv0-symlink.exp not supported on non-native target"
+    return -1
+}
+
+if { [is_remote host] } {
+    unsupported "argv0-symlink.exp not supported on remote host"
+    return -1
+}
+
 standard_testfile
 
 set has_argv0 [gdb_has_argv0]


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [ARC] [COMMITTED] Fix FASTMATH field.
@ 2019-08-30  9:11 gdb-buildbot
  2019-08-30 15:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-30  9:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cd18a823d1ad0787cb0745bf71c7ba447db10c58 ***

commit cd18a823d1ad0787cb0745bf71c7ba447db10c58
Author:     Claudiu Zissulescu <claziss@gmail.com>
AuthorDate: Fri Aug 30 11:31:19 2019 +0300
Commit:     Claudiu Zissulescu <claziss@gmail.com>
CommitDate: Fri Aug 30 11:31:19 2019 +0300

    [ARC] [COMMITTED] Fix FASTMATH field.
    
    Move FASTMATH to the right enum.
    
    2019-08-30  Claudiu Zissulescu <claziss@gmail.com>
    
            * opcode/arc.h (FASTMATH): Move it from insn_class_t to
            insn_subclass_t enum.

diff --git a/include/ChangeLog b/include/ChangeLog
index e779c17702..3055551062 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30  Claudiu Zissulescu <claziss@gmail.com>
+
+	* opcode/arc.h (FASTMATH): Move it from insn_class_t to
+	insn_subclass_t enum.
+
 2019-08-22  Alan Modra  <amodra@gmail.com>
 
 	* elf/arm.h (ARM_GET_SYM_CMSE_SPCL, ARM_SET_SYM_CMSE_SPCL): Delete.
diff --git a/include/opcode/arc.h b/include/opcode/arc.h
index 14654b5d6c..d6a2b885a1 100644
--- a/include/opcode/arc.h
+++ b/include/opcode/arc.h
@@ -59,7 +59,6 @@ typedef enum
   EI,
   ENTER,
   FLOAT,
-  FASTMATH,
   INVALID,
   JLI,
   JUMP,
@@ -99,6 +98,7 @@ typedef enum
   DP       = (1U << 6),
   DPA      = (1U << 7),
   DPX      = (1U << 8),
+  FASTMATH = (1U << 23),
   LL64     = (1U << 9),
   MPY1E    = (1U << 10),
   MPY6E    = (1U << 11),


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Copy BFD_COMPRESS/BFD_DECOMPRESS/BFD_COMPRESS_GABI for thin archive
@ 2019-08-30 15:17 gdb-buildbot
  2019-08-30 19:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-30 15:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6744bcad05396a5901149a202270e523e454769d ***

commit 6744bcad05396a5901149a202270e523e454769d
Author:     H.J. Lu <hjl.tools@gmail.com>
AuthorDate: Fri Aug 30 07:46:15 2019 -0700
Commit:     H.J. Lu <hjl.tools@gmail.com>
CommitDate: Fri Aug 30 07:46:27 2019 -0700

    Copy BFD_COMPRESS/BFD_DECOMPRESS/BFD_COMPRESS_GABI for thin archive
    
    We need to copy BFD_COMPRESS, BFD_DECOMPRESS and BFD_COMPRESS_GABI flags
    for thin archive.
    
            PR ld/24951
            * archive.c (_bfd_get_elt_at_filepos): Copy BFD_COMPRESS,
            BFD_DECOMPRESS and BFD_COMPRESS_GABI flags for thin archive.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d292e87f56..bb99231c64 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/24951
+	* archive.c (_bfd_get_elt_at_filepos): Copy BFD_COMPRESS,
+	BFD_DECOMPRESS and BFD_COMPRESS_GABI flags for thin archive.
+
 2019-08-29  Alan Modra  <amodra@gmail.com>
 
 	PR 24697
diff --git a/bfd/archive.c b/bfd/archive.c
index 3baf83d40c..690718e949 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -692,6 +692,13 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
 	      return NULL;
 	    }
 	  n_bfd->proxy_origin = bfd_tell (archive);
+
+	  /* Copy BFD_COMPRESS, BFD_DECOMPRESS and BFD_COMPRESS_GABI
+	     flags.  */
+	  n_bfd->flags |= archive->flags & (BFD_COMPRESS
+					    | BFD_DECOMPRESS
+					    | BFD_COMPRESS_GABI);
+
 	  return n_bfd;
 	}
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove NO_DATA_STRING
@ 2019-08-30 19:52 gdb-buildbot
  2019-08-30 20:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-30 19:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1f6d2f100ae6de462f1e81b5de17de059f6b17ef ***

commit 1f6d2f100ae6de462f1e81b5de17de059f6b17ef
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Sun Jul 14 08:21:16 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:02 2019 -0600

    Remove NO_DATA_STRING
    
    NO_DATA_STRING shouldn't be used.  It's referenced in a single spot,
    in tui_data_window::display_all_data.  This patch removes the use and
    replaces it with the more correct text.  A later patch (though not in
    this series) will remove this call entirely, when it's more obviously
    correct to do so.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-regs.c (tui_data_window::display_all_data): Change
            text.
            * tui/tui-data.h (NO_DATA_STRING): Remove define.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index fba2f4a995..0cb864fdfc 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-regs.c (tui_data_window::display_all_data): Change
+	text.
+	* tui/tui-data.h (NO_DATA_STRING): Remove define.
+
 2019-08-29  Bernhard Wodok  <barto@gmx.net>
 	    Sergio Durigan Junior  <sergiodj@redhat.com>
 
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index f43035674d..1810fa3e72 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -98,7 +98,6 @@ public:
 
 /* Constant definitions.  */
 #define DEFAULT_TAB_LEN         8
-#define NO_DATA_STRING          "[ No Data Values Displayed ]"
 #define SRC_NAME                "src"
 #define CMD_NAME                "cmd"
 #define DATA_NAME               "regs"
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 71037d4104..24b182f2ae 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -437,7 +437,7 @@ void
 tui_data_window::display_all_data ()
 {
   if (regs_content.empty ())
-    erase_data_content (NO_DATA_STRING);
+    erase_data_content (_("[ Register Values Unavailable ]"));
   else
     {
       erase_data_content (NULL);


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove tui_data_window::display_all_data
@ 2019-08-30 20:53 gdb-buildbot
  2019-08-30 21:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-30 20:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 18bb55c7225dfd07ec8d75226a83da1872db8b90 ***

commit 18bb55c7225dfd07ec8d75226a83da1872db8b90
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Sun Jul 14 08:27:34 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:02 2019 -0600

    Remove tui_data_window::display_all_data
    
    tui_data_window::rerender clears the data item windows, and then calls
    display_all_data.  However, that method only does anything if the
    contents are not empty.  So, display_all_data can be renamed and the
    wrapper removed.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-regs.h (struct tui_data_window) <display_all_data>:
            Don't declare.
            * tui/tui-regs.c (tui_data_window::show_registers): Call
            rerender.
            (tui_data_window::rerender): Rename from display_all_data.
            (tui_data_window::rerender): Remove old implementation.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0cb864fdfc..e5f3f218cb 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-regs.h (struct tui_data_window) <display_all_data>:
+	Don't declare.
+	* tui/tui-regs.c (tui_data_window::show_registers): Call
+	rerender.
+	(tui_data_window::rerender): Rename from display_all_data.
+	(tui_data_window::rerender): Remove old implementation.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-regs.c (tui_data_window::display_all_data): Change
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 24b182f2ae..7bac19da28 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -161,7 +161,7 @@ tui_data_window::show_registers (struct reggroup *group)
       for (auto &&data_item_win : regs_content)
 	data_item_win.highlight = false;
       current_group = group;
-      display_all_data ();
+      rerender ();
     }
   else
     {
@@ -434,7 +434,7 @@ tui_data_window::erase_data_content (const char *prompt)
 /* See tui-regs.h.  */
 
 void
-tui_data_window::display_all_data ()
+tui_data_window::rerender ()
 {
   if (regs_content.empty ())
     erase_data_content (_("[ Register Values Unavailable ]"));
@@ -500,20 +500,6 @@ tui_data_window::do_scroll_vertical (int num_to_scroll)
 
 /* See tui-regs.h.  */
 
-void
-tui_data_window::rerender ()
-{
-  /* Delete all data item windows.  */
-  for (auto &&win : regs_content)
-    {
-      tui_delete_win (win.handle);
-      win.handle = NULL;
-    }
-  display_all_data ();
-}
-
-/* See tui-regs.h.  */
-
 void
 tui_data_window::refresh_window ()
 {
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index 95e944038c..fa76cae0b1 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -121,10 +121,6 @@ private:
      past the register area (-1) is returned.  */
   int first_reg_element_no_inline (int line_no) const;
 
-  /* Displays the data that is in the data window's content.  It does
-     not set the content.  */
-  void display_all_data ();
-
   /* Delete all the item windows in the data window.  This is usually
      done when the data window is scrolled.  */
   void delete_data_content_windows ();


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove some checks of .empty()
@ 2019-08-30 21:05 gdb-buildbot
  2019-08-30 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-30 21:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0670413d0eb264302e10a1baa163bc9c8c279a21 ***

commit 0670413d0eb264302e10a1baa163bc9c8c279a21
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Sun Jul 14 09:07:10 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:03 2019 -0600

    Remove some checks of .empty()
    
    A few methods in tui_data_window check whether the contents are empty;
    but all the callers already check this, so these calls can be removed.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-regs.c (tui_data_window::last_regs_line_no)
            (tui_data_window::display_registers_from)
            (tui_data_window::display_reg_element_at_line)
            (tui_data_window::display_registers_from_line): Remove checks of
            "empty".

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e5f3f218cb..c8b69f4d52 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-regs.c (tui_data_window::last_regs_line_no)
+	(tui_data_window::display_registers_from)
+	(tui_data_window::display_reg_element_at_line)
+	(tui_data_window::display_registers_from_line): Remove checks of
+	"empty".
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-regs.h (struct tui_data_window) <display_all_data>:
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 7bac19da28..636ae10148 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -98,14 +98,9 @@ tui_get_register (struct frame_info *frame,
 int
 tui_data_window::last_regs_line_no () const
 {
-  int num_lines = (-1);
-
-  if (!regs_content.empty ())
-    {
-      num_lines = regs_content.size () / regs_column_count;
-      if (regs_content.size () % regs_column_count)
-	num_lines++;
-    }
+  int num_lines = regs_content.size () / regs_column_count;
+  if (regs_content.size () % regs_column_count)
+    num_lines++;
   return num_lines;
 }
 
@@ -245,74 +240,71 @@ tui_data_window::show_register_group (struct reggroup *group,
 void
 tui_data_window::display_registers_from (int start_element_no)
 {
-  if (!regs_content.empty ())
+  int j, item_win_width, cur_y;
+
+  int max_len = 0;
+  for (auto &&data_item_win : regs_content)
     {
-      int j, item_win_width, cur_y;
+      const char *p;
+      int len;
 
-      int max_len = 0;
-      for (auto &&data_item_win : regs_content)
-        {
-          const char *p;
-          int len;
-
-          len = 0;
-          p = data_item_win.content.get ();
-          if (p != 0)
-	    len = strlen (p);
-
-          if (len > max_len)
-            max_len = len;
-        }
-      item_win_width = max_len + 1;
-      int i = start_element_no;
-
-      regs_column_count = (width - 2) / item_win_width;
-      if (regs_column_count == 0)
-        regs_column_count = 1;
-      item_win_width = (width - 2) / regs_column_count;
-
-      /* Now create each data "sub" window, and write the display into
-	 it.  */
-      cur_y = 1;
-      while (i < regs_content.size ()
-	     && cur_y <= viewport_height)
+      len = 0;
+      p = data_item_win.content.get ();
+      if (p != 0)
+	len = strlen (p);
+
+      if (len > max_len)
+	max_len = len;
+    }
+  item_win_width = max_len + 1;
+  int i = start_element_no;
+
+  regs_column_count = (width - 2) / item_win_width;
+  if (regs_column_count == 0)
+    regs_column_count = 1;
+  item_win_width = (width - 2) / regs_column_count;
+
+  /* Now create each data "sub" window, and write the display into
+     it.  */
+  cur_y = 1;
+  while (i < regs_content.size ()
+	 && cur_y <= viewport_height)
+    {
+      for (j = 0;
+	   j < regs_column_count && i < regs_content.size ();
+	   j++)
 	{
-	  for (j = 0;
-	       j < regs_column_count && i < regs_content.size ();
-	       j++)
+	  struct tui_data_item_window *data_item_win;
+
+	  /* Create the window if necessary.  */
+	  data_item_win = &regs_content[i];
+	  if (data_item_win->handle != NULL
+	      && (data_item_win->height != 1
+		  || data_item_win->width != item_win_width
+		  || data_item_win->origin.x != (item_win_width * j) + 1
+		  || data_item_win->origin.y != cur_y))
 	    {
-	      struct tui_data_item_window *data_item_win;
-
-	      /* Create the window if necessary.  */
-	      data_item_win = &regs_content[i];
-              if (data_item_win->handle != NULL
-                  && (data_item_win->height != 1
-                      || data_item_win->width != item_win_width
-                      || data_item_win->origin.x != (item_win_width * j) + 1
-                      || data_item_win->origin.y != cur_y))
-                {
-                  tui_delete_win (data_item_win->handle);
-                  data_item_win->handle = 0;
-                }
+	      tui_delete_win (data_item_win->handle);
+	      data_item_win->handle = 0;
+	    }
                   
-	      if (data_item_win->handle == NULL)
-		{
-		  data_item_win->height = 1;
-		  data_item_win->width = item_win_width;
-		  data_item_win->origin.x = (item_win_width * j) + 1;
-		  data_item_win->origin.y = cur_y;
-		  data_item_win->make_visible (true);
-                  scrollok (data_item_win->handle, FALSE);
-		}
-              touchwin (data_item_win->handle);
-
-	      /* Get the printable representation of the register
-                 and display it.  */
-              tui_display_register (data_item_win);
-	      i++;		/* Next register.  */
+	  if (data_item_win->handle == NULL)
+	    {
+	      data_item_win->height = 1;
+	      data_item_win->width = item_win_width;
+	      data_item_win->origin.x = (item_win_width * j) + 1;
+	      data_item_win->origin.y = cur_y;
+	      data_item_win->make_visible (true);
+	      scrollok (data_item_win->handle, FALSE);
 	    }
-	  cur_y++;		/* Next row.  */
+	  touchwin (data_item_win->handle);
+
+	  /* Get the printable representation of the register
+	     and display it.  */
+	  tui_display_register (data_item_win);
+	  i++;		/* Next register.  */
 	}
+      cur_y++;		/* Next row.  */
     }
 }
 
@@ -322,27 +314,24 @@ void
 tui_data_window::display_reg_element_at_line (int start_element_no,
 					      int start_line_no)
 {
-  if (!regs_content.empty ())
-    {
-      int element_no = start_element_no;
+  int element_no = start_element_no;
 
-      if (start_element_no != 0 && start_line_no != 0)
-	{
-	  int last_line_no, first_line_on_last_page;
-
-	  last_line_no = last_regs_line_no ();
-	  first_line_on_last_page = last_line_no - (height - 2);
-	  if (first_line_on_last_page < 0)
-	    first_line_on_last_page = 0;
-
-	  /* If the element_no causes us to scroll past the end of the
-	     registers, adjust what element to really start the
-	     display at.  */
-	  if (start_line_no > first_line_on_last_page)
-	    element_no = first_reg_element_no_inline (first_line_on_last_page);
-	}
-      display_registers_from (element_no);
+  if (start_element_no != 0 && start_line_no != 0)
+    {
+      int last_line_no, first_line_on_last_page;
+
+      last_line_no = last_regs_line_no ();
+      first_line_on_last_page = last_line_no - (height - 2);
+      if (first_line_on_last_page < 0)
+	first_line_on_last_page = 0;
+
+      /* If the element_no causes us to scroll past the end of the
+	 registers, adjust what element to really start the
+	 display at.  */
+      if (start_line_no > first_line_on_last_page)
+	element_no = first_reg_element_no_inline (first_line_on_last_page);
     }
+  display_registers_from (element_no);
 }
 
 /* See tui-regs.h.  */
@@ -351,34 +340,30 @@ int
 tui_data_window::display_registers_from_line (int line_no)
 {
   check_and_display_highlight_if_needed ();
-  if (!regs_content.empty ())
-    {
-      int element_no;
 
-      if (line_no < 0)
-	line_no = 0;
-      else
+  int element_no;
+
+  if (line_no < 0)
+    line_no = 0;
+  else
+    {
+      /* Make sure that we don't display off the end of the
+	 registers.  */
+      if (line_no >= last_regs_line_no ())
 	{
-	  /* Make sure that we don't display off the end of the
-	     registers.  */
-	  if (line_no >= last_regs_line_no ())
-	    {
-	      line_no = line_from_reg_element_no (regs_content.size () - 1);
-	      if (line_no < 0)
-		line_no = 0;
-	    }
+	  line_no = line_from_reg_element_no (regs_content.size () - 1);
+	  if (line_no < 0)
+	    line_no = 0;
 	}
-
-      element_no = first_reg_element_no_inline (line_no);
-      if (element_no < regs_content.size ())
-	display_reg_element_at_line (element_no, line_no);
-      else
-	line_no = (-1);
-
-      return line_no;
     }
 
-  return (-1);			/* Nothing was displayed.  */
+  element_no = first_reg_element_no_inline (line_no);
+  if (element_no < regs_content.size ())
+    display_reg_element_at_line (element_no, line_no);
+  else
+    line_no = (-1);
+
+  return line_no;
 }
 
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove some calls in tui_data_window
@ 2019-08-30 21:37 gdb-buildbot
  2019-08-30 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-30 21:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1bf2866a59530d9e8384807bc44b833e8647d329 ***

commit 1bf2866a59530d9e8384807bc44b833e8647d329
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Sun Jul 14 09:11:46 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:04 2019 -0600

    Remove some calls in tui_data_window
    
    This patch removes a call to erase_data_content in refresh_all and
    then removes some other calls that are more clearly unnecessary once
    one follows calls from that point.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-regs.c (tui_data_window::display_registers_from_line)
            (tui_data_window::rerender): Don't call
            check_and_display_highlight_if_needed.
            (tui_data_window::refresh_all): Remove call to
            erase_data_content.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c8b69f4d52..b95be65f6f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-regs.c (tui_data_window::display_registers_from_line)
+	(tui_data_window::rerender): Don't call
+	check_and_display_highlight_if_needed.
+	(tui_data_window::refresh_all): Remove call to
+	erase_data_content.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-regs.c (tui_data_window::last_regs_line_no)
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 636ae10148..4a09a59044 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -339,8 +339,6 @@ tui_data_window::display_reg_element_at_line (int start_element_no,
 int
 tui_data_window::display_registers_from_line (int line_no)
 {
-  check_and_display_highlight_if_needed ();
-
   int element_no;
 
   if (line_no < 0)
@@ -427,7 +425,6 @@ tui_data_window::rerender ()
     {
       erase_data_content (NULL);
       delete_data_content_windows ();
-      check_and_display_highlight_if_needed ();
       display_registers_from (0);
     }
 }
@@ -450,10 +447,7 @@ tui_data_window::refresh_all ()
 	    first_line = line_from_reg_element_no (first_element);
 
 	  if (first_line >= 0)
-	    {
-	      erase_data_content (NULL);
-	      display_registers_from_line (first_line);
-	    }
+	    display_registers_from_line (first_line);
 	}
     }
 }


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Private data members in tui_data_window
@ 2019-08-30 22:10 gdb-buildbot
  2019-08-31  0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-30 22:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 89df7f9056d72418720ac655e1ad97decc471da9 ***

commit 89df7f9056d72418720ac655e1ad97decc471da9
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Sun Jul 14 19:45:55 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:04 2019 -0600

    Private data members in tui_data_window
    
    This changes tui_data_window so that the data members are private.
    This required the addition of a simple accessor method in one case.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-regs.h (struct tui_data_window) <regs_content,
            regs_column_count, current_group>: Move later.  Now private.
            <get_current_group>: New method.
            * tui/tui-regs.c (tui_reg_command): Update.
            * tui/tui-layout.c (tui_set_layout): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b95be65f6f..2a2c08cae4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-regs.h (struct tui_data_window) <regs_content,
+	regs_column_count, current_group>: Move later.  Now private.
+	<get_current_group>: New method.
+	* tui/tui-regs.c (tui_reg_command): Update.
+	* tui/tui-layout.c (tui_set_layout): Update.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-regs.c (tui_data_window::display_registers_from_line)
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 01d50e437e..387a4f51af 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -189,7 +189,7 @@ tui_set_layout (enum tui_layout_type layout_type)
       tui_update_source_windows_with_addr (gdbarch, addr);
       if (new_layout == SRC_DATA_COMMAND
 	  || new_layout == DISASSEM_DATA_COMMAND)
-	TUI_DATA_WIN->show_registers (TUI_DATA_WIN->current_group);
+	TUI_DATA_WIN->show_registers (TUI_DATA_WIN->get_current_group ());
     }
 }
 
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 4a09a59044..98096e2cdc 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -622,7 +622,7 @@ tui_reg_command (const char *args, int from_tty)
       if (TUI_DATA_WIN == NULL || !TUI_DATA_WIN->is_visible ())
 	tui_reg_layout ();
 
-      struct reggroup *current_group = TUI_DATA_WIN->current_group;
+      struct reggroup *current_group = TUI_DATA_WIN->get_current_group ();
       if (strncmp (args, "next", len) == 0)
 	match = tui_reg_next (current_group, gdbarch);
       else if (strncmp (args, "prev", len) == 0)
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index fa76cae0b1..2606c39f5a 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -63,15 +63,15 @@ struct tui_data_window : public tui_win_info
     return DATA_NAME;
   }
 
-  /* Windows that are used to display registers.  */
-  std::vector<tui_data_item_window> regs_content;
-  int regs_column_count = 0;
-  struct reggroup *current_group = nullptr;
-
   void check_register_values (struct frame_info *frame);
 
   void show_registers (struct reggroup *group);
 
+  struct reggroup *get_current_group () const
+  {
+    return current_group;
+  }
+
 protected:
 
   void do_scroll_vertical (int num_to_scroll) override;
@@ -126,6 +126,11 @@ private:
   void delete_data_content_windows ();
 
   void erase_data_content (const char *prompt);
+
+  /* Windows that are used to display registers.  */
+  std::vector<tui_data_item_window> regs_content;
+  int regs_column_count = 0;
+  struct reggroup *current_group = nullptr;
 };
 
 #endif /* TUI_TUI_REGS_H */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Simplify register display
@ 2019-08-30 22:32 gdb-buildbot
  2019-08-31  1:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-30 22:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cdaa6eb4394c42b49b090181dbfaae4e327090de ***

commit cdaa6eb4394c42b49b090181dbfaae4e327090de
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Mon Jul 15 15:28:56 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:05 2019 -0600

    Simplify register display
    
    This patch starts with the observation that the code in
    tui_data_window::display_registers_from can all be replaced with a
    call to resize.  To make this work propertly, it also changes
    tui_display_register to be the "rerender" method on
    tui_data_item_window.
    
    The refresh_window method is needed due to the use of nested windows
    here.  The ncurses man page makes it sound like this is not very well
    supported; and experience bears this out: negelecting the touchwin
    call in this path will cause the register window to blank when
    switching focus.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-regs.h (struct tui_data_item_window) <rerender,
            refresh_window>: Declare.
            * tui/tui-regs.c (tui_data_window::display_registers_from): Call
            resize.
            (tui_data_item_window::rerender): Rename from
            tui_display_register.
            (tui_data_item_window::refresh_window): New method.
            * tui/tui-layout.c (tui_gen_win_info::resize): Do nothing on
            no-op.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2a2c08cae4..388f5ebe92 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-regs.h (struct tui_data_item_window) <rerender,
+	refresh_window>: Declare.
+	* tui/tui-regs.c (tui_data_window::display_registers_from): Call
+	resize.
+	(tui_data_item_window::rerender): Rename from
+	tui_display_register.
+	(tui_data_item_window::refresh_window): New method.
+	* tui/tui-layout.c (tui_gen_win_info::resize): Do nothing on
+	no-op.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-regs.h (struct tui_data_window) <regs_content,
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 387a4f51af..7ec704e52f 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -580,6 +580,11 @@ void
 tui_gen_win_info::resize (int height_, int width_,
 			  int origin_x_, int origin_y_)
 {
+  if (width == width_ && height == height_
+      && origin.x == origin_x_ && origin.y == origin_y_
+      && handle != nullptr)
+    return;
+
   width = width_;
   height = height_;
   if (height > 1)
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 98096e2cdc..f62ba065eb 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -42,8 +42,6 @@
 
 #include "gdb_curses.h"
 
-static void tui_display_register (struct tui_data_item_window *data);
-
 /* Get the register from the frame and return a printable
    representation of it.  */
 
@@ -274,34 +272,9 @@ tui_data_window::display_registers_from (int start_element_no)
 	   j < regs_column_count && i < regs_content.size ();
 	   j++)
 	{
-	  struct tui_data_item_window *data_item_win;
-
 	  /* Create the window if necessary.  */
-	  data_item_win = &regs_content[i];
-	  if (data_item_win->handle != NULL
-	      && (data_item_win->height != 1
-		  || data_item_win->width != item_win_width
-		  || data_item_win->origin.x != (item_win_width * j) + 1
-		  || data_item_win->origin.y != cur_y))
-	    {
-	      tui_delete_win (data_item_win->handle);
-	      data_item_win->handle = 0;
-	    }
-                  
-	  if (data_item_win->handle == NULL)
-	    {
-	      data_item_win->height = 1;
-	      data_item_win->width = item_win_width;
-	      data_item_win->origin.x = (item_win_width * j) + 1;
-	      data_item_win->origin.y = cur_y;
-	      data_item_win->make_visible (true);
-	      scrollok (data_item_win->handle, FALSE);
-	    }
-	  touchwin (data_item_win->handle);
-
-	  /* Get the printable representation of the register
-	     and display it.  */
-	  tui_display_register (data_item_win);
+	  regs_content[i].resize (1, item_win_width,
+				  (item_win_width * j) + 1, cur_y);
 	  i++;		/* Next register.  */
 	}
       cur_y++;		/* Next row.  */
@@ -508,43 +481,54 @@ tui_data_window::check_register_values (struct frame_info *frame)
 			    &data_item_win.highlight);
 
 	  if (data_item_win.highlight || was_hilighted)
-	    tui_display_register (&data_item_win);
+	    data_item_win.rerender ();
 	}
     }
 }
 
 /* Display a register in a window.  If hilite is TRUE, then the value
    will be displayed in reverse video.  */
-static void
-tui_display_register (struct tui_data_item_window *data)
+void
+tui_data_item_window::rerender ()
 {
-  if (data->handle != NULL)
-    {
-      int i;
-
-      if (data->highlight)
-	/* We ignore the return value, casting it to void in order to avoid
-	   a compiler warning.  The warning itself was introduced by a patch
-	   to ncurses 5.7 dated 2009-08-29, changing this macro to expand
-	   to code that causes the compiler to generate an unused-value
-	   warning.  */
-	(void) wstandout (data->handle);
+  int i;
+
+  scrollok (handle, FALSE);
+  if (highlight)
+    /* We ignore the return value, casting it to void in order to avoid
+       a compiler warning.  The warning itself was introduced by a patch
+       to ncurses 5.7 dated 2009-08-29, changing this macro to expand
+       to code that causes the compiler to generate an unused-value
+       warning.  */
+    (void) wstandout (handle);
       
-      wmove (data->handle, 0, 0);
-      for (i = 1; i < data->width; i++)
-        waddch (data->handle, ' ');
-      wmove (data->handle, 0, 0);
-      if (data->content)
-        waddstr (data->handle, data->content.get ());
-
-      if (data->highlight)
-	/* We ignore the return value, casting it to void in order to avoid
-	   a compiler warning.  The warning itself was introduced by a patch
-	   to ncurses 5.7 dated 2009-08-29, changing this macro to expand
-	   to code that causes the compiler to generate an unused-value
-	   warning.  */
-	(void) wstandend (data->handle);
-      data->refresh_window ();
+  wmove (handle, 0, 0);
+  for (i = 1; i < width; i++)
+    waddch (handle, ' ');
+  wmove (handle, 0, 0);
+  if (content)
+    waddstr (handle, content.get ());
+
+  if (highlight)
+    /* We ignore the return value, casting it to void in order to avoid
+       a compiler warning.  The warning itself was introduced by a patch
+       to ncurses 5.7 dated 2009-08-29, changing this macro to expand
+       to code that causes the compiler to generate an unused-value
+       warning.  */
+    (void) wstandend (handle);
+  refresh_window ();
+}
+
+void
+tui_data_item_window::refresh_window ()
+{
+  if (handle != nullptr)
+    {
+      /* This seems to be needed because the data items are nested
+	 windows, which according to the ncurses man pages aren't well
+	 supported.  */
+      touchwin (handle);
+      wrefresh (handle);
     }
 }
 
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index 2606c39f5a..1f9fa73f1c 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -37,6 +37,10 @@ struct tui_data_item_window : public tui_gen_win_info
 
   tui_data_item_window (tui_data_item_window &&) = default;
 
+  void rerender () override;
+
+  void refresh_window () override;
+
   const char *name = nullptr;
   /* The register number, or data display number.  */
   int item_no = -1;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove NULL checks from box_win
@ 2019-08-30 23:36 gdb-buildbot
  2019-08-31  2:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-30 23:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 108e13abdf90acc44b1aba4a0f3ee1d49a0f7934 ***

commit 108e13abdf90acc44b1aba4a0f3ee1d49a0f7934
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Mon Jul 15 15:59:53 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:05 2019 -0600

    Remove NULL checks from box_win
    
    box_win can't be called with a NULL window, or with an invisible
    window.  So, the NULL checks in that function can be removed.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-wingeneral.c (box_win): Assume win_info and
            win_info->handle cannot be NULL.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 388f5ebe92..9c8299b93f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-wingeneral.c (box_win): Assume win_info and
+	win_info->handle cannot be NULL.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-regs.h (struct tui_data_item_window) <rerender,
diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
index ab0363f856..01f288be86 100644
--- a/gdb/tui/tui-wingeneral.c
+++ b/gdb/tui/tui-wingeneral.c
@@ -58,30 +58,27 @@ static void
 box_win (struct tui_win_info *win_info, 
 	 bool highlight_flag)
 {
-  if (win_info && win_info->handle)
-    {
-      WINDOW *win;
-      int attrs;
+  WINDOW *win;
+  int attrs;
 
-      win = win_info->handle;
-      if (highlight_flag)
-        attrs = tui_active_border_attrs;
-      else
-        attrs = tui_border_attrs;
+  win = win_info->handle;
+  if (highlight_flag)
+    attrs = tui_active_border_attrs;
+  else
+    attrs = tui_border_attrs;
 
-      wattron (win, attrs);
+  wattron (win, attrs);
 #ifdef HAVE_WBORDER
-      wborder (win, tui_border_vline, tui_border_vline,
-               tui_border_hline, tui_border_hline,
-               tui_border_ulcorner, tui_border_urcorner,
-               tui_border_llcorner, tui_border_lrcorner);
+  wborder (win, tui_border_vline, tui_border_vline,
+	   tui_border_hline, tui_border_hline,
+	   tui_border_ulcorner, tui_border_urcorner,
+	   tui_border_llcorner, tui_border_lrcorner);
 #else
-      box (win, tui_border_vline, tui_border_hline);
+  box (win, tui_border_vline, tui_border_hline);
 #endif
-      if (!win_info->title.empty ())
-        mvwaddstr (win, 0, 3, win_info->title.c_str ());
-      wattroff (win, attrs);
-    }
+  if (!win_info->title.empty ())
+    mvwaddstr (win, 0, 3, win_info->title.c_str ());
+  wattroff (win, attrs);
 }
 
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't call touchwin in tui_gen_win_info::refresh_window
@ 2019-08-30 23:43 gdb-buildbot
  2019-08-31  3:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-30 23:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 772f3f0398b53cdb88cd744132cf7265928c12a0 ***

commit 772f3f0398b53cdb88cd744132cf7265928c12a0
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Wed Jul 17 16:11:40 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:06 2019 -0600

    Don't call touchwin in tui_gen_win_info::refresh_window
    
    The call to touchwin in tui_gen_win_info::refresh_window was an
    artifact of some earlier refactorings.  Testing shows it isn't needed
    any more -- I believe it was only ever needed for the data item window
    display problem; but that's been solved more locally.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-wingeneral.c (tui_gen_win_info::refresh_window): Don't
            call touchwin.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9c8299b93f..4f20a78a8c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-wingeneral.c (tui_gen_win_info::refresh_window): Don't
+	call touchwin.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-wingeneral.c (box_win): Assume win_info and
diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
index 01f288be86..f900eab013 100644
--- a/gdb/tui/tui-wingeneral.c
+++ b/gdb/tui/tui-wingeneral.c
@@ -38,10 +38,7 @@ void
 tui_gen_win_info::refresh_window ()
 {
   if (handle != NULL)
-    {
-      touchwin (handle);
-      wrefresh (handle);
-    }
+    wrefresh (handle);
 }
 
 /* Function to delete the curses window, checking for NULL.  */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't call tui_refresh_all from show_layout
@ 2019-08-31  0:20 gdb-buildbot
  2019-08-31  4:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-31  0:20 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 715bb467feab6e94e01bdf4f5aced092df7398c0 ***

commit 715bb467feab6e94e01bdf4f5aced092df7398c0
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 13:46:23 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:07 2019 -0600

    Don't call tui_refresh_all from show_layout
    
    show_layout calls tui_refresh_all in one case.  However, it doesn't
    need to any more, because the resize method on each window will also
    update the contents.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-layout.c (show_layout): Don't call tui_refresh_all.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4f20a78a8c..2a027a212d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-layout.c (show_layout): Don't call tui_refresh_all.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-wingeneral.c (tui_gen_win_info::refresh_window): Don't
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 7ec704e52f..df7056ae97 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -82,7 +82,6 @@ show_layout (enum tui_layout_type layout)
 	case SRC_DATA_COMMAND:
 	case DISASSEM_DATA_COMMAND:
 	  show_data (layout);
-	  tui_refresh_all ();
 	  break;
 	  /* Now show the new layout.  */
 	case SRC_COMMAND:


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Turn two locator functions into methods
@ 2019-08-31  1:42 gdb-buildbot
  2019-08-31  4:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-31  1:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e594a5d19e855cf19a89dab29196d13f53ced7da ***

commit e594a5d19e855cf19a89dab29196d13f53ced7da
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:01:56 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:07 2019 -0600

    Turn two locator functions into methods
    
    This changes tui_set_locator_fullname and tui_set_locator_info to be
    methods on tui_locator_window.  This enables some subsequent
    cleannups.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-stack.h (struct tui_locator_window) <set_locator_info,
            set_locator_fullname>: New methods.
            * tui/tui-stack.c (tui_locator_window::set_locator_fullname):
            Rename from tui_set_locator_fullname.
            (tui_locator_window::set_locator_info): Rename from
            tui_set_locator_info.  Return bool.
            (tui_update_locator_fullname, tui_show_frame_info): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2a027a212d..a069b0a6e1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-stack.h (struct tui_locator_window) <set_locator_info,
+	set_locator_fullname>: New methods.
+	* tui/tui-stack.c (tui_locator_window::set_locator_fullname):
+	Rename from tui_set_locator_fullname.
+	(tui_locator_window::set_locator_info): Rename from
+	tui_set_locator_info.  Return bool.
+	(tui_update_locator_fullname, tui_show_frame_info): Update.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-layout.c (show_layout): Don't call tui_refresh_all.
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 0d411331bb..a4adf36365 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -58,15 +58,6 @@ static struct tui_locator_window _locator;
    Returns a pointer to a static area holding the result.  */
 static char *tui_get_function_from_frame (struct frame_info *fi);
 
-/* Set the full_name portion of the locator.  */
-static void tui_set_locator_fullname (const char *fullname);
-
-/* Update the locator, with the provided arguments.  */
-static int tui_set_locator_info (struct gdbarch *gdbarch,
-				 const char *fullname,
-				 const char *procname,
-                                 int lineno, CORE_ADDR addr);
-
 static void tui_update_command (const char *, int);
 \f
 
@@ -295,9 +286,10 @@ tui_locator_window::rerender ()
   tui_show_locator_content ();
 }
 
-/* Set the filename portion of the locator.  */
-static void
-tui_set_locator_fullname (const char *fullname)
+/* See tui-stack.h.  */
+
+void
+tui_locator_window::set_locator_fullname (const char *fullname)
 {
   struct tui_locator_window *locator = tui_locator_win_info_ptr ();
 
@@ -305,20 +297,16 @@ tui_set_locator_fullname (const char *fullname)
   strcat_to_buf (locator->full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
 }
 
-/* Update the locator, with the provided arguments.
+/* See tui-stack.h.  */
 
-   Returns 1 if any of the locator's fields were actually changed,
-   and 0 otherwise.  */
-
-static int
-tui_set_locator_info (struct gdbarch *gdbarch,
-		      const char *fullname,
-		      const char *procname, 
-		      int lineno,
-                      CORE_ADDR addr)
+bool
+tui_locator_window::set_locator_info (struct gdbarch *gdbarch_in,
+				      const char *fullname,
+				      const char *procname, 
+				      int lineno,
+				      CORE_ADDR addr_in)
 {
-  struct tui_locator_window *locator = tui_locator_win_info_ptr ();
-  int locator_changed_p = 0;
+  bool locator_changed_p = false;
 
   if (procname == NULL)
     procname = "";
@@ -326,20 +314,20 @@ tui_set_locator_info (struct gdbarch *gdbarch,
   if (fullname == NULL)
     fullname = "";
 
-  locator_changed_p |= strncmp (locator->proc_name, procname,
+  locator_changed_p |= strncmp (proc_name, procname,
 				MAX_LOCATOR_ELEMENT_LEN) != 0;
-  locator_changed_p |= lineno != locator->line_no;
-  locator_changed_p |= addr != locator->addr;
-  locator_changed_p |= gdbarch != locator->gdbarch;
-  locator_changed_p |= strncmp (locator->full_name, fullname,
+  locator_changed_p |= lineno != line_no;
+  locator_changed_p |= addr_in != addr;
+  locator_changed_p |= gdbarch_in != gdbarch;
+  locator_changed_p |= strncmp (full_name, fullname,
 				MAX_LOCATOR_ELEMENT_LEN) != 0;
 
-  locator->proc_name[0] = (char) 0;
-  strcat_to_buf (locator->proc_name, MAX_LOCATOR_ELEMENT_LEN, procname);
-  locator->line_no = lineno;
-  locator->addr = addr;
-  locator->gdbarch = gdbarch;
-  tui_set_locator_fullname (fullname);
+  proc_name[0] = (char) 0;
+  strcat_to_buf (proc_name, MAX_LOCATOR_ELEMENT_LEN, procname);
+  line_no = lineno;
+  addr = addr_in;
+  gdbarch = gdbarch_in;
+  set_locator_fullname (fullname);
 
   return locator_changed_p;
 }
@@ -348,7 +336,9 @@ tui_set_locator_info (struct gdbarch *gdbarch,
 void
 tui_update_locator_fullname (const char *fullname)
 {
-  tui_set_locator_fullname (fullname);
+  struct tui_locator_window *locator = tui_locator_win_info_ptr ();
+
+  locator->set_locator_fullname (fullname);
   tui_show_locator_content ();
 }
 
@@ -361,11 +351,11 @@ tui_update_locator_fullname (const char *fullname)
 int
 tui_show_frame_info (struct frame_info *fi)
 {
-  int locator_changed_p;
+  bool locator_changed_p;
+  struct tui_locator_window *locator = tui_locator_win_info_ptr ();
 
   if (fi)
     {
-      struct tui_locator_window *locator = tui_locator_win_info_ptr ();
       CORE_ADDR pc;
 
       symtab_and_line sal = find_frame_sal (fi);
@@ -376,16 +366,16 @@ tui_show_frame_info (struct frame_info *fi)
 
       if (get_frame_pc_if_available (fi, &pc))
 	locator_changed_p
-	  = tui_set_locator_info (get_frame_arch (fi),
-				  (sal.symtab == 0
-				   ? "??" : fullname),
-				  tui_get_function_from_frame (fi),
-				  sal.line,
-				  pc);
+	  = locator->set_locator_info (get_frame_arch (fi),
+				       (sal.symtab == 0
+					? "??" : fullname),
+				       tui_get_function_from_frame (fi),
+				       sal.line,
+				       pc);
       else
 	locator_changed_p
-	  = tui_set_locator_info (get_frame_arch (fi),
-				  "??", _("<unavailable>"), sal.line, 0);
+	  = locator->set_locator_info (get_frame_arch (fi),
+				       "??", _("<unavailable>"), sal.line, 0);
 
       /* If the locator information has not changed, then frame information has
 	 not changed.  If frame information has not changed, then the windows'
@@ -405,7 +395,7 @@ tui_show_frame_info (struct frame_info *fi)
   else
     {
       locator_changed_p
-	= tui_set_locator_info (NULL, NULL, NULL, 0, (CORE_ADDR) 0);
+	= locator->set_locator_info (NULL, NULL, NULL, 0, (CORE_ADDR) 0);
 
       if (!locator_changed_p)
 	return 0;
diff --git a/gdb/tui/tui-stack.h b/gdb/tui/tui-stack.h
index 951cf2c407..86239b0d28 100644
--- a/gdb/tui/tui-stack.h
+++ b/gdb/tui/tui-stack.h
@@ -45,6 +45,18 @@ struct tui_locator_window : public tui_gen_win_info
 
   void rerender () override;
 
+  /* Update the locator, with the provided arguments.
+
+     Returns true if any of the locator's fields were actually
+     changed, and false otherwise.  */
+  bool set_locator_info (struct gdbarch *gdbarch,
+			 const char *fullname,
+			 const char *procname,
+			 int lineno, CORE_ADDR addr);
+
+  /* Set the full_name portion of the locator.  */
+  void set_locator_fullname (const char *fullname);
+
   char full_name[MAX_LOCATOR_ELEMENT_LEN];
   char proc_name[MAX_LOCATOR_ELEMENT_LEN];
   int line_no = 0;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Minor rearrangement of tui-stack.c
@ 2019-08-31  2:53 gdb-buildbot
  2019-08-31  8:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-31  2:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 12a8555a5402b46da5ad39e29156c0d6b3a81a78 ***

commit 12a8555a5402b46da5ad39e29156c0d6b3a81a78
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:12:31 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:09 2019 -0600

    Minor rearrangement of tui-stack.c
    
    This move _initialize_tui_stack to the end of tui-stack.c, per the gdb
    style; and then removes two unnecessary forward declarations.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-stack.c (_initialize_tui_stack): Move later.
            Remove unnecessary forward declarations.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 38619ef647..981189e178 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-stack.c (_initialize_tui_stack): Move later.
+	Remove unnecessary forward declarations.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-stack.c (tui_locator_window::set_locator_fullname): Call
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index f6b6bb72b2..36208d0cac 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -53,12 +53,6 @@
 
 static struct tui_locator_window _locator;
 
-/* Get a printable name for the function at the address.
-   The symbol name is demangled if demangling is turned on.
-   Returns a pointer to a static area holding the result.  */
-static char *tui_get_function_from_frame (struct frame_info *fi);
-
-static void tui_update_command (const char *, int);
 \f
 
 /* Accessor for the locator win info.  Answers a pointer to the static
@@ -405,6 +399,13 @@ tui_show_locator_content ()
   locator->rerender ();
 }
 
+/* Command to update the display with the current execution point.  */
+static void
+tui_update_command (const char *arg, int from_tty)
+{
+  execute_command ("frame 0", from_tty);
+}
+
 /* Function to initialize gdb commands, for tui window stack
    manipulation.  */
 
@@ -415,10 +416,3 @@ _initialize_tui_stack (void)
 	   _("Update the source window and locator to "
 	     "display the current execution point."));
 }
-
-/* Command to update the display with the current execution point.  */
-static void
-tui_update_command (const char *arg, int from_tty)
-{
-  execute_command ("frame 0", from_tty);
-}


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't call wrefresh from tui_cont_sig
@ 2019-08-31  3:30 gdb-buildbot
  2019-08-31  8:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-31  3:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 55b2657bdc4f9494c13f5b6f69dd7f67d72275c0 ***

commit 55b2657bdc4f9494c13f5b6f69dd7f67d72275c0
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:34:39 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:10 2019 -0600

    Don't call wrefresh from tui_cont_sig
    
    tui_cont_sig does not need to call wrefresh, because this is already
    done by tui_refresh_all_win.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-io.c (tui_cont_sig): Don't call wrefresh.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 981189e178..6f35232897 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-io.c (tui_cont_sig): Don't call wrefresh.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-stack.c (_initialize_tui_stack): Move later.
diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c
index ac7f098275..ee581a2ff6 100644
--- a/gdb/tui/tui-io.c
+++ b/gdb/tui/tui-io.c
@@ -851,8 +851,6 @@ tui_cont_sig (int sig)
 
       /* Force a refresh of the screen.  */
       tui_refresh_all_win ();
-
-      wrefresh (TUI_CMD_WIN->handle);
     }
   signal (sig, tui_cont_sig);
 }


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove "\nError: " suffix from nat/fork-inferior.c:trace_start_error warning message
@ 2019-08-31  4:56 gdb-buildbot
  2019-08-31 10:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-31  4:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 47a536d940d2f2bccfec51539b857da06ebc429e ***

commit 47a536d940d2f2bccfec51539b857da06ebc429e
Author:     Sergio Durigan Junior <sergiodj@redhat.com>
AuthorDate: Thu Aug 29 16:11:45 2019 -0400
Commit:     Sergio Durigan Junior <sergiodj@redhat.com>
CommitDate: Fri Aug 30 17:04:37 2019 -0400

    Remove "\nError: " suffix from nat/fork-inferior.c:trace_start_error warning message
    
    Rationale: https://sourceware.org/ml/gdb-patches/2019-08/msg00651.html
    
    This very simple patch removes the "\nError: " suffix from the warning
    message printed by nat/fork-inferior.c:trace_start_error.  This proved
    to just pollute the screen, causing things like:
    
      Starting program: /usr/bin/true
      warning: Could not trace the inferior process.
      Error:
      warning: ptrace: Permission denied
    
    This "Error: " string is not useful at all, and can confuse things,
    therefore let's just remove it and simplify the resulting messages:
    
      Starting program: /usr/bin/true
      warning: Could not trace the inferior process.
      warning: ptrace: Permission denied
    
    gdb/ChangeLog:
    2019-08-30  Sergio Durigan Junior  <sergiodj@redhat.com>
    
            * nat/fork-inferior.c (trace_start_error): Remove "\nError: "
            suffix from warning message.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2cc7b5809e..ebcfae1f97 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* nat/fork-inferior.c (trace_start_error): Remove "\nError: "
+	suffix from warning message.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-winsource.h (struct tui_source_window_base)
diff --git a/gdb/nat/fork-inferior.c b/gdb/nat/fork-inferior.c
index 68b51aa814..355e9bef43 100644
--- a/gdb/nat/fork-inferior.c
+++ b/gdb/nat/fork-inferior.c
@@ -580,7 +580,7 @@ trace_start_error (const char *fmt, ...)
   va_list ap;
 
   va_start (ap, fmt);
-  warning ("Could not trace the inferior process.\nError: ");
+  warning ("Could not trace the inferior process.");
   vwarning (fmt, ap);
   va_end (ap);
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Force linker error exit after unresolvable reloc.
@ 2019-08-31  5:12 gdb-buildbot
  2019-08-31 12:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-31  5:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fdd502691f8b893e321f19260464831f9726c5d4 ***

commit fdd502691f8b893e321f19260464831f9726c5d4
Author:     Jim Wilson <jimw@sifive.com>
AuthorDate: Fri Aug 30 15:14:36 2019 -0700
Commit:     Jim Wilson <jimw@sifive.com>
CommitDate: Fri Aug 30 15:14:36 2019 -0700

    RISC-V: Force linker error exit after unresolvable reloc.
    
    This was noticed while trying to test the compiler -msave-restore support.
    Putting non-pic code in a shared library gives a linker error, but doesn't
    stop the build.
    
    rohan:2030$ cat libtmp.c
    extern int sub2 (int);
    int sub (int i) { return sub2 (i + 10); }
    rohan:2031$ cat libtmp2.c
    extern int sub (int);
    int sub2 (int i) { return sub (i + 10); }
    rohan:2032$ riscv64-unknown-linux-gnu-gcc --shared -o libtmp.so libtmp.c
    rohan:2033$ riscv64-unknown-linux-gnu-gcc --shared -o libtmp2.so libtmp2.c libtmp.so
    /home/jimw/FOSS/install-riscv64/lib/gcc/riscv64-unknown-linux-gnu/8.3.0/../../../../riscv64-unknown-linux-gnu/bin/ld: /tmp/cctrsIBe.o(.text+0x18): unresolvable R_RISCV_CALL relocation against symbol `sub'
    rohan:2034$ echo $?
    0
    rohan:2035$ ls -lt libtmp2.so
    -rwxr-xr-x 1 jimw jimw 6912 Aug 30 14:32 libtmp2.so
    rohan:2036$
    
    The patch fixes this by forcing a linker error.  I now get this.
    
    ohan:2059$ sh tmp.script
    /home/jimw/FOSS/BINUTILS/X-riscv64-linux/ld/ld-new: libtmp2.o(.text+0x18): unresolvable R_RISCV_CALL relocation against symbol `sub'
    /home/jimw/FOSS/BINUTILS/X-riscv64-linux/ld/ld-new: final link failed: bad value
    rohan:2060$ echo $?
    1
    rohan:2061$ ls -lt libtmp2.so
    ls: cannot access 'libtmp2.so': No such file or directory
    
            bfd/
            * elfnn-riscv.c (riscv_elf_relocate_section): For unresolvable reloc
            error, call bfd_set_error, set ret to FALSE, and goto out label.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index bb99231c64..1fc39dce5f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30  Jim Wilson  <jimw@sifive.com>
+
+	* elfnn-riscv.c (riscv_elf_relocate_section): For unresolvable reloc
+	error, call bfd_set_error, set ret to FALSE, and goto out label.
+
 2019-08-30  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR ld/24951
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index 4729bae09a..ef2471eb99 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -2297,7 +2297,10 @@ riscv_elf_relocate_section (bfd *output_bfd,
 	     (uint64_t) rel->r_offset,
 	     howto->name,
 	     h->root.root.string);
-	  continue;
+
+	  bfd_set_error (bfd_error_bad_value);
+	  ret = FALSE;
+	  goto out;
 	}
 
       if (r == bfd_reloc_ok)


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Swap tui_show_locator_content and tui_locator_window::rerender
@ 2019-08-31  5:30 gdb-buildbot
  2019-08-31  5:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-31  5:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 99ab33fb2dab538b13df0f8c02ea02ff1fd6c4db ***

commit 99ab33fb2dab538b13df0f8c02ea02ff1fd6c4db
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:04:14 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:08 2019 -0600

    Swap tui_show_locator_content and tui_locator_window::rerender
    
    This swaps the bodies ot tui_show_locator_content and
    tui_locator_window::rerender, so that the latter does the work, and
    the former is now just an exported convenience wrapper.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-stack.c (tui_show_locator_content): Move lower.  Rewrite.
            (tui_locator_window::rerender): Rewrite using body of previous
            tui_show_locator_content.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a069b0a6e1..8905a2424a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-stack.c (tui_show_locator_content): Move lower.  Rewrite.
+	(tui_locator_window::rerender): Rewrite using body of previous
+	tui_show_locator_content.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-stack.h (struct tui_locator_window) <set_locator_info,
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index a4adf36365..48062fed71 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -254,38 +254,27 @@ tui_get_function_from_frame (struct frame_info *fi)
 }
 
 void
-tui_show_locator_content (void)
+tui_locator_window::rerender ()
 {
-  char *string;
-  struct tui_locator_window *locator;
-
-  locator = tui_locator_win_info_ptr ();
-
-  if (locator != NULL && locator->handle != NULL)
+  if (handle != NULL)
     {
-      string = tui_make_status_line (locator);
-      wmove (locator->handle, 0, 0);
+      char *string = tui_make_status_line (this);
+      wmove (handle, 0, 0);
       /* We ignore the return value from wstandout and wstandend, casting
 	 them to void in order to avoid a compiler warning.  The warning
 	 itself was introduced by a patch to ncurses 5.7 dated 2009-08-29,
 	 changing these macro to expand to code that causes the compiler
 	 to generate an unused-value warning.  */
-      (void) wstandout (locator->handle);
-      waddstr (locator->handle, string);
-      wclrtoeol (locator->handle);
-      (void) wstandend (locator->handle);
-      locator->refresh_window ();
-      wmove (locator->handle, 0, 0);
+      (void) wstandout (handle);
+      waddstr (handle, string);
+      wclrtoeol (handle);
+      (void) wstandend (handle);
+      refresh_window ();
+      wmove (handle, 0, 0);
       xfree (string);
     }
 }
 
-void
-tui_locator_window::rerender ()
-{
-  tui_show_locator_content ();
-}
-
 /* See tui-stack.h.  */
 
 void
@@ -411,6 +400,13 @@ tui_show_frame_info (struct frame_info *fi)
     }
 }
 
+void
+tui_show_locator_content ()
+{
+  struct tui_locator_window *locator = tui_locator_win_info_ptr ();
+  locator->rerender ();
+}
+
 /* Function to initialize gdb commands, for tui window stack
    manipulation.  */
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make tui_locator_window::set_locator_fullname re-render
@ 2019-08-31  6:20 gdb-buildbot
  2019-08-31  7:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-31  6:20 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 900ac24287a26146a6a5f4b3b9d6610f3b574428 ***

commit 900ac24287a26146a6a5f4b3b9d6610f3b574428
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:08:53 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:09 2019 -0600

    Make tui_locator_window::set_locator_fullname re-render
    
    This changes tui_locator_window::set_locator_fullname to re-render the
    locator window, so that the callers don't need to do this.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-stack.c (tui_locator_window::set_locator_fullname): Call
            rerender.
            (tui_update_locator_fullname, tui_show_frame_info): Don't call
            tui_show_locator_content.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8905a2424a..38619ef647 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-stack.c (tui_locator_window::set_locator_fullname): Call
+	rerender.
+	(tui_update_locator_fullname, tui_show_frame_info): Don't call
+	tui_show_locator_content.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-stack.c (tui_show_locator_content): Move lower.  Rewrite.
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 48062fed71..f6b6bb72b2 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -284,6 +284,7 @@ tui_locator_window::set_locator_fullname (const char *fullname)
 
   locator->full_name[0] = 0;
   strcat_to_buf (locator->full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
+  rerender ();
 }
 
 /* See tui-stack.h.  */
@@ -328,7 +329,6 @@ tui_update_locator_fullname (const char *fullname)
   struct tui_locator_window *locator = tui_locator_win_info_ptr ();
 
   locator->set_locator_fullname (fullname);
-  tui_show_locator_content ();
 }
 
 /* Function to print the frame information for the TUI.  The windows are
@@ -372,7 +372,6 @@ tui_show_frame_info (struct frame_info *fi)
       if (!locator_changed_p)
 	return 0;
 
-      tui_show_locator_content ();
       for (struct tui_source_window_base *win_info : tui_source_windows ())
 	{
 	  win_info->maybe_update (fi, sal, locator->line_no, locator->addr);
@@ -389,7 +388,6 @@ tui_show_frame_info (struct frame_info *fi)
       if (!locator_changed_p)
 	return 0;
 
-      tui_show_locator_content ();
       for (struct tui_source_window_base *win_info : tui_source_windows ())
 	{
 	  win_info->erase_source_content ();


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove tui_win_info::refresh_all
@ 2019-08-31  9:14 gdb-buildbot
  2019-08-31  9:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-08-31  9:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d6a00eba2accffec92a5974c2ad1f79612a6679e ***

commit d6a00eba2accffec92a5974c2ad1f79612a6679e
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:38:39 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:10 2019 -0600

    Remove tui_win_info::refresh_all
    
    The TUI has two duplicate "re-render this window" methods, "rerender"
    and "refresh_all".  They differ only slightly in semantics, so I
    wanted to see if they could be unified.
    
    After looking into this, I decided that refresh_all was not needed.
    There are 4 calls to tui_refresh_all_win (the only caller of this
    method):
    
    1. tui_enable.  This sets the layout, which renders the windows.
    
    2. tui_cont_sig.  Here, I think it's sufficient to simply redraw the
       current window contents from the curses backing store, because gdb
       state didn't change while it was suspended
    
    3. tui_dispatch_ctrl_char.  This is the C-l handler, and here it's
       explicitly enough to just refresh the screen (as above).
    
    4. tui_refresh_all_command.  This is the command equivalent of C-l.
    
    So, this patch removes this method entirely and simplifies
    tui_refresh_all_win.
    
    gdb/ChangeLog
    2019-08-30  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-winsource.h (struct tui_source_window_base)
            <refresh_all>: Don't declare.
            * tui/tui-winsource.c (tui_source_window_base::refresh_all):
            Remove.
            * tui/tui-win.c (tui_refresh_all_win): Don't call refresh_all or
            tui_show_locator_content.
            * tui/tui-regs.h (struct tui_data_window) <refresh_all>: Don't
            declare.
            * tui/tui-regs.c (tui_data_window::refresh_all): Remove.
            * tui/tui-data.h (struct tui_win_info) <refresh_all>: Don't
            declare.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6f35232897..2cc7b5809e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,17 @@
+2019-08-30  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-winsource.h (struct tui_source_window_base)
+	<refresh_all>: Don't declare.
+	* tui/tui-winsource.c (tui_source_window_base::refresh_all):
+	Remove.
+	* tui/tui-win.c (tui_refresh_all_win): Don't call refresh_all or
+	tui_show_locator_content.
+	* tui/tui-regs.h (struct tui_data_window) <refresh_all>: Don't
+	declare.
+	* tui/tui-regs.c (tui_data_window::refresh_all): Remove.
+	* tui/tui-data.h (struct tui_win_info) <refresh_all>: Don't
+	declare.
+
 2019-08-30  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-io.c (tui_cont_sig): Don't call wrefresh.
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index 1810fa3e72..23f769f6ba 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -162,12 +162,6 @@ public:
   {
   }
 
-  /* Called after all the TUI windows are refreshed, to let this
-     window have a chance to update itself further.  */
-  virtual void refresh_all ()
-  {
-  }
-
   /* Compute the maximum height of this window.  */
   virtual int max_height () const;
 
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index f62ba065eb..48e78fc9db 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -403,29 +403,6 @@ tui_data_window::rerender ()
 }
 
 
-/* Function to redisplay the contents of the data window.  */
-void
-tui_data_window::refresh_all ()
-{
-  erase_data_content (NULL);
-  if (!regs_content.empty ())
-    {
-      int first_element = first_data_item_displayed ();
-
-      if (first_element >= 0)	/* Re-use existing windows.  */
-	{
-	  int first_line = (-1);
-
-	  if (first_element < regs_content.size ())
-	    first_line = line_from_reg_element_no (first_element);
-
-	  if (first_line >= 0)
-	    display_registers_from_line (first_line);
-	}
-    }
-}
-
-
 /* Scroll the data window vertically forward or backward.  */
 void
 tui_data_window::do_scroll_vertical (int num_to_scroll)
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index 1f9fa73f1c..abf44c88b6 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -58,8 +58,6 @@ struct tui_data_window : public tui_win_info
 
   DISABLE_COPY_AND_ASSIGN (tui_data_window);
 
-  void refresh_all () override;
-
   void refresh_window () override;
 
   const char *name () const override
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 64e38880a2..8d41372cf9 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -504,12 +504,6 @@ tui_refresh_all_win (void)
 {
   clearok (curscr, TRUE);
   tui_refresh_all ();
-  for (tui_win_info *win_info : all_tui_windows ())
-    {
-      if (win_info->is_visible ())
-	win_info->refresh_all ();
-    }
-  tui_show_locator_content ();
 }
 
 void
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 0a3eb78bb5..7a4821dc52 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -280,16 +280,6 @@ tui_source_window_base::~tui_source_window_base ()
 
 /* See tui-data.h.  */
 
-void
-tui_source_window_base::refresh_all ()
-{
-  show_source_content ();
-  check_and_display_highlight_if_needed ();
-  update_exec_info ();
-}
-
-/* See tui-data.h.  */
-
 void
 tui_source_window_base::update_tab_width ()
 {
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
index 1804ca7224..4c98ca3ceb 100644
--- a/gdb/tui/tui-winsource.h
+++ b/gdb/tui/tui-winsource.h
@@ -103,8 +103,6 @@ public:
 
   void clear_detail ();
 
-  void refresh_all () override;
-
   /* Refill the source window's source cache and update it.  If this
      is a disassembly window, then just update it.  */
   void refill ();


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Fix linker problems with tls copy relocs.
@ 2019-09-01  6:49 gdb-buildbot
  2019-09-01  8:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-01  6:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3e7bd7f24146f162565edf878840449f36a8d974 ***

commit 3e7bd7f24146f162565edf878840449f36a8d974
Author:     Jim Wilson <jimw@sifive.com>
AuthorDate: Sat Aug 31 21:22:36 2019 -0700
Commit:     Jim Wilson <jimw@sifive.com>
CommitDate: Sat Aug 31 21:22:36 2019 -0700

    RISC-V: Fix linker problems with tls copy relocs.
    
    The linker doesn't allocate memory space for sections that are only SEC_ALLOC
    and SEC_THREAD_LOCAL.  See the IS_TBSS test in ld/ldlang.c.  So we need to
    pretend that .tdata.dyn sections have contents to get the right result.  It
    will be marked this way anyways if there is a .tdata section to merge with.
    
            bfd/
            PR 23825
            * elfnn-riscv.c (riscv_elf_create_dynamic_sections): Add SEC_LOAD,
            SEC_DATA, and SEC_HAS_CONTENTS to .tdata.dyn section.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1fc39dce5f..2b06383768 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-31  Jim Wilson  <jimw@sifive.com>
+
+	PR 23825
+	* elfnn-riscv.c (riscv_elf_create_dynamic_sections): Add SEC_LOAD,
+	SEC_DATA, and SEC_HAS_CONTENTS to .tdata.dyn section.
+
 2019-08-30  Jim Wilson  <jimw@sifive.com>
 
 	* elfnn-riscv.c (riscv_elf_relocate_section): For unresolvable reloc
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index ef2471eb99..1d04ae9b7e 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -373,9 +373,23 @@ riscv_elf_create_dynamic_sections (bfd *dynobj,
 
   if (!bfd_link_pic (info))
     {
+      /* Technically, this section doesn't have contents.  It is used as the
+	 target of TLS copy relocs, to copy TLS data from shared libraries into
+	 the executable.  However, if we don't mark it as loadable, then it
+	 matches the IS_TBSS test in ldlang.c, and there is no run-time address
+	 space allocated for it even though it has SEC_ALLOC.  That test is
+	 correct for .tbss, but not correct for this section.  There is also
+	 a second problem that having a section with no contents can only work
+	 if it comes after all sections with contents in the same segment,
+	 but the linker script does not guarantee that.  This is just mixed in
+	 with other .tdata.* sections.  We can fix both problems by lying and
+	 saying that there are contents.  This section is expected to be small
+	 so this should not cause a significant extra program startup cost.  */
       htab->sdyntdata =
 	bfd_make_section_anyway_with_flags (dynobj, ".tdata.dyn",
 					    (SEC_ALLOC | SEC_THREAD_LOCAL
+					     | SEC_LOAD | SEC_DATA
+					     | SEC_HAS_CONTENTS
 					     | SEC_LINKER_CREATED));
     }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Re: Memory leak in dwarf2.c
@ 2019-09-02  8:27 gdb-buildbot
  2019-09-02  9:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-02  8:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 217d2eaa69c2a5d58cdfd11619c4f2e41c986826 ***

commit 217d2eaa69c2a5d58cdfd11619c4f2e41c986826
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 2 16:48:44 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 2 16:50:22 2019 +0930

    Re: Memory leak in dwarf2.c
    
            PR 11983
            * dwarf2.c (read_alt_indirect_string): Free debug_filename
            on success.  Tidy.
            (read_alt_indirect_ref): Likewise.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 47f694ad75..f033af7443 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -3,6 +3,8 @@
 	PR 11983
 	* dwarf2.c (_bfd_dwarf2_slurp_debug_info): Free debug_filename
 	on success.  Tidy.
+	(read_alt_indirect_string): Likewise.
+	(read_alt_indirect_ref): Likewise.
 
 2019-08-31  Jim Wilson  <jimw@sifive.com>
 
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index 88638b903f..ed6dcd48c7 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -802,20 +802,21 @@ read_alt_indirect_string (struct comp_unit * unit,
 
   if (stash->alt_bfd_ptr == NULL)
     {
-      bfd *  debug_bfd;
-      char * debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR);
+      bfd *debug_bfd;
+      char *debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR);
 
       if (debug_filename == NULL)
 	return NULL;
 
-      if ((debug_bfd = bfd_openr (debug_filename, NULL)) == NULL
-	  || ! bfd_check_format (debug_bfd, bfd_object))
-	{
-	  if (debug_bfd)
-	    bfd_close (debug_bfd);
+      debug_bfd = bfd_openr (debug_filename, NULL);
+      free (debug_filename);
+      if (debug_bfd == NULL)
+	/* FIXME: Should we report our failure to follow the debuglink ?  */
+	return NULL;
 
-	  /* FIXME: Should we report our failure to follow the debuglink ?  */
-	  free (debug_filename);
+      if (!bfd_check_format (debug_bfd, bfd_object))
+	{
+	  bfd_close (debug_bfd);
 	  return NULL;
 	}
       stash->alt_bfd_ptr = debug_bfd;
@@ -850,20 +851,21 @@ read_alt_indirect_ref (struct comp_unit * unit,
 
   if (stash->alt_bfd_ptr == NULL)
     {
-      bfd *  debug_bfd;
-      char * debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR);
+      bfd *debug_bfd;
+      char *debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR);
 
       if (debug_filename == NULL)
 	return FALSE;
 
-      if ((debug_bfd = bfd_openr (debug_filename, NULL)) == NULL
-	  || ! bfd_check_format (debug_bfd, bfd_object))
-	{
-	  if (debug_bfd)
-	    bfd_close (debug_bfd);
+      debug_bfd = bfd_openr (debug_filename, NULL);
+      free (debug_filename);
+      if (debug_bfd == NULL)
+	/* FIXME: Should we report our failure to follow the debuglink ?  */
+	return NULL;
 
-	  /* FIXME: Should we report our failure to follow the debuglink ?  */
-	  free (debug_filename);
+      if (!bfd_check_format (debug_bfd, bfd_object))
+	{
+	  bfd_close (debug_bfd);
 	  return NULL;
 	}
       stash->alt_bfd_ptr = debug_bfd;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Refactor svr4_create_solib_event_breakpoints
@ 2019-09-02 14:04 gdb-buildbot
  2019-09-02 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-02 14:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e661ef01e50a2cb38c006b0fe444a1b41bfc9400 ***

commit e661ef01e50a2cb38c006b0fe444a1b41bfc9400
Author:     Alan Hayward <alan.hayward@arm.com>
AuthorDate: Wed Aug 21 15:05:40 2019 +0100
Commit:     Alan Hayward <alan.hayward@arm.com>
CommitDate: Mon Sep 2 13:57:12 2019 +0100

    Refactor svr4_create_solib_event_breakpoints
    
    Move the bulk of svr4_create_solib_event_breakpoints into a new
    function to simplify the logic. No functional changes.
    
    gdb/ChangeLog:
    
            * solib-svr4.c (svr4_find_and_create_probe_breakpoints): Move
            code to here...
            (svr4_create_solib_event_breakpoints): ...from here.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ebcfae1f97..e35ff66c54 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-02  Alan Hayward  <alan.hayward@arm.com>
+
+	* solib-svr4.c (svr4_find_and_create_probe_breakpoints): Move
+	code to here...
+	(svr4_create_solib_event_breakpoints): ...from here.
+
 2019-08-30  Sergio Durigan Junior  <sergiodj@redhat.com>
 
 	* nat/fork-inferior.c (trace_start_error): Remove "\nError: "
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index c0c505acaa..b21eacb68f 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -2061,6 +2061,61 @@ svr4_create_probe_breakpoints (svr4_info *info, struct gdbarch *gdbarch,
   svr4_update_solib_event_breakpoints ();
 }
 
+/* Find all the glibc named probes.  Only if all of the probes are found, then
+   create them and return true.  Otherwise return false.  If WITH_PREFIX is set
+   then add "rtld" to the front of the probe names.  */
+static bool
+svr4_find_and_create_probe_breakpoints (svr4_info *info,
+					struct gdbarch *gdbarch,
+					struct obj_section *os,
+					bool with_prefix)
+{
+  std::vector<probe *> probes[NUM_PROBES];
+  bool checked_can_use_probe_arguments = false;
+
+  for (int i = 0; i < NUM_PROBES; i++)
+    {
+      const char *name = probe_info[i].name;
+      char buf[32];
+
+      /* Fedora 17 and Red Hat Enterprise Linux 6.2-6.4 shipped with an early
+	 version of the probes code in which the probes' names were prefixed
+	 with "rtld_" and the "map_failed" probe did not exist.  The locations
+	 of the probes are otherwise the same, so we check for probes with
+	 prefixed names if probes with unprefixed names are not present.  */
+      if (with_prefix)
+	{
+	  xsnprintf (buf, sizeof (buf), "rtld_%s", name);
+	  name = buf;
+	}
+
+      probes[i] = find_probes_in_objfile (os->objfile, "rtld", name);
+
+      /* The "map_failed" probe did not exist in early
+	 versions of the probes code in which the probes'
+	 names were prefixed with "rtld_".  */
+      if (with_prefix && streq (name, "rtld_map_failed"))
+	continue;
+
+      /* Ensure at least one probe for the current name was found.  */
+      if (probes[i].empty ())
+	return false;
+
+      /* Ensure probe arguments can be evaluated.  */
+      if (!checked_can_use_probe_arguments)
+	{
+	  probe *p = probes[i][0];
+	  if (!p->can_evaluate_arguments ())
+	    return false;
+	  checked_can_use_probe_arguments = true;
+	}
+    }
+
+  /* All probes found.  Now create them.  */
+  svr4_create_probe_breakpoints (info, gdbarch, probes, os->objfile);
+  return true;
+}
+
 /* Both the SunOS and the SVR4 dynamic linkers call a marker function
    before and after mapping and unmapping shared libraries.  The sole
    purpose of this method is to allow debuggers to set a breakpoint so
@@ -2077,74 +2132,12 @@ static void
 svr4_create_solib_event_breakpoints (svr4_info *info, struct gdbarch *gdbarch,
 				     CORE_ADDR address)
 {
-  struct obj_section *os;
-
-  os = find_pc_section (address);
-  if (os != NULL)
-    {
-      int with_prefix;
-
-      for (with_prefix = 0; with_prefix <= 1; with_prefix++)
-	{
-	  std::vector<probe *> probes[NUM_PROBES];
-	  int all_probes_found = 1;
-	  int checked_can_use_probe_arguments = 0;
-
-	  for (int i = 0; i < NUM_PROBES; i++)
-	    {
-	      const char *name = probe_info[i].name;
-	      probe *p;
-	      char buf[32];
-
-	      /* Fedora 17 and Red Hat Enterprise Linux 6.2-6.4
-		 shipped with an early version of the probes code in
-		 which the probes' names were prefixed with "rtld_"
-		 and the "map_failed" probe did not exist.  The
-		 locations of the probes are otherwise the same, so
-		 we check for probes with prefixed names if probes
-		 with unprefixed names are not present.  */
-	      if (with_prefix)
-		{
-		  xsnprintf (buf, sizeof (buf), "rtld_%s", name);
-		  name = buf;
-		}
-
-	      probes[i] = find_probes_in_objfile (os->objfile, "rtld", name);
-
-	      /* The "map_failed" probe did not exist in early
-		 versions of the probes code in which the probes'
-		 names were prefixed with "rtld_".  */
-	      if (strcmp (name, "rtld_map_failed") == 0)
-		continue;
-
-	      if (probes[i].empty ())
-		{
-		  all_probes_found = 0;
-		  break;
-		}
-
-	      /* Ensure probe arguments can be evaluated.  */
-	      if (!checked_can_use_probe_arguments)
-		{
-		  p = probes[i][0];
-		  if (!p->can_evaluate_arguments ())
-		    {
-		      all_probes_found = 0;
-		      break;
-		    }
-		  checked_can_use_probe_arguments = 1;
-		}
-	    }
-
-	  if (all_probes_found)
-	    svr4_create_probe_breakpoints (info, gdbarch, probes, os->objfile);
-
-	  if (all_probes_found)
-	    return;
-	}
-    }
+  struct obj_section *os = find_pc_section (address);
 
-  create_solib_event_breakpoint (gdbarch, address);
+  if (os == nullptr
+      || (!svr4_find_and_create_probe_breakpoints (info, gdbarch, os, false)
+	  && !svr4_find_and_create_probe_breakpoints (info, gdbarch, os, true)))
+    create_solib_event_breakpoint (gdbarch, address);
 }
 
 /* Helper function for gdb_bfd_lookup_symbol.  */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use gdbarch for probe::get_argument_count
@ 2019-09-02 15:09 gdb-buildbot
  2019-09-02 15:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-02 15:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fe01123efb30a273645dc194ae2100197f93a00a ***

commit fe01123efb30a273645dc194ae2100197f93a00a
Author:     Alan Hayward <alan.hayward@arm.com>
AuthorDate: Wed Aug 21 15:24:02 2019 +0100
Commit:     Alan Hayward <alan.hayward@arm.com>
CommitDate: Mon Sep 2 13:58:48 2019 +0100

    Use gdbarch for probe::get_argument_count
    
    The probe function get_argument_count does not need a frame, only
    the current gdbarch.  Switch the code to pass gdbarch instead.
    No functional changes.
    
    gdb/ChangeLog:
    
            * break-catch-throw.c (fetch_probe_arguments): Use gdbarch.
            * dtrace-probe.c (dtrace_probe::get_argument_count): Likewise.
            * probe.c (probe_safe_evaluate_at_pc) (compute_probe_arg)
            (compile_probe_arg): Likewise.
            * probe.h (get_argument_count): Likewise.
            * solib-svr4.c (solib_event_probe_action): Likewise.
            * stap-probe.c (stap_probe::get_argument_count): Likewise.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e35ff66c54..d0e4258c4f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-02  Alan Hayward  <alan.hayward@arm.com>
+
+	* break-catch-throw.c (fetch_probe_arguments): Use gdbarch.
+	* dtrace-probe.c (dtrace_probe::get_argument_count): Likewise.
+	* probe.c (probe_safe_evaluate_at_pc) (compute_probe_arg)
+	(compile_probe_arg): Likewise.
+	* probe.h (get_argument_count): Likewise.
+	* solib-svr4.c (solib_event_probe_action): Likewise.
+	* stap-probe.c (stap_probe::get_argument_count): Likewise.
+
 2019-09-02  Alan Hayward  <alan.hayward@arm.com>
 
 	* solib-svr4.c (svr4_find_and_create_probe_breakpoints): Move
diff --git a/gdb/break-catch-throw.c b/gdb/break-catch-throw.c
index 2d91285312..e9523a6eb8 100644
--- a/gdb/break-catch-throw.c
+++ b/gdb/break-catch-throw.c
@@ -115,7 +115,7 @@ fetch_probe_arguments (struct value **arg0, struct value **arg1)
 	  && pc_probe.prob->get_name () != "rethrow"))
     error (_("not stopped at a C++ exception catchpoint"));
 
-  n_args = pc_probe.prob->get_argument_count (frame);
+  n_args = pc_probe.prob->get_argument_count (get_frame_arch (frame));
   if (n_args < 2)
     error (_("C++ exception catchpoint has too few arguments"));
 
diff --git a/gdb/dtrace-probe.c b/gdb/dtrace-probe.c
index 2d92edb11c..e9e71fd4c9 100644
--- a/gdb/dtrace-probe.c
+++ b/gdb/dtrace-probe.c
@@ -122,7 +122,7 @@ public:
   CORE_ADDR get_relocated_address (struct objfile *objfile) override;
 
   /* See probe.h.  */
-  unsigned get_argument_count (struct frame_info *frame) override;
+  unsigned get_argument_count (struct gdbarch *gdbarch) override;
 
   /* See probe.h.  */
   bool can_evaluate_arguments () const override;
@@ -693,7 +693,7 @@ dtrace_probe::get_relocated_address (struct objfile *objfile)
 /* Implementation of the get_argument_count method.  */
 
 unsigned
-dtrace_probe::get_argument_count (struct frame_info *frame)
+dtrace_probe::get_argument_count (struct gdbarch *gdbarch)
 {
   return m_args.size ();
 }
diff --git a/gdb/probe.c b/gdb/probe.c
index cdc6e021d2..8b108d6b02 100644
--- a/gdb/probe.c
+++ b/gdb/probe.c
@@ -695,7 +695,7 @@ probe_safe_evaluate_at_pc (struct frame_info *frame, unsigned n)
   if (!probe.prob)
     return NULL;
 
-  n_args = probe.prob->get_argument_count (frame);
+  n_args = probe.prob->get_argument_count (get_frame_arch (frame));
   if (n >= n_args)
     return NULL;
 
@@ -818,7 +818,7 @@ compute_probe_arg (struct gdbarch *arch, struct internalvar *ivar,
   if (pc_probe.prob == NULL)
     error (_("No probe at PC %s"), core_addr_to_string (pc));
 
-  n_args = pc_probe.prob->get_argument_count (frame);
+  n_args = pc_probe.prob->get_argument_count (arch);
   if (sel == -1)
     return value_from_longest (builtin_type (arch)->builtin_int, n_args);
 
@@ -840,7 +840,6 @@ compile_probe_arg (struct internalvar *ivar, struct agent_expr *expr,
   int sel = (int) (uintptr_t) data;
   struct bound_probe pc_probe;
   int n_args;
-  struct frame_info *frame = get_selected_frame (NULL);
 
   /* SEL == -1 means "_probe_argc".  */
   gdb_assert (sel >= -1);
@@ -849,7 +848,7 @@ compile_probe_arg (struct internalvar *ivar, struct agent_expr *expr,
   if (pc_probe.prob == NULL)
     error (_("No probe at PC %s"), core_addr_to_string (pc));
 
-  n_args = pc_probe.prob->get_argument_count (frame);
+  n_args = pc_probe.prob->get_argument_count (expr->gdbarch);
 
   if (sel == -1)
     {
diff --git a/gdb/probe.h b/gdb/probe.h
index 8abf69e354..7410c5aadf 100644
--- a/gdb/probe.h
+++ b/gdb/probe.h
@@ -131,7 +131,7 @@ public:
 
   /* Return the number of arguments of the probe.  This function can
      throw an exception.  */
-  virtual unsigned get_argument_count (struct frame_info *frame) = 0;
+  virtual unsigned get_argument_count (struct gdbarch *gdbarch) = 0;
 
   /* Return 1 if the probe interface can evaluate the arguments of
      probe, zero otherwise.  See the comments on
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index b21eacb68f..2a44dd6985 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -1756,7 +1756,7 @@ solib_event_probe_action (struct probe_and_action *pa)
        arg2: struct link_map *new (optional, for incremental updates)  */
   try
     {
-      probe_argc = pa->prob->get_argument_count (frame);
+      probe_argc = pa->prob->get_argument_count (get_frame_arch (frame));
     }
   catch (const gdb_exception_error &ex)
     {
diff --git a/gdb/stap-probe.c b/gdb/stap-probe.c
index b6de873d2c..700b657967 100644
--- a/gdb/stap-probe.c
+++ b/gdb/stap-probe.c
@@ -136,7 +136,7 @@ public:
   CORE_ADDR get_relocated_address (struct objfile *objfile) override;
 
   /* See probe.h.  */
-  unsigned get_argument_count (struct frame_info *frame) override;
+  unsigned get_argument_count (struct gdbarch *gdbarch) override;
 
   /* See probe.h.  */
   bool can_evaluate_arguments () const override;
@@ -1301,10 +1301,8 @@ stap_probe::get_relocated_address (struct objfile *objfile)
    argument string.  */
 
 unsigned
-stap_probe::get_argument_count (struct frame_info *frame)
+stap_probe::get_argument_count (struct gdbarch *gdbarch)
 {
-  struct gdbarch *gdbarch = get_frame_arch (frame);
-
   if (!m_have_parsed_args)
     {
       if (this->can_evaluate_arguments ())


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Check arguments for all probes before using them
@ 2019-09-02 15:29 gdb-buildbot
  2019-09-02 17:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-02 15:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d90b8f2632cded4792f18d8bb92bacc21d93eb0a ***

commit d90b8f2632cded4792f18d8bb92bacc21d93eb0a
Author:     Alan Hayward <alan.hayward@arm.com>
AuthorDate: Wed Aug 21 15:36:37 2019 +0100
Commit:     Alan Hayward <alan.hayward@arm.com>
CommitDate: Mon Sep 2 14:00:42 2019 +0100

    Check arguments for all probes before using them
    
    There is a long standing bug in the Arm toolchain where invalid
    stap probes get created due to the probes referring to symbols which
    have been resolved away.
    
    More details are here:
    https://bugzilla.redhat.com/show_bug.cgi?id=1196181
    
    When these invalid probes are present, GDB will create the breakpoints
    and then fail to stop. The errors are only spotted the first time
    GDB stops, which is too late.
    
    The solution is to ensure the arguments for all the probes are
    resolved before using them.
    
    This fixes >100 timeouts when running break-interp.exp when using
    bad probes.
    
    gdb/ChangeLog:
    
            * solib-svr4.c (svr4_find_and_create_probe_breakpoints): Check all
            probe arguments.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d0e4258c4f..08615f462e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-02  Alan Hayward  <alan.hayward@arm.com>
+
+	* solib-svr4.c (svr4_find_and_create_probe_breakpoints): Check all
+	probe arguments.
+
 2019-09-02  Alan Hayward  <alan.hayward@arm.com>
 
 	* break-catch-throw.c (fetch_probe_arguments): Use gdbarch.
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 2a44dd6985..ffae26bfc5 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -2071,7 +2071,6 @@ svr4_find_and_create_probe_breakpoints (svr4_info *info,
 					bool with_prefix)
 {
   std::vector<probe *> probes[NUM_PROBES];
-  bool checked_can_use_probe_arguments = false;
 
   for (int i = 0; i < NUM_PROBES; i++)
     {
@@ -2102,12 +2101,23 @@ svr4_find_and_create_probe_breakpoints (svr4_info *info,
 	return false;
 
       /* Ensure probe arguments can be evaluated.  */
-      if (!checked_can_use_probe_arguments)
+      for (probe *p : probes[i])
 	{
-	  probe *p = probes[i][0];
 	  if (!p->can_evaluate_arguments ())
 	    return false;
-	  checked_can_use_probe_arguments = true;
+	  /* This will fail if the probe is invalid.  This has been seen on Arm
+	     due to references to symbols that have been resolved away.  */
+	  try
+	    {
+	      p->get_argument_count (gdbarch);
+	    }
+	  catch (const gdb_exception_error &ex)
+	    {
+	      exception_print (gdb_stderr, ex);
+	      warning (_("Initializing probes-based dynamic linker interface "
+			 "failed.\nReverting to original interface."));
+	      return false;
+	    }
 	}
     }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix a potential buffer overrun in the MMIX disassembler when processing a corrupt input file.
@ 2019-09-03  9:35 gdb-buildbot
  2019-09-03 14:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-03  9:35 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1e4b5e7d354a41276cb8dfbaae79915e1730dbd8 ***

commit 1e4b5e7d354a41276cb8dfbaae79915e1730dbd8
Author:     Nick Clifton <nickc@redhat.com>
AuthorDate: Tue Sep 3 09:53:25 2019 +0100
Commit:     Nick Clifton <nickc@redhat.com>
CommitDate: Tue Sep 3 09:53:25 2019 +0100

    Fix a potential buffer overrun in the MMIX disassembler when processing a corrupt input file.
    
            PR 24958
            * mmix-dis.c (MAX_REG_NAME_LEN): Define.
            (MAX_SPEC_REG_NAME_LEN): Define.
            (struct mmix_dis_info): Use defined constants for array lengths.
            (get_reg_name): New function.
            (get_sprec_reg_name): New function.
            (print_insn_mmix): Use new functions.

diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index bec2b59cc4..87e3f74663 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-03  Nick Clifton  <nickc@redhat.com>
+
+	PR 24958
+	* mmix-dis.c (MAX_REG_NAME_LEN): Define.
+	(MAX_SPEC_REG_NAME_LEN): Define.
+	(struct mmix_dis_info): Use defined constants for array lengths.
+	(get_reg_name): New function.
+	(get_sprec_reg_name): New function.
+	(print_insn_mmix): Use new functions.
+
 2019-08-27  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
 
 	* arm-dis.c (mve_opcodes): Add entry for MVE_VMOV_VEC_TO_VEC.
diff --git a/opcodes/mmix-dis.c b/opcodes/mmix-dis.c
index 80a58ed6ec..93688d3cb7 100644
--- a/opcodes/mmix-dis.c
+++ b/opcodes/mmix-dis.c
@@ -54,15 +54,17 @@
 #define INSN_IMMEDIATE_BIT (IMM_OFFSET_BIT << 24)
 #define INSN_BACKWARD_OFFSET_BIT (1 << 24)
 
+#define MAX_REG_NAME_LEN       256
+#define MAX_SPEC_REG_NAME_LEN  32
 struct mmix_dis_info
  {
-   const char *reg_name[256];
-   const char *spec_reg_name[32];
+   const char *reg_name[MAX_REG_NAME_LEN];
+   const char *spec_reg_name[MAX_SPEC_REG_NAME_LEN];
 
    /* Waste a little memory so we don't have to allocate each separately.
       We could have an array with static contents for these, but on the
       other hand, we don't have to.  */
-   char basic_reg_name[256][sizeof ("$255")];
+   char basic_reg_name[MAX_REG_NAME_LEN][sizeof ("$255")];
  };
 
 /* Initialize a target-specific array in INFO.  */
@@ -111,7 +113,7 @@ initialize_mmix_dis_info (struct disassemble_info *info)
 	  for (i = 0; i < nsyms && syms[i] != NULL; i++)
 	    {
 	      if (syms[i]->section == reg_section
-		  && syms[i]->value < 256
+		  && syms[i]->value < MAX_REG_NAME_LEN
 		  && minfop->reg_name[syms[i]->value] == NULL)
 		minfop->reg_name[syms[i]->value] = syms[i]->name;
 	    }
@@ -119,7 +121,7 @@ initialize_mmix_dis_info (struct disassemble_info *info)
     }
 
   /* Fill in the rest with the canonical names.  */
-  for (i = 0; i < 256; i++)
+  for (i = 0; i < MAX_REG_NAME_LEN; i++)
     if (minfop->reg_name[i] == NULL)
       {
 	sprintf (minfop->basic_reg_name[i], "$%ld", i);
@@ -238,6 +240,22 @@ get_opcode (unsigned long insn)
   return NULL;
 }
 
+static inline const char *
+get_reg_name (const struct mmix_dis_info * minfop, unsigned int x)
+{
+  if (x >= MAX_REG_NAME_LEN)
+    return _("*illegal*");
+  return minfop->reg_name[x];
+}
+
+static inline const char *
+get_spec_reg_name (const struct mmix_dis_info * minfop, unsigned int x)
+{
+  if (x >= MAX_SPEC_REG_NAME_LEN)
+    return _("*illegal*");
+  return minfop->spec_reg_name[x];
+}
+
 /* The main disassembly function.  */
 
 int
@@ -333,15 +351,15 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
     case mmix_operands_regs:
       /*  All registers: "$X,$Y,$Z".  */
       (*info->fprintf_func) (info->stream, "%s,%s,%s",
-			     minfop->reg_name[x],
-			     minfop->reg_name[y],
-			     minfop->reg_name[z]);
+			     get_reg_name (minfop, x),
+			     get_reg_name (minfop, y),
+			     get_reg_name (minfop, z));
       break;
 
     case mmix_operands_reg_yz:
       /* Like SETH - "$X,YZ".  */
       (*info->fprintf_func) (info->stream, "%s,0x%x",
-			     minfop->reg_name[x], y * 256 + z);
+			     get_reg_name (minfop, x), y * 256 + z);
       break;
 
     case mmix_operands_regs_z_opt:
@@ -350,12 +368,13 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
       /* The regular "$X,$Y,$Z|Z".  */
       if (insn & INSN_IMMEDIATE_BIT)
 	(*info->fprintf_func) (info->stream, "%s,%s,%d",
-			       minfop->reg_name[x], minfop->reg_name[y], z);
+			       get_reg_name (minfop, x),
+			       get_reg_name (minfop, y), z);
       else
 	(*info->fprintf_func) (info->stream, "%s,%s,%s",
-			       minfop->reg_name[x],
-			       minfop->reg_name[y],
-			       minfop->reg_name[z]);
+			       get_reg_name (minfop, x),
+			       get_reg_name (minfop, y),
+			       get_reg_name (minfop, z));
       break;
 
     case mmix_operands_jmp:
@@ -378,23 +397,23 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
 	{
 	  if (insn & INSN_IMMEDIATE_BIT)
 	    (*info->fprintf_func) (info->stream, "%s,%s,%d",
-				   minfop->reg_name[x],
+				   get_reg_name (minfop, x),
 				   ROUND_MODE (y), z);
 	  else
 	    (*info->fprintf_func) (info->stream, "%s,%s,%s",
-				   minfop->reg_name[x],
+				   get_reg_name (minfop, x),
 				   ROUND_MODE (y),
-				   minfop->reg_name[z]);
+				   get_reg_name (minfop, z));
 	}
       else
 	{
 	  if (insn & INSN_IMMEDIATE_BIT)
 	    (*info->fprintf_func) (info->stream, "%s,%d",
-				   minfop->reg_name[x], z);
+				   get_reg_name (minfop, x), z);
 	  else
 	    (*info->fprintf_func) (info->stream, "%s,%s",
-				   minfop->reg_name[x],
-				   minfop->reg_name[z]);
+				   get_reg_name (minfop, x),
+				   get_reg_name (minfop, z));
 	}
       break;
 
@@ -408,13 +427,13 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
 	 "$X,ROUND_MODE,$Z".  */
       if (y != 0)
 	(*info->fprintf_func) (info->stream, "%s,%s,%s",
-			       minfop->reg_name[x],
+			       get_reg_name (minfop, x),
 			       ROUND_MODE (y),
-			       minfop->reg_name[z]);
+			       get_reg_name (minfop, z));
       else
 	(*info->fprintf_func) (info->stream, "%s,%s",
-			       minfop->reg_name[x],
-			       minfop->reg_name[z]);
+			       get_reg_name (minfop, x),
+			       get_reg_name (minfop, z));
       break;
 
     case mmix_operands_sync:
@@ -427,22 +446,22 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
       /* Like SYNCD - "X,$Y,$Z|Z".  */
       if (insn & INSN_IMMEDIATE_BIT)
 	(*info->fprintf_func) (info->stream, "%d,%s,%d",
-			       x, minfop->reg_name[y], z);
+			       x, get_reg_name (minfop, y), z);
       else
 	(*info->fprintf_func) (info->stream, "%d,%s,%s",
-			       x, minfop->reg_name[y],
-			       minfop->reg_name[z]);
+			       x, get_reg_name (minfop, y),
+			       get_reg_name (minfop, z));
       break;
 
     case mmix_operands_neg:
       /* Like NEG and NEGU - "$X,Y,$Z|Z".  */
       if (insn & INSN_IMMEDIATE_BIT)
 	(*info->fprintf_func) (info->stream, "%s,%d,%d",
-			       minfop->reg_name[x], y, z);
+			       get_reg_name (minfop, x), y, z);
       else
 	(*info->fprintf_func) (info->stream, "%s,%d,%s",
-			       minfop->reg_name[x], y,
-			       minfop->reg_name[z]);
+			       get_reg_name (minfop, x), y,
+			       get_reg_name (minfop, z));
       break;
 
     case mmix_operands_pushj:
@@ -456,7 +475,7 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
 
 	info->target = memaddr + offset;
 
-	(*info->fprintf_func) (info->stream, "%s,", minfop->reg_name[x]);
+	(*info->fprintf_func) (info->stream, "%s,", get_reg_name (minfop, x));
 	(*info->print_address_func) (memaddr + offset, info);
       }
       break;
@@ -464,26 +483,26 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
     case mmix_operands_get:
       /* GET - "X,spec_reg".  */
       (*info->fprintf_func) (info->stream, "%s,%s",
-			     minfop->reg_name[x],
-			     minfop->spec_reg_name[z]);
+			     get_reg_name (minfop, x),
+			     get_spec_reg_name (minfop, z));
       break;
 
     case mmix_operands_put:
       /* PUT - "spec_reg,$Z|Z".  */
       if (insn & INSN_IMMEDIATE_BIT)
 	(*info->fprintf_func) (info->stream, "%s,%d",
-			       minfop->spec_reg_name[x], z);
+			       get_spec_reg_name (minfop, x), z);
       else
 	(*info->fprintf_func) (info->stream, "%s,%s",
-			       minfop->spec_reg_name[x],
-			       minfop->reg_name[z]);
+			       get_spec_reg_name (minfop, x),
+			       get_reg_name (minfop, z));
       break;
 
     case mmix_operands_set:
       /*  Two registers, "$X,$Y".  */
       (*info->fprintf_func) (info->stream, "%s,%s",
-			     minfop->reg_name[x],
-			     minfop->reg_name[y]);
+			     get_reg_name (minfop, x),
+			     get_reg_name (minfop, y));
       break;
 
     case mmix_operands_save:


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix buffer underrun bug in the TI C30 disassembler.
@ 2019-09-03 15:14 gdb-buildbot
  2019-09-03 16:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-03 15:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f44b758d3133ef0a7f3131c1e12ed20feb33ee61 ***

commit f44b758d3133ef0a7f3131c1e12ed20feb33ee61
Author:     Nick Clifton <nickc@redhat.com>
AuthorDate: Tue Sep 3 15:37:12 2019 +0100
Commit:     Nick Clifton <nickc@redhat.com>
CommitDate: Tue Sep 3 15:37:12 2019 +0100

    Fix buffer underrun bug in the TI C30 disassembler.
    
            PR 24961
            * tic30-dis.c (get_indirect_operand): Check for bufcnt being
            greater than zero before indexing via (bufcnt -1).

diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 87e3f74663..64b6a07ac4 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-03  Nick Clifton  <nickc@redhat.com>
+
+	PR 24961
+	* tic30-dis.c (get_indirect_operand): Check for bufcnt being
+	greater than zero before indexing via (bufcnt -1).
+
 2019-09-03  Nick Clifton  <nickc@redhat.com>
 
 	PR 24958
diff --git a/opcodes/tic30-dis.c b/opcodes/tic30-dis.c
index c64aceb29f..668c519df8 100644
--- a/opcodes/tic30-dis.c
+++ b/opcodes/tic30-dis.c
@@ -253,7 +253,9 @@ get_indirect_operand (unsigned short fragment,
 		for (i = 0, bufcnt = 0; i < len; i++, bufcnt++)
 		  {
 		    buffer[bufcnt] = current_ind->syntax[i];
-		    if (buffer[bufcnt - 1] == 'a' && buffer[bufcnt] == 'r')
+		    if (bufcnt > 0
+			&& buffer[bufcnt - 1] == 'a'
+			&& buffer[bufcnt] == 'r')
 		      buffer[++bufcnt] = arnum + '0';
 		    if (buffer[bufcnt] == '('
 			&& current_ind->displacement == DISP_REQUIRED)


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Handle biased types
@ 2019-09-03 17:01 gdb-buildbot
  2019-09-03 21:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-03 17:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4e962e74e45f2b0365e5b21504f33480c468ff00 ***

commit 4e962e74e45f2b0365e5b21504f33480c468ff00
Author:     Tom Tromey <tromey@adacore.com>
AuthorDate: Mon May 13 13:21:48 2019 -0600
Commit:     Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 3 10:20:40 2019 -0600

    Handle biased types
    
    In Ada, the programmer can request that a range type with a non-zero
    base be stored in the minimal number of bits required for the range.
    This is done by biasing the values; so, for example, a range of -7..-4
    may be stored as two bits with a bias of -7.
    
    This patch implements this for gdb.  It is done by adding a bias to
    struct range_bounds and then adjusting a few spots to handle this.
    
    The test case is written to use -fgnat-encodings=minimal, but a future
    compiler patch will change the compiler to emit DW_AT_GNU_bias with
    -fgnat-encodings=gdb.  It seemed good to get the gdb patch in first.
    
    Tested on x86-64 Fedora 29; plus a variety of targets using AdaCore's
    internal test suite.
    
    gdb/ChangeLog
    2019-09-03  Tom Tromey  <tromey@adacore.com>
    
            * ada-valprint.c (ada_val_print_num): Don't recurse for range
            types.
            (has_negatives): Unbias a range type bound.
            * dwarf2read.c (read_subrange_type): Handle DW_AT_GNU_bias.
            * gdbtypes.c (operator==): Handle new field.
            (create_range_type): Add "bias" parameter.
            (create_static_range_type, resolve_dynamic_range): Update.
            * gdbtypes.h (struct range_bounds) <bias>: New member.
            (create_range_type): Add bias parameter.
            * printcmd.c (print_scalar_formatted): Unbias range types.
            * value.c (unpack_long): Unbias range types.
            (pack_long): Bias range types.
    
    gdb/testsuite/ChangeLog
    2019-09-03  Tom Tromey  <tromey@adacore.com>
    
            * gdb.ada/bias.exp: New file.
            * gdb.ada/bias/bias.adb: New file.
            * gdb.ada/print_chars.exp: Add regression test.
            * gdb.ada/print_chars/foo.adb (My_Character): New type.
            (MC): New variable.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 08615f462e..5d88be8a72 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,18 @@
+2019-09-03  Tom Tromey  <tromey@adacore.com>
+
+	* ada-valprint.c (ada_val_print_num): Don't recurse for range
+	types.
+	(has_negatives): Unbias a range type bound.
+	* dwarf2read.c (read_subrange_type): Handle DW_AT_GNU_bias.
+	* gdbtypes.c (operator==): Handle new field.
+	(create_range_type): Add "bias" parameter.
+	(create_static_range_type, resolve_dynamic_range): Update.
+	* gdbtypes.h (struct range_bounds) <bias>: New member.
+	(create_range_type): Add bias parameter.
+	* printcmd.c (print_scalar_formatted): Unbias range types.
+	* value.c (unpack_long): Unbias range types.
+	(pack_long): Bias range types.
+
 2019-09-02  Alan Hayward  <alan.hayward@arm.com>
 
 	* solib-svr4.c (svr4_find_and_create_probe_breakpoints): Check all
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 609f2d4391..347c67f95c 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -2361,7 +2361,7 @@ has_negatives (struct type *type)
     case TYPE_CODE_INT:
       return !TYPE_UNSIGNED (type);
     case TYPE_CODE_RANGE:
-      return TYPE_LOW_BOUND (type) < 0;
+      return TYPE_LOW_BOUND (type) - TYPE_RANGE_DATA (type)->bias < 0;
     }
 }
 
diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c
index 0654049d77..3060eb676b 100644
--- a/gdb/ada-valprint.c
+++ b/gdb/ada-valprint.c
@@ -841,8 +841,15 @@ ada_val_print_num (struct type *type, const gdb_byte *valaddr,
       fputs_filtered (str.c_str (), stream);
       return;
     }
-  else if (TYPE_CODE (type) == TYPE_CODE_RANGE)
+  else if (TYPE_CODE (type) == TYPE_CODE_RANGE
+	   && (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_ENUM
+	       || TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_BOOL
+	       || TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_CHAR))
     {
+      /* For enum-valued ranges, we want to recurse, because we'll end
+	 up printing the constant's name rather than its numeric
+	 value.  Character and fixed-point types are also printed
+	 differently, so recuse for those as well.  */
       struct type *target_type = TYPE_TARGET_TYPE (type);
 
       if (TYPE_LENGTH (type) != TYPE_LENGTH (target_type))
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index af4af195a0..fb888da7b8 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -17901,6 +17901,11 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
 	}
     }
 
+  LONGEST bias = 0;
+  struct attribute *bias_attr = dwarf2_attr (die, DW_AT_GNU_bias, cu);
+  if (bias_attr != nullptr && attr_form_is_constant (bias_attr))
+    bias = dwarf2_get_attr_constant_value (bias_attr, 0);
+
   /* Normally, the DWARF producers are expected to use a signed
      constant form (Eg. DW_FORM_sdata) to express negative bounds.
      But this is unfortunately not always the case, as witnessed
@@ -17917,7 +17922,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
       && !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask))
     high.data.const_val |= negative_mask;
 
-  range_type = create_range_type (NULL, orig_base_type, &low, &high);
+  range_type = create_range_type (NULL, orig_base_type, &low, &high, bias);
 
   if (high_bound_is_count)
     TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1;
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 177455e612..4bc02e08f9 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -901,7 +901,8 @@ operator== (const range_bounds &l, const range_bounds &r)
   return (FIELD_EQ (low)
 	  && FIELD_EQ (high)
 	  && FIELD_EQ (flag_upper_bound_is_count)
-	  && FIELD_EQ (flag_bound_evaluated));
+	  && FIELD_EQ (flag_bound_evaluated)
+	  && FIELD_EQ (bias));
 
 #undef FIELD_EQ
 }
@@ -912,7 +913,8 @@ operator== (const range_bounds &l, const range_bounds &r)
 struct type *
 create_range_type (struct type *result_type, struct type *index_type,
 		   const struct dynamic_prop *low_bound,
-		   const struct dynamic_prop *high_bound)
+		   const struct dynamic_prop *high_bound,
+		   LONGEST bias)
 {
   /* The INDEX_TYPE should be a type capable of holding the upper and lower
      bounds, as such a zero sized, or void type makes no sense.  */
@@ -932,6 +934,7 @@ create_range_type (struct type *result_type, struct type *index_type,
     TYPE_ZALLOC (result_type, sizeof (struct range_bounds));
   TYPE_RANGE_DATA (result_type)->low = *low_bound;
   TYPE_RANGE_DATA (result_type)->high = *high_bound;
+  TYPE_RANGE_DATA (result_type)->bias = bias;
 
   if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0)
     TYPE_UNSIGNED (result_type) = 1;
@@ -968,7 +971,7 @@ create_static_range_type (struct type *result_type, struct type *index_type,
   high.kind = PROP_CONST;
   high.data.const_val = high_bound;
 
-  result_type = create_range_type (result_type, index_type, &low, &high);
+  result_type = create_range_type (result_type, index_type, &low, &high, 0);
 
   return result_type;
 }
@@ -2015,9 +2018,10 @@ resolve_dynamic_range (struct type *dyn_range_type,
   static_target_type
     = resolve_dynamic_type_internal (TYPE_TARGET_TYPE (dyn_range_type),
 				     addr_stack, 0);
+  LONGEST bias = TYPE_RANGE_DATA (dyn_range_type)->bias;
   static_range_type = create_range_type (copy_type (dyn_range_type),
 					 static_target_type,
-					 &low_bound, &high_bound);
+					 &low_bound, &high_bound, bias);
   TYPE_RANGE_DATA (static_range_type)->flag_bound_evaluated = 1;
   return static_range_type;
 }
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index 7268d3e4aa..c62b8a31ba 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -617,6 +617,11 @@ struct range_bounds
 
   struct dynamic_prop high;
 
+  /* * The bias.  Sometimes a range value is biased before storage.
+     The bias is added to the stored bits to form the true value.  */
+
+  LONGEST bias;
+
   /* True if HIGH range bound contains the number of elements in the
      subrange.  This affects how the final high bound is computed.  */
 
@@ -1951,7 +1956,8 @@ extern struct type *create_array_type_with_stride
 
 extern struct type *create_range_type (struct type *, struct type *,
 				       const struct dynamic_prop *,
-				       const struct dynamic_prop *);
+				       const struct dynamic_prop *,
+				       LONGEST);
 
 extern struct type *create_array_type (struct type *, struct type *,
 				       struct type *);
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 9b29b53ca7..22356bfd6d 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -405,21 +405,30 @@ print_scalar_formatted (const gdb_byte *valaddr, struct type *type,
 
   /* Historically gdb has printed floats by first casting them to a
      long, and then printing the long.  PR cli/16242 suggests changing
-     this to using C-style hex float format.  */
-  gdb::byte_vector converted_float_bytes;
-  if (TYPE_CODE (type) == TYPE_CODE_FLT
-      && (options->format == 'o'
-	  || options->format == 'x'
-	  || options->format == 't'
-	  || options->format == 'z'
-	  || options->format == 'd'
-	  || options->format == 'u'))
-    {
-      LONGEST val_long = unpack_long (type, valaddr);
-      converted_float_bytes.resize (TYPE_LENGTH (type));
-      store_signed_integer (converted_float_bytes.data (), TYPE_LENGTH (type),
-			    byte_order, val_long);
-      valaddr = converted_float_bytes.data ();
+     this to using C-style hex float format.
+
+     Biased range types must also be unbiased here; the unbiasing is
+     done by unpack_long.  */
+  gdb::byte_vector converted_bytes;
+  /* Some cases below will unpack the value again.  In the biased
+     range case, we want to avoid this, so we store the unpacked value
+     here for possible use later.  */
+  gdb::optional<LONGEST> val_long;
+  if ((TYPE_CODE (type) == TYPE_CODE_FLT
+       && (options->format == 'o'
+	   || options->format == 'x'
+	   || options->format == 't'
+	   || options->format == 'z'
+	   || options->format == 'd'
+	   || options->format == 'u'))
+      || (TYPE_CODE (type) == TYPE_CODE_RANGE
+	  && TYPE_RANGE_DATA (type)->bias != 0))
+    {
+      val_long.emplace (unpack_long (type, valaddr));
+      converted_bytes.resize (TYPE_LENGTH (type));
+      store_signed_integer (converted_bytes.data (), TYPE_LENGTH (type),
+			    byte_order, *val_long);
+      valaddr = converted_bytes.data ();
     }
 
   /* Printing a non-float type as 'f' will interpret the data as if it were
@@ -469,7 +478,8 @@ print_scalar_formatted (const gdb_byte *valaddr, struct type *type,
       {
 	struct value_print_options opts = *options;
 
-	LONGEST val_long = unpack_long (type, valaddr);
+	if (!val_long.has_value ())
+	  val_long.emplace (unpack_long (type, valaddr));
 
 	opts.format = 0;
 	if (TYPE_UNSIGNED (type))
@@ -477,15 +487,15 @@ print_scalar_formatted (const gdb_byte *valaddr, struct type *type,
  	else
 	  type = builtin_type (gdbarch)->builtin_true_char;
 
-	value_print (value_from_longest (type, val_long), stream, &opts);
+	value_print (value_from_longest (type, *val_long), stream, &opts);
       }
       break;
 
     case 'a':
       {
-	CORE_ADDR addr = unpack_pointer (type, valaddr);
-
-	print_address (gdbarch, addr, stream);
+	if (!val_long.has_value ())
+	  val_long.emplace (unpack_long (type, valaddr));
+	print_address (gdbarch, *val_long, stream);
       }
       break;
 
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index e0991e091a..d2dc356148 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-03  Tom Tromey  <tromey@adacore.com>
+
+	* gdb.ada/bias.exp: New file.
+	* gdb.ada/bias/bias.adb: New file.
+	* gdb.ada/print_chars.exp: Add regression test.
+	* gdb.ada/print_chars/foo.adb (My_Character): New type.
+	(MC): New variable.
+
 2019-08-29  Sandra Loosemore  <sandra@codesourcery.com>
 
 	* gdb.base/argv0-symlink.exp: Run only on native target
diff --git a/gdb/testsuite/gdb.ada/bias.exp b/gdb/testsuite/gdb.ada/bias.exp
new file mode 100644
index 0000000000..76ca6c08c6
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bias.exp
@@ -0,0 +1,56 @@
+# Copyright 2019 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+load_lib "ada.exp"
+
+standard_ada_testfile bias
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable \
+	 {debug additional_flags=-fgnat-encodings=minimal}] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "STOP" ${testdir}/bias.adb]
+runto "bias.adb:$bp_location"
+
+gdb_test "print x" " = 64"
+gdb_test "print y" " = -5"
+
+gdb_test "print cval" " = 65"
+gdb_test "print/c cval" " = 65 'A'"
+
+# Some binary arithmetic checks.
+gdb_test "print y < y1" " = false"
+gdb_test "print y <= y1" " = false"
+gdb_test "print y > y1" " = true"
+gdb_test "print y >= y1" " = true"
+gdb_test "print y = y" " = true"
+gdb_test "print y /= y" " = false"
+gdb_test "print y /= y1" " = true"
+
+gdb_test "print x + x1" " = 65"
+gdb_test "ptype x + x1" "type = range 1 \\.\\. 64"
+gdb_test "print x / x1" " = 64"
+gdb_test "print x * x1" " = 64"
+gdb_test "print x - x1" " = 63"
+
+# Test that storing un-biases.
+gdb_test "print x := 5" " = 5"
+gdb_test "print x" " = 5" "re-read x after storing"
+
+gdb_test "print spr" " = \\(r => -4, s => -5\\)"
+gdb_test "print a" " = \\(-7, -5, -4\\)"
diff --git a/gdb/testsuite/gdb.ada/bias/bias.adb b/gdb/testsuite/gdb.ada/bias/bias.adb
new file mode 100644
index 0000000000..ad46d20dd2
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bias/bias.adb
@@ -0,0 +1,52 @@
+--  Copyright 2019 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+with Pck; use Pck;
+
+procedure Bias is
+   type Small is range -7 .. -4;
+   for Small'Size use 2;
+   Y : Small := -5;
+   Y1 : Small := -7;
+
+   type Repeat_Count_T is range 1 .. 2 ** 6;
+   for Repeat_Count_T'Size use 6;
+   X : Repeat_Count_T := 64;
+   X1 : Repeat_Count_T := 1;
+
+   type Char_Range is range 65 .. 68;
+   for Char_Range'Size use 2;
+   Cval : Char_Range := 65;
+
+   type Some_Packed_Record is record
+      R: Small;
+      S: Small;
+   end record;
+   pragma Pack (Some_Packed_Record);
+   SPR : Some_Packed_Record := (R => -4, S => -5);
+
+   type Packed_Array is array (1 .. 3) of Small;
+   pragma pack (Packed_Array);
+   A : Packed_Array := (-7, -5, -4);
+
+begin
+   Do_Nothing (Y'Address);		--  STOP
+   Do_Nothing (Y1'Address);
+   Do_Nothing (X'Address);
+   Do_Nothing (X1'Address);
+   Do_Nothing (Cval'Address);
+   Do_Nothing (SPR'Address);
+   Do_Nothing (A'Address);
+end Bias;
diff --git a/gdb/testsuite/gdb.ada/bias/pck.adb b/gdb/testsuite/gdb.ada/bias/pck.adb
new file mode 100644
index 0000000000..fb433861df
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bias/pck.adb
@@ -0,0 +1,23 @@
+--  Copyright 2012-2019 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+with System;
+
+package body Pck is
+   procedure Do_Nothing (A : System.Address) is
+   begin
+      null;
+   end Do_Nothing;
+end Pck;
diff --git a/gdb/testsuite/gdb.ada/bias/pck.ads b/gdb/testsuite/gdb.ada/bias/pck.ads
new file mode 100644
index 0000000000..a40fa62c8e
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bias/pck.ads
@@ -0,0 +1,20 @@
+--  Copyright 2012-2019 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+with System;
+
+package Pck is
+   procedure Do_Nothing (A : System.Address);
+end Pck;
diff --git a/gdb/testsuite/gdb.ada/print_chars.exp b/gdb/testsuite/gdb.ada/print_chars.exp
index 992b134764..9a0e215784 100644
--- a/gdb/testsuite/gdb.ada/print_chars.exp
+++ b/gdb/testsuite/gdb.ada/print_chars.exp
@@ -39,4 +39,4 @@ gdb_test "print WWC" \
          "= 99 'c'"  \
          "print WWC"
 
-
+gdb_test "print MC" " = 77 'M'"
diff --git a/gdb/testsuite/gdb.ada/print_chars/foo.adb b/gdb/testsuite/gdb.ada/print_chars/foo.adb
index 40d0c06094..c89c0d3cef 100644
--- a/gdb/testsuite/gdb.ada/print_chars/foo.adb
+++ b/gdb/testsuite/gdb.ada/print_chars/foo.adb
@@ -19,6 +19,9 @@ procedure Foo is
    C : Character := 'a';
    WC : Wide_Character := 'b';
    WWC : Wide_Wide_Character := 'c';
+
+   type My_Character is new Character;
+   MC : My_Character := 'M';
 begin
    Do_Nothing (C'Address);  -- START
    Do_Nothing (WC'Address);
diff --git a/gdb/value.c b/gdb/value.c
index 9103d8f41c..d58a964649 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -2751,10 +2751,16 @@ unpack_long (struct type *type, const gdb_byte *valaddr)
     case TYPE_CODE_CHAR:
     case TYPE_CODE_RANGE:
     case TYPE_CODE_MEMBERPTR:
-      if (nosign)
-	return extract_unsigned_integer (valaddr, len, byte_order);
-      else
-	return extract_signed_integer (valaddr, len, byte_order);
+      {
+	LONGEST result;
+	if (nosign)
+	  result = extract_unsigned_integer (valaddr, len, byte_order);
+	else
+	  result = extract_signed_integer (valaddr, len, byte_order);
+	if (code == TYPE_CODE_RANGE)
+	  result += TYPE_RANGE_DATA (type)->bias;
+	return result;
+      }
 
     case TYPE_CODE_FLT:
     case TYPE_CODE_DECFLOAT:
@@ -3315,12 +3321,14 @@ pack_long (gdb_byte *buf, struct type *type, LONGEST num)
 
   switch (TYPE_CODE (type))
     {
+    case TYPE_CODE_RANGE:
+      num -= TYPE_RANGE_DATA (type)->bias;
+      /* Fall through.  */
     case TYPE_CODE_INT:
     case TYPE_CODE_CHAR:
     case TYPE_CODE_ENUM:
     case TYPE_CODE_FLAGS:
     case TYPE_CODE_BOOL:
-    case TYPE_CODE_RANGE:
     case TYPE_CODE_MEMBERPTR:
       store_signed_integer (buf, len, byte_order, num);
       break;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Handle missing domain types in: maintenance print psymbols
@ 2019-09-03 22:11 gdb-buildbot
  2019-09-04  2:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-03 22:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 06ff036ed22bac6c6cc622b2f3d23534b44fff67 ***

commit 06ff036ed22bac6c6cc622b2f3d23534b44fff67
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Tue Sep 3 15:54:57 2019 +0100
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Tue Sep 3 22:29:07 2019 +0100

    gdb: Handle missing domain types in: maintenance print psymbols
    
    Some domain_enum values were not handled in print_partial_symbols
    which means that 'maintenance print psymbols' would print '<invalid
    domain>' when it shouldn't have.
    
    gdb/ChangeLog:
    
            * psymtab.c (print_partial_symbols): Handle missing domain_enum
            values MODULE_DOMAIN and COMMON_BLOCK_DOMAIN.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5d88be8a72..f55d1a8e31 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-03  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* psymtab.c (print_partial_symbols): Handle missing domain_enum
+	values MODULE_DOMAIN and COMMON_BLOCK_DOMAIN.
+
 2019-09-03  Tom Tromey  <tromey@adacore.com>
 
 	* ada-valprint.c (ada_val_print_num): Don't recurse for range
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 6cc7566580..6f9bf7268f 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -853,9 +853,15 @@ print_partial_symbols (struct gdbarch *gdbarch, struct objfile *objfile,
 	case STRUCT_DOMAIN:
 	  fputs_filtered ("struct domain, ", outfile);
 	  break;
+	case MODULE_DOMAIN:
+	  fputs_filtered ("module domain, ", outfile);
+	  break;
 	case LABEL_DOMAIN:
 	  fputs_filtered ("label domain, ", outfile);
 	  break;
+	case COMMON_BLOCK_DOMAIN:
+	  fputs_filtered ("common block domain, ", outfile);
+	  break;
 	default:
 	  fputs_filtered ("<invalid domain>, ", outfile);
 	  break;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Avoid expect's buffer overflow in info-var.exp test.
@ 2019-09-04 21:19 gdb-buildbot
  2019-09-05  1:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-04 21:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 98b0ebab0a1eb0c1f179ebe633250e7201d35bce ***

commit 98b0ebab0a1eb0c1f179ebe633250e7201d35bce
Author:     Philippe Waroquiers <philippe.waroquiers@skynet.be>
AuthorDate: Sat Aug 31 17:25:54 2019 +0200
Commit:     Philippe Waroquiers <philippe.waroquiers@skynet.be>
CommitDate: Wed Sep 4 22:16:56 2019 +0200

    Avoid expect's buffer overflow in info-var.exp test.
    
    Once the executable is started, info variables can show thousands
    of variables belonging to glibc (see below).
    
    This long list of variables then causes the test to fail, due
    to expect's buffer overflow:
      Running /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/info-var.exp ...
      ERROR: internal buffer is full.
      ERROR: internal buffer is full.
      ERROR: internal buffer is full.
    
    Fix this by testing 'info variables' without running the executable.
    
    gdb ./info-var
    ...
    Reading symbols from ./info-var...
    (gdb) |info variables|wc
         27      54     971
    (gdb) start
    Temporary breakpoint 1 at 0x1129: file /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/info-var-f1.c, line 23.
    Starting program: /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/outputs/gdb.base/info-var/info-var
    
    Temporary breakpoint 1, main ()
        at /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/info-var-f1.c:23
    23        return global_var + get_offset() + f1_var;
    (gdb) |info variables|wc
       4334   14581  130738
    (gdb)
    
    gdb/testsuite/ChangeLog
    2019-09-04  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
    
            * gdb.base/info-var.exp: Test info variables without running
            to main, to avoid expect's buffer overflow.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d2dc356148..46c7b5f927 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-04  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+
+	* gdb.base/info-var.exp: Test info variables without running
+	to main, to avoid expect's buffer overflow.
+
 2019-09-03  Tom Tromey  <tromey@adacore.com>
 
 	* gdb.ada/bias.exp: New file.
diff --git a/gdb/testsuite/gdb.base/info-var.exp b/gdb/testsuite/gdb.base/info-var.exp
index 6dd896d8aa..c9b7485ffb 100644
--- a/gdb/testsuite/gdb.base/info-var.exp
+++ b/gdb/testsuite/gdb.base/info-var.exp
@@ -22,10 +22,9 @@ if {[prepare_for_testing "failed to prepare" \
     return -1
 }
 
-if ![runto_main] then {
-    fail "can't run to main"
-    return 0
-}
+# Note: we do not run to main, as otherwise, the output of info variables
+# can be very long, showing thousands of glibc variables.
+# This long output then causes expect's buffer to overflow.
 
 gdb_test "info variables" \
     [multi_line \


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24955, libbfd terminating program on out of memory
@ 2019-09-05  4:49 gdb-buildbot
  2019-09-05  6:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-05  4:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 89bdc77eabf5ede68322f6e47e003c1dc45b9ccb ***

commit 89bdc77eabf5ede68322f6e47e003c1dc45b9ccb
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 2 16:13:05 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Thu Sep 5 11:33:34 2019 +0930

    PR24955, libbfd terminating program on out of memory
    
    This patch fixes the worst of the cases where libbfd might terminate
    a program due to calling xstrdup or xmalloc.  I've also fixed some
    error paths that didn't clean up properly.
    
            PR 24955
            * libbfd-in.h (bfd_strdup): New inline function.
            * archive.c (_bfd_get_elt_at_filepos): Use bfd_strdup.  Close
            bfd on error.
            * elfcode.h (_bfd_elf_bfd_from_remote_memory): Use bfd_strdup.
            * opncls.c (bfd_fopen): Use bfd_strdup.  Close fd and stream
            on error.
            (bfd_openstreamr): Use bfd_strdup.
            (bfd_openr_iovec, bfd_openw, bfd_create): Likewise.
            * plugin.c (try_load_plugin): Use bfd_malloc.
            * libbfd.h: Regenerate.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f033af7443..319ba5a571 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,17 @@
+2019-09-05  Alan Modra  <amodra@gmail.com>
+
+	PR 24955
+	* libbfd-in.h (bfd_strdup): New inline function.
+	* archive.c (_bfd_get_elt_at_filepos): Use bfd_strdup.  Close
+	bfd on error.
+	* elfcode.h (_bfd_elf_bfd_from_remote_memory): Use bfd_strdup.
+	* opncls.c (bfd_fopen): Use bfd_strdup.  Close fd and stream
+	on error.
+	(bfd_openstreamr): Use bfd_strdup.
+	(bfd_openr_iovec, bfd_openw, bfd_create): Likewise.
+	* plugin.c (try_load_plugin): Use bfd_malloc.
+	* libbfd.h: Regenerate.
+
 2019-09-02  Alan Modra  <amodra@gmail.com>
 
 	PR 11983
diff --git a/bfd/archive.c b/bfd/archive.c
index 690718e949..ef71e8a796 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -728,7 +728,9 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
   else
     {
       n_bfd->origin = n_bfd->proxy_origin;
-      n_bfd->filename = xstrdup (filename);
+      n_bfd->filename = bfd_strdup (filename);
+      if (n_bfd->filename == NULL)
+	goto out;
     }
 
   n_bfd->arelt_data = new_areldata;
@@ -745,8 +747,10 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
       || _bfd_add_bfd_to_archive_cache (archive, filepos, n_bfd))
     return n_bfd;
 
+ out:
   free (new_areldata);
   n_bfd->arelt_data = NULL;
+  bfd_close (n_bfd);
   return NULL;
 }
 
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index 9a73c3b71f..625ae993df 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -1652,6 +1652,7 @@ NAME(_bfd_elf,bfd_from_remote_memory)
   bfd_vma high_offset;
   bfd_vma shdr_end;
   bfd_vma loadbase;
+  char *filename;
 
   /* Read in the ELF header in external format.  */
   err = target_read_memory (ehdr_vma, (bfd_byte *) &x_ehdr, sizeof x_ehdr);
@@ -1859,14 +1860,22 @@ NAME(_bfd_elf,bfd_from_remote_memory)
       free (contents);
       return NULL;
     }
+  filename = bfd_strdup ("<in-memory>");
+  if (filename == NULL)
+    {
+      free (bim);
+      free (contents);
+      return NULL;
+    }
   nbfd = _bfd_new_bfd ();
   if (nbfd == NULL)
     {
+      free (filename);
       free (bim);
       free (contents);
       return NULL;
     }
-  nbfd->filename = xstrdup ("<in-memory>");
+  nbfd->filename = filename;
   nbfd->xvec = templ->xvec;
   bim->size = high_offset;
   bim->buffer = contents;
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
index 7a97dfae19..cac4d3b022 100644
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -123,6 +123,15 @@ extern void *bfd_realloc2
 extern void *bfd_zmalloc2
   (bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN;
 
+static inline char *
+bfd_strdup (const char *str)
+{
+  size_t len = strlen (str) + 1;
+  char *buf = bfd_malloc (len);
+  if (buf != NULL)
+    memcpy (buf, str, len);
+  return buf;
+}
 /* These routines allocate and free things on the BFD's objalloc.  */
 
 extern void *bfd_alloc2
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 13f4c5b408..aabe247068 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -128,6 +128,15 @@ extern void *bfd_realloc2
 extern void *bfd_zmalloc2
   (bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN;
 
+static inline char *
+bfd_strdup (const char *str)
+{
+  size_t len = strlen (str) + 1;
+  char *buf = bfd_malloc (len);
+  if (buf != NULL)
+    memcpy (buf, str, len);
+  return buf;
+}
 /* These routines allocate and free things on the BFD's objalloc.  */
 
 extern void *bfd_alloc2
diff --git a/bfd/opncls.c b/bfd/opncls.c
index b8cda411e6..07f89b9a4c 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -223,6 +223,8 @@ bfd_fopen (const char *filename, const char *target, const char *mode, int fd)
   if (nbfd->iostream == NULL)
     {
       bfd_set_error (bfd_error_system_call);
+      if (fd != -1)
+	close (fd);
       _bfd_delete_bfd (nbfd);
       return NULL;
     }
@@ -231,7 +233,13 @@ bfd_fopen (const char *filename, const char *target, const char *mode, int fd)
 
   /* PR 11983: Do not cache the original filename, but
      rather make a copy - the original might go away.  */
-  nbfd->filename = xstrdup (filename);
+  nbfd->filename = bfd_strdup (filename);
+  if (nbfd->filename == NULL)
+    {
+      fclose (nbfd->iostream);
+      _bfd_delete_bfd (nbfd);
+      return NULL;
+    }
 
   /* Figure out whether the user is opening the file for reading,
      writing, or both, by looking at the MODE argument.  */
@@ -243,8 +251,9 @@ bfd_fopen (const char *filename, const char *target, const char *mode, int fd)
   else
     nbfd->direction = write_direction;
 
-  if (! bfd_cache_init (nbfd))
+  if (!bfd_cache_init (nbfd))
     {
+      fclose (nbfd->iostream);
       _bfd_delete_bfd (nbfd);
       return NULL;
     }
@@ -398,7 +407,12 @@ bfd_openstreamr (const char *filename, const char *target, void *streamarg)
   nbfd->iostream = stream;
   /* PR 11983: Do not cache the original filename, but
      rather make a copy - the original might go away.  */
-  nbfd->filename = xstrdup (filename);
+  nbfd->filename = bfd_strdup (filename);
+  if (nbfd->filename == NULL)
+    {
+      _bfd_delete_bfd (nbfd);
+      return NULL;
+    }
   nbfd->direction = read_direction;
 
   if (! bfd_cache_init (nbfd))
@@ -594,7 +608,12 @@ bfd_openr_iovec (const char *filename, const char *target,
 
   /* PR 11983: Do not cache the original filename, but
      rather make a copy - the original might go away.  */
-  nbfd->filename = xstrdup (filename);
+  nbfd->filename = bfd_strdup (filename);
+  if (nbfd->filename == NULL)
+    {
+      _bfd_delete_bfd (nbfd);
+      return NULL;
+    }
   nbfd->direction = read_direction;
 
   /* `open_p (...)' would get expanded by an the open(2) syscall macro.  */
@@ -661,7 +680,12 @@ bfd_openw (const char *filename, const char *target)
 
   /* PR 11983: Do not cache the original filename, but
      rather make a copy - the original might go away.  */
-  nbfd->filename = xstrdup (filename);
+  nbfd->filename = bfd_strdup (filename);
+  if (nbfd->filename == NULL)
+    {
+      _bfd_delete_bfd (nbfd);
+      return NULL;
+    }
   nbfd->direction = write_direction;
 
   if (bfd_open_file (nbfd) == NULL)
@@ -801,7 +825,12 @@ bfd_create (const char *filename, bfd *templ)
     return NULL;
   /* PR 11983: Do not cache the original filename, but
      rather make a copy - the original might go away.  */
-  nbfd->filename = xstrdup (filename);
+  nbfd->filename = bfd_strdup (filename);
+  if (nbfd->filename == NULL)
+    {
+      _bfd_delete_bfd (nbfd);
+      return NULL;
+    }
   if (templ)
     nbfd->xvec = templ->xvec;
   nbfd->direction = no_direction;
diff --git a/bfd/plugin.c b/bfd/plugin.c
index 376e92cdb3..5f760e9c42 100644
--- a/bfd/plugin.c
+++ b/bfd/plugin.c
@@ -262,7 +262,9 @@ try_load_plugin (const char *pname, bfd *abfd, int *has_plugin_p)
 	}
     }
 
-  plugin_list_iter = (struct plugin_list_entry *) xmalloc (sizeof *plugin_list_iter);
+  plugin_list_iter = bfd_malloc (sizeof *plugin_list_iter);
+  if (plugin_list_iter == NULL)
+    return 0;
   plugin_list_iter->handle = plugin_handle;
   plugin_list_iter->claim_file = NULL;
   plugin_list_iter->next = plugin_list;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] R_PPC64_PCREL_OPT
@ 2019-09-05  5:56 gdb-buildbot
  2019-09-05  6:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-05  5:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 77486630b13e9e586b0a1556cba9876a0ede99da ***

commit 77486630b13e9e586b0a1556cba9876a0ede99da
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 4 15:30:37 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Thu Sep 5 13:56:20 2019 +0930

    R_PPC64_PCREL_OPT
    
    The loads and stores handled in the second instruction of a sequence
    marked by R_PPC64_PCREL_OPT may be a prefix instruction.  For example:
     pld ra,symbol@got@pcrel
    0:
     pld rt,off(ra)
     .reloc 0b-8,R_PPC64_PCREL_OPT,(.-8)-(0b-8)
    can be optimised to
     pld rt,symbol+off@pcrel
     pnop
    
            * elf64-ppc.c (xlate_pcrel_opt): Handle prefix loads and stores
            in second instruction.
            (ppc64_elf_relocate_section): Likewise.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 319ba5a571..7f587df81a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-05  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (xlate_pcrel_opt): Handle prefix loads and stores
+	in second instruction.
+	(ppc64_elf_relocate_section): Likewise.
+
 2019-09-05  Alan Modra  <amodra@gmail.com>
 
 	PR 24955
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index a5bd3426ee..e39b6faf17 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -8282,12 +8282,31 @@ ok_lo_toc_insn (unsigned int insn, enum elf_ppc64_reloc_type r_type)
 static bfd_boolean
 xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
 {
-  uint32_t insn2 = *pinsn2 >> 32;
-  uint64_t i1new;
+  uint64_t insn1 = *pinsn1;
+  uint64_t insn2 = *pinsn2;
   bfd_signed_vma off;
 
+  if ((insn2 & (63ULL << 58)) == 1ULL << 58)
+    {
+      /* Check that regs match.  */
+      if (((insn2 >> 16) & 31) != ((insn1 >> 21) & 31))
+	return FALSE;
+
+      /* P8LS or PMLS form, non-pcrel.  */
+      if ((insn2 & (-1ULL << 50) & ~(1ULL << 56)) != (1ULL << 58))
+	return FALSE;
+
+      *pinsn1 = (insn2 & ~(31 << 16) & ~0x3ffff0000ffffULL) | (1ULL << 52);
+      *pinsn2 = PNOP;
+      off = ((insn2 >> 16) & 0x3ffff0000ULL) | (insn2 & 0xffff);
+      *poff = (off ^ 0x200000000ULL) - 0x200000000ULL;
+      return TRUE;
+    }
+
+  insn2 >>= 32;
+
   /* Check that regs match.  */
-  if (((insn2 >> 16) & 31) != ((*pinsn1 >> 21) & 31))
+  if (((insn2 >> 16) & 31) != ((insn1 >> 21) & 31))
     return FALSE;
 
   switch ((insn2 >> 26) & 63)
@@ -8308,7 +8327,7 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
     case 54: /* stfd */
       /* These are the PMLS cases, where we just need to tack a prefix
 	 on the insn.  */
-      i1new = ((1ULL << 58) | (2ULL << 56) | (1ULL << 52)
+      insn1 = ((1ULL << 58) | (2ULL << 56) | (1ULL << 52)
 	       | (insn2 & ((63ULL << 26) | (31ULL << 21))));
       off = insn2 & 0xffff;
       break;
@@ -8316,7 +8335,7 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
     case 58: /* lwa, ld */
       if ((insn2 & 1) != 0)
 	return FALSE;
-      i1new = ((1ULL << 58) | (1ULL << 52)
+      insn1 = ((1ULL << 58) | (1ULL << 52)
 	       | (insn2 & 2 ? 41ULL << 26 : 57ULL << 26)
 	       | (insn2 & (31ULL << 21)));
       off = insn2 & 0xfffc;
@@ -8325,7 +8344,7 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
     case 57: /* lxsd, lxssp */
       if ((insn2 & 3) < 2)
 	return FALSE;
-      i1new = ((1ULL << 58) | (1ULL << 52)
+      insn1 = ((1ULL << 58) | (1ULL << 52)
 	       | ((40ULL | (insn2 & 3)) << 26)
 	       | (insn2 & (31ULL << 21)));
       off = insn2 & 0xfffc;
@@ -8336,14 +8355,14 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
 	return FALSE;
       else if ((insn2 & 3) >= 2)
 	{
-	  i1new = ((1ULL << 58) | (1ULL << 52)
+	  insn1 = ((1ULL << 58) | (1ULL << 52)
 		   | ((44ULL | (insn2 & 3)) << 26)
 		   | (insn2 & (31ULL << 21)));
 	  off = insn2 & 0xfffc;
 	}
       else
 	{
-	  i1new = ((1ULL << 58) | (1ULL << 52)
+	  insn1 = ((1ULL << 58) | (1ULL << 52)
 		   | ((50ULL | (insn2 & 4) | ((insn2 & 8) >> 3)) << 26)
 		   | (insn2 & (31ULL << 21)));
 	  off = insn2 & 0xfff0;
@@ -8351,7 +8370,7 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
       break;
 
     case 56: /* lq */
-      i1new = ((1ULL << 58) | (1ULL << 52)
+      insn1 = ((1ULL << 58) | (1ULL << 52)
 	       | (insn2 & ((63ULL << 26) | (31ULL << 21))));
       off = insn2 & 0xffff;
       break;
@@ -8359,14 +8378,14 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
     case 62: /* std, stq */
       if ((insn2 & 1) != 0)
 	return FALSE;
-      i1new = ((1ULL << 58) | (1ULL << 52)
+      insn1 = ((1ULL << 58) | (1ULL << 52)
 	       | ((insn2 & 2) == 0 ? 61ULL << 26 : 60ULL << 26)
 	       | (insn2 & (31ULL << 21)));
       off = insn2 & 0xfffc;
       break;
     }
 
-  *pinsn1 = i1new;
+  *pinsn1 = insn1;
   *pinsn2 = (uint64_t) NOP << 32;
   *poff = (off ^ 0x8000) - 0x8000;
   return TRUE;
@@ -15413,7 +15432,12 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 			  pinsn2 = bfd_get_32 (input_bfd, contents + off2);
 			  pinsn2 <<= 32;
 			  if ((pinsn2 & (63ULL << 58)) == 1ULL << 58)
-			    break;
+			    {
+			      if (off2 + 8 > input_section->size)
+				break;
+			      pinsn2 |= bfd_get_32 (input_bfd,
+						    contents + off2 + 4);
+			    }
 			  if (xlate_pcrel_opt (&pinsn, &pinsn2, &addend_off))
 			    {
 			      addend += addend_off;
@@ -15424,6 +15448,9 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 					  contents + offset + 4);
 			      bfd_put_32 (input_bfd, pinsn2 >> 32,
 					  contents + off2);
+			      if ((pinsn2 & (63ULL << 58)) == 1ULL << 58)
+				bfd_put_32 (input_bfd, pinsn2,
+					    contents + off2 + 4);
 			    }
 			}
 		    }
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b654eb9d36..0da9e2542d 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-05  Alan Modra  <amodra@gmail.com>
+
+	* testsuite/ld-powerpc/pcrelopt.s,
+	* testsuite/ld-powerpc/pcrelopt.d: Test offset and prefix in
+	second instruction.
+
 2019-08-29  Alan Modra  <amodra@gmail.com>
 
 	PR ld/24406
diff --git a/ld/testsuite/ld-powerpc/pcrelopt.d b/ld/testsuite/ld-powerpc/pcrelopt.d
index 18fdb95abf..aeaa0cdb5d 100644
--- a/ld/testsuite/ld-powerpc/pcrelopt.d
+++ b/ld/testsuite/ld-powerpc/pcrelopt.d
@@ -80,10 +80,17 @@ Disassembly of section \.text:
 .*:	(04 10 00 01|01 00 10 04) 	pstxv   vs0,66028
 .*:	(d8 00 01 ec|ec 01 00 d8) 
 .*:	(60 00 00 00|00 00 00 60) 	nop
-.*:	(04 10 00 01|01 00 10 04) 	pld     r9,66008
-.*:	(e5 20 01 d8|d8 01 20 e5) 
-.*:	(e8 09 00 00|00 00 09 e8) 	ld      r0,0\(r9\)
+.*:	(06 10 00 01|01 00 10 06) 	plbz    r3,70676
+.*:	(88 60 14 14|14 14 60 88) 
+.*:	(60 00 00 00|00 00 00 60) 	nop
 .*:	(60 00 00 00|00 00 00 60) 	nop
-.*:	(06 10 00 01|01 00 10 06) 	pla     r7,66000
-.*:	(38 e0 01 d0|d0 01 e0 38) 
+.*:	(04 10 12 35|35 12 10 04) 	plq     r4,305485896
+.*:	(e0 80 58 48|48 58 80 e0) 
+.*:	(07 00 00 00|00 00 00 07) 	pnop
+.*:	(00 00 00 00|00 00 00 00) 
+.*:	(04 10 00 01|01 00 10 04) 	pld     r9,65976
+.*:	(e5 20 01 b8|b8 01 20 e5) 
+.*:	(e8 09 00 00|00 00 09 e8) 	ld      r0,0\(r9\)
+.*:	(06 10 00 01|01 00 10 06) 	pla     r7,65972
+.*:	(38 e0 01 b4|b4 01 e0 38) 
 .*:	(88 c7 00 00|00 00 c7 88) 	lbz     r6,0\(r7\)
diff --git a/ld/testsuite/ld-powerpc/pcrelopt.s b/ld/testsuite/ld-powerpc/pcrelopt.s
index 78b0f51f73..715a52b5f7 100644
--- a/ld/testsuite/ld-powerpc/pcrelopt.s
+++ b/ld/testsuite/ld-powerpc/pcrelopt.s
@@ -103,6 +103,18 @@ _start:
 		.reloc .-8,R_PPC64_PCREL_OPT,0f-(.-8)
 0:	stxv 0,0(9)
 
+#offsets are allowed too
+	pld 9,sym@got@pcrel
+0:
+	lbz 3,0x1234(9)
+	.reloc 0b-8,R_PPC64_PCREL_OPT,(.-4)-(0b-8)
+
+#and prefix insns as the second insn
+	pld 9,sym@got@pcrel
+0:
+	plq 4,0x12345678(9)
+	.reloc 0b-8,R_PPC64_PCREL_OPT,(.-8)-(0b-8)
+
 # This should not optimize
 	.extern i
 	.type i,@object


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC64 GOT_PCREL relocs
@ 2019-09-05  7:02 gdb-buildbot
  2019-09-05  9:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-05  7:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 133a1f6041bc131afcb39bf1a124d8e0fc5547ea ***

commit 133a1f6041bc131afcb39bf1a124d8e0fc5547ea
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Thu Sep 5 10:06:42 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Thu Sep 5 15:25:51 2019 +0930

    PowerPC64 GOT_PCREL relocs
    
    PC-relative relocs typically use the addend in adjusting what they are
    relative to.  For example:
            bcl 20,31,1f
    1:      mflr 12
            addi 12,12,xxx-1b
    generates "R_PPC64_REL16 xxx+0x4" for the addi (when little-endian).
    The addend reflects the fact that you want the offset relative to the
    previous insn not the current one in this case.
    
    So the question is, will we ever want to do something like that for an
    instruction using R_PPC64_GOT_PCREL34?  I thought so at the time I
    first implemented support in ld but at the time I think the hardware
    was possibly going to support pcrel+offset+reg addressing.  In which
    case you might want something like:
            load_big_offset_into_r2
            pld 3,sym-big_offset@got@pcrel(2)
    which would be a way of supporting more than 8G offsets from code to
    the GOT.  We could do the same with
            load_big_offset_into_r2
            pla 9,sym-big_offset@got@pcrel
            ldx 3,9,2
    However, this is really a poor version of TOC-pointer relative code.
    
    So let's go with an addend on R_PPC64_GOT_PCREL34 meaning that
    sym+addend should be put in a GOT entry, and the relocation calculate
    the pc-relative offset to that GOT entry.
    
    Note that this is an extension to the ABI, which says (by the
    expression given for GOT relocs) that non-zero addends on GOT and PLT
    relocs are ignored.  This is true for all GOT/PLT relocs, not just the
    pcrel ones.
    
            * elf64-ppc.c (ppc64_elf_check_relocs): Interpret an addend in
            GOT_PCREL and PLT_PCREL relocs as affecting the value stored
            in the GOT/PLT entry rather than affecting the offset to that
            GOI/PLT entry.
            (ppc64_elf_edit_toc, ppc64_elf_relocate_section): Likewise.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7f587df81a..8ed849d74d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-05  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_check_relocs): Interpret an addend in
+	GOT_PCREL and PLT_PCREL relocs as affecting the value stored
+	in the GOT/PLT entry rather than affecting the offset to that
+	GOI/PLT entry.
+	(ppc64_elf_edit_toc, ppc64_elf_relocate_section): Likewise.
+
 2019-09-05  Alan Modra  <amodra@gmail.com>
 
 	* elf64-ppc.c (xlate_pcrel_opt): Handle prefix loads and stores
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index e39b6faf17..88ace7e6fe 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -4524,7 +4524,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
       int tls_type;
       struct _ppc64_elf_section_data *ppc64_sec;
       struct plt_entry **ifunc, **plt_list;
-      bfd_vma sym_addend;
 
       r_symndx = ELF64_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
@@ -4550,18 +4549,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	case R_PPC64_D28:
 	case R_PPC64_TPREL34:
 	case R_PPC64_DTPREL34:
-	  htab->powerxx_stubs = 1;
-	  /* Fall through.  */
-	default:
-	  /* Somewhat foolishly, because the ABIs don't specifically
-	     allow it, ppc64 gas and ld support GOT and PLT relocs
-	     with non-zero addends where the addend results in
-	     sym+addend being stored in the GOT or PLT entry.  This
-	     can't be supported for pcrel relocs because the addend is
-	     used to specify the pcrel offset.  */
-	  sym_addend = rel->r_addend;
-	  break;
-
 	case R_PPC64_PCREL34:
 	case R_PPC64_GOT_PCREL34:
 	case R_PPC64_GOT_TLSGD34:
@@ -4572,7 +4559,8 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	case R_PPC64_PLT_PCREL34_NOTOC:
 	case R_PPC64_PCREL28:
 	  htab->powerxx_stubs = 1;
-	  sym_addend = 0;
+	  break;
+	default:
 	  break;
 	}
 
@@ -4621,7 +4609,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	  if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC)
 	    {
 	      ifunc = update_local_sym_info (abfd, symtab_hdr, r_symndx,
-					     sym_addend,
+					     rel->r_addend,
 					     NON_GOT | PLT_IFUNC);
 	      if (ifunc == NULL)
 		return FALSE;
@@ -4638,7 +4626,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	    ((struct ppc_link_hash_entry *) h)->tls_mask |= TLS_TLS | TLS_MARK;
 	  else
 	    if (!update_local_sym_info (abfd, symtab_hdr, r_symndx,
-					sym_addend,
+					rel->r_addend,
 					NON_GOT | TLS_TLS | TLS_MARK))
 	      return FALSE;
 	  sec->has_tls_reloc = 1;
@@ -4712,7 +4700,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 
 	      eh = (struct ppc_link_hash_entry *) h;
 	      for (ent = eh->elf.got.glist; ent != NULL; ent = ent->next)
-		if (ent->addend == sym_addend
+		if (ent->addend == rel->r_addend
 		    && ent->owner == abfd
 		    && ent->tls_type == tls_type)
 		  break;
@@ -4723,7 +4711,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 		  if (ent == NULL)
 		    return FALSE;
 		  ent->next = eh->elf.got.glist;
-		  ent->addend = sym_addend;
+		  ent->addend = rel->r_addend;
 		  ent->owner = abfd;
 		  ent->tls_type = tls_type;
 		  ent->is_indirect = FALSE;
@@ -4736,14 +4724,14 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	  else
 	    /* This is a global offset table entry for a local symbol.  */
 	    if (!update_local_sym_info (abfd, symtab_hdr, r_symndx,
-					sym_addend, tls_type))
+					rel->r_addend, tls_type))
 	      return FALSE;
 
 	  /* We may also need a plt entry if the symbol turns out to be
 	     an ifunc.  */
 	  if (h != NULL && !bfd_link_pic (info) && abiversion (abfd) != 1)
 	    {
-	      if (!update_plt_info (abfd, &h->plt.plist, sym_addend))
+	      if (!update_plt_info (abfd, &h->plt.plist, rel->r_addend))
 		return FALSE;
 	    }
 	  break;
@@ -4769,9 +4757,9 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	    }
 	  if (plt_list == NULL)
 	    plt_list = update_local_sym_info (abfd, symtab_hdr, r_symndx,
-					      sym_addend,
+					      rel->r_addend,
 					      NON_GOT | PLT_KEEP);
-	  if (!update_plt_info (abfd, plt_list, sym_addend))
+	  if (!update_plt_info (abfd, plt_list, rel->r_addend))
 	    return FALSE;
 	  break;
 
@@ -4929,7 +4917,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	  /* We may need a .plt entry if the function this reloc
 	     refers to is in a shared lib.  */
 	  if (plt_list
-	      && !update_plt_info (abfd, plt_list, sym_addend))
+	      && !update_plt_info (abfd, plt_list, rel->r_addend))
 	    return FALSE;
 	  break;
 
@@ -4973,7 +4961,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	    }
 	  else
 	    if (!update_local_sym_info (abfd, symtab_hdr, r_symndx,
-					sym_addend, tls_type))
+					rel->r_addend, tls_type))
 	      return FALSE;
 
 	  ppc64_sec = ppc64_elf_section_data (sec);
@@ -4995,7 +4983,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	    }
 	  BFD_ASSERT (rel->r_offset % 8 == 0);
 	  ppc64_sec->u.toc.symndx[rel->r_offset / 8] = r_symndx;
-	  ppc64_sec->u.toc.add[rel->r_offset / 8] = sym_addend;
+	  ppc64_sec->u.toc.add[rel->r_offset / 8] = rel->r_addend;
 
 	  /* Mark the second slot of a GD or LD entry.
 	     -1 to indicate GD and -2 to indicate LD.  */
@@ -9044,7 +9032,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
 	      asection *sym_sec;
 	      struct elf_link_hash_entry *h;
 	      struct got_entry *ent;
-	      bfd_vma sym_addend, val, pc;
+	      bfd_vma val, pc;
 	      unsigned char buf[8];
 	      unsigned int insn;
 	      enum {no_check, check_lo, check_ha} insn_check;
@@ -9119,11 +9107,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
 
 		case R_PPC64_GOT16_HA:
 		case R_PPC64_GOT16_LO_DS:
-		  sym_addend = rel->r_addend;
-		  break;
-
 		case R_PPC64_GOT_PCREL34:
-		  sym_addend = 0;
 		  break;
 		}
 
@@ -9144,7 +9128,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
 		val = h->root.u.def.value;
 	      else
 		val = sym->st_value;
-	      val += sym_addend;
+	      val += rel->r_addend;
 	      val += sym_sec->output_section->vma + sym_sec->output_offset;
 
 /* Fudge factor to allow for the fact that the preliminary layout
@@ -9209,7 +9193,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
 		  ent = local_got_ents[r_symndx];
 		}
 	      for (; ent != NULL; ent = ent->next)
-		if (ent->addend == sym_addend
+		if (ent->addend == rel->r_addend
 		    && ent->owner == ibfd
 		    && ent->tls_type == 0)
 		  break;
@@ -15535,14 +15519,6 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 	    bfd_vma off;
 	    unsigned long indx = 0;
 	    struct got_entry *ent;
-	    bfd_vma sym_addend = orig_rel.r_addend;
-
-	    if (r_type == R_PPC64_GOT_PCREL34
-		|| r_type == R_PPC64_GOT_TLSGD34
-		|| r_type == R_PPC64_GOT_TLSLD34
-		|| r_type == R_PPC64_GOT_TPREL34
-		|| r_type == R_PPC64_GOT_DTPREL34)
-	      sym_addend = 0;
 
 	    if (tls_type == (TLS_TLS | TLS_LD)
 		&& (h == NULL
@@ -15576,7 +15552,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 		  }
 
 		for (; ent != NULL; ent = ent->next)
-		  if (ent->addend == sym_addend
+		  if (ent->addend == orig_rel.r_addend
 		      && ent->owner == input_bfd
 		      && ent->tls_type == tls_type)
 		    break;
@@ -15633,7 +15609,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 		    outrel.r_offset = (got->output_section->vma
 				       + got->output_offset
 				       + off);
-		    outrel.r_addend = sym_addend;
+		    outrel.r_addend = orig_rel.r_addend;
 		    if (tls_type & (TLS_LD | TLS_GD))
 		      {
 			outrel.r_addend = 0;
@@ -15646,7 +15622,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 			    bfd_elf64_swap_reloca_out (output_bfd,
 						       &outrel, loc);
 			    outrel.r_offset += 8;
-			    outrel.r_addend = sym_addend;
+			    outrel.r_addend = orig_rel.r_addend;
 			    outrel.r_info
 			      = ELF64_R_INFO (indx, R_PPC64_DTPREL64);
 			  }
@@ -15692,7 +15668,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 		   emitting a reloc.  */
 		else
 		  {
-		    relocation += sym_addend;
+		    relocation += orig_rel.r_addend;
 		    if (tls_type != 0)
 		      {
 			if (htab->elf.tls_sec == NULL)
@@ -15723,6 +15699,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 	      abort ();
 
 	    relocation = got->output_section->vma + got->output_offset + off;
+	    addend = 0;
 	    if (!(r_type == R_PPC64_GOT_PCREL34
 		  || r_type == R_PPC64_GOT_TLSGD34
 		  || r_type == R_PPC64_GOT_TLSLD34
@@ -15760,15 +15737,10 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 	    if (plt_list)
 	      {
 		struct plt_entry *ent;
-		bfd_vma sym_addend = orig_rel.r_addend;
-
-		if (r_type == R_PPC64_PLT_PCREL34
-		    || r_type == R_PPC64_PLT_PCREL34_NOTOC)
-		  sym_addend = 0;
 
 		for (ent = *plt_list; ent != NULL; ent = ent->next)
 		  if (ent->plt.offset != (bfd_vma) -1
-		      && ent->addend == sym_addend)
+		      && ent->addend == orig_rel.r_addend)
 		    {
 		      asection *plt;
 		      bfd_vma got;
@@ -15797,9 +15769,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 				 + htab->sec_info[input_section->id].toc_off);
 			  relocation -= got;
 			}
-		      if (r_type != R_PPC64_PLT_PCREL34
-			  && r_type != R_PPC64_PLT_PCREL34_NOTOC)
-			addend = 0;
+		      addend = 0;
 		      unresolved_reloc = FALSE;
 		      break;
 		    }


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Restore breakpoint command in ui-redirect.exp
@ 2019-09-05 13:10 gdb-buildbot
  2019-09-06  2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-05 13:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 30331a6ca014f6b51b17627aa968c6b79627ce21 ***

commit 30331a6ca014f6b51b17627aa968c6b79627ce21
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Sep 5 14:33:10 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Thu Sep 5 14:33:10 2019 +0200

    [gdb/testsuite] Restore breakpoint command in ui-redirect.exp
    
    In gdb.base/ui-redirect.exp, the "save breakpoint" command is used to write
    the current breakpoints to a file, but the actual output is not verified.
    
    Consequently, the test has regressed in that the "print 1" command associated
    with a breakpoint on main is removed by a subsequent runto_main, which first
    deletes all breakpoints:
    ...
    (gdb) break main
    Breakpoint 1 at 0x4004d7: file start.c, line 34.
    (gdb) commands
    Type commands for breakpoint(s) 1, one per line.
    End with a line saying just "end".
    > PASS: gdb.base/ui-redirect.exp: commands
    print 1
    > PASS: gdb.base/ui-redirect.exp: print 1
    end
    (gdb) PASS: gdb.base/ui-redirect.exp: end
    delete breakpoints
    Delete all breakpoints? (y or n) y
    ...
    and consequently the "save breakpoint" output is missing the breakpoint
    command for main:
    ...
     break main
    -  commands
    -    print 1
    -  end
     break foo
     break bar
    ...
    
    Fix this by replacing "gdb_breakpoint main" with runto_main, and verifying the
    "save breakpoints" output.
    
    Tested on x86_64-linux.
    
    gdb/testsuite/ChangeLog:
    
    2019-09-05  Tom de Vries  <tdevries@suse.de>
    
            * lib/gdb.exp (cmp_file_string): New proc.
            * gdb.base/ui-redirect.exp: Replace "gdb_breakpoint main" with
            runto_main.  Verify save breakpoints output.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 46c7b5f927..0f6917a5a0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-05  Tom de Vries  <tdevries@suse.de>
+
+	* lib/gdb.exp (cmp_file_string): New proc.
+	* gdb.base/ui-redirect.exp: Replace "gdb_breakpoint main" with
+	runto_main.  Verify save breakpoints output.
+
 2019-09-04  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
 
 	* gdb.base/info-var.exp: Test info variables without running
diff --git a/gdb/testsuite/gdb.base/ui-redirect.exp b/gdb/testsuite/gdb.base/ui-redirect.exp
index 4507ac51a2..efcac14b7c 100644
--- a/gdb/testsuite/gdb.base/ui-redirect.exp
+++ b/gdb/testsuite/gdb.base/ui-redirect.exp
@@ -23,7 +23,10 @@ if { [prepare_for_testing "failed to prepare" ui-redirect start.c] } {
     return -1
 }
 
-gdb_breakpoint main
+if ![runto_main] {
+    fail "can't run to main"
+    return -1
+}
 
 set test "commands"
 gdb_test_multiple $test $test {
@@ -40,18 +43,27 @@ gdb_test_multiple $test $test {
 }
 gdb_test_no_output "end"
 
-if ![runto_main] {
-    fail "can't run to main"
-    return -1
-}
 gdb_breakpoint "foo"
 gdb_breakpoint "bar"
 
+set cmds [multi_line_input \
+	      "break main" \
+	      "  commands" \
+	      "    print 1" \
+	      "  end" \
+	      "break foo" \
+	      "break bar"]
+set cmds "$cmds\n"
+set outdir [standard_output_file {}]
+set cmds_file "$outdir/cmds.txt"
+
 with_test_prefix "logging" {
     gdb_test_no_output "set logging file /dev/null"
     gdb_test "set logging on" \
     "Copying output to /dev/null.*Copying debug output to /dev/null\\."
-    gdb_test "save breakpoints /dev/null" "Saved to file '/dev/null'\\."
+    gdb_test "save breakpoints $cmds_file" "Saved to file '$cmds_file'\\." \
+	"save breakpoints cmds.txt"
+    cmp_file_string "$cmds_file" "$cmds" "cmds.txt"
     gdb_test "set logging off" "Done logging to /dev/null\\."
     gdb_test "help" "List of classes of commands:.*"
 }
@@ -60,7 +72,8 @@ with_test_prefix "redirect" {
     gdb_test "set logging redirect on"
     gdb_test "set logging on" \
     "Redirecting output to /dev/null.*Copying debug output to /dev/null\\."
-    gdb_test_no_output "save breakpoints /dev/null"
+    gdb_test_no_output "save breakpoints $cmds_file" "save breakpoints cmds.txt"
+    cmp_file_string "$cmds_file" "$cmds" "cmds.txt"
     gdb_test "set logging off" "Done logging to /dev/null\\."
     gdb_test "help" "List of classes of commands:.*"
 }
@@ -71,7 +84,9 @@ with_test_prefix "redirect while already logging" {
     "Copying output to /dev/null.*Copying debug output to /dev/null\\."
     gdb_test "set logging redirect on" \
     ".*warning: Currently logging .*Turn the logging off and on to make the new setting effective.*"
-    gdb_test "save breakpoints /dev/null" "Saved to file '/dev/null'\\."
+    gdb_test "save breakpoints $cmds_file" "Saved to file '$cmds_file'\\." \
+	"save breakpoints cmds.txt"
+    cmp_file_string "$cmds_file" "$cmds" "cmds.txt"
     gdb_test "set logging off" "Done logging to /dev/null\\."
     gdb_test "help" "List of classes of commands:.*"
     gdb_test_no_output "set logging redirect off"
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 76805fb5ec..acbeb01376 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -6668,5 +6668,32 @@ proc gdb_write_cmd_file { cmdline } {
     catch "close $cmd_file"
 }
 
+# Compare contents of FILE to string STR.  Pass with MSG if equal, otherwise
+# fail with MSG.
+
+proc cmp_file_string { file str msg } {
+    if { ![file exists $file]} {
+	fail "$msg"
+	return
+    }
+
+    set caught_error [catch {
+	set fp [open "$file" r]
+	set file_contents [read $fp]
+	close $fp
+    } error_message]
+    if { $caught_error } then {
+	error "$error_message"
+	fail "$msg"
+	return
+    }
+
+    if { $file_contents == $str } {
+	pass "$msg"
+    } else {
+	fail "$msg"
+    }
+}
+
 # Always load compatibility stuff.
 load_lib future.exp


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfd_get_filename
@ 2019-09-06 14:26 gdb-buildbot
  2019-09-06 19:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-06 14:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b16c44debcf8a446e94e161e328169f5c8d5d811 ***

commit b16c44debcf8a446e94e161e328169f5c8d5d811
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Fri Sep 6 12:07:05 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Fri Sep 6 12:22:59 2019 +0930

    bfd_get_filename
    
    This macro says:
    /* Cast from const char * to char * so that caller can assign to
       a char * without a warning.  */
    
    I reckon that isn't such a good idea since it can result in char*
    variables where const char* is appropriate.  Not very many places
    need the char* cast.
    
    bfd/
            * aout-target.h (object_p): Formatting.
            * bfd-in.h (bfd_get_filename): Don't cast to char*.
            * corefile.c (generic_core_file_matches_executable_p): Constify
            variables and remove cast.
            * bfd-in2.h: Regenerate.
    binutils/
            * nm.c (print_object_filename_bsd, print_object_filename_sysv),
            (print_object_filename_posix, print_archive_filename_bsd),
            (print_archive_filename_sysv, print_archive_filename_posix),
            (print_archive_member_bsd, print_archive_member_sysv),
            (print_archive_member_posix): Constify parameter.
            (struct output_fns <print_object_filename, print_archive_filename>),
            (<print_archive_member>): Likewise.
            * objcopy.c (copy_archive): Add cast for make_tempdir.
    ld/
            * emultempl/elf32.em (gld${EMULATION_NAME}_search_needed): Constify
            variable.
            * emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Likewise.
            * emultempl/pep.em (gld_${EMULATION_NAME}_after_open): Likewise.
    gdb/
            * coffread.c (coff_symfile_read): Constify filename variable.
            * dbxread.c (dbx_symfile_init, coffstab_build_psymtabs),
            (elfstab_build_psymtabs, stabsect_build_psymtabs): Likewise.
            * gdb_bfd.c (gdb_bfd_close_or_warn): Likewise.
            * solib.c (reload_shared_libraries_1): Likewise.
            * symfile.c (reread_symbols): Likewise.
            * solib-aix.c (solib_aix_bfd_open): Add cast for xfree of filename.
            * solib-darwin.c (darwin_bfd_open): Likewise.
            * symfile-mem.c (symbol_file_add_from_memory): Likewise.
    sim/cris/
            * sim-if.c (sim_open): Constify filename variable.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8ed849d74d..24f5e33833 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+	* aout-target.h (object_p): Formatting.
+	* bfd-in.h (bfd_get_filename): Don't cast to char*.
+	* corefile.c (generic_core_file_matches_executable_p): Constify
+	variables and remove cast.
+	* bfd-in2.h: Regenerate.
+
 2019-09-05  Alan Modra  <amodra@gmail.com>
 
 	* elf64-ppc.c (ppc64_elf_check_relocs): Interpret an addend in
diff --git a/bfd/aout-target.h b/bfd/aout-target.h
index 2f3d5ea453..99a82bb57a 100644
--- a/bfd/aout-target.h
+++ b/bfd/aout-target.h
@@ -180,7 +180,7 @@ MY (object_p) (bfd *abfd)
 #ifndef S_IXUSR
 #define S_IXUSR 0100	/* Execute by owner.  */
 #endif
-      if (stat(abfd->filename, &buf) == 0 && (buf.st_mode & S_IXUSR))
+      if (stat (abfd->filename, &buf) == 0 && (buf.st_mode & S_IXUSR))
 	abfd->flags |= EXEC_P;
     }
 #endif /* ENTRY_CAN_BE_ZERO */
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index a5e95d14aa..6544838a57 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -518,9 +518,7 @@ extern int bfd_stat (bfd *, struct stat *);
 #endif
 extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
 
-/* Cast from const char * to char * so that caller can assign to
-   a char * without a warning.  */
-#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
+#define bfd_get_filename(abfd) ((abfd)->filename)
 #define bfd_get_cacheable(abfd) ((abfd)->cacheable)
 #define bfd_get_format(abfd) ((abfd)->format)
 #define bfd_get_target(abfd) ((abfd)->xvec->name)
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 63b4792818..7b1cfbcf1a 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -525,9 +525,7 @@ extern int bfd_stat (bfd *, struct stat *);
 #endif
 extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
 
-/* Cast from const char * to char * so that caller can assign to
-   a char * without a warning.  */
-#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
+#define bfd_get_filename(abfd) ((abfd)->filename)
 #define bfd_get_cacheable(abfd) ((abfd)->cacheable)
 #define bfd_get_format(abfd) ((abfd)->format)
 #define bfd_get_target(abfd) ((abfd)->xvec->name)
diff --git a/bfd/corefile.c b/bfd/corefile.c
index aa43da5cae..b2b3d2e26a 100644
--- a/bfd/corefile.c
+++ b/bfd/corefile.c
@@ -157,9 +157,9 @@ DESCRIPTION
 bfd_boolean
 generic_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd)
 {
-  char *exec;
-  char *core;
-  char *last_slash;
+  const char *exec;
+  const char *core;
+  const char *last_slash;
 
   if (exec_bfd == NULL || core_bfd == NULL)
     return TRUE;
@@ -169,7 +169,7 @@ generic_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd)
      non-const char *.  In this case, the assignement does not lead to
      breaking the const, as we're only reading the string.  */
 
-  core = (char *) bfd_core_file_failing_command (core_bfd);
+  core = bfd_core_file_failing_command (core_bfd);
   if (core == NULL)
     return TRUE;
 
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 98e660d167..198380eaea 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+	* nm.c (print_object_filename_bsd, print_object_filename_sysv),
+	(print_object_filename_posix, print_archive_filename_bsd),
+	(print_archive_filename_sysv, print_archive_filename_posix),
+	(print_archive_member_bsd, print_archive_member_sysv),
+	(print_archive_member_posix): Constify parameter.
+	(struct output_fns <print_object_filename, print_archive_filename>),
+	(<print_archive_member>): Likewise.
+	* objcopy.c (copy_archive): Add cast for make_tempdir.
+
 2019-08-29  Alan Modra  <amodra@gmail.com>
 
 	* dwarf.c (check_uvalue): Remove unnecessary pointer checks.
diff --git a/binutils/nm.c b/binutils/nm.c
index 5d3d647843..67b7ac7b12 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -77,15 +77,15 @@ struct extended_symbol_info
   (sym->elfinfo ? sym->elfinfo->internal_elf_sym.st_size: sym->ssize)
 
 /* The output formatting functions.  */
-static void print_object_filename_bsd (char *);
-static void print_object_filename_sysv (char *);
-static void print_object_filename_posix (char *);
-static void print_archive_filename_bsd (char *);
-static void print_archive_filename_sysv (char *);
-static void print_archive_filename_posix (char *);
-static void print_archive_member_bsd (char *, const char *);
-static void print_archive_member_sysv (char *, const char *);
-static void print_archive_member_posix (char *, const char *);
+static void print_object_filename_bsd (const char *);
+static void print_object_filename_sysv (const char *);
+static void print_object_filename_posix (const char *);
+static void print_archive_filename_bsd (const char *);
+static void print_archive_filename_sysv (const char *);
+static void print_archive_filename_posix (const char *);
+static void print_archive_member_bsd (const char *, const char *);
+static void print_archive_member_sysv (const char *, const char *);
+static void print_archive_member_posix (const char *, const char *);
 static void print_symbol_filename_bsd (bfd *, bfd *);
 static void print_symbol_filename_sysv (bfd *, bfd *);
 static void print_symbol_filename_posix (bfd *, bfd *);
@@ -98,13 +98,13 @@ static void print_symbol_info_posix (struct extended_symbol_info *, bfd *);
 struct output_fns
   {
     /* Print the name of an object file given on the command line.  */
-    void (*print_object_filename) (char *);
+    void (*print_object_filename) (const char *);
 
     /* Print the name of an archive file given on the command line.  */
-    void (*print_archive_filename) (char *);
+    void (*print_archive_filename) (const char *);
 
     /* Print the name of an archive member file.  */
-    void (*print_archive_member) (char *, const char *);
+    void (*print_archive_member) (const char *, const char *);
 
     /* Print the name of the file (and archive, if there is one)
        containing a symbol.  */
@@ -1357,14 +1357,14 @@ display_file (char *filename)
 /* Print the name of an object file given on the command line.  */
 
 static void
-print_object_filename_bsd (char *filename)
+print_object_filename_bsd (const char *filename)
 {
   if (filename_per_file && !filename_per_symbol)
     printf ("\n%s:\n", filename);
 }
 
 static void
-print_object_filename_sysv (char *filename)
+print_object_filename_sysv (const char *filename)
 {
   if (undefined_only)
     printf (_("\n\nUndefined symbols from %s:\n\n"), filename);
@@ -1379,7 +1379,7 @@ Name                  Value           Class        Type         Size
 }
 
 static void
-print_object_filename_posix (char *filename)
+print_object_filename_posix (const char *filename)
 {
   if (filename_per_file && !filename_per_symbol)
     printf ("%s:\n", filename);
@@ -1388,26 +1388,26 @@ print_object_filename_posix (char *filename)
 /* Print the name of an archive file given on the command line.  */
 
 static void
-print_archive_filename_bsd (char *filename)
+print_archive_filename_bsd (const char *filename)
 {
   if (filename_per_file)
     printf ("\n%s:\n", filename);
 }
 
 static void
-print_archive_filename_sysv (char *filename ATTRIBUTE_UNUSED)
+print_archive_filename_sysv (const char *filename ATTRIBUTE_UNUSED)
 {
 }
 
 static void
-print_archive_filename_posix (char *filename ATTRIBUTE_UNUSED)
+print_archive_filename_posix (const char *filename ATTRIBUTE_UNUSED)
 {
 }
 \f
 /* Print the name of an archive member file.  */
 
 static void
-print_archive_member_bsd (char *archive ATTRIBUTE_UNUSED,
+print_archive_member_bsd (const char *archive ATTRIBUTE_UNUSED,
 			  const char *filename)
 {
   if (!filename_per_symbol)
@@ -1415,7 +1415,7 @@ print_archive_member_bsd (char *archive ATTRIBUTE_UNUSED,
 }
 
 static void
-print_archive_member_sysv (char *archive, const char *filename)
+print_archive_member_sysv (const char *archive, const char *filename)
 {
   if (undefined_only)
     printf (_("\n\nUndefined symbols from %s[%s]:\n\n"), archive, filename);
@@ -1430,7 +1430,7 @@ Name                  Value           Class        Type         Size
 }
 
 static void
-print_archive_member_posix (char *archive, const char *filename)
+print_archive_member_posix (const char *archive, const char *filename)
 {
   if (!filename_per_symbol)
     printf ("%s[%s]:\n", archive, filename);
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index ebb99339aa..b702e52d98 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -3311,7 +3311,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
     }
 
   /* Make a temp directory to hold the contents.  */
-  dir = make_tempdir (bfd_get_filename (obfd));
+  dir = make_tempdir ((char *) bfd_get_filename (obfd));
   if (dir == NULL)
     fatal (_("cannot create tempdir for archive copying (error: %s)"),
 	   strerror (errno));
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f55d1a8e31..40bd4d0d02 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+	* coffread.c (coff_symfile_read): Constify filename variable.
+	* dbxread.c (dbx_symfile_init, coffstab_build_psymtabs),
+	(elfstab_build_psymtabs, stabsect_build_psymtabs): Likewise.
+	* gdb_bfd.c (gdb_bfd_close_or_warn): Likewise.
+	* solib.c (reload_shared_libraries_1): Likewise.
+	* symfile.c (reread_symbols): Likewise.
+	* solib-aix.c (solib_aix_bfd_open): Add cast for xfree of filename.
+	* solib-darwin.c (darwin_bfd_open): Likewise.
+	* symfile-mem.c (symbol_file_add_from_memory): Likewise.
+
 2019-09-03  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* psymtab.c (print_partial_symbols): Handle missing domain_enum
diff --git a/gdb/coffread.c b/gdb/coffread.c
index e24ab8d2f4..a70461271e 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -538,7 +538,7 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
   struct coff_symfile_info *info;
   bfd *abfd = objfile->obfd;
   coff_data_type *cdata = coff_data (abfd);
-  char *filename = bfd_get_filename (abfd);
+  const char *filename = bfd_get_filename (abfd);
   int val;
   unsigned int num_symbols;
   int symtab_offset;
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index e339d1f7ec..df3ae5828a 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -587,7 +587,7 @@ dbx_symfile_init (struct objfile *objfile)
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   asection *text_sect;
   unsigned char size_temp[DBX_STRINGTAB_SIZE_SIZE];
 
@@ -2939,7 +2939,7 @@ coffstab_build_psymtabs (struct objfile *objfile,
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   unsigned int stabsize;
 
   /* Allocate struct to keep track of stab reading.  */
@@ -3026,7 +3026,7 @@ elfstab_build_psymtabs (struct objfile *objfile, asection *stabsect,
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
 
   stabsread_new_init ();
 
@@ -3107,7 +3107,7 @@ stabsect_build_psymtabs (struct objfile *objfile, char *stab_name,
 {
   int val;
   bfd *sym_bfd = objfile->obfd;
-  char *name = bfd_get_filename (sym_bfd);
+  const char *name = bfd_get_filename (sym_bfd);
   asection *stabsect;
   asection *stabstrsect;
   asection *text_sect;
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index 0334523ef1..d3b4c749f5 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -504,7 +504,7 @@ static int
 gdb_bfd_close_or_warn (struct bfd *abfd)
 {
   int ret;
-  char *name = bfd_get_filename (abfd);
+  const char *name = bfd_get_filename (abfd);
 
   bfd_map_over_sections (abfd, free_one_bfd_section, NULL);
 
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index d13b651944..2b5444293e 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -643,9 +643,9 @@ solib_aix_bfd_open (const char *pathname)
      along with appended parenthesized member name in order to allow commands
      listing all shared libraries to display.  Otherwise, we would only be
      displaying the name of the archive member object.  */
-  xfree (bfd_get_filename (object_bfd.get ()));
+  xfree ((char *) bfd_get_filename (object_bfd.get ()));
   object_bfd->filename = xstrprintf ("%s%s",
-                                     bfd_get_filename (archive_bfd.get ()),
+				     bfd_get_filename (archive_bfd.get ()),
 				     sep);
 
   return object_bfd;
diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c
index 443ebb64a4..3dd30d2aa3 100644
--- a/gdb/solib-darwin.c
+++ b/gdb/solib-darwin.c
@@ -670,7 +670,7 @@ darwin_bfd_open (const char *pathname)
   /* The current filename for fat-binary BFDs is a name generated
      by BFD, usually a string containing the name of the architecture.
      Reset its value to the actual filename.  */
-  xfree (bfd_get_filename (res.get ()));
+  xfree ((char *) bfd_get_filename (res.get ()));
   res->filename = xstrdup (pathname);
 
   return res;
diff --git a/gdb/solib.c b/gdb/solib.c
index 29a17ad5d4..86000f6d61 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -1296,7 +1296,7 @@ reload_shared_libraries_1 (int from_tty)
 
   for (so = so_list_head; so != NULL; so = so->next)
     {
-      char *found_pathname = NULL;
+      const char *found_pathname = NULL;
       int was_loaded = so->symbols_loaded;
       symfile_add_flags add_flags = SYMFILE_DEFER_BP_RESET;
 
diff --git a/gdb/symfile-mem.c b/gdb/symfile-mem.c
index 51a75541e5..6d1deae1e0 100644
--- a/gdb/symfile-mem.c
+++ b/gdb/symfile-mem.c
@@ -101,7 +101,7 @@ symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
   /* Manage the new reference for the duration of this function.  */
   gdb_bfd_ref_ptr nbfd_holder = gdb_bfd_ref_ptr::new_reference (nbfd);
 
-  xfree (bfd_get_filename (nbfd));
+  xfree ((char *) bfd_get_filename (nbfd));
   if (name == NULL)
     nbfd->filename = xstrdup ("shared object read from target memory");
   else
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 8843781e13..3cd514409b 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -2548,7 +2548,7 @@ reread_symbols (void)
 	  /* Clean up any state BFD has sitting around.  */
 	  {
 	    gdb_bfd_ref_ptr obfd (objfile->obfd);
-	    char *obfd_filename;
+	    const char *obfd_filename;
 
 	    obfd_filename = bfd_get_filename (objfile->obfd);
 	    /* Open the new BFD before freeing the old one, so that
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 37836aa70a..13abd72d83 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+	* emultempl/elf32.em (gld${EMULATION_NAME}_search_needed): Constify
+	variable.
+	* emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Likewise.
+	* emultempl/pep.em (gld_${EMULATION_NAME}_after_open): Likewise.
+
 2019-09-05  Eric Botcazou  <ebotcazou@adacore.com>
 
 	PR ld/24574
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
index b3c012c46d..52db0fde1d 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -552,7 +552,7 @@ gld${EMULATION_NAME}_search_needed (const char *path,
 	     FIXME: The code could be a lot cleverer about allocating space
 	     for the processed string.  */
 	  char *    end = strchr (var, '/');
-	  char *    replacement = NULL;
+	  const char *replacement = NULL;
 	  char *    v = var + 1;
 	  char *    freeme = NULL;
 	  unsigned  flen = strlen (filename);
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 834215ac85..49bb66b906 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -1513,7 +1513,7 @@ gld_${EMULATION_NAME}_after_open (void)
 		      {
 			struct bfd_symbol *s;
 			struct bfd_link_hash_entry * blhe;
-			char *other_bfd_filename;
+			const char *other_bfd_filename;
 			char *n;
 
 			s = (relocs[i]->sym_ptr_ptr)[0];
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index 9eb7cd7a4b..4daa32b5c6 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -1480,7 +1480,7 @@ gld_${EMULATION_NAME}_after_open (void)
 		      {
 			struct bfd_symbol *s;
 			struct bfd_link_hash_entry * blhe;
-			char *other_bfd_filename;
+			const char *other_bfd_filename;
 			char *n;
 
 			s = (relocs[i]->sym_ptr_ptr)[0];
diff --git a/sim/cris/ChangeLog b/sim/cris/ChangeLog
index 5e26f3ddf8..d37fc8f56d 100644
--- a/sim/cris/ChangeLog
+++ b/sim/cris/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-06  Alan Modra  <amodra@gmail.com>
+
+	* sim-if.c (sim_open): Constify filename variable.
+
 2018-12-06  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* Makefile.in: Replace uses of CGEN_CPU_DIR with CPU_DIR, and
diff --git a/sim/cris/sim-if.c b/sim/cris/sim-if.c
index 054cce557b..1a5d421caf 100644
--- a/sim/cris/sim-if.c
+++ b/sim/cris/sim-if.c
@@ -746,7 +746,7 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
      specified.  */
   if (abfd != NULL && !cris_bare_iron)
     {
-      char *name = bfd_get_filename (abfd);
+      const char *name = bfd_get_filename (abfd);
       char **my_environ = GET_ENVIRON ();
       /* We use these maps to give the same behavior as the old xsim
 	 simulator.  */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change int to bool for the relocate_* functions
@ 2019-09-06 20:12 gdb-buildbot
  2019-09-06 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-06 20:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ead0e69a4ab34d0c689f0c4c310b8d788867da32 ***

commit ead0e69a4ab34d0c689f0c4c310b8d788867da32
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Fri Sep 6 14:19:40 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Fri Sep 6 14:34:00 2019 -0500

    Change int to bool for the relocate_* functions
    
    These parameters are only used as bools. This also
    renames "flag" to "relocatable" to make it clearer
    what it does.
    
    gdb/ChangeLog:
    
    2019-09-06  Christian Biesinger  <cbiesinger@google.com>
    
            * defs.h (relocate_gdb_directory): Change int to bool in
            signature and rename flag to relocatable.
            * main.c (relocate_path): Likewise.
            (relocate_gdb_directory): Likewise.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 40bd4d0d02..acfc888aac 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-06  Christian Biesinger  <cbiesinger@google.com>
+
+	* defs.h (relocate_gdb_directory): Change int to bool in
+	signature and rename flag to relocatable.
+	* main.c (relocate_path): Likewise.
+	(relocate_gdb_directory): Likewise.
+
 2019-09-06  Alan Modra  <amodra@gmail.com>
 
 	* coffread.c (coff_symfile_read): Constify filename variable.
diff --git a/gdb/defs.h b/gdb/defs.h
index ece3006de4..14e0a3e1d1 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -282,7 +282,7 @@ struct value;
 
 /* This really belong in utils.c (path-utils.c?), but it references some
    globals that are currently only available to main.c.  */
-extern char *relocate_gdb_directory (const char *initial, int flag);
+extern char *relocate_gdb_directory (const char *initial, bool relocatable);
 
 \f
 /* Annotation stuff.  */
diff --git a/gdb/main.c b/gdb/main.c
index 678c413021..129c57c1d1 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -139,14 +139,14 @@ set_gdb_data_directory (const char *new_datadir)
 
 /* Relocate a file or directory.  PROGNAME is the name by which gdb
    was invoked (i.e., argv[0]).  INITIAL is the default value for the
-   file or directory.  FLAG is true if the value is relocatable, false
-   otherwise.  Returns a newly allocated string; this may return NULL
-   under the same conditions as make_relative_prefix.  */
+   file or directory.  RELOCATABLE is true if the value is relocatable,
+   false otherwise.  Returns a newly allocated string; this may return
+   NULL under the same conditions as make_relative_prefix.  */
 
 static char *
-relocate_path (const char *progname, const char *initial, int flag)
+relocate_path (const char *progname, const char *initial, bool relocatable)
 {
-  if (flag)
+  if (relocatable)
     return make_relative_prefix (progname, BINDIR, initial);
   return xstrdup (initial);
 }
@@ -158,11 +158,11 @@ relocate_path (const char *progname, const char *initial, int flag)
    function always returns a newly-allocated string.  */
 
 char *
-relocate_gdb_directory (const char *initial, int flag)
+relocate_gdb_directory (const char *initial, bool relocatable)
 {
   char *dir;
 
-  dir = relocate_path (gdb_program_name, initial, flag);
+  dir = relocate_path (gdb_program_name, initial, relocatable);
   if (dir)
     {
       struct stat s;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] un-XFAIL under Clang tests using labels
@ 2019-09-06 21:56 gdb-buildbot
  2019-09-07  2:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-06 21:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 736b0f76188c7a4d497a5e2255b78af909393afe ***

commit 736b0f76188c7a4d497a5e2255b78af909393afe
Author:     David Blaikie <dblaikie@gmail.com>
AuthorDate: Thu Sep 5 15:01:25 2019 -0700
Commit:     David Blaikie <dblaikie@gmail.com>
CommitDate: Fri Sep 6 14:17:36 2019 -0700

    un-XFAIL under Clang tests using labels
    
    gdb/testsuite/
            * gdb.base/label.exp: un-XFAIL label related tests under Clang.
            * gdb.cp/cplabel.exp: Ditto.
            * gdb.linespec/ls-errs.exp: Ditto.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 0f6917a5a0..a6a645b81b 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-06  David Blaikie  <dblaikie@gmail.com>
+
+	* gdb.base/label.exp: un-XFAIL label related tests under Clang.
+	* gdb.cp/cplabel.exp: Ditto.
+	* gdb.linespec/ls-errs.exp: Ditto.
+
 2019-09-05  Tom de Vries  <tdevries@suse.de>
 
 	* lib/gdb.exp (cmp_file_string): New proc.
diff --git a/gdb/testsuite/gdb.base/label.exp b/gdb/testsuite/gdb.base/label.exp
index bce90cb60e..ec4851970e 100644
--- a/gdb/testsuite/gdb.base/label.exp
+++ b/gdb/testsuite/gdb.base/label.exp
@@ -29,34 +29,24 @@ if {![runto_main]} {
   return -1
 }
 
-set has_pr_14500_fixed 1
-if {[test_compiler_info {clang-*-*}]} {
-  set has_pr_14500_fixed 0
-}
-
-if {!$has_pr_14500_fixed} {  setup_xfail clang/14500 *-*-* }
 gdb_test "break here" \
   "Breakpoint.*at.*" \
   "breakpoint here"
 
-if {!$has_pr_14500_fixed} {  setup_xfail clang/14500 *-*-* }
 gdb_test "break main:there" \
   "Breakpoint.*at.*" \
   "breakpoint there"
 
-if {!$has_pr_14500_fixed} {  setup_xfail clang/14500 *-*-* }
 gdb_test "cont" \
   "Breakpoint 3,.*" \
   "continue to 'there'"
 
-if {!$has_pr_14500_fixed} {  setup_xfail clang/14500 *-*-* }
 gdb_test "cont" \
   "Breakpoint 2,.*" \
   "continue to 'here'"
 
 rerun_to_main
 
-if {!$has_pr_14500_fixed} {  setup_xfail clang/14500 *-*-* }
 gdb_test "cont" \
   "Breakpoint 3,.*" \
   "continue to 'there' after re-run"
diff --git a/gdb/testsuite/gdb.cp/cplabel.exp b/gdb/testsuite/gdb.cp/cplabel.exp
index 26818cb1a2..93febd6925 100644
--- a/gdb/testsuite/gdb.cp/cplabel.exp
+++ b/gdb/testsuite/gdb.cp/cplabel.exp
@@ -34,7 +34,6 @@ set labels {"to_the_top" "get_out_of_here"}
 foreach m $methods {
     foreach l $labels {
 	set line [gdb_get_line_number "$m:$l"]
-	if {[test_compiler_info {clang-*-*}]} { setup_xfail clang/14500 *-*-* }
 	gdb_test "break foo::$m:$l" \
 	    "Breakpoint $decimal at $hex: file .*$srcfile, line $line\."
     }
diff --git a/gdb/testsuite/gdb.linespec/ls-errs.exp b/gdb/testsuite/gdb.linespec/ls-errs.exp
index 92a858ce26..f031c461cb 100644
--- a/gdb/testsuite/gdb.linespec/ls-errs.exp
+++ b/gdb/testsuite/gdb.linespec/ls-errs.exp
@@ -231,9 +231,6 @@ proc do_test {lang} {
 
     foreach x $spaces {
 	test_break "main${x}there" invalid_label "there" "main"
-	if {[test_compiler_info {clang-*-*}]} {
-	    setup_xfail clang/14500 *-*-*
-	}
 	test_break "main:here${x}" unexpected "end of input"
     }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change lookup_symbol's block_index parameter type to block_enum
@ 2019-09-07 16:44 gdb-buildbot
  2019-09-08 20:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-07 16:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c7f839cbf08c397f3ab208054f11cfc1236ee143 ***

commit c7f839cbf08c397f3ab208054f11cfc1236ee143
Author:     Simon Marchi <simon.marchi@efficios.com>
AuthorDate: Sat Sep 7 12:03:56 2019 -0400
Commit:     Simon Marchi <simon.marchi@polymtl.ca>
CommitDate: Sat Sep 7 12:06:01 2019 -0400

    Change lookup_symbol's block_index parameter type to block_enum
    
    The only two values valid to pass to the block_index parameter of
    quick_symbol_functions::lookup_symbol are GLOBAL_BLOCK and STATIC_BLOCK,
    part of enum block_enum.  Change the type of that parameter to
    block_enum.
    
    Change also the block_index field of dw2_symtab_iterator in the same
    way..  This makes it consistent with dw2_debug_names_iterator, which
    already uses block_enum for its block_index field.
    
    This is a follow-up to this thread:
    
    https://sourceware.org/ml/gdb-patches/2019-08/msg00097.html
    
    gdb/ChangeLog:
    
            * dwarf2read.c (struct dw2_symtab_iterator) <block_index>:
            Change type to gdb::optional<block_enum>.
            (dw2_symtab_iter_init): Change block_index parameter type
            to gdb::optional<block_enum>.
            (dw2_lookup_symbol): Change block_index parameter
            type to block_enum.c
            (dw2_debug_names_lookup_symbol): Likewise.
            * psymtab.c (psym_lookup_symbol): Likewise.
            * symfile-debug.c (debug_qf_lookup_symbol): Likewise.
            * symfile.h (struct quick_symbol_functions) <lookup_symbol>:
            Likewise.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index acfc888aac..d5938be9a0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,17 @@
+2019-09-07  Simon Marchi  <simon.marchi@efficios.com>
+
+	* dwarf2read.c (struct dw2_symtab_iterator) <block_index>:
+	Change type to gdb::optional<block_enum>.
+	(dw2_symtab_iter_init): Change block_index parameter type
+	to gdb::optional<block_enum>.
+	(dw2_lookup_symbol): Change block_index parameter
+	type to block_enum.c
+	(dw2_debug_names_lookup_symbol): Likewise.
+	* psymtab.c (psym_lookup_symbol): Likewise.
+	* symfile-debug.c (debug_qf_lookup_symbol): Likewise.
+	* symfile.h (struct quick_symbol_functions) <lookup_symbol>:
+	Likewise.
+
 2019-09-06  Christian Biesinger  <cbiesinger@google.com>
 
 	* defs.h (relocate_gdb_directory): Change int to bool in
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index fb888da7b8..69bb5bdbaa 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -3883,7 +3883,7 @@ struct dw2_symtab_iterator
   struct dwarf2_per_objfile *dwarf2_per_objfile;
   /* If set, only look for symbols that match that block.  Valid values are
      GLOBAL_BLOCK and STATIC_BLOCK.  */
-  gdb::optional<int> block_index;
+  gdb::optional<block_enum> block_index;
   /* The kind of symbol we're looking for.  */
   domain_enum domain;
   /* The list of CUs from the index entry of the symbol,
@@ -3905,7 +3905,7 @@ struct dw2_symtab_iterator
 static void
 dw2_symtab_iter_init (struct dw2_symtab_iterator *iter,
 		      struct dwarf2_per_objfile *dwarf2_per_objfile,
-		      gdb::optional<int> block_index,
+		      gdb::optional<block_enum> block_index,
 		      domain_enum domain,
 		      const char *name)
 {
@@ -4018,7 +4018,7 @@ dw2_symtab_iter_next (struct dw2_symtab_iterator *iter)
 }
 
 static struct compunit_symtab *
-dw2_lookup_symbol (struct objfile *objfile, int block_index,
+dw2_lookup_symbol (struct objfile *objfile, block_enum block_index,
 		   const char *name, domain_enum domain)
 {
   struct compunit_symtab *stab_best = NULL;
@@ -6004,10 +6004,9 @@ dw2_debug_names_iterator::next ()
 }
 
 static struct compunit_symtab *
-dw2_debug_names_lookup_symbol (struct objfile *objfile, int block_index_int,
+dw2_debug_names_lookup_symbol (struct objfile *objfile, block_enum block_index,
 			       const char *name, domain_enum domain)
 {
-  const block_enum block_index = static_cast<block_enum> (block_index_int);
   struct dwarf2_per_objfile *dwarf2_per_objfile
     = get_dwarf2_per_objfile (objfile);
 
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 6f9bf7268f..70d04f8605 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -479,7 +479,7 @@ find_pc_sect_psymbol (struct objfile *objfile,
 
 static struct compunit_symtab *
 psym_lookup_symbol (struct objfile *objfile,
-		    int block_index, const char *name,
+		    block_enum block_index, const char *name,
 		    const domain_enum domain)
 {
   const int psymtab_index = (block_index == GLOBAL_BLOCK ? 1 : 0);
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index 0f9da66e53..c5b565fc51 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -140,8 +140,8 @@ debug_qf_map_symtabs_matching_filename
 }
 
 static struct compunit_symtab *
-debug_qf_lookup_symbol (struct objfile *objfile, int kind, const char *name,
-			domain_enum domain)
+debug_qf_lookup_symbol (struct objfile *objfile, block_enum kind,
+			const char *name, domain_enum domain)
 {
   const struct debug_sym_fns_data *debug_data
     = symfile_debug_objfile_data_key.get (objfile);
diff --git a/gdb/symfile.h b/gdb/symfile.h
index 741b085e0c..5e4d2f5b53 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -179,7 +179,8 @@ struct quick_symbol_functions
      contains !TYPE_OPAQUE symbol prefer its compunit.  If it contains
      only TYPE_OPAQUE symbol(s), return at least that compunit.  */
   struct compunit_symtab *(*lookup_symbol) (struct objfile *objfile,
-					    int block_index, const char *name,
+					    block_enum block_index,
+					    const char *name,
 					    domain_enum domain);
 
   /* Print statistics about any indices loaded for OBJFILE.  The


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Truncate long TUI window titles
@ 2019-09-08 20:44 gdb-buildbot
  2019-09-09  9:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-08 20:44 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8634b4628ea00a95ce3dfe8f9915724e8d710dad ***

commit 8634b4628ea00a95ce3dfe8f9915724e8d710dad
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 15:07:01 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Sun Sep 8 14:06:54 2019 -0600

    Truncate long TUI window titles
    
    If a TUI window has a long title, it can overflow the title line.
    This changes the TUI to use just the tail part of the title in this
    case.
    
    gdb/ChangeLog
    2019-09-08  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-wingeneral.c (box_win): Truncate long window titles.
    
    gdb/testsuite/ChangeLog
    2019-09-08  Tom Tromey  <tom@tromey.com>
    
            * gdb.tui/resize.exp: Remove setup_xfail.
            * gdb.tui/regs.exp: Remove setup_xfail.
            * gdb.tui/basic.exp: Remove setup_xfail.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d5938be9a0..af1608db9a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-08  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-wingeneral.c (box_win): Truncate long window titles.
+
 2019-09-07  Simon Marchi  <simon.marchi@efficios.com>
 
 	* dwarf2read.c (struct dw2_symtab_iterator) <block_index>:
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index a6a645b81b..6cee4787e0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-08  Tom Tromey  <tom@tromey.com>
+
+	* gdb.tui/resize.exp: Remove setup_xfail.
+	* gdb.tui/regs.exp: Remove setup_xfail.
+	* gdb.tui/basic.exp: Remove setup_xfail.
+
 2019-09-06  David Blaikie  <dblaikie@gmail.com>
 
 	* gdb.base/label.exp: un-XFAIL label related tests under Clang.
diff --git a/gdb/testsuite/gdb.tui/basic.exp b/gdb/testsuite/gdb.tui/basic.exp
index f60011c386..716c52f68a 100644
--- a/gdb/testsuite/gdb.tui/basic.exp
+++ b/gdb/testsuite/gdb.tui/basic.exp
@@ -35,9 +35,6 @@ gdb_assert {![string match "No Source Available" $text]} \
 Term::command "list main"
 Term::check_contents "list main" "21 *return 0"
 
-# This check fails because the file name in the title overwrites the
-# box.
-setup_xfail *-*-*
 Term::check_box "source box" 0 0 80 15
 
 Term::command "layout asm"
@@ -48,8 +45,5 @@ Term::check_box "asm box" 0 0 80 15
 Term::command "layout split"
 Term::check_contents "split layout contents" "21 *return 0.*$hex <main>"
 
-# This check fails because the file name in the title overwrites the
-# box.
-setup_xfail *-*-*
 Term::check_box "source box in split layout" 0 0 80 8
 Term::check_box "asm box in split layout" 0 7 80 8
diff --git a/gdb/testsuite/gdb.tui/regs.exp b/gdb/testsuite/gdb.tui/regs.exp
index f17b1db8d4..1af943dd15 100644
--- a/gdb/testsuite/gdb.tui/regs.exp
+++ b/gdb/testsuite/gdb.tui/regs.exp
@@ -38,9 +38,6 @@ Term::check_contents "source at startup" ">|21 *return 0"
 
 Term::command "layout regs"
 Term::check_box "register box" 0 0 80 8
-# This check fails because the file name in the title overwrites the
-# box.
-setup_xfail *-*-*
 Term::check_box "source box in regs layout" 0 7 80 8
 
 set text [Term::get_line 1]
diff --git a/gdb/testsuite/gdb.tui/resize.exp b/gdb/testsuite/gdb.tui/resize.exp
index 8484e03c71..3b885e1198 100644
--- a/gdb/testsuite/gdb.tui/resize.exp
+++ b/gdb/testsuite/gdb.tui/resize.exp
@@ -37,6 +37,4 @@ if {![Term::enter_tui]} {
 Term::check_contents "source at startup" ">|21 *return 0"
 
 Term::resize 40 90
-# Resizing seems to be somewhat broken.
-setup_xfail *-*-*
 Term::check_box "source box after resize" 0 0 90 23
diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
index f900eab013..235c17c5fa 100644
--- a/gdb/tui/tui-wingeneral.c
+++ b/gdb/tui/tui-wingeneral.c
@@ -74,7 +74,21 @@ box_win (struct tui_win_info *win_info,
   box (win, tui_border_vline, tui_border_hline);
 #endif
   if (!win_info->title.empty ())
-    mvwaddstr (win, 0, 3, win_info->title.c_str ());
+    {
+      /* Emit "+-TITLE-+" -- so 2 characters on the right and 2 on
+	 the left.  */
+      int max_len = win_info->width - 2 - 2;
+
+      if (win_info->title.size () <= max_len)
+	mvwaddstr (win, 0, 3, win_info->title.c_str ());
+      else
+	{
+	  std::string truncated
+	    = "..." + win_info->title.substr (win_info->title.size ()
+					      - max_len + 3);
+	  mvwaddstr (win, 0, 3, truncated.c_str ());
+	}
+    }
   wattroff (win, attrs);
 }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add markers for 2.33 branch to NEWS and ChangeLog files.
@ 2019-09-09 10:14 gdb-buildbot
  2019-09-09 22:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-09 10:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 60391a255b720e37ab1efbb7e83bf7dfa270a0fe ***

commit 60391a255b720e37ab1efbb7e83bf7dfa270a0fe
Author:     Phil Blundell <philb@brightsign.biz>
AuthorDate: Mon Sep 9 10:27:03 2019 +0100
Commit:     Phil Blundell <philb@brightsign.biz>
CommitDate: Mon Sep 9 10:27:40 2019 +0100

    Add markers for 2.33 branch to NEWS and ChangeLog files.

diff --git a/ChangeLog b/ChangeLog
index 76c121f680..5d1dfee8dd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created
+
 2019-08-19  Tom Tromey  <tom@tromey.com>
 
 	* configure: Rebuild.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 24f5e33833..aca3c80a2b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2019-09-06  Alan Modra  <amodra@gmail.com>
 
 	* aout-target.h (object_p): Formatting.
diff --git a/binutils/.README-how-to-make-a-release.swp b/binutils/.README-how-to-make-a-release.swp
new file mode 100644
index 0000000000..063e52a5aa
Binary files /dev/null and b/binutils/.README-how-to-make-a-release.swp differ
diff --git a/binutils/BRANCHES b/binutils/BRANCHES
index 63f1e84d26..020b53c274 100644
--- a/binutils/BRANCHES
+++ b/binutils/BRANCHES
@@ -48,6 +48,7 @@ binutils-2_29-branch
 binutils-2_30-branch
 binutils-2_31-branch
 binutils-2_32-branch
+binutils-2_33-branch
 \f
 Copyright (C) 2012-2019 Free Software Foundation, Inc.
 
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 198380eaea..5e8e03d604 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2019-09-06  Alan Modra  <amodra@gmail.com>
 
 	* nm.c (print_object_filename_bsd, print_object_filename_sysv),
diff --git a/binutils/NEWS b/binutils/NEWS
index 349af31c36..e6afc4ba29 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -1,4 +1,7 @@
 -*- text -*-
+
+Changes in 2.33:
+
 * Add --source-comment[=<txt>] option to objdump which if present,
   provides a prefix to source code lines displayed in a disassembly.
 
diff --git a/config/ChangeLog b/config/ChangeLog
index a22d73c8b5..dabbac3b49 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2018-06-24  Nick Clifton  <nickc@redhat.com>
 
 	2.32 branch created.
diff --git a/cpu/ChangeLog b/cpu/ChangeLog
index 66cf2dab1a..375cb19966 100644
--- a/cpu/ChangeLog
+++ b/cpu/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2019-07-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
 
 	* bpf.cpu (h-gpr): when disassembling, use %r0 and %r6 instead of
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog
index 30b167a7ef..3f7e39e6e3 100644
--- a/elfcpp/ChangeLog
+++ b/elfcpp/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2019-08-02  Alan Modra  <amodra@gmail.com>
 
 	* powerpc.h (R_PPC64_TPREL34, R_PPC64_DTPREL34),
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 06b7cfdf5d..9c484d3bc6 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2019-09-05  Alan Modra  <amodra@gmail.com>
 
 	* config/tc-ppc.c (ppc_elf_suffix): Display the relocation
diff --git a/gas/NEWS b/gas/NEWS
index 2d8415f874..478860acaf 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,5 +1,7 @@
 -*- text -*-
 
+Changes in 2.33:
+
 * Add support for the Armv8.1-M Mainline and M-profile Vector Extension (MVE)
   instructions.
 
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 6fe991d80d..77a72e3742 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2019-08-16  Martin Liska  <mliska@suse.cz>
 
 	PR ld/24912
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
index 1acb81aabc..d0aa7f8f1f 100644
--- a/gprof/ChangeLog
+++ b/gprof/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2019-05-20  Nick Clifton  <nickc@redhat.com>
 
 	PR 24569
diff --git a/include/ChangeLog b/include/ChangeLog
index 3055551062..eb500e146e 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2019-08-30  Claudiu Zissulescu <claziss@gmail.com>
 
 	* opcode/arc.h (FASTMATH): Move it from insn_class_t to
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 84a15d6fa3..204310c939 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2019-09-06  Alan Modra  <amodra@gmail.com>
 
 	* emultempl/beos.em (sort_by_file_name): Use appropriate
diff --git a/ld/NEWS b/ld/NEWS
index f66b35a95c..45c48f5c54 100644
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -1,5 +1,7 @@
 -*- text -*-
 
+Changes in 2.33:
+
 * Add command-line option --no-print-map-discarded.
 
 * The Cortex-A53 Erratum 843419 workaround now supports a choice of which
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index 4170762574..e56e2c0b86 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2019-07-18  Nick Alcock  <nick.alcock@oracle.com>
 
 	* ctf-types.c (ctf_type_aname_raw): New.
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 64b6a07ac4..67bc754be5 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Phil Blundell  <pb@pbcl.net>
+
+	binutils 2.33 branch created.
+
 2019-09-03  Nick Clifton  <nickc@redhat.com>
 
 	PR 24961


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix leak detected in python.c initialization code.
@ 2019-09-09 22:31 gdb-buildbot
  2019-09-09 23:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-09 22:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e4df087431f10f6d9079d8f0c78ad0414e814b92 ***

commit e4df087431f10f6d9079d8f0c78ad0414e814b92
Author:     Philippe Waroquiers <philippe.waroquiers@skynet.be>
AuthorDate: Sat Sep 7 20:54:44 2019 +0200
Commit:     Philippe Waroquiers <philippe.waroquiers@skynet.be>
CommitDate: Mon Sep 9 23:50:37 2019 +0200

    Fix leak detected in python.c initialization code.
    
    Valgrind reports the below leak.
    Make the variable progname_copy static, so that Valgrind continues
    to find a pointer to the memory given to Python.
    Note that the comment in do_start_initialization and the Python documentation
    indicates that the progname given to Py_SetProgramName cannot be freed.
    However, in Python 3.7.4, Py_SetProgramName does:
    void
    Py_SetProgramName(const wchar_t *program_name)
    {
        ...
        PyMem_RawFree(_Py_path_config.program_name);
        _Py_path_config.program_name = _PyMem_RawWcsdup(program_name);
    
    So, it looks like 3.7.4 Python duplicates its argument, which explains
    the leak found by Valgrind.
    It looks better to respect the doc and not have GDB freeing the string
    given to Py_SetProgramName, and avoid the leak error by declaring
    the progname_copy static.
    This will work with Python versions that really use this string without
    duplicating it, and avoids a leak report for Python version that duplicates
    it.
    
    ==4023== 200 bytes in 1 blocks are definitely lost in loss record 4,545 of 7,116^M
    ==4023==    at 0x4C29F33: malloc (vg_replace_malloc.c:307)^M
    ==4023==    by 0x446D27: xmalloc (alloc.c:60)^M
    ==4023==    by 0x657C77: do_start_initialization (python.c:1610)^M
    ==4023==    by 0x657C77: _initialize_python() (python.c:1823)^M
    ==4023==    by 0x75FE24: initialize_all_files() (init.c:231)^M
    ==4023==    by 0x708A94: gdb_init(char*) (top.c:2242)^M
    ==4023==    by 0x5E7460: captured_main_1 (main.c:857)^M
    ==4023==    by 0x5E7460: captured_main (main.c:1161)^M
    ==4023==    by 0x5E7460: gdb_main(captured_main_args*) (main.c:1186)^M
    ==4023==    by 0x4122D4: main (gdb.c:32)^M
    
    gdb/ChangeLog
    2019-09-09  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
    
            * python/python.c (do_start_initialization): Make progname_copy static,
            to avoid a leak report.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index af1608db9a..eb6d062812 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-09  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+
+	* python/python.c (do_start_initialization): Make progname_copy static,
+	to avoid a leak report.
+
 2019-09-08  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-wingeneral.c (box_win): Truncate long window titles.
diff --git a/gdb/python/python.c b/gdb/python/python.c
index b309ae91ba..9c49151db3 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -1590,7 +1590,14 @@ do_start_initialization ()
 {
 #ifdef IS_PY3K
   size_t progsize, count;
-  wchar_t *progname_copy;
+  /* Python documentation indicates that the memory given
+     to Py_SetProgramName cannot be freed.  However, it seems that
+     at least Python 3.7.4 Py_SetProgramName takes a copy of the
+     given program_name.  Making progname_copy static and not release
+     the memory avoids a leak report for Python versions that duplicate
+     program_name, and respect the requirement of Py_SetProgramName
+     for Python versions that do not duplicate program_name.  */
+  static wchar_t *progname_copy;
 #endif
 
 #ifdef WITH_PYTHON_PATH


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use ui_out for "info win"
@ 2019-09-09 23:50 gdb-buildbot
  2019-09-10  1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-09 23:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 25a2915e8dba63abef6d7434114f36efeb5c09fe ***

commit 25a2915e8dba63abef6d7434114f36efeb5c09fe
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:53:42 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Mon Sep 9 17:06:22 2019 -0600

    Use ui_out for "info win"
    
    This changes the "info win" command to use ui-out.  This yields
    somewhat nicer table output.
    
    gdb/ChangeLog
    2019-09-09  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-win.c (tui_all_windows_info): Use ui_out.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index eb6d062812..542f37fca0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-win.c (tui_all_windows_info): Use ui_out.
+
 2019-09-09  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
 
 	* python/python.c (do_start_initialization): Make progname_copy static,
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 8d41372cf9..bf84cdac44 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -828,18 +828,26 @@ static void
 tui_all_windows_info (const char *arg, int from_tty)
 {
   struct tui_win_info *win_with_focus = tui_win_with_focus ();
+  struct ui_out *uiout = current_uiout;
+
+  ui_out_emit_table table_emitter (uiout, 3, -1, "tui-windows");
+  uiout->table_header (10, ui_left, "name", "Name");
+  uiout->table_header (5, ui_right, "lines", "Lines");
+  uiout->table_header (10, ui_left, "focus", "Focus");
+  uiout->table_body ();
 
   for (tui_win_info *win_info : all_tui_windows ())
     if (win_info->is_visible ())
       {
+	ui_out_emit_tuple tuple_emitter (uiout, nullptr);
+
+	uiout->field_string ("name", win_info->name ());
+	uiout->field_signed ("lines", win_info->height);
 	if (win_with_focus == win_info)
-	  printf_filtered ("        %s\t(%d lines)  <has focus>\n",
-			   win_info->name (),
-			   win_info->height);
+	  uiout->field_string ("focus", _("(has focus)"));
 	else
-	  printf_filtered ("        %s\t(%d lines)\n",
-			   win_info->name (),
-			   win_info->height);
+	  uiout->field_skip ("focus");
+	uiout->text ("\n");
       }
 }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] DWARF 5 support: Handle dwo_id
@ 2019-09-10  2:15 gdb-buildbot
  2019-09-10 14:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-10  2:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a084a2a6a181c2206be4ba29b21dc0ae441ab4e9 ***

commit a084a2a6a181c2206be4ba29b21dc0ae441ab4e9
Author:     Ali Tamur <tamur@google.com>
AuthorDate: Mon Aug 26 17:53:24 2019 -0700
Commit:     Ali Tamur <tamur@google.com>
CommitDate: Mon Sep 9 18:35:43 2019 -0700

    DWARF 5 support: Handle dwo_id
    
    * DW_UT_skeleton and DW_UT_split_compile compilation units have dwo ids
    to match the compilation unit in the skeleton and .dwo files. The dwo_id is
    in the header.
    
    Tested with CC=/usr/bin/gcc (version 8.3.0) against master branch (also with
    -gsplit-dwarf and -gdwarf-4 flags) and there was no increase in the set of
    tests that fails.
    
    This is part of an effort to support DWARF 5 in gdb.
    
    gdb/ChangeLog:
    
            * dwarf2read.c (comp_unit_head): Update comment.
            (dwarf2_dwo_name): New function declaration.
            (dwarf_unit_type_name): New function declaration.
            (read_comp_unit_head): Add support for new compilation units,
            DW_UT_partial, DW_UT_skeleton, DW_UT_split_compile, DW_UT_split_type.
            Particularly, DW_UT_skeleton and DW_UT_split_compile have dwo_id
            (currently named as "signature") in their header. Also clarify error
            messages.
            (lookup_dwo_id): New function. Returns the dwo id of the given
            compile unit.
            (lookup_dwo_unit): Use the new lookup_dwo_id function.
            (init_cutu_and_read_dies): Use the new dwarf2_dwo_name and lookup_dwo_id
            functions.
            (create_dwo_cu_reader): Use the added lookup_dwo_id function.
            (dwarf2_dwo_name): Get the dwo name if present.
            (dwarf_unit_type_name): Convert DW_UT_* types to string for diagnostic
            purposes.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 542f37fca0..9ad7227e0b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,24 @@
+
+2019-09-09  Ali Tamur  <tamur@google.com>
+
+	* dwarf2read.c (comp_unit_head): Update comment.                     
+	(dwarf2_dwo_name): New function declaration.                             
+	(dwarf_unit_type_name): New function declaration.                        
+	(read_comp_unit_head): Add support for new compilation units,            
+	DW_UT_partial, DW_UT_skeleton, DW_UT_split_compile, DW_UT_split_type.    
+	Particularly, DW_UT_skeleton and DW_UT_split_compile have dwo_id         
+	(currently named as "signature") in their header. Also clarify error     
+	messages.                                                                
+	(lookup_dwo_id): New function. Returns the dwo id of the given           
+	compile unit.                                                            
+	(lookup_dwo_unit): Use the new lookup_dwo_id function.                   
+	(init_cutu_and_read_dies): Use the new dwarf2_dwo_name and lookup_dwo_id 
+	functions.                                                               
+	(create_dwo_cu_reader): Use the added lookup_dwo_id function.            
+	(dwarf2_dwo_name): Get the dwo name if present.                          
+	(dwarf_unit_type_name): Convert DW_UT_* types to string for diagnostic   
+	purposes.
+
 2019-09-09  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-win.c (tui_all_windows_info): Use ui_out.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 69bb5bdbaa..a75941867a 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -373,8 +373,11 @@ struct comp_unit_head
      This will be the first byte following the compilation unit header.  */
   cu_offset first_die_cu_offset;
 
-  /* 64-bit signature of this type unit - it is valid only for
-     UNIT_TYPE DW_UT_type.  */
+
+  /* 64-bit signature of this unit. For type units, it denotes the signature of
+     the type (DW_UT_type in DWARF 4, additionally DW_UT_split_type in DWARF 5).
+     Also used in DWARF 5, to denote the dwo id when the unit type is
+     DW_UT_skeleton or DW_UT_split_compile.  */
   ULONGEST signature;
 
   /* For types, offset in the type's DIE of the type defined by this TU.  */
@@ -1579,6 +1582,8 @@ static struct attribute *dwarf2_attr_no_follow (struct die_info *,
 static const char *dwarf2_string_attr (struct die_info *die, unsigned int name,
                                        struct dwarf2_cu *cu);
 
+static const char *dwarf2_dwo_name (struct die_info *die, struct dwarf2_cu *cu);
+
 static int dwarf2_flag_true_p (struct die_info *die, unsigned name,
                                struct dwarf2_cu *cu);
 
@@ -1761,6 +1766,8 @@ static const char *dwarf_tag_name (unsigned int);
 
 static const char *dwarf_attr_name (unsigned int);
 
+static const char *dwarf_unit_type_name (int unit_type);
+
 static const char *dwarf_form_name (unsigned int);
 
 static const char *dwarf_bool_name (unsigned int);
@@ -6389,18 +6396,28 @@ read_comp_unit_head (struct comp_unit_head *cu_header,
       switch (cu_header->unit_type)
 	{
 	case DW_UT_compile:
+	case DW_UT_partial:
+	case DW_UT_skeleton:
+	case DW_UT_split_compile:
 	  if (section_kind != rcuh_kind::COMPILE)
 	    error (_("Dwarf Error: wrong unit_type in compilation unit header "
-		   "(is DW_UT_compile, should be DW_UT_type) [in module %s]"),
-		   filename);
+		   "(is %s, should be %s) [in module %s]"),
+		   dwarf_unit_type_name (cu_header->unit_type),
+		   dwarf_unit_type_name (DW_UT_type), filename);
 	  break;
 	case DW_UT_type:
+	case DW_UT_split_type:
 	  section_kind = rcuh_kind::TYPE;
 	  break;
 	default:
 	  error (_("Dwarf Error: wrong unit_type in compilation unit header "
-		 "(is %d, should be %d or %d) [in module %s]"),
-		 cu_header->unit_type, DW_UT_compile, DW_UT_type, filename);
+		 "(is %#04x, should be one of: %s, %s, %s, %s or %s) "
+		 "[in module %s]"), cu_header->unit_type,
+		 dwarf_unit_type_name (DW_UT_compile),
+		 dwarf_unit_type_name (DW_UT_skeleton),
+		 dwarf_unit_type_name (DW_UT_split_compile),
+		 dwarf_unit_type_name (DW_UT_type),
+		 dwarf_unit_type_name (DW_UT_split_type), filename);
 	}
 
       cu_header->addr_size = read_1_byte (abfd, info_ptr);
@@ -6421,13 +6438,19 @@ read_comp_unit_head (struct comp_unit_head *cu_header,
 		    _("read_comp_unit_head: dwarf from non elf file"));
   cu_header->signed_addr_p = signed_addr;
 
-  if (section_kind == rcuh_kind::TYPE)
-    {
-      LONGEST type_offset;
+  bool header_has_signature = section_kind == rcuh_kind::TYPE
+    || cu_header->unit_type == DW_UT_skeleton
+    || cu_header->unit_type == DW_UT_split_compile;
 
+  if (header_has_signature)
+    {
       cu_header->signature = read_8_bytes (abfd, info_ptr);
       info_ptr += 8;
+    }
 
+  if (section_kind == rcuh_kind::TYPE)
+    {
+      LONGEST type_offset;
       type_offset = read_offset (abfd, info_ptr, cu_header, &bytes_read);
       info_ptr += bytes_read;
       cu_header->type_cu_offset_in_tu = (cu_offset) type_offset;
@@ -7296,6 +7319,21 @@ read_cutu_die_from_dwo (struct dwarf2_per_cu_data *this_cu,
   return 1;
 }
 
+/* Return the signature of the compile unit, if found. In DWARF 4 and before,
+   the signature is in the DW_AT_GNU_dwo_id attribute. In DWARF 5 and later, the
+   signature is part of the header.  */
+static gdb::optional<ULONGEST>
+lookup_dwo_id (struct dwarf2_cu *cu, struct die_info* comp_unit_die)
+{
+  if (cu->header.version >= 5)
+    return cu->header.signature;
+  struct attribute *attr;
+  attr = dwarf2_attr (comp_unit_die, DW_AT_GNU_dwo_id, cu);
+  if (attr == nullptr)
+    return gdb::optional<ULONGEST> ();
+  return DW_UNSND (attr);
+}
+
 /* Subroutine of init_cutu_and_read_dies to simplify it.
    Look up the DWO unit specified by COMP_UNIT_DIE of THIS_CU.
    Returns NULL if the specified DWO unit cannot be found.  */
@@ -7305,14 +7343,13 @@ lookup_dwo_unit (struct dwarf2_per_cu_data *this_cu,
 		 struct die_info *comp_unit_die)
 {
   struct dwarf2_cu *cu = this_cu->cu;
-  ULONGEST signature;
   struct dwo_unit *dwo_unit;
   const char *comp_dir, *dwo_name;
 
   gdb_assert (cu != NULL);
 
   /* Yeah, we look dwo_name up again, but it simplifies the code.  */
-  dwo_name = dwarf2_string_attr (comp_unit_die, DW_AT_GNU_dwo_name, cu);
+  dwo_name = dwarf2_dwo_name (comp_unit_die, cu);
   comp_dir = dwarf2_string_attr (comp_unit_die, DW_AT_comp_dir, cu);
 
   if (this_cu->is_debug_types)
@@ -7322,21 +7359,17 @@ lookup_dwo_unit (struct dwarf2_per_cu_data *this_cu,
       /* Since this_cu is the first member of struct signatured_type,
 	 we can go from a pointer to one to a pointer to the other.  */
       sig_type = (struct signatured_type *) this_cu;
-      signature = sig_type->signature;
       dwo_unit = lookup_dwo_type_unit (sig_type, dwo_name, comp_dir);
     }
   else
     {
-      struct attribute *attr;
-
-      attr = dwarf2_attr (comp_unit_die, DW_AT_GNU_dwo_id, cu);
-      if (! attr)
+      gdb::optional<ULONGEST> signature = lookup_dwo_id (cu, comp_unit_die);
+      if (!signature.has_value ())
 	error (_("Dwarf Error: missing dwo_id for dwo_name %s"
 		 " [in module %s]"),
 	       dwo_name, objfile_name (this_cu->dwarf2_per_objfile->objfile));
-      signature = DW_UNSND (attr);
       dwo_unit = lookup_dwo_comp_unit (this_cu, dwo_name, comp_dir,
-				       signature);
+				       *signature);
     }
 
   return dwo_unit;
@@ -7448,7 +7481,6 @@ init_cutu_and_read_dies (struct dwarf2_per_cu_data *this_cu,
   struct die_reader_specs reader;
   struct die_info *comp_unit_die;
   int has_children;
-  struct attribute *attr;
   struct signatured_type *sig_type = NULL;
   struct dwarf2_section_info *abbrev_section;
   /* Non-zero if CU currently points to a DWO file and we need to
@@ -7585,9 +7617,9 @@ init_cutu_and_read_dies (struct dwarf2_per_cu_data *this_cu,
 
      Note that if USE_EXISTING_OK != 0, and THIS_CU->cu already contains a
      DWO CU, that this test will fail (the attribute will not be present).  */
-  attr = dwarf2_attr (comp_unit_die, DW_AT_GNU_dwo_name, cu);
+  const char *dwo_name = dwarf2_dwo_name (comp_unit_die, cu);
   abbrev_table_up dwo_abbrev_table;
-  if (attr)
+  if (dwo_name != nullptr)
     {
       struct dwo_unit *dwo_unit;
       struct die_info *dwo_comp_unit_die;
@@ -11838,10 +11870,9 @@ create_dwo_cu_reader (const struct die_reader_specs *reader,
   struct create_dwo_cu_data *data = (struct create_dwo_cu_data *) datap;
   struct dwo_file *dwo_file = data->dwo_file;
   struct dwo_unit *dwo_unit = &data->dwo_unit;
-  struct attribute *attr;
 
-  attr = dwarf2_attr (comp_unit_die, DW_AT_GNU_dwo_id, cu);
-  if (attr == NULL)
+  gdb::optional<ULONGEST> signature = lookup_dwo_id (cu, comp_unit_die);
+  if (!signature.has_value ())
     {
       complaint (_("Dwarf Error: debug entry at offset %s is missing"
 		   " its dwo_id [in module %s]"),
@@ -11850,7 +11881,7 @@ create_dwo_cu_reader (const struct die_reader_specs *reader,
     }
 
   dwo_unit->dwo_file = dwo_file;
-  dwo_unit->signature = DW_UNSND (attr);
+  dwo_unit->signature = *signature;
   dwo_unit->section = section;
   dwo_unit->sect_off = sect_off;
   dwo_unit->length = cu->per_cu->length;
@@ -20112,6 +20143,17 @@ dwarf2_string_attr (struct die_info *die, unsigned int name, struct dwarf2_cu *c
   return str;
 }
 
+/* Return the dwo name or NULL if not present. If present, it is in either
+   DW_AT_GNU_dwo_name or DW_AT_dwo_name atrribute.  */
+static const char *
+dwarf2_dwo_name (struct die_info *die, struct dwarf2_cu *cu)
+{
+  const char *dwo_name = dwarf2_string_attr (die, DW_AT_GNU_dwo_name, cu);
+  if (dwo_name == nullptr)
+    dwo_name = dwarf2_string_attr (die, DW_AT_dwo_name, cu);
+  return dwo_name;
+}
+
 /* Return non-zero iff the attribute NAME is defined for the given DIE,
    and holds a non-zero value.  This function should only be used for
    DW_FORM_flag or DW_FORM_flag_present attributes.  */
@@ -22811,6 +22853,33 @@ dwarf_attr_name (unsigned attr)
   return name;
 }
 
+/* Convert a unit type to corresponding DW_UT name.  */
+
+static const char *
+dwarf_unit_type_name (int unit_type) {
+  switch (unit_type)
+    {
+      case 0x01:
+	return "DW_UT_compile (0x01)";
+      case 0x02:
+	return "DW_UT_type (0x02)";
+      case 0x03:
+	return "DW_UT_partial (0x03)";
+      case 0x04:
+	return "DW_UT_skeleton (0x04)";
+      case 0x05:
+	return "DW_UT_split_compile (0x05)";
+      case 0x06:
+	return "DW_UT_split_type (0x06)";
+      case 0x80:
+	return "DW_UT_lo_user (0x80)";
+      case 0xff:
+	return "DW_UT_hi_user (0xff)";
+      default:
+	return nullptr;
+    }
+}
+
 /* Convert a DWARF value form code into its string name.  */
 
 static const char *


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Enhance the disassembler so that it will reliably determine whether a reloc applies to the middle of the next insn.
@ 2019-09-10 15:02 gdb-buildbot
  2019-09-10 15:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-10 15:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT aebcfb76fc165795e67917cb67cf985c4dfdc577 ***

commit aebcfb76fc165795e67917cb67cf985c4dfdc577
Author:     Nick Clifton <nickc@redhat.com>
AuthorDate: Tue Sep 10 15:20:58 2019 +0100
Commit:     Nick Clifton <nickc@redhat.com>
CommitDate: Tue Sep 10 15:20:58 2019 +0100

    Enhance the disassembler so that it will reliably determine whether a reloc applies to the middle of the next insn.
    
            PR 24907
    binutils* objdump.c (null_print): New function.
            (disassemble_bytes): Delete previous_octets local and replace with
            a test of the max_reloc_offset_into_insn field of the
            bfd_arch_info structure.  If a reloc is a potential match for the
            next insn, then perform a dummy disassembly in order to calculate
            its real length.
    
    bfd     * archures.c (bfd_arch_info_type): Add max_reloc_offset_into_insn
            field.
            (bfd_default_arch_struct): Initialise the new field.
            * bfd-in2.h: Regenerate.
            * cpu-aarch64.c: Initialise the new field.
            * cpu-alpha.c: Likewise.
            * cpu-arc.c: Likewise.
            * cpu-arm.c: Likewise.
            * cpu-avr.c: Likewise.
            * cpu-bfin.c: Likewise.
            * cpu-bpf.c: Likewise.
            * cpu-cr16.c: Likewise.
            * cpu-cr16c.c: Likewise.
            * cpu-cris.c: Likewise.
            * cpu-crx.c: Likewise.
            * cpu-csky.c: Likewise.
            * cpu-d10v.c: Likewise.
            * cpu-d30v.c: Likewise.
            * cpu-dlx.c: Likewise.
            * cpu-epiphany.c: Likewise.
            * cpu-fr30.c: Likewise.
            * cpu-frv.c: Likewise.
            * cpu-ft32.c: Likewise.
            * cpu-h8300.c: Likewise.
            * cpu-hppa.c: Likewise.
            * cpu-i386.c: Likewise.
            * cpu-ia64.c: Likewise.
            * cpu-iamcu.c: Likewise.
            * cpu-ip2k.c: Likewise.
            * cpu-iq2000.c: Likewise.
            * cpu-k1om.c: Likewise.
            * cpu-l1om.c: Likewise.
            * cpu-lm32.c: Likewise.
            * cpu-m10200.c: Likewise.
            * cpu-m10300.c: Likewise.
            * cpu-m32c.c: Likewise.
            * cpu-m32r.c: Likewise.
            * cpu-m68hc11.c: Likewise.
            * cpu-m68hc12.c: Likewise.
            * cpu-m68k.c: Likewise.
            * cpu-m9s12x.c: Likewise.
            * cpu-m9s12xg.c: Likewise.
            * cpu-mcore.c: Likewise.
            * cpu-mep.c: Likewise.
            * cpu-metag.c: Likewise.
            * cpu-microblaze.c: Likewise.
            * cpu-mips.c: Likewise.
            * cpu-mmix.c: Likewise.
            * cpu-moxie.c: Likewise.
            * cpu-msp430.c: Likewise.
            * cpu-mt.c: Likewise.
            * cpu-nds32.c: Likewise.
            * cpu-nfp.c: Likewise.
            * cpu-nios2.c: Likewise.
            * cpu-ns32k.c: Likewise.
            * cpu-or1k.c: Likewise.
            * cpu-pdp11.c: Likewise.
            * cpu-pj.c: Likewise.
            * cpu-plugin.c: Likewise.
            * cpu-powerpc.c: Likewise.
            * cpu-pru.c: Likewise.
            * cpu-riscv.c: Likewise.
            * cpu-rl78.c: Likewise.
            * cpu-rs6000.c: Likewise.
            * cpu-rx.c: Likewise.
            * cpu-s12z.c: Likewise.
            * cpu-s390.c: Likewise.
            * cpu-score.c: Likewise.
            * cpu-sh.c: Likewise.
            * cpu-sparc.c: Likewise.
            * cpu-spu.c: Likewise.
            * cpu-tic30.c: Likewise.
            * cpu-tic4x.c: Likewise.
            * cpu-tic54x.c: Likewise.
            * cpu-tic6x.c: Likewise.
            * cpu-tic80.c: Likewise.
            * cpu-tilegx.c: Likewise.
            * cpu-tilepro.c: Likewise.
            * cpu-v850.c: Likewise.
            * cpu-v850_rh850.c: Likewise.
            * cpu-vax.c: Likewise.
            * cpu-visium.c: Likewise.
            * cpu-wasm32.c: Likewise.
            * cpu-xc16x.c: Likewise.
            * cpu-xgate.c: Likewise.
            * cpu-xstormy16.c: Likewise.
            * cpu-xtensa.c: Likewise.
            * cpu-z80.c: Likewise.
            * cpu-z8k.c: Likewise.
    
    gas     * testsuite/gas/arm/pr24907.s: New test.
            * testsuite/gas/arm/pr24907.d: Expected disassembly.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index aca3c80a2b..8b6b843a6f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,96 @@
+2019-09-10  Nick Clifton  <nickc@redhat.com>
+
+	PR 24907
+	* archures.c (bfd_arch_info_type): Add max_reloc_offset_into_insn
+	field.
+	(bfd_default_arch_struct): Initialise the new field.
+	* bfd-in2.h: Regenerate.
+	* cpu-aarch64.c: Initialise the new field.
+	* cpu-alpha.c: Likewise.
+	* cpu-arc.c: Likewise.
+	* cpu-arm.c: Likewise.
+	* cpu-avr.c: Likewise.
+	* cpu-bfin.c: Likewise.
+	* cpu-bpf.c: Likewise.
+	* cpu-cr16.c: Likewise.
+	* cpu-cr16c.c: Likewise.
+	* cpu-cris.c: Likewise.
+	* cpu-crx.c: Likewise.
+	* cpu-csky.c: Likewise.
+	* cpu-d10v.c: Likewise.
+	* cpu-d30v.c: Likewise.
+	* cpu-dlx.c: Likewise.
+	* cpu-epiphany.c: Likewise.
+	* cpu-fr30.c: Likewise.
+	* cpu-frv.c: Likewise.
+	* cpu-ft32.c: Likewise.
+	* cpu-h8300.c: Likewise.
+	* cpu-hppa.c: Likewise.
+	* cpu-i386.c: Likewise.
+	* cpu-ia64.c: Likewise.
+	* cpu-iamcu.c: Likewise.
+	* cpu-ip2k.c: Likewise.
+	* cpu-iq2000.c: Likewise.
+	* cpu-k1om.c: Likewise.
+	* cpu-l1om.c: Likewise.
+	* cpu-lm32.c: Likewise.
+	* cpu-m10200.c: Likewise.
+	* cpu-m10300.c: Likewise.
+	* cpu-m32c.c: Likewise.
+	* cpu-m32r.c: Likewise.
+	* cpu-m68hc11.c: Likewise.
+	* cpu-m68hc12.c: Likewise.
+	* cpu-m68k.c: Likewise.
+	* cpu-m9s12x.c: Likewise.
+	* cpu-m9s12xg.c: Likewise.
+	* cpu-mcore.c: Likewise.
+	* cpu-mep.c: Likewise.
+	* cpu-metag.c: Likewise.
+	* cpu-microblaze.c: Likewise.
+	* cpu-mips.c: Likewise.
+	* cpu-mmix.c: Likewise.
+	* cpu-moxie.c: Likewise.
+	* cpu-msp430.c: Likewise.
+	* cpu-mt.c: Likewise.
+	* cpu-nds32.c: Likewise.
+	* cpu-nfp.c: Likewise.
+	* cpu-nios2.c: Likewise.
+	* cpu-ns32k.c: Likewise.
+	* cpu-or1k.c: Likewise.
+	* cpu-pdp11.c: Likewise.
+	* cpu-pj.c: Likewise.
+	* cpu-plugin.c: Likewise.
+	* cpu-powerpc.c: Likewise.
+	* cpu-pru.c: Likewise.
+	* cpu-riscv.c: Likewise.
+	* cpu-rl78.c: Likewise.
+	* cpu-rs6000.c: Likewise.
+	* cpu-rx.c: Likewise.
+	* cpu-s12z.c: Likewise.
+	* cpu-s390.c: Likewise.
+	* cpu-score.c: Likewise.
+	* cpu-sh.c: Likewise.
+	* cpu-sparc.c: Likewise.
+	* cpu-spu.c: Likewise.
+	* cpu-tic30.c: Likewise.
+	* cpu-tic4x.c: Likewise.
+	* cpu-tic54x.c: Likewise.
+	* cpu-tic6x.c: Likewise.
+	* cpu-tic80.c: Likewise.
+	* cpu-tilegx.c: Likewise.
+	* cpu-tilepro.c: Likewise.
+	* cpu-v850.c: Likewise.
+	* cpu-v850_rh850.c: Likewise.
+	* cpu-vax.c: Likewise.
+	* cpu-visium.c: Likewise.
+	* cpu-wasm32.c: Likewise.
+	* cpu-xc16x.c: Likewise.
+	* cpu-xgate.c: Likewise.
+	* cpu-xstormy16.c: Likewise.
+	* cpu-xtensa.c: Likewise.
+	* cpu-z80.c: Likewise.
+	* cpu-z8k.c: Likewise.
+
 2019-09-09  Phil Blundell  <pb@pbcl.net>
 
 	binutils 2.33 branch created.
diff --git a/bfd/archures.c b/bfd/archures.c
index 3465406213..02c8e4ec93 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -584,6 +584,16 @@ DESCRIPTION
 .		  bfd_boolean code);
 .
 .  const struct bfd_arch_info *next;
+.
+.  {* On some architectures the offset for a relocation can point into
+.     the middle of an instruction.  This field specifies the maximum
+.     offset such a relocation can have (in octets).  This affects the
+.     behaviour of the disassembler, since a value greater than zero
+.     means that it may need to disassemble an instruction twice, once
+.     to get its length and then a second time to display it.  If the
+.     value is negative then this has to be done for every single
+.     instruction, regardless of the offset of the reloc.  *}
+.  signed int max_reloc_offset_into_insn;
 .}
 .bfd_arch_info_type;
 .
@@ -929,12 +939,13 @@ DESCRIPTION
 .extern const bfd_arch_info_type bfd_default_arch_struct;
 */
 
-const bfd_arch_info_type bfd_default_arch_struct = {
+const bfd_arch_info_type bfd_default_arch_struct =
+{
   32, 32, 8, bfd_arch_unknown, 0, "unknown", "unknown", 2, TRUE,
   bfd_default_compatible,
   bfd_default_scan,
   bfd_arch_default_fill,
-  0,
+  0, 0
 };
 
 /*
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 7b1cfbcf1a..690ba9a6fd 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2514,6 +2514,16 @@ typedef struct bfd_arch_info
                  bfd_boolean code);
 
   const struct bfd_arch_info *next;
+
+  /* On some architectures the offset for a relocation can point into
+     the middle of an instruction.  This field specifies the maximum
+     offset such a relocation can have (in octets).  This affects the
+     behaviour of the disassembler, since a value greater than zero
+     means that it may need to disassemble an instruction twice, once
+     to get its length and then a second time to display it.  If the
+     value is negative then this has to be done for every single
+     instruction, regardless of the offset of the reloc.  */
+  signed int max_reloc_offset_into_insn;
 }
 bfd_arch_info_type;
 
diff --git a/bfd/cpu-aarch64.c b/bfd/cpu-aarch64.c
index eed1c3d9dc..fbffb79b63 100644
--- a/bfd/cpu-aarch64.c
+++ b/bfd/cpu-aarch64.c
@@ -104,7 +104,7 @@ scan (const struct bfd_arch_info *info, const char *string)
 #define N(NUMBER, PRINT, WORDSIZE, DEFAULT, NEXT)		\
   { WORDSIZE, WORDSIZE, 8, bfd_arch_aarch64, NUMBER,		\
     "aarch64", PRINT, 4, DEFAULT, compatible, scan,		\
-    bfd_arch_default_fill, NEXT }
+      bfd_arch_default_fill, NEXT, 0 }
 
 static const bfd_arch_info_type bfd_aarch64_arch_ilp32 =
   N (bfd_mach_aarch64_ilp32, "aarch64:ilp32", 32, FALSE, NULL);
diff --git a/bfd/cpu-alpha.c b/bfd/cpu-alpha.c
index 06ce01dd41..c4221d86bc 100644
--- a/bfd/cpu-alpha.c
+++ b/bfd/cpu-alpha.c
@@ -24,19 +24,20 @@
 
 #define N(BITS_WORD, BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT) \
   {							\
-    BITS_WORD, /* bits in a word */			\
-    BITS_ADDR, /* bits in an address */			\
-    8,	/* 8 bits in a byte */				\
+    BITS_WORD, /* Bits in a word.  */			\
+    BITS_ADDR, /* Bits in an address.  */		\
+    8,	       /* Bits in a byte.  */			\
     bfd_arch_alpha,					\
     NUMBER,						\
     "alpha",						\
     PRINT,						\
-    3,							\
+    3,		/* Section alignment power. */		\
     DEFAULT,						\
     bfd_default_compatible,				\
     bfd_default_scan,					\
     bfd_arch_default_fill,				\
     NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
   }
 
 #define NN(index) (&arch_info_struct[index])
diff --git a/bfd/cpu-arc.c b/bfd/cpu-arc.c
index e6f102b4e7..906ca1d874 100644
--- a/bfd/cpu-arc.c
+++ b/bfd/cpu-arc.c
@@ -27,20 +27,21 @@ static const bfd_arch_info_type *
 arc_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
 
 #define ARC(mach, print_name, default_p, next) \
-{					\
-    32,	/* 32 bits in a word  */	\
-    32,	/* 32 bits in an address  */	\
-    8,	/* 8 bits in a byte  */		\
+  {					       \
+    32,	/* Bits in a word.  */		\
+    32,	/* Bits in an address.  */	\
+    8,	/* Bits in a byte.  */		\
     bfd_arch_arc,			\
     mach,				\
     "arc",				\
     print_name,				\
-    4, /* section alignment power  */	\
+    4, /* Section alignment power.  */	\
     default_p,				\
     arc_compatible,			\
     bfd_default_scan,			\
     bfd_arch_default_fill,		\
     next,				\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
   }
 
 static const bfd_arch_info_type arch_info_struct[] =
diff --git a/bfd/cpu-arm.c b/bfd/cpu-arm.c
index 8d70b84b8b..71a78daf11 100644
--- a/bfd/cpu-arm.c
+++ b/bfd/cpu-arm.c
@@ -221,7 +221,7 @@ scan (const struct bfd_arch_info *info, const char *string)
 
 #define N(number, print, default, next)  \
 {  32, 32, 8, bfd_arch_arm, number, "arm", print, 4, default, compatible, \
-   scan, bfd_arch_default_fill, next }
+    scan, bfd_arch_default_fill, next, 0 }
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
diff --git a/bfd/cpu-avr.c b/bfd/cpu-avr.c
index a8b341ead8..621c48bba9 100644
--- a/bfd/cpu-avr.c
+++ b/bfd/cpu-avr.c
@@ -82,9 +82,9 @@ compatible (const bfd_arch_info_type * a,
 
 #define N(addr_bits, machine, print, default, next)		\
 {								\
-  8,				/* 8 bits in a word.  */	\
-  addr_bits,			/* bits in an address.  */	\
-  8,				/* 8 bits in a byte.  */	\
+  8,				/* Bits in a word.  */		\
+  addr_bits,			/* Bits in an address.  */	\
+  8,				/* Bits in a byte.  */		\
   bfd_arch_avr,							\
   machine,			/* Machine number.  */		\
   "avr",			/* Architecture name.   */	\
@@ -94,7 +94,8 @@ compatible (const bfd_arch_info_type * a,
   compatible,							\
   bfd_default_scan,						\
   bfd_arch_default_fill,					\
-  next								\
+  next,								\
+  0 /* Maximum offset of a reloc from the start of an insn.  */	\
 }
 
 static const bfd_arch_info_type arch_info_struct[] =
diff --git a/bfd/cpu-bfin.c b/bfd/cpu-bfin.c
index 51b170ac78..03f388e9b0 100644
--- a/bfd/cpu-bfin.c
+++ b/bfd/cpu-bfin.c
@@ -37,5 +37,6 @@ const bfd_arch_info_type bfd_bfin_arch =
     bfd_default_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
-    0,
+    NULL,
+    0 /* Maximum offset of a reloc from the start of an insn.  */
   };
diff --git a/bfd/cpu-bpf.c b/bfd/cpu-bpf.c
index 57fe7d7502..4d92ca4e4f 100644
--- a/bfd/cpu-bpf.c
+++ b/bfd/cpu-bpf.c
@@ -25,7 +25,7 @@
 
 const bfd_arch_info_type bfd_bpf_arch =
 {
-  64,				/* Bits per word */
+  64,				/* Bits per word.  */
   64,				/* Bits per address.  */
   8,				/* Bits per byte.  */
   bfd_arch_bpf,			/* Architecture.  */
@@ -37,5 +37,6 @@ const bfd_arch_info_type bfd_bpf_arch =
   bfd_default_compatible,	/* Architecture comparison fn.  */
   bfd_default_scan,		/* String to architecture convert fn.  */
   bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* Next in list.  */
+  NULL,				/* Next in list.  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-cr16.c b/bfd/cpu-cr16.c
index 04db29efb6..bd3bfb32b6 100644
--- a/bfd/cpu-cr16.c
+++ b/bfd/cpu-cr16.c
@@ -24,18 +24,19 @@
 
 
 const bfd_arch_info_type bfd_cr16_arch =
-  {
-    16,		      /* 16 bits in a word.  */
-    32,		      /* 32 bits in an address.  */
-    8,		      /*  8 bits in a byte.  */
-    bfd_arch_cr16,    /* enum bfd_architecture arch.  */
-    bfd_mach_cr16,
-    "cr16",	      /* Arch name.  */
-    "cr16",	      /* Printable name.  */
-    1,		      /* Unsigned int section alignment power.  */
-    TRUE,	      /* The one and only.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+{
+ 16,		      /* Bits in a word.  */
+ 32,		      /* Bits in an address.  */
+ 8,		      /* Bits in a byte.  */
+ bfd_arch_cr16,       /* Architecture number.  */
+ bfd_mach_cr16,
+ "cr16",	      /* Arch name.  */
+ "cr16",	      /* Printable name.  */
+ 1,		      /* Section alignment power.  */
+ TRUE,	      	      /* The one and only.  */
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn.  */
+};
diff --git a/bfd/cpu-cr16c.c b/bfd/cpu-cr16c.c
index b963b26579..ed4a818971 100644
--- a/bfd/cpu-cr16c.c
+++ b/bfd/cpu-cr16c.c
@@ -23,18 +23,19 @@
 #include "libbfd.h"
 
 const bfd_arch_info_type bfd_cr16c_arch =
-  {
-    16,		/* 16 bits in a word.  */
-    32,		/* 32 bits in an address.  */
-    8,		/*  8 bits in a byte.  */
-    bfd_arch_cr16c,
-    bfd_mach_cr16c,
-    "cr16c",
-    "cr16c",
-    1,
-    TRUE,	/* The one and only.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+{
+  16,		/* Bits in a word.  */
+  32,		/* Bits in an address.  */
+  8,		/* Bits in a byte.  */
+  bfd_arch_cr16c,
+  bfd_mach_cr16c,
+  "cr16c",
+  "cr16c",
+  1,
+  TRUE,		/* The one and only.  */
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
+};
diff --git a/bfd/cpu-cris.c b/bfd/cpu-cris.c
index c3e404181e..c6b819f240 100644
--- a/bfd/cpu-cris.c
+++ b/bfd/cpu-cris.c
@@ -67,7 +67,7 @@ get_compatible (const bfd_arch_info_type *a,
 
 #define N(NUMBER, PRINT, NEXT)  \
  { 32, 32, 8, bfd_arch_cris, NUMBER, "cris", PRINT, 1, FALSE, \
-   get_compatible, bfd_default_scan, bfd_arch_default_fill, NEXT }
+     get_compatible, bfd_default_scan, bfd_arch_default_fill, NEXT, 0 }
 
 static const bfd_arch_info_type bfd_cris_arch_compat_v10_v32 =
  N (bfd_mach_cris_v10_v32, "cris:common_v10_v32", NULL);
@@ -97,8 +97,9 @@ const bfd_arch_info_type bfd_cris_arch =
   bfd_default_scan,		/* Check if a bfd_arch_info_type is a
 				   match.  */
   bfd_arch_default_fill,	/* Default fill.  */
-  &bfd_cris_arch_v32		/* Pointer to next bfd_arch_info_type in
+  &bfd_cris_arch_v32,		/* Pointer to next bfd_arch_info_type in
 				   the same family.  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
 
 /*
diff --git a/bfd/cpu-crx.c b/bfd/cpu-crx.c
index cc8420fd4b..d181edb56b 100644
--- a/bfd/cpu-crx.c
+++ b/bfd/cpu-crx.c
@@ -24,18 +24,19 @@
 
 
 const bfd_arch_info_type bfd_crx_arch =
-  {
-    16,		/* 16 bits in a word.  */
-    32,		/* 32 bits in an address.  */
-    8,		/*  8 bits in a byte.  */
-    bfd_arch_crx, /* enum bfd_architecture arch.  */
-    bfd_mach_crx,
-    "crx",	/* Arch name.  */
-    "crx",	/* Printable name.  */
-    1,		/* Unsigned int section alignment power.  */
-    TRUE,	/* The one and only.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+{
+  16,		/* Bits in a word.  */
+  32,		/* Bits in an address.  */
+  8,		/* Bits in a byte.  */
+  bfd_arch_crx, /* Architecture number.  */
+  bfd_mach_crx,
+  "crx",	/* Arch name.  */
+  "crx",	/* Printable name.  */
+  1,		/* Section alignment power.  */
+  TRUE,		/* The one and only.  */
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
+};
diff --git a/bfd/cpu-csky.c b/bfd/cpu-csky.c
index 1bde70e035..463dce564f 100644
--- a/bfd/cpu-csky.c
+++ b/bfd/cpu-csky.c
@@ -23,21 +23,22 @@
 #include "bfd.h"
 #include "libbfd.h"
 
-#define N(NUMBER, PRINT, ISDEFAULT, NEXT)  \
-{                                                                      \
-  32,                     /* 32 bits in a word */                      \
-  32,                     /* 32 bits in an address */                  \
-  8,                      /* 8 bits in a byte */                       \
-  bfd_arch_csky,          /* Architecture */                           \
-  NUMBER,                 /* Machine number */                         \
-  "csky",                 /* Architecture name */                      \
-  PRINT,                  /* Printable name */                         \
-  3,                      /* Section align power */                    \
-  ISDEFAULT,              /* Is this the default architecture ? */     \
-  bfd_default_compatible, /* Architecture comparison function */       \
-  bfd_default_scan,       /* String to architecture conversion */      \
-  bfd_arch_default_fill,                                               \
-  NEXT                    /* Next in list */                           \
+#define N(NUMBER, PRINT, ISDEFAULT, NEXT)			        \
+{                                                                       \
+  32,                     /* Bits in a word.  */                        \
+  32,                     /* Bits in an address.  */                    \
+  8,                      /* Bits in a byte.  */                        \
+  bfd_arch_csky,          /* Architecture.  */                          \
+  NUMBER,                 /* Machine number.  */                        \
+  "csky",                 /* Architecture name.  */                     \
+  PRINT,                  /* Printable name.  */                        \
+  3,                      /* Section align power.  */                   \
+  ISDEFAULT,              /* Is this the default architecture ?  */	\
+  bfd_default_compatible, /* Architecture comparison function.  */	\
+  bfd_default_scan,       /* String to architecture conversion.  */	\
+  bfd_arch_default_fill,						\
+  NEXT,                   /* Next in list.  */				\
+  0 /* Maximum offset of a reloc from the start of an insn.  */		\
 }
 
 static const bfd_arch_info_type arch_info_struct[] =
diff --git a/bfd/cpu-d10v.c b/bfd/cpu-d10v.c
index b6ebe495a6..f78fe88435 100644
--- a/bfd/cpu-d10v.c
+++ b/bfd/cpu-d10v.c
@@ -23,53 +23,29 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+#define N(NUMBER, PRINT, DEFAULT, NEXT)			\
+  {							\
+    16,         /* Bits in a word.  */			\
+    18,         /* Bits in an address.  */		\
+    8,	        /* Bits in a byte.  */			\
+    bfd_arch_d10v,					\
+    NUMBER,						\
+    "d10v",						\
+    PRINT,						\
+    4,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
 static const bfd_arch_info_type d10v_ts3_info =
-{
-  16,	/* 16 bits in a word.  */
-  18,	/* really 16 bits in an address, but code has 18 bit range.  */
-  8,	/* 8 bits in a byte.  */
-  bfd_arch_d10v,
-  bfd_mach_d10v_ts3,
-  "d10v",
-  "d10v:ts3",
-  4,	/* Section alignment power.  */
-  FALSE,
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_default_fill,
-  0,
-};
+  N (bfd_mach_d10v_ts3, "d10v:ts3", FALSE, NULL);
 
 static const bfd_arch_info_type d10v_ts2_info =
-{
-  16,
-  18,
-  8,
-  bfd_arch_d10v,
-  bfd_mach_d10v_ts2,
-  "d10v",
-  "d10v:ts2",
-  4,
-  FALSE,
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_default_fill,
-  & d10v_ts3_info,
-};
+  N (bfd_mach_d10v_ts2, "d10v:ts2", FALSE, & d10v_ts3_info);
 
 const bfd_arch_info_type bfd_d10v_arch =
-{
-  16,
-  18,
-  8,
-  bfd_arch_d10v,
-  bfd_mach_d10v,
-  "d10v",
-  "d10v",
-  4,
-  TRUE,
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_default_fill,
-  & d10v_ts2_info,
-};
+  N (bfd_mach_d10v, "d10v", TRUE, & d10v_ts2_info);
diff --git a/bfd/cpu-d30v.c b/bfd/cpu-d30v.c
index 1e5f553c88..f987f1c4bf 100644
--- a/bfd/cpu-d30v.c
+++ b/bfd/cpu-d30v.c
@@ -25,17 +25,18 @@
 
 const bfd_arch_info_type bfd_d30v_arch =
 {
-    32,	/* Bits in a word.  */
-    32,	/* Bits in an address.  */
-    8,	/* Bits in a byte.  */
-    bfd_arch_d30v,
-    0,
-    "d30v",
-    "d30v",
-    4, /* Section alignment power.  */
-    TRUE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
+  32,	/* Bits in a word.  */
+  32,	/* Bits in an address.  */
+  8,	/* Bits in a byte.  */
+  bfd_arch_d30v,
+  0,
+  "d30v",
+  "d30v",
+  4, /* Section alignment power.  */
+  TRUE,
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-dlx.c b/bfd/cpu-dlx.c
index 3d3dd17ba7..445515c437 100644
--- a/bfd/cpu-dlx.c
+++ b/bfd/cpu-dlx.c
@@ -24,18 +24,19 @@
 #include "libbfd.h"
 
 const bfd_arch_info_type bfd_dlx_arch =
-  {
-    32,	/* 32 bits in a word.  */
-    32,	/* 32 bits in an address.  */
-    8,	/* 8 bits in a byte.  */
-    bfd_arch_dlx,
-    0,	/* Only 1 machine.  */
-    "dlx",
-    "dlx",
-    4,
-    TRUE, /* The one and only.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
+{
+  32,	/* Bits in a word.  */
+  32,	/* Bits in an address.  */
+  8,	/* Bits in a byte.  */
+  bfd_arch_dlx,
+  0,	/* Machine number.  */
+  "dlx",
+  "dlx",
+  4,
+  TRUE, /* The one and only.  */
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-epiphany.c b/bfd/cpu-epiphany.c
index 453337e69d..dace97483d 100644
--- a/bfd/cpu-epiphany.c
+++ b/bfd/cpu-epiphany.c
@@ -23,36 +23,27 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+#define N(NUMBER, PRINT, ALIGN, DEFAULT, NEXT)		\
+  {							\
+    32,         /* Bits in a word.  */			\
+    32,         /* Bits in an address.  */		\
+    8,	        /* Bits in a byte.  */			\
+    bfd_arch_epiphany,					\
+    NUMBER,						\
+    "epiphany",						\
+    PRINT,						\
+    ALIGN,	/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
 const bfd_arch_info_type bfd_epiphany16_arch =
-{
-  32,				/* Bits per word */
-  32,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_epiphany,		/* Architecture.  */
-  bfd_mach_epiphany16,		/* Machine.  */
-  "epiphany",			/* Architecture name.  */
-  "epiphany16",			/* Machine name.  */
-  1,				/* Section align power.  */
-  FALSE,			/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  bfd_default_scan,		/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* Next in list.  */
-};
+  N (bfd_mach_epiphany16, "epiphany16", 1, FALSE, NULL);
 
 const bfd_arch_info_type bfd_epiphany_arch =
-{
-  32,				/* Bits per word - not really true.  */
-  32,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_epiphany,		/* Architecture.  */
-  bfd_mach_epiphany32,		/* Machine.  */
-  "epiphany",			/* Architecture name.  */
-  "epiphany32",			/* Machine name.  */
-  2,				/* Section align power.  */
-  TRUE,				/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  bfd_default_scan,		/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  & bfd_epiphany16_arch	/* Next in list.  */
-};
+  N (bfd_mach_epiphany32, "epiphany32", 2, TRUE, & bfd_epiphany16_arch);
+
diff --git a/bfd/cpu-fr30.c b/bfd/cpu-fr30.c
index 8d4b5a01f0..28b7460d5d 100644
--- a/bfd/cpu-fr30.c
+++ b/bfd/cpu-fr30.c
@@ -24,17 +24,18 @@
 
 const bfd_arch_info_type bfd_fr30_arch =
 {
-  32,				/* bits per word */
-  32,				/* bits per address */
-  8,				/* bits per byte */
-  bfd_arch_fr30,		/* architecture */
-  bfd_mach_fr30,		/* machine */
-  "fr30",			/* architecture name */
-  "fr30",			/* printable name */
-  4,				/* section align power */
-  TRUE,				/* the default ? */
-  bfd_default_compatible,	/* architecture comparison fn */
-  bfd_default_scan,		/* string to architecture convert fn */
+  32,				/* Bits per word.  */
+  32,				/* Bits per address.  */
+  8,				/* Bits per byte.  */
+  bfd_arch_fr30,		/* Architecture.  */
+  bfd_mach_fr30,		/* Machine.  */
+  "fr30",			/* Architecture name.  */
+  "fr30",			/* Printable name.  */
+  4,				/* Section align power.  */
+  TRUE,				/* The default ?  */
+  bfd_default_compatible,	/* Architecture comparison fn.  */
+  bfd_default_scan,		/* String to architecture convert fn.  */
   bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* next in list */
+  NULL,				/* Next in list.  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-frv.c b/bfd/cpu-frv.c
index e4a15345f1..622258f0b9 100644
--- a/bfd/cpu-frv.c
+++ b/bfd/cpu-frv.c
@@ -24,19 +24,20 @@
 
 #define FRV_ARCH(MACHINE, NAME, DEFAULT, NEXT)				\
 {									\
-  32,				/* 32 bits in a word */			\
-  32,				/* 32 bits in an address */		\
-  8,				/* 8 bits in a byte */			\
-  bfd_arch_frv,			/* architecture */			\
-  MACHINE,			/* which machine */			\
-  "frv",			/* architecture name */			\
-  NAME,				/* machine name */			\
-  4,				/* default alignment */			\
-  DEFAULT,			/* is this the default? */		\
-  bfd_default_compatible,	/* architecture comparison fn */	\
-  bfd_default_scan,		/* string to architecture convert fn */	\
+  32,				/* Bits in a word.  */			\
+  32,				/* Bits in an address.  */		\
+  8,				/* Bits in a byte.  */			\
+  bfd_arch_frv,			/* Architecture number.  */		\
+  MACHINE,			/* Machine number.  */			\
+  "frv",			/* Architecture name.  */		\
+  NAME,				/* Machine name.  */			\
+  4,				/* Section alignment.  */		\
+  DEFAULT,			/* Is this the default?  */		\
+  bfd_default_compatible,	/* Architecture comparison fn.  */	\
+  bfd_default_scan,		/* String to architecture convert fn. */\
   bfd_arch_default_fill,	/* Default fill.  */			\
-  NEXT				/* next in list */			\
+  NEXT,				/* Next in list.  */			\
+  0 /* Maximum offset of a reloc from the start of an insn.  */		\
 }
 
 static const bfd_arch_info_type arch_info_300
diff --git a/bfd/cpu-ft32.c b/bfd/cpu-ft32.c
index 5b51b7abf2..3c33e3fdf0 100644
--- a/bfd/cpu-ft32.c
+++ b/bfd/cpu-ft32.c
@@ -22,54 +22,31 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+#define N(NUMBER, PRINT, DEFAULT, NEXT)			\
+  {							\
+    32,        /* Bits in a word.  */			\
+    32,        /* Bits in an address.  */		\
+    8,	       /* Bits in a byte.  */			\
+    bfd_arch_ft32,					\
+    NUMBER,						\
+    "ft32",						\
+    PRINT,						\
+    2,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
 
 static const bfd_arch_info_type arch_info_struct[] =
-  {
-    {
-      32,		/* 32 bits in a word.  */
-      32,		/* 32 bits in an address.  */
-      8,		/*  8 bits in a byte.  */
-      bfd_arch_ft32,	/* enum bfd_architecture arch.  */
-      bfd_mach_ft32,
-      "ft32",		/* Arch name.  */
-      "ft32",		/* Printable name.  */
-      2,		/* Unsigned int section alignment power.  */
-      FALSE,		/* The one and only.  */
-      bfd_default_compatible,
-      bfd_default_scan,
-      bfd_arch_default_fill,
-      &arch_info_struct[1],
-    },
-    {
-      32,		/* 32 bits in a word.  */
-      32,		/* 32 bits in an address.  */
-      8,		/*  8 bits in a byte.  */
-      bfd_arch_ft32,	/* enum bfd_architecture arch.  */
-      bfd_mach_ft32b,
-      "ft32b",		/* Arch name.  */
-      "ft32b",		/* Printable name.  */
-      2,		/* Unsigned int section alignment power.  */
-      FALSE,		/* The one and only.  */
-      bfd_default_compatible,
-      bfd_default_scan,
-      bfd_arch_default_fill,
-      0,
-    },
-  };
+{
+  N (bfd_mach_ft32, "ft32", FALSE, &arch_info_struct[1]),
+  N (bfd_mach_ft32b, "ft32b", FALSE, NULL)
+};
 
 const bfd_arch_info_type bfd_ft32_arch =
-  {
-    32,			/* 32 bits in a word.  */
-    32,			/* 32 bits in an address.  */
-    8,			/*  8 bits in a byte.  */
-    bfd_arch_ft32,	/* enum bfd_architecture arch.  */
-    bfd_mach_ft32,
-    "ft32",		/* Arch name.  */
-    "ft32",		/* Printable name.  */
-    2,			/* Unsigned int section alignment power.  */
-    TRUE,		/* The one and only.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    arch_info_struct,
-  };
+  N (bfd_mach_ft32, "ft32", TRUE, arch_info_struct);
+
diff --git a/bfd/cpu-h8300.c b/bfd/cpu-h8300.c
index 6c4019e472..53dd4ec52b 100644
--- a/bfd/cpu-h8300.c
+++ b/bfd/cpu-h8300.c
@@ -113,124 +113,30 @@ compatible (const bfd_arch_info_type *in, const bfd_arch_info_type *out)
     return in;
 }
 
+#define N(word, addr, number, name, print, default, next)	  \
+  { word, addr, 8, bfd_arch_h8300, number, name, print, 1, default, \
+    compatible, h8300_scan, bfd_arch_default_fill, next, 0 }
+
 static const bfd_arch_info_type h8300sxn_info_struct =
-{
-  32,				/* 32 bits in a word */
-  16,				/* 16 bits in an address */
-  8,				/* 8 bits in a byte */
-  bfd_arch_h8300,
-  bfd_mach_h8300sxn,
-  "h8300sxn",			/* arch_name  */
-  "h8300sxn",			/* printable name */
-  1,
-  FALSE,			/* the default machine */
-  compatible,
-  h8300_scan,
-  bfd_arch_default_fill,
-  0
-};
+  N (32, 16, bfd_mach_h8300sxn, "h8300sxn", "h8300sxn", FALSE, NULL);
 
 static const bfd_arch_info_type h8300sx_info_struct =
-{
-  32,				/* 32 bits in a word */
-  32,				/* 32 bits in an address */
-  8,				/* 8 bits in a byte */
-  bfd_arch_h8300,
-  bfd_mach_h8300sx,
-  "h8300sx",			/* arch_name  */
-  "h8300sx",			/* printable name */
-  1,
-  FALSE,			/* the default machine */
-  compatible,
-  h8300_scan,
-  bfd_arch_default_fill,
-  &h8300sxn_info_struct
-};
+  N (32, 32, bfd_mach_h8300sx, "h8300sx", "h8300sx", FALSE, &h8300sxn_info_struct);
 
 static const bfd_arch_info_type h8300sn_info_struct =
-{
-  32,				/* 32 bits in a word.  */
-  16,				/* 16 bits in an address.  */
-  8,				/* 8 bits in a byte.  */
-  bfd_arch_h8300,
-  bfd_mach_h8300sn,
-  "h8300sn",			/* Architecture name.  */
-  "h8300sn",			/* Printable name.  */
-  1,
-  FALSE,			/* The default machine.  */
-  compatible,
-  h8300_scan,
-  bfd_arch_default_fill,
-  &h8300sx_info_struct
-};
+  N (32, 16, bfd_mach_h8300sn, "h8300sn", "h8300sn", FALSE, &h8300sx_info_struct);
 
 static const bfd_arch_info_type h8300hn_info_struct =
-{
-  32,				/* 32 bits in a word.  */
-  16,				/* 16 bits in an address.  */
-  8,				/* 8 bits in a byte.  */
-  bfd_arch_h8300,
-  bfd_mach_h8300hn,
-  "h8300hn",			/* Architecture name.  */
-  "h8300hn",			/* Printable name.  */
-  1,
-  FALSE,			/* The default machine.  */
-  compatible,
-  h8300_scan,
-  bfd_arch_default_fill,
-  &h8300sn_info_struct
-};
+  N (32, 16, bfd_mach_h8300hn, "h8300hn", "h8300hn", FALSE, &h8300sn_info_struct);
 
 static const bfd_arch_info_type h8300s_info_struct =
-{
-  32,				/* 32 bits in a word.  */
-  32,				/* 32 bits in an address.  */
-  8,				/* 8 bits in a byte.  */
-  bfd_arch_h8300,
-  bfd_mach_h8300s,
-  "h8300s",			/* Architecture name.  */
-  "h8300s",			/* Printable name.  */
-  1,
-  FALSE,			/* The default machine.  */
-  compatible,
-  h8300_scan,
-  bfd_arch_default_fill,
-  & h8300hn_info_struct
-};
+  N (32, 32, bfd_mach_h8300s, "h8300s", "h8300s", FALSE, & h8300hn_info_struct);
 
 static const bfd_arch_info_type h8300h_info_struct =
-{
-  32,				/* 32 bits in a word.  */
-  32,				/* 32 bits in an address.  */
-  8,				/* 8 bits in a byte.  */
-  bfd_arch_h8300,
-  bfd_mach_h8300h,
-  "h8300h",			/* Architecture name.  */
-  "h8300h",			/* Printable name.  */
-  1,
-  FALSE,			/* The default machine.  */
-  compatible,
-  h8300_scan,
-  bfd_arch_default_fill,
-  &h8300s_info_struct
-};
+  N (32, 32, bfd_mach_h8300h, "h8300h", "h8300h", FALSE, &h8300s_info_struct);
 
 const bfd_arch_info_type bfd_h8300_arch =
-{
-  16,				/* 16 bits in a word.  */
-  16,				/* 16 bits in an address.  */
-  8,				/* 8 bits in a byte.  */
-  bfd_arch_h8300,
-  bfd_mach_h8300,
-  "h8300",			/* Architecture name.  */
-  "h8300",			/* Printable name.  */
-  1,
-  TRUE,				/* The default machine.  */
-  compatible,
-  h8300_scan,
-  bfd_arch_default_fill,
-  &h8300h_info_struct
-};
+  N (16, 16, bfd_mach_h8300, "h8300", "h8300", TRUE, &h8300h_info_struct);
 
 /* Pad the given address to 32 bits, converting 16-bit and 24-bit
    addresses into the values they would have had on a h8s target.  */
diff --git a/bfd/cpu-hppa.c b/bfd/cpu-hppa.c
index e144c11152..2bcc0312da 100644
--- a/bfd/cpu-hppa.c
+++ b/bfd/cpu-hppa.c
@@ -22,72 +22,35 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+#define N(BITS, NUMBER, PRINT, DEFAULT, NEXT) \
+  {							\
+    BITS,      /* Bits in a word.  */			\
+    BITS,      /* Bits in an address.  */		\
+    8,	       /* Bits in a byte.  */			\
+    bfd_arch_hppa,					\
+    NUMBER,						\
+    "hppa",						\
+    PRINT,						\
+    3,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
+
 static const bfd_arch_info_type bfd_hppa10_arch =
-{
-  32,				/* 32 bits in a word */
-  32,				/* 32 bits in an address */
-  8,				/* 8 bits in a byte */
-  bfd_arch_hppa,
-  bfd_mach_hppa10,		/* By convention PA1.0 = 10 */
-  "hppa",
-  "hppa1.0",
-  3,
-  TRUE,				/* Unless we use 1.1 specific features */
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_default_fill,
-  0,
-};
+  N (32, bfd_mach_hppa10, "hppa1.0", TRUE, NULL);
 
-/* PA2.0 in narrow mode */
+/* PA2.0 in narrow mode.  */
 static const bfd_arch_info_type bfd_hppa20_arch =
-{
-  32,				/* 32 bits in a word */
-  32,				/* 32 bits in an address */
-  8,				/* 8 bits in a byte */
-  bfd_arch_hppa,
-  bfd_mach_hppa20,		/* By convention PA2.0 = 20 */
-  "hppa",
-  "hppa2.0",
-  3,
-  FALSE,			/* Unless we use 1.1 specific features */
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_default_fill,
-  &bfd_hppa10_arch,
-};
+  N (32, bfd_mach_hppa20, "hppa2.0", FALSE, &bfd_hppa10_arch);
 
-/* PA2.0 in wide mode */
+/* PA2.0 in wide mode.  */
 static const bfd_arch_info_type bfd_hppa20w_arch =
-{
-  64,				/* 64 bits in a word */
-  64,				/* 64 bits in an address */
-  8,				/* 8 bits in a byte */
-  bfd_arch_hppa,
-  bfd_mach_hppa20w,		/* ??? How best to describe wide mode here?  */
-  "hppa",
-  "hppa2.0w",
-  3,
-  FALSE,			/* Unless we use 1.1 specific features */
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_default_fill,
-  &bfd_hppa20_arch,
-};
+  N (64, bfd_mach_hppa20w, "hppa2.0w", FALSE, &bfd_hppa20_arch);
 
 const bfd_arch_info_type bfd_hppa_arch =
-{
-  32,				/* 32 bits in a word */
-  32,				/* 32 bits in an address */
-  8,				/* 8 bits in a byte */
-  bfd_arch_hppa,
-  bfd_mach_hppa11,		/* By convention PA1.1 = 11 */
-  "hppa",
-  "hppa1.1",
-  3,
-  FALSE,			/* 1.1 specific features used */
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_default_fill,
-  &bfd_hppa20w_arch,
-};
+  N (32, bfd_mach_hppa11, "hppa1.1", FALSE, &bfd_hppa20w_arch);
diff --git a/bfd/cpu-i386.c b/bfd/cpu-i386.c
index a865a66e12..5df6435519 100644
--- a/bfd/cpu-i386.c
+++ b/bfd/cpu-i386.c
@@ -130,173 +130,62 @@ bfd_arch_i386_onebyte_nop_fill (bfd_size_type count,
   return fill;
 }
 
+#define N(BITS, MACH, NAME, PRINT, DEF, FILL, NEXT)	\
+  { BITS, /* Bits in a word.  */		\
+    BITS, /* Bits in an address.  */		\
+    8,    /* Bits in a byte. */			\
+    bfd_arch_i386,				\
+    MACH, /* Machine number.  */		\
+    NAME,					\
+    PRINT,					\
+    3,   /* Section alignment power.  */	\
+    DEF, /* Default architecture version ?  */	\
+    bfd_i386_compatible,			\
+    bfd_default_scan,				\
+    FILL,					\
+    NEXT,					\
+    0 /* Maximum instruction length.  */	\
+  }
+
 
 static const bfd_arch_info_type bfd_x64_32_nacl_arch =
-{
-  64, /* 64 bits in a word */
-  64, /* 64 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_i386,
-  bfd_mach_x64_32_nacl,
-  "i386",
-  "i386:x64-32:nacl",
-  3,
-  FALSE,
-  bfd_i386_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_onebyte_nop_fill,
-  NULL
-};
+  N (64, bfd_mach_x64_32_nacl, "i386", "i386:x64-32:nacl",
+     FALSE, bfd_arch_i386_onebyte_nop_fill, NULL);
 
 static const bfd_arch_info_type bfd_x86_64_nacl_arch =
-{
-  64, /* 64 bits in a word */
-  64, /* 64 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_i386,
-  bfd_mach_x86_64_nacl,
-  "i386",
-  "i386:x86-64:nacl",
-  3,
-  FALSE,
-  bfd_i386_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_onebyte_nop_fill,
-  &bfd_x64_32_nacl_arch
-};
+  N (64, bfd_mach_x86_64_nacl, "i386", "i386:x86-64:nacl",
+     FALSE, bfd_arch_i386_onebyte_nop_fill, &bfd_x64_32_nacl_arch);
 
 const bfd_arch_info_type bfd_i386_nacl_arch =
-{
-  32,	/* 32 bits in a word */
-  32,	/* 32 bits in an address */
-  8,	/* 8 bits in a byte */
-  bfd_arch_i386,
-  bfd_mach_i386_i386_nacl,
-  "i386",
-  "i386:nacl",
-  3,
-  TRUE,
-  bfd_i386_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_onebyte_nop_fill,
-  &bfd_x86_64_nacl_arch
-};
+  N (32, bfd_mach_i386_i386_nacl, "i386", "i386:nacl",
+     TRUE, bfd_arch_i386_onebyte_nop_fill, &bfd_x86_64_nacl_arch);
+
 
 static const bfd_arch_info_type bfd_x64_32_arch_intel_syntax =
-{
-  64, /* 64 bits in a word */
-  64, /* 64 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_i386,
-  bfd_mach_x64_32_intel_syntax,
-  "i386:intel",
-  "i386:x64-32:intel",
-  3,
-  FALSE,
-  bfd_i386_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_long_nop_fill,
-  &bfd_i386_nacl_arch
-};
+  N (64, bfd_mach_x64_32_intel_syntax, "i386:intel", "i386:x64-32:intel",
+     FALSE, bfd_arch_i386_long_nop_fill, &bfd_i386_nacl_arch);
 
 static const bfd_arch_info_type bfd_x86_64_arch_intel_syntax =
-{
-  64, /* 64 bits in a word */
-  64, /* 64 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_i386,
-  bfd_mach_x86_64_intel_syntax,
-  "i386:intel",
-  "i386:x86-64:intel",
-  3,
-  FALSE,
-  bfd_i386_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_long_nop_fill,
-  &bfd_x64_32_arch_intel_syntax,
-};
+  N (64, bfd_mach_x86_64_intel_syntax, "i386:intel", "i386:x86-64:intel",
+     FALSE, bfd_arch_i386_long_nop_fill, &bfd_x64_32_arch_intel_syntax);
 
 static const bfd_arch_info_type bfd_i386_arch_intel_syntax =
-{
-  32,	/* 32 bits in a word */
-  32,	/* 32 bits in an address */
-  8,	/* 8 bits in a byte */
-  bfd_arch_i386,
-  bfd_mach_i386_i386_intel_syntax,
-  "i386:intel",
-  "i386:intel",
-  3,
-  TRUE,
-  bfd_i386_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_short_nop_fill,
-  &bfd_x86_64_arch_intel_syntax
-};
+  N (32, bfd_mach_i386_i386_intel_syntax, "i386:intel", "i386:intel",
+     TRUE, bfd_arch_i386_short_nop_fill, &bfd_x86_64_arch_intel_syntax);
+
 
 static const bfd_arch_info_type i8086_arch =
-{
-  32,	/* 32 bits in a word */
-  32,	/* 32 bits in an address (well, not really) */
-  8,	/* 8 bits in a byte */
-  bfd_arch_i386,
-  bfd_mach_i386_i8086,
-  "i8086",
-  "i8086",
-  3,
-  FALSE,
-  bfd_i386_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_short_nop_fill,
-  &bfd_i386_arch_intel_syntax
-};
+  N (32, bfd_mach_i386_i8086, "i8086", "i8086",
+     FALSE, bfd_arch_i386_short_nop_fill, &bfd_i386_arch_intel_syntax);
 
 static const bfd_arch_info_type bfd_x64_32_arch =
-{
-  64, /* 64 bits in a word */
-  64, /* 64 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_i386,
-  bfd_mach_x64_32,
-  "i386",
-  "i386:x64-32",
-  3,
-  FALSE,
-  bfd_i386_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_long_nop_fill,
-  &i8086_arch
-};
+  N (64, bfd_mach_x64_32, "i386", "i386:x64-32",
+     FALSE, bfd_arch_i386_long_nop_fill, &i8086_arch);
 
 static const bfd_arch_info_type bfd_x86_64_arch =
-{
-  64, /* 64 bits in a word */
-  64, /* 64 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_i386,
-  bfd_mach_x86_64,
-  "i386",
-  "i386:x86-64",
-  3,
-  FALSE,
-  bfd_i386_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_long_nop_fill,
-  &bfd_x64_32_arch
-};
+  N (64, bfd_mach_x86_64, "i386", "i386:x86-64",
+     FALSE, bfd_arch_i386_long_nop_fill, &bfd_x64_32_arch);
 
 const bfd_arch_info_type bfd_i386_arch =
-{
-  32,	/* 32 bits in a word */
-  32,	/* 32 bits in an address */
-  8,	/* 8 bits in a byte */
-  bfd_arch_i386,
-  bfd_mach_i386_i386,
-  "i386",
-  "i386",
-  3,
-  TRUE,
-  bfd_i386_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_short_nop_fill,
-  &bfd_x86_64_arch
-};
+  N (32, bfd_mach_i386_i386, "i386", "i386",
+     TRUE, bfd_arch_i386_short_nop_fill, &bfd_x86_64_arch);
diff --git a/bfd/cpu-ia64.c b/bfd/cpu-ia64.c
index 93e8cc001a..300007ade6 100644
--- a/bfd/cpu-ia64.c
+++ b/bfd/cpu-ia64.c
@@ -23,38 +23,28 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+#define N(BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT) \
+  {							\
+    64,        /* Bits in a word.  */			\
+    BITS_ADDR, /* Bits in an address.  */		\
+    8,	       /* Bits in a byte.  */			\
+    bfd_arch_ia64,					\
+    NUMBER,						\
+    "ia64",						\
+    PRINT,						\
+    3,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
 const bfd_arch_info_type bfd_ia64_elf32_arch =
-  {
-    64,	/* 64 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_ia64,
-    bfd_mach_ia64_elf32,
-    "ia64",
-    "ia64-elf32",
-    3,	/* log2 of section alignment */
-    TRUE, /* the one and only */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+  N (32, bfd_mach_ia64_elf32, "ia64-elf32", FALSE, NULL);
 
 const bfd_arch_info_type bfd_ia64_arch =
-  {
-    64,	/* 64 bits in a word */
-    64,	/* 64 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_ia64,
-    bfd_mach_ia64_elf64,
-    "ia64",
-    "ia64-elf64",
-    3,	/* log2 of section alignment */
-    TRUE, /* the one and only */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_ia64_elf32_arch,
-  };
+  N (64, bfd_mach_ia64_elf64, "ia64-elf64", TRUE, &bfd_ia64_elf32_arch);
 
 #include "cpu-ia64-opc.c"
diff --git a/bfd/cpu-iamcu.c b/bfd/cpu-iamcu.c
index 4b315d4475..6630a7a662 100644
--- a/bfd/cpu-iamcu.c
+++ b/bfd/cpu-iamcu.c
@@ -25,36 +25,14 @@
 extern void * bfd_arch_i386_short_nop_fill (bfd_size_type, bfd_boolean,
 					    bfd_boolean);
 
+#define N(number, name, print, next)			     \
+  { 32, 32, 8, bfd_arch_iamcu, number, name, print, 3, TRUE, \
+    bfd_default_compatible, bfd_default_scan,		     \
+    bfd_arch_i386_short_nop_fill, next, 0 }
+
 static const bfd_arch_info_type bfd_iamcu_arch_intel_syntax =
-{
-  32, /* 32 bits in a word */
-  32, /* 32 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_iamcu,
-  bfd_mach_i386_iamcu_intel_syntax,
-  "iamcu:intel",
-  "iamcu:intel",
-  3,
-  TRUE,
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_short_nop_fill,
-  0
-};
+  N (bfd_mach_i386_iamcu_intel_syntax, "iamcu:intel", "iamcu:intel", NULL);
 
 const bfd_arch_info_type bfd_iamcu_arch =
-{
-  32, /* 32 bits in a word */
-  32, /* 32 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_iamcu,
-  bfd_mach_i386_iamcu,
-  "iamcu",
-  "iamcu",
-  3,
-  TRUE,
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_short_nop_fill,
-  &bfd_iamcu_arch_intel_syntax
-};
+  N (bfd_mach_i386_iamcu, "iamcu", "iamcu", &bfd_iamcu_arch_intel_syntax);
+
diff --git a/bfd/cpu-ip2k.c b/bfd/cpu-ip2k.c
index 68e3a34ba2..217229dfd1 100644
--- a/bfd/cpu-ip2k.c
+++ b/bfd/cpu-ip2k.c
@@ -22,36 +22,27 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+#define N(NUMBER, PRINT, DEFAULT, NEXT)			\
+  {							\
+    32,         /* Bits in a word.  */			\
+    16,         /* Bits in an address.  */		\
+    8,	        /* Bits in a byte.  */			\
+    bfd_arch_ip2k,					\
+    NUMBER,						\
+    "ip2k",						\
+    PRINT,						\
+    1,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
 const bfd_arch_info_type bfd_ip2k_nonext_arch =
-{
-  32,				/* Bits per word - not really true.  */
-  16,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_ip2k,		/* Architecture.  */
-  bfd_mach_ip2022,		/* Machine.  */
-  "ip2k",			/* Architecture name.  */
-  "ip2022",			/* Machine name.  */
-  1,				/* Section align power.  */
-  FALSE,			/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  bfd_default_scan,		/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* Next in list.  */
-};
+  N (bfd_mach_ip2022, "ip2022", FALSE, NULL);
 
 const bfd_arch_info_type bfd_ip2k_arch =
-{
-  32,				/* Bits per word - not really true.  */
-  16,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_ip2k,		/* Architecture.  */
-  bfd_mach_ip2022ext,		/* Machine.  */
-  "ip2k",			/* Architecture name.  */
-  "ip2022ext",			/* Machine name.  */
-  1,				/* Section align power.  */
-  TRUE,				/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  bfd_default_scan,		/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  & bfd_ip2k_nonext_arch	/* Next in list.  */
-};
+  N (bfd_mach_ip2022ext, "ip2022ext", TRUE, & bfd_ip2k_nonext_arch);
+
diff --git a/bfd/cpu-iq2000.c b/bfd/cpu-iq2000.c
index c5f5c1a17f..a8d09478bb 100644
--- a/bfd/cpu-iq2000.c
+++ b/bfd/cpu-iq2000.c
@@ -22,38 +22,27 @@
 #include "bfd.h"
 #include "libbfd.h"
 
-static const bfd_arch_info_type arch_info_struct[] =
-{
-  {
-    32,				/* bits per word */
-    32,				/* bits per address */
-    8,				/* bits per byte */
-    bfd_arch_iq2000,		/* architecture */
-    bfd_mach_iq10,		/* machine */
-    "iq2000",			/* architecture name */
-    "iq10",			/* printable name */
-    3,				/* section align power */
-    FALSE,			/* the default ? */
-    bfd_default_compatible,	/* architecture comparison fn */
-    bfd_default_scan,		/* string to architecture convert fn */
-    bfd_arch_default_fill,	/* Default fill.  */
-    NULL			/* next in list */
+#define N(NUMBER, PRINT, DEFAULT, NEXT)			\
+  {							\
+    32,         /* Bits in a word.  */			\
+    32,         /* Bits in an address.  */		\
+    8,	        /* Bits in a byte.  */			\
+    bfd_arch_iq2000,					\
+    NUMBER,						\
+    "iq2000",						\
+    PRINT,						\
+    3,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
   }
-};
+
+static const bfd_arch_info_type arch_info_struct =
+  N (bfd_mach_iq10, "iq10", FALSE, NULL);
 
 const bfd_arch_info_type bfd_iq2000_arch =
-{
-  32,				/* bits per word */
-  32,				/* bits per address */
-  8,				/* bits per byte */
-  bfd_arch_iq2000,		/* architecture */
-  bfd_mach_iq2000,		/* machine */
-  "iq2000",			/* architecture name */
-  "iq2000",			/* printable name */
-  3,				/* section align power */
-  TRUE,				/* the default ? */
-  bfd_default_compatible,	/* architecture comparison fn */
-  bfd_default_scan,		/* string to architecture convert fn */
-  bfd_arch_default_fill,	/* Default fill.  */
-  &arch_info_struct[0],		/* next in list */
-};
+  N (bfd_mach_iq2000, "iq2000", TRUE, &arch_info_struct);
+
diff --git a/bfd/cpu-k1om.c b/bfd/cpu-k1om.c
index 927bab6f2c..f5bcec168d 100644
--- a/bfd/cpu-k1om.c
+++ b/bfd/cpu-k1om.c
@@ -25,36 +25,14 @@
 extern void * bfd_arch_i386_short_nop_fill (bfd_size_type, bfd_boolean,
 					    bfd_boolean);
 
+#define N(number, name, print, next)			     \
+  { 64, 64, 8, bfd_arch_k1om, number, name, print, 3, TRUE, \
+    bfd_default_compatible, bfd_default_scan,		     \
+    bfd_arch_i386_short_nop_fill, next, 9 }
+
 static const bfd_arch_info_type bfd_k1om_arch_intel_syntax =
-{
-  64, /* 64 bits in a word */
-  64, /* 64 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_k1om,
-  bfd_mach_k1om_intel_syntax,
-  "k1om:intel",
-  "k1om:intel",
-  3,
-  TRUE,
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_short_nop_fill,
-  0
-};
+  N (bfd_mach_k1om_intel_syntax, "k1om:intel", "k1om:intel", NULL);
 
 const bfd_arch_info_type bfd_k1om_arch =
-{
-  64, /* 64 bits in a word */
-  64, /* 64 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_k1om,
-  bfd_mach_k1om,
-  "k1om",
-  "k1om",
-  3,
-  TRUE,
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_short_nop_fill,
-  &bfd_k1om_arch_intel_syntax
-};
+  N (bfd_mach_k1om, "k1om", "k1om", &bfd_k1om_arch_intel_syntax);
+
diff --git a/bfd/cpu-l1om.c b/bfd/cpu-l1om.c
index e32400eb97..063a5aa1e7 100644
--- a/bfd/cpu-l1om.c
+++ b/bfd/cpu-l1om.c
@@ -25,36 +25,13 @@
 extern void * bfd_arch_i386_short_nop_fill (bfd_size_type, bfd_boolean,
 					    bfd_boolean);
 
+#define N(number, name, print, next)			     \
+  { 64, 64, 8, bfd_arch_l1om, number, name, print, 3, TRUE, \
+    bfd_default_compatible, bfd_default_scan,		     \
+    bfd_arch_i386_short_nop_fill, next, 0 }
+
 static const bfd_arch_info_type bfd_l1om_arch_intel_syntax =
-{
-  64, /* 64 bits in a word */
-  64, /* 64 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_l1om,
-  bfd_mach_l1om_intel_syntax,
-  "l1om:intel",
-  "l1om:intel",
-  3,
-  TRUE,
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_short_nop_fill,
-  0
-};
+  N (bfd_mach_l1om_intel_syntax, "l1om:intel", "l1om:intel", NULL);
 
 const bfd_arch_info_type bfd_l1om_arch =
-{
-  64, /* 64 bits in a word */
-  64, /* 64 bits in an address */
-  8,  /* 8 bits in a byte */
-  bfd_arch_l1om,
-  bfd_mach_l1om,
-  "l1om",
-  "l1om",
-  3,
-  TRUE,
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_i386_short_nop_fill,
-  &bfd_l1om_arch_intel_syntax
-};
+  N (bfd_mach_l1om, "l1om", "l1om", &bfd_l1om_arch_intel_syntax);
diff --git a/bfd/cpu-lm32.c b/bfd/cpu-lm32.c
index 41e3dc9348..9711e0654e 100644
--- a/bfd/cpu-lm32.c
+++ b/bfd/cpu-lm32.c
@@ -25,17 +25,18 @@
 
 const bfd_arch_info_type bfd_lm32_arch =
 {
-    32,				  /* Bits in word.  */
-    32,				  /* Bits in address.  */
-    8,				  /* Bits in byte.  */
-    bfd_arch_lm32,		  /* Enum bfd_architecture.  */
-    bfd_mach_lm32,		  /* Machine number.  */
-    "lm32",			  /* Architecture name.  */
-    "lm32",			  /* Printable name.  */
-    4,				  /* Alignment.  */
-    TRUE,			  /* Is this the default machine for the target.  */
-    bfd_default_compatible,	  /* Function callback to test if two files have compatible machines.  */
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    NULL			  /* Next.  */
+  32,			  /* Bits in word.  */
+  32,			  /* Bits in address.  */
+  8,			  /* Bits in byte.  */
+  bfd_arch_lm32,	  /* Enum bfd_architecture.  */
+  bfd_mach_lm32,	  /* Machine number.  */
+  "lm32",		  /* Architecture name.  */
+  "lm32",		  /* Printable name.  */
+  4,			  /* Alignment.  */
+  TRUE,			  /* Is this the default machine for the target.  */
+  bfd_default_compatible, /* Function callback to test if two files have compatible machines.  */
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,			  /* Next.  */
+  0 			  /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-m10200.c b/bfd/cpu-m10200.c
index f546764a9e..96faeb9c96 100644
--- a/bfd/cpu-m10200.c
+++ b/bfd/cpu-m10200.c
@@ -23,18 +23,19 @@
 #include "libbfd.h"
 
 const bfd_arch_info_type bfd_mn10200_arch =
-  {
-    16, /* 16 bits in a word */
-    24, /* 16 bits in an address */
-    8,  /* 8 bits in a byte */
-    bfd_arch_mn10200,
-    200,
-    "mn10200",
-    "mn10200",
-    2,
-    TRUE, /* the one and only */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+{
+  16, /* Bits in a word.  */
+  24, /* Bits in an address.  */
+  8,  /* Bits in a byte.  */
+  bfd_arch_mn10200,
+  200,
+  "mn10200",
+  "mn10200",
+  2,
+  TRUE,   /* The one and only.  */
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
+};
diff --git a/bfd/cpu-m10300.c b/bfd/cpu-m10300.c
index b52c37eb6d..2681b71edd 100644
--- a/bfd/cpu-m10300.c
+++ b/bfd/cpu-m10300.c
@@ -22,53 +22,29 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+#define N(NUMBER, NAME, PRINT, DEFAULT, NEXT)		\
+  {							\
+    32,         /* Bits in a word.  */			\
+    32,         /* Bits in an address.  */		\
+    8,	        /* Bits in a byte.  */			\
+    bfd_arch_mn10300,					\
+    NUMBER,						\
+    NAME,						\
+    PRINT,						\
+    2,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
 const bfd_arch_info_type bfd_am33_2_arch =
-  {
-    32, /* 32 bits in a word */
-    32, /* 32 bits in an address */
-    8,  /* 8 bits in a byte */
-    bfd_arch_mn10300,
-    332,
-    "am33_2",
-    "am33-2",
-    2,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+  N (bfd_mach_am33_2, "am33_2", "am33-2", FALSE, NULL);
 
 const bfd_arch_info_type bfd_am33_arch =
-  {
-    32, /* 32 bits in a word */
-    32, /* 32 bits in an address */
-    8,  /* 8 bits in a byte */
-    bfd_arch_mn10300,
-    330,
-    "am33",
-    "am33",
-    2,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_am33_2_arch,
-  };
+  N (bfd_mach_am33, "am33", "am33", FALSE, &bfd_am33_2_arch);
 
 const bfd_arch_info_type bfd_mn10300_arch =
-  {
-    32, /* 32 bits in a word */
-    32, /* 32 bits in an address */
-    8,  /* 8 bits in a byte */
-    bfd_arch_mn10300,
-    300,
-    "mn10300",
-    "mn10300",
-    2,
-    TRUE, /* the one and only */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_am33_arch,
-  };
+  N (bfd_mach_mn10300, "mn10300", "mn10300", TRUE, &bfd_am33_arch);
diff --git a/bfd/cpu-m32c.c b/bfd/cpu-m32c.c
index 2e7de137f1..86e6b783d5 100644
--- a/bfd/cpu-m32c.c
+++ b/bfd/cpu-m32c.c
@@ -35,38 +35,13 @@ m32c_scan (const bfd_arch_info_type * info, const char * string)
   return bfd_default_scan (info, string);
 }
 
-static const bfd_arch_info_type arch_info_struct[] =
-{
-  {
-    32,				/* bits per word */
-    32,				/* bits per address */
-    8,				/* bits per byte */
-    bfd_arch_m32c,		/* architecture */
-    bfd_mach_m32c,		/* machine */
-    "m32c",			/* architecture name */
-    "m32c",			/* printable name */
-    3,				/* section align power */
-    FALSE,			/* the default ? */
-    bfd_default_compatible,	/* architecture comparison fn */
-    m32c_scan,			/* string to architecture convert fn */
-    bfd_arch_default_fill,	/* Default fill.  */
-    NULL			/* next in list */
-  },
-};
+#define N(number, print, align, default, next)			   \
+{ 32, 32, 8, bfd_arch_m32c, number, "m32c", print, align, default, \
+  bfd_default_compatible, m32c_scan, bfd_arch_default_fill, next, 0 }
+
+static const bfd_arch_info_type arch_info_struct =
+  N (bfd_mach_m32c, "m32c", 3, FALSE, NULL);
 
 const bfd_arch_info_type bfd_m32c_arch =
-{
-  32,				/* Bits per word.  */
-  32,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_m32c,		/* Architecture.  */
-  bfd_mach_m16c,		/* Machine.  */
-  "m32c",			/* Architecture name.  */
-  "m16c",			/* Printable name.  */
-  4,				/* Section align power.  */
-  TRUE,				/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  m32c_scan,			/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  &arch_info_struct[0],		/* Next in list.  */
-};
+  N (bfd_mach_m16c, "m16c", 4, TRUE, &arch_info_struct);
+
diff --git a/bfd/cpu-m32r.c b/bfd/cpu-m32r.c
index 085fd4eb2c..c911d23865 100644
--- a/bfd/cpu-m32r.c
+++ b/bfd/cpu-m32r.c
@@ -23,8 +23,8 @@
 #include "libbfd.h"
 
 #define N(number, print, default, next)  \
-{  32, 32, 8, bfd_arch_m32r, number, "m32r", print, 4, default, \
-     bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next }
+{ 32, 32, 8, bfd_arch_m32r, number, "m32r", print, 4, default, \
+  bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next, 0 }
 
 #define M32R2_NEXT   & arch_info_struct [1]
 #define NEXT	     & arch_info_struct [0]
diff --git a/bfd/cpu-m68hc11.c b/bfd/cpu-m68hc11.c
index 4bb7cd475c..23841f88d8 100644
--- a/bfd/cpu-m68hc11.c
+++ b/bfd/cpu-m68hc11.c
@@ -24,17 +24,18 @@
 
 const bfd_arch_info_type bfd_m68hc11_arch =
 {
-    16,	/* 16 bits in a word */
-    16,	/* 16 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_m68hc11,
-    0,
-    "m68hc11",
-    "m68hc11",
-    4, /* section alignment power */
-    TRUE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
+  16,	/* Bits in a word.  */
+  16,	/* Bits in an address.  */
+  8,	/* Bits in a byte.  */
+  bfd_arch_m68hc11,
+  0,
+  "m68hc11",
+  "m68hc11",
+  4, /* Section alignment power.  */
+  TRUE,
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-m68hc12.c b/bfd/cpu-m68hc12.c
index 4d199f2541..15b41c75b7 100644
--- a/bfd/cpu-m68hc12.c
+++ b/bfd/cpu-m68hc12.c
@@ -22,36 +22,27 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+#define N(NUMBER, PRINT, DEFAULT, NEXT)			\
+  {							\
+    16,        /* Bits in a word.  */			\
+    32,        /* Bits in an address.  */		\
+    8,	       /* Bits in a byte.  */			\
+    bfd_arch_m68hc12,					\
+    NUMBER,						\
+    "m68hc12",						\
+    PRINT,						\
+    4,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
 const bfd_arch_info_type bfd_m68hc12s_arch =
-{
-    16,	/* 16 bits in a word */
-    32,	/* 16 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_m68hc12,
-    bfd_mach_m6812s,
-    "m68hc12:HCS12",
-    "m68hc12",
-    4, /* section alignment power */
-    TRUE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-};
+  N (bfd_mach_m6812s, "m68hc12:HCS12", FALSE, NULL);
 
 const bfd_arch_info_type bfd_m68hc12_arch =
-{
-    16,	/* 16 bits in a word */
-    32,	/* 16 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_m68hc12,
-    0,
-    "m68hc12",
-    "m68hc12",
-    4, /* section alignment power */
-    TRUE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_m68hc12s_arch,
-};
+  N (bfd_mach_m6812_default, "m68hc12", TRUE, &bfd_m68hc12s_arch);
+
diff --git a/bfd/cpu-m68k.c b/bfd/cpu-m68k.c
index d42f3b8417..b3d3358ede 100644
--- a/bfd/cpu-m68k.c
+++ b/bfd/cpu-m68k.c
@@ -30,7 +30,7 @@ bfd_m68k_compatible (const bfd_arch_info_type *a,
 
 #define N(name, print,d,next)  \
 {  32, 32, 8, bfd_arch_m68k, name, "m68k",print,2,d,bfd_m68k_compatible, \
-   bfd_default_scan, bfd_arch_default_fill, next, }
+   bfd_default_scan, bfd_arch_default_fill, next, 0 }
 
 static const bfd_arch_info_type arch_info_struct[] =
   {
diff --git a/bfd/cpu-m9s12x.c b/bfd/cpu-m9s12x.c
index e6fbb29f5b..4cd4ba1044 100644
--- a/bfd/cpu-m9s12x.c
+++ b/bfd/cpu-m9s12x.c
@@ -24,18 +24,19 @@
 
 const bfd_arch_info_type bfd_m9s12x_arch =
 {
-    16,	/* 16 bits in a word.  */
-    32,	/* 16 bits in an address.  */
-    8,	/* 8 bits in a byte.  */
-    bfd_arch_m9s12x,
-    0,
-    "m9s12x",
-    "m9s12x",
-    4, /* Section alignment power.  */
-    TRUE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
+  16,	/* Bits in a word.  */
+  32,	/* Bits in an address.  */
+  8,	/* Bits in a byte.  */
+  bfd_arch_m9s12x,
+  0,
+  "m9s12x",
+  "m9s12x",
+  4,    /* Section alignment power.  */
+  TRUE,
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0     /* Maximum offset of a reloc from the start of an insn.  */
 };
 
diff --git a/bfd/cpu-m9s12xg.c b/bfd/cpu-m9s12xg.c
index 7e9298c933..91a4822d1d 100644
--- a/bfd/cpu-m9s12xg.c
+++ b/bfd/cpu-m9s12xg.c
@@ -24,18 +24,19 @@
 
 const bfd_arch_info_type bfd_m9s12xg_arch =
 {
-    16,	/* 16 bits in a word.  */
-    32,	/* 16 bits in an address.  */
-    8,	/* 8 bits in a byte.  */
-    bfd_arch_m9s12xg,
-    0,
-    "m9s12xg",
-    "m9s12xg",
-    4, /* Section alignment power.  */
-    TRUE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
+  16,	/* Bits in a word.  */
+  32,	/* Bits in an address.  */
+  8,	/* Bits in a byte.  */
+  bfd_arch_m9s12xg,
+  0,
+  "m9s12xg",
+  "m9s12xg",
+  4,    /* Section alignment power.  */
+  TRUE,
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0    /* Maximum offset of a reloc from the start of an insn.  */
 };
 
diff --git a/bfd/cpu-mcore.c b/bfd/cpu-mcore.c
index f4ab528dc8..36c0b63e77 100644
--- a/bfd/cpu-mcore.c
+++ b/bfd/cpu-mcore.c
@@ -24,17 +24,18 @@
 
 const bfd_arch_info_type bfd_mcore_arch =
 {
-  32,				/* 32 bits in a word */
-  32,				/* 32 bits in an address */
-  8,				/* 8 bits in a byte */
-  bfd_arch_mcore,		/* Architecture */
-  0,				/* Machine number - 0 for now */
-  "MCore",			/* Architecture name */
-  "MCore",			/* Printable name */
-  3,				/* Section align power */
-  TRUE,				/* Is this the default architecture ? */
-  bfd_default_compatible,	/* Architecture comparison function */
-  bfd_default_scan,		/* String to architecture conversion */
+  32,				/* Bits in a word.  */
+  32,				/* Bits in an address.  */
+  8,				/* Bits in a byte.  */
+  bfd_arch_mcore,		/* Architecture number.  */
+  0,				/* Machine number - 0 for now.  */
+  "MCore",			/* Architecture name.  */
+  "MCore",			/* Machine name.  */
+  3,				/* Section align power.  */
+  TRUE,				/* Is this the default architecture ?  */
+  bfd_default_compatible,	/* Architecture comparison function.  */
+  bfd_default_scan,		/* String to architecture conversion.  */
   bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* Next in list */
+  NULL,				/* Next in list */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-mep.c b/bfd/cpu-mep.c
index 0e59066296..cc10c662ea 100644
--- a/bfd/cpu-mep.c
+++ b/bfd/cpu-mep.c
@@ -22,8 +22,8 @@
 #include "libbfd.h"
 
 #define MA(x, n, def, y) { 32, 32, 8, bfd_arch_mep, x, "mep", n, \
-	2, def, bfd_default_compatible, bfd_default_scan, \
-	bfd_arch_default_fill, y }
+			   2, def, bfd_default_compatible, bfd_default_scan, \
+			   bfd_arch_default_fill, y, 0 }
 
 static const bfd_arch_info_type bfd_c5_arch = MA (bfd_mach_mep_c5, "c5", FALSE, NULL);
 static const bfd_arch_info_type bfd_h1_arch = MA (bfd_mach_mep_h1, "h1", FALSE, & bfd_c5_arch);
diff --git a/bfd/cpu-metag.c b/bfd/cpu-metag.c
index 3ce116f58a..60805b808c 100644
--- a/bfd/cpu-metag.c
+++ b/bfd/cpu-metag.c
@@ -37,5 +37,6 @@ const bfd_arch_info_type bfd_metag_arch =
   bfd_default_compatible,	/* Architecture comparison fn.  */
   bfd_default_scan,		/* String to architecture convert fn.  */
   bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* Next in list.  */
+  NULL,				/* Next in list.  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-microblaze.c b/bfd/cpu-microblaze.c
index 9bc2eb3de9..4e05d73f01 100644
--- a/bfd/cpu-microblaze.c
+++ b/bfd/cpu-microblaze.c
@@ -25,10 +25,10 @@
 
 const bfd_arch_info_type bfd_microblaze_arch =
 {
-  32,				/* 32 bits in a word.  */
-  32,				/* 32 bits in an address.  */
-  8,				/* 8 bits in a byte.  */
-  bfd_arch_microblaze,		/* Architecture.  */
+  32,				/* Bits in a word.  */
+  32,				/* Bits in an address.  */
+  8,				/* Bits in a byte.  */
+  bfd_arch_microblaze,		/* Architecture number.  */
   0,				/* Machine number - 0 for now.  */
   "microblaze",			/* Architecture name.  */
   "MicroBlaze",			/* Printable name.  */
@@ -37,5 +37,6 @@ const bfd_arch_info_type bfd_microblaze_arch =
   bfd_default_compatible,	/* Architecture comparison function.  */
   bfd_default_scan,		/* String to architecture conversion.  */
   bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* Next in list.  */
+  NULL,				/* Next in list.  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c
index b359491305..15adcd4e2c 100644
--- a/bfd/cpu-mips.c
+++ b/bfd/cpu-mips.c
@@ -43,9 +43,9 @@ mips_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
 
 #define N(BITS_WORD, BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT)		\
   {							\
-    BITS_WORD, /*  bits in a word */			\
-    BITS_ADDR, /* bits in an address */			\
-    8,	/* 8 bits in a byte */				\
+    BITS_WORD,  /* Bits in a word.  */			\
+    BITS_ADDR,  /* Bits in an address.  */		\
+    8,	        /* Bits in a byte.  */			\
     bfd_arch_mips,					\
     NUMBER,						\
     "mips",						\
@@ -56,6 +56,7 @@ mips_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
     bfd_default_scan,					\
     bfd_arch_default_fill,				\
     NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
   }
 
 enum
@@ -150,19 +151,19 @@ static const bfd_arch_info_type arch_info_struct[] =
   N (64, 64, bfd_mach_mipsisa64r5,"mips:isa64r5", FALSE, NN(I_mipsisa64r5)),
   N (64, 64, bfd_mach_mipsisa64r6,"mips:isa64r6", FALSE, NN(I_mipsisa64r6)),
   N (64, 64, bfd_mach_mips_sb1, "mips:sb1",	  FALSE, NN(I_sb1)),
-  N (64, 64, bfd_mach_mips_loongson_2e, "mips:loongson_2e",	  FALSE, NN(I_loongson_2e)),
-  N (64, 64, bfd_mach_mips_loongson_2f, "mips:loongson_2f",	  FALSE, NN(I_loongson_2f)),
+  N (64, 64, bfd_mach_mips_loongson_2e, "mips:loongson_2e", FALSE, NN(I_loongson_2e)),
+  N (64, 64, bfd_mach_mips_loongson_2f, "mips:loongson_2f", FALSE, NN(I_loongson_2f)),
   N (64, 64, bfd_mach_mips_gs464, "mips:gs464",	  FALSE, NN(I_gs464)),
-  N (64, 64, bfd_mach_mips_gs464e, "mips:gs464e",	  FALSE, NN(I_gs464e)),
-  N (64, 64, bfd_mach_mips_gs264e, "mips:gs264e",	  FALSE, NN(I_gs264e)),
+  N (64, 64, bfd_mach_mips_gs464e, "mips:gs464e", FALSE, NN(I_gs464e)),
+  N (64, 64, bfd_mach_mips_gs264e, "mips:gs264e", FALSE, NN(I_gs264e)),
   N (64, 64, bfd_mach_mips_octeon,"mips:octeon",  FALSE, NN(I_mipsocteon)),
-  N (64, 64, bfd_mach_mips_octeonp,"mips:octeon+",  FALSE, NN(I_mipsocteonp)),
-  N (64, 64, bfd_mach_mips_octeon2,"mips:octeon2",  FALSE, NN(I_mipsocteon2)),
-  N (64, 64, bfd_mach_mips_octeon3, "mips:octeon3",  FALSE, NN(I_mipsocteon3)),
-  N (64, 64, bfd_mach_mips_xlr, "mips:xlr",	  FALSE, NN(I_xlr)),
+  N (64, 64, bfd_mach_mips_octeonp,"mips:octeon+", FALSE, NN(I_mipsocteonp)),
+  N (64, 64, bfd_mach_mips_octeon2,"mips:octeon2", FALSE, NN(I_mipsocteon2)),
+  N (64, 64, bfd_mach_mips_octeon3, "mips:octeon3", FALSE, NN(I_mipsocteon3)),
+  N (64, 64, bfd_mach_mips_xlr, "mips:xlr",	   FALSE, NN(I_xlr)),
   N (32, 32, bfd_mach_mips_interaptiv_mr2, "mips:interaptiv-mr2", FALSE,
      NN(I_interaptiv_mr2)),
-  N (64, 64, bfd_mach_mips_micromips,"mips:micromips",FALSE,0)
+  N (64, 64, bfd_mach_mips_micromips, "mips:micromips", FALSE, NULL)
 };
 
 /* The default architecture is mips:3000, but with a machine number of
diff --git a/bfd/cpu-mmix.c b/bfd/cpu-mmix.c
index eaacf31377..8bedeb2d2f 100644
--- a/bfd/cpu-mmix.c
+++ b/bfd/cpu-mmix.c
@@ -25,19 +25,20 @@
 
 const bfd_arch_info_type
 bfd_mmix_arch =
- {
-   64,				/* 64 bits in a word.  */
-   64,				/* 64 bits in an address.  */
-   8,				/* 8 bits in a byte.  */
-   bfd_arch_mmix,		/* Architecture.  */
-   0,				/* Machine number - 0 for now.  */
-   /* Sorry, these are by custom and creeping assumption lower-case.  */
-   "mmix",			/* Architecture name.  */
-   "mmix",			/* Printable name.  */
-   3,				/* Section align power.  */
-   TRUE,			/* This is the default architecture.  */
-   bfd_default_compatible,	/* Architecture comparison function.  */
-   bfd_default_scan,		/* String to architecture conversion.  */
-   bfd_arch_default_fill,	/* Default fill.  */
-   NULL				/* Next in list.  */
+{
+  64,				/* Bits in a word.  */
+  64,				/* Bits in an address.  */
+  8,				/* Bits in a byte.  */
+  bfd_arch_mmix,		/* Architecture number.  */
+  0,				/* Machine number - 0 for now.  */
+  /* Sorry, these are by custom and creeping assumption lower-case.  */
+  "mmix",			/* Architecture name.  */
+  "mmix",			/* Printable name.  */
+  3,				/* Section align power.  */
+  TRUE,			/* This is the default architecture.  */
+  bfd_default_compatible,	/* Architecture comparison function.  */
+  bfd_default_scan,		/* String to architecture conversion.  */
+  bfd_arch_default_fill,	/* Default fill.  */
+  NULL,				/* Next in list.  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-moxie.c b/bfd/cpu-moxie.c
index a3978b6c94..e200e1a4a5 100644
--- a/bfd/cpu-moxie.c
+++ b/bfd/cpu-moxie.c
@@ -24,18 +24,19 @@
 
 
 const bfd_arch_info_type bfd_moxie_arch =
-  {
-    32,		      /* 32 bits in a word.  */
-    32,		      /* 32 bits in an address.  */
-    8,		      /*  8 bits in a byte.  */
-    bfd_arch_moxie,   /* enum bfd_architecture arch.  */
-    bfd_mach_moxie,
-    "moxie",	      /* Arch name.  */
-    "moxie",	      /* Printable name.  */
-    2,		      /* Unsigned int section alignment power.  */
-    TRUE,	      /* The one and only.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+{
+  32,		      /* Bits in a word.  */
+  32,		      /* Bits in an address.  */
+  8,		      /* Bits in a byte.  */
+  bfd_arch_moxie,     /* Architecture Number.  */
+  bfd_mach_moxie,     /* Machine number.  */
+  "moxie",	      /* Arch name.  */
+  "moxie",	      /* Printable name.  */
+  2,		      /* Section alignment power.  */
+  TRUE,	              /* The one and only.  */
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
+};
diff --git a/bfd/cpu-msp430.c b/bfd/cpu-msp430.c
index 2c35e5f138..94d570d82c 100644
--- a/bfd/cpu-msp430.c
+++ b/bfd/cpu-msp430.c
@@ -43,9 +43,9 @@ compatible (const bfd_arch_info_type * a,
 
 #define N(addr_bits, machine, print, default, next)		\
 {								\
-  16,				/* 16 bits in a word.  */	\
+  16,				/* Bits in a word.  */		\
   addr_bits,			/* Bits in an address.  */	\
-  8,				/* 8 bits in a byte.  */	\
+  8,				/* Bits in a byte.  */		\
   bfd_arch_msp430,						\
   machine,			/* Machine number.  */		\
   "msp430",			/* Architecture name.   */	\
@@ -55,7 +55,8 @@ compatible (const bfd_arch_info_type * a,
   compatible,							\
   bfd_default_scan,						\
   bfd_arch_default_fill,					\
-  next								\
+  next,								\
+  0 /* Maximum offset of a reloc from the start of an insn.  */ \
 }
 
 static const bfd_arch_info_type arch_info_struct[] =
diff --git a/bfd/cpu-mt.c b/bfd/cpu-mt.c
index 614a80421c..c6a320f17c 100644
--- a/bfd/cpu-mt.c
+++ b/bfd/cpu-mt.c
@@ -22,54 +22,31 @@
 #include "bfd.h"
 #include "libbfd.h"
 
-const bfd_arch_info_type arch_info_struct[] =
+#define N(NUMBER, PRINT, DEFAULT, NEXT)			\
+  {							\
+    32,   /* Bits in a word.  */			\
+    32,   /* Bits in an address.  */			\
+    8,	  /* Bits in a byte.  */			\
+    bfd_arch_mt,					\
+    NUMBER,						\
+    "mt",						\
+    PRINT,						\
+    1,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
+const bfd_arch_info_type arch_info_struct[2] =
 {
-{
-  32,				/* Bits per word - not really true.  */
-  32,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_mt,			/* Architecture.  */
-  bfd_mach_mrisc2,		/* Machine.  */
-  "mt",				/* Architecture name.  */
-  "ms1-003",			/* Printable name.  */
-  1,				/* Section align power.  */
-  FALSE,			/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  bfd_default_scan,		/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  &arch_info_struct[1]		/* Next in list.  */
-},
-{
-  32,				/* Bits per word - not really true.  */
-  32,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_mt,			/* Architecture.  */
-  bfd_mach_ms2,			/* Machine.  */
-  "mt",				/* Architecture name.  */
-  "ms2",			/* Printable name.  */
-  1,				/* Section align power.  */
-  FALSE,			/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  bfd_default_scan,		/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* Next in list.  */
-},
+  N (bfd_mach_mrisc2, "ms1-003", FALSE, arch_info_struct + 1),
+  N (bfd_mach_ms2,    "ms2",     FALSE, NULL)
 };
 
 const bfd_arch_info_type bfd_mt_arch =
-{
-  32,				/* Bits per word - not really true.  */
-  32,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_mt,			/* Architecture.  */
-  bfd_mach_ms1,			/* Machine.  */
-  "mt",				/* Architecture name.  */
-  "ms1",			/* Printable name.  */
-  1,				/* Section align power.  */
-  TRUE,				/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  bfd_default_scan,		/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  &arch_info_struct[0]		/* Next in list.  */
-};
+  N (bfd_mach_ms1,    "ms1",     TRUE, arch_info_struct);
+
 
diff --git a/bfd/cpu-nds32.c b/bfd/cpu-nds32.c
index 71c27e4d13..cfa15a033c 100644
--- a/bfd/cpu-nds32.c
+++ b/bfd/cpu-nds32.c
@@ -26,7 +26,7 @@
 
 #define N(number, print, default, next)  \
     {32, 32, 8, bfd_arch_nds32, number, "nds32", print, 4, default, \
-     bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next }
+     bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next, 0 }
 
 #define NEXT		&arch_info_struct[0]
 #define NDS32V2_NEXT	&arch_info_struct[1]
diff --git a/bfd/cpu-nfp.c b/bfd/cpu-nfp.c
index 767539350f..a242d7b74a 100644
--- a/bfd/cpu-nfp.c
+++ b/bfd/cpu-nfp.c
@@ -50,13 +50,12 @@ bfd_nfp_compatible (const bfd_arch_info_type * a,
   bfd_nfp_compatible,						\
   bfd_default_scan,						\
   bfd_arch_default_fill,					\
-  next								\
+  next,								\
+  0 /* Maximum offset of a reloc from the start of an insn.  */ \
 }
 
-static const bfd_arch_info_type arch_info_struct[] =
-{
-  N (bfd_mach_nfp3200, "NFP-32xx", FALSE, NULL)
-};
+static const bfd_arch_info_type arch_info_struct =
+  N (bfd_mach_nfp3200, "NFP-32xx", FALSE, NULL);
 
 const bfd_arch_info_type bfd_nfp_arch =
-  N (bfd_mach_nfp6000, "NFP-6xxx", TRUE, &arch_info_struct[0]);
+  N (bfd_mach_nfp6000, "NFP-6xxx", TRUE, &arch_info_struct);
diff --git a/bfd/cpu-nios2.c b/bfd/cpu-nios2.c
index 485394501f..907d318447 100644
--- a/bfd/cpu-nios2.c
+++ b/bfd/cpu-nios2.c
@@ -44,11 +44,11 @@ nios2_compatible (const bfd_arch_info_type *a,
   return a;
 }
 
-#define N(BITS_WORD, BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT)		\
+#define N(NUMBER, PRINT, DEFAULT, NEXT)			\
   {							\
-    BITS_WORD, /*  bits in a word */			\
-    BITS_ADDR, /* bits in an address */			\
-    8,	/* 8 bits in a byte */				\
+    32, /* Bits in a word.  */				\
+    32, /* Bits in an address.  */			\
+    8,	/* Bits in a byte.  */				\
     bfd_arch_nios2,					\
     NUMBER,						\
     "nios2",						\
@@ -58,17 +58,18 @@ nios2_compatible (const bfd_arch_info_type *a,
     nios2_compatible,					\
     bfd_default_scan,					\
     bfd_arch_default_fill,				\
-    NEXT						\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
   }
 
 #define NIOS2R1_NEXT &arch_info_struct[0]
 #define NIOS2R2_NEXT &arch_info_struct[1]
 
-static const bfd_arch_info_type arch_info_struct[] =
+static const bfd_arch_info_type arch_info_struct[2] =
 {
-  N (32, 32, bfd_mach_nios2r1, "nios2:r1", FALSE, NIOS2R2_NEXT),
-  N (32, 32, bfd_mach_nios2r2, "nios2:r2", FALSE, NULL),
+  N (bfd_mach_nios2r1, "nios2:r1", FALSE, NIOS2R2_NEXT),
+  N (bfd_mach_nios2r2, "nios2:r2", FALSE, NULL),
 };
 
 const bfd_arch_info_type bfd_nios2_arch =
-  N (32, 32, 0, "nios2", TRUE, NIOS2R1_NEXT);
+  N (bfd_mach_nios2, "nios2", TRUE, NIOS2R1_NEXT);
diff --git a/bfd/cpu-ns32k.c b/bfd/cpu-ns32k.c
index c69d93ba6a..bc6523b748 100644
--- a/bfd/cpu-ns32k.c
+++ b/bfd/cpu-ns32k.c
@@ -26,16 +26,16 @@
 #include "ns32k.h"
 
 #define N(machine, printable, d, next)  \
-{  32, 32, 8, bfd_arch_ns32k, machine, "ns32k",printable,3,d, \
-   bfd_default_compatible,bfd_default_scan,bfd_arch_default_fill,next, }
+ { 32, 32, 8, bfd_arch_ns32k, machine, "ns32k",printable,3,d, \
+   bfd_default_compatible,bfd_default_scan,bfd_arch_default_fill,next, 0 }
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N(32532,"ns32k:32532",TRUE, 0), /* The word ns32k will match this too.  */
+  N (32532, "ns32k:32532", TRUE, 0), /* The word ns32k will match this too.  */
 };
 
 const bfd_arch_info_type bfd_ns32k_arch =
-  N(32032,"ns32k:32032",FALSE, &arch_info_struct[0]);
+  N (32032, "ns32k:32032", FALSE, &arch_info_struct[0]);
 
 bfd_vma
 _bfd_ns32k_get_displacement (bfd_byte *buffer, int size)
diff --git a/bfd/cpu-or1k.c b/bfd/cpu-or1k.c
index e6594865ae..cd9fda376e 100644
--- a/bfd/cpu-or1k.c
+++ b/bfd/cpu-or1k.c
@@ -21,39 +21,27 @@
 #include "bfd.h"
 #include "libbfd.h"
 
-const bfd_arch_info_type bfd_or1k_arch;
-const bfd_arch_info_type bfd_or1knd_arch;
+#define N(NUMBER, PRINT, DEFAULT, NEXT)			\
+  {							\
+    32,     /* Bits in a word.  */			\
+    32,     /* Bits in an address.  */			\
+    8,	    /* Bits in a byte.  */			\
+    bfd_arch_or1k,					\
+    NUMBER,						\
+    PRINT,						\
+    PRINT,						\
+    4,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
 
-const bfd_arch_info_type bfd_or1k_arch =
-  {
-    32,		  /* 32 bits in a word.  */
-    32,		  /* 32 bits in an address.  */
-    8,		  /* 8 bits in a byte.  */
-    bfd_arch_or1k,
-    bfd_mach_or1k,
-    "or1k",
-    "or1k",
-    4,
-    TRUE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_or1knd_arch,
-  };
 
 const bfd_arch_info_type bfd_or1knd_arch =
-  {
-    32,		  /* 32 bits in a word.  */
-    32,		  /* 32 bits in an address.  */
-    8,		  /* 8 bits in a byte.  */
-    bfd_arch_or1k,
-    bfd_mach_or1knd,
-    "or1knd",
-    "or1knd",
-    4,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    NULL,
-  };
+  N (bfd_mach_or1knd, "or1knd", FALSE, NULL);
+
+const bfd_arch_info_type bfd_or1k_arch =
+  N (bfd_mach_or1k, "or1k", TRUE, &bfd_or1knd_arch);
diff --git a/bfd/cpu-pdp11.c b/bfd/cpu-pdp11.c
index d42f7f8670..0d6a50c266 100644
--- a/bfd/cpu-pdp11.c
+++ b/bfd/cpu-pdp11.c
@@ -23,19 +23,20 @@
 #include "libbfd.h"
 
 const bfd_arch_info_type bfd_pdp11_arch =
-  {
-    16,	/* 16 bits in a word */
-    16,	/* 16 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_pdp11,
-    0,	/* only 1 machine */
-    "pdp11",
-    "pdp11",
-    1,		/* alignment = 16 bit */
-    TRUE, /* the one and only */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+{
+  16,	/* Bits in a word.  */
+  16,	/* Bits in an address.  */
+  8,	/* Bits in a byte.  */
+  bfd_arch_pdp11,
+  0,	/* Only 1 machine.  */
+  "pdp11",
+  "pdp11",
+  1,	/* Alignment = 16 bit.  */
+  TRUE, /* The one and only.  */
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
+};
 
diff --git a/bfd/cpu-pj.c b/bfd/cpu-pj.c
index b0a092304a..cf5f491e3e 100644
--- a/bfd/cpu-pj.c
+++ b/bfd/cpu-pj.c
@@ -25,17 +25,18 @@
 
 const bfd_arch_info_type bfd_pj_arch =
 {
-  32,				/* 32 bits in a word */
-  32,				/* 32 bits in an address */
-  8,				/* 8 bits in a byte */
+  32,				/* Bits in a word.  */
+  32,				/* Bits in an address.  */
+  8,				/* Bits in a byte.  */
   bfd_arch_pj,
   0,
-  "pj",				/* arch_name  */
-  "pj",				/* printable name */
+  "pj",				/* Arch_name.  */
+  "pj",				/* Printable name.  */
   1,
-  TRUE,				/* the default machine */
+  TRUE,				/* The default machine.  */
   bfd_default_compatible,
   bfd_default_scan,
   bfd_arch_default_fill,
-  0
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-plugin.c b/bfd/cpu-plugin.c
index 044f74c014..53f0c23457 100644
--- a/bfd/cpu-plugin.c
+++ b/bfd/cpu-plugin.c
@@ -24,9 +24,9 @@
 
 const bfd_arch_info_type bfd_plugin_arch =
 {
-  32,	/* 32 bits in a word.  */
-  32,	/* 32 bits in an address.  */
-  8,	/* 8 bits in a byte.  */
+  32,	/* Bits in a word.  */
+  32,	/* Bits in an address.  */
+  8,	/* Bits in a byte.  */
   bfd_arch_plugin,
   0,	/* Only 1 machine.  */
   "plugin",
@@ -36,5 +36,6 @@ const bfd_arch_info_type bfd_plugin_arch =
   bfd_default_compatible,
   bfd_default_scan,
   bfd_arch_default_fill,
-  0
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-powerpc.c b/bfd/cpu-powerpc.c
index bfe4868159..49594678d3 100644
--- a/bfd/cpu-powerpc.c
+++ b/bfd/cpu-powerpc.c
@@ -48,375 +48,74 @@ powerpc_compatible (const bfd_arch_info_type *a,
   /*NOTREACHED*/
 }
 
+#define N(BITS, NUMBER, PRINT, DEFAULT, NEXT)		\
+  {							\
+    BITS,      /* Bits in a word.  */			\
+    BITS,      /* Bits in an address.  */		\
+    8,	       /* Bits in a byte.  */			\
+    bfd_arch_powerpc,					\
+    NUMBER,						\
+    "powerpc",						\
+    PRINT,						\
+    3,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    powerpc_compatible,					\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
 const bfd_arch_info_type bfd_powerpc_archs[] =
 {
 #if BFD_DEFAULT_TARGET_SIZE == 64
-  /* Default arch must come first.  */
-  {
-    64,	/* 64 bits in a word */
-    64,	/* 64 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc64,
-    "powerpc",
-    "powerpc:common64",
-    3,
-    TRUE, /* default for 64 bit target */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[1]
-  },
+  /* Default for 64 bit target.  */
+  N (64, bfd_mach_ppc64, "powerpc:common64", TRUE, bfd_powerpc_archs + 1),
   /* elf32-ppc:ppc_elf_object_p relies on the default 32 bit arch
      being immediately after the 64 bit default.  */
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc, /* for the POWER/PowerPC common architecture */
-    "powerpc",
-    "powerpc:common",
-    3,
-    FALSE,
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[2],
-  },
+  N (32, bfd_mach_ppc, "powerpc:common", FALSE, bfd_powerpc_archs + 2),
 #else
   /* Default arch must come first.  */
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc, /* for the POWER/PowerPC common architecture */
-    "powerpc",
-    "powerpc:common",
-    3,
-    TRUE, /* default for 32 bit target */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[1],
-  },
+  N (32, bfd_mach_ppc, "powerpc:common", TRUE, bfd_powerpc_archs + 1),
   /* elf64-ppc:ppc64_elf_object_p relies on the default 64 bit arch
      being immediately after the 32 bit default.  */
-  {
-    64,	/* 64 bits in a word */
-    64,	/* 64 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc64,
-    "powerpc",
-    "powerpc:common64",
-    3,
-    FALSE,
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[2]
-  },
+  N (64, bfd_mach_ppc64, "powerpc:common64", FALSE, bfd_powerpc_archs + 2),
 #endif
+  N (32, bfd_mach_ppc_603,      "powerpc:603",     FALSE, bfd_powerpc_archs + 3),
+  N (32, bfd_mach_ppc_ec603e,   "powerpc:EC603e",  FALSE, bfd_powerpc_archs + 4),
+  N (32, bfd_mach_ppc_604,      "powerpc:604",     FALSE, bfd_powerpc_archs + 5),
+  N (32, bfd_mach_ppc_403,      "powerpc:403",     FALSE, bfd_powerpc_archs + 6),
+  N (32, bfd_mach_ppc_601,      "powerpc:601",     FALSE, bfd_powerpc_archs + 7),
+  N (64, bfd_mach_ppc_620,      "powerpc:620",     FALSE, bfd_powerpc_archs + 8),
+  N (64, bfd_mach_ppc_630,      "powerpc:630",     FALSE, bfd_powerpc_archs + 9),
+  N (64, bfd_mach_ppc_a35,      "powerpc:a35",     FALSE, bfd_powerpc_archs + 10),
+  N (64, bfd_mach_ppc_rs64ii,   "powerpc:rs64ii",  FALSE, bfd_powerpc_archs + 11),
+  N (64, bfd_mach_ppc_rs64iii,  "powerpc:rs64iii", FALSE, bfd_powerpc_archs + 12),
+  N (32, bfd_mach_ppc_7400,     "powerpc:7400",    FALSE, bfd_powerpc_archs + 13),
+  N (32, bfd_mach_ppc_e500,     "powerpc:e500",    FALSE, bfd_powerpc_archs + 14),
+  N (32, bfd_mach_ppc_e500mc,   "powerpc:e500mc",  FALSE, bfd_powerpc_archs + 15),
+  N (64, bfd_mach_ppc_e500mc64, "powerpc:e500mc64",FALSE, bfd_powerpc_archs + 16),
+  N (32, bfd_mach_ppc_860,      "powerpc:MPC8XX",  FALSE, bfd_powerpc_archs + 17),
+  N (32, bfd_mach_ppc_750,      "powerpc:750",     FALSE, bfd_powerpc_archs + 18),
+  N (32, bfd_mach_ppc_titan,    "powerpc:titan",   FALSE, bfd_powerpc_archs + 19),
+
   {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_603,
-    "powerpc",
-    "powerpc:603",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[3]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_ec603e,
-    "powerpc",
-    "powerpc:EC603e",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[4]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_604,
-    "powerpc",
-    "powerpc:604",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[5]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_403,
-    "powerpc",
-    "powerpc:403",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[6]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_601,
-    "powerpc",
-    "powerpc:601",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[7]
-  },
-  {
-    64,	/* 64 bits in a word */
-    64,	/* 64 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_620,
-    "powerpc",
-    "powerpc:620",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[8]
-  },
-  {
-    64,	/* 64 bits in a word */
-    64,	/* 64 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_630,
-    "powerpc",
-    "powerpc:630",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[9]
-  },
-  {
-    64,	/* 64 bits in a word */
-    64,	/* 64 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_a35,
-    "powerpc",
-    "powerpc:a35",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[10]
-  },
-  {
-    64,	/* 64 bits in a word */
-    64,	/* 64 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_rs64ii,
-    "powerpc",
-    "powerpc:rs64ii",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[11]
-  },
-  {
-    64,	/* 64 bits in a word */
-    64,	/* 64 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_rs64iii,
-    "powerpc",
-    "powerpc:rs64iii",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[12]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_7400,
-    "powerpc",
-    "powerpc:7400",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[13]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_e500,
-    "powerpc",
-    "powerpc:e500",
-    3,
-    FALSE,
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[14]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_e500mc,
-    "powerpc",
-    "powerpc:e500mc",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[15]
-  },
-  {
-    64,	/* 64 bits in a word */
-    64,	/* 64 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_e500mc64,
-    "powerpc",
-    "powerpc:e500mc64",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[16]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_860,
-    "powerpc",
-    "powerpc:MPC8XX",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[17]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_750,
-    "powerpc",
-    "powerpc:750",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[18]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_titan,
-    "powerpc",
-    "powerpc:titan",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[19]
-  },
-  {
-    16,	/* 16 or 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
+    16,	/* Bits in a word.  */
+    32,	/* Bits in an address.  */
+    8,	/* Bits in a byte.  */
     bfd_arch_powerpc,
     bfd_mach_ppc_vle,
     "powerpc",
     "powerpc:vle",
     3,
-    FALSE, /* not the default */
+    FALSE, /* Not the default.  */
     powerpc_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
-    &bfd_powerpc_archs[20]
+    bfd_powerpc_archs + 20,
+    0 /* Maximum offset of a reloc from the start of an insn.  */
   },
-  {
-    64,	/* 64 bits in a word */
-    64,	/* 64 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_e5500,
-    "powerpc",
-    "powerpc:e5500",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_powerpc_archs[21]
-  },
-  {
-    64,	/* 64 bits in a word */
-    64,	/* 64 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_powerpc,
-    bfd_mach_ppc_e6500,
-    "powerpc",
-    "powerpc:e6500",
-    3,
-    FALSE, /* not the default */
-    powerpc_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0
-  }
+
+  N (64, bfd_mach_ppc_e5500, "powerpc:e5500", FALSE, bfd_powerpc_archs + 21),
+  N (64, bfd_mach_ppc_e6500, "powerpc:e6500", FALSE, NULL)
 };
diff --git a/bfd/cpu-pru.c b/bfd/cpu-pru.c
index b0feb9d6d9..99be27eca5 100644
--- a/bfd/cpu-pru.c
+++ b/bfd/cpu-pru.c
@@ -37,7 +37,8 @@
     bfd_default_compatible,				\
     bfd_default_scan,					\
     bfd_arch_default_fill,				\
-    NEXT						\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
   }
 
 const bfd_arch_info_type bfd_pru_arch = N (32, 32, 0, "pru", TRUE, NULL);
diff --git a/bfd/cpu-riscv.c b/bfd/cpu-riscv.c
index 153a84e883..aca7ade0af 100644
--- a/bfd/cpu-riscv.c
+++ b/bfd/cpu-riscv.c
@@ -39,11 +39,11 @@ riscv_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
   return a;
 }
 
-#define N(BITS_WORD, BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT)	\
+#define N(BITS, NUMBER, PRINT, DEFAULT, NEXT)			\
   {								\
-    BITS_WORD, /*  bits in a word */				\
-    BITS_ADDR, /* bits in an address */				\
-    8,	/* 8 bits in a byte */					\
+    BITS,      /* Bits in a word.  */				\
+    BITS,      /* Bits in an address.  */			\
+    8,	       /* Bits in a byte.  */				\
     bfd_arch_riscv,						\
     NUMBER,							\
     "riscv",							\
@@ -54,6 +54,7 @@ riscv_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
     bfd_default_scan,						\
     bfd_arch_default_fill,					\
     NEXT,							\
+    0 /* Maximum offset of a reloc from the start of an insn.  */\
   }
 
 /* This enum must be kept in the same order as arch_info_struct.  */
@@ -69,11 +70,11 @@ enum
    and each entry except the last should end with NN (my enum value).  */
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N (64, 64, bfd_mach_riscv64, "riscv:rv64", FALSE, NN (I_riscv64)),
-  N (32, 32, bfd_mach_riscv32, "riscv:rv32", FALSE, 0)
+  N (64, bfd_mach_riscv64, "riscv:rv64", FALSE, NN (I_riscv64)),
+  N (32, bfd_mach_riscv32, "riscv:rv32", FALSE, NULL)
 };
 
 /* The default architecture is riscv:rv64.  */
 
 const bfd_arch_info_type bfd_riscv_arch =
-  N (64, 64, 0, "riscv", TRUE, &arch_info_struct[0]);
+  N (64, 0, "riscv", TRUE, &arch_info_struct[0]);
diff --git a/bfd/cpu-rl78.c b/bfd/cpu-rl78.c
index 5d4c770c08..acc4ab91c6 100644
--- a/bfd/cpu-rl78.c
+++ b/bfd/cpu-rl78.c
@@ -36,5 +36,6 @@ const bfd_arch_info_type bfd_rl78_arch =
   bfd_default_compatible,	/* Architecture comparison fn.  */
   bfd_default_scan,		/* String to architecture convert fn.  */
   bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* Next in list.  */
+  NULL,				/* Next in list.  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-rs6000.c b/bfd/cpu-rs6000.c
index d798d0eaaa..46ecca9247 100644
--- a/bfd/cpu-rs6000.c
+++ b/bfd/cpu-rs6000.c
@@ -46,68 +46,30 @@ rs6000_compatible (const bfd_arch_info_type *a,
   /*NOTREACHED*/
 }
 
-static const bfd_arch_info_type arch_info_struct[] =
-{
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_rs6000,
-    bfd_mach_rs6k_rs1,
-    "rs6000",
-    "rs6000:rs1",
-    3,
-    FALSE, /* not the default */
-    rs6000_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[1]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_rs6000,
-    bfd_mach_rs6k_rsc,
-    "rs6000",
-    "rs6000:rsc",
-    3,
-    FALSE, /* not the default */
-    rs6000_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[2]
-  },
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_rs6000,
-    bfd_mach_rs6k_rs2,
-    "rs6000",
-    "rs6000:rs2",
-    3,
-    FALSE, /* not the default */
-    rs6000_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0
+#define N(NUMBER, PRINT, DEFAULT, NEXT)			\
+  {							\
+    32,        /* Bits in a word.  */			\
+    32,        /* Bits in an address.  */		\
+    8,	       /* Bits in a byte.  */			\
+    bfd_arch_rs6000,					\
+    NUMBER,						\
+    "rs6000",						\
+    PRINT,						\
+    3,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    rs6000_compatible,					\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
   }
+
+static const bfd_arch_info_type arch_info_struct[3] =
+{
+  N (bfd_mach_rs6k_rs1, "rs6000:rs1", FALSE, arch_info_struct + 1),
+  N (bfd_mach_rs6k_rsc, "rs6000:rsc", FALSE, arch_info_struct + 2),
+  N (bfd_mach_rs6k_rs2, "rs6000:rs2", FALSE, NULL)
 };
 
 const bfd_arch_info_type bfd_rs6000_arch =
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_rs6000,
-    bfd_mach_rs6k,	/* POWER common architecture */
-    "rs6000",
-    "rs6000:6000",
-    3,
-    TRUE, /* the default */
-    rs6000_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[0]
-  };
+  N (bfd_mach_rs6k, "rs6000:6000", TRUE, arch_info_struct + 0);
diff --git a/bfd/cpu-rx.c b/bfd/cpu-rx.c
index 821edeb590..ecdb98ff59 100644
--- a/bfd/cpu-rx.c
+++ b/bfd/cpu-rx.c
@@ -22,68 +22,18 @@
 #include "bfd.h"
 #include "libbfd.h"
 
-static const bfd_arch_info_type arch_info_struct[] =
+#define N(mach, name, align, def, next)				\
+  { 32, 32, 8, bfd_arch_rx, mach, "rx", name, align, def,	\
+    bfd_default_compatible, bfd_default_scan,			\
+    bfd_arch_default_fill, next, 0 }
+
+static const bfd_arch_info_type arch_info_struct[3] =
 {
-  {
-    32,				/* Bits per word.  */
-    32,				/* Bits per address.  */
-    8,				/* Bits per byte.  */
-    bfd_arch_rx,		/* Architecture.  */
-    bfd_mach_rx,		/* Machine.  */
-    "rx",			/* Architecture name.  */
-    "rx",			/* Printable name.  */
-    3,				/* Section align power.  */
-    FALSE,			/* The default ?  */
-    bfd_default_compatible,	/* Architecture comparison fn.  */
-    bfd_default_scan,		/* String to architecture convert fn.  */
-    bfd_arch_default_fill,	/* Default fill.  */
-    &arch_info_struct[1]	/* Next in list.  */
-  },
-  {
-    32,				/* Bits per word.  */
-    32,				/* Bits per address.  */
-    8,				/* Bits per byte.  */
-    bfd_arch_rx,		/* Architecture.  */
-    bfd_mach_rx_v2,		/* Machine.  */
-    "rx:v2",			/* Architecture name.  */
-    "rx:v2",			/* Printable name.  */
-    3,				/* Section align power.  */
-    FALSE,			/* The default ?  */
-    bfd_default_compatible,	/* Architecture comparison fn.  */
-    bfd_default_scan,		/* String to architecture convert fn.  */
-    bfd_arch_default_fill,	/* Default fill.  */
-    &arch_info_struct[2]	/* Next in list.  */
-  },
-  {
-    32,				/* Bits per word.  */
-    32,				/* Bits per address.  */
-    8,				/* Bits per byte.  */
-    bfd_arch_rx,		/* Architecture.  */
-    bfd_mach_rx_v3,		/* Machine.  */
-    "rx:v3",			/* Architecture name.  */
-    "rx:v3",			/* Printable name.  */
-    3,				/* Section align power.  */
-    FALSE,			/* The default ?  */
-    bfd_default_compatible,	/* Architecture comparison fn.  */
-    bfd_default_scan,		/* String to architecture convert fn.  */
-    bfd_arch_default_fill,	/* Default fill.  */
-    NULL			/* Next in list.  */
-  },
+  N (bfd_mach_rx,    "rx",    3, FALSE, arch_info_struct + 1),
+  N (bfd_mach_rx_v2, "rx:v2", 3, FALSE, arch_info_struct + 2),
+  N (bfd_mach_rx_v3, "rx:v3", 3, FALSE, NULL)
 };
 
 const bfd_arch_info_type bfd_rx_arch =
-{
-  32,				/* Bits per word.  */
-  32,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_rx,			/* Architecture.  */
-  bfd_mach_rx,			/* Machine.  */
-  "rx",				/* Architecture name.  */
-  "rx",				/* Printable name.  */
-  4,				/* Section align power.  */
-  TRUE,				/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  bfd_default_scan,		/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  & arch_info_struct[0],	/* Next in list.  */
-};
+  N (bfd_mach_rx,    "rx",    4, TRUE, arch_info_struct + 0);
+
diff --git a/bfd/cpu-s12z.c b/bfd/cpu-s12z.c
index 1326359858..4ad2eafbb1 100644
--- a/bfd/cpu-s12z.c
+++ b/bfd/cpu-s12z.c
@@ -24,18 +24,19 @@
 
 const bfd_arch_info_type bfd_s12z_arch =
 {
-    16,	/* 16 bits in a word.  */
-    24,	/* 24 bits in an address.  */
-    8,	/* 8 bits in a byte.  */
-    bfd_arch_s12z,
-    0,
-    "s12z",
-    "s12z",
-    4, /* Section alignment power.  */
-    TRUE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
+  16,	/* Bits in a word.  */
+  24,	/* Bits in an address.  */
+  8,	/* Bits in a byte.  */
+  bfd_arch_s12z,
+  0,
+  "s12z",
+  "s12z",
+  4,    /* Section alignment power.  */
+  TRUE,
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0    /* Maximum offset of a reloc from the start of an insn.  */
 };
 
diff --git a/bfd/cpu-s390.c b/bfd/cpu-s390.c
index 8e379364c7..f906472435 100644
--- a/bfd/cpu-s390.c
+++ b/bfd/cpu-s390.c
@@ -25,19 +25,20 @@
 
 #define N(bits, number, print, is_default, next)	\
   {							\
-    bits,	       /* bits in a word */		\
-    bits,	       /* bits in an address */		\
-    8,		       /* bits in a byte */		\
+    bits,	       /* Bits in a word.  */		\
+    bits,	       /* Bits in an address.  */	\
+    8,		       /* Bits in a byte.  */		\
     bfd_arch_s390,					\
     number,						\
     "s390",						\
     print,						\
-    3,		       /* section alignment power */	\
+    3,		       /* Section alignment power */	\
     is_default,						\
     bfd_default_compatible,				\
     bfd_default_scan,					\
     bfd_arch_default_fill,				\
-    next						\
+    next,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
   }
 
 #if BFD_DEFAULT_TARGET_SIZE == 64
diff --git a/bfd/cpu-score.c b/bfd/cpu-score.c
index 576e9adbda..5bf9c6bdf2 100644
--- a/bfd/cpu-score.c
+++ b/bfd/cpu-score.c
@@ -43,11 +43,11 @@ compatible (const bfd_arch_info_type * a, const bfd_arch_info_type * b)
   return a;
 }
 
-#define N(addr_bits, machine, print, default, next)		\
+#define N(machine, print, default, next)			\
 {								\
-  32,				/* 16 bits in a word.  */	\
+  32,				/* Bits in a word.  */		\
   32,				/* Bits in an address.  */	\
-  8,				/* 8 bits in a byte.  */	\
+  8,				/* Bits in a byte.  */		\
   bfd_arch_score,						\
   machine,			/* Machine number.  */		\
   "score",			/* Architecture name.   */	\
@@ -57,13 +57,14 @@ compatible (const bfd_arch_info_type * a, const bfd_arch_info_type * b)
   compatible,							\
   bfd_default_scan,						\
   bfd_arch_default_fill,					\
-  next								\
+  next,								\
+  0 /* Maximum offset of a reloc from the start of an insn.  */ \
 }
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N (16, bfd_mach_score3, "score3", FALSE, NULL),
+  N (bfd_mach_score3, "score3", FALSE, NULL),
 };
 
 const bfd_arch_info_type bfd_score_arch =
-  N (16, bfd_mach_score7, "score7", TRUE, & arch_info_struct[0]);
+  N (bfd_mach_score7, "score7", TRUE, & arch_info_struct[0]);
diff --git a/bfd/cpu-sh.c b/bfd/cpu-sh.c
index 2bfaad7e63..37edace29b 100644
--- a/bfd/cpu-sh.c
+++ b/bfd/cpu-sh.c
@@ -24,333 +24,50 @@
 #include "libbfd.h"
 #include "../opcodes/sh-opc.h"
 
-#define SH_NEXT				   arch_info_struct + 0
-#define SH2_NEXT			   arch_info_struct + 1
-#define SH2E_NEXT			   arch_info_struct + 2
-#define SH_DSP_NEXT			   arch_info_struct + 3
-#define SH3_NEXT			   arch_info_struct + 4
-#define SH3_NOMMU_NEXT			   arch_info_struct + 5
-#define SH3_DSP_NEXT			   arch_info_struct + 6
-#define SH3E_NEXT			   arch_info_struct + 7
-#define SH4_NEXT			   arch_info_struct + 8
-#define SH4A_NEXT			   arch_info_struct + 9
-#define SH4AL_DSP_NEXT			   arch_info_struct + 10
-#define SH4_NOFPU_NEXT			   arch_info_struct + 11
-#define SH4_NOMMU_NOFPU_NEXT		   arch_info_struct + 12
-#define SH4A_NOFPU_NEXT			   arch_info_struct + 13
-#define SH2A_NEXT			   arch_info_struct + 14
-#define SH2A_NOFPU_NEXT			   arch_info_struct + 15
-#define SH2A_NOFPU_OR_SH4_NOMMU_NOFPU_NEXT arch_info_struct + 16
-#define SH2A_NOFPU_OR_SH3_NOMMU_NEXT	   arch_info_struct + 17
-#define SH2A_OR_SH4_NEXT		   arch_info_struct + 18
-#define SH2A_OR_SH3E_NEXT		   NULL
+
+#define N(NUMBER, PRINT, DEFAULT, NEXT)			\
+  {							\
+    32,     /* Bits in a word.  */			\
+    32,     /* Bits in an address.  */			\
+    8,	    /* Bits in a byte.  */			\
+    bfd_arch_sh,					\
+    NUMBER,						\
+    "sh",						\
+    PRINT,						\
+    1,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh2,
-    "sh",			/* Architecture name.  */
-    "sh2",			/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH2_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh2e,
-    "sh",			/* Architecture name.  */
-    "sh2e",			/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH2E_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh_dsp,
-    "sh",			/* Architecture name.   */
-    "sh-dsp",			/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH_DSP_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh3,
-    "sh",			/* Architecture name.   */
-    "sh3",			/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH3_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh3_nommu,
-    "sh",			/* Architecture name.   */
-    "sh3-nommu",		/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH3_NOMMU_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh3_dsp,
-    "sh",			/* Architecture name.   */
-    "sh3-dsp",			/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH3_DSP_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh3e,
-    "sh",			/* Architecture name.   */
-    "sh3e",			/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH3E_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh4,
-    "sh",			/* Architecture name.   */
-    "sh4",			/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH4_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh4a,
-    "sh",			/* Architecture name.   */
-    "sh4a",			/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH4A_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh4al_dsp,
-    "sh",			/* Architecture name.   */
-    "sh4al-dsp",		/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH4AL_DSP_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh4_nofpu,
-    "sh",			/* Architecture name.   */
-    "sh4-nofpu",		/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH4_NOFPU_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh4_nommu_nofpu,
-    "sh",			/* Architecture name.   */
-    "sh4-nommu-nofpu",		/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH4_NOMMU_NOFPU_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh4a_nofpu,
-    "sh",			/* Architecture name.   */
-    "sh4a-nofpu",		/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH4A_NOFPU_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh2a,
-    "sh",			/* Architecture name.  */
-    "sh2a",			/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH2A_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh2a_nofpu,
-    "sh",			/* Architecture name.  */
-    "sh2a-nofpu",		/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH2A_NOFPU_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu,
-    "sh",			/* Architecture name.  */
-    "sh2a-nofpu-or-sh4-nommu-nofpu",		/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH2A_NOFPU_OR_SH4_NOMMU_NOFPU_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh2a_nofpu_or_sh3_nommu,
-    "sh",			/* Architecture name. .  */
-    "sh2a-nofpu-or-sh3-nommu",	/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH2A_NOFPU_OR_SH3_NOMMU_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh2a_or_sh4,
-    "sh",			/* Architecture name.  */
-    "sh2a-or-sh4",		/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH2A_OR_SH4_NEXT
-  },
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    8,				/* 8 bits in a byte.  */
-    bfd_arch_sh,
-    bfd_mach_sh2a_or_sh3e,
-    "sh",			/* Architecture name.  */
-    "sh2a-or-sh3e",		/* Machine name.  */
-    1,
-    FALSE,			/* Not the default.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    SH2A_OR_SH3E_NEXT
-  },
+  N (bfd_mach_sh2,          "sh2",       FALSE, arch_info_struct + 1),
+  N (bfd_mach_sh2e,         "sh2e",      FALSE, arch_info_struct + 2),
+  N (bfd_mach_sh_dsp,       "sh-dsp",    FALSE, arch_info_struct + 3),
+  N (bfd_mach_sh3,          "sh3",       FALSE, arch_info_struct + 4),
+  N (bfd_mach_sh3_nommu,    "sh3-nommu", FALSE, arch_info_struct + 5),
+  N (bfd_mach_sh3_dsp,      "sh3-dsp",   FALSE, arch_info_struct + 6),
+  N (bfd_mach_sh3e,         "sh3e",      FALSE, arch_info_struct + 7),
+  N (bfd_mach_sh4,          "sh4",       FALSE, arch_info_struct + 8),
+  N (bfd_mach_sh4a,         "sh4a",      FALSE, arch_info_struct + 9),
+  N (bfd_mach_sh4al_dsp,    "sh4al-dsp", FALSE, arch_info_struct + 10),
+  N (bfd_mach_sh4_nofpu,    "sh4-nofpu", FALSE, arch_info_struct + 11),
+  N (bfd_mach_sh4_nommu_nofpu, "sh4-nommu-nofpu", FALSE, arch_info_struct + 12),
+  N (bfd_mach_sh4a_nofpu,   "sh4a-nofpu", FALSE, arch_info_struct + 13),
+  N (bfd_mach_sh2a,         "sh2a",       FALSE, arch_info_struct + 14),
+  N (bfd_mach_sh2a_nofpu,   "sh2a-nofpu", FALSE, arch_info_struct + 15),
+  N (bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu, "sh2a-nofpu-or-sh4-nommu-nofpu", FALSE, arch_info_struct + 16),
+  N (bfd_mach_sh2a_nofpu_or_sh3_nommu, "sh2a-nofpu-or-sh3-nommu", FALSE, arch_info_struct + 17),
+  N (bfd_mach_sh2a_or_sh4,  "sh2a-or-sh4",  FALSE, arch_info_struct + 18),
+  N (bfd_mach_sh2a_or_sh3e, "sh2a-or-sh3e", FALSE, NULL)
 };
 
 const bfd_arch_info_type bfd_sh_arch =
-{
-  32,				/* 32 bits in a word.  */
-  32,				/* 32 bits in an address.  */
-  8,				/* 8 bits in a byte.  */
-  bfd_arch_sh,
-  bfd_mach_sh,
-  "sh",				/* Architecture name.   */
-  "sh",				/* Machine name.  */
-  1,
-  TRUE,				/* The default machine.  */
-  bfd_default_compatible,
-  bfd_default_scan,
-  bfd_arch_default_fill,
-  SH_NEXT
-};
-
+  N (bfd_mach_sh, "sh", TRUE, arch_info_struct + 0);
 
 /* This table defines the mappings from the BFD internal numbering
    system to the opcodes internal flags system.
diff --git a/bfd/cpu-sparc.c b/bfd/cpu-sparc.c
index a1eb4c227d..e7f30fb342 100644
--- a/bfd/cpu-sparc.c
+++ b/bfd/cpu-sparc.c
@@ -22,338 +22,48 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+#define N(BITS, NUMBER, PRINT, DEFAULT, NEXT) \
+  {							\
+    BITS,      /* Bits in a word.  */			\
+    BITS,      /* Bits in an address.  */		\
+    8,	       /* Bits in a byte.  */			\
+    bfd_arch_sparc,					\
+    NUMBER,						\
+    "sparc",						\
+    PRINT,						\
+    3,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_sparclet,
-    "sparc",
-    "sparc:sparclet",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[1],
-  },
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_sparclite,
-    "sparc",
-    "sparc:sparclite",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[2],
-  },
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v8plus,
-    "sparc",
-    "sparc:v8plus",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[3],
-  },
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v8plusa,
-    "sparc",
-    "sparc:v8plusa",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[4],
-  },
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_sparclite_le,
-    "sparc",
-    "sparc:sparclite_le",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[5],
-  },
-  {
-    64,	/* bits in a word */
-    64,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v9,
-    "sparc",
-    "sparc:v9",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[6],
-  },
-  {
-    64,	/* bits in a word */
-    64,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v9a,
-    "sparc",
-    "sparc:v9a",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[7],
-  },
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v8plusb,
-    "sparc",
-    "sparc:v8plusb",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[8],
-  },
-  {
-    64,	/* bits in a word */
-    64,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v9b,
-    "sparc",
-    "sparc:v9b",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[9],
-  },
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v8plusc,
-    "sparc",
-    "sparc:v8plusc",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[10],
-  },
-  {
-    64,	/* bits in a word */
-    64,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v9c,
-    "sparc",
-    "sparc:v9c",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[11],
-  },
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v8plusd,
-    "sparc",
-    "sparc:v8plusd",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[12],
-  },
-  {
-    64,	/* bits in a word */
-    64,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v9d,
-    "sparc",
-    "sparc:v9d",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[13],
-  },
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v8pluse,
-    "sparc",
-    "sparc:v8pluse",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[14],
-  },
-  {
-    64,	/* bits in a word */
-    64,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v9e,
-    "sparc",
-    "sparc:v9e",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[15],
-  },
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v8plusv,
-    "sparc",
-    "sparc:v8plusv",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[16],
-  },
-  {
-    64,	/* bits in a word */
-    64,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v9v,
-    "sparc",
-    "sparc:v9v",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[17],
-  },
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v8plusm,
-    "sparc",
-    "sparc:v8plusm",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[18],
-  },
-  {
-    64,	/* bits in a word */
-    64,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v9m,
-    "sparc",
-    "sparc:v9m",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[19],
-  },
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v8plusm8,
-    "sparc",
-    "sparc:v8plusm8",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[20],
-  },
-  {
-    64,	/* bits in a word */
-    64,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc_v9m8,
-    "sparc",
-    "sparc:v9m8",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  }
+  N (32, bfd_mach_sparc_sparclet,     "sparc:sparclet",     FALSE, arch_info_struct + 1),
+  N (32, bfd_mach_sparc_sparclite,    "sparc:sparclite",    FALSE, arch_info_struct + 2),
+  N (32, bfd_mach_sparc_v8plus,       "sparc:v8plus",       FALSE, arch_info_struct + 3),
+  N (32, bfd_mach_sparc_v8plusa,      "sparc:v8plusa",      FALSE, arch_info_struct + 4),
+  N (32, bfd_mach_sparc_sparclite_le, "sparc:sparclite_le", FALSE, arch_info_struct + 5),
+  N (64, bfd_mach_sparc_v9,           "sparc:v9",           FALSE, arch_info_struct + 6),
+  N (64, bfd_mach_sparc_v9a,          "sparc:v9a",          FALSE, arch_info_struct + 7),
+  N (32, bfd_mach_sparc_v8plusb,      "sparc:v8plusb",      FALSE, arch_info_struct + 8),
+  N (64, bfd_mach_sparc_v9b,          "sparc:v9b",          FALSE, arch_info_struct + 9),
+  N (32, bfd_mach_sparc_v8plusc,      "sparc:v8plusc",      FALSE, arch_info_struct + 10),
+  N (64, bfd_mach_sparc_v9c,          "sparc:v9c",          FALSE, arch_info_struct + 11),
+  N (32, bfd_mach_sparc_v8plusd,      "sparc:v8plusd",      FALSE, arch_info_struct + 12),
+  N (64, bfd_mach_sparc_v9d,          "sparc:v9d",          FALSE, arch_info_struct + 13),
+  N (32, bfd_mach_sparc_v8pluse,      "sparc:v8pluse",      FALSE, arch_info_struct + 14),
+  N (64, bfd_mach_sparc_v9e,          "sparc:v9e",          FALSE, arch_info_struct + 15),
+  N (32, bfd_mach_sparc_v8plusv,      "sparc:v8plusv",      FALSE, arch_info_struct + 16),
+  N (64, bfd_mach_sparc_v9v,          "sparc:v9v",          FALSE, arch_info_struct + 17),
+  N (32, bfd_mach_sparc_v8plusm,      "sparc:v8plusm",      FALSE, arch_info_struct + 18),
+  N (64, bfd_mach_sparc_v9m,          "sparc:v9m",          FALSE, arch_info_struct + 19),
+  N (32, bfd_mach_sparc_v8plusm8,     "sparc:v8plusm8",     FALSE, arch_info_struct + 20),
+  N (64, bfd_mach_sparc_v9m8,         "sparc:v9m8",         FALSE, NULL)
 };
 
 const bfd_arch_info_type bfd_sparc_arch =
-  {
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_sparc,
-    bfd_mach_sparc,
-    "sparc",
-    "sparc",
-    3,
-    TRUE, /* the default */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &arch_info_struct[0],
-  };
+  N (32, bfd_mach_sparc, "sparc", TRUE, arch_info_struct);
diff --git a/bfd/cpu-spu.c b/bfd/cpu-spu.c
index 8f9e755be8..af66045319 100644
--- a/bfd/cpu-spu.c
+++ b/bfd/cpu-spu.c
@@ -20,7 +20,6 @@
 #include "bfd.h"
 #include "libbfd.h"
 
-
 static const bfd_arch_info_type *
 spu_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
 {
@@ -35,21 +34,20 @@ spu_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
   /*NOTREACHED*/
 }
 
-const bfd_arch_info_type bfd_spu_arch[] =
+const bfd_arch_info_type bfd_spu_arch =
 {
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_spu,	/* architecture */
-    bfd_mach_spu,	/* machine */
-    "spu",		/* architecture name */
-    "spu:256K",		/* printable name */
-    3,			/* aligned power */
-    TRUE,		/* the default machine for the architecture */
-    spu_compatible,	/* the spu is only compatible with itself, see above */
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,			/* next -- there are none! */
-  }
+  32,			/* Bits in a word.  */
+  32,			/* Bits in an address.  */
+  8,			/* Bits in a byte.  */
+  bfd_arch_spu,		/* Architecture number.  */
+  bfd_mach_spu,		/* Machine number.  */
+  "spu",		/* Architecture name.  */
+  "spu:256K",		/* Printable name.  */
+  3,			/* Section alignment power.  */
+  TRUE,			/* Default machine.  */
+  spu_compatible,	/* The spu is only compatible with itself, see above.  */
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,			/* Next -- there are none!  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-tic30.c b/bfd/cpu-tic30.c
index 3296daf2ae..606d66353b 100644
--- a/bfd/cpu-tic30.c
+++ b/bfd/cpu-tic30.c
@@ -24,17 +24,18 @@
 
 const bfd_arch_info_type bfd_tic30_arch =
 {
-  32,				/* 32 bits in a word */
-  32,				/* 32 bits in an address */
-  8,				/* 8 bits in a byte */
+  32,				/* Bits in a word.  */
+  32,				/* Bits in an address.  */
+  8,				/* Bits in a byte.  */
   bfd_arch_tic30,
-  0,				/* only 1 machine */
+  0,				/* Only 1 machine.  */
   "tic30",
   "tms320c30",
   2,
-  TRUE,				/* the one and only */
+  TRUE,				/* The one and only.  */
   bfd_default_compatible,
   bfd_default_scan,
   bfd_arch_default_fill,
-  0,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-tic4x.c b/bfd/cpu-tic4x.c
index f8dbf98065..cf87bfedf5 100644
--- a/bfd/cpu-tic4x.c
+++ b/bfd/cpu-tic4x.c
@@ -45,39 +45,26 @@ tic4x_scan (const struct bfd_arch_info *info,
   return FALSE;
 }
 
+#define N(NUMBER, NAME, PRINT, DEFAULT, NEXT)		\
+  {							\
+    32,        /* Bits in a word.  */			\
+    32,        /* Bits in an address.  */		\
+    32,	       /* Bits in a byte.  */			\
+    bfd_arch_tic4x,					\
+    NUMBER,						\
+    NAME,						\
+    PRINT,						\
+    0,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    tic4x_scan,						\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
 
 const bfd_arch_info_type bfd_tic3x_arch =
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    32,				/* 32 bits in a byte.  */
-    bfd_arch_tic4x,
-    bfd_mach_tic3x,		/* Machine number.  */
-    "tic3x",			/* Architecture name.  */
-    "tms320c3x",		/* Printable name.  */
-    0,				/* Alignment power.  */
-    FALSE,			/* Not the default architecture.  */
-    bfd_default_compatible,
-    tic4x_scan,
-    bfd_arch_default_fill,
-    0
-  };
+  N (bfd_mach_tic3x, "tic3x", "tms320c3x", FALSE, NULL);
 
 const bfd_arch_info_type bfd_tic4x_arch =
-  {
-    32,				/* 32 bits in a word.  */
-    32,				/* 32 bits in an address.  */
-    32,				/* 32 bits in a byte.  */
-    bfd_arch_tic4x,
-    bfd_mach_tic4x,		/* Machine number.  */
-    "tic4x",			/* Architecture name.  */
-    "tms320c4x",		/* Printable name.  */
-    0,				/* Alignment power.  */
-    TRUE,			/* The default architecture.  */
-    bfd_default_compatible,
-    tic4x_scan,
-    bfd_arch_default_fill,
-    &bfd_tic3x_arch,
-  };
-
-
+  N (bfd_mach_tic4x, "tic4x", "tms320c4x", TRUE, &bfd_tic3x_arch);
diff --git a/bfd/cpu-tic54x.c b/bfd/cpu-tic54x.c
index 7c9505dc8b..67e6e6ca80 100644
--- a/bfd/cpu-tic54x.c
+++ b/bfd/cpu-tic54x.c
@@ -24,17 +24,18 @@
 
 const bfd_arch_info_type bfd_tic54x_arch =
 {
-  16,				/* 16 bits in a word */
-  16,				/* 16 bits in an address (except '548) */
-  16,				/* 16 bits in a byte */
+  16,				/* Bits in a word.  */
+  16,				/* Bits in an address (except '548).  */
+  16,				/* Bits in a byte.  */
   bfd_arch_tic54x,
-  0,				/* only 1 machine */
+  0,				/* Only 1 machine.  */
   "tic54x",
   "tms320c54x",
   1,
-  TRUE,				/* the one and only */
+  TRUE,				/* The one and only.  */
   bfd_default_compatible,
   bfd_default_scan,
   bfd_arch_default_fill,
-  0,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-tic6x.c b/bfd/cpu-tic6x.c
index bb9439480e..286927ba63 100644
--- a/bfd/cpu-tic6x.c
+++ b/bfd/cpu-tic6x.c
@@ -23,18 +23,19 @@
 #include "libbfd.h"
 
 const bfd_arch_info_type bfd_tic6x_arch =
-  {
-    32, /* 32 bits in a word.  */
-    32, /* 32 bits in an address.  */
-    8, /* 8 bits in a byte.  */
-    bfd_arch_tic6x, /* Architecture.  */
-    0, /* No BFD machine numbers needed.  */
-    "tic6x", /* Architecture name.  */
-    "tic6x", /* Printable name.  */
-    2, /* Section alignment power.  */
-    TRUE, /* Default machine for this architecture.  */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+{
+  32, /* Bits in a word.  */
+  32, /* Bits in an address.  */
+  8,  /* Bits in a byte.  */
+  bfd_arch_tic6x, /* Architecture.  */
+  0,  /* No BFD machine numbers needed.  */
+  "tic6x", /* Architecture name.  */
+  "tic6x", /* Printable name.  */
+  2, /* Section alignment power.  */
+  TRUE, /* Default machine for this architecture.  */
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
+};
diff --git a/bfd/cpu-tic80.c b/bfd/cpu-tic80.c
index 24261f438e..2fcbd9ddc4 100644
--- a/bfd/cpu-tic80.c
+++ b/bfd/cpu-tic80.c
@@ -24,18 +24,19 @@
 #include "libbfd.h"
 
 const bfd_arch_info_type bfd_tic80_arch =
-  {
-    32,				/* 32 bits in a word */
-    32,				/* 32 bits in an address */
-    8,				/* 8 bits in a byte */
-    bfd_arch_tic80,		/* bfd_architecture enum */
-    0,				/* only 1 machine */
-    "tic80",			/* architecture name */
-    "tic80",			/* printable name */
-    2,				/* section alignment power */
-    TRUE,			/* default machine for architecture */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    NULL,				/* Pointer to next in chain */
-  };
+{
+  32,				/* Bits in a word.  */
+  32,				/* Bits in an address.  */
+  8,				/* Bits in a byte.  */
+  bfd_arch_tic80,		/* Architecture number.  */
+  0,				/* Only 1 machine.  */
+  "tic80",			/* Architecture name.  */
+  "tic80",			/* Printable name.  */
+  2,				/* Section alignment power.  */
+  TRUE,				/* Default machine.  */
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,				/* Pointer to next in chain.  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
+};
diff --git a/bfd/cpu-tilegx.c b/bfd/cpu-tilegx.c
index cfe08b3f9a..633dde8d97 100644
--- a/bfd/cpu-tilegx.c
+++ b/bfd/cpu-tilegx.c
@@ -22,36 +22,27 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+#define N(BITS, NUMBER, PRINT, DEFAULT, NEXT)		\
+  {							\
+    BITS,      /* Bits in a word.  */			\
+    BITS,      /* Bits in an address.  */		\
+    8,	       /* Bits in a byte.  */			\
+    bfd_arch_tilegx,					\
+    NUMBER,						\
+    "tilegx",						\
+    PRINT,						\
+    3,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
 const bfd_arch_info_type bfd_tilegx32_arch =
-  {
-    32, /* 32 bits in a word */
-    32, /* 32 bits in an address */
-    8,  /* 8 bits in a byte */
-    bfd_arch_tilegx,
-    bfd_mach_tilegx32,
-    "tilegx32",
-    "tilegx32",
-    3,
-    FALSE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+  N (32, bfd_mach_tilegx32, "tilegx32", FALSE, NULL);
 
 const bfd_arch_info_type bfd_tilegx_arch =
-  {
-    64, /* 64 bits in a word */
-    64, /* 64 bits in an address */
-    8,  /* 8 bits in a byte */
-    bfd_arch_tilegx,
-    bfd_mach_tilegx,
-    "tilegx",
-    "tilegx",
-    3,
-    TRUE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_tilegx32_arch,
-  };
+  N (64, bfd_mach_tilegx, "tilegx", TRUE, &bfd_tilegx32_arch);
+
diff --git a/bfd/cpu-tilepro.c b/bfd/cpu-tilepro.c
index bdd6aee9d2..82ad8d2d04 100644
--- a/bfd/cpu-tilepro.c
+++ b/bfd/cpu-tilepro.c
@@ -23,18 +23,19 @@
 #include "libbfd.h"
 
 const bfd_arch_info_type bfd_tilepro_arch =
-  {
-    32, /* 32 bits in a word */
-    32, /* 32 bits in an address */
-    8,  /* 8 bits in a byte */
-    bfd_arch_tilepro,
-    bfd_mach_tilepro,
-    "tilepro",
-    "tilepro",
-    3,
-    TRUE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+{
+  32, /* Bits in a word.  */
+  32, /* Bits in an address.  */
+  8,  /* Bits in a byte.  */
+  bfd_arch_tilepro,
+  bfd_mach_tilepro,
+  "tilepro",
+  "tilepro",
+  3,
+  TRUE,
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
+};
diff --git a/bfd/cpu-v850.c b/bfd/cpu-v850.c
index d4c86938fe..0daea285ef 100644
--- a/bfd/cpu-v850.c
+++ b/bfd/cpu-v850.c
@@ -24,23 +24,18 @@
 #include "safe-ctype.h"
 
 #define N(number, print, default, next)  \
-{  32, 32, 8, bfd_arch_v850, number, "v850", print ":old-gcc-abi", 2, default, \
-   bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next }
+ { 32, 32, 8, bfd_arch_v850, number, "v850", print ":old-gcc-abi", 2, default, \
+   bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next, 0 }
 
-#define NEXT NULL
-
-static const bfd_arch_info_type arch_info_struct[] =
+static const bfd_arch_info_type arch_info_struct[6] =
 {
-  N (bfd_mach_v850e3v5, "v850e3v5",	FALSE, & arch_info_struct[1]),
-  N (bfd_mach_v850e3v5, "v850e2v4",	FALSE, & arch_info_struct[2]),
-  N (bfd_mach_v850e2v3, "v850e2v3",	FALSE, & arch_info_struct[3]),
-  N (bfd_mach_v850e2,	"v850e2",	FALSE, & arch_info_struct[4]),
-  N (bfd_mach_v850e1,	"v850e1",	FALSE, & arch_info_struct[5]),
-  N (bfd_mach_v850e,	"v850e",	FALSE, NULL)
+  N (bfd_mach_v850e3v5, "v850e3v5", FALSE, arch_info_struct + 1),
+  N (bfd_mach_v850e3v5, "v850e2v4", FALSE, arch_info_struct + 2),
+  N (bfd_mach_v850e2v3, "v850e2v3", FALSE, arch_info_struct + 3),
+  N (bfd_mach_v850e2,	"v850e2",   FALSE, arch_info_struct + 4),
+  N (bfd_mach_v850e1,	"v850e1",   FALSE, arch_info_struct + 5),
+  N (bfd_mach_v850e,	"v850e",    FALSE, NULL)
 };
 
-#undef  NEXT
-#define NEXT & arch_info_struct[0]
-
 const bfd_arch_info_type bfd_v850_arch =
-  N (bfd_mach_v850, "v850", TRUE, NEXT);
+  N (bfd_mach_v850,     "v850",     TRUE,  arch_info_struct + 0);
diff --git a/bfd/cpu-v850_rh850.c b/bfd/cpu-v850_rh850.c
index f7cd9207bd..4c84226f23 100644
--- a/bfd/cpu-v850_rh850.c
+++ b/bfd/cpu-v850_rh850.c
@@ -24,8 +24,8 @@
 #include "safe-ctype.h"
 
 #define R(number, print, default, next)  \
-{  32, 32, 8, bfd_arch_v850_rh850, number, "v850", print, 2, default, \
-   bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next }
+ { 32, 32, 8, bfd_arch_v850_rh850, number, "v850", print, 2, default, \
+   bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next, 0 }
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
diff --git a/bfd/cpu-vax.c b/bfd/cpu-vax.c
index c4c9f08078..3e9a4024a7 100644
--- a/bfd/cpu-vax.c
+++ b/bfd/cpu-vax.c
@@ -24,18 +24,19 @@
 #include "libbfd.h"
 
 const bfd_arch_info_type bfd_vax_arch =
-  {
-    32,	/* 32 bits in a word */
-    32,	/* 32 bits in an address */
-    8,	/* 8 bits in a byte */
-    bfd_arch_vax,
-    0,	/* only 1 machine */
-    "vax",
-    "vax",
-    3,
-    TRUE, /* the one and only */
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
-  };
+{
+  32,	/* Bits in a word.  */
+  32,	/* Bits in an address.  */
+  8,	/* Bits in a byte.  */
+  bfd_arch_vax,
+  0,	/* Only 1 machine.  */
+  "vax",
+  "vax",
+  3,
+  TRUE, /* The one and only.  */
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
+};
diff --git a/bfd/cpu-visium.c b/bfd/cpu-visium.c
index 0543839c66..a1204de991 100644
--- a/bfd/cpu-visium.c
+++ b/bfd/cpu-visium.c
@@ -25,17 +25,18 @@
 
 const bfd_arch_info_type bfd_visium_arch =
 {
-  32,				/* bits per word */
-  32,				/* bits per address */
-  8,				/* bits per byte */
-  bfd_arch_visium,		/* architecture */
-  bfd_mach_visium,		/* machine */
-  "visium",			/* architecture name */
-  "visium",			/* printable name */
-  2,				/* section align power */
-  TRUE,				/* the default ? */
-  bfd_default_compatible,	/* architecture comparison fn */
-  bfd_default_scan,		/* string to architecture convert fn */
-  bfd_arch_default_fill,	/* default fill */
-  NULL				/* next in list */
+  32,				/* Bits per word.  */
+  32,				/* Bits per address.  */
+  8,				/* Bits per byte.  */
+  bfd_arch_visium,		/* Architecture number.  */
+  bfd_mach_visium,		/* Machine number.  */
+  "visium",			/* Architecture name.  */
+  "visium",			/* Machine name.  */
+  2,				/* Section align power.  */
+  TRUE,				/* The default ?  */
+  bfd_default_compatible,	/* Architecture comparison fn.  */
+  bfd_default_scan,		/* String to architecture convert fn.  */
+  bfd_arch_default_fill,	/* Default fill.  */
+  NULL,				/* Next in list.  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-wasm32.c b/bfd/cpu-wasm32.c
index 7f2f5629c9..142e3c2853 100644
--- a/bfd/cpu-wasm32.c
+++ b/bfd/cpu-wasm32.c
@@ -24,8 +24,8 @@
 #include "libiberty.h"
 
 #define N(number, print, default, next)  \
-{  32, 32, 8, bfd_arch_wasm32, number, "wasm32", "wasm32", 4, default, bfd_default_compatible, \
-   bfd_default_scan, bfd_arch_default_fill, next }
+ { 32, 32, 8, bfd_arch_wasm32, number, "wasm32", "wasm32", 4, default, bfd_default_compatible, \
+   bfd_default_scan, bfd_arch_default_fill, next, 0 }
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
diff --git a/bfd/cpu-xc16x.c b/bfd/cpu-xc16x.c
index 5a3f78b723..3605c3c34b 100644
--- a/bfd/cpu-xc16x.c
+++ b/bfd/cpu-xc16x.c
@@ -24,53 +24,30 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+#define N(BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT)	\
+  {							\
+    16,        /* Bits in a word.  */			\
+    BITS_ADDR, /* Bits in an address.  */		\
+    8,	       /* Bits in a byte.  */			\
+    bfd_arch_xc16x,					\
+    NUMBER,						\
+    "xc16x",						\
+    PRINT,						\
+    1,		/* Section alignment power.  */		\
+    DEFAULT,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    NEXT,						\
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
+
 const bfd_arch_info_type xc16xs_info_struct =
-{
-  16,				/* Bits per word.  */
-  16,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_xc16x,		/* Architecture.  */
-  bfd_mach_xc16xs,		/* Machine.  */
-  "xc16x",			/* Architecture name.  */
-  "xc16xs",			/* Printable name.  */
-  1,				/* Section alignment - 16 bit.  */
-  TRUE,				/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  bfd_default_scan,		/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* Next in list.  */
-};
+  N (16, bfd_mach_xc16xs, "xc16xs", FALSE, NULL);
 
 const bfd_arch_info_type xc16xl_info_struct =
-{
-  16,				/* Bits per word.  */
-  32,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_xc16x,		/* Architecture.  */
-  bfd_mach_xc16xl,		/* Machine.  */
-  "xc16x",			/* Architecture name.  */
-  "xc16xl",			/* Printable name.  */
-  1,				/* Section alignment - 16 bit.  */
-  TRUE,				/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  bfd_default_scan,		/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  & xc16xs_info_struct		/* Next in list.  */
-};
+  N (32, bfd_mach_xc16xl, "xc16xl", FALSE, & xc16xs_info_struct);
 
 const bfd_arch_info_type bfd_xc16x_arch =
-{
-  16,				/* Bits per word.  */
-  16,				/* Bits per address.  */
-  8,				/* Bits per byte.  */
-  bfd_arch_xc16x,		/* Architecture.  */
-  bfd_mach_xc16x,		/* Machine.  */
-  "xc16x",			/* Architecture name.  */
-  "xc16x",			/* Printable name.  */
-  1,				/* Section alignment - 16 bit.  */
-  TRUE,				/* The default ?  */
-  bfd_default_compatible,	/* Architecture comparison fn.  */
-  bfd_default_scan,		/* String to architecture convert fn.  */
-  bfd_arch_default_fill,	/* Default fill.  */
-  & xc16xl_info_struct		/* Next in list.  */
-};
+  N (16, bfd_mach_xc16x, "xc16x", TRUE, & xc16xl_info_struct);
+
diff --git a/bfd/cpu-xgate.c b/bfd/cpu-xgate.c
index 85f1861946..720a7382a5 100644
--- a/bfd/cpu-xgate.c
+++ b/bfd/cpu-xgate.c
@@ -24,17 +24,18 @@
 
 const bfd_arch_info_type bfd_xgate_arch =
 {
-    16, /* 16 bits in a word.  */
-    32, /* 32 bits used as 16 bit address and PPAGE value.  */
-    8,  /* 8 bits in a byte.  */
-    bfd_arch_xgate,
-    bfd_mach_xgate,
-    "xgate",
-    "xgate",
-    4,	/* Section alignment power.  */
-    TRUE,
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    0,
+  16, /* Bits in a word.  */
+  32, /* Bits used as 16 bit address and PPAGE value.  */
+  8,  /* Bits in a byte.  */
+  bfd_arch_xgate,
+  bfd_mach_xgate,
+  "xgate",
+  "xgate",
+  4,	/* Section alignment power.  */
+  TRUE,
+  bfd_default_compatible,
+  bfd_default_scan,
+  bfd_arch_default_fill,
+  NULL,
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-xstormy16.c b/bfd/cpu-xstormy16.c
index f6e461dbe7..84aa391a9c 100644
--- a/bfd/cpu-xstormy16.c
+++ b/bfd/cpu-xstormy16.c
@@ -24,17 +24,18 @@
 
 const bfd_arch_info_type bfd_xstormy16_arch =
 {
-  16,				/* bits per word */
-  32,				/* bits per address */
-  8,				/* bits per byte */
-  bfd_arch_xstormy16,		/* architecture */
-  bfd_mach_xstormy16,		/* machine */
-  "xstormy16",			/* architecture name */
-  "xstormy16",			/* printable name */
-  2,				/* section align power */
-  TRUE,				/* the default ? */
-  bfd_default_compatible,	/* architecture comparison fn */
-  bfd_default_scan,		/* string to architecture convert fn */
+  16,				/* Bits per word.  */
+  32,				/* Bits per address.  */
+  8,				/* Bits per byte.  */
+  bfd_arch_xstormy16,		/* Architecture.  */
+  bfd_mach_xstormy16,		/* Machine.  */
+  "xstormy16",			/* Architecture name.  */
+  "xstormy16",			/* Printable name.  */
+  2,				/* Section align power.  */
+  TRUE,				/* The default ?  */
+  bfd_default_compatible,	/* Architecture comparison fn.  */
+  bfd_default_scan,		/* String to architecture convert fn.  */
   bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* next in list */
+  NULL,				/* Next in list.  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-xtensa.c b/bfd/cpu-xtensa.c
index 24e25a31a1..47668d6e2a 100644
--- a/bfd/cpu-xtensa.c
+++ b/bfd/cpu-xtensa.c
@@ -36,5 +36,6 @@ const bfd_arch_info_type bfd_xtensa_arch =
   bfd_default_compatible,	/* Architecture comparison fn.  */
   bfd_default_scan,		/* String to architecture convert fn.  */
   bfd_arch_default_fill,	/* Default fill.  */
-  NULL				/* Next in list.  */
+  NULL,				/* Next in list.  */
+  0 /* Maximum offset of a reloc from the start of an insn.  */
 };
diff --git a/bfd/cpu-z80.c b/bfd/cpu-z80.c
index 145aa4f7a9..7d3b8649e3 100644
--- a/bfd/cpu-z80.c
+++ b/bfd/cpu-z80.c
@@ -41,8 +41,8 @@ compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
 }
 
 #define N(name,print,default,next)  \
-{ 16, 16, 8, bfd_arch_z80, name, "z80", print, 0, default, \
-  compatible, bfd_default_scan, bfd_arch_default_fill, next }
+ { 16, 16, 8, bfd_arch_z80, name, "z80", print, 0, default, \
+   compatible, bfd_default_scan, bfd_arch_default_fill, next, 0 }
 
 #define M(n) &arch_info_struct[n]
 
diff --git a/bfd/cpu-z8k.c b/bfd/cpu-z8k.c
index 48c17debb2..56ee56aac0 100644
--- a/bfd/cpu-z8k.c
+++ b/bfd/cpu-z8k.c
@@ -37,12 +37,12 @@ compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
 static const bfd_arch_info_type arch_info_struct[] =
 {
   { 32, 16, 8, bfd_arch_z8k, bfd_mach_z8002, "z8k", "z8002", 1, FALSE,
-    compatible, bfd_default_scan, bfd_arch_default_fill, 0 }
+    compatible, bfd_default_scan, bfd_arch_default_fill, NULL, 0 }
 };
 
 const bfd_arch_info_type bfd_z8k_arch =
 {
   32, 32, 8, bfd_arch_z8k, bfd_mach_z8001, "z8k", "z8001", 1, TRUE,
   compatible, bfd_default_scan, bfd_arch_default_fill,
-  &arch_info_struct[0]
+  &arch_info_struct[0], 0
 };
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 5e8e03d604..7ccf842955 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-10  Nick Clifton  <nickc@redhat.com>
+
+	PR 24907
+	* objdump.c (null_print): New function.
+	(disassemble_bytes): Delete previous_octets local and replace with
+	a test of the max_reloc_offset_into_insn field of the
+	bfd_arch_info structure.  If a reloc is a potential match for the
+	next insn, then perform a dummy disassembly in order to calculate
+	its real length.
+
 2019-09-09  Phil Blundell  <pb@pbcl.net>
 
 	binutils 2.33 branch created.
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 33d5d72d3d..2303fe4abf 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -1836,6 +1836,12 @@ objdump_sprintf (SFILE *f, const char *format, ...)
 
 #define DEFAULT_SKIP_ZEROES_AT_END 3
 
+static int
+null_print (const void * stream ATTRIBUTE_UNUSED, const char * format ATTRIBUTE_UNUSED, ...)
+{
+  return 1;
+}
+
 /* Disassemble some data in memory between given values.  */
 
 static void
@@ -1903,10 +1909,7 @@ disassemble_bytes (struct disassemble_info * inf,
     {
       bfd_vma z;
       bfd_boolean need_nl = FALSE;
-      int previous_octets;
 
-      /* Remember the length of the previous instruction.  */
-      previous_octets = octets;
       octets = 0;
 
       /* Make sure we don't use relocs from previous instructions.  */
@@ -1990,26 +1993,43 @@ disassemble_bytes (struct disassemble_info * inf,
 		  && *relppp < relppend)
 		{
 		  bfd_signed_vma distance_to_rel;
+		  int insn_size = 0;
 
 		  distance_to_rel = (**relppp)->address
 		    - (rel_offset + addr_offset);
 
+		  if (distance_to_rel > 0
+		      && aux->abfd->arch_info->max_reloc_offset_into_insn <= distance_to_rel)
+		    {
+		      /* This reloc *might* apply to the current insn,
+			 starting somewhere inside it.  Discover the length
+			 of the current insn so that the check below will
+			 work.  */
+		      if (insn_width)
+			insn_size = insn_width;
+		      else
+			{
+			  /* We find the length by calling the dissassembler
+			     function with a dummy print handler.  This should
+			     work unless the disassembler is not expecting to
+			     be called multiple times for the same address.
+
+			     This does mean disassembling the instruction
+			     twice, but we only do this when there is a high
+			     probability that there is a reloc that will
+			     affect the instruction.  */
+			  inf->fprintf_func = (fprintf_ftype) null_print;
+			  insn_size = disassemble_fn (section->vma
+						      + addr_offset, inf);
+			  inf->fprintf_func = (fprintf_ftype) objdump_sprintf;
+			}
+		    }
+
 		  /* Check to see if the current reloc is associated with
 		     the instruction that we are about to disassemble.  */
 		  if (distance_to_rel == 0
-		      /* FIXME: This is wrong.  We are trying to catch
-			 relocs that are addressed part way through the
-			 current instruction, as might happen with a packed
-			 VLIW instruction.  Unfortunately we do not know the
-			 length of the current instruction since we have not
-			 disassembled it yet.  Instead we take a guess based
-			 upon the length of the previous instruction.  The
-			 proper solution is to have a new target-specific
-			 disassembler function which just returns the length
-			 of an instruction at a given address without trying
-			 to display its disassembly. */
 		      || (distance_to_rel > 0
-			  && distance_to_rel < (bfd_signed_vma) (previous_octets/ opb)))
+			  && distance_to_rel < (bfd_signed_vma) (insn_size / opb)))
 		    {
 		      inf->flags |= INSN_HAS_RELOC;
 		      aux->reloc = **relppp;
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9c484d3bc6..444bd16987 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-10  Nick Clifton  <nickc@redhat.com>
+
+	PR 24907
+	* testsuite/gas/arm/pr24907.s: New test.
+	* testsuite/gas/arm/pr24907.d: Expected disassembly.
+
 2019-09-09  Phil Blundell  <pb@pbcl.net>
 
 	binutils 2.33 branch created.
diff --git a/gas/testsuite/gas/arm/pr24907.d b/gas/testsuite/gas/arm/pr24907.d
new file mode 100644
index 0000000000..8268d4bdc1
--- /dev/null
+++ b/gas/testsuite/gas/arm/pr24907.d
@@ -0,0 +1,19 @@
+# name: Disassembling variable width insns with relocs (PR 24907)
+# as:
+# objdump: -d
+# This test is only valid on ELF based ports.
+#notarget: *-*-pe *-*-wince *-*-vxworks
+
+.*: +file format .*arm.*
+
+Disassembly of section \.text:
+
+0+000 <foo>:
+   0:	46c0      	nop			; .*
+   2:	f7ff fffe 	bl	0 <log_func>
+   6:	e002      	b\.n	e <func\+0x2>
+   8:	f7ff fffe 	bl	c <func>
+
+0+000c <func>:
+   c:	46c0      	nop			; .*
+   e:	46c0      	nop			; .*
diff --git a/gas/testsuite/gas/arm/pr24907.s b/gas/testsuite/gas/arm/pr24907.s
new file mode 100644
index 0000000000..ee8114e574
--- /dev/null
+++ b/gas/testsuite/gas/arm/pr24907.s
@@ -0,0 +1,16 @@
+	.syntax unified
+	.text
+	.thumb
+
+.global foo
+foo:
+	nop
+	bl  log_func
+	b.n .L1
+	bl  func
+
+.global func
+func:
+	nop
+.L1:
+	nop


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change map_matching_symbols to take a symbol_found_callback_ftype
@ 2019-09-10 15:28 gdb-buildbot
  2019-09-10 16:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-10 15:28 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 199b4314efbd419d6957e366e13a14cd87cea5e4 ***

commit 199b4314efbd419d6957e366e13a14cd87cea5e4
Author:     Tom Tromey <tromey@adacore.com>
AuthorDate: Fri Jul 12 10:45:34 2019 -0600
Commit:     Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600

    Change map_matching_symbols to take a symbol_found_callback_ftype
    
    This changes map_matching_symbols to take a
    symbol_found_callback_ftype, rather than separate callback and data
    parameters.  This enables a future patch to clean up some existing
    code so that it can more readily be shared.
    
    gdb/ChangeLog
    2019-09-10  Tom Tromey  <tromey@adacore.com>
    
            * ada-lang.c (aux_add_nonlocal_symbols): Change type.
            (add_nonlocal_symbols): Update.
            * dwarf2read.c (dw2_map_matching_symbols): Change type.
            * psymtab.c (map_block, psym_map_matching_symbols): Change type.
            * symfile-debug.c (debug_qf_map_matching_symbols): Change type.
            * symfile.h (struct quick_symbol_functions) <map_matching_symbols>:
            Change type of "callback".  Remove "data".

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9ad7227e0b..1865eeddbb 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-10  Tom Tromey  <tromey@adacore.com>
+
+	* ada-lang.c (aux_add_nonlocal_symbols): Change type.
+	(add_nonlocal_symbols): Update.
+	* dwarf2read.c (dw2_map_matching_symbols): Change type.
+	* psymtab.c (map_block, psym_map_matching_symbols): Change type.
+	* symfile-debug.c (debug_qf_map_matching_symbols): Change type.
+	* symfile.h (struct quick_symbol_functions) <map_matching_symbols>:
+	Change type of "callback".  Remove "data".
+
 
 2019-09-09  Ali Tamur  <tamur@google.com>
 
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 347c67f95c..d677acdb60 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -5331,8 +5331,8 @@ struct match_data
   int found_sym;
 };
 
-/* A callback for add_nonlocal_symbols that adds SYM, found in BLOCK,
-   to a list of symbols.  DATA0 is a pointer to a struct match_data *
+/* A callback for add_nonlocal_symbols that adds symbol, found in BSYM,
+   to a list of symbols.  DATA is a pointer to a struct match_data *
    containing the obstack that collects the symbol list, the file that SYM
    must come from, a flag indicating whether a non-argument symbol has
    been found in the current block, and the last argument symbol
@@ -5340,12 +5340,13 @@ struct match_data
    marking the end of a block, the argument symbol is added if no
    other has been found.  */
 
-static int
-aux_add_nonlocal_symbols (const struct block *block, struct symbol *sym,
-			  void *data0)
+static bool
+aux_add_nonlocal_symbols (struct block_symbol *bsym,
+			  struct match_data *data)
 {
-  struct match_data *data = (struct match_data *) data0;
-  
+  const struct block *block = bsym->block;
+  struct symbol *sym = bsym->symbol;
+
   if (sym == NULL)
     {
       if (!data->found_sym && data->arg_sym != NULL) 
@@ -5358,7 +5359,7 @@ aux_add_nonlocal_symbols (const struct block *block, struct symbol *sym,
   else 
     {
       if (SYMBOL_CLASS (sym) == LOC_UNRESOLVED)
-	return 0;
+	return true;
       else if (SYMBOL_IS_ARGUMENT (sym))
 	data->arg_sym = sym;
       else
@@ -5369,7 +5370,7 @@ aux_add_nonlocal_symbols (const struct block *block, struct symbol *sym,
 			   block);
 	}
     }
-  return 0;
+  return true;
 }
 
 /* Helper for add_nonlocal_symbols.  Find symbols in DOMAIN which are
@@ -5540,20 +5541,23 @@ add_nonlocal_symbols (struct obstack *obstackp,
 
   bool is_wild_match = lookup_name.ada ().wild_match_p ();
 
+  auto callback = [&] (struct block_symbol *bsym)
+    {
+      return aux_add_nonlocal_symbols (bsym, &data);
+    };
+
   for (objfile *objfile : current_program_space->objfiles ())
     {
       data.objfile = objfile;
 
       if (is_wild_match)
 	objfile->sf->qf->map_matching_symbols (objfile, lookup_name.name ().c_str (),
-					       domain, global,
-					       aux_add_nonlocal_symbols, &data,
+					       domain, global, callback,
 					       symbol_name_match_type::WILD,
 					       NULL);
       else
 	objfile->sf->qf->map_matching_symbols (objfile, lookup_name.name ().c_str (),
-					       domain, global,
-					       aux_add_nonlocal_symbols, &data,
+					       domain, global, callback,
 					       symbol_name_match_type::FULL,
 					       compare_names);
 
@@ -5577,9 +5581,7 @@ add_nonlocal_symbols (struct obstack *obstackp,
         {
 	  data.objfile = objfile;
 	  objfile->sf->qf->map_matching_symbols (objfile, name1.c_str (),
-						 domain, global,
-						 aux_add_nonlocal_symbols,
-						 &data,
+						 domain, global, callback,
 						 symbol_name_match_type::FULL,
 						 compare_names);
 	}
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index a75941867a..cccc493b29 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -4184,13 +4184,13 @@ dw2_expand_symtabs_with_fullname (struct objfile *objfile,
 }
 
 static void
-dw2_map_matching_symbols (struct objfile *objfile,
-			  const char * name, domain_enum domain,
-			  int global,
-			  int (*callback) (const struct block *,
-					   struct symbol *, void *),
-			  void *data, symbol_name_match_type match,
-			  symbol_compare_ftype *ordered_compare)
+dw2_map_matching_symbols
+  (struct objfile *objfile,
+   const char * name, domain_enum domain,
+   int global,
+   gdb::function_view<symbol_found_callback_ftype> callback,
+   symbol_name_match_type match,
+   symbol_compare_ftype *ordered_compare)
 {
   /* Currently unimplemented; used for Ada.  The function can be called if the
      current language is Ada for a non-Ada objfile using GNU index.  As Ada
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 70d04f8605..cd577bc4c5 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1170,14 +1170,14 @@ psymtab_to_fullname (struct partial_symtab *ps)
 
 /* For all symbols, s, in BLOCK that are in DOMAIN and match NAME
    according to the function MATCH, call CALLBACK(BLOCK, s, DATA).
-   BLOCK is assumed to come from OBJFILE.  Returns 1 iff CALLBACK
-   ever returns non-zero, and otherwise returns 0.  */
+   BLOCK is assumed to come from OBJFILE.  Returns false iff CALLBACK
+   ever returns false, and otherwise returns true.  */
 
-static int
+static bool
 map_block (const char *name, domain_enum domain, struct objfile *objfile,
 	   const struct block *block,
-	   int (*callback) (const struct block *, struct symbol *, void *),
-	   void *data, symbol_name_match_type match)
+	   gdb::function_view<symbol_found_callback_ftype> callback,
+	   symbol_name_match_type match)
 {
   struct block_iterator iter;
   struct symbol *sym;
@@ -1191,26 +1191,26 @@ map_block (const char *name, domain_enum domain, struct objfile *objfile,
       if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
 				 SYMBOL_DOMAIN (sym), domain))
 	{
-	  if (callback (block, sym, data))
-	    return 1;
+	  struct block_symbol block_sym = {sym, block};
+	  if (!callback (&block_sym))
+	    return false;
 	}
     }
 
-  return 0;
+  return true;
 }
 
 /* Psymtab version of map_matching_symbols.  See its definition in
    the definition of quick_symbol_functions in symfile.h.  */
 
 static void
-psym_map_matching_symbols (struct objfile *objfile,
-			   const char *name, domain_enum domain,
-			   int global,
-			   int (*callback) (const struct block *,
-					    struct symbol *, void *),
-			   void *data,
-			   symbol_name_match_type match,
-			   symbol_compare_ftype *ordered_compare)
+psym_map_matching_symbols
+  (struct objfile *objfile,
+   const char *name, domain_enum domain,
+   int global,
+   gdb::function_view<symbol_found_callback_ftype> callback,
+   symbol_name_match_type match,
+   symbol_compare_ftype *ordered_compare)
 {
   const int block_kind = global ? GLOBAL_BLOCK : STATIC_BLOCK;
 
@@ -1227,10 +1227,10 @@ psym_map_matching_symbols (struct objfile *objfile,
 	  if (cust == NULL)
 	    continue;
 	  block = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cust), block_kind);
-	  if (map_block (name, domain, objfile, block,
-			 callback, data, match))
+	  if (!map_block (name, domain, objfile, block, callback, match))
 	    return;
-	  if (callback (block, NULL, data))
+	  struct block_symbol block_sym = {nullptr, block};
+	  if (!callback (&block_sym))
 	    return;
 	}
     }
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index c5b565fc51..d36c192ccc 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -228,30 +228,27 @@ debug_qf_expand_symtabs_with_fullname (struct objfile *objfile,
 }
 
 static void
-debug_qf_map_matching_symbols (struct objfile *objfile,
-			       const char *name, domain_enum domain,
-			       int global,
-			       int (*callback) (const struct block *,
-						struct symbol *, void *),
-			       void *data,
-			       symbol_name_match_type match,
-			       symbol_compare_ftype *ordered_compare)
+debug_qf_map_matching_symbols
+  (struct objfile *objfile,
+   const char *name, domain_enum domain,
+   int global,
+   gdb::function_view<symbol_found_callback_ftype> callback,
+   symbol_name_match_type match,
+   symbol_compare_ftype *ordered_compare)
 {
   const struct debug_sym_fns_data *debug_data
     = symfile_debug_objfile_data_key.get (objfile);
 
   fprintf_filtered (gdb_stdlog,
-		    "qf->map_matching_symbols (%s, \"%s\", %s, %d, %s, %s, %s, %s)\n",
+		    "qf->map_matching_symbols (%s, \"%s\", %s, %d, %s, %s)\n",
 		    objfile_debug_name (objfile), name,
 		    domain_name (domain), global,
-		    host_address_to_string (callback),
-		    host_address_to_string (data),
 		    plongest ((LONGEST) match),
 		    host_address_to_string (ordered_compare));
 
   debug_data->real_sf->qf->map_matching_symbols (objfile, name,
 						 domain, global,
-						 callback, data,
+						 callback,
 						 match,
 						 ordered_compare);
 }
diff --git a/gdb/symfile.h b/gdb/symfile.h
index 5e4d2f5b53..cf9488881a 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -212,7 +212,7 @@ struct quick_symbol_functions
      and for which MATCH (symbol name, NAME) == 0, passing each to 
      CALLBACK, reading in partial symbol tables as needed.  Look
      through global symbols if GLOBAL and otherwise static symbols.
-     Passes NAME, NAMESPACE, and DATA to CALLBACK with each symbol
+     Passes NAME and NAMESPACE to CALLBACK with each symbol
      found.  After each block is processed, passes NULL to CALLBACK.
      MATCH must be weaker than strcmp_iw_ordered in the sense that
      strcmp_iw_ordered(x,y) == 0 --> MATCH(x,y) == 0.  ORDERED_COMPARE,
@@ -222,17 +222,16 @@ struct quick_symbol_functions
      and 
             strcmp_iw_ordered(x,y) <= 0 --> ORDERED_COMPARE(x,y) <= 0
      (allowing strcmp_iw_ordered(x,y) < 0 while ORDERED_COMPARE(x, y) == 0).
-     CALLBACK returns 0 to indicate that the scan should continue, or
-     non-zero to indicate that the scan should be terminated.  */
-
-  void (*map_matching_symbols) (struct objfile *,
-				const char *name, domain_enum domain,
-				int global,
-				int (*callback) (const struct block *,
-						 struct symbol *, void *),
-				void *data,
-				symbol_name_match_type match,
-				symbol_compare_ftype *ordered_compare);
+     CALLBACK returns true to indicate that the scan should continue, or
+     false to indicate that the scan should be terminated.  */
+
+  void (*map_matching_symbols)
+    (struct objfile *,
+     const char *name, domain_enum domain,
+     int global,
+     gdb::function_view<symbol_found_callback_ftype> callback,
+     symbol_name_match_type match,
+     symbol_compare_ftype *ordered_compare);
 
   /* Expand all symbol tables in OBJFILE matching some criteria.
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change iterate_over_symbols to return bool
@ 2019-09-10 15:39 gdb-buildbot
  2019-09-10 18:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-10 15:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6969f124b987494df069b032e2e0f36485d3d8bb ***

commit 6969f124b987494df069b032e2e0f36485d3d8bb
Author:     Tom Tromey <tromey@adacore.com>
AuthorDate: Fri Jul 12 10:47:21 2019 -0600
Commit:     Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600

    Change iterate_over_symbols to return bool
    
    This changes iterate_over_symbols to return a bool.  This allows it to
    be reused in another context in a subsequent patch.
    
    gdb/ChangeLog
    2019-09-10  Tom Tromey  <tromey@adacore.com>
    
            * ada-lang.c (ada_iterate_over_symbols): Return bool.
            * language.h (struct language_defn) <la_iterate_over_symbols>:
            Return bool.
            * symtab.c (iterate_over_symbols): Return bool.
            * symtab.h (iterate_over_symbols): Return bool.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1865eeddbb..e2ebafe714 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-10  Tom Tromey  <tromey@adacore.com>
+
+	* ada-lang.c (ada_iterate_over_symbols): Return bool.
+	* language.h (struct language_defn) <la_iterate_over_symbols>:
+	Return bool.
+	* symtab.c (iterate_over_symbols): Return bool.
+	* symtab.h (iterate_over_symbols): Return bool.
+
 2019-09-10  Tom Tromey  <tromey@adacore.com>
 
 	* ada-lang.c (aux_add_nonlocal_symbols): Change type.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index d677acdb60..21d40c7aad 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -5740,7 +5740,7 @@ ada_lookup_symbol_list (const char *name, const struct block *block,
 
 /* Implementation of the la_iterate_over_symbols method.  */
 
-static void
+static bool
 ada_iterate_over_symbols
   (const struct block *block, const lookup_name_info &name,
    domain_enum domain,
@@ -5754,8 +5754,10 @@ ada_iterate_over_symbols
   for (i = 0; i < ndefs; ++i)
     {
       if (!callback (&results[i]))
-	break;
+	return false;
     }
+
+  return true;
 }
 
 /* The result is as for ada_lookup_symbol_list with FULL_SEARCH set
diff --git a/gdb/language.h b/gdb/language.h
index 2a100b0491..0088e5de2d 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -407,7 +407,7 @@ struct language_defn
        This field may not be NULL.  If the language does not need any
        special processing here, 'iterate_over_symbols' should be
        used as the definition.  */
-    void (*la_iterate_over_symbols)
+    bool (*la_iterate_over_symbols)
       (const struct block *block, const lookup_name_info &name,
        domain_enum domain,
        gdb::function_view<symbol_found_callback_ftype> callback);
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 88e34de05b..5f184454bd 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -2822,15 +2822,9 @@ basic_lookup_transparent_type (const char *name)
   return (struct type *) 0;
 }
 
-/* Iterate over the symbols named NAME, matching DOMAIN, in BLOCK.
-
-   For each symbol that matches, CALLBACK is called.  The symbol is
-   passed to the callback.
-
-   If CALLBACK returns false, the iteration ends.  Otherwise, the
-   search continues.  */
+/* See symtab.h.  */
 
-void
+bool
 iterate_over_symbols (const struct block *block,
 		      const lookup_name_info &name,
 		      const domain_enum domain,
@@ -2847,9 +2841,10 @@ iterate_over_symbols (const struct block *block,
 	  struct block_symbol block_sym = {sym, block};
 
 	  if (!callback (&block_sym))
-	    return;
+	    return false;
 	}
     }
+  return true;
 }
 
 /* Find the compunit symtab associated with PC and SECTION.
diff --git a/gdb/symtab.h b/gdb/symtab.h
index f38e544cdb..49feea62e2 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -2092,7 +2092,16 @@ std::vector<CORE_ADDR> find_pcs_for_symtab_line
 
 typedef bool (symbol_found_callback_ftype) (struct block_symbol *bsym);
 
-void iterate_over_symbols (const struct block *block,
+/* Iterate over the symbols named NAME, matching DOMAIN, in BLOCK.
+
+   For each symbol that matches, CALLBACK is called.  The symbol is
+   passed to the callback.
+
+   If CALLBACK returns false, the iteration ends and this function
+   returns false.  Otherwise, the search continues, and the function
+   eventually returns true.  */
+
+bool iterate_over_symbols (const struct block *block,
 			   const lookup_name_info &name,
 			   const domain_enum domain,
 			   gdb::function_view<symbol_found_callback_ftype> callback);


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Simplify psym_map_matching_symbols
@ 2019-09-10 15:52 gdb-buildbot
  2019-09-10 18:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-10 15:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6a3dbf1bc620ae068c84074b2f72e11c24dc1e6d ***

commit 6a3dbf1bc620ae068c84074b2f72e11c24dc1e6d
Author:     Tom Tromey <tromey@adacore.com>
AuthorDate: Fri Jul 12 11:00:39 2019 -0600
Commit:     Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600

    Simplify psym_map_matching_symbols
    
    This introduces a new helper function,
    iterate_over_symbols_terminated, and changes psym_map_matching_symbols
    to use it.  A subsequent patch will introduce a new user of this
    function in the DWARF reader.
    
    gdb/ChangeLog
    2019-09-10  Tom Tromey  <tromey@adacore.com>
    
            * psymtab.c (map_block): Remove.
            (psym_map_matching_symbols): Use iterate_over_symbols_terminated.
            * symtab.c (iterate_over_symbols_terminated): New function.
            * symtab.c (iterate_over_symbols_terminated): Declare.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e2ebafe714..129aaad7d2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-10  Tom Tromey  <tromey@adacore.com>
+
+	* psymtab.c (map_block): Remove.
+	(psym_map_matching_symbols): Use iterate_over_symbols_terminated.
+	* symtab.c (iterate_over_symbols_terminated): New function.
+	* symtab.c (iterate_over_symbols_terminated): Declare.
+
 2019-09-10  Tom Tromey  <tromey@adacore.com>
 
 	* ada-lang.c (ada_iterate_over_symbols): Return bool.
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index cd577bc4c5..81138bbe90 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1168,38 +1168,6 @@ psymtab_to_fullname (struct partial_symtab *ps)
   return ps->fullname;
 }
 
-/* For all symbols, s, in BLOCK that are in DOMAIN and match NAME
-   according to the function MATCH, call CALLBACK(BLOCK, s, DATA).
-   BLOCK is assumed to come from OBJFILE.  Returns false iff CALLBACK
-   ever returns false, and otherwise returns true.  */
-
-static bool
-map_block (const char *name, domain_enum domain, struct objfile *objfile,
-	   const struct block *block,
-	   gdb::function_view<symbol_found_callback_ftype> callback,
-	   symbol_name_match_type match)
-{
-  struct block_iterator iter;
-  struct symbol *sym;
-
-  lookup_name_info lookup_name (name, match);
-
-  for (sym = block_iter_match_first (block, lookup_name, &iter);
-       sym != NULL;
-       sym = block_iter_match_next (lookup_name, &iter))
-    {
-      if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
-				 SYMBOL_DOMAIN (sym), domain))
-	{
-	  struct block_symbol block_sym = {sym, block};
-	  if (!callback (&block_sym))
-	    return false;
-	}
-    }
-
-  return true;
-}
-
 /* Psymtab version of map_matching_symbols.  See its definition in
    the definition of quick_symbol_functions in symfile.h.  */
 
@@ -1214,6 +1182,8 @@ psym_map_matching_symbols
 {
   const int block_kind = global ? GLOBAL_BLOCK : STATIC_BLOCK;
 
+  lookup_name_info lookup_name (name, match);
+
   for (partial_symtab *ps : require_partial_symbols (objfile, 1))
     {
       QUIT;
@@ -1227,10 +1197,8 @@ psym_map_matching_symbols
 	  if (cust == NULL)
 	    continue;
 	  block = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cust), block_kind);
-	  if (!map_block (name, domain, objfile, block, callback, match))
-	    return;
-	  struct block_symbol block_sym = {nullptr, block};
-	  if (!callback (&block_sym))
+	  if (!iterate_over_symbols_terminated (block, lookup_name,
+						domain, callback))
 	    return;
 	}
     }
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 5f184454bd..e1bf3692a5 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -2847,6 +2847,21 @@ iterate_over_symbols (const struct block *block,
   return true;
 }
 
+/* See symtab.h.  */
+
+bool
+iterate_over_symbols_terminated
+  (const struct block *block,
+   const lookup_name_info &name,
+   const domain_enum domain,
+   gdb::function_view<symbol_found_callback_ftype> callback)
+{
+  if (!iterate_over_symbols (block, name, domain, callback))
+    return false;
+  struct block_symbol block_sym = {nullptr, block};
+  return callback (&block_sym);
+}
+
 /* Find the compunit symtab associated with PC and SECTION.
    This will read in debug info as necessary.  */
 
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 49feea62e2..4fb00cba9f 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -2106,6 +2106,16 @@ bool iterate_over_symbols (const struct block *block,
 			   const domain_enum domain,
 			   gdb::function_view<symbol_found_callback_ftype> callback);
 
+/* Like iterate_over_symbols, but if all calls to CALLBACK return
+   true, then calls CALLBACK one additional time with a block_symbol
+   that has a valid block but a NULL symbol.  */
+
+bool iterate_over_symbols_terminated
+  (const struct block *block,
+   const lookup_name_info &name,
+   const domain_enum domain,
+   gdb::function_view<symbol_found_callback_ftype> callback);
+
 /* Storage type used by demangle_for_lookup.  demangle_for_lookup
    either returns a const char * pointer that points to either of the
    fields of this type, or a pointer to the input NAME.  This is done


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change map_matching_symbols to take a lookup_name_info
@ 2019-09-10 16:09 gdb-buildbot
  2019-09-10 19:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-10 16:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b054970d54e141e5d2c824223772685742af2c2a ***

commit b054970d54e141e5d2c824223772685742af2c2a
Author:     Tom Tromey <tromey@adacore.com>
AuthorDate: Fri Jul 12 13:34:52 2019 -0600
Commit:     Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600

    Change map_matching_symbols to take a lookup_name_info
    
    This patch further simplifies the map_matching_symbols callback, by
    having it take a lookup_name_info rather than a plain string.
    
    gdb/ChangeLog
    2019-09-10  Tom Tromey  <tromey@adacore.com>
    
            * ada-lang.c (add_nonlocal_symbols): Combine calls to
            map_matching_symbols.  Update.
            * dwarf2read.c (dw2_map_matching_symbols): Update.
            * psymtab.c (match_partial_symbol): Change type; update.
            (psym_map_matching_symbols): Likewise.
            * symfile-debug.c (debug_qf_map_matching_symbols): Change
            type; update.
            * symfile.h (struct quick_symbol_functions)
            <map_matching_symbols>: Change "name" to be a lookup_name_info.
            Remove "match".

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 129aaad7d2..e54629c994 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-10  Tom Tromey  <tromey@adacore.com>
+
+	* ada-lang.c (add_nonlocal_symbols): Combine calls to
+	map_matching_symbols.  Update.
+	* dwarf2read.c (dw2_map_matching_symbols): Update.
+	* psymtab.c (match_partial_symbol): Change type; update.
+	(psym_map_matching_symbols): Likewise.
+	* symfile-debug.c (debug_qf_map_matching_symbols): Change
+	type; update.
+	* symfile.h (struct quick_symbol_functions)
+	<map_matching_symbols>: Change "name" to be a lookup_name_info.
+	Remove "match".
+
 2019-09-10  Tom Tromey  <tromey@adacore.com>
 
 	* psymtab.c (map_block): Remove.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 21d40c7aad..8cdb62bde0 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -5550,16 +5550,10 @@ add_nonlocal_symbols (struct obstack *obstackp,
     {
       data.objfile = objfile;
 
-      if (is_wild_match)
-	objfile->sf->qf->map_matching_symbols (objfile, lookup_name.name ().c_str (),
-					       domain, global, callback,
-					       symbol_name_match_type::WILD,
-					       NULL);
-      else
-	objfile->sf->qf->map_matching_symbols (objfile, lookup_name.name ().c_str (),
-					       domain, global, callback,
-					       symbol_name_match_type::FULL,
-					       compare_names);
+      objfile->sf->qf->map_matching_symbols (objfile, lookup_name,
+					     domain, global, callback,
+					     (is_wild_match
+					      ? NULL : compare_names));
 
       for (compunit_symtab *cu : objfile->compunits ())
 	{
@@ -5575,14 +5569,14 @@ add_nonlocal_symbols (struct obstack *obstackp,
   if (num_defns_collected (obstackp) == 0 && global && !is_wild_match)
     {
       const char *name = ada_lookup_name (lookup_name);
-      std::string name1 = std::string ("<_ada_") + name + '>';
+      lookup_name_info name1 (std::string ("<_ada_") + name + '>',
+			      symbol_name_match_type::FULL);
 
       for (objfile *objfile : current_program_space->objfiles ())
         {
 	  data.objfile = objfile;
-	  objfile->sf->qf->map_matching_symbols (objfile, name1.c_str (),
+	  objfile->sf->qf->map_matching_symbols (objfile, name1,
 						 domain, global, callback,
-						 symbol_name_match_type::FULL,
 						 compare_names);
 	}
     }      	
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index cccc493b29..d57684be90 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -4186,10 +4186,9 @@ dw2_expand_symtabs_with_fullname (struct objfile *objfile,
 static void
 dw2_map_matching_symbols
   (struct objfile *objfile,
-   const char * name, domain_enum domain,
+   const lookup_name_info &name, domain_enum domain,
    int global,
    gdb::function_view<symbol_found_callback_ftype> callback,
-   symbol_name_match_type match,
    symbol_compare_ftype *ordered_compare)
 {
   /* Currently unimplemented; used for Ada.  The function can be called if the
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 81138bbe90..1f5f492d39 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -37,13 +37,6 @@
 #include <algorithm>
 #include <set>
 
-static struct partial_symbol *match_partial_symbol (struct objfile *,
-						    struct partial_symtab *,
-						    int,
-						    const char *, domain_enum,
-						    symbol_name_match_type,
-						    symbol_compare_ftype *);
-
 static struct partial_symbol *lookup_partial_symbol (struct objfile *,
 						     struct partial_symtab *,
 						     const char *, int,
@@ -545,8 +538,7 @@ psymbol_name_matches (partial_symbol *psym,
 static struct partial_symbol *
 match_partial_symbol (struct objfile *objfile,
 		      struct partial_symtab *pst, int global,
-		      const char *name, domain_enum domain,
-		      symbol_name_match_type match_type,
+		      const lookup_name_info &name, domain_enum domain,
 		      symbol_compare_ftype *ordered_compare)
 {
   struct partial_symbol **start, **psym;
@@ -557,8 +549,6 @@ match_partial_symbol (struct objfile *objfile,
   if (length == 0)
     return NULL;
 
-  lookup_name_info lookup_name (name, match_type);
-
   start = (global ?
 	   &objfile->partial_symtabs->global_psymbols[pst->globals_offset] :
 	   &objfile->partial_symtabs->static_psymbols[pst->statics_offset]);
@@ -583,7 +573,7 @@ match_partial_symbol (struct objfile *objfile,
 
 	  enum language lang = (*center)->ginfo.language;
 	  const char *lang_ln
-	    = lookup_name.language_lookup_name (lang).c_str ();
+	    = name.language_lookup_name (lang).c_str ();
 
 	  if (ordered_compare (symbol_search_name (&(*center)->ginfo),
 			       lang_ln) >= 0)
@@ -594,7 +584,7 @@ match_partial_symbol (struct objfile *objfile,
       gdb_assert (top == bottom);
 
       while (top <= real_top
-	     && psymbol_name_matches (*top, lookup_name))
+	     && psymbol_name_matches (*top, name))
 	{
 	  if (symbol_matches_domain ((*top)->ginfo.language,
 				     (*top)->domain, domain))
@@ -612,7 +602,7 @@ match_partial_symbol (struct objfile *objfile,
 	{
 	  if (symbol_matches_domain ((*psym)->ginfo.language,
 				     (*psym)->domain, domain)
-	      && psymbol_name_matches (*psym, lookup_name))
+	      && psymbol_name_matches (*psym, name))
 	    return *psym;
 	}
     }
@@ -1174,21 +1164,18 @@ psymtab_to_fullname (struct partial_symtab *ps)
 static void
 psym_map_matching_symbols
   (struct objfile *objfile,
-   const char *name, domain_enum domain,
+   const lookup_name_info &name, domain_enum domain,
    int global,
    gdb::function_view<symbol_found_callback_ftype> callback,
-   symbol_name_match_type match,
    symbol_compare_ftype *ordered_compare)
 {
   const int block_kind = global ? GLOBAL_BLOCK : STATIC_BLOCK;
 
-  lookup_name_info lookup_name (name, match);
-
   for (partial_symtab *ps : require_partial_symbols (objfile, 1))
     {
       QUIT;
       if (ps->readin
-	  || match_partial_symbol (objfile, ps, global, name, domain, match,
+	  || match_partial_symbol (objfile, ps, global, name, domain,
 				   ordered_compare))
 	{
 	  struct compunit_symtab *cust = psymtab_to_symtab (objfile, ps);
@@ -1197,7 +1184,7 @@ psym_map_matching_symbols
 	  if (cust == NULL)
 	    continue;
 	  block = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cust), block_kind);
-	  if (!iterate_over_symbols_terminated (block, lookup_name,
+	  if (!iterate_over_symbols_terminated (block, name,
 						domain, callback))
 	    return;
 	}
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index d36c192ccc..9a5d0fa0a6 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -230,26 +230,23 @@ debug_qf_expand_symtabs_with_fullname (struct objfile *objfile,
 static void
 debug_qf_map_matching_symbols
   (struct objfile *objfile,
-   const char *name, domain_enum domain,
+   const lookup_name_info &name, domain_enum domain,
    int global,
    gdb::function_view<symbol_found_callback_ftype> callback,
-   symbol_name_match_type match,
    symbol_compare_ftype *ordered_compare)
 {
   const struct debug_sym_fns_data *debug_data
     = symfile_debug_objfile_data_key.get (objfile);
 
   fprintf_filtered (gdb_stdlog,
-		    "qf->map_matching_symbols (%s, \"%s\", %s, %d, %s, %s)\n",
-		    objfile_debug_name (objfile), name,
+		    "qf->map_matching_symbols (%s, %s, %d, %s)\n",
+		    objfile_debug_name (objfile),
 		    domain_name (domain), global,
-		    plongest ((LONGEST) match),
 		    host_address_to_string (ordered_compare));
 
   debug_data->real_sf->qf->map_matching_symbols (objfile, name,
 						 domain, global,
 						 callback,
-						 match,
 						 ordered_compare);
 }
 
diff --git a/gdb/symfile.h b/gdb/symfile.h
index cf9488881a..6fa6db4750 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -227,10 +227,10 @@ struct quick_symbol_functions
 
   void (*map_matching_symbols)
     (struct objfile *,
-     const char *name, domain_enum domain,
+     const lookup_name_info &lookup_name,
+     domain_enum domain,
      int global,
      gdb::function_view<symbol_found_callback_ftype> callback,
-     symbol_name_match_type match,
      symbol_compare_ftype *ordered_compare);
 
   /* Expand all symbol tables in OBJFILE matching some criteria.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix latent bug in .debug_names file-name handling
@ 2019-09-10 16:18 gdb-buildbot
  2019-09-10 20:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-10 16:18 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT aa3916548076c159ae00a922690694094a37fcd0 ***

commit aa3916548076c159ae00a922690694094a37fcd0
Author:     Tom Tromey <tromey@adacore.com>
AuthorDate: Thu Jul 18 12:27:16 2019 -0600
Commit:     Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600

    Fix latent bug in .debug_names file-name handling
    
    An internal Ada test case showed that the .debug_names code does not
    compute the same list of file names as the partial symbol reader.  In
    particular, the partial symbol reader uses the DW_AT_name of the CU:
    
      /* Allocate a new partial symbol table structure.  */
      filename = dwarf2_string_attr (comp_unit_die, DW_AT_name, cu);
      if (filename == NULL)
        filename = "";
    
      pst = create_partial_symtab (per_cu, filename);
    
    This patch changes the .debug_names reader to follow.
    
    gdb/ChangeLog
    2019-09-10  Tom Tromey  <tromey@adacore.com>
    
            * dwarf2read.c (dw2_get_file_names_reader): Add the
            CU's file name to the results.
    
    gdb/testsuite/ChangeLog
    2019-09-10  Tom Tromey  <tromey@adacore.com>
    
            * gdb.ada/dgopt.exp: New file.
            * gdb.ada/dgopt/x.adb: New file.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e54629c994..4db1572bc3 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-10  Tom Tromey  <tromey@adacore.com>
+
+	* dwarf2read.c (dw2_get_file_names_reader): Add the
+	CU's file name to the results.
+
 2019-09-10  Tom Tromey  <tromey@adacore.com>
 
 	* ada-lang.c (add_nonlocal_symbols): Combine calls to
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index d57684be90..2379c9c273 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -3692,11 +3692,17 @@ dw2_get_file_names_reader (const struct die_reader_specs *reader,
 
   file_and_directory fnd = find_file_and_directory (comp_unit_die, cu);
 
-  qfn->num_file_names = lh->file_names.size ();
+  int offset = 0;
+  if (strcmp (fnd.name, "<unknown>") != 0)
+    ++offset;
+
+  qfn->num_file_names = offset + lh->file_names.size ();
   qfn->file_names =
-    XOBNEWVEC (&objfile->objfile_obstack, const char *, lh->file_names.size ());
+    XOBNEWVEC (&objfile->objfile_obstack, const char *, qfn->num_file_names);
+  if (offset != 0)
+    qfn->file_names[0] = xstrdup (fnd.name);
   for (i = 0; i < lh->file_names.size (); ++i)
-    qfn->file_names[i] = file_full_name (i + 1, lh.get (), fnd.comp_dir);
+    qfn->file_names[i + offset] = file_full_name (i + 1, lh.get (), fnd.comp_dir);
   qfn->real_names = NULL;
 
   lh_cu->v.quick->file_names = qfn;
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 6cee4787e0..9df3563c47 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-10  Tom Tromey  <tromey@adacore.com>
+
+	* gdb.ada/dgopt.exp: New file.
+	* gdb.ada/dgopt/x.adb: New file.
+
 2019-09-08  Tom Tromey  <tom@tromey.com>
 
 	* gdb.tui/resize.exp: Remove setup_xfail.
diff --git a/gdb/testsuite/gdb.ada/dgopt.exp b/gdb/testsuite/gdb.ada/dgopt.exp
new file mode 100644
index 0000000000..db69121b40
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/dgopt.exp
@@ -0,0 +1,34 @@
+# Copyright 2019 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Test case using the -gnatDG option.
+
+load_lib "ada.exp"
+
+standard_ada_testfile x
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable \
+	 {debug additional_flags=-gnatDG}] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+# The bug occurs with .debug_names, but here we don't check whether
+# the appropriate target board is in use.  The problem was that the
+# .adb file did not end up in the file table, but did show up in the
+# DWARF, which the psymtab reader handled, but which the .debug_names
+# reader did not.
+gdb_test "list x.adb:16, 16" "16.*procedure X is"
diff --git a/gdb/testsuite/gdb.ada/dgopt/x.adb b/gdb/testsuite/gdb.ada/dgopt/x.adb
new file mode 100644
index 0000000000..039e99d393
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/dgopt/x.adb
@@ -0,0 +1,19 @@
+--  Copyright 2019 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+procedure X is
+begin
+   null;
+end X;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add Ada support for .debug_names
@ 2019-09-10 16:33 gdb-buildbot
  2019-09-10 21:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-10 16:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3b00ef10a2a4750a86a04bb66eda3bf33d298be1 ***

commit 3b00ef10a2a4750a86a04bb66eda3bf33d298be1
Author:     Tom Tromey <tromey@adacore.com>
AuthorDate: Mon Jul 8 06:23:16 2019 -0600
Commit:     Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600

    Add Ada support for .debug_names
    
    This patch adds support for Ada to .debug_names.  I opted to leave
    .gdb_index alone, because in my view it is a defunct format.
    
    gdb/ChangeLog
    2019-09-10  Tom Tromey  <tromey@adacore.com>
    
            * dwarf-index-write.c (write_psymbols): Extend error message.
            (debug_names::insert): Add Ada code.
            (debug_names::write_psymbols): Remove Ada check.
            (debug_names) <m_string_obstack>: New member.
            * dwarf2read.c (gdb_index_symbol_name_matcher): Remove.
            (gdb_index_symbol_name_matcher::matches): Remove.
            (mapped_index_base::find_name_components_bounds): Add "lang"
            parameter.
            (mapped_index_base::build_name_components): Also split names
            according to Ada syntax.
            (dw2_expand_symtabs_matching_symbol): Loop over languages.  Change
            type of "match_callback".
            (check_match, check_find_bounds_finds)
            (dw2_expand_symtabs_matching): Update.
            (dw2_debug_names_iterator): Add new constructor.
            (dw2_debug_names_map_matching_symbols): New function.
            (dw2_debug_names_expand_symtabs_matching): Update.
            (dwarf2_debug_names_functions): Use
            dw2_debug_names_map_matching_symbols.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4db1572bc3..dace64e6be 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,25 @@
+2019-09-10  Tom Tromey  <tromey@adacore.com>
+
+	* dwarf-index-write.c (write_psymbols): Extend error message.
+	(debug_names::insert): Add Ada code.
+	(debug_names::write_psymbols): Remove Ada check.
+	(debug_names) <m_string_obstack>: New member.
+	* dwarf2read.c (gdb_index_symbol_name_matcher): Remove.
+	(gdb_index_symbol_name_matcher::matches): Remove.
+	(mapped_index_base::find_name_components_bounds): Add "lang"
+	parameter.
+	(mapped_index_base::build_name_components): Also split names
+	according to Ada syntax.
+	(dw2_expand_symtabs_matching_symbol): Loop over languages.  Change
+	type of "match_callback".
+	(check_match, check_find_bounds_finds)
+	(dw2_expand_symtabs_matching): Update.
+	(dw2_debug_names_iterator): Add new constructor.
+	(dw2_debug_names_map_matching_symbols): New function.
+	(dw2_debug_names_expand_symtabs_matching): Update.
+	(dwarf2_debug_names_functions): Use
+	dw2_debug_names_map_matching_symbols.
+
 2019-09-10  Tom Tromey  <tromey@adacore.com>
 
 	* dwarf2read.c (dw2_get_file_names_reader): Add the
diff --git a/gdb/dwarf-index-write.c b/gdb/dwarf-index-write.c
index 7d59a1ba16..153c6792f0 100644
--- a/gdb/dwarf-index-write.c
+++ b/gdb/dwarf-index-write.c
@@ -34,6 +34,7 @@
 #include "gdbcmd.h"
 #include "objfiles.h"
 #include "psympriv.h"
+#include "ada-lang.h"
 
 #include <algorithm>
 #include <cmath>
@@ -541,7 +542,8 @@ write_psymbols (struct mapped_symtab *symtab,
       struct partial_symbol *psym = *psymp;
 
       if (psym->ginfo.language == language_ada)
-	error (_("Ada is not currently supported by the index"));
+	error (_("Ada is not currently supported by the index; "
+		 "use the DWARF 5 index instead"));
 
       /* Only add a given psymbol once.  */
       if (psyms_seen.insert (psym).second)
@@ -684,7 +686,43 @@ public:
     const int dwarf_tag = psymbol_tag (psym);
     if (dwarf_tag == 0)
       return;
-    const char *const name = symbol_search_name (&psym->ginfo);
+    const char *name = symbol_search_name (&psym->ginfo);
+
+    if (psym->ginfo.language == language_ada)
+      {
+	/* We want to ensure that the Ada main function's name appears
+	   verbatim in the index.  However, this name will be of the
+	   form "_ada_mumble", and will be rewritten by ada_decode.
+	   So, recognize it specially here and add it to the index by
+	   hand.  */
+	if (strcmp (main_name (), name) == 0)
+	  {
+	    const auto insertpair
+	      = m_name_to_value_set.emplace (c_str_view (name),
+					     std::set<symbol_value> ());
+	    std::set<symbol_value> &value_set = insertpair.first->second;
+	    value_set.emplace (symbol_value (dwarf_tag, cu_index, is_static,
+					     kind));
+	  }
+
+	/* In order for the index to work when read back into gdb, it
+	   has to supply a funny form of the name: it should be the
+	   encoded name, with any suffixes stripped.  Using the
+	   ordinary encoded name will not work properly with the
+	   searching logic in find_name_components_bounds; nor will
+	   using the decoded name.  Furthermore, an Ada "verbatim"
+	   name (of the form "<MumBle>") must be entered without the
+	   angle brackets.  Note that the current index is unusual,
+	   see PR symtab/24820 for details.  */
+	const char *decoded = ada_decode (name);
+	if (decoded[0] == '<')
+	  name = (char *) obstack_copy0 (&m_string_obstack,
+					 decoded + 1,
+					 strlen (decoded + 1) - 1);
+	else
+	  name = obstack_strdup (&m_string_obstack, ada_encode (decoded));
+      }
+
     const auto insertpair
       = m_name_to_value_set.emplace (c_str_view (name),
 				     std::set<symbol_value> ());
@@ -1181,9 +1219,6 @@ private:
       {
 	struct partial_symbol *psym = *psymp;
 
-	if (psym->ginfo.language == language_ada)
-	  error (_("Ada is not currently supported by the index"));
-
 	/* Only add a given psymbol once.  */
 	if (psyms_seen.insert (psym).second)
 	  insert (psym, cu_index, is_static, kind);
@@ -1244,6 +1279,9 @@ private:
 
   /* .debug_names entry pool.  */
   data_buf m_entry_pool;
+
+  /* Temporary storage for Ada names.  */
+  auto_obstack m_string_obstack;
 };
 
 /* Return iff any of the needed offsets does not fit into 32-bit
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 2379c9c273..c94fc245fd 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -179,7 +179,8 @@ struct mapped_index_base
      vector.  */
   std::pair<std::vector<name_component>::const_iterator,
 	    std::vector<name_component>::const_iterator>
-    find_name_components_bounds (const lookup_name_info &ln_no_params) const;
+    find_name_components_bounds (const lookup_name_info &ln_no_params,
+				 enum language lang) const;
 
   /* Prevent deleting/destroying via a base class pointer.  */
 protected:
@@ -4202,93 +4203,6 @@ dw2_map_matching_symbols
      does not look for non-Ada symbols this function should just return.  */
 }
 
-/* Symbol name matcher for .gdb_index names.
-
-   Symbol names in .gdb_index have a few particularities:
-
-   - There's no indication of which is the language of each symbol.
-
-     Since each language has its own symbol name matching algorithm,
-     and we don't know which language is the right one, we must match
-     each symbol against all languages.  This would be a potential
-     performance problem if it were not mitigated by the
-     mapped_index::name_components lookup table, which significantly
-     reduces the number of times we need to call into this matcher,
-     making it a non-issue.
-
-   - Symbol names in the index have no overload (parameter)
-     information.  I.e., in C++, "foo(int)" and "foo(long)" both
-     appear as "foo" in the index, for example.
-
-     This means that the lookup names passed to the symbol name
-     matcher functions must have no parameter information either
-     because (e.g.) symbol search name "foo" does not match
-     lookup-name "foo(int)" [while swapping search name for lookup
-     name would match].
-*/
-class gdb_index_symbol_name_matcher
-{
-public:
-  /* Prepares the vector of comparison functions for LOOKUP_NAME.  */
-  gdb_index_symbol_name_matcher (const lookup_name_info &lookup_name);
-
-  /* Walk all the matcher routines and match SYMBOL_NAME against them.
-     Returns true if any matcher matches.  */
-  bool matches (const char *symbol_name);
-
-private:
-  /* A reference to the lookup name we're matching against.  */
-  const lookup_name_info &m_lookup_name;
-
-  /* A vector holding all the different symbol name matchers, for all
-     languages.  */
-  std::vector<symbol_name_matcher_ftype *> m_symbol_name_matcher_funcs;
-};
-
-gdb_index_symbol_name_matcher::gdb_index_symbol_name_matcher
-  (const lookup_name_info &lookup_name)
-    : m_lookup_name (lookup_name)
-{
-  /* Prepare the vector of comparison functions upfront, to avoid
-     doing the same work for each symbol.  Care is taken to avoid
-     matching with the same matcher more than once if/when multiple
-     languages use the same matcher function.  */
-  auto &matchers = m_symbol_name_matcher_funcs;
-  matchers.reserve (nr_languages);
-
-  matchers.push_back (default_symbol_name_matcher);
-
-  for (int i = 0; i < nr_languages; i++)
-    {
-      const language_defn *lang = language_def ((enum language) i);
-      symbol_name_matcher_ftype *name_matcher
-	= get_symbol_name_matcher (lang, m_lookup_name);
-
-      /* Don't insert the same comparison routine more than once.
-	 Note that we do this linear walk instead of a seemingly
-	 cheaper sorted insert, or use a std::set or something like
-	 that, because relative order of function addresses is not
-	 stable.  This is not a problem in practice because the number
-	 of supported languages is low, and the cost here is tiny
-	 compared to the number of searches we'll do afterwards using
-	 this object.  */
-      if (name_matcher != default_symbol_name_matcher
-	  && (std::find (matchers.begin (), matchers.end (), name_matcher)
-	      == matchers.end ()))
-	matchers.push_back (name_matcher);
-    }
-}
-
-bool
-gdb_index_symbol_name_matcher::matches (const char *symbol_name)
-{
-  for (auto matches_name : m_symbol_name_matcher_funcs)
-    if (matches_name (symbol_name, m_lookup_name, NULL))
-      return true;
-
-  return false;
-}
-
 /* Starting from a search name, return the string that finds the upper
    bound of all strings that start with SEARCH_NAME in a sorted name
    list.  Returns the empty string to indicate that the upper bound is
@@ -4367,13 +4281,13 @@ make_sort_after_prefix_name (const char *search_name)
 std::pair<std::vector<name_component>::const_iterator,
 	  std::vector<name_component>::const_iterator>
 mapped_index_base::find_name_components_bounds
-  (const lookup_name_info &lookup_name_without_params) const
+  (const lookup_name_info &lookup_name_without_params, language lang) const
 {
   auto *name_cmp
     = this->name_components_casing == case_sensitive_on ? strcmp : strcasecmp;
 
-  const char *cplus
-    = lookup_name_without_params.cplus ().lookup_name ().c_str ();
+  const char *lang_name
+    = lookup_name_without_params.language_lookup_name (lang).c_str ();
 
   /* Comparison function object for lower_bound that matches against a
      given symbol name.  */
@@ -4401,10 +4315,10 @@ mapped_index_base::find_name_components_bounds
   /* Find the lower bound.  */
   auto lower = [&] ()
     {
-      if (lookup_name_without_params.completion_mode () && cplus[0] == '\0')
+      if (lookup_name_without_params.completion_mode () && lang_name[0] == '\0')
 	return begin;
       else
-	return std::lower_bound (begin, end, cplus, lookup_compare_lower);
+	return std::lower_bound (begin, end, lang_name, lookup_compare_lower);
     } ();
 
   /* Find the upper bound.  */
@@ -4423,14 +4337,14 @@ mapped_index_base::find_name_components_bounds
 	     We find the upper bound by looking for the insertion
 	     point of "func"-with-last-character-incremented,
 	     i.e. "fund".  */
-	  std::string after = make_sort_after_prefix_name (cplus);
+	  std::string after = make_sort_after_prefix_name (lang_name);
 	  if (after.empty ())
 	    return end;
 	  return std::lower_bound (lower, end, after.c_str (),
 				   lookup_compare_lower);
 	}
       else
-	return std::upper_bound (lower, end, cplus, lookup_compare_upper);
+	return std::upper_bound (lower, end, lang_name, lookup_compare_upper);
     } ();
 
   return {lower, upper};
@@ -4450,11 +4364,7 @@ mapped_index_base::build_name_components ()
 
   /* The code below only knows how to break apart components of C++
      symbol names (and other languages that use '::' as
-     namespace/module separator).  If we add support for wild matching
-     to some language that uses some other operator (E.g., Ada, Go and
-     D use '.'), then we'll need to try splitting the symbol name
-     according to that language too.  Note that Ada does support wild
-     matching, but doesn't currently support .gdb_index.  */
+     namespace/module separator) and Ada symbol names.  */
   auto count = this->symbol_name_count ();
   for (offset_type idx = 0; idx < count; idx++)
     {
@@ -4465,16 +4375,33 @@ mapped_index_base::build_name_components ()
 
       /* Add each name component to the name component table.  */
       unsigned int previous_len = 0;
-      for (unsigned int current_len = cp_find_first_component (name);
-	   name[current_len] != '\0';
-	   current_len += cp_find_first_component (name + current_len))
+
+      if (strstr (name, "::") != nullptr)
+	{
+	  for (unsigned int current_len = cp_find_first_component (name);
+	       name[current_len] != '\0';
+	       current_len += cp_find_first_component (name + current_len))
+	    {
+	      gdb_assert (name[current_len] == ':');
+	      this->name_components.push_back ({previous_len, idx});
+	      /* Skip the '::'.  */
+	      current_len += 2;
+	      previous_len = current_len;
+	    }
+	}
+      else
 	{
-	  gdb_assert (name[current_len] == ':');
-	  this->name_components.push_back ({previous_len, idx});
-	  /* Skip the '::'.  */
-	  current_len += 2;
-	  previous_len = current_len;
+	  /* Handle the Ada encoded (aka mangled) form here.  */
+	  for (const char *iter = strstr (name, "__");
+	       iter != nullptr;
+	       iter = strstr (iter, "__"))
+	    {
+	      this->name_components.push_back ({previous_len, idx});
+	      iter += 2;
+	      previous_len = iter - name;
+	    }
 	}
+
       this->name_components.push_back ({previous_len, idx});
     }
 
@@ -4509,22 +4436,15 @@ dw2_expand_symtabs_matching_symbol
    const lookup_name_info &lookup_name_in,
    gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
    enum search_domain kind,
-   gdb::function_view<void (offset_type)> match_callback)
+   gdb::function_view<bool (offset_type)> match_callback)
 {
   lookup_name_info lookup_name_without_params
     = lookup_name_in.make_ignore_params ();
-  gdb_index_symbol_name_matcher lookup_name_matcher
-    (lookup_name_without_params);
 
   /* Build the symbol name component sorted vector, if we haven't
      yet.  */
   index.build_name_components ();
 
-  auto bounds = index.find_name_components_bounds (lookup_name_without_params);
-
-  /* Now for each symbol name in range, check to see if we have a name
-     match, and if so, call the MATCH_CALLBACK callback.  */
-
   /* The same symbol may appear more than once in the range though.
      E.g., if we're looking for symbols that complete "w", and we have
      a symbol named "w1::w2", we'll find the two name components for
@@ -4533,17 +4453,61 @@ dw2_expand_symtabs_matching_symbol
      indexes that matched in a temporary vector and ignore
      duplicates.  */
   std::vector<offset_type> matches;
-  matches.reserve (std::distance (bounds.first, bounds.second));
 
-  for (; bounds.first != bounds.second; ++bounds.first)
+  struct name_and_matcher
+  {
+    symbol_name_matcher_ftype *matcher;
+    const std::string &name;
+
+    bool operator== (const name_and_matcher &other) const
     {
-      const char *qualified = index.symbol_name_at (bounds.first->idx);
+      return matcher == other.matcher && name == other.name;
+    }
+  };
+
+  /* A vector holding all the different symbol name matchers, for all
+     languages.  */
+  std::vector<name_and_matcher> matchers;
+
+  for (int i = 0; i < nr_languages; i++)
+    {
+      enum language lang_e = (enum language) i;
+
+      const language_defn *lang = language_def (lang_e);
+      symbol_name_matcher_ftype *name_matcher
+	= get_symbol_name_matcher (lang, lookup_name_without_params);
+
+      name_and_matcher key {
+         name_matcher,
+	 lookup_name_without_params.language_lookup_name (lang_e)
+      };
 
-      if (!lookup_name_matcher.matches (qualified)
-	  || (symbol_matcher != NULL && !symbol_matcher (qualified)))
+      /* Don't insert the same comparison routine more than once.
+	 Note that we do this linear walk.  This is not a problem in
+	 practice because the number of supported languages is
+	 low.  */
+      if (std::find (matchers.begin (), matchers.end (), key)
+	  != matchers.end ())
 	continue;
+      matchers.push_back (std::move (key));
+
+      auto bounds
+	= index.find_name_components_bounds (lookup_name_without_params,
+					     lang_e);
+
+      /* Now for each symbol name in range, check to see if we have a name
+	 match, and if so, call the MATCH_CALLBACK callback.  */
+
+      for (; bounds.first != bounds.second; ++bounds.first)
+	{
+	  const char *qualified = index.symbol_name_at (bounds.first->idx);
 
-      matches.push_back (bounds.first->idx);
+	  if (!name_matcher (qualified, lookup_name_without_params, NULL)
+	      || (symbol_matcher != NULL && !symbol_matcher (qualified)))
+	    continue;
+
+	  matches.push_back (bounds.first->idx);
+	}
     }
 
   std::sort (matches.begin (), matches.end ());
@@ -4554,7 +4518,8 @@ dw2_expand_symtabs_matching_symbol
     {
       if (prev != idx)
 	{
-	  match_callback (idx);
+	  if (!match_callback (idx))
+	    break;
 	  prev = idx;
 	}
     }
@@ -4649,6 +4614,7 @@ check_match (const char *file, int line,
 
     if (expected_str == NULL || strcmp (expected_str, matched_name) != 0)
       mismatch (expected_str, matched_name);
+    return true;
   });
 
   const char *expected_str
@@ -4715,7 +4681,8 @@ check_find_bounds_finds (mapped_index_base &index,
   lookup_name_info lookup_name (search_name,
 				symbol_name_match_type::FULL, true);
 
-  auto bounds = index.find_name_components_bounds (lookup_name);
+  auto bounds = index.find_name_components_bounds (lookup_name,
+						   language_cplus);
 
   size_t distance = std::distance (bounds.first, bounds.second);
   if (distance != expected_syms.size ())
@@ -5200,6 +5167,7 @@ dw2_expand_symtabs_matching
     {
       dw2_expand_marked_cus (dwarf2_per_objfile, idx, file_matcher,
 			     expansion_notify, kind);
+      return true;
     });
 }
 
@@ -5684,6 +5652,13 @@ public:
       m_addr (find_vec_in_debug_names (map, namei))
   {}
 
+  dw2_debug_names_iterator (const mapped_debug_names &map,
+			    block_enum block_index, domain_enum domain,
+			    uint32_t namei)
+    : m_map (map), m_block_index (block_index), m_domain (domain),
+      m_addr (find_vec_in_debug_names (map, namei))
+  {}
+
   /* Return the next matching CU or NULL if there are no more.  */
   dwarf2_per_cu_data *next ();
 
@@ -6101,6 +6076,63 @@ dw2_debug_names_expand_symtabs_for_function (struct objfile *objfile,
     }
 }
 
+static void
+dw2_debug_names_map_matching_symbols
+  (struct objfile *objfile,
+   const lookup_name_info &name, domain_enum domain,
+   int global,
+   gdb::function_view<symbol_found_callback_ftype> callback,
+   symbol_compare_ftype *ordered_compare)
+{
+  struct dwarf2_per_objfile *dwarf2_per_objfile
+    = get_dwarf2_per_objfile (objfile);
+
+  /* debug_names_table is NULL if OBJF_READNOW.  */
+  if (!dwarf2_per_objfile->debug_names_table)
+    return;
+
+  mapped_debug_names &map = *dwarf2_per_objfile->debug_names_table;
+  const block_enum block_kind = global ? GLOBAL_BLOCK : STATIC_BLOCK;
+
+  const char *match_name = name.ada ().lookup_name ().c_str ();
+  auto matcher = [&] (const char *symname)
+    {
+      if (ordered_compare == nullptr)
+	return true;
+      return ordered_compare (symname, match_name) == 0;
+    };
+
+  dw2_expand_symtabs_matching_symbol (map, name, matcher, ALL_DOMAIN,
+				      [&] (offset_type namei)
+    {
+      /* The name was matched, now expand corresponding CUs that were
+	 marked.  */
+      dw2_debug_names_iterator iter (map, block_kind, domain, namei);
+
+      struct dwarf2_per_cu_data *per_cu;
+      while ((per_cu = iter.next ()) != NULL)
+	dw2_expand_symtabs_matching_one (per_cu, nullptr, nullptr);
+      return true;
+    });
+
+  /* It's a shame we couldn't do this inside the
+     dw2_expand_symtabs_matching_symbol callback, but that skips CUs
+     that have already been expanded.  Instead, this loop matches what
+     the psymtab code does.  */
+  for (dwarf2_per_cu_data *per_cu : dwarf2_per_objfile->all_comp_units)
+    {
+      struct compunit_symtab *cust = per_cu->v.quick->compunit_symtab;
+      if (cust != nullptr)
+	{
+	  const struct block *block
+	    = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cust), block_kind);
+	  if (!iterate_over_symbols_terminated (block, name,
+						domain, callback))
+	    break;
+	}
+    }
+}
+
 static void
 dw2_debug_names_expand_symtabs_matching
   (struct objfile *objfile,
@@ -6133,6 +6165,7 @@ dw2_debug_names_expand_symtabs_matching
       while ((per_cu = iter.next ()) != NULL)
 	dw2_expand_symtabs_matching_one (per_cu, file_matcher,
 					 expansion_notify);
+      return true;
     });
 }
 
@@ -6148,7 +6181,7 @@ const struct quick_symbol_functions dwarf2_debug_names_functions =
   dw2_debug_names_expand_symtabs_for_function,
   dw2_expand_all_symtabs,
   dw2_expand_symtabs_with_fullname,
-  dw2_map_matching_symbols,
+  dw2_debug_names_map_matching_symbols,
   dw2_debug_names_expand_symtabs_matching,
   dw2_find_pc_sect_compunit_symtab,
   NULL,


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add Ada support to cc-with-tweaks.exp
@ 2019-09-10 16:50 gdb-buildbot
  2019-09-10 22:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-10 16:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8a51616424828e6204a20436a719f98436f5d5ea ***

commit 8a51616424828e6204a20436a719f98436f5d5ea
Author:     Tom Tromey <tromey@adacore.com>
AuthorDate: Tue Jul 9 13:51:26 2019 -0600
Commit:     Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600

    Add Ada support to cc-with-tweaks.exp
    
    This adds Ada support to the cc-with-tweaks.exp board file, so that we
    can test Ada this way.  The cc-with-tweaks.sh script already works
    reasonably well as a wrapper for gnatmake.
    
    gdb/testsuite/ChangeLog
    2019-09-10  Tom Tromey  <tromey@adacore.com>
    
            * boards/cc-with-tweaks.exp: Set GNATMAKE_FOR_TARGET.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 9df3563c47..a51d22ce22 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-10  Tom Tromey  <tromey@adacore.com>
+
+	* boards/cc-with-tweaks.exp: Set GNATMAKE_FOR_TARGET.
+
 2019-09-10  Tom Tromey  <tromey@adacore.com>
 
 	* gdb.ada/dgopt.exp: New file.
diff --git a/gdb/testsuite/boards/cc-with-tweaks.exp b/gdb/testsuite/boards/cc-with-tweaks.exp
index c50a0065c2..371481477a 100644
--- a/gdb/testsuite/boards/cc-with-tweaks.exp
+++ b/gdb/testsuite/boards/cc-with-tweaks.exp
@@ -42,6 +42,7 @@ load_generic_config "unix"
 process_multilib_options ""
 set found_gcc [find_gcc]
 set found_gxx [find_g++]
+set found_gnatmake [find_gnatmake]
 set_board_info compiler "$found_gcc"
 
 set contrib_dir [file normalize $srcdir/../contrib]
@@ -53,6 +54,10 @@ if ![info exists CXX_FOR_TARGET] {
     set CXX_FOR_TARGET "$found_gxx"
 }
 set CXX_FOR_TARGET "$contrib_dir/cc-with-tweaks.sh $CC_WITH_TWEAKS_FLAGS $CXX_FOR_TARGET"
+if ![info exists GNATMAKE_FOR_TARGET] {
+    set GNATMAKE_FOR_TARGET "$found_gnatmake"
+}
+set GNATMAKE_FOR_TARGET "$contrib_dir/cc-with-tweaks.sh $CC_WITH_TWEAKS_FLAGS $GNATMAKE_FOR_TARGET"
 
 set pwd [exec pwd -P]
 exec echo $GDB $INTERNAL_GDBFLAGS $GDBFLAGS \"\$@\" > $pwd/gdb.sh


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use the correct alias for the M68K tdiv instruction.
@ 2019-09-10 17:05 gdb-buildbot
  2019-09-11  0:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-10 17:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8063ab7e37c1a2abfa272d10e8d2c7ae192b1787 ***

commit 8063ab7e37c1a2abfa272d10e8d2c7ae192b1787
Author:     Miod Vallat <miod@online.fr>
AuthorDate: Tue Sep 10 17:17:01 2019 +0100
Commit:     Nick Clifton <nickc@redhat.com>
CommitDate: Tue Sep 10 17:17:01 2019 +0100

    Use the correct alias for the M68K tdiv instruction.
    
            PR 24982
            * m68k-opc.c: Correct aliases for tdivsl and tdivul.

diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 67bc754be5..392fcacfb6 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-10  Miod Vallat  <miod@online.fr>
+
+	PR 24982
+	* m68k-opc.c: Correct aliases for tdivsl and tdivul.
+
 2019-09-09  Phil Blundell  <pb@pbcl.net>
 
 	binutils 2.33 branch created.
diff --git a/opcodes/m68k-opc.c b/opcodes/m68k-opc.c
index d99bf90fca..c93c675981 100644
--- a/opcodes/m68k-opc.c
+++ b/opcodes/m68k-opc.c
@@ -2325,7 +2325,7 @@ const struct m68k_opcode_alias m68k_opcode_aliases[] =
   { "dbhsw",	"dbcc", },
   { "dbra",	"dbf", },
   { "dbraw",	"dbf", },
-  { "tdivsl",	"divsl", },
+  { "tdivsl",	"divsll", },
   { "divs",	"divsw", },
   { "divu",	"divuw", },
   { "ext",	"extw", },
@@ -2435,7 +2435,7 @@ const struct m68k_opcode_alias m68k_opcode_aliases[] =
   { "movsw",	"movesw", },
   { "mov3q",	"mov3ql", },
 
-  { "tdivul",	"divul", },	/* For m68k-svr4.  */
+  { "tdivul",	"divull", },	/* For m68k-svr4.  */
   { "fmovb",	"fmoveb", },
   { "fsmovb",	"fsmoveb", },
   { "fdmovb",	"fdmoveb", },


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Tidy ld/ldmisc.c
@ 2019-09-11  7:07 gdb-buildbot
  2019-09-11  9:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-11  7:07 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cb7f4b298e5e0a3ab4fb6b13aa89e970478597bc ***

commit cb7f4b298e5e0a3ab4fb6b13aa89e970478597bc
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 9 15:23:27 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 11 13:43:29 2019 +0930

    Tidy ld/ldmisc.c
    
    The idea here is to not use elf-bfd.h and coff-bfd.h in generic linker
    code.
    
    bfd/
            * targets.c (struct bfd_target): Add _bfd_group_name.
            (BFD_JUMP_TABLE): Likewise.
            * coffgen.c (bfd_coff_group_name): New function.
            * elf.c (bfd_elf_group_name): New function.
            * linker.c (_bfd_nolink_bfd_group_name): New function.
            * section.c (bfd_generic_group_name): New function.
            * elf-bfd.h (bfd_elf_group_name): Declare.
            * libbfd-in.h (_bfd_nolink_bfd_group_name): Declare.
            * libcoff-in.h (bfd_coff_group_name): Declare.
            * aout-target.h (MY_bfd_group_name): Define.
            * aout-tic30.c (MY_bfd_group_name): Define.
            * bfd.c (bfd_group_name): Define.
            * binary.c (binary_bfd_group_name): Define.
            * coff-alpha.c (_bfd_ecoff_bfd_group_name): Define.
            * coff-mips.c (_bfd_ecoff_bfd_group_name): Define.
            * coff-rs6000.c (_bfd_xcoff_bfd_group_name): Define.
            * coffcode.h (coff_bfd_group_name): Define.
            * elfxx-target.h (bfd_elfNN_bfd_group_name): Define.
            * i386msdos.c (msdos_bfd_group_name): Define.
            * ihex.c (ihex_bfd_group_name): Define.
            * mach-o-target.c (bfd_mach_o_bfd_group_name): Define.
            * mmo.c (mmo_bfd_group_name): Define.
            * pef.c (bfd_pef_bfd_group_name): Define.
            * plugin.c (bfd_plugin_bfd_group_name): Define.
            * ppcboot.c (ppcboot_bfd_group_name): Define.
            * som.c (som_bfd_group_name): Define.
            * srec.c (srec_bfd_group_name): Define.
            * tekhex.c (tekhex_bfd_group_name): Define.
            * verilog.c (verilog_bfd_group_name): Define.
            * vms-alpha.c (vms_bfd_group_name, alpha_vms_bfd_group_name): Define.
            * xsym.c (bfd_sym_bfd_group_name): Define.
            * coff64-rs6000.c (rs6000_xcoff64_vec): Init new field.
            (rs6000_xcoff64_aix_vec): Likewise.
            * bfd-in2.h: Regenerate.
            * libbfd.h: Regenerate.
            * libcoff.h: Regenerate.
    ld/
            * ldmisc.c: Don't #include elf-bfd.h or coff-bfd.h.
            (vfinfo): Use bfd_group_name.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8b6b843a6f..f498a91b88 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,42 @@
+2019-09-11  Alan Modra  <amodra@gmail.com>
+
+	* targets.c (struct bfd_target): Add _bfd_group_name.
+	(BFD_JUMP_TABLE): Likewise.
+	* coffgen.c (bfd_coff_group_name): New function.
+	* elf.c (bfd_elf_group_name): New function.
+	* linker.c (_bfd_nolink_bfd_group_name): New function.
+	* section.c (bfd_generic_group_name): New function.
+	* elf-bfd.h (bfd_elf_group_name): Declare.
+	* libbfd-in.h (_bfd_nolink_bfd_group_name): Declare.
+	* libcoff-in.h (bfd_coff_group_name): Declare.
+	* aout-target.h (MY_bfd_group_name): Define.
+	* aout-tic30.c (MY_bfd_group_name): Define.
+	* bfd.c (bfd_group_name): Define.
+	* binary.c (binary_bfd_group_name): Define.
+	* coff-alpha.c (_bfd_ecoff_bfd_group_name): Define.
+	* coff-mips.c (_bfd_ecoff_bfd_group_name): Define.
+	* coff-rs6000.c (_bfd_xcoff_bfd_group_name): Define.
+	* coffcode.h (coff_bfd_group_name): Define.
+	* elfxx-target.h (bfd_elfNN_bfd_group_name): Define.
+	* i386msdos.c (msdos_bfd_group_name): Define.
+	* ihex.c (ihex_bfd_group_name): Define.
+	* mach-o-target.c (bfd_mach_o_bfd_group_name): Define.
+	* mmo.c (mmo_bfd_group_name): Define.
+	* pef.c (bfd_pef_bfd_group_name): Define.
+	* plugin.c (bfd_plugin_bfd_group_name): Define.
+	* ppcboot.c (ppcboot_bfd_group_name): Define.
+	* som.c (som_bfd_group_name): Define.
+	* srec.c (srec_bfd_group_name): Define.
+	* tekhex.c (tekhex_bfd_group_name): Define.
+	* verilog.c (verilog_bfd_group_name): Define.
+	* vms-alpha.c (vms_bfd_group_name, alpha_vms_bfd_group_name): Define.
+	* xsym.c (bfd_sym_bfd_group_name): Define.
+	* coff64-rs6000.c (rs6000_xcoff64_vec): Init new field.
+	(rs6000_xcoff64_aix_vec): Likewise.
+	* bfd-in2.h: Regenerate.
+	* libbfd.h: Regenerate.
+	* libcoff.h: Regenerate.
+
 2019-09-10  Nick Clifton  <nickc@redhat.com>
 
 	PR 24907
diff --git a/bfd/aout-target.h b/bfd/aout-target.h
index 99a82bb57a..58de28faba 100644
--- a/bfd/aout-target.h
+++ b/bfd/aout-target.h
@@ -502,6 +502,9 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
 #ifndef MY_bfd_is_group_section
 #define MY_bfd_is_group_section bfd_generic_is_group_section
 #endif
+#ifndef MY_bfd_group_name
+#define MY_bfd_group_name bfd_generic_group_name
+#endif
 #ifndef MY_bfd_discard_group
 #define MY_bfd_discard_group bfd_generic_discard_group
 #endif
diff --git a/bfd/aout-tic30.c b/bfd/aout-tic30.c
index 49463181f0..7cc6ba5f6c 100644
--- a/bfd/aout-tic30.c
+++ b/bfd/aout-tic30.c
@@ -991,6 +991,9 @@ tic30_aout_set_arch_mach (bfd *abfd,
 #ifndef MY_bfd_is_group_section
 #define MY_bfd_is_group_section bfd_generic_is_group_section
 #endif
+#ifndef MY_bfd_group_name
+#define MY_bfd_group_name bfd_generic_group_name
+#endif
 #ifndef MY_bfd_discard_group
 #define MY_bfd_discard_group bfd_generic_discard_group
 #endif
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 690ba9a6fd..dc9b5daf94 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2002,6 +2002,8 @@ bfd_boolean bfd_copy_private_section_data
                  (ibfd, isection, obfd, osection))
 bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
 
+const char *bfd_generic_group_name (bfd *, const asection *sec);
+
 bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
 
 /* Extracted from archures.c.  */
@@ -7477,6 +7479,9 @@ bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
 #define bfd_is_group_section(abfd, sec) \
        BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
 
+#define bfd_group_name(abfd, sec) \
+       BFD_SEND (abfd, _bfd_group_name, (abfd, sec))
+
 #define bfd_discard_group(abfd, sec) \
        BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
 
@@ -7908,6 +7913,7 @@ typedef struct bfd_target
   NAME##_bfd_lookup_section_flags, \
   NAME##_bfd_merge_sections, \
   NAME##_bfd_is_group_section, \
+  NAME##_bfd_group_name, \
   NAME##_bfd_discard_group, \
   NAME##_section_already_linked, \
   NAME##_bfd_define_common_symbol, \
@@ -7966,6 +7972,9 @@ typedef struct bfd_target
   /* Is this section a member of a group?  */
   bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
 
+  /* The group name, if section is a member of a group.  */
+  const char *(*_bfd_group_name) (bfd *, const struct bfd_section *);
+
   /* Discard members of a group.  */
   bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
 
diff --git a/bfd/bfd.c b/bfd/bfd.c
index f56a8d342f..f14ec253fb 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1862,6 +1862,9 @@ DESCRIPTION
 .#define bfd_is_group_section(abfd, sec) \
 .	BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
 .
+.#define bfd_group_name(abfd, sec) \
+.	BFD_SEND (abfd, _bfd_group_name, (abfd, sec))
+.
 .#define bfd_discard_group(abfd, sec) \
 .	BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
 .
diff --git a/bfd/binary.c b/bfd/binary.c
index 37f5f9f736..eb87d11b6e 100644
--- a/bfd/binary.c
+++ b/bfd/binary.c
@@ -307,6 +307,7 @@ binary_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED,
 #define binary_bfd_lookup_section_flags		   bfd_generic_lookup_section_flags
 #define binary_bfd_merge_sections		   bfd_generic_merge_sections
 #define binary_bfd_is_group_section		   bfd_generic_is_group_section
+#define binary_bfd_group_name			   bfd_generic_group_name
 #define binary_bfd_discard_group		   bfd_generic_discard_group
 #define binary_section_already_linked		  _bfd_generic_section_already_linked
 #define binary_bfd_define_common_symbol		   bfd_generic_define_common_symbol
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index 726d20bfbb..ee4a3eeded 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -2390,6 +2390,7 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data =
 #define _bfd_ecoff_bfd_gc_sections bfd_generic_gc_sections
 #define _bfd_ecoff_bfd_merge_sections bfd_generic_merge_sections
 #define _bfd_ecoff_bfd_is_group_section bfd_generic_is_group_section
+#define _bfd_ecoff_bfd_group_name bfd_generic_group_name
 #define _bfd_ecoff_bfd_discard_group bfd_generic_discard_group
 #define _bfd_ecoff_section_already_linked \
   _bfd_coff_section_already_linked
diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c
index 3ada9ceb0f..a2dd9e1c4f 100644
--- a/bfd/coff-mips.c
+++ b/bfd/coff-mips.c
@@ -1416,6 +1416,7 @@ static const struct ecoff_backend_data mips_ecoff_backend_data =
 #define _bfd_ecoff_bfd_merge_sections bfd_generic_merge_sections
 
 #define _bfd_ecoff_bfd_is_group_section bfd_generic_is_group_section
+#define _bfd_ecoff_bfd_group_name bfd_generic_group_name
 #define _bfd_ecoff_bfd_discard_group bfd_generic_discard_group
 #define _bfd_ecoff_section_already_linked \
   _bfd_coff_section_already_linked
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 85e90a0254..4620254aae 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -4057,6 +4057,7 @@ const struct xcoff_dwsect_name xcoff_dwsect_names[] = {
 #define _bfd_xcoff_bfd_lookup_section_flags bfd_generic_lookup_section_flags
 #define _bfd_xcoff_bfd_merge_sections bfd_generic_merge_sections
 #define _bfd_xcoff_bfd_is_group_section bfd_generic_is_group_section
+#define _bfd_xcoff_bfd_group_name bfd_generic_group_name
 #define _bfd_xcoff_bfd_discard_group bfd_generic_discard_group
 #define _bfd_xcoff_section_already_linked _bfd_generic_section_already_linked
 #define _bfd_xcoff_bfd_define_common_symbol _bfd_xcoff_define_common_symbol
diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index 6f0e358f4a..b6b189fd2d 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -2778,6 +2778,7 @@ const bfd_target rs6000_xcoff64_vec =
     bfd_generic_lookup_section_flags,
     bfd_generic_merge_sections,
     bfd_generic_is_group_section,
+    bfd_generic_group_name,
     bfd_generic_discard_group,
     _bfd_generic_section_already_linked,
     _bfd_xcoff_define_common_symbol,
@@ -3040,6 +3041,7 @@ const bfd_target rs6000_xcoff64_aix_vec =
     bfd_generic_lookup_section_flags,
     bfd_generic_merge_sections,
     bfd_generic_is_group_section,
+    bfd_generic_group_name,
     bfd_generic_discard_group,
     _bfd_generic_section_already_linked,
     _bfd_xcoff_define_common_symbol,
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index c3f13300a4..054e45c960 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -5751,6 +5751,10 @@ static bfd_coff_backend_data bigobj_swap_table =
 #define coff_bfd_is_group_section	    bfd_generic_is_group_section
 #endif
 
+#ifndef coff_bfd_group_name
+#define coff_bfd_group_name		    bfd_coff_group_name
+#endif
+
 #ifndef coff_bfd_discard_group
 #define coff_bfd_discard_group		    bfd_generic_discard_group
 #endif
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index 5d61f39c8c..209b01d5d0 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -3155,3 +3155,14 @@ bfd_coff_gc_sections (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
   /* ... and mark SEC_EXCLUDE for those that go.  */
   return coff_gc_sweep (abfd, info);
 }
+
+/* Return name used to identify a comdat group.  */
+
+const char *
+bfd_coff_group_name (bfd *abfd, const asection *sec)
+{
+  struct coff_comdat_info *ci = bfd_coff_get_comdat_section (abfd, sec);
+  if (ci != NULL)
+    return ci->name;
+  return NULL;
+}
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 521d35debb..4458ff7b2a 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -2111,6 +2111,8 @@ extern bfd_boolean _bfd_elf_match_sections_by_type
   (bfd *, const asection *, bfd *, const asection *);
 extern bfd_boolean bfd_elf_is_group_section
   (bfd *, const struct bfd_section *);
+extern const char *bfd_elf_group_name
+  (bfd *, const struct bfd_section *);
 extern bfd_boolean _bfd_elf_section_already_linked
   (bfd *, asection *, struct bfd_link_info *);
 extern void bfd_elf_set_group_contents
diff --git a/bfd/elf.c b/bfd/elf.c
index 5a061c9110..ec4c643d59 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -974,6 +974,14 @@ bfd_elf_is_group_section (bfd *abfd ATTRIBUTE_UNUSED, const asection *sec)
   return elf_next_in_group (sec) != NULL;
 }
 
+const char *
+bfd_elf_group_name (bfd *abfd ATTRIBUTE_UNUSED, const asection *sec)
+{
+  if (elf_sec_group (sec) != NULL)
+    return elf_group_name (sec);
+  return NULL;
+}
+
 static char *
 convert_debug_to_zdebug (bfd *abfd, const char *name)
 {
diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h
index 0b737a4ffa..78a1f6314d 100644
--- a/bfd/elfxx-target.h
+++ b/bfd/elfxx-target.h
@@ -192,6 +192,10 @@
 #define bfd_elfNN_bfd_is_group_section bfd_elf_is_group_section
 #endif
 
+#ifndef bfd_elfNN_bfd_group_name
+#define bfd_elfNN_bfd_group_name bfd_elf_group_name
+#endif
+
 #ifndef bfd_elfNN_bfd_discard_group
 #define bfd_elfNN_bfd_discard_group bfd_generic_discard_group
 #endif
diff --git a/bfd/i386msdos.c b/bfd/i386msdos.c
index f70a6f364d..9c4ab4cece 100644
--- a/bfd/i386msdos.c
+++ b/bfd/i386msdos.c
@@ -226,6 +226,7 @@ msdos_set_section_contents (bfd *abfd,
 #define msdos_bfd_lookup_section_flags bfd_generic_lookup_section_flags
 #define msdos_bfd_merge_sections bfd_generic_merge_sections
 #define msdos_bfd_is_group_section bfd_generic_is_group_section
+#define msdos_bfd_group_name bfd_generic_group_name
 #define msdos_bfd_discard_group bfd_generic_discard_group
 #define msdos_section_already_linked \
   _bfd_generic_section_already_linked
diff --git a/bfd/ihex.c b/bfd/ihex.c
index 101e0a7615..09149089be 100644
--- a/bfd/ihex.c
+++ b/bfd/ihex.c
@@ -962,6 +962,7 @@ ihex_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED,
 #define ihex_bfd_lookup_section_flags		  bfd_generic_lookup_section_flags
 #define ihex_bfd_merge_sections			  bfd_generic_merge_sections
 #define ihex_bfd_is_group_section		  bfd_generic_is_group_section
+#define ihex_bfd_group_name			  bfd_generic_group_name
 #define ihex_bfd_discard_group			  bfd_generic_discard_group
 #define ihex_section_already_linked		  _bfd_generic_section_already_linked
 #define ihex_bfd_define_common_symbol		  bfd_generic_define_common_symbol
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
index cac4d3b022..f498ffd5e7 100644
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -523,6 +523,8 @@ extern bfd_boolean _bfd_nolink_bfd_lookup_section_flags
 #define _bfd_nolink_bfd_merge_sections _bfd_bool_bfd_link_false_error
 extern bfd_boolean _bfd_nolink_bfd_is_group_section
   (bfd *, const asection *) ATTRIBUTE_HIDDEN;
+extern const char *_bfd_nolink_bfd_group_name
+  (bfd *, const asection *) ATTRIBUTE_HIDDEN;
 extern bfd_boolean _bfd_nolink_bfd_discard_group
   (bfd *, asection *) ATTRIBUTE_HIDDEN;
 extern struct bfd_link_hash_table *_bfd_nolink_bfd_link_hash_table_create
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index aabe247068..2ea167ecb6 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -528,6 +528,8 @@ extern bfd_boolean _bfd_nolink_bfd_lookup_section_flags
 #define _bfd_nolink_bfd_merge_sections _bfd_bool_bfd_link_false_error
 extern bfd_boolean _bfd_nolink_bfd_is_group_section
   (bfd *, const asection *) ATTRIBUTE_HIDDEN;
+extern const char *_bfd_nolink_bfd_group_name
+  (bfd *, const asection *) ATTRIBUTE_HIDDEN;
 extern bfd_boolean _bfd_nolink_bfd_discard_group
   (bfd *, asection *) ATTRIBUTE_HIDDEN;
 extern struct bfd_link_hash_table *_bfd_nolink_bfd_link_hash_table_create
diff --git a/bfd/libcoff-in.h b/bfd/libcoff-in.h
index c75c9ac595..783d54a88a 100644
--- a/bfd/libcoff-in.h
+++ b/bfd/libcoff-in.h
@@ -577,7 +577,8 @@ extern bfd_boolean _bfd_coff_reloc_link_order
    struct bfd_link_order *);
 extern bfd_boolean bfd_coff_gc_sections
   (bfd *, struct bfd_link_info *);
-
+extern const char *bfd_coff_group_name
+  (bfd *, const asection *);
 
 #define coff_get_section_contents_in_window \
   _bfd_generic_get_section_contents_in_window
diff --git a/bfd/libcoff.h b/bfd/libcoff.h
index d0e3d0dd90..f2613c2e77 100644
--- a/bfd/libcoff.h
+++ b/bfd/libcoff.h
@@ -581,7 +581,8 @@ extern bfd_boolean _bfd_coff_reloc_link_order
    struct bfd_link_order *);
 extern bfd_boolean bfd_coff_gc_sections
   (bfd *, struct bfd_link_info *);
-
+extern const char *bfd_coff_group_name
+  (bfd *, const asection *);
 
 #define coff_get_section_contents_in_window \
   _bfd_generic_get_section_contents_in_window
diff --git a/bfd/linker.c b/bfd/linker.c
index 1b71fcf8f0..f6eef93259 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -3461,6 +3461,13 @@ _bfd_nolink_bfd_is_group_section (bfd *abfd,
   return _bfd_bool_bfd_false_error (abfd);
 }
 
+const char *
+_bfd_nolink_bfd_group_name (bfd *abfd,
+			    const asection *sec ATTRIBUTE_UNUSED)
+{
+  return _bfd_ptr_bfd_null_error (abfd);
+}
+
 bfd_boolean
 _bfd_nolink_bfd_discard_group (bfd *abfd, asection *sec ATTRIBUTE_UNUSED)
 {
diff --git a/bfd/mach-o-target.c b/bfd/mach-o-target.c
index e02dd79018..e15e88f353 100644
--- a/bfd/mach-o-target.c
+++ b/bfd/mach-o-target.c
@@ -52,6 +52,7 @@
 #define bfd_mach_o_bfd_lookup_section_flags	      bfd_generic_lookup_section_flags
 #define bfd_mach_o_bfd_merge_sections		      bfd_generic_merge_sections
 #define bfd_mach_o_bfd_is_group_section		      bfd_generic_is_group_section
+#define bfd_mach_o_bfd_group_name		      bfd_generic_group_name
 #define bfd_mach_o_bfd_discard_group		      bfd_generic_discard_group
 #define bfd_mach_o_section_already_linked	      _bfd_generic_section_already_linked
 #define bfd_mach_o_bfd_define_common_symbol	      bfd_generic_define_common_symbol
diff --git a/bfd/mmo.c b/bfd/mmo.c
index bd4303c531..f48f9868fe 100644
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -3311,6 +3311,7 @@ mmo_write_object_contents (bfd *abfd)
 #define mmo_bfd_relax_section bfd_generic_relax_section
 #define mmo_bfd_merge_sections bfd_generic_merge_sections
 #define mmo_bfd_is_group_section bfd_generic_is_group_section
+#define mmo_bfd_group_name bfd_generic_group_name
 #define mmo_bfd_discard_group bfd_generic_discard_group
 #define mmo_section_already_linked \
   _bfd_generic_section_already_linked
diff --git a/bfd/pef.c b/bfd/pef.c
index 8c66ca477d..effa076405 100644
--- a/bfd/pef.c
+++ b/bfd/pef.c
@@ -56,6 +56,7 @@
 #define bfd_pef_bfd_lookup_section_flags	    bfd_generic_lookup_section_flags
 #define bfd_pef_bfd_merge_sections		    bfd_generic_merge_sections
 #define bfd_pef_bfd_is_group_section		    bfd_generic_is_group_section
+#define bfd_pef_bfd_group_name			    bfd_generic_group_name
 #define bfd_pef_bfd_discard_group		    bfd_generic_discard_group
 #define bfd_pef_section_already_linked		    _bfd_generic_section_already_linked
 #define bfd_pef_bfd_define_common_symbol	    bfd_generic_define_common_symbol
diff --git a/bfd/plugin.c b/bfd/plugin.c
index 5f760e9c42..ca26005055 100644
--- a/bfd/plugin.c
+++ b/bfd/plugin.c
@@ -102,6 +102,7 @@ dlerror (void)
 #define bfd_plugin_bfd_lookup_section_flags	      bfd_generic_lookup_section_flags
 #define bfd_plugin_bfd_merge_sections		      bfd_generic_merge_sections
 #define bfd_plugin_bfd_is_group_section		      bfd_generic_is_group_section
+#define bfd_plugin_bfd_group_name		      bfd_generic_group_name
 #define bfd_plugin_bfd_discard_group		      bfd_generic_discard_group
 #define bfd_plugin_section_already_linked	      _bfd_generic_section_already_linked
 #define bfd_plugin_bfd_define_common_symbol	      bfd_generic_define_common_symbol
diff --git a/bfd/ppcboot.c b/bfd/ppcboot.c
index 99db8234d1..02132e7801 100644
--- a/bfd/ppcboot.c
+++ b/bfd/ppcboot.c
@@ -456,6 +456,7 @@ ppcboot_bfd_print_private_bfd_data (bfd *abfd, void * farg)
 #define ppcboot_bfd_lookup_section_flags bfd_generic_lookup_section_flags
 #define ppcboot_bfd_merge_sections bfd_generic_merge_sections
 #define ppcboot_bfd_is_group_section bfd_generic_is_group_section
+#define ppcboot_bfd_group_name bfd_generic_group_name
 #define ppcboot_bfd_discard_group bfd_generic_discard_group
 #define ppcboot_section_already_linked \
   _bfd_generic_section_already_linked
diff --git a/bfd/section.c b/bfd/section.c
index 64636334ac..74feb73be9 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -1662,6 +1662,24 @@ bfd_generic_is_group_section (bfd *abfd ATTRIBUTE_UNUSED,
   return FALSE;
 }
 
+/*
+FUNCTION
+	bfd_generic_group_name
+
+SYNOPSIS
+	const char *bfd_generic_group_name (bfd *, const asection *sec);
+
+DESCRIPTION
+	Returns group name if @var{sec} is a member of a group.
+*/
+
+const char *
+bfd_generic_group_name (bfd *abfd ATTRIBUTE_UNUSED,
+			const asection *sec ATTRIBUTE_UNUSED)
+{
+  return NULL;
+}
+
 /*
 FUNCTION
 	bfd_generic_discard_group
diff --git a/bfd/som.c b/bfd/som.c
index 0d17b3278a..02a99a3360 100644
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -6756,6 +6756,7 @@ som_bfd_link_split_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
 #define som_bfd_lookup_section_flags		bfd_generic_lookup_section_flags
 #define som_bfd_merge_sections			bfd_generic_merge_sections
 #define som_bfd_is_group_section		bfd_generic_is_group_section
+#define som_bfd_group_name			bfd_generic_group_name
 #define som_bfd_discard_group			bfd_generic_discard_group
 #define som_section_already_linked		_bfd_generic_section_already_linked
 #define som_bfd_define_common_symbol		bfd_generic_define_common_symbol
diff --git a/bfd/srec.c b/bfd/srec.c
index 77eaecd111..218276837c 100644
--- a/bfd/srec.c
+++ b/bfd/srec.c
@@ -1275,6 +1275,7 @@ srec_print_symbol (bfd *abfd,
 #define srec_bfd_lookup_section_flags		  bfd_generic_lookup_section_flags
 #define srec_bfd_merge_sections			  bfd_generic_merge_sections
 #define srec_bfd_is_group_section		  bfd_generic_is_group_section
+#define srec_bfd_group_name			  bfd_generic_group_name
 #define srec_bfd_discard_group			  bfd_generic_discard_group
 #define srec_section_already_linked		  _bfd_generic_section_already_linked
 #define srec_bfd_define_common_symbol		  bfd_generic_define_common_symbol
diff --git a/bfd/targets.c b/bfd/targets.c
index 6b85c62798..09956994ec 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -462,6 +462,7 @@ BFD_JUMP_TABLE macros.
 .  NAME##_bfd_lookup_section_flags, \
 .  NAME##_bfd_merge_sections, \
 .  NAME##_bfd_is_group_section, \
+.  NAME##_bfd_group_name, \
 .  NAME##_bfd_discard_group, \
 .  NAME##_section_already_linked, \
 .  NAME##_bfd_define_common_symbol, \
@@ -520,6 +521,9 @@ BFD_JUMP_TABLE macros.
 .  {* Is this section a member of a group?  *}
 .  bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
 .
+.  {* The group name, if section is a member of a group.  *}
+.  const char *(*_bfd_group_name) (bfd *, const struct bfd_section *);
+.
 .  {* Discard members of a group.  *}
 .  bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
 .
diff --git a/bfd/tekhex.c b/bfd/tekhex.c
index 386e33b24e..fb03629182 100644
--- a/bfd/tekhex.c
+++ b/bfd/tekhex.c
@@ -978,6 +978,7 @@ tekhex_print_symbol (bfd *abfd,
 #define tekhex_bfd_lookup_section_flags		    bfd_generic_lookup_section_flags
 #define tekhex_bfd_merge_sections		    bfd_generic_merge_sections
 #define tekhex_bfd_is_group_section		    bfd_generic_is_group_section
+#define tekhex_bfd_group_name			    bfd_generic_group_name
 #define tekhex_bfd_discard_group		    bfd_generic_discard_group
 #define tekhex_section_already_linked		    _bfd_generic_section_already_linked
 #define tekhex_bfd_define_common_symbol		    bfd_generic_define_common_symbol
diff --git a/bfd/verilog.c b/bfd/verilog.c
index 252e240277..a785e50a00 100644
--- a/bfd/verilog.c
+++ b/bfd/verilog.c
@@ -368,6 +368,7 @@ verilog_mkobject (bfd *abfd)
 #define verilog_bfd_gc_sections			     bfd_generic_gc_sections
 #define verilog_bfd_merge_sections		     bfd_generic_merge_sections
 #define verilog_bfd_is_group_section		     bfd_generic_is_group_section
+#define verilog_bfd_group_name			     bfd_generic_group_name
 #define verilog_bfd_discard_group		     bfd_generic_discard_group
 #define verilog_section_already_linked		     _bfd_generic_section_already_linked
 #define verilog_bfd_link_hash_table_create	     _bfd_generic_link_hash_table_create
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index 4e6f9c1c42..69822a2ce6 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -9504,6 +9504,7 @@ bfd_vms_get_data (bfd *abfd)
 #define vms_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
 #define vms_bfd_is_group_section	  bfd_generic_is_group_section
+#define vms_bfd_group_name		  bfd_generic_group_name
 #define vms_bfd_discard_group		  bfd_generic_discard_group
 #define vms_section_already_linked	  _bfd_generic_section_already_linked
 #define vms_bfd_define_common_symbol	  bfd_generic_define_common_symbol
@@ -9550,6 +9551,7 @@ bfd_vms_get_data (bfd *abfd)
 #define alpha_vms_bfd_lookup_section_flags bfd_generic_lookup_section_flags
 #define alpha_vms_bfd_merge_sections bfd_generic_merge_sections
 #define alpha_vms_bfd_is_group_section bfd_generic_is_group_section
+#define alpha_vms_bfd_group_name bfd_generic_group_name
 #define alpha_vms_bfd_discard_group bfd_generic_discard_group
 #define alpha_vms_section_already_linked \
   _bfd_generic_section_already_linked
diff --git a/bfd/xsym.c b/bfd/xsym.c
index 67d91cb077..cf4a67167a 100644
--- a/bfd/xsym.c
+++ b/bfd/xsym.c
@@ -48,6 +48,7 @@
 #define bfd_sym_bfd_lookup_section_flags	    bfd_generic_lookup_section_flags
 #define bfd_sym_bfd_merge_sections		    bfd_generic_merge_sections
 #define bfd_sym_bfd_is_group_section		    bfd_generic_is_group_section
+#define bfd_sym_bfd_group_name			    bfd_generic_group_name
 #define bfd_sym_bfd_discard_group		    bfd_generic_discard_group
 #define bfd_sym_section_already_linked		    _bfd_generic_section_already_linked
 #define bfd_sym_bfd_define_common_symbol	    bfd_generic_define_common_symbol
diff --git a/ld/ChangeLog b/ld/ChangeLog
index d24973e0fa..955d460d40 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-11  Alan Modra  <amodra@gmail.com>
+
+	* ldmisc.c: Don't #include elf-bfd.h or coff-bfd.h.
+	(vfinfo): Use bfd_group_name.
+
 2019-09-11  Alan Modra  <amodra@gmail.com>
 
 	* plugin.c (asymbol_from_plugin_symbol): Move code handling
diff --git a/ld/ldmisc.c b/ld/ldmisc.c
index f7ab7b5d99..319f247e3b 100644
--- a/ld/ldmisc.c
+++ b/ld/ldmisc.c
@@ -35,8 +35,6 @@
 #include "ldlex.h"
 #include "ldmain.h"
 #include "ldfile.h"
-#include "elf-bfd.h"
-#include "coff-bfd.h"
 
 /*
  %% literal %
@@ -431,26 +429,18 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
 		  /* section name from a section */
 		  asection *sec;
 		  bfd *abfd;
-		  const char *group = NULL;
-		  struct coff_comdat_info *ci;
 
 		  fmt++;
 		  sec = (asection *) args[arg_no].p;
 		  ++arg_count;
-		  abfd = sec->owner;
 		  fprintf (fp, "%s", sec->name);
-		  if (abfd != NULL
-		      && bfd_get_flavour (abfd) == bfd_target_elf_flavour
-		      && elf_next_in_group (sec) != NULL
-		      && (sec->flags & SEC_GROUP) == 0)
-		    group = elf_group_name (sec);
-		  else if (abfd != NULL
-			   && bfd_get_flavour (abfd) == bfd_target_coff_flavour
-			   && (ci = bfd_coff_get_comdat_section (sec->owner,
-								 sec)) != NULL)
-		    group = ci->name;
-		  if (group != NULL)
-		    fprintf (fp, "[%s]", group);
+		  abfd = sec->owner;
+		  if (abfd != NULL)
+		    {
+		      const char *group = bfd_group_name (abfd, sec);
+		      if (group != NULL)
+			fprintf (fp, "[%s]", group);
+		    }
 		}
 	      else if (*fmt == 'B')
 		{


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Introduce bfd_set_filename
@ 2019-09-11 18:15 gdb-buildbot
  2019-09-11 19:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-11 18:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 64b2d4a0a4e4f80d2aa2e52c6eec3186e76fc397 ***

commit 64b2d4a0a4e4f80d2aa2e52c6eec3186e76fc397
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Sun Sep 8 11:38:24 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Wed Sep 11 07:02:46 2019 -0600

    Introduce bfd_set_filename
    
    This introduces a new bfd_set_filename function, which is then used in
    various spots in gdb.  This allows for the removal of some casts.
    
    bfd/ChangeLog
    2019-09-11  Tom Tromey  <tom@tromey.com>
    
            * opncls.c (bfd_set_filename): New function.
            * bfd-in2.h: Regenerate.
    
    gdb/ChangeLog
    2019-09-11  Tom Tromey  <tom@tromey.com>
    
            * symfile-mem.c (symbol_file_add_from_memory): Use
            bfd_set_filename.
            * solib-darwin.c (darwin_bfd_open): Use bfd_set_filename.
            * solib-aix.c (solib_aix_bfd_open): Use bfd_set_filename.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f498a91b88..ea0f06041b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-11  Tom Tromey  <tom@tromey.com>
+
+	* opncls.c (bfd_set_filename): New function.
+	* bfd-in2.h: Regenerate.
+
 2019-09-11  Alan Modra  <amodra@gmail.com>
 
 	* targets.c (struct bfd_target): Add _bfd_group_name.
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index dc9b5daf94..13445a1de7 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1193,6 +1193,8 @@ bfd_boolean bfd_fill_in_gnu_debuglink_section
 
 char *bfd_follow_build_id_debuglink (bfd *abfd, const char *dir);
 
+void bfd_set_filename (bfd *abfd, char *filename);
+
 /* Extracted from libbfd.c.  */
 
 /* Byte swapping macros for user section data.  */
diff --git a/bfd/opncls.c b/bfd/opncls.c
index 07f89b9a4c..d14dfe9320 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -2089,3 +2089,23 @@ bfd_follow_build_id_debuglink (bfd *abfd, const char *dir)
 				   get_build_id_name,
 				   check_build_id_file, &build_id);
 }
+
+/*
+FUNCTION
+	bfd_set_filename
+
+SYNOPSIS
+	void bfd_set_filename (bfd *abfd, char *filename);
+
+DESCRIPTION
+	Set the filename of @var{abfd}.  The old filename, if any, is freed.
+	@var{filename} must be allocated using @code{xmalloc}.  After
+	this call, it is owned @var{abfd}.
+*/
+
+void
+bfd_set_filename (bfd *abfd, char *filename)
+{
+  free ((char *) abfd->filename);
+  abfd->filename = filename;
+}
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index dace64e6be..e4b18fa1de 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-11  Tom Tromey  <tom@tromey.com>
+
+	* symfile-mem.c (symbol_file_add_from_memory): Use
+	bfd_set_filename.
+	* solib-darwin.c (darwin_bfd_open): Use bfd_set_filename.
+	* solib-aix.c (solib_aix_bfd_open): Use bfd_set_filename.
+
 2019-09-10  Tom Tromey  <tromey@adacore.com>
 
 	* dwarf-index-write.c (write_psymbols): Extend error message.
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index 2b5444293e..0c8a18267c 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -643,10 +643,10 @@ solib_aix_bfd_open (const char *pathname)
      along with appended parenthesized member name in order to allow commands
      listing all shared libraries to display.  Otherwise, we would only be
      displaying the name of the archive member object.  */
-  xfree ((char *) bfd_get_filename (object_bfd.get ()));
-  object_bfd->filename = xstrprintf ("%s%s",
-				     bfd_get_filename (archive_bfd.get ()),
-				     sep);
+  bfd_set_filename (object_bfd.get (),
+		    xstrprintf ("%s%s",
+				bfd_get_filename (archive_bfd.get ()),
+				sep));
 
   return object_bfd;
 }
diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c
index 3dd30d2aa3..778c6d9f61 100644
--- a/gdb/solib-darwin.c
+++ b/gdb/solib-darwin.c
@@ -670,8 +670,7 @@ darwin_bfd_open (const char *pathname)
   /* The current filename for fat-binary BFDs is a name generated
      by BFD, usually a string containing the name of the architecture.
      Reset its value to the actual filename.  */
-  xfree ((char *) bfd_get_filename (res.get ()));
-  res->filename = xstrdup (pathname);
+  bfd_set_filename (res.get (), xstrdup (pathname));
 
   return res;
 }
diff --git a/gdb/symfile-mem.c b/gdb/symfile-mem.c
index 6d1deae1e0..05542c1391 100644
--- a/gdb/symfile-mem.c
+++ b/gdb/symfile-mem.c
@@ -101,11 +101,9 @@ symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
   /* Manage the new reference for the duration of this function.  */
   gdb_bfd_ref_ptr nbfd_holder = gdb_bfd_ref_ptr::new_reference (nbfd);
 
-  xfree ((char *) bfd_get_filename (nbfd));
   if (name == NULL)
-    nbfd->filename = xstrdup ("shared object read from target memory");
-  else
-    nbfd->filename = name;
+    name = xstrdup ("shared object read from target memory");
+  bfd_set_filename (nbfd, name);
 
   if (!bfd_check_format (nbfd, bfd_object))
     error (_("Got object file from memory but can't read symbols: %s."),


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change the type of copy_names from int to bool
@ 2019-09-11 18:32 gdb-buildbot
  2019-09-11 20:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-11 18:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 67547d896b0593b0fa62e23ac68c483a7e8566e2 ***

commit 67547d896b0593b0fa62e23ac68c483a7e8566e2
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Sep 10 15:37:50 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 11 12:43:45 2019 -0500

    Change the type of copy_names from int to bool
    
    This parameter is really a boolean, so change the type accordingly
    and update the callers.
    
    This is for symbol_set_names, add_psymbol_to_bcache, and
    add_psymbol_to_list.
    
    minimal_symbol_reader::record_full was already passing a bool
    to symbol_set_names.
    
    gdb/ChangeLog:
    
    2019-09-11  Christian Biesinger  <cbiesinger@google.com>
    
            * dbxread.c (read_dbx_symtab): Update.
            * dwarf2read.c (load_partial_dies): Update.
            * mdebugread.c (parse_partial_symbols): Update.
            (handle_psymbol_enumerators): Update.
            * psympriv.h (add_psymbol_to_list): Change type of copy_names to bool.
            * psymtab.c (add_psymbol_to_bcache): Likewise.
            (add_psymbol_to_list): Likewise.
            * symtab.c (symbol_set_names): Likewise.
            * symtab.h (symbol_set_names): Likewise.
            * xcoffread.c (scan_xcoff_symtab): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e4b18fa1de..3b28884267 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-11  Christian Biesinger  <cbiesinger@google.com>
+
+	* dbxread.c (read_dbx_symtab): Update.
+	* dwarf2read.c (load_partial_dies): Update.
+	* mdebugread.c (parse_partial_symbols): Update.
+	(handle_psymbol_enumerators): Update.
+	* psympriv.h (add_psymbol_to_list): Change type of copy_names to bool.
+	* psymtab.c (add_psymbol_to_bcache): Likewise.
+	(add_psymbol_to_list): Likewise.
+	* symtab.c (symbol_set_names): Likewise.
+	* symtab.h (symbol_set_names): Likewise.
+	* xcoffread.c (scan_xcoff_symtab): Update.
+
 2019-09-11  Tom Tromey  <tom@tromey.com>
 
 	* symfile-mem.c (symbol_file_add_from_memory): Use
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index df3ae5828a..dc0b2c727b 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -1464,7 +1464,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
 	      if (gdbarch_static_transform_name_p (gdbarch))
 		gdbarch_static_transform_name (gdbarch, namestring);
 
-	      add_psymbol_to_list (sym_name, sym_len, 1,
+	      add_psymbol_to_list (sym_name, sym_len, true,
 				   VAR_DOMAIN, LOC_STATIC,
 				   data_sect_index,
 				   psymbol_placement::STATIC,
@@ -1474,7 +1474,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
 	    case 'G':
 	      /* The addresses in these entries are reported to be
 		 wrong.  See the code that reads 'G's for symtabs.  */
-	      add_psymbol_to_list (sym_name, sym_len, 1,
+	      add_psymbol_to_list (sym_name, sym_len, true,
 				   VAR_DOMAIN, LOC_STATIC,
 				   data_sect_index,
 				   psymbol_placement::GLOBAL,
@@ -1492,14 +1492,14 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
 		  || (p == namestring + 1
 		      && namestring[0] != ' '))
 		{
-		  add_psymbol_to_list (sym_name, sym_len, 1,
+		  add_psymbol_to_list (sym_name, sym_len, true,
 				       STRUCT_DOMAIN, LOC_TYPEDEF, -1,
 				       psymbol_placement::STATIC,
 				       0, psymtab_language, objfile);
 		  if (p[2] == 't')
 		    {
 		      /* Also a typedef with the same name.  */
-		      add_psymbol_to_list (sym_name, sym_len, 1,
+		      add_psymbol_to_list (sym_name, sym_len, true,
 					   VAR_DOMAIN, LOC_TYPEDEF, -1,
 					   psymbol_placement::STATIC,
 					   0, psymtab_language, objfile);
@@ -1511,7 +1511,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
 	    case 't':
 	      if (p != namestring)	/* a name is there, not just :T...  */
 		{
-		  add_psymbol_to_list (sym_name, sym_len, 1,
+		  add_psymbol_to_list (sym_name, sym_len, true,
 				       VAR_DOMAIN, LOC_TYPEDEF, -1,
 				       psymbol_placement::STATIC,
 				       0, psymtab_language, objfile);
@@ -1572,7 +1572,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
 			;
 		      /* Note that the value doesn't matter for
 			 enum constants in psymtabs, just in symtabs.  */
-		      add_psymbol_to_list (p, q - p, 1,
+		      add_psymbol_to_list (p, q - p, true,
 					   VAR_DOMAIN, LOC_CONST, -1,
 					   psymbol_placement::STATIC, 0,
 					   psymtab_language, objfile);
@@ -1590,7 +1590,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
 
 	    case 'c':
 	      /* Constant, e.g. from "const" in Pascal.  */
-	      add_psymbol_to_list (sym_name, sym_len, 1,
+	      add_psymbol_to_list (sym_name, sym_len, true,
 				   VAR_DOMAIN, LOC_CONST, -1,
 				   psymbol_placement::STATIC, 0,
 				   psymtab_language, objfile);
@@ -1645,7 +1645,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
 		  pst->set_text_low (nlist.n_value);
 		  textlow_not_set = 0;
 		}
-	      add_psymbol_to_list (sym_name, sym_len, 1,
+	      add_psymbol_to_list (sym_name, sym_len, true,
 				   VAR_DOMAIN, LOC_BLOCK,
 				   SECT_OFF_TEXT (objfile),
 				   psymbol_placement::STATIC,
@@ -1704,7 +1704,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
 		  pst->set_text_low (nlist.n_value);
 		  textlow_not_set = 0;
 		}
-	      add_psymbol_to_list (sym_name, sym_len, 1,
+	      add_psymbol_to_list (sym_name, sym_len, true,
 				   VAR_DOMAIN, LOC_BLOCK,
 				   SECT_OFF_TEXT (objfile),
 				   psymbol_placement::GLOBAL,
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index c94fc245fd..a2b80ebbc1 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -18533,7 +18533,7 @@ load_partial_dies (const struct die_reader_specs *reader,
 	      || pdi.tag == DW_TAG_subrange_type))
 	{
 	  if (building_psymtab && pdi.name != NULL)
-	    add_psymbol_to_list (pdi.name, strlen (pdi.name), 0,
+	    add_psymbol_to_list (pdi.name, strlen (pdi.name), false,
 				 VAR_DOMAIN, LOC_TYPEDEF, -1,
 				 psymbol_placement::STATIC,
 				 0, cu->language, objfile);
@@ -18567,7 +18567,7 @@ load_partial_dies (const struct die_reader_specs *reader,
 	  if (pdi.name == NULL)
 	    complaint (_("malformed enumerator DIE ignored"));
 	  else if (building_psymtab)
-	    add_psymbol_to_list (pdi.name, strlen (pdi.name), 0,
+	    add_psymbol_to_list (pdi.name, strlen (pdi.name), false,
 				 VAR_DOMAIN, LOC_CONST, -1,
 				 cu->language == language_cplus
 				 ? psymbol_placement::GLOBAL
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index 18c1d1f7c9..dffef8fd1a 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -3048,7 +3048,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 			  namestring = gdbarch_static_transform_name
 					 (gdbarch, namestring);
 
-			add_psymbol_to_list (namestring, p - namestring, 1,
+			add_psymbol_to_list (namestring, p - namestring, true,
 					     VAR_DOMAIN, LOC_STATIC,
 					     SECT_OFF_DATA (objfile),
 					     psymbol_placement::STATIC,
@@ -3059,7 +3059,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 			/* The addresses in these entries are reported
 			   to be wrong.  See the code that reads 'G's
 			   for symtabs.  */
-			add_psymbol_to_list (namestring, p - namestring, 1,
+			add_psymbol_to_list (namestring, p - namestring, true,
 					     VAR_DOMAIN, LOC_STATIC,
 					     SECT_OFF_DATA (objfile),
 					     psymbol_placement::GLOBAL,
@@ -3078,7 +3078,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 			    || (p == namestring + 1
 				&& namestring[0] != ' '))
 			  {
-			    add_psymbol_to_list (namestring, p - namestring, 1,
+			    add_psymbol_to_list (namestring, p - namestring, true,
 						 STRUCT_DOMAIN, LOC_TYPEDEF,
 						 -1,
 						 psymbol_placement::STATIC,
@@ -3087,7 +3087,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 			      {
 				/* Also a typedef with the same name.  */
 				add_psymbol_to_list (namestring,
-						     p - namestring, 1,
+						     p - namestring, true,
 						     VAR_DOMAIN, LOC_TYPEDEF,
 						     -1,
 						     psymbol_placement::STATIC,
@@ -3101,8 +3101,8 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 			if (p != namestring)	/* a name is there, not
 						   just :T...  */
 			  {
-			    add_psymbol_to_list (namestring, p - namestring, 1,
-						 VAR_DOMAIN, LOC_TYPEDEF,
+			    add_psymbol_to_list (namestring, p - namestring,
+						 true, VAR_DOMAIN, LOC_TYPEDEF,
 						 -1,
 						 psymbol_placement::STATIC,
 						 0, psymtab_language, objfile);
@@ -3166,7 +3166,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 				/* Note that the value doesn't matter for
 				   enum constants in psymtabs, just in
 				   symtabs.  */
-				add_psymbol_to_list (p, q - p, 1,
+				add_psymbol_to_list (p, q - p, true,
 						     VAR_DOMAIN, LOC_CONST,
 						     -1,
 						     psymbol_placement::STATIC,
@@ -3185,7 +3185,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 			continue;
 		      case 'c':
 			/* Constant, e.g. from "const" in Pascal.  */
-			add_psymbol_to_list (namestring, p - namestring, 1,
+			add_psymbol_to_list (namestring, p - namestring, true,
 					     VAR_DOMAIN, LOC_CONST, -1,
 					     psymbol_placement::STATIC,
 					     0, psymtab_language, objfile);
@@ -3198,7 +3198,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 			    function_outside_compilation_unit_complaint
 			      (copy.c_str ());
 			  }
-			add_psymbol_to_list (namestring, p - namestring, 1,
+			add_psymbol_to_list (namestring, p - namestring, true,
 					     VAR_DOMAIN, LOC_BLOCK,
 					     SECT_OFF_TEXT (objfile),
 					     psymbol_placement::STATIC,
@@ -3217,7 +3217,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 			    function_outside_compilation_unit_complaint
 			      (copy.c_str ());
 			  }
-			add_psymbol_to_list (namestring, p - namestring, 1,
+			add_psymbol_to_list (namestring, p - namestring, true,
 					     VAR_DOMAIN, LOC_BLOCK,
 					     SECT_OFF_TEXT (objfile),
 					     psymbol_placement::GLOBAL,
@@ -3452,13 +3452,13 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 		     symbol table, and the MAIN__ symbol via the minimal
 		     symbol table.  */
 		  if (sh.st == stProc)
-		    add_psymbol_to_list (sym_name, strlen (sym_name), 1,
+		    add_psymbol_to_list (sym_name, strlen (sym_name), true,
 					 VAR_DOMAIN, LOC_BLOCK,
 					 section,
 					 psymbol_placement::GLOBAL,
 					 sh.value, psymtab_language, objfile);
 		  else
-		    add_psymbol_to_list (sym_name, strlen (sym_name), 1,
+		    add_psymbol_to_list (sym_name, strlen (sym_name), true,
 					 VAR_DOMAIN, LOC_BLOCK,
 					 section,
 					 psymbol_placement::STATIC,
@@ -3525,7 +3525,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 		      && sh.iss != 0
 		      && sh.index != cur_sdx + 2)
 		    {
-		      add_psymbol_to_list (sym_name, strlen (sym_name), 1,
+		      add_psymbol_to_list (sym_name, strlen (sym_name), true,
 					   STRUCT_DOMAIN, LOC_TYPEDEF, -1,
 					   psymbol_placement::STATIC,
 					   0, psymtab_language, objfile);
@@ -3565,7 +3565,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 		  continue;
 		}
 	      /* Use this gdb symbol.  */
-	      add_psymbol_to_list (sym_name, strlen (sym_name), 1,
+	      add_psymbol_to_list (sym_name, strlen (sym_name), true,
 				   VAR_DOMAIN, theclass, section,
 				   psymbol_placement::STATIC,
 				   sh.value, psymtab_language, objfile);
@@ -3644,7 +3644,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 		  break;
 		}
 	      char *sym_name = debug_info->ssext + psh->iss;
-	      add_psymbol_to_list (sym_name, strlen (sym_name), 1,
+	      add_psymbol_to_list (sym_name, strlen (sym_name), true,
 				   VAR_DOMAIN, theclass,
 				   section,
 				   psymbol_placement::GLOBAL,
@@ -3807,7 +3807,7 @@ handle_psymbol_enumerators (struct objfile *objfile, FDR *fh, int stype,
 
       /* Note that the value doesn't matter for enum constants
          in psymtabs, just in symtabs.  */
-      add_psymbol_to_list (name, strlen (name), 1,
+      add_psymbol_to_list (name, strlen (name), true,
 			   VAR_DOMAIN, LOC_CONST, -1,
 			   psymbol_placement::STATIC, 0,
 			   psymtab_language, objfile);
diff --git a/gdb/psympriv.h b/gdb/psympriv.h
index 61d73a316b..9d22f5c9ac 100644
--- a/gdb/psympriv.h
+++ b/gdb/psympriv.h
@@ -289,7 +289,7 @@ enum class psymbol_placement
 /* Add any kind of symbol to a partial_symbol vector.  */
 
 extern void add_psymbol_to_list (const char *, int,
-				 int, domain_enum,
+				 bool, domain_enum,
 				 enum address_class,
 				 short /* section */,
 				 enum psymbol_placement,
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 1f5f492d39..e9cc8c3bc6 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1558,7 +1558,7 @@ psymbol_compare (const void *addr1, const void *addr2, int length)
    different domain (or address) is possible and correct.  */
 
 static struct partial_symbol *
-add_psymbol_to_bcache (const char *name, int namelength, int copy_name,
+add_psymbol_to_bcache (const char *name, int namelength, bool copy_name,
 		       domain_enum domain,
 		       enum address_class theclass,
 		       short section,
@@ -1602,7 +1602,7 @@ append_psymbol_to_list (std::vector<partial_symbol *> *list,
    Return the partial symbol that has been added.  */
 
 void
-add_psymbol_to_list (const char *name, int namelength, int copy_name,
+add_psymbol_to_list (const char *name, int namelength, bool copy_name,
 		     domain_enum domain,
 		     enum address_class theclass,
 		     short section,
diff --git a/gdb/symtab.c b/gdb/symtab.c
index e1bf3692a5..4b528b4270 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -811,7 +811,7 @@ symbol_find_demangled_name (struct general_symbol_info *gsymbol,
 
 void
 symbol_set_names (struct general_symbol_info *gsymbol,
-		  const char *linkage_name, int len, int copy_name,
+		  const char *linkage_name, int len, bool copy_name,
 		  struct objfile_per_bfd_storage *per_bfd)
 {
   struct demangled_name_entry **slot;
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 4fb00cba9f..c54b8ee4b7 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -497,7 +497,7 @@ extern void symbol_set_language (struct general_symbol_info *symbol,
   symbol_set_names (&(symbol)->ginfo, linkage_name, len, copy_name, \
 		    (objfile)->per_bfd)
 extern void symbol_set_names (struct general_symbol_info *symbol,
-			      const char *linkage_name, int len, int copy_name,
+			      const char *linkage_name, int len, bool copy_name,
 			      struct objfile_per_bfd_storage *per_bfd);
 
 /* Now come lots of name accessor macros.  Short version as to when to
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index 0dacea44d1..a17031a110 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -2644,7 +2644,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
 		  namestring = gdbarch_static_transform_name
 				 (gdbarch, namestring);
 
-		add_psymbol_to_list (namestring, p - namestring, 1,
+		add_psymbol_to_list (namestring, p - namestring, true,
 				     VAR_DOMAIN, LOC_STATIC,
 				     SECT_OFF_DATA (objfile),
 				     psymbol_placement::STATIC,
@@ -2655,7 +2655,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
 	      case 'G':
 		/* The addresses in these entries are reported to be
 		   wrong.  See the code that reads 'G's for symtabs.  */
-		add_psymbol_to_list (namestring, p - namestring, 1,
+		add_psymbol_to_list (namestring, p - namestring, true,
 				     VAR_DOMAIN, LOC_STATIC,
 				     SECT_OFF_DATA (objfile),
 				     psymbol_placement::GLOBAL,
@@ -2674,14 +2674,14 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
 		    || (p == namestring + 1
 			&& namestring[0] != ' '))
 		  {
-		    add_psymbol_to_list (namestring, p - namestring, 1,
+		    add_psymbol_to_list (namestring, p - namestring, true,
 					 STRUCT_DOMAIN, LOC_TYPEDEF, -1,
 					 psymbol_placement::STATIC,
 					 0, psymtab_language, objfile);
 		    if (p[2] == 't')
 		      {
 			/* Also a typedef with the same name.  */
-			add_psymbol_to_list (namestring, p - namestring, 1,
+			add_psymbol_to_list (namestring, p - namestring, true,
 					     VAR_DOMAIN, LOC_TYPEDEF, -1,
 					     psymbol_placement::STATIC,
 					     0, psymtab_language, objfile);
@@ -2693,7 +2693,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
 	      case 't':
 		if (p != namestring)	/* a name is there, not just :T...  */
 		  {
-		    add_psymbol_to_list (namestring, p - namestring, 1,
+		    add_psymbol_to_list (namestring, p - namestring, true,
 					 VAR_DOMAIN, LOC_TYPEDEF, -1,
 					 psymbol_placement::STATIC,
 					 0, psymtab_language, objfile);
@@ -2755,7 +2755,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
 			  ;
 			/* Note that the value doesn't matter for
 			   enum constants in psymtabs, just in symtabs.  */
-			add_psymbol_to_list (p, q - p, 1,
+			add_psymbol_to_list (p, q - p, true,
 					     VAR_DOMAIN, LOC_CONST, -1,
 					     psymbol_placement::STATIC,
 					     0, psymtab_language, objfile);
@@ -2773,7 +2773,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
 
 	      case 'c':
 		/* Constant, e.g. from "const" in Pascal.  */
-		add_psymbol_to_list (namestring, p - namestring, 1,
+		add_psymbol_to_list (namestring, p - namestring, true,
 				     VAR_DOMAIN, LOC_CONST, -1,
 				     psymbol_placement::STATIC,
 				     0, psymtab_language, objfile);
@@ -2790,7 +2790,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
 		    function_outside_compilation_unit_complaint (name);
 		    xfree (name);
 		  }
-		add_psymbol_to_list (namestring, p - namestring, 1,
+		add_psymbol_to_list (namestring, p - namestring, true,
 				     VAR_DOMAIN, LOC_BLOCK,
 				     SECT_OFF_TEXT (objfile),
 				     psymbol_placement::STATIC,
@@ -2820,7 +2820,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
 		if (startswith (namestring, "@FIX"))
 		  continue;
 
-		add_psymbol_to_list (namestring, p - namestring, 1,
+		add_psymbol_to_list (namestring, p - namestring, true,
 				     VAR_DOMAIN, LOC_BLOCK,
 				     SECT_OFF_TEXT (objfile),
 				     psymbol_placement::GLOBAL,


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix float to LONGEST conversion.
@ 2019-09-11 19:49 gdb-buildbot
  2019-09-11 21:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-11 19:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9cab7ecda21c6499b0559f6e676fe222e26141be ***

commit 9cab7ecda21c6499b0559f6e676fe222e26141be
Author:     Ali Tamur <tamur@google.com>
AuthorDate: Tue Aug 27 18:58:57 2019 -0700
Commit:     Ali Tamur <tamur@google.com>
CommitDate: Wed Sep 11 12:21:50 2019 -0700

    Fix float to LONGEST conversion.
    
    The code used to have undefined behaviour when template parameter is float and
    host_float is NaN, because it attempted to convert NaN value to LONGEST at the
    last statement. This frequently caused crashes on tests that checked "info
    all-registers" (at least when the code is compiled with clang; I didn't test
    with gdb).
    
    gdb/ChangeLog:
    
            *target-float.c (host_float_ops<T>::to_longest): Update
            implementation.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3b28884267..eccd4ef2bd 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-11  Ali Tamur  <tamur@google.com>
+
+	*gdb/target-float.c (host_float_ops<T>::to_longest): Update
+	implementation.
+
 2019-09-11  Christian Biesinger  <cbiesinger@google.com>
 
 	* dbxread.c (read_dbx_symtab): Update.
diff --git a/gdb/target-float.c b/gdb/target-float.c
index 39abb12696..0fd71c0dc3 100644
--- a/gdb/target-float.c
+++ b/gdb/target-float.c
@@ -1007,13 +1007,18 @@ host_float_ops<T>::to_longest (const gdb_byte *addr,
 {
   T host_float;
   from_target (type, addr, &host_float);
-  /* Converting an out-of-range value is undefined behavior in C, but we
-     prefer to return a defined value here.  */
-  if (host_float > std::numeric_limits<LONGEST>::max())
-    return std::numeric_limits<LONGEST>::max();
-  if (host_float < std::numeric_limits<LONGEST>::min())
+  T min_possible_range = static_cast<T>(std::numeric_limits<LONGEST>::min());
+  T max_possible_range = -min_possible_range;
+  /* host_float can be converted to an integer as long as it's in
+     the range [min_possible_range, max_possible_range). If not, it is either
+     too large, or too small, or is NaN; in this case return the maximum or
+     minimum possible value.  */
+  if (host_float < max_possible_range && host_float >= min_possible_range)
+    return static_cast<LONGEST> (host_float);
+  if (host_float < min_possible_range)
     return std::numeric_limits<LONGEST>::min();
-  return (LONGEST) host_float;
+  /* This line will be executed if host_float is NaN.  */
+  return std::numeric_limits<LONGEST>::max();
 }
 
 /* Convert signed integer VAL to a target floating-number of type TYPE


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Refactor get_init_files to use std::string
@ 2019-09-11 22:11 gdb-buildbot
  2019-09-12  2:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-11 22:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f48cd8368bf45b40547237939af3ab6b47dc7b01 ***

commit f48cd8368bf45b40547237939af3ab6b47dc7b01
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Aug 20 14:45:51 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 11 16:29:10 2019 -0500

    Refactor get_init_files to use std::string
    
    To avoid manual memory management.
    
    Tested on buildbot.
    
    gdb/ChangeLog:
    
    2019-09-11  Christian Biesinger  <cbiesinger@google.com>
    
            * main.c (get_init_files): Change to use std::string.
            (captured_main_1): Update.
            (print_gdb_help): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index eccd4ef2bd..27eae1d400 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-11  Christian Biesinger  <cbiesinger@google.com>
+
+	* main.c (get_init_files): Change to use std::string.
+	(captured_main_1): Update.
+	(print_gdb_help): Update.
+
 2019-09-11  Ali Tamur  <tamur@google.com>
 
 	*gdb/target-float.c (host_float_ops<T>::to_longest): Update
diff --git a/gdb/main.c b/gdb/main.c
index 129c57c1d1..e32ed62270 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -195,27 +195,26 @@ relocate_gdb_directory (const char *initial, bool relocatable)
    return them in SYSTEM_GDBINIT, HOME_GDBINIT, LOCAL_GDBINIT.  If
    there is no system gdbinit (resp. home gdbinit and local gdbinit)
    to be loaded, then SYSTEM_GDBINIT (resp. HOME_GDBINIT and
-   LOCAL_GDBINIT) is set to NULL.  */
+   LOCAL_GDBINIT) is set to the empty string.  */
 static void
-get_init_files (const char **system_gdbinit,
-		const char **home_gdbinit,
-		const char **local_gdbinit)
+get_init_files (std::string *system_gdbinit,
+		std::string *home_gdbinit,
+		std::string *local_gdbinit)
 {
-  static const char *sysgdbinit = NULL;
-  static char *homeinit = NULL;
-  static const char *localinit = NULL;
+  static std::string sysgdbinit;
+  static std::string homeinit;
+  static std::string localinit;
   static int initialized = 0;
 
   if (!initialized)
     {
       struct stat homebuf, cwdbuf, s;
-      const char *homedir;
 
       if (SYSTEM_GDBINIT[0])
 	{
-	  int datadir_len = strlen (GDB_DATADIR);
-	  int sys_gdbinit_len = strlen (SYSTEM_GDBINIT);
-	  char *relocated_sysgdbinit;
+	  size_t datadir_len = strlen (GDB_DATADIR);
+	  size_t sys_gdbinit_len = strlen (SYSTEM_GDBINIT);
+	  std::string relocated_sysgdbinit;
 
 	  /* If SYSTEM_GDBINIT lives in data-directory, and data-directory
 	     has been provided, search for SYSTEM_GDBINIT there.  */
@@ -226,28 +225,30 @@ get_init_files (const char **system_gdbinit,
 	    {
 	      /* Append the part of SYSTEM_GDBINIT that follows GDB_DATADIR
 		 to gdb_datadir.  */
-	      char *tmp_sys_gdbinit = xstrdup (&SYSTEM_GDBINIT[datadir_len]);
-	      char *p;
 
-	      for (p = tmp_sys_gdbinit; IS_DIR_SEPARATOR (*p); ++p)
-		continue;
-	      relocated_sysgdbinit = concat (gdb_datadir, SLASH_STRING, p,
-					     (char *) NULL);
-	      xfree (tmp_sys_gdbinit);
+	      size_t start = datadir_len;
+	      for (; IS_DIR_SEPARATOR (SYSTEM_GDBINIT[start]); ++start)
+		;
+	      relocated_sysgdbinit = (std::string (gdb_datadir) + SLASH_STRING
+				      + &SYSTEM_GDBINIT[start]);
 	    }
 	  else
 	    {
-	      relocated_sysgdbinit = relocate_path (gdb_program_name,
-						    SYSTEM_GDBINIT,
-						    SYSTEM_GDBINIT_RELOCATABLE);
+	      char *relocated = relocate_path (gdb_program_name,
+					       SYSTEM_GDBINIT,
+					       SYSTEM_GDBINIT_RELOCATABLE);
+	      if (relocated != nullptr)
+	        {
+		  relocated_sysgdbinit = relocated;
+		  xfree (relocated);
+		}
 	    }
-	  if (relocated_sysgdbinit && stat (relocated_sysgdbinit, &s) == 0)
+	  if (!relocated_sysgdbinit.empty ()
+	      && stat (relocated_sysgdbinit.c_str (), &s) == 0)
 	    sysgdbinit = relocated_sysgdbinit;
-	  else
-	    xfree (relocated_sysgdbinit);
 	}
 
-      homedir = getenv ("HOME");
+      const char *homedir = getenv ("HOME");
 
       /* If the .gdbinit file in the current directory is the same as
 	 the $HOME/.gdbinit file, it should not be sourced.  homebuf
@@ -260,17 +261,16 @@ get_init_files (const char **system_gdbinit,
 
       if (homedir)
 	{
-	  homeinit = xstrprintf ("%s/%s", homedir, GDBINIT);
-	  if (stat (homeinit, &homebuf) != 0)
+	  homeinit = std::string (homedir) + SLASH_STRING + GDBINIT;
+	  if (stat (homeinit.c_str (), &homebuf) != 0)
 	    {
-	      xfree (homeinit);
-	      homeinit = NULL;
+	      homeinit = "";
 	    }
 	}
 
       if (stat (GDBINIT, &cwdbuf) == 0)
 	{
-	  if (!homeinit
+	  if (homeinit.empty ()
 	      || memcmp ((char *) &homebuf, (char *) &cwdbuf,
 			 sizeof (struct stat)))
 	    localinit = GDBINIT;
@@ -470,11 +470,6 @@ captured_main_1 (struct captured_main_args *context)
   /* All arguments of --directory option.  */
   std::vector<char *> dirarg;
 
-  /* gdb init files.  */
-  const char *system_gdbinit;
-  const char *home_gdbinit;
-  const char *local_gdbinit;
-
   int i;
   int save_auto_load;
   int ret = 1;
@@ -908,6 +903,9 @@ captured_main_1 (struct captured_main_args *context)
   /* Lookup gdbinit files.  Note that the gdbinit file name may be
      overriden during file initialization, so get_init_files should be
      called after gdb_init.  */
+  std::string system_gdbinit;
+  std::string home_gdbinit;
+  std::string local_gdbinit;
   get_init_files (&system_gdbinit, &home_gdbinit, &local_gdbinit);
 
   /* Do these (and anything which might call wrap_here or *_filtered)
@@ -984,16 +982,16 @@ captured_main_1 (struct captured_main_args *context)
      This is done *before* all the command line arguments are
      processed; it sets global parameters, which are independent of
      what file you are debugging or what directory you are in.  */
-  if (system_gdbinit && !inhibit_gdbinit)
-    ret = catch_command_errors (source_script, system_gdbinit, 0);
+  if (!system_gdbinit.empty () && !inhibit_gdbinit)
+    ret = catch_command_errors (source_script, system_gdbinit.c_str (), 0);
 
   /* Read and execute $HOME/.gdbinit file, if it exists.  This is done
      *before* all the command line arguments are processed; it sets
      global parameters, which are independent of what file you are
      debugging or what directory you are in.  */
 
-  if (home_gdbinit && !inhibit_gdbinit && !inhibit_home_gdbinit)
-    ret = catch_command_errors (source_script, home_gdbinit, 0);
+  if (!home_gdbinit.empty () && !inhibit_gdbinit && !inhibit_home_gdbinit)
+    ret = catch_command_errors (source_script, home_gdbinit.c_str (), 0);
 
   /* Process '-ix' and '-iex' options early.  */
   for (i = 0; i < cmdarg_vec.size (); i++)
@@ -1096,20 +1094,20 @@ captured_main_1 (struct captured_main_args *context)
 
   /* Read the .gdbinit file in the current directory, *if* it isn't
      the same as the $HOME/.gdbinit file (it should exist, also).  */
-  if (local_gdbinit)
+  if (!local_gdbinit.empty ())
     {
       auto_load_local_gdbinit_pathname
-	= gdb_realpath (local_gdbinit).release ();
+	= gdb_realpath (local_gdbinit.c_str ()).release ();
 
       if (!inhibit_gdbinit && auto_load_local_gdbinit
-	  && file_is_auto_load_safe (local_gdbinit,
+	  && file_is_auto_load_safe (local_gdbinit.c_str (),
 				     _("auto-load: Loading .gdbinit "
 				       "file \"%s\".\n"),
-				     local_gdbinit))
+				     local_gdbinit.c_str ()))
 	{
 	  auto_load_local_gdbinit_loaded = 1;
 
-	  ret = catch_command_errors (source_script, local_gdbinit, 0);
+	  ret = catch_command_errors (source_script, local_gdbinit.c_str (), 0);
 	}
     }
 
@@ -1203,9 +1201,9 @@ gdb_main (struct captured_main_args *args)
 static void
 print_gdb_help (struct ui_file *stream)
 {
-  const char *system_gdbinit;
-  const char *home_gdbinit;
-  const char *local_gdbinit;
+  std::string system_gdbinit;
+  std::string home_gdbinit;
+  std::string local_gdbinit;
 
   get_init_files (&system_gdbinit, &home_gdbinit, &local_gdbinit);
 
@@ -1283,18 +1281,18 @@ Other options:\n\n\
   fputs_unfiltered (_("\n\
 At startup, GDB reads the following init files and executes their commands:\n\
 "), stream);
-  if (system_gdbinit)
+  if (!system_gdbinit.empty ())
     fprintf_unfiltered (stream, _("\
    * system-wide init file: %s\n\
-"), system_gdbinit);
-  if (home_gdbinit)
+"), system_gdbinit.c_str ());
+  if (!home_gdbinit.empty ())
     fprintf_unfiltered (stream, _("\
    * user-specific init file: %s\n\
-"), home_gdbinit);
-  if (local_gdbinit)
+"), home_gdbinit.c_str ());
+  if (!local_gdbinit.empty ())
     fprintf_unfiltered (stream, _("\
    * local init file (see also 'set auto-load local-gdbinit'): ./%s\n\
-"), local_gdbinit);
+"), local_gdbinit.c_str ());
   fputs_unfiltered (_("\n\
 For more information, type \"help\" from within GDB, or consult the\n\
 GDB manual (available as on-line info or a printed manual).\n\


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Factor out the code to do the datadir-relocation for gdbinit
@ 2019-09-11 23:24 gdb-buildbot
  2019-09-12  5:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-11 23:24 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9224a01377868604ce4a7eb9c0d97736f7349dcd ***

commit 9224a01377868604ce4a7eb9c0d97736f7349dcd
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Aug 20 16:38:29 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 11 16:30:00 2019 -0500

    Factor out the code to do the datadir-relocation for gdbinit
    
    This simplifies get_init_files and makes it possible to reuse
    this code in an upcoming patch for SYSTEM_GDBINIT_DIR.
    
    gdb/ChangeLog:
    
    2019-09-11  Christian Biesinger  <cbiesinger@google.com>
    
            * main.c (relocate_gdbinit_path_maybe_in_datadir): Factor this code
            out of get_init_files.
            (get_init_files): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 27eae1d400..91b860c78a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-11  Christian Biesinger  <cbiesinger@google.com>
+
+	* main.c (relocate_gdbinit_path_maybe_in_datadir): Factor this code
+	out of get_init_files.
+	(get_init_files): Update.
+
 2019-09-11  Christian Biesinger  <cbiesinger@google.com>
 
 	* main.c (get_init_files): Change to use std::string.
diff --git a/gdb/main.c b/gdb/main.c
index e32ed62270..9e22889590 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -191,6 +191,47 @@ relocate_gdb_directory (const char *initial, bool relocatable)
   return dir;
 }
 
+/* Given a gdbinit path in FILE, adjusts it according to the gdb_datadir
+   parameter if it is in the data dir, or passes it through relocate_path
+   otherwise.  */
+
+static std::string
+relocate_gdbinit_path_maybe_in_datadir (const std::string& file)
+{
+  size_t datadir_len = strlen (GDB_DATADIR);
+
+  std::string relocated_path;
+
+  /* If SYSTEM_GDBINIT lives in data-directory, and data-directory
+     has been provided, search for SYSTEM_GDBINIT there.  */
+  if (gdb_datadir_provided
+      && datadir_len < file.length ()
+      && filename_ncmp (file.c_str (), GDB_DATADIR, datadir_len) == 0
+      && IS_DIR_SEPARATOR (file[datadir_len]))
+    {
+      /* Append the part of SYSTEM_GDBINIT that follows GDB_DATADIR
+	 to gdb_datadir.  */
+
+      size_t start = datadir_len;
+      for (; IS_DIR_SEPARATOR (file[start]); ++start)
+	;
+      relocated_path = (std::string (gdb_datadir) + SLASH_STRING
+			+ file.substr (start));
+    }
+  else
+    {
+      char *relocated = relocate_path (gdb_program_name,
+				       file.c_str (),
+				       SYSTEM_GDBINIT_RELOCATABLE);
+      if (relocated != nullptr)
+	{
+	  relocated_path = relocated;
+	  xfree (relocated);
+	}
+    }
+    return relocated_path;
+}
+
 /* Compute the locations of init files that GDB should source and
    return them in SYSTEM_GDBINIT, HOME_GDBINIT, LOCAL_GDBINIT.  If
    there is no system gdbinit (resp. home gdbinit and local gdbinit)
@@ -212,37 +253,8 @@ get_init_files (std::string *system_gdbinit,
 
       if (SYSTEM_GDBINIT[0])
 	{
-	  size_t datadir_len = strlen (GDB_DATADIR);
-	  size_t sys_gdbinit_len = strlen (SYSTEM_GDBINIT);
-	  std::string relocated_sysgdbinit;
-
-	  /* If SYSTEM_GDBINIT lives in data-directory, and data-directory
-	     has been provided, search for SYSTEM_GDBINIT there.  */
-	  if (gdb_datadir_provided
-	      && datadir_len < sys_gdbinit_len
-	      && filename_ncmp (SYSTEM_GDBINIT, GDB_DATADIR, datadir_len) == 0
-	      && IS_DIR_SEPARATOR (SYSTEM_GDBINIT[datadir_len]))
-	    {
-	      /* Append the part of SYSTEM_GDBINIT that follows GDB_DATADIR
-		 to gdb_datadir.  */
-
-	      size_t start = datadir_len;
-	      for (; IS_DIR_SEPARATOR (SYSTEM_GDBINIT[start]); ++start)
-		;
-	      relocated_sysgdbinit = (std::string (gdb_datadir) + SLASH_STRING
-				      + &SYSTEM_GDBINIT[start]);
-	    }
-	  else
-	    {
-	      char *relocated = relocate_path (gdb_program_name,
-					       SYSTEM_GDBINIT,
-					       SYSTEM_GDBINIT_RELOCATABLE);
-	      if (relocated != nullptr)
-	        {
-		  relocated_sysgdbinit = relocated;
-		  xfree (relocated);
-		}
-	    }
+	  std::string relocated_sysgdbinit
+	    = relocate_gdbinit_path_maybe_in_datadir (SYSTEM_GDBINIT);
 	  if (!relocated_sysgdbinit.empty ()
 	      && stat (relocated_sysgdbinit.c_str (), &s) == 0)
 	    sysgdbinit = relocated_sysgdbinit;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make relocate_{path,gdb_directory} return std::string
@ 2019-09-12  0:41 gdb-buildbot
  2019-09-12  6:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-12  0:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f2aec7f6d149c8a534e8246b0d3a50038864fa2d ***

commit f2aec7f6d149c8a534e8246b0d3a50038864fa2d
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Mon Sep 9 12:55:39 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 11 16:31:36 2019 -0500

    Make relocate_{path,gdb_directory} return std::string
    
    This simplifies memory management. I've also changed some global variables
    to std::string accordingly (which store the result of these functions),
    but not all because some are used with add_setshow_optional_filename_cmd
    which requires a char*.
    
    gdb/ChangeLog:
    
    2019-09-11  Christian Biesinger  <cbiesinger@google.com>
    
            * auto-load.c (auto_load_expand_dir_vars): Update.
            * defs.h (gdb_datadir): Change to std::string.
            (python_libdir): Likewise.
            (relocate_gdb_directory): Change return type to std::string.
            * guile/guile.c (gdbscm_data_directory): Update.
            (initialize_scheme_side): Update.
            * jit.c (jit_reader_dir): Change to std::string.
            (jit_reader_load_command): Update.
            * main.c (gdb_datadir): Change to std::string.
            (python_libdir): Likewise.
            (set_gdb_data_directory): Update.
            (relocate_path): Change to return std::string.
            (relocate_gdb_directory): Change to return std::string.
            (relocate_gdbinit_path_maybe_in_datadir): Update.
            (captured_main_1): Update.
            * python/python.c (do_start_initialization): Update.
            * top.c (show_gdb_datadir): Update.
            * xml-syscall.c (xml_init_syscalls_info): Update.
            (init_syscalls_info): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 91b860c78a..4c354700c4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,25 @@
+2019-09-11  Christian Biesinger  <cbiesinger@google.com>
+
+	* auto-load.c (auto_load_expand_dir_vars): Update.
+	* defs.h (gdb_datadir): Change to std::string.
+	(python_libdir): Likewise.
+	(relocate_gdb_directory): Change return type to std::string.
+	* guile/guile.c (gdbscm_data_directory): Update.
+	(initialize_scheme_side): Update.
+	* jit.c (jit_reader_dir): Change to std::string.
+	(jit_reader_load_command): Update.
+	* main.c (gdb_datadir): Change to std::string.
+	(python_libdir): Likewise.
+	(set_gdb_data_directory): Update.
+	(relocate_path): Change to return std::string.
+	(relocate_gdb_directory): Change to return std::string.
+	(relocate_gdbinit_path_maybe_in_datadir): Update.
+	(captured_main_1): Update.
+	* python/python.c (do_start_initialization): Update.
+	* top.c (show_gdb_datadir): Update.
+	* xml-syscall.c (xml_init_syscalls_info): Update.
+	(init_syscalls_info): Update.
+
 2019-09-11  Christian Biesinger  <cbiesinger@google.com>
 
 	* main.c (relocate_gdbinit_path_maybe_in_datadir): Factor this code
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index 616aeb6fc9..115d5c10e8 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -178,7 +178,7 @@ static std::vector<gdb::unique_xmalloc_ptr<char>>
 auto_load_expand_dir_vars (const char *string)
 {
   char *s = xstrdup (string);
-  substitute_path_component (&s, "$datadir", gdb_datadir);
+  substitute_path_component (&s, "$datadir", gdb_datadir.c_str ());
   substitute_path_component (&s, "$debugdir", debug_file_directory);
 
   if (debug_auto_load && strcmp (s, string) != 0)
diff --git a/gdb/defs.h b/gdb/defs.h
index 14e0a3e1d1..c9a38b60a6 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -115,11 +115,11 @@ extern int dbx_commands;
 extern char *gdb_sysroot;
 
 /* * GDB datadir, used to store data files.  */
-extern char *gdb_datadir;
+extern std::string gdb_datadir;
 
-/* * If non-NULL, the possibly relocated path to python's "lib" directory
+/* * If not empty, the possibly relocated path to python's "lib" directory
    specified with --with-python.  */
-extern char *python_libdir;
+extern std::string python_libdir;
 
 /* * Search path for separate debug files.  */
 extern char *debug_file_directory;
@@ -282,7 +282,7 @@ struct value;
 
 /* This really belong in utils.c (path-utils.c?), but it references some
    globals that are currently only available to main.c.  */
-extern char *relocate_gdb_directory (const char *initial, bool relocatable);
+extern std::string relocate_gdb_directory (const char *initial, bool relocatable);
 
 \f
 /* Annotation stuff.  */
diff --git a/gdb/guile/guile.c b/gdb/guile/guile.c
index 39bec8724f..defe554f76 100644
--- a/gdb/guile/guile.c
+++ b/gdb/guile/guile.c
@@ -325,7 +325,7 @@ gdbscm_execute_gdb_command (SCM command_scm, SCM rest)
 static SCM
 gdbscm_data_directory (void)
 {
-  return gdbscm_scm_from_c_string (gdb_datadir);
+  return gdbscm_scm_from_c_string (gdb_datadir.c_str ());
 }
 
 /* (guile-data-directory) -> string */
@@ -582,7 +582,8 @@ initialize_scheme_side (void)
 {
   char *boot_scm_path;
 
-  guile_datadir = concat (gdb_datadir, SLASH_STRING, "guile", (char *) NULL);
+  guile_datadir = concat (gdb_datadir.c_str (), SLASH_STRING, "guile",
+			  (char *) NULL);
   boot_scm_path = concat (guile_datadir, SLASH_STRING, "gdb",
 			  SLASH_STRING, boot_scm_filename, (char *) NULL);
 
diff --git a/gdb/jit.c b/gdb/jit.c
index 5fef03700c..4722d6c6ce 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -42,7 +42,7 @@
 #include "readline/tilde.h"
 #include "completer.h"
 
-static const char *jit_reader_dir = NULL;
+static std::string jit_reader_dir;
 
 static const struct objfile_data *jit_objfile_data;
 
@@ -216,7 +216,7 @@ jit_reader_load_command (const char *args, int from_tty)
     error (_("JIT reader already loaded.  Run jit-reader-unload first."));
 
   if (!IS_ABSOLUTE_PATH (file.get ()))
-    file.reset (xstrprintf ("%s%s%s", jit_reader_dir, SLASH_STRING,
+    file.reset (xstrprintf ("%s%s%s", jit_reader_dir.c_str (), SLASH_STRING,
 			    file.get ()));
 
   loaded_jit_reader = jit_reader_load (file.get ());
diff --git a/gdb/main.c b/gdb/main.c
index 9e22889590..6b75fced23 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -61,7 +61,7 @@ int dbx_commands = 0;
 char *gdb_sysroot = 0;
 
 /* GDB datadir, used to store data files.  */
-char *gdb_datadir = 0;
+std::string gdb_datadir;
 
 /* Non-zero if GDB_DATADIR was provided on the command line.
    This doesn't track whether data-directory is set later from the
@@ -70,7 +70,7 @@ static int gdb_datadir_provided = 0;
 
 /* If gdb was configured with --with-python=/path,
    the possibly relocated path to python's lib directory.  */
-char *python_libdir = 0;
+std::string python_libdir;
 
 /* Target IO streams.  */
 struct ui_file *gdb_stdtargin;
@@ -121,71 +121,70 @@ set_gdb_data_directory (const char *new_datadir)
   else if (!S_ISDIR (st.st_mode))
     warning (_("%s is not a directory."), new_datadir);
 
-  xfree (gdb_datadir);
-  gdb_datadir = gdb_realpath (new_datadir).release ();
+  gdb_datadir = gdb_realpath (new_datadir).get ();
 
   /* gdb_realpath won't return an absolute path if the path doesn't exist,
      but we still want to record an absolute path here.  If the user entered
      "../foo" and "../foo" doesn't exist then we'll record $(pwd)/../foo which
      isn't canonical, but that's ok.  */
-  if (!IS_ABSOLUTE_PATH (gdb_datadir))
+  if (!IS_ABSOLUTE_PATH (gdb_datadir.c_str ()))
     {
-      gdb::unique_xmalloc_ptr<char> abs_datadir = gdb_abspath (gdb_datadir);
+      gdb::unique_xmalloc_ptr<char> abs_datadir
+        = gdb_abspath (gdb_datadir.c_str ());
 
-      xfree (gdb_datadir);
-      gdb_datadir = abs_datadir.release ();
+      gdb_datadir = abs_datadir.get ();
     }
 }
 
 /* Relocate a file or directory.  PROGNAME is the name by which gdb
    was invoked (i.e., argv[0]).  INITIAL is the default value for the
    file or directory.  RELOCATABLE is true if the value is relocatable,
-   false otherwise.  Returns a newly allocated string; this may return
-   NULL under the same conditions as make_relative_prefix.  */
+   false otherwise.  This may return an empty string under the same
+   conditions as make_relative_prefix returning NULL.  */
 
-static char *
+static std::string
 relocate_path (const char *progname, const char *initial, bool relocatable)
 {
   if (relocatable)
-    return make_relative_prefix (progname, BINDIR, initial);
-  return xstrdup (initial);
+    {
+      gdb::unique_xmalloc_ptr<char> str (make_relative_prefix (progname,
+							       BINDIR,
+							       initial));
+      if (str != nullptr)
+	return str.get ();
+      return std::string ();
+    }
+  return initial;
 }
 
 /* Like relocate_path, but specifically checks for a directory.
    INITIAL is relocated according to the rules of relocate_path.  If
    the result is a directory, it is used; otherwise, INITIAL is used.
-   The chosen directory is then canonicalized using lrealpath.  This
-   function always returns a newly-allocated string.  */
+   The chosen directory is then canonicalized using lrealpath.  */
 
-char *
+std::string
 relocate_gdb_directory (const char *initial, bool relocatable)
 {
-  char *dir;
-
-  dir = relocate_path (gdb_program_name, initial, relocatable);
-  if (dir)
+  std::string dir = relocate_path (gdb_program_name, initial, relocatable);
+  if (!dir.empty ())
     {
       struct stat s;
 
-      if (*dir == '\0' || stat (dir, &s) != 0 || !S_ISDIR (s.st_mode))
+      if (stat (dir.c_str (), &s) != 0 || !S_ISDIR (s.st_mode))
 	{
-	  xfree (dir);
-	  dir = NULL;
+	  dir.clear ();
 	}
     }
-  if (!dir)
-    dir = xstrdup (initial);
+  if (dir.empty ())
+    dir = initial;
 
   /* Canonicalize the directory.  */
-  if (*dir)
+  if (!dir.empty ())
     {
-      char *canon_sysroot = lrealpath (dir);
+      gdb::unique_xmalloc_ptr<char> canon_sysroot (lrealpath (dir.c_str ()));
 
       if (canon_sysroot)
-	{
-	  xfree (dir);
-	  dir = canon_sysroot;
-	}
+	dir = canon_sysroot.get ();
     }
 
   return dir;
@@ -220,14 +219,9 @@ relocate_gdbinit_path_maybe_in_datadir (const std::string& file)
     }
   else
     {
-      char *relocated = relocate_path (gdb_program_name,
-				       file.c_str (),
-				       SYSTEM_GDBINIT_RELOCATABLE);
-      if (relocated != nullptr)
-	{
-	  relocated_path = relocated;
-	  xfree (relocated);
-	}
+      relocated_path = relocate_path (gdb_program_name,
+				      file.c_str (),
+				      SYSTEM_GDBINIT_RELOCATABLE);
     }
     return relocated_path;
 }
@@ -541,20 +535,23 @@ captured_main_1 (struct captured_main_args *context)
     perror_warning_with_name (_("error finding working directory"));
 
   /* Set the sysroot path.  */
-  gdb_sysroot = relocate_gdb_directory (TARGET_SYSTEM_ROOT,
-					TARGET_SYSTEM_ROOT_RELOCATABLE);
+  gdb_sysroot
+    = xstrdup (relocate_gdb_directory (TARGET_SYSTEM_ROOT,
+				     TARGET_SYSTEM_ROOT_RELOCATABLE).c_str ());
 
-  if (gdb_sysroot == NULL || *gdb_sysroot == '\0')
+  if (*gdb_sysroot == '\0')
     {
       xfree (gdb_sysroot);
       gdb_sysroot = xstrdup (TARGET_SYSROOT_PREFIX);
     }
 
-  debug_file_directory = relocate_gdb_directory (DEBUGDIR,
-						 DEBUGDIR_RELOCATABLE);
+  debug_file_directory
+    = xstrdup (relocate_gdb_directory (DEBUGDIR,
+				     DEBUGDIR_RELOCATABLE).c_str ());
 
-  gdb_datadir = relocate_gdb_directory (GDB_DATADIR,
-					GDB_DATADIR_RELOCATABLE);
+  gdb_datadir
+    = xstrdup (relocate_gdb_directory (GDB_DATADIR,
+				     GDB_DATADIR_RELOCATABLE).c_str ());
 
 #ifdef WITH_PYTHON_PATH
   {
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 9c49151db3..9c8c635f72 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -1608,7 +1608,7 @@ do_start_initialization ()
      /foo/lib/pythonX.Y/...
      This must be done before calling Py_Initialize.  */
   gdb::unique_xmalloc_ptr<char> progname
-    (concat (ldirname (python_libdir).c_str (), SLASH_STRING, "bin",
+    (concat (ldirname (python_libdir.c_str ()).c_str (), SLASH_STRING, "bin",
 	      SLASH_STRING, "python", (char *) NULL));
 #ifdef IS_PY3K
   std::string oldloc = setlocale (LC_ALL, NULL);
diff --git a/gdb/top.c b/gdb/top.c
index 9d4ce1fa3b..2b53640af0 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -2038,7 +2038,7 @@ show_gdb_datadir (struct ui_file *file, int from_tty,
 		  struct cmd_list_element *c, const char *value)
 {
   fprintf_filtered (file, _("GDB's data directory is \"%s\".\n"),
-		    gdb_datadir);
+		    gdb_datadir.c_str ());
 }
 
 static void
diff --git a/gdb/xml-syscall.c b/gdb/xml-syscall.c
index d144f82fbf..dc988dfae8 100644
--- a/gdb/xml-syscall.c
+++ b/gdb/xml-syscall.c
@@ -316,7 +316,8 @@ static struct syscalls_info *
 xml_init_syscalls_info (const char *filename)
 {
   gdb::optional<gdb::char_vector> full_file
-    = xml_fetch_content_from_file (filename, gdb_datadir);
+    = xml_fetch_content_from_file (filename,
+				   const_cast<char *>(gdb_datadir.c_str ()));
   if (!full_file)
     return NULL;
 
@@ -336,7 +337,7 @@ init_syscalls_info (struct gdbarch *gdbarch)
   /* Should we re-read the XML info for this target?  */
   if (syscalls_info != NULL && !syscalls_info->my_gdb_datadir.empty ()
       && filename_cmp (syscalls_info->my_gdb_datadir.c_str (),
-		       gdb_datadir) != 0)
+		       gdb_datadir.c_str ()) != 0)
     {
       /* The data-directory changed from the last time we used it.
 	 It means that we have to re-read the XML info.  */
@@ -361,7 +362,7 @@ init_syscalls_info (struct gdbarch *gdbarch)
     {
       if (xml_syscall_file != NULL)
 	warning (_("Could not load the syscall XML file `%s/%s'."),
-		 gdb_datadir, xml_syscall_file);
+		 gdb_datadir.c_str (), xml_syscall_file);
       else
 	warning (_("There is no XML file to open."));
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix signals reported for faults on Solaris
@ 2019-09-12  9:22 gdb-buildbot
  2019-09-12 10:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-12  9:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7a28970742a8a1509917d409af14c84e1f666baa ***

commit 7a28970742a8a1509917d409af14c84e1f666baa
Author:     Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
AuthorDate: Thu Sep 12 10:40:59 2019 +0200
Commit:     Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
CommitDate: Thu Sep 12 10:40:59 2019 +0200

    Fix signals reported for faults on Solaris
    
    It's been a long-standing nuisance that gdb reported unaligned accesses
    on Solaris/SPARC as SIGSEGV, contrary to the shells and truss which
    correctly report SIGBUS instead.
    
    I could trace this down to the fault handling code in procfs.c
    (procfs_target::wait): when pr_why is set to PR_FAULTED, the current
    code sets the signal based on the fault number.  For one, the code gets
    this wrong for FLTACCESS (the unaligned access case) where it uses
    SIGSEGV.  What's worse, it's completely unnecessary to make up the
    signal number inside gdb.  Instead, it should just take what procfs
    reports to avoid mismatches, which is what this patch does.  I've
    completely removed the explicit handling of the various fault codes: for
    one, the list has already been incomplete, lacking FLTCPCOVF which
    existed since at least Solaris 8.  Besides, there's no reason to error
    out on unknown fault codes: either the fault causes a signal which can
    then be reported from procfs, or it doesn't (as for FLTPAGE) and no
    reporting is necessary.
    
    Tested on sparcv9-sun-solaris2.11 and x86_64-pc-solaris2.11.  Also
    spot-checked manually for a couple of cases (unaligned access, division
    by 0, NULL pointer dereference).
    
            * procfs.c (procfs_target::wait) <PR_FAULTED>: Get signal from
            prstatus.pr_lwp.pr_info instead of making it up.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4c354700c4..6d5f19d04b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* procfs.c (procfs_target::wait) <PR_FAULTED>: Get signal from
+	prstatus.pr_lwp.pr_info instead of making it up.
+
 2019-09-11  Christian Biesinger  <cbiesinger@google.com>
 
 	* auto-load.c (auto_load_expand_dir_vars): Update.
diff --git a/gdb/procfs.c b/gdb/procfs.c
index 5bc1c3b28a..848ac7d6e7 100644
--- a/gdb/procfs.c
+++ b/gdb/procfs.c
@@ -2476,40 +2476,12 @@ wait_again:
 		wstat = (what << 8) | 0177;
 		break;
 	      case PR_FAULTED:
-		switch (what) {
-		case FLTWATCH:
-		  wstat = (SIGTRAP << 8) | 0177;
-		  break;
-		  /* FIXME: use si_signo where possible.  */
-		case FLTPRIV:
-		case FLTILL:
-		  wstat = (SIGILL << 8) | 0177;
-		  break;
-		case FLTBPT:
-		case FLTTRACE:
-		  wstat = (SIGTRAP << 8) | 0177;
-		  break;
-		case FLTSTACK:
-		case FLTACCESS:
-		case FLTBOUNDS:
-		  wstat = (SIGSEGV << 8) | 0177;
-		  break;
-		case FLTIOVF:
-		case FLTIZDIV:
-		case FLTFPE:
-		  wstat = (SIGFPE << 8) | 0177;
-		  break;
-		case FLTPAGE:	/* Recoverable page fault */
-		default:	/* FIXME: use si_signo if possible for
-				   fault.  */
-		  retval = ptid_t (-1);
-		  printf_filtered ("procfs:%d -- ", __LINE__);
-		  printf_filtered (_("child stopped for unknown reason:\n"));
-		  proc_prettyprint_why (why, what, 1);
-		  error (_("... giving up..."));
-		  break;
+		{
+		  int signo = pi->prstatus.pr_lwp.pr_info.si_signo;
+		  if (signo != 0)
+		    wstat = (signo << 8) | 0177;
 		}
-		break;	/* case PR_FAULTED: */
+		break;
 	      default:	/* switch (why) unmatched */
 		printf_filtered ("procfs:%d -- ", __LINE__);
 		printf_filtered (_("child stopped for unknown reason:\n"));


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Output the Ada task name in more messages.
@ 2019-09-12 20:58 gdb-buildbot
  2019-09-12 21:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-12 20:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4993045d18d69ecee41ca341cde6bbed220dc8a4 ***

commit 4993045d18d69ecee41ca341cde6bbed220dc8a4
Author:     Philippe Waroquiers <philippe.waroquiers@skynet.be>
AuthorDate: Sat Jun 8 19:47:51 2019 +0200
Commit:     Philippe Waroquiers <philippe.waroquiers@skynet.be>
CommitDate: Thu Sep 12 21:57:10 2019 +0200

    Output the Ada task name in more messages.
    
    With this patch, we e.g. get:
          [Switching to task 2 "task_list(1)"]
          [Current task is 2 "task_list(1)"]
        instead of
          [Switching to task 2]
          [Current task is 2]
    
    The logic to produce the taskno optionally followed
    by the task name has been factorized in the task_to_str function.
    
    Task names are output between double quotes in the new messages,
    similarly to what GDB does for thread names.
    However, no quotes are put around task names in 'info tasks' Name column.
    This was discussed with Tom, that preferred no quotes there, while I
    was more in favour of visual consistency.
    I discussed with a few more users, which led to (exactly) 50% preferring
    quotes and 50% preferring no quotes :).
    To arrive to the decision to remove the quotes, the following "killing args"
    were used:
     * To have quotes or to not have quotes, that is the question; yes
       but not *THE* question :).
     * If there is not a clear majority that prefers quotes, better to
       not disturb the existing user basis for a (somewhat) irrelevant
       aspect.
     * The opinion of the reviewer has more weight.
    
    So, compared to the previous version, this version remotes the quotes
    in 'info tasks'.
    
    It improves the alignement of 'info tasks' output.
    With this patch, we get:
          (gdb) info task
             ID           TID P-ID Pri State                  Name
          *   1  555555759030       48 Runnable               main_task
              2  555555759e30    1  48 Selective Wait         mit
          (gdb)
       instead of
          (gdb) info task
             ID       TID P-ID Pri State                  Name
          *   1 555555759030       48 Runnable               main_task
              2 555555759e30    1  48 Selective Wait         mit
          (gdb)
    (e.g. the first one properly shows parent and priority under the
    correct header).
    
    This is version 4 of the 'task name' patch.
    Compared to version 3, the changes are:
       output task names between quotes but not in 'info tasks'
    
    gdb/ChangeLog
    2019-09-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
    
            * NEWS: Announce that Ada task names are now shown at more places,
            and between quotes (except in info task output).
            * gdb/ada-tasks.c (task_to_str): New function.
            (display_current_task_id): Call task_to_str.
            (task_command_1): Likewise.
            (print_ada_task_info): In non-mi mode, Properly align headers and data
            when task-id length is > 9 (9 is the default for a 32 bits CORE_ADDR).
    
    gdb/doc/ChangeLog
    2019-09-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
    
            * gdb.texinfo (Ada Tasks): Tell the task name is printed, update
            examples.
    
    gdb/testsuite/ChangeLog
    2019-09-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
    
            * gdb.ada/rdv_wait.exp: Update to new task names.
            * gdb.base/task_switch_in_core.exp: Likewise.
            * gdb.base/info_sources_base.c: Likewise.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6d5f19d04b..986a701c2f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+
+	* NEWS: Announce that Ada task names are now shown at more places,
+	and between quotes (except in info task output).
+	* gdb/ada-tasks.c (task_to_str): New function.
+	(display_current_task_id): Call task_to_str.
+	(task_command_1): Likewise.
+	(print_ada_task_info): In non-mi mode, Properly align headers and data
+	when task-id length is > 9 (9 is the default for a 32 bits CORE_ADDR).
+
 2019-09-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
 	* procfs.c (procfs_target::wait) <PR_FAULTED>: Get signal from
diff --git a/gdb/NEWS b/gdb/NEWS
index f382e887c0..d502f08984 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -29,6 +29,9 @@
 
 * The RX port now supports XML target descriptions.
 
+* GDB now shows the Ada task names at more places, e.g. in task switching
+  messages.
+
 * Python API
 
   ** The gdb.Value type has a new method 'format_string' which returns a
diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c
index 99458aadb2..34da786eb7 100644
--- a/gdb/ada-tasks.c
+++ b/gdb/ada-tasks.c
@@ -240,6 +240,18 @@ struct ada_tasks_inferior_data
 static const struct inferior_key<ada_tasks_inferior_data>
   ada_tasks_inferior_data_handle;
 
+/* Return a string with TASKNO followed by the task name if TASK_INFO
+   contains a name.  */
+
+static std::string
+task_to_str (int taskno, const ada_task_info *task_info)
+{
+  if (task_info->name[0] == '\0')
+    return string_printf ("%d", taskno);
+  else
+    return string_printf ("%d \"%s\"", taskno, task_info->name);
+}
+
 /* Return the ada-tasks module's data for the given program space (PSPACE).
    If none is found, add a zero'ed one now.
 
@@ -1047,7 +1059,26 @@ print_ada_task_info (struct ui_out *uiout,
   ui_out_emit_table table_emitter (uiout, nb_columns, nb_tasks, "tasks");
   uiout->table_header (1, ui_left, "current", "");
   uiout->table_header (3, ui_right, "id", "ID");
-  uiout->table_header (9, ui_right, "task-id", "TID");
+  {
+    size_t tid_width = 9;
+    /* Grown below in case the largest entry is bigger.  */
+
+    if (!uiout->is_mi_like_p ())
+      {
+	for (taskno = 1; taskno <= data->task_list.size (); taskno++)
+	  {
+	    const struct ada_task_info *const task_info
+	      = &data->task_list[taskno - 1];
+
+	    gdb_assert (task_info != NULL);
+
+	    tid_width = std::max (tid_width,
+				  1 + strlen (phex_nz (task_info->task_id,
+						       sizeof (CORE_ADDR))));
+	  }
+      }
+    uiout->table_header (tid_width, ui_right, "task-id", "TID");
+  }
   /* The following column is provided in GDB/MI mode only because
      it is only really useful in that mode, and also because it
      allows us to keep the CLI output shorter and more compact.  */
@@ -1129,10 +1160,12 @@ print_ada_task_info (struct ui_out *uiout,
       else
 	uiout->field_string ("state", task_states[task_info->state]);
 
-      /* Finally, print the task name.  */
+      /* Finally, print the task name, without quotes around it, as mi like
+	 is not expecting quotes, and in non mi-like no need for quotes
+         as there is a specific column for the name.  */
       uiout->field_string ("name",
-			   task_info->name[0] != '\0' ? task_info->name
-			   : _("<no name>"));
+                          task_info->name[0] != '\0' ? task_info->name
+                          : _("<no name>"));
 
       uiout->text ("\n");
     }
@@ -1166,7 +1199,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
 
   /* Print the name of the task.  */
   if (task_info->name[0] != '\0')
-    printf_filtered (_("Name: %s\n"), task_info->name);
+    printf_filtered (_("Name: \"%s\"\n"), task_info->name);
   else
     printf_filtered (_("<no name>\n"));
 
@@ -1187,7 +1220,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
 
       printf_filtered (_("Parent: %d"), parent_taskno);
       if (parent->name[0] != '\0')
-        printf_filtered (" (%s)", parent->name);
+        printf_filtered (" (\"%s\")", parent->name);
       printf_filtered ("\n");
     }
   else
@@ -1220,7 +1253,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
         ada_task_info *target_task_info = &data->task_list[target_taskno - 1];
 
         if (target_task_info->name[0] != '\0')
-          printf_filtered (" (%s)", target_task_info->name);
+          printf_filtered (" (\"%s\")", target_task_info->name);
       }
 
     printf_filtered ("\n");
@@ -1255,7 +1288,14 @@ display_current_task_id (void)
   if (current_task == 0)
     printf_filtered (_("[Current task is unknown]\n"));
   else
-    printf_filtered (_("[Current task is %d]\n"), current_task);
+    {
+      struct ada_tasks_inferior_data *data
+	= get_ada_tasks_inferior_data (current_inferior ());
+      struct ada_task_info *task_info = &data->task_list[current_task - 1];
+
+      printf_filtered (_("[Current task is %s]\n"),
+		       task_to_str (current_task, task_info).c_str ());
+    }
 }
 
 /* Parse and evaluate TIDSTR into a task id, and try to switch to
@@ -1274,7 +1314,8 @@ task_command_1 (const char *taskno_str, int from_tty, struct inferior *inf)
   task_info = &data->task_list[taskno - 1];
 
   if (!ada_task_is_alive (task_info))
-    error (_("Cannot switch to task %d: Task is no longer running"), taskno);
+    error (_("Cannot switch to task %s: Task is no longer running"),
+	   task_to_str (taskno, task_info).c_str ());
    
   /* On some platforms, the thread list is not updated until the user
      performs a thread-related operation (by using the "info threads"
@@ -1295,13 +1336,14 @@ task_command_1 (const char *taskno_str, int from_tty, struct inferior *inf)
      it's nicer for the user to just refuse to perform the task switch.  */
   thread_info *tp = find_thread_ptid (task_info->ptid);
   if (tp == NULL)
-    error (_("Unable to compute thread ID for task %d.\n"
+    error (_("Unable to compute thread ID for task %s.\n"
              "Cannot switch to this task."),
-           taskno);
+           task_to_str (taskno, task_info).c_str ());
 
   switch_to_thread (tp);
   ada_find_printable_frame (get_selected_frame (NULL));
-  printf_filtered (_("[Switching to task %d]\n"), taskno);
+  printf_filtered (_("[Switching to task %s]\n"),
+		   task_to_str (taskno, task_info).c_str ());
   print_stack_frame (get_selected_frame (NULL),
                      frame_relative_level (get_selected_frame (NULL)),
 		     SRC_AND_LOC, 1);
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 96c0409197..4705fbc541 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+
+	* gdb.texinfo (Ada Tasks): Tell the task name is printed, update
+	examples.
+
 2019-09-10  Tom Tromey  <tromey@adacore.com>
 
 	* gdb.texinfo (Index Files): Update Ada text.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 79824a0226..eee0c9d4dd 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -17751,10 +17751,10 @@ the following example:
 *  2   807c468    1  15 Runnable               task_1
 (@value{GDBP}) info task 2
 Ada Task: 0x807c468
-Name: task_1
+Name: "task_1"
 Thread: 0
 LWP: 0x1fac
-Parent: 1 (main_task)
+Parent: 1 ("main_task")
 Base Priority: 15
 State: Runnable
 @end smallexample
@@ -17762,7 +17762,7 @@ State: Runnable
 @item task
 @kindex task@r{ (Ada)}
 @cindex current Ada task ID
-This command prints the ID of the current task.
+This command prints the ID and name of the current task.
 
 @smallexample
 @iftex
@@ -17771,9 +17771,9 @@ This command prints the ID of the current task.
 (@value{GDBP}) info tasks
   ID       TID P-ID Pri State                  Name
    1   8077870    0  15 Child Activation Wait  main_task
-*  2   807c458    1  15 Runnable               t
+*  2   807c458    1  15 Runnable               some_task
 (@value{GDBP}) task
-[Current task is 2]
+[Current task is 2 "some_task"]
 @end smallexample
 
 @item task @var{taskno}
@@ -17789,9 +17789,9 @@ from the current task to the given task.
 (@value{GDBP}) info tasks
   ID       TID P-ID Pri State                  Name
    1   8077870    0  15 Child Activation Wait  main_task
-*  2   807c458    1  15 Runnable               t
+*  2   807c458    1  15 Runnable               some_task
 (@value{GDBP}) task 1
-[Switching to task 1]
+[Switching to task 1 "main_task"]
 #0  0x8067726 in pthread_cond_wait ()
 (@value{GDBP}) bt
 #0  0x8067726 in pthread_cond_wait ()
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index a51d22ce22..bf3fcc7d84 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+
+	* gdb.ada/rdv_wait.exp: Update to new task names.
+	* gdb.base/task_switch_in_core.exp: Likewise.
+	* gdb.base/info_sources_base.c: Likewise.
+
 2019-09-10  Tom Tromey  <tromey@adacore.com>
 
 	* boards/cc-with-tweaks.exp: Set GNATMAKE_FOR_TARGET.
diff --git a/gdb/testsuite/gdb.ada/rdv_wait.exp b/gdb/testsuite/gdb.ada/rdv_wait.exp
index c0c4e29f5f..fe6aec3bcd 100644
--- a/gdb/testsuite/gdb.ada/rdv_wait.exp
+++ b/gdb/testsuite/gdb.ada/rdv_wait.exp
@@ -31,5 +31,5 @@ runto "break_me"
 # Switch to task 2, and verify that GDB is able to unwind all the way
 # to foo.T.
 gdb_test "task 2" \
-         [join {"\\\[Switching to task 2\\\].*" \
+         [join {"\\\[Switching to task 2 \"mit\"\\\].*" \
                 ".*foo\\.t \\(.*\\).*foo\\.adb:.*"} ""]
diff --git a/gdb/testsuite/gdb.ada/task_switch_in_core.exp b/gdb/testsuite/gdb.ada/task_switch_in_core.exp
index 4c482834bc..fb9aef2840 100644
--- a/gdb/testsuite/gdb.ada/task_switch_in_core.exp
+++ b/gdb/testsuite/gdb.ada/task_switch_in_core.exp
@@ -71,7 +71,7 @@ gdb_test "info tasks" \
 # we will verify right after with an additional test that the current
 # task is now task 2.
 gdb_test "task 2" \
-         "\\\[Switching to task 2\\\].*"
+         "\\\[Switching to task 2 \"my_t\"\\\].*"
 
 gdb_test "info tasks" \
          [multi_line "\\s+ID\\s+TID\\s+P-ID\\s+Pri\\s+State\\s+Name" \


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
@ 2019-09-12 21:01 gdb-buildbot
  2019-09-13  1:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-12 21:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 25e5c20918a0ec69e37c1987db52062b0eab7194 ***

commit 25e5c20918a0ec69e37c1987db52062b0eab7194
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Sep 12 22:36:37 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Thu Sep 12 22:36:37 2019 +0200

    [gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
    
    The test-case gdb.base/store.exp fails with gcc 7.4.0:
    ...
    nr of unexpected failures        27
    ...
    
    The first FAIL:
    ...
    110       l = add_float (l, r);
    (gdb) PASS: gdb.base/store.exp: continue to wack_float
    print l
    $21 = <optimized out>
    FAIL: gdb.base/store.exp: var float l; print old l, expecting -1
    ...
    relates to this bit in the test-case (compiled at -O0):
    ...
       106  float
       107  wack_float (register float u, register float v)
       108  {
       109    register float l = u, r = v;
       110    l = add_float (l, r);
       111    return l + r;
       112  }
    ...
    and it expects to be able to read and modify variable l before executing line
    110, but it already fails to read the value, because l has no DW_AT_location
    attribute in the debug info.
    
    Variable l is declared with the register keyword, and GCC implements the
    register keyword at -O0 like so:
    ...
    the compiler allocates distinct stack memory for all variables that do not
    have the register storage-class specifier; if register is specified, the
    variable may have a shorter lifespan than the code would indicate and may
    never be placed in memory.
    ...
    
    The fact that l has no DW_AT_location attribute, matches with the documented
    "variable may have a shorter lifespan that code would indicate", (though it
    is the most extreme case of it) so the gcc behaviour is valid.  We can of
    course improve gcc to generate better debuginfo (filed gcc PR91611), but
    this not a wrong-debug problem.
    
    [ The test-case passes with gcc 4.2.1, but for the failing test discussed
    above, it passes simply because it doesn't store l in a register. ]
    
    With the debug info missing for l, reading and setting l is unsupported, so
    fix the FAIL by marking the test UNSUPPORTED instead.
    
    Tested on x86_64-linux.
    
    gdb/testsuite/ChangeLog:
    
    2019-09-12  Tom de Vries  <tdevries@suse.de>
    
            * gdb.base/store.exp: Allow register variables to be optimized out at
            -O0.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index bf3fcc7d84..7352e9f034 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-12  Tom de Vries  <tdevries@suse.de>
+
+	* gdb.base/store.exp: Allow register variables to be optimized out at
+	-O0.
+
 2019-09-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
 
 	* gdb.ada/rdv_wait.exp: Update to new task names.
diff --git a/gdb/testsuite/gdb.base/store.exp b/gdb/testsuite/gdb.base/store.exp
index c5a7584101..9c19ce15a7 100644
--- a/gdb/testsuite/gdb.base/store.exp
+++ b/gdb/testsuite/gdb.base/store.exp
@@ -55,18 +55,29 @@ proc check_set { t l r new add } {
 	}
     }
 
-    gdb_test "print l" " = ${l}" \
-	"${prefix}; print old l, expecting ${l}"
-    gdb_test "print r" " = ${r}" \
-	"${prefix}; print old r, expecting ${r}"
-    gdb_test_no_output "set variable l = 4" \
-	"${prefix}; setting l to 4"
-    gdb_test "print l" " = ${new}" \
-	"${prefix}; print new l, expecting ${new}"
-    gdb_test "next" "return l \\+ r;" \
-	"${prefix}; next over add call"
-    gdb_test "print l" " = ${add}" \
-	"${prefix}; print incremented l, expecting ${add}"
+    set supported 1
+    set test "${prefix}; print old l, expecting ${l}"
+    gdb_test_multiple "print l" "$test"  {
+	-re " = <optimized out>\r\n$gdb_prompt $" {
+	    unsupported $test
+	    set supported 0
+	}
+	-re " = ${l}\r\n$gdb_prompt $" {
+	    pass $test
+	}
+    }
+    if { $supported } {
+	gdb_test "print r" " = ${r}" \
+	    "${prefix}; print old r, expecting ${r}"
+	gdb_test_no_output "set variable l = 4" \
+	    "${prefix}; setting l to 4"
+	gdb_test "print l" " = ${new}" \
+	    "${prefix}; print new l, expecting ${new}"
+	gdb_test "next" "return l \\+ r;" \
+	    "${prefix}; next over add call"
+	gdb_test "print l" " = ${add}" \
+	    "${prefix}; print incremented l, expecting ${add}"
+    }
 }
 
 check_set "charest" "-1 .*" "-2 .*" "4 ..004." "2 ..002."
@@ -81,20 +92,34 @@ check_set "doublest" "-1" "-2" "4" "2"
 #
 
 proc up_set { t l r new } {
+    global gdb_prompt
+
     set prefix "upvar ${t} l"
     gdb_test "tbreak add_${t}"
     gdb_test "continue" "return u . v;" \
 	"continue to add_${t}"
     gdb_test "up" "l = add_${t} .l, r.;" \
 	"${prefix}; up"
-    gdb_test "print l" " = ${l}" \
-	"${prefix}; print old l, expecting ${l}"
-    gdb_test "print r" " = ${r}" \
-	"${prefix}; print old r, expecting ${r}"
-    gdb_test_no_output "set variable l = 4" \
-	"${prefix}; set l to 4"
-    gdb_test "print l" " = ${new}" \
-	"${prefix}; print new l, expecting ${new}"
+
+    set supported 1
+    set test "${prefix}; print old l, expecting ${l}"
+    gdb_test_multiple "print l" "$test"  {
+	-re " = <optimized out>\r\n$gdb_prompt $" {
+	    unsupported $test
+	    set supported 0
+	}
+	-re " = ${l}\r\n$gdb_prompt $" {
+	    pass $test
+	}
+    }
+    if { $supported } {
+	gdb_test "print r" " = ${r}" \
+	    "${prefix}; print old r, expecting ${r}"
+	gdb_test_no_output "set variable l = 4" \
+	    "${prefix}; set l to 4"
+	gdb_test "print l" " = ${new}" \
+	    "${prefix}; print new l, expecting ${new}"
+    }
 }
 
 up_set "charest" "-1 .*" "-2 .*" "4 ..004."


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Don't fault for 'maint print psymbols' when using an index
@ 2019-09-13  1:11 gdb-buildbot
  2019-09-13  2:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-13  1:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3dd9bb462012df685d6d41300dacedae1c81e28a ***

commit 3dd9bb462012df685d6d41300dacedae1c81e28a
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Sat Aug 31 21:46:27 2019 +0100
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Thu Sep 12 20:31:29 2019 -0400

    gdb: Don't fault for 'maint print psymbols' when using an index
    
    I found that these tests:
    
      make check-gdb RUNTESTFLAGS="--target_board=cc-with-gdb-index gdb.base/maint.exp"
      make check-gdb RUNTESTFLAGS="--target_board=cc-with-debug-names gdb.base/maint.exp"
    
    were causing GDB to segfault.  It turns out that this test runs this
    command:
    
      maint print psymbols -pc main /path/to/some/file
    
    which tries to lookup the partial_symtab for 'main'.  The problem is
    that there is no partial_symtab for 'main' as we are using the
    .gdb_index or .debug_names instead of partial_symtabs.
    
    What happens is that maintenance_print_symbols calls
    find_pc_sect_psymtab, which looks for the partial_symtab in the
    objfile's objfile->partial_symtabs->psymtabs_addrmap.
    
    This is a problem because when we are using the indexes
    psymtabs_addrmap is reused to hold things other than partial_symtabs,
    this can be seen in dwarf2read.c in create_addrmap_from_index and
    create_addrmap_from_aranges.  If we then lookup in psymtabs_addrmap we
    end up returning a pointer to something that isn't really a
    partial_symtab, after which everything goes wrong.
    
    Initially I simply added a check at the start of find_pc_sect_psymtab
    that the objfile had some partial_symtabs, like:
    
      if (objfile->partial_symtabs->psymtabs == NULL)
        return NULL;
    
    Figuring that if there were no partial_symtabs at all then this
    function should always return NULL, however, this caused a failure in
    the test gdb.python/py-event.exp which I didn't dig into too deeply,
    but seems to be that in this tests there are initially no psymtabs,
    but the second part of find_pc_sect_psymtab does manage to read some
    in from somewhere, with the check I added the test fails as we
    returned NULL here and this caused GDB to load in the full symtabs
    earlier than was expected.
    
    Instead I chose to guard only the access to psymtabs_addrmap with a
    check that the function has some psymtabs.  This allows my original
    tests to pass, and the py-event.exp test to pass too.
    
    Now, a good argument can be made that we simply should never call
    find_pc_sect_psymtab on an objfile that is using indexes instead of
    partial_symtabs.  I did consider this approach, we could easily add an
    assert into find_pc_sect_psymtab that if we find a partial_symtab in
    psymtabs_addrmap then the psymtabs pointer must be non-null.  The
    responsibility would then be on the user of find_pc_sect_psymtab to
    ensure that the objfile being checked is suitable.  In the end I
    didn't take this approach as the check in find_pc_sect_psymtab is
    cheap and this ensures that any future miss-uses of the function will
    not cause problems.
    
    I also extended the comment on psymtabs_addrmap to indicate that it
    holds more than just partial_symtabs as this was not at all clear from
    the original comment, and caused me some confusion when I was
    initially debugging this problem.
    
    gdb/ChangeLog:
    
            * psymtab.c (find_pc_sect_psymtab): Move baseaddr local into more
            inner scope, add check that the objfile has psymtabs before
            checking psymtabs_addrmap.
            * psymtab.h (psymtab_storage) <psymtabs_addrmap>: Extend comment.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 986a701c2f..9540c4f120 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-12  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* psymtab.c (find_pc_sect_psymtab): Move baseaddr local into more
+	inner scope, add check that the objfile has psymtabs before
+	checking psymtabs_addrmap.
+	* psymtab.h (psymtab_storage) <psymtabs_addrmap>: Extend comment.
+
 2019-09-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
 
 	* NEWS: Announce that Ada task names are now shown at more places,
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index e9cc8c3bc6..031dbd9c1e 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -301,14 +301,24 @@ find_pc_sect_psymtab (struct objfile *objfile, CORE_ADDR pc,
 		      struct obj_section *section,
 		      struct bound_minimal_symbol msymbol)
 {
-  CORE_ADDR baseaddr = ANOFFSET (objfile->section_offsets,
-				 SECT_OFF_TEXT (objfile));
-
-  /* Try just the PSYMTABS_ADDRMAP mapping first as it has better granularity
-     than the later used TEXTLOW/TEXTHIGH one.  */
-
-  if (objfile->partial_symtabs->psymtabs_addrmap != NULL)
+  /* Try just the PSYMTABS_ADDRMAP mapping first as it has better
+     granularity than the later used TEXTLOW/TEXTHIGH one.  However, we need
+     to take care as the PSYMTABS_ADDRMAP can hold things other than partial
+     symtabs in some cases.
+
+     This function should only be called for objfiles that are using partial
+     symtabs, not for objfiles that are using indexes (.gdb_index or
+     .debug_names), however 'maintenance print psymbols' calls this function
+     directly for all objfiles.  If we assume that PSYMTABS_ADDRMAP contains
+     partial symtabs then we will end up returning a pointer to an object
+     that is not a partial_symtab, which doesn't end well.  */
+
+  if (objfile->partial_symtabs->psymtabs != NULL
+      && objfile->partial_symtabs->psymtabs_addrmap != NULL)
     {
+      CORE_ADDR baseaddr = ANOFFSET (objfile->section_offsets,
+				     SECT_OFF_TEXT (objfile));
+
       struct partial_symtab *pst
 	= ((struct partial_symtab *)
 	   addrmap_find (objfile->partial_symtabs->psymtabs_addrmap,
diff --git a/gdb/psymtab.h b/gdb/psymtab.h
index aed686258d..0ad2b49d9a 100644
--- a/gdb/psymtab.h
+++ b/gdb/psymtab.h
@@ -109,7 +109,11 @@ public:
   /* Map addresses to the entries of PSYMTABS.  It would be more efficient to
      have a map per the whole process but ADDRMAP cannot selectively remove
      its items during FREE_OBJFILE.  This mapping is already present even for
-     PARTIAL_SYMTABs which still have no corresponding full SYMTABs read.  */
+     PARTIAL_SYMTABs which still have no corresponding full SYMTABs read.
+
+     The DWARF parser reuses this addrmap to store things other than
+     psymtabs in the cases where debug information is being read from, for
+     example, the .debug-names section.  */
 
   struct addrmap *psymtabs_addrmap = nullptr;
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Have 'maint info sections' print all sections again
@ 2019-09-13  1:12 gdb-buildbot
  2019-09-13  3:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-13  1:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT aa17805fb9a3a1983a510ba425b682fba03410c2 ***

commit aa17805fb9a3a1983a510ba425b682fba03410c2
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Sat Aug 31 23:44:40 2019 +0100
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Thu Sep 12 20:31:29 2019 -0400

    gdb: Have 'maint info sections' print all sections again
    
    In this commit:
    
      commit 6eac171f0624303d944ff1a1ae4d0e3b0a63c800
      Date:   Fri Aug 16 00:25:14 2019 +0200
    
          [gdb] Make maint info sections print relocated addresses
    
    A couple of things broke with the 'maintenance info sections' command,
    here is some before output:
    
      (gdb) maintenance info sections
      Exec file:
          `/path/to/gdb/build/gdb/testsuite/outputs/gdb.base/maint/maint',
              file type elf64-x86-64.
       [0]     0x00400238->0x00400254 at 0x00000238: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS
       [1]     0x00400254->0x00400274 at 0x00000254: .note.ABI-tag ALLOC LOAD READONLY DATA HAS_CONTENTS
       [2]     0x00400274->0x00400298 at 0x00000274: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS
       [3]     0x00400298->0x004002bc at 0x00000298: .gnu.hash ALLOC LOAD READONLY DATA HAS_CONTENTS
       [4]     0x004002c0->0x00400380 at 0x000002c0: .dynsym ALLOC LOAD READONLY DATA HAS_CONTENTS
       [5]     0x00400380->0x004003e3 at 0x00000380: .dynstr ALLOC LOAD READONLY DATA HAS_CONTENTS
       [6]     0x004003e4->0x004003f4 at 0x000003e4: .gnu.version ALLOC LOAD READONLY DATA HAS_CONTENTS
       [7]     0x004003f8->0x00400418 at 0x000003f8: .gnu.version_r ALLOC LOAD READONLY DATA HAS_CONTENTS
       [8]     0x00400418->0x00400460 at 0x00000418: .rela.dyn ALLOC LOAD READONLY DATA HAS_CONTENTS
       [9]     0x00400460->0x004004c0 at 0x00000460: .rela.plt ALLOC LOAD READONLY DATA HAS_CONTENTS
       [10]     0x004004c0->0x004004d7 at 0x000004c0: .init ALLOC LOAD READONLY CODE HAS_CONTENTS
       [11]     0x004004e0->0x00400530 at 0x000004e0: .plt ALLOC LOAD READONLY CODE HAS_CONTENTS
       [12]     0x00400530->0x00400802 at 0x00000530: .text ALLOC LOAD READONLY CODE HAS_CONTENTS
       [13]     0x00400804->0x0040080d at 0x00000804: .fini ALLOC LOAD READONLY CODE HAS_CONTENTS
       [14]     0x00400810->0x0040084e at 0x00000810: .rodata ALLOC LOAD READONLY DATA HAS_CONTENTS
       [15]     0x00400850->0x004008c4 at 0x00000850: .eh_frame_hdr ALLOC LOAD READONLY DATA HAS_CONTENTS
       [16]     0x004008c8->0x00400ab8 at 0x000008c8: .eh_frame ALLOC LOAD READONLY DATA HAS_CONTENTS
       [17]     0x00600e00->0x00600e08 at 0x00000e00: .init_array ALLOC LOAD DATA HAS_CONTENTS
       [18]     0x00600e08->0x00600e10 at 0x00000e08: .fini_array ALLOC LOAD DATA HAS_CONTENTS
       [19]     0x00600e10->0x00600ff0 at 0x00000e10: .dynamic ALLOC LOAD DATA HAS_CONTENTS
       [20]     0x00600ff0->0x00601000 at 0x00000ff0: .got ALLOC LOAD DATA HAS_CONTENTS
       [21]     0x00601000->0x00601038 at 0x00001000: .got.plt ALLOC LOAD DATA HAS_CONTENTS
       [22]     0x00601038->0x0060103c at 0x00001038: .data ALLOC LOAD DATA HAS_CONTENTS
       [23]     0x00601040->0x006012c8 at 0x0000103c: .bss ALLOC
       [24]     0x00000000->0x0000002c at 0x0000103c: .comment READONLY HAS_CONTENTS
       [25]     0x00000000->0x00000060 at 0x00001068: .debug_aranges READONLY HAS_CONTENTS
       [26]     0x00000000->0x0000061b at 0x000010c8: .debug_info READONLY HAS_CONTENTS
       [27]     0x00000000->0x00000264 at 0x000016e3: .debug_abbrev READONLY HAS_CONTENTS
       [28]     0x00000000->0x000001e6 at 0x00001947: .debug_line READONLY HAS_CONTENTS
       [29]     0x00000000->0x00000487 at 0x00001b2d: .debug_str READONLY HAS_CONTENTS
      (gdb)
    
    And here is the output after the above commit:
    
      (gdb) maintenance info sections
      +maintenance info sections
      Exec file:
          `/path/to/gdb/build/gdb/testsuite/outputs/gdb.base/maint/maint',
              file type elf64-x86-64.
          0x00400238->0x00400254 at 0x00000238: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x00400254->0x00400274 at 0x00000254: .note.ABI-tag ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x00400274->0x00400298 at 0x00000274: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x00400298->0x004002bc at 0x00000298: .gnu.hash ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x004002c0->0x00400380 at 0x000002c0: .dynsym ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x00400380->0x004003e3 at 0x00000380: .dynstr ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x004003e4->0x004003f4 at 0x000003e4: .gnu.version ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x004003f8->0x00400418 at 0x000003f8: .gnu.version_r ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x00400418->0x00400460 at 0x00000418: .rela.dyn ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x00400460->0x004004c0 at 0x00000460: .rela.plt ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x004004c0->0x004004d7 at 0x000004c0: .init ALLOC LOAD READONLY CODE HAS_CONTENTS
          0x004004e0->0x00400530 at 0x000004e0: .plt ALLOC LOAD READONLY CODE HAS_CONTENTS
          0x00400530->0x00400802 at 0x00000530: .text ALLOC LOAD READONLY CODE HAS_CONTENTS
          0x00400804->0x0040080d at 0x00000804: .fini ALLOC LOAD READONLY CODE HAS_CONTENTS
          0x00400810->0x0040084e at 0x00000810: .rodata ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x00400850->0x004008c4 at 0x00000850: .eh_frame_hdr ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x004008c8->0x00400ab8 at 0x000008c8: .eh_frame ALLOC LOAD READONLY DATA HAS_CONTENTS
          0x00600e00->0x00600e08 at 0x00000e00: .init_array ALLOC LOAD DATA HAS_CONTENTS
          0x00600e08->0x00600e10 at 0x00000e08: .fini_array ALLOC LOAD DATA HAS_CONTENTS
          0x00600e10->0x00600ff0 at 0x00000e10: .dynamic ALLOC LOAD DATA HAS_CONTENTS
          0x00600ff0->0x00601000 at 0x00000ff0: .got ALLOC LOAD DATA HAS_CONTENTS
          0x00601000->0x00601038 at 0x00001000: .got.plt ALLOC LOAD DATA HAS_CONTENTS
          0x00601038->0x0060103c at 0x00001038: .data ALLOC LOAD DATA HAS_CONTENTS
          0x00601040->0x006012c8 at 0x0000103c: .bss ALLOC
          0x00000000->0x00000000 at 0x00000000: *COM* IS_COMMON
          0x00000000->0x00000000 at 0x00000000: *UND*
          0x00000000->0x00000000 at 0x00000000: *ABS*
          0x00000000->0x00000000 at 0x00000000: *IND*
      (gdb)
    
    We lost the section index numbers, but more importantly, we lost the
    information about the .debug* sections.  We also gained entries for
    the "fake" sections *COM*, *UND*, *ABS*, and *IND*.
    
    I noticed this when running:
    
      make check-gdb RUNTESTFLAGS="--target_board=cc-with-gdb-index gdb.base/maint.exp"
    
    As this test relies on looking in the 'maint info sections' output to
    see if we have a .debug_names or .gdb_index section, and these are
    debug sections so they no longer show up in the 'main info sections'
    output, the gdb.base/maint.exp test fails.
    
    This commit restores the old behaviour while keeping the important
    change that the above commit introduced, the addresses printed for
    sections are the relocated addresses where appropriate.  The above
    commit mentions using this test:
    
       make check-gdb RUNTESTFLAGS="CFLAGS_FOR_TARGET='-pie' gdb.base/compare-sections.exp"
    
    And this still passes after this commit.
    
    The output for 'maint info sections' now looks like this:
    
      (gdb) maintenance info sections
      Exec file:
          `/home/andrew/projects/binutils-gdb/build/gdb/testsuite/outputs/gdb.base/maint/maint',
              file type elf64-x86-64.
       [0]      0x00400238->0x00400254 at 0x00000238: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS
       [1]      0x00400254->0x00400274 at 0x00000254: .note.ABI-tag ALLOC LOAD READONLY DATA HAS_CONTENTS
       [2]      0x00400274->0x00400298 at 0x00000274: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS
       [3]      0x00400298->0x004002bc at 0x00000298: .gnu.hash ALLOC LOAD READONLY DATA HAS_CONTENTS
       [4]      0x004002c0->0x00400380 at 0x000002c0: .dynsym ALLOC LOAD READONLY DATA HAS_CONTENTS
       [5]      0x00400380->0x004003e3 at 0x00000380: .dynstr ALLOC LOAD READONLY DATA HAS_CONTENTS
       [6]      0x004003e4->0x004003f4 at 0x000003e4: .gnu.version ALLOC LOAD READONLY DATA HAS_CONTENTS
       [7]      0x004003f8->0x00400418 at 0x000003f8: .gnu.version_r ALLOC LOAD READONLY DATA HAS_CONTENTS
       [8]      0x00400418->0x00400460 at 0x00000418: .rela.dyn ALLOC LOAD READONLY DATA HAS_CONTENTS
       [9]      0x00400460->0x004004c0 at 0x00000460: .rela.plt ALLOC LOAD READONLY DATA HAS_CONTENTS
       [10]     0x004004c0->0x004004d7 at 0x000004c0: .init ALLOC LOAD READONLY CODE HAS_CONTENTS
       [11]     0x004004e0->0x00400530 at 0x000004e0: .plt ALLOC LOAD READONLY CODE HAS_CONTENTS
       [12]     0x00400530->0x00400802 at 0x00000530: .text ALLOC LOAD READONLY CODE HAS_CONTENTS
       [13]     0x00400804->0x0040080d at 0x00000804: .fini ALLOC LOAD READONLY CODE HAS_CONTENTS
       [14]     0x00400810->0x0040084e at 0x00000810: .rodata ALLOC LOAD READONLY DATA HAS_CONTENTS
       [15]     0x00400850->0x004008c4 at 0x00000850: .eh_frame_hdr ALLOC LOAD READONLY DATA HAS_CONTENTS
       [16]     0x004008c8->0x00400ab8 at 0x000008c8: .eh_frame ALLOC LOAD READONLY DATA HAS_CONTENTS
       [17]     0x00600e00->0x00600e08 at 0x00000e00: .init_array ALLOC LOAD DATA HAS_CONTENTS
       [18]     0x00600e08->0x00600e10 at 0x00000e08: .fini_array ALLOC LOAD DATA HAS_CONTENTS
       [19]     0x00600e10->0x00600ff0 at 0x00000e10: .dynamic ALLOC LOAD DATA HAS_CONTENTS
       [20]     0x00600ff0->0x00601000 at 0x00000ff0: .got ALLOC LOAD DATA HAS_CONTENTS
       [21]     0x00601000->0x00601038 at 0x00001000: .got.plt ALLOC LOAD DATA HAS_CONTENTS
       [22]     0x00601038->0x0060103c at 0x00001038: .data ALLOC LOAD DATA HAS_CONTENTS
       [23]     0x00601040->0x006012c8 at 0x0000103c: .bss ALLOC
       [24]     0x00000000->0x0000002c at 0x0000103c: .comment READONLY HAS_CONTENTS
       [25]     0x00000000->0x00000060 at 0x00001068: .debug_aranges READONLY HAS_CONTENTS
       [26]     0x00000000->0x0000061b at 0x000010c8: .debug_info READONLY HAS_CONTENTS
       [27]     0x00000000->0x00000264 at 0x000016e3: .debug_abbrev READONLY HAS_CONTENTS
       [28]     0x00000000->0x000001e6 at 0x00001947: .debug_line READONLY HAS_CONTENTS
       [29]     0x00000000->0x00000487 at 0x00001b2d: .debug_str READONLY HAS_CONTENTS
      (gdb)
    
    This is basically as it was before, except that the index numbers are
    now padded so the section information all lines up.
    
    When GDB has relocated a section then the relocated addresses will be
    printed, otherwise the non-relocated addresses from the bfd will be
    printed.
    
    I've added a test to gdb.base/maint.exp to do some basic validation of
    the output format.
    
    gdb/ChangeLog:
    
            * maint.c: Add 'cmath' include.
            (struct maint_print_section_data): New structure.
            (print_section_index): New function.
            (print_bfd_section_info): Add header comment, small whitespace
            cleanup, and update to call new print_section_index function.
            (print_objfile_section_info): Likewise.
            (maint_obj_section_from_bfd_section): New function.
            (print_bfd_section_info_maybe_relocated): New function.
            (maintenance_info_sections): Add header comment, always use
            bfd_map_over_sections instead of ALL_OBJFILE_OSECTIONS.
    
    gdb/testsuite/ChangeLog:
    
            * gdb.base/maint.exp: Add test for 'maint info sections'.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9540c4f120..4158161393 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-12  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* maint.c: Add 'cmath' include.
+	(struct maint_print_section_data): New structure.
+	(print_section_index): New function.
+	(print_bfd_section_info): Add header comment, small whitespace
+	cleanup, and update to call new print_section_index function.
+	(print_objfile_section_info): Likewise.
+	(maint_obj_section_from_bfd_section): New function.
+	(print_bfd_section_info_maybe_relocated): New function.
+	(maintenance_info_sections): Add header comment, always use
+	bfd_map_over_sections instead of ALL_OBJFILE_OSECTIONS.
+
 2019-09-12  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* psymtab.c (find_pc_sect_psymtab): Move baseaddr local into more
diff --git a/gdb/maint.c b/gdb/maint.c
index 837ed23cfb..286ec31013 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -23,6 +23,7 @@
 #include "defs.h"
 #include "arch-utils.h"
 #include <ctype.h>
+#include <cmath>
 #include <signal.h>
 #include "command.h"
 #include "gdbcmd.h"
@@ -276,14 +277,68 @@ maint_print_section_info (const char *name, flagword flags,
   printf_filtered ("\n");
 }
 
+/* Information passed between the "maintenance info sections" command, and
+   the worker function that prints each section.  */
+struct maint_print_section_data
+{
+  /* The GDB objfile we're printing this section for.  */
+  struct objfile *objfile;
+
+  /* The argument string passed by the user to the top level maintenance
+     info sections command.  Used for filtering which sections are
+     printed.  */
+  const char *arg;
+
+  /* The number of digits in the highest section index for all sections
+     from the bfd object associated with OBJFILE.  Used when pretty
+     printing the index number to ensure all of the indexes line up.  */
+  int index_digits;
+
+  /* Constructor.  */
+  maint_print_section_data (struct objfile *objfile, const char *arg,
+			    bfd *abfd)
+    : objfile (objfile),
+      arg(arg)
+  {
+    int section_count = gdb_bfd_count_sections (abfd);
+    index_digits = ((int) log10 (section_count)) + 1;
+  }
+
+private:
+  maint_print_section_data () = delete;
+  maint_print_section_data (const maint_print_section_data &) = delete;
+};
+
+/* Helper function to pretty-print the section index of ASECT from ABFD.
+   The INDEX_DIGITS is the number of digits in the largest index that will
+   be printed, and is used to pretty-print the resulting string.  */
+
+static void
+print_section_index (bfd *abfd,
+		     asection *asect,
+		     int index_digits)
+{
+  std::string result
+    = string_printf (" [%d] ", gdb_bfd_section_index (abfd, asect));
+  /* The '+ 4' for the leading and trailing characters.  */
+  printf_filtered ("%-*s", (index_digits + 4), result.c_str ());
+}
+
+/* Print information about ASECT from ABFD.  DATUM holds a pointer to a
+   maint_print_section_data object.  The section will be printed using the
+   VMA's from the bfd, which will not be the relocated addresses for bfds
+   that should be relocated.  The information must be printed with the
+   same layout as PRINT_OBJFILE_SECTION_INFO below.  */
+
 static void
-print_bfd_section_info (bfd *abfd, 
-			asection *asect, 
+print_bfd_section_info (bfd *abfd,
+			asection *asect,
 			void *datum)
 {
   flagword flags = bfd_get_section_flags (abfd, asect);
   const char *name = bfd_section_name (abfd, asect);
-  const char *arg = (const char *) datum;
+  maint_print_section_data *print_data = (maint_print_section_data *) datum;
+  const char *arg = print_data->arg;
 
   if (arg == NULL || *arg == '\0'
       || match_substring (arg, name)
@@ -295,19 +350,25 @@ print_bfd_section_info (bfd *abfd,
 
       addr = bfd_section_vma (abfd, asect);
       endaddr = addr + bfd_section_size (abfd, asect);
-      printf_filtered (" [%d] ", gdb_bfd_section_index (abfd, asect));
+      print_section_index (abfd, asect, print_data->index_digits);
       maint_print_section_info (name, flags, addr, endaddr,
 				asect->filepos, addr_size);
     }
 }
 
+/* Print information about ASECT which is GDB's wrapper around a section
+   from ABFD.  The information must be printed with the same layout as
+   PRINT_BFD_SECTION_INFO above.  PRINT_DATA holds information used to
+   filter which sections are printed, and for formatting the output.  */
+
 static void
-print_objfile_section_info (bfd *abfd, 
-			    struct obj_section *asect, 
-			    const char *string)
+print_objfile_section_info (bfd *abfd,
+			    struct obj_section *asect,
+			    maint_print_section_data *print_data)
 {
   flagword flags = bfd_get_section_flags (abfd, asect->the_bfd_section);
   const char *name = bfd_section_name (abfd, asect->the_bfd_section);
+  const char *string = print_data->arg;
 
   if (string == NULL || *string == '\0'
       || match_substring (string, name)
@@ -316,6 +377,8 @@ print_objfile_section_info (bfd *abfd,
       struct gdbarch *gdbarch = gdbarch_from_bfd (abfd);
       int addr_size = gdbarch_addr_bit (gdbarch) / 8;
 
+      print_section_index (abfd, asect->the_bfd_section,
+			   print_data->index_digits);
       maint_print_section_info (name, flags,
 				obj_section_addr (asect),
 				obj_section_endaddr (asect),
@@ -324,12 +387,56 @@ print_objfile_section_info (bfd *abfd,
     }
 }
 
+/* Find an obj_section, GDB's wrapper around a bfd section for ASECTION
+   from ABFD.  It might be that no such wrapper exists (for example debug
+   sections don't have such wrappers) in which case nullptr is returned.  */
+
+static obj_section *
+maint_obj_section_from_bfd_section (bfd *abfd,
+				    asection *asection,
+				    objfile *ofile)
+{
+  if (ofile->sections == nullptr)
+    return nullptr;
+
+  obj_section *osect
+    = &ofile->sections[gdb_bfd_section_index (abfd, asection)];
+
+  if (osect >= ofile->sections_end)
+    return nullptr;
+
+  return osect;
+}
+
+/* Print information about ASECT from ABFD.  DATUM holds a pointer to a
+   maint_print_section_data object.  Where possible the information for
+   ASECT will print the relocated addresses of the section.  */
+
+static void
+print_bfd_section_info_maybe_relocated (bfd *abfd,
+					asection *asect,
+					void *datum)
+{
+  maint_print_section_data *print_data = (maint_print_section_data *) datum;
+  objfile *objfile = print_data->objfile;
+
+  gdb_assert (objfile->sections != NULL);
+  obj_section *osect
+    = maint_obj_section_from_bfd_section (abfd, asect, objfile);
+
+  if (osect->the_bfd_section == NULL)
+    print_bfd_section_info (abfd, asect, datum);
+  else
+    print_objfile_section_info (abfd, osect, print_data);
+}
+
+/* Implement the "maintenance info sections" command.  */
+
 static void
 maintenance_info_sections (const char *arg, int from_tty)
 {
   if (exec_bfd)
     {
-      struct obj_section *osect;
       bool allobj = false;
 
       printf_filtered (_("Exec file:\n"));
@@ -352,22 +459,27 @@ maintenance_info_sections (const char *arg, int from_tty)
 	  if (allobj)
 	    printf_filtered (_("  Object file: %s\n"),
 			     bfd_get_filename (ofile->obfd));
-	  ALL_OBJFILE_OSECTIONS (ofile, osect)
-	    {
-	      if (!allobj && ofile->obfd != exec_bfd)
-		continue;
-	      print_objfile_section_info (ofile->obfd, osect, arg);
-	    }
+	  else if (ofile->obfd != exec_bfd)
+	    continue;
+
+	  maint_print_section_data print_data (ofile, arg, ofile->obfd);
+
+	  bfd_map_over_sections (ofile->obfd,
+				 print_bfd_section_info_maybe_relocated,
+				 (void *) &print_data);
 	}
     }
 
   if (core_bfd)
     {
+      maint_print_section_data print_data (nullptr, arg, core_bfd);
+
       printf_filtered (_("Core file:\n"));
       printf_filtered ("    `%s', ", bfd_get_filename (core_bfd));
       wrap_here ("        ");
       printf_filtered (_("file type %s.\n"), bfd_get_target (core_bfd));
-      bfd_map_over_sections (core_bfd, print_bfd_section_info, (void *) arg);
+      bfd_map_over_sections (core_bfd, print_bfd_section_info,
+			     (void *) &print_data);
     }
 }
 
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 7352e9f034..27980548cb 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-12  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.base/maint.exp: Add test for 'maint info sections'.
+
 2019-09-12  Tom de Vries  <tdevries@suse.de>
 
 	* gdb.base/store.exp: Allow register variables to be optimized out at
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index 36738f6eaa..a5d5dacaba 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -109,6 +109,23 @@ if ![runto_main] then {
         perror "tests suppressed"
 }
 
+# Check that 'maint info sections' output looks correct.  When
+# checking the lines for each section we reject section names starting
+# with a '*' character, the internal *COM*, *UND*, *ABS*, and *IND*
+# sections should not be displayed in this output.
+set test "check maint info sections output"
+gdb_test_multiple "maint info sections" $test {
+    -re "Exec file:\r\n\[\t ]+`\[^'\]+', file type \[^.\]+\.\r\n" {
+	exp_continue
+    }
+    -re "^ \\\[\[0-9\]+\\\]\[\t \]+$hex->$hex at $hex: \[^*\r\]+\r\n" {
+	exp_continue
+    }
+    -re "^$gdb_prompt $" {
+	pass $test
+    }
+}
+
 # If we're using .gdb_index or .debug_names there will be no psymtabs.
 set have_gdb_index 0
 gdb_test_multiple "maint info sections .gdb_index .debug_names" "check for .gdb_index" {


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/testsuite: Make use of exec_has_index_section function
@ 2019-09-13  1:14 gdb-buildbot
  2019-09-13  4:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-13  1:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5fabdcd6801a4567db9c88ceb112ca222544b13f ***

commit 5fabdcd6801a4567db9c88ceb112ca222544b13f
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Sun Sep 1 00:21:40 2019 +0100
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Thu Sep 12 20:31:29 2019 -0400

    gdb/testsuite: Make use of exec_has_index_section function
    
    Make use of exec_has_index_section library function rather than
    manually checking in the 'maintenance info sections' output.  Should
    make no difference to the test results, just makes the code easier to
    read.
    
    gdb/testsuite/ChangeLog:
    
            * gdb.base/maint.exp: Use exec_has_index_section.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 27980548cb..395a257102 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-12  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.base/maint.exp: Use exec_has_index_section.
+
 2019-09-12  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* gdb.base/maint.exp: Add test for 'maint info sections'.
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index a5d5dacaba..15988c7938 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -127,18 +127,7 @@ gdb_test_multiple "maint info sections" $test {
 }
 
 # If we're using .gdb_index or .debug_names there will be no psymtabs.
-set have_gdb_index 0
-gdb_test_multiple "maint info sections .gdb_index .debug_names" "check for .gdb_index" {
-    -re ": \\.gdb_index .*\r\n$gdb_prompt $" {
-	set have_gdb_index 1
-    }
-    -re ": \\.debug_names .*\r\n$gdb_prompt $" {
-	set have_gdb_index 1
-    }
-    -re ".*$gdb_prompt $" {
-	;# Nothing to do, present to avoid a FAIL.
-    }
-}
+set have_gdb_index [ exec_has_index_section ${binfile} ]
 
 # There also won't be any psymtabs if we read the index from the index cache.
 # We can detect this by looking if the index-cache is enabled and if the number


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Force use of float version of log10
@ 2019-09-13  2:09 gdb-buildbot
  2019-09-13  5:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-13  2:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ec6c8338a89b0ec022b66ed3efdd1577e6449d6d ***

commit ec6c8338a89b0ec022b66ed3efdd1577e6449d6d
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Thu Sep 12 21:23:37 2019 -0400
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Thu Sep 12 21:23:37 2019 -0400

    gdb: Force use of float version of log10
    
    This commit:
    
      commit aa17805fb9a3a1983a510ba425b682fba03410c2
      Date:   Sat Aug 31 23:44:40 2019 +0100
    
          gdb: Have 'maint info sections' print all sections again
    
    introduced a use of log10 that took an int as a parameter.
    Unfortunately this was causing a compilation error on Solaris, see:
    
      https://sourceware.org/ml/gdb-patches/2019-09/msg00230.html
      https://sourceware.org/ml/gdb-patches/2019-09/msg00231.html
    
    because there was only a float, double, or long double version of
    log10, and the compiler doesn't know which to choose.
    
    This commit should resolve this issue by casting the argument to
    float.
    
    gdb/ChangeLog:
    
            * maint.c (maint_print_section_data::maint_print_section_data):
            Force use of 'float log10 (float)' by casting the argument to
            float.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4158161393..147882447e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-12  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* maint.c (maint_print_section_data::maint_print_section_data):
+	Force use of 'float log10 (float)' by casting the argument to
+	float.
+
 2019-09-12  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* maint.c: Add 'cmath' include.
diff --git a/gdb/maint.c b/gdb/maint.c
index 286ec31013..1a621a1719 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -301,7 +301,7 @@ struct maint_print_section_data
       arg(arg)
   {
     int section_count = gdb_bfd_count_sections (abfd);
-    index_digits = ((int) log10 (section_count)) + 1;
+    index_digits = ((int) log10 ((float) section_count)) + 1;
   }
 
 private:


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Add a NEWS entry that gdb can be compiled with py3 on Windows.
@ 2019-09-15  3:16 gdb-buildbot
  2019-09-16 10:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-15  3:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6a062a93d70e08ddc23c0a940a8c20eea48e6904 ***

commit 6a062a93d70e08ddc23c0a940a8c20eea48e6904
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Sat Sep 14 16:28:51 2019 -0400
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Sat Sep 14 22:36:47 2019 -0400

    Add a NEWS entry that gdb can be compiled with py3 on Windows.
    
    This was fixed in commit 272044897e178835f596c96740c5a1800ec6f9fb.
    
    2019-09-14  Christian Biesinger  <cbiesinger@google.com>
    
            * NEWS: Mention that gdb can now be compiled with Python 3
            on Windows.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 147882447e..fc2260d53d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-14  Christian Biesinger  <cbiesinger@google.com>
+
+	* NEWS: Mention that gdb can now be compiled with Python 3
+	on Windows.
+
 2019-09-12  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* maint.c (maint_print_section_data::maint_print_section_data):
diff --git a/gdb/NEWS b/gdb/NEWS
index d502f08984..947b743533 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -32,6 +32,8 @@
 * GDB now shows the Ada task names at more places, e.g. in task switching
   messages.
 
+* GDB can now be compiled with Python 3 on Windows.
+
 * Python API
 
   ** The gdb.Value type has a new method 'format_string' which returns a


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Update version to 2.33.50 and regenerate configure scripts.
@ 2019-09-16 10:47 gdb-buildbot
  2019-09-16 11:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-16 10:47 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT bb6959602bd7ff19081b4a1cb2e54b0e562faa0f ***

commit bb6959602bd7ff19081b4a1cb2e54b0e562faa0f
Author:     Phil Blundell <philb@brightsign.biz>
AuthorDate: Mon Sep 16 11:01:00 2019 +0100
Commit:     Phil Blundell <philb@brightsign.biz>
CommitDate: Mon Sep 16 11:03:53 2019 +0100

    Update version to 2.33.50 and regenerate configure scripts.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ea0f06041b..76939880c7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-16  Phil Blundell  <pb@pbcl.net>
+
+	* version.m4: Set version to 2.33.50.
+	* Makefile.in, configure, doc/Makefile.in: Regenerated.
+
 2019-09-11  Tom Tromey  <tom@tromey.com>
 
 	* opncls.c (bfd_set_filename): New function.
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 9c14721fd8..5578997e5d 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -438,6 +438,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/bfd/configure b/bfd/configure
index b1a727a54a..10f187a692 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for bfd 2.32.51.
+# Generated by GNU Autoconf 2.69 for bfd 2.33.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='bfd'
 PACKAGE_TARNAME='bfd'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='bfd 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='bfd 2.33.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -793,6 +793,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -889,6 +890,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1141,6 +1143,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1278,7 +1289,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+		libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1391,7 +1402,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures bfd 2.32.51 to adapt to many kinds of systems.
+\`configure' configures bfd 2.33.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1431,6 +1442,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1462,7 +1474,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of bfd 2.32.51:";;
+     short | recursive ) echo "Configuration of bfd 2.33.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1589,7 +1601,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-bfd configure 2.32.51
+bfd configure 2.33.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2237,7 +2249,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by bfd $as_me 2.32.51, which was
+It was created by bfd $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4187,7 +4199,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='bfd'
- VERSION='2.32.51'
+ VERSION='2.33.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -11728,7 +11740,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11731 "configure"
+#line 11743 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11834,7 +11846,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11837 "configure"
+#line 11849 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12223,7 +12235,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12269,7 +12281,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12293,7 +12305,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12338,7 +12350,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12362,7 +12374,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -16356,6 +16368,8 @@ main ()
     if (*(data + i) != *(data3 + i))
       return 14;
   close (fd);
+  free (data);
+  free (data3);
   return 0;
 }
 _ACEOF
@@ -16954,7 +16968,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by bfd $as_me 2.32.51, which was
+This file was extended by bfd $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17020,7 +17034,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-bfd config.status 2.32.51
+bfd config.status 2.33.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/bfd/doc/Makefile.in b/bfd/doc/Makefile.in
index 0115dfc406..d75411d2af 100644
--- a/bfd/doc/Makefile.in
+++ b/bfd/doc/Makefile.in
@@ -375,6 +375,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/bfd/version.m4 b/bfd/version.m4
index da8d0adff0..b2a5dfb74d 100644
--- a/bfd/version.m4
+++ b/bfd/version.m4
@@ -1 +1 @@
-m4_define([BFD_VERSION], [2.32.51])
+m4_define([BFD_VERSION], [2.33.50])
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 8b78873a99..a29de52599 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-16  Phil Blundell  <pb@pbcl.net>
+
+	* Makefile.in, configure. doc/Makefile.in: Regenerated.
+
 2019-09-11  Tom Tromey  <tom@tromey.com>
 
 	* objcopy.c (copy_archive): Update.
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index 16c078fdd3..d1828e5fc2 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -541,6 +541,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/binutils/configure b/binutils/configure
index 17cca12070..f8fe55c2a8 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for binutils 2.32.51.
+# Generated by GNU Autoconf 2.69 for binutils 2.33.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='binutils'
 PACKAGE_TARNAME='binutils'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='binutils 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='binutils 2.33.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -778,6 +778,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -870,6 +871,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1122,6 +1124,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1259,7 +1270,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+		libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1372,7 +1383,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures binutils 2.32.51 to adapt to many kinds of systems.
+\`configure' configures binutils 2.33.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1412,6 +1423,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1443,7 +1455,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of binutils 2.32.51:";;
+     short | recursive ) echo "Configuration of binutils 2.33.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1570,7 +1582,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-binutils configure 2.32.51
+binutils configure 2.33.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2218,7 +2230,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by binutils $as_me 2.32.51, which was
+It was created by binutils $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4168,7 +4180,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='binutils'
- VERSION='2.32.51'
+ VERSION='2.33.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -11523,7 +11535,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11526 "configure"
+#line 11538 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11629,7 +11641,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11632 "configure"
+#line 11644 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12016,7 +12028,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12062,7 +12074,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12086,7 +12098,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12131,7 +12143,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12155,7 +12167,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -13722,6 +13734,8 @@ main ()
     if (*(data + i) != *(data3 + i))
       return 14;
   close (fd);
+  free (data);
+  free (data3);
   return 0;
 }
 _ACEOF
@@ -15713,7 +15727,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by binutils $as_me 2.32.51, which was
+This file was extended by binutils $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15779,7 +15793,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-binutils config.status 2.32.51
+binutils config.status 2.33.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/binutils/doc/Makefile.in b/binutils/doc/Makefile.in
index a0777d8fcc..c66caa832e 100644
--- a/binutils/doc/Makefile.in
+++ b/binutils/doc/Makefile.in
@@ -374,6 +374,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 444bd16987..85c80f5772 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-16  Phil Blundell  <pb@pbcl.net>
+
+	* Makefile.in, configure, doc/Makefile.in: Regenerated.
+
 2019-09-10  Nick Clifton  <nickc@redhat.com>
 
 	PR 24907
diff --git a/gas/Makefile.in b/gas/Makefile.in
index 21545d25b7..595295e555 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -402,6 +402,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/gas/configure b/gas/configure
index 0a52e4a9f6..5cfd52f712 100755
--- a/gas/configure
+++ b/gas/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gas 2.32.51.
+# Generated by GNU Autoconf 2.69 for gas 2.33.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gas'
 PACKAGE_TARNAME='gas'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='gas 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='gas 2.33.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -770,6 +770,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -867,6 +868,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1119,6 +1121,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1256,7 +1267,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+		libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1369,7 +1380,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gas 2.32.51 to adapt to many kinds of systems.
+\`configure' configures gas 2.33.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1409,6 +1420,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1440,7 +1452,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gas 2.32.51:";;
+     short | recursive ) echo "Configuration of gas 2.33.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1576,7 +1588,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gas configure 2.32.51
+gas configure 2.33.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2041,7 +2053,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gas $as_me 2.32.51, which was
+It was created by gas $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3988,7 +4000,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gas'
- VERSION='2.32.51'
+ VERSION='2.33.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -11343,7 +11355,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11346 "configure"
+#line 11358 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11449,7 +11461,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11452 "configure"
+#line 11464 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11836,7 +11848,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11882,7 +11894,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11906,7 +11918,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11951,7 +11963,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11975,7 +11987,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -15705,7 +15717,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gas $as_me 2.32.51, which was
+This file was extended by gas $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15771,7 +15783,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gas config.status 2.32.51
+gas config.status 2.33.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in
index 7c4189a8c6..854ee9daef 100644
--- a/gas/doc/Makefile.in
+++ b/gas/doc/Makefile.in
@@ -364,6 +364,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
index d0aa7f8f1f..737b2cd3b5 100644
--- a/gprof/ChangeLog
+++ b/gprof/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-16  Phil Blundell  <pb@pbcl.net>
+
+	* Makefile.in, configure: Regenerated.
+
 2019-09-09  Phil Blundell  <pb@pbcl.net>
 
 	binutils 2.33 branch created.
diff --git a/gprof/Makefile.in b/gprof/Makefile.in
index 451fe9585d..d5e883d4de 100644
--- a/gprof/Makefile.in
+++ b/gprof/Makefile.in
@@ -424,6 +424,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/gprof/configure b/gprof/configure
index 2a92a28222..3c414ce75b 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gprof 2.32.51.
+# Generated by GNU Autoconf 2.69 for gprof 2.33.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gprof'
 PACKAGE_TARNAME='gprof'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='gprof 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='gprof 2.33.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -751,6 +751,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -835,6 +836,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1087,6 +1089,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1224,7 +1235,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+		libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1337,7 +1348,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gprof 2.32.51 to adapt to many kinds of systems.
+\`configure' configures gprof 2.33.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1377,6 +1388,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1408,7 +1420,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gprof 2.32.51:";;
+     short | recursive ) echo "Configuration of gprof 2.33.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1519,7 +1531,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gprof configure 2.32.51
+gprof configure 2.33.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1884,7 +1896,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gprof $as_me 2.32.51, which was
+It was created by gprof $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3831,7 +3843,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gprof'
- VERSION='2.32.51'
+ VERSION='2.33.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -11190,7 +11202,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11193 "configure"
+#line 11205 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11296,7 +11308,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11299 "configure"
+#line 11311 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11683,7 +11695,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11729,7 +11741,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11753,7 +11765,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11798,7 +11810,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11822,7 +11834,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -13086,7 +13098,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gprof $as_me 2.32.51, which was
+This file was extended by gprof $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13152,7 +13164,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gprof config.status 2.32.51
+gprof config.status 2.33.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b2d4151716..c311679bef 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-16  Phil Blundell  <pb@pbcl.net>
+
+	* Makefile.in, configure: Regenerated.
+
 2019-09-13  Alan Modra  <amodra@gmail.com>
 
 	* ldlang.c (new_afile): Remove add_to_list parameter.
diff --git a/ld/Makefile.in b/ld/Makefile.in
index d509f62bd2..057956139d 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -521,6 +521,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/ld/configure b/ld/configure
index 8edef4548e..62bb4e45e9 100755
--- a/ld/configure
+++ b/ld/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ld 2.32.51.
+# Generated by GNU Autoconf 2.69 for ld 2.33.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='ld'
 PACKAGE_TARNAME='ld'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='ld 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='ld 2.33.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -786,6 +786,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -888,6 +889,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1140,6 +1142,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1277,7 +1288,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+		libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1390,7 +1401,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ld 2.32.51 to adapt to many kinds of systems.
+\`configure' configures ld 2.33.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1430,6 +1441,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1461,7 +1473,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ld 2.32.51:";;
+     short | recursive ) echo "Configuration of ld 2.33.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1596,7 +1608,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ld configure 2.32.51
+ld configure 2.33.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2311,7 +2323,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ld $as_me 2.32.51, which was
+It was created by ld $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4262,7 +4274,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='ld'
- VERSION='2.32.51'
+ VERSION='2.33.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12027,7 +12039,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12030 "configure"
+#line 12042 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12133,7 +12145,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12136 "configure"
+#line 12148 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -15536,7 +15548,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -15582,7 +15594,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -15606,7 +15618,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -15651,7 +15663,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -15675,7 +15687,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -17188,6 +17200,8 @@ main ()
     if (*(data + i) != *(data3 + i))
       return 14;
   close (fd);
+  free (data);
+  free (data3);
   return 0;
 }
 _ACEOF
@@ -18226,7 +18240,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ld $as_me 2.32.51, which was
+This file was extended by ld $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18292,7 +18306,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ld config.status 2.32.51
+ld config.status 2.33.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 392fcacfb6..50f1be8533 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-16  Phil Blundell  <pb@pbcl.net>
+
+	* configure: Regenerated.
+
 2019-09-10  Miod Vallat  <miod@online.fr>
 
 	PR 24982
diff --git a/opcodes/configure b/opcodes/configure
index 3b99d9786b..8062312c28 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for opcodes 2.32.51.
+# Generated by GNU Autoconf 2.69 for opcodes 2.33.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='opcodes'
 PACKAGE_TARNAME='opcodes'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='opcodes 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='opcodes 2.33.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1367,7 +1367,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures opcodes 2.32.51 to adapt to many kinds of systems.
+\`configure' configures opcodes 2.33.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1439,7 +1439,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of opcodes 2.32.51:";;
+     short | recursive ) echo "Configuration of opcodes 2.33.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1551,7 +1551,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-opcodes configure 2.32.51
+opcodes configure 2.33.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1962,7 +1962,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by opcodes $as_me 2.32.51, which was
+It was created by opcodes $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3909,7 +3909,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='opcodes'
- VERSION='2.32.51'
+ VERSION='2.33.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13546,7 +13546,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by opcodes $as_me 2.32.51, which was
+This file was extended by opcodes $as_me 2.33.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13612,7 +13612,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-opcodes config.status 2.32.51
+opcodes config.status 2.33.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't duplicate comment in symfile.c and .h
@ 2019-09-17  3:49 gdb-buildbot
  2019-09-17 12:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-17  3:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f2f24aa9c438e540fd751690f52dbcbf5e5b8aa6 ***

commit f2f24aa9c438e540fd751690f52dbcbf5e5b8aa6
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Mon Sep 16 22:07:16 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Mon Sep 16 22:10:36 2019 -0500

    Don't duplicate comment in symfile.c and .h
    
    This just replaces the comment in the .c file with
    "See symfile.h.".
    
    gdb/ChangeLog:
    
    2019-09-16  Christian Biesinger  <cbiesinger@google.com>
    
            * symfile.c (auto_solib_add): Replace comment with a reference
            to the header file.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index fc2260d53d..59c6f754ef 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-16  Christian Biesinger  <cbiesinger@google.com>
+
+	* symfile.c (auto_solib_add): Replace comment with a reference
+	to the header file.
+
 2019-09-14  Christian Biesinger  <cbiesinger@google.com>
 
 	* NEWS: Mention that gdb can now be compiled with Python 3
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 3cd514409b..259a30aa04 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -141,15 +141,7 @@ static const char *print_symbol_loading_enums[] =
 };
 static const char *print_symbol_loading = print_symbol_loading_full;
 
-/* If non-zero, shared library symbols will be added automatically
-   when the inferior is created, new libraries are loaded, or when
-   attaching to the inferior.  This is almost always what users will
-   want to have happen; but for very large programs, the startup time
-   will be excessive, and so if this is a problem, the user can clear
-   this flag and then add the shared library symbols as needed.  Note
-   that there is a potential for confusion, since if the shared
-   library symbols are not loaded, commands like "info fun" will *not*
-   report all the functions that are actually present.  */
+/* See symfile.h.  */
 
 int auto_solib_add = 1;
 \f


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] (Ada) do not print Ada task names in quotes in "info tasks" output
@ 2019-09-17 19:09 gdb-buildbot
  2019-09-17 20:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-17 19:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 743321899674e03cf572fcfeb6c7705aded7c9a5 ***

commit 743321899674e03cf572fcfeb6c7705aded7c9a5
Author:     Joel Brobecker <brobecker@adacore.com>
AuthorDate: Tue Sep 17 13:27:55 2019 -0500
Commit:     Joel Brobecker <brobecker@adacore.com>
CommitDate: Tue Sep 17 14:27:55 2019 -0400

    (Ada) do not print Ada task names in quotes in "info tasks" output
    
    A recent change enhanced a couple of notifications about Ada tasks to
    include the task's name in addition to the task's number. That change
    also modified the output of the "info tasks" when printing the detailed
    information of one given task. I believe this change was unintentionally
    left over from the initial version after it was decided that quoting
    the task's name should not be done. This patch therefore undoes this
    part of the patch.
    
    gdb/ChangeLog:
    
            * ada-tasks.c (info_task): Remove quoting of the task's name.
    
    Tested on x86_64-linux, with both the official testsuite as well as
    AdaCore's testsuite.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 59c6f754ef..c564fcecc0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-17  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-tasks.c (info_task): Remove quoting of the task's name.
+
 2019-09-16  Christian Biesinger  <cbiesinger@google.com>
 
 	* symfile.c (auto_solib_add): Replace comment with a reference
diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c
index 34da786eb7..24ceab1fca 100644
--- a/gdb/ada-tasks.c
+++ b/gdb/ada-tasks.c
@@ -1199,7 +1199,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
 
   /* Print the name of the task.  */
   if (task_info->name[0] != '\0')
-    printf_filtered (_("Name: \"%s\"\n"), task_info->name);
+    printf_filtered (_("Name: %s\n"), task_info->name);
   else
     printf_filtered (_("<no name>\n"));
 
@@ -1220,7 +1220,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
 
       printf_filtered (_("Parent: %d"), parent_taskno);
       if (parent->name[0] != '\0')
-        printf_filtered (" (\"%s\")", parent->name);
+        printf_filtered (" (%s)", parent->name);
       printf_filtered ("\n");
     }
   else
@@ -1253,7 +1253,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
         ada_task_info *target_task_info = &data->task_list[target_taskno - 1];
 
         if (target_task_info->name[0] != '\0')
-          printf_filtered (" (\"%s\")", target_task_info->name);
+          printf_filtered (" (%s)", target_task_info->name);
       }
 
     printf_filtered ("\n");


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Catch exceptions when accessing source cache
@ 2019-09-17 20:17 gdb-buildbot
  2019-09-17 21:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-17 20:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 67f3ed6afef86d08ef9989cc251eac585e9ef9cf ***

commit 67f3ed6afef86d08ef9989cc251eac585e9ef9cf
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Sun Sep 8 00:05:22 2019 +0100
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Tue Sep 17 15:53:32 2019 -0400

    gdb: Catch exceptions when accessing source cache
    
    The source_cache::get_line_charpos function can currently throw an
    exception if the source file is missing, which doesn't match the
    expected behaviour documented in the functions header file.  The
    documented behaviour is to return false on failure, and this is how
    the function appears to be used throughout GDB.
    
    I spotted this in the 'info source' command, currently for a missing
    source file you'll see something like this:
    
      (gdb) info source
      Current source file is /path/to/src/file.c
      Compilation directory is /path/to/build/
      /path/to/src/file.c: No such file or directory.
      (gdb)
    
    After this patch we see this:
    
      (gdb) info source
      Current source file is /path/to/src/file.c
      Compilation directory is /path/to/build/
      Source language is c.
      Producer is COMPILER VERSION AND FLAGS.
      Compiled with DWARF 2 debugging format.
      Does not include preprocessor macro info.
    
    We don't currently indicate that the source file can't be found, and
    maybe that would be something worth adding in the future.
    
    gdb/ChangeLog:
    
            * source-cache.c (source_cache::get_line_charpos): Catch
            exceptions and return false, this matches the behaviour documented
            in the header file.
    
    gdb/testsuite/ChangeLog:
    
            * gdb.base/list-missing-source.exp: New file.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c564fcecc0..c9be686c26 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-17  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* source-cache.c (source_cache::get_line_charpos): Catch
+	exceptions and return false, this matches the behaviour documented
+	in the header file.
+
 2019-09-17  Joel Brobecker  <brobecker@adacore.com>
 
 	* ada-tasks.c (info_task): Remove quoting of the task's name.
diff --git a/gdb/source-cache.c b/gdb/source-cache.c
index 18e2be989b..7a52ce9458 100644
--- a/gdb/source-cache.c
+++ b/gdb/source-cache.c
@@ -231,19 +231,26 @@ bool
 source_cache::get_line_charpos (struct symtab *s,
 				const std::vector<off_t> **offsets)
 {
-  std::string fullname = symtab_to_fullname (s);
+  try
+    {
+      std::string fullname = symtab_to_fullname (s);
+
+      auto iter = m_offset_cache.find (fullname);
+      if (iter == m_offset_cache.end ())
+	{
+	  ensure (s);
+	  iter = m_offset_cache.find (fullname);
+	  /* cache_source_text ensured this was entered.  */
+	  gdb_assert (iter != m_offset_cache.end ());
+	}
 
-  auto iter = m_offset_cache.find (fullname);
-  if (iter == m_offset_cache.end ())
+      *offsets = &iter->second;
+      return true;
+    }
+  catch (const gdb_exception_error &e)
     {
-      ensure (s);
-      iter = m_offset_cache.find (fullname);
-      /* cache_source_text ensured this was entered.  */
-      gdb_assert (iter != m_offset_cache.end ());
+      return false;
     }
-
-  *offsets = &iter->second;
-  return true;
 }
 
 /* A helper function that extracts the desired source lines from TEXT,
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d04cff15b8..b9060ef5d0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-17  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.base/list-missing-source.exp: New file.
+
 2019-09-14  Tom de Vries  <tdevries@suse.de>
 
 	PR teststuite/24599
diff --git a/gdb/testsuite/gdb.base/list-missing-source.exp b/gdb/testsuite/gdb.base/list-missing-source.exp
new file mode 100644
index 0000000000..703603e7cb
--- /dev/null
+++ b/gdb/testsuite/gdb.base/list-missing-source.exp
@@ -0,0 +1,63 @@
+# Copyright 2019 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# This test checks how GDB handles missing source files around the
+# 'list' and 'info source' commands.
+
+standard_testfile
+
+# Create a source file in the output directory.
+set srcfile [standard_output_file main.c]
+set fd [open "$srcfile" w]
+puts $fd {
+int
+main ()
+{
+  return 0;
+}
+}
+close $fd
+
+# Compile the source file.
+set options "debug"
+if  { [gdb_compile "${srcfile}" "${binfile}" \
+	   executable $options] != "" } {
+    untested "failed to compile"
+    return -1
+}
+
+# Now delete the source file.
+file delete $srcfile
+
+# Now start GDB, run to main and try to list the source.
+clean_restart ${binfile}
+
+if ![runto_main] then {
+    fail "can't run to main"
+    return 0
+}
+
+gdb_test "list" "1\[ \t\]+in\[ \t\]+$srcfile"
+
+gdb_test "info source" \
+    [multi_line \
+	 "info source" \
+	 "Current source file is $srcfile" \
+	 "Compilation directory is \[^\n\r\]+" \
+	 "Source language is c." \
+	 "Producer is \[^\n\r\]+" \
+	 "Compiled with DWARF $decimal debugging format." \
+	 "Does not include preprocessor macro info." ]
+


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Look for compilation directory relative to directory search path
@ 2019-09-17 21:49 gdb-buildbot
  2019-09-17 23:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-17 21:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f1b620e9b4eea4bfd2f35a3039672fa8a5925bcb ***

commit f1b620e9b4eea4bfd2f35a3039672fa8a5925bcb
Author:     Mike Gulick <mgulick@mathworks.com>
AuthorDate: Thu Sep 12 11:16:06 2019 -0400
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Tue Sep 17 16:20:19 2019 -0400

    gdb: Look for compilation directory relative to directory search path
    
    The 'directory' command allows the user to provide a list of filesystem
    directories in which to search for source code.  The directories in this
    search path are used as the base directory for the source filename from
    the debug information (DW_AT_name).  Thus the directory search path
    provides alternatives to the existing compilation directory from the
    debug information (DW_AT_comp_dir).  Generally speaking, DW_AT_name
    stores the filename argument passed to the compiler (including any
    directory components), and DW_AT_comp_dir stores the current working
    directory from which the compiler was executed.  For example:
    
        $ cd /path/to/project/subdir1
        $ gcc -c a/test.c -g
    
    The corresponding debug information will look like this:
    
        DW_AT_name      : a/test.c
        DW_AT_comp_dir  : /path/to/project/subdir1
    
    When compiling with the -fdebug-prefix-map GCC option, the compilation
    directory can be arbitrarily rewritten.  In the above example, we may
    rewrite the compilation directory as follows:
    
        $ gcc -c a/test.c -g -fdebug-prefix-map=/path/to/project=
    
    In this case, the corresponding debug information will look like:
    
        DW_AT_name      : a/test.c
        DW_AT_comp_dir  : /subdir1
    
    This prevents GDB from finding the corresponding source code based on
    the debug information alone.  In some cases, a substitute-path command
    can be used to re-map a consistent prefix in the rewritten compilation
    directory to the real filesystem path.  However, there may not be a
    consistent prefix remaining in the debug symbols (for example in a
    project that has source code in many subdirectories under the project's
    root), thereby requiring multiple substitute-path rules.  In this case,
    it is easier to add the missing prefix to the directory search path via
    the 'directory' command.
    
    The function find_and_open_source currently searches in:
    
        SEARCH_PATH/FILENAME
    
    where SEARCH_PATH corresponds to each individual entry in the directory
    search path (which is guaranteed to contain the compilation directory
    from the debug information, as well as the current working directory).
    FILENAME corresponds to the source filename (DW_AT_name), which may have
    directory components in it.  In addition, GDB searches in:
    
        SEARCH_PATH/FILE_BASENAME
    
    where FILE_BASENAME is the basename of the DW_AT_name entry.
    
    This change modifies find_and_open_source to additionally search in:
    
        SEARCH_PATH/COMP_DIR/FILENAME
    
    where COMP_DIR is the compilation directory from the debug symbols.  In
    the example given earlier, running:
    
        (gdb) directory /path/to/project
    
    will now allow GDB to correctly locate the source code from the debug
    information.
    
    gdb/ChangeLog:
    
            * source.c (prepare_path_for_appending): New function.
            (openp): Make use of new function.
            (find_and_open_source): Search for the compilation directory and
            source file as a relative path beneath the directory search path.
    
    gdb/doc/ChangeLog:
    
            * gdb.texinfo (Source Path): Additional text to better describe
            how the source path directory list is used when searching for
            source files.
    
    gdb/testsuite/ChangeLog:
    
            * gdb.base/source-dir.exp: Add extra test for mapped compilation
            directory.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c9be686c26..3bf43d2dfe 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-17  Mike Gulick  <mgulick@mathworks.com>
+
+	* source.c (prepare_path_for_appending): New function.
+	(openp): Make use of new function.
+	(find_and_open_source): Search for the compilation directory and
+	source file as a relative path beneath the directory search path.
+
 2019-09-17  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* source-cache.c (source_cache::get_line_charpos): Catch
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 4705fbc541..a16d32d48a 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-17  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.texinfo (Source Path): Additional text to better describe
+	how the source path directory list is used when searching for
+	source files.
+
 2019-09-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
 
 	* gdb.texinfo (Ada Tasks): Tell the task name is printed, update
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index eee0c9d4dd..f4bfd9f980 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -8954,11 +8954,21 @@ it tries all the directories in the list, in the order they are present
 in the list, until it finds a file with the desired name.
 
 For example, suppose an executable references the file
-@file{/usr/src/foo-1.0/lib/foo.c}, and our source path is
-@file{/mnt/cross}.  The file is first looked up literally; if this
-fails, @file{/mnt/cross/usr/src/foo-1.0/lib/foo.c} is tried; if this
-fails, @file{/mnt/cross/foo.c} is opened; if this fails, an error
-message is printed.  @value{GDBN} does not look up the parts of the
+@file{/usr/src/foo-1.0/lib/foo.c}, does not record a compilation
+directory, and the @dfn{source path} is @file{/mnt/cross}.
+@value{GDBN} would look for the source file in the following
+locations:
+
+@enumerate
+
+@item @file{/usr/src/foo-1.0/lib/foo.c}
+@item @file{/mnt/cross/usr/src/foo-1.0/lib/foo.c}
+@item @file{/mnt/cross/foo.c}
+
+@end enumerate
+
+If the source file is not present at any of the above locations then
+an error is printed.  @value{GDBN} does not look up the parts of the
 source file name, such as @file{/mnt/cross/src/foo-1.0/lib/foo.c}.
 Likewise, the subdirectories of the source path are not searched: if
 the source path is @file{/mnt/cross}, and the binary refers to
@@ -8966,11 +8976,91 @@ the source path is @file{/mnt/cross}, and the binary refers to
 @file{/mnt/cross/usr/src/foo-1.0/lib}.
 
 Plain file names, relative file names with leading directories, file
-names containing dots, etc.@: are all treated as described above; for
-instance, if the source path is @file{/mnt/cross}, and the source file
-is recorded as @file{../lib/foo.c}, @value{GDBN} would first try
-@file{../lib/foo.c}, then @file{/mnt/cross/../lib/foo.c}, and after
-that---@file{/mnt/cross/foo.c}.
+names containing dots, etc.@: are all treated as described above,
+except that non-absolute file names are not looked up literally.  If
+the @dfn{source path} is @file{/mnt/cross}, the source file is
+recorded as @file{../lib/foo.c}, and no compilation directory is
+recorded, then @value{GDBN} will search in the following locations:
+
+@enumerate
+
+@item @file{/mnt/cross/../lib/foo.c}
+@item @file{/mnt/cross/foo.c}
+
+@end enumerate
+
+@kindex cdir
+@kindex cwd
+@vindex $cdir@r{, convenience variable}
+@vindex $cwd@r{, convenience variable}
+@cindex compilation directory
+@cindex current directory
+@cindex working directory
+@cindex directory, current
+@cindex directory, compilation
+The @dfn{source path} will always include two special entries
+@samp{$cdir} and @samp{$cwd}, these refer to the compilation directory
+(if one is recorded) and the current working directory respectively.
+
+@samp{$cdir} causes @value{GDBN} to search within the compilation
+directory, if one is recorded in the debug information.  If no
+compilation directory is recorded in the debug information then
+@samp{$cdir} is ignored.
+
+@samp{$cwd} is not the same as @samp{.}---the former tracks the
+current working directory as it changes during your @value{GDBN}
+session, while the latter is immediately expanded to the current
+directory at the time you add an entry to the source path.
+
+If a compilation directory is recorded in the debug information, and
+@value{GDBN} has not found the source file after the first search
+using @dfn{source path}, then @value{GDBN} will combine the
+compilation directory and the filename, and then search for the source
+file again using the @dfn{source path}.
+
+For example, if the executable records the source file as
+@file{/usr/src/foo-1.0/lib/foo.c}, the compilation directory is
+recorded as @file{/project/build}, and the @dfn{source path} is
+@file{/mnt/cross:$cdir:$cwd} while the current working directory of
+the @value{GDBN} session is @file{/home/user}, then @value{GDBN} will
+search for the source file in the following loctions:
+
+@enumerate
+
+@item @file{/usr/src/foo-1.0/lib/foo.c}
+@item @file{/mnt/cross/usr/src/foo-1.0/lib/foo.c}
+@item @file{/project/build/usr/src/foo-1.0/lib/foo.c}
+@item @file{/home/user/usr/src/foo-1.0/lib/foo.c}
+@item @file{/mnt/cross/project/build/usr/src/foo-1.0/lib/foo.c}
+@item @file{/project/build/project/build/usr/src/foo-1.0/lib/foo.c}
+@item @file{/home/user/project/build/usr/src/foo-1.0/lib/foo.c}
+@item @file{/mnt/cross/foo.c}
+@item @file{/project/build/foo.c}
+@item @file{/home/user/foo.c}
+
+@end enumerate
+
+If the file name in the previous example had been recorded in the
+executable as a relative path rather than an absolute path, then the
+first look up would not have occurred, but all of the remaining steps
+would be similar.
+
+When searching for source files on MS-DOS and MS-Windows, where
+absolute paths start with a drive letter (e.g.
+@file{C:/project/foo.c}), @value{GDBN} will remove the drive letter
+from the file name before appending it to a search directory from
+@dfn{source path}; for instance if the executable references the
+source file @file{C:/project/foo.c} and @dfn{source path} is set to
+@file{D:/mnt/cross}, then @value{GDBN} will search in the following
+locations for the source file:
+
+@enumerate
+
+@item @file{C:/project/foo.c}
+@item @file{D:/mnt/cross/project/foo.c}
+@item @file{D:/mnt/cross/foo.c}
+
+@end enumerate
 
 Note that the executable search path is @emph{not} used to locate the
 source files.
@@ -8981,8 +9071,8 @@ each line is in the file.
 
 @kindex directory
 @kindex dir
-When you start @value{GDBN}, its source path includes only @samp{cdir}
-and @samp{cwd}, in that order.
+When you start @value{GDBN}, its source path includes only @samp{$cdir}
+and @samp{$cwd}, in that order.
 To add other directories, use the @code{directory} command.
 
 The search path is used to find both program source files and @value{GDBN}
@@ -9058,21 +9148,12 @@ part of absolute file names) or
 whitespace.  You may specify a directory that is already in the source
 path; this moves it forward, so @value{GDBN} searches it sooner.
 
-@kindex cdir
-@kindex cwd
-@vindex $cdir@r{, convenience variable}
-@vindex $cwd@r{, convenience variable}
-@cindex compilation directory
-@cindex current directory
-@cindex working directory
-@cindex directory, current
-@cindex directory, compilation
-You can use the string @samp{$cdir} to refer to the compilation
-directory (if one is recorded), and @samp{$cwd} to refer to the current
-working directory.  @samp{$cwd} is not the same as @samp{.}---the former
-tracks the current working directory as it changes during your @value{GDBN}
-session, while the latter is immediately expanded to the current
-directory at the time you add an entry to the source path.
+The special strings @samp{$cdir} (to refer to the compilation
+directory, if one is recorded), and @samp{$cwd} (to refer to the
+current working directory) can also be included in the list of
+directories @var{dirname}.  Though these will already be in the source
+path they will be moved forward in the list so @value{GDBN} searches
+them sooner.
 
 @item directory
 Reset the source path to its default value (@samp{$cdir:$cwd} on Unix systems).  This requires confirmation.
diff --git a/gdb/source.c b/gdb/source.c
index b27f210802..0171f2748b 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -654,6 +654,36 @@ info_source_command (const char *ignore, int from_tty)
 }
 \f
 
+/* Helper function to remove characters from the start of PATH so that
+   PATH can then be appended to a directory name.  We remove leading drive
+   letters (for dos) as well as leading '/' characters and './'
+   sequences.  */
+
+const char *
+prepare_path_for_appending (const char *path)
+{
+  /* For dos paths, d:/foo -> /foo, and d:foo -> foo.  */
+  if (HAS_DRIVE_SPEC (path))
+    path = STRIP_DRIVE_SPEC (path);
+
+  const char *old_path;
+  do
+    {
+      old_path = path;
+
+      /* /foo => foo, to avoid multiple slashes that Emacs doesn't like.  */
+      while (IS_DIR_SEPARATOR(path[0]))
+	path++;
+
+      /* ./foo => foo */
+      while (path[0] == '.' && IS_DIR_SEPARATOR (path[1]))
+	path += 2;
+    }
+  while (old_path != path);
+
+  return path;
+}
+
 /* Open a file named STRING, searching path PATH (dir names sep by some char)
    using mode MODE in the calls to open.  You cannot use this function to
    create files (O_CREAT).
@@ -747,17 +777,9 @@ openp (const char *path, openp_flags opts, const char *string,
 	    goto done;
     }
 
-  /* For dos paths, d:/foo -> /foo, and d:foo -> foo.  */
-  if (HAS_DRIVE_SPEC (string))
-    string = STRIP_DRIVE_SPEC (string);
-
-  /* /foo => foo, to avoid multiple slashes that Emacs doesn't like.  */
-  while (IS_DIR_SEPARATOR(string[0]))
-    string++;
-
-  /* ./foo => foo */
-  while (string[0] == '.' && IS_DIR_SEPARATOR (string[1]))
-    string += 2;
+  /* Remove characters from the start of PATH that we don't need when PATH
+     is appended to a directory name.  */
+  string = prepare_path_for_appending (string);
 
   alloclen = strlen (path) + strlen (string) + 2;
   filename = (char *) alloca (alloclen);
@@ -1033,7 +1055,32 @@ find_and_open_source (const char *filename,
   openp_flags flags = OPF_SEARCH_IN_PATH;
   if (basenames_may_differ)
     flags |= OPF_RETURN_REALPATH;
+
+  /* Try to locate file using filename.  */
   result = openp (path, flags, filename, OPEN_MODE, fullname);
+  if (result < 0 && dirname != NULL)
+    {
+      /* Remove characters from the start of PATH that we don't need when
+	 PATH is appended to a directory name.  */
+      const char *filename_start = prepare_path_for_appending (filename);
+
+      /* Try to locate file using compilation dir + filename.  This is
+	 helpful if part of the compilation directory was removed,
+	 e.g. using gcc's -fdebug-prefix-map, and we have added the missing
+	 prefix to source_path.  */
+      std::string cdir_filename (dirname);
+
+      /* Remove any trailing directory separators.  */
+      while (IS_DIR_SEPARATOR (cdir_filename.back ()))
+	cdir_filename.pop_back ();
+
+      /* Add our own directory separator.  */
+      cdir_filename.append (SLASH_STRING);
+      cdir_filename.append (filename_start);
+
+      result = openp (path, flags, cdir_filename.c_str (), OPEN_MODE,
+		      fullname);
+    }
   if (result < 0)
     {
       /* Didn't work.  Try using just the basename.  */
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index b9060ef5d0..ed838e947e 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-17  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.base/source-dir.exp: Add extra test for mapped compilation
+	directory.
+
 2019-09-17  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* gdb.base/list-missing-source.exp: New file.
diff --git a/gdb/testsuite/gdb.base/source-dir.c b/gdb/testsuite/gdb.base/source-dir.c
new file mode 100644
index 0000000000..d94b8074ec
--- /dev/null
+++ b/gdb/testsuite/gdb.base/source-dir.c
@@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2019 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+int
+main ()
+{
+  return 0;
+}
diff --git a/gdb/testsuite/gdb.base/source-dir.exp b/gdb/testsuite/gdb.base/source-dir.exp
index 048c0e9516..25d7b07971 100644
--- a/gdb/testsuite/gdb.base/source-dir.exp
+++ b/gdb/testsuite/gdb.base/source-dir.exp
@@ -15,9 +15,142 @@
 
 standard_testfile
 
-gdb_start
+# Take a list of directories DIRS, and return a regular expression
+# that will match against the output of the 'directory' command
+# assuming that DIRS are all of the directories that should appear in
+# the results.
+proc search_dir_list { dirs } {
+    set output "\r\nSource directories searched: "
+    append output [join $dirs "\[:;\]"]
 
-set foo "/nOtExStInG"
+    return ${output}
+}
 
-gdb_test "directory $foo/a $foo/b $foo/c" "\r\nSource directories searched: $foo/a\[:;\]$foo/b\[:;\]$foo/c\[:;\]\\\$cdir\[:;\]\\\$cwd"
-gdb_test "directory $foo/b $foo/d $foo/c" "\r\nSource directories searched: $foo/b\[:;\]$foo/d\[:;\]$foo/c\[:;\]$foo/a\[:;\]\\\$cdir\[:;\]\\\$cwd"
+# Check that adding directories to the search path changes the order
+# in which directories are searched.
+proc test_changing_search_directory {} {
+    gdb_start
+
+    set foo "/nOtExStInG"
+
+    gdb_test "directory $foo/a $foo/b $foo/c" \
+	[search_dir_list [list \
+			      "$foo/a" \
+			      "$foo/b" \
+			      "$foo/c" \
+			      "\\\$cdir" \
+			      "\\\$cwd"]]
+    gdb_test "directory $foo/b $foo/d $foo/c" \
+	[search_dir_list [list \
+			      "$foo/b" \
+			      "$foo/d" \
+			      "$foo/c" \
+			      "$foo/a" \
+			      "\\\$cdir" \
+			      "\\\$cwd"]]
+    gdb_exit
+}
+
+# Test that the compilation directory can also be extended with a
+# prefix from the directory search path in order to find source files.
+proc test_truncated_comp_dir {} {
+    global srcfile srcdir subdir binfile
+    global decimal
+
+    # When we run this test the current directory will be something
+    # like this:
+    #     /some/path/to/gdb/build/testsuite/
+    # We are going to copy the source file out of the source tree into
+    # a location like this:
+    #     /some/path/to/gdb/build/testsuite/output/gdb.base/soure-dir/
+    #
+    # We will then switch to this directory and compile the source
+    # file, however, we will ask GCC to remove this prefix from the
+    # compilation directory in the debug info:
+    #     /some/path/to/gdb/build/testsuite/output/
+    #
+    # As a result the debug information will look like this:
+    #
+    #     DW_AT_name        : source-dir.c
+    #     DW_AT_comp_dir    : /gdb.base/source-dir
+    #
+    # Finally we switch back to this directory:
+    #     /some/path/to/gdb/build/testsuite/
+    #
+    # and start GDB.  There was a time when GDB would be unable to
+    # find the source file no matter what we added to the directory
+    # search path, this should now be fixed.
+
+    set original_dir [pwd]
+    set working_dir [standard_output_file ""]
+    cd ${working_dir}
+
+    set strip_dir [file normalize "${working_dir}/../.."]
+
+    set new_srcfile [standard_output_file ${srcfile}]
+    set fd [open "$new_srcfile" w]
+    puts $fd "int
+    main ()
+    {
+      return 0;
+    }"
+    close $fd
+
+    set options \
+	"debug additional_flags=-fdebug-prefix-map=${strip_dir}="
+    if  { [gdb_compile "${srcfile}" "${binfile}" \
+	       executable ${options}] != "" } {
+	untested "failed to compile"
+	return -1
+    }
+
+    cd ${original_dir}
+
+    clean_restart ${binfile}
+
+    gdb_test_no_output "set directories \$cdir:\$cwd"
+    gdb_test "show directories" \
+	"\r\nSource directories searched: \\\$cdir\[:;\]\\\$cwd"
+
+    if ![runto_main] then {
+	fail "can't run to main"
+	return 0
+    }
+
+    gdb_test "info source" \
+    [multi_line \
+	 "Current source file is ${srcfile}" \
+	 "Compilation directory is \[^\n\r\]+" \
+	 "Source language is c." \
+	 "Producer is \[^\n\r\]+" \
+	 "Compiled with DWARF $decimal debugging format." \
+	 "Does not include preprocessor macro info." ] \
+	"info source before setting directory search list"
+
+    gdb_test "dir $strip_dir" \
+	[search_dir_list [list \
+			      "$strip_dir" \
+			      "\\\$cdir" \
+			      "\\\$cwd"]]
+    gdb_test "list" [multi_line \
+			 "1\[ \t\]+int" \
+			 "2\[ \t\]+main \\(\\)" \
+			 "3\[ \t\]+\\{" \
+			 "4\[ \t\]+return 0;" \
+			 "5\[ \t\]+\\}" ]
+
+    gdb_test "info source" \
+	[multi_line \
+	     "Current source file is ${srcfile}" \
+	     "Compilation directory is \[^\n\r\]+" \
+	     "Located in ${new_srcfile}" \
+	     "Contains 5 lines." \
+	     "Source language is c." \
+	     "Producer is \[^\n\r\]+" \
+	     "\[^\n\r\]+" \
+	     "\[^\n\r\]+" ] \
+	"info source after setting directory search list"
+}
+
+test_changing_search_directory
+test_truncated_comp_dir


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change boolean options to bool instead of int
@ 2019-09-18  0:59 gdb-buildbot
  2019-09-18  2:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18  0:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 491144b5e21bbfd41969c175aebb663976f59058 ***

commit 491144b5e21bbfd41969c175aebb663976f59058
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Sat Sep 14 15:36:58 2019 -0400
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 18 09:35:12 2019 +0900

    Change boolean options to bool instead of int
    
    This is for add_setshow_boolean_cmd as well as the gdb::option interface.
    
    gdb/ChangeLog:
    
    2019-09-17  Christian Biesinger  <cbiesinger@google.com>
    
            * ada-lang.c (ada_ignore_descriptive_types_p): Change to bool.
            (print_signatures): Likewise.
            (trust_pad_over_xvs): Likewise.
            * arch/aarch64-insn.c (aarch64_debug): Likewise.
            * arch/aarch64-insn.h (aarch64_debug): Likewise.
            * arm-linux-nat.c (arm_apcs_32): Likewise.
            * arm-linux-tdep.c (arm_apcs_32): Likewise.
            * arm-nbsd-nat.c (arm_apcs_32): Likewise.
            * arm-tdep.c (arm_debug): Likewise.
            (arm_apcs_32): Likewise.
            * auto-load.c (debug_auto_load): Likewise.
            (auto_load_gdb_scripts): Likewise.
            (global_auto_load): Likewise.
            (auto_load_local_gdbinit): Likewise.
            (auto_load_local_gdbinit_loaded): Likewise.
            * auto-load.h (global_auto_load): Likewise.
            (auto_load_local_gdbinit): Likewise.
            (auto_load_local_gdbinit_loaded): Likewise.
            * breakpoint.c (disconnected_dprintf): Likewise.
            (breakpoint_proceeded): Likewise.
            (automatic_hardware_breakpoints): Likewise.
            (always_inserted_mode): Likewise.
            (target_exact_watchpoints): Likewise.
            (_initialize_breakpoint): Update.
            * breakpoint.h (target_exact_watchpoints): Change to bool.
            * btrace.c (maint_btrace_pt_skip_pad): Likewise.
            * cli/cli-cmds.c (trace_commands): Likewise.
            * cli/cli-cmds.h (trace_commands): Likewise.
            * cli/cli-decode.c (add_setshow_boolean_cmd): Change int* argument
            to bool*.
            * cli/cli-logging.c (logging_overwrite): Change to bool.
            (logging_redirect): Likewise.
            (debug_redirect): Likewise.
            * cli/cli-option.h (option_def) <boolean>: Change return type to bool*.
            (struct boolean_option_def) <get_var_address_cb_>: Change return type
            to bool.
            <boolean_option_def>: Update.
            (struct flag_option_def): Change default type of Context to bool
            from int.
            <flag_option_def>: Change return type of var_address_cb_ to bool*.
            * cli/cli-setshow.c (do_set_command): Cast to bool* instead of int*.
            (get_setshow_command_value_string): Likewise.
            * cli/cli-style.c (cli_styling): Change to bool.
            (source_styling): Likewise.
            * cli/cli-style.h (source_styling): Likewise.
            (cli_styling): Likewise.
            * cli/cli-utils.h (struct qcs_flags) <quiet, cont, silent>: Change
            to bool.
            * command.h (var_types): Update comment.
            (add_setshow_boolean_cmd): Change int* var argument to bool*.
            * compile/compile-cplus-types.c (debug_compile_cplus_types): Change to
            bool.
            (debug_compile_cplus_scopes): Likewise.
            * compile/compile-internal.h (compile_debug): Likewise.
            * compile/compile.c (compile_debug): Likewise.
            (struct compile_options) <raw>: Likewise.
            * cp-support.c (catch_demangler_crashes): Likewise.
            * cris-tdep.c (usr_cmd_cris_version_valid): Likewise.
            (usr_cmd_cris_dwarf2_cfi): Likewise.
            * csky-tdep.c (csky_debug): Likewise.
            * darwin-nat.c (enable_mach_exceptions): Likewise.
            * dcache.c (dcache_enabled_p): Likewise.
            * defs.h (info_verbose): Likewise.
            * demangle.c (demangle): Likewise.
            (asm_demangle): Likewise.
            * dwarf-index-cache.c (debug_index_cache): Likewise.
            * dwarf2-frame.c (dwarf2_frame_unwinders_enabled_p): Likewise.
            * dwarf2-frame.h (dwarf2_frame_unwinders_enabled_p): Likewise.
            * dwarf2read.c (check_physname): Likewise.
            (use_deprecated_index_sections): Likewise.
            (dwarf_always_disassemble): Likewise.
            * eval.c (overload_resolution): Likewise.
            * event-top.c (set_editing_cmd_var): Likewise.
            (exec_done_display_p): Likewise.
            * event-top.h (set_editing_cmd_var): Likewise.
            (exec_done_display_p): Likewise.
            * exec.c (write_files): Likewise.
            * fbsd-nat.c (debug_fbsd_lwp): Likewise
            (debug_fbsd_nat): Likewise.
            * frame.h (struct frame_print_options) <print_raw_frame_arguments>:
            Likewise.
            (struct set_backtrace_options) <backtrace_past_main>: Likewise.
            <backtrace_past_entry> Likewise.
            * gdb-demangle.h (demangle): Likewise.
            (asm_demangle): Likewise.
            * gdb_bfd.c (bfd_sharing): Likewise.
            * gdbcore.h (write_files): Likewise.
            * gdbsupport/common-debug.c (show_debug_regs): Likewise.
            * gdbsupport/common-debug.h (show_debug_regs): Likewise.
            * gdbthread.h (print_thread_events): Likewise.
            * gdbtypes.c (opaque_type_resolution): Likewise.
            (strict_type_checking): Likewise.
            * gnu-nat.c (gnu_debug_flag): Likewise.
            * guile/scm-auto-load.c (auto_load_guile_scripts): Likewise.
            * guile/scm-param.c (pascm_variable): Add boolval.
            (add_setshow_generic): Update.
            (pascm_param_value): Update.
            (pascm_set_param_value_x): Update.
            * hppa-tdep.c (hppa_debug): Change to bool..
            * infcall.c (may_call_functions_p): Likewise.
            (coerce_float_to_double_p): Likewise.
            (unwind_on_signal_p): Likewise.
            (unwind_on_terminating_exception_p): Likewise.
            * infcmd.c (startup_with_shell): Likewise.
            * inferior.c (print_inferior_events): Likewise.
            * inferior.h (startup_with_shell): Likewise.
            (print_inferior_events): Likewise.
            * infrun.c (step_stop_if_no_debug): Likewise.
            (detach_fork): Likewise.
            (debug_displaced): Likewise.
            (disable_randomization): Likewise.
            (non_stop): Likewise.
            (non_stop_1): Likewise.
            (observer_mode): Likewise.
            (observer_mode_1): Likewise.
            (set_observer_mode): Update.
            (sched_multi): Change to bool.
            * infrun.h (debug_displaced): Likewise.
            (sched_multi): Likewise.
            (step_stop_if_no_debug): Likewise.
            (non_stop): Likewise.
            (disable_randomization): Likewise.
            * linux-tdep.c (use_coredump_filter): Likewise.
            (dump_excluded_mappings): Likewise.
            * linux-thread-db.c (auto_load_thread_db): Likewise.
            (check_thread_db_on_load): Likewise.
            * main.c (captured_main_1): Update.
            * maint-test-options.c (struct test_options_opts) <flag_opt, xx1_opt,
            xx2_opt, boolean_opt>: Change to bool.
            * maint-test-settings.c (maintenance_test_settings_boolean): Likewise.
            * maint.c (maintenance_profile_p): Likewise.
            (per_command_time): Likewise.
            (per_command_space): Likewise.
            (per_command_symtab): Likewise.
            * memattr.c (inaccessible_by_default): Likewise.
            * mi/mi-main.c (mi_async): Likewise.
            (mi_async_1): Likewise.
            * mips-tdep.c (mips64_transfers_32bit_regs_p): Likewise.
            * nat/fork-inferior.h (startup_with_shell): Likewise.
            * nat/linux-namespaces.c (debug_linux_namespaces): Likewise.
            * nat/linux-namespaces.h (debug_linux_namespaces): Likewise.
            * nios2-tdep.c (nios2_debug): Likewise.
            * or1k-tdep.c (or1k_debug): Likewise.
            * parse.c (parser_debug): Likewise.
            * parser-defs.h (parser_debug): Likewise.
            * printcmd.c (print_symbol_filename): Likewise.
            * proc-api.c (procfs_trace): Likewise.
            * python/py-auto-load.c (auto_load_python_scripts): Likewise.
            * python/py-param.c (union parmpy_variable): Add "bool boolval" field.
            (set_parameter_value): Update.
            (add_setshow_generic): Update.
            * python/py-value.c (copy_py_bool_obj): Change argument from int*
            to bool*.
            * python/python.c (gdbpy_parameter_value): Cast to bool* instead of
            int*.
            * ravenscar-thread.c (ravenscar_task_support): Change to bool.
            * record-btrace.c (record_btrace_target::store_registers): Update.
            * record-full.c (record_full_memory_query): Change to bool.
            (record_full_stop_at_limit): Likewise.
            * record-full.h (record_full_memory_query): Likewise.
            * remote-notif.c (notif_debug): Likewise.
            * remote-notif.h (notif_debug): Likewise.
            * remote.c (use_range_stepping): Likewise.
            (interrupt_on_connect): Likewise.
            (remote_break): Likewise.
            * ser-tcp.c (tcp_auto_retry): Likewise.
            * ser-unix.c (serial_hwflow): Likewise.
            * skip.c (debug_skip): Likewise.
            * solib-aix.c (solib_aix_debug): Likewise.
            * spu-tdep.c (spu_stop_on_load_p): Likewise.
            (spu_auto_flush_cache_p): Likewise.
            * stack.c (struct backtrace_cmd_options) <full, no_filters, hide>:
            Likewise.
            (struct info_print_options) <quiet>: Likewise.
            * symfile-debug.c (debug_symfile): Likewise.
            * symfile.c (auto_solib_add): Likewise.
            (separate_debug_file_debug): Likewise.
            * symfile.h (auto_solib_add): Likewise.
            (separate_debug_file_debug): Likewise.
            * symtab.c (basenames_may_differ): Likewise.
            (struct filename_partial_match_opts) <dirname, basename>: Likewise.
            (struct info_print_options) <quiet, exclude_minsyms>: Likewise.
            (struct info_types_options) <quiet>: Likewise.
            * symtab.h (demangle): Likewise.
            (basenames_may_differ): Likewise.
            * target-dcache.c (stack_cache_enabled_1): Likewise.
            (code_cache_enabled_1): Likewise.
            * target.c (trust_readonly): Likewise.
            (may_write_registers): Likewise.
            (may_write_memory): Likewise.
            (may_insert_breakpoints): Likewise.
            (may_insert_tracepoints): Likewise.
            (may_insert_fast_tracepoints): Likewise.
            (may_stop): Likewise.
            (auto_connect_native_target): Likewise.
            (target_stop_and_wait): Update.
            (target_async_permitted): Change to bool.
            (target_async_permitted_1): Likewise.
            (may_write_registers_1): Likewise.
            (may_write_memory_1): Likewise.
            (may_insert_breakpoints_1): Likewise.
            (may_insert_tracepoints_1): Likewise.
            (may_insert_fast_tracepoints_1): Likewise.
            (may_stop_1): Likewise.
            * target.h (target_async_permitted): Likewise.
            (may_write_registers): Likewise.
            (may_write_memory): Likewise.
            (may_insert_breakpoints): Likewise.
            (may_insert_tracepoints): Likewise.
            (may_insert_fast_tracepoints): Likewise.
            (may_stop): Likewise.
            * thread.c (struct info_threads_opts) <show_global_ids>: Likewise.
            (make_thread_apply_all_options_def_group): Change argument from int*
            to bool*.
            (thread_apply_all_command): Update.
            (print_thread_events): Change to bool.
            * top.c (confirm): Likewise.
            (command_editing_p): Likewise.
            (history_expansion_p): Likewise.
            (write_history_p): Likewise.
            (info_verbose): Likewise.
            * top.h (confirm): Likewise.
            (history_expansion_p): Likewise.
            * tracepoint.c (disconnected_tracing): Likewise.
            (circular_trace_buffer): Likewise.
            * typeprint.c (print_methods): Likewise.
            (print_typedefs): Likewise.
            * utils.c (debug_timestamp): Likewise.
            (sevenbit_strings): Likewise.
            (pagination_enabled): Likewise.
            * utils.h (sevenbit_strings): Likewise.
            (pagination_enabled): Likewise.
            * valops.c (overload_resolution): Likewise.
            * valprint.h (struct value_print_options) <prettyformat_arrays,
            prettyformat_structs, vtblprint, unionprint, addressprint, objectprint,
            stop_print_at_null, print_array_indexes, deref_ref, static_field_print,
            pascal_static_field_print, raw, summary, symbol_print, finish_print>:
            Likewise.
            * windows-nat.c (new_console): Likewise.
            (cygwin_exceptions): Likewise.
            (new_group): Likewise.
            (debug_exec): Likewise.
            (debug_events): Likewise.
            (debug_memory): Likewise.
            (debug_exceptions): Likewise.
            (useshell): Likewise.
            * windows-tdep.c (maint_display_all_tib): Likewise.
            * xml-support.c (debug_xml): Likewise.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3bf43d2dfe..8cb5bfeeb9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,254 @@
+2019-09-17  Christian Biesinger  <cbiesinger@google.com>
+
+	* ada-lang.c (ada_ignore_descriptive_types_p): Change to bool.
+	(print_signatures): Likewise.
+	(trust_pad_over_xvs): Likewise.
+	* arch/aarch64-insn.c (aarch64_debug): Likewise.
+	* arch/aarch64-insn.h (aarch64_debug): Likewise.
+	* arm-linux-nat.c (arm_apcs_32): Likewise.
+	* arm-linux-tdep.c (arm_apcs_32): Likewise.
+	* arm-nbsd-nat.c (arm_apcs_32): Likewise.
+	* arm-tdep.c (arm_debug): Likewise.
+	(arm_apcs_32): Likewise.
+	* auto-load.c (debug_auto_load): Likewise.
+	(auto_load_gdb_scripts): Likewise.
+	(global_auto_load): Likewise.
+	(auto_load_local_gdbinit): Likewise.
+	(auto_load_local_gdbinit_loaded): Likewise.
+	* auto-load.h (global_auto_load): Likewise.
+	(auto_load_local_gdbinit): Likewise.
+	(auto_load_local_gdbinit_loaded): Likewise.
+	* breakpoint.c (disconnected_dprintf): Likewise.
+	(breakpoint_proceeded): Likewise.
+	(automatic_hardware_breakpoints): Likewise.
+	(always_inserted_mode): Likewise.
+	(target_exact_watchpoints): Likewise.
+	(_initialize_breakpoint): Update.
+	* breakpoint.h (target_exact_watchpoints): Change to bool.
+	* btrace.c (maint_btrace_pt_skip_pad): Likewise.
+	* cli/cli-cmds.c (trace_commands): Likewise.
+	* cli/cli-cmds.h (trace_commands): Likewise.
+	* cli/cli-decode.c (add_setshow_boolean_cmd): Change int* argument
+	to bool*.
+	* cli/cli-logging.c (logging_overwrite): Change to bool.
+	(logging_redirect): Likewise.
+	(debug_redirect): Likewise.
+	* cli/cli-option.h (option_def) <boolean>: Change return type to bool*.
+	(struct boolean_option_def) <get_var_address_cb_>: Change return type
+	to bool.
+	<boolean_option_def>: Update.
+	(struct flag_option_def): Change default type of Context to bool
+	from int.
+	<flag_option_def>: Change return type of var_address_cb_ to bool*.
+	* cli/cli-setshow.c (do_set_command): Cast to bool* instead of int*.
+	(get_setshow_command_value_string): Likewise.
+	* cli/cli-style.c (cli_styling): Change to bool.
+	(source_styling): Likewise.
+	* cli/cli-style.h (source_styling): Likewise.
+	(cli_styling): Likewise.
+	* cli/cli-utils.h (struct qcs_flags) <quiet, cont, silent>: Change
+	to bool.
+	* command.h (var_types): Update comment.
+	(add_setshow_boolean_cmd): Change int* var argument to bool*.
+	* compile/compile-cplus-types.c (debug_compile_cplus_types): Change to
+	bool.
+	(debug_compile_cplus_scopes): Likewise.
+	* compile/compile-internal.h (compile_debug): Likewise.
+	* compile/compile.c (compile_debug): Likewise.
+	(struct compile_options) <raw>: Likewise.
+	* cp-support.c (catch_demangler_crashes): Likewise.
+	* cris-tdep.c (usr_cmd_cris_version_valid): Likewise.
+	(usr_cmd_cris_dwarf2_cfi): Likewise.
+	* csky-tdep.c (csky_debug): Likewise.
+	* darwin-nat.c (enable_mach_exceptions): Likewise.
+	* dcache.c (dcache_enabled_p): Likewise.
+	* defs.h (info_verbose): Likewise.
+	* demangle.c (demangle): Likewise.
+	(asm_demangle): Likewise.
+	* dwarf-index-cache.c (debug_index_cache): Likewise.
+	* dwarf2-frame.c (dwarf2_frame_unwinders_enabled_p): Likewise.
+	* dwarf2-frame.h (dwarf2_frame_unwinders_enabled_p): Likewise.
+	* dwarf2read.c (check_physname): Likewise.
+	(use_deprecated_index_sections): Likewise.
+	(dwarf_always_disassemble): Likewise.
+	* eval.c (overload_resolution): Likewise.
+	* event-top.c (set_editing_cmd_var): Likewise.
+	(exec_done_display_p): Likewise.
+	* event-top.h (set_editing_cmd_var): Likewise.
+	(exec_done_display_p): Likewise.
+	* exec.c (write_files): Likewise.
+	* fbsd-nat.c (debug_fbsd_lwp): Likewise
+	(debug_fbsd_nat): Likewise.
+	* frame.h (struct frame_print_options) <print_raw_frame_arguments>:
+	Likewise.
+	(struct set_backtrace_options) <backtrace_past_main>: Likewise.
+	<backtrace_past_entry> Likewise.
+	* gdb-demangle.h (demangle): Likewise.
+	(asm_demangle): Likewise.
+	* gdb_bfd.c (bfd_sharing): Likewise.
+	* gdbcore.h (write_files): Likewise.
+	* gdbsupport/common-debug.c (show_debug_regs): Likewise.
+	* gdbsupport/common-debug.h (show_debug_regs): Likewise.
+	* gdbthread.h (print_thread_events): Likewise.
+	* gdbtypes.c (opaque_type_resolution): Likewise.
+	(strict_type_checking): Likewise.
+	* gnu-nat.c (gnu_debug_flag): Likewise.
+	* guile/scm-auto-load.c (auto_load_guile_scripts): Likewise.
+	* guile/scm-param.c (pascm_variable): Add boolval.
+	(add_setshow_generic): Update.
+	(pascm_param_value): Update.
+	(pascm_set_param_value_x): Update.
+	* hppa-tdep.c (hppa_debug): Change to bool..
+	* infcall.c (may_call_functions_p): Likewise.
+	(coerce_float_to_double_p): Likewise.
+	(unwind_on_signal_p): Likewise.
+	(unwind_on_terminating_exception_p): Likewise.
+	* infcmd.c (startup_with_shell): Likewise.
+	* inferior.c (print_inferior_events): Likewise.
+	* inferior.h (startup_with_shell): Likewise.
+	(print_inferior_events): Likewise.
+	* infrun.c (step_stop_if_no_debug): Likewise.
+	(detach_fork): Likewise.
+	(debug_displaced): Likewise.
+	(disable_randomization): Likewise.
+	(non_stop): Likewise.
+	(non_stop_1): Likewise.
+	(observer_mode): Likewise.
+	(observer_mode_1): Likewise.
+	(set_observer_mode): Update.
+	(sched_multi): Change to bool.
+	* infrun.h (debug_displaced): Likewise.
+	(sched_multi): Likewise.
+	(step_stop_if_no_debug): Likewise.
+	(non_stop): Likewise.
+	(disable_randomization): Likewise.
+	* linux-tdep.c (use_coredump_filter): Likewise.
+	(dump_excluded_mappings): Likewise.
+	* linux-thread-db.c (auto_load_thread_db): Likewise.
+	(check_thread_db_on_load): Likewise.
+	* main.c (captured_main_1): Update.
+	* maint-test-options.c (struct test_options_opts) <flag_opt, xx1_opt,
+	xx2_opt, boolean_opt>: Change to bool.
+	* maint-test-settings.c (maintenance_test_settings_boolean): Likewise.
+	* maint.c (maintenance_profile_p): Likewise.
+	(per_command_time): Likewise.
+	(per_command_space): Likewise.
+	(per_command_symtab): Likewise.
+	* memattr.c (inaccessible_by_default): Likewise.
+	* mi/mi-main.c (mi_async): Likewise.
+	(mi_async_1): Likewise.
+	* mips-tdep.c (mips64_transfers_32bit_regs_p): Likewise.
+	* nat/fork-inferior.h (startup_with_shell): Likewise.
+	* nat/linux-namespaces.c (debug_linux_namespaces): Likewise.
+	* nat/linux-namespaces.h (debug_linux_namespaces): Likewise.
+	* nios2-tdep.c (nios2_debug): Likewise.
+	* or1k-tdep.c (or1k_debug): Likewise.
+	* parse.c (parser_debug): Likewise.
+	* parser-defs.h (parser_debug): Likewise.
+	* printcmd.c (print_symbol_filename): Likewise.
+	* proc-api.c (procfs_trace): Likewise.
+	* python/py-auto-load.c (auto_load_python_scripts): Likewise.
+	* python/py-param.c (union parmpy_variable): Add "bool boolval" field.
+	(set_parameter_value): Update.
+	(add_setshow_generic): Update.
+	* python/py-value.c (copy_py_bool_obj): Change argument from int*
+	to bool*.
+	* python/python.c (gdbpy_parameter_value): Cast to bool* instead of
+	int*.
+	* ravenscar-thread.c (ravenscar_task_support): Change to bool.
+	* record-btrace.c (record_btrace_target::store_registers): Update.
+	* record-full.c (record_full_memory_query): Change to bool.
+	(record_full_stop_at_limit): Likewise.
+	* record-full.h (record_full_memory_query): Likewise.
+	* remote-notif.c (notif_debug): Likewise.
+	* remote-notif.h (notif_debug): Likewise.
+	* remote.c (use_range_stepping): Likewise.
+	(interrupt_on_connect): Likewise.
+	(remote_break): Likewise.
+	* ser-tcp.c (tcp_auto_retry): Likewise.
+	* ser-unix.c (serial_hwflow): Likewise.
+	* skip.c (debug_skip): Likewise.
+	* solib-aix.c (solib_aix_debug): Likewise.
+	* spu-tdep.c (spu_stop_on_load_p): Likewise.
+	(spu_auto_flush_cache_p): Likewise.
+	* stack.c (struct backtrace_cmd_options) <full, no_filters, hide>:
+	Likewise.
+	(struct info_print_options) <quiet>: Likewise.
+	* symfile-debug.c (debug_symfile): Likewise.
+	* symfile.c (auto_solib_add): Likewise.
+	(separate_debug_file_debug): Likewise.
+	* symfile.h (auto_solib_add): Likewise.
+	(separate_debug_file_debug): Likewise.
+	* symtab.c (basenames_may_differ): Likewise.
+	(struct filename_partial_match_opts) <dirname, basename>: Likewise.
+	(struct info_print_options) <quiet, exclude_minsyms>: Likewise.
+	(struct info_types_options) <quiet>: Likewise.
+	* symtab.h (demangle): Likewise.
+	(basenames_may_differ): Likewise.
+	* target-dcache.c (stack_cache_enabled_1): Likewise.
+	(code_cache_enabled_1): Likewise.
+	* target.c (trust_readonly): Likewise.
+	(may_write_registers): Likewise.
+	(may_write_memory): Likewise.
+	(may_insert_breakpoints): Likewise.
+	(may_insert_tracepoints): Likewise.
+	(may_insert_fast_tracepoints): Likewise.
+	(may_stop): Likewise.
+	(auto_connect_native_target): Likewise.
+	(target_stop_and_wait): Update.
+	(target_async_permitted): Change to bool.
+	(target_async_permitted_1): Likewise.
+	(may_write_registers_1): Likewise.
+	(may_write_memory_1): Likewise.
+	(may_insert_breakpoints_1): Likewise.
+	(may_insert_tracepoints_1): Likewise.
+	(may_insert_fast_tracepoints_1): Likewise.
+	(may_stop_1): Likewise.
+	* target.h (target_async_permitted): Likewise.
+	(may_write_registers): Likewise.
+	(may_write_memory): Likewise.
+	(may_insert_breakpoints): Likewise.
+	(may_insert_tracepoints): Likewise.
+	(may_insert_fast_tracepoints): Likewise.
+	(may_stop): Likewise.
+	* thread.c (struct info_threads_opts) <show_global_ids>: Likewise.
+	(make_thread_apply_all_options_def_group): Change argument from int*
+	to bool*.
+	(thread_apply_all_command): Update.
+	(print_thread_events): Change to bool.
+	* top.c (confirm): Likewise.
+	(command_editing_p): Likewise.
+	(history_expansion_p): Likewise.
+	(write_history_p): Likewise.
+	(info_verbose): Likewise.
+	* top.h (confirm): Likewise.
+	(history_expansion_p): Likewise.
+	* tracepoint.c (disconnected_tracing): Likewise.
+	(circular_trace_buffer): Likewise.
+	* typeprint.c (print_methods): Likewise.
+	(print_typedefs): Likewise.
+	* utils.c (debug_timestamp): Likewise.
+	(sevenbit_strings): Likewise.
+	(pagination_enabled): Likewise.
+	* utils.h (sevenbit_strings): Likewise.
+	(pagination_enabled): Likewise.
+	* valops.c (overload_resolution): Likewise.
+	* valprint.h (struct value_print_options) <prettyformat_arrays,
+	prettyformat_structs, vtblprint, unionprint, addressprint, objectprint,
+	stop_print_at_null, print_array_indexes, deref_ref, static_field_print,
+	pascal_static_field_print, raw, summary, symbol_print, finish_print>:
+	Likewise.
+	* windows-nat.c (new_console): Likewise.
+	(cygwin_exceptions): Likewise.
+	(new_group): Likewise.
+	(debug_exec): Likewise.
+	(debug_events): Likewise.
+	(debug_memory): Likewise.
+	(debug_exceptions): Likewise.
+	(useshell): Likewise.
+	* windows-tdep.c (maint_display_all_tib): Likewise.
+	* xml-support.c (debug_xml): Likewise.
+
 2019-09-17  Mike Gulick  <mgulick@mathworks.com>
 
 	* source.c (prepare_path_for_appending): New function.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 8cdb62bde0..c34733e754 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -358,7 +358,7 @@ maint_show_ada_cmd (const char *args, int from_tty)
 
 /* The "maintenance ada set/show ignore-descriptive-type" value.  */
 
-static int ada_ignore_descriptive_types_p = 0;
+static bool ada_ignore_descriptive_types_p = false;
 
 			/* Inferior-specific data.  */
 
@@ -3795,7 +3795,7 @@ sort_choices (struct block_symbol syms[], int nsyms)
 
 /* Whether GDB should display formals and return types for functions in the
    overloads selection menu.  */
-static int print_signatures = 1;
+static bool print_signatures = true;
 
 /* Print the signature for SYM on STREAM according to the FLAGS options.  For
    all but functions, the signature is just the name of the symbol.  For
@@ -9299,7 +9299,7 @@ ada_is_string_type (struct type *type)
 
    Set to True if the debugger should trust the contents of PAD types.
    Otherwise, ignore the PAD type if there is a parallel XVS type.  */
-static int trust_pad_over_xvs = 1;
+static bool trust_pad_over_xvs = true;
 
 /* True if TYPE is a struct type introduced by the compiler to force the
    alignment of a value.  Such types have a single field with a
diff --git a/gdb/arch/aarch64-insn.c b/gdb/arch/aarch64-insn.c
index e04ad87fef..48d0be83ff 100644
--- a/gdb/arch/aarch64-insn.c
+++ b/gdb/arch/aarch64-insn.c
@@ -20,7 +20,7 @@
 #include "aarch64-insn.h"
 
 /* Toggle this file's internal debugging dump.  */
-int aarch64_debug = 0;
+bool aarch64_debug = false;
 
 /* Extract a signed value from a bit field within an instruction
    encoding.
diff --git a/gdb/arch/aarch64-insn.h b/gdb/arch/aarch64-insn.h
index 4492594c1b..47a825b114 100644
--- a/gdb/arch/aarch64-insn.h
+++ b/gdb/arch/aarch64-insn.h
@@ -19,7 +19,7 @@
 #ifndef ARCH_AARCH64_INSN_H
 #define ARCH_AARCH64_INSN_H
 
-extern int aarch64_debug;
+extern bool aarch64_debug;
 
 /* List of opcodes that we need for building the jump pad and relocating
    an instruction.  */
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
index 6a374bbc74..ef44e68d31 100644
--- a/gdb/arm-linux-nat.c
+++ b/gdb/arm-linux-nat.c
@@ -66,7 +66,7 @@
 #define PTRACE_SETHBPREGS 30
 #endif
 
-extern int arm_apcs_32;
+extern bool arm_apcs_32;
 
 class arm_linux_nat_target final : public linux_nat_target
 {
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index aec20877d9..31ea4564db 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -56,7 +56,7 @@
 #include "user-regs.h"
 #include <ctype.h>
 #include "elf/common.h"
-extern int arm_apcs_32;
+extern bool arm_apcs_32;
 
 /* Under ARM GNU/Linux the traditional way of performing a breakpoint
    is to execute a particular software interrupt, rather than use a
diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c
index 2a83553a3f..38a9e954b9 100644
--- a/gdb/arm-nbsd-nat.c
+++ b/gdb/arm-nbsd-nat.c
@@ -40,7 +40,7 @@ public:
 
 static arm_netbsd_nat_target the_arm_netbsd_nat_target;
 
-extern int arm_apcs_32;
+extern bool arm_apcs_32;
 
 static void
 arm_supply_gregset (struct regcache *regcache, struct reg *gregset)
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 5dcc443122..0650485bf0 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -65,7 +65,7 @@
 #include "gdbsupport/selftest.h"
 #endif
 
-static int arm_debug;
+static bool arm_debug;
 
 /* Macros for setting and testing a bit in a minimal symbol that marks
    it as Thumb function.  The MSB of the minimal symbol's "info" field
@@ -296,7 +296,7 @@ static CORE_ADDR arm_analyze_prologue (struct gdbarch *gdbarch,
 
 /* Set to true if the 32-bit mode is in use.  */
 
-int arm_apcs_32 = 1;
+bool arm_apcs_32 = true;
 
 /* Return the bit mask in ARM_PS_REGNUM that indicates Thumb mode.  */
 
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index 115d5c10e8..9798ab1a06 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -61,7 +61,7 @@ static void maybe_print_script_not_found_warning
    const char *section_name, unsigned offset);
 
 /* Value of the 'set debug auto-load' configuration variable.  */
-static int debug_auto_load = 0;
+static bool debug_auto_load = false;
 
 /* "show" command for the debug_auto_load configuration variable.  */
 
@@ -79,7 +79,7 @@ show_debug_auto_load (struct ui_file *file, int from_tty,
    set auto-load gdb-scripts on|off
    This is true if we should auto-load associated scripts when an objfile
    is opened, false otherwise.  */
-static int auto_load_gdb_scripts = 1;
+static bool auto_load_gdb_scripts = true;
 
 /* "show" command for the auto_load_gdb_scripts configuration variable.  */
 
@@ -110,16 +110,16 @@ auto_load_gdb_scripts_enabled (const struct extension_language_defn *extlang)
    This flag exists to facilitate deferring auto-loading during start-up
    until after ./.gdbinit has been read; it may augment the search directories
    used to find the scripts.  */
-int global_auto_load = 1;
+bool global_auto_load = true;
 
 /* Auto-load .gdbinit file from the current directory?  */
-int auto_load_local_gdbinit = 1;
+bool auto_load_local_gdbinit = true;
 
 /* Absolute pathname to the current directory .gdbinit, if it exists.  */
 char *auto_load_local_gdbinit_pathname = NULL;
 
-/* Boolean value if AUTO_LOAD_LOCAL_GDBINIT_PATHNAME has been loaded.  */
-int auto_load_local_gdbinit_loaded = 0;
+/* if AUTO_LOAD_LOCAL_GDBINIT_PATHNAME has been loaded.  */
+bool auto_load_local_gdbinit_loaded = false;
 
 /* "show" command for the auto_load_local_gdbinit configuration variable.  */
 
diff --git a/gdb/auto-load.h b/gdb/auto-load.h
index 5d5903e119..ab865e9fa5 100644
--- a/gdb/auto-load.h
+++ b/gdb/auto-load.h
@@ -25,11 +25,11 @@ struct program_space;
 struct auto_load_pspace_info;
 struct extension_language_defn;
 
-extern int global_auto_load;
+extern bool global_auto_load;
 
-extern int auto_load_local_gdbinit;
+extern bool auto_load_local_gdbinit;
 extern char *auto_load_local_gdbinit_pathname;
-extern int auto_load_local_gdbinit_loaded;
+extern bool auto_load_local_gdbinit_loaded;
 
 extern struct auto_load_pspace_info *
   get_auto_load_pspace_data_for_loading (struct program_space *pspace);
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 9478d2dcf2..8ef3aac0c1 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -290,7 +290,7 @@ static char *dprintf_channel;
 
 /* True if dprintf commands should continue to operate even if GDB
    has disconnected.  */
-static int disconnected_dprintf = 1;
+static bool disconnected_dprintf = true;
 
 struct command_line *
 breakpoint_commands (struct breakpoint *b)
@@ -301,7 +301,7 @@ breakpoint_commands (struct breakpoint *b)
 /* Flag indicating that a command has proceeded the inferior past the
    current breakpoint.  */
 
-static int breakpoint_proceeded;
+static bool breakpoint_proceeded;
 
 const char *
 bpdisp_text (enum bpdisp disp)
@@ -346,11 +346,11 @@ show_pending_break_support (struct ui_file *file, int from_tty,
 		    value);
 }
 
-/* If 1, gdb will automatically use hardware breakpoints for breakpoints
+/* If true, gdb will automatically use hardware breakpoints for breakpoints
    set with "break" but falling in read-only memory.
-   If 0, gdb will warn about such breakpoints, but won't automatically
+   If false, gdb will warn about such breakpoints, but won't automatically
    use hardware breakpoints.  */
-static int automatic_hardware_breakpoints;
+static bool automatic_hardware_breakpoints;
 static void
 show_automatic_hardware_breakpoints (struct ui_file *file, int from_tty,
 				     struct cmd_list_element *c,
@@ -368,7 +368,7 @@ show_automatic_hardware_breakpoints (struct ui_file *file, int from_tty,
    breakpoints until the next resume, and removes them again when the
    target fully stops.  This is a bit safer in case GDB crashes while
    processing user input.  */
-static int always_inserted_mode = 0;
+static bool always_inserted_mode = false;
 
 static void
 show_always_inserted_mode (struct ui_file *file, int from_tty,
@@ -477,7 +477,7 @@ static int executing_breakpoint_commands;
 static int overlay_events_enabled;
 
 /* See description in breakpoint.h. */
-int target_exact_watchpoints = 0;
+bool target_exact_watchpoints = false;
 
 /* Walk the following statement or block through all breakpoints.
    ALL_BREAKPOINTS_SAFE does so even if the statement deletes the
@@ -15954,7 +15954,7 @@ Usage: agent-printf \"format string\", ARG1, ARG2, ARG3, ..., ARGN\n\
 This supports most C printf format specifications, like %s, %d, etc.\n\
 This is useful for formatted output in user-defined commands."));
 
-  automatic_hardware_breakpoints = 1;
+  automatic_hardware_breakpoints = true;
 
   gdb::observers::about_to_proceed.attach (breakpoint_about_to_proceed);
   gdb::observers::thread_exit.attach (remove_threaded_breakpoints);
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 69a043c767..49380e30c2 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -675,7 +675,7 @@ enum watchpoint_triggered
    only one register per watchpoint, thus assuming that all acesses that
    modify a memory location happen at its starting address. */
 
-extern int target_exact_watchpoints;
+extern bool target_exact_watchpoints;
 
 /* Note that the ->silent field is not currently used by any commands
    (though the code is in there if it was to be, and set_raw_breakpoint
diff --git a/gdb/btrace.c b/gdb/btrace.c
index 466607dbfc..1b809fb5c0 100644
--- a/gdb/btrace.c
+++ b/gdb/btrace.c
@@ -51,7 +51,7 @@ static struct cmd_list_element *maint_btrace_pt_set_cmdlist;
 static struct cmd_list_element *maint_btrace_pt_show_cmdlist;
 
 /* Control whether to skip PAD packets when computing the packet history.  */
-static int maint_btrace_pt_skip_pad = 1;
+static bool maint_btrace_pt_skip_pad = true;
 
 static void btrace_add_pc (struct thread_info *tp);
 
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 4fc656775c..59c71f6756 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -165,7 +165,7 @@ struct cmd_list_element *showchecklist;
 /* Command tracing state.  */
 
 int source_verbose = 0;
-int trace_commands = 0;
+bool trace_commands = false;
 \f
 /* 'script-extension' option support.  */
 
diff --git a/gdb/cli/cli-cmds.h b/gdb/cli/cli-cmds.h
index 5bfffde04a..1a8b9a0d50 100644
--- a/gdb/cli/cli-cmds.h
+++ b/gdb/cli/cli-cmds.h
@@ -139,7 +139,7 @@ extern gdb::optional<open_script>
 /* Command tracing state.  */
 
 extern int source_verbose;
-extern int trace_commands;
+extern bool trace_commands;
 
 /* Common code for the "with" and "maintenance with" commands.
    SET_CMD_PREFIX is the spelling of the corresponding "set" command
diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index 7d4b39f467..debffbc0f7 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -589,7 +589,7 @@ const char * const boolean_enums[] = { "on", "off", NULL };
    Returns the new command element.  */
 
 cmd_list_element *
-add_setshow_boolean_cmd (const char *name, enum command_class theclass, int *var,
+add_setshow_boolean_cmd (const char *name, enum command_class theclass, bool *var,
 			 const char *set_doc, const char *show_doc,
 			 const char *help_doc,
 			 cmd_const_sfunc_ftype *set_func,
diff --git a/gdb/cli/cli-logging.c b/gdb/cli/cli-logging.c
index 9e39be197b..22b540b481 100644
--- a/gdb/cli/cli-logging.c
+++ b/gdb/cli/cli-logging.c
@@ -33,7 +33,7 @@ show_logging_filename (struct ui_file *file, int from_tty,
 		    value);
 }
 
-static int logging_overwrite;
+static bool logging_overwrite;
 
 static void
 maybe_warn_already_logging ()
@@ -61,8 +61,8 @@ show_logging_overwrite (struct ui_file *file, int from_tty,
 }
 
 /* Value as configured by the user.  */
-static int logging_redirect;
-static int debug_redirect;
+static bool logging_redirect;
+static bool debug_redirect;
 
 static void
 set_logging_redirect (const char *args,
diff --git a/gdb/cli/cli-option.h b/gdb/cli/cli-option.h
index d231d8b1ad..3fd0c0cdae 100644
--- a/gdb/cli/cli-option.h
+++ b/gdb/cli/cli-option.h
@@ -82,7 +82,7 @@ public:
      returns the address of some member.  */
   union
     {
-      int *(*boolean) (const option_def &, void *ctx);
+      bool *(*boolean) (const option_def &, void *ctx);
       unsigned int *(*uinteger) (const option_def &, void *ctx);
       int *(*integer) (const option_def &, void *ctx);
       const char **(*enumeration) (const option_def &, void *ctx);
@@ -155,7 +155,7 @@ template<typename Context>
 struct boolean_option_def : option_def
 {
   boolean_option_def (const char *long_option_,
-		      int *(*get_var_address_cb_) (Context *),
+		      bool *(*get_var_address_cb_) (Context *),
 		      show_value_ftype *show_cmd_cb_,
 		      const char *set_doc_,
 		      const char *show_doc_ = nullptr,
@@ -165,7 +165,7 @@ struct boolean_option_def : option_def
 		  show_cmd_cb_,
 		  set_doc_, show_doc_, help_doc_)
   {
-    var_address.boolean = detail::get_var_address<int, Context>;
+    var_address.boolean = detail::get_var_address<bool, Context>;
   }
 };
 
@@ -173,11 +173,11 @@ struct boolean_option_def : option_def
    hood, but unlike boolean options, flag options don't take an on/off
    argument.  */
 
-template<typename Context = int>
+template<typename Context = bool>
 struct flag_option_def : boolean_option_def<Context>
 {
   flag_option_def (const char *long_option_,
-		     int *(*var_address_cb_) (Context *),
+		     bool *(*var_address_cb_) (Context *),
 		     const char *set_doc_,
 		     const char *help_doc_ = nullptr)
     : boolean_option_def<Context> (long_option_,
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
index 40538832b5..d8391597ac 100644
--- a/gdb/cli/cli-setshow.c
+++ b/gdb/cli/cli-setshow.c
@@ -416,9 +416,9 @@ do_set_command (const char *arg, int from_tty, struct cmd_list_element *c)
 
 	if (val < 0)
 	  error (_("\"on\" or \"off\" expected."));
-	if (val != *(int *) c->var)
+	if (val != *(bool *) c->var)
 	  {
-	    *(int *) c->var = val;
+	    *(bool *) c->var = val;
 
 	    option_changed = 1;
 	  }
@@ -588,7 +588,7 @@ do_set_command (const char *arg, int from_tty, struct cmd_list_element *c)
 	  break;
 	case var_boolean:
 	  {
-	    const char *opt = *(int *) c->var ? "on" : "off";
+	    const char *opt = *(bool *) c->var ? "on" : "off";
 
 	    gdb::observers::command_param_changed.notify (name, opt);
 	  }
@@ -645,7 +645,7 @@ get_setshow_command_value_string (cmd_list_element *c)
 	stb.puts (*(char **) c->var);
       break;
     case var_boolean:
-      stb.puts (*(int *) c->var ? "on" : "off");
+      stb.puts (*(bool *) c->var ? "on" : "off");
       break;
     case var_auto_boolean:
       switch (*(enum auto_boolean*) c->var)
diff --git a/gdb/cli/cli-style.c b/gdb/cli/cli-style.c
index e594e38cd6..ea301774d2 100644
--- a/gdb/cli/cli-style.c
+++ b/gdb/cli/cli-style.c
@@ -26,15 +26,15 @@
 /* True if styling is enabled.  */
 
 #if defined (__MSDOS__) || defined (__CYGWIN__)
-int cli_styling = 0;
+bool cli_styling = false;
 #else
-int cli_styling = 1;
+bool cli_styling = true;
 #endif
 
 /* True if source styling is enabled.  Note that this is only
    consulted when cli_styling is true.  */
 
-int source_styling = 1;
+bool source_styling = true;
 
 /* Name of colors; must correspond to ui_file_style::basic_color.  */
 static const char * const cli_colors[] = {
diff --git a/gdb/cli/cli-style.h b/gdb/cli/cli-style.h
index cdcea84f0e..826162f578 100644
--- a/gdb/cli/cli-style.h
+++ b/gdb/cli/cli-style.h
@@ -110,9 +110,9 @@ extern cli_style_option title_style;
 
 
 /* True if source styling is enabled.  */
-extern int source_styling;
+extern bool source_styling;
 
 /* True if styling is enabled.  */
-extern int cli_styling;
+extern bool cli_styling;
 
 #endif /* CLI_CLI_STYLE_H */
diff --git a/gdb/cli/cli-utils.h b/gdb/cli/cli-utils.h
index cbe8ff66e1..33b8663e9a 100644
--- a/gdb/cli/cli-utils.h
+++ b/gdb/cli/cli-utils.h
@@ -215,9 +215,9 @@ check_for_argument (char **str, const char *arg)
 
 struct qcs_flags
 {
-  int quiet = false;
-  int cont = false;
-  int silent = false;
+  bool quiet = false;
+  bool cont = false;
+  bool silent = false;
 };
 
 /* Validate FLAGS.  Throws an error if both FLAGS->CONT and
diff --git a/gdb/command.h b/gdb/command.h
index 2c608048d5..cf190ef649 100644
--- a/gdb/command.h
+++ b/gdb/command.h
@@ -62,8 +62,8 @@ cmd_types;
 /* Types of "set" or "show" command.  */
 typedef enum var_types
   {
-    /* "on" or "off".  *VAR is an integer which is nonzero for on,
-       zero for off.  */
+    /* "on" or "off".  *VAR is a bool which is true for on,
+       false for off.  */
     var_boolean,
 
     /* "on" / "true" / "enable" or "off" / "false" / "disable" or
@@ -331,7 +331,7 @@ extern void add_setshow_auto_boolean_cmd (const char *name,
 extern cmd_list_element *
   add_setshow_boolean_cmd (const char *name,
 			   enum command_class theclass,
-			   int *var,
+			   bool *var,
 			   const char *set_doc, const char *show_doc,
 			   const char *help_doc,
 			   cmd_const_sfunc_ftype *set_func,
diff --git a/gdb/compile/compile-cplus-types.c b/gdb/compile/compile-cplus-types.c
index 3a7c8b01f7..042c2afbe9 100644
--- a/gdb/compile/compile-cplus-types.c
+++ b/gdb/compile/compile-cplus-types.c
@@ -41,11 +41,11 @@ const char *compile_cplus_instance::m_default_cflags = "-std=gnu++11";
 
 /* Flag to enable internal debugging.  */
 
-static int debug_compile_cplus_types = 0;
+static bool debug_compile_cplus_types = false;
 
 /* Flag to enable internal scope switching debugging.  */
 
-static int debug_compile_cplus_scopes = 0;
+static bool debug_compile_cplus_scopes = false;
 
 /* Forward declarations.  */
 
diff --git a/gdb/compile/compile-internal.h b/gdb/compile/compile-internal.h
index 406a369d68..9c0e989410 100644
--- a/gdb/compile/compile-internal.h
+++ b/gdb/compile/compile-internal.h
@@ -21,7 +21,7 @@
 
 /* Debugging flag for the "compile" family of commands.  */
 
-extern int compile_debug;
+extern bool compile_debug;
 
 struct block;
 
diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c
index 87970d2c94..5c3400ffec 100644
--- a/gdb/compile/compile.c
+++ b/gdb/compile/compile.c
@@ -56,7 +56,7 @@ static struct cmd_list_element *compile_command_list;
 
 /* Debug flag for "compile" commands.  */
 
-int compile_debug;
+bool compile_debug;
 
 /* Object of this type are stored in the compiler's symbol_err_map.  */
 
@@ -241,7 +241,7 @@ show_compile_debug (struct ui_file *file, int from_tty,
 struct compile_options
 {
   /* For -raw.  */
-  int raw = false;
+  bool raw = false;
 };
 
 using compile_flag_option_def
diff --git a/gdb/cp-support.c b/gdb/cp-support.c
index b8b0fcc0ae..cd732b60e7 100644
--- a/gdb/cp-support.c
+++ b/gdb/cp-support.c
@@ -1469,10 +1469,10 @@ cp_lookup_rtti_type (const char *name, const struct block *block)
 
 #ifdef HAVE_WORKING_FORK
 
-/* If nonzero, attempt to catch crashes in the demangler and print
+/* If true, attempt to catch crashes in the demangler and print
    useful debugging information.  */
 
-static int catch_demangler_crashes = 1;
+static bool catch_demangler_crashes = true;
 
 /* Stack context and environment for demangler crash recovery.  */
 
diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c
index 8eda05806f..706f65db28 100644
--- a/gdb/cris-tdep.c
+++ b/gdb/cris-tdep.c
@@ -148,7 +148,7 @@ extern const struct cris_spec_reg cris_spec_regs[];
 static unsigned int usr_cmd_cris_version;
 
 /* Indicates whether to trust the above variable.  */
-static int usr_cmd_cris_version_valid = 0;
+static bool usr_cmd_cris_version_valid = false;
 
 static const char cris_mode_normal[] = "normal";
 static const char cris_mode_guru[] = "guru";
@@ -163,7 +163,7 @@ static const char *const cris_modes[] = {
 static const char *usr_cmd_cris_mode = cris_mode_normal;
 
 /* Whether to make use of Dwarf-2 CFI (default on).  */
-static int usr_cmd_cris_dwarf2_cfi = 1;
+static bool usr_cmd_cris_dwarf2_cfi = true;
 
 /* Sigtramp identification code copied from i386-linux-tdep.c.  */
 
diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c
index 54b856af06..a6f78a187c 100644
--- a/gdb/csky-tdep.c
+++ b/gdb/csky-tdep.c
@@ -59,7 +59,7 @@
 #include <vector>
 
 /* Control debugging information emitted in this file.  */
-static int csky_debug = 0;
+static bool csky_debug = false;
 
 static struct reggroup *cr_reggroup;
 static struct reggroup *fr_reggroup;
diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c
index 8f71def069..ceef36473d 100644
--- a/gdb/darwin-nat.c
+++ b/gdb/darwin-nat.c
@@ -120,7 +120,7 @@ static vm_size_t mach_page_size;
 
 /* If Set, catch all mach exceptions (before they are converted to signals
    by the kernel).  */
-static int enable_mach_exceptions;
+static bool enable_mach_exceptions;
 
 /* Inferior that should report a fake stop event.  */
 static struct inferior *darwin_inf_fake_stop;
diff --git a/gdb/dcache.c b/gdb/dcache.c
index 1716def4c4..509782c319 100644
--- a/gdb/dcache.c
+++ b/gdb/dcache.c
@@ -126,7 +126,7 @@ static int dcache_read_line (DCACHE *dcache, struct dcache_block *db);
 
 static struct dcache_block *dcache_alloc (DCACHE *dcache, CORE_ADDR addr);
 
-static int dcache_enabled_p = 0; /* OBSOLETE */
+static bool dcache_enabled_p = false; /* OBSOLETE */
 
 static void
 show_dcache_enabled_p (struct ui_file *file, int from_tty,
diff --git a/gdb/defs.h b/gdb/defs.h
index c9a38b60a6..f12ba366cc 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -314,7 +314,7 @@ struct ui;
 
 extern int input_interactive_p (struct ui *);
 
-extern int info_verbose;
+extern bool info_verbose;
 
 /* From printcmd.c */
 
diff --git a/gdb/demangle.c b/gdb/demangle.c
index 29f46968a2..cfe3421b23 100644
--- a/gdb/demangle.c
+++ b/gdb/demangle.c
@@ -44,7 +44,7 @@
 #endif
 
 /* See documentation in gdb-demangle.h.  */
-int demangle = 1;
+bool demangle = true;
 
 static void
 show_demangle (struct ui_file *file, int from_tty,
@@ -57,7 +57,7 @@ show_demangle (struct ui_file *file, int from_tty,
 }
 
 /* See documentation in gdb-demangle.h.  */
-int asm_demangle = 0;
+bool asm_demangle = false;
 
 static void
 show_asm_demangle (struct ui_file *file, int from_tty,
diff --git a/gdb/dwarf-index-cache.c b/gdb/dwarf-index-cache.c
index e56cb59343..d00d6511ab 100644
--- a/gdb/dwarf-index-cache.c
+++ b/gdb/dwarf-index-cache.c
@@ -32,8 +32,8 @@
 #include <string>
 #include <stdlib.h>
 
-/* When set to 1, show debug messages about the index cache.  */
-static int debug_index_cache = 0;
+/* When set to true, show debug messages about the index cache.  */
+static bool debug_index_cache = false;
 
 /* The index cache directory, used for "set/show index-cache directory".  */
 static char *index_cache_directory = NULL;
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c
index 7839942b8c..e18b35e7db 100644
--- a/gdb/dwarf2-frame.c
+++ b/gdb/dwarf2-frame.c
@@ -171,7 +171,7 @@ static CORE_ADDR read_encoded_value (struct comp_unit *unit, gdb_byte encoding,
 \f
 
 /* See dwarf2-frame.h.  */
-int dwarf2_frame_unwinders_enabled_p = 1;
+bool dwarf2_frame_unwinders_enabled_p = true;
 
 /* Store the length the expression for the CFA in the `cfa_reg' field,
    which is unused in that case.  */
diff --git a/gdb/dwarf2-frame.h b/gdb/dwarf2-frame.h
index 6caf82ae0f..3c54f0950e 100644
--- a/gdb/dwarf2-frame.h
+++ b/gdb/dwarf2-frame.h
@@ -201,7 +201,7 @@ struct dwarf2_frame_state
    registered with the gdbarch.  Not all architectures can or do use the
    DWARF unwinders.  Setting this to true on a target that does not
    otherwise support the DWARF unwinders has no effect.  */
-extern int dwarf2_frame_unwinders_enabled_p;
+extern bool dwarf2_frame_unwinders_enabled_p;
 
 /* Set the architecture-specific register state initialization
    function for GDBARCH to INIT_REG.  */
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index a2b80ebbc1..ea9904c416 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -102,11 +102,11 @@ static unsigned int dwarf_die_debug = 0;
 /* When non-zero, dump line number entries as they are read in.  */
 static unsigned int dwarf_line_debug = 0;
 
-/* When non-zero, cross-check physname against demangler.  */
-static int check_physname = 0;
+/* When true, cross-check physname against demangler.  */
+static bool check_physname = false;
 
-/* When non-zero, do not reject deprecated .gdb_index sections.  */
-static int use_deprecated_index_sections = 0;
+/* When true, do not reject deprecated .gdb_index sections.  */
+static bool use_deprecated_index_sections = false;
 
 static const struct objfile_key<dwarf2_per_objfile> dwarf2_objfile_data_key;
 
@@ -25837,7 +25837,7 @@ show_dwarf_cmd (const char *args, int from_tty)
   cmd_show_list (show_dwarf_cmdlist, from_tty, "");
 }
 
-int dwarf_always_disassemble;
+bool dwarf_always_disassemble;
 
 static void
 show_dwarf_always_disassemble (struct ui_file *file, int from_tty,
diff --git a/gdb/eval.c b/gdb/eval.c
index aed89e5f85..f8915b9957 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -43,7 +43,7 @@
 #include <ctype.h>
 
 /* This is defined in valops.c */
-extern int overload_resolution;
+extern bool overload_resolution;
 
 /* Prototypes for local functions.  */
 
diff --git a/gdb/event-top.c b/gdb/event-top.c
index 2132fb550d..0b05b2f85a 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -86,11 +86,11 @@ static void async_sigterm_handler (gdb_client_data arg);
    ezannoni: as of 1999-04-29 I expect that this
    variable will not be used after gdb is changed to use the event
    loop as default engine, and event-top.c is merged into top.c.  */
-int set_editing_cmd_var;
+bool set_editing_cmd_var;
 
 /* This is used to display the notification of the completion of an
    asynchronous execution command.  */
-int exec_done_display_p = 0;
+bool exec_done_display_p = false;
 
 /* Used by the stdin event handler to compensate for missed stdin events.
    Setting this to a non-zero value inside an stdin callback makes the callback
diff --git a/gdb/event-top.h b/gdb/event-top.h
index 4c3e6cb861..1dc7b13d4f 100644
--- a/gdb/event-top.h
+++ b/gdb/event-top.h
@@ -52,8 +52,8 @@ extern void async_enable_stdin (void);
 /* Exported variables from event-top.c.
    FIXME: these should really go into top.h.  */
 
-extern int set_editing_cmd_var;
-extern int exec_done_display_p;
+extern bool set_editing_cmd_var;
+extern bool exec_done_display_p;
 extern struct prompts the_prompts;
 extern void (*after_char_processing_hook) (void);
 extern int call_stdin_event_handler_again_p;
diff --git a/gdb/exec.c b/gdb/exec.c
index 3098fcaadd..4e4cacffda 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -84,7 +84,7 @@ static exec_target exec_ops;
 
 /* Whether to open exec and core files read-only or read-write.  */
 
-int write_files = 0;
+bool write_files = false;
 static void
 show_write_files (struct ui_file *file, int from_tty,
 		  struct cmd_list_element *c, const char *value)
diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c
index 5f121fc6f2..0274ff542e 100644
--- a/gdb/fbsd-nat.c
+++ b/gdb/fbsd-nat.c
@@ -832,8 +832,8 @@ fbsd_nat_target::xfer_partial (enum target_object object,
 }
 
 #ifdef PT_LWPINFO
-static int debug_fbsd_lwp;
-static int debug_fbsd_nat;
+static bool debug_fbsd_lwp;
+static bool debug_fbsd_nat;
 
 static void
 show_fbsd_lwp_debug (struct ui_file *file, int from_tty,
diff --git a/gdb/frame.h b/gdb/frame.h
index 09842c92a3..624bc87c9d 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -808,9 +808,9 @@ struct frame_print_options
   const char *print_frame_info = print_frame_info_auto;
   const char *print_entry_values = print_entry_values_default;
 
-  /* If non-zero, don't invoke pretty-printers for frame
+  /* If true, don't invoke pretty-printers for frame
      arguments.  */
-  int print_raw_frame_arguments;
+  bool print_raw_frame_arguments;
 };
 
 /* The values behind the global "set print ..." settings.  */
@@ -931,11 +931,11 @@ struct set_backtrace_options
 {
   /* Flag to indicate whether backtraces should continue past
      main.  */
-  int backtrace_past_main = 0;
+  bool backtrace_past_main = false;
 
   /* Flag to indicate whether backtraces should continue past
      entry.  */
-  int backtrace_past_entry = 0;
+  bool backtrace_past_entry = false;
 
   /* Upper bound on the number of backtrace levels.  Note this is not
      exposed as a command option, because "backtrace" and "frame
diff --git a/gdb/gdb-demangle.h b/gdb/gdb-demangle.h
index 9c944a5017..327a63313b 100644
--- a/gdb/gdb-demangle.h
+++ b/gdb/gdb-demangle.h
@@ -19,14 +19,14 @@
 #ifndef GDB_DEMANGLE_H
 #define GDB_DEMANGLE_H
 
-/* Nonzero means that encoded C++/ObjC names should be printed out in their
+/* True means that encoded C++/ObjC names should be printed out in their
    C++/ObjC form rather than raw.  */
-extern int demangle;
+extern bool demangle;
 
-/* Nonzero means that encoded C++/ObjC names should be printed out in their
+/* True means that encoded C++/ObjC names should be printed out in their
    C++/ObjC form even in assembler language displays.  If this is set, but
-   DEMANGLE is zero, names are printed raw, i.e. DEMANGLE controls.  */
-extern int asm_demangle;
+   DEMANGLE is false, names are printed raw, i.e. DEMANGLE controls.  */
+extern bool asm_demangle;
 
 /* Check if a character is one of the commonly used C++ marker characters.  */
 extern int is_cplus_marker (int);
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index d3b4c749f5..a17460a8a0 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -137,7 +137,7 @@ static htab_t gdb_bfd_cache;
 /* When true gdb will reuse an existing bfd object if the filename,
    modification time, and file size all match.  */
 
-static int bfd_sharing = 1;
+static bool bfd_sharing = true;
 static void
 show_bfd_sharing  (struct ui_file *file, int from_tty,
 		   struct cmd_list_element *c, const char *value)
diff --git a/gdb/gdbcore.h b/gdb/gdbcore.h
index 6f9b4d88ec..cac91c097b 100644
--- a/gdb/gdbcore.h
+++ b/gdb/gdbcore.h
@@ -137,7 +137,7 @@ extern void specify_exec_file_hook (void (*hook) (const char *filename));
 
 /* Whether to open exec and core files read-only or read-write.  */
 
-extern int write_files;
+extern bool write_files;
 
 /* Open and set up the core file bfd.  */
 
diff --git a/gdb/gdbsupport/common-debug.c b/gdb/gdbsupport/common-debug.c
index 97c90032eb..7e7e5c3f01 100644
--- a/gdb/gdbsupport/common-debug.c
+++ b/gdb/gdbsupport/common-debug.c
@@ -22,7 +22,7 @@
 
 /* See gdbsupport/common-debug.h.  */
 
-int show_debug_regs;
+bool show_debug_regs;
 
 /* See gdbsupport/common-debug.h.  */
 
diff --git a/gdb/gdbsupport/common-debug.h b/gdb/gdbsupport/common-debug.h
index d5bfc9eb3a..5584f09844 100644
--- a/gdb/gdbsupport/common-debug.h
+++ b/gdb/gdbsupport/common-debug.h
@@ -20,10 +20,10 @@
 #ifndef COMMON_COMMON_DEBUG_H
 #define COMMON_COMMON_DEBUG_H
 
-/* Set to nonzero to enable debugging of hardware breakpoint/
+/* Set to true to enable debugging of hardware breakpoint/
    watchpoint support code.  */
 
-extern int show_debug_regs;
+extern bool show_debug_regs;
 
 /* Print a formatted message to the appropriate channel for
    debugging output for the client.  */
diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h
index 04230d3c17..0daea9c2da 100644
--- a/gdb/gdbthread.h
+++ b/gdb/gdbthread.h
@@ -623,7 +623,7 @@ extern void thread_command (const char *tidstr, int from_tty);
 
 /* Print notices on thread events (attach, detach, etc.), set with
    `set print thread-events'.  */
-extern int print_thread_events;
+extern bool print_thread_events;
 
 /* Prints the list of threads and their details on UIOUT.  If
    REQUESTED_THREADS, a list of GDB ids/ranges, is not NULL, only
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 4bc02e08f9..afda89e43f 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -116,7 +116,7 @@ const struct floatformat *floatformats_ibm_long_double[BFD_ENDIAN_UNKNOWN] = {
 
 /* Should opaque types be resolved?  */
 
-static int opaque_type_resolution = 1;
+static bool opaque_type_resolution = true;
 
 /* A flag to enable printing of debugging information of C++
    overloading.  */
@@ -125,7 +125,7 @@ unsigned int overload_debug = 0;
 
 /* A flag to enable strict type checking.  */
 
-static int strict_type_checking = 1;
+static bool strict_type_checking = true;
 
 /* A function to show whether opaque types are resolved.  */
 
diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
index 80e78e859b..b55c75b097 100644
--- a/gdb/gnu-nat.c
+++ b/gdb/gnu-nat.c
@@ -93,7 +93,7 @@ int proc_wait_pid = 0;
 /* The number of wait requests we've sent, and expect replies from.  */
 int proc_waits_pending = 0;
 
-int gnu_debug_flag = 0;
+bool gnu_debug_flag = false;
 
 /* Forward decls */
 
diff --git a/gdb/guile/scm-auto-load.c b/gdb/guile/scm-auto-load.c
index cadf987b6f..4685969348 100644
--- a/gdb/guile/scm-auto-load.c
+++ b/gdb/guile/scm-auto-load.c
@@ -30,7 +30,7 @@
    set auto-load guile-scripts on|off
    This is true if we should auto-load associated Guile scripts when an
    objfile is opened, false otherwise.  */
-static int auto_load_guile_scripts = 1;
+static bool auto_load_guile_scripts = true;
 
 /* "show" command for the auto_load_guile_scripts configuration variable.  */
 
diff --git a/gdb/guile/scm-param.c b/gdb/guile/scm-param.c
index 53120cb23e..6d24c2c37b 100644
--- a/gdb/guile/scm-param.c
+++ b/gdb/guile/scm-param.c
@@ -31,7 +31,10 @@
 
 union pascm_variable
 {
-  /* Hold an integer value, for boolean and integer types.  */
+  /* Hold an boolean value.  */
+  bool boolval;
+
+  /* Hold an integer value.  */
   int intval;
 
   /* Hold an auto_boolean.  */
@@ -365,7 +368,7 @@ add_setshow_generic (enum var_types param_type, enum command_class cmd_class,
     {
     case var_boolean:
       add_setshow_boolean_cmd (cmd_name, cmd_class,
-			       &self->value.intval,
+			       &self->value.boolval,
 			       set_doc, show_doc, help_doc,
 			       set_func, show_func,
 			       set_list, show_list);
@@ -606,7 +609,7 @@ pascm_param_value (enum var_types type, void *var,
 
     case var_boolean:
       {
-	if (* (int *) var)
+	if (* (bool *) var)
 	  return SCM_BOOL_T;
 	else
 	  return SCM_BOOL_F;
@@ -717,7 +720,7 @@ pascm_set_param_value_x (enum var_types type, union pascm_variable *var,
     case var_boolean:
       SCM_ASSERT_TYPE (gdbscm_is_bool (value), value, arg_pos, func_name,
 		       _("boolean"));
-      var->intval = gdbscm_is_true (value);
+      var->boolval = gdbscm_is_true (value);
       break;
 
     case var_auto_boolean:
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index be30359638..b1f71883ec 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -41,7 +41,7 @@
 #include "hppa-tdep.h"
 #include <algorithm>
 
-static int hppa_debug = 0;
+static bool hppa_debug = false;
 
 /* Some local constants.  */
 static const int hppa32_num_regs = 128;
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 23f17ee0e2..726f14d525 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -55,7 +55,7 @@
    asynchronous inferior function call implementation, and that in
    turn means restructuring the code so that it is event driven.  */
 
-static int may_call_functions_p = 1;
+static bool may_call_functions_p = true;
 static void
 show_may_call_functions_p (struct ui_file *file, int from_tty,
 			   struct cmd_list_element *c,
@@ -86,7 +86,7 @@ show_may_call_functions_p (struct ui_file *file, int from_tty,
    trust the debug information; the user can override this behavior
    with "set coerce-float-to-double 0".  */
 
-static int coerce_float_to_double_p = 1;
+static bool coerce_float_to_double_p = true;
 static void
 show_coerce_float_to_double_p (struct ui_file *file, int from_tty,
 			       struct cmd_list_element *c, const char *value)
@@ -104,7 +104,7 @@ show_coerce_float_to_double_p (struct ui_file *file, int from_tty,
 
    The default is to stop in the frame where the signal was received.  */
 
-static int unwind_on_signal_p = 0;
+static bool unwind_on_signal_p = false;
 static void
 show_unwind_on_signal_p (struct ui_file *file, int from_tty,
 			 struct cmd_list_element *c, const char *value)
@@ -127,7 +127,7 @@ show_unwind_on_signal_p (struct ui_file *file, int from_tty,
    The default is to unwind the frame if a std::terminate call is
    made.  */
 
-static int unwind_on_terminating_exception_p = 1;
+static bool unwind_on_terminating_exception_p = true;
 
 static void
 show_unwind_on_terminating_exception_p (struct ui_file *file, int from_tty,
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index d7a7e6f933..dc82ef043f 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -105,7 +105,7 @@ int stopped_by_random_signal;
 
 /* See inferior.h.  */
 
-int startup_with_shell = 1;
+bool startup_with_shell = true;
 
 \f
 /* Accessor routines.  */
diff --git a/gdb/inferior.c b/gdb/inferior.c
index 2d58a11ba8..cf2175494d 100644
--- a/gdb/inferior.c
+++ b/gdb/inferior.c
@@ -46,7 +46,7 @@ struct inferior *inferior_list = NULL;
 static int highest_inferior_num;
 
 /* See inferior.h.  */
-int print_inferior_events = 1;
+bool print_inferior_events = true;
 
 /* The Current Inferior.  This is a strong reference.  I.e., whenever
    an inferior is the current inferior, its refcount is
diff --git a/gdb/inferior.h b/gdb/inferior.h
index 9cfb03cdbb..3a64a7cfea 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -244,7 +244,7 @@ extern void prepare_execution_command (struct target_ops *target,
 
    The catch-exec traps expected during start-up will be one more if
    the target is started up with a shell.  */
-extern int startup_with_shell;
+extern bool startup_with_shell;
 
 /* Nonzero if stopped due to completion of a stack dummy routine.  */
 
@@ -257,7 +257,7 @@ extern int stopped_by_random_signal;
 
 /* Print notices on inferior events (attach, detach, etc.), set with
    `set print inferior-events'.  */
-extern int print_inferior_events;
+extern bool print_inferior_events;
 
 /* Anything but NO_STOP_QUIETLY means we expect a trap and the caller
    will handle it themselves.  STOP_QUIETLY is used when running in
diff --git a/gdb/infrun.c b/gdb/infrun.c
index a9588f896a..be29cbe4f5 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -136,7 +136,7 @@ mark_infrun_async_event_handler (void)
 /* When set, stop the 'step' command if we enter a function which has
    no line number information.  The normal behavior is that we step
    over such function.  */
-int step_stop_if_no_debug = 0;
+bool step_stop_if_no_debug = false;
 static void
 show_step_stop_if_no_debug (struct ui_file *file, int from_tty,
 			    struct cmd_list_element *c, const char *value)
@@ -155,9 +155,9 @@ static ptid_t previous_inferior_ptid;
    Exactly which branch is detached depends on 'set follow-fork-mode'
    setting.  */
 
-static int detach_fork = 1;
+static bool detach_fork = true;
 
-int debug_displaced = 0;
+bool debug_displaced = false;
 static void
 show_debug_displaced (struct ui_file *file, int from_tty,
 		      struct cmd_list_element *c, const char *value)
@@ -176,7 +176,7 @@ show_debug_infrun (struct ui_file *file, int from_tty,
 
 /* Support for disabling address space randomization.  */
 
-int disable_randomization = 1;
+bool disable_randomization = true;
 
 static void
 show_disable_randomization (struct ui_file *file, int from_tty,
@@ -205,8 +205,8 @@ set_disable_randomization (const char *args, int from_tty,
 
 /* User interface for non-stop mode.  */
 
-int non_stop = 0;
-static int non_stop_1 = 0;
+bool non_stop = false;
+static bool non_stop_1 = false;
 
 static void
 set_non_stop (const char *args, int from_tty,
@@ -234,8 +234,8 @@ show_non_stop (struct ui_file *file, int from_tty,
    non-stop, in which all GDB operations that might affect the
    target's execution have been disabled.  */
 
-int observer_mode = 0;
-static int observer_mode_1 = 0;
+bool observer_mode = false;
+static bool observer_mode_1 = false;
 
 static void
 set_observer_mode (const char *args, int from_tty,
@@ -256,7 +256,7 @@ set_observer_mode (const char *args, int from_tty,
   /* We can insert fast tracepoints in or out of observer mode,
      but enable them if we're going into this mode.  */
   if (observer_mode)
-    may_insert_fast_tracepoints = 1;
+    may_insert_fast_tracepoints = true;
   may_stop = !observer_mode;
   update_target_permissions ();
 
@@ -265,7 +265,7 @@ set_observer_mode (const char *args, int from_tty,
   if (observer_mode)
     {
       pagination_enabled = 0;
-      non_stop = non_stop_1 = 1;
+      non_stop = non_stop_1 = true;
     }
 
   if (from_tty)
@@ -289,13 +289,11 @@ show_observer_mode (struct ui_file *file, int from_tty,
 void
 update_observer_mode (void)
 {
-  int newval;
-
-  newval = (!may_insert_breakpoints
-	    && !may_insert_tracepoints
-	    && may_insert_fast_tracepoints
-	    && !may_stop
-	    && non_stop);
+  bool newval = (!may_insert_breakpoints
+		 && !may_insert_tracepoints
+		 && may_insert_fast_tracepoints
+		 && !may_stop
+		 && non_stop);
 
   /* Let the user know if things change.  */
   if (newval != observer_mode)
@@ -2089,7 +2087,7 @@ set_schedlock_func (const char *args, int from_tty, struct cmd_list_element *c)
 /* True if execution commands resume all threads of all processes by
    default; otherwise, resume only threads of the current inferior
    process.  */
-int sched_multi = 0;
+bool sched_multi = false;
 
 /* Try to setup for software single stepping over the specified location.
    Return 1 if target_resume() should use hardware single step.
diff --git a/gdb/infrun.h b/gdb/infrun.h
index 30374ee51c..2b2a3a3e44 100644
--- a/gdb/infrun.h
+++ b/gdb/infrun.h
@@ -30,7 +30,7 @@ struct return_value_info;
 extern unsigned int debug_infrun;
 
 /* True if we are debugging displaced stepping.  */
-extern int debug_displaced;
+extern bool debug_displaced;
 
 /* Nonzero if we want to give control to the user when we're notified
    of shared library events by the dynamic linker.  */
@@ -39,24 +39,24 @@ extern int stop_on_solib_events;
 /* True if execution commands resume all threads of all processes by
    default; otherwise, resume only threads of the current inferior
    process.  */
-extern int sched_multi;
+extern bool sched_multi;
 
 /* When set, stop the 'step' command if we enter a function which has
    no line number information.  The normal behavior is that we step
    over such function.  */
-extern int step_stop_if_no_debug;
+extern bool step_stop_if_no_debug;
 
 /* If set, the inferior should be controlled in non-stop mode.  In
    this mode, each thread is controlled independently.  Execution
    commands apply only to the selected thread by default, and stop
    events stop only the thread that had the event -- the other threads
    are kept running freely.  */
-extern int non_stop;
+extern bool non_stop;
 
 /* When set (default), the target should attempt to disable the
    operating system's address space randomization feature when
    starting an inferior.  */
-extern int disable_randomization;
+extern bool disable_randomization;
 
 /* Returns a unique identifier for the current stop.  This can be used
    to tell whether a command has proceeded the inferior past the
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 7d0c3e9fc9..ff888a9067 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -91,12 +91,12 @@ struct smaps_vmflags
 /* Whether to take the /proc/PID/coredump_filter into account when
    generating a corefile.  */
 
-static int use_coredump_filter = 1;
+static bool use_coredump_filter = true;
 
 /* Whether the value of smaps_vmflags->exclude_coredump should be
    ignored, including mappings marked with the VM_DONTDUMP flag in
    the dump.  */
-static int dump_excluded_mappings = 0;
+static bool dump_excluded_mappings = false;
 
 /* This enum represents the signals' numbers on a generic architecture
    running the Linux kernel.  The definition of "generic" comes from
diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c
index 1d32e9195c..100434e2c9 100644
--- a/gdb/linux-thread-db.c
+++ b/gdb/linux-thread-db.c
@@ -110,13 +110,13 @@ public:
 
 static char *libthread_db_search_path;
 
-/* Set to non-zero if thread_db auto-loading is enabled
+/* Set to true if thread_db auto-loading is enabled
    by the "set auto-load libthread-db" command.  */
-static int auto_load_thread_db = 1;
+static bool auto_load_thread_db = true;
 
-/* Set to non-zero if load-time libthread_db tests have been enabled
+/* Set to true if load-time libthread_db tests have been enabled
    by the "maintenence set check-libthread-db" command.  */
-static int check_thread_db_on_load = 0;
+static bool check_thread_db_on_load = false;
 
 /* "show" command for the auto_load_thread_db configuration variable.  */
 
diff --git a/gdb/main.c b/gdb/main.c
index 6b75fced23..7fab8ff8da 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -594,6 +594,9 @@ captured_main_1 (struct captured_main_args *context)
       OPT_READNOW,
       OPT_READNEVER
     };
+    /* This struct requires int* in the struct, but write_files is a bool.
+       So use this temporary int that we write back after argument parsing.  */
+    int write_files_1 = 0;
     static struct option long_options[] =
     {
       {"tui", no_argument, 0, OPT_TUI},
@@ -658,7 +661,7 @@ captured_main_1 (struct captured_main_args *context)
       {"w", no_argument, NULL, OPT_WINDOWS},
       {"windows", no_argument, NULL, OPT_WINDOWS},
       {"statistics", no_argument, 0, OPT_STATISTICS},
-      {"write", no_argument, &write_files, 1},
+      {"write", no_argument, &write_files_1, 1},
       {"args", no_argument, &set_args, 1},
       {"l", required_argument, 0, 'l'},
       {"return-child-result", no_argument, &return_child_result, 1},
@@ -842,6 +845,7 @@ captured_main_1 (struct captured_main_args *context)
 		   gdb_program_name);
 	  }
       }
+    write_files = (write_files_1 != 0);
 
     if (batch_flag)
       {
diff --git a/gdb/maint-test-options.c b/gdb/maint-test-options.c
index 7039f932f1..9bda34a3fd 100644
--- a/gdb/maint-test-options.c
+++ b/gdb/maint-test-options.c
@@ -126,10 +126,10 @@ static const char *const test_options_enum_values_choices[] =
 
 struct test_options_opts
 {
-  int flag_opt = 0;
-  int xx1_opt = 0;
-  int xx2_opt = 0;
-  int boolean_opt = 0;
+  bool flag_opt = false;
+  bool xx1_opt = false;
+  bool xx2_opt = false;
+  bool boolean_opt = false;
   const char *enum_opt = test_options_enum_values_xxx;
   unsigned int uint_opt = 0;
   int zuint_unl_opt = 0;
diff --git a/gdb/maint-test-settings.c b/gdb/maint-test-settings.c
index a1c43ee917..86d201a3c6 100644
--- a/gdb/maint-test-settings.c
+++ b/gdb/maint-test-settings.c
@@ -50,7 +50,7 @@ maintenance_show_test_settings_cmd (const char *args, int from_tty)
 /* Control variables for all the "maintenance set/show test-settings
    xxx" commands.  */
 
-static int maintenance_test_settings_boolean;
+static bool maintenance_test_settings_boolean;
 
 static auto_boolean maintenance_test_settings_auto_boolean = AUTO_BOOLEAN_AUTO;
 
diff --git a/gdb/maint.c b/gdb/maint.c
index 1a621a1719..b8eb93827c 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -770,7 +770,7 @@ maintenance_with_cmd_completer (struct cmd_list_element *ignore,
 
 /* Profiling support.  */
 
-static int maintenance_profile_p;
+static bool maintenance_profile_p;
 static void
 show_maintenance_profile_p (struct ui_file *file, int from_tty,
 			    struct cmd_list_element *c, const char *value)
@@ -841,17 +841,17 @@ maintenance_set_profile_cmd (const char *args, int from_tty,
 }
 #endif
 \f
-/* If nonzero, display time usage both at startup and for each command.  */
+/* If true, display time usage both at startup and for each command.  */
 
-static int per_command_time;
+static bool per_command_time;
 
-/* If nonzero, display space usage both at startup and for each command.  */
+/* If true, display space usage both at startup and for each command.  */
 
-static int per_command_space;
+static bool per_command_space;
 
-/* If nonzero, display basic symtab stats for each command.  */
+/* If true, display basic symtab stats for each command.  */
 
-static int per_command_symtab;
+static bool per_command_symtab;
 
 /* mt per-command commands.  */
 
diff --git a/gdb/memattr.c b/gdb/memattr.c
index e695f6e07e..0475780b29 100644
--- a/gdb/memattr.c
+++ b/gdb/memattr.c
@@ -53,7 +53,7 @@ static bool target_mem_regions_valid;
 /* If this flag is set, gdb will assume that memory ranges not
    specified by the memory map have type MEM_NONE, and will
    emit errors on all accesses to that memory.  */
-static int inaccessible_by_default = 1;
+static bool inaccessible_by_default = true;
 
 static void
 show_inaccessible_by_default (struct ui_file *file, int from_tty,
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index 5dc436bfd8..2ece360205 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -101,11 +101,11 @@ static void output_register (struct frame_info *, int regnum, int format,
 			     int skip_unavailable);
 
 /* Controls whether the frontend wants MI in async mode.  */
-static int mi_async = 0;
+static bool mi_async = false;
 
 /* The set command writes to this variable.  If the inferior is
    executing, mi_async is *not* updated.  */
-static int mi_async_1 = 0;
+static bool mi_async_1 = false;
 
 static void
 set_mi_async_command (const char *args, int from_tty,
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 3fb53bc76d..37a1b2a0b8 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -858,7 +858,7 @@ static int heuristic_fence_post = 0;
    register N.  NOTE: This defines the pseudo register type so need to
    rebuild the architecture vector.  */
 
-static int mips64_transfers_32bit_regs_p = 0;
+static bool mips64_transfers_32bit_regs_p = false;
 
 static void
 set_mips64_transfers_32bit_regs (const char *args, int from_tty,
diff --git a/gdb/nat/fork-inferior.h b/gdb/nat/fork-inferior.h
index 1d0519fb26..065496c382 100644
--- a/gdb/nat/fork-inferior.h
+++ b/gdb/nat/fork-inferior.h
@@ -72,7 +72,7 @@ extern ptid_t startup_inferior (pid_t pid, int ntraps,
 
    The catch-exec traps expected during start-up will be one more if
    the target is started up with a shell.  */
-extern int startup_with_shell;
+extern bool startup_with_shell;
 
 /* Perform any necessary tasks before a fork/vfork takes place.  ARGS
    is a string containing all the arguments received by the inferior.
diff --git a/gdb/nat/linux-namespaces.c b/gdb/nat/linux-namespaces.c
index e49bc1ade3..8cadea9be2 100644
--- a/gdb/nat/linux-namespaces.c
+++ b/gdb/nat/linux-namespaces.c
@@ -31,7 +31,7 @@
 #include "gdbsupport/scope-exit.h"
 
 /* See nat/linux-namespaces.h.  */
-int debug_linux_namespaces;
+bool debug_linux_namespaces;
 
 /* Handle systems without fork.  */
 
diff --git a/gdb/nat/linux-namespaces.h b/gdb/nat/linux-namespaces.h
index 166b11cbdc..fe7e8a452e 100644
--- a/gdb/nat/linux-namespaces.h
+++ b/gdb/nat/linux-namespaces.h
@@ -20,9 +20,9 @@
 #ifndef NAT_LINUX_NAMESPACES_H
 #define NAT_LINUX_NAMESPACES_H
 
-/* Set to nonzero to enable debugging of Linux namespaces code.  */
+/* Set to true to enable debugging of Linux namespaces code.  */
 
-extern int debug_linux_namespaces;
+extern bool debug_linux_namespaces;
 
 /* Enumeration of Linux namespace types.  */
 
diff --git a/gdb/nios2-tdep.c b/gdb/nios2-tdep.c
index 8d685d4aca..cb17e4f375 100644
--- a/gdb/nios2-tdep.c
+++ b/gdb/nios2-tdep.c
@@ -52,7 +52,7 @@
 
 /* Control debugging information emitted in this file.  */
 
-static int nios2_debug = 0;
+static bool nios2_debug = false;
 
 /* The following structures are used in the cache for prologue
    analysis; see the reg_value and reg_saved tables in
diff --git a/gdb/or1k-tdep.c b/gdb/or1k-tdep.c
index 8f6f6e1960..6a6dce1527 100644
--- a/gdb/or1k-tdep.c
+++ b/gdb/or1k-tdep.c
@@ -50,7 +50,7 @@
 
 /* Global debug flag.  */
 
-static int or1k_debug = 0;
+static bool or1k_debug = false;
 
 static void
 show_or1k_debug (struct ui_file *file, int from_tty,
diff --git a/gdb/parse.c b/gdb/parse.c
index a1ab75297a..a17cae6b55 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -74,8 +74,8 @@ show_expressiondebug (struct ui_file *file, int from_tty,
 }
 
 
-/* Non-zero if an expression parser should set yydebug.  */
-int parser_debug;
+/* True if an expression parser should set yydebug.  */
+bool parser_debug;
 
 static void
 show_parserdebug (struct ui_file *file, int from_tty,
diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h
index 33670b29c4..64aa9b8b1e 100644
--- a/gdb/parser-defs.h
+++ b/gdb/parser-defs.h
@@ -32,7 +32,7 @@ struct language_defn;
 struct internalvar;
 class innermost_block_tracker;
 
-extern int parser_debug;
+extern bool parser_debug;
 
 /* A class that can be used to build a "struct expression".  */
 
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 22356bfd6d..b3f7b59863 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -100,7 +100,7 @@ show_max_symbolic_offset (struct ui_file *file, int from_tty,
 
 /* Append the source filename and linenumber of the symbol when
    printing a symbolic value as `<symbol at filename:linenum>' if set.  */
-static int print_symbol_filename = 0;
+static bool print_symbol_filename = false;
 static void
 show_print_symbol_filename (struct ui_file *file, int from_tty,
 			    struct cmd_list_element *c, const char *value)
diff --git a/gdb/proc-api.c b/gdb/proc-api.c
index cb2eaf8cb1..214b26f40c 100644
--- a/gdb/proc-api.c
+++ b/gdb/proc-api.c
@@ -50,7 +50,7 @@ struct trans {
   const char *desc;             /* Short description of value */
 };
 
-static int   procfs_trace    = 0;
+static bool  procfs_trace   = false;
 static FILE *procfs_file     = NULL;
 static char *procfs_filename;
 
diff --git a/gdb/python/py-auto-load.c b/gdb/python/py-auto-load.c
index c7b9afdb11..ade2aa1b37 100644
--- a/gdb/python/py-auto-load.c
+++ b/gdb/python/py-auto-load.c
@@ -29,7 +29,7 @@
    set auto-load python-scripts on|off
    This is true if we should auto-load associated Python scripts when an
    objfile is opened, false otherwise.  */
-static int auto_load_python_scripts = 1;
+static bool auto_load_python_scripts = true;
 
 /* "show" command for the auto_load_python_scripts configuration variable.  */
 
diff --git a/gdb/python/py-param.c b/gdb/python/py-param.c
index afeff581ee..4794366583 100644
--- a/gdb/python/py-param.c
+++ b/gdb/python/py-param.c
@@ -55,7 +55,10 @@ struct parm_constant parm_constants[] =
 /* A union that can hold anything described by enum var_types.  */
 union parmpy_variable
 {
-  /* Hold an integer value, for boolean and integer types.  */
+  /* Hold a boolean value.  */
+  bool boolval;
+
+  /* Hold an integer value.  */
   int intval;
 
   /* Hold an auto_boolean.  */
@@ -198,7 +201,7 @@ set_parameter_value (parmpy_object *self, PyObject *value)
       cmp = PyObject_IsTrue (value);
       if (cmp < 0)
 	  return -1;
-      self->value.intval = cmp;
+      self->value.boolval = cmp;
       break;
 
     case var_auto_boolean:
@@ -475,7 +478,7 @@ add_setshow_generic (int parmclass, enum command_class cmdclass,
     case var_boolean:
 
       add_setshow_boolean_cmd (cmd_name, cmdclass,
-			       &self->value.intval, set_doc, show_doc,
+			       &self->value.boolval, set_doc, show_doc,
 			       help_doc, get_set_value, get_show_value,
 			       set_list, show_list);
 
diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c
index ede4c0e759..1428b7abe5 100644
--- a/gdb/python/py-value.c
+++ b/gdb/python/py-value.c
@@ -580,7 +580,7 @@ valpy_string (PyObject *self, PyObject *args, PyObject *kw)
 			   encoding, errors);
 }
 
-/* Given a Python object, copy its truth value to a C int (the value
+/* Given a Python object, copy its truth value to a C bool (the value
    pointed by dest).
    If src_obj is NULL, then *dest is not modified.
 
@@ -588,7 +588,7 @@ valpy_string (PyObject *self, PyObject *args, PyObject *kw)
    in case of error.  */
 
 static bool
-copy_py_bool_obj (int *dest, PyObject *src_obj)
+copy_py_bool_obj (bool *dest, PyObject *src_obj)
 {
   if (src_obj)
     {
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 9c8c635f72..ddf0e72d26 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -441,7 +441,7 @@ gdbpy_parameter_value (enum var_types type, void *var)
 
     case var_boolean:
       {
-	if (* (int *) var)
+	if (* (bool *) var)
 	  Py_RETURN_TRUE;
 	else
 	  Py_RETURN_FALSE;
diff --git a/gdb/ravenscar-thread.c b/gdb/ravenscar-thread.c
index f217d949f6..0cc7e1dc75 100644
--- a/gdb/ravenscar-thread.c
+++ b/gdb/ravenscar-thread.c
@@ -57,8 +57,8 @@
    is running, switching to its corresponding ptid, and then performing
    the operation on that ptid using the target beneath us.  */
 
-/* If non-null, ravenscar task support is enabled.  */
-static int ravenscar_task_support = 1;
+/* If true, ravenscar task support is enabled.  */
+static bool ravenscar_task_support = true;
 
 static const char running_thread_name[] = "__gnat_running_thread_table";
 
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index 65d6a254ff..d402d8733d 100644
--- a/gdb/record-btrace.c
+++ b/gdb/record-btrace.c
@@ -1560,7 +1560,7 @@ record_btrace_target::store_registers (struct regcache *regcache, int regno)
       && record_is_replaying (regcache->ptid ()))
     error (_("Cannot write registers while replaying."));
 
-  gdb_assert (may_write_registers != 0);
+  gdb_assert (may_write_registers);
 
   this->beneath ()->store_registers (regcache, regno);
 }
diff --git a/gdb/record-full.c b/gdb/record-full.c
index e83ce01b71..c1d124f519 100644
--- a/gdb/record-full.c
+++ b/gdb/record-full.c
@@ -159,7 +159,7 @@ struct record_full_entry
 
 /* If true, query if PREC cannot record memory
    change of next instruction.  */
-int record_full_memory_query = 0;
+bool record_full_memory_query = false;
 
 struct record_full_core_buf_entry
 {
@@ -196,8 +196,8 @@ static struct record_full_entry *record_full_list = &record_full_first;
 static struct record_full_entry *record_full_arch_list_head = NULL;
 static struct record_full_entry *record_full_arch_list_tail = NULL;
 
-/* 1 ask user. 0 auto delete the last struct record_full_entry.  */
-static int record_full_stop_at_limit = 1;
+/* true ask user. false auto delete the last struct record_full_entry.  */
+static bool record_full_stop_at_limit = true;
 /* Maximum allowed number of insns in execution log.  */
 static unsigned int record_full_insn_max_num
 	= DEFAULT_RECORD_FULL_INSN_MAX_NUM;
diff --git a/gdb/record-full.h b/gdb/record-full.h
index 8d1693af11..d1eff9760e 100644
--- a/gdb/record-full.h
+++ b/gdb/record-full.h
@@ -20,7 +20,7 @@
 #ifndef RECORD_FULL_H
 #define RECORD_FULL_H
 
-extern int record_full_memory_query;
+extern bool record_full_memory_query;
 
 extern int record_full_arch_list_add_reg (struct regcache *regcache, int num);
 extern int record_full_arch_list_add_mem (CORE_ADDR addr, int len);
diff --git a/gdb/remote-notif.c b/gdb/remote-notif.c
index 2680618b3f..2ff7b3b66c 100644
--- a/gdb/remote-notif.c
+++ b/gdb/remote-notif.c
@@ -41,7 +41,7 @@
 #include "infrun.h"
 #include "gdbcmd.h"
 
-int notif_debug = 0;
+bool notif_debug = false;
 
 /* Supported clients of notifications.  */
 
diff --git a/gdb/remote-notif.h b/gdb/remote-notif.h
index f9b0b2c618..c735cc2918 100644
--- a/gdb/remote-notif.h
+++ b/gdb/remote-notif.h
@@ -129,6 +129,6 @@ remote_notif_state *remote_notif_state_allocate (remote_target *remote);
 
 extern struct notif_client notif_client_stop;
 
-extern int notif_debug;
+extern bool notif_debug;
 
 #endif /* REMOTE_NOTIF_H */
diff --git a/gdb/remote.c b/gdb/remote.c
index ae06c4ba79..e39366d8b2 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -1038,7 +1038,7 @@ static struct cmd_list_element *remote_show_cmdlist;
 
 /* Controls whether GDB is willing to use range stepping.  */
 
-static int use_range_stepping = 1;
+static bool use_range_stepping = true;
 
 /* The max number of chars in debug output.  The rest of chars are
    omitted.  */
@@ -1492,12 +1492,12 @@ show_interrupt_sequence (struct ui_file *file, int from_tty,
    to the remote target when gdb connects to it.
    This is mostly needed when you debug the Linux kernel: The Linux kernel
    expects BREAK g which is Magic SysRq g for connecting gdb.  */
-static int interrupt_on_connect = 0;
+static bool interrupt_on_connect = false;
 
 /* This variable is used to implement the "set/show remotebreak" commands.
    Since these commands are now deprecated in favor of "set/show remote
    interrupt-sequence", it no longer has any effect on the code.  */
-static int remote_break;
+static bool remote_break;
 
 static void
 set_remotebreak (const char *args, int from_tty, struct cmd_list_element *c)
diff --git a/gdb/ser-tcp.c b/gdb/ser-tcp.c
index 7498319cc4..079f24828e 100644
--- a/gdb/ser-tcp.c
+++ b/gdb/ser-tcp.c
@@ -72,7 +72,7 @@ static struct cmd_list_element *tcp_show_cmdlist;
 
 /* Whether to auto-retry refused connections.  */
 
-static int tcp_auto_retry = 1;
+static bool tcp_auto_retry = true;
 
 /* Timeout period for connections, in seconds.  */
 
diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c
index 049dfd5261..c49bd84eb6 100644
--- a/gdb/ser-unix.c
+++ b/gdb/ser-unix.c
@@ -41,7 +41,7 @@ struct hardwire_ttystate
 
 #ifdef CRTSCTS
 /* Boolean to explicitly enable or disable h/w flow control.  */
-static int serial_hwflow;
+static bool serial_hwflow;
 static void
 show_serial_hwflow (struct ui_file *file, int from_tty,
 		    struct cmd_list_element *c, const char *value)
diff --git a/gdb/skip.c b/gdb/skip.c
index 5258f50ab1..a549aca897 100644
--- a/gdb/skip.c
+++ b/gdb/skip.c
@@ -39,7 +39,7 @@
 
 /* True if we want to print debug printouts related to file/function
    skipping. */
-static int debug_skip = 0;
+static bool debug_skip = false;
 
 class skiplist_entry
 {
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index 0c8a18267c..1a25a0d4a9 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -30,7 +30,7 @@
 
 /* Variable controlling the output of the debugging traces for
    this module.  */
-static int solib_aix_debug;
+static bool solib_aix_debug;
 
 /* Our private data in struct so_list.  */
 
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
index ddaee54b30..d01f3af300 100644
--- a/gdb/spu-tdep.c
+++ b/gdb/spu-tdep.c
@@ -52,9 +52,9 @@ static struct cmd_list_element *setspucmdlist = NULL;
 static struct cmd_list_element *showspucmdlist = NULL;
 
 /* Whether to stop for new SPE contexts.  */
-static int spu_stop_on_load_p = 0;
+static bool spu_stop_on_load_p = false;
 /* Whether to automatically flush the SW-managed cache.  */
-static int spu_auto_flush_cache_p = 1;
+static bool spu_auto_flush_cache_p = true;
 
 
 /* The tdep structure.  */
diff --git a/gdb/stack.c b/gdb/stack.c
index 10a88e99ab..0f7fbf5e6e 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -183,9 +183,9 @@ pretty-printers for that value.")
 
 struct backtrace_cmd_options
 {
-  int full = 0;
-  int no_filters = 0;
-  int hide = 0;
+  bool full = false;
+  bool no_filters = false;
+  bool hide = false;
 };
 
 using bt_flag_option_def
@@ -2423,7 +2423,7 @@ print_frame_local_vars (struct frame_info *frame,
 
 struct info_print_options
 {
-  int quiet = false;
+  bool quiet = false;
   char *type_regexp = nullptr;
 
   ~info_print_options ()
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index 9a5d0fa0a6..37959bf0d4 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -48,8 +48,8 @@ struct debug_sym_fns_data
 static const struct objfile_key<debug_sym_fns_data>
   symfile_debug_objfile_data_key;
 
-/* If non-zero all calls to the symfile functions are logged.  */
-static int debug_symfile = 0;
+/* If true all calls to the symfile functions are logged.  */
+static bool debug_symfile = false;
 
 /* Return non-zero if symfile debug logging is installed.  */
 
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 259a30aa04..5252c727aa 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -143,7 +143,7 @@ static const char *print_symbol_loading = print_symbol_loading_full;
 
 /* See symfile.h.  */
 
-int auto_solib_add = 1;
+bool auto_solib_add = true;
 \f
 
 /* Return non-zero if symbol-loading messages should be printed.
@@ -1265,7 +1265,7 @@ symbol_file_clear (int from_tty)
 
 /* See symfile.h.  */
 
-int separate_debug_file_debug = 0;
+bool separate_debug_file_debug = false;
 
 static int
 separate_debug_file_exists (const std::string &name, unsigned long crc,
diff --git a/gdb/symfile.h b/gdb/symfile.h
index 6fa6db4750..642a5e223a 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -439,7 +439,7 @@ extern section_addr_info
 
 			/*   Variables   */
 
-/* If non-zero, shared library symbols will be added automatically
+/* If true, shared library symbols will be added automatically
    when the inferior is created, new libraries are loaded, or when
    attaching to the inferior.  This is almost always what users will
    want to have happen; but for very large programs, the startup time
@@ -449,7 +449,7 @@ extern section_addr_info
    library symbols are not loaded, commands like "info fun" will *not*
    report all the functions that are actually present.  */
 
-extern int auto_solib_add;
+extern bool auto_solib_add;
 
 /* From symfile.c */
 
@@ -625,6 +625,6 @@ extern gdb_bfd_ref_ptr find_separate_debug_file_in_section (struct objfile *);
 
 /* True if we are printing debug output about separate debug info files.  */
 
-extern int separate_debug_file_debug;
+extern bool separate_debug_file_debug;
 
 #endif /* !defined(SYMFILE_H) */
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 4b528b4270..e2edad4fb1 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -241,10 +241,10 @@ static unsigned int new_symbol_cache_size = DEFAULT_SYMBOL_CACHE_SIZE;
    the original value from here.  */
 static unsigned int symbol_cache_size = DEFAULT_SYMBOL_CACHE_SIZE;
 
-/* Non-zero if a file may be known by two different basenames.
+/* True if a file may be known by two different basenames.
    This is the uncommon case, and significantly slows down gdb.
    Default set to "off" to not slow down the common case.  */
-int basenames_may_differ = 0;
+bool basenames_may_differ = false;
 
 /* Allow the user to configure the debugger behavior with respect
    to multiple-choice menus when more than one symbol matches during
@@ -4131,10 +4131,10 @@ operator_chars (const char *p, const char **end)
 struct filename_partial_match_opts
 {
   /* Only match the directory name part.   */
-  int dirname = false;
+  bool dirname = false;
 
   /* Only match the basename part.  */
-  int basename = false;
+  bool basename = false;
 };
 
 /* Data structure to maintain printing state for output_source_filename.  */
@@ -4912,8 +4912,8 @@ symtab_symbol_info (bool quiet, bool exclude_minsyms,
 
 struct info_print_options
 {
-  int quiet = false;
-  int exclude_minsyms = false;
+  bool quiet = false;
+  bool exclude_minsyms = false;
   char *type_regexp = nullptr;
 
   ~info_print_options ()
@@ -5010,7 +5010,7 @@ info_functions_command (const char *args, int from_tty)
 
 struct info_types_options
 {
-  int quiet = false;
+  bool quiet = false;
 };
 
 /* The options used by the 'info types' command.  */
diff --git a/gdb/symtab.h b/gdb/symtab.h
index c54b8ee4b7..d046598774 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -544,7 +544,7 @@ extern const char *symbol_demangled_name
 
 #define SYMBOL_PRINT_NAME(symbol)					\
   (demangle ? SYMBOL_NATURAL_NAME (symbol) : SYMBOL_LINKAGE_NAME (symbol))
-extern int demangle;
+extern bool demangle;
 
 /* Macro that returns the name to be used when sorting and searching symbols.
    In C++, we search for the demangled form of a name,
@@ -2064,7 +2064,7 @@ extern unsigned int symtab_create_debug;
 
 extern unsigned int symbol_lookup_debug;
 
-extern int basenames_may_differ;
+extern bool basenames_may_differ;
 
 int compare_filenames_for_search (const char *filename,
 				  const char *search_name);
diff --git a/gdb/target-dcache.c b/gdb/target-dcache.c
index 98d5c1f83b..c8a415512c 100644
--- a/gdb/target-dcache.c
+++ b/gdb/target-dcache.c
@@ -77,7 +77,7 @@ target_dcache_get_or_init (void)
 }
 
 /* The option sets this.  */
-static int stack_cache_enabled_1 = 1;
+static bool stack_cache_enabled_1 = true;
 /* And set_stack_cache updates this.
    The reason for the separation is so that we don't flush the cache for
    on->on transitions.  */
@@ -114,7 +114,7 @@ stack_cache_enabled_p (void)
 
 /* The option sets this.  */
 
-static int code_cache_enabled_1 = 1;
+static bool code_cache_enabled_1 = true;
 
 /* And set_code_cache updates this.
    The reason for the separation is so that we don't flush the cache for
diff --git a/gdb/target.c b/gdb/target.c
index a19a9bce13..599e22a724 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -128,10 +128,10 @@ current_top_target ()
 
 static struct cmd_list_element *targetlist = NULL;
 
-/* Nonzero if we should trust readonly sections from the
+/* True if we should trust readonly sections from the
    executable when reading memory.  */
 
-static int trust_readonly = 0;
+static bool trust_readonly = false;
 
 /* Nonzero if we should show true memory content including
    memory breakpoint inserted by gdb.  */
@@ -142,17 +142,17 @@ static int show_memory_breakpoints = 0;
    operations; they are useful for targets that need to prevent
    inadvertant disruption, such as in non-stop mode.  */
 
-int may_write_registers = 1;
+bool may_write_registers = true;
 
-int may_write_memory = 1;
+bool may_write_memory = true;
 
-int may_insert_breakpoints = 1;
+bool may_insert_breakpoints = true;
 
-int may_insert_tracepoints = 1;
+bool may_insert_tracepoints = true;
 
-int may_insert_fast_tracepoints = 1;
+bool may_insert_fast_tracepoints = true;
 
-int may_stop = 1;
+bool may_stop = true;
 
 /* Non-zero if we want to see trace of target level stuff.  */
 
@@ -2374,7 +2374,7 @@ target_require_runnable (void)
 
 /* Whether GDB is allowed to fall back to the default run target for
    "run", "attach", etc. when no target is connected yet.  */
-static int auto_connect_native_target = 1;
+static bool auto_connect_native_target = true;
 
 static void
 show_auto_connect_native_target (struct ui_file *file, int from_tty,
@@ -3356,9 +3356,9 @@ void
 target_stop_and_wait (ptid_t ptid)
 {
   struct target_waitstatus status;
-  int was_non_stop = non_stop;
+  bool was_non_stop = non_stop;
 
-  non_stop = 1;
+  non_stop = true;
   target_stop (ptid);
 
   memset (&status, 0, sizeof (status));
@@ -3841,11 +3841,11 @@ target_thread_events (int enable)
 
 /* Controls if targets can report that they can/are async.  This is
    just for maintainers to use when debugging gdb.  */
-int target_async_permitted = 1;
+bool target_async_permitted = true;
 
 /* The set command writes to this variable.  If the inferior is
    executing, target_async_permitted is *not* updated.  */
-static int target_async_permitted_1 = 1;
+static bool target_async_permitted_1 = true;
 
 static void
 maint_set_target_async_command (const char *args, int from_tty,
@@ -3933,12 +3933,12 @@ maint_show_target_non_stop_command (struct ui_file *file, int from_tty,
 
 /* Temporary copies of permission settings.  */
 
-static int may_write_registers_1 = 1;
-static int may_write_memory_1 = 1;
-static int may_insert_breakpoints_1 = 1;
-static int may_insert_tracepoints_1 = 1;
-static int may_insert_fast_tracepoints_1 = 1;
-static int may_stop_1 = 1;
+static bool may_write_registers_1 = true;
+static bool may_write_memory_1 = true;
+static bool may_insert_breakpoints_1 = true;
+static bool may_insert_tracepoints_1 = true;
+static bool may_insert_fast_tracepoints_1 = true;
+static bool may_stop_1 = true;
 
 /* Make the user-set values match the real values again.  */
 
diff --git a/gdb/target.h b/gdb/target.h
index 4e2e75cb80..c2f6203174 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -1802,7 +1802,7 @@ extern int target_has_execution_current (void);
   (current_top_target ()->get_thread_control_capabilities () & tc_schedlock)
 
 /* Controls whether async mode is permitted.  */
-extern int target_async_permitted;
+extern bool target_async_permitted;
 
 /* Can the target support asynchronous execution?  */
 #define target_can_async_p() (current_top_target ()->can_async_p ())
@@ -2482,12 +2482,12 @@ extern int remote_timeout;
 extern scoped_restore_tmpl<int>
     make_scoped_restore_show_memory_breakpoints (int show);
 
-extern int may_write_registers;
-extern int may_write_memory;
-extern int may_insert_breakpoints;
-extern int may_insert_tracepoints;
-extern int may_insert_fast_tracepoints;
-extern int may_stop;
+extern bool may_write_registers;
+extern bool may_write_memory;
+extern bool may_insert_breakpoints;
+extern bool may_insert_tracepoints;
+extern bool may_insert_fast_tracepoints;
+extern bool may_stop;
 
 extern void update_target_permissions (void);
 
diff --git a/gdb/thread.c b/gdb/thread.c
index 4a7fe689db..17bc642b84 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -1204,7 +1204,7 @@ print_thread_info (struct ui_out *uiout, const char *requested_threads,
 struct info_threads_opts
 {
   /* For "-gid".  */
-  int show_global_ids = 0;
+  bool show_global_ids = false;
 };
 
 static const gdb::option::option_def info_threads_option_defs[] = {
@@ -1574,7 +1574,7 @@ static const gdb::option::option_def thr_qcs_flags_option_defs[] = {
    ASCENDING and FLAGS as context.  */
 
 static inline std::array<gdb::option::option_def_group, 2>
-make_thread_apply_all_options_def_group (int *ascending,
+make_thread_apply_all_options_def_group (bool *ascending,
 					 qcs_flags *flags)
 {
   return {{
@@ -1603,7 +1603,7 @@ make_thread_apply_options_def_group (qcs_flags *flags)
 static void
 thread_apply_all_command (const char *cmd, int from_tty)
 {
-  int ascending = false;
+  bool ascending = false;
   qcs_flags flags;
 
   auto group = make_thread_apply_all_options_def_group (&ascending,
@@ -1951,7 +1951,7 @@ thread_find_command (const char *arg, int from_tty)
 }
 
 /* Print notices when new threads are attached and detached.  */
-int print_thread_events = 1;
+bool print_thread_events = true;
 static void
 show_print_thread_events (struct ui_file *file, int from_tty,
 			  struct cmd_list_element *c, const char *value)
diff --git a/gdb/top.c b/gdb/top.c
index 2b53640af0..49e6daae94 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -115,7 +115,7 @@ extern char lang_frame_mismatch_warn[];		/* language.c */
 /* Flag for whether we want to confirm potentially dangerous
    operations.  Default is yes.  */
 
-int confirm = 1;
+bool confirm = true;
 
 static void
 show_confirm (struct ui_file *file, int from_tty,
@@ -850,15 +850,15 @@ gdb_readline_no_editing (const char *prompt)
 /* Variables which control command line editing and history
    substitution.  These variables are given default values at the end
    of this file.  */
-static int command_editing_p;
+static bool command_editing_p;
 
 /* NOTE 1999-04-29: This variable will be static again, once we modify
    gdb to use the event loop as the default command loop and we merge
    event-top.c into this file, top.c.  */
 
-/* static */ int history_expansion_p;
+/* static */ bool history_expansion_p;
 
-static int write_history_p;
+static bool write_history_p;
 static void
 show_write_history_p (struct ui_file *file, int from_tty,
 		      struct cmd_list_element *c, const char *value)
@@ -1876,7 +1876,7 @@ show_history (const char *args, int from_tty)
   cmd_show_list (showhistlist, from_tty, "");
 }
 
-int info_verbose = 0;		/* Default verbose msgs off.  */
+bool info_verbose = false;	/* Default verbose msgs off.  */
 
 /* Called by do_set_command.  An elaborate joke.  */
 void
diff --git a/gdb/top.h b/gdb/top.h
index 32a898b82f..176104f1fd 100644
--- a/gdb/top.h
+++ b/gdb/top.h
@@ -217,7 +217,7 @@ extern void ui_register_input_event_handler (struct ui *ui);
 extern void ui_unregister_input_event_handler (struct ui *ui);
 
 /* From top.c.  */
-extern int confirm;
+extern bool confirm;
 extern int inhibit_gdbinit;
 
 /* Print the GDB version banner to STREAM.  If INTERACTIVE is false,
@@ -280,7 +280,7 @@ extern void gdb_init (char *);
 /* Variables from top.c.  */
 extern int source_line_number;
 extern std::string source_file_name;
-extern int history_expansion_p;
+extern bool history_expansion_p;
 extern int server_command;
 extern char *lim_at_start;
 
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index 2d5b9c705e..c2c5f42246 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -131,12 +131,12 @@ static struct cmd_list_element *tfindlist;
 /* List of expressions to collect by default at each tracepoint hit.  */
 char *default_collect;
 
-static int disconnected_tracing;
+static bool disconnected_tracing;
 
 /* This variable controls whether we ask the target for a linear or
    circular trace buffer.  */
 
-static int circular_trace_buffer;
+static bool circular_trace_buffer;
 
 /* This variable is the requested trace buffer size, or -1 to indicate
    that we don't care and leave it up to the target to set a size.  */
diff --git a/gdb/typeprint.c b/gdb/typeprint.c
index c87f6d13e0..41d95c2afb 100644
--- a/gdb/typeprint.c
+++ b/gdb/typeprint.c
@@ -727,7 +727,7 @@ show_print_type (const char *args, int from_tty)
   cmd_show_list (showprinttypelist, from_tty, "");
 }
 
-static int print_methods = 1;
+static bool print_methods = true;
 
 static void
 set_print_type_methods (const char *args,
@@ -744,7 +744,7 @@ show_print_type_methods (struct ui_file *file, int from_tty,
 		    value);
 }
 
-static int print_typedefs = 1;
+static bool print_typedefs = true;
 
 static void
 set_print_type_typedefs (const char *args,
diff --git a/gdb/utils.c b/gdb/utils.c
index f642cf470f..b2535ebefd 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -99,13 +99,13 @@ static std::chrono::steady_clock::duration prompt_for_continue_wait_time;
 
 /* A flag indicating whether to timestamp debugging messages.  */
 
-static int debug_timestamp = 0;
+static bool debug_timestamp = false;
 
-/* Nonzero means that strings with character values >0x7F should be printed
-   as octal escapes.  Zero means just print the value (e.g. it's an
+/* True means that strings with character values >0x7F should be printed
+   as octal escapes.  False means just print the value (e.g. it's an
    international character, and the terminal or window can cope.)  */
 
-int sevenbit_strings = 0;
+bool sevenbit_strings = false;
 static void
 show_sevenbit_strings (struct ui_file *file, int from_tty,
 		       struct cmd_list_element *c, const char *value)
@@ -119,7 +119,7 @@ show_sevenbit_strings (struct ui_file *file, int from_tty,
 
 const char *warning_pre_print = "\nwarning: ";
 
-int pagination_enabled = 1;
+bool pagination_enabled = true;
 static void
 show_pagination_enabled (struct ui_file *file, int from_tty,
 			 struct cmd_list_element *c, const char *value)
diff --git a/gdb/utils.h b/gdb/utils.h
index fd724444aa..7cdc73ef54 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -32,7 +32,7 @@ extern void initialize_utils (void);
 
 /* String utilities.  */
 
-extern int sevenbit_strings;
+extern bool sevenbit_strings;
 
 /* Modes of operation for strncmp_iw_with_mode.  */
 
@@ -316,7 +316,7 @@ extern void wrap_here (const char *);
 
 extern void reinitialize_more_filter (void);
 
-extern int pagination_enabled;
+extern bool pagination_enabled;
 
 extern struct ui_file **current_ui_gdb_stdout_ptr (void);
 extern struct ui_file **current_ui_gdb_stdin_ptr (void);
diff --git a/gdb/valops.c b/gdb/valops.c
index 0f6ff7b0a5..fc7a4c5918 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -97,7 +97,7 @@ static CORE_ADDR allocate_space_in_inferior (int);
 
 static struct value *cast_into_complex (struct type *, struct value *);
 
-int overload_resolution = 0;
+bool overload_resolution = false;
 static void
 show_overload_resolution (struct ui_file *file, int from_tty,
 			  struct cmd_list_element *c, 
diff --git a/gdb/valprint.h b/gdb/valprint.h
index 07014c11b9..6d57554594 100644
--- a/gdb/valprint.h
+++ b/gdb/valprint.h
@@ -30,23 +30,23 @@ struct value_print_options
   enum val_prettyformat prettyformat;
 
   /* Controls pretty formatting of arrays.  */
-  int prettyformat_arrays;
+  bool prettyformat_arrays;
 
   /* Controls pretty formatting of structures.  */
-  int prettyformat_structs;
+  bool prettyformat_structs;
 
   /* Controls printing of virtual tables.  */
-  int vtblprint;
+  bool vtblprint;
 
   /* Controls printing of nested unions.  */
-  int unionprint;
+  bool unionprint;
 
   /* Controls printing of addresses.  */
-  int addressprint;
+  bool addressprint;
 
   /* Controls looking up an object's derived type using what we find
      in its vtables.  */
-  int objectprint;
+  bool objectprint;
 
   /* Maximum number of chars to print for a string pointer value or vector
      contents, or UINT_MAX for no limit.  Note that "set print elements 0"
@@ -66,40 +66,40 @@ struct value_print_options
   int format;
 
   /* Stop printing at null character?  */
-  int stop_print_at_null;
+  bool stop_print_at_null;
 
   /* True if we should print the index of each element when printing
      an array.  */
-  int print_array_indexes;
+  bool print_array_indexes;
 
-  /* If nonzero, then dereference references, otherwise just print
+  /* If true, then dereference references, otherwise just print
      them like pointers.  */
-  int deref_ref;
+  bool deref_ref;
 
-  /* If nonzero, print static fields.  */
-  int static_field_print;
+  /* If true, print static fields.  */
+  bool static_field_print;
 
-  /* If nonzero, print static fields for Pascal.  FIXME: C++ has a
+  /* If true, print static fields for Pascal.  FIXME: C++ has a
      flag, why not share with Pascal too?  */
-  int pascal_static_field_print;
+  bool pascal_static_field_print;
 
-  /* If non-zero don't do Python pretty-printing.  */
-  int raw;
+  /* If true, don't do Python pretty-printing.  */
+  bool raw;
 
-  /* If nonzero, print the value in "summary" form.
-     If raw and summary are both non-zero, don't print non-scalar values
+  /* If true, print the value in "summary" form.
+     If raw and summary are both true, don't print non-scalar values
      ("..." is printed instead).  */
-  int summary;
+  bool summary;
 
-  /* If nonzero, when printing a pointer, print the symbol to which it
+  /* If true, when printing a pointer, print the symbol to which it
      points, if any.  */
-  int symbol_print;
+  bool symbol_print;
 
   /* Maximum print depth when printing nested aggregates.  */
   int max_depth;
 
   /* Whether "finish" should print the value.  */
-  int finish_print;
+  bool finish_print;
 };
 
 /* Create an option_def_group for the value_print options, with OPTS
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index 3431181a88..c4fde913af 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -245,16 +245,16 @@ static int saw_create;
 static int open_process_used = 0;
 
 /* User options.  */
-static int new_console = 0;
+static bool new_console = false;
 #ifdef __CYGWIN__
-static int cygwin_exceptions = 0;
+static bool cygwin_exceptions = false;
 #endif
-static int new_group = 1;
-static int debug_exec = 0;		/* show execution */
-static int debug_events = 0;		/* show events from kernel */
-static int debug_memory = 0;		/* show target memory accesses */
-static int debug_exceptions = 0;	/* show target exceptions */
-static int useshell = 0;		/* use shell for subprocesses */
+static bool new_group = true;
+static bool debug_exec = false;		/* show execution */
+static bool debug_events = false;	/* show events from kernel */
+static bool debug_memory = false;	/* show target memory accesses */
+static bool debug_exceptions = false;	/* show target exceptions */
+static bool useshell = false;		/* use shell for subprocesses */
 
 /* This vector maps GDB's idea of a register's number into an offset
    in the windows exception context vector.
diff --git a/gdb/windows-tdep.c b/gdb/windows-tdep.c
index 42083e789a..bb69a79996 100644
--- a/gdb/windows-tdep.c
+++ b/gdb/windows-tdep.c
@@ -100,7 +100,7 @@ static const int MAX_TIB64 =
   sizeof (thread_information_64) / sizeof (uint64_t);
 static const int FULL_TIB_SIZE = 0x1000;
 
-static int maint_display_all_tib = 0;
+static bool maint_display_all_tib = false;
 
 /* Define Thread Local Base pointer type.  */
 
diff --git a/gdb/xml-support.c b/gdb/xml-support.c
index 8b79d69a6d..eaf99efa6b 100644
--- a/gdb/xml-support.c
+++ b/gdb/xml-support.c
@@ -26,7 +26,7 @@
 #include <string>
 
 /* Debugging flag.  */
-static int debug_xml;
+static bool debug_xml;
 
 /* The contents of this file are only useful if XML support is
    available.  */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make extern declaration of dwarf_always_disassemble correct
@ 2019-09-18  6:12 gdb-buildbot
  2019-09-18 11:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18  6:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a3d181d2e784d57ea04728ac2f8f747fa798e78a ***

commit a3d181d2e784d57ea04728ac2f8f747fa798e78a
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Wed Sep 18 13:50:42 2019 +0900
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 18 13:54:48 2019 +0900

    Make extern declaration of dwarf_always_disassemble correct
    
    This was an oversight in 491144b5e21bbfd41969c175aebb663976f59058;
    dwarf2loc.c has an extern definition for dwarf_always_disassemble
    that I missed. This patch updates it from int to bool to match
    the definition in dwarf2read.c.
    
    gdb/ChangeLog:
    
    2019-09-18  Christian Biesinger  <cbiesinger@google.com>
    
            * dwarf2loc.c: Change extern declaration of dwarf_always_disassemble
            to bool to match definition in dwarf2read.c.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8cb5bfeeb9..39fcac7a04 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Christian Biesinger  <cbiesinger@google.com>
+
+	* dwarf2loc.c: Change extern declaration of dwarf_always_disassemble
+	to bool to match definition in dwarf2read.c.
+
 2019-09-17  Christian Biesinger  <cbiesinger@google.com>
 
 	* ada-lang.c (ada_ignore_descriptive_types_p): Change to bool.
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index 63643cb45d..29fccae594 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -46,7 +46,7 @@
 #include "gdbsupport/underlying.h"
 #include "gdbsupport/byte-vector.h"
 
-extern int dwarf_always_disassemble;
+extern bool dwarf_always_disassemble;
 
 static struct value *dwarf2_evaluate_loc_desc_full (struct type *type,
 						    struct frame_info *frame,


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC64, support medium model access to common symbols
@ 2019-09-18 13:19 gdb-buildbot
  2019-09-18 14:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 13:19 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1bdd8facfbf6f94fa9603f528c7e8bdf91d90bfd ***

commit 1bdd8facfbf6f94fa9603f528c7e8bdf91d90bfd
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 18 10:27:23 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 21:32:51 2019 +0930

    PowerPC64, support medium model access to common symbols
    
    Some versions of clang apparently generate non-PIC on powerpc64le to
    access common symbols.  Since a common symbol and a strong definition
    with the same name should resolve to the strong definition we have the
    possibility of non-PIC attempting to access shared library variables.
    This is really a clanger since powerpc64le is supposed to be PIC by
    default, but let's see if ld can cope by generating .dynbss copies.
    
            * elf64-ppc.c (must_be_dyn_reloc): Return 0 for TOC16 relocs.
            (ppc64_elf_check_relocs): Support dynamic/copy relocs for TOC16.
            (ppc64_elf_adjust_dynamic_symbol): Don't keep dynamic reloc when
            needs_copy even if all relocs are in rw sections.
            (dec_dynrel_count): Handle TOC16 relocs.
            (ppc64_elf_relocate_section): Support dynamic relocs for TOC16.
            (ppc64_elf_finish_dynamic_symbol): Adjust to handle needs_copy
            semantic change.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 76939880c7..4f48818ef3 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (must_be_dyn_reloc): Return 0 for TOC16 relocs.
+	(ppc64_elf_check_relocs): Support dynamic/copy relocs for TOC16.
+	(ppc64_elf_adjust_dynamic_symbol): Don't keep dynamic reloc when
+	needs_copy even if all relocs are in rw sections.
+	(dec_dynrel_count): Handle TOC16 relocs.
+	(ppc64_elf_relocate_section): Support dynamic relocs for TOC16.
+	(ppc64_elf_finish_dynamic_symbol): Adjust to handle needs_copy
+	semantic change.
+
 2019-09-16  Phil Blundell  <pb@pbcl.net>
 
 	* version.m4: Set version to 2.33.50.
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 88ace7e6fe..345710ee59 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -2745,6 +2745,12 @@ must_be_dyn_reloc (struct bfd_link_info *info,
     case R_PPC64_REL32:
     case R_PPC64_REL64:
     case R_PPC64_REL30:
+    case R_PPC64_TOC16:
+    case R_PPC64_TOC16_DS:
+    case R_PPC64_TOC16_LO:
+    case R_PPC64_TOC16_HI:
+    case R_PPC64_TOC16_HA:
+    case R_PPC64_TOC16_LO_DS:
       return 0;
 
     case R_PPC64_TPREL16:
@@ -4830,6 +4836,16 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	case R_PPC64_TOC16_HA:
 	case R_PPC64_TOC16_LO_DS:
 	  sec->has_toc_reloc = 1;
+	  if (h != NULL && !bfd_link_pic (info))
+	    {
+	      /* We may need a copy reloc.  */
+	      h->non_got_ref = 1;
+	      /* Strongly prefer a copy reloc over a dynamic reloc.
+		 glibc ld.so as of 2019-08 will error out if one of
+		 these relocations is emitted.  */
+	      h->needs_copy = 1;
+	      goto dodyn;
+	    }
 	  break;
 
 	  /* Marker reloc.  */
@@ -6425,7 +6441,9 @@ ppc64_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
 
       /* If we don't find any dynamic relocs in read-only sections, then
 	 we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
-      || (ELIMINATE_COPY_RELOCS && !alias_readonly_dynrelocs (h))
+      || (ELIMINATE_COPY_RELOCS
+	  && !h->needs_copy
+	  && !alias_readonly_dynrelocs (h))
 
       /* Protected variables do not work with .dynbss.  The copy in
 	 .dynbss won't be used by the shared library with the protected
@@ -6813,6 +6831,16 @@ dec_dynrel_count (bfd_vma r_info,
     default:
       return TRUE;
 
+    case R_PPC64_TOC16:
+    case R_PPC64_TOC16_DS:
+    case R_PPC64_TOC16_LO:
+    case R_PPC64_TOC16_HI:
+    case R_PPC64_TOC16_HA:
+    case R_PPC64_TOC16_LO_DS:
+      if (h == NULL)
+	return TRUE;
+      break;
+
     case R_PPC64_TPREL16:
     case R_PPC64_TPREL16_LO:
     case R_PPC64_TPREL16_HI:
@@ -15801,6 +15829,8 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 	case R_PPC64_TOC16_LO_DS:
 	case R_PPC64_TOC16_HA:
 	  addend -= TOCstart + htab->sec_info[input_section->id].toc_off;
+	  if (h != NULL)
+	    goto dodyn;
 	  break;
 
 	  /* Relocate against the beginning of the section.  */
@@ -16734,18 +16764,18 @@ ppc64_elf_finish_dynamic_symbol (bfd *output_bfd,
 	  break;
 	}
 
-  if (h->needs_copy)
+  if (h->needs_copy
+      && (h->root.type == bfd_link_hash_defined
+	  || h->root.type == bfd_link_hash_defweak)
+      && (h->root.u.def.section == htab->elf.sdynbss
+	  || h->root.u.def.section == htab->elf.sdynrelro))
     {
       /* This symbol needs a copy reloc.  Set it up.  */
       Elf_Internal_Rela rela;
       asection *srel;
       bfd_byte *loc;
 
-      if (h->dynindx == -1
-	  || (h->root.type != bfd_link_hash_defined
-	      && h->root.type != bfd_link_hash_defweak)
-	  || htab->elf.srelbss == NULL
-	  || htab->elf.sreldynrelro == NULL)
+      if (h->dynindx == -1)
 	abort ();
 
       rela.r_offset = (h->root.u.def.value


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use bfd_set_filename more
@ 2019-09-18 13:33 gdb-buildbot
  2019-09-18 15:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 13:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 90d92a632aaf75ce698335efeb383ddf785c12d8 ***

commit 90d92a632aaf75ce698335efeb383ddf785c12d8
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 18 10:34:46 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 21:32:51 2019 +0930

    Use bfd_set_filename more
    
    Fixes a few leaks in bfd and ld.
    
    bfd/
            * mach-o.c (bfd_mach_o_fat_member_init): Likewise.  Replace
            xstrdup and xmalloc with bfd_strdup and bfd_malloc.  Return an
            error status.  Adjust calls.
            * vms-lib.c (_bfd_vms_lib_get_module): Test mhd->id earlier.
            Close bfd on failure.  Replace xstrdup/bfd_alloc use with
            bfd_malloc.  Use bfd_set_filename.
    gdb/
            * solib-spu.c (spu_bfd_open): Use bfd_set_filename.
            * spu-linux-nat.c (spu_bfd_open): Likewise.
    ld/
            * emultempl/pe.em (after_open): Use bfd_set_filename.
            * emultempl/pep.em (after_open): Use bfd_set_filename.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 4f48818ef3..08605c3a80 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* mach-o.c (bfd_mach_o_fat_member_init): Likewise.  Replace
+	xstrdup and xmalloc with bfd_strdup and bfd_malloc.  Return an
+	error status.  Adjust calls.
+	* vms-lib.c (_bfd_vms_lib_get_module): Test mhd->id earlier.
+	Close bfd on failure.  Replace xstrdup/bfd_alloc use with
+	bfd_malloc.  Use bfd_set_filename.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* elf64-ppc.c (must_be_dyn_reloc): Return 0 for TOC16 relocs.
diff --git a/bfd/mach-o.c b/bfd/mach-o.c
index d02398048c..7d70087c95 100644
--- a/bfd/mach-o.c
+++ b/bfd/mach-o.c
@@ -5417,7 +5417,7 @@ bfd_mach_o_fat_archive_p (bfd *abfd)
    ARCH_TYPE/ARCH_SUBTYPE and corresponding entry in header is ENTRY.
    Set arelt_data and origin fields too.  */
 
-static void
+static bfd_boolean
 bfd_mach_o_fat_member_init (bfd *abfd,
 			    enum bfd_architecture arch_type,
 			    unsigned long arch_subtype,
@@ -5426,27 +5426,35 @@ bfd_mach_o_fat_member_init (bfd *abfd,
   struct areltdata *areltdata;
   /* Create the member filename. Use ARCH_NAME.  */
   const bfd_arch_info_type *ap = bfd_lookup_arch (arch_type, arch_subtype);
+  char *filename;
 
   if (ap)
     {
       /* Use the architecture name if known.  */
-      abfd->filename = xstrdup (ap->printable_name);
+      filename = bfd_strdup (ap->printable_name);
+      if (filename == NULL)
+	return FALSE;
     }
   else
     {
       /* Forge a uniq id.  */
       const size_t namelen = 2 + 8 + 1 + 2 + 8 + 1;
-      char *name = xmalloc (namelen);
-      snprintf (name, namelen, "0x%lx-0x%lx",
+      filename = bfd_malloc (namelen);
+      if (filename == NULL)
+	return FALSE;
+      snprintf (filename, namelen, "0x%lx-0x%lx",
 		entry->cputype, entry->cpusubtype);
-      abfd->filename = name;
     }
+  bfd_set_filename (abfd, filename);
 
   areltdata = bfd_zmalloc (sizeof (struct areltdata));
+  if (areltdata == NULL)
+    return FALSE;
   areltdata->parsed_size = entry->size;
   abfd->arelt_data = areltdata;
   abfd->iostream = NULL;
   abfd->origin = entry->offset;
+  return TRUE;
 }
 
 bfd *
@@ -5502,7 +5510,11 @@ bfd_mach_o_fat_openr_next_archived_file (bfd *archive, bfd *prev)
   bfd_mach_o_convert_architecture (entry->cputype, entry->cpusubtype,
 				   &arch_type, &arch_subtype);
 
-  bfd_mach_o_fat_member_init (nbfd, arch_type, arch_subtype, entry);
+  if (!bfd_mach_o_fat_member_init (nbfd, arch_type, arch_subtype, entry))
+    {
+      bfd_close (nbfd);
+      return NULL;
+    }
 
   bfd_set_arch_mach (nbfd, arch_type, arch_subtype);
 
@@ -5574,9 +5586,8 @@ bfd_mach_o_fat_extract (bfd *abfd,
       if (res == NULL)
 	return NULL;
 
-      bfd_mach_o_fat_member_init (res, cpu_type, cpu_subtype, e);
-
-      if (bfd_check_format (res, format))
+      if (bfd_mach_o_fat_member_init (res, cpu_type, cpu_subtype, e)
+	  && bfd_check_format (res, format))
 	{
 	  BFD_ASSERT (bfd_get_arch_info (res) == arch);
 	  return res;
diff --git a/bfd/vms-lib.c b/bfd/vms-lib.c
index f238ba0016..43addd46ec 100644
--- a/bfd/vms-lib.c
+++ b/bfd/vms-lib.c
@@ -1297,7 +1297,9 @@ _bfd_vms_lib_get_module (bfd *abfd, unsigned int modidx)
   struct lib_tdata *tdata = bfd_libdata (abfd);
   bfd *res;
   file_ptr file_off;
-  char *name;
+  const char *name;
+  char *newname;
+  size_t namelen;
 
   /* Sanity check.  */
   if (modidx >= tdata->nbr_modules)
@@ -1335,18 +1337,22 @@ _bfd_vms_lib_get_module (bfd *abfd, unsigned int modidx)
       if (bfd_bread (buf, tdata->mhd_size, abfd) != tdata->mhd_size)
 	return NULL;
 
+      mhd = (struct vms_mhd *) buf;
+      if (mhd->id != MHD__C_MHDID)
+	return NULL;
+
       res = _bfd_create_empty_archive_element_shell (abfd);
       if (res == NULL)
 	return NULL;
       arelt = bfd_zmalloc (sizeof (*arelt));
       if (arelt == NULL)
-	return NULL;
+	{
+	  bfd_close (res);
+	  return NULL;
+	}
       res->arelt_data = arelt;
 
       /* Get info from mhd.  */
-      mhd = (struct vms_mhd *)buf;
-      if (mhd->id != MHD__C_MHDID)
-	return NULL;
       if (tdata->mhd_size >= offsetof (struct vms_mhd, objstat) + 1)
 	res->selective_search = (mhd->objstat & MHD__M_SELSRC) ? 1 : 0;
       res->mtime = vms_rawtime_to_time_t (mhd->datim);
@@ -1361,23 +1367,25 @@ _bfd_vms_lib_get_module (bfd *abfd, unsigned int modidx)
 
   /* Set filename.  */
   name = tdata->modules[modidx].name;
+  namelen = strlen (name);
+  newname = bfd_malloc (namelen + 4 + 1);
+  if (newname == NULL)
+    {
+      bfd_close (res);
+      return NULL;
+    }
+  strcpy (newname, name);
   switch (tdata->type)
     {
     case LBR__C_TYP_IOBJ:
     case LBR__C_TYP_EOBJ:
       /* For object archives, append .obj to mimic standard behaviour.  */
-      {
-	size_t namelen = strlen (name);
-	char *name1 = bfd_alloc (res, namelen + 4 + 1);
-	memcpy (name1, name, namelen);
-	strcpy (name1 + namelen, ".obj");
-	name = name1;
-      }
+      strcpy (newname + namelen, ".obj");
       break;
     default:
       break;
     }
-  res->filename = xstrdup (name);
+  bfd_set_filename (res, newname);
 
   tdata->cache[modidx] = res;
 
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 39fcac7a04..9ad5000480 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* solib-spu.c (spu_bfd_open): Use bfd_set_filename.
+	* spu-linux-nat.c (spu_bfd_open): Likewise.
+
 2019-09-18  Christian Biesinger  <cbiesinger@google.com>
 
 	* dwarf2loc.c: Change extern declaration of dwarf_always_disassemble
diff --git a/gdb/solib-spu.c b/gdb/solib-spu.c
index 5b97b9bcf6..c5e0acaf02 100644
--- a/gdb/solib-spu.c
+++ b/gdb/solib-spu.c
@@ -377,8 +377,7 @@ spu_bfd_open (const char *pathname)
 
 	  strcat (buf, original_name);
 
-	  xfree ((char *)abfd->filename);
-	  abfd->filename = xstrdup (buf);
+	  bfd_set_filename (abfd.get (), xstrdup (buf));
 	}
     }
 
diff --git a/gdb/spu-linux-nat.c b/gdb/spu-linux-nat.c
index 2f4b4d6946..9dbb633734 100644
--- a/gdb/spu-linux-nat.c
+++ b/gdb/spu-linux-nat.c
@@ -371,8 +371,7 @@ spu_bfd_open (ULONGEST addr)
 				    sect_size - 20);
 	  buf[sect_size - 20] = '\0';
 
-	  xfree ((char *)nbfd->filename);
-	  nbfd->filename = xstrdup (buf);
+	  bfd_set_filename (nbfd.get (), xstrdup (buf));
 	}
     }
 
diff --git a/ld/ChangeLog b/ld/ChangeLog
index ea28a0b56f..81935a408c 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* emultempl/pe.em (after_open): Use bfd_set_filename.
+	* emultempl/pep.em (after_open): Use bfd_set_filename.
+
 2019-09-16  Alan Modra  <amodra@gmail.com>
 
 	PR 25002
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 49bb66b906..2e78f26ad8 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -1543,7 +1543,7 @@ gld_${EMULATION_NAME}_after_open (void)
 			/* Rename this implib to match the other one.  */
 			n = xmalloc (strlen (other_bfd_filename) + 1);
 			strcpy (n, other_bfd_filename);
-			is->the_bfd->my_archive->filename = n;
+			bfd_set_filename (is->the_bfd->my_archive, n);
 		      }
 
 		    free (relocs);
@@ -1648,7 +1648,7 @@ gld_${EMULATION_NAME}_after_open (void)
 
 		new_name = xmalloc (strlen (is->the_bfd->filename) + 3);
 		sprintf (new_name, "%s.%c", is->the_bfd->filename, seq);
-		is->the_bfd->filename = new_name;
+		bfd_set_filename (is->the_bfd, new_name);
 
 		new_name = xmalloc (strlen (is->filename) + 3);
 		sprintf (new_name, "%s.%c", is->filename, seq);
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index 4daa32b5c6..601ef11c20 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -1510,7 +1510,7 @@ gld_${EMULATION_NAME}_after_open (void)
 			/* Rename this implib to match the other one.  */
 			n = xmalloc (strlen (other_bfd_filename) + 1);
 			strcpy (n, other_bfd_filename);
-			is->the_bfd->my_archive->filename = n;
+			bfd_set_filename (is->the_bfd->my_archive, n);
 		      }
 
 		    free (relocs);
@@ -1615,7 +1615,7 @@ gld_${EMULATION_NAME}_after_open (void)
 
 		new_name = xmalloc (strlen (is->the_bfd->filename) + 3);
 		sprintf (new_name, "%s.%c", is->the_bfd->filename, seq);
-		is->the_bfd->filename = new_name;
+		bfd_set_filename (is->the_bfd, new_name);
 
 		new_name = xmalloc (strlen (is->filename) + 3);
 		sprintf (new_name, "%s.%c", is->filename, seq);


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Constify target name, reloc name, and carsym name
@ 2019-09-18 13:42 gdb-buildbot
  2019-09-18 16:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 13:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1d38e9d14cc793bca9124d5ed7dc2a6e3122f2e5 ***

commit 1d38e9d14cc793bca9124d5ed7dc2a6e3122f2e5
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 18 15:04:27 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 21:32:51 2019 +0930

    Constify target name, reloc name, and carsym name
    
    bfd/
            * bfd-in.h (carsym.name): Make const.
            * reloc.c (struct reloc_howto_struct.name): Likewise.
            * targets.c (bfd_target.name): Likewise.!
            * bfd.c (bfd_get_sign_extend_vma): Make variable const.
            * som.c (som_bfd_fill_in_ar_symbols): Use an intermediary variable
            when setting carsym.name.
            * bfd-in2.h: Regenerate.
    gdb/
            * amd64-dicos-tdep.c (amd64_dicos_osabi_sniffer): Constify target.
            * i386-cygwin-tdep.c (i386_cygwin_init_abi): Likewise.
            * i386-dicos-tdep.c (i386_dicos_osabi_sniffer): Likewise.
    ld/
            * ldlang.c (stricpy, strcut, name_compare): Constify params.
            (get_first_input_target): Make return and "target" const.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 08605c3a80..8c5ce8b8b2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h (carsym.name): Make const.
+	* reloc.c (struct reloc_howto_struct.name): Likewise.
+	* targets.c (bfd_target.name): Likewise.!
+	* bfd.c (bfd_get_sign_extend_vma): Make variable const.
+	* som.c (som_bfd_fill_in_ar_symbols): Use an intermediary variable
+	when setting carsym.name.
+	* bfd-in2.h: Regenerate.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* mach-o.c (bfd_mach_o_fat_member_init): Likewise.  Replace
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 6544838a57..6c72acb705 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -257,7 +257,7 @@ typedef unsigned long symindex;
 /* This is a type pun with struct ranlib on purpose!  */
 typedef struct carsym
 {
-  char *name;
+  const char *name;
   file_ptr file_offset;	/* Look here to find the file.  */
 }
 carsym;			/* To make these you call a carsymogen.  */
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 13445a1de7..135c1e5fbc 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -264,7 +264,7 @@ typedef unsigned long symindex;
 /* This is a type pun with struct ranlib on purpose!  */
 typedef struct carsym
 {
-  char *name;
+  const char *name;
   file_ptr file_offset;	/* Look here to find the file.  */
 }
 carsym;			/* To make these you call a carsymogen.  */
@@ -2718,7 +2718,7 @@ struct reloc_howto_struct
      bfd *, char **);
 
   /* The textual name of the relocation type.  */
-  char *name;
+  const char *name;
 };
 
 #define HOWTO(type, right, size, bits, pcrel, left, ovf, func, name,   \
@@ -7634,7 +7634,7 @@ typedef struct flag_info flag_info;
 typedef struct bfd_target
 {
   /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
-  char *name;
+  const char *name;
 
  /* The "flavour" of a back end is a general indication about
     the contents of a file.  */
diff --git a/bfd/bfd.c b/bfd/bfd.c
index f14ec253fb..91403508a9 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1507,7 +1507,7 @@ RETURNS
 int
 bfd_get_sign_extend_vma (bfd *abfd)
 {
-  char *name;
+  const char *name;
 
   if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
     return get_elf_backend_data (abfd)->sign_extend_vma;
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 9ca68ca61d..8eac73ddfe 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -361,7 +361,7 @@ CODE_FRAGMENT
 .     bfd *, char **);
 .
 .  {* The textual name of the relocation type.  *}
-.  char *name;
+.  const char *name;
 .};
 .
 */
diff --git a/bfd/som.c b/bfd/som.c
index 02a99a3360..cf78843452 100644
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -5995,6 +5995,7 @@ som_bfd_fill_in_ar_symbols (bfd *abfd,
       unsigned int hash_val;
       unsigned int len;
       unsigned char ext_len[4];
+      char *name;
 
       /* An empty chain has zero as it's file offset.  */
       hash_val = bfd_getb32 (hash_table + 4 * i);
@@ -6025,13 +6026,14 @@ som_bfd_fill_in_ar_symbols (bfd *abfd,
       len = bfd_getb32 (ext_len);
 
       /* Allocate space for the name and null terminate it too.  */
-      set->name = bfd_zalloc (abfd, (bfd_size_type) len + 1);
-      if (!set->name)
+      name = bfd_zalloc (abfd, (bfd_size_type) len + 1);
+      if (!name)
 	goto error_return;
-      if (bfd_bread (set->name, (bfd_size_type) len, abfd) != len)
+      if (bfd_bread (name, (bfd_size_type) len, abfd) != len)
 	goto error_return;
 
-      set->name[len] = 0;
+      name[len] = 0;
+      set->name = name;
 
       /* Fill in the file offset.  Note that the "location" field points
 	 to the SOM itself, not the ar_hdr in front of it.  */
@@ -6068,13 +6070,14 @@ som_bfd_fill_in_ar_symbols (bfd *abfd,
 	  len = bfd_getb32 (ext_len);
 
 	  /* Allocate space for the name and null terminate it too.  */
-	  set->name = bfd_zalloc (abfd, (bfd_size_type) len + 1);
-	  if (!set->name)
+	  name = bfd_zalloc (abfd, (bfd_size_type) len + 1);
+	  if (!name)
 	    goto error_return;
 
-	  if (bfd_bread (set->name, (bfd_size_type) len, abfd) != len)
+	  if (bfd_bread (name, (bfd_size_type) len, abfd) != len)
 	    goto error_return;
-	  set->name[len] = 0;
+	  name[len] = 0;
+	  set->name = name;
 
 	  /* Fill in the file offset.  Note that the "location" field points
 	     to the SOM itself, not the ar_hdr in front of it.  */
diff --git a/bfd/targets.c b/bfd/targets.c
index 09956994ec..b02dfc5484 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -179,7 +179,7 @@ DESCRIPTION
 .typedef struct bfd_target
 .{
 .  {* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  *}
-.  char *name;
+.  const char *name;
 .
 . {* The "flavour" of a back end is a general indication about
 .    the contents of a file.  *}
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9ad5000480..5e0e37bcfa 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* amd64-dicos-tdep.c (amd64_dicos_osabi_sniffer): Constify target.
+	* i386-cygwin-tdep.c (i386_cygwin_init_abi): Likewise.
+	* i386-dicos-tdep.c (i386_dicos_osabi_sniffer): Likewise.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* solib-spu.c (spu_bfd_open): Use bfd_set_filename.
diff --git a/gdb/amd64-dicos-tdep.c b/gdb/amd64-dicos-tdep.c
index e797843bc9..ee91888491 100644
--- a/gdb/amd64-dicos-tdep.c
+++ b/gdb/amd64-dicos-tdep.c
@@ -35,7 +35,7 @@ amd64_dicos_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 static enum gdb_osabi
 amd64_dicos_osabi_sniffer (bfd *abfd)
 {
-  char *target_name = bfd_get_target (abfd);
+  const char *target_name = bfd_get_target (abfd);
 
   /* On amd64-DICOS, the Load Module's "header" section is 72
      bytes.  */
diff --git a/gdb/i386-cygwin-tdep.c b/gdb/i386-cygwin-tdep.c
index 1acd37975e..0e3ba82b76 100644
--- a/gdb/i386-cygwin-tdep.c
+++ b/gdb/i386-cygwin-tdep.c
@@ -229,7 +229,7 @@ i386_cygwin_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 static enum gdb_osabi
 i386_cygwin_osabi_sniffer (bfd *abfd)
 {
-  char *target_name = bfd_get_target (abfd);
+  const char *target_name = bfd_get_target (abfd);
 
   if (strcmp (target_name, "pei-i386") == 0)
     return GDB_OSABI_CYGWIN;
diff --git a/gdb/i386-dicos-tdep.c b/gdb/i386-dicos-tdep.c
index 02af91aefd..a8c7c04d1f 100644
--- a/gdb/i386-dicos-tdep.c
+++ b/gdb/i386-dicos-tdep.c
@@ -31,7 +31,7 @@ i386_dicos_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 static enum gdb_osabi
 i386_dicos_osabi_sniffer (bfd *abfd)
 {
-  char *target_name = bfd_get_target (abfd);
+  const char *target_name = bfd_get_target (abfd);
 
   /* On x86-DICOS, the Load Module's "header" section is 36 bytes.  */
   if (strcmp (target_name, "elf32-i386") == 0
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 81935a408c..b863676ccd 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* ldlang.c (stricpy, strcut, name_compare): Constify params.
+	(get_first_input_target): Make return and "target" const.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* emultempl/pe.em (after_open): Use bfd_set_filename.
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 8beccd3736..76e862a640 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -3149,7 +3149,7 @@ get_target (const bfd_target *target, void *data)
 /* Like strcpy() but convert to lower case as well.  */
 
 static void
-stricpy (char *dest, char *src)
+stricpy (char *dest, const char *src)
 {
   char c;
 
@@ -3163,7 +3163,7 @@ stricpy (char *dest, char *src)
    from haystack.  */
 
 static void
-strcut (char *haystack, char *needle)
+strcut (char *haystack, const char *needle)
 {
   haystack = strstr (haystack, needle);
 
@@ -3182,7 +3182,7 @@ strcut (char *haystack, char *needle)
    Return a value indicating how "similar" they are.  */
 
 static int
-name_compare (char *first, char *second)
+name_compare (const char *first, const char *second)
 {
   char *copy1;
   char *copy2;
@@ -3267,10 +3267,10 @@ closest_target_match (const bfd_target *target, void *data)
 
 /* Return the BFD target format of the first input file.  */
 
-static char *
+static const char *
 get_first_input_target (void)
 {
-  char *target = NULL;
+  const char *target = NULL;
 
   LANG_FOR_EACH_INPUT_STATEMENT (s)
     {


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Constify bfd_octets_per_byte and related functions
@ 2019-09-18 13:54 gdb-buildbot
  2019-09-18 16:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 13:54 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 01c2b26160575ad4add68da8a043b3fa30defae4 ***

commit 01c2b26160575ad4add68da8a043b3fa30defae4
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Tue Sep 17 15:24:01 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 22:20:13 2019 +0930

    Constify bfd_octets_per_byte and related functions
    
            * archures.c (bfd_get_arch): Make param const.
            (bfd_get_mach, bfd_arch_bits_per_byte): Likewise.
            (bfd_arch_bits_per_address, bfd_octets_per_byte): Likewise.
            * bfd-in2.h: Regenerate.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8c5ce8b8b2..820c3bd5d7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* archures.c (bfd_get_arch): Make param const.
+	(bfd_get_mach, bfd_arch_bits_per_byte): Likewise.
+	(bfd_arch_bits_per_address, bfd_octets_per_byte): Likewise.
+	* bfd-in2.h: Regenerate.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h (carsym.name): Make const.
diff --git a/bfd/archures.c b/bfd/archures.c
index 02c8e4ec93..1e6a0e1f1b 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -999,7 +999,7 @@ FUNCTION
 	bfd_get_arch
 
 SYNOPSIS
-	enum bfd_architecture bfd_get_arch (bfd *abfd);
+	enum bfd_architecture bfd_get_arch (const bfd *abfd);
 
 DESCRIPTION
 	Return the enumerated type which describes the BFD @var{abfd}'s
@@ -1007,7 +1007,7 @@ DESCRIPTION
 */
 
 enum bfd_architecture
-bfd_get_arch (bfd *abfd)
+bfd_get_arch (const bfd *abfd)
 {
   return abfd->arch_info->arch;
 }
@@ -1017,7 +1017,7 @@ FUNCTION
 	bfd_get_mach
 
 SYNOPSIS
-	unsigned long bfd_get_mach (bfd *abfd);
+	unsigned long bfd_get_mach (const bfd *abfd);
 
 DESCRIPTION
 	Return the long type which describes the BFD @var{abfd}'s
@@ -1025,7 +1025,7 @@ DESCRIPTION
 */
 
 unsigned long
-bfd_get_mach (bfd *abfd)
+bfd_get_mach (const bfd *abfd)
 {
   return abfd->arch_info->mach;
 }
@@ -1035,7 +1035,7 @@ FUNCTION
 	bfd_arch_bits_per_byte
 
 SYNOPSIS
-	unsigned int bfd_arch_bits_per_byte (bfd *abfd);
+	unsigned int bfd_arch_bits_per_byte (const bfd *abfd);
 
 DESCRIPTION
 	Return the number of bits in one of the BFD @var{abfd}'s
@@ -1043,7 +1043,7 @@ DESCRIPTION
 */
 
 unsigned int
-bfd_arch_bits_per_byte (bfd *abfd)
+bfd_arch_bits_per_byte (const bfd *abfd)
 {
   return abfd->arch_info->bits_per_byte;
 }
@@ -1053,7 +1053,7 @@ FUNCTION
 	bfd_arch_bits_per_address
 
 SYNOPSIS
-	unsigned int bfd_arch_bits_per_address (bfd *abfd);
+	unsigned int bfd_arch_bits_per_address (const bfd *abfd);
 
 DESCRIPTION
 	Return the number of bits in one of the BFD @var{abfd}'s
@@ -1061,7 +1061,7 @@ DESCRIPTION
 */
 
 unsigned int
-bfd_arch_bits_per_address (bfd *abfd)
+bfd_arch_bits_per_address (const bfd *abfd)
 {
   return abfd->arch_info->bits_per_address;
 }
@@ -1383,7 +1383,7 @@ FUNCTION
 	bfd_octets_per_byte
 
 SYNOPSIS
-	unsigned int bfd_octets_per_byte (bfd *abfd);
+	unsigned int bfd_octets_per_byte (const bfd *abfd);
 
 DESCRIPTION
 	Return the number of octets (8-bit quantities) per target byte
@@ -1392,7 +1392,7 @@ DESCRIPTION
 */
 
 unsigned int
-bfd_octets_per_byte (bfd *abfd)
+bfd_octets_per_byte (const bfd *abfd)
 {
   return bfd_arch_mach_octets_per_byte (bfd_get_arch (abfd),
 					bfd_get_mach (abfd));
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 135c1e5fbc..aec2143ea6 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2545,13 +2545,13 @@ void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
 bfd_boolean bfd_default_set_arch_mach
    (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
 
-enum bfd_architecture bfd_get_arch (bfd *abfd);
+enum bfd_architecture bfd_get_arch (const bfd *abfd);
 
-unsigned long bfd_get_mach (bfd *abfd);
+unsigned long bfd_get_mach (const bfd *abfd);
 
-unsigned int bfd_arch_bits_per_byte (bfd *abfd);
+unsigned int bfd_arch_bits_per_byte (const bfd *abfd);
 
-unsigned int bfd_arch_bits_per_address (bfd *abfd);
+unsigned int bfd_arch_bits_per_address (const bfd *abfd);
 
 const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
 
@@ -2561,7 +2561,7 @@ const bfd_arch_info_type *bfd_lookup_arch
 const char *bfd_printable_arch_mach
    (enum bfd_architecture arch, unsigned long machine);
 
-unsigned int bfd_octets_per_byte (bfd *abfd);
+unsigned int bfd_octets_per_byte (const bfd *abfd);
 
 unsigned int bfd_arch_mach_octets_per_byte
    (enum bfd_architecture arch, unsigned long machine);


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't use bfd_get_* macro to set bfd fields
@ 2019-09-18 14:17 gdb-buildbot
  2019-09-18 17:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 14:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ed48ec2e6ec5514f01b9b3a810d6ddf39651114b ***

commit ed48ec2e6ec5514f01b9b3a810d6ddf39651114b
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 18 15:07:33 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 22:21:58 2019 +0930

    Don't use bfd_get_* macro to set bfd fields
    
            * aoutx.h (slurp_symbol_table): Don't set symcount using bfd_get
            macros.
            * pdp11.c (slurp_symbol_table): Likewise.
            * som.c (som_slurp_symbol_table): Likewise.
            * coff-ppc.c (ppc_bfd_coff_final_link): Likewise.
            * coffcode.h (coff_slurp_symbol_table): Likewise.
            * cofflink.c (_bfd_coff_final_link): Likewise.
            * ecoff.c (ecoff_slurp_symbolic_header): Likewise.
            (_bfd_ecoff_slurp_symbolic_info): Likewise.
            (_bfd_ecoff_slurp_symbol_table): Likewise.
            (_bfd_ecoff_bfd_final_link): Likewise.
            * elf.c (_bfd_elf_canonicalize_symtab): Likewise.
            * elflink.c (elf_link_output_symstrtab): Likewise.
            (bfd_elf_final_link): Likewise.
            * peicode.h (pe_ILF_build_a_bfd): Likewise.
            * xcofflink.c (_bfd_xcoff_bfd_final_link): Likewise.
            * aoutx.h (some_aout_object_p, slurp_symbol_table): Don't set
            start_address or symcount using bfd_get macros.
            * coffgen.c (coff_real_object_p): Likewise.
            * pdp11.c (some_aout_object_p, slurp_symbol_table): Likewise.
            * som.c (som_object_setup, som_slurp_symbol_table): Likewise.
            * elfcore.h (elf_core_file_p): Don't set start_address using
            bfd_get macro.
            * elf.c (_bfd_elf_canonicalize_dynamic_symtab): Don't set dynsymcount
            using bfd_get macro.
            * bfd.c (bfd_set_file_flags): Don't set flags using bfd_get macro.
            * linker.c (bfd_generic_link_read_symbols): Don't set outsymbols
            or symcount using bfd_get macros.
            (_bfd_generic_final_link, generic_add_output_symbol): Likewise.
            * syms.c (bfd_set_symtab): Likewise.
            * vms-alpha.c (alpha_vms_bfd_final_link): Likewise.
            * archive.c (do_slurp_bsd_armap): Don't set has_armap using
            bfd_has_map macro.
            (do_slurp_coff_armap, bfd_slurp_armap): Likewise.
            * archive64.c (_bfd_archive_64_bit_slurp_armap): Likewise.
            * coff-rs6000.c (_bfd_xcoff_slurp_armap): Likewise.
            * coff64-rs6000.c (xcoff64_slurp_armap): Likewise.
            * ecoff.c (_bfd_ecoff_slurp_armap): Likewise.
            * som.c (som_slurp_armap): Likewise.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 820c3bd5d7..32c57b7963 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,45 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* aoutx.h (slurp_symbol_table): Don't set symcount using bfd_get
+	macros.
+	* pdp11.c (slurp_symbol_table): Likewise.
+	* som.c (som_slurp_symbol_table): Likewise.
+	* coff-ppc.c (ppc_bfd_coff_final_link): Likewise.
+	* coffcode.h (coff_slurp_symbol_table): Likewise.
+	* cofflink.c (_bfd_coff_final_link): Likewise.
+	* ecoff.c (ecoff_slurp_symbolic_header): Likewise.
+	(_bfd_ecoff_slurp_symbolic_info): Likewise.
+	(_bfd_ecoff_slurp_symbol_table): Likewise.
+	(_bfd_ecoff_bfd_final_link): Likewise.
+	* elf.c (_bfd_elf_canonicalize_symtab): Likewise.
+	* elflink.c (elf_link_output_symstrtab): Likewise.
+	(bfd_elf_final_link): Likewise.
+	* peicode.h (pe_ILF_build_a_bfd): Likewise.
+	* xcofflink.c (_bfd_xcoff_bfd_final_link): Likewise.
+	* aoutx.h (some_aout_object_p, slurp_symbol_table): Don't set
+	start_address or symcount using bfd_get macros.
+	* coffgen.c (coff_real_object_p): Likewise.
+	* pdp11.c (some_aout_object_p, slurp_symbol_table): Likewise.
+	* som.c (som_object_setup, som_slurp_symbol_table): Likewise.
+	* elfcore.h (elf_core_file_p): Don't set start_address using
+	bfd_get macro.
+	* elf.c (_bfd_elf_canonicalize_dynamic_symtab): Don't set dynsymcount
+	using bfd_get macro.
+	* bfd.c (bfd_set_file_flags): Don't set flags using bfd_get macro.
+	* linker.c (bfd_generic_link_read_symbols): Don't set outsymbols
+	or symcount using bfd_get macros.
+	(_bfd_generic_final_link, generic_add_output_symbol): Likewise.
+	* syms.c (bfd_set_symtab): Likewise.
+	* vms-alpha.c (alpha_vms_bfd_final_link): Likewise.
+	* archive.c (do_slurp_bsd_armap): Don't set has_armap using
+	bfd_has_map macro.
+	(do_slurp_coff_armap, bfd_slurp_armap): Likewise.
+	* archive64.c (_bfd_archive_64_bit_slurp_armap): Likewise.
+	* coff-rs6000.c (_bfd_xcoff_slurp_armap): Likewise.
+	* coff64-rs6000.c (xcoff64_slurp_armap): Likewise.
+	* ecoff.c (_bfd_ecoff_slurp_armap): Likewise.
+	* som.c (som_slurp_armap): Likewise.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* archures.c (bfd_get_arch): Make param const.
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index e5d8dcf390..cd50b44e60 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -511,10 +511,10 @@ NAME (aout, some_aout_object_p) (bfd *abfd,
        was called.  */
     abort ();
 
-  bfd_get_start_address (abfd) = execp->a_entry;
+  abfd->start_address = execp->a_entry;
 
   obj_aout_symbols (abfd) = NULL;
-  bfd_get_symcount (abfd) = execp->a_syms / sizeof (struct external_nlist);
+  abfd->symcount = execp->a_syms / sizeof (struct external_nlist);
 
   /* The default relocation entry size is that of traditional V7 Unix.  */
   obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
@@ -1782,7 +1782,7 @@ NAME (aout, slurp_symbol_table) (bfd *abfd)
       return FALSE;
     }
 
-  bfd_get_symcount (abfd) = obj_aout_external_sym_count (abfd);
+  abfd->symcount = obj_aout_external_sym_count (abfd);
 
   obj_aout_symbols (abfd) = cached;
 
diff --git a/bfd/archive.c b/bfd/archive.c
index ef71e8a796..dc0400d1cf 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -1013,7 +1013,7 @@ do_slurp_bsd_armap (bfd *abfd)
   /* FIXME, we should provide some way to free raw_ardata when
      we are done using the strings from it.  For now, it seems
      to be allocated on an objalloc anyway...  */
-  bfd_has_map (abfd) = TRUE;
+  abfd->has_armap = TRUE;
   return TRUE;
 }
 
@@ -1105,7 +1105,7 @@ do_slurp_coff_armap (bfd *abfd)
   /* Pad to an even boundary if you have to.  */
   ardata->first_file_filepos += (ardata->first_file_filepos) % 2;
 
-  bfd_has_map (abfd) = TRUE;
+  abfd->has_armap = TRUE;
   bfd_release (abfd, raw_armap);
 
   /* Check for a second archive header (as used by PE).  */
@@ -1188,7 +1188,7 @@ bfd_slurp_armap (bfd *abfd)
 	return do_slurp_bsd_armap (abfd);
     }
 
-  bfd_has_map (abfd) = FALSE;
+  abfd->has_armap = FALSE;
   return TRUE;
 }
 \f
diff --git a/bfd/archive64.c b/bfd/archive64.c
index a2c628e2b5..37fecc28d4 100644
--- a/bfd/archive64.c
+++ b/bfd/archive64.c
@@ -66,7 +66,7 @@ _bfd_archive_64_bit_slurp_armap (bfd *abfd)
 
   if (! CONST_STRNEQ (nextname, "/SYM64/         "))
     {
-      bfd_has_map (abfd) = FALSE;
+      abfd->has_armap = FALSE;
       return TRUE;
     }
 
@@ -137,7 +137,7 @@ _bfd_archive_64_bit_slurp_armap (bfd *abfd)
   /* Pad to an even boundary if you have to.  */
   ardata->first_file_filepos += (ardata->first_file_filepos) % 2;
 
-  bfd_has_map (abfd) = TRUE;
+  abfd->has_armap = TRUE;
   bfd_release (abfd, raw_armap);
 
   return TRUE;
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 91403508a9..c973c780b4 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1418,7 +1418,7 @@ bfd_set_file_flags (bfd *abfd, flagword flags)
       return FALSE;
     }
 
-  bfd_get_file_flags (abfd) = flags;
+  abfd->flags = flags;
   if ((flags & bfd_applicable_file_flags (abfd)) != flags)
     {
       bfd_set_error (bfd_error_invalid_operation);
diff --git a/bfd/coff-ppc.c b/bfd/coff-ppc.c
index 40824c5cb0..ab5c2c837c 100644
--- a/bfd/coff-ppc.c
+++ b/bfd/coff-ppc.c
@@ -2420,9 +2420,9 @@ ppc_bfd_coff_final_link (bfd *abfd, struct bfd_link_info *info)
 
   _bfd_stringtab_free (flaginfo.strtab);
 
-  /* Setting bfd_get_symcount to 0 will cause write_object_contents to
+  /* Setting symcount to 0 will cause write_object_contents to
      not try to write out the symbols.  */
-  bfd_get_symcount (abfd) = 0;
+  abfd->symcount = 0;
 
   return TRUE;
 
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 4620254aae..bdbb499a4a 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -1243,7 +1243,7 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
 
   if (xcoff_ardata (abfd) == NULL)
     {
-      bfd_has_map (abfd) = FALSE;
+      abfd->has_armap = FALSE;
       return TRUE;
     }
 
@@ -1255,7 +1255,7 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
       GET_VALUE_IN_FIELD (off, xcoff_ardata (abfd)->symoff, 10);
       if (off == 0)
 	{
-	  bfd_has_map (abfd) = FALSE;
+	  abfd->has_armap = FALSE;
 	  return TRUE;
 	}
 
@@ -1310,7 +1310,7 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
       GET_VALUE_IN_FIELD (off, xcoff_ardata_big (abfd)->symoff, 10);
       if (off == 0)
 	{
-	  bfd_has_map (abfd) = FALSE;
+	  abfd->has_armap = FALSE;
 	  return TRUE;
 	}
 
@@ -1373,7 +1373,7 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
     }
 
   bfd_ardata (abfd)->symdef_count = c;
-  bfd_has_map (abfd) = TRUE;
+  abfd->has_armap = TRUE;
 
   return TRUE;
 }
diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index b6b189fd2d..1c80a9df88 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -1906,7 +1906,7 @@ xcoff64_slurp_armap (bfd *abfd)
 
   if (xcoff_ardata (abfd) == NULL)
     {
-      bfd_has_map (abfd) = FALSE;
+      abfd->has_armap = FALSE;
       return TRUE;
     }
 
@@ -1914,7 +1914,7 @@ xcoff64_slurp_armap (bfd *abfd)
 		      (const char **) NULL, 10);
   if (off == 0)
     {
-      bfd_has_map (abfd) = FALSE;
+      abfd->has_armap = FALSE;
       return TRUE;
     }
 
@@ -1976,7 +1976,7 @@ xcoff64_slurp_armap (bfd *abfd)
     }
 
   bfd_ardata (abfd)->symdef_count = c;
-  bfd_has_map (abfd) = TRUE;
+  abfd->has_armap = TRUE;
 
   return TRUE;
 }
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 054e45c960..dd3189fbd3 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -4809,7 +4809,7 @@ coff_slurp_symbol_table (bfd * abfd)
   obj_symbols (abfd) = cached_area;
   obj_raw_syments (abfd) = native_symbols;
 
-  bfd_get_symcount (abfd) = number_of_symbols;
+  abfd->symcount = number_of_symbols;
   obj_convert (abfd) = table_ptr;
   /* Slurp the line tables for each section too.  */
   {
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index 209b01d5d0..80a9a2ab9a 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -257,14 +257,14 @@ coff_real_object_p (bfd *abfd,
   if ((internal_f->f_flags & F_EXEC) != 0)
     abfd->flags |= D_PAGED;
 
-  bfd_get_symcount (abfd) = internal_f->f_nsyms;
+  abfd->symcount = internal_f->f_nsyms;
   if (internal_f->f_nsyms)
     abfd->flags |= HAS_SYMS;
 
   if (internal_a != (struct internal_aouthdr *) NULL)
-    bfd_get_start_address (abfd) = internal_a->entry;
+    abfd->start_address = internal_a->entry;
   else
-    bfd_get_start_address (abfd) = 0;
+    abfd->start_address = 0;
 
   /* Set up the tdata area.  ECOFF uses its own routine, and overrides
      abfd->flags.  */
@@ -309,7 +309,7 @@ coff_real_object_p (bfd *abfd,
  fail2:
   abfd->tdata.any = tdata_save;
   abfd->flags = oflags;
-  bfd_get_start_address (abfd) = ostart;
+  abfd->start_address = ostart;
   return (const bfd_target *) NULL;
 }
 
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 5e02760154..34d68c93b5 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -1186,9 +1186,9 @@ _bfd_coff_final_link (bfd *abfd,
 
   _bfd_stringtab_free (flaginfo.strtab);
 
-  /* Setting bfd_get_symcount to 0 will cause write_object_contents to
+  /* Setting symcount to 0 will cause write_object_contents to
      not try to write out the symbols.  */
-  bfd_get_symcount (abfd) = 0;
+  abfd->symcount = 0;
 
   return TRUE;
 
diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index f9844b3b4b..1e6f4d219c 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -446,7 +446,7 @@ ecoff_slurp_symbolic_header (bfd *abfd)
   /* See whether there is a symbolic header.  */
   if (ecoff_data (abfd)->sym_filepos == 0)
     {
-      bfd_get_symcount (abfd) = 0;
+      abfd->symcount = 0;
       return TRUE;
     }
 
@@ -479,8 +479,7 @@ ecoff_slurp_symbolic_header (bfd *abfd)
     }
 
   /* Now we can get the correct number of symbols.  */
-  bfd_get_symcount (abfd) = (internal_symhdr->isymMax
-			     + internal_symhdr->iextMax);
+  abfd->symcount = internal_symhdr->isymMax + internal_symhdr->iextMax;
 
   if (raw != NULL)
     free (raw);
@@ -521,7 +520,7 @@ _bfd_ecoff_slurp_symbolic_info (bfd *abfd,
     return TRUE;
   if (ecoff_data (abfd)->sym_filepos == 0)
     {
-      bfd_get_symcount (abfd) = 0;
+      abfd->symcount = 0;
       return TRUE;
     }
 
@@ -965,7 +964,7 @@ _bfd_ecoff_slurp_symbol_table (bfd *abfd)
      the symbol count and warning the user.  */
   if (internal_ptr - internal < (ptrdiff_t) bfd_get_symcount (abfd))
     {
-      bfd_get_symcount (abfd) = internal_ptr - internal;
+      abfd->symcount = internal_ptr - internal;
       _bfd_error_handler
 	/* xgettext:c-format */
 	(_("%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"),
@@ -2905,7 +2904,7 @@ _bfd_ecoff_slurp_armap (bfd *abfd)
 	  && nextname[ARMAP_OBJECT_ENDIAN_INDEX] != ARMAP_LITTLE_ENDIAN)
       || ! strneq (nextname + ARMAP_END_INDEX, ARMAP_END, sizeof ARMAP_END - 1))
     {
-      bfd_has_map (abfd) = FALSE;
+      abfd->has_armap = FALSE;
       return TRUE;
     }
 
@@ -3018,7 +3017,7 @@ _bfd_ecoff_slurp_armap (bfd *abfd)
   /* Pad to an even boundary.  */
   ardata->first_file_filepos += ardata->first_file_filepos % 2;
 
-  bfd_has_map (abfd) = TRUE;
+  abfd->has_armap = TRUE;
 
   return TRUE;
 }
@@ -4459,7 +4458,7 @@ _bfd_ecoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
 	}
     }
 
-  bfd_get_symcount (abfd) = symhdr->iextMax + symhdr->isymMax;
+  abfd->symcount = symhdr->iextMax + symhdr->isymMax;
 
   ecoff_data (abfd)->linker = TRUE;
 
diff --git a/bfd/elf.c b/bfd/elf.c
index ec4c643d59..ecd348e1a5 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -8405,7 +8405,7 @@ _bfd_elf_canonicalize_symtab (bfd *abfd, asymbol **allocation)
   long symcount = bed->s->slurp_symbol_table (abfd, allocation, FALSE);
 
   if (symcount >= 0)
-    bfd_get_symcount (abfd) = symcount;
+    abfd->symcount = symcount;
   return symcount;
 }
 
@@ -8417,7 +8417,7 @@ _bfd_elf_canonicalize_dynamic_symtab (bfd *abfd,
   long symcount = bed->s->slurp_symbol_table (abfd, allocation, TRUE);
 
   if (symcount >= 0)
-    bfd_get_dynamic_symcount (abfd) = symcount;
+    abfd->dynsymcount = symcount;
   return symcount;
 }
 
diff --git a/bfd/elfcore.h b/bfd/elfcore.h
index 395feb5ef3..3550eaac27 100644
--- a/bfd/elfcore.h
+++ b/bfd/elfcore.h
@@ -305,7 +305,7 @@ elf_core_file_p (bfd *abfd)
   }
 
   /* Save the entry point from the ELF header.  */
-  bfd_get_start_address (abfd) = i_ehdrp->e_entry;
+  abfd->start_address = i_ehdrp->e_entry;
   return abfd->xvec;
 
 wrong:
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 16d83bb7a3..8f18be07db 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -9481,7 +9481,7 @@ elf_link_output_symstrtab (struct elf_final_link_info *flinfo,
   hash_table->strtab[hash_table->strtabcount].destshndx_index
     = flinfo->symshndxbuf ? bfd_get_symcount (flinfo->output_bfd) : 0;
 
-  bfd_get_symcount (flinfo->output_bfd) += 1;
+  flinfo->output_bfd->symcount += 1;
   hash_table->strtabcount += 1;
 
   return 1;
@@ -12012,7 +12012,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
   /* Figure out the file positions for everything but the symbol table
      and the relocs.  We set symcount to force assign_section_numbers
      to create a symbol table.  */
-  bfd_get_symcount (abfd) = info->strip != strip_all || emit_relocs;
+  abfd->symcount = info->strip != strip_all || emit_relocs;
   BFD_ASSERT (! abfd->output_has_begun);
   if (! _bfd_elf_compute_section_file_positions (abfd, info))
     goto error_return;
@@ -12057,7 +12057,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
      .symtab, .strtab, and non-loaded reloc sections.  We start the
      .symtab section at the current file position, and write directly
      to it.  We build the .strtab section in memory.  */
-  bfd_get_symcount (abfd) = 0;
+  abfd->symcount = 0;
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   /* sh_name is set in prep_headers.  */
   symtab_hdr->sh_type = SHT_SYMTAB;
diff --git a/bfd/linker.c b/bfd/linker.c
index f6eef93259..8aec0d2358 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -810,14 +810,13 @@ bfd_generic_link_read_symbols (bfd *abfd)
       symsize = bfd_get_symtab_upper_bound (abfd);
       if (symsize < 0)
 	return FALSE;
-      bfd_get_outsymbols (abfd) = (struct bfd_symbol **) bfd_alloc (abfd,
-								    symsize);
+      abfd->outsymbols = bfd_alloc (abfd, symsize);
       if (bfd_get_outsymbols (abfd) == NULL && symsize != 0)
 	return FALSE;
       symcount = bfd_canonicalize_symtab (abfd, bfd_get_outsymbols (abfd));
       if (symcount < 0)
 	return FALSE;
-      bfd_get_symcount (abfd) = symcount;
+      abfd->symcount = symcount;
     }
 
   return TRUE;
@@ -1824,8 +1823,8 @@ _bfd_generic_final_link (bfd *abfd, struct bfd_link_info *info)
   size_t outsymalloc;
   struct generic_write_global_symbol_info wginfo;
 
-  bfd_get_outsymbols (abfd) = NULL;
-  bfd_get_symcount (abfd) = 0;
+  abfd->outsymbols = NULL;
+  abfd->symcount = 0;
   outsymalloc = 0;
 
   /* Mark all sections which will be included in the output file.  */
@@ -1958,12 +1957,12 @@ generic_add_output_symbol (bfd *output_bfd, size_t *psymalloc, asymbol *sym)
       newsyms = (asymbol **) bfd_realloc (bfd_get_outsymbols (output_bfd), amt);
       if (newsyms == NULL)
 	return FALSE;
-      bfd_get_outsymbols (output_bfd) = newsyms;
+      output_bfd->outsymbols = newsyms;
     }
 
-  bfd_get_outsymbols (output_bfd) [bfd_get_symcount (output_bfd)] = sym;
+  output_bfd->outsymbols[output_bfd->symcount] = sym;
   if (sym != NULL)
-    ++ bfd_get_symcount (output_bfd);
+    ++output_bfd->symcount;
 
   return TRUE;
 }
diff --git a/bfd/pdp11.c b/bfd/pdp11.c
index 1d34047fdc..f7f3128409 100644
--- a/bfd/pdp11.c
+++ b/bfd/pdp11.c
@@ -505,10 +505,10 @@ NAME (aout, some_aout_object_p) (bfd *abfd,
       abort ();
     }
 
-  bfd_get_start_address (abfd) = execp->a_entry;
+  abfd->start_address = execp->a_entry;
 
   obj_aout_symbols (abfd) = NULL;
-  bfd_get_symcount (abfd) = execp->a_syms / sizeof (struct external_nlist);
+  abfd->symcount = execp->a_syms / sizeof (struct external_nlist);
 
   /* The default relocation entry size is that of traditional V7 Unix.  */
   obj_reloc_entry_size (abfd) = RELOC_SIZE;
@@ -1512,7 +1512,7 @@ NAME (aout, slurp_symbol_table) (bfd *abfd)
       return FALSE;
     }
 
-  bfd_get_symcount (abfd) = obj_aout_external_sym_count (abfd);
+  abfd->symcount = obj_aout_external_sym_count (abfd);
 
   obj_aout_symbols (abfd) = cached;
 
diff --git a/bfd/peicode.h b/bfd/peicode.h
index 2a564fec98..679474ecd1 100644
--- a/bfd/peicode.h
+++ b/bfd/peicode.h
@@ -1093,7 +1093,7 @@ pe_ILF_build_a_bfd (bfd *	    abfd,
 
   /* Point the bfd at the symbol table.  */
   obj_symbols (abfd) = vars.sym_cache;
-  bfd_get_symcount (abfd) = vars.sym_index;
+  abfd->symcount = vars.sym_index;
 
   obj_raw_syments (abfd) = vars.native_syms;
   obj_raw_syment_count (abfd) = vars.sym_index;
diff --git a/bfd/som.c b/bfd/som.c
index cf78843452..4c9dcaee67 100644
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -2031,12 +2031,12 @@ som_object_setup (bfd *abfd,
 	  || (aux_hdrp->exec_entry & 0x3) != 0
 	  || ! found)
 	{
-	  bfd_get_start_address (abfd) = aux_hdrp->exec_flags;
+	  abfd->start_address = aux_hdrp->exec_flags;
 	  obj_som_exec_data (abfd)->exec_flags = aux_hdrp->exec_entry;
 	}
       else
 	{
-	  bfd_get_start_address (abfd) = aux_hdrp->exec_entry + current_offset;
+	  abfd->start_address = aux_hdrp->exec_entry + current_offset;
 	  obj_som_exec_data (abfd)->exec_flags = aux_hdrp->exec_flags;
 	}
     }
@@ -2044,7 +2044,7 @@ som_object_setup (bfd *abfd,
   obj_som_exec_data (abfd)->version_id = file_hdrp->version_id;
 
   bfd_default_set_arch_mach (abfd, bfd_arch_hppa, pa10);
-  bfd_get_symcount (abfd) = file_hdrp->symbol_total;
+  abfd->symcount = file_hdrp->symbol_total;
 
   /* Initialize the saved symbol table and string table to NULL.
      Save important offsets and sizes from the SOM header into
@@ -4792,7 +4792,7 @@ som_slurp_symbol_table (bfd *abfd)
 
   /* We modify the symbol count to record the number of BFD symbols we
      created.  */
-  bfd_get_symcount (abfd) = sym - symbase;
+  abfd->symcount = sym - symbase;
 
   /* Save our results and return success.  */
   obj_som_symtab (abfd) = symbase;
@@ -6131,7 +6131,7 @@ som_slurp_armap (bfd *abfd)
   /* For archives without .o files there is no symbol table.  */
   if (! CONST_STRNEQ (nextname, "/               "))
     {
-      bfd_has_map (abfd) = FALSE;
+      abfd->has_armap = FALSE;
       return TRUE;
     }
 
@@ -6201,7 +6201,7 @@ som_slurp_armap (bfd *abfd)
     return FALSE;
 
   /* Notify the generic archive code that we have a symbol map.  */
-  bfd_has_map (abfd) = TRUE;
+  abfd->has_armap = TRUE;
   return TRUE;
 }
 
diff --git a/bfd/syms.c b/bfd/syms.c
index da1c90d52e..4d532b2cd2 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -455,8 +455,8 @@ bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int symcount)
       return FALSE;
     }
 
-  bfd_get_outsymbols (abfd) = location;
-  bfd_get_symcount (abfd) = symcount;
+  abfd->outsymbols = location;
+  abfd->symcount = symcount;
   return TRUE;
 }
 
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index 69822a2ce6..8d2a2dff62 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -8912,8 +8912,8 @@ alpha_vms_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
       return FALSE;
     }
 
-  bfd_get_outsymbols (abfd) = NULL;
-  bfd_get_symcount (abfd) = 0;
+  abfd->outsymbols = NULL;
+  abfd->symcount = 0;
 
   /* Mark all sections which will be included in the output file.  */
   for (o = abfd->sections; o != NULL; o = o->next)
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index f9c12e40f3..1a2f87c4b0 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -6412,9 +6412,9 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
 	goto error_return;
     }
 
-  /* Setting bfd_get_symcount to 0 will cause write_object_contents to
+  /* Setting symcount to 0 will cause write_object_contents to
      not try to write out the symbols.  */
-  bfd_get_symcount (abfd) = 0;
+  abfd->symcount = 0;
 
   return TRUE;
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Re-generate many configure and Makefile.in files
@ 2019-09-18 14:17 gdb-buildbot
  2019-09-18 19:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 14:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e0b2a78c83207340f6c4b5dbe02bec850dbb7def ***

commit e0b2a78c83207340f6c4b5dbe02bec850dbb7def
Author:     Simon Marchi <simon.marchi@polymtl.ca>
AuthorDate: Wed Sep 18 09:07:44 2019 -0400
Commit:     Simon Marchi <simon.marchi@efficios.com>
CommitDate: Wed Sep 18 09:09:15 2019 -0400

    Re-generate many configure and Makefile.in files
    
    I get some spurious changes when running autoconf/automake for various
    projects in the tree.  This is likely because they were generated using
    distro-patched tools last time.
    
    I ran `autoreconf -f` in the various automake projects of the
    binutils-gdb tree, and this is the result.  The tools I am using have
    been compiled from source, from the upstream release.
    
    bfd/ChangeLog:
    
            * Makefile.in: Re-generate.
            * configure: Re-generate.
            * doc/Makefile.in: Re-generate.
    
    binutils/ChangeLog:
    
            * Makefile.in: Re-generate.
            * configure: Re-generate.
            * doc/Makefile.in: Re-generate.
    
    gas/ChangeLog:
    
            * Makefile.in: Re-generate.
            * configure: Re-generate.
            * doc/Makefile.in: Re-generate.
    
    gold/ChangeLog:
    
            * testsuite/Makefile.in: Re-generate.
    
    gprof/ChangeLog:
    
            * Makefile.in: Re-generate.
            * configure: Re-generate.
    
    ld/ChangeLog:
    
            * Makefile.in: Re-generate.
            * configure: Re-generate.
    
    opcodes/ChangeLog:
    
            * Makefile.in: Re-generate.
            * configure: Re-generate.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 32c57b7963..86ea499c0e 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* Makefile.in: Re-generate.
+	* configure: Re-generate.
+	* doc/Makefile.in: Re-generate.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* aoutx.h (slurp_symbol_table): Don't set symcount using bfd_get
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 5578997e5d..9c14721fd8 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -438,7 +438,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/bfd/configure b/bfd/configure
index 10f187a692..e15957e2ce 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -793,7 +793,6 @@ infodir
 docdir
 oldincludedir
 includedir
-runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -890,7 +889,6 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1143,15 +1141,6 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
-  -runstatedir | --runstatedir | --runstatedi | --runstated \
-  | --runstate | --runstat | --runsta | --runst | --runs \
-  | --run | --ru | --r)
-    ac_prev=runstatedir ;;
-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
-  | --run=* | --ru=* | --r=*)
-    runstatedir=$ac_optarg ;;
-
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1289,7 +1278,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir runstatedir
+		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1442,7 +1431,6 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -11740,7 +11728,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11743 "configure"
+#line 11731 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11846,7 +11834,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11849 "configure"
+#line 11837 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12235,7 +12223,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12281,7 +12269,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12305,7 +12293,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12350,7 +12338,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12374,7 +12362,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -16368,8 +16356,6 @@ main ()
     if (*(data + i) != *(data3 + i))
       return 14;
   close (fd);
-  free (data);
-  free (data3);
   return 0;
 }
 _ACEOF
diff --git a/bfd/doc/Makefile.in b/bfd/doc/Makefile.in
index d75411d2af..0115dfc406 100644
--- a/bfd/doc/Makefile.in
+++ b/bfd/doc/Makefile.in
@@ -375,7 +375,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index a29de52599..4c4871be81 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* Makefile.in: Re-generate.
+	* configure: Re-generate.
+	* doc/Makefile.in: Re-generate.
+
 2019-09-16  Phil Blundell  <pb@pbcl.net>
 
 	* Makefile.in, configure. doc/Makefile.in: Regenerated.
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index d1828e5fc2..16c078fdd3 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -541,7 +541,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/binutils/configure b/binutils/configure
index f8fe55c2a8..50f8d5b1a2 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -778,7 +778,6 @@ infodir
 docdir
 oldincludedir
 includedir
-runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -871,7 +870,6 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1124,15 +1122,6 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
-  -runstatedir | --runstatedir | --runstatedi | --runstated \
-  | --runstate | --runstat | --runsta | --runst | --runs \
-  | --run | --ru | --r)
-    ac_prev=runstatedir ;;
-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
-  | --run=* | --ru=* | --r=*)
-    runstatedir=$ac_optarg ;;
-
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1270,7 +1259,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir runstatedir
+		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1423,7 +1412,6 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -11535,7 +11523,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11538 "configure"
+#line 11526 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11641,7 +11629,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11644 "configure"
+#line 11632 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12028,7 +12016,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12074,7 +12062,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12098,7 +12086,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12143,7 +12131,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -12167,7 +12155,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -13734,8 +13722,6 @@ main ()
     if (*(data + i) != *(data3 + i))
       return 14;
   close (fd);
-  free (data);
-  free (data3);
   return 0;
 }
 _ACEOF
diff --git a/binutils/doc/Makefile.in b/binutils/doc/Makefile.in
index c66caa832e..a0777d8fcc 100644
--- a/binutils/doc/Makefile.in
+++ b/binutils/doc/Makefile.in
@@ -374,7 +374,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f22727c7cc..6735017792 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* Makefile.in: Re-generate.
+	* configure: Re-generate.
+	* doc/Makefile.in: Re-generate.
+
 2019-09-17  Maxim Blinov  <maxim.blinov@embecosm.com>
 
 	* config/tc-riscv.c (riscv_multi_subset_supports): Handle
diff --git a/gas/Makefile.in b/gas/Makefile.in
index 595295e555..21545d25b7 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -402,7 +402,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/gas/configure b/gas/configure
index 5cfd52f712..144ead49c4 100755
--- a/gas/configure
+++ b/gas/configure
@@ -770,7 +770,6 @@ infodir
 docdir
 oldincludedir
 includedir
-runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -868,7 +867,6 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1121,15 +1119,6 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
-  -runstatedir | --runstatedir | --runstatedi | --runstated \
-  | --runstate | --runstat | --runsta | --runst | --runs \
-  | --run | --ru | --r)
-    ac_prev=runstatedir ;;
-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
-  | --run=* | --ru=* | --r=*)
-    runstatedir=$ac_optarg ;;
-
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1267,7 +1256,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir runstatedir
+		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1420,7 +1409,6 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -11355,7 +11343,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11358 "configure"
+#line 11346 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11461,7 +11449,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11464 "configure"
+#line 11452 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11848,7 +11836,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11894,7 +11882,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11918,7 +11906,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11963,7 +11951,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11987,7 +11975,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in
index 854ee9daef..7c4189a8c6 100644
--- a/gas/doc/Makefile.in
+++ b/gas/doc/Makefile.in
@@ -364,7 +364,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 77a72e3742..9e45c0fb07 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* testsuite/Makefile.in: Re-generate.
+
 2019-09-09  Phil Blundell  <pb@pbcl.net>
 
 	binutils 2.33 branch created.
diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in
index dac0db21a3..9f29dc638c 100644
--- a/gold/testsuite/Makefile.in
+++ b/gold/testsuite/Makefile.in
@@ -2708,7 +2708,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
index 737b2cd3b5..a2ebab5e04 100644
--- a/gprof/ChangeLog
+++ b/gprof/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* Makefile.in: Re-generate.
+	* configure: Re-generate.
+
 2019-09-16  Phil Blundell  <pb@pbcl.net>
 
 	* Makefile.in, configure: Regenerated.
diff --git a/gprof/Makefile.in b/gprof/Makefile.in
index d5e883d4de..451fe9585d 100644
--- a/gprof/Makefile.in
+++ b/gprof/Makefile.in
@@ -424,7 +424,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/gprof/configure b/gprof/configure
index 3c414ce75b..cbb3aced46 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -751,7 +751,6 @@ infodir
 docdir
 oldincludedir
 includedir
-runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -836,7 +835,6 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1089,15 +1087,6 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
-  -runstatedir | --runstatedir | --runstatedi | --runstated \
-  | --runstate | --runstat | --runsta | --runst | --runs \
-  | --run | --ru | --r)
-    ac_prev=runstatedir ;;
-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
-  | --run=* | --ru=* | --r=*)
-    runstatedir=$ac_optarg ;;
-
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1235,7 +1224,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir runstatedir
+		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1388,7 +1377,6 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -11202,7 +11190,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11205 "configure"
+#line 11193 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11308,7 +11296,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11311 "configure"
+#line 11299 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11695,7 +11683,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11741,7 +11729,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11765,7 +11753,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11810,7 +11798,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -11834,7 +11822,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b863676ccd..b6ac44e1f8 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* Makefile.in: Re-generate.
+	* configure: Re-generate.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* ldlang.c (stricpy, strcut, name_compare): Constify params.
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 057956139d..d509f62bd2 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -521,7 +521,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/ld/configure b/ld/configure
index 62bb4e45e9..2d6ca5c044 100755
--- a/ld/configure
+++ b/ld/configure
@@ -786,7 +786,6 @@ infodir
 docdir
 oldincludedir
 includedir
-runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -889,7 +888,6 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1142,15 +1140,6 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
-  -runstatedir | --runstatedir | --runstatedi | --runstated \
-  | --runstate | --runstat | --runsta | --runst | --runs \
-  | --run | --ru | --r)
-    ac_prev=runstatedir ;;
-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
-  | --run=* | --ru=* | --r=*)
-    runstatedir=$ac_optarg ;;
-
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1288,7 +1277,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir runstatedir
+		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1441,7 +1430,6 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -12039,7 +12027,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12042 "configure"
+#line 12030 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12145,7 +12133,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12148 "configure"
+#line 12136 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -15548,7 +15536,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -15594,7 +15582,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -15618,7 +15606,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -15663,7 +15651,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -15687,7 +15675,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -17200,8 +17188,6 @@ main ()
     if (*(data + i) != *(data3 + i))
       return 14;
   close (fd);
-  free (data);
-  free (data3);
   return 0;
 }
 _ACEOF
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 8f2ca7257e..d5b412275f 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* Makefile.in: Re-generate.
+	* configure: Re-generate.
+
 2019-09-17  Maxim Blinov  <maxim.blinov@embecosm.com>
 
 	* riscv-opc.c (riscv_opcodes): Change subset field
diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in
index ee8b31153f..74faef85b9 100644
--- a/opcodes/Makefile.in
+++ b/opcodes/Makefile.in
@@ -408,7 +408,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/opcodes/configure b/opcodes/configure
index 8062312c28..6a0b919d0f 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -769,7 +769,6 @@ infodir
 docdir
 oldincludedir
 includedir
-runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -855,7 +854,6 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1108,15 +1106,6 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
-  -runstatedir | --runstatedir | --runstatedi | --runstated \
-  | --runstate | --runstat | --runsta | --runst | --runs \
-  | --run | --ru | --r)
-    ac_prev=runstatedir ;;
-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
-  | --run=* | --ru=* | --r=*)
-    runstatedir=$ac_optarg ;;
-
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1254,7 +1243,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir runstatedir
+		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1407,7 +1396,6 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -11451,7 +11439,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11454 "configure"
+#line 11442 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11557,7 +11545,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11560 "configure"
+#line 11548 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfd_asymbol_* macros
@ 2019-09-18 14:30 gdb-buildbot
  2019-09-18 19:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 14:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e6f7f6d14f7e1acba0cf41726616a270e7d3c121 ***

commit e6f7f6d14f7e1acba0cf41726616a270e7d3c121
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 18 16:25:19 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 23:07:31 2019 +0930

    bfd_asymbol_* macros
    
    The main point of this patch is to give bfd_get_section a better name,
    bfd_asymbol_section.
    
    bfd/
            * bfd-in.h (bfd_asymbol_section): Rename from bfd_get_section.
            (bfd_get_output_section): Delete.
            (bfd_asymbol_base): Delete.
            (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
            (bfd_asymbol_bfd, bfd_asymbol_flavour): Tidy.
            (bfd_set_asymbol_name): New macro.
            * bfd-in2.h: Regenerate.
            * aout-cris.c: Update throughout to use bfd_asymbol_section.
            * aoutx.h: Likewise.
            * cofflink.c: Likewise.
            * dwarf2.c: Likewise.
            * ecoff.c: Likewise.
            * elf.c: Likewise.
            * elf32-arm.c: Likewise.
            * elf32-mips.c: Likewise.
            * elf32-score.c: Likewise.
            * elf32-score7.c: Likewise.
            * elfn32-mips.c: Likewise.
            * elfnn-aarch64.c: Likewise.
            * elfxx-mips.c: Likewise.
            * linker.c: Likewise.
            * pdp11.c: Likewise.
            * elf64-mmix.c (mmix_elf_reloc): Expand bfd_get_output_section.
    binutils/
            * nm.c: Update bfd_get_section to bfd_asymbol_section throughout.
            * objcopy.c: Likewise.
            * objdump.c: Likewise.
            * rdcoff.c: Likewise.
            * objcopy.c (create_new_symbol): Use bfd_set_asymbol_name.
            (filter_symbols): Likewise.
    gas/
            * symbols.c (S_IS_LOCAL): Update bfd_get_section to
            bfd_asymbol_section.
    gdb/
            * arm-tdep.c (arm_record_special_symbol): Update bfd_get_section
            to bfd_asymbol_section.
    ld/
            * ldcref.c (check_reloc_refs): Update bfd_get_section to
            bfd_asymbol_section.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 86ea499c0e..63f6c4c33f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,29 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h (bfd_asymbol_section): Rename from bfd_get_section.
+	(bfd_get_output_section): Delete.
+	(bfd_asymbol_base): Delete.
+	(bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
+	(bfd_asymbol_bfd, bfd_asymbol_flavour): Tidy.
+	(bfd_set_asymbol_name): New macro.
+	* bfd-in2.h: Regenerate.
+	* aout-cris.c: Update throughout to use bfd_asymbol_section.
+	* aoutx.h: Likewise.
+	* cofflink.c: Likewise.
+	* dwarf2.c: Likewise.
+	* ecoff.c: Likewise.
+	* elf.c: Likewise.
+	* elf32-arm.c: Likewise.
+	* elf32-mips.c: Likewise.
+	* elf32-score.c: Likewise.
+	* elf32-score7.c: Likewise.
+	* elfn32-mips.c: Likewise.
+	* elfnn-aarch64.c: Likewise.
+	* elfxx-mips.c: Likewise.
+	* linker.c: Likewise.
+	* pdp11.c: Likewise.
+	* elf64-mmix.c (mmix_elf_reloc): Part expand bfd_get_output_section.
+
 2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* Makefile.in: Re-generate.
diff --git a/bfd/aout-cris.c b/bfd/aout-cris.c
index feed5ed585..31b003520d 100644
--- a/bfd/aout-cris.c
+++ b/bfd/aout-cris.c
@@ -169,14 +169,14 @@ MY (swap_ext_reloc_out) (bfd *abfd,
      from the abs section, or as a symbol which has an abs value.
      check for that here.  */
 
-  if (bfd_is_abs_section (bfd_get_section (sym)))
+  if (bfd_is_abs_section (bfd_asymbol_section (sym)))
     {
       r_extern = 0;
       r_index = N_ABS;
     }
   else if ((sym->flags & BSF_SECTION_SYM) == 0)
     {
-      if (bfd_is_und_section (bfd_get_section (sym))
+      if (bfd_is_und_section (bfd_asymbol_section (sym))
 	  /* Remember to check for weak symbols; they count as global.  */
 	  || (sym->flags & (BSF_GLOBAL | BSF_WEAK)) != 0)
 	r_extern = 1;
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index cd50b44e60..859153be10 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -1570,7 +1570,7 @@ translate_to_native_sym_flags (bfd *abfd,
      to another.  */
   sym_pointer->e_type[0] &= ~N_TYPE;
 
-  sec = bfd_get_section (cache_ptr);
+  sec = bfd_asymbol_section (cache_ptr);
   off = 0;
 
   if (sec == NULL)
@@ -2064,14 +2064,14 @@ NAME (aout, swap_ext_reloc_out) (bfd *abfd,
      Absolute symbols can come in in two ways, either as an offset
      from the abs section, or as a symbol which has an abs value.
      check for that here.  */
-  if (bfd_is_abs_section (bfd_get_section (sym)))
+  if (bfd_is_abs_section (bfd_asymbol_section (sym)))
     {
       r_extern = 0;
       r_index = N_ABS;
     }
   else if ((sym->flags & BSF_SECTION_SYM) == 0)
     {
-      if (bfd_is_und_section (bfd_get_section (sym))
+      if (bfd_is_und_section (bfd_asymbol_section (sym))
 	  || (sym->flags & BSF_GLOBAL) != 0)
 	r_extern = 1;
       else
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 6c72acb705..5a30344350 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -240,18 +240,15 @@ typedef unsigned long symindex;
 /* General purpose part of a symbol X;
    target specific parts are in libcoff.h, libaout.h, etc.  */
 
-#define bfd_get_section(x) ((x)->section)
-#define bfd_get_output_section(x) ((x)->section->output_section)
-#define bfd_set_section(x,y) ((x)->section) = (y)
-#define bfd_asymbol_base(x) ((x)->section->vma)
-#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
-#define bfd_asymbol_name(x) ((x)->name)
-/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
-#define bfd_asymbol_bfd(x) ((x)->the_bfd)
-#define bfd_asymbol_flavour(x)			\
-  (((x)->flags & BSF_SYNTHETIC) != 0		\
+#define bfd_asymbol_section(sy) ((sy)->section)
+#define bfd_asymbol_value(sy) ((sy)->section->vma + (sy)->value)
+#define bfd_asymbol_name(sy) ((sy)->name)
+#define bfd_asymbol_bfd(sy) ((sy)->the_bfd)
+#define bfd_asymbol_flavour(sy)			\
+  (((sy)->flags & BSF_SYNTHETIC) != 0		\
    ? bfd_target_unknown_flavour			\
-   : bfd_asymbol_bfd (x)->xvec->flavour)
+   : (sy)->the_bfd->xvec->flavour)
+#define bfd_set_asymbol_name(sy, n) do { (sy)->name = (n); } while (0)
 
 /* A canonical archive symbol.  */
 /* This is a type pun with struct ranlib on purpose!  */
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index aec2143ea6..6542d403e0 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -247,18 +247,15 @@ typedef unsigned long symindex;
 /* General purpose part of a symbol X;
    target specific parts are in libcoff.h, libaout.h, etc.  */
 
-#define bfd_get_section(x) ((x)->section)
-#define bfd_get_output_section(x) ((x)->section->output_section)
-#define bfd_set_section(x,y) ((x)->section) = (y)
-#define bfd_asymbol_base(x) ((x)->section->vma)
-#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
-#define bfd_asymbol_name(x) ((x)->name)
-/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
-#define bfd_asymbol_bfd(x) ((x)->the_bfd)
-#define bfd_asymbol_flavour(x)			\
-  (((x)->flags & BSF_SYNTHETIC) != 0		\
+#define bfd_asymbol_section(sy) ((sy)->section)
+#define bfd_asymbol_value(sy) ((sy)->section->vma + (sy)->value)
+#define bfd_asymbol_name(sy) ((sy)->name)
+#define bfd_asymbol_bfd(sy) ((sy)->the_bfd)
+#define bfd_asymbol_flavour(sy)			\
+  (((sy)->flags & BSF_SYNTHETIC) != 0		\
    ? bfd_target_unknown_flavour			\
-   : bfd_asymbol_bfd (x)->xvec->flavour)
+   : (sy)->the_bfd->xvec->flavour)
+#define bfd_set_asymbol_name(sy, n) do { (sy)->name = (n); } while (0)
 
 /* A canonical archive symbol.  */
 /* This is a type pun with struct ranlib on purpose!  */
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 34d68c93b5..7bcc1ca77d 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -902,7 +902,7 @@ _bfd_coff_final_link (bfd *abfd,
 					bfd_asymbol_name(sym), FALSE, FALSE)
 		       == NULL))
 		  || (((flaginfo.info->discard == discard_sec_merge
-			&& (bfd_get_section (sym)->flags & SEC_MERGE)
+			&& (bfd_asymbol_section (sym)->flags & SEC_MERGE)
 			&& ! bfd_link_relocatable (flaginfo.info))
 		       || flaginfo.info->discard == discard_l)
 		      && bfd_is_local_label_name (sub, bfd_asymbol_name(sym))))
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index ed6dcd48c7..575b082e1d 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -2736,7 +2736,7 @@ lookup_symbol_in_function_table (struct comp_unit *unit,
   bfd_vma best_fit_len = 0;
   struct arange *arange;
   const char *name = bfd_asymbol_name (sym);
-  asection *sec = bfd_get_section (sym);
+  asection *sec = bfd_asymbol_section (sym);
 
   for (each_func = unit->function_table;
        each_func;
@@ -2784,7 +2784,7 @@ lookup_symbol_in_variable_table (struct comp_unit *unit,
 				 unsigned int *linenumber_ptr)
 {
   const char *name = bfd_asymbol_name (sym);
-  asection *sec = bfd_get_section (sym);
+  asection *sec = bfd_asymbol_section (sym);
   struct varinfo* each;
 
   for (each = unit->variable_table; each; each = each->prev_var)
@@ -4048,7 +4048,7 @@ info_hash_lookup_funcinfo (struct info_hash_table *hash_table,
   struct info_list_node *node;
   struct arange *arange;
   const char *name = bfd_asymbol_name (sym);
-  asection *sec = bfd_get_section (sym);
+  asection *sec = bfd_asymbol_section (sym);
 
   for (node = lookup_info_hash_table (hash_table, name);
        node;
@@ -4096,7 +4096,7 @@ info_hash_lookup_varinfo (struct info_hash_table *hash_table,
 			  unsigned int *linenumber_ptr)
 {
   const char *name = bfd_asymbol_name (sym);
-  asection *sec = bfd_get_section (sym);
+  asection *sec = bfd_asymbol_section (sym);
   struct varinfo* each;
   struct info_list_node *node;
 
@@ -4695,7 +4695,7 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd,
   if (do_line)
     {
       BFD_ASSERT (section == NULL && offset == 0 && functionname_ptr == NULL);
-      section = bfd_get_section (symbol);
+      section = bfd_asymbol_section (symbol);
       addr = symbol->value;
     }
   else
diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index 1e6f4d219c..c06fa5ec7f 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -2312,7 +2312,7 @@ ecoff_get_extr (asymbol *sym, EXTR *esym)
      symbol.  */
   if ((esym->asym.sc == scUndefined
        || esym->asym.sc == scSUndefined)
-      && ! bfd_is_und_section (bfd_get_section (sym)))
+      && ! bfd_is_und_section (bfd_asymbol_section (sym)))
     esym->asym.sc = scAbs;
 
   /* Adjust the FDR index for the symbol by that used for the input
@@ -2719,7 +2719,7 @@ _bfd_ecoff_write_object_contents (bfd *abfd)
 		    { _RCONST, RELOC_SECTION_RCONST }
 		  };
 
-		  name = bfd_get_section_name (abfd, bfd_get_section (sym));
+		  name = bfd_get_section_name (abfd, bfd_asymbol_section (sym));
 
 		  for (j = 0; j < ARRAY_SIZE (section_symndx); j++)
 		    if (streq (name, section_symndx[j].name))
diff --git a/bfd/elf.c b/bfd/elf.c
index ecd348e1a5..1a1eed9085 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -4057,8 +4057,8 @@ sym_is_global (bfd *abfd, asymbol *sym)
     return (*bed->elf_backend_sym_is_global) (abfd, sym);
 
   return ((sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE)) != 0
-	  || bfd_is_und_section (bfd_get_section (sym))
-	  || bfd_is_com_section (bfd_get_section (sym)));
+	  || bfd_is_und_section (bfd_asymbol_section (sym))
+	  || bfd_is_com_section (bfd_asymbol_section (sym)));
 }
 
 /* Filter global symbols of ABFD to include in the import library.  All
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index b675fc60c1..e29a60abf1 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -16076,7 +16076,7 @@ arm_elf_find_function (bfd *	     abfd,
 		    BFD_ARM_SPECIAL_SYM_TYPE_ANY))
 	    continue;
 	  /* Fall through.  */
-	  if (bfd_get_section (&q->symbol) == section
+	  if (bfd_asymbol_section (&q->symbol) == section
 	      && q->symbol.value >= low_func
 	      && q->symbol.value <= offset)
 	    {
diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c
index 9f8f2bdc26..74300a11e9 100644
--- a/bfd/elf32-mips.c
+++ b/bfd/elf32-mips.c
@@ -2281,8 +2281,8 @@ mips_elf_sym_is_global (bfd *abfd ATTRIBUTE_UNUSED, asymbol *sym)
     return (sym->flags & BSF_SECTION_SYM) == 0;
   else
     return ((sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE)) != 0
-	    || bfd_is_und_section (bfd_get_section (sym))
-	    || bfd_is_com_section (bfd_get_section (sym)));
+	    || bfd_is_und_section (bfd_asymbol_section (sym))
+	    || bfd_is_com_section (bfd_asymbol_section (sym)));
 }
 \f
 /* Set the right machine number for a MIPS ELF file.  */
diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c
index 6390309f52..1bbf64fe6d 100644
--- a/bfd/elf32-score.c
+++ b/bfd/elf32-score.c
@@ -596,8 +596,8 @@ score_elf_got15_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
 		       bfd *output_bfd, char **error_message)
 {
   if ((symbol->flags & (BSF_GLOBAL | BSF_WEAK)) != 0
-      || bfd_is_und_section (bfd_get_section (symbol))
-      || bfd_is_com_section (bfd_get_section (symbol)))
+      || bfd_is_und_section (bfd_asymbol_section (symbol))
+      || bfd_is_com_section (bfd_asymbol_section (symbol)))
     /* The relocation is against a global symbol.  */
     return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
 				  input_section, output_bfd,
diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c
index ea0ccd04e9..51a5fb106d 100644
--- a/bfd/elf32-score7.c
+++ b/bfd/elf32-score7.c
@@ -497,8 +497,8 @@ score_elf_got15_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
 		       bfd *output_bfd, char **error_message)
 {
   if ((symbol->flags & (BSF_GLOBAL | BSF_WEAK)) != 0
-      || bfd_is_und_section (bfd_get_section (symbol))
-      || bfd_is_com_section (bfd_get_section (symbol)))
+      || bfd_is_und_section (bfd_asymbol_section (symbol))
+      || bfd_is_com_section (bfd_asymbol_section (symbol)))
     /* The relocation is against a global symbol.  */
     return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
 				  input_section, output_bfd,
diff --git a/bfd/elf64-mmix.c b/bfd/elf64-mmix.c
index 839bd45b4a..18ed456c2b 100644
--- a/bfd/elf64-mmix.c
+++ b/bfd/elf64-mmix.c
@@ -1315,7 +1315,7 @@ mmix_elf_reloc (bfd *abfd,
   else
     relocation = symbol->value;
 
-  reloc_target_output_section = bfd_get_output_section (symbol);
+  reloc_target_output_section = bfd_asymbol_section (symbol)->output_section;
 
   /* Here the variable relocation holds the final address of the symbol we
      are relocating against, plus any addend.  */
diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c
index 58d66ce63c..8927e9825b 100644
--- a/bfd/elfn32-mips.c
+++ b/bfd/elfn32-mips.c
@@ -3841,8 +3841,8 @@ mips_elf_sym_is_global (bfd *abfd ATTRIBUTE_UNUSED, asymbol *sym)
     return (sym->flags & BSF_SECTION_SYM) == 0;
   else
     return ((sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE)) != 0
-	    || bfd_is_und_section (bfd_get_section (sym))
-	    || bfd_is_com_section (bfd_get_section (sym)));
+	    || bfd_is_und_section (bfd_asymbol_section (sym))
+	    || bfd_is_com_section (bfd_asymbol_section (sym)));
 }
 \f
 /* Set the right machine number for a MIPS ELF file.  */
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index fd44505da4..7132b6bc73 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -8042,7 +8042,7 @@ aarch64_elf_find_function (bfd *          abfd,
 		  (q->symbol.name, BFD_AARCH64_SPECIAL_SYM_TYPE_ANY)))
 	    continue;
 	  /* Fall through.  */
-	  if (bfd_get_section (&q->symbol) == section
+	  if (bfd_asymbol_section (&q->symbol) == section
 	      && q->symbol.value >= low_func && q->symbol.value <= offset)
 	    {
 	      func = (asymbol *) q;
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index e3054043df..8ad5268520 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -2531,8 +2531,8 @@ _bfd_mips_elf_got16_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
 			   bfd *output_bfd, char **error_message)
 {
   if ((symbol->flags & (BSF_GLOBAL | BSF_WEAK)) != 0
-      || bfd_is_und_section (bfd_get_section (symbol))
-      || bfd_is_com_section (bfd_get_section (symbol)))
+      || bfd_is_und_section (bfd_asymbol_section (symbol))
+      || bfd_is_com_section (bfd_asymbol_section (symbol)))
     /* The relocation is against a global symbol.  */
     return _bfd_mips_elf_generic_reloc (abfd, reloc_entry, symbol, data,
 					input_section, output_bfd,
diff --git a/bfd/linker.c b/bfd/linker.c
index 8aec0d2358..2518371f24 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -1163,9 +1163,9 @@ generic_link_add_symbol_list (bfd *abfd,
 		       | BSF_GLOBAL
 		       | BSF_CONSTRUCTOR
 		       | BSF_WEAK)) != 0
-	  || bfd_is_und_section (bfd_get_section (p))
-	  || bfd_is_com_section (bfd_get_section (p))
-	  || bfd_is_ind_section (bfd_get_section (p)))
+	  || bfd_is_und_section (bfd_asymbol_section (p))
+	  || bfd_is_com_section (bfd_asymbol_section (p))
+	  || bfd_is_ind_section (bfd_asymbol_section (p)))
 	{
 	  const char *name;
 	  const char *string;
@@ -1191,7 +1191,7 @@ generic_link_add_symbol_list (bfd *abfd,
 
 	  bh = NULL;
 	  if (! (_bfd_generic_link_add_one_symbol
-		 (info, abfd, name, p->flags, bfd_get_section (p),
+		 (info, abfd, name, p->flags, bfd_asymbol_section (p),
 		  p->value, string, FALSE, FALSE, &bh)))
 	    return FALSE;
 	  h = (struct generic_link_hash_entry *) bh;
@@ -1218,15 +1218,15 @@ generic_link_add_symbol_list (bfd *abfd,
 	  if (info->output_bfd->xvec == abfd->xvec)
 	    {
 	      if (h->sym == NULL
-		  || (! bfd_is_und_section (bfd_get_section (p))
-		      && (! bfd_is_com_section (bfd_get_section (p))
-			  || bfd_is_und_section (bfd_get_section (h->sym)))))
+		  || (! bfd_is_und_section (bfd_asymbol_section (p))
+		      && (! bfd_is_com_section (bfd_asymbol_section (p))
+			  || bfd_is_und_section (bfd_asymbol_section (h->sym)))))
 		{
 		  h->sym = p;
 		  /* BSF_OLD_COMMON is a hack to support COFF reloc
 		     reading, and it should go away when the COFF
 		     linker is switched to the new version.  */
-		  if (bfd_is_com_section (bfd_get_section (p)))
+		  if (bfd_is_com_section (bfd_asymbol_section (p)))
 		    p->flags |= BSF_OLD_COMMON;
 		}
 	    }
@@ -2026,9 +2026,9 @@ _bfd_generic_link_output_symbols (bfd *output_bfd,
 			 | BSF_GLOBAL
 			 | BSF_CONSTRUCTOR
 			 | BSF_WEAK)) != 0
-	  || bfd_is_und_section (bfd_get_section (sym))
-	  || bfd_is_com_section (bfd_get_section (sym))
-	  || bfd_is_ind_section (bfd_get_section (sym)))
+	  || bfd_is_und_section (bfd_asymbol_section (sym))
+	  || bfd_is_com_section (bfd_asymbol_section (sym))
+	  || bfd_is_ind_section (bfd_asymbol_section (sym)))
 	{
 	  if (sym->udata.p != NULL)
 	    h = (struct generic_link_hash_entry *) sym->udata.p;
@@ -2044,7 +2044,7 @@ _bfd_generic_link_output_symbols (bfd *output_bfd,
 		 the relocs in the output format being used.  */
 	      h = NULL;
 	    }
-	  else if (bfd_is_und_section (bfd_get_section (sym)))
+	  else if (bfd_is_und_section (bfd_asymbol_section (sym)))
 	    h = ((struct generic_link_hash_entry *)
 		 bfd_wrapped_link_hash_lookup (output_bfd, info,
 					       bfd_asymbol_name (sym),
@@ -2601,15 +2601,15 @@ default_indirect_link_order (bfd *output_bfd,
 			     | BSF_GLOBAL
 			     | BSF_CONSTRUCTOR
 			     | BSF_WEAK)) != 0
-	      || bfd_is_und_section (bfd_get_section (sym))
-	      || bfd_is_com_section (bfd_get_section (sym))
-	      || bfd_is_ind_section (bfd_get_section (sym)))
+	      || bfd_is_und_section (bfd_asymbol_section (sym))
+	      || bfd_is_com_section (bfd_asymbol_section (sym))
+	      || bfd_is_ind_section (bfd_asymbol_section (sym)))
 	    {
 	      /* sym->udata may have been set by
 		 generic_link_add_symbol_list.  */
 	      if (sym->udata.p != NULL)
 		h = (struct bfd_link_hash_entry *) sym->udata.p;
-	      else if (bfd_is_und_section (bfd_get_section (sym)))
+	      else if (bfd_is_und_section (bfd_asymbol_section (sym)))
 		h = bfd_wrapped_link_hash_lookup (output_bfd, info,
 						  bfd_asymbol_name (sym),
 						  FALSE, FALSE, TRUE);
diff --git a/bfd/pdp11.c b/bfd/pdp11.c
index f7f3128409..238f5144d4 100644
--- a/bfd/pdp11.c
+++ b/bfd/pdp11.c
@@ -1352,7 +1352,7 @@ translate_to_native_sym_flags (bfd *abfd,
      to another.  */
   sym_pointer->e_type[0] &= ~N_TYPE;
 
-  sec = bfd_get_section (cache_ptr);
+  sec = bfd_asymbol_section (cache_ptr);
   off = 0;
 
   if (sec == NULL)
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index c26d2789fd..9c791f6d65 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* nm.c: Update bfd_get_section to bfd_asymbol_section throughout.
+	* objcopy.c: Likewise.
+	* objdump.c: Likewise.
+	* rdcoff.c: Likewise.
+	* objcopy.c (create_new_symbol): Use bfd_set_asymbol_name.
+	(filter_symbols): Likewise.
+
 2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* doc/Makefile.am (MOSTLYCLEANFILES): Clean all man pages,
diff --git a/binutils/nm.c b/binutils/nm.c
index 67b7ac7b12..0bded07391 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -592,8 +592,8 @@ numeric_forward (const void *P_x, const void *P_y)
   if (x == NULL || y == NULL)
     bfd_fatal (bfd_get_filename (sort_bfd));
 
-  xs = bfd_get_section (x);
-  ys = bfd_get_section (y);
+  xs = bfd_asymbol_section (x);
+  ys = bfd_asymbol_section (y);
 
   if (bfd_is_und_section (xs))
     {
@@ -645,8 +645,8 @@ size_forward1 (const void *P_x, const void *P_y)
   if (x == NULL || y == NULL)
     bfd_fatal (bfd_get_filename (sort_bfd));
 
-  xs = bfd_get_section (x);
-  ys = bfd_get_section (y);
+  xs = bfd_asymbol_section (x);
+  ys = bfd_asymbol_section (y);
 
   if (bfd_is_und_section (xs))
     abort ();
@@ -774,7 +774,7 @@ sort_symbols_by_size (bfd *abfd, bfd_boolean is_dynamic, void *minisyms,
       else
 	next = NULL;
 
-      sec = bfd_get_section (sym);
+      sec = bfd_asymbol_section (sym);
 
       /* Synthetic symbols don't have a full type set of data available, thus
 	 we can't rely on that information for the symbol size.  Ditto for
@@ -788,7 +788,7 @@ sort_symbols_by_size (bfd *abfd, bfd_boolean is_dynamic, void *minisyms,
       else
 	{
 	  if (from + size < fromend
-	      && sec == bfd_get_section (next))
+	      && sec == bfd_asymbol_section (next))
 	    sz = valueof (next) - valueof (sym);
 	  else
 	    sz = (bfd_get_section_vma (abfd, sec)
@@ -895,7 +895,7 @@ print_symbol (bfd *        abfd,
       if ((sym->flags & (BSF_SECTION_SYM | BSF_SYNTHETIC)) == 0)
 	version_string = bfd_get_symbol_version_string (abfd, sym, &hidden);
 
-      if (bfd_is_und_section (bfd_get_section (sym)))
+      if (bfd_is_und_section (bfd_asymbol_section (sym)))
 	hidden = TRUE;
 
       if (version_string && *version_string != '\0')
@@ -931,7 +931,7 @@ print_symbol (bfd *        abfd,
 	  lineno_cache_bfd = abfd;
 	}
 
-      if (bfd_is_und_section (bfd_get_section (sym)))
+      if (bfd_is_und_section (bfd_asymbol_section (sym)))
 	{
 	  static asection **secs;
 	  static arelent ***relocs;
@@ -1001,10 +1001,10 @@ print_symbol (bfd *        abfd,
 		}
 	    }
 	}
-      else if (bfd_get_section (sym)->owner == abfd)
+      else if (bfd_asymbol_section (sym)->owner == abfd)
 	{
 	  if ((bfd_find_line (abfd, syms, sym, &filename, &lineno)
-	       || bfd_find_nearest_line (abfd, bfd_get_section (sym),
+	       || bfd_find_nearest_line (abfd, bfd_asymbol_section (sym),
 					 syms, sym->value, &filename,
 					 &functionname, &lineno))
 	      && filename != NULL
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index ebb99339aa..ce4a4afa55 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -1465,7 +1465,7 @@ create_new_symbol (struct addsym_node *ptr, bfd *obfd)
 {
   asymbol *sym = bfd_make_empty_symbol (obfd);
 
-  bfd_asymbol_name (sym) = ptr->symdef;
+  bfd_set_asymbol_name (sym, ptr->symdef);
   sym->value = ptr->symval;
   sym->flags = ptr->flags;
   if (ptr->section)
@@ -1503,7 +1503,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
       bfd_boolean rem_leading_char;
       bfd_boolean add_leading_char;
 
-      undefined = bfd_is_und_section (bfd_get_section (sym));
+      undefined = bfd_is_und_section (bfd_asymbol_section (sym));
 
       if (add_sym_list)
 	{
@@ -1521,7 +1521,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
 	  if (new_name == name
 	      && (flags & BSF_SECTION_SYM) != 0)
 	    new_name = (char *) find_section_rename (name, NULL);
-	  bfd_asymbol_name (sym) = new_name;
+	  bfd_set_asymbol_name (sym, new_name);
 	  name = new_name;
 	}
 
@@ -1532,7 +1532,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
 	    || (remove_leading_char
 		&& ((flags & (BSF_GLOBAL | BSF_WEAK)) != 0
 		    || undefined
-		    || bfd_is_com_section (bfd_get_section (sym)))));
+		    || bfd_is_com_section (bfd_asymbol_section (sym)))));
 
       /* Check if we will add a new leading character.  */
       add_leading_char =
@@ -1545,14 +1545,14 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
       if (rem_leading_char && add_leading_char && !prefix_symbols_string)
 	{
 	  name[0] = bfd_get_symbol_leading_char (obfd);
-	  bfd_asymbol_name (sym) = name;
+	  bfd_set_asymbol_name (sym, name);
 	  rem_leading_char = FALSE;
 	  add_leading_char = FALSE;
 	}
 
       /* Remove leading char.  */
       if (rem_leading_char)
-	bfd_asymbol_name (sym) = ++name;
+	bfd_set_asymbol_name (sym, ++name);
 
       /* Add new leading char and/or prefix.  */
       if (add_leading_char || prefix_symbols_string)
@@ -1571,7 +1571,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
 	    }
 
 	  strcpy (ptr, name);
-	  bfd_asymbol_name (sym) = n;
+	  bfd_set_asymbol_name (sym, n);
 	  name = n;
 	}
 
@@ -1579,7 +1579,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
 	keep = FALSE;
       else if ((flags & BSF_KEEP) != 0		/* Used in relocation.  */
 	       || ((flags & BSF_SECTION_SYM) != 0
-		   && ((*bfd_get_section (sym)->symbol_ptr_ptr)->flags
+		   && ((*bfd_asymbol_section (sym)->symbol_ptr_ptr)->flags
 		       & BSF_KEEP) != 0))
 	{
 	  keep = TRUE;
@@ -1587,7 +1587,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
 	}
       else if (relocatable			/* Relocatable file.  */
 	       && ((flags & (BSF_GLOBAL | BSF_WEAK)) != 0
-		   || bfd_is_com_section (bfd_get_section (sym))))
+		   || bfd_is_com_section (bfd_asymbol_section (sym))))
 	keep = TRUE;
       else if (bfd_decode_symclass (sym) == 'I')
 	/* Global symbols in $idata sections need to be retained
@@ -1598,13 +1598,13 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
       else if ((flags & BSF_GLOBAL) != 0	/* Global symbol.  */
 	       || (flags & BSF_WEAK) != 0
 	       || undefined
-	       || bfd_is_com_section (bfd_get_section (sym)))
+	       || bfd_is_com_section (bfd_asymbol_section (sym)))
 	keep = strip_symbols != STRIP_UNNEEDED;
       else if ((flags & BSF_DEBUGGING) != 0)	/* Debugging symbol.  */
 	keep = (strip_symbols != STRIP_DEBUG
 		&& strip_symbols != STRIP_UNNEEDED
 		&& ! convert_debugging);
-      else if (bfd_coff_get_comdat_section (abfd, bfd_get_section (sym)))
+      else if (bfd_coff_get_comdat_section (abfd, bfd_asymbol_section (sym)))
 	/* COMDAT sections store special information in local
 	   symbols, so we cannot risk stripping any of them.  */
 	keep = TRUE;
@@ -1637,7 +1637,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
 	      || is_specified_symbol (name, keep_specific_htab)))
 	keep = TRUE;
 
-      if (keep && is_strip_section (abfd, bfd_get_section (sym)))
+      if (keep && is_strip_section (abfd, bfd_asymbol_section (sym)))
 	keep = FALSE;
 
       if (keep)
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 00541cbec5..4a7c8f9a74 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -995,7 +995,7 @@ objdump_print_symname (bfd *abfd, struct disassemble_info *inf,
   if ((sym->flags & (BSF_SECTION_SYM | BSF_SYNTHETIC)) == 0)
     version_string = bfd_get_symbol_version_string (abfd, sym, &hidden);
 
-  if (bfd_is_und_section (bfd_get_section (sym)))
+  if (bfd_is_und_section (bfd_asymbol_section (sym)))
     hidden = TRUE;
 
   name = sanitize_string (name);
@@ -1351,7 +1351,7 @@ objdump_print_addr (bfd_vma vma,
       /* Adjust the vma to the reloc.  */
       vma += bfd_asymbol_value (sym);
 
-      if (bfd_is_und_section (bfd_get_section (sym)))
+      if (bfd_is_und_section (bfd_asymbol_section (sym)))
 	skip_find = TRUE;
     }
 
@@ -2234,7 +2234,7 @@ disassemble_bytes (struct disassemble_info * inf,
 		    {
 		      asection *sym_sec;
 
-		      sym_sec = bfd_get_section (*q->sym_ptr_ptr);
+		      sym_sec = bfd_asymbol_section (*q->sym_ptr_ptr);
 		      sym_name = bfd_get_section_name (aux->abfd, sym_sec);
 		      if (sym_name == NULL || *sym_name == '\0')
 			sym_name = "*unknown*";
diff --git a/binutils/rdcoff.c b/binutils/rdcoff.c
index 7e585691eb..cbb5db1b94 100644
--- a/binutils/rdcoff.c
+++ b/binutils/rdcoff.c
@@ -816,7 +816,7 @@ parse_coff (bfd *abfd, asymbol **syms, long symcount, void *dhandle)
 		  else
 		    base = auxent.x_sym.x_misc.x_lnsz.x_lnno - 1;
 
-		  addr = bfd_get_section_vma (abfd, bfd_get_section (sym));
+		  addr = bfd_get_section_vma (abfd, bfd_asymbol_section (sym));
 
 		  ++linenos;
 
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 6735017792..3d61530a9b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* symbols.c (S_IS_LOCAL): Update bfd_get_section to
+	bfd_asymbol_section.
+
 2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* Makefile.in: Re-generate.
diff --git a/gas/symbols.c b/gas/symbols.c
index 918028f875..34ec145ad0 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -2310,14 +2310,14 @@ S_IS_LOCAL (symbolS *s)
   if ((flags & BSF_LOCAL) && (flags & BSF_GLOBAL))
     abort ();
 
-  if (bfd_get_section (s->bsym) == reg_section)
+  if (bfd_asymbol_section (s->bsym) == reg_section)
     return 1;
 
   if (flag_strip_local_absolute
       /* Keep BSF_FILE symbols in order to allow debuggers to identify
 	 the source file even when the object file is stripped.  */
       && (flags & (BSF_GLOBAL | BSF_FILE)) == 0
-      && bfd_get_section (s->bsym) == absolute_section)
+      && bfd_asymbol_section (s->bsym) == absolute_section)
     return 1;
 
   name = S_GET_NAME (s);
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5e0e37bcfa..421b26a004 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* arm-tdep.c (arm_record_special_symbol): Update bfd_get_section
+	to bfd_asymbol_section.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* amd64-dicos-tdep.c (amd64_dicos_osabi_sniffer): Constify target.
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 0650485bf0..5c494c8ed2 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -8575,7 +8575,7 @@ arm_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile,
     data = arm_objfile_data_key.emplace (objfile,
 					 objfile->obfd->section_count);
   arm_mapping_symbol_vec &map
-    = data->section_maps[bfd_get_section (sym)->index];
+    = data->section_maps[bfd_asymbol_section (sym)->index];
 
   new_map_sym.value = sym->value;
   new_map_sym.type = name[1];
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b6ac44e1f8..e8f9ed7365 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* ldcref.c (check_reloc_refs): Update bfd_get_section to
+	bfd_asymbol_section.
+
 2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* Makefile.in: Re-generate.
diff --git a/ld/ldcref.c b/ld/ldcref.c
index 12cb2942e6..fff852a89a 100644
--- a/ld/ldcref.c
+++ b/ld/ldcref.c
@@ -705,14 +705,14 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
       if (q->sym_ptr_ptr != NULL
 	  && *q->sym_ptr_ptr != NULL
 	  && ((global
-	       && (bfd_is_und_section (bfd_get_section (*q->sym_ptr_ptr))
-		   || bfd_is_com_section (bfd_get_section (*q->sym_ptr_ptr))
+	       && (bfd_is_und_section (bfd_asymbol_section (*q->sym_ptr_ptr))
+		   || bfd_is_com_section (bfd_asymbol_section (*q->sym_ptr_ptr))
 		   || ((*q->sym_ptr_ptr)->flags & (BSF_GLOBAL
 						   | BSF_WEAK)) != 0))
 	      || (!global
 		  && ((*q->sym_ptr_ptr)->flags & (BSF_LOCAL
 						  | BSF_SECTION_SYM)) != 0
-		  && bfd_get_section (*q->sym_ptr_ptr) == info->defsec))
+		  && bfd_asymbol_section (*q->sym_ptr_ptr) == info->defsec))
 	  && (symname != NULL
 	      ? strcmp (bfd_asymbol_name (*q->sym_ptr_ptr), symname) == 0
 	      : ((*q->sym_ptr_ptr)->flags & BSF_SECTION_SYM) != 0))


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/testsuite: Avoid directory names in test names
@ 2019-09-18 17:17 gdb-buildbot
  2019-09-18 20:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 17:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b078f3ac8803297bfc8416c20e09d0863c5ac6cc ***

commit b078f3ac8803297bfc8416c20e09d0863c5ac6cc
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Wed Sep 18 12:27:11 2019 -0400
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Wed Sep 18 12:36:05 2019 -0400

    gdb/testsuite: Avoid directory names in test names
    
    Give a test an actual name in order to avoid having a directory name
    in the .sum file.
    
    gdb/testsuite/ChangeLog:
    
            * gdb.base/source-dir.exp: Avoid having directory names in test
            names.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index ed838e947e..83d5a4f005 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.base/source-dir.exp: Avoid having directory names in test
+	names.
+
 2019-09-17  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* gdb.base/source-dir.exp: Add extra test for mapped compilation
diff --git a/gdb/testsuite/gdb.base/source-dir.exp b/gdb/testsuite/gdb.base/source-dir.exp
index 25d7b07971..9941c1f64e 100644
--- a/gdb/testsuite/gdb.base/source-dir.exp
+++ b/gdb/testsuite/gdb.base/source-dir.exp
@@ -131,7 +131,8 @@ proc test_truncated_comp_dir {} {
 	[search_dir_list [list \
 			      "$strip_dir" \
 			      "\\\$cdir" \
-			      "\\\$cwd"]]
+			      "\\\$cwd"]] \
+	"setup source path search directory"
     gdb_test "list" [multi_line \
 			 "1\[ \t\]+int" \
 			 "2\[ \t\]+main \\(\\)" \


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: remove local extern declaration of cli_styling
@ 2019-09-18 18:13 gdb-buildbot
  2019-09-18 21:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 18:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f64eea3a594042c9cf499b17b5b166276275a051 ***

commit f64eea3a594042c9cf499b17b5b166276275a051
Author:     Simon Marchi <simon.marchi@polymtl.ca>
AuthorDate: Wed Sep 18 13:33:33 2019 -0400
Commit:     Simon Marchi <simon.marchi@efficios.com>
CommitDate: Wed Sep 18 13:33:33 2019 -0400

    gdb: remove local extern declaration of cli_styling
    
    Following the int -> bool conversion of boolean options (commit
    491144b5e21b ("Change boolean options to bool instead of int")), I see
    this ASAN error:
    
      ==357543==ERROR: AddressSanitizer: global-buffer-overflow on address 0x55555b25d440 at pc 0x5555583ce9e1 bp 0x7fffffffd390 sp 0x7fffffffd380
      READ of size 4 at 0x55555b25d440 thread T0
          #0 0x5555583ce9e0 in term_cli_styling /home/simark/src/binutils-gdb/gdb/ui-file.c:111
          #1 0x5555583cf8b0 in stdio_file::can_emit_style_escape() /home/simark/src/binutils-gdb/gdb/ui-file.c:308
          #2 0x5555584450d2 in set_output_style /home/simark/src/binutils-gdb/gdb/utils.c:1442
          #3 0x5555584491af in fprintf_styled(ui_file*, ui_file_style const&, char const*, ...) /home/simark/src/binutils-gdb/gdb/utils.c:2143
          #4 0x5555582fa13c in print_gdb_version(ui_file*, bool) /home/simark/src/binutils-gdb/gdb/top.c:1339
          #5 0x555557b723ab in captured_main_1 /home/simark/src/binutils-gdb/gdb/main.c:981
          #6 0x555557b7353b in captured_main /home/simark/src/binutils-gdb/gdb/main.c:1172
          #7 0x555557b735d0 in gdb_main(captured_main_args*) /home/simark/src/binutils-gdb/gdb/main.c:1197
          #8 0x55555700a53d in main /home/simark/src/binutils-gdb/gdb/gdb.c:32
          #9 0x7ffff64c9ee2 in __libc_start_main (/usr/lib/libc.so.6+0x26ee2)
          #10 0x55555700a30d in _start (/home/simark/build/binutils-gdb/gdb/gdb+0x1ab630d)
    
      0x55555b25d441 is located 0 bytes to the right of global variable 'cli_styling' defined in '/home/simark/src/binutils-gdb/gdb/cli/cli-style.c:31:6' (0x55555b25d440) of size 1
    
    The reason of this is that we have this declaration of cli_styling in cli/cli-style.h:
    
      extern bool cli_styling;
    
    but ui-file.c uses its  own local declaration:
    
      extern int cli_styling;
    
    Because of that, the code in ui-file.c thinks the variable is 4 bytes
    long, when it is actually 1 byte long, so the generated code reads past
    the variable.
    
    Fix it by removing the declaration and making ui-file.c include
    cli/cli-style.h.
    
    gdb/ChangeLog:
    
            * ui-file.c: Include cli/cli-style.h.
            (term_cli_styling): Remove cli_styling declaration.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 421b26a004..796ade3c71 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* ui-file.c: Include cli/cli-style.h.
+	(term_cli_styling): Remove cli_styling declaration.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* arm-tdep.c (arm_record_special_symbol): Update bfd_get_section
diff --git a/gdb/ui-file.c b/gdb/ui-file.c
index 042b13ca3b..71b74bba19 100644
--- a/gdb/ui-file.c
+++ b/gdb/ui-file.c
@@ -24,6 +24,7 @@
 #include "gdb_obstack.h"
 #include "gdb_select.h"
 #include "gdbsupport/filestuff.h"
+#include "cli/cli-style.h"
 
 null_file null_stream;
 
@@ -106,8 +107,6 @@ ui_file_isatty (struct ui_file *file)
 static bool
 term_cli_styling ()
 {
-  extern int cli_styling;
-
   if (!cli_styling)
     return false;
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: Fix native build on Linux/Alpha.
@ 2019-09-18 19:50 gdb-buildbot
  2019-09-18 22:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 19:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7a27b85f6d9b5eea9bd1493f903158fbea4b2231 ***

commit 7a27b85f6d9b5eea9bd1493f903158fbea4b2231
Author:     Christian Groessler <chris@groessler.org>
AuthorDate: Wed Sep 11 22:19:45 2019 +0000
Commit:     Simon Marchi <simon.marchi@efficios.com>
CommitDate: Wed Sep 18 15:18:39 2019 -0400

    gdb: Fix native build on Linux/Alpha.
    
    Fixes:
    
      CXX    alpha-linux-nat.o
    alpha-linux-nat.c: In member function 'virtual CORE_ADDR alpha_linux_nat_target::register_u_offset(gdbarch*, int, int)':
    alpha-linux-nat.c:93:16: error: 'gdbarch_pc_regnum' was not declared in this scope
       if (regno == gdbarch_pc_regnum (gdbarch))
                    ^~~~~~~~~~~~~~~~~
    alpha-linux-nat.c:93:16: note: suggested alternative: 'gdbarch_info'
       if (regno == gdbarch_pc_regnum (gdbarch))
                    ^~~~~~~~~~~~~~~~~
                    gdbarch_info
    alpha-linux-nat.c:97:15: error: 'gdbarch_fp0_regnum' was not declared in this scope
       if (regno < gdbarch_fp0_regnum (gdbarch))
                   ^~~~~~~~~~~~~~~~~~
    alpha-linux-nat.c:97:15: note: suggested alternative: 'gdbarch_info'
       if (regno < gdbarch_fp0_regnum (gdbarch))
                   ^~~~~~~~~~~~~~~~~~
                   gdbarch_info
    make[2]: *** [Makefile:1638: alpha-linux-nat.o] Error 1
    make[2]: Leaving directory '/home/chris/tmp/binutils-gdb/gdb'
    
    2019-09-12  Christian Groessler  <chris@groessler.org>
    
           * alpha-linux-nat.c: Include gdbarch.h.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 796ade3c71..1ad694a20a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-18  Christian Groessler  <chris@groessler.org>
+
+	* alpha-linux-nat.c: Include gdbarch.h.
+
 2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* ui-file.c: Include cli/cli-style.h.
diff --git a/gdb/alpha-linux-nat.c b/gdb/alpha-linux-nat.c
index 18806971a7..9f83ad7cc6 100644
--- a/gdb/alpha-linux-nat.c
+++ b/gdb/alpha-linux-nat.c
@@ -22,6 +22,7 @@
 #include "linux-nat-trad.h"
 
 #include "alpha-tdep.h"
+#include "gdbarch.h"
 
 #include "nat/gdb_ptrace.h"
 #include <alpha/ptrace.h>


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Give a name to the TUI SingleKey keymap
@ 2019-09-18 21:35 gdb-buildbot
  2019-09-18 23:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 21:35 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 11061048d1fed4465b0e62eb3c14dabf0beab59b ***

commit 11061048d1fed4465b0e62eb3c14dabf0beab59b
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Sep 10 17:25:35 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Wed Sep 18 15:03:29 2019 -0600

    Give a name to the TUI SingleKey keymap
    
    Readline 8.0 has a feature that lets an application name a keymap.
    This in turn makes it simpler for users to bind keys in keymaps in
    their .inputrc.
    
    This patch gives a name to the TUI SingleKey keymap, so that
    additional bindings can be made there.  For example:
    
        $if gdb
        set keymap SingleKey
        "X": "echo hello\\n\n"
        $endif
    
    The call to rl_initialize, in tui_initialize_readline, had to be
    removed so that .inputrc was not read too early.  Note that Readline
    explicitly documents that this call is not needed.
    
    gdb/ChangeLog
    2019-09-18  Tom Tromey  <tom@tromey.com>
    
            * NEWS: Add entry.
            * tui/tui.c (tui_initialize_readline): Set name of keymap.  Do not
            call rl_initialize.
            (tui_enable): Do not call rl_initialize.
    
    gdb/doc/ChangeLog
    2019-09-18  Tom Tromey  <tom@tromey.com>
    
            * gdb.texinfo (Editing): Document readline application name.
            (TUI Single Key Mode): Document TUI SingleKey keymap name.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1ad694a20a..f8228b459c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-18  Tom Tromey  <tom@tromey.com>
+
+	* NEWS: Add entry.
+	* tui/tui.c (tui_initialize_readline): Set name of keymap.  Do not
+	call rl_initialize.
+	(tui_enable): Do not call rl_initialize.
+
 2019-09-18  Christian Groessler  <chris@groessler.org>
 
 	* alpha-linux-nat.c: Include gdbarch.h.
diff --git a/gdb/NEWS b/gdb/NEWS
index 947b743533..1fefd81409 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -323,6 +323,10 @@ maint show test-options-completion-result
   GDB now bundles GNU readline 8.0, but if you choose to use
   --with-system-readline, only readline >= 7.0 can be used.
 
+* The TUI SingleKey keymap is now named "SingleKey".  This can be used
+  from .inputrc to bind keys in this keymap.  This feature is only
+  available when gdb is built against GNU readline 8.0 or later.
+
 *** Changes in GDB 8.3
 
 * GDB and GDBserver now support access to additional registers on
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index a16d32d48a..8eaaab3ae1 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Tom Tromey  <tom@tromey.com>
+
+	* gdb.texinfo (Editing): Document readline application name.
+	(TUI Single Key Mode): Document TUI SingleKey keymap name.
+
 2019-09-17  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* gdb.texinfo (Source Path): Additional text to better describe
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index f4bfd9f980..a129ea0aa1 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -25056,6 +25056,10 @@ for more details about the Readline
 interface.  Users unfamiliar with @sc{gnu} Emacs or @code{vi} are
 encouraged to read that chapter.
 
+@cindex Readline application name
+@value{GDBN} sets the Readline application name to @samp{gdb}.  This
+is useful for conditions in @file{.inputrc}.
+
 @node Command History
 @section Command History
 @cindex command history
@@ -27658,6 +27662,10 @@ with the TUI SingleKey mode.  Once the command is entered the TUI
 SingleKey mode is restored.  The only way to permanently leave
 this mode is by typing @kbd{q} or @kbd{C-x s}.
 
+@cindex SingleKey keymap name
+If @value{GDBN} was built with Readline 8.0 or later, the TUI
+SingleKey keymap will be named @samp{SingleKey}.  This can be used in
+@file{.inputrc} to add additional bindings to this keymap.
 
 @node TUI Commands
 @section TUI-specific Commands
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index db34e0c044..5d6b9f3203 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -329,13 +329,17 @@ tui_initialize_readline (void)
   int i;
   Keymap tui_ctlx_keymap;
 
-  rl_initialize ();
-
   rl_add_defun ("tui-switch-mode", tui_rl_switch_mode, -1);
   rl_add_defun ("gdb-command", tui_rl_command_key, -1);
   rl_add_defun ("next-keymap", tui_rl_next_keymap, -1);
 
   tui_keymap = rl_make_bare_keymap ();
+
+  /* The named keymap feature was added in Readline 8.0.  */
+#if RL_READLINE_VERSION >= 0x800
+  rl_set_keymap_name ("SingleKey", tui_keymap);
+#endif
+
   tui_ctlx_keymap = rl_make_bare_keymap ();
   tui_readline_standard_keymap = rl_get_keymap ();
 
@@ -467,7 +471,6 @@ tui_enable (void)
       nodelay(w, FALSE);
       nl();
       keypad (w, TRUE);
-      rl_initialize ();
       tui_set_term_height_to (LINES);
       tui_set_term_width_to (COLS);
       def_prog_mode ();


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix gdb_target_cmd
@ 2019-09-18 23:45 gdb-buildbot
  2019-09-19  1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-18 23:45 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8a6251301c6ea6d804735fbad8cdb7cba707f784 ***

commit 8a6251301c6ea6d804735fbad8cdb7cba707f784
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Sep 19 01:14:19 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Thu Sep 19 01:14:19 2019 +0200

    [gdb/testsuite] Fix gdb_target_cmd
    
    In commit 81dc3ab594 "[gdb/testsuite] Handle unreachable network in
    server-connect.exp" a regression was introduced in gdb_target_cmd, causing
    ERRORs like this:
    ...
    ERROR: tcl error sourcing src/gdb/testsuite/gdb.server/abspath.exp.
    ERROR: wrong # args: should be "gdb_target_cmd {$args}"
        while executing
    "gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport"
    ...
    
    Fix the argument passing in gdb_target_cmd.
    
    Tested on x86_64-linux.
    
    gdb/testsuite/ChangeLog:
    
    2019-09-19  Tom de Vries  <tdevries@suse.de>
    
            * lib/gdbserver-support.exp (gdb_target_cmd): Fix argument passing.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 2acc1f7342..d5a5309fdf 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-19  Tom de Vries  <tdevries@suse.de>
+
+	* lib/gdbserver-support.exp (gdb_target_cmd): Fix argument passing.
+
 2019-09-19  Tom de Vries  <tdevries@suse.de>
 
 	* lib/gdbserver-support.exp (gdb_target_cmd_ext): Return 2 (meaning
diff --git a/gdb/testsuite/lib/gdbserver-support.exp b/gdb/testsuite/lib/gdbserver-support.exp
index 2ad53c1f60..00f46c8264 100644
--- a/gdb/testsuite/lib/gdbserver-support.exp
+++ b/gdb/testsuite/lib/gdbserver-support.exp
@@ -112,8 +112,8 @@ proc gdb_target_cmd_ext { targetname serialport {additional_text ""} } {
 
 # Like gdb_target_cmd_ext, but returns 0 on success, 1 on failure.
 
-proc gdb_target_cmd { $args } {
-    set res [gdb_target_cmd_ext $args]
+proc gdb_target_cmd { args } {
+    set res [eval gdb_target_cmd_ext $args]
     return [expr $res == 0 ? 0 : 1]
 }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfd_section_* macros
@ 2019-09-19  1:02 gdb-buildbot
  2019-09-19  3:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-19  1:02 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT fd3619828e94a24a92cddec42cbc0ab33352eeb4 ***

commit fd3619828e94a24a92cddec42cbc0ab33352eeb4
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 16 20:25:17 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Thu Sep 19 09:40:13 2019 +0930

    bfd_section_* macros
    
    This large patch removes the unnecessary bfd parameter from various
    bfd section macros and functions.  The bfd is hardly ever used and if
    needed for the bfd_set_section_* or bfd_rename_section functions can
    be found via section->owner except for the com, und, abs, and ind
    std_section special sections.  Those sections shouldn't be modified
    anyway.
    
    The patch also removes various bfd_get_section_<field> macros,
    replacing their use with bfd_section_<field>, and adds
    bfd_set_section_lma.  I've also fixed a minor bug in gas where
    compressed section renaming was done directly rather than calling
    bfd_rename_section.  This would have broken bfd_get_section_by_name
    and similar functions, but that hardly mattered at such a late stage
    in gas processing.
    
    bfd/
            * bfd-in.h (bfd_get_section_name, bfd_get_section_vma),
            (bfd_get_section_lma, bfd_get_section_alignment),
            (bfd_get_section_size, bfd_get_section_flags),
            (bfd_get_section_userdata): Delete.
            (bfd_section_name, bfd_section_size, bfd_section_vma),
            (bfd_section_lma, bfd_section_alignment): Lose bfd parameter.
            (bfd_section_flags, bfd_section_userdata): New.
            (bfd_is_com_section): Rename parameter.
            * section.c (bfd_set_section_userdata, bfd_set_section_vma),
            (bfd_set_section_alignment, bfd_set_section_flags, bfd_rename_section),
            (bfd_set_section_size): Delete bfd parameter, rename section parameter.
            (bfd_set_section_lma): New.
            * bfd-in2.h: Regenerate.
            * mach-o.c (bfd_mach_o_init_section_from_mach_o): Delete bfd param,
            update callers.
            * aoutx.h, * bfd.c, * coff-alpha.c, * coff-arm.c, * coff-mips.c,
            * coff64-rs6000.c, * coffcode.h, * coffgen.c, * cofflink.c,
            * compress.c, * ecoff.c, * elf-eh-frame.c, * elf-hppa.h,
            * elf-ifunc.c, * elf-m10200.c, * elf-m10300.c, * elf-properties.c,
            * elf-s390-common.c, * elf-vxworks.c, * elf.c, * elf32-arc.c,
            * elf32-arm.c, * elf32-avr.c, * elf32-bfin.c, * elf32-cr16.c,
            * elf32-cr16c.c, * elf32-cris.c, * elf32-crx.c, * elf32-csky.c,
            * elf32-d10v.c, * elf32-epiphany.c, * elf32-fr30.c, * elf32-frv.c,
            * elf32-ft32.c, * elf32-h8300.c, * elf32-hppa.c, * elf32-i386.c,
            * elf32-ip2k.c, * elf32-iq2000.c, * elf32-lm32.c, * elf32-m32c.c,
            * elf32-m32r.c, * elf32-m68hc1x.c, * elf32-m68k.c, * elf32-mcore.c,
            * elf32-mep.c, * elf32-metag.c, * elf32-microblaze.c,
            * elf32-moxie.c, * elf32-msp430.c, * elf32-mt.c, * elf32-nds32.c,
            * elf32-nios2.c, * elf32-or1k.c, * elf32-ppc.c, * elf32-pru.c,
            * elf32-rl78.c, * elf32-rx.c, * elf32-s390.c, * elf32-score.c,
            * elf32-score7.c, * elf32-sh.c, * elf32-spu.c, * elf32-tic6x.c,
            * elf32-tilepro.c, * elf32-v850.c, * elf32-vax.c, * elf32-visium.c,
            * elf32-xstormy16.c, * elf32-xtensa.c, * elf64-alpha.c,
            * elf64-bpf.c, * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-mmix.c,
            * elf64-ppc.c, * elf64-s390.c, * elf64-sparc.c, * elf64-x86-64.c,
            * elflink.c, * elfnn-aarch64.c, * elfnn-ia64.c, * elfnn-riscv.c,
            * elfxx-aarch64.c, * elfxx-mips.c, * elfxx-sparc.c,
            * elfxx-tilegx.c, * elfxx-x86.c, * i386msdos.c, * linker.c,
            * mach-o.c, * mmo.c, * opncls.c, * pdp11.c, * pei-x86_64.c,
            * peicode.h, * reloc.c, * section.c, * syms.c, * vms-alpha.c,
            * xcofflink.c: Update throughout for bfd section macro and function
            changes.
    binutils/
            * addr2line.c, * bucomm.c, * coffgrok.c, * dlltool.c, * nm.c,
            * objcopy.c, * objdump.c, * od-elf32_avr.c, * od-macho.c,
            * od-xcoff.c, * prdbg.c, * rdcoff.c, * rddbg.c, * rescoff.c,
            * resres.c, * size.c, * srconv.c, * strings.c, * windmc.c: Update
            throughout for bfd section macro and function changes.
    gas/
            * as.c, * as.h, * dw2gencfi.c, * dwarf2dbg.c, * ecoff.c,
            * read.c, * stabs.c, * subsegs.c, * subsegs.h, * write.c,
            * config/obj-coff-seh.c, * config/obj-coff.c, * config/obj-ecoff.c,
            * config/obj-elf.c, * config/obj-macho.c, * config/obj-som.c,
            * config/tc-aarch64.c, * config/tc-alpha.c, * config/tc-arc.c,
            * config/tc-arm.c, * config/tc-avr.c, * config/tc-bfin.c,
            * config/tc-bpf.c, * config/tc-d10v.c, * config/tc-d30v.c,
            * config/tc-epiphany.c, * config/tc-fr30.c, * config/tc-frv.c,
            * config/tc-h8300.c, * config/tc-hppa.c, * config/tc-i386.c,
            * config/tc-ia64.c, * config/tc-ip2k.c, * config/tc-iq2000.c,
            * config/tc-lm32.c, * config/tc-m32c.c, * config/tc-m32r.c,
            * config/tc-m68hc11.c, * config/tc-mep.c, * config/tc-microblaze.c,
            * config/tc-mips.c, * config/tc-mmix.c, * config/tc-mn10200.c,
            * config/tc-mn10300.c, * config/tc-msp430.c, * config/tc-mt.c,
            * config/tc-nds32.c, * config/tc-or1k.c, * config/tc-ppc.c,
            * config/tc-pru.c, * config/tc-rl78.c, * config/tc-rx.c,
            * config/tc-s12z.c, * config/tc-s390.c, * config/tc-score.c,
            * config/tc-score7.c, * config/tc-sh.c, * config/tc-sparc.c,
            * config/tc-spu.c, * config/tc-tic4x.c, * config/tc-tic54x.c,
            * config/tc-tic6x.c, * config/tc-tilegx.c, * config/tc-tilepro.c,
            * config/tc-v850.c, * config/tc-visium.c, * config/tc-wasm32.c,
            * config/tc-xc16x.c, * config/tc-xgate.c, * config/tc-xstormy16.c,
            * config/tc-xtensa.c, * config/tc-z8k.c: Update throughout for
            bfd section macro and function changes.
            * write.c (compress_debug): Use bfd_rename_section.
    gdb/
            * aarch64-linux-tdep.c, * arm-tdep.c, * auto-load.c,
            * coff-pe-read.c, * coffread.c, * corelow.c, * dbxread.c,
            * dicos-tdep.c, * dwarf2-frame.c, * dwarf2read.c, * elfread.c,
            * exec.c, * fbsd-tdep.c, * gcore.c, * gdb_bfd.c, * gdb_bfd.h,
            * hppa-tdep.c, * i386-cygwin-tdep.c, * i386-fbsd-tdep.c,
            * i386-linux-tdep.c, * jit.c, * linux-tdep.c, * machoread.c,
            * maint.c, * mdebugread.c, * minidebug.c, * mips-linux-tdep.c,
            * mips-sde-tdep.c, * mips-tdep.c, * mipsread.c, * nto-tdep.c,
            * objfiles.c, * objfiles.h, * osabi.c, * ppc-linux-tdep.c,
            * ppc64-tdep.c, * record-btrace.c, * record-full.c, * remote.c,
            * rs6000-aix-tdep.c, * rs6000-tdep.c, * s390-linux-tdep.c,
            * s390-tdep.c, * solib-aix.c, * solib-dsbt.c, * solib-frv.c,
            * solib-spu.c, * solib-svr4.c, * solib-target.c,
            * spu-linux-nat.c, * spu-tdep.c, * symfile-mem.c, * symfile.c,
            * symmisc.c, * symtab.c, * target.c, * windows-nat.c,
            * xcoffread.c, * cli/cli-dump.c, * compile/compile-object-load.c,
            * mi/mi-interp.c: Update throughout for bfd section macro and
            function changes.
            * gcore (gcore_create_callback): Use bfd_set_section_lma.
            * spu-tdep.c (spu_overlay_new_objfile): Likewise.
    gprof/
            * corefile.c, * symtab.c: Update throughout for bfd section
            macro and function changes.
    ld/
            * ldcref.c, * ldctor.c, * ldelf.c, * ldlang.c, * pe-dll.c,
            * emultempl/aarch64elf.em, * emultempl/aix.em,
            * emultempl/armcoff.em, * emultempl/armelf.em,
            * emultempl/cr16elf.em, * emultempl/cskyelf.em,
            * emultempl/m68hc1xelf.em, * emultempl/m68kelf.em,
            * emultempl/mipself.em, * emultempl/mmix-elfnmmo.em,
            * emultempl/mmo.em, * emultempl/msp430.em,
            * emultempl/nios2elf.em, * emultempl/pe.em, * emultempl/pep.em,
            * emultempl/ppc64elf.em, * emultempl/xtensaelf.em: Update
            throughout for bfd section macro and function changes.
    libctf/
            * ctf-open-bfd.c: Update throughout for bfd section macro changes.
    opcodes/
            * arc-ext.c: Update throughout for bfd section macro changes.
    sim/
            * common/sim-load.c, * common/sim-utils.c, * cris/sim-if.c,
            * erc32/func.c, * lm32/sim-if.c, * m32c/load.c, * m32c/trace.c,
            * m68hc11/interp.c, * ppc/hw_htab.c, * ppc/hw_init.c,
            * rl78/load.c, * rl78/trace.c, * rx/gdb-if.c, * rx/load.c,
            * rx/trace.c: Update throughout for bfd section macro changes.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 63f6c4c33f..8fff6a6752 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,48 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h (bfd_get_section_name, bfd_get_section_vma),
+	(bfd_get_section_lma, bfd_get_section_alignment),
+	(bfd_get_section_size, bfd_get_section_flags),
+	(bfd_get_section_userdata): Delete.
+	(bfd_section_name, bfd_section_size, bfd_section_vma),
+	(bfd_section_lma, bfd_section_alignment): Lose bfd parameter.
+	(bfd_section_flags, bfd_section_userdata): New.
+	(bfd_is_com_section): Rename parameter.
+	* section.c (bfd_set_section_userdata, bfd_set_section_vma),
+	(bfd_set_section_alignment, bfd_set_section_flags, bfd_rename_section),
+	(bfd_set_section_size): Delete bfd parameter, rename section parameter.
+	(bfd_set_section_lma): New.
+	* bfd-in2.h: Regenerate.
+	* mach-o.c (bfd_mach_o_init_section_from_mach_o): Delete bfd param,
+	update callers.
+	* aoutx.h, * bfd.c, * coff-alpha.c, * coff-arm.c, * coff-mips.c,
+	* coff64-rs6000.c, * coffcode.h, * coffgen.c, * cofflink.c,
+	* compress.c, * ecoff.c, * elf-eh-frame.c, * elf-hppa.h,
+	* elf-ifunc.c, * elf-m10200.c, * elf-m10300.c, * elf-properties.c,
+	* elf-s390-common.c, * elf-vxworks.c, * elf.c, * elf32-arc.c,
+	* elf32-arm.c, * elf32-avr.c, * elf32-bfin.c, * elf32-cr16.c,
+	* elf32-cr16c.c, * elf32-cris.c, * elf32-crx.c, * elf32-csky.c,
+	* elf32-d10v.c, * elf32-epiphany.c, * elf32-fr30.c, * elf32-frv.c,
+	* elf32-ft32.c, * elf32-h8300.c, * elf32-hppa.c, * elf32-i386.c,
+	* elf32-ip2k.c, * elf32-iq2000.c, * elf32-lm32.c, * elf32-m32c.c,
+	* elf32-m32r.c, * elf32-m68hc1x.c, * elf32-m68k.c, * elf32-mcore.c,
+	* elf32-mep.c, * elf32-metag.c, * elf32-microblaze.c,
+	* elf32-moxie.c, * elf32-msp430.c, * elf32-mt.c, * elf32-nds32.c,
+	* elf32-nios2.c, * elf32-or1k.c, * elf32-ppc.c, * elf32-pru.c,
+	* elf32-rl78.c, * elf32-rx.c, * elf32-s390.c, * elf32-score.c,
+	* elf32-score7.c, * elf32-sh.c, * elf32-spu.c, * elf32-tic6x.c,
+	* elf32-tilepro.c, * elf32-v850.c, * elf32-vax.c, * elf32-visium.c,
+	* elf32-xstormy16.c, * elf32-xtensa.c, * elf64-alpha.c,
+	* elf64-bpf.c, * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-mmix.c,
+	* elf64-ppc.c, * elf64-s390.c, * elf64-sparc.c, * elf64-x86-64.c,
+	* elflink.c, * elfnn-aarch64.c, * elfnn-ia64.c, * elfnn-riscv.c,
+	* elfxx-aarch64.c, * elfxx-mips.c, * elfxx-sparc.c,
+	* elfxx-tilegx.c, * elfxx-x86.c, * i386msdos.c, * linker.c,
+	* mach-o.c, * mmo.c, * opncls.c, * pdp11.c, * pei-x86_64.c,
+	* peicode.h, * reloc.c, * section.c, * syms.c, * vms-alpha.c,
+	* xcofflink.c: Update throughout for bfd section macro and function
+	changes.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h (bfd_asymbol_section): Rename from bfd_get_section.
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index 859153be10..8923ca7b3c 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -3108,18 +3108,18 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
 	  break;
 	case N_TEXT | N_EXT:
 	  section = obj_textsec (abfd);
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  break;
 	case N_DATA | N_EXT:
 	case N_SETV | N_EXT:
 	  /* Treat N_SETV symbols as N_DATA symbol; see comment in
 	     translate_from_native_sym_flags.  */
 	  section = obj_datasec (abfd);
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  break;
 	case N_BSS | N_EXT:
 	  section = obj_bsssec (abfd);
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  break;
 	case N_INDR | N_EXT:
 	  /* An indirect symbol.  The next symbol is the symbol
@@ -3145,17 +3145,17 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
 	case N_SETT: case N_SETT | N_EXT:
 	  section = obj_textsec (abfd);
 	  flags |= BSF_CONSTRUCTOR;
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  break;
 	case N_SETD: case N_SETD | N_EXT:
 	  section = obj_datasec (abfd);
 	  flags |= BSF_CONSTRUCTOR;
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  break;
 	case N_SETB: case N_SETB | N_EXT:
 	  section = obj_bsssec (abfd);
 	  flags |= BSF_CONSTRUCTOR;
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  break;
 	case N_WARNING:
 	  /* A warning symbol.  The next symbol is the one to warn
@@ -3181,17 +3181,17 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
 	  break;
 	case N_WEAKT:
 	  section = obj_textsec (abfd);
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  flags = BSF_WEAK;
 	  break;
 	case N_WEAKD:
 	  section = obj_datasec (abfd);
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  flags = BSF_WEAK;
 	  break;
 	case N_WEAKB:
 	  section = obj_bsssec (abfd);
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  flags = BSF_WEAK;
 	  break;
 	}
@@ -3899,8 +3899,7 @@ aout_link_reloc_link_order (struct aout_final_link_info *flaginfo,
 	      (*flaginfo->info->callbacks->reloc_overflow)
 		(flaginfo->info, NULL,
 		 (p->type == bfd_section_reloc_link_order
-		  ? bfd_section_name (flaginfo->output_bfd,
-				      pr->u.section)
+		  ? bfd_section_name (pr->u.section)
 		  : pr->u.name),
 		 howto->name, pr->addend, NULL, NULL, (bfd_vma) 0);
 	      break;
@@ -4314,7 +4313,7 @@ aout_link_input_section_std (struct aout_final_link_info *flaginfo,
 		    asection *s;
 
 		    s = aout_reloc_index_to_section (input_bfd, r_index);
-		    name = bfd_section_name (input_bfd, s);
+		    name = bfd_section_name (s);
 		  }
 		(*flaginfo->info->callbacks->reloc_overflow)
 		  (flaginfo->info, (h ? &h->root : NULL), name, howto->name,
@@ -4728,7 +4727,7 @@ aout_link_input_section_ext (struct aout_final_link_info *flaginfo,
 			asection *s;
 
 			s = aout_reloc_index_to_section (input_bfd, r_index);
-			name = bfd_section_name (input_bfd, s);
+			name = bfd_section_name (s);
 		      }
 		    (*flaginfo->info->callbacks->reloc_overflow)
 		      (flaginfo->info, (h ? &h->root : NULL), name,
@@ -4868,8 +4867,7 @@ aout_link_write_symbols (struct aout_final_link_info *flaginfo, bfd *input_bfd)
 	return FALSE;
       PUT_WORD (output_bfd, strtab_index, outsym->e_strx);
       PUT_WORD (output_bfd,
-		(bfd_get_section_vma (output_bfd,
-				      obj_textsec (input_bfd)->output_section)
+		(bfd_section_vma (obj_textsec (input_bfd)->output_section)
 		 + obj_textsec (input_bfd)->output_offset),
 		outsym->e_value);
       ++obj_aout_external_sym_count (output_bfd);
@@ -5077,7 +5075,7 @@ aout_link_write_symbols (struct aout_final_link_info *flaginfo, bfd *input_bfd)
 		  BFD_ASSERT (bfd_is_abs_section (output_section)
 			      || output_section->owner == output_bfd);
 		  val = (hresolve->root.u.def.value
-			 + bfd_get_section_vma (output_bfd, output_section)
+			 + bfd_section_vma (output_section)
 			 + input_section->output_offset);
 
 		  /* Get the correct type based on the section.  If
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 5a30344350..e55e3e90ba 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -299,21 +299,15 @@ typedef struct bfd_section *sec_ptr;
    ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
    : ~ (bfd_vma) 0)
 
-#define bfd_get_section_name(bfd, ptr) ((void) bfd, (ptr)->name)
-#define bfd_get_section_vma(bfd, ptr) ((void) bfd, (ptr)->vma)
-#define bfd_get_section_lma(bfd, ptr) ((void) bfd, (ptr)->lma)
-#define bfd_get_section_alignment(bfd, ptr) ((void) bfd, \
-					     (ptr)->alignment_power)
-#define bfd_section_name(bfd, ptr) ((ptr)->name)
-#define bfd_section_size(bfd, ptr) ((ptr)->size)
-#define bfd_get_section_size(ptr) ((ptr)->size)
-#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
-#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
-#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
-#define bfd_get_section_flags(bfd, ptr) ((void) bfd, (ptr)->flags)
-#define bfd_get_section_userdata(bfd, ptr) ((void) bfd, (ptr)->userdata)
-
-#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
+#define bfd_section_name(sec) ((sec)->name)
+#define bfd_section_size(sec) ((sec)->size)
+#define bfd_section_vma(sec) ((sec)->vma)
+#define bfd_section_lma(sec) ((sec)->lma)
+#define bfd_section_alignment(sec) ((sec)->alignment_power)
+#define bfd_section_flags(sec) ((sec)->flags)
+#define bfd_section_userdata(sec) ((sec)->userdata)
+
+#define bfd_is_com_section(sec) (((sec)->flags & SEC_IS_COMMON) != 0)
 
 #define bfd_get_section_limit_octets(bfd, sec)			\
   ((bfd)->direction != write_direction && (sec)->rawsize != 0	\
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 6542d403e0..425f0c6709 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -306,21 +306,15 @@ typedef struct bfd_section *sec_ptr;
    ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
    : ~ (bfd_vma) 0)
 
-#define bfd_get_section_name(bfd, ptr) ((void) bfd, (ptr)->name)
-#define bfd_get_section_vma(bfd, ptr) ((void) bfd, (ptr)->vma)
-#define bfd_get_section_lma(bfd, ptr) ((void) bfd, (ptr)->lma)
-#define bfd_get_section_alignment(bfd, ptr) ((void) bfd, \
-					     (ptr)->alignment_power)
-#define bfd_section_name(bfd, ptr) ((ptr)->name)
-#define bfd_section_size(bfd, ptr) ((ptr)->size)
-#define bfd_get_section_size(ptr) ((ptr)->size)
-#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
-#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
-#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
-#define bfd_get_section_flags(bfd, ptr) ((void) bfd, (ptr)->flags)
-#define bfd_get_section_userdata(bfd, ptr) ((void) bfd, (ptr)->userdata)
-
-#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
+#define bfd_section_name(sec) ((sec)->name)
+#define bfd_section_size(sec) ((sec)->size)
+#define bfd_section_vma(sec) ((sec)->vma)
+#define bfd_section_lma(sec) ((sec)->lma)
+#define bfd_section_alignment(sec) ((sec)->alignment_power)
+#define bfd_section_flags(sec) ((sec)->flags)
+#define bfd_section_userdata(sec) ((sec)->userdata)
+
+#define bfd_is_com_section(sec) (((sec)->flags & SEC_IS_COMMON) != 0)
 
 #define bfd_get_section_limit_octets(bfd, sec)			\
   ((bfd)->direction != write_direction && (sec)->rawsize != 0	\
@@ -1742,26 +1736,31 @@ struct relax_table {
    would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
    compilers will complain about comma expressions that have no effect.  */
 static inline bfd_boolean
-bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
-                          void * val)
+bfd_set_section_userdata (asection *sec, void *val)
+{
+  sec->userdata = val;
+  return TRUE;
+}
+
+static inline bfd_boolean
+bfd_set_section_vma (asection *sec, bfd_vma val)
 {
-  ptr->userdata = val;
+  sec->vma = sec->lma = val;
+  sec->user_set_vma = TRUE;
   return TRUE;
 }
 
 static inline bfd_boolean
-bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
+bfd_set_section_lma (asection *sec, bfd_vma val)
 {
-  ptr->vma = ptr->lma = val;
-  ptr->user_set_vma = TRUE;
+  sec->lma = val;
   return TRUE;
 }
 
 static inline bfd_boolean
-bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
-                           unsigned int val)
+bfd_set_section_alignment (asection *sec, unsigned int val)
 {
-  ptr->alignment_power = val;
+  sec->alignment_power = val;
   return TRUE;
 }
 
@@ -1963,11 +1962,10 @@ asection *bfd_make_section_with_flags
 
 asection *bfd_make_section (bfd *, const char *name);
 
-bfd_boolean bfd_set_section_flags
-   (bfd *abfd, asection *sec, flagword flags);
+bfd_boolean bfd_set_section_flags (asection *sec, flagword flags);
 
 void bfd_rename_section
-   (bfd *abfd, asection *sec, const char *newname);
+   (asection *sec, const char *newname);
 
 void bfd_map_over_sections
    (bfd *abfd,
@@ -1979,8 +1977,7 @@ asection *bfd_sections_find_if
     bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
     void *obj);
 
-bfd_boolean bfd_set_section_size
-   (bfd *abfd, asection *sec, bfd_size_type val);
+bfd_boolean bfd_set_section_size (asection *sec, bfd_size_type val);
 
 bfd_boolean bfd_set_section_contents
    (bfd *abfd, asection *section, const void *data,
diff --git a/bfd/bfd.c b/bfd/bfd.c
index c973c780b4..7029bf7b85 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -2342,7 +2342,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents,
 		  bfd_put_32 (abfd, 1 << sec->alignment_power,
 			      &echdr->ch_addralign);
 		  /* bfd_log2 (alignof (Elf32_Chdr)) */
-		  bfd_set_section_alignment (abfd, sec, 2);
+		  bfd_set_section_alignment (sec, 2);
 		}
 	      else
 		{
@@ -2354,7 +2354,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents,
 		  bfd_put_64 (abfd, 1 << sec->alignment_power,
 			      &echdr->ch_addralign);
 		  /* bfd_log2 (alignof (Elf64_Chdr)) */
-		  bfd_set_section_alignment (abfd, sec, 3);
+		  bfd_set_section_alignment (sec, 3);
 		}
 	    }
 	  else
@@ -2368,7 +2368,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents,
 	      memcpy (contents, "ZLIB", 4);
 	      bfd_putb64 (sec->size, contents + 4);
 	      /* No way to keep the original alignment, just use 1 always. */
-	      bfd_set_section_alignment (abfd, sec, 0);
+	      bfd_set_section_alignment (sec, 0);
 	    }
 	}
     }
@@ -2597,7 +2597,7 @@ bfd_convert_section_contents (bfd *ibfd, sec_ptr isec, bfd *obfd,
       use_memmove = TRUE;
     }
 
-  size = bfd_get_section_size (isec) - ihdr_size + ohdr_size;
+  size = bfd_section_size (isec) - ihdr_size + ohdr_size;
   if (!use_memmove)
     {
       contents = (bfd_byte *) bfd_malloc (size);
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index ee4a3eeded..d36921bbfe 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -426,7 +426,7 @@ alpha_ecoff_object_p (bfd *abfd)
 	  size = sec->line_filepos * 8;
 	  BFD_ASSERT (size == sec->size
 		      || size + 8 == sec->size);
-	  if (! bfd_set_section_size (abfd, sec, size))
+	  if (!bfd_set_section_size (sec, size))
 	    return NULL;
 	}
     }
@@ -1237,7 +1237,7 @@ alpha_convert_external_reloc (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       /* Compute a new r_symndx value.  */
       hsec = h->root.u.def.section;
-      name = bfd_get_section_name (output_bfd, hsec->output_section);
+      name = bfd_section_name (hsec->output_section);
 
       r_symndx = (unsigned long) -1;
       switch (name[1])
@@ -1928,8 +1928,7 @@ alpha_relocate_section (bfd *output_bfd,
 		    if (r_extern)
 		      name = sym_hashes[r_symndx]->root.root.string;
 		    else
-		      name = bfd_section_name (input_bfd,
-					       symndx_to_section[r_symndx]);
+		      name = bfd_section_name (symndx_to_section[r_symndx]);
 		    (*info->callbacks->reloc_overflow)
 		      (info, NULL, name, alpha_howto_table[r_type].name,
 		       (bfd_vma) 0, input_bfd, input_section,
diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c
index 5237bfb2d0..cbc5257e9f 100644
--- a/bfd/coff-arm.c
+++ b/bfd/coff-arm.c
@@ -1989,7 +1989,7 @@ bfd_arm_get_bfd_for_interworking (bfd *			 abfd,
       sec = bfd_make_section_with_flags (abfd, ARM2THUMB_GLUE_SECTION_NAME,
 					 flags);
       if (sec == NULL
-	  || ! bfd_set_section_alignment (abfd, sec, 2))
+	  || !bfd_set_section_alignment (sec, 2))
 	return FALSE;
     }
 
@@ -2003,7 +2003,7 @@ bfd_arm_get_bfd_for_interworking (bfd *			 abfd,
 					 flags);
 
       if (sec == NULL
-	  || ! bfd_set_section_alignment (abfd, sec, 2))
+	  || !bfd_set_section_alignment (sec, 2))
 	return FALSE;
     }
 
diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c
index a2dd9e1c4f..c6fe679a6c 100644
--- a/bfd/coff-mips.c
+++ b/bfd/coff-mips.c
@@ -1012,8 +1012,7 @@ mips_relocate_section (bfd *output_bfd,
 
 		  /* Compute a new r_symndx value.  */
 		  s = h->root.u.def.section;
-		  name = bfd_get_section_name (output_bfd,
-					       s->output_section);
+		  name = bfd_section_name (s->output_section);
 
 		  int_rel.r_symndx = -1;
 		  switch (name[1])
@@ -1223,7 +1222,7 @@ mips_relocate_section (bfd *output_bfd,
 		if (int_rel.r_extern)
 		  name = NULL;
 		else
-		  name = bfd_section_name (input_bfd, s);
+		  name = bfd_section_name (s);
 		(*info->callbacks->reloc_overflow)
 		  (info, (h ? &h->root : NULL), name, howto->name,
 		   (bfd_vma) 0, input_bfd, input_section,
diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index 1c80a9df88..091da1fd5e 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -959,7 +959,7 @@ xcoff64_write_object_contents (bfd *abfd)
       if (text_sec != NULL)
 	{
 	  internal_a.o_sntext = text_sec->target_index;
-	  internal_a.o_algntext = bfd_get_section_alignment (abfd, text_sec);
+	  internal_a.o_algntext = bfd_section_alignment (text_sec);
 	}
       else
 	{
@@ -970,7 +970,7 @@ xcoff64_write_object_contents (bfd *abfd)
       if (data_sec != NULL)
 	{
 	  internal_a.o_sndata = data_sec->target_index;
-	  internal_a.o_algndata = bfd_get_section_alignment (abfd, data_sec);
+	  internal_a.o_algndata = bfd_section_alignment (data_sec);
 	}
       else
 	{
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index dd3189fbd3..948bb705b0 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -1696,7 +1696,7 @@ coff_set_custom_section_alignment (bfd *abfd ATTRIBUTE_UNUSED,
 
   for (i = 0; i < table_size; ++i)
     {
-      const char *secname = bfd_get_section_name (abfd, section);
+      const char *secname = bfd_section_name (section);
 
       if (alignment_table[i].comparison_length == (unsigned int) -1
 	  ? strcmp (alignment_table[i].name, secname) == 0
@@ -1759,17 +1759,17 @@ coff_new_section_hook (bfd * abfd, asection * section)
 
 #ifdef RS6000COFF_C
   if (bfd_xcoff_text_align_power (abfd) != 0
-      && strcmp (bfd_get_section_name (abfd, section), ".text") == 0)
+      && strcmp (bfd_section_name (section), ".text") == 0)
     section->alignment_power = bfd_xcoff_text_align_power (abfd);
   else if (bfd_xcoff_data_align_power (abfd) != 0
-      && strcmp (bfd_get_section_name (abfd, section), ".data") == 0)
+      && strcmp (bfd_section_name (section), ".data") == 0)
     section->alignment_power = bfd_xcoff_data_align_power (abfd);
   else
     {
       int i;
 
       for (i = 0; i < XCOFF_DWSECT_NBR_NAMES; i++)
-	if (strcmp (bfd_get_section_name (abfd, section),
+	if (strcmp (bfd_section_name (section),
 		    xcoff_dwsect_names[i].name) == 0)
 	  {
 	    section->alignment_power = 0;
@@ -3221,7 +3221,7 @@ coff_compute_section_file_positions (bfd * abfd)
 	 incremented in coff_set_section_contents.  This is right for
 	 SVR3.2.  */
       if (strcmp (current->name, _LIB) == 0)
-	(void) bfd_set_section_vma (abfd, current, 0);
+	bfd_set_section_vma (current, 0);
 #endif
 
 #ifdef ALIGN_SECTIONS_IN_FILE
@@ -4011,7 +4011,7 @@ coff_write_object_contents (bfd * abfd)
       if (text_sec != NULL)
 	{
 	  internal_a.o_sntext = text_sec->target_index;
-	  internal_a.o_algntext = bfd_get_section_alignment (abfd, text_sec);
+	  internal_a.o_algntext = bfd_section_alignment (text_sec);
 	}
       else
 	{
@@ -4021,7 +4021,7 @@ coff_write_object_contents (bfd * abfd)
       if (data_sec != NULL)
 	{
 	  internal_a.o_sndata = data_sec->target_index;
-	  internal_a.o_algndata = bfd_get_section_alignment (abfd, data_sec);
+	  internal_a.o_algndata = bfd_section_alignment (data_sec);
 	}
       else
 	{
@@ -4390,8 +4390,7 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
 	   PR 17521: file: 078-10659-0.004.  */
 	continue;
       else
-	cache_ptr->u.offset = (dst.l_addr.l_paddr
-			       - bfd_section_vma (abfd, asect));
+	cache_ptr->u.offset = dst.l_addr.l_paddr - bfd_section_vma (asect);
       cache_ptr++;
     }
 
@@ -4886,7 +4885,7 @@ coff_classify_symbol (bfd *abfd,
 	  name = _bfd_coff_internal_syment_name (abfd, syment, buf)
 	  sec = coff_section_from_bfd_index (abfd, syment->n_scnum);
 	  if (sec != NULL && name != NULL
-	      && (strcmp (bfd_get_section_name (abfd, sec), name) == 0))
+	      && (strcmp (bfd_section_name (sec), name) == 0))
 	    return COFF_SYMBOL_PE_SECTION;
 	}
 #endif
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index 80a9a2ab9a..ba7bb5eaf4 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -217,7 +217,7 @@ make_a_section_from_file (bfd *abfd,
 	  break;
 	}
       if (new_name != NULL)
-	bfd_rename_section (abfd, return_section, new_name);
+	bfd_rename_section (return_section, new_name);
     }
 
   return result;
@@ -2366,7 +2366,7 @@ coff_find_nearest_line_with_names (bfd *abfd,
       bfd_vma maxdiff;
 
       /* Look through the C_FILE symbols to find the best one.  */
-      sec_vma = bfd_get_section_vma (abfd, section);
+      sec_vma = bfd_section_vma (section);
       *filename_ptr = (char *) p->u.syment._n._n_n._n_offset;
       maxdiff = (bfd_vma) 0 - (bfd_vma) 1;
       while (1)
@@ -2658,7 +2658,7 @@ _bfd_coff_section_already_linked (bfd *abfd,
   if ((flags & SEC_GROUP) != 0)
     return FALSE;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
   s_comdat = bfd_coff_get_comdat_section (abfd, sec);
 
   if (s_comdat != NULL)
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 7bcc1ca77d..2115e9c36a 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -2846,8 +2846,7 @@ _bfd_coff_reloc_link_order (bfd *output_bfd,
 	  (*flaginfo->info->callbacks->reloc_overflow)
 	    (flaginfo->info, NULL,
 	     (link_order->type == bfd_section_reloc_link_order
-	      ? bfd_section_name (output_bfd,
-				  link_order->u.reloc.p->u.section)
+	      ? bfd_section_name (link_order->u.reloc.p->u.section)
 	      : link_order->u.reloc.p->u.name),
 	     howto->name, link_order->u.reloc.p->addend,
 	     (bfd *) NULL, (asection *) NULL, (bfd_vma) 0);
diff --git a/bfd/compress.c b/bfd/compress.c
index 32de09923d..8f96d064bd 100644
--- a/bfd/compress.c
+++ b/bfd/compress.c
@@ -155,8 +155,7 @@ bfd_compress_section_contents (bfd *abfd, sec_ptr sec,
 	      return 0;
 	    }
 	  free (uncompressed_buffer);
-	  bfd_set_section_alignment (abfd, sec,
-				     orig_uncompressed_alignment_pow);
+	  bfd_set_section_alignment (sec, orig_uncompressed_alignment_pow);
 
 	  sec->contents = buffer;
 	  sec->compress_status = COMPRESS_SECTION_DONE;
@@ -255,7 +254,7 @@ bfd_get_full_section_contents (bfd *abfd, sec_ptr sec, bfd_byte **ptr)
 	      && filesize < sz
 	      /* PR 24753: Linker created sections can be larger than
 		 the file size, eg if they are being used to hold stubs.  */
-	      && (bfd_get_section_flags (abfd, sec) & SEC_LINKER_CREATED) == 0
+	      && (bfd_section_flags (sec) & SEC_LINKER_CREATED) == 0
 	      /* The MMO file format supports its own special compression
 		 technique, but it uses COMPRESS_SECTION_NONE when loading
 		 a section's contents.  */
@@ -552,7 +551,7 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec)
 
   sec->compressed_size = sec->size;
   sec->size = uncompressed_size;
-  bfd_set_section_alignment (abfd, sec, uncompressed_alignment_power);
+  bfd_set_section_alignment (sec, uncompressed_alignment_power);
   sec->compress_status = DECOMPRESS_SECTION_SIZED;
 
   return TRUE;
diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index c06fa5ec7f..30adba0e6d 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -1676,10 +1676,10 @@ ecoff_slurp_reloc_table (bfd *abfd,
 	    abort ();
 	  rptr->sym_ptr_ptr = sec->symbol_ptr_ptr;
 
-	  rptr->addend = - bfd_get_section_vma (abfd, sec);
+	  rptr->addend = - bfd_section_vma (sec);
 	}
 
-      rptr->address = intern.r_vaddr - bfd_get_section_vma (abfd, section);
+      rptr->address = intern.r_vaddr - bfd_section_vma (section);
 
       /* Let the backend select the howto field and do any other
 	 required processing.  */
@@ -2431,7 +2431,7 @@ _bfd_ecoff_write_object_contents (bfd *abfd)
       strncpy (section.s_name, current->name, sizeof section.s_name);
 
       /* This seems to be correct for Irix 4 shared libraries.  */
-      vma = bfd_get_section_vma (abfd, current);
+      vma = bfd_section_vma (current);
       if (streq (current->name, _LIB))
 	section.s_vaddr = 0;
       else
@@ -2682,8 +2682,7 @@ _bfd_ecoff_write_object_contents (bfd *abfd)
 	      if (reloc->howto == NULL)
 		continue;
 
-	      in.r_vaddr = (reloc->address
-			    + bfd_get_section_vma (abfd, current));
+	      in.r_vaddr = reloc->address + bfd_section_vma (current);
 	      in.r_type = reloc->howto->type;
 
 	      if ((sym->flags & BSF_SECTION_SYM) == 0)
@@ -2719,7 +2718,7 @@ _bfd_ecoff_write_object_contents (bfd *abfd)
 		    { _RCONST, RELOC_SECTION_RCONST }
 		  };
 
-		  name = bfd_get_section_name (abfd, bfd_asymbol_section (sym));
+		  name = bfd_section_name (bfd_asymbol_section (sym));
 
 		  for (j = 0; j < ARRAY_SIZE (section_symndx); j++)
 		    if (streq (name, section_symndx[j].name))
@@ -4010,7 +4009,7 @@ ecoff_reloc_link_order (bfd *output_bfd,
 	  (*info->callbacks->reloc_overflow)
 	    (info, NULL,
 	     (link_order->type == bfd_section_reloc_link_order
-	      ? bfd_section_name (output_bfd, section)
+	      ? bfd_section_name (section)
 	      : link_order->u.reloc.p->u.name),
 	     rel.howto->name, addend, NULL, NULL, (bfd_vma) 0);
 	  break;
@@ -4025,8 +4024,7 @@ ecoff_reloc_link_order (bfd *output_bfd,
   rel.addend = 0;
 
   /* Move the information into an internal_reloc structure.  */
-  in.r_vaddr = (rel.address
-		+ bfd_get_section_vma (output_bfd, output_section));
+  in.r_vaddr = rel.address + bfd_section_vma (output_section);
   in.r_type = rel.howto->type;
 
   if (type == bfd_symbol_reloc_link_order)
@@ -4076,7 +4074,7 @@ ecoff_reloc_link_order (bfd *output_bfd,
 	{ _RCONST, RELOC_SECTION_RCONST }
       };
 
-      name = bfd_get_section_name (output_bfd, section);
+      name = bfd_section_name (section);
 
       for (i = 0; i < ARRAY_SIZE (section_symndx); i++)
 	if (streq (name, section_symndx[i].name))
@@ -4189,7 +4187,7 @@ ecoff_link_write_external (struct bfd_hash_entry *bh, void * data)
 	  };
 
 	  output_section = h->root.u.def.section->output_section;
-	  name = bfd_section_name (output_section->owner, output_section);
+	  name = bfd_section_name (output_section);
 
 	  for (i = 0; i < ARRAY_SIZE (section_storage_classes); i++)
 	    if (streq (name, section_storage_classes[i].name))
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index 6919ac3031..c2cb77bb11 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -1109,7 +1109,7 @@ add_eh_frame_hdr_terminator (asection *sec,
   if (!sec->rawsize)
     sec->rawsize = sec->size;
 
-  bfd_set_section_size (sec->owner, sec, sec->size + 8);
+  bfd_set_section_size (sec, sec->size + 8);
 }
 
 /* Finish a pass over all .eh_frame_entry sections.  */
@@ -1682,7 +1682,7 @@ _bfd_elf_eh_frame_entry_present (struct bfd_link_info *info)
     {
       for (o = abfd->sections; o; o = o->next)
 	{
-	  const char *name = bfd_get_section_name (abfd, o);
+	  const char *name = bfd_section_name (o);
 
 	  if (strcmp (name, ".eh_frame_entry")
 	      && !bfd_is_abs_section (o->output_section))
diff --git a/bfd/elf-hppa.h b/bfd/elf-hppa.h
index cc98caeeb0..2035d4c9c0 100644
--- a/bfd/elf-hppa.h
+++ b/bfd/elf-hppa.h
@@ -881,7 +881,7 @@ elf_hppa_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
 {
   const char *name;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   if (strcmp (name, ".PARISC.unwind") == 0)
     {
diff --git a/bfd/elf-ifunc.c b/bfd/elf-ifunc.c
index 89054e439a..58948e32f1 100644
--- a/bfd/elf-ifunc.c
+++ b/bfd/elf-ifunc.c
@@ -62,8 +62,7 @@ _bfd_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section_with_flags (abfd, rel_sec,
 				       flags | SEC_READONLY);
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s,
-					  bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       htab->irelifunc = s;
     }
@@ -73,7 +72,7 @@ _bfd_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
 	 for static executables.   */
       s = bfd_make_section_with_flags (abfd, ".iplt", pltflags);
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+	  || !bfd_set_section_alignment (s, bed->plt_alignment))
 	return FALSE;
       htab->iplt = s;
 
@@ -82,8 +81,7 @@ _bfd_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
 					? ".rela.iplt" : ".rel.iplt"),
 				       flags | SEC_READONLY);
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s,
-					  bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       htab->irelplt = s;
 
@@ -94,8 +92,7 @@ _bfd_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
       else
 	s = bfd_make_section_with_flags (abfd, ".igot", flags);
       if (s == NULL
-	  || !bfd_set_section_alignment (abfd, s,
-					 bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       htab->igotplt = s;
     }
diff --git a/bfd/elf-m10200.c b/bfd/elf-m10200.c
index cfccb96867..b234c168c8 100644
--- a/bfd/elf-m10200.c
+++ b/bfd/elf-m10200.c
@@ -413,7 +413,7 @@ mn10200_elf_relocate_section (bfd *output_bfd,
 	      name = (bfd_elf_string_from_elf_section
 		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  switch (r)
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index acc3c54258..30828f117a 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -725,7 +725,7 @@ _bfd_mn10300_elf_create_got_section (bfd * abfd,
   s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
   htab->splt = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+      || !bfd_set_section_alignment (s, bed->plt_alignment))
     return FALSE;
 
   /* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the
@@ -742,7 +742,7 @@ _bfd_mn10300_elf_create_got_section (bfd * abfd,
   s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   htab->sgot = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, ptralign))
+      || !bfd_set_section_alignment (s, ptralign))
     return FALSE;
 
   if (bed->want_got_plt)
@@ -750,7 +750,7 @@ _bfd_mn10300_elf_create_got_section (bfd * abfd,
       s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
       htab->sgotplt = s;
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s, ptralign))
+	  || !bfd_set_section_alignment (s, ptralign))
 	return FALSE;
     }
 
@@ -2125,7 +2125,7 @@ mn10300_elf_relocate_section (bfd *output_bfd,
 	      name = (bfd_elf_string_from_elf_section
 		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  switch (r)
@@ -4821,7 +4821,7 @@ _bfd_mn10300_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 					  flags | SEC_READONLY);
   htab->root.srelplt = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, ptralign))
+      || !bfd_set_section_alignment (s, ptralign))
     return FALSE;
 
   if (! _bfd_mn10300_elf_create_got_section (abfd, info))
@@ -4858,7 +4858,7 @@ _bfd_mn10300_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 						   ? ".rela.bss" : ".rel.bss"),
 						  flags | SEC_READONLY);
 	  if (s == NULL
-	      || ! bfd_set_section_alignment (abfd, s, ptralign))
+	      || !bfd_set_section_alignment (s, ptralign))
 	    return FALSE;
 	}
     }
@@ -5073,7 +5073,7 @@ _bfd_mn10300_elf_size_dynamic_sections (bfd * output_bfd,
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (streq (name, ".plt"))
 	{
@@ -5099,8 +5099,7 @@ _bfd_mn10300_elf_size_dynamic_sections (bfd * output_bfd,
 		     entry.  The entries in the .rela.plt section
 		     really apply to the .got section, which we
 		     created ourselves and so know is not readonly.  */
-		  outname = bfd_get_section_name (output_bfd,
-						  s->output_section);
+		  outname = bfd_section_name (s->output_section);
 		  target = bfd_get_section_by_name (output_bfd, outname + 5);
 		  if (target != NULL
 		      && (target->flags & SEC_READONLY) != 0
diff --git a/bfd/elf-properties.c b/bfd/elf-properties.c
index 198eece084..199e61728e 100644
--- a/bfd/elf-properties.c
+++ b/bfd/elf-properties.c
@@ -695,12 +695,12 @@ _bfd_elf_convert_gnu_properties (bfd *ibfd, asection *isec,
   align_shift = bed->s->elfclass == ELFCLASS64 ? 3 : 2;
 
   /* Get the output .note.gnu.property section size.  */
-  size = bfd_get_section_size (isec->output_section);
+  size = bfd_section_size (isec->output_section);
 
   /* Update the output .note.gnu.property section alignment.  */
-  bfd_set_section_alignment (obfd, isec->output_section, align_shift);
+  bfd_set_section_alignment (isec->output_section, align_shift);
 
-  if (size > bfd_get_section_size (isec))
+  if (size > bfd_section_size (isec))
     {
       contents = (bfd_byte *) bfd_malloc (size);
       free (*ptr);
diff --git a/bfd/elf-s390-common.c b/bfd/elf-s390-common.c
index ef8abeb2d0..d7cd7e60e9 100644
--- a/bfd/elf-s390-common.c
+++ b/bfd/elf-s390-common.c
@@ -131,8 +131,7 @@ s390_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section_with_flags (abfd, ".rela.ifunc",
 				       flags | SEC_READONLY);
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s,
-					  bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       htab->irelifunc = s;
     }
@@ -141,21 +140,19 @@ s390_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_with_flags (abfd, ".iplt",
 				   flags | SEC_CODE | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+      || !bfd_set_section_alignment (s, bed->plt_alignment))
     return FALSE;
   htab->iplt = s;
 
   s = bfd_make_section_with_flags (abfd, ".rela.iplt", flags | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s,
-				      bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->irelplt = s;
 
   s = bfd_make_section_with_flags (abfd, ".igot.plt", flags);
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s,
-				     bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->igotplt = s;
 
diff --git a/bfd/elf-vxworks.c b/bfd/elf-vxworks.c
index a7f574c2ef..8fe17bf628 100644
--- a/bfd/elf-vxworks.c
+++ b/bfd/elf-vxworks.c
@@ -97,7 +97,7 @@ elf_vxworks_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info,
 					      | SEC_READONLY
 					      | SEC_LINKER_CREATED);
       if (s == NULL
-	  || !bfd_set_section_alignment (dynobj, s, bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
 
       *srelplt2_out = s;
@@ -279,9 +279,7 @@ elf_vxworks_finish_dynamic_entry (bfd *output_bfd, Elf_Internal_Dyn *dyn)
 
     case DT_VX_WRS_TLS_DATA_ALIGN:
       sec = bfd_get_section_by_name (output_bfd, ".tls_data");
-      dyn->d_un.d_val
-	= (bfd_size_type)1 << bfd_get_section_alignment (output_bfd,
-							 sec);
+      dyn->d_un.d_val = (bfd_size_type) 1 << bfd_section_alignment (sec);
       break;
 
     case DT_VX_WRS_TLS_VARS_START:
diff --git a/bfd/elf.c b/bfd/elf.c
index 1a1eed9085..664eae5c66 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -547,7 +547,7 @@ bfd_elf_sym_name (bfd *abfd,
   if (name == NULL)
     name = "(null)";
   else if (sym_sec && *name == '\0')
-    name = bfd_section_name (abfd, sym_sec);
+    name = bfd_section_name (sym_sec);
 
   return name;
 }
@@ -1049,10 +1049,9 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
 
   newsect->filepos = hdr->sh_offset;
 
-  if (! bfd_set_section_vma (abfd, newsect, hdr->sh_addr)
-      || ! bfd_set_section_size (abfd, newsect, hdr->sh_size)
-      || ! bfd_set_section_alignment (abfd, newsect,
-				      bfd_log2 (hdr->sh_addralign)))
+  if (!bfd_set_section_vma (newsect, hdr->sh_addr)
+      || !bfd_set_section_size (newsect, hdr->sh_size)
+      || !bfd_set_section_alignment (newsect, bfd_log2 (hdr->sh_addralign)))
     return FALSE;
 
   flags = SEC_NO_FLAGS;
@@ -1142,7 +1141,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
     if (! bed->elf_backend_section_flags (&flags, hdr))
       return FALSE;
 
-  if (! bfd_set_section_flags (abfd, newsect, flags))
+  if (!bfd_set_section_flags (newsect, flags))
     return FALSE;
 
   /* We do not parse the PT_NOTE segments as we are interested even in the
@@ -1286,7 +1285,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
 	      char *new_name = convert_zdebug_to_debug (abfd, name);
 	      if (new_name == NULL)
 		return FALSE;
-	      bfd_rename_section (abfd, newsect, new_name);
+	      bfd_rename_section (newsect, new_name);
 	    }
 	}
       else
@@ -5542,7 +5541,7 @@ assign_file_positions_for_load_sections (bfd *abfd,
 		{
 		  unsigned int secalign;
 
-		  secalign = bfd_get_section_alignment (abfd, *secpp);
+		  secalign = bfd_section_alignment (*secpp);
 		  if (secalign > align_power)
 		    align_power = secalign;
 		}
@@ -5696,7 +5695,7 @@ assign_file_positions_for_load_sections (bfd *abfd,
 
 	  sec = *secpp;
 	  this_hdr = &elf_section_data (sec)->this_hdr;
-	  align = (bfd_size_type) 1 << bfd_get_section_alignment (abfd, sec);
+	  align = (bfd_size_type) 1 << bfd_section_alignment (sec);
 
 	  if ((p->p_type == PT_LOAD
 	       || p->p_type == PT_TLS)
@@ -6835,8 +6834,7 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
        || (segment->p_paddr						\
 	   ? segment->p_paddr != section->lma				\
 	   : segment->p_vaddr != section->vma)				\
-       || (strcmp (bfd_get_section_name (ibfd, section), ".dynamic")	\
-	   == 0))							\
+       || (strcmp (bfd_section_name (section), ".dynamic") == 0))	\
    && (segment->p_type != PT_LOAD || !section->segment_mark))
 
 /* If the output section of a section in the input segment is NULL,
diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
index 493f32dad7..91537efd84 100644
--- a/bfd/elf32-arc.c
+++ b/bfd/elf32-arc.c
@@ -900,7 +900,7 @@ arc_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info)
 
       for (sec = ibfd->sections; sec != NULL; sec = sec->next)
 	{
-	  if ((bfd_get_section_flags (ibfd, sec)
+	  if ((bfd_section_flags (sec)
 	       & (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
 	      == (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
 	    only_data_sections = FALSE;
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index e29a60abf1..1c4887a034 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -3817,7 +3817,8 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
       htab->srofixup = bfd_make_section_with_flags (dynobj, ".rofixup",
 						    (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS
 						     | SEC_IN_MEMORY | SEC_LINKER_CREATED | SEC_READONLY));
-      if (htab->srofixup == NULL || ! bfd_set_section_alignment (dynobj, htab->srofixup, 2))
+      if (htab->srofixup == NULL
+	  || !bfd_set_section_alignment (htab->srofixup, 2))
 	return FALSE;
     }
 
@@ -3845,7 +3846,7 @@ create_ifunc_sections (struct bfd_link_info *info)
       s = bfd_make_section_anyway_with_flags (dynobj, ".iplt",
 					      flags | SEC_READONLY | SEC_CODE);
       if (s == NULL
-	  || !bfd_set_section_alignment (dynobj, s, bed->plt_alignment))
+	  || !bfd_set_section_alignment (s, bed->plt_alignment))
 	return FALSE;
       htab->root.iplt = s;
     }
@@ -3856,7 +3857,7 @@ create_ifunc_sections (struct bfd_link_info *info)
 					      RELOC_SECTION (htab, ".iplt"),
 					      flags | SEC_READONLY);
       if (s == NULL
-	  || !bfd_set_section_alignment (dynobj, s, bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       htab->root.irelplt = s;
     }
@@ -3865,7 +3866,7 @@ create_ifunc_sections (struct bfd_link_info *info)
     {
       s = bfd_make_section_anyway_with_flags (dynobj, ".igot.plt", flags);
       if (s == NULL
-	  || !bfd_set_section_alignment (dynobj, s, bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       htab->root.igotplt = s;
     }
@@ -7709,7 +7710,7 @@ arm_make_glue_section (bfd * abfd, const char * name)
   sec = bfd_make_section_anyway_with_flags (abfd, name, ARM_GLUE_SECTION_FLAGS);
 
   if (sec == NULL
-      || !bfd_set_section_alignment (abfd, sec, 2))
+      || !bfd_set_section_alignment (sec, 2))
     return FALSE;
 
   /* Set the gc mark to prevent the section from being removed by garbage
@@ -13374,7 +13375,7 @@ elf32_arm_relocate_section (bfd *		   output_bfd,
 	  name = (bfd_elf_string_from_elf_section
 		  (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	  if (name == NULL || *name == '\0')
-	    name = bfd_section_name (input_bfd, sec);
+	    name = bfd_section_name (sec);
 	}
 
       if (r_symndx != STN_UNDEF
@@ -13552,10 +13553,10 @@ adjust_exidx_size(asection *exidx_sec, int adjust)
   if (!exidx_sec->rawsize)
     exidx_sec->rawsize = exidx_sec->size;
 
-  bfd_set_section_size (exidx_sec->owner, exidx_sec, exidx_sec->size + adjust);
+  bfd_set_section_size (exidx_sec, exidx_sec->size + adjust);
   out_sec = exidx_sec->output_section;
   /* Adjust size of output section.  */
-  bfd_set_section_size (out_sec->owner, out_sec, out_sec->size +adjust);
+  bfd_set_section_size (out_sec, out_sec->size +adjust);
 }
 
 /* Insert an EXIDX_CANTUNWIND marker at the end of a section.  */
@@ -15696,9 +15697,9 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info,
 		{
 		  flagword flags;
 
-		  flags = bfd_get_section_flags (dynobj, sreloc);
+		  flags = bfd_section_flags (sreloc);
 		  flags &= ~(SEC_LOAD | SEC_ALLOC);
-		  bfd_set_section_flags (dynobj, sreloc, flags);
+		  bfd_set_section_flags (sreloc, flags);
 		}
 	    }
 
@@ -17158,7 +17159,7 @@ elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED,
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (s == htab->root.splt)
 	{
@@ -17951,7 +17952,7 @@ elf32_arm_fake_sections (bfd * abfd, Elf_Internal_Shdr * hdr, asection * sec)
 {
   const char * name;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   if (is_arm_elf_unwind_section_name (abfd, name))
     {
@@ -20874,7 +20875,7 @@ elf32_arm_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info)
 	  if (strcmp (sec->name, ".glue_7")
 	      && strcmp (sec->name, ".glue_7t"))
 	    {
-	      if ((bfd_get_section_flags (ibfd, sec)
+	      if ((bfd_section_flags (sec)
 		   & (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
 		  == (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
 		only_data_sections = FALSE;
diff --git a/bfd/elf32-avr.c b/bfd/elf32-avr.c
index e75ac9fc1d..f04cc94ff3 100644
--- a/bfd/elf32-avr.c
+++ b/bfd/elf32-avr.c
@@ -1465,7 +1465,7 @@ elf32_avr_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
@@ -2354,8 +2354,7 @@ avr_property_record_compare (const void *ap, const void *bp)
     return (a->offset - b->offset);
 
   if (a->section != b->section)
-    return (bfd_get_section_vma (a->section->owner, a->section)
-	    - bfd_get_section_vma (b->section->owner, b->section));
+    return bfd_section_vma (a->section) - bfd_section_vma (b->section);
 
   return (a->type - b->type);
 }
@@ -3948,12 +3947,12 @@ internal_reloc_compare (const void *ap, const void *bp)
 /* Return true if ADDRESS is within the vma range of SECTION from ABFD.  */
 
 static bfd_boolean
-avr_is_section_for_address (bfd *abfd, asection *section, bfd_vma address)
+avr_is_section_for_address (asection *section, bfd_vma address)
 {
   bfd_vma vma;
   bfd_size_type size;
 
-  vma = bfd_get_section_vma (abfd, section);
+  vma = bfd_section_vma (section);
   if (address < vma)
     return FALSE;
 
@@ -3985,7 +3984,7 @@ struct avr_find_section_data
    perform any checks, and just returns.  */
 
 static void
-avr_find_section_for_address (bfd *abfd,
+avr_find_section_for_address (bfd *abfd ATTRIBUTE_UNUSED,
 			      asection *section, void *data)
 {
   struct avr_find_section_data *fs_data
@@ -3996,11 +3995,11 @@ avr_find_section_for_address (bfd *abfd,
     return;
 
   /* If this section isn't part of the addressable code content, skip it.  */
-  if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0
-      && (bfd_get_section_flags (abfd, section) & SEC_CODE) == 0)
+  if ((bfd_section_flags (section) & SEC_ALLOC) == 0
+      && (bfd_section_flags (section) & SEC_CODE) == 0)
     return;
 
-  if (avr_is_section_for_address (abfd, section, fs_data->address))
+  if (avr_is_section_for_address (section, fs_data->address))
     fs_data->section = section;
 }
 
@@ -4023,7 +4022,7 @@ avr_elf32_load_records_from_section (bfd *abfd, asection *sec)
 
   fs_data.section = NULL;
 
-  size = bfd_get_section_size (sec);
+  size = bfd_section_size (sec);
   contents = bfd_malloc (size);
   bfd_get_section_contents (abfd, sec, contents, 0, size);
   ptr = contents;
@@ -4126,8 +4125,7 @@ avr_elf32_load_records_from_section (bfd *abfd, asection *sec)
 	{
 	  /* Try to find section and offset from address.  */
 	  if (fs_data.section != NULL
-	      && !avr_is_section_for_address (abfd, fs_data.section,
-					      address))
+	      && !avr_is_section_for_address (fs_data.section, address))
 	    fs_data.section = NULL;
 
 	  if (fs_data.section == NULL)
@@ -4145,7 +4143,7 @@ avr_elf32_load_records_from_section (bfd *abfd, asection *sec)
 
 	  r_list->records [i].section = fs_data.section;
 	  r_list->records [i].offset
-	    = address - bfd_get_section_vma (abfd, fs_data.section);
+	    = address - bfd_section_vma (fs_data.section);
 	}
 
       r_list->records [i].type = *((bfd_byte *) ptr);
diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c
index d73bfdaee3..6efee04c8b 100644
--- a/bfd/elf32-bfin.c
+++ b/bfd/elf32-bfin.c
@@ -1601,7 +1601,7 @@ bfin_relocate_section (bfd * output_bfd,
 	      if (name == NULL)
 		return FALSE;
 	      if (*name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  if (r == bfd_reloc_overflow)
@@ -2560,7 +2560,7 @@ bfinfdpic_relocate_section (bfd * output_bfd,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
@@ -2778,8 +2778,7 @@ bfinfdpic_relocate_section (bfd * output_bfd,
 		    bfd_vma offset;
 
 		    addend += bfinfdpic_got_section (info)->output_section->vma;
-		    if ((bfd_get_section_flags (output_bfd,
-						input_section->output_section)
+		    if ((bfd_section_flags (input_section->output_section)
 			 & (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
 		      {
 			if (_bfinfdpic_osec_readonly_p (output_bfd,
@@ -2807,8 +2806,7 @@ bfinfdpic_relocate_section (bfd * output_bfd,
 						  picrel);
 		      }
 		  }
-		else if ((bfd_get_section_flags (output_bfd,
-						 input_section->output_section)
+		else if ((bfd_section_flags (input_section->output_section)
 			  & (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
 		  {
 		    bfd_vma offset;
@@ -2901,8 +2899,7 @@ bfinfdpic_relocate_section (bfd * output_bfd,
 		if (osec)
 		  addend += osec->output_section->vma;
 		if (IS_FDPIC (input_bfd)
-		    && (bfd_get_section_flags (output_bfd,
-					       input_section->output_section)
+		    && (bfd_section_flags (input_section->output_section)
 			& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
 		  {
 		    if (_bfinfdpic_osec_readonly_p (output_bfd,
@@ -2939,8 +2936,7 @@ bfinfdpic_relocate_section (bfd * output_bfd,
 	      }
 	    else
 	      {
-		if ((bfd_get_section_flags (output_bfd,
-					    input_section->output_section)
+		if ((bfd_section_flags (input_section->output_section)
 		     & (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
 		  {
 		    if (_bfinfdpic_osec_readonly_p (output_bfd,
@@ -3201,7 +3197,7 @@ _bfin_create_got_section (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   elf_hash_table (info)->sgot = s;
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, ptralign))
+      || !bfd_set_section_alignment (s, ptralign))
     return FALSE;
 
   if (bed->want_got_sym)
@@ -3238,7 +3234,7 @@ _bfin_create_got_section (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section_anyway_with_flags (abfd, ".rel.got",
 					      (flags | SEC_READONLY));
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s, 2))
+	  || !bfd_set_section_alignment (s, 2))
 	return FALSE;
 
       bfinfdpic_gotrel_section (info) = s;
@@ -3247,7 +3243,7 @@ _bfin_create_got_section (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section_anyway_with_flags (abfd, ".rofixup",
 					      (flags | SEC_READONLY));
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s, 2))
+	  || !bfd_set_section_alignment (s, 2))
 	return FALSE;
 
       bfinfdpic_gotfixup_section (info) = s;
@@ -3261,7 +3257,7 @@ _bfin_create_got_section (bfd *abfd, struct bfd_link_info *info)
 
   s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+      || !bfd_set_section_alignment (s, bed->plt_alignment))
     return FALSE;
   /* Blackfin-specific: remember it.  */
   bfinfdpic_plt_section (info) = s;
@@ -3289,7 +3285,7 @@ _bfin_create_got_section (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_anyway_with_flags (abfd, ".rel.plt",
 					  flags | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   /* Blackfin-specific: remember it.  */
   bfinfdpic_pltrel_section (info) = s;
@@ -3355,7 +3351,7 @@ elf32_bfinfdpic_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 						  ".rela.bss",
 						  flags | SEC_READONLY);
 	  if (s == NULL
-	      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+	      || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	    return FALSE;
 	}
     }
@@ -4616,7 +4612,7 @@ bfinfdpic_check_relocs (bfd *abfd, struct bfd_link_info *info,
 
 	case R_BFIN_FUNCDESC_VALUE:
 	  picrel->relocsfdv++;
-	  if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+	  if (bfd_section_flags (sec) & SEC_ALLOC)
 	    picrel->relocs32--;
 	  /* Fall through.  */
 
@@ -4625,7 +4621,7 @@ bfinfdpic_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	    break;
 
 	  picrel->sym++;
-	  if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+	  if (bfd_section_flags (sec) & SEC_ALLOC)
 	    picrel->relocs32++;
 	  break;
 
@@ -5064,9 +5060,9 @@ bfin_adjust_dynamic_symbol (struct bfd_link_info *info,
 
   /* Apply the required alignment.  */
   s->size = BFD_ALIGN (s->size, (bfd_size_type) (1 << power_of_two));
-  if (power_of_two > bfd_get_section_alignment (dynobj, s))
+  if (power_of_two > bfd_section_alignment (s))
     {
-      if (!bfd_set_section_alignment (dynobj, s, power_of_two))
+      if (!bfd_set_section_alignment (s, power_of_two))
 	return FALSE;
     }
 
@@ -5200,7 +5196,7 @@ bfin_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED,
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       strip = FALSE;
 
diff --git a/bfd/elf32-cr16.c b/bfd/elf32-cr16.c
index 7d0a0e558f..72642e532c 100644
--- a/bfd/elf32-cr16.c
+++ b/bfd/elf32-cr16.c
@@ -610,7 +610,7 @@ _bfd_cr16_elf_create_got_section (bfd * abfd, struct bfd_link_info * info)
   s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   htab->sgot= s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, ptralign))
+      || !bfd_set_section_alignment (s, ptralign))
     return FALSE;
 
   if (bed->want_got_plt)
@@ -618,7 +618,7 @@ _bfd_cr16_elf_create_got_section (bfd * abfd, struct bfd_link_info * info)
       s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
       htab->sgotplt = s;
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s, ptralign))
+	  || !bfd_set_section_alignment (s, ptralign))
 	return FALSE;
     }
 
@@ -1444,7 +1444,7 @@ elf32_cr16_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 	      name = (bfd_elf_string_from_elf_section
 		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  switch (r)
@@ -2241,7 +2241,7 @@ _bfd_cr16_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 					  flags | SEC_READONLY);
   htab->srelplt = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, ptralign))
+      || !bfd_set_section_alignment (s, ptralign))
     return FALSE;
 
   if (! _bfd_cr16_elf_create_got_section (abfd, info))
@@ -2278,7 +2278,7 @@ _bfd_cr16_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 						   ? ".rela.bss" : ".rel.bss"),
 						  flags | SEC_READONLY);
 	  if (s == NULL
-	      || ! bfd_set_section_alignment (abfd, s, ptralign))
+	      || !bfd_set_section_alignment (s, ptralign))
 	    return FALSE;
 	}
     }
@@ -2463,7 +2463,7 @@ _bfd_cr16_elf_size_dynamic_sections (bfd * output_bfd,
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (strcmp (name, ".plt") == 0)
 	{
@@ -2489,8 +2489,7 @@ _bfd_cr16_elf_size_dynamic_sections (bfd * output_bfd,
 		     entry.  The entries in the .rela.plt section
 		     really apply to the .got section, which we
 		     created ourselves and so know is not readonly.  */
-		  outname = bfd_get_section_name (output_bfd,
-						  s->output_section);
+		  outname = bfd_section_name (s->output_section);
 		  target = bfd_get_section_by_name (output_bfd, outname + 5);
 		  if (target != NULL
 		      && (target->flags & SEC_READONLY) != 0
diff --git a/bfd/elf32-cr16c.c b/bfd/elf32-cr16c.c
index 9a2fda0ea8..35bacbbc6f 100644
--- a/bfd/elf32-cr16c.c
+++ b/bfd/elf32-cr16c.c
@@ -763,7 +763,7 @@ elf32_cr16c_relocate_section (bfd *output_bfd,
 	      name = (bfd_elf_string_from_elf_section
 		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  switch (r)
@@ -827,9 +827,9 @@ elf32_cr16c_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
 				      asection *sec,
 				      int *retval)
 {
-  if (strcmp (bfd_get_section_name (abfd, sec), ".fcommon") == 0)
+  if (strcmp (bfd_section_name (sec), ".fcommon") == 0)
     *retval = SHN_CR16C_FCOMMON;
-  else if (strcmp (bfd_get_section_name (abfd, sec), ".ncommon") == 0)
+  else if (strcmp (bfd_section_name (sec), ".ncommon") == 0)
     *retval = SHN_CR16C_NCOMMON;
   else
     return FALSE;
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index 5d230562a5..9c07b6d7b9 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -1044,7 +1044,7 @@ cris_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 	  symname = (bfd_elf_string_from_elf_section
 		     (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	  if (symname == NULL)
-	    symname = bfd_section_name (input_bfd, sec);
+	    symname = bfd_section_name (sec);
 	}
       else
 	{
@@ -2480,7 +2480,7 @@ cris_elf_plt_sym_val (bfd_vma i ATTRIBUTE_UNUSED, const asection *plt,
   if ((got = bfd_get_section_by_name (abfd, ".got")) == NULL)
     return (bfd_vma) -1;
 
-  plt_sec_size =  bfd_section_size (plt->owner, plt);
+  plt_sec_size =  bfd_section_size (plt);
   plt_entry_size
     = (bfd_get_mach (abfd) == bfd_mach_cris_v32
        ? PLT_ENTRY_SIZE_V32 : PLT_ENTRY_SIZE);
@@ -3580,7 +3580,7 @@ elf_cris_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (strcmp (name, ".plt") == 0)
 	{
diff --git a/bfd/elf32-crx.c b/bfd/elf32-crx.c
index 306a0e4f2b..6d15b2b10b 100644
--- a/bfd/elf32-crx.c
+++ b/bfd/elf32-crx.c
@@ -905,7 +905,7 @@ elf32_crx_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 	      name = (bfd_elf_string_from_elf_section
 		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  switch (r)
diff --git a/bfd/elf32-csky.c b/bfd/elf32-csky.c
index b3451b60b2..16897b3930 100644
--- a/bfd/elf32-csky.c
+++ b/bfd/elf32-csky.c
@@ -2092,7 +2092,7 @@ csky_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 	  if (htab->elf.hplt != NULL)
 	    strip_section = FALSE;
 	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rel") )
+      else if (CONST_STRNEQ (bfd_section_name (s), ".rel") )
 	{
 	  if (s->size != 0 )
 	    relocs = TRUE;
@@ -5070,7 +5070,7 @@ csky_elf_relocate_section (bfd *                  output_bfd,
 		  if (name == NULL)
 		    break;
 		  if (*name == '\0')
-		    name = bfd_section_name (input_bfd, sec);
+		    name = bfd_section_name (sec);
 		}
 	      (*info->callbacks->reloc_overflow)
 		(info,
diff --git a/bfd/elf32-d10v.c b/bfd/elf32-d10v.c
index a03ce63286..bd07ad68b2 100644
--- a/bfd/elf32-d10v.c
+++ b/bfd/elf32-d10v.c
@@ -482,7 +482,7 @@ elf32_d10v_relocate_section (bfd *output_bfd,
 	  name = (bfd_elf_string_from_elf_section
 		  (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	  if (name == NULL || *name == '\0')
-	    name = bfd_section_name (input_bfd, sec);
+	    name = bfd_section_name (sec);
 	}
 
       r = _bfd_final_link_relocate (howto, input_bfd, input_section,
diff --git a/bfd/elf32-epiphany.c b/bfd/elf32-epiphany.c
index 4bd417d6f5..c45f0b3504 100644
--- a/bfd/elf32-epiphany.c
+++ b/bfd/elf32-epiphany.c
@@ -518,7 +518,7 @@ epiphany_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
diff --git a/bfd/elf32-fr30.c b/bfd/elf32-fr30.c
index 6a13767c7a..0d299c64b6 100644
--- a/bfd/elf32-fr30.c
+++ b/bfd/elf32-fr30.c
@@ -549,7 +549,7 @@ fr30_elf_relocate_section (bfd *output_bfd,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c
index 8c6a97dea2..7770687f55 100644
--- a/bfd/elf32-frv.c
+++ b/bfd/elf32-frv.c
@@ -2736,7 +2736,7 @@ elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
 	  if (name == NULL || name[0] == 0)
-	    name = bfd_section_name (input_bfd, sec);
+	    name = bfd_section_name (sec);
 	}
       else
 	{
@@ -3566,8 +3566,7 @@ elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 		    && (!h || FRVFDPIC_FUNCDESC_LOCAL (info, h)))
 		  {
 		    addend += frvfdpic_got_section (info)->output_section->vma;
-		    if ((bfd_get_section_flags (output_bfd,
-						input_section->output_section)
+		    if ((bfd_section_flags (input_section->output_section)
 			 & (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
 		      {
 			bfd_vma offset;
@@ -3597,8 +3596,7 @@ elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 						 picrel);
 		      }
 		  }
-		else if ((bfd_get_section_flags (output_bfd,
-						 input_section->output_section)
+		else if ((bfd_section_flags (input_section->output_section)
 			  & (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
 		  {
 		    bfd_vma offset;
@@ -3691,8 +3689,7 @@ elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 		if (osec)
 		  addend += osec->output_section->vma;
 		if (IS_FDPIC (input_bfd)
-		    && (bfd_get_section_flags (output_bfd,
-					       input_section->output_section)
+		    && (bfd_section_flags (input_section->output_section)
 			& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
 		  {
 		    if (_frvfdpic_osec_readonly_p (output_bfd,
@@ -3732,8 +3729,7 @@ elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 	      }
 	    else
 	      {
-		if ((bfd_get_section_flags (output_bfd,
-					    input_section->output_section)
+		if ((bfd_section_flags (input_section->output_section)
 		     & (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
 		  {
 		    bfd_vma offset;
@@ -4192,7 +4188,7 @@ _frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   elf_hash_table (info)->sgot = s;
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, ptralign))
+      || !bfd_set_section_alignment (s, ptralign))
     return FALSE;
 
   if (bed->want_got_sym)
@@ -4230,14 +4226,14 @@ _frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
 					      (flags | SEC_READONLY));
       elf_hash_table (info)->srelgot = s;
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s, 2))
+	  || !bfd_set_section_alignment (s, 2))
 	return FALSE;
 
       /* Machine-specific.  */
       s = bfd_make_section_anyway_with_flags (abfd, ".rofixup",
 					      (flags | SEC_READONLY));
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s, 2))
+	  || !bfd_set_section_alignment (s, 2))
 	return FALSE;
 
       frvfdpic_gotfixup_section (info) = s;
@@ -4285,7 +4281,7 @@ _frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
 
   s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+      || !bfd_set_section_alignment (s, bed->plt_alignment))
     return FALSE;
   /* FRV-specific: remember it.  */
   frvfdpic_plt_section (info) = s;
@@ -4305,7 +4301,7 @@ _frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_anyway_with_flags (abfd, ".rel.plt",
 					  flags | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   /* FRV-specific: remember it.  */
   frvfdpic_pltrel_section (info) = s;
@@ -4373,7 +4369,7 @@ elf32_frvfdpic_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 						   ? ".rela.bss" : ".rel.bss"),
 						  flags | SEC_READONLY);
 	  if (s == NULL
-	      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+	      || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	    return FALSE;
 	}
     }
@@ -6137,7 +6133,7 @@ elf32_frv_check_relocs (bfd *abfd,
 
 	case R_FRV_FUNCDESC_VALUE:
 	  picrel->relocsfdv++;
-	  if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+	  if (bfd_section_flags (sec) & SEC_ALLOC)
 	    picrel->relocs32--;
 	  /* Fall through.  */
 
@@ -6146,7 +6142,7 @@ elf32_frv_check_relocs (bfd *abfd,
 	    break;
 
 	  picrel->sym = 1;
-	  if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+	  if (bfd_section_flags (sec) & SEC_ALLOC)
 	    picrel->relocs32++;
 	  break;
 
diff --git a/bfd/elf32-ft32.c b/bfd/elf32-ft32.c
index d67372429d..b8e69e5a24 100644
--- a/bfd/elf32-ft32.c
+++ b/bfd/elf32-ft32.c
@@ -389,7 +389,7 @@ ft32_elf_relocate_section (bfd *output_bfd,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
diff --git a/bfd/elf32-h8300.c b/bfd/elf32-h8300.c
index a2f06d5a92..ba7c8b2062 100644
--- a/bfd/elf32-h8300.c
+++ b/bfd/elf32-h8300.c
@@ -502,7 +502,7 @@ elf32_h8_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 	      name = (bfd_elf_string_from_elf_section
 		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  switch (r)
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index a61adbc3c8..f065449b15 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -2270,12 +2270,12 @@ elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 	      /* Make space for the plt stub at the end of the .plt
 		 section.  We want this stub right at the end, up
 		 against the .got section.  */
-	      int gotalign = bfd_section_alignment (dynobj, htab->etab.sgot);
-	      int pltalign = bfd_section_alignment (dynobj, sec);
+	      int gotalign = bfd_section_alignment (htab->etab.sgot);
+	      int pltalign = bfd_section_alignment (sec);
 	      bfd_size_type mask;
 
 	      if (gotalign > pltalign)
-		(void) bfd_set_section_alignment (dynobj, sec, gotalign);
+		bfd_set_section_alignment (sec, gotalign);
 	      mask = ((bfd_size_type) 1 << gotalign) - 1;
 	      sec->size = (sec->size + sizeof (plt_stub) + mask) & ~mask;
 	    }
@@ -2284,7 +2284,7 @@ elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 	       || sec == htab->etab.sdynbss
 	       || sec == htab->etab.sdynrelro)
 	;
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, sec), ".rela"))
+      else if (CONST_STRNEQ (bfd_section_name (sec), ".rela"))
 	{
 	  if (sec->size != 0)
 	    {
@@ -4151,7 +4151,7 @@ elf32_hppa_relocate_section (bfd *output_bfd,
 		    if (sym_name == NULL)
 		      return FALSE;
 		    if (*sym_name == '\0')
-		      sym_name = bfd_section_name (input_bfd, sym_sec);
+		      sym_name = bfd_section_name (sym_sec);
 		    _bfd_error_handler
 		      (_("%pB:%s has both normal and TLS relocs"),
 		       input_bfd, sym_name);
@@ -4201,7 +4201,7 @@ elf32_hppa_relocate_section (bfd *output_bfd,
 	  if (sym_name == NULL)
 	    return FALSE;
 	  if (*sym_name == '\0')
-	    sym_name = bfd_section_name (input_bfd, sym_sec);
+	    sym_name = bfd_section_name (sym_sec);
 	}
 
       howto = elf_hppa_howto_table + r_type;
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index d7a61d7a48..9248ef5a41 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -1948,7 +1948,7 @@ elf_i386_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
 {
   const char *name;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   /* This is an ugly, but unfortunately necessary hack that is
      needed when producing EFI binaries on x86. It tells
@@ -3429,7 +3429,7 @@ check_relocation_error:
 	      if (name == NULL)
 		return FALSE;
 	      if (*name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  if (r == bfd_reloc_overflow)
diff --git a/bfd/elf32-ip2k.c b/bfd/elf32-ip2k.c
index 43e7be63da..6e5131ff98 100644
--- a/bfd/elf32-ip2k.c
+++ b/bfd/elf32-ip2k.c
@@ -1435,7 +1435,7 @@ ip2k_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
diff --git a/bfd/elf32-iq2000.c b/bfd/elf32-iq2000.c
index 6e47027292..e95f1a56ea 100644
--- a/bfd/elf32-iq2000.c
+++ b/bfd/elf32-iq2000.c
@@ -625,7 +625,7 @@ iq2000_elf_relocate_section (bfd *		     output_bfd ATTRIBUTE_UNUSED,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, osec) : name;
+	  name = name == NULL ? bfd_section_name (osec) : name;
 	}
       else
 	{
diff --git a/bfd/elf32-lm32.c b/bfd/elf32-lm32.c
index 5233dbbb67..0601f1454b 100644
--- a/bfd/elf32-lm32.c
+++ b/bfd/elf32-lm32.c
@@ -195,8 +195,7 @@ create_rofixup_section (bfd *dynobj, struct bfd_link_info *info)
 					   | SEC_LINKER_CREATED
 					   | SEC_READONLY));
   if (lm32fdpic_fixup32_section (info) == NULL
-      || ! bfd_set_section_alignment (dynobj,
-				      lm32fdpic_fixup32_section (info), 2))
+      || !bfd_set_section_alignment (lm32fdpic_fixup32_section (info), 2))
     return FALSE;
 
   return TRUE;
@@ -821,7 +820,7 @@ lm32_elf_relocate_section (bfd *output_bfd,
 	  relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel);
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
@@ -1036,7 +1035,7 @@ lm32_elf_relocate_section (bfd *output_bfd,
 		  if ((!h) || (h && h->root.type != bfd_link_hash_undefweak))
 		    {
 		      /* Only create .rofixup entries for relocs in loadable sections.  */
-		      if ((bfd_get_section_flags (output_bfd, input_section->output_section)
+		      if ((bfd_section_flags (input_section->output_section)
 			  & (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
 
 			{
@@ -1090,7 +1089,7 @@ lm32_elf_relocate_section (bfd *output_bfd,
 	      name = (bfd_elf_string_from_elf_section
 		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  switch (r)
@@ -2120,7 +2119,7 @@ lm32_elf_size_dynamic_sections (bfd *output_bfd,
 	  /* Strip this section if we don't need it; see the
 	     comment below.  */
 	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+      else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
 	{
 	  if (s->size != 0 && s != htab->root.srelplt)
 	    relocs = TRUE;
@@ -2255,7 +2254,7 @@ lm32_elf_size_dynamic_sections (bfd *output_bfd,
 			  /* Don't generate entries for weak symbols.  */
 			  if (!h || (h && h->root.type != bfd_link_hash_undefweak))
 			    {
-			      if (!discarded_section (s) && !((bfd_get_section_flags (ibfd, s) & SEC_ALLOC) == 0))
+			      if (!discarded_section (s) && !((bfd_section_flags (s) & SEC_ALLOC) == 0))
 				{
 				  switch (ELF32_R_TYPE (internal_relocs->r_info))
 				    {
@@ -2277,7 +2276,7 @@ lm32_elf_size_dynamic_sections (bfd *output_bfd,
 				  if (!strcmp (current->name, h->root.root.string))
 				    break;
 				}
-			      if (!current && !discarded_section (s) && (bfd_get_section_flags (ibfd, s) & SEC_ALLOC))
+			      if (!current && !discarded_section (s) && (bfd_section_flags (s) & SEC_ALLOC))
 				{
 				  /* Will this have an entry in the GOT.  */
 				  if (ELF32_R_TYPE (internal_relocs->r_info) == R_LM32_16_GOT)
@@ -2377,7 +2376,7 @@ lm32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
   htab->root.splt = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+      || !bfd_set_section_alignment (s, bed->plt_alignment))
     return FALSE;
 
   if (bed->want_plt_sym)
@@ -2408,7 +2407,7 @@ lm32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 					  flags | SEC_READONLY);
   htab->root.srelplt = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, ptralign))
+      || !bfd_set_section_alignment (s, ptralign))
     return FALSE;
 
   if (htab->root.sgot == NULL
@@ -2447,7 +2446,7 @@ lm32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 						  flags | SEC_READONLY);
 	  htab->srelbss = s;
 	  if (s == NULL
-	      || ! bfd_set_section_alignment (abfd, s, ptralign))
+	      || !bfd_set_section_alignment (s, ptralign))
 	    return FALSE;
 	}
     }
diff --git a/bfd/elf32-m32c.c b/bfd/elf32-m32c.c
index b12c788c0d..e3f03cc045 100644
--- a/bfd/elf32-m32c.c
+++ b/bfd/elf32-m32c.c
@@ -450,7 +450,7 @@ m32c_elf_relocate_section
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (sym->st_name == 0) ? bfd_section_name (input_bfd, sec) : name;
+	  name = sym->st_name == 0 ? bfd_section_name (sec) : name;
 	}
       else
 	{
@@ -709,7 +709,7 @@ m32c_elf_check_relocs
 							 flags);
 	      elf_hash_table (info)->splt = splt;
 	      if (splt == NULL
-		  || ! bfd_set_section_alignment (dynobj, splt, 1))
+		  || !bfd_set_section_alignment (splt, 1))
 		return FALSE;
 	    }
 
diff --git a/bfd/elf32-m32r.c b/bfd/elf32-m32r.c
index 2f182e782d..edd04b91d9 100644
--- a/bfd/elf32-m32r.c
+++ b/bfd/elf32-m32r.c
@@ -1322,7 +1322,7 @@ _bfd_m32r_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
 					asection *sec,
 					int *retval)
 {
-  if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+  if (strcmp (bfd_section_name (sec), ".scommon") == 0)
     {
       *retval = SHN_M32R_SCOMMON;
       return TRUE;
@@ -1407,7 +1407,7 @@ m32r_elf_add_symbol_hook (bfd *abfd,
 						  flags);
 	  if (s == NULL)
 	    return FALSE;
-	  if (! bfd_set_section_alignment (abfd, s, 2))
+	  if (!bfd_set_section_alignment (s, 2))
 	    return FALSE;
 	}
 
@@ -1623,7 +1623,7 @@ m32r_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
   htab->root.splt = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+      || !bfd_set_section_alignment (s, bed->plt_alignment))
     return FALSE;
 
   if (bed->want_plt_sym)
@@ -1654,7 +1654,7 @@ m32r_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 					  flags | SEC_READONLY);
   htab->root.srelplt = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, ptralign))
+      || !bfd_set_section_alignment (s, ptralign))
     return FALSE;
 
   if (htab->root.sgot == NULL
@@ -1693,7 +1693,7 @@ m32r_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 						  flags | SEC_READONLY);
 	  htab->srelbss = s;
 	  if (s == NULL
-	      || ! bfd_set_section_alignment (abfd, s, ptralign))
+	      || !bfd_set_section_alignment (s, ptralign))
 	    return FALSE;
 	}
     }
@@ -2234,7 +2234,7 @@ m32r_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 	  /* Strip this section if we don't need it; see the
 	     comment below.  */
 	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+      else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
 	{
 	  if (s->size != 0 && s != htab->root.srelplt)
 	    relocs = TRUE;
@@ -2954,7 +2954,7 @@ m32r_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 		const char *name;
 
 		BFD_ASSERT (sec != NULL);
-		name = bfd_get_section_name (sec->owner, sec);
+		name = bfd_section_name (sec);
 
 		if (   strcmp (name, ".sdata") == 0
 		    || strcmp (name, ".sbss") == 0
@@ -3022,7 +3022,7 @@ m32r_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 	      name = (bfd_elf_string_from_elf_section
 		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  if (errmsg != NULL)
diff --git a/bfd/elf32-m68hc1x.c b/bfd/elf32-m68hc1x.c
index 6a996789b5..8739ca86c1 100644
--- a/bfd/elf32-m68hc1x.c
+++ b/bfd/elf32-m68hc1x.c
@@ -267,7 +267,7 @@ elf32_m68hc11_setup_section_lists (bfd *output_bfd, struct bfd_link_info *info)
 	   section != NULL;
 	   section = section->next)
 	{
-	  const char* name = bfd_get_section_name (input_bfd, section);
+	  const char *name = bfd_section_name (section);
 
 	  if (!strcmp (name, ".tramp"))
 	    htab->tramp_section = section;
@@ -1014,7 +1014,7 @@ elf32_m68hc11_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 	  name = (bfd_elf_string_from_elf_section
 		  (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	  if (name == NULL || *name == '\0')
-	    name = bfd_section_name (input_bfd, sec);
+	    name = bfd_section_name (sec);
 	}
 
       if (is_far && ELF32_R_TYPE (rel->r_info) == R_M68HC11_16)
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index 177be5d1d3..559578d818 100644
--- a/bfd/elf32-m68k.c
+++ b/bfd/elf32-m68k.c
@@ -3104,7 +3104,7 @@ elf_m68k_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (strcmp (name, ".plt") == 0)
 	{
@@ -3938,7 +3938,7 @@ elf_m68k_relocate_section (bfd *output_bfd,
 		  name = (bfd_elf_string_from_elf_section
 			  (input_bfd, symtab_hdr->sh_link, sym->st_name));
 		  if (name == NULL || *name == '\0')
-		    name = bfd_section_name (input_bfd, sec);
+		    name = bfd_section_name (sec);
 		}
 
 	      _bfd_error_handler
@@ -3973,7 +3973,7 @@ elf_m68k_relocate_section (bfd *output_bfd,
 	      if (name == NULL)
 		return FALSE;
 	      if (*name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  if (r == bfd_reloc_overflow)
diff --git a/bfd/elf32-mcore.c b/bfd/elf32-mcore.c
index 7bca458508..3a58ff3038 100644
--- a/bfd/elf32-mcore.c
+++ b/bfd/elf32-mcore.c
@@ -536,7 +536,7 @@ mcore_elf_relocate_section (bfd * output_bfd,
 		      break;
 
 		    if (* name == '\0')
-		      name = bfd_section_name (input_bfd, sec);
+		      name = bfd_section_name (sec);
 		  }
 
 		(*info->callbacks->reloc_overflow)
diff --git a/bfd/elf32-mep.c b/bfd/elf32-mep.c
index 414e6f394b..f46e3bcbe3 100644
--- a/bfd/elf32-mep.c
+++ b/bfd/elf32-mep.c
@@ -477,7 +477,7 @@ mep_elf_relocate_section
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c
index f68f9dca6f..e3df8c5684 100644
--- a/bfd/elf32-metag.c
+++ b/bfd/elf32-metag.c
@@ -1519,7 +1519,7 @@ elf_metag_relocate_section (bfd *output_bfd,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
@@ -2934,7 +2934,7 @@ elf_metag_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 	  /* Strip this section if we don't need it; see the
 	     comment below.  */
 	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+      else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
 	{
 	  if (s->size != 0 && s != htab->etab.srelplt)
 	    relocs = TRUE;
diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
index 8d1700bf0f..c187d83ee0 100644
--- a/bfd/elf32-microblaze.c
+++ b/bfd/elf32-microblaze.c
@@ -1071,7 +1071,7 @@ microblaze_elf_relocate_section (bfd *output_bfd,
 		/* Only relocate if the symbol is defined.  */
 		if (sec)
 		  {
-		    name = bfd_get_section_name (sec->owner, sec);
+		    name = bfd_section_name (sec);
 
 		    if (strcmp (name, ".sdata2") == 0
 			|| strcmp (name, ".sbss2") == 0)
@@ -1119,7 +1119,7 @@ microblaze_elf_relocate_section (bfd *output_bfd,
 		/* Only relocate if the symbol is defined.  */
 		if (sec)
 		  {
-		    name = bfd_get_section_name (sec->owner, sec);
+		    name = bfd_section_name (sec);
 
 		    if (strcmp (name, ".sdata") == 0
 			|| strcmp (name, ".sbss") == 0)
@@ -1608,7 +1608,7 @@ microblaze_elf_relocate_section (bfd *output_bfd,
 	      name = (bfd_elf_string_from_elf_section
 		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  if (errmsg != NULL)
@@ -2766,7 +2766,7 @@ microblaze_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
   s->size = BFD_ALIGN (s->size, (bfd_size_type) (1 << power_of_two));
   if (power_of_two > s->alignment_power)
     {
-      if (!bfd_set_section_alignment (s->owner, s, power_of_two))
+      if (!bfd_set_section_alignment (s, power_of_two))
 	return FALSE;
     }
 
@@ -3115,7 +3115,7 @@ microblaze_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (strncmp (name, ".rela", 5) == 0)
 	{
@@ -3501,7 +3501,7 @@ microblaze_elf_add_symbol_hook (bfd *abfd,
 	 put into .sbss.  */
       *secp = bfd_make_section_old_way (abfd, ".sbss");
       if (*secp == NULL
-	  || ! bfd_set_section_flags (abfd, *secp, SEC_IS_COMMON))
+	  || !bfd_set_section_flags (*secp, SEC_IS_COMMON))
 	return FALSE;
 
       *valp = sym->st_size;
diff --git a/bfd/elf32-moxie.c b/bfd/elf32-moxie.c
index 9834d8978f..9b6048f0c0 100644
--- a/bfd/elf32-moxie.c
+++ b/bfd/elf32-moxie.c
@@ -243,7 +243,7 @@ moxie_elf_relocate_section (bfd *output_bfd,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
diff --git a/bfd/elf32-msp430.c b/bfd/elf32-msp430.c
index fe5fd8ff8c..4dcc8d480d 100644
--- a/bfd/elf32-msp430.c
+++ b/bfd/elf32-msp430.c
@@ -1314,7 +1314,7 @@ elf32_msp430_relocate_section (bfd * output_bfd ATTRIBUTE_UNUSED,
 
 	  name = bfd_elf_string_from_elf_section
 	      (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL || * name == 0) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL || *name == 0 ? bfd_section_name (sec) : name;
 	}
       else
 	{
@@ -1691,7 +1691,7 @@ msp430_elf_relax_delete_bytes (bfd * abfd, asection * sec, bfd_vma addr,
 
       name = bfd_elf_string_from_elf_section
 	(abfd, symtab_hdr->sh_link, isym->st_name);
-      name = (name == NULL || * name == 0) ? bfd_section_name (abfd, sec) : name;
+      name = name == NULL || *name == 0 ? bfd_section_name (sec) : name;
 
       if (isym->st_shndx != sec_shndx)
 	continue;
diff --git a/bfd/elf32-mt.c b/bfd/elf32-mt.c
index ca6aa13f19..d120d05482 100644
--- a/bfd/elf32-mt.c
+++ b/bfd/elf32-mt.c
@@ -346,7 +346,7 @@ mt_elf_relocate_section
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
diff --git a/bfd/elf32-nds32.c b/bfd/elf32-nds32.c
index 27ffea2e69..013355a490 100644
--- a/bfd/elf32-nds32.c
+++ b/bfd/elf32-nds32.c
@@ -3723,11 +3723,11 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
   /* _bfd_elf_create_got_section will create it for us.  */
   ehtab->srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
   if (ehtab->srelgot == NULL
-      || !bfd_set_section_flags (dynobj, ehtab->srelgot,
+      || !bfd_set_section_flags (ehtab->srelgot,
 				 (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS
 				  | SEC_IN_MEMORY | SEC_LINKER_CREATED
 				  | SEC_READONLY))
-      || !bfd_set_section_alignment (dynobj, ehtab->srelgot, 2))
+      || !bfd_set_section_alignment (ehtab->srelgot, 2))
     return FALSE;
 
   return TRUE;
@@ -3769,8 +3769,8 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section (abfd, ".plt");
   ehtab->splt = s;
   if (s == NULL
-      || !bfd_set_section_flags (abfd, s, pltflags)
-      || !bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+      || !bfd_set_section_flags (s, pltflags)
+      || !bfd_set_section_alignment (s, bed->plt_alignment))
     return FALSE;
 
   if (bed->want_plt_sym)
@@ -3798,8 +3798,8 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 			bed->default_use_rela_p ? ".rela.plt" : ".rel.plt");
   ehtab->srelplt = s;
   if (s == NULL
-      || !bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
-      || !bfd_set_section_alignment (abfd, s, ptralign))
+      || !bfd_set_section_flags (s, flags | SEC_READONLY)
+      || !bfd_set_section_alignment (s, ptralign))
     return FALSE;
 
   if (ehtab->sgot == NULL && !create_got_section (abfd, info))
@@ -3807,11 +3807,11 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 
   for (sec = abfd->sections; sec; sec = sec->next)
     {
-      secflags = bfd_get_section_flags (abfd, sec);
+      secflags = bfd_section_flags (sec);
       if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
 	  || ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
 	continue;
-      secname = bfd_get_section_name (abfd, sec);
+      secname = bfd_section_name (sec);
       relname = (char *) bfd_malloc ((bfd_size_type) strlen (secname) + 6);
       strcpy (relname, ".rela");
       strcat (relname, secname);
@@ -3819,8 +3819,8 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 	continue;
       s = bfd_make_section (abfd, relname);
       if (s == NULL
-	  || !bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
-	  || !bfd_set_section_alignment (abfd, s, ptralign))
+	  || !bfd_set_section_flags (s, flags | SEC_READONLY)
+	  || !bfd_set_section_alignment (s, ptralign))
 	return FALSE;
     }
 
@@ -3835,7 +3835,7 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section (abfd, ".dynbss");
       htab->sdynbss = s;
       if (s == NULL
-	  || !bfd_set_section_flags (abfd, s, SEC_ALLOC | SEC_LINKER_CREATED))
+	  || !bfd_set_section_flags (s, SEC_ALLOC | SEC_LINKER_CREATED))
 	return FALSE;
       /* The .rel[a].bss section holds copy relocs.  This section is not
 	 normally needed.  We need to create it here, though, so that the
@@ -3854,8 +3854,8 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 				       ? ".rela.bss" : ".rel.bss"));
 	  htab->srelbss = s;
 	  if (s == NULL
-	      || !bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
-	      || !bfd_set_section_alignment (abfd, s, ptralign))
+	      || !bfd_set_section_flags (s, flags | SEC_READONLY)
+	      || !bfd_set_section_alignment (s, ptralign))
 	    return FALSE;
 	}
     }
@@ -4065,9 +4065,9 @@ nds32_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
 
   /* Apply the required alignment.  */
   s->size = BFD_ALIGN (s->size, (bfd_size_type) (1 << power_of_two));
-  if (power_of_two > bfd_get_section_alignment (dynobj, s))
+  if (power_of_two > bfd_section_alignment (s))
     {
-      if (!bfd_set_section_alignment (dynobj, s, power_of_two))
+      if (!bfd_set_section_alignment (s, power_of_two))
 	return FALSE;
     }
 
@@ -4525,7 +4525,7 @@ nds32_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 	{
 	  got_size += s->size;
 	}
-      else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
+      else if (strncmp (bfd_section_name (s), ".rela", 5) == 0)
 	{
 	  if (s->size != 0 && s != elf_hash_table (info)->srelplt)
 	    relocs = TRUE;
@@ -5571,8 +5571,7 @@ nds32_elf_relocate_section (bfd *		   output_bfd ATTRIBUTE_UNUSED,
 		    return FALSE;
 
 		  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
-			      && strcmp (bfd_get_section_name (input_bfd,
-							       input_section),
+			      && strcmp (bfd_section_name (input_section),
 					 name + 5) == 0);
 
 		  sreloc = bfd_get_section_by_name (dynobj, name);
@@ -6166,7 +6165,7 @@ check_reloc:
 	      name = bfd_elf_string_from_elf_section
 		      (input_bfd, symtab_hdr->sh_link, sym->st_name);
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  if (errmsg != NULL)
@@ -7390,7 +7389,7 @@ nds32_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 		    return FALSE;
 
 		  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
-			      && strcmp (bfd_get_section_name (abfd, sec),
+			      && strcmp (bfd_section_name (sec),
 					 name + 5) == 0);
 
 		  sreloc = bfd_get_section_by_name (dynobj, name);
@@ -7404,8 +7403,8 @@ nds32_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 		      if ((sec->flags & SEC_ALLOC) != 0)
 			flags |= SEC_ALLOC | SEC_LOAD;
 		      if (sreloc == NULL
-			  || !bfd_set_section_flags (dynobj, sreloc, flags)
-			  || !bfd_set_section_alignment (dynobj, sreloc, 2))
+			  || !bfd_set_section_flags (sreloc, flags)
+			  || !bfd_set_section_alignment (sreloc, 2))
 			return FALSE;
 
 		      elf_section_type (sreloc) = SHT_RELA;
diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c
index 5d787eb2f4..698e4e5c2d 100644
--- a/bfd/elf32-nios2.c
+++ b/bfd/elf32-nios2.c
@@ -3846,7 +3846,7 @@ nios2_elf32_relocate_section (bfd *output_bfd,
 				  (input_bfd, symtab_hdr->sh_link,
 				   sym->st_name));
 			  if (name == NULL || *name == '\0')
-			    name = bfd_section_name (input_bfd, sec);
+			    name = bfd_section_name (sec);
 			}
 		      /* xgettext:c-format */
 		      format = _("unable to reach %s (at %#" PRIx64 ") from "
@@ -4484,7 +4484,7 @@ nios2_elf32_relocate_section (bfd *output_bfd,
 						      symtab_hdr->sh_link,
 						      sym->st_name);
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  switch (r)
@@ -4554,7 +4554,7 @@ static bfd_boolean
 nios2_elf32_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
 			   Elf_Internal_Shdr *hdr, asection *sec)
 {
-  register const char *name = bfd_get_section_name (abfd, sec);
+  const char *name = bfd_section_name (sec);
 
   if ((sec->flags & SEC_SMALL_DATA)
       || strcmp (name, ".sdata") == 0
@@ -4580,7 +4580,7 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
 
   /* In order for the two loads in .PLTresolve to share the same %hiadj,
      _GLOBAL_OFFSET_TABLE_ must be aligned to a 16-byte boundary.  */
-  if (!bfd_set_section_alignment (dynobj, htab->root.sgotplt, 4))
+  if (!bfd_set_section_alignment (htab->root.sgotplt, 4))
     return FALSE;
 
   /* The Nios II ABI specifies that GOT-relative relocations are relative
@@ -4616,7 +4616,7 @@ nios2_elf32_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
      same %hiadj, the start of the PLT (as well as the GOT) must be aligned
      to a 16-byte boundary.  This is because the addresses for these loads
      include the -(.plt+4) PIC correction.  */
-  return bfd_set_section_alignment (dynobj, htab->root.splt, 4);
+  return bfd_set_section_alignment (htab->root.splt, 4);
 }
 
 /* Implement elf_backend_copy_indirect_symbol:
@@ -5429,8 +5429,8 @@ nios2_elf32_adjust_dynamic_symbol (struct bfd_link_info *info,
 
   /* Align dynbss.  */
   s->size = BFD_ALIGN (s->size, (bfd_size_type)1 << align2);
-  if (align2 > bfd_get_section_alignment (dynobj, s)
-      && !bfd_set_section_alignment (dynobj, s, align2))
+  if (align2 > bfd_section_alignment (s)
+      && !bfd_set_section_alignment (s, align2))
     return FALSE;
 
   /* Define the symbol as being at this point in the section.  */
@@ -5853,7 +5853,7 @@ nios2_elf32_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (CONST_STRNEQ (name, ".rela"))
 	{
diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c
index 0d1336ceac..4cf0b7cc36 100644
--- a/bfd/elf32-or1k.c
+++ b/bfd/elf32-or1k.c
@@ -1303,7 +1303,7 @@ or1k_elf_relocate_section (bfd *output_bfd,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
@@ -2064,8 +2064,7 @@ or1k_elf_check_relocs (bfd *abfd,
 		      return FALSE;
 
 		    if (strncmp (name, ".rela", 5) != 0
-			|| strcmp (bfd_get_section_name (abfd, sec),
-				   name + 5) != 0)
+			|| strcmp (bfd_section_name (sec), name + 5) != 0)
 		      {
 			_bfd_error_handler
 			  /* xgettext:c-format */
@@ -2996,7 +2995,7 @@ or1k_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 	  /* Strip this section if we don't need it; see the
 	     comment below.  */
 	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+      else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
 	{
 	  if (s->size != 0 && s != htab->root.srelplt)
 	    relocs = TRUE;
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index 5e5834a70c..9765a33541 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -1329,14 +1329,14 @@ ppc_elf_section_from_shdr (bfd *abfd,
     return FALSE;
 
   newsect = hdr->bfd_section;
-  flags = bfd_get_section_flags (abfd, newsect);
+  flags = bfd_section_flags (newsect);
   if (hdr->sh_flags & SHF_EXCLUDE)
     flags |= SEC_EXCLUDE;
 
   if (hdr->sh_type == SHT_ORDERED)
     flags |= SEC_SORT_ENTRIES;
 
-  bfd_set_section_flags (abfd, newsect, flags);
+  bfd_set_section_flags (newsect, flags);
   return TRUE;
 }
 
@@ -1674,7 +1674,7 @@ ppc_elf_begin_write_processing (bfd *abfd, struct bfd_link_info *link_info)
       /* Set the output section size, if it exists.  */
       asec = bfd_get_section_by_name (abfd, APUINFO_SECTION_NAME);
 
-      if (asec && ! bfd_set_section_size (abfd, asec, 20 + num_entries * 4))
+      if (asec && !bfd_set_section_size (asec, 20 + num_entries * 4))
 	{
 	  ibfd = abfd;
 	  /* xgettext:c-format */
@@ -2337,7 +2337,7 @@ ppc_elf_create_got (bfd *abfd, struct bfd_link_info *info)
 	 executable.  */
       flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS
 			| SEC_IN_MEMORY | SEC_LINKER_CREATED);
-      if (!bfd_set_section_flags (abfd, htab->elf.sgot, flags))
+      if (!bfd_set_section_flags (htab->elf.sgot, flags))
 	return FALSE;
     }
 
@@ -2390,7 +2390,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
   if (p2align < htab->params->plt_stub_align)
     p2align = htab->params->plt_stub_align;
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, p2align))
+      || !bfd_set_section_alignment (s, p2align))
     return FALSE;
 
   if (!info->no_ld_generated_unwind_info)
@@ -2400,7 +2400,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section_anyway_with_flags (abfd, ".eh_frame", flags);
       htab->glink_eh_frame = s;
       if (s == NULL
-	  || !bfd_set_section_alignment (abfd, s, 2))
+	  || !bfd_set_section_alignment (s, 2))
 	return FALSE;
     }
 
@@ -2408,7 +2408,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_anyway_with_flags (abfd, ".iplt", flags);
   htab->elf.iplt = s;
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, 4))
+      || !bfd_set_section_alignment (s, 4))
     return FALSE;
 
   flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_HAS_CONTENTS
@@ -2416,7 +2416,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_anyway_with_flags (abfd, ".rela.iplt", flags);
   htab->elf.irelplt = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, 2))
+      || ! bfd_set_section_alignment (s, 2))
     return FALSE;
 
   /* Local plt entries.  */
@@ -2425,7 +2425,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
   htab->pltlocal = bfd_make_section_anyway_with_flags (abfd, ".branch_lt",
 						       flags);
   if (htab->pltlocal == NULL
-      || ! bfd_set_section_alignment (abfd, htab->pltlocal, 2))
+      || !bfd_set_section_alignment (htab->pltlocal, 2))
     return FALSE;
 
   if (bfd_link_pic (info))
@@ -2435,7 +2435,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
       htab->relpltlocal
 	= bfd_make_section_anyway_with_flags (abfd, ".rela.branch_lt", flags);
       if (htab->relpltlocal == NULL
-	  || ! bfd_set_section_alignment (abfd, htab->relpltlocal, 2))
+	  || !bfd_set_section_alignment (htab->relpltlocal, 2))
 	return FALSE;
     }
 
@@ -2487,7 +2487,7 @@ ppc_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section_anyway_with_flags (abfd, ".rela.sbss", flags);
       htab->relsbss = s;
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s, 2))
+	  || !bfd_set_section_alignment (s, 2))
 	return FALSE;
     }
 
@@ -2500,7 +2500,7 @@ ppc_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
   if (htab->plt_type == PLT_VXWORKS)
     /* The VxWorks PLT is a loaded section with contents.  */
     flags |= SEC_HAS_CONTENTS | SEC_LOAD | SEC_READONLY;
-  return bfd_set_section_flags (abfd, s, flags);
+  return bfd_set_section_flags (s, flags);
 }
 
 /* Copy the extra info we tack onto an elf_link_hash_entry.  */
@@ -2739,7 +2739,7 @@ elf_allocate_pointer_linker_section (bfd *abfd,
   linker_section_ptr->lsect = lsect;
   *ptr_linker_section_ptr = linker_section_ptr;
 
-  if (!bfd_set_section_alignment (lsect->section->owner, lsect->section, 2))
+  if (!bfd_set_section_alignment (lsect->section, 2))
     return FALSE;
   linker_section_ptr->offset = lsect->section->size;
   lsect->section->size += 4;
@@ -4029,19 +4029,19 @@ ppc_elf_select_plt_layout (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       /* The new PLT is a loaded section.  */
       if (htab->elf.splt != NULL
-	  && !bfd_set_section_flags (htab->elf.dynobj, htab->elf.splt, flags))
+	  && !bfd_set_section_flags (htab->elf.splt, flags))
 	return -1;
 
       /* The new GOT is not executable.  */
       if (htab->elf.sgot != NULL
-	  && !bfd_set_section_flags (htab->elf.dynobj, htab->elf.sgot, flags))
+	  && !bfd_set_section_flags (htab->elf.sgot, flags))
 	return -1;
     }
   else
     {
       /* Stop an unused .glink section from affecting .text alignment.  */
       if (htab->glink != NULL
-	  && !bfd_set_section_alignment (htab->elf.dynobj, htab->glink, 0))
+	  && !bfd_set_section_alignment (htab->glink, 0))
 	return -1;
     }
   return htab->plt_type == PLT_NEW;
@@ -5823,8 +5823,7 @@ ppc_elf_size_dynamic_sections (bfd *output_bfd,
 	{
 	  strip_section = (s->flags & SEC_KEEP) == 0;
 	}
-      else if (CONST_STRNEQ (bfd_get_section_name (htab->elf.dynobj, s),
-			     ".rela"))
+      else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
 	{
 	  if (s->size != 0)
 	    {
@@ -8394,10 +8393,8 @@ ppc_elf_relocate_section (bfd *output_bfd,
 	      unresolved_reloc = TRUE;
 	      break;
 	    }
-	  BFD_ASSERT (strcmp (bfd_get_section_name (sec->owner, sec),
-			      ".got") == 0
-		      || strcmp (bfd_get_section_name (sec->owner, sec),
-				 ".cgot") == 0);
+	  BFD_ASSERT (strcmp (bfd_section_name (sec), ".got") == 0
+		      || strcmp (bfd_section_name (sec), ".cgot") == 0);
 
 	  addend -= sec->output_section->vma + sec->output_offset + 0x8000;
 	  break;
@@ -8512,7 +8509,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
 	      }
 	    addend -= SYM_VAL (sda);
 
-	    name = bfd_get_section_name (output_bfd, sec->output_section);
+	    name = bfd_section_name (sec->output_section);
 	    if (!(strcmp (name, ".sdata") == 0
 		  || strcmp (name, ".sbss") == 0))
 	      {
@@ -8543,7 +8540,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
 	      }
 	    addend -= SYM_VAL (sda);
 
-	    name = bfd_get_section_name (output_bfd, sec->output_section);
+	    name = bfd_section_name (sec->output_section);
 	    if (!(strcmp (name, ".sdata2") == 0
 		  || strcmp (name, ".sbss2") == 0))
 	      {
@@ -8618,7 +8615,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
 		break;
 	      }
 
-	    name = bfd_get_section_name (output_bfd, sec->output_section);
+	    name = bfd_section_name (sec->output_section);
 	    if (strcmp (name, ".sdata") == 0
 		|| strcmp (name, ".sbss") == 0)
 	      {
@@ -8725,7 +8722,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
 		break;
 	      }
 
-	    name = bfd_get_section_name (output_bfd, sec->output_section);
+	    name = bfd_section_name (sec->output_section);
 	    if (strcmp (name, ".sdata") == 0
 		|| strcmp (name, ".sbss") == 0)
 	      sda = htab->sdata[0].sym;
diff --git a/bfd/elf32-pru.c b/bfd/elf32-pru.c
index d9be74f916..054f1650f2 100644
--- a/bfd/elf32-pru.c
+++ b/bfd/elf32-pru.c
@@ -905,7 +905,7 @@ pru_elf32_relocate_section (bfd *output_bfd,
 						      symtab_hdr->sh_link,
 						      sym->st_name);
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  switch (r)
diff --git a/bfd/elf32-rl78.c b/bfd/elf32-rl78.c
index 8fa7ea30be..ba95515f7d 100644
--- a/bfd/elf32-rl78.c
+++ b/bfd/elf32-rl78.c
@@ -726,7 +726,7 @@ rl78_elf_relocate_section
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (sym->st_name == 0) ? bfd_section_name (input_bfd, sec) : name;
+	  name = sym->st_name == 0 ? bfd_section_name (sec) : name;
 	}
       else
 	{
@@ -1349,7 +1349,7 @@ rl78_elf_check_relocs
 							 flags);
 	      elf_hash_table (info)->splt = splt;
 	      if (splt == NULL
-		  || ! bfd_set_section_alignment (dynobj, splt, 1))
+		  || !bfd_set_section_alignment (splt, 1))
 		return FALSE;
 	    }
 
diff --git a/bfd/elf32-rx.c b/bfd/elf32-rx.c
index e130784bc8..7978244f1e 100644
--- a/bfd/elf32-rx.c
+++ b/bfd/elf32-rx.c
@@ -543,7 +543,7 @@ rx_elf_relocate_section
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (sym->st_name == 0) ? bfd_section_name (input_bfd, sec) : name;
+	  name = sym->st_name == 0 ? bfd_section_name (sec) : name;
 	}
       else
 	{
diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c
index 7bdccdbef9..7e22d9666a 100644
--- a/bfd/elf32-s390.c
+++ b/bfd/elf32-s390.c
@@ -2003,7 +2003,7 @@ elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 	  /* Strip this section if we don't need it; see the
 	     comment below.  */
 	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+      else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
 	{
 	  if (s->size != 0)
 	    relocs = TRUE;
@@ -3254,7 +3254,7 @@ elf_s390_relocate_section (bfd *output_bfd,
 	      if (name == NULL)
 		return FALSE;
 	      if (*name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  if (r == bfd_reloc_overflow)
diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c
index 1bbf64fe6d..3d499ca071 100644
--- a/bfd/elf32-score.c
+++ b/bfd/elf32-score.c
@@ -1257,8 +1257,8 @@ score_elf_rel_dyn_section (bfd *dynobj, bfd_boolean create_p)
 						    | SEC_LINKER_CREATED
 						    | SEC_READONLY));
       if (sreloc == NULL
-	  || ! bfd_set_section_alignment (dynobj, sreloc,
-					  SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
+	  || !bfd_set_section_alignment (sreloc,
+					 SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
 	return NULL;
     }
   return sreloc;
@@ -1431,7 +1431,7 @@ score_elf_create_got_section (bfd *abfd,
   s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   elf_hash_table (info)->sgot = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, 4))
+      || !bfd_set_section_alignment (s, 4))
     return FALSE;
 
   /* Define the symbol _GLOBAL_OFFSET_TABLE_.  We don't do this in the
@@ -3070,7 +3070,7 @@ s3_bfd_score_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
 					   asection *sec,
 					   int *retval)
 {
-  if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+  if (strcmp (bfd_section_name (sec), ".scommon") == 0)
     {
       *retval = SHN_SCORE_SCOMMON;
       return TRUE;
@@ -3283,7 +3283,7 @@ s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (CONST_STRNEQ (name, ".rel"))
 	{
@@ -3296,8 +3296,7 @@ s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
 		 the linker now does not create empty output sections.  */
 	      if (s->output_section != NULL
 		  && strcmp (name,
-			     bfd_get_section_name (s->output_section->owner,
-						   s->output_section)) == 0)
+			     bfd_section_name (s->output_section)) == 0)
 		s->flags |= SEC_EXCLUDE;
 	    }
 	  else
@@ -3311,7 +3310,7 @@ s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
 		 assert a DT_TEXTREL entry rather than testing whether
 		 there exists a relocation to a read only section or
 		 not.  */
-	      outname = bfd_get_section_name (output_bfd, s->output_section);
+	      outname = bfd_section_name (s->output_section);
 	      target = bfd_get_section_by_name (output_bfd, outname + 4);
 	      if ((target != NULL
 		   && (target->flags & SEC_READONLY) != 0
@@ -3424,7 +3423,7 @@ s3_bfd_score_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
   s = bfd_get_linker_section (abfd, ".dynamic");
   if (s != NULL)
     {
-      if (!bfd_set_section_flags (abfd, s, flags))
+      if (!bfd_set_section_flags (s, flags))
 	return FALSE;
     }
 
@@ -3441,7 +3440,7 @@ s3_bfd_score_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section_anyway_with_flags (abfd, SCORE_ELF_STUB_SECTION_NAME,
 					      flags | SEC_CODE);
       if (s == NULL
-	  || !bfd_set_section_alignment (abfd, s, 2))
+	  || !bfd_set_section_alignment (s, 2))
 
 	return FALSE;
     }
@@ -3709,7 +3708,7 @@ s3_bfd_score_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
 {
   const char *name;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   if (strcmp (name, ".got") == 0
       || strcmp (name, ".srdata") == 0
@@ -3732,7 +3731,7 @@ s3_bfd_score_elf_section_processing (bfd *abfd ATTRIBUTE_UNUSED, Elf_Internal_Sh
 {
   if (hdr->bfd_section != NULL)
     {
-      const char *name = bfd_get_section_name (abfd, hdr->bfd_section);
+      const char *name = bfd_section_name (hdr->bfd_section);
 
       if (strcmp (name, ".sdata") == 0)
 	{
diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c
index 51a5fb106d..e625435ff5 100644
--- a/bfd/elf32-score7.c
+++ b/bfd/elf32-score7.c
@@ -1114,8 +1114,8 @@ score_elf_rel_dyn_section (bfd *dynobj, bfd_boolean create_p)
 						    | SEC_LINKER_CREATED
 						    | SEC_READONLY));
       if (sreloc == NULL
-	  || ! bfd_set_section_alignment (dynobj, sreloc,
-					  SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
+	  || !bfd_set_section_alignment (sreloc,
+					 SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
 	return NULL;
     }
   return sreloc;
@@ -1289,7 +1289,7 @@ score_elf_create_got_section (bfd *abfd,
   s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   elf_hash_table (info)->sgot = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, 4))
+      || !bfd_set_section_alignment (s, 4))
     return FALSE;
 
   /* Define the symbol _GLOBAL_OFFSET_TABLE_.  We don't do this in the
@@ -2875,7 +2875,7 @@ s7_bfd_score_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
 					 asection *sec,
 					 int *retval)
 {
-  if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+  if (strcmp (bfd_section_name (sec), ".scommon") == 0)
     {
       *retval = SHN_SCORE_SCOMMON;
       return TRUE;
@@ -3091,7 +3091,7 @@ s7_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (CONST_STRNEQ (name, ".rel"))
 	{
@@ -3104,8 +3104,7 @@ s7_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
 		 the linker now does not create empty output sections.  */
 	      if (s->output_section != NULL
 		  && strcmp (name,
-			     bfd_get_section_name (s->output_section->owner,
-						   s->output_section)) == 0)
+			     bfd_section_name (s->output_section)) == 0)
 		s->flags |= SEC_EXCLUDE;
 	    }
 	  else
@@ -3119,7 +3118,7 @@ s7_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
 		 assert a DT_TEXTREL entry rather than testing whether
 		 there exists a relocation to a read only section or
 		 not.  */
-	      outname = bfd_get_section_name (output_bfd, s->output_section);
+	      outname = bfd_section_name (s->output_section);
 	      target = bfd_get_section_by_name (output_bfd, outname + 4);
 	      if ((target != NULL
 		   && (target->flags & SEC_READONLY) != 0
@@ -3232,7 +3231,7 @@ s7_bfd_score_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
   s = bfd_get_linker_section (abfd, ".dynamic");
   if (s != NULL)
     {
-      if (!bfd_set_section_flags (abfd, s, flags))
+      if (!bfd_set_section_flags (s, flags))
 	return FALSE;
     }
 
@@ -3249,7 +3248,7 @@ s7_bfd_score_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section_anyway_with_flags (abfd, SCORE_ELF_STUB_SECTION_NAME,
 					      flags | SEC_CODE);
       if (s == NULL
-	  || !bfd_set_section_alignment (abfd, s, 2))
+	  || !bfd_set_section_alignment (s, 2))
 
 	return FALSE;
     }
@@ -3520,7 +3519,7 @@ s7_bfd_score_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
 {
   const char *name;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   if (strcmp (name, ".got") == 0
       || strcmp (name, ".srdata") == 0
@@ -3544,7 +3543,7 @@ s7_bfd_score_elf_section_processing (bfd *abfd ATTRIBUTE_UNUSED, Elf_Internal_Sh
 {
   if (hdr->bfd_section != NULL)
     {
-      const char *name = bfd_get_section_name (abfd, hdr->bfd_section);
+      const char *name = bfd_section_name (hdr->bfd_section);
 
       if (strcmp (name, ".sdata") == 0)
 	{
diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c
index 91900b8bea..c572f709f2 100644
--- a/bfd/elf32-sh.c
+++ b/bfd/elf32-sh.c
@@ -2324,7 +2324,7 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
 							 | SEC_IN_MEMORY
 							 | SEC_LINKER_CREATED));
   if (htab->sfuncdesc == NULL
-      || ! bfd_set_section_alignment (dynobj, htab->sfuncdesc, 2))
+      || !bfd_set_section_alignment (htab->sfuncdesc, 2))
     return FALSE;
 
   htab->srelfuncdesc = bfd_make_section_anyway_with_flags (dynobj,
@@ -2335,7 +2335,7 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
 							    | SEC_LINKER_CREATED
 							    | SEC_READONLY));
   if (htab->srelfuncdesc == NULL
-      || ! bfd_set_section_alignment (dynobj, htab->srelfuncdesc, 2))
+      || !bfd_set_section_alignment (htab->srelfuncdesc, 2))
     return FALSE;
 
   /* Also create .rofixup.  */
@@ -2346,7 +2346,7 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
 							| SEC_LINKER_CREATED
 							| SEC_READONLY));
   if (htab->srofixup == NULL
-      || ! bfd_set_section_alignment (dynobj, htab->srofixup, 2))
+      || !bfd_set_section_alignment (htab->srofixup, 2))
     return FALSE;
 
   return TRUE;
@@ -2401,7 +2401,7 @@ sh_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
   htab->root.splt = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+      || !bfd_set_section_alignment (s, bed->plt_alignment))
     return FALSE;
 
   if (bed->want_plt_sym)
@@ -2433,7 +2433,7 @@ sh_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 					  flags | SEC_READONLY);
   htab->root.srelplt = s;
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, ptralign))
+      || !bfd_set_section_alignment (s, ptralign))
     return FALSE;
 
   if (htab->root.sgot == NULL
@@ -2473,7 +2473,7 @@ sh_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 						  flags | SEC_READONLY);
 	  htab->srelbss = s;
 	  if (s == NULL
-	      || ! bfd_set_section_alignment (abfd, s, ptralign))
+	      || !bfd_set_section_alignment (s, ptralign))
 	    return FALSE;
 	}
     }
@@ -3211,7 +3211,7 @@ sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 	  /* Strip this section if we don't need it; see the
 	     comment below.  */
 	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+      else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
 	{
 	  if (s->size != 0 && s != htab->root.srelplt && s != htab->srelplt2)
 	    relocs = TRUE;
@@ -3619,7 +3619,7 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 	  symname = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
 	  if (symname == NULL || *symname == '\0')
-	    symname = bfd_section_name (input_bfd, sec);
+	    symname = bfd_section_name (sec);
 
 	  relocation = (sec->output_section->vma
 			+ sec->output_offset
@@ -5170,7 +5170,7 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 		    if (name == NULL)
 		      return FALSE;
 		    if (*name == '\0')
-		      name = bfd_section_name (input_bfd, sec);
+		      name = bfd_section_name (sec);
 		  }
 		(*info->callbacks->reloc_overflow)
 		  (info, (h ? &h->root : NULL), name, howto->name,
diff --git a/bfd/elf32-spu.c b/bfd/elf32-spu.c
index f66e37cd00..e75d999fd5 100644
--- a/bfd/elf32-spu.c
+++ b/bfd/elf32-spu.c
@@ -585,7 +585,7 @@ spu_elf_create_sections (struct bfd_link_info *info)
       flags = SEC_LOAD | SEC_READONLY | SEC_HAS_CONTENTS | SEC_IN_MEMORY;
       s = bfd_make_section_anyway_with_flags (ibfd, SPU_PTNOTE_SPUNAME, flags);
       if (s == NULL
-	  || !bfd_set_section_alignment (ibfd, s, 4))
+	  || !bfd_set_section_alignment (s, 4))
 	return FALSE;
       /* Because we didn't set SEC_LINKER_CREATED we need to set the
 	 proper section type.  */
@@ -595,7 +595,7 @@ spu_elf_create_sections (struct bfd_link_info *info)
       size = 12 + ((sizeof (SPU_PLUGIN_NAME) + 3) & -4);
       size += (name_len + 3) & -4;
 
-      if (!bfd_set_section_size (ibfd, s, size))
+      if (!bfd_set_section_size (s, size))
 	return FALSE;
 
       data = bfd_zalloc (ibfd, size);
@@ -622,7 +622,7 @@ spu_elf_create_sections (struct bfd_link_info *info)
       flags = (SEC_LOAD | SEC_ALLOC | SEC_READONLY | SEC_HAS_CONTENTS
 	       | SEC_IN_MEMORY | SEC_LINKER_CREATED);
       s = bfd_make_section_anyway_with_flags (ibfd, ".fixup", flags);
-      if (s == NULL || !bfd_set_section_alignment (ibfd, s, 2))
+      if (s == NULL || !bfd_set_section_alignment (s, 2))
 	return FALSE;
       htab->sfixup = s;
     }
@@ -1694,7 +1694,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
       stub = bfd_make_section_anyway_with_flags (ibfd, ".stub", flags);
       htab->stub_sec[0] = stub;
       if (stub == NULL
-	  || !bfd_set_section_alignment (ibfd, stub,
+	  || !bfd_set_section_alignment (stub,
 					 ovl_stub_size_log2 (htab->params)))
 	return 0;
       stub->size = htab->stub_count[0] * ovl_stub_size (htab->params);
@@ -1709,7 +1709,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
 	  stub = bfd_make_section_anyway_with_flags (ibfd, ".stub", flags);
 	  htab->stub_sec[ovl] = stub;
 	  if (stub == NULL
-	      || !bfd_set_section_alignment (ibfd, stub,
+	      || !bfd_set_section_alignment (stub,
 					     ovl_stub_size_log2 (htab->params)))
 	    return 0;
 	  stub->size = htab->stub_count[ovl] * ovl_stub_size (htab->params);
@@ -1727,7 +1727,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
       flags = SEC_ALLOC;
       htab->ovtab = bfd_make_section_anyway_with_flags (ibfd, ".ovtab", flags);
       if (htab->ovtab == NULL
-	  || !bfd_set_section_alignment (ibfd, htab->ovtab, 4))
+	  || !bfd_set_section_alignment (htab->ovtab, 4))
 	return 0;
 
       htab->ovtab->size = (16 + 16 + (16 << htab->fromelem_size_log2))
@@ -1736,7 +1736,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
       flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY;
       htab->init = bfd_make_section_anyway_with_flags (ibfd, ".ovini", flags);
       if (htab->init == NULL
-	  || !bfd_set_section_alignment (ibfd, htab->init, 4))
+	  || !bfd_set_section_alignment (htab->init, 4))
 	return 0;
 
       htab->init->size = 16;
@@ -1761,7 +1761,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
       flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY;
       htab->ovtab = bfd_make_section_anyway_with_flags (ibfd, ".ovtab", flags);
       if (htab->ovtab == NULL
-	  || !bfd_set_section_alignment (ibfd, htab->ovtab, 4))
+	  || !bfd_set_section_alignment (htab->ovtab, 4))
 	return 0;
 
       htab->ovtab->size = htab->num_overlays * 16 + 16 + htab->num_buf * 4;
@@ -1769,7 +1769,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
 
   htab->toe = bfd_make_section_anyway_with_flags (ibfd, ".toe", SEC_ALLOC);
   if (htab->toe == NULL
-      || !bfd_set_section_alignment (ibfd, htab->toe, 4))
+      || !bfd_set_section_alignment (htab->toe, 4))
     return 0;
   htab->toe->size = 16;
 
@@ -5049,7 +5049,7 @@ spu_elf_relocate_section (bfd *output_bfd,
 	    (_("%pB(%s+%#" PRIx64 "): "
 	       "unresolvable %s relocation against symbol `%s'"),
 	     input_bfd,
-	     bfd_get_section_name (input_bfd, input_section),
+	     bfd_section_name (input_section),
 	     (uint64_t) rel->r_offset,
 	     howto->name,
 	     sym_name);
@@ -5436,7 +5436,7 @@ spu_elf_modify_program_headers (bfd *abfd, struct bfd_link_info *info)
 }
 
 bfd_boolean
-spu_elf_size_sections (bfd * output_bfd, struct bfd_link_info *info)
+spu_elf_size_sections (bfd *obfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
 {
   struct spu_link_hash_table *htab = spu_hash_table (info);
   if (htab->params->emit_fixups)
@@ -5493,7 +5493,7 @@ spu_elf_size_sections (bfd * output_bfd, struct bfd_link_info *info)
 
       /* We always have a NULL fixup as a sentinel */
       size = (fixup_count + 1) * FIXUP_RECORD_SIZE;
-      if (!bfd_set_section_size (output_bfd, sfixup, size))
+      if (!bfd_set_section_size (sfixup, size))
 	return FALSE;
       sfixup->contents = (bfd_byte *) bfd_zalloc (info->input_bfds, size);
       if (sfixup->contents == NULL)
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
index 87ec8475a8..258349cfb7 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
@@ -1684,8 +1684,8 @@ elf32_tic6x_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
   htab->dsbt = bfd_make_section_anyway_with_flags (dynobj, ".dsbt",
 						   flags);
   if (htab->dsbt == NULL
-      || ! bfd_set_section_alignment (dynobj, htab->dsbt, 2)
-      || ! bfd_set_section_alignment (dynobj, htab->elf.splt, 5))
+      || !bfd_set_section_alignment (htab->dsbt, 2)
+      || !bfd_set_section_alignment (htab->elf.splt, 5))
     return FALSE;
 
   return TRUE;
@@ -1992,7 +1992,7 @@ elf32_tic6x_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
 {
   const char * name;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   if (is_tic6x_elf_unwind_section_name (name))
     {
@@ -2683,7 +2683,7 @@ elf32_tic6x_relocate_section (bfd *output_bfd,
 	      if (name == NULL)
 		return FALSE;
 	      if (*name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  switch (r)
@@ -3016,7 +3016,7 @@ elf32_tic6x_add_symbol_hook (bfd *abfd,
       *secp = bfd_make_section_old_way (abfd, ".scommon");
       (*secp)->flags |= SEC_IS_COMMON;
       *valp = sym->st_size;
-      (void) bfd_set_section_alignment (abfd, *secp, bfd_log2 (sym->st_value));
+      bfd_set_section_alignment (*secp, bfd_log2 (sym->st_value));
       break;
     }
 
@@ -3072,7 +3072,7 @@ elf32_tic6x_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
 				      asection *sec,
 				      int *retval)
 {
-  if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+  if (strcmp (bfd_section_name (sec), ".scommon") == 0)
     {
       *retval = SHN_TIC6X_SCOMMON;
       return TRUE;
@@ -3385,7 +3385,7 @@ elf32_tic6x_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
 	  if (s == htab->elf.splt && s->size > 0)
 	    s->size = (s->size + 31) & ~(bfd_vma)31;
 	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+      else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
 	{
 	  if (s->size != 0
 	      && s != htab->elf.srelplt)
@@ -3992,10 +3992,10 @@ elf32_tic6x_adjust_exidx_size (asection *exidx_sec, int adjust)
   if (!exidx_sec->rawsize)
     exidx_sec->rawsize = exidx_sec->size;
 
-  bfd_set_section_size (exidx_sec->owner, exidx_sec, exidx_sec->size + adjust);
+  bfd_set_section_size (exidx_sec, exidx_sec->size + adjust);
   out_sec = exidx_sec->output_section;
   /* Adjust size of output section.  */
-  bfd_set_section_size (out_sec->owner, out_sec, out_sec->size +adjust);
+  bfd_set_section_size (out_sec, out_sec->size +adjust);
 }
 
 /* Insert an EXIDX_CANTUNWIND marker at the end of a section.  */
diff --git a/bfd/elf32-tilepro.c b/bfd/elf32-tilepro.c
index 832561d260..249b3aaf5b 100644
--- a/bfd/elf32-tilepro.c
+++ b/bfd/elf32-tilepro.c
@@ -1229,13 +1229,13 @@ tilepro_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
 				   (bed->dynamic_sec_flags
 				    | SEC_READONLY));
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->srelgot = s;
 
   s = s_got = bfd_make_section_with_flags (abfd, ".got", flags);
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->sgot = s;
 
@@ -1246,8 +1246,7 @@ tilepro_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
     {
       s = bfd_make_section_with_flags (abfd, ".got.plt", flags);
       if (s == NULL
-	  || !bfd_set_section_alignment (abfd, s,
-					 bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       htab->sgotplt = s;
 
@@ -2754,7 +2753,7 @@ tilepro_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 	  name = (bfd_elf_string_from_elf_section
 		  (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	  if (name == NULL || *name == '\0')
-	    name = bfd_section_name (input_bfd, sec);
+	    name = bfd_section_name (sec);
 	}
 
       switch (r_type)
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index 74e1546321..21df3c8b9a 100644
--- a/bfd/elf32-v850.c
+++ b/bfd/elf32-v850.c
@@ -177,7 +177,7 @@ v850_elf_check_relocs (bfd *abfd,
 
 	  if (h && h->root.type == bfd_link_hash_common
 	      && h->root.u.c.p
-	      && !strcmp (bfd_get_section_name (abfd, h->root.u.c.p->section), "COMMON"))
+	      && !strcmp (bfd_section_name (h->root.u.c.p->section), "COMMON"))
 	    {
 	      asection * section;
 
@@ -2269,7 +2269,7 @@ v850_elf_relocate_section (bfd *output_bfd,
 	      name = (bfd_elf_string_from_elf_section
 		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	      if (name == NULL || *name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  switch ((int) r)
@@ -2372,11 +2372,11 @@ v850_elf_make_note_section (bfd * abfd)
   if (s == NULL)
     return NULL;
 
-  if (!bfd_set_section_alignment (abfd, s, 2))
+  if (!bfd_set_section_alignment (s, 2))
     return NULL;
 
   /* Allocate space for all known notes.  */
-  if (!bfd_set_section_size (abfd, s, NUM_V850_NOTES * SIZEOF_V850_NOTE))
+  if (!bfd_set_section_size (s, NUM_V850_NOTES * SIZEOF_V850_NOTE))
     return NULL;
 
   data = bfd_zalloc (abfd, NUM_V850_NOTES * SIZEOF_V850_NOTE);
@@ -2443,7 +2443,7 @@ v850_elf_copy_notes (bfd *ibfd, bfd *obfd)
   if ((inotes = bfd_get_section_by_name (ibfd, V850_NOTE_SECNAME)) == NULL)
     return;
 
-  if (bfd_section_size (ibfd, inotes) == bfd_section_size (obfd, onotes))
+  if (bfd_section_size (inotes) == bfd_section_size (onotes))
     {
       bfd_byte * icont;
       bfd_byte * ocont;
@@ -2457,7 +2457,7 @@ v850_elf_copy_notes (bfd *ibfd, bfd *obfd)
 	return;
 
       /* Copy/overwrite notes from the input to the output.  */
-      memcpy (ocont, icont, bfd_section_size (obfd, onotes));
+      memcpy (ocont, icont, bfd_section_size (onotes));
     }
 }
 
@@ -2490,7 +2490,7 @@ v850_elf_merge_notes (bfd * ibfd, bfd *obfd)
       bfd_byte * icont;
       bfd_byte * ocont;
 
-      BFD_ASSERT (bfd_section_size (ibfd, inotes) == bfd_section_size (obfd, onotes));
+      BFD_ASSERT (bfd_section_size (inotes) == bfd_section_size (onotes));
 
       if ((icont = elf_section_data (inotes)->this_hdr.contents) == NULL)
 	BFD_ASSERT (bfd_malloc_and_get_section (ibfd, inotes, & icont));
@@ -2672,7 +2672,7 @@ v850_elf_print_notes (bfd * abfd, FILE * file)
   if (notes == NULL || notes->contents == NULL)
     return;
 
-  BFD_ASSERT (bfd_section_size (abfd, notes) == NUM_V850_NOTES * SIZEOF_V850_NOTE);
+  BFD_ASSERT (bfd_section_size (notes) == NUM_V850_NOTES * SIZEOF_V850_NOTE);
 
   for (id = V850_NOTE_ALIGNMENT; id <= NUM_V850_NOTES; id++)
     print_v850_note (abfd, file, notes->contents, id);
@@ -2946,11 +2946,11 @@ v850_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
 				   asection *sec,
 				   int *retval)
 {
-  if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+  if (strcmp (bfd_section_name (sec), ".scommon") == 0)
     *retval = SHN_V850_SCOMMON;
-  else if (strcmp (bfd_get_section_name (abfd, sec), ".tcommon") == 0)
+  else if (strcmp (bfd_section_name (sec), ".tcommon") == 0)
     *retval = SHN_V850_TCOMMON;
-  else if (strcmp (bfd_get_section_name (abfd, sec), ".zcommon") == 0)
+  else if (strcmp (bfd_section_name (sec), ".zcommon") == 0)
     *retval = SHN_V850_ZCOMMON;
   else
     return FALSE;
@@ -3162,10 +3162,9 @@ v850_elf_section_from_shdr (bfd *abfd,
     case SHT_V850_SCOMMON:
     case SHT_V850_TCOMMON:
     case SHT_V850_ZCOMMON:
-      if (! bfd_set_section_flags (abfd, hdr->bfd_section,
-				   (bfd_get_section_flags (abfd,
-							   hdr->bfd_section)
-				    | SEC_IS_COMMON)))
+      if (!bfd_set_section_flags (hdr->bfd_section,
+				  (bfd_section_flags (hdr->bfd_section)
+				   | SEC_IS_COMMON)))
 	return FALSE;
     }
 
@@ -3182,7 +3181,7 @@ v850_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
 {
   const char * name;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   if (strcmp (name, ".scommon") == 0)
     hdr->sh_type = SHT_V850_SCOMMON;
diff --git a/bfd/elf32-vax.c b/bfd/elf32-vax.c
index 2af7050707..80162d87cb 100644
--- a/bfd/elf32-vax.c
+++ b/bfd/elf32-vax.c
@@ -1069,7 +1069,7 @@ elf_vax_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (strcmp (name, ".plt") == 0)
 	{
@@ -1094,8 +1094,7 @@ elf_vax_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
 		     section, then we probably need a DT_TEXTREL
 		     entry.  .rela.plt is actually associated with
 		     .got.plt, which is never readonly.  */
-		  outname = bfd_get_section_name (output_bfd,
-						  s->output_section);
+		  outname = bfd_section_name (s->output_section);
 		  target = bfd_get_section_by_name (output_bfd, outname + 5);
 		  if (target != NULL
 		      && (target->flags & SEC_READONLY) != 0
@@ -1633,7 +1632,7 @@ elf_vax_relocate_section (bfd *output_bfd,
 		    if (name == NULL)
 		      return FALSE;
 		    if (*name == '\0')
-		      name = bfd_section_name (input_bfd, sec);
+		      name = bfd_section_name (sec);
 		  }
 		info->callbacks->reloc_overflow
 		  (info, (h ? &h->root : NULL), name, howto->name,
diff --git a/bfd/elf32-visium.c b/bfd/elf32-visium.c
index 76271ce7cd..35e4b84ed1 100644
--- a/bfd/elf32-visium.c
+++ b/bfd/elf32-visium.c
@@ -599,7 +599,7 @@ visium_elf_relocate_section (bfd *output_bfd,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
diff --git a/bfd/elf32-xstormy16.c b/bfd/elf32-xstormy16.c
index 05a9326685..ef106b3f92 100644
--- a/bfd/elf32-xstormy16.c
+++ b/bfd/elf32-xstormy16.c
@@ -471,7 +471,7 @@ xstormy16_elf_check_relocs (bfd *abfd,
 							 flags);
 	      elf_hash_table (info)->splt = splt;
 	      if (splt == NULL
-		  || ! bfd_set_section_alignment (dynobj, splt, 1))
+		  || !bfd_set_section_alignment (splt, 1))
 		return FALSE;
 	    }
 
@@ -834,7 +834,7 @@ xstormy16_elf_relocate_section (bfd *			output_bfd ATTRIBUTE_UNUSED,
 	  name = (bfd_elf_string_from_elf_section
 		  (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	  if (name == NULL || *name == '\0')
-	    name = bfd_section_name (input_bfd, sec);
+	    name = bfd_section_name (sec);
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
index 8a7bf7e96f..306b18b4f2 100644
--- a/bfd/elf32-xtensa.c
+++ b/bfd/elf32-xtensa.c
@@ -1320,21 +1320,21 @@ elf_xtensa_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
 
   /* Mark the ".got.plt" section READONLY.  */
   if (htab->elf.sgotplt == NULL
-      || ! bfd_set_section_flags (dynobj, htab->elf.sgotplt, flags))
+      || !bfd_set_section_flags (htab->elf.sgotplt, flags))
     return FALSE;
 
   /* Create ".got.loc" (literal tables for use by dynamic linker).  */
   htab->sgotloc = bfd_make_section_anyway_with_flags (dynobj, ".got.loc",
 						      flags);
   if (htab->sgotloc == NULL
-      || ! bfd_set_section_alignment (dynobj, htab->sgotloc, 2))
+      || !bfd_set_section_alignment (htab->sgotloc, 2))
     return FALSE;
 
   /* Create ".xt.lit.plt" (literal table for ".got.plt*").  */
   htab->spltlittbl = bfd_make_section_anyway_with_flags (dynobj, ".xt.lit.plt",
 							 noalloc_flags);
   if (htab->spltlittbl == NULL
-      || ! bfd_set_section_alignment (dynobj, htab->spltlittbl, 2))
+      || !bfd_set_section_alignment (htab->spltlittbl, 2))
     return FALSE;
 
   return TRUE;
@@ -1366,14 +1366,14 @@ add_extra_plt_sections (struct bfd_link_info *info, int count)
       sprintf (sname, ".plt.%u", chunk);
       s = bfd_make_section_anyway_with_flags (dynobj, sname, flags | SEC_CODE);
       if (s == NULL
-	  || ! bfd_set_section_alignment (dynobj, s, 2))
+	  || !bfd_set_section_alignment (s, 2))
 	return FALSE;
 
       sname = (char *) bfd_malloc (14);
       sprintf (sname, ".got.plt.%u", chunk);
       s = bfd_make_section_anyway_with_flags (dynobj, sname, flags);
       if (s == NULL
-	  || ! bfd_set_section_alignment (dynobj, s, 2))
+	  || !bfd_set_section_alignment (s, 2))
 	return FALSE;
     }
 
@@ -1626,7 +1626,7 @@ elf_xtensa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (CONST_STRNEQ (name, ".rela"))
 	{
@@ -2687,7 +2687,7 @@ elf_xtensa_relocate_section (bfd *output_bfd,
 	  name = (bfd_elf_string_from_elf_section
 		  (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	  if (name == NULL || *name == '\0')
-	    name = bfd_section_name (input_bfd, sec);
+	    name = bfd_section_name (sec);
 	}
 
       if (r_symndx != STN_UNDEF
@@ -11244,7 +11244,7 @@ xtensa_make_property_section (asection *sec, const char *base_name)
   if (! prop_sec)
     {
       flagword flags = (SEC_RELOC | SEC_HAS_CONTENTS | SEC_READONLY);
-      flags |= (bfd_get_section_flags (sec->owner, sec)
+      flags |= (bfd_section_flags (sec)
 		& (SEC_LINK_ONCE | SEC_LINK_DUPLICATES));
 
       prop_sec = bfd_make_section_anyway_with_flags
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 490860123c..84ec83b74a 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -1168,9 +1168,8 @@ elf64_alpha_section_from_shdr (bfd *abfd,
 
   if (hdr->sh_type == SHT_ALPHA_DEBUG)
     {
-      if (! bfd_set_section_flags (abfd, newsect,
-				   (bfd_get_section_flags (abfd, newsect)
-				    | SEC_DEBUGGING)))
+      if (!bfd_set_section_flags (newsect,
+				  bfd_section_flags (newsect) | SEC_DEBUGGING))
 	return FALSE;
     }
 
@@ -1196,7 +1195,7 @@ elf64_alpha_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
 {
   register const char *name;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   if (strcmp (name, ".mdebug") == 0)
     {
@@ -1270,7 +1269,7 @@ elf64_alpha_create_got_section (bfd *abfd,
 	   | SEC_LINKER_CREATED);
   s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, 3))
+      || !bfd_set_section_alignment (s, 3))
     return FALSE;
 
   alpha_elf_tdata (abfd)->got = s;
@@ -1302,7 +1301,7 @@ elf64_alpha_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 	   | (elf64_alpha_use_secureplt ? SEC_READONLY : 0));
   s = bfd_make_section_anyway_with_flags (abfd, ".plt", flags);
   elf_hash_table (info)->splt = s;
-  if (s == NULL || ! bfd_set_section_alignment (abfd, s, 4))
+  if (s == NULL || ! bfd_set_section_alignment (s, 4))
     return FALSE;
 
   /* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the
@@ -1317,7 +1316,7 @@ elf64_alpha_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 	   | SEC_LINKER_CREATED | SEC_READONLY);
   s = bfd_make_section_anyway_with_flags (abfd, ".rela.plt", flags);
   elf_hash_table (info)->srelplt = s;
-  if (s == NULL || ! bfd_set_section_alignment (abfd, s, 3))
+  if (s == NULL || ! bfd_set_section_alignment (s, 3))
     return FALSE;
 
   if (elf64_alpha_use_secureplt)
@@ -1325,7 +1324,7 @@ elf64_alpha_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
       flags = SEC_ALLOC | SEC_LINKER_CREATED;
       s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
       elf_hash_table (info)->sgotplt = s;
-      if (s == NULL || ! bfd_set_section_alignment (abfd, s, 3))
+      if (s == NULL || ! bfd_set_section_alignment (s, 3))
 	return FALSE;
     }
 
@@ -1343,7 +1342,7 @@ elf64_alpha_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_anyway_with_flags (abfd, ".rela.got", flags);
   elf_hash_table (info)->srelgot = s;
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, 3))
+      || !bfd_set_section_alignment (s, 3))
     return FALSE;
 
   /* Define the symbol _GLOBAL_OFFSET_TABLE_ at the start of the
@@ -1616,7 +1615,7 @@ elf64_alpha_output_extsym (struct alpha_elf_link_hash_entry *h, void * data)
 	    h->esym.asym.sc = scUndefined;
 	  else
 	    {
-	      name = bfd_section_name (output_section->owner, output_section);
+	      name = bfd_section_name (output_section);
 
 	      if (strcmp (name, ".text") == 0)
 		h->esym.asym.sc = scText;
@@ -2860,7 +2859,7 @@ elf64_alpha_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if (CONST_STRNEQ (name, ".rela"))
 	{
@@ -4508,7 +4507,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 		    if (name == NULL)
 		      name = _("<unknown>");
 		    else if (name[0] == 0)
-		      name = bfd_section_name (input_bfd, sec);
+		      name = bfd_section_name (sec);
 		  }
 		_bfd_error_handler
 		  /* xgettext:c-format */
@@ -4779,7 +4778,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 		if (name == NULL)
 		  return FALSE;
 		if (*name == '\0')
-		  name = bfd_section_name (input_bfd, sec);
+		  name = bfd_section_name (sec);
 	      }
 	    (*info->callbacks->reloc_overflow)
 	      (info, (h ? &h->root.root : NULL), name, howto->name,
diff --git a/bfd/elf64-bpf.c b/bfd/elf64-bpf.c
index 3e11f089ec..67c45a1fa4 100644
--- a/bfd/elf64-bpf.c
+++ b/bfd/elf64-bpf.c
@@ -407,7 +407,7 @@ bpf_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
 	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
-	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	  name = name == NULL ? bfd_section_name (sec) : name;
 	}
       else
 	{
diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c
index 77811580c6..25e91d8a23 100644
--- a/bfd/elf64-hppa.c
+++ b/bfd/elf64-hppa.c
@@ -422,7 +422,7 @@ get_reloc_section (bfd *abfd,
 						  | SEC_LINKER_CREATED
 						  | SEC_READONLY));
       if (srel == NULL
-	  || !bfd_set_section_alignment (dynobj, srel, 3))
+	  || !bfd_set_section_alignment (srel, 3))
 	return FALSE;
     }
 
@@ -1159,7 +1159,7 @@ get_opd (bfd *abfd,
 						 | SEC_IN_MEMORY
 						 | SEC_LINKER_CREATED));
       if (!opd
-	  || !bfd_set_section_alignment (abfd, opd, 3))
+	  || !bfd_set_section_alignment (opd, 3))
 	{
 	  BFD_ASSERT (0);
 	  return FALSE;
@@ -1195,7 +1195,7 @@ get_plt (bfd *abfd,
 						 | SEC_IN_MEMORY
 						 | SEC_LINKER_CREATED));
       if (!plt
-	  || !bfd_set_section_alignment (abfd, plt, 3))
+	  || !bfd_set_section_alignment (plt, 3))
 	{
 	  BFD_ASSERT (0);
 	  return FALSE;
@@ -1231,7 +1231,7 @@ get_dlt (bfd *abfd,
 						 | SEC_IN_MEMORY
 						 | SEC_LINKER_CREATED));
       if (!dlt
-	  || !bfd_set_section_alignment (abfd, dlt, 3))
+	  || !bfd_set_section_alignment (dlt, 3))
 	{
 	  BFD_ASSERT (0);
 	  return FALSE;
@@ -1267,7 +1267,7 @@ get_stub (bfd *abfd,
 						  | SEC_READONLY
 						  | SEC_LINKER_CREATED));
       if (!stub
-	  || !bfd_set_section_alignment (abfd, stub, 3))
+	  || !bfd_set_section_alignment (stub, 3))
 	{
 	  BFD_ASSERT (0);
 	  return FALSE;
@@ -1347,7 +1347,7 @@ elf64_hppa_create_dynamic_sections (bfd *abfd,
 					   | SEC_READONLY
 					   | SEC_LINKER_CREATED));
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, 3))
+      || !bfd_set_section_alignment (s, 3))
     return FALSE;
   hppa_info->dlt_rel_sec = s;
 
@@ -1358,7 +1358,7 @@ elf64_hppa_create_dynamic_sections (bfd *abfd,
 					   | SEC_READONLY
 					   | SEC_LINKER_CREATED));
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, 3))
+      || !bfd_set_section_alignment (s, 3))
     return FALSE;
   hppa_info->plt_rel_sec = s;
 
@@ -1369,7 +1369,7 @@ elf64_hppa_create_dynamic_sections (bfd *abfd,
 					   | SEC_READONLY
 					   | SEC_LINKER_CREATED));
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, 3))
+      || !bfd_set_section_alignment (s, 3))
     return FALSE;
   hppa_info->other_rel_sec = s;
 
@@ -1380,7 +1380,7 @@ elf64_hppa_create_dynamic_sections (bfd *abfd,
 					   | SEC_READONLY
 					   | SEC_LINKER_CREATED));
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, 3))
+      || !bfd_set_section_alignment (s, 3))
     return FALSE;
   hppa_info->opd_rel_sec = s;
 
@@ -1750,7 +1750,7 @@ elf64_hppa_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, sec);
+      name = bfd_section_name (sec);
 
       if (strcmp (name, ".plt") == 0)
 	{
@@ -1783,8 +1783,7 @@ elf64_hppa_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
 		     entry.  The entries in the .rela.plt section
 		     really apply to the .got section, which we
 		     created ourselves and so know is not readonly.  */
-		  outname = bfd_get_section_name (output_bfd,
-						  sec->output_section);
+		  outname = bfd_section_name (sec->output_section);
 		  target = bfd_get_section_by_name (output_bfd, outname + 4);
 		  if (target != NULL
 		      && (target->flags & SEC_READONLY) != 0
@@ -3938,7 +3937,7 @@ elf64_hppa_relocate_section (bfd *output_bfd,
 		    if (sym_name == NULL)
 		      return FALSE;
 		    if (*sym_name == '\0')
-		      sym_name = bfd_section_name (input_bfd, sym_sec);
+		      sym_name = bfd_section_name (sym_sec);
 		  }
 
 		(*info->callbacks->reloc_overflow)
diff --git a/bfd/elf64-ia64-vms.c b/bfd/elf64-ia64-vms.c
index 0ae9f353f4..aa2aa119f5 100644
--- a/bfd/elf64-ia64-vms.c
+++ b/bfd/elf64-ia64-vms.c
@@ -840,7 +840,7 @@ elf64_ia64_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr,
 {
   const char *name;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   if (is_unwind_section_name (abfd, name))
     {
@@ -1286,12 +1286,12 @@ elf64_ia64_create_dynamic_sections (bfd *abfd,
   s = bfd_make_section_anyway_with_flags (abfd, ".dynamic",
 					  flags | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
 
   s = bfd_make_section_anyway_with_flags (abfd, ".plt", flags | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+      || !bfd_set_section_alignment (s, bed->plt_alignment))
     return FALSE;
   ia64_info->root.splt = s;
 
@@ -1307,7 +1307,7 @@ elf64_ia64_create_dynamic_sections (bfd *abfd,
 					   | SEC_IN_MEMORY
 					   | SEC_LINKER_CREATED));
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, 0))
+      || !bfd_set_section_alignment (s, 0))
     return FALSE;
 
   /* Create a fixup section.  */
@@ -1317,7 +1317,7 @@ elf64_ia64_create_dynamic_sections (bfd *abfd,
 					   | SEC_IN_MEMORY
 					   | SEC_LINKER_CREATED));
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, 3))
+      || !bfd_set_section_alignment (s, 3))
     return FALSE;
   ia64_info->fixups_sec = s;
 
@@ -1328,7 +1328,7 @@ elf64_ia64_create_dynamic_sections (bfd *abfd,
 					   | SEC_IN_MEMORY
 					   | SEC_LINKER_CREATED));
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, 3))
+      || !bfd_set_section_alignment (s, 3))
     return FALSE;
   s->size = sizeof (struct elf64_vms_transfer);
   ia64_info->transfer_sec = s;
@@ -1340,7 +1340,7 @@ elf64_ia64_create_dynamic_sections (bfd *abfd,
 					   | SEC_IN_MEMORY
 					   | SEC_READONLY));
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, 3))
+      || !bfd_set_section_alignment (s, 3))
     return FALSE;
   ia64_info->note_sec = s;
 
@@ -1738,7 +1738,7 @@ get_got (bfd *abfd, struct elf64_ia64_link_hash_table *ia64_info)
       got = bfd_make_section_anyway_with_flags (dynobj, ".got",
 						flags | SEC_SMALL_DATA);
       if (got == NULL
-	  || !bfd_set_section_alignment (dynobj, got, 3))
+	  || !bfd_set_section_alignment (got, 3))
 	return NULL;
       ia64_info->root.sgot = got;
     }
@@ -1774,7 +1774,7 @@ get_fptr (bfd *abfd, struct bfd_link_info *info,
 						     : SEC_READONLY)
 						  | SEC_LINKER_CREATED));
       if (!fptr
-	  || !bfd_set_section_alignment (dynobj, fptr, 4))
+	  || !bfd_set_section_alignment (fptr, 4))
 	{
 	  BFD_ASSERT (0);
 	  return NULL;
@@ -1792,7 +1792,7 @@ get_fptr (bfd *abfd, struct bfd_link_info *info,
 							  | SEC_LINKER_CREATED
 							  | SEC_READONLY));
 	  if (fptr_rel == NULL
-	      || !bfd_set_section_alignment (dynobj, fptr_rel, 3))
+	      || !bfd_set_section_alignment (fptr_rel, 3))
 	    {
 	      BFD_ASSERT (0);
 	      return NULL;
@@ -1827,7 +1827,7 @@ get_pltoff (bfd *abfd, struct elf64_ia64_link_hash_table *ia64_info)
 						    | SEC_SMALL_DATA
 						    | SEC_LINKER_CREATED));
       if (!pltoff
-	  || !bfd_set_section_alignment (dynobj, pltoff, 4))
+	  || !bfd_set_section_alignment (pltoff, 4))
 	{
 	  BFD_ASSERT (0);
 	  return NULL;
@@ -1855,11 +1855,9 @@ get_reloc_section (bfd *abfd,
     return NULL;
 
   BFD_ASSERT ((CONST_STRNEQ (srel_name, ".rela")
-	       && strcmp (bfd_get_section_name (abfd, sec),
-			  srel_name+5) == 0)
+	       && strcmp (bfd_section_name (sec), srel_name+5) == 0)
 	      || (CONST_STRNEQ (srel_name, ".rel")
-		  && strcmp (bfd_get_section_name (abfd, sec),
-			     srel_name+4) == 0));
+		  && strcmp (bfd_section_name (sec), srel_name+4) == 0));
 
   dynobj = ia64_info->root.dynobj;
   if (!dynobj)
@@ -1875,7 +1873,7 @@ get_reloc_section (bfd *abfd,
 						  | SEC_LINKER_CREATED
 						  | SEC_READONLY));
       if (srel == NULL
-	  || !bfd_set_section_alignment (dynobj, srel, 3))
+	  || !bfd_set_section_alignment (srel, 3))
 	return NULL;
     }
 
@@ -2750,7 +2748,7 @@ elf64_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 
 	  /* It's OK to base decisions on the section name, because none
 	     of the dynobj section names depend upon the input files.  */
-	  name = bfd_get_section_name (dynobj, sec);
+	  name = bfd_section_name (sec);
 
 	  if (strcmp (name, ".got.plt") == 0)
 	    strip = FALSE;
@@ -4501,8 +4499,8 @@ elf64_vms_section_from_shdr (bfd *abfd,
     {
       asection *newsect = hdr->bfd_section;
 
-      if (! bfd_set_section_flags
-	  (abfd, newsect, bfd_get_section_flags (abfd, newsect) | secflags))
+      if (!bfd_set_section_flags (newsect,
+				  bfd_section_flags (newsect) | secflags))
 	return FALSE;
     }
 
@@ -4629,7 +4627,7 @@ elf64_vms_section_processing (bfd *abfd ATTRIBUTE_UNUSED,
 {
   if (hdr->bfd_section != NULL)
     {
-      const char *name = bfd_get_section_name (abfd, hdr->bfd_section);
+      const char *name = bfd_section_name (hdr->bfd_section);
 
       if (strcmp (name, ".text") == 0)
 	hdr->sh_flags |= SHF_IA_64_VMS_SHARED;
@@ -4670,7 +4668,7 @@ elf64_vms_final_write_processing (bfd *abfd)
     {
       hdr = &elf_section_data (s)->this_hdr;
 
-      if (strcmp (bfd_get_section_name (abfd, hdr->bfd_section),
+      if (strcmp (bfd_section_name (hdr->bfd_section),
 		  ".IA_64.unwind_info") == 0)
 	unwind_info_sect_idx = elf_section_data (s)->this_idx;
 
diff --git a/bfd/elf64-mmix.c b/bfd/elf64-mmix.c
index 18ed456c2b..69d57a2ce9 100644
--- a/bfd/elf64-mmix.c
+++ b/bfd/elf64-mmix.c
@@ -1414,7 +1414,7 @@ mmix_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 						  symtab_hdr->sh_link,
 						  sym->st_name);
 	  if (name == NULL)
-	    name = bfd_section_name (input_bfd, sec);
+	    name = bfd_section_name (sec);
 	}
       else
 	{
@@ -1606,9 +1606,9 @@ mmix_final_link_relocate (reloc_howto_type *howto, asection *input_section,
 	return bfd_reloc_undefined;
 
       /* Check that we're not relocating against a register symbol.  */
-      if (strcmp (bfd_get_section_name (symsec->owner, symsec),
+      if (strcmp (bfd_section_name (symsec),
 		  MMIX_REG_CONTENTS_SECTION_NAME) == 0
-	  || strcmp (bfd_get_section_name (symsec->owner, symsec),
+	  || strcmp (bfd_section_name (symsec),
 		     MMIX_REG_SECTION_NAME) == 0)
 	{
 	  /* Note: This is separated out into two messages in order
@@ -1641,7 +1641,7 @@ mmix_final_link_relocate (reloc_howto_type *howto, asection *input_section,
       if (symsec == NULL)
 	return bfd_reloc_undefined;
 
-      if (strcmp (bfd_get_section_name (symsec->owner, symsec),
+      if (strcmp (bfd_section_name (symsec),
 		  MMIX_REG_CONTENTS_SECTION_NAME) == 0)
 	{
 	  if ((srel & 7) != 0 || srel < 32*8 || srel > 255*8)
@@ -1652,7 +1652,7 @@ mmix_final_link_relocate (reloc_howto_type *howto, asection *input_section,
 	    }
 	  srel /= 8;
 	}
-      else if (strcmp (bfd_get_section_name (symsec->owner, symsec),
+      else if (strcmp (bfd_section_name (symsec),
 		       MMIX_REG_SECTION_NAME) == 0)
 	{
 	  if (srel < 0 || srel > 255)
@@ -1704,9 +1704,9 @@ mmix_final_link_relocate (reloc_howto_type *howto, asection *input_section,
 	   accidentally handling it.  */
 	if (!bfd_is_abs_section (symsec)
 	    && !bfd_is_und_section (symsec)
-	    && strcmp (bfd_get_section_name (symsec->owner, symsec),
+	    && strcmp (bfd_section_name (symsec),
 		       MMIX_REG_CONTENTS_SECTION_NAME) != 0
-	    && strcmp (bfd_get_section_name (symsec->owner, symsec),
+	    && strcmp (bfd_section_name (symsec),
 		       MMIX_REG_SECTION_NAME) != 0)
 	{
 	  _bfd_error_handler
@@ -1722,10 +1722,8 @@ mmix_final_link_relocate (reloc_howto_type *howto, asection *input_section,
 	first_global = 255;
       else
 	{
-	  first_global
-	    = bfd_get_section_vma (input_section->output_section->owner,
-				   regsec) / 8;
-	  if (strcmp (bfd_get_section_name (symsec->owner, symsec),
+	  first_global = bfd_section_vma (regsec) / 8;
+	  if (strcmp (bfd_section_name (symsec),
 		      MMIX_REG_CONTENTS_SECTION_NAME) == 0)
 	    {
 	      if ((srel & 7) != 0 || srel < 32*8 || srel > 255*8)
@@ -1876,9 +1874,7 @@ mmix_elf_check_common_relocs  (bfd *abfd,
 		 those flags, as that is what currently happens for usual
 		 GREG allocations, and that works.  */
 	      if (allocated_gregs_section == NULL
-		  || !bfd_set_section_alignment (bpo_greg_owner,
-						 allocated_gregs_section,
-						 3))
+		  || !bfd_set_section_alignment (allocated_gregs_section, 3))
 		return FALSE;
 
 	      gregdata = (struct bpo_greg_section_info *)
@@ -2123,7 +2119,7 @@ mmix_elf_section_from_bfd_section (bfd *       abfd ATTRIBUTE_UNUSED,
 				   asection *  sec,
 				   int *       retval)
 {
-  if (strcmp (bfd_get_section_name (abfd, sec), MMIX_REG_SECTION_NAME) == 0)
+  if (strcmp (bfd_section_name (sec), MMIX_REG_SECTION_NAME) == 0)
     *retval = SHN_REGISTER;
   else
     return FALSE;
@@ -2222,7 +2218,7 @@ mmix_elf_final_link (bfd *abfd, struct bfd_link_info *info)
   if (reg_section != NULL)
     {
       /* FIXME: Pass error state gracefully.  */
-      if (bfd_get_section_flags (abfd, reg_section) & SEC_HAS_CONTENTS)
+      if (bfd_section_flags (reg_section) & SEC_HAS_CONTENTS)
 	_bfd_abort (__FILE__, __LINE__, _("register section has contents\n"));
 
       /* Really remove the section, if it hasn't already been done.  */
@@ -2330,7 +2326,7 @@ _bfd_mmix_before_linker_allocation (bfd *abfd ATTRIBUTE_UNUSED,
   /* Set the zeroth-order estimate for the GREGs size.  */
   gregs_size = n_gregs * 8;
 
-  if (!bfd_set_section_size (bpo_greg_owner, bpo_gregs_section, gregs_size))
+  if (!bfd_set_section_size (bpo_gregs_section, gregs_size))
     return FALSE;
 
   /* Allocate and set up the GREG arrays.  They're filled in at relaxation
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 345710ee59..14119dd259 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -3487,7 +3487,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
       htab->sfpr = bfd_make_section_anyway_with_flags (dynobj, ".sfpr",
 						       flags);
       if (htab->sfpr == NULL
-	  || !bfd_set_section_alignment (dynobj, htab->sfpr, 2))
+	  || !bfd_set_section_alignment (htab->sfpr, 2))
 	return FALSE;
     }
 
@@ -3498,7 +3498,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
   htab->glink = bfd_make_section_anyway_with_flags (dynobj, ".glink",
 						    flags);
   if (htab->glink == NULL
-      || !bfd_set_section_alignment (dynobj, htab->glink, 3))
+      || !bfd_set_section_alignment (htab->glink, 3))
     return FALSE;
 
   /* The part of .glink used by global entry stubs, separate so that
@@ -3506,7 +3506,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
   htab->global_entry = bfd_make_section_anyway_with_flags (dynobj, ".glink",
 							   flags);
   if (htab->global_entry == NULL
-      || !bfd_set_section_alignment (dynobj, htab->global_entry, 2))
+      || !bfd_set_section_alignment (htab->global_entry, 2))
     return FALSE;
 
   if (!info->no_ld_generated_unwind_info)
@@ -3517,14 +3517,14 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
 								 ".eh_frame",
 								 flags);
       if (htab->glink_eh_frame == NULL
-	  || !bfd_set_section_alignment (dynobj, htab->glink_eh_frame, 2))
+	  || !bfd_set_section_alignment (htab->glink_eh_frame, 2))
 	return FALSE;
     }
 
   flags = SEC_ALLOC | SEC_LINKER_CREATED;
   htab->elf.iplt = bfd_make_section_anyway_with_flags (dynobj, ".iplt", flags);
   if (htab->elf.iplt == NULL
-      || !bfd_set_section_alignment (dynobj, htab->elf.iplt, 3))
+      || !bfd_set_section_alignment (htab->elf.iplt, 3))
     return FALSE;
 
   flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
@@ -3532,7 +3532,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
   htab->elf.irelplt
     = bfd_make_section_anyway_with_flags (dynobj, ".rela.iplt", flags);
   if (htab->elf.irelplt == NULL
-      || !bfd_set_section_alignment (dynobj, htab->elf.irelplt, 3))
+      || !bfd_set_section_alignment (htab->elf.irelplt, 3))
     return FALSE;
 
   /* Create branch lookup table for plt_branch stubs.  */
@@ -3541,7 +3541,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
   htab->brlt = bfd_make_section_anyway_with_flags (dynobj, ".branch_lt",
 						   flags);
   if (htab->brlt == NULL
-      || !bfd_set_section_alignment (dynobj, htab->brlt, 3))
+      || !bfd_set_section_alignment (htab->brlt, 3))
     return FALSE;
 
   /* Local plt entries, put in .branch_lt but a separate section for
@@ -3549,7 +3549,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
   htab->pltlocal = bfd_make_section_anyway_with_flags (dynobj, ".branch_lt",
 						       flags);
   if (htab->pltlocal == NULL
-      || !bfd_set_section_alignment (dynobj, htab->pltlocal, 3))
+      || !bfd_set_section_alignment (htab->pltlocal, 3))
     return FALSE;
 
   if (!bfd_link_pic (info))
@@ -3560,13 +3560,13 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
   htab->relbrlt
     = bfd_make_section_anyway_with_flags (dynobj, ".rela.branch_lt", flags);
   if (htab->relbrlt == NULL
-      || !bfd_set_section_alignment (dynobj, htab->relbrlt, 3))
+      || !bfd_set_section_alignment (htab->relbrlt, 3))
     return FALSE;
 
   htab->relpltlocal
     = bfd_make_section_anyway_with_flags (dynobj, ".rela.branch_lt", flags);
   if (htab->relpltlocal == NULL
-      || !bfd_set_section_alignment (dynobj, htab->relpltlocal, 3))
+      || !bfd_set_section_alignment (htab->relpltlocal, 3))
     return FALSE;
 
   return TRUE;
@@ -3762,13 +3762,13 @@ create_got_section (bfd *abfd, struct bfd_link_info *info)
 
   got = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   if (!got
-      || !bfd_set_section_alignment (abfd, got, 3))
+      || !bfd_set_section_alignment (got, 3))
     return FALSE;
 
   relgot = bfd_make_section_anyway_with_flags (abfd, ".rela.got",
 					       flags | SEC_READONLY);
   if (!relgot
-      || !bfd_set_section_alignment (abfd, relgot, 3))
+      || !bfd_set_section_alignment (relgot, 3))
     return FALSE;
 
   ppc64_elf_tdata (abfd)->got = got;
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 6bc6dfd50e..4ffcde92e2 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -1957,7 +1957,7 @@ elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 	  /* Strip this section if we don't need it; see the
 	     comment below.  */
 	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+      else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
 	{
 	  if (s->size != 0 && s != htab->elf.srelplt)
 	    relocs = TRUE;
@@ -3203,7 +3203,7 @@ elf_s390_relocate_section (bfd *output_bfd,
 	      if (name == NULL)
 		return FALSE;
 	      if (*name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  if (r == bfd_reloc_overflow)
diff --git a/bfd/elf64-sparc.c b/bfd/elf64-sparc.c
index 50b051aa6b..8bf9623bd9 100644
--- a/bfd/elf64-sparc.c
+++ b/bfd/elf64-sparc.c
@@ -748,7 +748,7 @@ elf64_sparc_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
 {
   const char *name;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   if (strcmp (name, ".stab") == 0)
     {
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index e5c8003a68..16e66f95d2 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -3989,7 +3989,7 @@ check_relocation_error:
 	      if (name == NULL)
 		return FALSE;
 	      if (*name == '\0')
-		name = bfd_section_name (input_bfd, sec);
+		name = bfd_section_name (sec);
 	    }
 
 	  if (r == bfd_reloc_overflow)
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 8f18be07db..2169e2b40c 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -162,13 +162,13 @@ _bfd_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
 					  (bed->dynamic_sec_flags
 					   | SEC_READONLY));
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->srelgot = s;
 
   s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->sgot = s;
 
@@ -176,8 +176,7 @@ _bfd_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
     {
       s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
       if (s == NULL
-	  || !bfd_set_section_alignment (abfd, s,
-					 bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       htab->sgotplt = s;
     }
@@ -286,25 +285,25 @@ _bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
   s = bfd_make_section_anyway_with_flags (abfd, ".gnu.version_d",
 					  flags | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
 
   s = bfd_make_section_anyway_with_flags (abfd, ".gnu.version",
 					  flags | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, 1))
+      || !bfd_set_section_alignment (s, 1))
     return FALSE;
 
   s = bfd_make_section_anyway_with_flags (abfd, ".gnu.version_r",
 					  flags | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
 
   s = bfd_make_section_anyway_with_flags (abfd, ".dynsym",
 					  flags | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   elf_hash_table (info)->dynsym = s;
 
@@ -315,7 +314,7 @@ _bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 
   s = bfd_make_section_anyway_with_flags (abfd, ".dynamic", flags);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
 
   /* The special symbol _DYNAMIC is always set to the start of the
@@ -334,7 +333,7 @@ _bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section_anyway_with_flags (abfd, ".hash",
 					      flags | SEC_READONLY);
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       elf_section_data (s)->this_hdr.sh_entsize = bed->s->sizeof_hash_entry;
     }
@@ -344,7 +343,7 @@ _bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section_anyway_with_flags (abfd, ".gnu.hash",
 					      flags | SEC_READONLY);
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       /* For 64-bit ELF, .gnu.hash is a non-uniform entity size section:
 	 4 32-bit words followed by variable count of 64-bit words, then
@@ -395,7 +394,7 @@ _bfd_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 
   s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+      || !bfd_set_section_alignment (s, bed->plt_alignment))
     return FALSE;
   htab->splt = s;
 
@@ -415,7 +414,7 @@ _bfd_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 					   ? ".rela.plt" : ".rel.plt"),
 					  flags | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->srelplt = s;
 
@@ -466,7 +465,7 @@ _bfd_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 						   ? ".rela.bss" : ".rel.bss"),
 						  flags | SEC_READONLY);
 	  if (s == NULL
-	      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+	      || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	    return FALSE;
 	  htab->srelbss = s;
 
@@ -477,8 +476,7 @@ _bfd_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 			   ? ".rela.data.rel.ro" : ".rel.data.rel.ro"),
 		    flags | SEC_READONLY));
 	      if (s == NULL
-		  || ! bfd_set_section_alignment (abfd, s,
-						  bed->s->log_file_align))
+		  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 		return FALSE;
 	      htab->sreldynrelro = s;
 	    }
@@ -3099,7 +3097,7 @@ _bfd_elf_adjust_dynamic_copy (struct bfd_link_info *info,
      know the symbol alignment requirement, we start with the
      maximum alignment and check low bits of the symbol address
      for the minimum alignment.  */
-  power_of_two = bfd_get_section_alignment (sec->owner, sec);
+  power_of_two = bfd_section_alignment (sec);
   mask = ((bfd_vma) 1 << power_of_two) - 1;
   while ((h->root.u.def.value & mask) != 0)
     {
@@ -3107,12 +3105,10 @@ _bfd_elf_adjust_dynamic_copy (struct bfd_link_info *info,
        --power_of_two;
     }
 
-  if (power_of_two > bfd_get_section_alignment (dynbss->owner,
-						dynbss))
+  if (power_of_two > bfd_section_alignment (dynbss))
     {
       /* Adjust the section alignment if needed.  */
-      if (! bfd_set_section_alignment (dynbss->owner, dynbss,
-				       power_of_two))
+      if (!bfd_set_section_alignment (dynbss, power_of_two))
 	return FALSE;
     }
 
@@ -3949,7 +3945,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
     {
       const char *name;
 
-      name = bfd_get_section_name (abfd, s);
+      name = bfd_section_name (s);
       if (CONST_STRNEQ (name, ".gnu.warning."))
 	{
 	  char *msg;
@@ -11393,8 +11389,7 @@ elf_reloc_link_order (bfd *output_bfd,
 
 	case bfd_reloc_overflow:
 	  if (link_order->type == bfd_section_reloc_link_order)
-	    sym_name = bfd_section_name (output_bfd,
-					 link_order->u.reloc.p->u.section);
+	    sym_name = bfd_section_name (link_order->u.reloc.p->u.section);
 	  else
 	    sym_name = link_order->u.reloc.p->u.name;
 	  (*info->callbacks->reloc_overflow) (info, NULL, sym_name,
@@ -11837,7 +11832,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
 	    }
 
 	  attr_size = bfd_elf_obj_attr_size (abfd);
-	  bfd_set_section_size (abfd, o, attr_size);
+	  bfd_set_section_size (o, attr_size);
 	  /* Skip this section later on.  */
 	  o->map_head.link_order = NULL;
 	  if (attr_size)
@@ -13588,7 +13583,7 @@ bfd_elf_parse_eh_frame_entries (bfd *abfd ATTRIBUTE_UNUSED,
 
       for (sec = ibfd->sections; sec; sec = sec->next)
 	{
-	  if (CONST_STRNEQ (bfd_section_name (ibfd, sec), ".eh_frame_entry")
+	  if (CONST_STRNEQ (bfd_section_name (sec), ".eh_frame_entry")
 	      && init_reloc_cookie_rels (&cookie, info, ibfd, sec))
 	    {
 	      _bfd_elf_parse_eh_frame_entry (info, sec, &cookie);
@@ -14444,7 +14439,7 @@ get_dynamic_reloc_section_name (bfd *       abfd,
 				bfd_boolean is_rela)
 {
   char *name;
-  const char *old_name = bfd_get_section_name (NULL, sec);
+  const char *old_name = bfd_section_name (sec);
   const char *prefix = is_rela ? ".rela" : ".rel";
 
   if (old_name == NULL)
@@ -14527,7 +14522,7 @@ _bfd_elf_make_dynamic_reloc_section (asection *sec,
 		 section named "auto" we'll get ".relauto" which is
 		 seen to be a .rela section.  */
 	      elf_section_type (reloc_sec) = is_rela ? SHT_RELA : SHT_REL;
-	      if (! bfd_set_section_alignment (dynobj, reloc_sec, alignment))
+	      if (!bfd_set_section_alignment (reloc_sec, alignment))
 		reloc_sec = NULL;
 	    }
 	}
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 7132b6bc73..6f3bd0d565 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -6790,7 +6790,7 @@ elfNN_aarch64_relocate_section (bfd *output_bfd,
 	  name = (bfd_elf_string_from_elf_section
 		  (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	  if (name == NULL || *name == '\0')
-	    name = bfd_section_name (input_bfd, sec);
+	    name = bfd_section_name (sec);
 	}
 
       if (r_symndx != 0
@@ -7273,7 +7273,7 @@ elfNN_aarch64_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info)
 
       for (sec = ibfd->sections; sec != NULL; sec = sec->next)
 	{
-	  if ((bfd_get_section_flags (ibfd, sec)
+	  if ((bfd_section_flags (sec)
 	       & (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
 	      == (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
 	    only_data_sections = FALSE;
@@ -7519,13 +7519,13 @@ aarch64_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
 					  (bed->dynamic_sec_flags
 					   | SEC_READONLY));
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->srelgot = s;
 
   s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->sgot = s;
   htab->sgot->size += GOT_ENTRY_SIZE;
@@ -7547,8 +7547,7 @@ aarch64_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
     {
       s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
       if (s == NULL
-	  || !bfd_set_section_alignment (abfd, s,
-					 bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       htab->sgotplt = s;
     }
@@ -9150,7 +9149,7 @@ elfNN_aarch64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 	  /* Strip this section if we don't need it; see the
 	     comment below.  */
 	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+      else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
 	{
 	  if (s->size != 0 && s != htab->root.srelplt)
 	    relocs = TRUE;
diff --git a/bfd/elfnn-ia64.c b/bfd/elfnn-ia64.c
index 65471dd4a4..da10178d4f 100644
--- a/bfd/elfnn-ia64.c
+++ b/bfd/elfnn-ia64.c
@@ -956,7 +956,7 @@ elfNN_ia64_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr,
 {
   const char *name;
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   if (is_unwind_section_name (abfd, name))
     {
@@ -1561,11 +1561,10 @@ elfNN_ia64_create_dynamic_sections (bfd *abfd,
     return FALSE;
 
   {
-    flagword flags = bfd_get_section_flags (abfd, ia64_info->root.sgot);
-    bfd_set_section_flags (abfd, ia64_info->root.sgot,
-			   SEC_SMALL_DATA | flags);
+    flagword flags = bfd_section_flags (ia64_info->root.sgot);
+    bfd_set_section_flags (ia64_info->root.sgot, SEC_SMALL_DATA | flags);
     /* The .got section is always aligned at 8 bytes.  */
-    if (! bfd_set_section_alignment (abfd, ia64_info->root.sgot, 3))
+    if (!bfd_set_section_alignment (ia64_info->root.sgot, 3))
       return FALSE;
   }
 
@@ -1579,7 +1578,7 @@ elfNN_ia64_create_dynamic_sections (bfd *abfd,
 					   | SEC_LINKER_CREATED
 					   | SEC_READONLY));
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, LOG_SECTION_ALIGN))
+      || !bfd_set_section_alignment (s, LOG_SECTION_ALIGN))
     return FALSE;
   ia64_info->rel_pltoff_sec = s;
 
@@ -1977,11 +1976,11 @@ get_got (bfd *abfd, struct bfd_link_info *info,
       got = ia64_info->root.sgot;
 
       /* The .got section is always aligned at 8 bytes.  */
-      if (!bfd_set_section_alignment (abfd, got, 3))
+      if (!bfd_set_section_alignment (got, 3))
 	return NULL;
 
-      flags = bfd_get_section_flags (abfd, got);
-      if (! bfd_set_section_flags (abfd, got, SEC_SMALL_DATA | flags))
+      flags = bfd_section_flags (got);
+      if (!bfd_set_section_flags (got, SEC_SMALL_DATA | flags))
 	return NULL;
     }
 
@@ -2016,7 +2015,7 @@ get_fptr (bfd *abfd, struct bfd_link_info *info,
 						     ? 0 : SEC_READONLY)
 						  | SEC_LINKER_CREATED));
       if (!fptr
-	  || !bfd_set_section_alignment (abfd, fptr, 4))
+	  || !bfd_set_section_alignment (fptr, 4))
 	{
 	  BFD_ASSERT (0);
 	  return NULL;
@@ -2034,8 +2033,7 @@ get_fptr (bfd *abfd, struct bfd_link_info *info,
 							  | SEC_LINKER_CREATED
 							  | SEC_READONLY));
 	  if (fptr_rel == NULL
-	      || !bfd_set_section_alignment (abfd, fptr_rel,
-					     LOG_SECTION_ALIGN))
+	      || !bfd_set_section_alignment (fptr_rel, LOG_SECTION_ALIGN))
 	    {
 	      BFD_ASSERT (0);
 	      return NULL;
@@ -2071,7 +2069,7 @@ get_pltoff (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED,
 						    | SEC_SMALL_DATA
 						    | SEC_LINKER_CREATED));
       if (!pltoff
-	  || !bfd_set_section_alignment (abfd, pltoff, 4))
+	  || !bfd_set_section_alignment (pltoff, 4))
 	{
 	  BFD_ASSERT (0);
 	  return NULL;
@@ -2112,8 +2110,7 @@ get_reloc_section (bfd *abfd,
 						  | SEC_LINKER_CREATED
 						  | SEC_READONLY));
       if (srel == NULL
-	  || !bfd_set_section_alignment (dynobj, srel,
-					 LOG_SECTION_ALIGN))
+	  || !bfd_set_section_alignment (srel, LOG_SECTION_ALIGN))
 	return NULL;
     }
 
@@ -3171,7 +3168,7 @@ elfNN_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
 
 	  /* It's OK to base decisions on the section name, because none
 	     of the dynobj section names depend upon the input files.  */
-	  name = bfd_get_section_name (dynobj, sec);
+	  name = bfd_section_name (sec);
 
 	  if (strcmp (name, ".got.plt") == 0)
 	    strip = FALSE;
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index 1d04ae9b7e..ccf904af1b 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -310,13 +310,13 @@ riscv_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
 					  (bed->dynamic_sec_flags
 					   | SEC_READONLY));
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->srelgot = s;
 
   s = s_got = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->sgot = s;
 
@@ -327,8 +327,7 @@ riscv_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
     {
       s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
       if (s == NULL
-	  || !bfd_set_section_alignment (abfd, s,
-					 bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       htab->sgotplt = s;
 
@@ -1840,7 +1839,7 @@ riscv_elf_relocate_section (bfd *output_bfd,
 	  name = (bfd_elf_string_from_elf_section
 		  (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	  if (name == NULL || *name == '\0')
-	    name = bfd_section_name (input_bfd, sec);
+	    name = bfd_section_name (sec);
 	}
 
       resolved_to_zero = (h != NULL
@@ -3160,7 +3159,7 @@ _bfd_riscv_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info)
 
       for (sec = ibfd->sections; sec != NULL; sec = sec->next)
 	{
-	  if ((bfd_get_section_flags (ibfd, sec)
+	  if ((bfd_section_flags (sec)
 	       & (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
 	      == (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
 	    only_data_sections = FALSE;
diff --git a/bfd/elfxx-aarch64.c b/bfd/elfxx-aarch64.c
index 1f69280713..e7290aaab1 100644
--- a/bfd/elfxx-aarch64.c
+++ b/bfd/elfxx-aarch64.c
@@ -758,11 +758,9 @@ _bfd_aarch64_elf_link_setup_gnu_properties (struct bfd_link_info *info,
 	      _("%F%P: failed to create GNU property section\n"));
 
           align = (bfd_get_mach (ebfd) & bfd_mach_aarch64_ilp32) ? 2 : 3;
-          if (!bfd_set_section_alignment (ebfd, sec, align))
-            {
-              info->callbacks->einfo (_("%F%pA: failed to align section\n"),
-                                      sec);
-            }
+	  if (!bfd_set_section_alignment (sec, align))
+	    info->callbacks->einfo (_("%F%pA: failed to align section\n"),
+				    sec);
 
 	  elf_section_type (sec) = SHT_NOTE;
 	}
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 8ad5268520..496e42e7c5 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -1726,7 +1726,7 @@ section_allows_mips16_refs_p (asection *section)
 {
   const char *name;
 
-  name = bfd_get_section_name (section->owner, section);
+  name = bfd_section_name (section);
   return (FN_STUB_P (name)
 	  || CALL_STUB_P (name)
 	  || CALL_FP_STUB_P (name)
@@ -1937,7 +1937,7 @@ mips_elf_add_la25_intro (struct mips_elf_la25_stub *stub,
 
   /* Make sure that any padding goes before the stub.  */
   align = input_section->alignment_power;
-  if (!bfd_set_section_alignment (s->owner, s, align))
+  if (!bfd_set_section_alignment (s, align))
     return FALSE;
   if (align > 3)
     s->size = (1 << align) - 8;
@@ -1974,7 +1974,7 @@ mips_elf_add_la25_trampoline (struct mips_elf_la25_stub *stub,
       asection *input_section = stub->h->root.root.u.def.section;
       s = htab->add_stub_section (".text", NULL,
 				  input_section->output_section);
-      if (s == NULL || !bfd_set_section_alignment (s->owner, s, 4))
+      if (s == NULL || !bfd_set_section_alignment (s, 4))
 	return FALSE;
       htab->strampoline = s;
     }
@@ -2992,7 +2992,7 @@ mips_elf_output_extsym (struct mips_elf_link_hash_entry *h, void *data)
 	    h->esym.asym.sc = scUndefined;
 	  else
 	    {
-	      name = bfd_section_name (output_section->owner, output_section);
+	      name = bfd_section_name (output_section);
 
 	      if (strcmp (name, ".text") == 0)
 		h->esym.asym.sc = scText;
@@ -3265,8 +3265,8 @@ mips_elf_rel_dyn_section (struct bfd_link_info *info, bfd_boolean create_p)
 						    | SEC_LINKER_CREATED
 						    | SEC_READONLY));
       if (sreloc == NULL
-	  || ! bfd_set_section_alignment (dynobj, sreloc,
-					  MIPS_ELF_LOG_FILE_ALIGN (dynobj)))
+	  || !bfd_set_section_alignment (sreloc,
+					 MIPS_ELF_LOG_FILE_ALIGN (dynobj)))
 	return NULL;
     }
   return sreloc;
@@ -5201,8 +5201,7 @@ mips_elf_create_compact_rel_section
 
       s = bfd_make_section_anyway_with_flags (abfd, ".compact_rel", flags);
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s,
-					  MIPS_ELF_LOG_FILE_ALIGN (abfd)))
+	  || !bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd)))
 	return FALSE;
 
       s->size = sizeof (Elf32_External_compact_rel);
@@ -5236,7 +5235,7 @@ mips_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
      in the function stub generation and in the linker script.  */
   s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, 4))
+      || !bfd_set_section_alignment (s, 4))
     return FALSE;
   htab->root.sgot = s;
 
@@ -5537,7 +5536,7 @@ mips_elf_calculate_relocation (bfd *abfd, bfd *input_bfd,
 						symtab_hdr->sh_link,
 						sym->st_name);
       if (*namep == NULL || **namep == '\0')
-	*namep = bfd_section_name (input_bfd, sec);
+	*namep = bfd_section_name (sec);
 
       /* For relocations against a section symbol and ones against no
 	 symbol (absolute relocations) infer the ISA mode from the addend.  */
@@ -5735,7 +5734,7 @@ mips_elf_calculate_relocation (bfd *abfd, bfd *input_bfd,
 	      sec = NULL;
 	      for (o = input_bfd->sections; o != NULL; o = o->next)
 		{
-		  if (CALL_FP_STUB_P (bfd_get_section_name (input_bfd, o)))
+		  if (CALL_FP_STUB_P (bfd_section_name (o)))
 		    {
 		      sec = h->call_fp_stub;
 		      break;
@@ -7385,7 +7384,7 @@ _bfd_mips_elf_section_processing (bfd *abfd, Elf_Internal_Shdr *hdr)
 
   if (hdr->bfd_section != NULL)
     {
-      const char *name = bfd_get_section_name (abfd, hdr->bfd_section);
+      const char *name = bfd_section_name (hdr->bfd_section);
 
       /* .sbss is not handled specially here because the GNU/Linux
 	 prelinker can convert .sbss from NOBITS to PROGBITS and
@@ -7514,10 +7513,9 @@ _bfd_mips_elf_section_from_shdr (bfd *abfd,
 
   if (flags)
     {
-      if (! bfd_set_section_flags (abfd, hdr->bfd_section,
-				   (bfd_get_section_flags (abfd,
-							   hdr->bfd_section)
-				    | flags)))
+      if (!bfd_set_section_flags (hdr->bfd_section,
+				  (bfd_section_flags (hdr->bfd_section)
+				   | flags)))
 	return FALSE;
     }
 
@@ -7624,7 +7622,7 @@ _bfd_mips_elf_section_from_shdr (bfd *abfd,
 bfd_boolean
 _bfd_mips_elf_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
 {
-  const char *name = bfd_get_section_name (abfd, sec);
+  const char *name = bfd_section_name (sec);
 
   if (strcmp (name, ".liblist") == 0)
     {
@@ -7764,12 +7762,12 @@ bfd_boolean
 _bfd_mips_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
 					asection *sec, int *retval)
 {
-  if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+  if (strcmp (bfd_section_name (sec), ".scommon") == 0)
     {
       *retval = SHN_MIPS_SCOMMON;
       return TRUE;
     }
-  if (strcmp (bfd_get_section_name (abfd, sec), ".acommon") == 0)
+  if (strcmp (bfd_section_name (sec), ".acommon") == 0)
     {
       *retval = SHN_MIPS_ACOMMON;
       return TRUE;
@@ -7996,7 +7994,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
       s = bfd_get_linker_section (abfd, ".dynamic");
       if (s != NULL)
 	{
-	  if (! bfd_set_section_flags (abfd, s, flags))
+	  if (!bfd_set_section_flags (s, flags))
 	    return FALSE;
 	}
     }
@@ -8013,8 +8011,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 					  MIPS_ELF_STUB_SECTION_NAME (abfd),
 					  flags | SEC_CODE);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s,
-				      MIPS_ELF_LOG_FILE_ALIGN (abfd)))
+      || !bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd)))
     return FALSE;
   htab->sstubs = s;
 
@@ -8025,8 +8022,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
       s = bfd_make_section_anyway_with_flags (abfd, ".rld_map",
 					      flags &~ (flagword) SEC_READONLY);
       if (s == NULL
-	  || ! bfd_set_section_alignment (abfd, s,
-					  MIPS_ELF_LOG_FILE_ALIGN (abfd)))
+	  || !bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd)))
 	return FALSE;
     }
 
@@ -8069,24 +8065,24 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
       /* Change alignments of some sections.  */
       s = bfd_get_linker_section (abfd, ".hash");
       if (s != NULL)
-	(void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
+	bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
 
       s = bfd_get_linker_section (abfd, ".dynsym");
       if (s != NULL)
-	(void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
+	bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
 
       s = bfd_get_linker_section (abfd, ".dynstr");
       if (s != NULL)
-	(void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
+	bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
 
       /* ??? */
       s = bfd_get_section_by_name (abfd, ".reginfo");
       if (s != NULL)
-	(void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
+	bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
 
       s = bfd_get_linker_section (abfd, ".dynamic");
       if (s != NULL)
-	(void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
+	bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
     }
 
   if (bfd_link_executable (info))
@@ -8378,7 +8374,7 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 
   /* Check for the mips16 stub sections.  */
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
   if (FN_STUB_P (name))
     {
       unsigned long r_symndx;
@@ -9375,12 +9371,12 @@ _bfd_mips_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
 	     Encourage better cache usage by aligning.  We do this
 	     lazily to avoid pessimizing traditional objects.  */
 	  if (!htab->is_vxworks
-	      && !bfd_set_section_alignment (dynobj, htab->root.splt, 5))
+	      && !bfd_set_section_alignment (htab->root.splt, 5))
 	    return FALSE;
 
 	  /* Make sure that .got.plt is word-aligned.  We do this lazily
 	     for the same reason as above.  */
-	  if (!bfd_set_section_alignment (dynobj, htab->root.sgotplt,
+	  if (!bfd_set_section_alignment (htab->root.sgotplt,
 					  MIPS_ELF_LOG_FILE_ALIGN (dynobj)))
 	    return FALSE;
 
@@ -9588,7 +9584,7 @@ _bfd_mips_elf_always_size_sections (bfd *output_bfd,
   sect = bfd_get_section_by_name (output_bfd, ".reginfo");
   if (sect != NULL)
     {
-      bfd_set_section_size (output_bfd, sect, sizeof (Elf32_External_RegInfo));
+      bfd_set_section_size (sect, sizeof (Elf32_External_RegInfo));
       sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS;
     }
 
@@ -9596,8 +9592,7 @@ _bfd_mips_elf_always_size_sections (bfd *output_bfd,
   sect = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags");
   if (sect != NULL)
     {
-      bfd_set_section_size (output_bfd, sect,
-			    sizeof (Elf_External_ABIFlags_v0));
+      bfd_set_section_size (sect, sizeof (Elf_External_ABIFlags_v0));
       sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS;
     }
 
@@ -10030,7 +10025,7 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
 
       /* It's OK to base decisions on the section name, because none
 	 of the dynobj section names depend upon the input files.  */
-      name = bfd_get_section_name (dynobj, s);
+      name = bfd_section_name (s);
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
 	continue;
@@ -10048,8 +10043,7 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
 		 assert a DT_TEXTREL entry rather than testing whether
 		 there exists a relocation to a read only section or
 		 not.  */
-	      outname = bfd_get_section_name (output_bfd,
-					      s->output_section);
+	      outname = bfd_section_name (s->output_section);
 	      target = bfd_get_section_by_name (output_bfd, outname + 4);
 	      if ((target != NULL
 		   && (target->flags & SEC_READONLY) != 0
@@ -12445,7 +12439,7 @@ _bfd_mips_final_write_processing (bfd *abfd)
 
 	case SHT_MIPS_GPTAB:
 	  BFD_ASSERT ((*hdrpp)->bfd_section != NULL);
-	  name = bfd_get_section_name (abfd, (*hdrpp)->bfd_section);
+	  name = bfd_section_name ((*hdrpp)->bfd_section);
 	  BFD_ASSERT (name != NULL
 		      && CONST_STRNEQ (name, ".gptab."));
 	  sec = bfd_get_section_by_name (abfd, name + sizeof ".gptab" - 1);
@@ -12455,7 +12449,7 @@ _bfd_mips_final_write_processing (bfd *abfd)
 
 	case SHT_MIPS_CONTENT:
 	  BFD_ASSERT ((*hdrpp)->bfd_section != NULL);
-	  name = bfd_get_section_name (abfd, (*hdrpp)->bfd_section);
+	  name = bfd_section_name ((*hdrpp)->bfd_section);
 	  BFD_ASSERT (name != NULL
 		      && CONST_STRNEQ (name, ".MIPS.content"));
 	  sec = bfd_get_section_by_name (abfd,
@@ -12475,7 +12469,7 @@ _bfd_mips_final_write_processing (bfd *abfd)
 
 	case SHT_MIPS_EVENTS:
 	  BFD_ASSERT ((*hdrpp)->bfd_section != NULL);
-	  name = bfd_get_section_name (abfd, (*hdrpp)->bfd_section);
+	  name = bfd_section_name ((*hdrpp)->bfd_section);
 	  BFD_ASSERT (name != NULL);
 	  if (CONST_STRNEQ (name, ".MIPS.events"))
 	    sec = bfd_get_section_by_name (abfd,
@@ -12861,8 +12855,7 @@ _bfd_mips_elf_gc_mark_extra_sections (struct bfd_link_info *info,
 
       for (o = sub->sections; o != NULL; o = o->next)
 	if (!o->gc_mark
-	    && MIPS_ELF_ABIFLAGS_SECTION_NAME_P
-		 (bfd_get_section_name (sub, o)))
+	    && MIPS_ELF_ABIFLAGS_SECTION_NAME_P (bfd_section_name (o)))
 	  {
 	    if (!_bfd_elf_gc_mark (info, o, gc_mark_hook))
 	      return FALSE;
@@ -15024,7 +15017,7 @@ _bfd_mips_elf_final_link (bfd *abfd, struct bfd_link_info *info)
 								   ".rtproc",
 								   flags);
 		  if (rtproc_sec == NULL
-		      || ! bfd_set_section_alignment (abfd, rtproc_sec, 4))
+		      || !bfd_set_section_alignment (rtproc_sec, 4))
 		    return FALSE;
 		}
 
diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c
index e479884071..735e83f3de 100644
--- a/bfd/elfxx-sparc.c
+++ b/bfd/elfxx-sparc.c
@@ -1263,15 +1263,14 @@ create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
 
   s = bfd_make_section_with_flags (abfd, ".iplt", pltflags);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+      || !bfd_set_section_alignment (s, bed->plt_alignment))
     return FALSE;
   htab->iplt = s;
 
   s = bfd_make_section_with_flags (abfd, ".rela.iplt",
 				   flags | SEC_READONLY);
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s,
-				      bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->irelplt = s;
 
@@ -4164,8 +4163,7 @@ do_relocation:
 		     || r_type == R_SPARC_UA32
 		     || r_type == R_SPARC_DISP32)
 		    && (((input_section->flags & SEC_DEBUGGING) != 0
-			 && strcmp (bfd_section_name (input_bfd,
-						      input_section),
+			 && strcmp (bfd_section_name (input_section),
 				    ".stab") == 0)
 			|| _bfd_elf_section_offset (output_bfd, info,
 						    input_section,
@@ -4194,7 +4192,7 @@ do_relocation:
 		    if (name == NULL)
 		      return FALSE;
 		    if (*name == '\0')
-		      name = bfd_section_name (input_bfd, sec);
+		      name = bfd_section_name (sec);
 		  }
 		(*info->callbacks->reloc_overflow)
 		  (info, (h ? &h->root : NULL), name, howto->name,
diff --git a/bfd/elfxx-tilegx.c b/bfd/elfxx-tilegx.c
index 2149fbcd22..41af167e1e 100644
--- a/bfd/elfxx-tilegx.c
+++ b/bfd/elfxx-tilegx.c
@@ -1438,13 +1438,13 @@ tilegx_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
 					  (bed->dynamic_sec_flags
 					   | SEC_READONLY));
   if (s == NULL
-      || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->srelgot = s;
 
   s = s_got = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   if (s == NULL
-      || !bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+      || !bfd_set_section_alignment (s, bed->s->log_file_align))
     return FALSE;
   htab->sgot = s;
 
@@ -1455,8 +1455,7 @@ tilegx_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
     {
       s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
       if (s == NULL
-	  || !bfd_set_section_alignment (abfd, s,
-					 bed->s->log_file_align))
+	  || !bfd_set_section_alignment (s, bed->s->log_file_align))
 	return FALSE;
       htab->sgotplt = s;
 
@@ -3032,7 +3031,7 @@ tilegx_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 	  name = (bfd_elf_string_from_elf_section
 		  (input_bfd, symtab_hdr->sh_link, sym->st_name));
 	  if (name == NULL || *name == '\0')
-	    name = bfd_section_name (input_bfd, sec);
+	    name = bfd_section_name (sec);
 	}
 
       switch (r_type)
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 634f911ca5..d8165d1752 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -1238,7 +1238,7 @@ _bfd_x86_elf_size_dynamic_sections (bfd *output_bfd,
 	{
 	  /* Strip these too.  */
 	}
-      else if (htab->is_reloc_section (bfd_get_section_name (dynobj, s)))
+      else if (htab->is_reloc_section (bfd_section_name (s)))
 	{
 	  if (s->size != 0
 	      && s != htab->elf.srelplt
@@ -1280,8 +1280,7 @@ _bfd_x86_elf_size_dynamic_sections (bfd *output_bfd,
 	 it is empty.  Update its section alignment now since it
 	 is non-empty.  */
       if (s == htab->elf.iplt)
-	bfd_set_section_alignment (s->owner, s,
-				   htab->plt.iplt_alignment);
+	bfd_set_section_alignment (s, htab->plt.iplt_alignment);
 
       /* Allocate memory for the section contents.  We use bfd_zalloc
 	 here in case unused entries are not reclaimed before the
@@ -2625,7 +2624,7 @@ _bfd_x86_elf_link_setup_gnu_properties
 	  if (sec == NULL)
 	    info->callbacks->einfo (_("%F%P: failed to create GNU property section\n"));
 
-	  if (!bfd_set_section_alignment (ebfd, sec, class_align))
+	  if (!bfd_set_section_alignment (sec, class_align))
 	    {
 error_alignment:
 	      info->callbacks->einfo (_("%F%pA: failed to align section\n"),
@@ -2839,11 +2838,11 @@ error_alignment:
      instead of in create_dynamic_sections so that they are always
      properly aligned even if create_dynamic_sections isn't called.  */
   sec = htab->elf.sgot;
-  if (!bfd_set_section_alignment (dynobj, sec, got_align))
+  if (!bfd_set_section_alignment (sec, got_align))
     goto error_alignment;
 
   sec = htab->elf.sgotplt;
-  if (!bfd_set_section_alignment (dynobj, sec, got_align))
+  if (!bfd_set_section_alignment (sec, got_align))
     goto error_alignment;
 
   /* Create the ifunc sections here so that check_relocs can be
@@ -2881,8 +2880,7 @@ error_alignment:
 	    = bfd_log2 (htab->non_lazy_plt->plt_entry_size);
 
 	  sec = pltsec;
-	  if (!bfd_set_section_alignment (sec->owner, sec,
-					  plt_alignment))
+	  if (!bfd_set_section_alignment (sec, plt_alignment))
 	    goto error_alignment;
 
 	  /* Create the GOT procedure linkage table.  */
@@ -2892,8 +2890,7 @@ error_alignment:
 	  if (sec == NULL)
 	    info->callbacks->einfo (_("%F%P: failed to create GOT PLT section\n"));
 
-	  if (!bfd_set_section_alignment (dynobj, sec,
-					  non_lazy_plt_alignment))
+	  if (!bfd_set_section_alignment (sec, non_lazy_plt_alignment))
 	    goto error_alignment;
 
 	  htab->plt_got = sec;
@@ -2913,8 +2910,7 @@ error_alignment:
 		  if (sec == NULL)
 		    info->callbacks->einfo (_("%F%P: failed to create IBT-enabled PLT section\n"));
 
-		  if (!bfd_set_section_alignment (dynobj, sec,
-						  plt_alignment))
+		  if (!bfd_set_section_alignment (sec, plt_alignment))
 		    goto error_alignment;
 		}
 	      else if (htab->params->bndplt && ABI_64_P (dynobj))
@@ -2928,8 +2924,7 @@ error_alignment:
 		  if (sec == NULL)
 		    info->callbacks->einfo (_("%F%P: failed to create BND PLT section\n"));
 
-		  if (!bfd_set_section_alignment (dynobj, sec,
-						  non_lazy_plt_alignment))
+		  if (!bfd_set_section_alignment (sec, non_lazy_plt_alignment))
 		    goto error_alignment;
 		}
 
@@ -2949,7 +2944,7 @@ error_alignment:
 	  if (sec == NULL)
 	    info->callbacks->einfo (_("%F%P: failed to create PLT .eh_frame section\n"));
 
-	  if (!bfd_set_section_alignment (dynobj, sec, class_align))
+	  if (!bfd_set_section_alignment (sec, class_align))
 	    goto error_alignment;
 
 	  htab->plt_eh_frame = sec;
@@ -2962,7 +2957,7 @@ error_alignment:
 	      if (sec == NULL)
 		info->callbacks->einfo (_("%F%P: failed to create GOT PLT .eh_frame section\n"));
 
-	      if (!bfd_set_section_alignment (dynobj, sec, class_align))
+	      if (!bfd_set_section_alignment (sec, class_align))
 		goto error_alignment;
 
 	      htab->plt_got_eh_frame = sec;
@@ -2976,7 +2971,7 @@ error_alignment:
 	      if (sec == NULL)
 		info->callbacks->einfo (_("%F%P: failed to create the second PLT .eh_frame section\n"));
 
-	      if (!bfd_set_section_alignment (dynobj, sec, class_align))
+	      if (!bfd_set_section_alignment (sec, class_align))
 		goto error_alignment;
 
 	      htab->plt_second_eh_frame = sec;
@@ -2995,7 +2990,7 @@ error_alignment:
 	 section backwards, resulting in a warning and section lma not
 	 being set properly.  It later leads to a "File truncated"
 	 error.  */
-      if (!bfd_set_section_alignment (sec->owner, sec, 0))
+      if (!bfd_set_section_alignment (sec, 0))
 	goto error_alignment;
 
       htab->plt.iplt_alignment = (normal_target
diff --git a/bfd/i386msdos.c b/bfd/i386msdos.c
index 9c4ab4cece..18f332f60d 100644
--- a/bfd/i386msdos.c
+++ b/bfd/i386msdos.c
@@ -109,7 +109,7 @@ msdos_object_p (bfd *abfd)
       return NULL;
     }
 
-  bfd_set_section_size (abfd, section, size);
+  bfd_set_section_size (section, size);
   section->alignment_power = 4;
 
   return abfd->xvec;
@@ -135,16 +135,16 @@ msdos_write_object_contents (bfd *abfd)
     {
       if (sec->size == 0)
 	continue;
-      if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+      if (bfd_section_flags (sec) & SEC_ALLOC)
 	{
-	  bfd_vma sec_vma = bfd_get_section_vma (abfd, sec) + sec->size;
+	  bfd_vma sec_vma = bfd_section_vma (sec) + sec->size;
 	  if (sec_vma > high_vma)
 	    high_vma = sec_vma;
 	}
-      if (bfd_get_section_flags (abfd, sec) & SEC_LOAD)
+      if (bfd_section_flags (sec) & SEC_LOAD)
 	{
 	  file_ptr sec_end = (sizeof (hdr)
-			      + bfd_get_section_vma (abfd, sec)
+			      + bfd_section_vma (sec)
 			      + sec->size);
 	  if (sec_end > outfile_size)
 	    outfile_size = sec_end;
@@ -195,9 +195,9 @@ msdos_set_section_contents (bfd *abfd,
   if (count == 0)
     return TRUE;
 
-  section->filepos = EXE_PAGE_SIZE + bfd_get_section_vma (abfd, section);
+  section->filepos = EXE_PAGE_SIZE + bfd_section_vma (section);
 
-  if (bfd_get_section_flags (abfd, section) & SEC_LOAD)
+  if (bfd_section_flags (section) & SEC_LOAD)
     {
       if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
 	  || bfd_bwrite (location, count, abfd) != count)
diff --git a/bfd/linker.c b/bfd/linker.c
index 2518371f24..143b8eb950 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -2396,7 +2396,7 @@ _bfd_generic_reloc_link_order (bfd *abfd,
 	  (*info->callbacks->reloc_overflow)
 	    (info, NULL,
 	     (link_order->type == bfd_section_reloc_link_order
-	      ? bfd_section_name (abfd, link_order->u.reloc.p->u.section)
+	      ? bfd_section_name (link_order->u.reloc.p->u.section)
 	      : link_order->u.reloc.p->u.name),
 	     r->howto->name, link_order->u.reloc.p->addend,
 	     NULL, NULL, 0);
@@ -2942,7 +2942,7 @@ _bfd_generic_section_already_linked (bfd *abfd ATTRIBUTE_UNUSED,
      into a single large link once section, which defeats the purpose
      of having link once sections in the first place.  */
 
-  name = bfd_get_section_name (abfd, sec);
+  name = bfd_section_name (sec);
 
   already_linked_list = bfd_section_already_linked_table_lookup (name);
 
diff --git a/bfd/mach-o.c b/bfd/mach-o.c
index 7d70087c95..117e410d83 100644
--- a/bfd/mach-o.c
+++ b/bfd/mach-o.c
@@ -437,7 +437,7 @@ bfd_mach_o_convert_section_name_to_mach_o (bfd *abfd ATTRIBUTE_UNUSED,
 					   bfd_mach_o_section *section)
 {
   const mach_o_section_name_xlat *xlat;
-  const char *name = bfd_get_section_name (abfd, sect);
+  const char *name = bfd_section_name (sect);
   const char *segname;
   const char *dot;
   unsigned int len;
@@ -2583,13 +2583,13 @@ bfd_mach_o_mangle_sections (bfd *abfd, bfd_mach_o_data_struct *mdata)
   target_index = 0;
   for (sec = abfd->sections; sec; sec = sec->next)
     {
-      unsigned bfd_align = bfd_get_section_alignment (abfd, sec);
+      unsigned bfd_align = bfd_section_alignment (sec);
       bfd_mach_o_section *msect = bfd_mach_o_get_mach_o_section (sec);
 
       mdata->sections[target_index] = msect;
 
-      msect->addr = bfd_get_section_vma (abfd, sec);
-      msect->size = bfd_get_section_size (sec);
+      msect->addr = bfd_section_vma (sec);
+      msect->size = bfd_section_size (sec);
 
       /* Use the largest alignment set, in case it was bumped after the
 	 section was created.  */
@@ -2808,7 +2808,7 @@ bfd_mach_o_set_section_flags_from_bfd (bfd *abfd ATTRIBUTE_UNUSED,
   bfd_mach_o_section *s = bfd_mach_o_get_mach_o_section (sec);
 
   /* Create default flags.  */
-  bfd_flags = bfd_get_section_flags (abfd, sec);
+  bfd_flags = bfd_section_flags (sec);
   if ((bfd_flags & SEC_CODE) == SEC_CODE)
     s->flags = BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS
       | BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS
@@ -2983,7 +2983,7 @@ bfd_mach_o_build_exec_seg_command (bfd *abfd, bfd_mach_o_segment_command *seg)
   for (s = seg->sect_head; s != NULL; s = s->next)
     {
       asection *sec = s->bfdsection;
-      flagword flags = bfd_get_section_flags (abfd, sec);
+      flagword flags = bfd_section_flags (sec);
 
       /* Adjust segment size.  */
       seg->vmsize = FILE_ALIGN (seg->vmsize, s->align);
@@ -3502,7 +3502,7 @@ bfd_boolean
 bfd_mach_o_new_section_hook (bfd *abfd, asection *sec)
 {
   bfd_mach_o_section *s;
-  unsigned bfdalign = bfd_get_section_alignment (abfd, sec);
+  unsigned bfdalign = bfd_section_alignment (sec);
 
   s = bfd_mach_o_get_mach_o_section (sec);
   if (s == NULL)
@@ -3526,10 +3526,10 @@ bfd_mach_o_new_section_hook (bfd *abfd, asection *sec)
 	  s->flags = xlat->macho_sectype | xlat->macho_secattr;
 	  s->align = xlat->sectalign > bfdalign ? xlat->sectalign
 						: bfdalign;
-	  (void) bfd_set_section_alignment (abfd, sec, s->align);
-	  bfd_flags = bfd_get_section_flags (abfd, sec);
+	  bfd_set_section_alignment (sec, s->align);
+	  bfd_flags = bfd_section_flags (sec);
 	  if (bfd_flags == SEC_NO_FLAGS)
-	    bfd_set_section_flags (abfd, sec, xlat->bfd_flags);
+	    bfd_set_section_flags (sec, xlat->bfd_flags);
 	}
       else
 	/* Create default flags.  */
@@ -3540,13 +3540,12 @@ bfd_mach_o_new_section_hook (bfd *abfd, asection *sec)
 }
 
 static void
-bfd_mach_o_init_section_from_mach_o (bfd *abfd, asection *sec,
-				     unsigned long prot)
+bfd_mach_o_init_section_from_mach_o (asection *sec, unsigned long prot)
 {
   flagword flags;
   bfd_mach_o_section *section;
 
-  flags = bfd_get_section_flags (abfd, sec);
+  flags = bfd_section_flags (sec);
   section = bfd_mach_o_get_mach_o_section (sec);
 
   /* TODO: see if we should use the xlat system for doing this by
@@ -3584,7 +3583,7 @@ bfd_mach_o_init_section_from_mach_o (bfd *abfd, asection *sec,
   if (section->nreloc != 0)
     flags |= SEC_RELOC;
 
-  bfd_set_section_flags (abfd, sec, flags);
+  bfd_set_section_flags (sec, flags);
 
   sec->vma = section->addr;
   sec->lma = section->addr;
@@ -3651,7 +3650,7 @@ bfd_mach_o_read_section_32 (bfd *abfd, unsigned long prot)
   section->reserved2 = bfd_h_get_32 (abfd, raw.reserved2);
   section->reserved3 = 0;
 
-  bfd_mach_o_init_section_from_mach_o (abfd, sec, prot);
+  bfd_mach_o_init_section_from_mach_o (sec, prot);
 
   return sec;
 }
@@ -3694,7 +3693,7 @@ bfd_mach_o_read_section_64 (bfd *abfd, unsigned long prot)
   section->reserved2 = bfd_h_get_32 (abfd, raw.reserved2);
   section->reserved3 = bfd_h_get_32 (abfd, raw.reserved3);
 
-  bfd_mach_o_init_section_from_mach_o (abfd, sec, prot);
+  bfd_mach_o_init_section_from_mach_o (sec, prot);
 
   return sec;
 }
diff --git a/bfd/mmo.c b/bfd/mmo.c
index f48f9868fe..736ee4bed8 100644
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -596,7 +596,7 @@ static bfd_boolean
 mmo_section_has_contents (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *p ATTRIBUTE_UNUSED)
 {
   /* The point is to match what --extract-symbols does (well, negated).  */
-  return bfd_get_section_size (sec) != 0;
+  return bfd_section_size (sec) != 0;
 }
 
 /* Find out whether we should omit symbol consistency checks for this
@@ -642,10 +642,10 @@ static void
 mmo_find_sec_w_addr (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *p)
 {
   struct mmo_find_sec_info *infop = (struct mmo_find_sec_info *) p;
-  bfd_vma vma = bfd_get_section_vma (abfd, sec);
+  bfd_vma vma = bfd_section_vma (sec);
 
   /* Ignore sections that aren't loaded.  */
-  if ((bfd_get_section_flags (abfd, sec) & (SEC_LOAD | SEC_ALLOC))
+  if ((bfd_section_flags (sec) & (SEC_LOAD | SEC_ALLOC))
       !=  (SEC_LOAD | SEC_ALLOC))
     return;
 
@@ -657,10 +657,10 @@ static void
 mmo_find_sec_w_addr_grow (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *p)
 {
   struct mmo_find_sec_info *infop = (struct mmo_find_sec_info *) p;
-  bfd_vma vma = bfd_get_section_vma (abfd, sec);
+  bfd_vma vma = bfd_section_vma (sec);
 
   /* Ignore sections that aren't loaded.  */
-  if ((bfd_get_section_flags (abfd, sec) & (SEC_LOAD | SEC_ALLOC))
+  if ((bfd_section_flags (sec) & (SEC_LOAD | SEC_ALLOC))
       !=  (SEC_LOAD | SEC_ALLOC))
     return;
 
@@ -700,12 +700,11 @@ mmo_decide_section (bfd *abfd, bfd_vma vma)
       if (sec == NULL)
 	return NULL;
 
-      if (! sec->user_set_vma && ! bfd_set_section_vma (abfd, sec, vma))
+      if (!sec->user_set_vma && !bfd_set_section_vma (sec, vma))
 	return NULL;
 
-      if (! bfd_set_section_flags (abfd, sec,
-				   bfd_get_section_flags (abfd, sec)
-				   | SEC_CODE | SEC_LOAD | SEC_ALLOC))
+      if (!bfd_set_section_flags (sec, (bfd_section_flags (sec)
+					| SEC_CODE | SEC_LOAD | SEC_ALLOC)))
 	return NULL;
     }
   else if ((vma >> 56) == 0x20)
@@ -715,12 +714,11 @@ mmo_decide_section (bfd *abfd, bfd_vma vma)
       if (sec == NULL)
 	return NULL;
 
-      if (! sec->user_set_vma && ! bfd_set_section_vma (abfd, sec, vma))
+      if (!sec->user_set_vma && !bfd_set_section_vma (sec, vma))
 	return NULL;
 
-      if (! bfd_set_section_flags (abfd, sec,
-				   bfd_get_section_flags (abfd, sec)
-				   | SEC_LOAD | SEC_ALLOC))
+      if (!bfd_set_section_flags (sec, (bfd_section_flags (sec)
+					| SEC_LOAD | SEC_ALLOC)))
 	return NULL;
     }
 
@@ -733,12 +731,11 @@ mmo_decide_section (bfd *abfd, bfd_vma vma)
   sprintf (sec_name, ".MMIX.sec.%d", abfd->tdata.mmo_data->sec_no++);
   sec = mmo_make_section (abfd, sec_name);
 
-  if (! sec->user_set_vma && ! bfd_set_section_vma (abfd, sec, vma))
+  if (!sec->user_set_vma && !bfd_set_section_vma (sec, vma))
     return NULL;
 
-  if (! bfd_set_section_flags (abfd, sec,
-			       bfd_get_section_flags (abfd, sec)
-			       | SEC_LOAD | SEC_ALLOC))
+  if (!bfd_set_section_flags (sec, (bfd_section_flags (sec)
+				    | SEC_LOAD | SEC_ALLOC)))
     return NULL;
   return sec;
 }
@@ -1136,14 +1133,13 @@ mmo_get_spec_section (bfd *abfd, int spec_data_number)
 
   /* Add in the section flags we found to those bfd entered during this
      process and set the contents.  */
-  if (! bfd_set_section_flags (abfd, sec,
-			       bfd_sec_flags_from_mmo_flags (flags)
-			       | bfd_get_section_flags (abfd, sec)
-			       | (section_length != 0 ? SEC_HAS_CONTENTS : 0))
-      || ! bfd_set_section_size (abfd, sec, sec->size + section_length)
+  if (!bfd_set_section_flags (sec,
+			      (bfd_sec_flags_from_mmo_flags (flags)
+			       | bfd_section_flags (sec)
+			       | (section_length != 0 ? SEC_HAS_CONTENTS : 0)))
+      || !bfd_set_section_size (sec, sec->size + section_length)
       /* Set VMA only for the first occurrence.  */
-      || (! sec->user_set_vma
-	  && ! bfd_set_section_vma  (abfd, sec, section_vma)))
+      || (!sec->user_set_vma && !bfd_set_section_vma (sec, section_vma)))
     {
       /* If we get an error for any of the calls above, signal more than
 	 just a format error for the spec section.  */
@@ -1561,9 +1557,8 @@ mmo_get_loc (asection *sec, bfd_vma vma, int size)
 
 	  /* We get here for the first time (at other times too) for this
 	     section.  Say we have contents.  */
-	  if (! bfd_set_section_flags (sec->owner, sec,
-				       bfd_get_section_flags (sec->owner, sec)
-				       | SEC_HAS_CONTENTS))
+	  if (!bfd_set_section_flags (sec, (bfd_section_flags (sec)
+					    | SEC_HAS_CONTENTS)))
 	    return NULL;
 	}
     }
@@ -2070,18 +2065,16 @@ mmo_scan (bfd *abfd)
      section flags must be set then.  */
   sec = bfd_get_section_by_name (abfd, MMO_TEXT_SECTION_NAME);
   if (sec != NULL
-      && (bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS)
-      && ! bfd_set_section_flags (abfd, sec,
-				  bfd_get_section_flags (abfd, sec)
-				  | SEC_ALLOC | SEC_LOAD | SEC_CODE))
+      && (bfd_section_flags (sec) & SEC_HAS_CONTENTS)
+      && !bfd_set_section_flags (sec, (bfd_section_flags (sec)
+				       | SEC_ALLOC | SEC_LOAD | SEC_CODE)))
     error = TRUE;
 
   sec = bfd_get_section_by_name (abfd, MMO_DATA_SECTION_NAME);
   if (sec != NULL
-      && (bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS)
-      && ! bfd_set_section_flags (abfd, sec,
-				  bfd_get_section_flags (abfd, sec)
-				  | SEC_ALLOC | SEC_LOAD))
+      && (bfd_section_flags (sec) & SEC_HAS_CONTENTS)
+      && !bfd_set_section_flags (sec, (bfd_section_flags (sec)
+				       | SEC_ALLOC | SEC_LOAD)))
     error = TRUE;
 
   /* Free whatever resources we took.  */
@@ -2432,7 +2425,7 @@ bfd_sec_flags_from_mmo_flags (flagword flags)
 static bfd_boolean
 mmo_has_leading_or_trailing_zero_tetra_p (bfd *abfd, asection *sec)
 {
-  bfd_vma secaddr = bfd_get_section_vma (abfd, sec);
+  bfd_vma secaddr = bfd_section_vma (sec);
 
   if (sec->size < 4)
     return FALSE;
@@ -2464,7 +2457,7 @@ mmo_internal_write_section (bfd *abfd, asection *sec)
 
   if (strcmp (sec->name, MMO_TEXT_SECTION_NAME) == 0)
     {
-      bfd_vma secaddr = bfd_get_section_vma (abfd, sec);
+      bfd_vma secaddr = bfd_section_vma (sec);
 
       /* Because leading and trailing zeros are omitted in output, we need to
 	 specify the section boundaries so they're correct when the file
@@ -2485,7 +2478,7 @@ mmo_internal_write_section (bfd *abfd, asection *sec)
     }
   else if (strcmp (sec->name, MMO_DATA_SECTION_NAME) == 0)
     {
-      bfd_vma secaddr = bfd_get_section_vma (abfd, sec);
+      bfd_vma secaddr = bfd_section_vma (sec);
 
       /* Same goes as for MMO_TEXT_SECTION_NAME above.  */
       if (sec->size != 0
@@ -2519,7 +2512,7 @@ mmo_internal_write_section (bfd *abfd, asection *sec)
     }
   /* Ignore sections that are just allocated or empty; we write out
      _contents_ here.  */
-  else if ((bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS) != 0
+  else if ((bfd_section_flags (sec) & SEC_HAS_CONTENTS) != 0
 	   && sec->size != 0)
     {
       if (!mmo_write_section_description (abfd, sec))
@@ -2527,7 +2520,7 @@ mmo_internal_write_section (bfd *abfd, asection *sec)
 
       /* Writing a LOP_LOC ends the LOP_SPEC data, and makes data actually
 	 loaded.  */
-      if (bfd_get_section_flags (abfd, sec) & SEC_LOAD)
+      if (bfd_section_flags (sec) & SEC_LOAD)
 	return (! abfd->tdata.mmo_data->have_error
 		&& mmo_write_loc_chunk_list (abfd,
 					 mmo_section_data (sec)->head));
@@ -2646,10 +2639,9 @@ EXAMPLE
      for all alien sections; perhaps mmo.em should clear that flag.  Might
      be related to weak references.  */
   mmo_write_tetra (abfd,
-		   mmo_sec_flags_from_bfd_flags
-		   (bfd_get_section_flags (abfd, sec)));
+		   mmo_sec_flags_from_bfd_flags (bfd_section_flags (sec)));
   mmo_write_octa (abfd, sec->size);
-  mmo_write_octa (abfd, bfd_get_section_vma (abfd, sec));
+  mmo_write_octa (abfd, bfd_section_vma (sec));
   return TRUE;
 }
 
@@ -3171,7 +3163,7 @@ mmo_write_section_unless_reg_contents (bfd *abfd, asection *sec, void *p)
   /* Exclude the convenience register section.  */
   if (strcmp (sec->name, MMIX_REG_SECTION_NAME) == 0)
     {
-      if (bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS)
+      if (bfd_section_flags (sec) & SEC_HAS_CONTENTS)
 	{
 	  /* Make sure it hasn't got contents.  It seems impossible to
 	     make it carry contents, so we don't have a test-case for
diff --git a/bfd/opncls.c b/bfd/opncls.c
index d14dfe9320..b537dfd96d 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -1218,7 +1218,7 @@ bfd_get_debug_link_info_1 (bfd *abfd, void *crc32_out)
   if (sect == NULL)
     return NULL;
 
-  size = bfd_get_section_size (sect);
+  size = bfd_section_size (sect);
 
   /* PR 22794: Make sure that the section has a reasonable size.  */
   if (size < 8 || size >= bfd_get_size (abfd))
@@ -1308,7 +1308,7 @@ bfd_get_alt_debug_link_info (bfd * abfd, bfd_size_type *buildid_len,
   if (sect == NULL)
     return NULL;
 
-  size = bfd_get_section_size (sect);
+  size = bfd_section_size (sect);
   if (size < 8 || size >= bfd_get_size (abfd))
     return NULL;
 
@@ -1322,7 +1322,7 @@ bfd_get_alt_debug_link_info (bfd * abfd, bfd_size_type *buildid_len,
   /* BuildID value is stored after the filename.  */
   name = (char *) contents;
   buildid_offset = strnlen (name, size) + 1;
-  if (buildid_offset >= bfd_get_section_size (sect))
+  if (buildid_offset >= bfd_section_size (sect))
     return NULL;
 
   *buildid_len = size - buildid_offset;
@@ -1727,14 +1727,14 @@ bfd_create_gnu_debuglink_section (bfd *abfd, const char *filename)
   debuglink_size &= ~3;
   debuglink_size += 4;
 
-  if (! bfd_set_section_size (abfd, sect, debuglink_size))
+  if (!bfd_set_section_size (sect, debuglink_size))
     /* XXX Should we delete the section from the bfd ?  */
     return NULL;
 
   /* PR 21193: Ensure that the section has 4-byte alignment for the CRC.
      Note - despite the name of the function being called, we are
      setting an alignment power, not a byte alignment value.  */
-  bfd_set_section_alignment (abfd, sect, 2);
+  bfd_set_section_alignment (sect, 2);
 
   return sect;
 }
@@ -1872,7 +1872,7 @@ get_build_id (bfd *abfd)
       return NULL;
     }
 
-  size = bfd_get_section_size (sect);
+  size = bfd_section_size (sect);
   /* FIXME: Should we support smaller build-id notes ?  */
   if (size < 0x24)
     {
@@ -1890,7 +1890,7 @@ get_build_id (bfd *abfd)
   /* FIXME: Paranoia - allow for compressed build-id sections.
      Maybe we should complain if this size is different from
      the one obtained above...  */
-  size = bfd_get_section_size (sect);
+  size = bfd_section_size (sect);
   if (size < sizeof (Elf_External_Note))
     {
       bfd_set_error (bfd_error_invalid_operation);
diff --git a/bfd/pdp11.c b/bfd/pdp11.c
index 238f5144d4..a0c3ac0fa6 100644
--- a/bfd/pdp11.c
+++ b/bfd/pdp11.c
@@ -2802,17 +2802,17 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
 	  break;
 	case N_TEXT | N_EXT:
 	  section = obj_textsec (abfd);
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  break;
 	case N_DATA | N_EXT:
 	  /* Treat N_SETV symbols as N_DATA symbol; see comment in
 	     translate_from_native_sym_flags.  */
 	  section = obj_datasec (abfd);
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  break;
 	case N_BSS | N_EXT:
 	  section = obj_bsssec (abfd);
-	  value -= bfd_get_section_vma (abfd, section);
+	  value -= bfd_section_vma (section);
 	  break;
 	}
 
@@ -3151,8 +3151,7 @@ aout_link_reloc_link_order (struct aout_final_link_info *flaginfo,
 	  (*flaginfo->info->callbacks->reloc_overflow)
 	    (flaginfo->info, NULL,
 	     (p->type == bfd_section_reloc_link_order
-	      ? bfd_section_name (flaginfo->output_bfd,
-				  pr->u.section)
+	      ? bfd_section_name (pr->u.section)
 	      : pr->u.name),
 	     howto->name, pr->addend, NULL,
 	     (asection *) NULL, (bfd_vma) 0);
@@ -3477,7 +3476,7 @@ pdp11_aout_link_input_section (struct aout_final_link_info *flaginfo,
 		    asection *s;
 
 		    s = aout_reloc_type_to_section (input_bfd, r_type);
-		    name = bfd_section_name (input_bfd, s);
+		    name = bfd_section_name (s);
 		  }
 		(*flaginfo->info->callbacks->reloc_overflow)
 		  (flaginfo->info, (h ? &h->root : NULL), name, howto->name,
@@ -3997,8 +3996,7 @@ aout_link_write_symbols (struct aout_final_link_info *flaginfo, bfd *input_bfd)
 	return FALSE;
       PUT_WORD (output_bfd, strtab_index, outsym->e_strx);
       PUT_WORD (output_bfd,
-		(bfd_get_section_vma (output_bfd,
-				      obj_textsec (input_bfd)->output_section)
+		(bfd_section_vma (obj_textsec (input_bfd)->output_section)
 		 + obj_textsec (input_bfd)->output_offset),
 		outsym->e_value);
       ++obj_aout_external_sym_count (output_bfd);
@@ -4206,7 +4204,7 @@ aout_link_write_symbols (struct aout_final_link_info *flaginfo, bfd *input_bfd)
 		  BFD_ASSERT (bfd_is_abs_section (output_section)
 			      || output_section->owner == output_bfd);
 		  val = (hresolve->root.u.def.value
-			 + bfd_get_section_vma (output_bfd, output_section)
+			 + bfd_section_vma (output_section)
 			 + input_section->output_offset);
 
 		  /* Get the correct type based on the section.  If
diff --git a/bfd/pei-x86_64.c b/bfd/pei-x86_64.c
index 2588e6c6e9..c0b97351de 100644
--- a/bfd/pei-x86_64.c
+++ b/bfd/pei-x86_64.c
@@ -770,7 +770,7 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
 	  if (PEX64_IS_RUNTIME_FUNCTION_CHAINED (&rf))
 	    {
 	      bfd_vma altent = PEX64_GET_UNWINDDATA_UNIFIED_RVA (&rf);
-	      bfd_vma pdata_vma = bfd_get_section_vma (abfd, pdata_section);
+	      bfd_vma pdata_vma = bfd_section_vma (pdata_section);
 	      struct pex64_runtime_function arf;
 
 	      fprintf (file, "\t shares information with ");
diff --git a/bfd/peicode.h b/bfd/peicode.h
index 679474ecd1..1e2b104430 100644
--- a/bfd/peicode.h
+++ b/bfd/peicode.h
@@ -608,16 +608,16 @@ pe_ILF_make_a_section (pe_ILF_vars * vars,
 
   flags = SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_KEEP | SEC_IN_MEMORY;
 
-  bfd_set_section_flags (vars->abfd, sec, flags | extra_flags);
+  bfd_set_section_flags (sec, flags | extra_flags);
 
-  (void) bfd_set_section_alignment (vars->abfd, sec, 2);
+  bfd_set_section_alignment (sec, 2);
 
   /* Check that we will not run out of space.  */
   BFD_ASSERT (vars->data + size < vars->bim->buffer + vars->bim->size);
 
   /* Set the section size and contents.  The actual
      contents are filled in by our parent.  */
-  bfd_set_section_size (vars->abfd, sec, (bfd_size_type) size);
+  bfd_set_section_size (sec, (bfd_size_type) size);
   sec->contents = vars->data;
   sec->target_index = vars->sec_index ++;
 
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 8eac73ddfe..0c67ecd313 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -1526,8 +1526,7 @@ _bfd_clear_contents (reloc_howto_type *howto,
 
   /* For a range list, use 1 instead of 0 as placeholder.  0
      would terminate the list, hiding any later entries.  */
-  if (strcmp (bfd_get_section_name (input_bfd, input_section),
-	      ".debug_ranges") == 0
+  if (strcmp (bfd_section_name (input_section), ".debug_ranges") == 0
       && (howto->dst_mask & 1) != 0)
     x |= 1;
 
diff --git a/bfd/section.c b/bfd/section.c
index 74feb73be9..3a9cb26023 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -554,26 +554,31 @@ CODE_FRAGMENT
 .   would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
 .   compilers will complain about comma expressions that have no effect.  *}
 .static inline bfd_boolean
-.bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
-.			   void * val)
+.bfd_set_section_userdata (asection *sec, void *val)
 .{
-.  ptr->userdata = val;
+.  sec->userdata = val;
 .  return TRUE;
 .}
 .
 .static inline bfd_boolean
-.bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
+.bfd_set_section_vma (asection *sec, bfd_vma val)
 .{
-.  ptr->vma = ptr->lma = val;
-.  ptr->user_set_vma = TRUE;
+.  sec->vma = sec->lma = val;
+.  sec->user_set_vma = TRUE;
 .  return TRUE;
 .}
 .
 .static inline bfd_boolean
-.bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
-.			    unsigned int val)
+.bfd_set_section_lma (asection *sec, bfd_vma val)
 .{
-.  ptr->alignment_power = val;
+.  sec->lma = val;
+.  return TRUE;
+.}
+.
+.static inline bfd_boolean
+.bfd_set_section_alignment (asection *sec, unsigned int val)
+.{
+.  sec->alignment_power = val;
 .  return TRUE;
 .}
 .
@@ -1289,13 +1294,12 @@ FUNCTION
 	bfd_set_section_flags
 
 SYNOPSIS
-	bfd_boolean bfd_set_section_flags
-	  (bfd *abfd, asection *sec, flagword flags);
+	bfd_boolean bfd_set_section_flags (asection *sec, flagword flags);
 
 DESCRIPTION
-	Set the attributes of the section @var{sec} in the BFD
-	@var{abfd} to the value @var{flags}. Return <<TRUE>> on success,
-	<<FALSE>> on error. Possible error returns are:
+	Set the attributes of the section @var{sec} to the value @var{flags}.
+	Return <<TRUE>> on success, <<FALSE>> on error.  Possible error
+	returns are:
 
 	o <<bfd_error_invalid_operation>> -
 	The section cannot have one or more of the attributes
@@ -1305,9 +1309,7 @@ DESCRIPTION
 */
 
 bfd_boolean
-bfd_set_section_flags (bfd *abfd ATTRIBUTE_UNUSED,
-		       sec_ptr section,
-		       flagword flags)
+bfd_set_section_flags (asection *section, flagword flags)
 {
   section->flags = flags;
   return TRUE;
@@ -1319,21 +1321,21 @@ FUNCTION
 
 SYNOPSIS
 	void bfd_rename_section
-	  (bfd *abfd, asection *sec, const char *newname);
+	  (asection *sec, const char *newname);
 
 DESCRIPTION
-	Rename section @var{sec} in @var{abfd} to @var{newname}.
+	Rename section @var{sec} to @var{newname}.
 */
 
 void
-bfd_rename_section (bfd *abfd, sec_ptr sec, const char *newname)
+bfd_rename_section (asection *sec, const char *newname)
 {
   struct section_hash_entry *sh;
 
   sh = (struct section_hash_entry *)
     ((char *) sec - offsetof (struct section_hash_entry, section));
   sh->section.name = newname;
-  bfd_hash_rename (&abfd->section_htab, newname, &sh->root);
+  bfd_hash_rename (&sec->owner->section_htab, newname, &sh->root);
 }
 
 /*
@@ -1417,8 +1419,7 @@ FUNCTION
 	bfd_set_section_size
 
 SYNOPSIS
-	bfd_boolean bfd_set_section_size
-	  (bfd *abfd, asection *sec, bfd_size_type val);
+	bfd_boolean bfd_set_section_size (asection *sec, bfd_size_type val);
 
 DESCRIPTION
 	Set @var{sec} to the size @var{val}. If the operation is
@@ -1431,18 +1432,18 @@ DESCRIPTION
 */
 
 bfd_boolean
-bfd_set_section_size (bfd *abfd, sec_ptr ptr, bfd_size_type val)
+bfd_set_section_size (asection *sec, bfd_size_type val)
 {
   /* Once you've started writing to any section you cannot create or change
      the size of any others.  */
 
-  if (abfd->output_has_begun)
+  if (sec->owner == NULL || sec->owner->output_has_begun)
     {
       bfd_set_error (bfd_error_invalid_operation);
       return FALSE;
     }
 
-  ptr->size = val;
+  sec->size = val;
   return TRUE;
 }
 
@@ -1486,7 +1487,7 @@ bfd_set_section_contents (bfd *abfd,
 {
   bfd_size_type sz;
 
-  if (!(bfd_get_section_flags (abfd, section) & SEC_HAS_CONTENTS))
+  if (!(bfd_section_flags (section) & SEC_HAS_CONTENTS))
     {
       bfd_set_error (bfd_error_no_contents);
       return FALSE;
diff --git a/bfd/syms.c b/bfd/syms.c
index 4d532b2cd2..9a2754ebe6 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -1290,7 +1290,7 @@ _bfd_stab_section_find_nearest_line (bfd *abfd,
 
   /* We are passed a section relative offset.  The offsets in the
      stabs information are absolute.  */
-  offset += bfd_get_section_vma (abfd, section);
+  offset += bfd_section_vma (section);
 
 #ifdef ENABLE_CACHING
   if (info->cached_indexentry != NULL
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index 8d2a2dff62..4dde056e1e 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -632,7 +632,7 @@ _bfd_vms_slurp_eisd (bfd *abfd, unsigned int offset)
       section->size = size;
       section->vma = vaddr;
 
-      if (!bfd_set_section_flags (abfd, section, bfd_flags))
+      if (!bfd_set_section_flags (section, bfd_flags))
 	return FALSE;
     }
 
@@ -687,7 +687,7 @@ _bfd_vms_slurp_eihs (bfd *abfd, unsigned int offset)
       section->size = dstsize;
       section->filepos = VMS_BLOCK_SIZE * (dstvbn - 1);
 
-      if (!bfd_set_section_flags (abfd, section, bfd_flags))
+      if (!bfd_set_section_flags (section, bfd_flags))
 	return FALSE;
 
       PRIV (dst_section) = section;
@@ -705,7 +705,7 @@ _bfd_vms_slurp_eihs (bfd *abfd, unsigned int offset)
       section->size = dmtbytes;
       section->filepos = VMS_BLOCK_SIZE * (dmtvbn - 1);
 
-      if (!bfd_set_section_flags (abfd, section, bfd_flags))
+      if (!bfd_set_section_flags (section, bfd_flags))
 	return FALSE;
     }
 
@@ -1261,7 +1261,7 @@ _bfd_vms_slurp_egsd (bfd *abfd)
 		    new_flags |= SEC_CODE;
 		    new_flags &= ~SEC_DATA;
 		  }
-		if (!bfd_set_section_flags (abfd, section, new_flags))
+		if (!bfd_set_section_flags (section, new_flags))
 		  return FALSE;
 
 		/* Give a non-overlapping vma to non absolute sections.  */
@@ -2441,7 +2441,7 @@ vms_slurp_debug (bfd *abfd)
       section = bfd_make_section (abfd, "$DST$");
       if (!section)
 	return FALSE;
-      if (!bfd_set_section_flags (abfd, section, flags))
+      if (!bfd_set_section_flags (section, flags))
 	return FALSE;
       PRIV (dst_section) = section;
     }
@@ -4623,7 +4623,7 @@ build_module_list (bfd *abfd)
 	 section and build the list of modules.  This is sufficient
 	 since we can compute the start address and the end address
 	 of every module from the section contents.  */
-      bfd_size_type size = bfd_get_section_size (dmt);
+      bfd_size_type size = bfd_section_size (dmt);
       unsigned char *ptr, *end;
 
       ptr = (unsigned char *) bfd_alloc (abfd, size);
@@ -9324,7 +9324,7 @@ vms_new_section_hook (bfd * abfd, asection *section)
   vms_debug2 ((1, "vms_new_section_hook (%p, [%u]%s)\n",
 	       abfd, section->index, section->name));
 
-  if (! bfd_set_section_alignment (abfd, section, 0))
+  if (!bfd_set_section_alignment (section, 0))
     return FALSE;
 
   vms_debug2 ((7, "%u: %s\n", section->index, section->name));
@@ -9412,11 +9412,11 @@ vms_get_symbol_info (bfd * abfd ATTRIBUTE_UNUSED,
   else if (bfd_is_ind_section (sec))
     ret->type = 'I';
   else if ((symbol->flags & BSF_FUNCTION)
-	   || (bfd_get_section_flags (abfd, sec) & SEC_CODE))
+	   || (bfd_section_flags (sec) & SEC_CODE))
     ret->type = 'T';
-  else if (bfd_get_section_flags (abfd, sec) & SEC_DATA)
+  else if (bfd_section_flags (sec) & SEC_DATA)
     ret->type = 'D';
-  else if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+  else if (bfd_section_flags (sec) & SEC_ALLOC)
     ret->type = 'B';
   else
     ret->type = '?';
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index 1a2f87c4b0..52691720ae 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -2080,14 +2080,14 @@ xcoff_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
   for (o = abfd->sections; o != first_csect; o = o->next)
     {
       /* Debugging sections have no csects.  */
-      if (bfd_get_section_flags (abfd, o) & SEC_DEBUGGING)
+      if (bfd_section_flags (o) & SEC_DEBUGGING)
 	continue;
 
       /* Reset the section size and the line number count, since the
 	 data is now attached to the csects.  Don't reset the size of
 	 the .debug section, since we need to read it below in
 	 bfd_xcoff_size_dynamic_sections.  */
-      if (strcmp (bfd_get_section_name (abfd, o), ".debug") != 0)
+      if (strcmp (bfd_section_name (o), ".debug") != 0)
 	o->size = 0;
       o->lineno_count = 0;
 
@@ -3019,7 +3019,7 @@ xcoff_sweep (struct bfd_link_info *info)
 		  || o == xcoff_hash_table (info)->loader_section
 		  || o == xcoff_hash_table (info)->linkage_section
 		  || o == xcoff_hash_table (info)->descriptor_section
-		  || (bfd_get_section_flags (sub, o) & SEC_DEBUGGING)
+		  || (bfd_section_flags (o) & SEC_DEBUGGING)
 		  || strcmp (o->name, ".debug") == 0)
 		o->flags |= SEC_MARK;
 	      else
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 9c791f6d65..9f6300f17d 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* addr2line.c, * bucomm.c, * coffgrok.c, * dlltool.c, * nm.c,
+	* objcopy.c, * objdump.c, * od-elf32_avr.c, * od-macho.c,
+	* od-xcoff.c, * prdbg.c, * rdcoff.c, * rddbg.c, * rescoff.c,
+	* resres.c, * size.c, * srconv.c, * strings.c, * windmc.c: Update
+	throughout for bfd section macro and function changes.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* nm.c: Update bfd_get_section to bfd_asymbol_section throughout.
diff --git a/binutils/addr2line.c b/binutils/addr2line.c
index 8a77c473ba..d9cc2881f8 100644
--- a/binutils/addr2line.c
+++ b/binutils/addr2line.c
@@ -182,14 +182,14 @@ find_address_in_section (bfd *abfd, asection *section,
   if (found)
     return;
 
-  if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0)
+  if ((bfd_section_flags (section) & SEC_ALLOC) == 0)
     return;
 
-  vma = bfd_get_section_vma (abfd, section);
+  vma = bfd_section_vma (section);
   if (pc < vma)
     return;
 
-  size = bfd_get_section_size (section);
+  size = bfd_section_size (section);
   if (pc >= vma + size)
     return;
 
@@ -208,10 +208,10 @@ find_offset_in_section (bfd *abfd, asection *section)
   if (found)
     return;
 
-  if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0)
+  if ((bfd_section_flags (section) & SEC_ALLOC) == 0)
     return;
 
-  size = bfd_get_section_size (section);
+  size = bfd_section_size (section);
   if (pc >= size)
     return;
 
diff --git a/binutils/bucomm.c b/binutils/bucomm.c
index e8ac3b6de8..2493fd561b 100644
--- a/binutils/bucomm.c
+++ b/binutils/bucomm.c
@@ -94,7 +94,7 @@ bfd_nonfatal_message (const char *filename,
       if (!filename)
 	filename = bfd_get_archive_filename (abfd);
       if (section)
-	section_name = bfd_get_section_name (abfd, section);
+	section_name = bfd_section_name (section);
     }
   if (section_name)
     fprintf (stderr, ":%s[%s]", filename, section_name);
diff --git a/binutils/coffgrok.c b/binutils/coffgrok.c
index 1556a0b8ad..177c66ed76 100644
--- a/binutils/coffgrok.c
+++ b/binutils/coffgrok.c
@@ -145,7 +145,7 @@ do_sections_p1 (struct coff_ofile *head)
       if (strcmp (section->name, ".bss") == 0)
 	head->sections[i].data = 1;
       head->sections[i].address = section->lma;
-      head->sections[i].size = bfd_get_section_size (section);
+      head->sections[i].size = bfd_section_size (section);
       head->sections[i].number = idx;
       head->sections[i].nrelocs = section->reloc_count;
       head->sections[i].relocs =
diff --git a/binutils/dlltool.c b/binutils/dlltool.c
index cd2ff24325..85304d0c37 100644
--- a/binutils/dlltool.c
+++ b/binutils/dlltool.c
@@ -1384,7 +1384,7 @@ scan_drectve_symbols (bfd *abfd)
   if (s == NULL)
     return;
 
-  size = bfd_get_section_size (s);
+  size = bfd_section_size (s);
   buf  = xmalloc (size);
 
   bfd_get_section_contents (abfd, s, buf, 0, size);
@@ -2482,11 +2482,9 @@ make_one_lib_file (export_type *exp, int i, int delay)
       if (si->id != i)
 	abort ();
       si->sec = bfd_make_section_old_way (abfd, si->name);
-      bfd_set_section_flags (abfd,
-			     si->sec,
-			     si->flags & applicable);
+      bfd_set_section_flags (si->sec, si->flags & applicable);
 
-      bfd_set_section_alignment(abfd, si->sec, si->align);
+      bfd_set_section_alignment (si->sec, si->align);
       si->sec->output_section = si->sec;
       si->sym = bfd_make_empty_symbol(abfd);
       si->sym->name = si->sec->name;
@@ -2822,7 +2820,7 @@ make_one_lib_file (export_type *exp, int i, int delay)
 	    arelent *imglue, *ba_rel, *ea_rel, *pea_rel;
 
 	    /* Alignment must be set to 2**2 or you get extra stuff.  */
-	    bfd_set_section_alignment(abfd, sec, 2);
+	    bfd_set_section_alignment (sec, 2);
 
 	    si->size = 4 * 5;
 	    si->data = xmalloc (si->size);
@@ -2908,8 +2906,8 @@ make_one_lib_file (export_type *exp, int i, int delay)
       {
 	sinfo *si = secdata + i;
 
-	bfd_set_section_size (abfd, si->sec, si->size);
-	bfd_set_section_vma (abfd, si->sec, vma);
+	bfd_set_section_size (si->sec, si->size);
+	bfd_set_section_vma (si->sec, vma);
       }
   }
   /* Write them out.  */
@@ -3691,7 +3689,7 @@ identify_search_section (bfd * abfd, asection * section, void * obj)
   if (ms_style && ((section->flags & SEC_DATA) == 0))
     return;
 
-  if ((datasize = bfd_section_size (abfd, section)) == 0)
+  if ((datasize = bfd_section_size (section)) == 0)
     return;
 
   data = (bfd_byte *) xmalloc (datasize + 1);
diff --git a/binutils/nm.c b/binutils/nm.c
index 0bded07391..e177d444ef 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -791,8 +791,8 @@ sort_symbols_by_size (bfd *abfd, bfd_boolean is_dynamic, void *minisyms,
 	      && sec == bfd_asymbol_section (next))
 	    sz = valueof (next) - valueof (sym);
 	  else
-	    sz = (bfd_get_section_vma (abfd, sec)
-		  + bfd_section_size (abfd, sec)
+	    sz = (bfd_section_vma (sec)
+		  + bfd_section_size (sec)
 		  - valueof (sym));
 	}
 
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index ce4a4afa55..6489fbe72f 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -1255,7 +1255,7 @@ group_signature (asection *group)
 static bfd_boolean
 is_dwo_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
 {
-  const char *name = bfd_get_section_name (abfd, sec);
+  const char *name = bfd_section_name (sec);
   int len = strlen (name);
 
   return strncmp (name + len - 4, ".dwo", 4) == 0;
@@ -1310,17 +1310,17 @@ is_strip_section_1 (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
       struct section_list *p;
       struct section_list *q;
 
-      p = find_section_list (bfd_get_section_name (abfd, sec), FALSE,
+      p = find_section_list (bfd_section_name (sec), FALSE,
 			     SECTION_CONTEXT_REMOVE);
-      q = find_section_list (bfd_get_section_name (abfd, sec), FALSE,
+      q = find_section_list (bfd_section_name (sec), FALSE,
 			     SECTION_CONTEXT_COPY);
 
       if (p && q)
 	fatal (_("error: section %s matches both remove and copy options"),
-	       bfd_get_section_name (abfd, sec));
+	       bfd_section_name (sec));
       if (p && is_update_section (abfd, sec))
 	fatal (_("error: section %s matches both update and remove options"),
-	       bfd_get_section_name (abfd, sec));
+	       bfd_section_name (sec));
 
       if (p != NULL)
 	return TRUE;
@@ -1328,7 +1328,7 @@ is_strip_section_1 (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
 	return TRUE;
     }
 
-  if ((bfd_get_section_flags (abfd, sec) & SEC_DEBUGGING) != 0)
+  if ((bfd_section_flags (sec) & SEC_DEBUGGING) != 0)
     {
       if (strip_symbols == STRIP_DEBUG
 	  || strip_symbols == STRIP_UNNEEDED
@@ -1339,7 +1339,7 @@ is_strip_section_1 (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
 	  /* By default we don't want to strip .reloc section.
 	     This section has for pe-coff special meaning.   See
 	     pe-dll.c file in ld, and peXXigen.c in bfd for details.  */
-	  if (strcmp (bfd_get_section_name (abfd, sec), ".reloc") != 0)
+	  if (strcmp (bfd_section_name (sec), ".reloc") != 0)
 	    return TRUE;
 	}
 
@@ -1364,7 +1364,7 @@ is_strip_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
   if (is_strip_section_1 (abfd, sec))
     return TRUE;
 
-  if ((bfd_get_section_flags (abfd, sec) & SEC_GROUP) != 0)
+  if ((bfd_section_flags (sec) & SEC_GROUP) != 0)
     {
       asymbol *gsym;
       const char *gname;
@@ -1414,7 +1414,7 @@ is_nondebug_keep_contents_section (bfd *ibfd, asection *isection)
      directory", but that may be the .text section for objects produced by some
      tools, which it is not sensible to keep.  */
   if (ibfd->xvec->flavour == bfd_target_coff_flavour)
-    return (strcmp (bfd_get_section_name (ibfd, isection), ".buildid") == 0);
+    return (strcmp (bfd_section_name (isection), ".buildid") == 0);
 
   return FALSE;
 }
@@ -2728,7 +2728,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 		}
 	    }
 
-	  if (! bfd_set_section_size (obfd, padd->section, padd->size))
+	  if (!bfd_set_section_size (padd->section, padd->size))
 	    {
 	      bfd_nonfatal_message (NULL, obfd, padd->section, NULL);
 	      return FALSE;
@@ -2737,7 +2737,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 	  pset = find_section_list (padd->name, FALSE,
 				    SECTION_CONTEXT_SET_VMA | SECTION_CONTEXT_ALTER_VMA);
 	  if (pset != NULL
-	      && ! bfd_set_section_vma (obfd, padd->section, pset->vma_val))
+	      && !bfd_set_section_vma (padd->section, pset->vma_val))
 	    {
 	      bfd_nonfatal_message (NULL, obfd, padd->section, NULL);
 	      return FALSE;
@@ -2749,9 +2749,8 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 	    {
 	      padd->section->lma = pset->lma_val;
 
-	      if (! bfd_set_section_alignment
-		  (obfd, padd->section,
-		   bfd_section_alignment (obfd, padd->section)))
+	      if (!bfd_set_section_alignment
+		  (padd->section, bfd_section_alignment (padd->section)))
 		{
 		  bfd_nonfatal_message (NULL, obfd, padd->section, NULL);
 		  return FALSE;
@@ -2776,7 +2775,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 	    }
 
 	  osec = pupdate->section->output_section;
-	  if (! bfd_set_section_size (obfd, osec, pupdate->size))
+	  if (!bfd_set_section_size (osec, pupdate->size))
 	    {
 	      bfd_nonfatal_message (NULL, obfd, osec, NULL);
 	      return FALSE;
@@ -2793,7 +2792,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 	{
 	  bfd_size_type size;
 	  
-	  size = bfd_get_section_size (osec);
+	  size = bfd_section_size (osec);
 	  if (size == 0)
 	    {
 	      bfd_nonfatal_message (NULL, ibfd, osec, _("warning: note section is empty"));
@@ -2820,7 +2819,8 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 	      else
 		{
 		  if (osec->output_section == NULL
-		      || ! bfd_set_section_size (obfd, osec->output_section, merged_size))
+		      || !bfd_set_section_size (osec->output_section,
+						merged_size))
 		    {
 		      bfd_nonfatal_message (NULL, obfd, osec, _("warning: failed to set merged notes size"));
 		      free (merged_notes);
@@ -2848,14 +2848,14 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 	      continue;
 	    }
 
-	  if ((bfd_get_section_flags (ibfd, osec) & SEC_HAS_CONTENTS) == 0)
+	  if ((bfd_section_flags (osec) & SEC_HAS_CONTENTS) == 0)
 	    {
 	      bfd_nonfatal_message (NULL, ibfd, osec,
 				    _("can't dump section - it has no contents"));
 	      continue;
 	    }
 
-	  bfd_size_type size = bfd_get_section_size (osec);
+	  bfd_size_type size = bfd_section_size (osec);
 	  if (size == 0)
 	    {
 	      bfd_nonfatal_message (NULL, ibfd, osec,
@@ -2948,7 +2948,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 					   + highest_section->size,
 					   /* FIXME: We ought to be using
 					      COFF_PAGE_SIZE here or maybe
-					      bfd_get_section_alignment() (if it
+					      bfd_section_alignment() (if it
 					      was set) but since this is for PE
 					      and we know the required alignment
 					      it is easier just to hard code it.  */
@@ -2957,7 +2957,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 		/* Umm, not sure what to do in this case.  */
 		debuglink_vma = 0x1000;
 
-	      bfd_set_section_vma (obfd, gnu_debuglink_section, debuglink_vma);
+	      bfd_set_section_vma (gnu_debuglink_section, debuglink_vma);
 	    }
 	}
     }
@@ -2991,18 +2991,18 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 	      bfd_size_type size;
 	      bfd_vma gap_start, gap_stop;
 
-	      flags = bfd_get_section_flags (obfd, osections[i]);
+	      flags = bfd_section_flags (osections[i]);
 	      if ((flags & SEC_HAS_CONTENTS) == 0
 		  || (flags & SEC_LOAD) == 0)
 		continue;
 
-	      size = bfd_section_size (obfd, osections[i]);
-	      gap_start = bfd_section_lma (obfd, osections[i]) + size;
-	      gap_stop = bfd_section_lma (obfd, osections[i + 1]);
+	      size = bfd_section_size (osections[i]);
+	      gap_start = bfd_section_lma (osections[i]) + size;
+	      gap_stop = bfd_section_lma (osections[i + 1]);
 	      if (gap_start < gap_stop)
 		{
-		  if (! bfd_set_section_size (obfd, osections[i],
-					      size + (gap_stop - gap_start)))
+		  if (!bfd_set_section_size (osections[i],
+					     size + (gap_stop - gap_start)))
 		    {
 		      bfd_nonfatal_message (NULL, obfd, osections[i],
 					    _("Can't fill gap after section"));
@@ -3021,12 +3021,11 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 	  bfd_vma lma;
 	  bfd_size_type size;
 
-	  lma = bfd_section_lma (obfd, osections[c - 1]);
-	  size = bfd_section_size (obfd, osections[c - 1]);
+	  lma = bfd_section_lma (osections[c - 1]);
+	  size = bfd_section_size (osections[c - 1]);
 	  if (lma + size < pad_to)
 	    {
-	      if (! bfd_set_section_size (obfd, osections[c - 1],
-					  pad_to - lma))
+	      if (!bfd_set_section_size (osections[c - 1], pad_to - lma))
 		{
 		  bfd_nonfatal_message (NULL, obfd, osections[c - 1],
 					_("can't add padding"));
@@ -3204,7 +3203,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 	      file_ptr off;
 
 	      left = gaps[i];
-	      off = bfd_section_size (obfd, osections[i]) - left;
+	      off = bfd_section_size (osections[i]) - left;
 
 	      while (left > 0)
 		{
@@ -3779,13 +3778,13 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
     return;
 
   /* Get the, possibly new, name of the output section.  */
-  name = bfd_section_name (ibfd, isection);
-  flags = bfd_get_section_flags (ibfd, isection);
+  name = bfd_section_name (isection);
+  flags = bfd_section_flags (isection);
   name = find_section_rename (name, &flags);
 
   /* Prefix sections.  */
   if ((prefix_alloc_sections_string)
-      && (bfd_get_section_flags (ibfd, isection) & SEC_ALLOC))
+      && (bfd_section_flags (isection) & SEC_ALLOC))
     prefix = prefix_alloc_sections_string;
   else if (prefix_sections_string)
     prefix = prefix_sections_string;
@@ -3802,7 +3801,7 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
 
   make_nobits = FALSE;
 
-  p = find_section_list (bfd_section_name (ibfd, isection), FALSE,
+  p = find_section_list (bfd_section_name (isection), FALSE,
 			 SECTION_CONTEXT_SET_FLAGS);
   if (p != NULL)
     flags = p->flags | (flags & (SEC_HAS_CONTENTS | SEC_RELOC));
@@ -3834,20 +3833,20 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
   if (make_nobits)
     elf_section_type (osection) = SHT_NOBITS;
 
-  size = bfd_section_size (ibfd, isection);
+  size = bfd_section_size (isection);
   size = bfd_convert_section_size (ibfd, isection, obfd, size);
   if (copy_byte >= 0)
     size = (size + interleave - 1) / interleave * copy_width;
   else if (extract_symbol)
     size = 0;
-  if (! bfd_set_section_size (obfd, osection, size))
+  if (!bfd_set_section_size (osection, size))
     {
       err = _("failed to set size");
       goto loser;
     }
 
-  vma = bfd_section_vma (ibfd, isection);
-  p = find_section_list (bfd_section_name (ibfd, isection), FALSE,
+  vma = bfd_section_vma (isection);
+  p = find_section_list (bfd_section_name (isection), FALSE,
 			 SECTION_CONTEXT_ALTER_VMA | SECTION_CONTEXT_SET_VMA);
   if (p != NULL)
     {
@@ -3859,14 +3858,14 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
   else
     vma += change_section_address;
 
-  if (! bfd_set_section_vma (obfd, osection, vma))
+  if (!bfd_set_section_vma (osection, vma))
     {
       err = _("failed to set vma");
       goto loser;
     }
 
   lma = isection->lma;
-  p = find_section_list (bfd_section_name (ibfd, isection), FALSE,
+  p = find_section_list (bfd_section_name (isection), FALSE,
 			 SECTION_CONTEXT_ALTER_LMA | SECTION_CONTEXT_SET_LMA);
   if (p != NULL)
     {
@@ -3880,18 +3879,16 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
 
   osection->lma = lma;
 
-  p = find_section_list (bfd_section_name (ibfd, isection), FALSE,
+  p = find_section_list (bfd_section_name (isection), FALSE,
 			 SECTION_CONTEXT_SET_ALIGNMENT);
   if (p != NULL)
     alignment = p->alignment;
   else
-    alignment = bfd_section_alignment (ibfd, isection);
+    alignment = bfd_section_alignment (isection);
   
   /* FIXME: This is probably not enough.  If we change the LMA we
      may have to recompute the header for the file as well.  */
-  if (!bfd_set_section_alignment (obfd,
-				  osection,
-				  alignment))
+  if (!bfd_set_section_alignment (osection, alignment))
     {
       err = _("failed to set alignment");
       goto loser;
@@ -3965,12 +3962,12 @@ skip_section (bfd *ibfd, sec_ptr isection, bfd_boolean skip_copy)
   if (skip_copy && is_merged_note_section (ibfd, isection))
     return TRUE;
 
-  flags = bfd_get_section_flags (ibfd, isection);
+  flags = bfd_section_flags (isection);
   if ((flags & SEC_GROUP) != 0)
     return TRUE;
 
   osection = isection->output_section;
-  size = bfd_get_section_size (isection);
+  size = bfd_section_size (isection);
 
   if (size == 0 || osection == 0)
     return TRUE;
@@ -3995,7 +3992,7 @@ handle_remove_relocations_option (const char *section_pattern)
 static bfd_boolean
 discard_relocations (bfd *ibfd ATTRIBUTE_UNUSED, asection *isection)
 {
-  return (find_section_list (bfd_section_name (ibfd, isection), FALSE,
+  return (find_section_list (bfd_section_name (isection), FALSE,
 			     SECTION_CONTEXT_REMOVE_RELOCS) != NULL);
 }
 
@@ -4140,10 +4137,10 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
      ELF classes of input and output aren't the same.  We can't use
      the output section size since --interleave will shrink the output
      section.   Size will be updated if the section is converted.   */
-  size = bfd_get_section_size (isection);
+  size = bfd_section_size (isection);
 
-  if (bfd_get_section_flags (ibfd, isection) & SEC_HAS_CONTENTS
-      && bfd_get_section_flags (obfd, osection) & SEC_HAS_CONTENTS)
+  if (bfd_section_flags (isection) & SEC_HAS_CONTENTS
+      && bfd_section_flags (osection) & SEC_HAS_CONTENTS)
     {
       bfd_byte *memhunk = NULL;
 
@@ -4180,7 +4177,7 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
 	  else
 	    /* User must pad the section up in order to do this.  */
 	    fatal (_("cannot reverse bytes: length of section %s must be evenly divisible by %d"),
-		   bfd_section_name (ibfd, isection), reverse_bytes);
+		   bfd_section_name (isection), reverse_bytes);
 	}
 
       if (copy_byte >= 0)
@@ -4223,7 +4220,7 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
 	}
       free (memhunk);
     }
-  else if ((p = find_section_list (bfd_get_section_name (ibfd, isection),
+  else if ((p = find_section_list (bfd_section_name (isection),
 				   FALSE, SECTION_CONTEXT_SET_FLAGS)) != NULL
 	   && (p->flags & SEC_HAS_CONTENTS) != 0)
     {
@@ -4294,9 +4291,9 @@ compare_section_lma (const void *arg1, const void *arg2)
     return -1;
 
   /* Sort sections with the same LMA by size.  */
-  if (bfd_get_section_size (*sec1) > bfd_get_section_size (*sec2))
+  if (bfd_section_size (*sec1) > bfd_section_size (*sec2))
     return 1;
-  else if (bfd_get_section_size (*sec1) < bfd_get_section_size (*sec2))
+  else if (bfd_section_size (*sec1) < bfd_section_size (*sec2))
     return -1;
 
   return 0;
@@ -4378,10 +4375,10 @@ write_debugging_info (bfd *obfd, void *dhandle,
       stabstrsec = bfd_make_section_with_flags (obfd, ".stabstr", flags);
       if (stabsec == NULL
 	  || stabstrsec == NULL
-	  || ! bfd_set_section_size (obfd, stabsec, symsize)
-	  || ! bfd_set_section_size (obfd, stabstrsec, stringsize)
-	  || ! bfd_set_section_alignment (obfd, stabsec, 2)
-	  || ! bfd_set_section_alignment (obfd, stabstrsec, 0))
+	  || !bfd_set_section_size (stabsec, symsize)
+	  || !bfd_set_section_size (stabstrsec, stringsize)
+	  || !bfd_set_section_alignment (stabsec, 2)
+	  || !bfd_set_section_alignment (stabstrsec, 0))
 	{
 	  bfd_nonfatal_message (NULL, obfd, NULL,
 				_("can't create debugging section"));
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 4a7c8f9a74..96727a0f51 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -545,13 +545,13 @@ dump_section_header (bfd *abfd, asection *section, void *data)
     return;
 
   printf ("%3d %-*s %08lx  ", section->index, longest_section_name,
-	  sanitize_string (bfd_get_section_name (abfd, section)),
-	  (unsigned long) bfd_section_size (abfd, section) / opb);
-  bfd_printf_vma (abfd, bfd_get_section_vma (abfd, section));
+	  sanitize_string (bfd_section_name (section)),
+	  (unsigned long) bfd_section_size (section) / opb);
+  bfd_printf_vma (abfd, bfd_section_vma (section));
   printf ("  ");
   bfd_printf_vma (abfd, section->lma);
   printf ("  %08lx  2**%u", (unsigned long) section->filepos,
-	  bfd_get_section_alignment (abfd, section));
+	  bfd_section_alignment (section));
   if (! wide_output)
     printf ("\n                ");
   printf ("  ");
@@ -631,7 +631,8 @@ dump_section_header (bfd *abfd, asection *section, void *data)
    DATA which contains the string length of the longest section name.  */
 
 static void
-find_longest_section_name (bfd *abfd, asection *section, void *data)
+find_longest_section_name (bfd *abfd ATTRIBUTE_UNUSED,
+			   asection *section, void *data)
 {
   int *longest_so_far = (int *) data;
   const char *name;
@@ -645,7 +646,7 @@ find_longest_section_name (bfd *abfd, asection *section, void *data)
   if (! process_section_p (section))
     return;
 
-  name = bfd_get_section_name (abfd, section);
+  name = bfd_section_name (section);
   len = (int) strlen (name);
   if (len > *longest_so_far)
     *longest_so_far = len;
@@ -1034,8 +1035,8 @@ sym_ok (bfd_boolean               want_section,
 	 debug info file, whilst the section we want is in a normal file.
 	 So the section pointers will be different, but the section names
 	 will be the same.  */
-      if (strcmp (bfd_section_name (abfd, sorted_syms[place]->section),
-		  bfd_section_name (abfd, sec)) != 0)
+      if (strcmp (bfd_section_name (sorted_syms[place]->section),
+		  bfd_section_name (sec)) != 0)
 	return FALSE;
     }
 
@@ -1141,9 +1142,9 @@ find_symbol_for_address (bfd_vma vma,
      Also give the target a chance to reject symbols.  */
   want_section = (aux->require_sec
 		  || ((abfd->flags & HAS_RELOC) != 0
-		      && vma >= bfd_get_section_vma (abfd, sec)
-		      && vma < (bfd_get_section_vma (abfd, sec)
-				+ bfd_section_size (abfd, sec) / opb)));
+		      && vma >= bfd_section_vma (sec)
+		      && vma < (bfd_section_vma (sec)
+				+ bfd_section_size (sec) / opb)));
   
   if (! sym_ok (want_section, abfd, thisplace, sec, inf))
     {
@@ -1267,8 +1268,8 @@ objdump_print_addr_with_sym (bfd *abfd, asection *sec, asymbol *sym,
       bfd_vma secaddr;
 
       (*inf->fprintf_func) (inf->stream, " <%s",
-			    sanitize_string (bfd_get_section_name (abfd, sec)));
-      secaddr = bfd_get_section_vma (abfd, sec);
+			    sanitize_string (bfd_section_name (sec)));
+      secaddr = bfd_section_vma (sec);
       if (vma < secaddr)
 	{
 	  (*inf->fprintf_func) (inf->stream, "-0x");
@@ -2235,7 +2236,7 @@ disassemble_bytes (struct disassemble_info * inf,
 		      asection *sym_sec;
 
 		      sym_sec = bfd_asymbol_section (*q->sym_ptr_ptr);
-		      sym_name = bfd_get_section_name (aux->abfd, sym_sec);
+		      sym_name = bfd_section_name (sym_sec);
 		      if (sym_name == NULL || *sym_name == '\0')
 			sym_name = "*unknown*";
 		      printf ("%s", sanitize_string (sym_name));
@@ -2308,7 +2309,7 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
   if (! process_section_p (section))
     return;
 
-  datasize = bfd_get_section_size (section);
+  datasize = bfd_section_size (section);
   if (datasize == 0)
     return;
 
@@ -2538,7 +2539,7 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
       else
 	{
 #define is_valid_next_sym(SYM) \
-  (strcmp (bfd_section_name (abfd, (SYM)->section), bfd_section_name (abfd, section)) == 0 \
+  (strcmp (bfd_section_name ((SYM)->section), bfd_section_name (section)) == 0 \
    && (bfd_asymbol_value (SYM) > bfd_asymbol_value (sym)) \
    && pinfo->symbol_is_valid (SYM, pinfo))
 
@@ -2750,9 +2751,9 @@ load_specific_debug_section (enum dwarf_section_display_enum debug,
   section->filename = bfd_get_filename (abfd);
   section->reloc_info = NULL;
   section->num_relocs = 0;
-  section->address = bfd_get_section_vma (abfd, sec);
+  section->address = bfd_section_vma (sec);
   section->user_data = sec;
-  section->size = bfd_get_section_size (sec);
+  section->size = bfd_section_size (sec);
   /* PR 24360: On 32-bit hosts sizeof (size_t) < sizeof (bfd_size_type). */
   alloced = amt = section->size + 1;
   if (alloced != amt || alloced == 0)
@@ -2925,7 +2926,7 @@ static void
 dump_dwarf_section (bfd *abfd, asection *section,
 		    void *arg ATTRIBUTE_UNUSED)
 {
-  const char *name = bfd_get_section_name (abfd, section);
+  const char *name = bfd_section_name (section);
   const char *match;
   int i;
 
@@ -3050,7 +3051,7 @@ read_section_stabs (bfd *abfd, const char *sect_name, bfd_size_type *size_ptr,
       return NULL;
     }
 
-  *size_ptr = bfd_section_size (abfd, stabsect);
+  *size_ptr = bfd_section_size (stabsect);
   if (entsize_ptr)
     *entsize_ptr = stabsect->entsize;
 
@@ -3459,7 +3460,7 @@ dump_section (bfd *abfd, asection *section, void *dummy ATTRIBUTE_UNUSED)
   if (! process_section_p (section))
     return;
 
-  if ((datasize = bfd_section_size (abfd, section)) == 0)
+  if ((datasize = bfd_section_size (section)) == 0)
     return;
 
   /* Compute the address range to display.  */
diff --git a/binutils/od-elf32_avr.c b/binutils/od-elf32_avr.c
index aaa97bb581..4a607d20ee 100644
--- a/binutils/od-elf32_avr.c
+++ b/binutils/od-elf32_avr.c
@@ -85,7 +85,7 @@ elf32_avr_get_note_section_contents (bfd *abfd, bfd_size_type *size)
   if ((section = bfd_get_section_by_name (abfd, ".note.gnu.avr.deviceinfo")) == NULL)
     return NULL;
 
-  *size = bfd_get_section_size (section);
+  *size = bfd_section_size (section);
   char *contents = (char *) xmalloc (*size);
   bfd_get_section_contents (abfd, section, contents, 0, *size);
 
@@ -162,17 +162,17 @@ elf32_avr_get_memory_usage (bfd *abfd,
   asection *section;
 
   if ((section = bfd_get_section_by_name (abfd, ".data")) != NULL)
-    avr_datasize = bfd_section_size (abfd, section);
+    avr_datasize = bfd_section_size (section);
   if ((section = bfd_get_section_by_name (abfd, ".text")) != NULL)
-    avr_textsize = bfd_section_size (abfd, section);
+    avr_textsize = bfd_section_size (section);
   if ((section = bfd_get_section_by_name (abfd, ".bss")) != NULL)
-    avr_bsssize = bfd_section_size (abfd, section);
+    avr_bsssize = bfd_section_size (section);
   if ((section = bfd_get_section_by_name (abfd, ".bootloader")) != NULL)
-    bootloadersize = bfd_section_size (abfd, section);
+    bootloadersize = bfd_section_size (section);
   if ((section = bfd_get_section_by_name (abfd, ".noinit")) != NULL)
-    noinitsize = bfd_section_size (abfd, section);
+    noinitsize = bfd_section_size (section);
   if ((section = bfd_get_section_by_name (abfd, ".eeprom")) != NULL)
-    eepromsize = bfd_section_size (abfd, section);
+    eepromsize = bfd_section_size (section);
 
   *text_usage = avr_textsize + avr_datasize + bootloadersize;
   *data_usage = avr_datasize + avr_bsssize + noinitsize;
@@ -255,12 +255,12 @@ elf32_avr_dump_avr_prop (bfd *abfd)
   for (i = 0; i < r_list->record_count; ++i)
     {
       printf ("   %d %s @ %s + %#08lx (%#08lx)\n",
-              i,
-              avr_elf32_property_record_name (&r_list->records [i]),
-              r_list->records [i].section->name,
-              r_list->records [i].offset,
-              (bfd_get_section_vma (abfd, r_list->records [i].section)
-               + r_list->records [i].offset));
+	      i,
+	      avr_elf32_property_record_name (&r_list->records [i]),
+	      r_list->records [i].section->name,
+	      r_list->records [i].offset,
+	      (bfd_section_vma (r_list->records [i].section)
+	       + r_list->records [i].offset));
       switch (r_list->records [i].type)
         {
         case RECORD_ORG:
diff --git a/binutils/od-macho.c b/binutils/od-macho.c
index 6dc8c4d385..ada86b5236 100644
--- a/binutils/od-macho.c
+++ b/binutils/od-macho.c
@@ -2259,7 +2259,7 @@ dump_section_content (bfd *abfd,
 		asection *bfdsec = sec->bfdsection;
 		unsigned char *content;
 
-		size = bfd_get_section_size (bfdsec);
+		size = bfd_section_size (bfdsec);
 		content = (unsigned char *) xmalloc (size);
 		bfd_get_section_contents (abfd, bfdsec, content, 0, size);
 
diff --git a/binutils/od-xcoff.c b/binutils/od-xcoff.c
index 1f79985002..e5566bc9a7 100644
--- a/binutils/od-xcoff.c
+++ b/binutils/od-xcoff.c
@@ -763,7 +763,7 @@ dump_xcoff32_symbols (bfd *abfd, struct xcoff_dump *data)
     {
       bfd_size_type size;
 
-      size = bfd_get_section_size (debugsec);
+      size = bfd_section_size (debugsec);
       debug = (char *) xmalloc (size);
       bfd_get_section_contents (abfd, debugsec, debug, 0, size);
     }
@@ -1051,7 +1051,7 @@ dump_xcoff32_loader (bfd *abfd)
       printf (_("no .loader section in file\n"));
       return;
     }
-  size = bfd_get_section_size (loader);
+  size = bfd_section_size (loader);
   if (size < sizeof (*lhdr))
     {
       printf (_("section .loader is too short\n"));
@@ -1198,7 +1198,7 @@ dump_xcoff32_except (bfd *abfd, struct xcoff_dump *data)
       printf (_("no .except section in file\n"));
       return;
     }
-  size = bfd_get_section_size (sec);
+  size = bfd_section_size (sec);
   excp_data = (bfd_byte *) xmalloc (size);
   bfd_get_section_contents (abfd, sec, excp_data, 0, size);
   exceptab = (struct external_exceptab *)excp_data;
@@ -1241,7 +1241,7 @@ dump_xcoff32_typchk (bfd *abfd)
       printf (_("no .typchk section in file\n"));
       return;
     }
-  size = bfd_get_section_size (sec);
+  size = bfd_section_size (sec);
   data = (bfd_byte *) xmalloc (size);
   bfd_get_section_contents (abfd, sec, data, 0, size);
 
@@ -1449,9 +1449,9 @@ dump_xcoff32_traceback (bfd *abfd, struct xcoff_dump *data)
   text_sec = bfd_get_section_by_name (abfd, ".text");
   if (text_sec == NULL)
     return;
-  text_vma = bfd_get_section_vma (abfd, text_sec);
+  text_vma = bfd_section_vma (text_sec);
 
-  text_size = bfd_get_section_size (text_sec);
+  text_size = bfd_section_size (text_sec);
   text = (char *) xmalloc (text_size);
   bfd_get_section_contents (abfd, text_sec, text, 0, text_size);
 
diff --git a/binutils/prdbg.c b/binutils/prdbg.c
index d44f5c4fcc..40cf54b8fe 100644
--- a/binutils/prdbg.c
+++ b/binutils/prdbg.c
@@ -1930,14 +1930,14 @@ find_address_in_section (bfd *abfd, asection *section, void *data)
   if (found)
     return;
 
-  if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0)
+  if ((bfd_section_flags (section) & SEC_ALLOC) == 0)
     return;
 
-  vma = bfd_get_section_vma (abfd, section);
+  vma = bfd_section_vma (section);
   if (pc < vma)
     return;
 
-  size = bfd_get_section_size (section);
+  size = bfd_section_size (section);
   if (pc >= vma + size)
     return;
 
diff --git a/binutils/rdcoff.c b/binutils/rdcoff.c
index cbb5db1b94..006f13b3aa 100644
--- a/binutils/rdcoff.c
+++ b/binutils/rdcoff.c
@@ -816,7 +816,7 @@ parse_coff (bfd *abfd, asymbol **syms, long symcount, void *dhandle)
 		  else
 		    base = auxent.x_sym.x_misc.x_lnsz.x_lnno - 1;
 
-		  addr = bfd_get_section_vma (abfd, bfd_asymbol_section (sym));
+		  addr = bfd_section_vma (bfd_asymbol_section (sym));
 
 		  ++linenos;
 
diff --git a/binutils/rddbg.c b/binutils/rddbg.c
index 92052783ba..eb8ffcbc02 100644
--- a/binutils/rddbg.c
+++ b/binutils/rddbg.c
@@ -121,7 +121,7 @@ read_section_stabs_debugging_info (bfd *abfd, asymbol **syms, long symcount,
 	  bfd_byte *stab;
 	  bfd_size_type stroff, next_stroff;
 
-	  stabsize = bfd_section_size (abfd, sec);
+	  stabsize = bfd_section_size (sec);
 	  stabs = (bfd_byte *) xmalloc (stabsize);
 	  if (! bfd_get_section_contents (abfd, sec, stabs, 0, stabsize))
 	    {
@@ -133,7 +133,7 @@ read_section_stabs_debugging_info (bfd *abfd, asymbol **syms, long symcount,
 	      return FALSE;
 	    }
 
-	  strsize = bfd_section_size (abfd, strsec);
+	  strsize = bfd_section_size (strsec);
 	  strings = (bfd_byte *) xmalloc (strsize + 1);
 	  if (! bfd_get_section_contents (abfd, strsec, strings, 0, strsize))
 	    {
diff --git a/binutils/rescoff.c b/binutils/rescoff.c
index 815f0a1733..9a0fcda2ac 100644
--- a/binutils/rescoff.c
+++ b/binutils/rescoff.c
@@ -141,7 +141,7 @@ read_coff_rsrc (const char *filename, const char *target)
     }
 
   set_windres_bfd (&wrbfd, abfd, sec, WR_KIND_BFD);
-  size = bfd_section_size (abfd, sec);
+  size = bfd_section_size (sec);
   /* PR 17512: file: 1b25ba5d
      The call to get_file_size here may be expensive
      but there is no other way to determine if the section size
@@ -155,8 +155,8 @@ read_coff_rsrc (const char *filename, const char *target)
   flaginfo.filename = filename;
   flaginfo.data = data;
   flaginfo.data_end = data + size;
-  flaginfo.secaddr = (bfd_get_section_vma (abfd, sec)
-		   - pe_data (abfd)->pe_opthdr.ImageBase);
+  flaginfo.secaddr = (bfd_section_vma (sec)
+		      - pe_data (abfd)->pe_opthdr.ImageBase);
 
   /* Now just read in the top level resource directory.  Note that we
      don't free data, since we create resource entries that point into
@@ -547,7 +547,7 @@ write_coff_file (const char *filename, const char *target,
 	    + cwi.dataentsize
 	    + cwi.resources.length);
 
-  if (! bfd_set_section_size (abfd, sec, length))
+  if (!bfd_set_section_size (sec, length))
     bfd_fatal ("bfd_set_section_size");
 
   bfd_set_reloc (abfd, sec, cwi.relocs, cwi.reloc_count);
diff --git a/binutils/resres.c b/binutils/resres.c
index e9444bda0e..161ea354fe 100644
--- a/binutils/resres.c
+++ b/binutils/resres.c
@@ -142,7 +142,7 @@ write_res_file (const char *fn,const rc_res_directory *resdir)
   sec_length = write_res_directory ((windres_bfd *) NULL, 0x20UL, resdir,
 				    (const rc_res_id *) NULL,
 				    (const rc_res_id *) NULL, &language, 1);
-  if (! bfd_set_section_size (abfd, sec, (sec_length + 3) & ~3))
+  if (!bfd_set_section_size (sec, (sec_length + 3) & ~3))
     bfd_fatal ("bfd_set_section_size");
   if ((sec_length & 3) != 0)
     set_windres_bfd_content (&wrbfd, sign, sec_length, 4-(sec_length & 3));
diff --git a/binutils/size.c b/binutils/size.c
index 479a464887..b147221e91 100644
--- a/binutils/size.c
+++ b/binutils/size.c
@@ -478,11 +478,11 @@ berkeley_or_gnu_sum (bfd *abfd ATTRIBUTE_UNUSED, sec_ptr sec,
   flagword flags;
   bfd_size_type size;
 
-  flags = bfd_get_section_flags (abfd, sec);
+  flags = bfd_section_flags (sec);
   if ((flags & SEC_ALLOC) == 0)
     return;
 
-  size = bfd_get_section_size (sec);
+  size = bfd_section_size (sec);
   if ((flags & SEC_CODE) != 0
       || (selected_output_format == FORMAT_BERKLEY
 	  && (flags & SEC_READONLY) != 0))
@@ -557,21 +557,21 @@ static void
 sysv_internal_sizer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
 		     void *ignore ATTRIBUTE_UNUSED)
 {
-  bfd_size_type size = bfd_section_size (file, sec);
+  bfd_size_type size = bfd_section_size (sec);
 
   if (   ! bfd_is_abs_section (sec)
       && ! bfd_is_com_section (sec)
       && ! bfd_is_und_section (sec))
     {
-      int namelen = strlen (bfd_section_name (file, sec));
+      int namelen = strlen (bfd_section_name (sec));
 
       if (namelen > svi_namelen)
 	svi_namelen = namelen;
 
       svi_total += size;
 
-      if (bfd_section_vma (file, sec) > svi_maxvma)
-	svi_maxvma = bfd_section_vma (file, sec);
+      if (bfd_section_vma (sec) > svi_maxvma)
+	svi_maxvma = bfd_section_vma (sec);
     }
 }
 
@@ -589,7 +589,7 @@ static void
 sysv_internal_printer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
 		       void *ignore ATTRIBUTE_UNUSED)
 {
-  bfd_size_type size = bfd_section_size (file, sec);
+  bfd_size_type size = bfd_section_size (sec);
 
   if (   ! bfd_is_abs_section (sec)
       && ! bfd_is_com_section (sec)
@@ -597,9 +597,9 @@ sysv_internal_printer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
     {
       svi_total += size;
 
-      sysv_one_line (bfd_section_name (file, sec),
+      sysv_one_line (bfd_section_name (sec),
 		     size,
-		     bfd_section_vma (file, sec));
+		     bfd_section_vma (sec));
     }
 }
 
diff --git a/binutils/srconv.c b/binutils/srconv.c
index 39c1a4f4e7..a421f642e0 100644
--- a/binutils/srconv.c
+++ b/binutils/srconv.c
@@ -419,14 +419,14 @@ wr_ob (struct coff_ofile *p ATTRIBUTE_UNUSED, struct coff_section *section)
   unsigned char stuff[200];
 
   i = 0;
-  while (i < bfd_get_section_size (section->bfd_section))
+  while (i < bfd_section_size (section->bfd_section))
     {
       struct IT_ob ob;
       int todo = 200;		/* Copy in 200 byte lumps.  */
 
       ob.spare = 0;
-      if (i + todo > bfd_get_section_size (section->bfd_section))
-	todo = bfd_get_section_size (section->bfd_section) - i;
+      if (i + todo > bfd_section_size (section->bfd_section))
+	todo = bfd_section_size (section->bfd_section) - i;
 
       if (first)
 	{
diff --git a/binutils/strings.c b/binutils/strings.c
index ea48f92feb..8150c1181d 100644
--- a/binutils/strings.c
+++ b/binutils/strings.c
@@ -332,7 +332,7 @@ strings_a_section (bfd *abfd, asection *sect, const char *filename,
   if ((sect->flags & DATA_FLAGS) != DATA_FLAGS)
     return;
 
-  sectsize = bfd_get_section_size (sect);
+  sectsize = bfd_section_size (sect);
   if (sectsize == 0)
     return;
 
diff --git a/binutils/windmc.c b/binutils/windmc.c
index eaf4d6e4e1..10bd6144c6 100644
--- a/binutils/windmc.c
+++ b/binutils/windmc.c
@@ -698,7 +698,7 @@ windmc_write_bin (const char *filename, mc_node_lang **nl, int elems)
       dta_off += mi[i].res_len;
     }
   sec_length = (dta_off + 3) & ~3;
-  if (! bfd_set_section_size (mc_bfd.abfd, mc_bfd.sec, sec_length))
+  if (!bfd_set_section_size (mc_bfd.sec, sec_length))
     bfd_fatal ("bfd_set_section_size");
   /* Make sure we write the complete block.  */
   set_windmc_bfd_content ("\0", sec_length - 1, 1);
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 3d61530a9b..819585d9e3 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,31 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* as.c, * as.h, * dw2gencfi.c, * dwarf2dbg.c, * ecoff.c,
+	* read.c, * stabs.c, * subsegs.c, * subsegs.h, * write.c,
+	* config/obj-coff-seh.c, * config/obj-coff.c, * config/obj-ecoff.c,
+	* config/obj-elf.c, * config/obj-macho.c, * config/obj-som.c,
+	* config/tc-aarch64.c, * config/tc-alpha.c, * config/tc-arc.c,
+	* config/tc-arm.c, * config/tc-avr.c, * config/tc-bfin.c,
+	* config/tc-bpf.c, * config/tc-d10v.c, * config/tc-d30v.c,
+	* config/tc-epiphany.c, * config/tc-fr30.c, * config/tc-frv.c,
+	* config/tc-h8300.c, * config/tc-hppa.c, * config/tc-i386.c,
+	* config/tc-ia64.c, * config/tc-ip2k.c, * config/tc-iq2000.c,
+	* config/tc-lm32.c, * config/tc-m32c.c, * config/tc-m32r.c,
+	* config/tc-m68hc11.c, * config/tc-mep.c, * config/tc-microblaze.c,
+	* config/tc-mips.c, * config/tc-mmix.c, * config/tc-mn10200.c,
+	* config/tc-mn10300.c, * config/tc-msp430.c, * config/tc-mt.c,
+	* config/tc-nds32.c, * config/tc-or1k.c, * config/tc-ppc.c,
+	* config/tc-pru.c, * config/tc-rl78.c, * config/tc-rx.c,
+	* config/tc-s12z.c, * config/tc-s390.c, * config/tc-score.c,
+	* config/tc-score7.c, * config/tc-sh.c, * config/tc-sparc.c,
+	* config/tc-spu.c, * config/tc-tic4x.c, * config/tc-tic54x.c,
+	* config/tc-tic6x.c, * config/tc-tilegx.c, * config/tc-tilepro.c,
+	* config/tc-v850.c, * config/tc-visium.c, * config/tc-wasm32.c,
+	* config/tc-xc16x.c, * config/tc-xgate.c, * config/tc-xstormy16.c,
+	* config/tc-xtensa.c, * config/tc-z8k.c: Update throughout for
+	bfd section macro and function changes.
+	* write.c (compress_debug): Use bfd_rename_section.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* symbols.c (S_IS_LOCAL): Update bfd_get_section to
diff --git a/gas/as.c b/gas/as.c
index c7bdf0cd88..d53db113e2 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -1147,13 +1147,13 @@ perform_an_assembly_pass (int argc, char ** argv)
   /* @@ FIXME -- we're setting the RELOC flag so that sections are assumed
      to have relocs, otherwise we don't find out in time.  */
   applicable = bfd_applicable_section_flags (stdoutput);
-  bfd_set_section_flags (stdoutput, text_section,
+  bfd_set_section_flags (text_section,
 			 applicable & (SEC_ALLOC | SEC_LOAD | SEC_RELOC
 				       | SEC_CODE | SEC_READONLY));
-  bfd_set_section_flags (stdoutput, data_section,
+  bfd_set_section_flags (data_section,
 			 applicable & (SEC_ALLOC | SEC_LOAD | SEC_RELOC
 				       | SEC_DATA));
-  bfd_set_section_flags (stdoutput, bss_section, applicable & SEC_ALLOC);
+  bfd_set_section_flags (bss_section, applicable & SEC_ALLOC);
   seg_info (bss_section)->bss = 1;
 #endif
   subseg_new (BFD_ABS_SECTION_NAME, 0);
@@ -1360,7 +1360,7 @@ main (int argc, char ** argv)
       segT gnustack;
 
       gnustack = subseg_new (".note.GNU-stack", 0);
-      bfd_set_section_flags (stdoutput, gnustack,
+      bfd_set_section_flags (gnustack,
 			     SEC_READONLY | (flag_execstack ? SEC_CODE : 0));
 
     }
diff --git a/gas/as.h b/gas/as.h
index 96b551eded..5b604a4534 100644
--- a/gas/as.h
+++ b/gas/as.h
@@ -226,7 +226,7 @@ COMMON subsegT now_subseg;
 /* Segment our instructions emit to.  */
 COMMON segT now_seg;
 
-#define segment_name(SEG)	bfd_get_section_name (stdoutput, SEG)
+#define segment_name(SEG)	bfd_section_name (SEG)
 
 extern segT reg_section, expr_section;
 /* Shouldn't these be eliminated someday?  */
diff --git a/gas/config/obj-coff-seh.c b/gas/config/obj-coff-seh.c
index 183be7925f..b24e435677 100644
--- a/gas/config/obj-coff-seh.c
+++ b/gas/config/obj-coff-seh.c
@@ -48,7 +48,7 @@ get_pxdata_name (segT seg, const char *base_name)
   const char *name,*dollar, *dot;
   char *sname;
 
-  name = bfd_get_section_name (stdoutput, seg);
+  name = bfd_section_name (seg);
 
   dollar = strchr (name, '$');
   dot = strchr (name + 1, '.');
@@ -95,16 +95,16 @@ make_pxdata_seg (segT cseg, char *name)
 
   r = subseg_new (name, 0);
   /* Check if code segment is marked as linked once.  */
-  flags = bfd_get_section_flags (stdoutput, cseg)
-    & (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
-       | SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE
-       | SEC_LINK_DUPLICATES_SAME_CONTENTS);
+  flags = (bfd_section_flags (cseg)
+	   & (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
+	      | SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE
+	      | SEC_LINK_DUPLICATES_SAME_CONTENTS));
 
   /* Add standard section flags.  */
   flags |= SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA;
 
   /* Apply possibly linked once flags to new generated segment, too.  */
-  if (!bfd_set_section_flags (stdoutput, r, flags))
+  if (!bfd_set_section_flags (r, flags))
     as_bad (_("bfd_set_section_flags: %s"),
 	    bfd_errmsg (bfd_get_error ()));
 
@@ -161,8 +161,8 @@ seh_validate_seg (const char *directive)
   const char *cseg_name, *nseg_name;
   if (seh_ctx_cur->code_seg == now_seg)
     return 1;
-  cseg_name = bfd_get_section_name (stdoutput, seh_ctx_cur->code_seg);
-  nseg_name = bfd_get_section_name (stdoutput, now_seg);
+  cseg_name = bfd_section_name (seh_ctx_cur->code_seg);
+  nseg_name = bfd_section_name (now_seg);
   as_bad (_("%s used in segment '%s' instead of expected '%s'"),
   	  directive, nseg_name, cseg_name);
   ignore_rest_of_line ();
diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c
index c4e1d71ce4..d1dd0f0131 100644
--- a/gas/config/obj-coff.c
+++ b/gas/config/obj-coff.c
@@ -205,13 +205,12 @@ obj_coff_common_parse (int ignore ATTRIBUTE_UNUSED, symbolS *symbolP, addressT s
       char numbuff[20];
 
       sec = subseg_new (".drectve", 0);
-      oldflags = bfd_get_section_flags (stdoutput, sec);
+      oldflags = bfd_section_flags (sec);
       if (oldflags == SEC_NO_FLAGS)
 	{
-	  if (!bfd_set_section_flags (stdoutput, sec,
-		TC_COFF_SECTION_DEFAULT_ATTRIBUTES))
+	  if (!bfd_set_section_flags (sec, TC_COFF_SECTION_DEFAULT_ATTRIBUTES))
 	    as_warn (_("error setting flags for \"%s\": %s"),
-		bfd_section_name (stdoutput, sec),
+		bfd_section_name (sec),
 		bfd_errmsg (bfd_get_error ()));
 	}
 
@@ -554,7 +553,7 @@ obj_coff_ident (int ignore ATTRIBUTE_UNUSED)
        that shouldn't be loaded into memory, which requires linker
        changes...  For now, until proven otherwise, use .rdata.  */
     sec = subseg_new (".rdata$zzz", 0);
-    bfd_set_section_flags (stdoutput, sec,
+    bfd_set_section_flags (sec,
 			   ((SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA)
 			    & bfd_applicable_section_flags (stdoutput)));
   }
@@ -774,8 +773,7 @@ obj_coff_endef (int ignore ATTRIBUTE_UNUSED)
 
   if (S_GET_STORAGE_CLASS (def_symbol_in_progress) == C_EFCN
       || S_GET_STORAGE_CLASS (def_symbol_in_progress) == C_LABEL
-      || (streq (bfd_get_section_name (stdoutput,
-				       S_GET_SEGMENT (def_symbol_in_progress)),
+      || (streq (bfd_section_name (S_GET_SEGMENT (def_symbol_in_progress)),
 		 "*DEBUG*")
 	  && !SF_GET_TAG (def_symbol_in_progress))
       || S_GET_SEGMENT (def_symbol_in_progress) == absolute_section
@@ -1480,7 +1478,7 @@ coff_adjust_section_syms (bfd *abfd ATTRIBUTE_UNUSED,
 	fixp = fixp->fx_next;
       }
   }
-  if (bfd_get_section_size (sec) == 0
+  if (bfd_section_size (sec) == 0
       && nrelocs == 0
       && nlnno == 0
       && sec != text_section
@@ -1657,7 +1655,7 @@ obj_coff_section (int ignore ATTRIBUTE_UNUSED)
   if (alignment >= 0)
     sec->alignment_power = alignment;
 
-  oldflags = bfd_get_section_flags (stdoutput, sec);
+  oldflags = bfd_section_flags (sec);
   if (oldflags == SEC_NO_FLAGS)
     {
       /* Set section flags for a new section just created by subseg_new.
@@ -1673,9 +1671,9 @@ obj_coff_section (int ignore ATTRIBUTE_UNUSED)
 	flags |= SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD;
 #endif
 
-      if (! bfd_set_section_flags (stdoutput, sec, flags))
+      if (!bfd_set_section_flags (sec, flags))
 	as_warn (_("error setting flags for \"%s\": %s"),
-		 bfd_section_name (stdoutput, sec),
+		 bfd_section_name (sec),
 		 bfd_errmsg (bfd_get_error ()));
     }
   else if (flags != SEC_NO_FLAGS)
@@ -1713,7 +1711,7 @@ coff_frob_section (segT sec)
      supposedly because standard COFF has no other way of encoding alignment
      for sections.  If your COFF flavor has a different way of encoding
      section alignment, then skip this step, as TICOFF does.  */
-  bfd_vma size = bfd_get_section_size (sec);
+  bfd_vma size = bfd_section_size (sec);
 #if !defined(TICOFF)
   bfd_vma align_power = (bfd_vma) sec->alignment_power + OCTETS_PER_BYTE_POWER;
   bfd_vma mask = ((bfd_vma) 1 << align_power) - 1;
@@ -1724,7 +1722,7 @@ coff_frob_section (segT sec)
       fragS *last;
 
       new_size = (size + mask) & ~mask;
-      bfd_set_section_size (stdoutput, sec, new_size);
+      bfd_set_section_size (sec, new_size);
 
       /* If the size had to be rounded up, add some padding in
          the last non-empty frag.  */
@@ -1751,7 +1749,7 @@ coff_frob_section (segT sec)
       unsigned char sclass = C_STAT;
 
 #ifdef OBJ_XCOFF
-      if (bfd_get_section_flags (stdoutput, sec) & SEC_DEBUGGING)
+      if (bfd_section_flags (sec) & SEC_DEBUGGING)
         sclass = C_DWARF;
 #endif
       S_SET_STORAGE_CLASS (secsym, sclass);
@@ -1772,9 +1770,9 @@ coff_frob_section (segT sec)
   strsec = sec;
   sec = subseg_get (STAB_SECTION_NAME, 0);
   /* size is already rounded up, since other section will be listed first */
-  size = bfd_get_section_size (strsec);
+  size = bfd_section_size (strsec);
 
-  n_entries = bfd_get_section_size (sec) / 12 - 1;
+  n_entries = bfd_section_size (sec) / 12 - 1;
 
   /* Find first non-empty frag.  It should be large enough.  */
   fragp = seg_info (sec)->frchainP->frch_root;
diff --git a/gas/config/obj-ecoff.c b/gas/config/obj-ecoff.c
index b62176fe73..a5616f388e 100644
--- a/gas/config/obj-ecoff.c
+++ b/gas/config/obj-ecoff.c
@@ -90,15 +90,15 @@ ecoff_frob_file_before_fix (void)
 	  }
       if (i == n_names)
 	{
-	  bfd_set_section_vma (stdoutput, sec, addr);
-	  addr += bfd_section_size (stdoutput, sec);
+	  bfd_set_section_vma (sec, addr);
+	  addr += bfd_section_size (sec);
 	}
     }
   for (i = 0; i < n_names; i++)
     if (secs[i])
       {
-	bfd_set_section_vma (stdoutput, secs[i], addr);
-	addr += bfd_section_size (stdoutput, secs[i]);
+	bfd_set_section_vma (secs[i], addr);
+	addr += bfd_section_size (secs[i]);
       }
   for (i = n_names - 1; i >= 0; i--)
     if (secs[i])
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index bdf3da8119..56293584a0 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -737,7 +737,7 @@ obj_elf_change_section (const char *name,
       if (type == SHT_NOBITS)
 	seg_info (sec)->bss = 1;
 
-      bfd_set_section_flags (stdoutput, sec, flags);
+      bfd_set_section_flags (sec, flags);
       if (flags & SEC_MERGE)
 	sec->entsize = entsize;
       elf_group_name (sec) = group_name;
@@ -1859,9 +1859,7 @@ obj_elf_version (int ignore ATTRIBUTE_UNUSED)
 
       /* Create the .note section.  */
       note_secp = subseg_new (".note", 0);
-      bfd_set_section_flags (stdoutput,
-			     note_secp,
-			     SEC_HAS_CONTENTS | SEC_READONLY);
+      bfd_set_section_flags (note_secp, SEC_HAS_CONTENTS | SEC_READONLY);
       record_alignment (note_secp, 2);
 
       /* Process the version string.  */
@@ -2140,9 +2138,8 @@ obj_elf_ident (int ignore ATTRIBUTE_UNUSED)
     {
       char *p;
       comment_section = subseg_new (".comment", 0);
-      bfd_set_section_flags (stdoutput, comment_section,
-			     SEC_READONLY | SEC_HAS_CONTENTS
-			     | SEC_MERGE | SEC_STRINGS);
+      bfd_set_section_flags (comment_section, (SEC_READONLY | SEC_HAS_CONTENTS
+					       | SEC_MERGE | SEC_STRINGS));
       comment_section->entsize = 1;
 #ifdef md_elf_section_change_hook
       md_elf_section_change_hook ();
@@ -2170,7 +2167,7 @@ obj_elf_init_stab_section (segT seg)
 
   /* Force the section to align to a longword boundary.  Without this,
      UnixWare ar crashes.  */
-  bfd_set_section_alignment (stdoutput, seg, 2);
+  bfd_set_section_alignment (seg, 2);
 
   /* Make space for this first symbol.  */
   p = frag_more (12);
@@ -2204,10 +2201,10 @@ adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
   name = concat (sec->name, "str", NULL);
   strsec = bfd_get_section_by_name (abfd, name);
   if (strsec)
-    strsz = bfd_section_size (abfd, strsec);
+    strsz = bfd_section_size (strsec);
   else
     strsz = 0;
-  nsyms = bfd_section_size (abfd, sec) / 12 - 1;
+  nsyms = bfd_section_size (sec) / 12 - 1;
 
   p = seg_info (sec)->stabu.p;
   gas_assert (p != 0);
@@ -2490,8 +2487,8 @@ elf_adjust_symtab (void)
       sec_name = ".group";
       s = subseg_force_new (sec_name, 0);
       if (s == NULL
-	  || !bfd_set_section_flags (stdoutput, s, flags)
-	  || !bfd_set_section_alignment (stdoutput, s, 2))
+	  || !bfd_set_section_flags (s, flags)
+	  || !bfd_set_section_alignment (s, 2))
 	{
 	  as_fatal (_("can't create group: %s"),
 		    bfd_errmsg (bfd_get_error ()));
@@ -2598,7 +2595,7 @@ elf_frob_file_after_relocs (void)
 
       group = elf_sec_group (head);
       subseg_set (group, 0);
-      bfd_set_section_size (stdoutput, group, size);
+      bfd_set_section_size (group, size);
       group->contents = (unsigned char *) frag_more (size);
       frag_now->fr_fix = frag_now_fix_octets ();
       frag_wane (frag_now);
@@ -2656,8 +2653,8 @@ elf_frob_file_after_relocs (void)
 	 to force the ELF backend to allocate a file position, and then
 	 write out the data.  FIXME: Is this really the best way to do
 	 this?  */
-      bfd_set_section_size
-	(stdoutput, sec, bfd_ecoff_debug_size (stdoutput, &debug, debug_swap));
+      bfd_set_section_size (sec, bfd_ecoff_debug_size (stdoutput, &debug,
+						       debug_swap));
 
       /* Pass BUF to bfd_set_section_contents because this will
 	 eventually become a call to fwrite, and ISO C prohibits
diff --git a/gas/config/obj-macho.c b/gas/config/obj-macho.c
index 185949ee1f..07c7831945 100644
--- a/gas/config/obj-macho.c
+++ b/gas/config/obj-macho.c
@@ -227,7 +227,7 @@ obj_mach_o_make_or_get_sect (char * segname, char * sectname,
   /* Sub-segments don't exists as is on Mach-O.  */
   sec = subseg_new (name, 0);
 
-  oldflags = bfd_get_section_flags (stdoutput, sec);
+  oldflags = bfd_section_flags (sec);
   msect = bfd_mach_o_get_mach_o_section (sec);
 
   if (oldflags == SEC_NO_FLAGS)
@@ -245,9 +245,9 @@ obj_mach_o_make_or_get_sect (char * segname, char * sectname,
 	flags |= SEC_DEBUGGING;
 
       /* New, so just use the defaults or what's specified.  */
-      if (! bfd_set_section_flags (stdoutput, sec, flags))
+      if (!bfd_set_section_flags (sec, flags))
 	as_warn (_("failed to set flags for \"%s\": %s"),
-		 bfd_section_name (stdoutput, sec),
+		 bfd_section_name (sec),
 		 bfd_errmsg (bfd_get_error ()));
 
       strncpy (msect->segname, segname, BFD_MACH_O_SEGNAME_SIZE);
@@ -1697,7 +1697,7 @@ static void
 obj_mach_o_set_section_vma (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *v_p)
 {
   bfd_mach_o_section *ms = bfd_mach_o_get_mach_o_section (sec);
-  unsigned bfd_align = bfd_get_section_alignment (abfd, sec);
+  unsigned bfd_align = bfd_section_alignment (sec);
   obj_mach_o_set_vma_data *p = (struct obj_mach_o_set_vma_data *)v_p;
   unsigned sectype = (ms->flags & BFD_MACH_O_SECTION_TYPE_MASK);
   unsigned zf;
@@ -1719,16 +1719,16 @@ obj_mach_o_set_section_vma (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *v_p
 
   /* We know the section size now - so make a vma for the section just
      based on order.  */
-  ms->size = bfd_get_section_size (sec);
+  ms->size = bfd_section_size (sec);
 
   /* Make sure that the align agrees, and set to the largest value chosen.  */
   ms->align = ms->align > bfd_align ? ms->align : bfd_align;
-  bfd_set_section_alignment (abfd, sec, ms->align);
+  bfd_set_section_alignment (sec, ms->align);
 
   p->vma += (1 << ms->align) - 1;
   p->vma &= ~((1 << ms->align) - 1);
   ms->addr = p->vma;
-  bfd_set_section_vma (abfd, sec, p->vma);
+  bfd_set_section_vma (sec, p->vma);
   p->vma += ms->size;
 }
 
@@ -1752,7 +1752,7 @@ static void
 obj_mach_o_set_indirect_symbols (bfd *abfd, asection *sec,
 				 void *xxx ATTRIBUTE_UNUSED)
 {
-  bfd_vma sect_size = bfd_section_size (abfd, sec);
+  bfd_vma sect_size = bfd_section_size (sec);
   bfd_mach_o_section *ms = bfd_mach_o_get_mach_o_section (sec);
   unsigned lazy = 0;
 
diff --git a/gas/config/obj-som.c b/gas/config/obj-som.c
index edd49dc7f1..20213b8b32 100644
--- a/gas/config/obj-som.c
+++ b/gas/config/obj-som.c
@@ -224,14 +224,14 @@ obj_som_init_stab_section (segT seg)
      of the various stabs spaces/subspaces need to be "small".  We
      reserve range 72/73 which appear to work well.  */
   obj_set_section_attributes (space, 1, 1, 72, 2);
-  bfd_set_section_alignment (stdoutput, space, 2);
+  bfd_set_section_alignment (space, 2);
 
   /* Set the containing space for both stab sections to be $GDB_DEBUG$
      (just created above).  Also set some attributes which BFD does
      not understand.  In particular, access bits, sort keys, and load
      quadrant.  */
   obj_set_subsection_attributes (seg, space, 0x1f, 73, 0, 0, 0, 0);
-  bfd_set_section_alignment (stdoutput, seg, 2);
+  bfd_set_section_alignment (seg, 2);
 
   /* Make some space for the first special stab entry and zero the memory.
      It contains information about the length of this file's
@@ -254,7 +254,7 @@ obj_som_init_stab_section (segT seg)
      quadrant.  */
   seg = bfd_get_section_by_name (stdoutput, "$GDB_STRINGS$");
   obj_set_subsection_attributes (seg, space, 0x1f, 72, 0, 0, 0, 0);
-  bfd_set_section_alignment (stdoutput, seg, 2);
+  bfd_set_section_alignment (seg, 2);
 
   subseg_set (saved_seg, saved_subseg);
 }
@@ -273,10 +273,10 @@ adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
 
   strsec = bfd_get_section_by_name (abfd, "$GDB_STRINGS$");
   if (strsec)
-    strsz = bfd_section_size (abfd, strsec);
+    strsz = bfd_section_size (strsec);
   else
     strsz = 0;
-  nsyms = bfd_section_size (abfd, sec) / 12 - 1;
+  nsyms = bfd_section_size (sec) / 12 - 1;
 
   p = seg_info (sec)->stabu.p;
   gas_assert (p != 0);
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 735ecd6073..522efebfe4 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -7363,7 +7363,7 @@ aarch64_init_frag (fragS * fragP, int max_chars)
 
   /* PR 21809: Do not set a mapping state for debug sections
      - it just confuses other tools.  */
-  if (bfd_get_section_flags (NULL, now_seg) & SEC_DEBUGGING)
+  if (bfd_section_flags (now_seg) & SEC_DEBUGGING)
     return;
 
   switch (fragP->fr_type)
diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c
index 7f80036157..70ceba02c1 100644
--- a/gas/config/tc-alpha.c
+++ b/gas/config/tc-alpha.c
@@ -1205,10 +1205,9 @@ create_literal_section (const char *name,
 
   *secp = new_sec = subseg_new (name, 0);
   subseg_set (current_section, current_subsec);
-  bfd_set_section_alignment (stdoutput, new_sec, 4);
-  bfd_set_section_flags (stdoutput, new_sec,
-			 SEC_RELOC | SEC_ALLOC | SEC_LOAD | SEC_READONLY
-			 | SEC_DATA);
+  bfd_set_section_alignment (new_sec, 4);
+  bfd_set_section_flags (new_sec, (SEC_RELOC | SEC_ALLOC | SEC_LOAD
+				   | SEC_READONLY | SEC_DATA));
 
   S_CLEAR_EXTERNAL (*symp = section_symbol (new_sec));
 }
@@ -3985,8 +3984,8 @@ s_alpha_stab (int n)
   if (alpha_flag_mdebug < 0)
     {
       segT sec = subseg_new (".mdebug", 0);
-      bfd_set_section_flags (stdoutput, sec, SEC_HAS_CONTENTS | SEC_READONLY);
-      bfd_set_section_alignment (stdoutput, sec, 3);
+      bfd_set_section_flags (sec, SEC_HAS_CONTENTS | SEC_READONLY);
+      bfd_set_section_alignment (sec, 3);
 
       ecoff_read_begin_hook ();
 
@@ -5301,7 +5300,7 @@ maybe_set_gp (asection *sec)
 
   if (!sec)
     return;
-  vma = bfd_get_section_vma (sec->owner, sec);
+  vma = bfd_section_vma (sec);
   if (vma && vma < alpha_gp_value)
     alpha_gp_value = vma;
 }
@@ -5515,8 +5514,8 @@ md_begin (void)
   if (ECOFF_DEBUGGING)
     {
       segT sec = subseg_new (".mdebug", (subsegT) 0);
-      bfd_set_section_flags (stdoutput, sec, SEC_HAS_CONTENTS | SEC_READONLY);
-      bfd_set_section_alignment (stdoutput, sec, 3);
+      bfd_set_section_flags (sec, SEC_HAS_CONTENTS | SEC_READONLY);
+      bfd_set_section_alignment (sec, 3);
     }
 #endif
 
@@ -5563,7 +5562,7 @@ md_assemble (char *str)
 valueT
 md_section_align (segT seg, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   valueT mask = ((valueT) 1 << align) - 1;
 
   return (size + mask) & ~mask;
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index c1d5ea3d47..c73906b51b 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -2706,7 +2706,7 @@ valueT
 md_section_align (segT segment,
 		  valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
 
   return ((size + (1 << align) - 1) & (-((valueT) 1 << align)));
 }
@@ -4529,8 +4529,7 @@ arc_set_ext_seg (void)
   if (!arcext_section)
     {
       arcext_section = subseg_new (".arcextmap", 0);
-      bfd_set_section_flags (stdoutput, arcext_section,
-			     SEC_READONLY | SEC_HAS_CONTENTS);
+      bfd_set_section_flags (arcext_section, SEC_READONLY | SEC_HAS_CONTENTS);
     }
   else
     subseg_set (arcext_section, 0);
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 32a15f65ec..b0f1507c36 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -22878,7 +22878,7 @@ arm_frob_label (symbolS * sym)
      out of the jump table, and chaos would ensue.  */
   if (label_is_thumb_function_name
       && (S_GET_NAME (sym)[0] != '.' || S_GET_NAME (sym)[1] != 'L')
-      && (bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+      && (bfd_section_flags (now_seg) & SEC_CODE) != 0)
     {
       /* When the address of a Thumb function is taken the bottom
 	 bit of that address should be set.  This will allow
@@ -26491,7 +26491,7 @@ arm_init_frag (fragS * fragP, int max_chars)
 
   /* PR 21809: Do not set a mapping state for debug sections
      - it just confuses other tools.  */
-  if (bfd_get_section_flags (NULL, now_seg) & SEC_DEBUGGING)
+  if (bfd_section_flags (now_seg) & SEC_DEBUGGING)
     return;
 
   frag_thumb_mode = fragP->tc_frag_data.thumb_mode ^ MODE_RECORDED;
@@ -30019,9 +30019,8 @@ md_begin (void)
 
 	if (sec != NULL)
 	  {
-	    bfd_set_section_flags
-	      (stdoutput, sec, SEC_READONLY | SEC_DEBUGGING /* | SEC_HAS_CONTENTS */);
-	    bfd_set_section_size (stdoutput, sec, 0);
+	    bfd_set_section_flags (sec, SEC_READONLY | SEC_DEBUGGING);
+	    bfd_set_section_size (sec, 0);
 	    bfd_set_section_contents (stdoutput, sec, NULL, 0, 0);
 	  }
       }
diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c
index df0833c761..36262ad8c0 100644
--- a/gas/config/tc-avr.c
+++ b/gas/config/tc-avr.c
@@ -1429,7 +1429,7 @@ avr_operands (struct avr_opcodes_s *opcode, char **line)
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   return ((addr + (1 << align) - 1) & (-1UL << align));
 }
 
@@ -2229,7 +2229,7 @@ avr_create_property_section (void)
   sec = bfd_make_section (stdoutput, section_name);
   if (sec == NULL)
     as_fatal (_("Failed to create property section `%s'\n"), section_name);
-  bfd_set_section_flags (stdoutput, sec, flags);
+  bfd_set_section_flags (sec, flags);
   sec->output_section = sec;
   return sec;
 }
@@ -2404,7 +2404,7 @@ avr_create_and_fill_property_section (void)
     return;
 
   prop_sec = avr_create_property_section ();
-  bfd_set_section_size (stdoutput, prop_sec, sec_size);
+  bfd_set_section_size (prop_sec, sec_size);
 
   subseg_set (prop_sec, 0);
   frag_base = frag_more (sec_size);
diff --git a/gas/config/tc-bfin.c b/gas/config/tc-bfin.c
index 104ab6aec9..5f10cb7fb4 100644
--- a/gas/config/tc-bfin.c
+++ b/gas/config/tc-bfin.c
@@ -789,7 +789,7 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int boundary = bfd_get_section_alignment (stdoutput, segment);
+  int boundary = bfd_section_alignment (segment);
   return ((size + (1 << boundary) - 1) & -(1 << boundary));
 }
 
diff --git a/gas/config/tc-bpf.c b/gas/config/tc-bpf.c
index d2da2feafb..7c3bf2e718 100644
--- a/gas/config/tc-bpf.c
+++ b/gas/config/tc-bpf.c
@@ -189,7 +189,7 @@ md_begin (void)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
 
   return ((size + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c
index 9f6c82e1f9..2eb679bb44 100644
--- a/gas/config/tc-d10v.c
+++ b/gas/config/tc-d10v.c
@@ -268,7 +268,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-d30v.c b/gas/config/tc-d30v.c
index 086215e306..a54945e1f3 100644
--- a/gas/config/tc-d30v.c
+++ b/gas/config/tc-d30v.c
@@ -302,7 +302,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
 
@@ -1490,7 +1490,7 @@ d30v_align (int n, char *pfill, symbolS *label)
   if (pfill == NULL)
     {
       if (n > 2
-	  && (bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+	  && (bfd_section_flags (now_seg) & SEC_CODE) != 0)
 	{
 	  static char const nop[4] = { 0x00, 0xf0, 0x00, 0x00 };
 
diff --git a/gas/config/tc-epiphany.c b/gas/config/tc-epiphany.c
index 5429fa9fb5..753cb6e0bf 100644
--- a/gas/config/tc-epiphany.c
+++ b/gas/config/tc-epiphany.c
@@ -152,7 +152,7 @@ md_begin (void)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
 
   return ((size + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-fr30.c b/gas/config/tc-fr30.c
index 3703e29ccc..5767eeb616 100644
--- a/gas/config/tc-fr30.c
+++ b/gas/config/tc-fr30.c
@@ -154,7 +154,7 @@ md_operand (expressionS * expressionP)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
 
   return ((size + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-frv.c b/gas/config/tc-frv.c
index 3112fce4f2..d8ff553294 100644
--- a/gas/config/tc-frv.c
+++ b/gas/config/tc-frv.c
@@ -1225,7 +1225,7 @@ md_operand (expressionS *expressionP)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   return ((size + (1 << align) - 1) & -(1 << align));
 }
 
@@ -1651,7 +1651,7 @@ frv_frob_file_section (bfd *abfd, asection *sec, void *ptr ATTRIBUTE_UNUSED)
   segment_info_type *seginfo = seg_info (sec);
   fixS *fixp;
   CGEN_CPU_DESC cd = gas_cgen_cpu_desc;
-  flagword flags = bfd_get_section_flags (abfd, sec);
+  flagword flags = bfd_section_flags (sec);
 
   /* Skip relocations in known sections (.ctors, .dtors, and .gcc_except_table)
      since we can fix those up by hand.  */
diff --git a/gas/config/tc-h8300.c b/gas/config/tc-h8300.c
index 5ddc889a4d..c79c6d4225 100644
--- a/gas/config/tc-h8300.c
+++ b/gas/config/tc-h8300.c
@@ -2225,7 +2225,7 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED,
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   return ((size + (1 << align) - 1) & (-1U << align));
 }
 
diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c
index 82c71ebbfc..fb6d82bc59 100644
--- a/gas/config/tc-hppa.c
+++ b/gas/config/tc-hppa.c
@@ -1608,7 +1608,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
 valueT
 md_section_align (asection *segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   int align2 = (1 << align) - 1;
 
   return (size + align2) & ~align2;
@@ -5962,7 +5962,7 @@ pa_build_unwind_subspace (struct call_info *call_info)
   char *name, *p;
   symbolS *symbolP;
 
-  if ((bfd_get_section_flags (stdoutput, now_seg)
+  if ((bfd_section_flags (now_seg)
        & (SEC_ALLOC | SEC_LOAD | SEC_READONLY))
       != (SEC_ALLOC | SEC_LOAD | SEC_READONLY))
     return;
@@ -6006,10 +6006,9 @@ pa_build_unwind_subspace (struct call_info *call_info)
   if (seg == ASEC_NULL)
     {
       seg = subseg_new (UNWIND_SECTION_NAME, 0);
-      bfd_set_section_flags (stdoutput, seg,
-			     SEC_READONLY | SEC_HAS_CONTENTS
-			     | SEC_LOAD | SEC_RELOC | SEC_ALLOC | SEC_DATA);
-      bfd_set_section_alignment (stdoutput, seg, 2);
+      bfd_set_section_flags (seg, (SEC_READONLY | SEC_HAS_CONTENTS | SEC_LOAD
+				   | SEC_RELOC | SEC_ALLOC | SEC_DATA));
+      bfd_set_section_alignment (seg, 2);
     }
 
   subseg_set (seg, 0);
@@ -7533,14 +7532,13 @@ pa_subspace (int create_new)
 	seg_info (section)->bss = 1;
 
       /* Now set the flags.  */
-      bfd_set_section_flags (stdoutput, section, applicable);
+      bfd_set_section_flags (section, applicable);
 
       /* Record any alignment request for this section.  */
       record_alignment (section, exact_log2 (alignment));
 
       /* Set the starting offset for this section.  */
-      bfd_set_section_vma (stdoutput, section,
-			   pa_subspace_start (space, quadrant));
+      bfd_set_section_vma (section, pa_subspace_start (space, quadrant));
 
       /* Now that all the flags are set, update an existing subspace,
 	 or create a new one.  */
@@ -7614,7 +7612,7 @@ pa_spaces_begin (void)
 	{
 	  text_section = segment;
 	  applicable = bfd_applicable_section_flags (stdoutput);
-	  bfd_set_section_flags (stdoutput, segment,
+	  bfd_set_section_flags (segment,
 				 applicable & (SEC_ALLOC | SEC_LOAD
 					       | SEC_RELOC | SEC_CODE
 					       | SEC_READONLY
@@ -7624,7 +7622,7 @@ pa_spaces_begin (void)
 	{
 	  data_section = segment;
 	  applicable = bfd_applicable_section_flags (stdoutput);
-	  bfd_set_section_flags (stdoutput, segment,
+	  bfd_set_section_flags (segment,
 				 applicable & (SEC_ALLOC | SEC_LOAD
 					       | SEC_RELOC
 					       | SEC_HAS_CONTENTS));
@@ -7634,13 +7632,13 @@ pa_spaces_begin (void)
 	{
 	  bss_section = segment;
 	  applicable = bfd_applicable_section_flags (stdoutput);
-	  bfd_set_section_flags (stdoutput, segment,
+	  bfd_set_section_flags (segment,
 				 applicable & SEC_ALLOC);
 	}
       else if (!strcmp (pa_def_subspaces[i].name, "$LIT$"))
 	{
 	  applicable = bfd_applicable_section_flags (stdoutput);
-	  bfd_set_section_flags (stdoutput, segment,
+	  bfd_set_section_flags (segment,
 				 applicable & (SEC_ALLOC | SEC_LOAD
 					       | SEC_RELOC
 					       | SEC_READONLY
@@ -7649,7 +7647,7 @@ pa_spaces_begin (void)
       else if (!strcmp (pa_def_subspaces[i].name, "$MILLICODE$"))
 	{
 	  applicable = bfd_applicable_section_flags (stdoutput);
-	  bfd_set_section_flags (stdoutput, segment,
+	  bfd_set_section_flags (segment,
 				 applicable & (SEC_ALLOC | SEC_LOAD
 					       | SEC_RELOC
 					       | SEC_READONLY
@@ -7658,7 +7656,7 @@ pa_spaces_begin (void)
       else if (!strcmp (pa_def_subspaces[i].name, "$UNWIND$"))
 	{
 	  applicable = bfd_applicable_section_flags (stdoutput);
-	  bfd_set_section_flags (stdoutput, segment,
+	  bfd_set_section_flags (segment,
 				 applicable & (SEC_ALLOC | SEC_LOAD
 					       | SEC_RELOC
 					       | SEC_READONLY
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 2710dcec72..fec69c1397 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -8105,7 +8105,7 @@ x86_cleanup (void)
 
   /* Create the .note.gnu.property section.  */
   sec = subseg_new (NOTE_GNU_PROPERTY_SECTION_NAME, 0);
-  bfd_set_section_flags (stdoutput, sec,
+  bfd_set_section_flags (sec,
 			 (SEC_ALLOC
 			  | SEC_LOAD
 			  | SEC_DATA
@@ -8123,7 +8123,7 @@ x86_cleanup (void)
       alignment = 2;
     }
 
-  bfd_set_section_alignment (stdoutput, sec, alignment);
+  bfd_set_section_alignment (sec, alignment);
   elf_section_type (sec) = SHT_NOTE;
 
   /* GNU_PROPERTY_X86_ISA_1_USED: 4-byte type + 4-byte data size
@@ -11939,7 +11939,7 @@ md_section_align (segT segment ATTRIBUTE_UNUSED, valueT size)
 	 work.  */
       int align;
 
-      align = bfd_get_section_alignment (stdoutput, segment);
+      align = bfd_section_alignment (segment);
       size = ((size + (1 << align) - 1) & (-((valueT) 1 << align)));
     }
 #endif
@@ -12382,8 +12382,7 @@ handle_large_common (int small ATTRIBUTE_UNUSED)
 	  /* The .lbss section is for local .largecomm symbols.  */
 	  lbss_section = subseg_new (".lbss", 0);
 	  applicable = bfd_applicable_section_flags (stdoutput);
-	  bfd_set_section_flags (stdoutput, lbss_section,
-				 applicable & SEC_ALLOC);
+	  bfd_set_section_flags (lbss_section, applicable & SEC_ALLOC);
 	  seg_info (lbss_section)->bss = 1;
 
 	  subseg_set (seg, subseg);
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 8f25e557e0..0c618e811e 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -1152,14 +1152,14 @@ obj_elf_vms_common (int ignore ATTRIBUTE_UNUSED)
 
   record_alignment (now_seg, log_align);
 
-  cur_size = bfd_section_size (stdoutput, now_seg);
+  cur_size = bfd_section_size (now_seg);
   if ((int) size > cur_size)
     {
       char *pfrag
         = frag_var (rs_fill, 1, 1, (relax_substateT)0, NULL,
                     (valueT)size - (valueT)cur_size, NULL);
       *pfrag = 0;
-      bfd_section_size (stdoutput, now_seg) = size;
+      bfd_set_section_size (now_seg, size);
     }
 
   /* Switch back to current segment.  */
@@ -3606,8 +3606,7 @@ start_unwind_section (const segT text_seg, int sec_index)
   else
     {
       set_section (sec_name);
-      bfd_set_section_flags (stdoutput, now_seg,
-			     SEC_LOAD | SEC_ALLOC | SEC_READONLY);
+      bfd_set_section_flags (now_seg, SEC_LOAD | SEC_ALLOC | SEC_READONLY);
     }
 
   elf_linked_to_section (now_seg) = text_seg;
@@ -7250,7 +7249,7 @@ md_begin (void)
   md.auto_align = 1;
   md.explicit_mode = md.default_explicit_mode;
 
-  bfd_set_section_alignment (stdoutput, text_section, 4);
+  bfd_set_section_alignment (text_section, 4);
 
   /* Make sure function pointers get initialized.  */
   target_big_endian = -1;
@@ -7778,7 +7777,7 @@ ia64_frob_label (struct symbol *sym)
       return;
     }
 
-  if (bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE)
+  if (bfd_section_flags (now_seg) & SEC_CODE)
     {
       md.last_text_seg = now_seg;
       fix = XOBNEW (&notes, struct label_fix);
@@ -7818,7 +7817,7 @@ void
 ia64_flush_pending_output (void)
 {
   if (!md.keep_pending_output
-      && bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE)
+      && bfd_section_flags (now_seg) & SEC_CODE)
     {
       /* ??? This causes many unnecessary stop bits to be emitted.
 	 Unfortunately, it isn't clear if it is safe to remove this.  */
@@ -10989,7 +10988,7 @@ ia64_pcrel_from_section (fixS *fix, segT sec)
 {
   unsigned long off = fix->fx_frag->fr_address + fix->fx_where;
 
-  if (bfd_get_section_flags (stdoutput, sec) & SEC_CODE)
+  if (bfd_section_flags (sec) & SEC_CODE)
     off &= ~0xfUL;
 
   return off;
@@ -11946,9 +11945,7 @@ ia64_vms_note (void)
   /* Create the .note section.  */
 
   secp = subseg_new (".note", 0);
-  bfd_set_section_flags (stdoutput,
-			 secp,
-			 SEC_HAS_CONTENTS | SEC_READONLY);
+  bfd_set_section_flags (secp, SEC_HAS_CONTENTS | SEC_READONLY);
 
   /* Module header note (MHD).  */
   bname = xstrdup (lbasename (out_file_name));
@@ -11993,9 +11990,7 @@ ia64_vms_note (void)
   frag_align (3, 0, 0);
 
   secp = subseg_new (".vms_display_name_info", 0);
-  bfd_set_section_flags (stdoutput,
-			 secp,
-			 SEC_HAS_CONTENTS | SEC_READONLY);
+  bfd_set_section_flags (secp, SEC_HAS_CONTENTS | SEC_READONLY);
 
   /* This symbol should be passed on the command line and be variable
      according to language.  */
diff --git a/gas/config/tc-ip2k.c b/gas/config/tc-ip2k.c
index 0fcc0003d1..53b4d88f11 100644
--- a/gas/config/tc-ip2k.c
+++ b/gas/config/tc-ip2k.c
@@ -213,7 +213,7 @@ md_assemble (char * str)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
 
   return ((size + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-iq2000.c b/gas/config/tc-iq2000.c
index 3275d301f7..d2a0c59848 100644
--- a/gas/config/tc-iq2000.c
+++ b/gas/config/tc-iq2000.c
@@ -430,7 +430,7 @@ md_assemble (char * str)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   return ((size + (1 << align) - 1) & -(1 << align));
 }
 
@@ -817,7 +817,7 @@ s_iq2000_end (int x ATTRIBUTE_UNUSED)
   else
     p = NULL;
 
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
     maybe_text = 1;
   else
     maybe_text = 0;
@@ -916,7 +916,7 @@ s_iq2000_ent (int aent)
   if (ISDIGIT (*input_line_pointer) || *input_line_pointer == '-')
     get_number ();
 
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
     maybe_text = 1;
   else
     maybe_text = 0;
diff --git a/gas/config/tc-lm32.c b/gas/config/tc-lm32.c
index a547ba9b5b..75a733a6f2 100644
--- a/gas/config/tc-lm32.c
+++ b/gas/config/tc-lm32.c
@@ -277,7 +277,7 @@ md_undefined_symbol (char * name ATTRIBUTE_UNUSED)
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-m32c.c b/gas/config/tc-m32c.c
index 851d4c1971..3ea3e59974 100644
--- a/gas/config/tc-m32c.c
+++ b/gas/config/tc-m32c.c
@@ -392,7 +392,7 @@ md_operand (expressionS * exp)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   return ((size + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-m32r.c b/gas/config/tc-m32r.c
index c20cb72ce1..75ee9d93de 100644
--- a/gas/config/tc-m32r.c
+++ b/gas/config/tc-m32r.c
@@ -713,7 +713,7 @@ md_begin (void)
 
   /* This is copied from perform_an_assembly_pass.  */
   applicable = bfd_applicable_section_flags (stdoutput);
-  bfd_set_section_flags (stdoutput, sbss_section, applicable & SEC_ALLOC);
+  bfd_set_section_flags (sbss_section, applicable & SEC_ALLOC);
 
   subseg_set (seg, subseg);
 
@@ -1448,7 +1448,7 @@ md_operand (expressionS *expressionP)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
 
   return ((size + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c
index 11514963bc..1c36d5d98c 100644
--- a/gas/config/tc-m68hc11.c
+++ b/gas/config/tc-m68hc11.c
@@ -583,7 +583,7 @@ md_atof (int type, char *litP, int *sizeP)
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-mep.c b/gas/config/tc-mep.c
index f53bb17022..c0d48e8354 100644
--- a/gas/config/tc-mep.c
+++ b/gas/config/tc-mep.c
@@ -1380,7 +1380,7 @@ md_assemble (char * str)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   return ((size + (1 << align) - 1) & -(1 << align));
 }
 
@@ -1528,7 +1528,7 @@ md_estimate_size_before_relax (fragS * fragP, segT segment)
       || S_IS_WEAK (fragP->fr_symbol)
 #ifdef MEP_IVC2_SUPPORTED
       || (mep_cop == EF_MEP_COP_IVC2
-	  && bfd_get_section_flags (stdoutput, segment) & SEC_MEP_VLIW)
+	  && bfd_section_flags (segment) & SEC_MEP_VLIW)
 #endif /* MEP_IVC2_SUPPORTED */
       )
     {
@@ -1539,7 +1539,7 @@ md_estimate_size_before_relax (fragS * fragP, segT segment)
     }
 
   if (MEP_VLIW && ! MEP_VLIW64
-      && (bfd_get_section_flags (stdoutput, segment) & SEC_MEP_VLIW))
+      && (bfd_section_flags (segment) & SEC_MEP_VLIW))
     {
       /* Use 32 bit branches for vliw32 so the vliw word is not split.  */
       switch (fragP->fr_cgen.insn->base->num)
@@ -1572,7 +1572,7 @@ md_estimate_size_before_relax (fragS * fragP, segT segment)
 
 #ifdef MEP_IVC2_SUPPORTED
   if (mep_cop == EF_MEP_COP_IVC2
-      && bfd_get_section_flags (stdoutput, segment) & SEC_MEP_VLIW)
+      && bfd_section_flags (segment) & SEC_MEP_VLIW)
     return 0;
 #endif /* MEP_IVC2_SUPPORTED */
 
@@ -1587,7 +1587,7 @@ mep_relax_frag (segT segment, fragS *fragP, long stretch)
   long rv = relax_frag (segment, fragP, stretch);
 #ifdef MEP_IVC2_SUPPORTED
   if (mep_cop == EF_MEP_COP_IVC2
-      && bfd_get_section_flags (stdoutput, segment) & SEC_MEP_VLIW)
+      && bfd_section_flags (segment) & SEC_MEP_VLIW)
     return 0;
 #endif
   return rv;
@@ -1624,7 +1624,7 @@ md_convert_frag (bfd *abfd  ATTRIBUTE_UNUSED,
   int core_mode;
 
 #ifdef MEP_IVC2_SUPPORTED
-  if (bfd_get_section_flags (stdoutput, seg) & SEC_MEP_VLIW
+  if (bfd_section_flags (seg) & SEC_MEP_VLIW
       && mep_cop == EF_MEP_COP_IVC2)
     core_mode = 0;
   else
@@ -2110,7 +2110,7 @@ mep_vtext_section (void)
     {
       flagword applicable = bfd_applicable_section_flags (stdoutput);
       vtext_section = subseg_new (VTEXT_SECTION_NAME, 0);
-      bfd_set_section_flags (stdoutput, vtext_section,
+      bfd_set_section_flags (vtext_section,
 			     applicable & (SEC_ALLOC | SEC_LOAD | SEC_RELOC
 					   | SEC_CODE | SEC_READONLY
 					   | SEC_MEP_VLIW));
diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c
index c9ab452b3e..2f68d688ea 100644
--- a/gas/config/tc-microblaze.c
+++ b/gas/config/tc-microblaze.c
@@ -2011,8 +2011,7 @@ md_apply_fix (fixS *   fixP,
     {
       if (S_IS_WEAK (fixP->fx_addsy)
 	  || (symbol_used_in_reloc_p (fixP->fx_addsy)
-	      && (((bfd_get_section_flags (stdoutput,
-					   S_GET_SEGMENT (fixP->fx_addsy))
+	      && (((bfd_section_flags (S_GET_SEGMENT (fixP->fx_addsy))
 		    & SEC_LINK_ONCE) != 0)
 		  || !strncmp (segment_name (S_GET_SEGMENT (fixP->fx_addsy)),
 			       ".gnu.linkonce",
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index a386d11f6c..b2e49730c0 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -3859,9 +3859,9 @@ md_begin (void)
   if (strncmp (TARGET_OS, "elf", 3) != 0
       && strncmp (TARGET_OS, "vxworks", 7) != 0)
     {
-      (void) bfd_set_section_alignment (stdoutput, text_section, 4);
-      (void) bfd_set_section_alignment (stdoutput, data_section, 4);
-      (void) bfd_set_section_alignment (stdoutput, bss_section, 4);
+      bfd_set_section_alignment (text_section, 4);
+      bfd_set_section_alignment (data_section, 4);
+      bfd_set_section_alignment (bss_section, 4);
     }
 
   /* Create a .reginfo section for register masks and a .mdebug
@@ -3886,8 +3886,8 @@ md_begin (void)
       {
 	sec = subseg_new (".reginfo", (subsegT) 0);
 
-	bfd_set_section_flags (stdoutput, sec, flags);
-	bfd_set_section_alignment (stdoutput, sec, HAVE_NEWABI ? 3 : 2);
+	bfd_set_section_flags (sec, flags);
+	bfd_set_section_alignment (sec, HAVE_NEWABI ? 3 : 2);
 
 	mips_regmask_frag = frag_more (sizeof (Elf32_External_RegInfo));
       }
@@ -3896,8 +3896,8 @@ md_begin (void)
 	/* The 64-bit ABI uses a .MIPS.options section rather than
 	   .reginfo section.  */
 	sec = subseg_new (".MIPS.options", (subsegT) 0);
-	bfd_set_section_flags (stdoutput, sec, flags);
-	bfd_set_section_alignment (stdoutput, sec, 3);
+	bfd_set_section_flags (sec, flags);
+	bfd_set_section_alignment (sec, 3);
 
 	/* Set up the option header.  */
 	{
@@ -3918,25 +3918,23 @@ md_begin (void)
       }
 
     sec = subseg_new (".MIPS.abiflags", (subsegT) 0);
-    bfd_set_section_flags (stdoutput, sec,
+    bfd_set_section_flags (sec,
 			   SEC_READONLY | SEC_DATA | SEC_ALLOC | SEC_LOAD);
-    bfd_set_section_alignment (stdoutput, sec, 3);
+    bfd_set_section_alignment (sec, 3);
     mips_flags_frag = frag_more (sizeof (Elf_External_ABIFlags_v0));
 
     if (ECOFF_DEBUGGING)
       {
 	sec = subseg_new (".mdebug", (subsegT) 0);
-	(void) bfd_set_section_flags (stdoutput, sec,
-				      SEC_HAS_CONTENTS | SEC_READONLY);
-	(void) bfd_set_section_alignment (stdoutput, sec, 2);
+	bfd_set_section_flags (sec, SEC_HAS_CONTENTS | SEC_READONLY);
+	bfd_set_section_alignment (sec, 2);
       }
     else if (mips_flag_pdr)
       {
 	pdr_seg = subseg_new (".pdr", (subsegT) 0);
-	(void) bfd_set_section_flags (stdoutput, pdr_seg,
-				      SEC_READONLY | SEC_RELOC
-				      | SEC_DEBUGGING);
-	(void) bfd_set_section_alignment (stdoutput, pdr_seg, 2);
+	bfd_set_section_flags (pdr_seg,
+			       SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
+	bfd_set_section_alignment (pdr_seg, 2);
       }
 
     subseg_set (seg, subseg);
@@ -4468,7 +4466,7 @@ s_is_linkonce (symbolS *sym, segT from_seg)
 
   if (symseg != from_seg && !S_IS_LOCAL (sym))
     {
-      if ((bfd_get_section_flags (stdoutput, symseg) & SEC_LINK_ONCE))
+      if ((bfd_section_flags (symseg) & SEC_LINK_ONCE))
 	linkonce = TRUE;
       /* The GNU toolchain uses an extension for ELF: a section
 	 beginning with the magic string .gnu.linkonce is a
@@ -6180,7 +6178,7 @@ match_float_constant (struct mips_arg_info *arg, expressionS *imm,
     }
 
   new_seg = subseg_new (newname, (subsegT) 0);
-  bfd_set_section_flags (stdoutput, new_seg,
+  bfd_set_section_flags (new_seg,
 			 SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA);
   frag_align (length == 4 ? 2 : 3, 0, 0);
   if (strncmp (TARGET_OS, "elf", 3) != 0)
@@ -16128,7 +16126,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
 	       && fixP->fx_done
 	       && fixP->fx_frag->fr_address >= text_section->vma
 	       && (fixP->fx_frag->fr_address
-		   < text_section->vma + bfd_get_section_size (text_section))
+		   < text_section->vma + bfd_section_size (text_section))
 	       && ((insn & 0xffff0000) == 0x10000000	 /* beq $0,$0 */
 		   || (insn & 0xffff0000) == 0x04010000	 /* bgez $0 */
 		   || (insn & 0xffff0000) == 0x04110000)) /* bgezal $0 */
@@ -16319,9 +16317,8 @@ s_change_sec (int sec)
     case 'r':
       seg = subseg_new (RDATA_SECTION_NAME,
 			(subsegT) get_absolute_expression ());
-      bfd_set_section_flags (stdoutput, seg, (SEC_ALLOC | SEC_LOAD
-					      | SEC_READONLY | SEC_RELOC
-					      | SEC_DATA));
+      bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY
+				   | SEC_RELOC | SEC_DATA));
       if (strncmp (TARGET_OS, "elf", 3) != 0)
 	record_alignment (seg, 4);
       demand_empty_rest_of_line ();
@@ -16329,7 +16326,7 @@ s_change_sec (int sec)
 
     case 's':
       seg = subseg_new (".sdata", (subsegT) get_absolute_expression ());
-      bfd_set_section_flags (stdoutput, seg,
+      bfd_set_section_flags (seg,
 			     SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
       if (strncmp (TARGET_OS, "elf", 3) != 0)
 	record_alignment (seg, 4);
@@ -16338,7 +16335,7 @@ s_change_sec (int sec)
 
     case 'B':
       seg = subseg_new (".sbss", (subsegT) get_absolute_expression ());
-      bfd_set_section_flags (stdoutput, seg, SEC_ALLOC);
+      bfd_set_section_flags (seg, SEC_ALLOC);
       if (strncmp (TARGET_OS, "elf", 3) != 0)
 	record_alignment (seg, 4);
       demand_empty_rest_of_line ();
@@ -17603,7 +17600,7 @@ tc_get_register (int frame)
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
 
   /* We don't need to align ELF sections to the full alignment.
      However, Irix 5 may prefer that we align them at least to a 16
@@ -19760,7 +19757,7 @@ s_mips_end (int x ATTRIBUTE_UNUSED)
   else
     p = NULL;
 
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) == 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) == 0)
     as_warn (_(".end not in text section"));
 
   if (!cur_proc_ptr)
@@ -19850,7 +19847,7 @@ s_mips_ent (int aent)
       || *input_line_pointer == '-')
     get_number ();
 
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) == 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) == 0)
     as_warn (_(".ent or .aent not in text section"));
 
   if (!aent && cur_proc_ptr)
diff --git a/gas/config/tc-mmix.c b/gas/config/tc-mmix.c
index 317805923d..1514b6d060 100644
--- a/gas/config/tc-mmix.c
+++ b/gas/config/tc-mmix.c
@@ -2130,9 +2130,8 @@ s_bspec (int unused ATTRIBUTE_UNUSED)
       if (sec == NULL)
 	as_fatal (_("can't create section %s"), newsecname);
 
-      if (!bfd_set_section_flags (stdoutput, sec,
-				  bfd_get_section_flags (stdoutput, sec)
-				  | SEC_READONLY))
+      if (!bfd_set_section_flags (sec,
+				  bfd_section_flags (sec) | SEC_READONLY))
 	as_fatal (_("can't set section flags for section %s"), newsecname);
     }
 
@@ -2638,7 +2637,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP)
      than just helping the user around this limitation here; hopefully the
      code using the local expression is around.  Putting the LOCAL
      semantics in a relocation still seems right; a section didn't do.  */
-  if (bfd_section_size (section->owner, section) == 0)
+  if (bfd_section_size (section) == 0)
     as_bad_where
       (fixP->fx_file, fixP->fx_line,
        fixP->fx_r_type == BFD_RELOC_MMIX_LOCAL
@@ -2708,7 +2707,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP)
 	 resolve the relocation here.  */
       if (addsy != NULL
 	  && (bfd_is_und_section (addsec)
-	      || strcmp (bfd_get_section_name (addsec->owner, addsec),
+	      || strcmp (bfd_section_name (addsec),
 			 MMIX_REG_CONTENTS_SECTION_NAME) == 0))
 	{
 	  code = fixP->fx_r_type;
@@ -2735,7 +2734,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP)
 
     case BFD_RELOC_MMIX_BASE_PLUS_OFFSET:
       if (addsy != NULL
-	  && strcmp (bfd_get_section_name (addsec->owner, addsec),
+	  && strcmp (bfd_section_name (addsec),
 		     MMIX_REG_CONTENTS_SECTION_NAME) == 0)
 	{
 	  /* This changed into a register; the relocation is for the
@@ -2838,7 +2837,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP)
     case BFD_RELOC_MMIX_REG:
       if (addsy != NULL
 	  && (bfd_is_und_section (addsec)
-	      || strcmp (bfd_get_section_name (addsec->owner, addsec),
+	      || strcmp (bfd_section_name (addsec),
 			 MMIX_REG_CONTENTS_SECTION_NAME) == 0))
 	{
 	  code = fixP->fx_r_type;
@@ -3794,7 +3793,7 @@ mmix_frob_file (void)
   if (real_reg_section != NULL)
     {
       /* FIXME: Pass error state gracefully.  */
-      if (bfd_get_section_flags (stdoutput, real_reg_section) & SEC_HAS_CONTENTS)
+      if (bfd_section_flags (real_reg_section) & SEC_HAS_CONTENTS)
 	as_fatal (_("register section has contents\n"));
 
       bfd_section_list_remove (stdoutput, real_reg_section);
@@ -3924,7 +3923,7 @@ mmix_md_elf_section_change_hook (void)
   if (doing_bspec)
     as_bad (_("section change from within a BSPEC/ESPEC pair is not supported"));
 
-  last_alignment = bfd_get_section_alignment (now_seg->owner, now_seg);
+  last_alignment = bfd_section_alignment (now_seg);
   want_unaligned = 0;
 }
 
diff --git a/gas/config/tc-mn10200.c b/gas/config/tc-mn10200.c
index 045016bcba..ebc011b1a6 100644
--- a/gas/config/tc-mn10200.c
+++ b/gas/config/tc-mn10200.c
@@ -675,7 +675,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c
index 15e6e27b24..1a41731379 100644
--- a/gas/config/tc-mn10300.c
+++ b/gas/config/tc-mn10300.c
@@ -900,7 +900,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
 
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
@@ -2616,7 +2616,7 @@ mn10300_handle_align (fragS *frag)
       && now_seg != bss_section
       /* Do not create relocs for the merging sections - such
 	 relocs will prevent the contents from being merged.  */
-      && (bfd_get_section_flags (now_seg->owner, now_seg) & SEC_MERGE) == 0)
+      && (bfd_section_flags (now_seg) & SEC_MERGE) == 0)
     /* Create a new fixup to record the alignment request.  The symbol is
        irrelevant but must be present so we use the absolute section symbol.
        The offset from the symbol is used to record the power-of-two alignment
diff --git a/gas/config/tc-msp430.c b/gas/config/tc-msp430.c
index 5821b1c811..56d2024349 100644
--- a/gas/config/tc-msp430.c
+++ b/gas/config/tc-msp430.c
@@ -4239,7 +4239,7 @@ md_assemble (char * str)
 valueT
 md_section_align (asection * seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
 
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-mt.c b/gas/config/tc-mt.c
index bd518547e3..5b938aa2a9 100644
--- a/gas/config/tc-mt.c
+++ b/gas/config/tc-mt.c
@@ -333,7 +333,7 @@ md_assemble (char * str)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
 
   return ((size + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-nds32.c b/gas/config/tc-nds32.c
index d01ca3d202..36ed58a453 100644
--- a/gas/config/tc-nds32.c
+++ b/gas/config/tc-nds32.c
@@ -3841,7 +3841,7 @@ do_nds32_seg (int i, subsegT sub)
       seg->s = subseg_new (seg->name, sub);
       if (OUTPUT_FLAVOR == bfd_target_elf_flavour)
 	{
-	  bfd_set_section_flags (stdoutput, seg->s, seg->flags);
+	  bfd_set_section_flags (seg->s, seg->flags);
 	  if ((seg->flags & SEC_LOAD) == 0)
 	    seg_info (seg->s)->bss = 1;
 	}
@@ -6609,7 +6609,7 @@ md_operand (expressionS *expressionP)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
 
   return ((size + (1 << align) - 1) & ((valueT) -1 << align));
 }
@@ -7569,7 +7569,7 @@ nds32_set_section_relocs (asection *sec, arelent ** relocs ATTRIBUTE_UNUSED,
 			  unsigned int n ATTRIBUTE_UNUSED)
 {
   bfd *abfd ATTRIBUTE_UNUSED = sec->owner;
-  if (bfd_get_section_flags (abfd, sec) & (flagword) SEC_RELOC)
+  if (bfd_section_flags (sec) & (flagword) SEC_RELOC)
     nds32_insertion_sort (sec->orelocation, sec->reloc_count,
 			  sizeof (arelent**), compar_relent);
 }
diff --git a/gas/config/tc-or1k.c b/gas/config/tc-or1k.c
index 28fa7c5010..e29d4dd77d 100644
--- a/gas/config/tc-or1k.c
+++ b/gas/config/tc-or1k.c
@@ -165,7 +165,7 @@ md_operand (expressionS * expressionP)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   return ((size + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index 042c95b188..156f62c6fc 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -1975,9 +1975,7 @@ ppc_cleanup (void)
 
     /* Create the .PPC.EMB.apuinfo section.  */
     apuinfo_secp = subseg_new (APUINFO_SECTION_NAME, 0);
-    bfd_set_section_flags (stdoutput,
-			   apuinfo_secp,
-			   SEC_HAS_CONTENTS | SEC_READONLY);
+    bfd_set_section_flags (apuinfo_secp, SEC_HAS_CONTENTS | SEC_READONLY);
 
     p = frag_more (4);
     md_number_to_chars (p, (valueT) 8, 4);
@@ -2703,7 +2701,7 @@ ppc_frob_file_before_adjust (void)
   toc = bfd_get_section_by_name (stdoutput, ".toc");
   if (toc != NULL
       && toc_reloc_types != has_large_toc_reloc
-      && bfd_section_size (stdoutput, toc) > 0x10000)
+      && bfd_section_size (toc) > 0x10000)
     as_warn (_("TOC section size exceeds 64k"));
 }
 
@@ -4681,14 +4679,14 @@ ppc_change_debug_section (unsigned int idx, subsegT subseg)
   const struct xcoff_dwsect_name *dw = &xcoff_dwsect_names[idx];
 
   sec = subseg_new (dw->name, subseg);
-  oldflags = bfd_get_section_flags (stdoutput, sec);
+  oldflags = bfd_section_flags (sec);
   if (oldflags == SEC_NO_FLAGS)
     {
       /* Just created section.  */
       gas_assert (dw_sections[idx].sect == NULL);
 
-      bfd_set_section_flags (stdoutput, sec, SEC_DEBUGGING);
-      bfd_set_section_alignment (stdoutput, sec, 0);
+      bfd_set_section_flags (sec, SEC_DEBUGGING);
+      bfd_set_section_alignment (sec, 0);
       dw_sections[idx].sect = sec;
     }
 
@@ -5804,11 +5802,10 @@ ppc_pdata (int ignore ATTRIBUTE_UNUSED)
     {
       pdata_section = subseg_new (".pdata", 0);
 
-      bfd_set_section_flags (stdoutput, pdata_section,
-			     (SEC_ALLOC | SEC_LOAD | SEC_RELOC
-			      | SEC_READONLY | SEC_DATA ));
+      bfd_set_section_flags (pdata_section, (SEC_ALLOC | SEC_LOAD | SEC_RELOC
+					     | SEC_READONLY | SEC_DATA));
 
-      bfd_set_section_alignment (stdoutput, pdata_section, 2);
+      bfd_set_section_alignment (pdata_section, 2);
     }
   else
     {
@@ -5837,11 +5834,10 @@ ppc_ydata (int ignore ATTRIBUTE_UNUSED)
   if (ydata_section == 0)
     {
       ydata_section = subseg_new (".ydata", 0);
-      bfd_set_section_flags (stdoutput, ydata_section,
-			     (SEC_ALLOC | SEC_LOAD | SEC_RELOC
-			      | SEC_READONLY | SEC_DATA ));
+      bfd_set_section_flags (ydata_section, (SEC_ALLOC | SEC_LOAD | SEC_RELOC
+					     | SEC_READONLY | SEC_DATA ));
 
-      bfd_set_section_alignment (stdoutput, ydata_section, 3);
+      bfd_set_section_alignment (ydata_section, 3);
     }
   else
     {
@@ -5874,11 +5870,10 @@ ppc_reldata (int ignore ATTRIBUTE_UNUSED)
     {
       reldata_section = subseg_new (".reldata", 0);
 
-      bfd_set_section_flags (stdoutput, reldata_section,
-			     (SEC_ALLOC | SEC_LOAD | SEC_RELOC
-			      | SEC_DATA));
+      bfd_set_section_flags (reldata_section, (SEC_ALLOC | SEC_LOAD | SEC_RELOC
+					       | SEC_DATA));
 
-      bfd_set_section_alignment (stdoutput, reldata_section, 2);
+      bfd_set_section_alignment (reldata_section, 2);
     }
   else
     {
@@ -5903,11 +5898,10 @@ ppc_rdata (int ignore ATTRIBUTE_UNUSED)
   if (rdata_section == 0)
     {
       rdata_section = subseg_new (".rdata", 0);
-      bfd_set_section_flags (stdoutput, rdata_section,
-			     (SEC_ALLOC | SEC_LOAD | SEC_RELOC
-			      | SEC_READONLY | SEC_DATA ));
+      bfd_set_section_flags (rdata_section, (SEC_ALLOC | SEC_LOAD | SEC_RELOC
+					     | SEC_READONLY | SEC_DATA ));
 
-      bfd_set_section_alignment (stdoutput, rdata_section, 2);
+      bfd_set_section_alignment (rdata_section, 2);
     }
   else
     {
@@ -6261,13 +6255,13 @@ ppc_pe_section (int ignore ATTRIBUTE_UNUSED)
 
   if (flags != SEC_NO_FLAGS)
     {
-      if (! bfd_set_section_flags (stdoutput, sec, flags))
+      if (!bfd_set_section_flags (sec, flags))
 	as_bad (_("error setting flags for \"%s\": %s"),
-		bfd_section_name (stdoutput, sec),
+		bfd_section_name (sec),
 		bfd_errmsg (bfd_get_error ()));
     }
 
-  bfd_set_section_alignment (stdoutput, sec, align);
+  bfd_set_section_alignment (sec, align);
 }
 
 static void
@@ -6298,11 +6292,10 @@ ppc_pe_tocd (int ignore ATTRIBUTE_UNUSED)
     {
       tocdata_section = subseg_new (".tocd", 0);
       /* FIXME: section flags won't work.  */
-      bfd_set_section_flags (stdoutput, tocdata_section,
-			     (SEC_ALLOC | SEC_LOAD | SEC_RELOC
-			      | SEC_READONLY | SEC_DATA));
+      bfd_set_section_flags (tocdata_section, (SEC_ALLOC | SEC_LOAD | SEC_RELOC
+					       | SEC_READONLY | SEC_DATA));
 
-      bfd_set_section_alignment (stdoutput, tocdata_section, 2);
+      bfd_set_section_alignment (tocdata_section, 2);
     }
   else
     {
@@ -6573,8 +6566,7 @@ ppc_frob_symbol (symbolS *sym)
 	  /* This is a csect symbol.  x_scnlen is the size of the
 	     csect.  */
 	  if (symbol_get_tc (sym)->next == (symbolS *) NULL)
-	    a->x_csect.x_scnlen.l = (bfd_section_size (stdoutput,
-						       S_GET_SEGMENT (sym))
+	    a->x_csect.x_scnlen.l = (bfd_section_size (S_GET_SEGMENT (sym))
 				     - S_GET_VALUE (sym));
 	  else
 	    {
@@ -6622,8 +6614,7 @@ ppc_frob_symbol (symbolS *sym)
 	      || symbol_get_tc (next)->symbol_class != XMC_TC)
 	    {
 	      if (ppc_after_toc_frag == (fragS *) NULL)
-		a->x_csect.x_scnlen.l = (bfd_section_size (stdoutput,
-							   data_section)
+		a->x_csect.x_scnlen.l = (bfd_section_size (data_section)
 					 - S_GET_VALUE (sym));
 	      else
 		a->x_csect.x_scnlen.l = (ppc_after_toc_frag->fr_address
@@ -6787,12 +6778,12 @@ ppc_frob_section (asection *sec)
   static bfd_vma vma = 0;
 
   /* Dwarf sections start at 0.  */
-  if (bfd_get_section_flags (NULL, sec) & SEC_DEBUGGING)
+  if (bfd_section_flags (sec) & SEC_DEBUGGING)
     return;
 
   vma = md_section_align (sec, vma);
-  bfd_set_section_vma (stdoutput, sec, vma);
-  vma += bfd_section_size (stdoutput, sec);
+  bfd_set_section_vma (sec, vma);
+  vma += bfd_section_size (sec);
 }
 
 #endif /* OBJ_XCOFF */
@@ -6823,7 +6814,7 @@ md_section_align (asection *seg ATTRIBUTE_UNUSED, valueT addr)
 #ifdef OBJ_ELF
   return addr;
 #else
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
 
   return ((addr + (1 << align) - 1) & -(1 << align));
 #endif
@@ -6886,7 +6877,7 @@ ppc_fix_adjustable (fixS *fix)
     return 0;
 
   /* Always adjust symbols in debugging sections.  */
-  if (bfd_get_section_flags (stdoutput, symseg) & SEC_DEBUGGING)
+  if (bfd_section_flags (symseg) & SEC_DEBUGGING)
     return 1;
 
   if (ppc_toc_csect != (symbolS *) NULL
@@ -7927,9 +7918,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
 #else
       /* We want to use the offset within the toc, not the actual VMA
 	 of the symbol.  */
-      fixP->fx_addnumber =
-	- bfd_get_section_vma (stdoutput, S_GET_SEGMENT (fixP->fx_addsy))
-	- S_GET_VALUE (ppc_toc_csect);
+      fixP->fx_addnumber = (- bfd_section_vma (S_GET_SEGMENT (fixP->fx_addsy))
+			    - S_GET_VALUE (ppc_toc_csect));
       /* Set *valP to avoid errors.  */
       *valP = value;
 #endif
diff --git a/gas/config/tc-pru.c b/gas/config/tc-pru.c
index 12ed8cc834..2e2058c1de 100644
--- a/gas/config/tc-pru.c
+++ b/gas/config/tc-pru.c
@@ -1745,7 +1745,7 @@ md_assemble (char *op_str)
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   return ((addr + (1 << align) - 1) & (-((valueT) 1 << align)));
 }
 
diff --git a/gas/config/tc-rl78.c b/gas/config/tc-rl78.c
index 878c03f97e..9160cc027f 100644
--- a/gas/config/tc-rl78.c
+++ b/gas/config/tc-rl78.c
@@ -1520,6 +1520,6 @@ md_apply_fix (struct fix * f ATTRIBUTE_UNUSED,
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   return ((size + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-rx.c b/gas/config/tc-rx.c
index 6b19f2f397..5d2e69b8b3 100644
--- a/gas/config/tc-rx.c
+++ b/gas/config/tc-rx.c
@@ -509,7 +509,7 @@ parse_rx_section (char * name)
       obj_elf_change_section (name, type, 0, attr, 0, NULL, FALSE, FALSE);
     }
 
-  bfd_set_section_alignment (stdoutput, now_seg, align);
+  bfd_set_section_alignment (now_seg, align);
 }
 
 static void
@@ -1290,7 +1290,7 @@ md_operand (expressionS * exp ATTRIBUTE_UNUSED)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   return ((size + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-s12z.c b/gas/config/tc-s12z.c
index 67e88d277a..be4d4fb095 100644
--- a/gas/config/tc-s12z.c
+++ b/gas/config/tc-s12z.c
@@ -187,7 +187,7 @@ md_atof (int type, char *litP, int *sizeP)
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index f74497aa85..a4dae4fb16 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -2084,7 +2084,7 @@ md_atof (int type, char *litp, int *sizep)
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
 
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-score.c b/gas/config/tc-score.c
index 648e0d22eb..1393a18820 100644
--- a/gas/config/tc-score.c
+++ b/gas/config/tc-score.c
@@ -5300,7 +5300,7 @@ s3_pic_need_relax (symbolS *sym, asection *segtype)
   linkonce = FALSE;
   if (symsec != segtype && ! S_IS_LOCAL (sym))
     {
-      if ((bfd_get_section_flags (stdoutput, symsec) & SEC_LINK_ONCE) != 0)
+      if ((bfd_section_flags (symsec) & SEC_LINK_ONCE) != 0)
 	linkonce = TRUE;
 
       /* The GNU toolchain uses an extension for ELF: a section
@@ -5546,7 +5546,7 @@ static void
 s3_score_s_section (int ignore)
 {
   obj_elf_section (ignore);
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
     record_alignment (now_seg, 2);
 
 }
@@ -5569,14 +5569,14 @@ s3_s_change_sec (int sec)
     {
     case 'r':
       seg = subseg_new (s3_RDATA_SECTION_NAME, (subsegT) get_absolute_expression ());
-      bfd_set_section_flags (stdoutput, seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA));
+      bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA));
       if (strcmp (TARGET_OS, "elf") != 0)
         record_alignment (seg, 4);
       demand_empty_rest_of_line ();
       break;
     case 's':
       seg = subseg_new (".sdata", (subsegT) get_absolute_expression ());
-      bfd_set_section_flags (stdoutput, seg, SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
+      bfd_set_section_flags (seg, SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
       if (strcmp (TARGET_OS, "elf") != 0)
         record_alignment (seg, 4);
       demand_empty_rest_of_line ();
@@ -5686,7 +5686,7 @@ s3_s_score_ent (int aent)
     s3_get_number ();
 
 #ifdef BFD_ASSEMBLER
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
     maybe_text = 1;
   else
     maybe_text = 0;
@@ -5795,7 +5795,7 @@ s3_s_score_end (int x ATTRIBUTE_UNUSED)
     p = NULL;
 
 #ifdef BFD_ASSEMBLER
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
     maybe_text = 1;
   else
     maybe_text = 0;
@@ -6128,15 +6128,16 @@ s3_s_score_lcomm (int bytes_p)
   if (OUTPUT_FLAVOR == bfd_target_ecoff_flavour || OUTPUT_FLAVOR == bfd_target_elf_flavour)
     {
       /* For Score and Alpha ECOFF or ELF, small objects are put in .sbss.  */
-      if ((unsigned)temp <= bfd_get_gp_size (stdoutput))
-        {
-          bss_seg = subseg_new (".sbss", 1);
-          seg_info (bss_seg)->bss = 1;
+      if ((unsigned) temp <= bfd_get_gp_size (stdoutput))
+	{
+	  bss_seg = subseg_new (".sbss", 1);
+	  seg_info (bss_seg)->bss = 1;
 #ifdef BFD_ASSEMBLER
-          if (!bfd_set_section_flags (stdoutput, bss_seg, SEC_ALLOC))
-            as_warn (_("error setting flags for \".sbss\": %s"), bfd_errmsg (bfd_get_error ()));
+	  if (!bfd_set_section_flags (bss_seg, SEC_ALLOC))
+	    as_warn (_("error setting flags for \".sbss\": %s"),
+		     bfd_errmsg (bfd_get_error ()));
 #endif
-        }
+	}
     }
 #endif
 
@@ -6538,8 +6539,8 @@ s3_begin (void)
   seg = now_seg;
   subseg = now_subseg;
   s3_pdr_seg = subseg_new (".pdr", (subsegT) 0);
-  (void)bfd_set_section_flags (stdoutput, s3_pdr_seg, SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
-  (void)bfd_set_section_alignment (stdoutput, s3_pdr_seg, 2);
+  bfd_set_section_flags (s3_pdr_seg, SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
+  bfd_set_section_alignment (s3_pdr_seg, 2);
   subseg_set (seg, subseg);
 
   if (s3_USE_GLOBAL_POINTER_OPT)
@@ -7076,7 +7077,7 @@ s3_pcrel_from (fixS * fixP)
 static valueT
 s3_section_align (segT segment ATTRIBUTE_UNUSED, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   return ((size + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-score7.c b/gas/config/tc-score7.c
index 90cd5e3962..a615e149c9 100644
--- a/gas/config/tc-score7.c
+++ b/gas/config/tc-score7.c
@@ -5188,7 +5188,7 @@ s7_pic_need_relax (symbolS *sym, asection *segtype)
   linkonce = FALSE;
   if (symsec != segtype && ! S_IS_LOCAL (sym))
     {
-      if ((bfd_get_section_flags (stdoutput, symsec) & SEC_LINK_ONCE) != 0)
+      if ((bfd_section_flags (symsec) & SEC_LINK_ONCE) != 0)
 	linkonce = TRUE;
 
       /* The GNU toolchain uses an extension for ELF: a section
@@ -5399,7 +5399,7 @@ static void
 s7_s_section (int ignore)
 {
   obj_elf_section (ignore);
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
     record_alignment (now_seg, 2);
 
 }
@@ -5422,14 +5422,14 @@ s7_s_change_sec (int sec)
     {
     case 'r':
       seg = subseg_new (s7_RDATA_SECTION_NAME, (subsegT) get_absolute_expression ());
-      bfd_set_section_flags (stdoutput, seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA));
+      bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA));
       if (strcmp (TARGET_OS, "elf") != 0)
         record_alignment (seg, 4);
       demand_empty_rest_of_line ();
       break;
     case 's':
       seg = subseg_new (".sdata", (subsegT) get_absolute_expression ());
-      bfd_set_section_flags (stdoutput, seg, SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
+      bfd_set_section_flags (seg, SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
       if (strcmp (TARGET_OS, "elf") != 0)
         record_alignment (seg, 4);
       demand_empty_rest_of_line ();
@@ -5540,7 +5540,7 @@ s7_s_score_ent (int aent)
     s7_get_number ();
 
 #ifdef BFD_ASSEMBLER
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
     maybe_text = 1;
   else
     maybe_text = 0;
@@ -5650,7 +5650,7 @@ s7_s_score_end (int x ATTRIBUTE_UNUSED)
     p = NULL;
 
 #ifdef BFD_ASSEMBLER
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
     maybe_text = 1;
   else
     maybe_text = 0;
@@ -5993,7 +5993,7 @@ s7_s_score_lcomm (int bytes_p)
           bss_seg = subseg_new (".sbss", 1);
           seg_info (bss_seg)->bss = 1;
 #ifdef BFD_ASSEMBLER
-          if (!bfd_set_section_flags (stdoutput, bss_seg, SEC_ALLOC))
+          if (!bfd_set_section_flags (bss_seg, SEC_ALLOC))
             as_warn (_("error setting flags for \".sbss\": %s"), bfd_errmsg (bfd_get_error ()));
 #endif
         }
@@ -6152,8 +6152,8 @@ s7_begin (void)
   seg = now_seg;
   subseg = now_subseg;
   s7_pdr_seg = subseg_new (".pdr", (subsegT) 0);
-  (void) bfd_set_section_flags (stdoutput, s7_pdr_seg, SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
-  (void) bfd_set_section_alignment (stdoutput, s7_pdr_seg, 2);
+  bfd_set_section_flags (s7_pdr_seg, SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
+  bfd_set_section_alignment (s7_pdr_seg, 2);
   subseg_set (seg, subseg);
 
   if (s7_USE_GLOBAL_POINTER_OPT)
@@ -6628,7 +6628,7 @@ s7_pcrel_from (fixS * fixP)
 static valueT
 s7_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
 
   return ((size + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c
index c9d47df9f6..c57f066134 100644
--- a/gas/config/tc-sh.c
+++ b/gas/config/tc-sh.c
@@ -3162,8 +3162,8 @@ md_section_align (segT seg ATTRIBUTE_UNUSED, valueT size)
 #ifdef OBJ_ELF
   return size;
 #else /* ! OBJ_ELF */
-  return ((size + (1 << bfd_get_section_alignment (stdoutput, seg)) - 1)
-	  & -(1 << bfd_get_section_alignment (stdoutput, seg)));
+  return ((size + (1 << bfd_section_alignment (seg)) - 1)
+	  & -(1 << bfd_section_alignment (seg)));
 #endif /* ! OBJ_ELF */
 }
 
diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index 347db08173..4f7d675f60 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -4001,7 +4001,7 @@ tc_gen_reloc (asection *section, fixS *fixp)
     }
 
   /* Nothing is aligned in DWARF debugging sections.  */
-  if (bfd_get_section_flags (stdoutput, section) & SEC_DEBUGGING)
+  if (bfd_section_flags (section) & SEC_DEBUGGING)
     switch (code)
       {
       case BFD_RELOC_16: code = BFD_RELOC_SPARC_UA16; break;
diff --git a/gas/config/tc-spu.c b/gas/config/tc-spu.c
index d3e3d8aebc..bdb22e72ba 100644
--- a/gas/config/tc-spu.c
+++ b/gas/config/tc-spu.c
@@ -904,7 +904,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp)
 valueT
 md_section_align (segT seg, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   valueT mask = ((valueT) 1 << align) - 1;
 
   return (size + mask) & ~mask;
diff --git a/gas/config/tc-tic4x.c b/gas/config/tc-tic4x.c
index f20d93b5b1..b5588b9c46 100644
--- a/gas/config/tc-tic4x.c
+++ b/gas/config/tc-tic4x.c
@@ -1001,9 +1001,9 @@ tic4x_sect (int x ATTRIBUTE_UNUSED)
       symbol_set_frag (line_label, frag_now);
     }
 
-  if (bfd_get_section_flags (stdoutput, seg) == SEC_NO_FLAGS)
+  if (bfd_section_flags (seg) == SEC_NO_FLAGS)
     {
-      if (!bfd_set_section_flags (stdoutput, seg, SEC_DATA))
+      if (!bfd_set_section_flags (seg, SEC_DATA))
 	as_warn (_("Error setting flags for \"%s\": %s"), name,
 		 bfd_errmsg (bfd_get_error ()));
     }
@@ -1104,7 +1104,7 @@ tic4x_usect (int x ATTRIBUTE_UNUSED)
       S_SET_VALUE (line_label, frag_now_fix ());
     }
   seg_info (seg)->bss = 1;	/* Uninitialised data.  */
-  if (!bfd_set_section_flags (stdoutput, seg, SEC_ALLOC))
+  if (!bfd_set_section_flags (seg, SEC_ALLOC))
     as_warn (_("Error setting flags for \"%s\": %s"), name,
 	     bfd_errmsg (bfd_get_error ()));
   tic4x_seg_alloc (name, seg, size, line_label);
diff --git a/gas/config/tc-tic54x.c b/gas/config/tc-tic54x.c
index 3e1d32a02e..72c8cf3967 100644
--- a/gas/config/tc-tic54x.c
+++ b/gas/config/tc-tic54x.c
@@ -1391,7 +1391,7 @@ tic54x_usect (int x ATTRIBUTE_UNUSED)
     blocking_flag = alignment_flag = 0;
 
   seg = subseg_new (name, 0);
-  flags = bfd_get_section_flags (stdoutput, seg) | SEC_ALLOC;
+  flags = bfd_section_flags (seg) | SEC_ALLOC;
 
   if (alignment_flag)
     {
@@ -1420,7 +1420,7 @@ tic54x_usect (int x ATTRIBUTE_UNUSED)
   if (blocking_flag)
     flags |= SEC_TIC54X_BLOCK;
 
-  if (!bfd_set_section_flags (stdoutput, seg, flags))
+  if (!bfd_set_section_flags (seg, flags))
     as_warn (_("Error setting flags for \"%s\": %s"), name,
 	     bfd_errmsg (bfd_get_error ()));
 
@@ -3977,12 +3977,12 @@ static void
 emit_insn (tic54x_insn *insn)
 {
   int i;
-  flagword oldflags = bfd_get_section_flags (stdoutput, now_seg);
+  flagword oldflags = bfd_section_flags (now_seg);
   flagword flags = oldflags | SEC_CODE;
 
-  if (! bfd_set_section_flags (stdoutput, now_seg, flags))
+  if (!bfd_set_section_flags (now_seg, flags))
         as_warn (_("error setting flags for \"%s\": %s"),
-                 bfd_section_name (stdoutput, now_seg),
+                 bfd_section_name (now_seg),
                  bfd_errmsg (bfd_get_error ()));
 
   for (i = 0; i < insn->words; i++)
diff --git a/gas/config/tc-tic6x.c b/gas/config/tc-tic6x.c
index 108c2d4259..0433d9e409 100644
--- a/gas/config/tc-tic6x.c
+++ b/gas/config/tc-tic6x.c
@@ -781,7 +781,7 @@ md_begin (void)
 
   /* This is copied from perform_an_assembly_pass.  */
   applicable = bfd_applicable_section_flags (stdoutput);
-  bfd_set_section_flags (stdoutput, sbss_section, applicable & SEC_ALLOC);
+  bfd_set_section_flags (sbss_section, applicable & SEC_ALLOC);
 
   subseg_set (seg, subseg);
 
@@ -4483,7 +4483,7 @@ md_section_align (segT segment ATTRIBUTE_UNUSED,
 {
   /* Round up section sizes to ensure that text sections consist of
      whole fetch packets.  */
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   return ((size + (1 << align) - 1) & (-((valueT) 1 << align)));
 }
 
diff --git a/gas/config/tc-tilegx.c b/gas/config/tc-tilegx.c
index e840e5dc85..788a9f3b46 100644
--- a/gas/config/tc-tilegx.c
+++ b/gas/config/tc-tilegx.c
@@ -262,7 +262,7 @@ md_begin (void)
     as_warn (_("Could not set architecture and machine"));
 
   /* Guarantee text section is aligned.  */
-  bfd_set_section_alignment (stdoutput, text_section,
+  bfd_set_section_alignment (text_section,
                              TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES);
 
   require_canonical_reg_names = 1;
@@ -948,8 +948,8 @@ tilegx_flush_bundle (void)
 
   /* If the section seems to have no alignment set yet, go ahead and
      make it large enough to hold code.  */
-  if (bfd_get_section_alignment (stdoutput, now_seg) == 0)
-    bfd_set_section_alignment (stdoutput, now_seg,
+  if (bfd_section_alignment (now_seg) == 0)
+    bfd_set_section_alignment (now_seg,
                                TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES);
 
   for (j = 0; j < current_bundle_index; j++)
diff --git a/gas/config/tc-tilepro.c b/gas/config/tc-tilepro.c
index 146e270f7d..1c98a93358 100644
--- a/gas/config/tc-tilepro.c
+++ b/gas/config/tc-tilepro.c
@@ -207,7 +207,7 @@ md_begin (void)
   int i;
 
   /* Guarantee text section is aligned.  */
-  bfd_set_section_alignment (stdoutput, text_section,
+  bfd_set_section_alignment (text_section,
                              TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES);
 
   require_canonical_reg_names = 1;
@@ -838,8 +838,8 @@ tilepro_flush_bundle (void)
 
   /* If the section seems to have no alignment set yet, go ahead and
      make it large enough to hold code.  */
-  if (bfd_get_section_alignment (stdoutput, now_seg) == 0)
-    bfd_set_section_alignment (stdoutput, now_seg,
+  if (bfd_section_alignment (now_seg) == 0)
+    bfd_set_section_alignment (now_seg,
                                TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES);
 
   for (j = 0; j < current_bundle_index; j++)
diff --git a/gas/config/tc-v850.c b/gas/config/tc-v850.c
index 12d5846487..dfb43cbc16 100644
--- a/gas/config/tc-v850.c
+++ b/gas/config/tc-v850.c
@@ -229,7 +229,7 @@ do_v850_seg (int i, subsegT sub)
   else
     {
       seg->s = subseg_new (seg->name, sub);
-      bfd_set_section_flags (stdoutput, seg->s, seg->flags);
+      bfd_set_section_flags (seg->s, seg->flags);
       if ((seg->flags & SEC_LOAD) == 0)
 	seg_info (seg->s)->bss = 1;
     }
@@ -1878,7 +1878,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
 
@@ -3740,8 +3740,8 @@ v850_md_end (void)
   enum v850_notes id;
 
   note_sec = subseg_new (V850_NOTE_SECNAME, 0);
-  bfd_set_section_flags (stdoutput, note_sec, SEC_HAS_CONTENTS | SEC_READONLY | SEC_MERGE);
-  bfd_set_section_alignment (stdoutput, note_sec, 2);
+  bfd_set_section_flags (note_sec, SEC_HAS_CONTENTS | SEC_READONLY | SEC_MERGE);
+  bfd_set_section_alignment (note_sec, 2);
 
   /* Provide default values for all of the notes.  */
   for (id = V850_NOTE_ALIGNMENT; id <= NUM_V850_NOTES; id++)
diff --git a/gas/config/tc-visium.c b/gas/config/tc-visium.c
index 6886311230..fbf59c9e01 100644
--- a/gas/config/tc-visium.c
+++ b/gas/config/tc-visium.c
@@ -222,7 +222,7 @@ visium_rdata (int xxx)
 valueT
 md_section_align (asection *seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
 
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-wasm32.c b/gas/config/tc-wasm32.c
index c57611c5a7..3dc42f91df 100644
--- a/gas/config/tc-wasm32.c
+++ b/gas/config/tc-wasm32.c
@@ -177,7 +177,7 @@ md_begin (void)
 valueT
 md_section_align (asection * seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-xc16x.c b/gas/config/tc-xc16x.c
index 00bdb8316e..23b9e687c8 100644
--- a/gas/config/tc-xc16x.c
+++ b/gas/config/tc-xc16x.c
@@ -234,7 +234,7 @@ md_atof (int type, char *litP, int *sizeP)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   return ((size + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-xgate.c b/gas/config/tc-xgate.c
index b3c124398c..4f92c24d0d 100644
--- a/gas/config/tc-xgate.c
+++ b/gas/config/tc-xgate.c
@@ -466,7 +466,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
 valueT
 md_section_align (asection * seg, valueT addr)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   return ((addr + (1 << align) - 1) & -(1 << align));
 }
 
diff --git a/gas/config/tc-xstormy16.c b/gas/config/tc-xstormy16.c
index fb874c58f9..1c708b6362 100644
--- a/gas/config/tc-xstormy16.c
+++ b/gas/config/tc-xstormy16.c
@@ -277,7 +277,7 @@ xstormy16_cgen_record_fixup_exp (fragS *              frag,
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
 
   return ((size + (1 << align) - 1) & -(1 << align));
 }
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
index 320e7afca5..c68128e289 100644
--- a/gas/config/tc-xtensa.c
+++ b/gas/config/tc-xtensa.c
@@ -4115,7 +4115,7 @@ get_is_linkonce_section (bfd *abfd ATTRIBUTE_UNUSED, segT sec)
 {
   flagword flags, link_once_flags;
 
-  flags = bfd_get_section_flags (abfd, sec);
+  flags = bfd_section_flags (sec);
   link_once_flags = (flags & SEC_LINK_ONCE);
 
   /* Flags might not be set yet.  */
@@ -4980,7 +4980,7 @@ xtensa_mark_frags_for_org (void)
       segment_info_type *seginfo;
       fragS *fragP;
       flagword flags;
-      flags = bfd_get_section_flags (stdoutput, sec);
+      flags = bfd_section_flags (sec);
       if (flags & SEC_DEBUGGING)
 	continue;
       if (!(flags & SEC_ALLOC))
@@ -5025,7 +5025,7 @@ xtensa_find_unmarked_state_frags (void)
       segment_info_type *seginfo;
       fragS *fragP;
       flagword flags;
-      flags = bfd_get_section_flags (stdoutput, sec);
+      flags = bfd_section_flags (sec);
       if (flags & SEC_DEBUGGING)
 	continue;
       if (!(flags & SEC_ALLOC))
@@ -5073,7 +5073,7 @@ xtensa_find_unaligned_branch_targets (bfd *abfd ATTRIBUTE_UNUSED,
 				      asection *sec,
 				      void *unused ATTRIBUTE_UNUSED)
 {
-  flagword flags = bfd_get_section_flags (abfd, sec);
+  flagword flags = bfd_section_flags (sec);
   segment_info_type *seginfo = seg_info (sec);
   fragS *frag = seginfo->frchainP->frch_root;
 
@@ -5112,7 +5112,7 @@ xtensa_find_unaligned_loops (bfd *abfd ATTRIBUTE_UNUSED,
 			     asection *sec,
 			     void *unused ATTRIBUTE_UNUSED)
 {
-  flagword flags = bfd_get_section_flags (abfd, sec);
+  flagword flags = bfd_section_flags (sec);
   segment_info_type *seginfo = seg_info (sec);
   fragS *frag = seginfo->frchainP->frch_root;
   xtensa_isa isa = xtensa_default_isa;
@@ -8941,7 +8941,7 @@ xtensa_add_config_info (void)
   int sz;
 
   info_sec = subseg_new (".xtensa.info", 0);
-  bfd_set_section_flags (stdoutput, info_sec, SEC_HAS_CONTENTS | SEC_READONLY);
+  bfd_set_section_flags (info_sec, SEC_HAS_CONTENTS | SEC_READONLY);
 
   data = XNEWVEC (char, 100);
   sprintf (data, "USE_ABSOLUTE_LITERALS=%d\nABI=%d\n",
@@ -11682,8 +11682,8 @@ cache_literal_section (bfd_boolean use_abs_literals)
 
       elf_group_name (seg) = group_name;
 
-      bfd_set_section_flags (stdoutput, seg, flags);
-      bfd_set_section_alignment (stdoutput, seg, 2);
+      bfd_set_section_flags (seg, flags);
+      bfd_set_section_alignment (seg, 2);
     }
 
   *pcached = seg;
@@ -11814,7 +11814,7 @@ xtensa_create_property_segments (frag_predicate property_function,
 	    num_recs++;
 
 	  rec_size = num_recs * 8;
-	  bfd_set_section_size (stdoutput, sec, rec_size);
+	  bfd_set_section_size (sec, rec_size);
 
 	  if (num_recs)
 	    {
@@ -11911,7 +11911,7 @@ xtensa_create_xproperty_segments (frag_flags_fn flag_fn,
 	    num_recs++;
 
 	  rec_size = num_recs * (8 + 4);
-	  bfd_set_section_size (stdoutput, sec, rec_size);
+	  bfd_set_section_size (sec, rec_size);
 	  /* elf_section_data (sec)->this_hdr.sh_entsize = 12; */
 
 	  if (num_recs)
@@ -11955,7 +11955,7 @@ xtensa_create_xproperty_segments (frag_flags_fn flag_fn,
 static bfd_boolean
 exclude_section_from_property_tables (segT sec)
 {
-  flagword flags = bfd_get_section_flags (stdoutput, sec);
+  flagword flags = bfd_section_flags (sec);
 
   /* Sections that don't contribute to the memory footprint are excluded.  */
   if ((flags & SEC_DEBUGGING)
diff --git a/gas/config/tc-z8k.c b/gas/config/tc-z8k.c
index 9cb41a3cc9..68e1b761cd 100644
--- a/gas/config/tc-z8k.c
+++ b/gas/config/tc-z8k.c
@@ -1385,7 +1385,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED,
 valueT
 md_section_align (segT seg, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, seg);
+  int align = bfd_section_alignment (seg);
   valueT mask = ((valueT) 1 << align) - 1;
 
   return (size + mask) & ~mask;
diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c
index f30734d384..388123fd24 100644
--- a/gas/dw2gencfi.c
+++ b/gas/dw2gencfi.c
@@ -232,7 +232,7 @@ get_debugseg_name (segT seg, const char *base_name)
   if (!seg)
     return concat (base_name, NULL);
 
-  name = bfd_get_section_name (stdoutput, seg);
+  name = bfd_section_name (seg);
 
   if (name == NULL || *name == 0)
     return concat (base_name, NULL);
@@ -281,7 +281,7 @@ is_now_linkonce_segment (void)
   if (compact_eh)
     return now_seg;
 
-  if ((bfd_get_section_flags (stdoutput, now_seg)
+  if ((bfd_section_flags (now_seg)
        & (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
 	  | SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE
 	  | SEC_LINK_DUPLICATES_SAME_CONTENTS)) != 0)
@@ -306,16 +306,16 @@ make_debug_seg (segT cseg, char *name, int sflags)
   if (!cseg)
     flags = 0;
   else
-    flags = bfd_get_section_flags (stdoutput, cseg)
-      & (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
-	 | SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE
-	 | SEC_LINK_DUPLICATES_SAME_CONTENTS);
+    flags = (bfd_section_flags (cseg)
+	     & (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
+		| SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE
+		| SEC_LINK_DUPLICATES_SAME_CONTENTS));
 
   /* Add standard section flags.  */
   flags |= sflags;
 
   /* Apply possibly linked once flags to new generated segment, too.  */
-  if (!bfd_set_section_flags (stdoutput, r, flags))
+  if (!bfd_set_section_flags (r, flags))
     as_bad (_("bfd_set_section_flags: %s"),
 	    bfd_errmsg (bfd_get_error ()));
 
@@ -1359,7 +1359,7 @@ get_cfi_seg (segT cseg, const char *base, flagword flags, int align)
   else
     {
       cseg = subseg_new (base, 0);
-      bfd_set_section_flags (stdoutput, cseg, flags);
+      bfd_set_section_flags (cseg, flags);
     }
   record_alignment (cseg, align);
   return cseg;
diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
index 5f804f1541..90b47b02fc 100644
--- a/gas/dwarf2dbg.c
+++ b/gas/dwarf2dbg.c
@@ -657,7 +657,7 @@ dwarf2_emit_label (symbolS *label)
     return;
   if (S_GET_SEGMENT (label) != now_seg)
     return;
-  if (!(bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE))
+  if (!(bfd_section_flags (now_seg) & SEC_CODE))
     return;
   if (files_in_use == 0 && debug_type != DEBUG_DWARF2)
     return;
@@ -1594,7 +1594,7 @@ process_entries (segT seg, struct line_entry *e)
 	 that all of the sub-sections are merged into a proper
 	 .debug_line section before a debugger sees them.  */
 
-      sec_name = bfd_get_section_name (stdoutput, seg);
+      sec_name = bfd_section_name (seg);
       if (strcmp (sec_name, ".text") != 0)
 	{
 	  name = concat (".debug_line", sec_name, (char *) NULL);
@@ -2238,7 +2238,7 @@ dwarf2_finish (void)
 
   /* Create and switch to the line number section.  */
   line_seg = subseg_new (".debug_line", 0);
-  bfd_set_section_flags (stdoutput, line_seg, SEC_READONLY | SEC_DEBUGGING);
+  bfd_set_section_flags (line_seg, SEC_READONLY | SEC_DEBUGGING);
 
   /* For each subsection, chain the debug entries together.  */
   for (s = all_segs; s; s = s->next)
@@ -2284,15 +2284,11 @@ dwarf2_finish (void)
       aranges_seg = subseg_new (".debug_aranges", 0);
       str_seg = subseg_new (".debug_str", 0);
 
-      bfd_set_section_flags (stdoutput, info_seg,
-			     SEC_READONLY | SEC_DEBUGGING);
-      bfd_set_section_flags (stdoutput, abbrev_seg,
-			     SEC_READONLY | SEC_DEBUGGING);
-      bfd_set_section_flags (stdoutput, aranges_seg,
-			     SEC_READONLY | SEC_DEBUGGING);
-      bfd_set_section_flags (stdoutput, str_seg,
-			     (SEC_READONLY | SEC_DEBUGGING
-			      | SEC_MERGE | SEC_STRINGS));
+      bfd_set_section_flags (info_seg, SEC_READONLY | SEC_DEBUGGING);
+      bfd_set_section_flags (abbrev_seg, SEC_READONLY | SEC_DEBUGGING);
+      bfd_set_section_flags (aranges_seg, SEC_READONLY | SEC_DEBUGGING);
+      bfd_set_section_flags (str_seg, (SEC_READONLY | SEC_DEBUGGING
+				       | SEC_MERGE | SEC_STRINGS));
       str_seg->entsize = 1;
 
       record_alignment (aranges_seg, ffs (2 * sizeof_address) - 1);
@@ -2302,8 +2298,7 @@ dwarf2_finish (void)
       else
 	{
 	  ranges_seg = subseg_new (".debug_ranges", 0);
-	  bfd_set_section_flags (stdoutput, ranges_seg,
-				 SEC_READONLY | SEC_DEBUGGING);
+	  bfd_set_section_flags (ranges_seg, SEC_READONLY | SEC_DEBUGGING);
 	  record_alignment (ranges_seg, ffs (2 * sizeof_address) - 1);
 	  out_debug_ranges (ranges_seg);
 	}
diff --git a/gas/ecoff.c b/gas/ecoff.c
index 09e8f0e6cf..bacc89fe3a 100644
--- a/gas/ecoff.c
+++ b/gas/ecoff.c
@@ -3700,8 +3700,7 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend,
       && first_proc_ptr != (proc_t *) NULL
       && local_first_lineno != (lineno_list_t *) NULL
       && ((S_GET_VALUE (first_proc_ptr->sym->as_sym)
-	   + bfd_get_section_vma (stdoutput,
-				  S_GET_SEGMENT (first_proc_ptr->sym->as_sym)))
+	   + bfd_section_vma (S_GET_SEGMENT (first_proc_ptr->sym->as_sym)))
 	  != 0))
     {
       first.file = local_first_lineno->file;
@@ -3981,8 +3980,7 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend,
 		      else
 			sym_ptr->ecoff_sym.asym.value =
 			  (S_GET_VALUE (as_sym)
-			   + bfd_get_section_vma (stdoutput,
-						  S_GET_SEGMENT (as_sym))
+			   + bfd_section_vma (S_GET_SEGMENT (as_sym))
 			   + sym_ptr->addend);
 
 		      sym_ptr->ecoff_sym.weakext = S_IS_WEAK (as_sym);
@@ -4310,8 +4308,7 @@ ecoff_build_procs (const struct ecoff_debug_swap *backend,
 
 		  adr_sym = proc_ptr->sym->as_sym;
 		  adr = (S_GET_VALUE (adr_sym)
-			 + bfd_get_section_vma (stdoutput,
-						S_GET_SEGMENT (adr_sym)));
+			 + bfd_section_vma (S_GET_SEGMENT (adr_sym)));
 		  if (first)
 		    {
 		      /* This code used to force the adr of the very
diff --git a/gas/read.c b/gas/read.c
index 58d79b2787..e53dd0232d 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -742,7 +742,7 @@ assemble_one (char *line)
 static bfd_boolean
 in_bss (void)
 {
-  flagword flags = bfd_get_section_flags (stdoutput, now_seg);
+  flagword flags = bfd_section_flags (now_seg);
 
   return (flags & SEC_ALLOC) && !(flags & (SEC_LOAD | SEC_HAS_CONTENTS));
 }
@@ -2419,7 +2419,7 @@ s_linkonce (int ignore ATTRIBUTE_UNUSED)
     if ((bfd_applicable_section_flags (stdoutput) & SEC_LINK_ONCE) == 0)
       as_warn (_(".linkonce is not supported for this object file format"));
 
-    flags = bfd_get_section_flags (stdoutput, now_seg);
+    flags = bfd_section_flags (now_seg);
     flags |= SEC_LINK_ONCE;
     switch (type)
       {
@@ -2438,7 +2438,7 @@ s_linkonce (int ignore ATTRIBUTE_UNUSED)
 	flags |= SEC_LINK_DUPLICATES_SAME_CONTENTS;
 	break;
       }
-    if (!bfd_set_section_flags (stdoutput, now_seg, flags))
+    if (!bfd_set_section_flags (now_seg, flags))
       as_bad (_("bfd_set_section_flags: %s"),
 	      bfd_errmsg (bfd_get_error ()));
   }
@@ -2464,7 +2464,7 @@ bss_alloc (symbolS *symbolP, addressT size, unsigned int align)
 	{
 	  bss_seg = subseg_new (".sbss", 1);
 	  seg_info (bss_seg)->bss = 1;
-	  if (!bfd_set_section_flags (stdoutput, bss_seg, SEC_ALLOC))
+	  if (!bfd_set_section_flags (bss_seg, SEC_ALLOC))
 	    as_warn (_("error setting flags for \".sbss\": %s"),
 		     bfd_errmsg (bfd_get_error ()));
 	}
@@ -2957,9 +2957,9 @@ s_mri_sect (char *type ATTRIBUTE_UNUSED)
 	  flags = SEC_ALLOC | SEC_LOAD | SEC_DATA | SEC_READONLY | SEC_ROM;
 	if (flags != SEC_NO_FLAGS)
 	  {
-	    if (!bfd_set_section_flags (stdoutput, seg, flags))
+	    if (!bfd_set_section_flags (seg, flags))
 	      as_warn (_("error setting flags for \"%s\": %s"),
-		       bfd_section_name (stdoutput, seg),
+		       bfd_section_name (seg),
 		       bfd_errmsg (bfd_get_error ()));
 	  }
       }
diff --git a/gas/stabs.c b/gas/stabs.c
index 64811c1bb1..0217c422ec 100644
--- a/gas/stabs.c
+++ b/gas/stabs.c
@@ -109,7 +109,7 @@ get_stab_string_offset (const char *string, const char *stabstr_secname,
       p = frag_more (1);
       *p = 0;
       retval = seg_info (seg)->stabu.stab_string_size = 1;
-      bfd_set_section_flags (stdoutput, seg, SEC_READONLY | SEC_DEBUGGING);
+      bfd_set_section_flags (seg, SEC_READONLY | SEC_DEBUGGING);
     }
 
   if (length > 0)
@@ -336,7 +336,7 @@ s_stab_generic (int what,
 
       if (! seg_info (seg)->hadone)
 	{
-	  bfd_set_section_flags (stdoutput, seg,
+	  bfd_set_section_flags (seg,
 				 SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
 #ifdef INIT_STAB_SECTION
 	  INIT_STAB_SECTION (seg);
diff --git a/gas/subsegs.c b/gas/subsegs.c
index a66af2d3f6..d438a10c69 100644
--- a/gas/subsegs.c
+++ b/gas/subsegs.c
@@ -65,7 +65,7 @@ subseg_change (segT seg, int subseg)
     {
       seginfo = XCNEW (segment_info_type);
       seginfo->bfd_section = seg;
-      bfd_set_section_userdata (stdoutput, seg, seginfo);
+      bfd_set_section_userdata (seg, seginfo);
     }
 }
 \f
@@ -146,9 +146,7 @@ subseg_get (const char *segname, int force_new)
 {
   segT secptr;
   segment_info_type *seginfo;
-  const char *now_seg_name = (now_seg
-			      ? bfd_get_section_name (stdoutput, now_seg)
-			      : 0);
+  const char *now_seg_name = now_seg ? bfd_section_name (now_seg) : 0;
 
   if (!force_new
       && now_seg_name
@@ -167,7 +165,7 @@ subseg_get (const char *segname, int force_new)
       secptr->output_section = secptr;
       seginfo = XCNEW (segment_info_type);
       seginfo->bfd_section = secptr;
-      bfd_set_section_userdata (stdoutput, secptr, seginfo);
+      bfd_set_section_userdata (secptr, seginfo);
     }
   return secptr;
 }
@@ -260,7 +258,7 @@ section_symbol (segT sec)
 int
 subseg_text_p (segT sec)
 {
-  return (bfd_get_section_flags (stdoutput, sec) & SEC_CODE) != 0;
+  return (bfd_section_flags (sec) & SEC_CODE) != 0;
 }
 
 /* Return non zero if SEC has at least one byte of data.  It is
diff --git a/gas/subsegs.h b/gas/subsegs.h
index d853f453ae..2a956026fe 100644
--- a/gas/subsegs.h
+++ b/gas/subsegs.h
@@ -112,7 +112,7 @@ typedef struct segment_info_struct {
 
 
 #define seg_info(sec) \
-  ((segment_info_type *) bfd_get_section_userdata (stdoutput, sec))
+  ((segment_info_type *) bfd_section_userdata (sec))
 
 extern symbolS *section_symbol (segT);
 
diff --git a/gas/write.c b/gas/write.c
index e9a17e4468..9b5ae6ff32 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -359,8 +359,8 @@ record_alignment (/* Segment to which alignment pertains.  */
   if (seg == absolute_section)
     return;
 
-  if (align > bfd_get_section_alignment (stdoutput, seg))
-    bfd_set_section_alignment (stdoutput, seg, align);
+  if (align > bfd_section_alignment (seg))
+    bfd_set_section_alignment (seg, align);
 }
 
 int
@@ -369,7 +369,7 @@ get_recorded_alignment (segT seg)
   if (seg == absolute_section)
     return 0;
 
-  return bfd_get_section_alignment (stdoutput, seg);
+  return bfd_section_alignment (seg);
 }
 
 /* Reset the section indices after removing the gas created sections.  */
@@ -555,7 +555,7 @@ relax_seg (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *xxx)
 }
 
 static void
-size_seg (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
+size_seg (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *xxx ATTRIBUTE_UNUSED)
 {
   flagword flags;
   fragS *fragp;
@@ -580,8 +580,8 @@ size_seg (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
   else
     size = 0;
 
-  flags = bfd_get_section_flags (abfd, sec);
-  if (size == 0 && bfd_get_section_size (sec) != 0 &&
+  flags = bfd_section_flags (sec);
+  if (size == 0 && bfd_section_size (sec) != 0 &&
     (flags & SEC_HAS_CONTENTS) != 0)
     return;
 
@@ -589,7 +589,7 @@ size_seg (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
     flags |= SEC_HAS_CONTENTS;
 
   flags &= ~SEC_RELOC;
-  x = bfd_set_section_flags (abfd, sec, flags);
+  x = bfd_set_section_flags (sec, flags);
   gas_assert (x);
 
   /* If permitted, allow the backend to pad out the section
@@ -598,7 +598,7 @@ size_seg (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
     newsize = size;
   else
     newsize = md_section_align (sec, size);
-  x = bfd_set_section_size (abfd, sec, newsize);
+  x = bfd_set_section_size (sec, newsize);
   gas_assert (x);
 
   /* If the size had to be rounded up, add some padding in the last
@@ -1215,7 +1215,8 @@ get_frag_for_reloc (fragS *last_frag,
 }
 
 static void
-write_relocs (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
+write_relocs (bfd *abfd ATTRIBUTE_UNUSED, asection *sec,
+	      void *xxx ATTRIBUTE_UNUSED)
 {
   segment_info_type *seginfo = seg_info (sec);
   unsigned int n;
@@ -1345,9 +1346,9 @@ write_relocs (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
 
   if (n)
     {
-      flagword flags = bfd_get_section_flags (abfd, sec);
+      flagword flags = bfd_section_flags (sec);
       flags |= SEC_RELOC;
-      bfd_set_section_flags (abfd, sec, flags);
+      bfd_set_section_flags (sec, flags);
       bfd_set_reloc (stdoutput, sec, relocs, n);
     }
 
@@ -1433,7 +1434,7 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
   char *header;
   struct z_stream_s *strm;
   int x;
-  flagword flags = bfd_get_section_flags (abfd, sec);
+  flagword flags = bfd_section_flags (sec);
   unsigned int header_size, compression_header_size;
 
   if (seginfo == NULL
@@ -1441,7 +1442,7 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
       || (flags & (SEC_ALLOC | SEC_HAS_CONTENTS)) == SEC_ALLOC)
     return;
 
-  section_name = bfd_get_section_name (stdoutput, sec);
+  section_name = bfd_section_name (sec);
   if (strncmp (section_name, ".debug_", 7) != 0)
     return;
 
@@ -1565,12 +1566,12 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
 
   /* Update the section size and its name.  */
   bfd_update_compression_header (abfd, (bfd_byte *) header, sec);
-  x = bfd_set_section_size (abfd, sec, compressed_size);
+  x = bfd_set_section_size (sec, compressed_size);
   gas_assert (x);
   if (!compression_header_size)
     {
       compressed_name = concat (".z", section_name + 1, (char *) NULL);
-      bfd_section_name (stdoutput, sec) = compressed_name;
+      bfd_rename_section (sec, compressed_name);
     }
 }
 
@@ -1599,7 +1600,7 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED,
 
   /* Write out the frags.  */
   if (seginfo == NULL
-      || !(bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS))
+      || !(bfd_section_flags (sec) & SEC_HAS_CONTENTS))
     return;
 
   for (f = seginfo->frchainP->frch_root;
@@ -1815,7 +1816,7 @@ subsegs_finish_section (asection *s)
 	do_not_pad_sections_to_alignment = 1;
 
       alignment = SUB_SEGMENT_ALIGN (now_seg, frchainP);
-      if ((bfd_get_section_flags (now_seg->owner, now_seg) & SEC_MERGE)
+      if ((bfd_section_flags (now_seg) & SEC_MERGE)
 	  && now_seg->entsize)
 	{
 	  unsigned int entsize = now_seg->entsize;
@@ -1875,7 +1876,7 @@ create_obj_attrs_section (void)
   s = subseg_new (name, 0);
   elf_section_type (s)
     = get_elf_backend_data (stdoutput)->obj_attrs_section_type;
-  bfd_set_section_flags (stdoutput, s, SEC_READONLY | SEC_DATA);
+  bfd_set_section_flags (s, SEC_READONLY | SEC_DATA);
   frag_now_fix ();
   p = frag_more (size);
   bfd_elf_set_obj_attr_contents (stdoutput, (bfd_byte *)p, size);
@@ -1959,9 +1960,8 @@ maybe_generate_build_notes (void)
   /* Create a GNU Build Attribute section.  */
   sec = subseg_new (GNU_BUILD_ATTRS_SECTION_NAME, FALSE);
   elf_section_type (sec) = SHT_NOTE;
-  bfd_set_section_flags (stdoutput, sec,
-			 SEC_READONLY | SEC_HAS_CONTENTS | SEC_DATA);
-  bfd_set_section_alignment (stdoutput, sec, 2);
+  bfd_set_section_flags (sec, SEC_READONLY | SEC_HAS_CONTENTS | SEC_DATA);
+  bfd_set_section_alignment (sec, 2);
 
   /* Work out the size of the notes that we will create,
      and the relocation we should use.  */
@@ -2041,7 +2041,7 @@ maybe_generate_build_notes (void)
 
 	/* ...and another one to install the end address.  */
 	create_note_reloc (sec, sym, total_size, desc2_offset, desc_reloc,
-			   bfd_get_section_size (bsym->section),
+			   bfd_section_size (bsym->section),
 			   note);
 
 	total_size += note_size;
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 47549ad0b9..7057e37e8d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,26 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* aarch64-linux-tdep.c, * arm-tdep.c, * auto-load.c,
+	* coff-pe-read.c, * coffread.c, * corelow.c, * dbxread.c,
+	* dicos-tdep.c, * dwarf2-frame.c, * dwarf2read.c, * elfread.c,
+	* exec.c, * fbsd-tdep.c, * gcore.c, * gdb_bfd.c, * gdb_bfd.h,
+	* hppa-tdep.c, * i386-cygwin-tdep.c, * i386-fbsd-tdep.c,
+	* i386-linux-tdep.c, * jit.c, * linux-tdep.c, * machoread.c,
+	* maint.c, * mdebugread.c, * minidebug.c, * mips-linux-tdep.c,
+	* mips-sde-tdep.c, * mips-tdep.c, * mipsread.c, * nto-tdep.c,
+	* objfiles.c, * objfiles.h, * osabi.c, * ppc-linux-tdep.c,
+	* ppc64-tdep.c, * record-btrace.c, * record-full.c, * remote.c,
+	* rs6000-aix-tdep.c, * rs6000-tdep.c, * s390-linux-tdep.c,
+	* s390-tdep.c, * solib-aix.c, * solib-dsbt.c, * solib-frv.c,
+	* solib-spu.c, * solib-svr4.c, * solib-target.c,
+	* spu-linux-nat.c, * spu-tdep.c, * symfile-mem.c, * symfile.c,
+	* symmisc.c, * symtab.c, * target.c, * windows-nat.c,
+	* xcoffread.c, * cli/cli-dump.c, * compile/compile-object-load.c,
+	* mi/mi-interp.c: Update throughout for bfd section macro and
+	function changes.
+	* gcore (gcore_create_callback): Use bfd_set_section_lma.
+	* spu-tdep.c (spu_overlay_new_objfile): Likewise.
+
 2019-09-18  Tom Tromey  <tom@tromey.com>
 
 	* NEWS: Add entry.
diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c
index 831e62fb86..a375c3b137 100644
--- a/gdb/aarch64-linux-tdep.c
+++ b/gdb/aarch64-linux-tdep.c
@@ -452,7 +452,7 @@ aarch64_linux_core_read_vq (struct gdbarch *gdbarch, bfd *abfd)
       return 0;
     }
 
-  size_t size = bfd_section_size (abfd, sve_section);
+  size_t size = bfd_section_size (sve_section);
 
   /* Check extended state size.  */
   if (size < SVE_HEADER_SIZE)
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 5c494c8ed2..e17550fed7 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -2009,12 +2009,11 @@ arm_obj_section_from_vma (struct objfile *objfile, bfd_vma vma)
   struct obj_section *osect;
 
   ALL_OBJFILE_OSECTIONS (objfile, osect)
-    if (bfd_get_section_flags (objfile->obfd,
-			       osect->the_bfd_section) & SEC_ALLOC)
+    if (bfd_section_flags (osect->the_bfd_section) & SEC_ALLOC)
       {
 	bfd_vma start, size;
-	start = bfd_get_section_vma (objfile->obfd, osect->the_bfd_section);
-	size = bfd_get_section_size (osect->the_bfd_section);
+	start = bfd_section_vma (osect->the_bfd_section);
+	size = bfd_section_size (osect->the_bfd_section);
 
 	if (start <= vma && vma < start + size)
 	  return osect;
@@ -2054,8 +2053,8 @@ arm_exidx_new_objfile (struct objfile *objfile)
   gdb::byte_vector exidx_data;
   if (exidx)
     {
-      exidx_vma = bfd_section_vma (objfile->obfd, exidx);
-      exidx_data.resize (bfd_get_section_size (exidx));
+      exidx_vma = bfd_section_vma (exidx);
+      exidx_data.resize (bfd_section_size (exidx));
 
       if (!bfd_get_section_contents (objfile->obfd, exidx,
 				     exidx_data.data (), 0,
@@ -2067,8 +2066,8 @@ arm_exidx_new_objfile (struct objfile *objfile)
   gdb::byte_vector extab_data;
   if (extab)
     {
-      extab_vma = bfd_section_vma (objfile->obfd, extab);
-      extab_data.resize (bfd_get_section_size (extab));
+      extab_vma = bfd_section_vma (extab);
+      extab_data.resize (bfd_section_size (extab));
 
       if (!bfd_get_section_contents (objfile->obfd, extab,
 				     extab_data.data (), 0,
@@ -2100,7 +2099,7 @@ arm_exidx_new_objfile (struct objfile *objfile)
       sec = arm_obj_section_from_vma (objfile, idx);
       if (sec == NULL)
 	continue;
-      idx -= bfd_get_section_vma (objfile->obfd, sec->the_bfd_section);
+      idx -= bfd_section_vma (sec->the_bfd_section);
 
       /* Determine address of exception table entry.  */
       if (val == 1)
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index 9798ab1a06..136d53ffe1 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -1116,7 +1116,7 @@ auto_load_section_scripts (struct objfile *objfile, const char *section_name)
 
   scripts_sect = bfd_get_section_by_name (abfd, section_name);
   if (scripts_sect == NULL
-      || (bfd_get_section_flags (abfd, scripts_sect) & SEC_HAS_CONTENTS) == 0)
+      || (bfd_section_flags (scripts_sect) & SEC_HAS_CONTENTS) == 0)
     return;
 
   if (!bfd_get_full_section_contents (abfd, scripts_sect, &data))
@@ -1128,7 +1128,7 @@ auto_load_section_scripts (struct objfile *objfile, const char *section_name)
 
       char *p = (char *) data;
       source_section_scripts (objfile, section_name, p,
-			      p + bfd_get_section_size (scripts_sect));
+			      p + bfd_section_size (scripts_sect));
     }
 }
 
diff --git a/gdb/cli/cli-dump.c b/gdb/cli/cli-dump.c
index 143d02ab88..74e0057d4a 100644
--- a/gdb/cli/cli-dump.c
+++ b/gdb/cli/cli-dump.c
@@ -163,12 +163,10 @@ dump_bfd_file (const char *filename, const char *mode,
 
   gdb_bfd_ref_ptr obfd (bfd_openw_or_error (filename, target, mode));
   osection = bfd_make_section_anyway (obfd.get (), ".newsec");
-  bfd_set_section_size (obfd.get (), osection, len);
-  bfd_set_section_vma (obfd.get (), osection, vaddr);
-  bfd_set_section_alignment (obfd.get (), osection, 0);
-  bfd_set_section_flags (obfd.get (), osection, (SEC_HAS_CONTENTS
-						 | SEC_ALLOC
-						 | SEC_LOAD));
+  bfd_set_section_size (osection, len);
+  bfd_set_section_vma (osection, vaddr);
+  bfd_set_section_alignment (osection, 0);
+  bfd_set_section_flags (osection, (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD));
   osection->entsize = 0;
   if (!bfd_set_section_contents (obfd.get (), osection, buf, 0, len))
     warning (_("writing dump file '%s' (%s)"), filename,
@@ -403,15 +401,15 @@ static void
 restore_section_callback (bfd *ibfd, asection *isec, void *args)
 {
   struct callback_data *data = (struct callback_data *) args;
-  bfd_vma sec_start  = bfd_section_vma (ibfd, isec);
-  bfd_size_type size = bfd_section_size (ibfd, isec);
+  bfd_vma sec_start  = bfd_section_vma (isec);
+  bfd_size_type size = bfd_section_size (isec);
   bfd_vma sec_end    = sec_start + size;
   bfd_size_type sec_offset = 0;
   bfd_size_type sec_load_count = size;
   int ret;
 
   /* Ignore non-loadable sections, eg. from elf files.  */
-  if (!(bfd_get_section_flags (ibfd, isec) & SEC_LOAD))
+  if (!(bfd_section_flags (isec) & SEC_LOAD))
     return;
 
   /* Does the section overlap with the desired restore range? */
@@ -420,7 +418,7 @@ restore_section_callback (bfd *ibfd, asection *isec, void *args)
     {
       /* No, no useable data in this section.  */
       printf_filtered (_("skipping section %s...\n"), 
-		       bfd_section_name (ibfd, isec));
+		       bfd_section_name (isec));
       return;
     }
 
@@ -441,7 +439,7 @@ restore_section_callback (bfd *ibfd, asection *isec, void *args)
 	   bfd_errmsg (bfd_get_error ()));
 
   printf_filtered ("Restoring section %s (0x%lx to 0x%lx)",
-		   bfd_section_name (ibfd, isec), 
+		   bfd_section_name (isec), 
 		   (unsigned long) sec_start, 
 		   (unsigned long) sec_end);
 
diff --git a/gdb/coff-pe-read.c b/gdb/coff-pe-read.c
index 9f7384bc14..fe74d26cab 100644
--- a/gdb/coff-pe-read.c
+++ b/gdb/coff-pe-read.c
@@ -136,7 +136,7 @@ get_section_vmas (bfd *abfd, asection *sectp, void *context)
          bfd_get_section_vma() within memory.  Store the offset.  */
 
       sections[sectix].vma_offset
-	= bfd_get_section_vma (abfd, sectp) - sections[sectix].rva_start;
+	= bfd_section_vma (sectp) - sections[sectix].rva_start;
     }
 }
 \f
diff --git a/gdb/coffread.c b/gdb/coffread.c
index a70461271e..c44b69069e 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -222,15 +222,15 @@ coff_locate_sections (bfd *abfd, asection *sectp, void *csip)
   const char *name;
 
   csi = (struct coff_symfile_info *) csip;
-  name = bfd_get_section_name (abfd, sectp);
+  name = bfd_section_name (sectp);
   if (strcmp (name, ".text") == 0)
     {
-      csi->textaddr = bfd_section_vma (abfd, sectp);
-      csi->textsize += bfd_section_size (abfd, sectp);
+      csi->textaddr = bfd_section_vma (sectp);
+      csi->textsize += bfd_section_size (sectp);
     }
   else if (startswith (name, ".text"))
     {
-      csi->textsize += bfd_section_size (abfd, sectp);
+      csi->textsize += bfd_section_size (sectp);
     }
   else if (strcmp (name, ".stabstr") == 0)
     {
@@ -307,7 +307,7 @@ cs_section_address (struct coff_symbol *cs, bfd *abfd)
   args.resultp = &sect;
   bfd_map_over_sections (abfd, find_targ_sec, &args);
   if (sect != NULL)
-    addr = bfd_get_section_vma (abfd, sect);
+    addr = bfd_section_vma (sect);
   return addr;
 }
 
@@ -692,7 +692,7 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
          bfd_get_section_contents?  */
       bfd_seek (abfd, abfd->where, 0);
 
-      stabstrsize = bfd_section_size (abfd, info->stabstrsect);
+      stabstrsize = bfd_section_size (info->stabstrsect);
 
       coffstab_build_psymtabs (objfile,
 			       info->textaddr, info->textsize,
diff --git a/gdb/compile/compile-object-load.c b/gdb/compile/compile-object-load.c
index 3a765a345b..a30c557303 100644
--- a/gdb/compile/compile-object-load.c
+++ b/gdb/compile/compile-object-load.c
@@ -99,30 +99,30 @@ setup_sections (bfd *abfd, asection *sect, void *data_voidp)
       if (sect->output_section == NULL)
 	sect->output_section = sect;
 
-      if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+      if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
 	return;
 
       /* Make the memory always readable.  */
       prot = GDB_MMAP_PROT_READ;
-      if ((bfd_get_section_flags (abfd, sect) & SEC_READONLY) == 0)
+      if ((bfd_section_flags (sect) & SEC_READONLY) == 0)
 	prot |= GDB_MMAP_PROT_WRITE;
-      if ((bfd_get_section_flags (abfd, sect) & SEC_CODE) != 0)
+      if ((bfd_section_flags (sect) & SEC_CODE) != 0)
 	prot |= GDB_MMAP_PROT_EXEC;
 
       if (compile_debug)
 	fprintf_unfiltered (gdb_stdlog,
 			    "module \"%s\" section \"%s\" size %s prot %u\n",
 			    bfd_get_filename (abfd),
-			    bfd_get_section_name (abfd, sect),
+			    bfd_section_name (sect),
 			    paddress (target_gdbarch (),
-				      bfd_get_section_size (sect)),
+				      bfd_section_size (sect)),
 			    prot);
     }
   else
     prot = -1;
 
   if (sect == NULL
-      || (data->last_prot != prot && bfd_get_section_size (sect) != 0))
+      || (data->last_prot != prot && bfd_section_size (sect) != 0))
     {
       CORE_ADDR addr;
       asection *sect_iter;
@@ -150,9 +150,8 @@ setup_sections (bfd *abfd, asection *sect, void *data_voidp)
 
       for (sect_iter = data->last_section_first; sect_iter != sect;
 	   sect_iter = sect_iter->next)
-	if ((bfd_get_section_flags (abfd, sect_iter) & SEC_ALLOC) != 0)
-	  bfd_set_section_vma (abfd, sect_iter,
-			       addr + bfd_get_section_vma (abfd, sect_iter));
+	if ((bfd_section_flags (sect_iter) & SEC_ALLOC) != 0)
+	  bfd_set_section_vma (sect_iter, addr + bfd_section_vma (sect_iter));
 
       data->last_size = 0;
       data->last_section_first = sect;
@@ -163,14 +162,14 @@ setup_sections (bfd *abfd, asection *sect, void *data_voidp)
   if (sect == NULL)
     return;
 
-  alignment = ((CORE_ADDR) 1) << bfd_get_section_alignment (abfd, sect);
+  alignment = ((CORE_ADDR) 1) << bfd_section_alignment (sect);
   data->last_max_alignment = std::max (data->last_max_alignment, alignment);
 
   data->last_size = (data->last_size + alignment - 1) & -alignment;
 
-  bfd_set_section_vma (abfd, sect, data->last_size);
+  bfd_set_section_vma (sect, data->last_size);
 
-  data->last_size += bfd_get_section_size (sect);
+  data->last_size += bfd_section_size (sect);
   data->last_size = (data->last_size + alignment - 1) & -alignment;
 }
 
@@ -197,7 +196,7 @@ link_callbacks_warning (struct bfd_link_info *link_info, const char *xwarning,
 			bfd_vma address)
 {
   warning (_("Compiled module \"%s\" section \"%s\": warning: %s"),
-	   bfd_get_filename (abfd), bfd_get_section_name (abfd, section),
+	   bfd_get_filename (abfd), bfd_section_name (section),
 	   xwarning);
 }
 
@@ -210,7 +209,7 @@ link_callbacks_undefined_symbol (struct bfd_link_info *link_info,
 {
   warning (_("Cannot resolve relocation to \"%s\" "
 	     "from compiled module \"%s\" section \"%s\"."),
-	   name, bfd_get_filename (abfd), bfd_get_section_name (abfd, section));
+	   name, bfd_get_filename (abfd), bfd_section_name (section));
 }
 
 /* Helper for link_callbacks callbacks vector.  */
@@ -233,7 +232,7 @@ link_callbacks_reloc_dangerous (struct bfd_link_info *link_info,
 {
   warning (_("Compiled module \"%s\" section \"%s\": dangerous "
 	     "relocation: %s\n"),
-	   bfd_get_filename (abfd), bfd_get_section_name (abfd, section),
+	   bfd_get_filename (abfd), bfd_section_name (section),
 	   message);
 }
 
@@ -246,7 +245,7 @@ link_callbacks_unattached_reloc (struct bfd_link_info *link_info,
 {
   warning (_("Compiled module \"%s\" section \"%s\": unattached "
 	     "relocation: %s\n"),
-	   bfd_get_filename (abfd), bfd_get_section_name (abfd, section),
+	   bfd_get_filename (abfd), bfd_section_name (section),
 	   name);
 }
 
@@ -324,11 +323,11 @@ copy_sections (bfd *abfd, asection *sect, void *data)
   struct bfd_link_order link_order;
   CORE_ADDR inferior_addr;
 
-  if ((bfd_get_section_flags (abfd, sect) & (SEC_ALLOC | SEC_LOAD))
+  if ((bfd_section_flags (sect) & (SEC_ALLOC | SEC_LOAD))
       != (SEC_ALLOC | SEC_LOAD))
     return;
 
-  if (bfd_get_section_size (sect) == 0)
+  if (bfd_section_size (sect) == 0)
     return;
 
   /* Mostly a copy of bfd_simple_get_relocated_section_contents which GDB
@@ -349,11 +348,11 @@ copy_sections (bfd *abfd, asection *sect, void *data)
   link_order.next = NULL;
   link_order.type = bfd_indirect_link_order;
   link_order.offset = 0;
-  link_order.size = bfd_get_section_size (sect);
+  link_order.size = bfd_section_size (sect);
   link_order.u.indirect.section = sect;
 
   gdb::unique_xmalloc_ptr<gdb_byte> sect_data
-    ((bfd_byte *) xmalloc (bfd_get_section_size (sect)));
+    ((bfd_byte *) xmalloc (bfd_section_size (sect)));
 
   sect_data_got = bfd_get_relocated_section_contents (abfd, &link_info,
 						      &link_order,
@@ -362,19 +361,19 @@ copy_sections (bfd *abfd, asection *sect, void *data)
 
   if (sect_data_got == NULL)
     error (_("Cannot map compiled module \"%s\" section \"%s\": %s"),
-	   bfd_get_filename (abfd), bfd_get_section_name (abfd, sect),
+	   bfd_get_filename (abfd), bfd_section_name (sect),
 	   bfd_errmsg (bfd_get_error ()));
   gdb_assert (sect_data_got == sect_data.get ());
 
-  inferior_addr = bfd_get_section_vma (abfd, sect);
+  inferior_addr = bfd_section_vma (sect);
   if (0 != target_write_memory (inferior_addr, sect_data.get (),
-				bfd_get_section_size (sect)))
+				bfd_section_size (sect)))
     error (_("Cannot write compiled module \"%s\" section \"%s\" "
 	     "to inferior memory range %s-%s."),
-	   bfd_get_filename (abfd), bfd_get_section_name (abfd, sect),
+	   bfd_get_filename (abfd), bfd_section_name (sect),
 	   paddress (target_gdbarch (), inferior_addr),
 	   paddress (target_gdbarch (),
-		     inferior_addr + bfd_get_section_size (sect)));
+		     inferior_addr + bfd_section_size (sect)));
 }
 
 /* Fetch the type of COMPILE_I_EXPR_PTR_TYPE and COMPILE_I_EXPR_VAL
diff --git a/gdb/corelow.c b/gdb/corelow.c
index 5e9634e9d7..b30b91b522 100644
--- a/gdb/corelow.c
+++ b/gdb/corelow.c
@@ -289,10 +289,10 @@ add_to_thread_list (bfd *abfd, asection *asect, void *reg_sect_arg)
   bool fake_pid_p = false;
   struct inferior *inf;
 
-  if (!startswith (bfd_section_name (abfd, asect), ".reg/"))
+  if (!startswith (bfd_section_name (asect), ".reg/"))
     return;
 
-  core_tid = atoi (bfd_section_name (abfd, asect) + 5);
+  core_tid = atoi (bfd_section_name (asect) + 5);
 
   pid = bfd_core_file_pid (core_bfd);
   if (pid == 0)
@@ -584,7 +584,7 @@ core_target::get_core_register_section (struct regcache *regcache,
       return;
     }
 
-  size = bfd_section_size (core_bfd, section);
+  size = bfd_section_size (section);
   if (size < section_min_size)
     {
       warning (_("Section `%s' in core file too small."),
@@ -614,8 +614,7 @@ core_target::get_core_register_section (struct regcache *regcache,
 
   gdb_assert (m_core_vec != nullptr);
   m_core_vec->core_read_registers (regcache, contents, size, which,
-				   ((CORE_ADDR)
-				    bfd_section_vma (core_bfd, section)));
+				   (CORE_ADDR) bfd_section_vma (section));
 }
 
 /* Data passed to gdbarch_iterate_over_regset_sections's callback.  */
@@ -727,7 +726,7 @@ add_to_spuid_list (bfd *abfd, asection *asect, void *list_p)
     = bfd_big_endian (abfd) ? BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
   int fd, pos = 0;
 
-  sscanf (bfd_section_name (abfd, asect), "SPU/%d/regs%n", &fd, &pos);
+  sscanf (bfd_section_name (asect), "SPU/%d/regs%n", &fd, &pos);
   if (pos == 0)
     return;
 
@@ -768,7 +767,7 @@ core_target::xfer_partial (enum target_object object, const char *annex,
 	  if (section == NULL)
 	    return TARGET_XFER_E_IO;
 
-	  size = bfd_section_size (core_bfd, section);
+	  size = bfd_section_size (section);
 	  if (offset >= size)
 	    return TARGET_XFER_EOF;
 	  size -= offset;
@@ -803,7 +802,7 @@ core_target::xfer_partial (enum target_object object, const char *annex,
 	  if (section == NULL)
 	    return TARGET_XFER_E_IO;
 
-	  size = bfd_section_size (core_bfd, section);
+	  size = bfd_section_size (section);
 	  if (offset >= size)
 	    return TARGET_XFER_EOF;
 	  size -= offset;
@@ -883,7 +882,7 @@ core_target::xfer_partial (enum target_object object, const char *annex,
 	  if (section == NULL)
 	    return TARGET_XFER_E_IO;
 
-	  size = bfd_section_size (core_bfd, section);
+	  size = bfd_section_size (section);
 	  if (offset >= size)
 	    return TARGET_XFER_EOF;
 	  size -= offset;
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index dc0b2c727b..564c5d3a41 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -207,10 +207,10 @@ find_text_range (bfd * sym_bfd, struct objfile *objfile)
   CORE_ADDR end = 0;
 
   for (sec = sym_bfd->sections; sec; sec = sec->next)
-    if (bfd_get_section_flags (sym_bfd, sec) & SEC_CODE)
+    if (bfd_section_flags (sec) & SEC_CODE)
       {
-	CORE_ADDR sec_start = bfd_section_vma (sym_bfd, sec);
-	CORE_ADDR sec_end = sec_start + bfd_section_size (sym_bfd, sec);
+	CORE_ADDR sec_start = bfd_section_vma (sec);
+	CORE_ADDR sec_end = sec_start + bfd_section_size (sec);
 
 	if (found_any)
 	  {
@@ -607,8 +607,8 @@ dbx_symfile_init (struct objfile *objfile)
   text_sect = bfd_get_section_by_name (sym_bfd, ".text");
   if (!text_sect)
     error (_("Can't find .text section in symbol file"));
-  DBX_TEXT_ADDR (objfile) = bfd_section_vma (sym_bfd, text_sect);
-  DBX_TEXT_SIZE (objfile) = bfd_section_size (sym_bfd, text_sect);
+  DBX_TEXT_ADDR (objfile) = bfd_section_vma (text_sect);
+  DBX_TEXT_SIZE (objfile) = bfd_section_size (text_sect);
 
   DBX_SYMBOL_SIZE (objfile) = obj_symbol_entry_size (sym_bfd);
   DBX_SYMCOUNT (objfile) = bfd_get_symcount (sym_bfd);
@@ -781,7 +781,7 @@ fill_symbuf (bfd *sym_bfd)
 
 	  if (bfd_seek (sym_bfd, filepos, SEEK_SET) != 0)
 	    perror_with_name (bfd_get_filename (sym_bfd));
-	  symbuf_left = bfd_section_size (sym_bfd, (*symbuf_sections)[sect_idx]);
+	  symbuf_left = bfd_section_size ((*symbuf_sections)[sect_idx]);
 	  symbol_table_offset = filepos - symbuf_read;
 	  ++sect_idx;
 	}
@@ -2980,7 +2980,7 @@ coffstab_build_psymtabs (struct objfile *objfile,
     = make_scoped_restore (&symbuf_sections);
   if (stabsects.size () == 1)
     {
-      stabsize = bfd_section_size (sym_bfd, stabsects[0]);
+      stabsize = bfd_section_size (stabsects[0]);
       DBX_SYMCOUNT (objfile) = stabsize / DBX_SYMBOL_SIZE (objfile);
       DBX_SYMTAB_OFFSET (objfile) = stabsects[0]->filepos;
     }
@@ -2989,7 +2989,7 @@ coffstab_build_psymtabs (struct objfile *objfile,
       DBX_SYMCOUNT (objfile) = 0;
       for (asection *section : stabsects)
 	{
-	  stabsize = bfd_section_size (sym_bfd, section);
+	  stabsize = bfd_section_size (section);
 	  DBX_SYMCOUNT (objfile) += stabsize / DBX_SYMBOL_SIZE (objfile);
 	}
 
@@ -2997,7 +2997,7 @@ coffstab_build_psymtabs (struct objfile *objfile,
 
       sect_idx = 1;
       symbuf_sections = &stabsects;
-      symbuf_left = bfd_section_size (sym_bfd, stabsects[0]);
+      symbuf_left = bfd_section_size (stabsects[0]);
       symbuf_read = 0;
     }
 
@@ -3040,7 +3040,7 @@ elfstab_build_psymtabs (struct objfile *objfile, asection *stabsect,
 #define	ELF_STABS_SYMBOL_SIZE	12	/* XXX FIXME XXX */
   DBX_SYMBOL_SIZE (objfile) = ELF_STABS_SYMBOL_SIZE;
   DBX_SYMCOUNT (objfile)
-    = bfd_section_size (objfile->obfd, stabsect) / DBX_SYMBOL_SIZE (objfile);
+    = bfd_section_size (stabsect) / DBX_SYMBOL_SIZE (objfile);
   DBX_STRINGTAB_SIZE (objfile) = stabstrsize;
   DBX_SYMTAB_OFFSET (objfile) = stabsect->filepos;
   DBX_STAB_SECTION (objfile) = stabsect;
@@ -3067,7 +3067,7 @@ elfstab_build_psymtabs (struct objfile *objfile, asection *stabsect,
   processing_acc_compilation = 1;
 
   symbuf_read = 0;
-  symbuf_left = bfd_section_size (objfile->obfd, stabsect);
+  symbuf_left = bfd_section_size (stabsect);
 
   scoped_restore restore_stabs_data = make_scoped_restore (&stabs_data);
   gdb::unique_xmalloc_ptr<gdb_byte> data_holder;
@@ -3128,13 +3128,13 @@ stabsect_build_psymtabs (struct objfile *objfile, char *stab_name,
   text_sect = bfd_get_section_by_name (sym_bfd, text_name);
   if (!text_sect)
     error (_("Can't find %s section in symbol file"), text_name);
-  DBX_TEXT_ADDR (objfile) = bfd_section_vma (sym_bfd, text_sect);
-  DBX_TEXT_SIZE (objfile) = bfd_section_size (sym_bfd, text_sect);
+  DBX_TEXT_ADDR (objfile) = bfd_section_vma (text_sect);
+  DBX_TEXT_SIZE (objfile) = bfd_section_size (text_sect);
 
   DBX_SYMBOL_SIZE (objfile) = sizeof (struct external_nlist);
-  DBX_SYMCOUNT (objfile) = bfd_section_size (sym_bfd, stabsect)
+  DBX_SYMCOUNT (objfile) = bfd_section_size (stabsect)
     / DBX_SYMBOL_SIZE (objfile);
-  DBX_STRINGTAB_SIZE (objfile) = bfd_section_size (sym_bfd, stabstrsect);
+  DBX_STRINGTAB_SIZE (objfile) = bfd_section_size (stabstrsect);
   DBX_SYMTAB_OFFSET (objfile) = stabsect->filepos;	/* XXX - FIXME: POKING
 							   INSIDE BFD DATA
 							   STRUCTURES */
diff --git a/gdb/dicos-tdep.c b/gdb/dicos-tdep.c
index 954428a110..3ef9114b10 100644
--- a/gdb/dicos-tdep.c
+++ b/gdb/dicos-tdep.c
@@ -70,7 +70,7 @@ dicos_load_module_p (bfd *abfd, int header_size)
   if (!section)
     return 0;
 
-  if (bfd_section_size (abfd, section) != header_size)
+  if (bfd_section_size (section) != header_size)
     return 0;
 
   /* Dicos LMs always have a "Dicos_loadModuleInfo" symbol
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c
index e18b35e7db..34b8cbcb76 100644
--- a/gdb/dwarf2-frame.c
+++ b/gdb/dwarf2-frame.c
@@ -1565,7 +1565,7 @@ read_encoded_value (struct comp_unit *unit, gdb_byte encoding,
       base = 0;
       break;
     case DW_EH_PE_pcrel:
-      base = bfd_get_section_vma (unit->abfd, unit->dwarf_frame_section);
+      base = bfd_section_vma (unit->dwarf_frame_section);
       base += (buf - unit->dwarf_frame_buffer);
       break;
     case DW_EH_PE_datarel:
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index ea9904c416..5e71ded203 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -2280,7 +2280,7 @@ get_section_name (const struct dwarf2_section_info *section)
   asection *sectp = get_section_bfd_section (section);
 
   gdb_assert (sectp != NULL);
-  return bfd_section_name (get_section_bfd_owner (section), sectp);
+  return bfd_section_name (sectp);
 }
 
 /* Return the name of the file SECTION is in.  */
@@ -2315,7 +2315,7 @@ get_section_flags (const struct dwarf2_section_info *section)
   asection *sectp = get_section_bfd_section (section);
 
   gdb_assert (sectp != NULL);
-  return bfd_get_section_flags (sectp->owner, sectp);
+  return bfd_section_flags (sectp);
 }
 
 /* When loading sections, we look either for uncompressed section or for
@@ -2340,7 +2340,7 @@ void
 dwarf2_per_objfile::locate_sections (bfd *abfd, asection *sectp,
 				     const dwarf2_debug_sections &names)
 {
-  flagword aflag = bfd_get_section_flags (abfd, sectp);
+  flagword aflag = bfd_section_flags (sectp);
 
   if ((aflag & SEC_HAS_CONTENTS) == 0)
     {
@@ -2348,72 +2348,72 @@ dwarf2_per_objfile::locate_sections (bfd *abfd, asection *sectp,
   else if (section_is_p (sectp->name, &names.info))
     {
       this->info.s.section = sectp;
-      this->info.size = bfd_get_section_size (sectp);
+      this->info.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.abbrev))
     {
       this->abbrev.s.section = sectp;
-      this->abbrev.size = bfd_get_section_size (sectp);
+      this->abbrev.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.line))
     {
       this->line.s.section = sectp;
-      this->line.size = bfd_get_section_size (sectp);
+      this->line.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.loc))
     {
       this->loc.s.section = sectp;
-      this->loc.size = bfd_get_section_size (sectp);
+      this->loc.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.loclists))
     {
       this->loclists.s.section = sectp;
-      this->loclists.size = bfd_get_section_size (sectp);
+      this->loclists.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.macinfo))
     {
       this->macinfo.s.section = sectp;
-      this->macinfo.size = bfd_get_section_size (sectp);
+      this->macinfo.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.macro))
     {
       this->macro.s.section = sectp;
-      this->macro.size = bfd_get_section_size (sectp);
+      this->macro.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.str))
     {
       this->str.s.section = sectp;
-      this->str.size = bfd_get_section_size (sectp);
+      this->str.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.line_str))
     {
       this->line_str.s.section = sectp;
-      this->line_str.size = bfd_get_section_size (sectp);
+      this->line_str.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.addr))
     {
       this->addr.s.section = sectp;
-      this->addr.size = bfd_get_section_size (sectp);
+      this->addr.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.frame))
     {
       this->frame.s.section = sectp;
-      this->frame.size = bfd_get_section_size (sectp);
+      this->frame.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.eh_frame))
     {
       this->eh_frame.s.section = sectp;
-      this->eh_frame.size = bfd_get_section_size (sectp);
+      this->eh_frame.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.ranges))
     {
       this->ranges.s.section = sectp;
-      this->ranges.size = bfd_get_section_size (sectp);
+      this->ranges.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.rnglists))
     {
       this->rnglists.s.section = sectp;
-      this->rnglists.size = bfd_get_section_size (sectp);
+      this->rnglists.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.types))
     {
@@ -2421,28 +2421,28 @@ dwarf2_per_objfile::locate_sections (bfd *abfd, asection *sectp,
 
       memset (&type_section, 0, sizeof (type_section));
       type_section.s.section = sectp;
-      type_section.size = bfd_get_section_size (sectp);
+      type_section.size = bfd_section_size (sectp);
 
       this->types.push_back (type_section);
     }
   else if (section_is_p (sectp->name, &names.gdb_index))
     {
       this->gdb_index.s.section = sectp;
-      this->gdb_index.size = bfd_get_section_size (sectp);
+      this->gdb_index.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.debug_names))
     {
       this->debug_names.s.section = sectp;
-      this->debug_names.size = bfd_get_section_size (sectp);
+      this->debug_names.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names.debug_aranges))
     {
       this->debug_aranges.s.section = sectp;
-      this->debug_aranges.size = bfd_get_section_size (sectp);
+      this->debug_aranges.size = bfd_section_size (sectp);
     }
 
-  if ((bfd_get_section_flags (abfd, sectp) & (SEC_LOAD | SEC_ALLOC))
-      && bfd_section_vma (abfd, sectp) == 0)
+  if ((bfd_section_flags (sectp) & (SEC_LOAD | SEC_ALLOC))
+      && bfd_section_vma (sectp) == 0)
     this->has_section_at_zero = true;
 }
 
@@ -2531,7 +2531,7 @@ dwarf2_read_section (struct objfile *objfile, dwarf2_section_info *info)
     {
       error (_("Dwarf Error: Can't read DWARF data"
 	       " in section %s [in module %s]"),
-	     bfd_section_name (abfd, sectp), bfd_get_filename (abfd));
+	     bfd_section_name (sectp), bfd_get_filename (abfd));
     }
 }
 
@@ -2603,37 +2603,37 @@ locate_dwz_sections (bfd *abfd, asection *sectp, void *arg)
   if (section_is_p (sectp->name, &dwarf2_elf_names.abbrev))
     {
       dwz_file->abbrev.s.section = sectp;
-      dwz_file->abbrev.size = bfd_get_section_size (sectp);
+      dwz_file->abbrev.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &dwarf2_elf_names.info))
     {
       dwz_file->info.s.section = sectp;
-      dwz_file->info.size = bfd_get_section_size (sectp);
+      dwz_file->info.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &dwarf2_elf_names.str))
     {
       dwz_file->str.s.section = sectp;
-      dwz_file->str.size = bfd_get_section_size (sectp);
+      dwz_file->str.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &dwarf2_elf_names.line))
     {
       dwz_file->line.s.section = sectp;
-      dwz_file->line.size = bfd_get_section_size (sectp);
+      dwz_file->line.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &dwarf2_elf_names.macro))
     {
       dwz_file->macro.s.section = sectp;
-      dwz_file->macro.size = bfd_get_section_size (sectp);
+      dwz_file->macro.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &dwarf2_elf_names.gdb_index))
     {
       dwz_file->gdb_index.s.section = sectp;
-      dwz_file->gdb_index.size = bfd_get_section_size (sectp);
+      dwz_file->gdb_index.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &dwarf2_elf_names.debug_names))
     {
       dwz_file->debug_names.s.section = sectp;
-      dwz_file->debug_names.size = bfd_get_section_size (sectp);
+      dwz_file->debug_names.size = bfd_section_size (sectp);
     }
 }
 
@@ -12311,7 +12311,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
       if (sections->abbrev.s.section != NULL)
 	return 0;
       sections->abbrev.s.section = sectp;
-      sections->abbrev.size = bfd_get_section_size (sectp);
+      sections->abbrev.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->info_dwo)
 	   || section_is_p (sectp->name, &names->types_dwo))
@@ -12320,7 +12320,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
       if (sections->info_or_types.s.section != NULL)
 	return 0;
       sections->info_or_types.s.section = sectp;
-      sections->info_or_types.size = bfd_get_section_size (sectp);
+      sections->info_or_types.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->line_dwo))
     {
@@ -12328,7 +12328,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
       if (sections->line.s.section != NULL)
 	return 0;
       sections->line.s.section = sectp;
-      sections->line.size = bfd_get_section_size (sectp);
+      sections->line.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->loc_dwo))
     {
@@ -12336,7 +12336,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
       if (sections->loc.s.section != NULL)
 	return 0;
       sections->loc.s.section = sectp;
-      sections->loc.size = bfd_get_section_size (sectp);
+      sections->loc.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->macinfo_dwo))
     {
@@ -12344,7 +12344,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
       if (sections->macinfo.s.section != NULL)
 	return 0;
       sections->macinfo.s.section = sectp;
-      sections->macinfo.size = bfd_get_section_size (sectp);
+      sections->macinfo.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->macro_dwo))
     {
@@ -12352,7 +12352,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
       if (sections->macro.s.section != NULL)
 	return 0;
       sections->macro.s.section = sectp;
-      sections->macro.size = bfd_get_section_size (sectp);
+      sections->macro.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->str_offsets_dwo))
     {
@@ -12360,7 +12360,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
       if (sections->str_offsets.s.section != NULL)
 	return 0;
       sections->str_offsets.s.section = sectp;
-      sections->str_offsets.size = bfd_get_section_size (sectp);
+      sections->str_offsets.size = bfd_section_size (sectp);
     }
   else
     {
@@ -12558,11 +12558,11 @@ create_dwp_v2_section (struct dwarf2_per_objfile *dwarf2_per_objfile,
      bounds of the real section.  This is a pretty-rare event, so just
      flag an error (easier) instead of a warning and trying to cope.  */
   if (sectp == NULL
-      || offset + size > bfd_get_section_size (sectp))
+      || offset + size > bfd_section_size (sectp))
     {
       error (_("Dwarf Error: Bad DWP V2 section info, doesn't fit"
 	       " in section %s [in module %s]"),
-	     sectp ? bfd_section_name (abfd, sectp) : "<unknown>",
+	     sectp ? bfd_section_name (sectp) : "<unknown>",
 	     objfile_name (dwarf2_per_objfile->objfile));
     }
 
@@ -12933,42 +12933,42 @@ dwarf2_locate_dwo_sections (bfd *abfd, asection *sectp, void *dwo_sections_ptr)
   if (section_is_p (sectp->name, &names->abbrev_dwo))
     {
       dwo_sections->abbrev.s.section = sectp;
-      dwo_sections->abbrev.size = bfd_get_section_size (sectp);
+      dwo_sections->abbrev.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->info_dwo))
     {
       dwo_sections->info.s.section = sectp;
-      dwo_sections->info.size = bfd_get_section_size (sectp);
+      dwo_sections->info.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->line_dwo))
     {
       dwo_sections->line.s.section = sectp;
-      dwo_sections->line.size = bfd_get_section_size (sectp);
+      dwo_sections->line.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->loc_dwo))
     {
       dwo_sections->loc.s.section = sectp;
-      dwo_sections->loc.size = bfd_get_section_size (sectp);
+      dwo_sections->loc.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->macinfo_dwo))
     {
       dwo_sections->macinfo.s.section = sectp;
-      dwo_sections->macinfo.size = bfd_get_section_size (sectp);
+      dwo_sections->macinfo.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->macro_dwo))
     {
       dwo_sections->macro.s.section = sectp;
-      dwo_sections->macro.size = bfd_get_section_size (sectp);
+      dwo_sections->macro.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->str_dwo))
     {
       dwo_sections->str.s.section = sectp;
-      dwo_sections->str.size = bfd_get_section_size (sectp);
+      dwo_sections->str.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->str_offsets_dwo))
     {
       dwo_sections->str_offsets.s.section = sectp;
-      dwo_sections->str_offsets.size = bfd_get_section_size (sectp);
+      dwo_sections->str_offsets.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->types_dwo))
     {
@@ -12976,7 +12976,7 @@ dwarf2_locate_dwo_sections (bfd *abfd, asection *sectp, void *dwo_sections_ptr)
 
       memset (&type_section, 0, sizeof (type_section));
       type_section.s.section = sectp;
-      type_section.size = bfd_get_section_size (sectp);
+      type_section.size = bfd_section_size (sectp);
       dwo_sections->types.push_back (type_section);
     }
 }
@@ -13040,17 +13040,17 @@ dwarf2_locate_common_dwp_sections (bfd *abfd, asection *sectp,
   if (section_is_p (sectp->name, &names->str_dwo))
     {
       dwp_file->sections.str.s.section = sectp;
-      dwp_file->sections.str.size = bfd_get_section_size (sectp);
+      dwp_file->sections.str.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->cu_index))
     {
       dwp_file->sections.cu_index.s.section = sectp;
-      dwp_file->sections.cu_index.size = bfd_get_section_size (sectp);
+      dwp_file->sections.cu_index.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->tu_index))
     {
       dwp_file->sections.tu_index.s.section = sectp;
-      dwp_file->sections.tu_index.size = bfd_get_section_size (sectp);
+      dwp_file->sections.tu_index.size = bfd_section_size (sectp);
     }
 }
 
@@ -13075,42 +13075,42 @@ dwarf2_locate_v2_dwp_sections (bfd *abfd, asection *sectp, void *dwp_file_ptr)
   if (section_is_p (sectp->name, &names->abbrev_dwo))
     {
       dwp_file->sections.abbrev.s.section = sectp;
-      dwp_file->sections.abbrev.size = bfd_get_section_size (sectp);
+      dwp_file->sections.abbrev.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->info_dwo))
     {
       dwp_file->sections.info.s.section = sectp;
-      dwp_file->sections.info.size = bfd_get_section_size (sectp);
+      dwp_file->sections.info.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->line_dwo))
     {
       dwp_file->sections.line.s.section = sectp;
-      dwp_file->sections.line.size = bfd_get_section_size (sectp);
+      dwp_file->sections.line.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->loc_dwo))
     {
       dwp_file->sections.loc.s.section = sectp;
-      dwp_file->sections.loc.size = bfd_get_section_size (sectp);
+      dwp_file->sections.loc.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->macinfo_dwo))
     {
       dwp_file->sections.macinfo.s.section = sectp;
-      dwp_file->sections.macinfo.size = bfd_get_section_size (sectp);
+      dwp_file->sections.macinfo.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->macro_dwo))
     {
       dwp_file->sections.macro.s.section = sectp;
-      dwp_file->sections.macro.size = bfd_get_section_size (sectp);
+      dwp_file->sections.macro.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->str_offsets_dwo))
     {
       dwp_file->sections.str_offsets.s.section = sectp;
-      dwp_file->sections.str_offsets.size = bfd_get_section_size (sectp);
+      dwp_file->sections.str_offsets.size = bfd_section_size (sectp);
     }
   else if (section_is_p (sectp->name, &names->types_dwo))
     {
       dwp_file->sections.types.s.section = sectp;
-      dwp_file->sections.types.size = bfd_get_section_size (sectp);
+      dwp_file->sections.types.size = bfd_section_size (sectp);
     }
 }
 
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 630550b80d..901710f283 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -125,7 +125,7 @@ elf_symfile_segments (bfd *abfd)
     {
       int j;
 
-      if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+      if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
 	continue;
 
       Elf_Internal_Shdr *this_hdr = &elf_section_data (sect)->this_hdr;
@@ -146,10 +146,10 @@ elf_symfile_segments (bfd *abfd)
 	 RealView) use SHT_NOBITS for uninitialized data.  Since it is
 	 uninitialized, it doesn't need a program header.  Such
 	 binaries are not relocatable.  */
-      if (bfd_get_section_size (sect) > 0 && j == num_segments
-	  && (bfd_get_section_flags (abfd, sect) & SEC_LOAD) != 0)
+      if (bfd_section_size (sect) > 0 && j == num_segments
+	  && (bfd_section_flags (sect) & SEC_LOAD) != 0)
 	warning (_("Loadable section \"%s\" outside of ELF segments"),
-		 bfd_section_name (abfd, sect));
+		 bfd_section_name (sect));
     }
 
   return data;
@@ -289,12 +289,12 @@ elf_symtab_read (minimal_symbol_reader &reader,
 	     covers the stub's address.  */
 	  for (sect = abfd->sections; sect != NULL; sect = sect->next)
 	    {
-	      if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+	      if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
 		continue;
 
-	      if (symaddr >= bfd_get_section_vma (abfd, sect)
-		  && symaddr < bfd_get_section_vma (abfd, sect)
-			       + bfd_get_section_size (sect))
+	      if (symaddr >= bfd_section_vma (sect)
+		  && symaddr < bfd_section_vma (sect)
+			       + bfd_section_size (sect))
 		break;
 	    }
 	  if (!sect)
@@ -591,9 +591,9 @@ elf_rel_plt_read (minimal_symbol_reader &reader,
       if (section == NULL)
 	return false;
 
-      return (bfd_get_section_vma (obfd, section) <= address
-	      && (address < bfd_get_section_vma (obfd, section)
-		  + bfd_get_section_size (section)));
+      return (bfd_section_vma (section) <= address
+	      && (address < bfd_section_vma (section)
+		  + bfd_section_size (section)));
     };
 
   reloc_count = relplt->size / elf_section_data (relplt)->this_hdr.sh_entsize;
@@ -1236,7 +1236,7 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
 	elfstab_build_psymtabs (objfile,
 				ei.stabsect,
 				str_sect->filepos,
-				bfd_section_size (abfd, str_sect));
+				bfd_section_size (str_sect));
     }
 
   if (dwarf2_has_info (objfile, NULL))
diff --git a/gdb/exec.c b/gdb/exec.c
index 4e4cacffda..6bdf9abb3e 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -454,14 +454,14 @@ add_to_section_table (bfd *abfd, struct bfd_section *asect,
      encountered on sparc-solaris 2.10 a shared library with an empty .bss
      section to which a symbol named "_end" was attached.  The address
      of this symbol still needs to be relocated.  */
-  aflag = bfd_get_section_flags (abfd, asect);
+  aflag = bfd_section_flags (asect);
   if (!(aflag & SEC_ALLOC))
     return;
 
   (*table_pp)->owner = NULL;
   (*table_pp)->the_bfd_section = asect;
-  (*table_pp)->addr = bfd_section_vma (abfd, asect);
-  (*table_pp)->endaddr = (*table_pp)->addr + bfd_section_size (abfd, asect);
+  (*table_pp)->addr = bfd_section_vma (asect);
+  (*table_pp)->endaddr = (*table_pp)->addr + bfd_section_size (asect);
   (*table_pp)++;
 }
 
@@ -571,7 +571,7 @@ add_target_sections_of_objfile (struct objfile *objfile)
   /* Compute the number of sections to add.  */
   ALL_OBJFILE_OSECTIONS (objfile, osect)
     {
-      if (bfd_get_section_size (osect->the_bfd_section) == 0)
+      if (bfd_section_size (osect->the_bfd_section) == 0)
 	continue;
       count++;
     }
@@ -585,7 +585,7 @@ add_target_sections_of_objfile (struct objfile *objfile)
 
   ALL_OBJFILE_OSECTIONS (objfile, osect)
     {
-      if (bfd_get_section_size (osect->the_bfd_section) == 0)
+      if (bfd_section_size (osect->the_bfd_section) == 0)
 	continue;
 
       gdb_assert (ts < table->sections + space + count);
@@ -665,7 +665,7 @@ exec_read_partial_read_only (gdb_byte *readbuf, ULONGEST offset,
 	    continue;
 
 	  vma = s->vma;
-	  size = bfd_get_section_size (s);
+	  size = bfd_section_size (s);
 	  if (vma <= offset && offset < (vma + size))
 	    {
 	      ULONGEST amt;
@@ -705,9 +705,7 @@ section_table_available_memory (CORE_ADDR memaddr, ULONGEST len,
 
   for (target_section *p = sections; p < sections_end; p++)
     {
-      if ((bfd_get_section_flags (p->the_bfd_section->owner,
-				  p->the_bfd_section)
-	   & SEC_READONLY) == 0)
+      if ((bfd_section_flags (p->the_bfd_section) & SEC_READONLY) == 0)
 	continue;
 
       /* Copy the meta-data, adjusted.  */
@@ -894,17 +892,16 @@ print_section_info (struct target_section_table *t, bfd *abfd)
       for (p = t->sections; p < t->sections_end; p++)
 	{
 	  struct bfd_section *psect = p->the_bfd_section;
-	  bfd *pbfd = psect->owner;
 
-	  if ((bfd_get_section_flags (pbfd, psect) & (SEC_ALLOC | SEC_LOAD))
+	  if ((bfd_section_flags (psect) & (SEC_ALLOC | SEC_LOAD))
 	      != (SEC_ALLOC | SEC_LOAD))
 	    continue;
 
-	  if (bfd_get_section_vma (pbfd, psect) <= abfd->start_address
-	      && abfd->start_address < (bfd_get_section_vma (pbfd, psect)
-					+ bfd_get_section_size (psect)))
+	  if (bfd_section_vma (psect) <= abfd->start_address
+	      && abfd->start_address < (bfd_section_vma (psect)
+					+ bfd_section_size (psect)))
 	    {
-	      displacement = p->addr - bfd_get_section_vma (pbfd, psect);
+	      displacement = p->addr - bfd_section_vma (psect);
 	      break;
 	    }
 	}
@@ -935,7 +932,7 @@ print_section_info (struct target_section_table *t, bfd *abfd)
       if (info_verbose)
 	printf_filtered (" @ %s",
 			 hex_string_custom (psect->filepos, 8));
-      printf_filtered (" is %s", bfd_section_name (pbfd, psect));
+      printf_filtered (" is %s", bfd_section_name (psect));
       if (pbfd != abfd)
 	printf_filtered (" in %s", bfd_get_filename (pbfd));
       printf_filtered ("\n");
@@ -975,9 +972,8 @@ set_section_command (const char *args, int from_tty)
   table = current_target_sections;
   for (p = table->sections; p < table->sections_end; p++)
     {
-      if (!strncmp (secname, bfd_section_name (p->bfd,
-					       p->the_bfd_section), seclen)
-	  && bfd_section_name (p->bfd, p->the_bfd_section)[seclen] == '\0')
+      if (!strncmp (secname, bfd_section_name (p->the_bfd_section), seclen)
+	  && bfd_section_name (p->the_bfd_section)[seclen] == '\0')
 	{
 	  offset = secaddr - p->addr;
 	  p->addr += offset;
diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c
index e81c6c99bf..9422e3c1a7 100644
--- a/gdb/fbsd-tdep.c
+++ b/gdb/fbsd-tdep.c
@@ -502,10 +502,10 @@ fbsd_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr)
       thread_section_name section_name (".thrmisc", thr->ptid);
 
       section = bfd_get_section_by_name (core_bfd, section_name.c_str ());
-      if (section != NULL && bfd_section_size (core_bfd, section) > 0)
+      if (section != NULL && bfd_section_size (section) > 0)
 	{
 	  /* Truncate the name if it is longer than "buf".  */
-	  size = bfd_section_size (core_bfd, section);
+	  size = bfd_section_size (section);
 	  if (size > sizeof buf - 1)
 	    size = sizeof buf - 1;
 	  if (bfd_get_section_contents (core_bfd, section, buf, (file_ptr) 0,
@@ -1058,7 +1058,7 @@ fbsd_core_info_proc_files (struct gdbarch *gdbarch)
       return;
     }
 
-  size_t note_size = bfd_get_section_size (section);
+  size_t note_size = bfd_section_size (section);
   if (note_size < 4)
     error (_("malformed core note - too short for header"));
 
@@ -1191,7 +1191,7 @@ fbsd_core_info_proc_mappings (struct gdbarch *gdbarch)
       return;
     }
 
-  note_size = bfd_get_section_size (section);
+  note_size = bfd_section_size (section);
   if (note_size < 4)
     error (_("malformed core note - too short for header"));
 
@@ -1239,7 +1239,7 @@ fbsd_core_vnode_path (struct gdbarch *gdbarch, int fd)
   if (section == NULL)
     return nullptr;
 
-  note_size = bfd_get_section_size (section);
+  note_size = bfd_section_size (section);
   if (note_size < 4)
     error (_("malformed core note - too short for header"));
 
@@ -1344,7 +1344,7 @@ fbsd_core_info_proc_status (struct gdbarch *gdbarch)
    * structure size, then it must be long enough to access the last
    * field used (ki_rusage_ch.ru_majflt) which is the size of a long.
    */
-  note_size = bfd_get_section_size (section);
+  note_size = bfd_section_size (section);
   if (note_size < (4 + kp->ki_rusage_ch + kp->ru_majflt
 		   + long_bit / TARGET_CHAR_BIT))
     error (_("malformed core note - too short"));
diff --git a/gdb/gcore.c b/gdb/gcore.c
index eb108feb79..f283ed4580 100644
--- a/gdb/gcore.c
+++ b/gdb/gcore.c
@@ -95,9 +95,9 @@ write_gcore_file_1 (bfd *obfd)
     error (_("Failed to create 'note' section for corefile: %s"),
 	   bfd_errmsg (bfd_get_error ()));
 
-  bfd_set_section_vma (obfd, note_sec, 0);
-  bfd_set_section_alignment (obfd, note_sec, 0);
-  bfd_set_section_size (obfd, note_sec, note_size);
+  bfd_set_section_vma (note_sec, 0);
+  bfd_set_section_alignment (note_sec, 0);
+  bfd_set_section_size (note_sec, note_size);
 
   /* Now create the memory/load sections.  */
   if (gcore_memory_sections (obfd) == 0)
@@ -332,11 +332,11 @@ derive_heap_segment (bfd *abfd, bfd_vma *bottom, bfd_vma *top)
 
   for (sec = abfd->sections; sec; sec = sec->next)
     {
-      if (bfd_get_section_flags (abfd, sec) & SEC_DATA
-	  || strcmp (".bss", bfd_section_name (abfd, sec)) == 0)
+      if (bfd_section_flags (sec) & SEC_DATA
+	  || strcmp (".bss", bfd_section_name (sec)) == 0)
 	{
-	  sec_vaddr = bfd_get_section_vma (abfd, sec);
-	  sec_size = bfd_get_section_size (sec);
+	  sec_vaddr = bfd_section_vma (sec);
+	  sec_size = bfd_section_size (sec);
 	  if (sec_vaddr + sec_size > top_of_data_memory)
 	    top_of_data_memory = sec_vaddr + sec_size;
 	}
@@ -365,17 +365,17 @@ make_output_phdrs (bfd *obfd, asection *osec, void *ignored)
   int p_type = 0;
 
   /* FIXME: these constants may only be applicable for ELF.  */
-  if (startswith (bfd_section_name (obfd, osec), "load"))
+  if (startswith (bfd_section_name (osec), "load"))
     p_type = PT_LOAD;
-  else if (startswith (bfd_section_name (obfd, osec), "note"))
+  else if (startswith (bfd_section_name (osec), "note"))
     p_type = PT_NOTE;
   else
     p_type = PT_NULL;
 
   p_flags |= PF_R;	/* Segment is readable.  */
-  if (!(bfd_get_section_flags (obfd, osec) & SEC_READONLY))
+  if (!(bfd_section_flags (osec) & SEC_READONLY))
     p_flags |= PF_W;	/* Segment is writable.  */
-  if (bfd_get_section_flags (obfd, osec) & SEC_CODE)
+  if (bfd_section_flags (osec) & SEC_CODE)
     p_flags |= PF_X;	/* Segment is executable.  */
 
   bfd_record_phdr (obfd, p_type, 1, p_flags, 0, 0, 0, 0, 1, &osec);
@@ -417,8 +417,7 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size, int read,
 	  {
 	    bfd *abfd = objfile->obfd;
 	    asection *asec = objsec->the_bfd_section;
-	    bfd_vma align = (bfd_vma) 1 << bfd_get_section_alignment (abfd,
-								      asec);
+	    bfd_vma align = (bfd_vma) 1 << bfd_section_alignment (asec);
 	    bfd_vma start = obj_section_addr (objsec) & -align;
 	    bfd_vma end = (obj_section_endaddr (objsec) + align - 1) & -align;
 
@@ -464,9 +463,9 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size, int read,
 			plongest (size), paddress (target_gdbarch (), vaddr));
     }
 
-  bfd_set_section_size (obfd, osec, size);
-  bfd_set_section_vma (obfd, osec, vaddr);
-  bfd_section_lma (obfd, osec) = 0; /* ??? bfd_set_section_lma?  */
+  bfd_set_section_size (osec, size);
+  bfd_set_section_vma (osec, vaddr);
+  bfd_set_section_lma (osec, 0);
   return 0;
 }
 
@@ -482,9 +481,8 @@ objfile_find_memory_regions (struct target_ops *self,
   for (objfile *objfile : current_program_space->objfiles ())
     ALL_OBJFILE_OSECTIONS (objfile, objsec)
       {
-	bfd *ibfd = objfile->obfd;
 	asection *isec = objsec->the_bfd_section;
-	flagword flags = bfd_get_section_flags (ibfd, isec);
+	flagword flags = bfd_section_flags (isec);
 
 	/* Separate debug info files are irrelevant for gcore.  */
 	if (objfile->separate_debug_objfile_backlink != NULL)
@@ -492,7 +490,7 @@ objfile_find_memory_regions (struct target_ops *self,
 
 	if ((flags & SEC_ALLOC) || (flags & SEC_LOAD))
 	  {
-	    int size = bfd_section_size (ibfd, isec);
+	    int size = bfd_section_size (isec);
 	    int ret;
 
 	    ret = (*func) (obj_section_addr (objsec), size, 
@@ -530,15 +528,15 @@ objfile_find_memory_regions (struct target_ops *self,
 static void
 gcore_copy_callback (bfd *obfd, asection *osec, void *ignored)
 {
-  bfd_size_type size, total_size = bfd_section_size (obfd, osec);
+  bfd_size_type size, total_size = bfd_section_size (osec);
   file_ptr offset = 0;
 
   /* Read-only sections are marked; we don't have to copy their contents.  */
-  if ((bfd_get_section_flags (obfd, osec) & SEC_LOAD) == 0)
+  if ((bfd_section_flags (osec) & SEC_LOAD) == 0)
     return;
 
   /* Only interested in "load" sections.  */
-  if (!startswith (bfd_section_name (obfd, osec), "load"))
+  if (!startswith (bfd_section_name (osec), "load"))
     return;
 
   size = std::min (total_size, (bfd_size_type) MAX_COPY_BYTES);
@@ -549,13 +547,13 @@ gcore_copy_callback (bfd *obfd, asection *osec, void *ignored)
       if (size > total_size)
 	size = total_size;
 
-      if (target_read_memory (bfd_section_vma (obfd, osec) + offset,
+      if (target_read_memory (bfd_section_vma (osec) + offset,
 			      memhunk.data (), size) != 0)
 	{
 	  warning (_("Memory read failed for corefile "
 		     "section, %s bytes at %s."),
 		   plongest (size),
-		   paddress (target_gdbarch (), bfd_section_vma (obfd, osec)));
+		   paddress (target_gdbarch (), bfd_section_vma (osec)));
 	  break;
 	}
       if (!bfd_set_section_contents (obfd, osec, memhunk.data (),
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index a17460a8a0..8a67d5e97d 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -480,7 +480,7 @@ static void
 free_one_bfd_section (bfd *abfd, asection *sectp, void *ignore)
 {
   struct gdb_bfd_section_data *sect
-    = (struct gdb_bfd_section_data *) bfd_get_section_userdata (abfd, sectp);
+    = (struct gdb_bfd_section_data *) bfd_section_userdata (sectp);
 
   if (sect != NULL && sect->data != NULL)
     {
@@ -626,14 +626,13 @@ get_section_descriptor (asection *section)
 {
   struct gdb_bfd_section_data *result;
 
-  result = ((struct gdb_bfd_section_data *)
-	    bfd_get_section_userdata (section->owner, section));
+  result = (struct gdb_bfd_section_data *) bfd_section_userdata (section);
 
   if (result == NULL)
     {
       result = ((struct gdb_bfd_section_data *)
 		bfd_zalloc (section->owner, sizeof (*result)));
-      bfd_set_section_userdata (section->owner, section, result);
+      bfd_set_section_userdata (section, result);
     }
 
   return result;
@@ -671,9 +670,9 @@ gdb_bfd_map_section (asection *sectp, bfd_size_type *size)
       /* Only try to mmap sections which are large enough: we don't want
 	 to waste space due to fragmentation.  */
 
-      if (bfd_get_section_size (sectp) > 4 * pagesize)
+      if (bfd_section_size (sectp) > 4 * pagesize)
 	{
-	  descriptor->size = bfd_get_section_size (sectp);
+	  descriptor->size = bfd_section_size (sectp);
 	  descriptor->data = bfd_mmap (abfd, 0, descriptor->size, PROT_READ,
 				       MAP_PRIVATE, sectp->filepos,
 				       &descriptor->map_addr,
@@ -697,14 +696,14 @@ gdb_bfd_map_section (asection *sectp, bfd_size_type *size)
   /* Handle compressed sections, or ordinary uncompressed sections in
      the no-mmap case.  */
 
-  descriptor->size = bfd_get_section_size (sectp);
+  descriptor->size = bfd_section_size (sectp);
   descriptor->data = NULL;
 
   data = NULL;
   if (!bfd_get_full_section_contents (abfd, sectp, &data))
     {
       warning (_("Can't read data for section '%s' in file '%s'"),
-	       bfd_get_section_name (abfd, sectp),
+	       bfd_section_name (sectp),
 	       bfd_get_filename (abfd));
       /* Set size to 0 to prevent further attempts to read the invalid
 	 section.  */
diff --git a/gdb/gdb_bfd.h b/gdb/gdb_bfd.h
index aa67fc0a14..674880d07f 100644
--- a/gdb/gdb_bfd.h
+++ b/gdb/gdb_bfd.h
@@ -106,7 +106,7 @@ void gdb_bfd_record_inclusion (bfd *includer, bfd *includee);
 
 /* Try to read or map the contents of the section SECT.  If successful, the
    section data is returned and *SIZE is set to the size of the section data;
-   this may not be the same as the size according to bfd_get_section_size if the
+   this may not be the same as the size according to bfd_section_size if the
    section was compressed.  The returned section data is associated with the BFD
    and will be destroyed when the BFD is destroyed.  There is no other way to
    free it; for temporary uses of section data, see bfd_malloc_and_get_section.
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index b1f71883ec..249d5c91bd 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -380,7 +380,7 @@ read_unwind_info (struct objfile *objfile)
       if (strcmp (unwind_sec->name, "$UNWIND_START$") == 0
 	  || strcmp (unwind_sec->name, ".PARISC.unwind") == 0)
 	{
-	  unwind_size = bfd_section_size (objfile->obfd, unwind_sec);
+	  unwind_size = bfd_section_size (unwind_sec);
 	  unwind_entries = unwind_size / UNWIND_ENTRY_SIZE;
 
 	  total_entries += unwind_entries;
@@ -393,7 +393,7 @@ read_unwind_info (struct objfile *objfile)
 
   if (stub_unwind_sec)
     {
-      stub_unwind_size = bfd_section_size (objfile->obfd, stub_unwind_sec);
+      stub_unwind_size = bfd_section_size (stub_unwind_sec);
       stub_entries = stub_unwind_size / STUB_UNWIND_ENTRY_SIZE;
     }
   else
@@ -421,7 +421,7 @@ read_unwind_info (struct objfile *objfile)
       if (strcmp (unwind_sec->name, "$UNWIND_START$") == 0
 	  || strcmp (unwind_sec->name, ".PARISC.unwind") == 0)
 	{
-	  unwind_size = bfd_section_size (objfile->obfd, unwind_sec);
+	  unwind_size = bfd_section_size (unwind_sec);
 	  unwind_entries = unwind_size / UNWIND_ENTRY_SIZE;
 
 	  internalize_unwinds (objfile, &ui->table[index], unwind_sec,
diff --git a/gdb/i386-cygwin-tdep.c b/gdb/i386-cygwin-tdep.c
index 0e3ba82b76..25c3cfcbb9 100644
--- a/gdb/i386-cygwin-tdep.c
+++ b/gdb/i386-cygwin-tdep.c
@@ -110,14 +110,14 @@ core_process_module_section (bfd *abfd, asection *sect, void *obj)
   if (!startswith (sect->name, ".module"))
     return;
 
-  buf = (gdb_byte *) xmalloc (bfd_get_section_size (sect) + 1);
+  buf = (gdb_byte *) xmalloc (bfd_section_size (sect) + 1);
   if (!buf)
     {
       printf_unfiltered ("memory allocation failed for %s\n", sect->name);
       goto out;
     }
   if (!bfd_get_section_contents (abfd, sect,
-				 buf, 0, bfd_get_section_size (sect)))
+				 buf, 0, bfd_section_size (sect)))
     goto out;
 
 
@@ -130,7 +130,7 @@ core_process_module_section (bfd *abfd, asection *sect, void *obj)
   module_name_size =
     extract_unsigned_integer (buf + 8, 4, byte_order);
 
-  if (12 + module_name_size > bfd_get_section_size (sect))
+  if (12 + module_name_size > bfd_section_size (sect))
     goto out;
   module_name = (char *) buf + 12;
 
@@ -240,7 +240,7 @@ i386_cygwin_osabi_sniffer (bfd *abfd)
     {
       asection *section = bfd_get_section_by_name (abfd, ".reg");
       if (section
-	  && bfd_section_size (abfd, section) == I386_WINDOWS_SIZEOF_GREGSET)
+	  && bfd_section_size (section) == I386_WINDOWS_SIZEOF_GREGSET)
 	return GDB_OSABI_CYGWIN;
     }
 
diff --git a/gdb/i386-fbsd-tdep.c b/gdb/i386-fbsd-tdep.c
index 3848bf890d..04d0a641b7 100644
--- a/gdb/i386-fbsd-tdep.c
+++ b/gdb/i386-fbsd-tdep.c
@@ -233,7 +233,7 @@ i386fbsd_core_read_xcr0 (bfd *abfd)
 
   if (xstate)
     {
-      size_t size = bfd_section_size (abfd, xstate);
+      size_t size = bfd_section_size (xstate);
 
       /* Check extended state size.  */
       if (size < X86_XSTATE_AVX_SIZE)
diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
index 760d00008f..c41013984e 100644
--- a/gdb/i386-linux-tdep.c
+++ b/gdb/i386-linux-tdep.c
@@ -646,7 +646,7 @@ i386_linux_core_read_xcr0 (bfd *abfd)
 
   if (xstate)
     {
-      size_t size = bfd_section_size (abfd, xstate);
+      size_t size = bfd_section_size (xstate);
 
       /* Check extended state size.  */
       if (size < X86_XSTATE_AVX_SIZE)
diff --git a/gdb/jit.c b/gdb/jit.c
index 4722d6c6ce..af01b4d6c4 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -910,12 +910,12 @@ JITed symbol file is not an object file, ignoring it.\n"));
      addresses that we care about.  */
   section_addr_info sai;
   for (sec = nbfd->sections; sec != NULL; sec = sec->next)
-    if ((bfd_get_section_flags (nbfd.get (), sec) & (SEC_ALLOC|SEC_LOAD)) != 0)
+    if ((bfd_section_flags (sec) & (SEC_ALLOC|SEC_LOAD)) != 0)
       {
         /* We assume that these virtual addresses are absolute, and do not
            treat them as offsets.  */
-	sai.emplace_back (bfd_get_section_vma (nbfd.get (), sec),
-			  bfd_get_section_name (nbfd.get (), sec),
+	sai.emplace_back (bfd_section_vma (sec),
+			  bfd_section_name (sec),
 			  sec->index);
       }
 
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index ff888a9067..63a9bd32df 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -1046,7 +1046,7 @@ linux_core_info_proc_mappings (struct gdbarch *gdbarch, const char *args)
 
   addr_size_bits = gdbarch_addr_bit (core_gdbarch);
   addr_size = addr_size_bits / 8;
-  note_size = bfd_get_section_size (section);
+  note_size = bfd_section_size (section);
 
   if (note_size < 2 * addr_size)
     error (_("malformed core note - too short for header"));
diff --git a/gdb/machoread.c b/gdb/machoread.c
index d7471e9572..1795982a3e 100644
--- a/gdb/machoread.c
+++ b/gdb/machoread.c
@@ -575,7 +575,7 @@ macho_add_oso_symfile (oso_el *oso, const gdb_bfd_ref_ptr &abfd,
                          sec->name, sym->name,
                          paddress (arch, res));
                     }
-                  bfd_set_section_vma (abfd.get (), sec, res);
+                  bfd_set_section_vma (sec, res);
                   sections_rebased[sec->index] = 1;
                 }
             }
@@ -854,8 +854,7 @@ macho_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
             {
               if (strcmp (asect->name, dsect->name) != 0)
                 break;
-              bfd_set_section_size (dsym_bfd.get (), dsect,
-                                    bfd_get_section_size (asect));
+              bfd_set_section_size (dsect, bfd_section_size (asect));
             }
 
 	  /* Add the dsym file as a separate file.  */
diff --git a/gdb/maint.c b/gdb/maint.c
index b8eb93827c..ec9f4abb26 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -335,8 +335,8 @@ print_bfd_section_info (bfd *abfd,
 			asection *asect,
 			void *datum)
 {
-  flagword flags = bfd_get_section_flags (abfd, asect);
-  const char *name = bfd_section_name (abfd, asect);
+  flagword flags = bfd_section_flags (asect);
+  const char *name = bfd_section_name (asect);
   maint_print_section_data *print_data = (maint_print_section_data *) datum;
   const char *arg = print_data->arg;
 
@@ -348,8 +348,8 @@ print_bfd_section_info (bfd *abfd,
       int addr_size = gdbarch_addr_bit (gdbarch) / 8;
       CORE_ADDR addr, endaddr;
 
-      addr = bfd_section_vma (abfd, asect);
-      endaddr = addr + bfd_section_size (abfd, asect);
+      addr = bfd_section_vma (asect);
+      endaddr = addr + bfd_section_size (asect);
       print_section_index (abfd, asect, print_data->index_digits);
       maint_print_section_info (name, flags, addr, endaddr,
 				asect->filepos, addr_size);
@@ -366,8 +366,8 @@ print_objfile_section_info (bfd *abfd,
 			    struct obj_section *asect,
 			    maint_print_section_data *print_data)
 {
-  flagword flags = bfd_get_section_flags (abfd, asect->the_bfd_section);
-  const char *name = bfd_section_name (abfd, asect->the_bfd_section);
+  flagword flags = bfd_section_flags (asect->the_bfd_section);
+  const char *name = bfd_section_name (asect->the_bfd_section);
   const char *string = print_data->arg;
 
   if (string == NULL || *string == '\0'
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index dffef8fd1a..0956fbdb67 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -2338,7 +2338,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
      the text section (and fh->adr) really starts at zero.  */
   text_sect = bfd_get_section_by_name (cur_bfd, ".text");
   if (text_sect != NULL
-      && (bfd_get_section_flags (cur_bfd, text_sect) & SEC_RELOC))
+      && (bfd_section_flags (text_sect) & SEC_RELOC))
     relocatable = 1;
 
   extern_tab = XOBNEWVEC (&objfile->objfile_obstack, EXTR, hdr->iextMax);
diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c
index 9033a61950..7659e28038 100644
--- a/gdb/mi/mi-interp.c
+++ b/gdb/mi/mi-interp.c
@@ -1179,8 +1179,7 @@ mi_memory_changed (struct inferior *inferior, CORE_ADDR memaddr,
       sec = find_pc_section (memaddr);
       if (sec != NULL && sec->objfile != NULL)
 	{
-	  flagword flags = bfd_get_section_flags (sec->objfile->obfd,
-						  sec->the_bfd_section);
+	  flagword flags = bfd_section_flags (sec->the_bfd_section);
 
 	  if (flags & SEC_CODE)
 	    mi_uiout->field_string ("type", "code");
diff --git a/gdb/minidebug.c b/gdb/minidebug.c
index 6c67b4e04b..2a60741dfa 100644
--- a/gdb/minidebug.c
+++ b/gdb/minidebug.c
@@ -87,7 +87,7 @@ lzma_open (struct bfd *nbfd, void *open_closure)
   struct gdb_lzma_stream *lstream;
   size_t pos;
 
-  size = bfd_get_section_size (section);
+  size = bfd_section_size (section);
   offset = section->filepos + size - LZMA_STREAM_HEADER_SIZE;
   if (size < LZMA_STREAM_HEADER_SIZE
       || bfd_seek (section->owner, offset, SEEK_SET) != 0
diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c
index 08d027917d..eab284da13 100644
--- a/gdb/mips-linux-tdep.c
+++ b/gdb/mips-linux-tdep.c
@@ -562,7 +562,7 @@ mips_linux_core_read_description (struct gdbarch *gdbarch,
   if (! section)
     return NULL;
 
-  switch (bfd_section_size (abfd, section))
+  switch (bfd_section_size (section))
     {
     case sizeof (mips_elf_gregset_t):
       return mips_tdesc_gp32;
diff --git a/gdb/mips-sde-tdep.c b/gdb/mips-sde-tdep.c
index cf1ce37873..791a5991ad 100644
--- a/gdb/mips-sde-tdep.c
+++ b/gdb/mips-sde-tdep.c
@@ -208,7 +208,7 @@ mips_sde_elf_osabi_sniff_abi_tag_sections (bfd *abfd, asection *sect,
   enum gdb_osabi *os_ident_ptr = (enum gdb_osabi *) obj;
   const char *name;
 
-  name = bfd_get_section_name (abfd, sect);
+  name = bfd_section_name (sect);
 
   /* The presence of a section with a ".sde" prefix is indicative
      of an SDE binary.  */
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 37a1b2a0b8..6870db8202 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -7975,7 +7975,7 @@ static void
 mips_find_abi_section (bfd *abfd, asection *sect, void *obj)
 {
   enum mips_abi *abip = (enum mips_abi *) obj;
-  const char *name = bfd_get_section_name (abfd, sect);
+  const char *name = bfd_section_name (sect);
 
   if (*abip != MIPS_ABI_UNKNOWN)
     return;
@@ -8003,7 +8003,7 @@ static void
 mips_find_long_section (bfd *abfd, asection *sect, void *obj)
 {
   int *lbp = (int *) obj;
-  const char *name = bfd_get_section_name (abfd, sect);
+  const char *name = bfd_section_name (sect);
 
   if (startswith (name, ".gcc_compiled_long32"))
     *lbp = 32;
diff --git a/gdb/mipsread.c b/gdb/mipsread.c
index b25abe5a48..b5f7f6cde4 100644
--- a/gdb/mipsread.c
+++ b/gdb/mipsread.c
@@ -200,10 +200,10 @@ read_alphacoff_dynamic_symtab (minimal_symbol_reader &reader,
       || si.dyninfo_sect == NULL || si.got_sect == NULL)
     return;
 
-  gdb::byte_vector sym_sec (bfd_get_section_size (si.sym_sect));
-  gdb::byte_vector str_sec (bfd_get_section_size (si.str_sect));
-  gdb::byte_vector dyninfo_sec (bfd_get_section_size (si.dyninfo_sect));
-  gdb::byte_vector got_sec (bfd_get_section_size (si.got_sect));
+  gdb::byte_vector sym_sec (bfd_section_size (si.sym_sect));
+  gdb::byte_vector str_sec (bfd_section_size (si.str_sect));
+  gdb::byte_vector dyninfo_sec (bfd_section_size (si.dyninfo_sect));
+  gdb::byte_vector got_sec (bfd_section_size (si.got_sect));
 
   if (!bfd_get_section_contents (abfd, si.sym_sect, sym_sec.data (),
 				 (file_ptr) 0, sym_sec.size ()))
diff --git a/gdb/nto-tdep.c b/gdb/nto-tdep.c
index 0c610d2841..41b4e25737 100644
--- a/gdb/nto-tdep.c
+++ b/gdb/nto-tdep.c
@@ -319,8 +319,8 @@ nto_sniff_abi_note_section (bfd *abfd, asection *sect, void *obj)
   const char *name;
   const unsigned sizeof_Elf_Nhdr = 12;
 
-  sectname = bfd_get_section_name (abfd, sect);
-  sectsize = bfd_section_size (abfd, sect);
+  sectname = bfd_section_name (sect);
+  sectsize = bfd_section_size (sect);
 
   if (sectsize > 128)
     sectsize = 128;
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 7cbcbbd01b..90c4650bd4 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -271,7 +271,7 @@ add_to_objfile_sections_full (struct bfd *abfd, struct bfd_section *asect,
     {
       flagword aflag;
 
-      aflag = bfd_get_section_flags (abfd, asect);
+      aflag = bfd_section_flags (asect);
       if (!(aflag & SEC_ALLOC))
 	return;
     }
@@ -1119,15 +1119,15 @@ static int
 insert_section_p (const struct bfd *abfd,
 		  const struct bfd_section *section)
 {
-  const bfd_vma lma = bfd_section_lma (abfd, section);
+  const bfd_vma lma = bfd_section_lma (section);
 
-  if (overlay_debugging && lma != 0 && lma != bfd_section_vma (abfd, section)
+  if (overlay_debugging && lma != 0 && lma != bfd_section_vma (section)
       && (bfd_get_file_flags (abfd) & BFD_IN_MEMORY) == 0)
     /* This is an overlay section.  IN_MEMORY check is needed to avoid
        discarding sections from the "system supplied DSO" (aka vdso)
        on some Linux systems (e.g. Fedora 11).  */
     return 0;
-  if ((bfd_get_section_flags (abfd, section) & SEC_THREAD_LOCAL) != 0)
+  if ((bfd_section_flags (section) & SEC_THREAD_LOCAL) != 0)
     /* This is a TLS section.  */
     return 0;
 
@@ -1220,10 +1220,10 @@ filter_overlapping_sections (struct obj_section **map, int map_size)
 			   " (A) section `%s' from `%s' [%s, %s)\n"
 			   " (B) section `%s' from `%s' [%s, %s).\n"
 			   "Will ignore section B"),
-			 bfd_section_name (abfd1, bfds1), objfile_name (objf1),
+			 bfd_section_name (bfds1), objfile_name (objf1),
 			 paddress (gdbarch, sect1_addr),
 			 paddress (gdbarch, sect1_endaddr),
-			 bfd_section_name (abfd2, bfds2), objfile_name (objf2),
+			 bfd_section_name (bfds2), objfile_name (objf2),
 			 paddress (gdbarch, sect2_addr),
 			 paddress (gdbarch, sect2_endaddr));
 	    }
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 239aba2c2a..68d36d408e 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -143,14 +143,14 @@ struct obj_section
 
 /* The memory address of section S (vma + offset).  */
 #define obj_section_addr(s)				      		\
-  (bfd_get_section_vma ((s)->objfile->obfd, s->the_bfd_section)		\
+  (bfd_section_vma (s->the_bfd_section)					\
    + obj_section_offset (s))
 
 /* The one-passed-the-end memory address of section S
    (vma + size + offset).  */
 #define obj_section_endaddr(s)						\
-  (bfd_get_section_vma ((s)->objfile->obfd, s->the_bfd_section)		\
-   + bfd_get_section_size ((s)->the_bfd_section)			\
+  (bfd_section_vma (s->the_bfd_section)					\
+   + bfd_section_size ((s)->the_bfd_section)				\
    + obj_section_offset (s))
 
 /* The "objstats" structure provides a place for gdb to record some
diff --git a/gdb/osabi.c b/gdb/osabi.c
index 5d4bbcdff8..cdf72a7664 100644
--- a/gdb/osabi.c
+++ b/gdb/osabi.c
@@ -416,7 +416,7 @@ check_note (bfd *abfd, asection *sect, char *note, unsigned int *sectsize,
   gdb_assert (notesz <= MAX_NOTESZ);
 
   /* Check whether SECT is big enough to comtain the complete note.  */
-  if (notesz > bfd_section_size (abfd, sect))
+  if (notesz > bfd_section_size (sect))
     return 0;
 
   /* Check the note name.  */
@@ -445,8 +445,8 @@ generic_elf_osabi_sniff_abi_tag_sections (bfd *abfd, asection *sect, void *obj)
   unsigned int sectsize;
   char *note;
 
-  name = bfd_get_section_name (abfd, sect);
-  sectsize = bfd_section_size (abfd, sect);
+  name = bfd_section_name (sect);
+  sectsize = bfd_section_size (sect);
 
   /* Limit the amount of data to read.  */
   if (sectsize > MAX_NOTESZ)
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index 82277a03f8..c6181c9dd4 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -1558,7 +1558,7 @@ ppc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
 static int
 ppc_linux_spu_section (bfd *abfd, asection *asect, void *user_data)
 {
-  return startswith (bfd_section_name (abfd, asect), "SPU/");
+  return startswith (bfd_section_name (asect), "SPU/");
 }
 
 static const struct target_desc *
@@ -1580,7 +1580,7 @@ ppc_linux_core_read_description (struct gdbarch *gdbarch,
   if (! section)
     return NULL;
 
-  switch (bfd_section_size (abfd, section))
+  switch (bfd_section_size (section))
     {
     case 48 * 4:
       features.wordsize = 4;
diff --git a/gdb/ppc64-tdep.c b/gdb/ppc64-tdep.c
index b29d04c135..6a7aabf877 100644
--- a/gdb/ppc64-tdep.c
+++ b/gdb/ppc64-tdep.c
@@ -593,8 +593,8 @@ ppc64_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
 				      s->the_bfd_section,
 				      &buf, addr - s->addr, 8);
       if (res != 0)
-	return extract_unsigned_integer (buf, 8, byte_order)
-		- bfd_section_vma (s->bfd, s->the_bfd_section) + s->addr;
+	return (extract_unsigned_integer (buf, 8, byte_order)
+		- bfd_section_vma (s->the_bfd_section) + s->addr);
    }
 
   return addr;
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index d402d8733d..b55459e4ad 100644
--- a/gdb/record-btrace.c
+++ b/gdb/record-btrace.c
@@ -1435,8 +1435,7 @@ record_btrace_target::xfer_partial (enum target_object object,
 	    if (section != NULL)
 	      {
 		/* Check if the section we found is readonly.  */
-		if ((bfd_get_section_flags (section->the_bfd_section->owner,
-					    section->the_bfd_section)
+		if ((bfd_section_flags (section->the_bfd_section)
 		     & SEC_READONLY) != 0)
 		  {
 		    /* Truncate the request to fit into this section.  */
diff --git a/gdb/record-full.c b/gdb/record-full.c
index c1d124f519..0c6cb62163 100644
--- a/gdb/record-full.c
+++ b/gdb/record-full.c
@@ -2350,9 +2350,9 @@ record_full_restore (void)
 			osec ? "succeeded" : "failed");
   if (osec == NULL)
     return;
-  osec_size = bfd_section_size (core_bfd, osec);
+  osec_size = bfd_section_size (osec);
   if (record_debug)
-    fprintf_unfiltered (gdb_stdlog, "%s", bfd_section_name (core_bfd, osec));
+    fprintf_unfiltered (gdb_stdlog, "%s", bfd_section_name (osec));
 
   /* Check the magic code.  */
   bfdcore_read (core_bfd, osec, &magic, sizeof (magic), &bfd_offset);
@@ -2599,10 +2599,9 @@ record_full_base_target::save_record (const char *recfilename)
     error (_("Failed to create 'precord' section for corefile %s: %s"),
 	   recfilename,
            bfd_errmsg (bfd_get_error ()));
-  bfd_set_section_size (obfd.get (), osec, save_size);
-  bfd_set_section_vma (obfd.get (), osec, 0);
-  bfd_set_section_alignment (obfd.get (), osec, 0);
-  bfd_section_lma (obfd.get (), osec) = 0;
+  bfd_set_section_size (osec, save_size);
+  bfd_set_section_vma (osec, 0);
+  bfd_set_section_alignment (osec, 0);
 
   /* Save corefile state.  */
   write_gcore_file (obfd.get ());
diff --git a/gdb/remote.c b/gdb/remote.c
index e39366d8b2..980864e070 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -8749,9 +8749,7 @@ remote_target::remote_xfer_live_readonly_partial (gdb_byte *readbuf,
 
   secp = target_section_by_addr (this, memaddr);
   if (secp != NULL
-      && (bfd_get_section_flags (secp->the_bfd_section->owner,
-				 secp->the_bfd_section)
-	  & SEC_READONLY))
+      && (bfd_section_flags (secp->the_bfd_section) & SEC_READONLY))
     {
       struct target_section *p;
       ULONGEST memend = memaddr + len;
@@ -10656,11 +10654,11 @@ compare_sections_command (const char *args, int from_tty)
       if (read_only && (s->flags & SEC_READONLY) == 0)
 	continue;		/* Skip writeable sections */
 
-      size = bfd_get_section_size (s);
+      size = bfd_section_size (s);
       if (size == 0)
 	continue;		/* Skip zero-length section.  */
 
-      sectname = bfd_get_section_name (exec_bfd, s);
+      sectname = bfd_section_name (s);
       if (args && strcmp (args, sectname) != 0)
 	continue;		/* Not the section selected by user.  */
 
@@ -13059,7 +13057,6 @@ void
 remote_target::trace_set_readonly_regions ()
 {
   asection *s;
-  bfd *abfd = NULL;
   bfd_size_type size;
   bfd_vma vma;
   int anysecs = 0;
@@ -13083,8 +13080,8 @@ remote_target::trace_set_readonly_regions ()
 	continue;
 
       anysecs = 1;
-      vma = bfd_get_section_vma (abfd, s);
-      size = bfd_get_section_size (s);
+      vma = bfd_section_vma (s);
+      size = bfd_section_size (s);
       sprintf_vma (tmp1, vma);
       sprintf_vma (tmp2, vma + size);
       sec_length = 1 + strlen (tmp1) + 1 + strlen (tmp2);
diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c
index 4964f591a5..f2ff255736 100644
--- a/gdb/rs6000-aix-tdep.c
+++ b/gdb/rs6000-aix-tdep.c
@@ -1110,7 +1110,7 @@ rs6000_aix_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch,
   if (ldinfo_sec == NULL)
     error (_("cannot find .ldinfo section from core file: %s"),
 	   bfd_errmsg (bfd_get_error ()));
-  ldinfo_size = bfd_get_section_size (ldinfo_sec);
+  ldinfo_size = bfd_section_size (ldinfo_sec);
 
   gdb::byte_vector ldinfo_buf (ldinfo_size);
 
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 328b41cc59..47a232f6c6 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -3866,7 +3866,7 @@ bfd_uses_spe_extensions (bfd *abfd)
   if (!sect)
     return 0;
 
-  size = bfd_get_section_size (sect);
+  size = bfd_section_size (sect);
   contents = (gdb_byte *) xmalloc (size);
   if (!bfd_get_section_contents (abfd, sect, contents, 0, size))
     {
diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c
index 02ae28b4ea..ab3889ba45 100644
--- a/gdb/s390-linux-tdep.c
+++ b/gdb/s390-linux-tdep.c
@@ -346,7 +346,7 @@ s390_core_read_description (struct gdbarch *gdbarch,
   te = (hwcap & HWCAP_S390_TE);
   gs = (hwcap & HWCAP_S390_GS);
 
-  switch (bfd_section_size (abfd, section))
+  switch (bfd_section_size (section))
     {
     case s390_sizeof_gregset:
       if (high_gprs)
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 871efc59bc..463c0a0bd7 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -697,9 +697,7 @@ s390_load (struct s390_prologue_data *data,
       struct target_section *secp;
       secp = target_section_by_addr (current_top_target (), addr.k);
       if (secp != NULL
-	  && (bfd_get_section_flags (secp->the_bfd_section->owner,
-				     secp->the_bfd_section)
-	      & SEC_READONLY))
+	  && (bfd_section_flags (secp->the_bfd_section) & SEC_READONLY))
 	return pv_constant (read_memory_integer (addr.k, size,
 						 data->byte_order));
     }
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index 1a25a0d4a9..8308190d90 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -303,15 +303,13 @@ solib_aix_bss_data_overlap (bfd *abfd)
      section after the .data section (the problem has only been
      observed when using the GNU linker, and the default linker
      script always places the .data and .bss sections in that order).  */
-  if (bfd_section_vma (abfd, bss_sect)
-      < bfd_section_vma (abfd, data_sect))
+  if (bfd_section_vma (bss_sect) < bfd_section_vma (data_sect))
     return 0;
 
-  if (bfd_section_vma (abfd, bss_sect)
-      < bfd_section_vma (abfd, data_sect) + bfd_get_section_size (data_sect))
-    return ((bfd_section_vma (abfd, data_sect)
-	     + bfd_get_section_size (data_sect))
-	    - bfd_section_vma (abfd, bss_sect));
+  if (bfd_section_vma (bss_sect)
+      < bfd_section_vma (data_sect) + bfd_section_size (data_sect))
+    return (bfd_section_vma (data_sect) + bfd_section_size (data_sect)
+	    - bfd_section_vma (bss_sect));
 
   return 0;
 }
@@ -324,7 +322,7 @@ solib_aix_relocate_section_addresses (struct so_list *so,
 {
   struct bfd_section *bfd_sect = sec->the_bfd_section;
   bfd *abfd = bfd_sect->owner;
-  const char *section_name = bfd_section_name (abfd, bfd_sect);
+  const char *section_name = bfd_section_name (bfd_sect);
   lm_info_aix *info = (lm_info_aix *) so->lm_info;
 
   if (strcmp (section_name, ".text") == 0)
@@ -355,17 +353,17 @@ solib_aix_relocate_section_addresses (struct so_list *so,
       CORE_ADDR data_offset = 0;
 
       if (data_sect != NULL)
-	data_offset = info->data_addr - bfd_section_vma (abfd, data_sect);
+	data_offset = info->data_addr - bfd_section_vma (data_sect);
 
-      sec->addr = bfd_section_vma (abfd, bfd_sect) + data_offset;
+      sec->addr = bfd_section_vma (bfd_sect) + data_offset;
       sec->addr += solib_aix_bss_data_overlap (abfd);
-      sec->endaddr = sec->addr + bfd_section_size (abfd, bfd_sect);
+      sec->endaddr = sec->addr + bfd_section_size (bfd_sect);
     }
   else
     {
       /* All other sections should not be relocated.  */
-      sec->addr = bfd_section_vma (abfd, bfd_sect);
-      sec->endaddr = sec->addr + bfd_section_size (abfd, bfd_sect);
+      sec->addr = bfd_section_vma (bfd_sect);
+      sec->endaddr = sec->addr + bfd_section_size (bfd_sect);
     }
 }
 
@@ -414,7 +412,7 @@ solib_aix_get_section_offsets (struct objfile *objfile,
 	= objfile->sections[objfile->sect_index_text].the_bfd_section;
 
       offsets->offsets[objfile->sect_index_text]
-	= info->text_addr + sect->filepos - bfd_section_vma (abfd, sect);
+	= info->text_addr + sect->filepos - bfd_section_vma (sect);
     }
 
   /* .data */
@@ -425,7 +423,7 @@ solib_aix_get_section_offsets (struct objfile *objfile,
 	= objfile->sections[objfile->sect_index_data].the_bfd_section;
 
       offsets->offsets[objfile->sect_index_data]
-	= info->data_addr - bfd_section_vma (abfd, sect);
+	= info->data_addr - bfd_section_vma (sect);
     }
 
   /* .bss
@@ -661,8 +659,7 @@ data_obj_section_from_objfile (struct objfile *objfile)
   struct obj_section *osect;
 
   ALL_OBJFILE_OSECTIONS (objfile, osect)
-    if (strcmp (bfd_section_name (objfile->obfd, osect->the_bfd_section),
-		".data") == 0)
+    if (strcmp (bfd_section_name (osect->the_bfd_section), ".data") == 0)
       return osect;
 
   return NULL;
diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c
index 59b195f491..70d6f2e314 100644
--- a/gdb/solib-dsbt.c
+++ b/gdb/solib-dsbt.c
@@ -438,12 +438,12 @@ scan_dyntag (int dyntag, bfd *abfd, CORE_ADDR *ptr)
 	 such fallback to the file VMA address without the possibility of
 	 having the section relocated to its actual in-memory address.  */
 
-      dyn_addr = bfd_section_vma (abfd, sect);
+      dyn_addr = bfd_section_vma (sect);
     }
 
   /* Read in .dynamic from the BFD.  We will get the actual value
      from memory later.  */
-  sect_size = bfd_section_size (abfd, sect);
+  sect_size = bfd_section_size (sect);
   buf = bufstart = (gdb_byte *) alloca (sect_size);
   if (!bfd_get_section_contents (abfd, sect,
 				 buf, 0, sect_size))
@@ -807,7 +807,7 @@ enable_break (void)
 
       /* Read the contents of the .interp section into a local buffer;
 	 the contents specify the dynamic linker this program uses.  */
-      interp_sect_size = bfd_section_size (exec_bfd, interp_sect);
+      interp_sect_size = bfd_section_size (interp_sect);
       buf = (char *) alloca (interp_sect_size);
       bfd_get_section_contents (exec_bfd, interp_sect,
 				buf, 0, interp_sect_size);
@@ -839,24 +839,20 @@ enable_break (void)
       interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".text");
       if (interp_sect)
 	{
-	  info->interp_text_sect_low
-	    = bfd_section_vma (tmp_bfd.get (), interp_sect);
+	  info->interp_text_sect_low = bfd_section_vma (interp_sect);
 	  info->interp_text_sect_low
 	    += displacement_from_map (ldm, info->interp_text_sect_low);
 	  info->interp_text_sect_high
-	    = info->interp_text_sect_low
-	    + bfd_section_size (tmp_bfd.get (), interp_sect);
+	    = info->interp_text_sect_low + bfd_section_size (interp_sect);
 	}
       interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".plt");
       if (interp_sect)
 	{
-	  info->interp_plt_sect_low =
-	    bfd_section_vma (tmp_bfd.get (), interp_sect);
+	  info->interp_plt_sect_low = bfd_section_vma (interp_sect);
 	  info->interp_plt_sect_low
 	    += displacement_from_map (ldm, info->interp_plt_sect_low);
-	  info->interp_plt_sect_high =
-	    info->interp_plt_sect_low + bfd_section_size (tmp_bfd.get (),
-							  interp_sect);
+	  info->interp_plt_sect_high
+	    = info->interp_plt_sect_low + bfd_section_size (interp_sect);
 	}
 
       addr = gdb_bfd_lookup_symbol (tmp_bfd.get (), cmp_name,
diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c
index fdd4b34530..08fa576867 100644
--- a/gdb/solib-frv.c
+++ b/gdb/solib-frv.c
@@ -546,7 +546,7 @@ enable_break2 (void)
 
       /* Read the contents of the .interp section into a local buffer;
          the contents specify the dynamic linker this program uses.  */
-      interp_sect_size = bfd_section_size (exec_bfd, interp_sect);
+      interp_sect_size = bfd_section_size (interp_sect);
       buf = (char *) alloca (interp_sect_size);
       bfd_get_section_contents (exec_bfd, interp_sect,
 				buf, 0, interp_sect_size);
@@ -603,24 +603,20 @@ enable_break2 (void)
       interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".text");
       if (interp_sect)
 	{
-	  interp_text_sect_low
-	    = bfd_section_vma (tmp_bfd.get (), interp_sect);
+	  interp_text_sect_low = bfd_section_vma (interp_sect);
 	  interp_text_sect_low
 	    += displacement_from_map (ldm, interp_text_sect_low);
 	  interp_text_sect_high
-	    = interp_text_sect_low + bfd_section_size (tmp_bfd.get (),
-						       interp_sect);
+	    = interp_text_sect_low + bfd_section_size (interp_sect);
 	}
       interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".plt");
       if (interp_sect)
 	{
-	  interp_plt_sect_low =
-	    bfd_section_vma (tmp_bfd.get (), interp_sect);
+	  interp_plt_sect_low = bfd_section_vma (interp_sect);
 	  interp_plt_sect_low
 	    += displacement_from_map (ldm, interp_plt_sect_low);
 	  interp_plt_sect_high =
-	    interp_plt_sect_low + bfd_section_size (tmp_bfd.get (),
-						    interp_sect);
+	    interp_plt_sect_low + bfd_section_size (interp_sect);
 	}
 
       addr = gdb_bfd_lookup_symbol (tmp_bfd.get (), cmp_name, "_dl_debug_addr");
diff --git a/gdb/solib-spu.c b/gdb/solib-spu.c
index c5e0acaf02..49e470adb6 100644
--- a/gdb/solib-spu.c
+++ b/gdb/solib-spu.c
@@ -364,7 +364,7 @@ spu_bfd_open (const char *pathname)
   spu_name = bfd_get_section_by_name (abfd.get (), ".note.spu_name");
   if (spu_name)
     {
-      int sect_size = bfd_section_size (abfd.get (), spu_name);
+      int sect_size = bfd_section_size (spu_name);
 
       if (sect_size > 20)
 	{
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index ffae26bfc5..e04fde942d 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -234,7 +234,7 @@ lm_addr_check (const struct so_list *so, bfd *abfd)
       if (dyninfo_sect == NULL)
 	goto set_addr;
 
-      dynaddr = bfd_section_vma (abfd, dyninfo_sect);
+      dynaddr = bfd_section_vma (dyninfo_sect);
 
       if (dynaddr + l_addr != l_dynaddr)
 	{
@@ -559,7 +559,7 @@ find_program_interpreter (void)
      interp_sect = bfd_get_section_by_name (exec_bfd, ".interp");
      if (interp_sect != NULL)
       {
-	int sect_size = bfd_section_size (exec_bfd, interp_sect);
+	int sect_size = bfd_section_size (interp_sect);
 
 	gdb::byte_vector buf (sect_size);
 	bfd_get_section_contents (exec_bfd, interp_sect, buf.data (), 0,
@@ -618,12 +618,12 @@ scan_dyntag (const int desired_dyntag, bfd *abfd, CORE_ADDR *ptr,
 	 such fallback to the file VMA address without the possibility of
 	 having the section relocated to its actual in-memory address.  */
 
-      dyn_addr = bfd_section_vma (abfd, sect);
+      dyn_addr = bfd_section_vma (sect);
     }
 
   /* Read in .dynamic from the BFD.  We will get the actual value
      from memory later.  */
-  sect_size = bfd_section_size (abfd, sect);
+  sect_size = bfd_section_size (sect);
   buf = bufstart = (gdb_byte *) alloca (sect_size);
   if (!bfd_get_section_contents (abfd, sect,
 				 buf, 0, sect_size))
@@ -2255,20 +2255,18 @@ enable_break (struct svr4_info *info, int from_tty)
 	  interp_sect = bfd_get_section_by_name (tmp_bfd, ".text");
 	  if (interp_sect)
 	    {
-	      info->interp_text_sect_low =
-		bfd_section_vma (tmp_bfd, interp_sect) + load_addr;
-	      info->interp_text_sect_high =
-		info->interp_text_sect_low
-		+ bfd_section_size (tmp_bfd, interp_sect);
+	      info->interp_text_sect_low
+		= bfd_section_vma (interp_sect) + load_addr;
+	      info->interp_text_sect_high
+		= info->interp_text_sect_low + bfd_section_size (interp_sect);
 	    }
 	  interp_sect = bfd_get_section_by_name (tmp_bfd, ".plt");
 	  if (interp_sect)
 	    {
-	      info->interp_plt_sect_low =
-		bfd_section_vma (tmp_bfd, interp_sect) + load_addr;
-	      info->interp_plt_sect_high =
-		info->interp_plt_sect_low
-		+ bfd_section_size (tmp_bfd, interp_sect);
+	      info->interp_plt_sect_low
+		= bfd_section_vma (interp_sect) + load_addr;
+	      info->interp_plt_sect_high
+		= info->interp_plt_sect_low + bfd_section_size (interp_sect);
 	    }
 
 	  svr4_create_solib_event_breakpoints (info, target_gdbarch (), sym_addr);
@@ -2392,20 +2390,18 @@ enable_break (struct svr4_info *info, int from_tty)
       interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".text");
       if (interp_sect)
 	{
-	  info->interp_text_sect_low =
-	    bfd_section_vma (tmp_bfd.get (), interp_sect) + load_addr;
-	  info->interp_text_sect_high =
-	    info->interp_text_sect_low
-	    + bfd_section_size (tmp_bfd.get (), interp_sect);
+	  info->interp_text_sect_low
+	    = bfd_section_vma (interp_sect) + load_addr;
+	  info->interp_text_sect_high
+	    = info->interp_text_sect_low + bfd_section_size (interp_sect);
 	}
       interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".plt");
       if (interp_sect)
 	{
-	  info->interp_plt_sect_low =
-	    bfd_section_vma (tmp_bfd.get (), interp_sect) + load_addr;
-	  info->interp_plt_sect_high =
-	    info->interp_plt_sect_low
-	    + bfd_section_size (tmp_bfd.get (), interp_sect);
+	  info->interp_plt_sect_low
+	    = bfd_section_vma (interp_sect) + load_addr;
+	  info->interp_plt_sect_high
+	    = info->interp_plt_sect_low + bfd_section_size (interp_sect);
 	}
 
       /* Now try to set a breakpoint in the dynamic linker.  */
@@ -2733,7 +2729,7 @@ svr4_exec_displacement (CORE_ADDR *displacementp)
 		      gdb_byte *buf_filesz_p = (gdb_byte *) &phdrp->p_filesz;
 		      CORE_ADDR filesz;
 
-		      content2 = (bfd_get_section_flags (exec_bfd, plt2_asect)
+		      content2 = (bfd_section_flags (plt2_asect)
 				  & SEC_HAS_CONTENTS) != 0;
 
 		      filesz = extract_unsigned_integer (buf_filesz_p, 4,
@@ -2742,9 +2738,9 @@ svr4_exec_displacement (CORE_ADDR *displacementp)
 		      /* PLT2_ASECT is from on-disk file (exec_bfd) while
 			 FILESZ is from the in-memory image.  */
 		      if (content2)
-			filesz += bfd_get_section_size (plt2_asect);
+			filesz += bfd_section_size (plt2_asect);
 		      else
-			filesz -= bfd_get_section_size (plt2_asect);
+			filesz -= bfd_section_size (plt2_asect);
 
 		      store_unsigned_integer (buf_filesz_p, 4, byte_order,
 					      filesz);
@@ -2867,7 +2863,7 @@ svr4_exec_displacement (CORE_ADDR *displacementp)
 		      gdb_byte *buf_filesz_p = (gdb_byte *) &phdrp->p_filesz;
 		      CORE_ADDR filesz;
 
-		      content2 = (bfd_get_section_flags (exec_bfd, plt2_asect)
+		      content2 = (bfd_section_flags (plt2_asect)
 				  & SEC_HAS_CONTENTS) != 0;
 
 		      filesz = extract_unsigned_integer (buf_filesz_p, 8,
@@ -2876,9 +2872,9 @@ svr4_exec_displacement (CORE_ADDR *displacementp)
 		      /* PLT2_ASECT is from on-disk file (exec_bfd) while
 			 FILESZ is from the in-memory image.  */
 		      if (content2)
-			filesz += bfd_get_section_size (plt2_asect);
+			filesz += bfd_section_size (plt2_asect);
 		      else
-			filesz -= bfd_get_section_size (plt2_asect);
+			filesz -= bfd_section_size (plt2_asect);
 
 		      store_unsigned_integer (buf_filesz_p, 8, byte_order,
 					      filesz);
@@ -2972,8 +2968,7 @@ svr4_relocate_main_executable (void)
 
       for (asect = exec_bfd->sections; asect != NULL; asect = asect->next)
 	exec_set_section_address (bfd_get_filename (exec_bfd), asect->index,
-				  (bfd_section_vma (exec_bfd, asect)
-				   + displacement));
+				  bfd_section_vma (asect) + displacement);
     }
 }
 
diff --git a/gdb/solib-target.c b/gdb/solib-target.c
index 1ccbc27b2b..3fd180850c 100644
--- a/gdb/solib-target.c
+++ b/gdb/solib-target.c
@@ -323,7 +323,7 @@ solib_target_relocate_section_addresses (struct so_list *so,
 	  for (i = 0, sect = so->abfd->sections;
 	       sect != NULL;
 	       i++, sect = sect->next)
-	    if ((bfd_get_section_flags (so->abfd, sect) & SEC_ALLOC))
+	    if ((bfd_section_flags (sect) & SEC_ALLOC))
 	      num_alloc_sections++;
 
 	  if (num_alloc_sections != li->section_bases.size ())
@@ -341,14 +341,14 @@ Could not relocate shared library \"%s\": wrong number of ALLOC sections"),
 		   sect != NULL;
 		   i++, sect = sect->next)
 		{
-		  if (!(bfd_get_section_flags (so->abfd, sect) & SEC_ALLOC))
+		  if (!(bfd_section_flags (sect) & SEC_ALLOC))
 		    continue;
-		  if (bfd_section_size (so->abfd, sect) > 0)
+		  if (bfd_section_size (sect) > 0)
 		    {
 		      CORE_ADDR low, high;
 
 		      low = li->section_bases[i];
-		      high = low + bfd_section_size (so->abfd, sect) - 1;
+		      high = low + bfd_section_size (sect) - 1;
 
 		      if (low < so->addr_low)
 			so->addr_low = low;
diff --git a/gdb/spu-linux-nat.c b/gdb/spu-linux-nat.c
index 9dbb633734..635366b4f1 100644
--- a/gdb/spu-linux-nat.c
+++ b/gdb/spu-linux-nat.c
@@ -363,7 +363,7 @@ spu_bfd_open (ULONGEST addr)
   spu_name = bfd_get_section_by_name (nbfd.get (), ".note.spu_name");
   if (spu_name)
     {
-      int sect_size = bfd_section_size (nbfd.get (), spu_name);
+      int sect_size = bfd_section_size (spu_name);
       if (sect_size > 20)
 	{
 	  char *buf = (char *)alloca (sect_size - 20 + 1);
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
index d01f3af300..5360efb12f 100644
--- a/gdb/spu-tdep.c
+++ b/gdb/spu-tdep.c
@@ -1833,7 +1833,7 @@ spu_get_overlay_table (struct objfile *objfile)
 	continue;
 
       ALL_OBJFILE_OSECTIONS (objfile, osect)
-	if (vma == bfd_section_vma (objfile->obfd, osect->the_bfd_section)
+	if (vma == bfd_section_vma (osect->the_bfd_section)
 	    && pos == osect->the_bfd_section->filepos)
 	  {
 	    int ndx = osect - objfile->sections;
@@ -1921,9 +1921,9 @@ spu_overlay_new_objfile (struct objfile *objfile)
       int ndx = osect - objfile->sections;
 
       if (ovly_table[ndx].mapped_ptr == 0)
-	bfd_section_lma (obfd, bsect) = bfd_section_vma (obfd, bsect);
+	bfd_set_section_lma (bsect, bfd_section_vma (bsect));
       else
-	bfd_section_lma (obfd, bsect) = SPU_OVERLAY_LMA + bsect->filepos;
+	bfd_set_section_lma (bsect, SPU_OVERLAY_LMA + bsect->filepos);
     }
 }
 
diff --git a/gdb/symfile-mem.c b/gdb/symfile-mem.c
index 05542c1391..82fb17ed16 100644
--- a/gdb/symfile-mem.c
+++ b/gdb/symfile-mem.c
@@ -111,9 +111,9 @@ symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
 
   section_addr_info sai;
   for (sec = nbfd->sections; sec != NULL; sec = sec->next)
-    if ((bfd_get_section_flags (nbfd, sec) & (SEC_ALLOC|SEC_LOAD)) != 0)
-      sai.emplace_back (bfd_get_section_vma (nbfd, sec) + loadbase,
-			bfd_get_section_name (nbfd, sec),
+    if ((bfd_section_flags (sec) & (SEC_ALLOC|SEC_LOAD)) != 0)
+      sai.emplace_back (bfd_section_vma (sec) + loadbase,
+			bfd_section_name (sec),
 			sec->index);
 
   if (from_tty)
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 5252c727aa..b914b05a17 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -200,15 +200,14 @@ find_lowest_section (bfd *abfd, asection *sect, void *obj)
 {
   asection **lowest = (asection **) obj;
 
-  if (0 == (bfd_get_section_flags (abfd, sect) & (SEC_ALLOC | SEC_LOAD)))
+  if (0 == (bfd_section_flags (sect) & (SEC_ALLOC | SEC_LOAD)))
     return;
   if (!*lowest)
     *lowest = sect;		/* First loadable section */
-  else if (bfd_section_vma (abfd, *lowest) > bfd_section_vma (abfd, sect))
+  else if (bfd_section_vma (*lowest) > bfd_section_vma (sect))
     *lowest = sect;		/* A lower loadable section */
-  else if (bfd_section_vma (abfd, *lowest) == bfd_section_vma (abfd, sect)
-	   && (bfd_section_size (abfd, (*lowest))
-	       <= bfd_section_size (abfd, sect)))
+  else if (bfd_section_vma (*lowest) == bfd_section_vma (sect)
+	   && (bfd_section_size (*lowest) <= bfd_section_size (sect)))
     *lowest = sect;
 }
 
@@ -228,10 +227,10 @@ build_section_addr_info_from_section_table (const struct target_section *start,
       struct bfd_section *asect = stp->the_bfd_section;
       bfd *abfd = asect->owner;
 
-      if (bfd_get_section_flags (abfd, asect) & (SEC_ALLOC | SEC_LOAD)
+      if (bfd_section_flags (asect) & (SEC_ALLOC | SEC_LOAD)
 	  && sap.size () < end - start)
 	sap.emplace_back (stp->addr,
-			  bfd_section_name (abfd, asect),
+			  bfd_section_name (asect),
 			  gdb_bfd_section_index (abfd, asect));
     }
 
@@ -247,9 +246,9 @@ build_section_addr_info_from_bfd (bfd *abfd)
 
   section_addr_info sap;
   for (sec = abfd->sections; sec != NULL; sec = sec->next)
-    if (bfd_get_section_flags (abfd, sec) & (SEC_ALLOC | SEC_LOAD))
-      sap.emplace_back (bfd_get_section_vma (abfd, sec),
-			bfd_get_section_name (abfd, sec),
+    if (bfd_section_flags (sec) & (SEC_ALLOC | SEC_LOAD))
+      sap.emplace_back (bfd_section_vma (sec),
+			bfd_section_name (sec),
 			gdb_bfd_section_index (abfd, sec));
 
   return sap;
@@ -353,10 +352,10 @@ place_section (bfd *abfd, asection *sect, void *obj)
   struct place_section_arg *arg = (struct place_section_arg *) obj;
   CORE_ADDR *offsets = arg->offsets->offsets, start_addr;
   int done;
-  ULONGEST align = ((ULONGEST) 1) << bfd_get_section_alignment (abfd, sect);
+  ULONGEST align = ((ULONGEST) 1) << bfd_section_alignment (sect);
 
   /* We are only interested in allocated sections.  */
-  if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+  if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
     return;
 
   /* If the user specified an offset, honor it.  */
@@ -380,7 +379,7 @@ place_section (bfd *abfd, asection *sect, void *obj)
 	  continue;
 
 	/* We can only conflict with allocated sections.  */
-	if ((bfd_get_section_flags (abfd, cur_sec) & SEC_ALLOC) == 0)
+	if ((bfd_section_flags (cur_sec) & SEC_ALLOC) == 0)
 	  continue;
 
 	/* If the section offset is 0, either the section has not been placed
@@ -390,10 +389,10 @@ place_section (bfd *abfd, asection *sect, void *obj)
 	  continue;
 
 	/* If this section would overlap us, then we must move up.  */
-	if (start_addr + bfd_get_section_size (sect) > offsets[indx]
-	    && start_addr < offsets[indx] + bfd_get_section_size (cur_sec))
+	if (start_addr + bfd_section_size (sect) > offsets[indx]
+	    && start_addr < offsets[indx] + bfd_section_size (cur_sec))
 	  {
-	    start_addr = offsets[indx] + bfd_get_section_size (cur_sec);
+	    start_addr = offsets[indx] + bfd_section_size (cur_sec);
 	    start_addr = (start_addr + align - 1) & -align;
 	    done = 0;
 	    break;
@@ -405,7 +404,7 @@ place_section (bfd *abfd, asection *sect, void *obj)
   while (!done);
 
   offsets[gdb_bfd_section_index (abfd, sect)] = start_addr;
-  arg->lowest = start_addr + bfd_get_section_size (sect);
+  arg->lowest = start_addr + bfd_section_size (sect);
 }
 
 /* Store section_addr_info as prepared (made relative and with SECTINDEX
@@ -510,7 +509,7 @@ addr_info_make_relative (section_addr_info *addrs, bfd *abfd)
       lower_offset = 0;
     }
   else
-    lower_offset = bfd_section_vma (bfd_get_filename (abfd), lower_sect);
+    lower_offset = bfd_section_vma (lower_sect);
 
   /* Create ADDRS_TO_ABFD_ADDRS array to map the sections in ADDRS to sections
      in ABFD.  Section names are not unique - there can be multiple sections of
@@ -658,7 +657,7 @@ default_symfile_offsets (struct objfile *objfile,
       for (cur_sec = abfd->sections; cur_sec != NULL; cur_sec = cur_sec->next)
 	/* We do not expect this to happen; just skip this step if the
 	   relocatable file has a section with an assigned VMA.  */
-	if (bfd_section_vma (abfd, cur_sec) != 0)
+	if (bfd_section_vma (cur_sec) != 0)
 	  break;
 
       if (cur_sec == NULL)
@@ -700,10 +699,10 @@ default_symfile_offsets (struct objfile *objfile,
 	  for (cur_sec = abfd->sections; cur_sec != NULL;
 	       cur_sec = cur_sec->next)
 	    {
-	      if ((bfd_get_section_flags (abfd, cur_sec) & SEC_ALLOC) == 0)
+	      if ((bfd_section_flags (cur_sec) & SEC_ALLOC) == 0)
 		continue;
 
-	      bfd_set_section_vma (abfd, cur_sec, offsets[cur_sec->index]);
+	      bfd_set_section_vma (cur_sec, offsets[cur_sec->index]);
 	      exec_set_section_address (bfd_get_filename (abfd),
 					cur_sec->index,
 					offsets[cur_sec->index]);
@@ -740,7 +739,7 @@ default_symfile_segments (bfd *abfd)
   /* Make sure there is at least one loadable section in the file.  */
   for (sect = abfd->sections; sect != NULL; sect = sect->next)
     {
-      if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+      if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
 	continue;
 
       break;
@@ -748,8 +747,8 @@ default_symfile_segments (bfd *abfd)
   if (sect == NULL)
     return NULL;
 
-  low = bfd_get_section_vma (abfd, sect);
-  high = low + bfd_get_section_size (sect);
+  low = bfd_section_vma (sect);
+  high = low + bfd_section_size (sect);
 
   data = XCNEW (struct symfile_segment_data);
   data->num_segments = 1;
@@ -763,14 +762,14 @@ default_symfile_segments (bfd *abfd)
     {
       CORE_ADDR vma;
 
-      if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+      if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
 	continue;
 
-      vma = bfd_get_section_vma (abfd, sect);
+      vma = bfd_section_vma (sect);
       if (vma < low)
 	low = vma;
-      if (vma + bfd_get_section_size (sect) > high)
-	high = vma + bfd_get_section_size (sect);
+      if (vma + bfd_section_size (sect) > high)
+	high = vma + bfd_section_size (sect);
 
       data->segment_info[i] = 1;
     }
@@ -872,9 +871,9 @@ init_entry_point_info (struct objfile *objfile)
 	{
 	  struct bfd_section *sect = osect->the_bfd_section;
 
-	  if (entry_point >= bfd_get_section_vma (objfile->obfd, sect)
-	      && entry_point < (bfd_get_section_vma (objfile->obfd, sect)
-				+ bfd_get_section_size (sect)))
+	  if (entry_point >= bfd_section_vma (sect)
+	      && entry_point < (bfd_section_vma (sect)
+				+ bfd_section_size (sect)))
 	    {
 	      ei->the_bfd_section_index
 		= gdb_bfd_section_index (objfile->obfd, sect);
@@ -1878,7 +1877,7 @@ add_section_size_callback (bfd *abfd, asection *asec, void *data)
 {
   bfd_size_type *sum = (bfd_size_type *) data;
 
-  *sum += bfd_get_section_size (asec);
+  *sum += bfd_section_size (asec);
 }
 
 /* Opaque data for load_progress.  */
@@ -2001,16 +2000,16 @@ static void
 load_section_callback (bfd *abfd, asection *asec, void *data)
 {
   struct load_section_data *args = (struct load_section_data *) data;
-  bfd_size_type size = bfd_get_section_size (asec);
-  const char *sect_name = bfd_get_section_name (abfd, asec);
+  bfd_size_type size = bfd_section_size (asec);
+  const char *sect_name = bfd_section_name (asec);
 
-  if ((bfd_get_section_flags (abfd, asec) & SEC_LOAD) == 0)
+  if ((bfd_section_flags (asec) & SEC_LOAD) == 0)
     return;
 
   if (size == 0)
     return;
 
-  ULONGEST begin = bfd_section_lma (abfd, asec) + args->load_offset;
+  ULONGEST begin = bfd_section_lma (asec) + args->load_offset;
   ULONGEST end = begin + size;
   gdb_byte *buffer = (gdb_byte *) xmalloc (size);
   bfd_get_section_contents (abfd, asec, buffer, 0, size);
@@ -2988,9 +2987,8 @@ section_is_overlay (struct obj_section *section)
     {
       asection *bfd_section = section->the_bfd_section;
 
-      if (bfd_section_lma (abfd, bfd_section) != 0
-	  && bfd_section_lma (abfd, bfd_section)
-	     != bfd_section_vma (abfd, bfd_section))
+      if (bfd_section_lma (bfd_section) != 0
+	  && bfd_section_lma (bfd_section) != bfd_section_vma (bfd_section))
 	return 1;
     }
 
@@ -3061,15 +3059,14 @@ pc_in_unmapped_range (CORE_ADDR pc, struct obj_section *section)
 {
   if (section_is_overlay (section))
     {
-      bfd *abfd = section->objfile->obfd;
       asection *bfd_section = section->the_bfd_section;
 
       /* We assume the LMA is relocated by the same offset as the VMA.  */
-      bfd_vma size = bfd_get_section_size (bfd_section);
+      bfd_vma size = bfd_section_size (bfd_section);
       CORE_ADDR offset = obj_section_offset (section);
 
-      if (bfd_get_section_lma (abfd, bfd_section) + offset <= pc
-	  && pc < bfd_get_section_lma (abfd, bfd_section) + offset + size)
+      if (bfd_section_lma (bfd_section) + offset <= pc
+	  && pc < bfd_section_lma (bfd_section) + offset + size)
 	return 1;
     }
 
@@ -3117,8 +3114,8 @@ overlay_unmapped_address (CORE_ADDR pc, struct obj_section *section)
     {
       asection *bfd_section = section->the_bfd_section;
 
-      return pc + bfd_section_lma (abfd, bfd_section)
-		- bfd_section_vma (abfd, bfd_section);
+      return (pc + bfd_section_lma (bfd_section)
+	      - bfd_section_vma (bfd_section));
     }
 
   return pc;
@@ -3135,8 +3132,8 @@ overlay_mapped_address (CORE_ADDR pc, struct obj_section *section)
     {
       asection *bfd_section = section->the_bfd_section;
 
-      return pc + bfd_section_vma (abfd, bfd_section)
-		- bfd_section_lma (abfd, bfd_section);
+      return (pc + bfd_section_vma (bfd_section)
+	      - bfd_section_lma (bfd_section));
     }
 
   return pc;
@@ -3241,10 +3238,10 @@ list_overlays_command (const char *args, int from_tty)
 	      bfd_vma lma, vma;
 	      int size;
 
-	      vma = bfd_section_vma (objfile->obfd, osect->the_bfd_section);
-	      lma = bfd_section_lma (objfile->obfd, osect->the_bfd_section);
-	      size = bfd_get_section_size (osect->the_bfd_section);
-	      name = bfd_section_name (objfile->obfd, osect->the_bfd_section);
+	      vma = bfd_section_vma (osect->the_bfd_section);
+	      lma = bfd_section_lma (osect->the_bfd_section);
+	      size = bfd_section_size (osect->the_bfd_section);
+	      name = bfd_section_name (osect->the_bfd_section);
 
 	      printf_filtered ("Section %s, loaded at ", name);
 	      fputs_filtered (paddress (gdbarch, lma), gdb_stdout);
@@ -3282,8 +3279,7 @@ map_overlay_command (const char *args, int from_tty)
   /* First, find a section matching the user supplied argument.  */
   for (objfile *obj_file : current_program_space->objfiles ())
     ALL_OBJFILE_OSECTIONS (obj_file, sec)
-      if (!strcmp (bfd_section_name (obj_file->obfd, sec->the_bfd_section),
-		   args))
+      if (!strcmp (bfd_section_name (sec->the_bfd_section), args))
 	{
 	  /* Now, check to see if the section is an overlay.  */
 	  if (!section_is_overlay (sec))
@@ -3301,8 +3297,7 @@ map_overlay_command (const char *args, int from_tty)
 		{
 		  if (info_verbose)
 		    printf_unfiltered (_("Note: section %s unmapped by overlap\n"),
-				       bfd_section_name (obj_file->obfd,
-							 sec2->the_bfd_section));
+				       bfd_section_name (sec2->the_bfd_section));
 		  sec2->ovly_mapped = 0; /* sec2 overlaps sec: unmap sec2.  */
 		}
 	  return;
@@ -3330,7 +3325,7 @@ unmap_overlay_command (const char *args, int from_tty)
   /* First, find a section matching the user supplied argument.  */
   for (objfile *objfile : current_program_space->objfiles ())
     ALL_OBJFILE_OSECTIONS (objfile, sec)
-      if (!strcmp (bfd_section_name (objfile->obfd, sec->the_bfd_section), args))
+      if (!strcmp (bfd_section_name (sec->the_bfd_section), args))
 	{
 	  if (!sec->ovly_mapped)
 	    error (_("Section %s is not mapped"), args);
@@ -3539,14 +3534,14 @@ simple_overlay_update_1 (struct obj_section *osect)
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
   for (i = 0; i < cache_novlys; i++)
-    if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
-	&& cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect))
+    if (cache_ovly_table[i][VMA] == bfd_section_vma (bsect)
+	&& cache_ovly_table[i][LMA] == bfd_section_lma (bsect))
       {
 	read_target_long_array (cache_ovly_table_base + i * word_size,
 				(unsigned int *) cache_ovly_table[i],
 				4, word_size, byte_order);
-	if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
-	    && cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect))
+	if (cache_ovly_table[i][VMA] == bfd_section_vma (bsect)
+	    && cache_ovly_table[i][LMA] == bfd_section_lma (bsect))
 	  {
 	    osect->ovly_mapped = cache_ovly_table[i][MAPPED];
 	    return 1;
@@ -3607,8 +3602,8 @@ simple_overlay_update (struct obj_section *osect)
 	  asection *bsect = osect->the_bfd_section;
 
 	  for (i = 0; i < cache_novlys; i++)
-	    if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
-		&& cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect))
+	    if (cache_ovly_table[i][VMA] == bfd_section_vma (bsect)
+		&& cache_ovly_table[i][LMA] == bfd_section_lma (bsect))
 	      { /* obj_section matches i'th entry in ovly_table.  */
 		osect->ovly_mapped = cache_ovly_table[i][MAPPED];
 		break;		/* finished with inner for loop: break out.  */
diff --git a/gdb/symmisc.c b/gdb/symmisc.c
index 7666de390c..4699fd0920 100644
--- a/gdb/symmisc.c
+++ b/gdb/symmisc.c
@@ -244,8 +244,7 @@ dump_msymbols (struct objfile *objfile, struct ui_file *outfile)
 	{
 	  if (section->the_bfd_section != NULL)
 	    fprintf_filtered (outfile, " section %s",
-			      bfd_section_name (objfile->obfd,
-						section->the_bfd_section));
+			      bfd_section_name (section->the_bfd_section));
 	  else
 	    fprintf_filtered (outfile, " spurious section %ld",
 			      (long) (section - objfile->sections));
@@ -525,8 +524,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
 		      outfile);
       if (section)
 	fprintf_filtered (outfile, " section %s\n",
-			  bfd_section_name (section->the_bfd_section->owner,
-					    section->the_bfd_section));
+			  bfd_section_name (section->the_bfd_section));
       else
 	fprintf_filtered (outfile, "\n");
       return;
@@ -596,8 +594,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
 			  outfile);
 	  if (section)
 	    fprintf_filtered (outfile, " section %s",
-			      bfd_section_name (section->the_bfd_section->owner,
-						section->the_bfd_section));
+			      bfd_section_name (section->the_bfd_section));
 	  break;
 
 	case LOC_REGISTER:
@@ -638,8 +635,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
 			  outfile);
 	  if (section)
 	    fprintf_filtered (outfile, " section %s",
-			      bfd_section_name (section->the_bfd_section->owner,
-						section->the_bfd_section));
+			      bfd_section_name (section->the_bfd_section));
 	  break;
 
 	case LOC_BLOCK:
@@ -655,8 +651,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
 			  outfile);
 	  if (section)
 	    fprintf_filtered (outfile, " section %s",
-			      bfd_section_name (section->the_bfd_section->owner,
-						section->the_bfd_section));
+			      bfd_section_name (section->the_bfd_section));
 	  break;
 
 	case LOC_COMPUTED:
diff --git a/gdb/symtab.c b/gdb/symtab.c
index e2edad4fb1..35eab08cb3 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -1033,20 +1033,17 @@ matching_obj_sections (struct obj_section *obj_first,
      have the same size, address, and name.  We can't compare section indexes,
      which would be more reliable, because some sections may have been
      stripped.  */
-  if (bfd_get_section_size (first) != bfd_get_section_size (second))
+  if (bfd_section_size (first) != bfd_section_size (second))
     return 0;
 
   /* In-memory addresses may start at a different offset, relativize them.  */
-  if (bfd_get_section_vma (first->owner, first)
-      - bfd_get_start_address (first->owner)
-      != bfd_get_section_vma (second->owner, second)
-	 - bfd_get_start_address (second->owner))
+  if (bfd_section_vma (first) - bfd_get_start_address (first->owner)
+      != bfd_section_vma (second) - bfd_get_start_address (second->owner))
     return 0;
 
-  if (bfd_get_section_name (first->owner, first) == NULL
-      || bfd_get_section_name (second->owner, second) == NULL
-      || strcmp (bfd_get_section_name (first->owner, first),
-		 bfd_get_section_name (second->owner, second)) != 0)
+  if (bfd_section_name (first) == NULL
+      || bfd_section_name (second) == NULL
+      || strcmp (bfd_section_name (first), bfd_section_name (second)) != 0)
     return 0;
 
   /* Otherwise check that they are in corresponding objfiles.  */
diff --git a/gdb/target.c b/gdb/target.c
index 599e22a724..78bdfeb49a 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -1042,9 +1042,7 @@ memory_xfer_partial_1 (struct target_ops *ops, enum target_object object,
 
       secp = target_section_by_addr (ops, memaddr);
       if (secp != NULL
-	  && (bfd_get_section_flags (secp->the_bfd_section->owner,
-				     secp->the_bfd_section)
-	      & SEC_READONLY))
+	  && (bfd_section_flags (secp->the_bfd_section) & SEC_READONLY))
 	{
 	  table = target_get_section_table (ops);
 	  return section_table_xfer_memory_partial (readbuf, writebuf,
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index c4fde913af..26030e0a92 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -794,8 +794,7 @@ windows_make_so (const char *name, LPVOID load_addr)
 	 file header and the section alignment.  */
       cygwin_load_start = (CORE_ADDR) (uintptr_t) ((char *)
 						   load_addr + 0x1000);
-      cygwin_load_end = cygwin_load_start + bfd_section_size (abfd.get (),
-							      text);
+      cygwin_load_end = cygwin_load_start + bfd_section_size (text);
     }
 #endif
 
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index a17031a110..2fa2706653 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -267,9 +267,9 @@ find_targ_sec (bfd *abfd, asection *sect, void *obj)
   if (sect->target_index == args->targ_index)
     {
       /* This is the section.  Figure out what SECT_OFF_* code it is.  */
-      if (bfd_get_section_flags (abfd, sect) & SEC_CODE)
+      if (bfd_section_flags (sect) & SEC_CODE)
 	*args->resultp = SECT_OFF_TEXT (objfile);
-      else if (bfd_get_section_flags (abfd, sect) & SEC_LOAD)
+      else if (bfd_section_flags (sect) & SEC_LOAD)
 	*args->resultp = SECT_OFF_DATA (objfile);
       else
 	*args->resultp = gdb_bfd_section_index (abfd, sect);
@@ -2354,7 +2354,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
 		       section.  */
 		    bfd_sect = secnum_to_bfd_section (symbol.n_scnum, objfile);
 		    if (bfd_sect)
-		      toc_offset -= bfd_section_vma (objfile->obfd, bfd_sect);
+		      toc_offset -= bfd_section_vma (bfd_sect);
 		    break;
 
 		  case XMC_TC:
@@ -2952,7 +2952,7 @@ xcoff_initial_scan (struct objfile *objfile, symfile_add_flags symfile_flags)
 	  secp = bfd_get_section_by_name (abfd, ".debug");
 	  if (secp)
 	    {
-	      length = bfd_section_size (abfd, secp);
+	      length = bfd_section_size (secp);
 	      if (length)
 		{
 		  debugsec
@@ -3029,8 +3029,7 @@ xcoff_symfile_offsets (struct objfile *objfile,
   if (objfile->num_sections == 0)
     return; /* Is that even possible?  Better safe than sorry.  */
 
-  first_section_name
-    = bfd_section_name (objfile->obfd, objfile->sections[0].the_bfd_section);
+  first_section_name = bfd_section_name (objfile->sections[0].the_bfd_section);
 
   if (objfile->sect_index_text == 0
       && strcmp (first_section_name, ".text") != 0)
@@ -3089,7 +3088,7 @@ xcoff_get_core_n_import_files (bfd *abfd)
   if (sect == NULL)
     return -1;  /* Not a core file.  */
 
-  for (offset = 0; offset < bfd_get_section_size (sect);)
+  for (offset = 0; offset < bfd_section_size (sect);)
     {
       int next;
 
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
index a2ebab5e04..84285aa30d 100644
--- a/gprof/ChangeLog
+++ b/gprof/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* corefile.c, * symtab.c: Update throughout for bfd section
+	macro and function changes.
+
 2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* Makefile.in: Re-generate.
diff --git a/gprof/corefile.c b/gprof/corefile.c
index 3f350f5f6b..ba6fd9c54f 100644
--- a/gprof/corefile.c
+++ b/gprof/corefile.c
@@ -271,17 +271,17 @@ core_init (const char * aout_name)
 void
 core_get_text_space (bfd *cbfd)
 {
-  core_text_space = malloc (bfd_get_section_size (core_text_sect));
+  core_text_space = malloc (bfd_section_size (core_text_sect));
 
   if (!core_text_space)
     {
       fprintf (stderr, _("%s: ran out room for %lu bytes of text space\n"),
-	       whoami, (unsigned long) bfd_get_section_size (core_text_sect));
+	       whoami, (unsigned long) bfd_section_size (core_text_sect));
       done (1);
     }
 
   if (!bfd_get_section_contents (cbfd, core_text_sect, core_text_space,
-				 0, bfd_get_section_size (core_text_sect)))
+				 0, bfd_section_size (core_text_sect)))
     {
       bfd_perror ("bfd_get_section_contents");
       free (core_text_space);
@@ -675,7 +675,7 @@ core_create_function_syms (void)
       sym_sec = core_syms[i]->section;
       symtab.limit->addr = core_syms[i]->value;
       if (sym_sec)
-	symtab.limit->addr += bfd_get_section_vma (sym_sec->owner, sym_sec);
+	symtab.limit->addr += bfd_section_vma (sym_sec);
 
       if (found)
 	{
@@ -734,8 +734,8 @@ core_create_function_syms (void)
 	 section containing the symbol, if available.  */
       min_vma = MIN (symtab.limit->addr, min_vma);
       if (sym_sec)
-	max_vma = MAX (bfd_get_section_vma (sym_sec->owner, sym_sec)
-		       + bfd_section_size (sym_sec->owner, sym_sec) - 1,
+	max_vma = MAX (bfd_section_vma (sym_sec)
+		       + bfd_section_size (sym_sec) - 1,
 		       max_vma);
       else
 	max_vma = MAX (symtab.limit->addr, max_vma);
@@ -787,7 +787,7 @@ core_create_line_syms (void)
   ltab.len = 0;
   prev_line_num = 0;
 
-  vma_high = core_text_sect->vma + bfd_get_section_size (core_text_sect);
+  vma_high = core_text_sect->vma + bfd_section_size (core_text_sect);
   for (vma = core_text_sect->vma; vma < vma_high; vma += min_insn_size)
     {
       unsigned int len;
diff --git a/gprof/symtab.c b/gprof/symtab.c
index 70eb41573b..eb63aa926a 100644
--- a/gprof/symtab.c
+++ b/gprof/symtab.c
@@ -149,7 +149,7 @@ symtab_finalize (Sym_Table *tab)
 
   if (tab->len > 0 && dst[-1].end_addr == 0)
     dst[-1].end_addr
-      = core_text_sect->vma + bfd_get_section_size (core_text_sect) - 1;
+      = core_text_sect->vma + bfd_section_size (core_text_sect) - 1;
 
   DBG (AOUTDEBUG | IDDEBUG,
        printf ("[symtab_finalize]: removed %d duplicate entries\n",
diff --git a/ld/ChangeLog b/ld/ChangeLog
index e8f9ed7365..2abb558b9c 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* ldcref.c, * ldctor.c, * ldelf.c, * ldlang.c, * pe-dll.c,
+	* emultempl/aarch64elf.em, * emultempl/aix.em,
+	* emultempl/armcoff.em, * emultempl/armelf.em,
+	* emultempl/cr16elf.em, * emultempl/cskyelf.em,
+	* emultempl/m68hc1xelf.em, * emultempl/m68kelf.em,
+	* emultempl/mipself.em, * emultempl/mmix-elfnmmo.em,
+	* emultempl/mmo.em, * emultempl/msp430.em,
+	* emultempl/nios2elf.em, * emultempl/pe.em, * emultempl/pep.em,
+	* emultempl/ppc64elf.em, * emultempl/xtensaelf.em: Update
+	throughout for bfd section macro and function changes.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* ldcref.c (check_reloc_refs): Update bfd_get_section to
diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em
index 7ffb17e7a9..bd5c888782 100644
--- a/ld/emultempl/aarch64elf.em
+++ b/ld/emultempl/aarch64elf.em
@@ -178,7 +178,7 @@ elf${ELFSIZE}_aarch64_add_stub_section (const char *stub_sec_name,
 
   /* Long branch stubs contain a 64-bit address, so the section requires
      8 byte alignment.  */
-  bfd_set_section_alignment (stub_file->the_bfd, stub_sec, 3);
+  bfd_set_section_alignment (stub_sec, 3);
 
   output_section = input_section->output_section;
   os = lang_output_section_get (output_section);
diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em
index 8151a9d5e9..1ce8376a52 100644
--- a/ld/emultempl/aix.em
+++ b/ld/emultempl/aix.em
@@ -895,7 +895,7 @@ gld${EMULATION_NAME}_before_allocation (void)
       if (is == NULL)
 	{
 	  einfo (_("%F%P: can't find %s in output section\n"),
-		 bfd_get_section_name (sec->owner, sec));
+		 bfd_section_name (sec));
 	}
 
       /* Now figure out where the section should go.  */
diff --git a/ld/emultempl/armcoff.em b/ld/emultempl/armcoff.em
index 20122aa03f..180e1faa27 100644
--- a/ld/emultempl/armcoff.em
+++ b/ld/emultempl/armcoff.em
@@ -176,8 +176,7 @@ gld${EMULATION_NAME}_finish (void)
 	  /* Special procesing is required for a Thumb entry symbol.  The
 	     bottom bit of its address must be set.  */
 	  val = (h->u.def.value
-		 + bfd_get_section_vma (link_info.output_bfd,
-					h->u.def.section->output_section)
+		 + bfd_section_vma (h->u.def.section->output_section)
 		 + h->u.def.section->output_offset);
 
 	  val |= 1;
diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em
index bb32bbbda4..0cbfcc70b3 100644
--- a/ld/emultempl/armelf.em
+++ b/ld/emultempl/armelf.em
@@ -232,7 +232,7 @@ elf32_arm_add_stub_section (const char * stub_sec_name,
   if (stub_sec == NULL)
     goto err_ret;
 
-  bfd_set_section_alignment (stub_file->the_bfd, stub_sec, alignment_power);
+  bfd_set_section_alignment (stub_sec, alignment_power);
 
   os = lang_output_section_get (output_section);
 
@@ -478,8 +478,7 @@ gld${EMULATION_NAME}_finish (void)
       /* Special procesing is required for a Thumb entry symbol.  The
 	 bottom bit of its address must be set.  */
       val = (h->u.def.value
-	     + bfd_get_section_vma (link_info.output_bfd,
-				    h->u.def.section->output_section)
+	     + bfd_section_vma (h->u.def.section->output_section)
 	     + h->u.def.section->output_offset);
 
       val |= 1;
diff --git a/ld/emultempl/cr16elf.em b/ld/emultempl/cr16elf.em
index 197f0c6391..9cdd356e35 100644
--- a/ld/emultempl/cr16elf.em
+++ b/ld/emultempl/cr16elf.em
@@ -75,14 +75,12 @@ cr16_elf_after_open (void)
 
 	      relsec = bfd_make_section (abfd, ".emreloc");
 	      if (relsec == NULL
-		  || ! bfd_set_section_flags (abfd, relsec,
-					      (SEC_ALLOC
-					       | SEC_LOAD
-					       | SEC_HAS_CONTENTS
-					       | SEC_IN_MEMORY))
-		  || ! bfd_set_section_alignment (abfd, relsec, 2)
-		  || ! bfd_set_section_size (abfd, relsec,
-					     datasec->reloc_count * 8))
+		  || !bfd_set_section_flags (relsec, (SEC_ALLOC
+						      | SEC_LOAD
+						      | SEC_HAS_CONTENTS
+						      | SEC_IN_MEMORY))
+		  || !bfd_set_section_alignment (relsec, 2)
+		  || !bfd_set_section_size (relsec, datasec->reloc_count * 8))
 		einfo (_("%F%P: %pB: can not create .emreloc section: %E\n"));
 	    }
 
@@ -99,11 +97,11 @@ cr16_elf_after_open (void)
 static void
 check_sections (bfd *abfd, asection *sec, void *datasec)
 {
-  if ((strncmp (bfd_get_section_name (abfd, sec), ".data.rel", 9) == 0)
+  if ((strncmp (bfd_section_name (sec), ".data.rel", 9) == 0)
       && sec != datasec
       && sec->reloc_count == 0 )
     einfo (_("%X%P: %pB: section %s has relocs; can not use --embedded-relocs\n"),
-	   abfd, bfd_get_section_name (abfd, sec));
+	   abfd, bfd_section_name (sec));
 }
 
 static void
diff --git a/ld/emultempl/cskyelf.em b/ld/emultempl/cskyelf.em
index 10d037c80d..9184808655 100644
--- a/ld/emultempl/cskyelf.em
+++ b/ld/emultempl/cskyelf.em
@@ -180,10 +180,10 @@ elf32_csky_add_stub_section (const char *stub_sec_name,
   if (stub_sec == NULL)
     goto err_ret;
 
-  bfd_set_section_alignment (stub_file->the_bfd, stub_sec, 3);
+  bfd_set_section_alignment (stub_sec, 3);
 
   output_section = input_section->output_section;
-  secname = bfd_get_section_name (output_section->owner, output_section);
+  secname = bfd_section_name (output_section);
   os = lang_output_section_find (secname);
 
   info.input_section = input_section;
diff --git a/ld/emultempl/m68hc1xelf.em b/ld/emultempl/m68hc1xelf.em
index b55989e0e6..b63e4e92d9 100644
--- a/ld/emultempl/m68hc1xelf.em
+++ b/ld/emultempl/m68hc1xelf.em
@@ -212,10 +212,8 @@ hook_in_stub (struct hook_stub_info *info, lang_statement_union_type **lp)
 
 	case lang_input_section_enum:
 	  if (l->input_section.section == info->input_section
-	      || strcmp (bfd_get_section_name (l->input_section.section->owner,
-					       l->input_section.section),
-			 bfd_get_section_name (info->input_section->owner,
-					       info->input_section)) == 0)
+	      || strcmp (bfd_section_name (l->input_section.section),
+			 bfd_section_name (info->input_section)) == 0)
 	    {
 	      /* We've found our section.  Insert the stub immediately
 		 before its associated input section.  */
diff --git a/ld/emultempl/m68kelf.em b/ld/emultempl/m68kelf.em
index add8fd21dc..c8d9eea934 100644
--- a/ld/emultempl/m68kelf.em
+++ b/ld/emultempl/m68kelf.em
@@ -102,9 +102,8 @@ m68k_elf_after_open (void)
 						    | SEC_HAS_CONTENTS
 						    | SEC_IN_MEMORY));
 	      if (relsec == NULL
-		  || ! bfd_set_section_alignment (abfd, relsec, 2)
-		  || ! bfd_set_section_size (abfd, relsec,
-					     datasec->reloc_count * 12))
+		  || !bfd_set_section_alignment (relsec, 2)
+		  || !bfd_set_section_size (relsec, datasec->reloc_count * 12))
 		einfo (_("%F%P: %pB: can not create .emreloc section: %E\n"));
 	    }
 
@@ -123,11 +122,11 @@ m68k_elf_after_open (void)
 static void
 check_sections (bfd *abfd, asection *sec, void *datasec)
 {
-  if ((bfd_get_section_flags (abfd, sec) & SEC_DATA)
+  if ((bfd_section_flags (sec) & SEC_DATA)
       && sec != datasec
       && sec->reloc_count != 0)
     einfo (_("%X%P: %pB: section %s has relocs; can not use --embedded-relocs\n"),
-	   abfd, bfd_get_section_name (abfd, sec));
+	   abfd, bfd_section_name (sec));
 }
 
 #endif /* SUPPORT_EMBEDDED_RELOCS */
diff --git a/ld/emultempl/mipself.em b/ld/emultempl/mipself.em
index 108d33faf3..48944d5309 100644
--- a/ld/emultempl/mipself.em
+++ b/ld/emultempl/mipself.em
@@ -168,7 +168,7 @@ mips_add_stub_section (const char *stub_sec_name, asection *input_section,
   /* Set the flags.  */
   flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
 	   | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_KEEP);
-  if (!bfd_set_section_flags (stub_bfd, stub_sec, flags))
+  if (!bfd_set_section_flags (stub_sec, flags))
     goto err_ret;
 
   os = lang_output_section_get (output_section);
diff --git a/ld/emultempl/mmix-elfnmmo.em b/ld/emultempl/mmix-elfnmmo.em
index 736988b0cf..7cb4087a93 100644
--- a/ld/emultempl/mmix-elfnmmo.em
+++ b/ld/emultempl/mmix-elfnmmo.em
@@ -103,14 +103,14 @@ mmix_after_allocation (void)
     }
 
   /* Set vma to correspond to first such register number * 8.  */
-  bfd_set_section_vma (link_info.output_bfd, sec, (bfd_vma) regvma);
+  bfd_set_section_vma (sec, (bfd_vma) regvma);
 
   /* Simplify symbol output for the register section (without contents;
      created for register symbols) by setting the output offset to 0.
      This section is only present when there are register symbols.  */
   sec = bfd_get_section_by_name (link_info.output_bfd, MMIX_REG_SECTION_NAME);
   if (sec != NULL)
-    bfd_set_section_vma (sec->owner, sec, 0);
+    bfd_set_section_vma (sec, 0);
 
   if (!_bfd_mmix_after_linker_allocation (link_info.output_bfd, &link_info))
     {
diff --git a/ld/emultempl/mmo.em b/ld/emultempl/mmo.em
index 62ee144416..fff48942bc 100644
--- a/ld/emultempl/mmo.em
+++ b/ld/emultempl/mmo.em
@@ -192,10 +192,10 @@ mmo_place_orphan (asection *s,
    paper over the bug similarly.  */
 
 static void
-mmo_wipe_sec_reloc_flag (bfd *abfd, asection *sec, void *ptr ATTRIBUTE_UNUSED)
+mmo_wipe_sec_reloc_flag (bfd *abfd ATTRIBUTE_UNUSED, asection *sec,
+			 void *ptr ATTRIBUTE_UNUSED)
 {
-  bfd_set_section_flags (abfd, sec,
-			 bfd_get_section_flags (abfd, sec) & ~SEC_RELOC);
+  bfd_set_section_flags (sec, bfd_section_flags (sec) & ~SEC_RELOC);
 }
 
 /* Iterate with bfd_map_over_sections over mmo_wipe_sec_reloc_flag... */
diff --git a/ld/emultempl/msp430.em b/ld/emultempl/msp430.em
index 765a9ea288..8f25489528 100644
--- a/ld/emultempl/msp430.em
+++ b/ld/emultempl/msp430.em
@@ -382,10 +382,10 @@ change_output_section (lang_statement_union_type ** head,
 }
 
 static void
-add_region_prefix (bfd *abfd, asection *s,
-		   ATTRIBUTE_UNUSED void *unused)
+add_region_prefix (bfd *abfd ATTRIBUTE_UNUSED, asection *s,
+		   void *unused ATTRIBUTE_UNUSED)
 {
-  const char *curr_name = bfd_get_section_name (abfd, s);
+  const char *curr_name = bfd_section_name (s);
   int region = REGION_NONE;
 
   if (strncmp (curr_name, ".text", 5) == 0)
@@ -404,10 +404,10 @@ add_region_prefix (bfd *abfd, asection *s,
     case REGION_NONE:
       break;
     case REGION_UPPER:
-      bfd_rename_section (abfd, s, concat (".upper", curr_name, NULL));
+      bfd_rename_section (s, concat (".upper", curr_name, NULL));
       break;
     case REGION_LOWER:
-      bfd_rename_section (abfd, s, concat (".lower", curr_name, NULL));
+      bfd_rename_section (s, concat (".lower", curr_name, NULL));
       break;
     case REGION_EITHER:
       s->name = concat (".either", curr_name, NULL);
@@ -538,7 +538,8 @@ gld${EMULATION_NAME}_handle_option (int optc)
 }
 
 static void
-eval_upper_either_sections (bfd *abfd, asection *s, void *data)
+eval_upper_either_sections (bfd *abfd ATTRIBUTE_UNUSED,
+			    asection *s, void *data)
 {
   const char * base_sec_name;
   const char * curr_name;
@@ -560,7 +561,7 @@ eval_upper_either_sections (bfd *abfd, asection *s, void *data)
     return;
 
   base_sec_name = (const char *) data;
-  curr_name = bfd_get_section_name (abfd, s);
+  curr_name = bfd_section_name (s);
 
   /* Only concerned with .either input sections in the upper output section.  */
   either_name = concat (".either", base_sec_name, NULL);
@@ -620,7 +621,8 @@ eval_upper_either_sections (bfd *abfd, asection *s, void *data)
 }
 
 static void
-eval_lower_either_sections (bfd *abfd, asection *s, void *data)
+eval_lower_either_sections (bfd *abfd ATTRIBUTE_UNUSED,
+			    asection *s, void *data)
 {
   const char * base_sec_name;
   const char * curr_name;
@@ -640,7 +642,7 @@ eval_lower_either_sections (bfd *abfd, asection *s, void *data)
     return;
 
   base_sec_name = (const char *) data;
-  curr_name = bfd_get_section_name (abfd, s);
+  curr_name = bfd_section_name (s);
 
   /* Only concerned with .either input sections in the lower or "default"
      output section i.e. not in the upper output section.  */
diff --git a/ld/emultempl/nios2elf.em b/ld/emultempl/nios2elf.em
index 02eb06fb57..816da6ca72 100644
--- a/ld/emultempl/nios2elf.em
+++ b/ld/emultempl/nios2elf.em
@@ -181,7 +181,7 @@ nios2elf_add_stub_section (const char *stub_sec_name, asection *input_section,
     goto err_ret;
 
   output_section = input_section->output_section;
-  secname = bfd_get_section_name (output_section->owner, output_section);
+  secname = bfd_section_name (output_section);
   os = lang_output_section_find (secname);
 
   info.input_section = input_section;
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 2e78f26ad8..70f771cebd 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -1920,8 +1920,7 @@ gld_${EMULATION_NAME}_finish (void)
 	  /* Special procesing is required for a Thumb entry symbol.  The
 	     bottom bit of its address must be set.  */
 	  val = (h->u.def.value
-		 + bfd_get_section_vma (link_info.output_bfd,
-					h->u.def.section->output_section)
+		 + bfd_section_vma (h->u.def.section->output_section)
 		 + h->u.def.section->output_offset);
 
 	  val |= 1;
@@ -2182,7 +2181,7 @@ gld_${EMULATION_NAME}_place_orphan (asection *s,
 
       ls = &(*pl)->input_section;
 
-      lname = bfd_get_section_name (ls->section->owner, ls->section);
+      lname = bfd_section_name (ls->section);
       if (strchr (lname, '\$') != NULL
 	  && (dollar == NULL || strcmp (orig_secname, lname) < 0))
 	break;
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index 601ef11c20..6d150d211a 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -1979,7 +1979,7 @@ gld_${EMULATION_NAME}_place_orphan (asection *s,
 
       ls = &(*pl)->input_section;
 
-      lname = bfd_get_section_name (ls->section->owner, ls->section);
+      lname = bfd_section_name (ls->section);
       if (strchr (lname, '\$') != NULL
 	  && (dollar == NULL || strcmp (orig_secname, lname) < 0))
 	break;
diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em
index 6df2a20cfc..ee71f256c6 100644
--- a/ld/emultempl/ppc64elf.em
+++ b/ld/emultempl/ppc64elf.em
@@ -421,12 +421,11 @@ ppc_add_stub_section (const char *stub_sec_name, asection *input_section)
   stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
 						 stub_sec_name, flags);
   if (stub_sec == NULL
-      || !bfd_set_section_alignment (stub_file->the_bfd, stub_sec,
-				     (params.plt_stub_align > 5
-				      ? params.plt_stub_align
-				      : params.plt_stub_align < -5
-				      ? -params.plt_stub_align
-				      : 5)))
+      || !bfd_set_section_alignment (stub_sec, (params.plt_stub_align > 5
+						? params.plt_stub_align
+						: params.plt_stub_align < -5
+						? -params.plt_stub_align
+						: 5)))
     goto err_ret;
 
   output_section = input_section->output_section;
diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em
index c826363f5c..569df615ce 100644
--- a/ld/emultempl/xtensaelf.em
+++ b/ld/emultempl/xtensaelf.em
@@ -127,9 +127,9 @@ replace_insn_sec_with_prop_sec (bfd *abfd,
   /* Create a property table section for it.  */
   prop_sec_name = strdup (prop_sec_name);
   prop_sec = bfd_make_section_with_flags
-    (abfd, prop_sec_name, bfd_get_section_flags (abfd, insn_sec));
+    (abfd, prop_sec_name, bfd_section_flags (insn_sec));
   if (prop_sec == NULL
-      || ! bfd_set_section_alignment (abfd, prop_sec, 2))
+      || !bfd_set_section_alignment (prop_sec, 2))
     {
       *error_message = _("could not create new section");
       goto cleanup;
@@ -247,7 +247,7 @@ replace_instruction_table_sections (bfd *abfd, asection *sec)
   char *owned_prop_sec_name = NULL;
   const char *sec_name;
 
-  sec_name = bfd_get_section_name (abfd, sec);
+  sec_name = bfd_section_name (sec);
   if (strcmp (sec_name, INSN_SEC_BASE_NAME) == 0)
     {
       insn_sec_name = INSN_SEC_BASE_NAME;
@@ -1293,10 +1293,10 @@ static bfd_boolean
 is_inconsistent_linkonce_section (asection *sec)
 {
   bfd *abfd = sec->owner;
-  const char *sec_name = bfd_get_section_name (abfd, sec);
+  const char *sec_name = bfd_section_name (sec);
   const char *name;
 
-  if ((bfd_get_section_flags (abfd, sec) & SEC_LINK_ONCE) == 0
+  if ((bfd_section_flags (sec) & SEC_LINK_ONCE) == 0
       || strncmp (sec_name, ".gnu.linkonce.", linkonce_len) != 0)
     return FALSE;
 
diff --git a/ld/ldcref.c b/ld/ldcref.c
index fff852a89a..576cf7e388 100644
--- a/ld/ldcref.c
+++ b/ld/ldcref.c
@@ -574,7 +574,7 @@ check_nocrossref (struct cref_hash_entry *h, void *ignore ATTRIBUTE_UNUSED)
   defsec = hl->u.def.section->output_section;
   if (defsec == NULL)
     return TRUE;
-  defsecname = bfd_get_section_name (defsec->owner, defsec);
+  defsecname = bfd_section_name (defsec);
 
   for (ncrs = nocrossref_list; ncrs != NULL; ncrs = ncrs->next)
     for (ncr = ncrs->list; ncr != NULL; ncr = ncr->next)
@@ -658,10 +658,10 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
   arelent **p, **pend;
 
   outsec = sec->output_section;
-  outsecname = bfd_get_section_name (outsec->owner, outsec);
+  outsecname = bfd_section_name (outsec);
 
   outdefsec = info->defsec->output_section;
-  outdefsecname = bfd_get_section_name (outdefsec->owner, outdefsec);
+  outdefsecname = bfd_section_name (outdefsec);
 
   /* The section where the symbol is defined is permitted.  */
   if (strcmp (outsecname, outdefsecname) == 0)
diff --git a/ld/ldctor.c b/ld/ldctor.c
index 608ca6c1f3..a6a6aa9e1e 100644
--- a/ld/ldctor.c
+++ b/ld/ldctor.c
@@ -293,7 +293,7 @@ ldctor_build_sets (void)
 	      /* See PR 20911 for a reproducer.  */
 	      if (p->elements->section->owner == NULL)
 		einfo (_("%X%P: special section %s does not support reloc %s for set %s\n"),
-		       bfd_get_section_name (link_info.output_bfd, p->elements->section),
+		       bfd_section_name (p->elements->section),
 		       bfd_get_reloc_code_name (p->reloc),
 		       p->h->root.string);
 	      else
diff --git a/ld/ldelf.c b/ld/ldelf.c
index 3b0f3ada8c..8d4a2e58a1 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -1065,7 +1065,7 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
 
 	  for (s = abfd->sections; s && type < COMPACT_EH_HDR; s = s->next)
 	    {
-	      const char *name = bfd_get_section_name (abfd, s);
+	      const char *name = bfd_section_name (s);
 
 	      if (bfd_is_abs_section (s->output_section))
 		continue;
@@ -1112,7 +1112,7 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
 					   bed->dynamic_sec_flags
 					   | SEC_READONLY);
 	  if (s != NULL
-	      && bfd_set_section_alignment (elfbfd, s, 2))
+	      && bfd_set_section_alignment (s, 2))
 	    {
 	      htab->eh_info.hdr_sec = s;
 	      warn_eh_frame = FALSE;
@@ -1382,7 +1382,7 @@ ldelf_setup_build_id (bfd *ibfd)
   flags = (SEC_ALLOC | SEC_LOAD | SEC_IN_MEMORY
 	   | SEC_LINKER_CREATED | SEC_READONLY | SEC_DATA);
   s = bfd_make_section_with_flags (ibfd, ".note.gnu.build-id", flags);
-  if (s != NULL && bfd_set_section_alignment (ibfd, s, 2))
+  if (s != NULL && bfd_set_section_alignment (s, 2))
     {
       struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
       t->o->build_id.after_write_object_contents = &write_build_id;
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 76e862a640..a3843623fb 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -319,7 +319,7 @@ walk_wild_section_general (lang_wild_statement_type *ptr,
 
 	  if (sec->spec.name != NULL)
 	    {
-	      const char *sname = bfd_get_section_name (file->the_bfd, s);
+	      const char *sname = bfd_section_name (s);
 
 	      skip = name_match (sec->spec.name, sname) != 0;
 	    }
@@ -452,10 +452,8 @@ compare_section (sort_type sort, asection *asec, asection *bsec)
       abort ();
 
     case by_init_priority:
-      ainit_priority
-	= get_init_priority (bfd_get_section_name (asec->owner, asec));
-      binit_priority
-	= get_init_priority (bfd_get_section_name (bsec->owner, bsec));
+      ainit_priority = get_init_priority (bfd_section_name (asec));
+      binit_priority = get_init_priority (bfd_section_name (bsec));
       if (ainit_priority == 0 || binit_priority == 0)
 	goto sort_by_name;
       ret = ainit_priority - binit_priority;
@@ -465,28 +463,24 @@ compare_section (sort_type sort, asection *asec, asection *bsec)
 	goto sort_by_name;
 
     case by_alignment_name:
-      ret = (bfd_section_alignment (bsec->owner, bsec)
-	     - bfd_section_alignment (asec->owner, asec));
+      ret = bfd_section_alignment (bsec) - bfd_section_alignment (asec);
       if (ret)
 	break;
       /* Fall through.  */
 
     case by_name:
 sort_by_name:
-      ret = strcmp (bfd_get_section_name (asec->owner, asec),
-		    bfd_get_section_name (bsec->owner, bsec));
+      ret = strcmp (bfd_section_name (asec), bfd_section_name (bsec));
       break;
 
     case by_name_alignment:
-      ret = strcmp (bfd_get_section_name (asec->owner, asec),
-		    bfd_get_section_name (bsec->owner, bsec));
+      ret = strcmp (bfd_section_name (asec), bfd_section_name (bsec));
       if (ret)
 	break;
       /* Fall through.  */
 
     case by_alignment:
-      ret = (bfd_section_alignment (bsec->owner, bsec)
-	     - bfd_section_alignment (asec->owner, asec));
+      ret = bfd_section_alignment (bsec) - bfd_section_alignment (asec);
       break;
     }
 
@@ -610,7 +604,7 @@ walk_wild_section_specs1_wild1 (lang_wild_statement_type *ptr,
 
   for (s = file->the_bfd->sections; s != NULL; s = s->next)
     {
-      const char *sname = bfd_get_section_name (file->the_bfd, s);
+      const char *sname = bfd_section_name (s);
       bfd_boolean skip = !match_simple_wild (wildsec0->spec.name, sname);
 
       if (!skip)
@@ -647,7 +641,7 @@ walk_wild_section_specs2_wild1 (lang_wild_statement_type *ptr,
 	walk_wild_consider_section (ptr, file, s, sec0, callback, data);
       else
 	{
-	  const char *sname = bfd_get_section_name (file->the_bfd, s);
+	  const char *sname = bfd_section_name (s);
 	  bfd_boolean skip = !match_simple_wild (wildsec1->spec.name, sname);
 
 	  if (!skip)
@@ -682,7 +676,7 @@ walk_wild_section_specs3_wild2 (lang_wild_statement_type *ptr,
 	walk_wild_consider_section (ptr, file, s, sec0, callback, data);
       else
 	{
-	  const char *sname = bfd_get_section_name (file->the_bfd, s);
+	  const char *sname = bfd_section_name (s);
 	  bfd_boolean skip = !match_simple_wild (wildsec1->spec.name, sname);
 
 	  if (!skip)
@@ -734,7 +728,7 @@ walk_wild_section_specs4_wild2 (lang_wild_statement_type *ptr,
 	  walk_wild_consider_section (ptr, file, s, sec1, callback, data);
 	else
 	  {
-	    const char *sname = bfd_get_section_name (file->the_bfd, s);
+	    const char *sname = bfd_section_name (s);
 	    bfd_boolean skip = !match_simple_wild (wildsec2->spec.name,
 						   sname);
 
@@ -5314,9 +5308,8 @@ lang_size_sections_1
 			   " section %s\n"), os->name);
 
 		input = os->children.head->input_section.section;
-		bfd_set_section_vma (os->bfd_section->owner,
-				     os->bfd_section,
-				     bfd_section_vma (input->owner, input));
+		bfd_set_section_vma (os->bfd_section,
+				     bfd_section_vma (input));
 		if (!(os->bfd_section->flags & SEC_FIXED_SIZE))
 		  os->bfd_section->size = input->size;
 		break;
@@ -5371,13 +5364,11 @@ lang_size_sections_1
 			if (command_line.check_section_addresses)
 			  einfo (_("%F%P: error: no memory region specified"
 				   " for loadable section `%s'\n"),
-				 bfd_get_section_name (link_info.output_bfd,
-						       os->bfd_section));
+				 bfd_section_name (os->bfd_section));
 			else
 			  einfo (_("%P: warning: no memory region specified"
 				   " for loadable section `%s'\n"),
-				 bfd_get_section_name (link_info.output_bfd,
-						       os->bfd_section));
+				 bfd_section_name (os->bfd_section));
 		      }
 
 		    newdot = os->region->current;
@@ -5406,7 +5397,7 @@ lang_size_sections_1
 			     os->name, (unsigned long) dotdelta);
 		  }
 
-		bfd_set_section_vma (0, os->bfd_section, newdot);
+		bfd_set_section_vma (os->bfd_section, newdot);
 
 		os->bfd_section->output_offset = 0;
 	      }
@@ -6464,8 +6455,7 @@ lang_end (void)
       bfd_vma val;
 
       val = (h->u.def.value
-	     + bfd_get_section_vma (link_info.output_bfd,
-				    h->u.def.section->output_section)
+	     + bfd_section_vma (h->u.def.section->output_section)
 	     + h->u.def.section->output_offset);
       if (!bfd_set_start_address (link_info.output_bfd, val))
 	einfo (_("%F%P: %s: can't set start address\n"), entry_symbol.name);
@@ -6496,10 +6486,9 @@ lang_end (void)
 		einfo (_("%P: warning: cannot find entry symbol %s;"
 			 " defaulting to %V\n"),
 		       entry_symbol.name,
-		       bfd_get_section_vma (link_info.output_bfd, ts));
-	      if (!(bfd_set_start_address
-		    (link_info.output_bfd,
-		     bfd_get_section_vma (link_info.output_bfd, ts))))
+		       bfd_section_vma (ts));
+	      if (!bfd_set_start_address (link_info.output_bfd,
+					  bfd_section_vma (ts)))
 		einfo (_("%F%P: can't set start address\n"));
 	    }
 	  else
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 577b911da8..3cfbc39e5b 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -1014,33 +1014,31 @@ build_filler_bfd (int include_edata)
     {
       edata_s = bfd_make_section_old_way (filler_bfd, ".edata");
       if (edata_s == NULL
-	  || !bfd_set_section_flags (filler_bfd, edata_s,
-				     (SEC_HAS_CONTENTS
-				      | SEC_ALLOC
-				      | SEC_LOAD
-				      | SEC_KEEP
-				      | SEC_IN_MEMORY)))
+	  || !bfd_set_section_flags (edata_s, (SEC_HAS_CONTENTS
+					       | SEC_ALLOC
+					       | SEC_LOAD
+					       | SEC_KEEP
+					       | SEC_IN_MEMORY)))
 	{
 	  einfo (_("%X%P: can not create .edata section: %E\n"));
 	  return;
 	}
-      bfd_set_section_size (filler_bfd, edata_s, edata_sz);
+      bfd_set_section_size (edata_s, edata_sz);
     }
 
   reloc_s = bfd_make_section_old_way (filler_bfd, ".reloc");
   if (reloc_s == NULL
-      || !bfd_set_section_flags (filler_bfd, reloc_s,
-				 (SEC_HAS_CONTENTS
-				  | SEC_ALLOC
-				  | SEC_LOAD
-				  | SEC_KEEP
-				  | SEC_IN_MEMORY)))
+      || !bfd_set_section_flags (reloc_s, (SEC_HAS_CONTENTS
+					   | SEC_ALLOC
+					   | SEC_LOAD
+					   | SEC_KEEP
+					   | SEC_IN_MEMORY)))
     {
       einfo (_("%X%P: can not create .reloc section: %E\n"));
       return;
     }
 
-  bfd_set_section_size (filler_bfd, reloc_s, 0);
+  bfd_set_section_size (reloc_s, 0);
 
   ldlang_add_file (filler_file);
 }
@@ -1303,7 +1301,7 @@ pe_walk_relocs (struct bfd_link_info *info,
 	{
 	  arelent **relocs;
 	  int relsize, nrelocs, i;
-	  int flags = bfd_get_section_flags (b, s);
+	  int flags = bfd_section_flags (s);
 
 	  /* Skip discarded linkonce sections.  */
 	  if (flags & SEC_LINK_ONCE
@@ -1947,8 +1945,8 @@ quick_section (bfd *abfd, const char *name, int flags, int align)
   asymbol *sym;
 
   sec = bfd_make_section_old_way (abfd, name);
-  bfd_set_section_flags (abfd, sec, flags | SEC_ALLOC | SEC_LOAD | SEC_KEEP);
-  bfd_set_section_alignment (abfd, sec, align);
+  bfd_set_section_flags (sec, flags | SEC_ALLOC | SEC_LOAD | SEC_KEEP);
+  bfd_set_section_alignment (sec, align);
   /* Remember to undo this before trying to link internally!  */
   sec->output_section = sec;
 
@@ -2072,7 +2070,7 @@ make_head (bfd *parent)
      pointer to the list points to the *end* of this section, which is
      the start of the list of sections from other objects.  */
 
-  bfd_set_section_size (abfd, id2, 20);
+  bfd_set_section_size (id2, 20);
   d2 = xmalloc (20);
   id2->contents = d2;
   memset (d2, 0, 20);
@@ -2084,16 +2082,16 @@ make_head (bfd *parent)
   save_relocs (id2);
 
   if (pe_use_nul_prefixed_import_tables)
-    bfd_set_section_size (abfd, id5, PE_IDATA5_SIZE);
+    bfd_set_section_size (id5, PE_IDATA5_SIZE);
   else
-    bfd_set_section_size (abfd, id5, 0);
+    bfd_set_section_size (id5, 0);
   d5 = xmalloc (PE_IDATA5_SIZE);
   id5->contents = d5;
   memset (d5, 0, PE_IDATA5_SIZE);
   if (pe_use_nul_prefixed_import_tables)
-    bfd_set_section_size (abfd, id4, PE_IDATA4_SIZE);
+    bfd_set_section_size (id4, PE_IDATA4_SIZE);
   else
-    bfd_set_section_size (abfd, id4, 0);
+    bfd_set_section_size (id4, 0);
   d4 = xmalloc (PE_IDATA4_SIZE);
   id4->contents = d4;
   memset (d4, 0, PE_IDATA4_SIZE);
@@ -2154,12 +2152,12 @@ make_tail (bfd *parent)
   id7 = quick_section (abfd, ".idata$7", SEC_HAS_CONTENTS, 2);
   quick_symbol (abfd, U (""), dll_symname, "_iname", id7, BSF_GLOBAL, 0);
 
-  bfd_set_section_size (abfd, id4, PE_IDATA4_SIZE);
+  bfd_set_section_size (id4, PE_IDATA4_SIZE);
   d4 = xmalloc (PE_IDATA4_SIZE);
   id4->contents = d4;
   memset (d4, 0, PE_IDATA4_SIZE);
 
-  bfd_set_section_size (abfd, id5, PE_IDATA5_SIZE);
+  bfd_set_section_size (id5, PE_IDATA5_SIZE);
   d5 = xmalloc (PE_IDATA5_SIZE);
   id5->contents = d5;
   memset (d5, 0, PE_IDATA5_SIZE);
@@ -2167,7 +2165,7 @@ make_tail (bfd *parent)
   len = strlen (dll_filename) + 1;
   if (len & 1)
     len++;
-  bfd_set_section_size (abfd, id7, len);
+  bfd_set_section_size (id7, len);
   d7 = xmalloc (len);
   id7->contents = d7;
   strcpy ((char *) d7, dll_filename);
@@ -2339,7 +2337,7 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
 
   if (include_jmp_stub)
     {
-      bfd_set_section_size (abfd, tx, jmp_byte_count);
+      bfd_set_section_size (tx, jmp_byte_count);
       td = xmalloc (jmp_byte_count);
       tx->contents = td;
       memcpy (td, jmp_bytes, jmp_byte_count);
@@ -2374,16 +2372,16 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
       save_relocs (tx);
     }
   else
-    bfd_set_section_size (abfd, tx, 0);
+    bfd_set_section_size (tx, 0);
 
-  bfd_set_section_size (abfd, id7, 4);
+  bfd_set_section_size (id7, 4);
   d7 = xmalloc (4);
   id7->contents = d7;
   memset (d7, 0, 4);
   quick_reloc (abfd, 0, BFD_RELOC_RVA, 5);
   save_relocs (id7);
 
-  bfd_set_section_size (abfd, id5, PE_IDATA5_SIZE);
+  bfd_set_section_size (id5, PE_IDATA5_SIZE);
   d5 = xmalloc (PE_IDATA5_SIZE);
   id5->contents = d5;
   memset (d5, 0, PE_IDATA5_SIZE);
@@ -2400,7 +2398,7 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
       save_relocs (id5);
     }
 
-  bfd_set_section_size (abfd, id4, PE_IDATA4_SIZE);
+  bfd_set_section_size (id4, PE_IDATA4_SIZE);
   d4 = xmalloc (PE_IDATA4_SIZE);
   id4->contents = d4;
   memset (d4, 0, PE_IDATA4_SIZE);
@@ -2420,7 +2418,7 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
   if (exp->flag_noname)
     {
       len = 0;
-      bfd_set_section_size (abfd, id6, 0);
+      bfd_set_section_size (id6, 0);
     }
   else
     {
@@ -2433,7 +2431,7 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
 	len = 2 + strlen (exp->name) + 1;
       if (len & 1)
 	len++;
-      bfd_set_section_size (abfd, id6, len);
+      bfd_set_section_size (id6, len);
       d6 = xmalloc (len);
       id6->contents = d6;
       memset (d6, 0, len);
@@ -2491,7 +2489,7 @@ make_singleton_name_thunk (const char *import, bfd *parent)
   quick_symbol (abfd, "__nm_", import, "", UNDSEC, BSF_GLOBAL, 0);
 
   /* We need space for the real thunk and for the null terminator.  */
-  bfd_set_section_size (abfd, id4, PE_IDATA4_SIZE * 2);
+  bfd_set_section_size (id4, PE_IDATA4_SIZE * 2);
   d4 = xmalloc (PE_IDATA4_SIZE * 2);
   id4->contents = d4;
   memset (d4, 0, PE_IDATA4_SIZE * 2);
@@ -2568,7 +2566,7 @@ make_import_fixup_entry (const char *name,
   quick_symbol (abfd, U (""), symname, "_iname", UNDSEC, BSF_GLOBAL, 0);
   quick_symbol (abfd, "", fixup_name, "", UNDSEC, BSF_GLOBAL, 0);
 
-  bfd_set_section_size (abfd, id2, 20);
+  bfd_set_section_size (id2, 20);
   d2 = xmalloc (20);
   id2->contents = d2;
   memset (d2, 0, 20);
@@ -2643,7 +2641,7 @@ make_runtime_pseudo_reloc (const char *name ATTRIBUTE_UNUSED,
 
       quick_symbol (abfd, "__imp_", name, "", UNDSEC, BSF_GLOBAL, 0);
 
-      bfd_set_section_size (abfd, rt_rel, size);
+      bfd_set_section_size (rt_rel, size);
       rt_rel_d = xmalloc (size);
       rt_rel->contents = rt_rel_d;
       memset (rt_rel_d, 0, size);
@@ -2660,7 +2658,7 @@ make_runtime_pseudo_reloc (const char *name ATTRIBUTE_UNUSED,
     }
   else
     {
-      bfd_set_section_size (abfd, rt_rel, 8);
+      bfd_set_section_size (rt_rel, 8);
       rt_rel_d = xmalloc (8);
       rt_rel->contents = rt_rel_d;
       memset (rt_rel_d, 0, 8);
@@ -2708,7 +2706,7 @@ pe_create_runtime_relocator_reference (bfd *parent)
   quick_symbol (abfd, "", U ("_pei386_runtime_relocator"), "", UNDSEC,
 		BSF_NO_FLAGS, 0);
 
-  bfd_set_section_size (abfd, extern_rt_rel, PE_IDATA5_SIZE);
+  bfd_set_section_size (extern_rt_rel, PE_IDATA5_SIZE);
   extern_rt_rel_d = xcalloc (1, PE_IDATA5_SIZE);
   extern_rt_rel->contents = extern_rt_rel_d;
 
@@ -3571,7 +3569,7 @@ pe_dll_fill_sections (bfd *abfd, struct bfd_link_info *info)
   generate_reloc (abfd, info);
   if (reloc_sz > 0)
     {
-      bfd_set_section_size (filler_bfd, reloc_s, reloc_sz);
+      bfd_set_section_size (reloc_s, reloc_sz);
 
       /* Resize the sections.  */
       lang_reset_memory_regions ();
@@ -3603,7 +3601,7 @@ pe_exe_fill_sections (bfd *abfd, struct bfd_link_info *info)
   generate_reloc (abfd, info);
   if (reloc_sz > 0)
     {
-      bfd_set_section_size (filler_bfd, reloc_s, reloc_sz);
+      bfd_set_section_size (reloc_s, reloc_sz);
 
       /* Resize the sections.  */
       lang_reset_memory_regions ();
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index e56e2c0b86..8a82ed0565 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* ctf-open-bfd.c: Update throughout for bfd section macro changes.
+
 2019-09-09  Phil Blundell  <pb@pbcl.net>
 
 	binutils 2.33 branch created.
diff --git a/libctf/ctf-open-bfd.c b/libctf/ctf-open-bfd.c
index bb2d7e64de..6a0c15531e 100644
--- a/libctf/ctf-open-bfd.c
+++ b/libctf/ctf-open-bfd.c
@@ -100,7 +100,7 @@ ctf_bfdopen (struct bfd *abfd, int *errp)
 
   ctfsect.cts_name = _CTF_SECTION;
   ctfsect.cts_entsize = 1;
-  ctfsect.cts_size = bfd_section_size (abfd, ctf_asect);
+  ctfsect.cts_size = bfd_section_size (ctf_asect);
   ctfsect.cts_data = contents;
 
   if ((arc = ctf_bfdopen_ctfsect (abfd, &ctfsect, errp)) != NULL)
@@ -157,7 +157,7 @@ ctf_bfdopen_ctfsect (struct bfd *abfd _libctf_unused_,
 	    }
 	  strsect.cts_data = contents;
 	  strsect.cts_name = (char *) strsect.cts_data + strhdr->sh_name;
-	  strsect.cts_size = bfd_section_size (abfd, str_asect);
+	  strsect.cts_size = bfd_section_size (str_asect);
 	  strsect.cts_entsize = strhdr->sh_size;
 	  strsectp = &strsect;
 
@@ -170,7 +170,7 @@ ctf_bfdopen_ctfsect (struct bfd *abfd _libctf_unused_,
 
 	  symsect.cts_name = (char *) strsect.cts_data + symhdr->sh_name;
 	  symsect.cts_entsize = symhdr->sh_size;
-	  symsect.cts_size = bfd_section_size (abfd, sym_asect);
+	  symsect.cts_size = bfd_section_size (sym_asect);
 	  symsect.cts_data = contents;
 	  symsectp = &symsect;
 	}
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index d5b412275f..0d8abcd7ff 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* arc-ext.c: Update throughout for bfd section macro changes.
+
 2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* Makefile.in: Re-generate.
diff --git a/opcodes/arc-ext.c b/opcodes/arc-ext.c
index bf578871d7..cfb13aa0e1 100644
--- a/opcodes/arc-ext.c
+++ b/opcodes/arc-ext.c
@@ -438,7 +438,7 @@ build_ARC_extmap (bfd *text_bfd)
 	  sizeof (".gnu.linkonce.arcextmap.") - 1)
 	|| !strcmp (sect->name,".arcextmap"))
       {
-	bfd_size_type  count  = bfd_get_section_size (sect);
+	bfd_size_type  count  = bfd_section_size (sect);
 	unsigned char* buffer = xmalloc (count);
 
 	if (buffer)
diff --git a/sim/ChangeLog b/sim/ChangeLog
index d16f2cfa57..191e2370a9 100644
--- a/sim/ChangeLog
+++ b/sim/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-18  Alan Modra  <amodra@gmail.com>
+
+	* common/sim-load.c, * common/sim-utils.c, * cris/sim-if.c,
+	* erc32/func.c, * lm32/sim-if.c, * m32c/load.c, * m32c/trace.c,
+	* m68hc11/interp.c, * ppc/hw_htab.c, * ppc/hw_init.c,
+	* rl78/load.c, * rl78/trace.c, * rx/gdb-if.c, * rx/load.c,
+	* rx/trace.c: Update throughout for bfd section macro changes.
+
 2019-06-13  Stafford Horne  <shorne@gmail.com>
 
 	* or1k/cpu.c: Regenerate.
diff --git a/sim/common/sim-load.c b/sim/common/sim-load.c
index c198027824..ff06497d5c 100644
--- a/sim/common/sim-load.c
+++ b/sim/common/sim-load.c
@@ -101,7 +101,7 @@ sim_load_file (SIM_DESC sd, const char *myname, host_callback *callback,
 	{
 	  bfd_size_type size;
 
-	  size = bfd_get_section_size (s);
+	  size = bfd_section_size (s);
 	  if (size > 0)
 	    {
 	      unsigned char *buffer;
@@ -119,13 +119,13 @@ sim_load_file (SIM_DESC sd, const char *myname, host_callback *callback,
 		  return NULL;
 		}
 	      if (lma_p)
-		lma = bfd_section_lma (result_bfd, s);
+		lma = bfd_section_lma (s);
 	      else
-		lma = bfd_section_vma (result_bfd, s);
+		lma = bfd_section_vma (s);
 	      if (verbose_p)
 		{
 		  xprintf (callback, "Loading section %s, size 0x%lx %s ",
-			   bfd_get_section_name (result_bfd, s),
+			   bfd_section_name (s),
 			   (unsigned long) size,
 			   (lma_p ? "lma" : "vma"));
 		  xprintf_bfd_vma (callback, lma);
diff --git a/sim/common/sim-utils.c b/sim/common/sim-utils.c
index c94b2f77ac..e83a2e4d0c 100644
--- a/sim/common/sim-utils.c
+++ b/sim/common/sim-utils.c
@@ -263,11 +263,11 @@ sim_analyze_program (SIM_DESC sd, const char *prog_name, bfd *prog_bfd)
   STATE_START_ADDR (sd) = bfd_get_start_address (prog_bfd);
 
   for (s = prog_bfd->sections; s; s = s->next)
-    if (strcmp (bfd_get_section_name (prog_bfd, s), ".text") == 0)
+    if (strcmp (bfd_section_name (s), ".text") == 0)
       {
 	STATE_TEXT_SECTION (sd) = s;
-	STATE_TEXT_START (sd) = bfd_get_section_vma (prog_bfd, s);
-	STATE_TEXT_END (sd) = STATE_TEXT_START (sd) + bfd_section_size (prog_bfd, s);
+	STATE_TEXT_START (sd) = bfd_section_vma (s);
+	STATE_TEXT_END (sd) = STATE_TEXT_START (sd) + bfd_section_size (s);
 	break;
       }
 
diff --git a/sim/cris/sim-if.c b/sim/cris/sim-if.c
index 1a5d421caf..ebfb0e586b 100644
--- a/sim/cris/sim-if.c
+++ b/sim/cris/sim-if.c
@@ -315,17 +315,17 @@ cris_set_section_offset_iterator (bfd *abfd, asection *s, void *vp)
   SIM_DESC sd = p->sd;
   int offset = p->offset;
 
-  if ((bfd_get_section_flags (abfd, s) & SEC_ALLOC))
+  if ((bfd_section_flags (s) & SEC_ALLOC))
     {
-      bfd_vma vma = bfd_get_section_vma (abfd, s);
+      bfd_vma vma = bfd_section_vma (s);
       
-      bfd_set_section_vma (abfd, s, vma + offset);
+      bfd_set_section_vma (s, vma + offset);
     }
 
   /* This seems clumsy and inaccurate, but let's stick to doing it the
      same way as sim_analyze_program for consistency.  */
-  if (strcmp (bfd_get_section_name (abfd, s), ".text") == 0)
-    STATE_TEXT_START (sd) = bfd_get_section_vma (abfd, s);
+  if (strcmp (bfd_section_name (s), ".text") == 0)
+    STATE_TEXT_START (sd) = bfd_section_vma (s);
 }
 
 /* Adjust the start-address, LMA and VMA of a SD.  Must be called
@@ -360,10 +360,10 @@ get_progbounds_iterator (bfd *abfd ATTRIBUTE_UNUSED, asection *s, void *vp)
 {
   struct progbounds *pbp = (struct progbounds *) vp;
 
-  if ((bfd_get_section_flags (abfd, s) & SEC_ALLOC))
+  if ((bfd_section_flags (s) & SEC_ALLOC))
     {
-      bfd_size_type sec_size = bfd_get_section_size (s);
-      bfd_size_type sec_start = bfd_get_section_vma (abfd, s);
+      bfd_size_type sec_size = bfd_section_size (s);
+      bfd_size_type sec_start = bfd_section_vma (s);
       bfd_size_type sec_end = sec_start + sec_size;
 
       if (sec_end > pbp->endmem)
@@ -372,7 +372,7 @@ get_progbounds_iterator (bfd *abfd ATTRIBUTE_UNUSED, asection *s, void *vp)
       if (sec_start < pbp->startmem)
 	pbp->startmem = sec_start;
 
-      if ((bfd_get_section_flags (abfd, s) & SEC_LOAD))
+      if ((bfd_section_flags (s) & SEC_LOAD))
 	{
 	  if (sec_end > pbp->end_loadmem)
 	    pbp->end_loadmem = sec_end;
diff --git a/sim/erc32/func.c b/sim/erc32/func.c
index d6a51b1591..a0c85a0913 100644
--- a/sim/erc32/func.c
+++ b/sim/erc32/func.c
@@ -1051,14 +1051,14 @@ bfd_load (const char *fname)
     if (sis_verbose)
 	printf("loading %s:", fname);
     for (section = pbfd->sections; section; section = section->next) {
-	if (bfd_get_section_flags(pbfd, section) & SEC_ALLOC) {
+	if (bfd_section_flags (section) & SEC_ALLOC) {
 	    bfd_vma         section_address;
 	    unsigned long   section_size;
 	    const char     *section_name;
 
-	    section_name = bfd_get_section_name(pbfd, section);
+	    section_name = bfd_section_name (section);
 
-	    section_address = bfd_get_section_vma(pbfd, section);
+	    section_address = bfd_section_vma (section);
 	    /*
 	     * Adjust sections from a.out files, since they don't carry their
 	     * addresses with.
@@ -1084,14 +1084,14 @@ bfd_load (const char *fname)
 		}
 	    }
 
-	    section_size = bfd_section_size(pbfd, section);
+	    section_size = bfd_section_size (section);
 
 	    if (sis_verbose)
 		printf("\nsection %s at 0x%08lx (0x%lx bytes)",
 		       section_name, section_address, section_size);
 
 	    /* Text, data or lit */
-	    if (bfd_get_section_flags(pbfd, section) & SEC_LOAD) {
+	    if (bfd_section_flags (section) & SEC_LOAD) {
 		file_ptr        fptr;
 
 		fptr = 0;
diff --git a/sim/lm32/sim-if.c b/sim/lm32/sim-if.c
index 2698b2e28e..71312d3644 100644
--- a/sim/lm32/sim-if.c
+++ b/sim/lm32/sim-if.c
@@ -50,21 +50,18 @@ find_base (bfd *prog_bfd)
   found = 0;
   for (s = prog_bfd->sections; s; s = s->next)
     {
-      if ((strcmp (bfd_get_section_name (prog_bfd, s), ".boot") == 0)
-	  || (strcmp (bfd_get_section_name (prog_bfd, s), ".text") == 0)
-	  || (strcmp (bfd_get_section_name (prog_bfd, s), ".data") == 0)
-	  || (strcmp (bfd_get_section_name (prog_bfd, s), ".bss") == 0))
+      if ((strcmp (bfd_section_name (s), ".boot") == 0)
+	  || (strcmp (bfd_section_name (s), ".text") == 0)
+	  || (strcmp (bfd_section_name (s), ".data") == 0)
+	  || (strcmp (bfd_section_name (s), ".bss") == 0))
 	{
 	  if (!found)
 	    {
-	      base = bfd_get_section_vma (prog_bfd, s);
+	      base = bfd_section_vma (s);
 	      found = 1;
 	    }
 	  else
-	    base =
-	      bfd_get_section_vma (prog_bfd,
-				   s) < base ? bfd_get_section_vma (prog_bfd,
-								    s) : base;
+	    base = bfd_section_vma (s) < base ? bfd_section_vma (s) : base;
 	}
     }
   return base & ~(0xffffUL);
diff --git a/sim/m32c/load.c b/sim/m32c/load.c
index 3937fea088..c6a3b2dcaa 100644
--- a/sim/m32c/load.c
+++ b/sim/m32c/load.c
@@ -74,11 +74,11 @@ m32c_load (bfd * prog)
          remains as a reminder.  */
       if ((s->flags & SEC_ALLOC) && !(s->flags & SEC_READONLY))
 	{
-	  if (strcmp (bfd_get_section_name (prog, s), ".stack"))
+	  if (strcmp (bfd_section_name (s), ".stack"))
 	    {
 	      int secend =
-		bfd_get_section_size (s) + bfd_section_lma (prog, s);
-	      if (heaptop < secend && bfd_section_lma (prog, s) < 0x10000)
+		bfd_section_size (s) + bfd_section_lma (s);
+	      if (heaptop < secend && bfd_section_lma (s) < 0x10000)
 		{
 		  heaptop = heapbottom = secend;
 		}
@@ -91,14 +91,14 @@ m32c_load (bfd * prog)
 	  bfd_size_type size;
 	  bfd_vma base;
 
-	  size = bfd_get_section_size (s);
+	  size = bfd_section_size (s);
 	  if (size <= 0)
 	    continue;
 
-	  base = bfd_section_lma (prog, s);
+	  base = bfd_section_lma (s);
 	  if (verbose)
 	    fprintf (stderr, "[load a=%08x s=%08x %s]\n",
-		     (int) base, (int) size, bfd_get_section_name (prog, s));
+		     (int) base, (int) size, bfd_section_name (s));
 	  buf = (char *) malloc (size);
 	  bfd_get_section_contents (prog, s, buf, 0, size);
 	  mem_put_blk (base, buf, size);
diff --git a/sim/m32c/trace.c b/sim/m32c/trace.c
index e507c978b8..bc75d15e3c 100644
--- a/sim/m32c/trace.c
+++ b/sim/m32c/trace.c
@@ -231,7 +231,7 @@ sim_disasm_one (void)
 	  if (s->flags & SEC_CODE || code_section == 0)
 	    {
 	      code_section = s;
-	      code_base = bfd_section_lma (current_bfd, s);
+	      code_base = bfd_section_lma (s);
 	      break;
 	    }
 	}
diff --git a/sim/m68hc11/interp.c b/sim/m68hc11/interp.c
index 9e8ccab180..a5131d2a97 100644
--- a/sim/m68hc11/interp.c
+++ b/sim/m68hc11/interp.c
@@ -344,15 +344,15 @@ sim_prepare_for_program (SIM_DESC sd, bfd* abfd)
             {
               bfd_size_type size;
 
-              size = bfd_get_section_size (s);
+	      size = bfd_section_size (s);
               if (size > 0)
                 {
                   bfd_vma lma;
 
                   if (STATE_LOAD_AT_LMA_P (sd))
-                    lma = bfd_section_lma (abfd, s);
+		    lma = bfd_section_lma (s);
                   else
-                    lma = bfd_section_vma (abfd, s);
+		    lma = bfd_section_vma (s);
 
                   if (lma <= 0xFFFE && lma+size >= 0x10000)
                     cpu->cpu_use_elf_start = 0;
diff --git a/sim/ppc/hw_htab.c b/sim/ppc/hw_htab.c
index cf275ff702..e7b6371e1d 100644
--- a/sim/ppc/hw_htab.c
+++ b/sim/ppc/hw_htab.c
@@ -391,16 +391,16 @@ htab_sum_binary(bfd *abfd,
 		PTR data)
 {
   htab_binary_sizes *sizes = (htab_binary_sizes*)data;
-  unsigned_word size = bfd_get_section_size (sec);
-  unsigned_word vma = bfd_get_section_vma (abfd, sec);
-  unsigned_word ra = bfd_get_section_lma (abfd, sec);
+  unsigned_word size = bfd_section_size (sec);
+  unsigned_word vma = bfd_section_vma (sec);
+  unsigned_word ra = bfd_section_lma (sec);
 
   /* skip the section if no memory to allocate */
-  if (! (bfd_get_section_flags(abfd, sec) & SEC_ALLOC))
+  if (! (bfd_section_flags (sec) & SEC_ALLOC))
     return;
 
-  if ((bfd_get_section_flags (abfd, sec) & SEC_CODE)
-      || (bfd_get_section_flags (abfd, sec) & SEC_READONLY)) {
+  if ((bfd_section_flags (sec) & SEC_CODE)
+      || (bfd_section_flags (sec) & SEC_READONLY)) {
     if (sizes->text_bound < vma + size)
       sizes->text_bound = ALIGN_PAGE(vma + size);
     if (sizes->text_base > vma)
@@ -408,8 +408,8 @@ htab_sum_binary(bfd *abfd,
     if (sizes->text_ra > ra)
       sizes->text_ra = FLOOR_PAGE(ra);
   }
-  else if ((bfd_get_section_flags (abfd, sec) & SEC_DATA)
-	   || (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)) {
+  else if ((bfd_section_flags (sec) & SEC_DATA)
+	   || (bfd_section_flags (sec) & SEC_ALLOC)) {
     if (sizes->data_bound < vma + size)
       sizes->data_bound = ALIGN_PAGE(vma + size);
     if (sizes->data_base > vma)
@@ -432,41 +432,41 @@ htab_dma_binary(bfd *abfd,
   device *me = sizes->me;
 
   /* skip the section if no memory to allocate */
-  if (! (bfd_get_section_flags(abfd, sec) & SEC_ALLOC))
+  if (! (bfd_section_flags (sec) & SEC_ALLOC))
     return;
 
   /* check/ignore any sections of size zero */
-  section_size = bfd_get_section_size (sec);
+  section_size = bfd_section_size (sec);
   if (section_size == 0)
     return;
 
   /* if nothing to load, ignore this one */
-  if (! (bfd_get_section_flags(abfd, sec) & SEC_LOAD))
+  if (! (bfd_section_flags (sec) & SEC_LOAD))
     return;
 
   /* find where it is to go */
-  section_vma = bfd_get_section_vma(abfd, sec);
+  section_vma = bfd_section_vma (sec);
   section_ra = 0;
-  if ((bfd_get_section_flags (abfd, sec) & SEC_CODE)
-      || (bfd_get_section_flags (abfd, sec) & SEC_READONLY))
+  if ((bfd_section_flags (sec) & SEC_CODE)
+      || (bfd_section_flags (sec) & SEC_READONLY))
     section_ra = (section_vma - sizes->text_base + sizes->text_ra);
-  else if ((bfd_get_section_flags (abfd, sec) & SEC_DATA))
+  else if ((bfd_section_flags (sec) & SEC_DATA))
     section_ra = (section_vma - sizes->data_base + sizes->data_ra);
   else 
     return; /* just ignore it */
 
   DTRACE(htab,
 	 ("load - name=%-7s vma=0x%.8lx size=%6ld ra=0x%.8lx flags=%3lx(%s%s%s%s%s )\n",
-	  bfd_get_section_name(abfd, sec),
+	  bfd_section_name (sec),
 	  (long)section_vma,
 	  (long)section_size,
 	  (long)section_ra,
-	  (long)bfd_get_section_flags(abfd, sec),
-	  bfd_get_section_flags(abfd, sec) & SEC_LOAD ? " LOAD" : "",
-	  bfd_get_section_flags(abfd, sec) & SEC_CODE ? " CODE" : "",
-	  bfd_get_section_flags(abfd, sec) & SEC_DATA ? " DATA" : "",
-	  bfd_get_section_flags(abfd, sec) & SEC_ALLOC ? " ALLOC" : "",
-	  bfd_get_section_flags(abfd, sec) & SEC_READONLY ? " READONLY" : ""
+	  (long)bfd_section_flags (sec),
+	  bfd_section_flags (sec) & SEC_LOAD ? " LOAD" : "",
+	  bfd_section_flags (sec) & SEC_CODE ? " CODE" : "",
+	  bfd_section_flags (sec) & SEC_DATA ? " DATA" : "",
+	  bfd_section_flags (sec) & SEC_ALLOC ? " ALLOC" : "",
+	  bfd_section_flags (sec) & SEC_READONLY ? " READONLY" : ""
 	  ));
 
   /* dma in the sections data */
diff --git a/sim/ppc/hw_init.c b/sim/ppc/hw_init.c
index 0e7403bb6c..779c95c5a2 100644
--- a/sim/ppc/hw_init.c
+++ b/sim/ppc/hw_init.c
@@ -324,39 +324,39 @@ update_for_binary_section(bfd *abfd,
   device *me = (device*)obj;
 
   /* skip the section if no memory to allocate */
-  if (! (bfd_get_section_flags(abfd, the_section) & SEC_ALLOC))
+  if (! (bfd_section_flags (the_section) & SEC_ALLOC))
     return;
 
   /* check/ignore any sections of size zero */
-  section_size = bfd_get_section_size (the_section);
+  section_size = bfd_section_size (the_section);
   if (section_size == 0)
     return;
 
   /* find where it is to go */
-  section_vma = bfd_get_section_vma(abfd, the_section);
+  section_vma = bfd_section_vma (the_section);
 
   DTRACE(binary,
 	 ("name=%-7s, vma=0x%.8lx, size=%6ld, flags=%3lx(%s%s%s%s%s )\n",
-	  bfd_get_section_name(abfd, the_section),
+	  bfd_section_name (the_section),
 	  (long)section_vma,
 	  (long)section_size,
-	  (long)bfd_get_section_flags(abfd, the_section),
-	  bfd_get_section_flags(abfd, the_section) & SEC_LOAD ? " LOAD" : "",
-	  bfd_get_section_flags(abfd, the_section) & SEC_CODE ? " CODE" : "",
-	  bfd_get_section_flags(abfd, the_section) & SEC_DATA ? " DATA" : "",
-	  bfd_get_section_flags(abfd, the_section) & SEC_ALLOC ? " ALLOC" : "",
-	  bfd_get_section_flags(abfd, the_section) & SEC_READONLY ? " READONLY" : ""
+	  (long)bfd_section_flags (the_section),
+	  bfd_section_flags (the_section) & SEC_LOAD ? " LOAD" : "",
+	  bfd_section_flags (the_section) & SEC_CODE ? " CODE" : "",
+	  bfd_section_flags (the_section) & SEC_DATA ? " DATA" : "",
+	  bfd_section_flags (the_section) & SEC_ALLOC ? " ALLOC" : "",
+	  bfd_section_flags (the_section) & SEC_READONLY ? " READONLY" : ""
 	  ));
 
   /* If there is an .interp section, it means it needs a shared library interpreter.  */
-  if (strcmp(".interp", bfd_get_section_name(abfd, the_section)) == 0)
+  if (strcmp(".interp", bfd_section_name (the_section)) == 0)
     error("Shared libraries are not yet supported.\n");
 
   /* determine the devices access */
   access = access_read;
-  if (bfd_get_section_flags(abfd, the_section) & SEC_CODE)
+  if (bfd_section_flags (the_section) & SEC_CODE)
     access |= access_exec;
-  if (!(bfd_get_section_flags(abfd, the_section) & SEC_READONLY))
+  if (!(bfd_section_flags (the_section) & SEC_READONLY))
     access |= access_write;
 
   /* if claim specified, allocate region from the memory device */
@@ -386,7 +386,7 @@ update_for_binary_section(bfd *abfd,
 			  me);
 
   /* if a load dma in the required data */
-  if (bfd_get_section_flags(abfd, the_section) & SEC_LOAD) {
+  if (bfd_section_flags (the_section) & SEC_LOAD) {
     void *section_init = zalloc(section_size);
     if (!bfd_get_section_contents(abfd,
 				  the_section,
diff --git a/sim/rl78/load.c b/sim/rl78/load.c
index c8c8ab8951..34ae923bcb 100644
--- a/sim/rl78/load.c
+++ b/sim/rl78/load.c
@@ -56,7 +56,7 @@ find_section_name_by_offset (bfd *abfd, file_ptr filepos)
 
   for (s = abfd->sections; s; s = s->next)
     if (s->filepos == filepos)
-      return bfd_get_section_name (abfd, s);
+      return bfd_section_name (s);
 
   return "(unknown)";
 }
diff --git a/sim/rl78/trace.c b/sim/rl78/trace.c
index fd999a1513..1a97527377 100644
--- a/sim/rl78/trace.c
+++ b/sim/rl78/trace.c
@@ -224,7 +224,7 @@ sim_get_current_source_location (const char **  pfilename,
 	  if (s->flags & SEC_CODE || code_section == 0)
 	    {
 	      code_section = s;
-	      code_base = bfd_section_lma (current_bfd, s);
+	      code_base = bfd_section_lma (s);
 	      break;
 	    }
 	}
diff --git a/sim/rx/gdb-if.c b/sim/rx/gdb-if.c
index ef88146a5e..68e4b96ed6 100644
--- a/sim/rx/gdb-if.c
+++ b/sim/rx/gdb-if.c
@@ -164,14 +164,14 @@ build_swap_list (struct bfd *abfd)
 	  struct swap_list *sl;
 	  bfd_size_type size;
 
-	  size = bfd_get_section_size (s);
+	  size = bfd_section_size (s);
 	  if (size <= 0)
 	    continue;
 	  
 	  sl = malloc (sizeof (struct swap_list));
 	  assert (sl != NULL);
 	  sl->next = swap_list;
-	  sl->start = bfd_section_lma (abfd, s);
+	  sl->start = bfd_section_lma (s);
 	  sl->end = sl->start + size;
 	  swap_list = sl;
 	}
diff --git a/sim/rx/load.c b/sim/rx/load.c
index 65451ca821..a9b596bbc5 100644
--- a/sim/rx/load.c
+++ b/sim/rx/load.c
@@ -52,7 +52,7 @@ find_section_name_by_offset (bfd *abfd, file_ptr filepos)
 
   for (s = abfd->sections; s; s = s->next)
     if (s->filepos == filepos)
-      return bfd_get_section_name (abfd, s);
+      return bfd_section_name (s);
 
   return "(unknown)";
 }
diff --git a/sim/rx/trace.c b/sim/rx/trace.c
index ed65d19a8f..a4ea680bff 100644
--- a/sim/rx/trace.c
+++ b/sim/rx/trace.c
@@ -228,7 +228,7 @@ sim_get_current_source_location (const char **  pfilename,
 	  if (s->flags & SEC_CODE || code_section == 0)
 	    {
 	      code_section = s;
-	      code_base = bfd_section_lma (current_bfd, s);
+	      code_base = bfd_section_lma (s);
 	      break;
 	    }
 	}


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb] Catch exception when constructing the highlighter
@ 2019-09-19 18:20 gdb-buildbot
  2019-09-19 21:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-19 18:20 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f64e2f4045485f99b4ce6649fdab874dacccd5a6 ***

commit f64e2f4045485f99b4ce6649fdab874dacccd5a6
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Sep 19 19:49:39 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Thu Sep 19 19:49:39 2019 +0200

    [gdb] Catch exception when constructing the highlighter
    
    Currently in source_cache::ensure we catch the exception that triggers when
    highlighter->highlight is called:
    ...
             try
               {
                 std::istringstream input (contents);
                 std::ostringstream output;
                 highlighter->highlight (input, output, lang_name, fullname);
    ...
    and the file used earlier in the construction of the highlighter:
    ...
                 highlighter = new srchilite::SourceHighlight ("esc.outlang");
    ...
    is missing.
    
    The fact that this exception triggers when highlighter->highlight is called is
    an implementation artefact of libsource-highlight.so though, and this could be
    different for older or newer versions.
    
    Make things more robust by also catching exceptions thrown during construction
    of the highlighter.  This makes the handling on master equivalent with what
    has been committed for 8.3.1.
    
    Tested on x86_64-linux.
    
    gdb/ChangeLog:
    
    2019-09-19  Tom de Vries  <tdevries@suse.de>
    
            PR gdb/25009
            * source-cache.c (source_cache::ensure): Catch exception thrown during
            construction of the highlighter.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7057e37e8d..39f917b186 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-19  Tom de Vries  <tdevries@suse.de>
+
+	PR gdb/25009
+	* source-cache.c (source_cache::ensure): Catch exception thrown during
+	construction of the highlighter.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* aarch64-linux-tdep.c, * arm-tdep.c, * auto-load.c,
diff --git a/gdb/source-cache.c b/gdb/source-cache.c
index 7a52ce9458..1fe6da8132 100644
--- a/gdb/source-cache.c
+++ b/gdb/source-cache.c
@@ -190,14 +190,14 @@ source_cache::ensure (struct symtab *s)
 	     conditional compilation in source-cache.h.  */
 	  static srchilite::SourceHighlight *highlighter;
 
-	  if (highlighter == nullptr)
-	    {
-	      highlighter = new srchilite::SourceHighlight ("esc.outlang");
-	      highlighter->setStyleFile ("esc.style");
-	    }
-
 	  try
 	    {
+	      if (highlighter == nullptr)
+		{
+		  highlighter = new srchilite::SourceHighlight ("esc.outlang");
+		  highlighter->setStyleFile ("esc.style");
+		}
+
 	      std::istringstream input (contents);
 	      std::ostringstream output;
 	      highlighter->highlight (input, output, lang_name, fullname);


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Don't use FOOBAR pattern in gdb_test
@ 2019-09-19 18:42 gdb-buildbot
  2019-09-20  0:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-19 18:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e452e88f54624ae55d534c4ae32e0c768cb4b59f ***

commit e452e88f54624ae55d534c4ae32e0c768cb4b59f
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Sep 19 19:54:15 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Thu Sep 19 19:54:15 2019 +0200

    [gdb/testsuite] Don't use FOOBAR pattern in gdb_test
    
    If gdb_test is used with fewer than five arguments, then the question_string
    defaults to "^FOOBAR$":
    ...
        if [llength $args]==5 {
           set question_string [lindex $args 3]
           set response_string [lindex $args 4]
        } else {
           set question_string "^FOOBAR$"
        }
    ...
    
    This can however match "FOOBAR", so perhaps "\$FOOBAR^" would have been a
    better choice.
    
    Eliminate the FOOBAR pattern from gdb_test by instead of defining a default
    regexp, conditionally appending the regexp matching to a user_code variable.
    
    Tested on x86_64-linux.
    
    gdb/testsuite/ChangeLog:
    
    2019-09-19  Tom de Vries  <tdevries@suse.de>
    
            * lib/gdb.exp (gdb_test): Eliminate "^FOOBAR$" pattern.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d5a5309fdf..e86091eee3 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-19  Tom de Vries  <tdevries@suse.de>
+
+	* lib/gdb.exp (gdb_test): Eliminate "^FOOBAR$" pattern.
+
 2019-09-19  Tom de Vries  <tdevries@suse.de>
 
 	* lib/gdbserver-support.exp (gdb_target_cmd): Fix argument passing.
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index acbeb01376..3a1f053cf8 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -1083,24 +1083,28 @@ proc gdb_test { args } {
     set command [lindex $args 0]
     set pattern [lindex $args 1]
 
-    if [llength $args]==5 {
-	set question_string [lindex $args 3]
-	set response_string [lindex $args 4]
-    } else {
-	set question_string "^FOOBAR$"
-    }
-
-    return [gdb_test_multiple $command $message {
+    set user_code {}
+    lappend user_code {
 	-re "\[\r\n\]*(?:$pattern)\[\r\n\]+$gdb_prompt $" {
 	    if ![string match "" $message] then {
 		pass "$message"
             }
         }
-	-re "(${question_string})$" {
-	    send_gdb "$response_string\n"
-	    exp_continue
+    }
+
+    if { [llength $args] == 5 } {
+	set question_string [lindex $args 3]
+	set response_string [lindex $args 4]
+	lappend user_code {
+	    -re "(${question_string})$" {
+		send_gdb "$response_string\n"
+		exp_continue
+	    }
 	}
-     }]
+     }
+
+    set user_code [join $user_code]
+    return [gdb_test_multiple $command $message $user_code]
 }
 
 # Return 1 if version MAJOR.MINOR is at least AT_LEAST_MAJOR.AT_LEAST_MINOR.


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Declare dwarf_always_disassemble in dwarf2read.h
@ 2019-09-20  0:39 gdb-buildbot
  2019-09-20  1:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20  0:39 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e86f08d28f469b9400e91bbaf1b0a5e7f697732a ***

commit e86f08d28f469b9400e91bbaf1b0a5e7f697732a
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Thu Sep 19 13:26:55 2019 +0900
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Fri Sep 20 09:13:53 2019 +0900

    Declare dwarf_always_disassemble in dwarf2read.h
    
    And remove the declaration from dwarf2loc.c, for better typesafety.
    
    gdb/ChangeLog:
    
    2019-09-19  Christian Biesinger  <cbiesinger@google.com>
    
            * dwarf2loc.c: Remove extern declaration of dwarf_always_disassemble.
            * dwarf2read.h: Declare dwarf_always_disassemble.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 39f917b186..45e6e79fb8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-19  Christian Biesinger  <cbiesinger@google.com>
+
+	* dwarf2loc.c: Remove extern declaration of dwarf_always_disassemble.
+	* dwarf2read.h: Declare dwarf_always_disassemble.
+
 2019-09-19  Tom de Vries  <tdevries@suse.de>
 
 	PR gdb/25009
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index 29fccae594..c8ba0290a0 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -46,8 +46,6 @@
 #include "gdbsupport/underlying.h"
 #include "gdbsupport/byte-vector.h"
 
-extern bool dwarf_always_disassemble;
-
 static struct value *dwarf2_evaluate_loc_desc_full (struct type *type,
 						    struct frame_info *frame,
 						    const gdb_byte *data,
diff --git a/gdb/dwarf2read.h b/gdb/dwarf2read.h
index 8939f97af5..e9b946247b 100644
--- a/gdb/dwarf2read.h
+++ b/gdb/dwarf2read.h
@@ -33,6 +33,8 @@ extern struct cmd_list_element *show_dwarf_cmdlist;
 typedef struct dwarf2_per_cu_data *dwarf2_per_cu_ptr;
 DEF_VEC_P (dwarf2_per_cu_ptr);
 
+extern bool dwarf_always_disassemble;
+
 /* A descriptor for dwarf sections.
 
    S.ASECTION, SIZE are typically initialized when the objfile is first


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move arm_apcs_32 extern declaration to header
@ 2019-09-20  0:53 gdb-buildbot
  2019-09-20  3:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20  0:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT c7ae7675cf726c343a1db3e27e3e5665cb485271 ***

commit c7ae7675cf726c343a1db3e27e3e5665cb485271
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Thu Sep 19 13:33:35 2019 +0900
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Fri Sep 20 09:17:49 2019 +0900

    Move arm_apcs_32 extern declaration to header
    
    Instead of having several extern declarations for arm_apcs_32
    in a few .c files, declare it in arm-tdep.h. This file is already
    included from these .c files.
    
    gdb/ChangeLog:
    
    2019-09-19  Christian Biesinger  <cbiesinger@google.com>
    
            * arm-linux-nat.c: Remove extern declaration for arm_apcs_32.
            * arm-linux-tdep.c: Likewise.
            * arm-nbsd-nat.c: Likewise.
            * arm-tdep.h: Declare arm_apcs_32.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 45e6e79fb8..c7e724eb8b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-19  Christian Biesinger  <cbiesinger@google.com>
+
+	* arm-linux-nat.c: Remove extern declaration for arm_apcs_32.
+	* arm-linux-tdep.c: Likewise.
+	* arm-nbsd-nat.c: Likewise.
+	* arm-tdep.h: Declare arm_apcs_32.
+	* arm-tdep.c: Move documentation for arm_apcs_32 to arm-tdep.h.
+
 2019-09-19  Christian Biesinger  <cbiesinger@google.com>
 
 	* dwarf2loc.c: Remove extern declaration of dwarf_always_disassemble.
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
index ef44e68d31..bef67c7ac7 100644
--- a/gdb/arm-linux-nat.c
+++ b/gdb/arm-linux-nat.c
@@ -66,8 +66,6 @@
 #define PTRACE_SETHBPREGS 30
 #endif
 
-extern bool arm_apcs_32;
-
 class arm_linux_nat_target final : public linux_nat_target
 {
 public:
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index 31ea4564db..54ea8511cb 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -56,7 +56,6 @@
 #include "user-regs.h"
 #include <ctype.h>
 #include "elf/common.h"
-extern bool arm_apcs_32;
 
 /* Under ARM GNU/Linux the traditional way of performing a breakpoint
    is to execute a particular software interrupt, rather than use a
diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c
index 38a9e954b9..5160bfddf5 100644
--- a/gdb/arm-nbsd-nat.c
+++ b/gdb/arm-nbsd-nat.c
@@ -40,8 +40,6 @@ public:
 
 static arm_netbsd_nat_target the_arm_netbsd_nat_target;
 
-extern bool arm_apcs_32;
-
 static void
 arm_supply_gregset (struct regcache *regcache, struct reg *gregset)
 {
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index e17550fed7..c247052148 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -294,7 +294,7 @@ static CORE_ADDR arm_analyze_prologue (struct gdbarch *gdbarch,
 
 #define DISPLACED_STEPPING_ARCH_VERSION		5
 
-/* Set to true if the 32-bit mode is in use.  */
+/* See arm-tdep.h.  */
 
 bool arm_apcs_32 = true;
 
diff --git a/gdb/arm-tdep.h b/gdb/arm-tdep.h
index 6d1a91ca35..2cf3379d78 100644
--- a/gdb/arm-tdep.h
+++ b/gdb/arm-tdep.h
@@ -26,6 +26,10 @@ struct get_next_pcs;
 struct arm_get_next_pcs;
 struct gdb_get_next_pcs;
 
+/* Set to true if the 32-bit mode is in use.  */
+
+extern bool arm_apcs_32;
+
 #include "gdbarch.h"
 #include "arch/arm.h"
 #include "infrun.h"


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move declaration of overload_resolution to value.h
@ 2019-09-20  1:12 gdb-buildbot
  2019-09-20  4:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20  1:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e4153ae630fcc779ba414fdcea960394cb479e04 ***

commit e4153ae630fcc779ba414fdcea960394cb479e04
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Thu Sep 19 13:40:15 2019 +0900
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Fri Sep 20 09:19:15 2019 +0900

    Move declaration of overload_resolution to value.h
    
    The variable is defined in valops.c and has an extern decl in
    eval.c; move it to the header file.
    
    gdb/ChangeLog:
    
    2019-09-19  Christian Biesinger  <cbiesinger@google.com>
    
            * eval.c: Move declaration of overload_resolution to...
            * value.h: ...here.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c7e724eb8b..41a002498d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-19  Christian Biesinger  <cbiesinger@google.com>
+
+	* eval.c: Move declaration of overload_resolution to...
+	* value.h: ...here.
+
 2019-09-19  Christian Biesinger  <cbiesinger@google.com>
 
 	* arm-linux-nat.c: Remove extern declaration for arm_apcs_32.
diff --git a/gdb/eval.c b/gdb/eval.c
index f8915b9957..70ba1f1e3f 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -42,9 +42,6 @@
 #include "typeprint.h"
 #include <ctype.h>
 
-/* This is defined in valops.c */
-extern bool overload_resolution;
-
 /* Prototypes for local functions.  */
 
 static struct value *evaluate_subexp_for_sizeof (struct expression *, int *,
diff --git a/gdb/value.h b/gdb/value.h
index 47bf672eb5..0d75eaa5b2 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -81,6 +81,8 @@ struct value_print_options;
   value_contents_eq for more info.
 */
 
+extern bool overload_resolution;
+
 /* The structure which defines the type of a value.  It should never
    be possible for a program lval value to survive over a call to the
    inferior (i.e. to be put into the history list or an internal


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC64, error on unsupported dynamic relocation
@ 2019-09-20  7:59 gdb-buildbot
  2019-09-20  8:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20  7:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e59a1001222d853f0517c7e974bb51589ba86710 ***

commit e59a1001222d853f0517c7e974bb51589ba86710
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Fri Sep 20 12:21:50 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Fri Sep 20 12:51:19 2019 +0930

    PowerPC64, error on unsupported dynamic relocation
    
    This patch corrects the set of dynamic relocations recognised by gold
    as supported by glibc, and teaches ld.bfd to report an error similar
    to the gold error.  Note that ld --noinhibit-exec can be used to
    produce an output, supporting older ld with newer glibc if the set of
    supported glibc dynamic relocations changes.
    
    bfd/
            * elf64-ppc.c (ppc64_glibc_dynamic_reloc): New function.
            (ppc64_elf_relocate_section): Error if emitting unsupported
            dynamic relocations.
    gold/
            * powerpc.cc (Target_powerpc::Scan::check_non_pic): Move REL24
            to 32-bit supported.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8fff6a6752..6fa38eef45 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-20  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_glibc_dynamic_reloc): New function.
+	(ppc64_elf_relocate_section): Warn if emitting unsupported dynamic
+	relocations.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h (bfd_get_section_name, bfd_get_section_vma),
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 14119dd259..ed8077586b 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -14148,6 +14148,66 @@ ppc64_elf_action_discarded (asection *sec)
   return _bfd_elf_default_action_discarded (sec);
 }
 
+/* These are the dynamic relocations supported by glibc.  */
+
+static bfd_boolean
+ppc64_glibc_dynamic_reloc (enum elf_ppc64_reloc_type r_type)
+{
+  switch (r_type)
+    {
+    case R_PPC64_RELATIVE:
+    case R_PPC64_NONE:
+    case R_PPC64_ADDR64:
+    case R_PPC64_GLOB_DAT:
+    case R_PPC64_IRELATIVE:
+    case R_PPC64_JMP_IREL:
+    case R_PPC64_JMP_SLOT:
+    case R_PPC64_DTPMOD64:
+    case R_PPC64_DTPREL64:
+    case R_PPC64_TPREL64:
+    case R_PPC64_TPREL16_LO_DS:
+    case R_PPC64_TPREL16_DS:
+    case R_PPC64_TPREL16:
+    case R_PPC64_TPREL16_LO:
+    case R_PPC64_TPREL16_HI:
+    case R_PPC64_TPREL16_HIGH:
+    case R_PPC64_TPREL16_HA:
+    case R_PPC64_TPREL16_HIGHA:
+    case R_PPC64_TPREL16_HIGHER:
+    case R_PPC64_TPREL16_HIGHEST:
+    case R_PPC64_TPREL16_HIGHERA:
+    case R_PPC64_TPREL16_HIGHESTA:
+    case R_PPC64_ADDR16_LO_DS:
+    case R_PPC64_ADDR16_LO:
+    case R_PPC64_ADDR16_HI:
+    case R_PPC64_ADDR16_HIGH:
+    case R_PPC64_ADDR16_HA:
+    case R_PPC64_ADDR16_HIGHA:
+    case R_PPC64_REL30:
+    case R_PPC64_COPY:
+    case R_PPC64_UADDR64:
+    case R_PPC64_UADDR32:
+    case R_PPC64_ADDR32:
+    case R_PPC64_ADDR24:
+    case R_PPC64_ADDR16:
+    case R_PPC64_UADDR16:
+    case R_PPC64_ADDR16_DS:
+    case R_PPC64_ADDR16_HIGHER:
+    case R_PPC64_ADDR16_HIGHEST:
+    case R_PPC64_ADDR16_HIGHERA:
+    case R_PPC64_ADDR16_HIGHESTA:
+    case R_PPC64_ADDR14:
+    case R_PPC64_ADDR14_BRTAKEN:
+    case R_PPC64_ADDR14_BRNTAKEN:
+    case R_PPC64_REL32:
+    case R_PPC64_REL64:
+      return TRUE;
+
+    default:
+      return FALSE;
+    }
+}
+
 /* The RELOCATE_SECTION function is called by the ELF backend linker
    to handle the relocations for a section.
 
@@ -14201,6 +14261,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
   bfd_boolean is_opd;
   /* Assume 'at' branch hints.  */
   bfd_boolean is_isa_v2 = TRUE;
+  bfd_boolean warned_dynamic = FALSE;
   bfd_vma d_offset = (bfd_big_endian (input_bfd) ? 2 : 0);
 
   /* Initialize howto table if needed.  */
@@ -16166,6 +16227,19 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 	      loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela);
 	      bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
 
+	      if (!warned_dynamic
+		  && !ppc64_glibc_dynamic_reloc (ELF64_R_TYPE (outrel.r_info)))
+		{
+		  info->callbacks->einfo
+		    /* xgettext:c-format */
+		    (_("%X%P: %pB: %s against %pT "
+		       "is not supported by glibc as a dynamic relocation\n"),
+		     input_bfd,
+		     ppc64_elf_howto_table[ELF64_R_TYPE (outrel.r_info)]->name,
+		     sym_name);
+		  warned_dynamic = TRUE;
+		}
+
 	      /* If this reloc is against an external symbol, it will
 		 be computed at runtime, so there's no need to do
 		 anything now.  However, for the sake of prelink ensure
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 9e45c0fb07..8ec7014b2a 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-20  Alan Modra  <amodra@gmail.com>
+
+	* powerpc.cc (Target_powerpc::Scan::check_non_pic): Move REL24
+	to 32-bit supported.
+
 2019-09-18  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* testsuite/Makefile.in: Re-generate.
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index e69ce192e3..ad35095ccd 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -7355,7 +7355,6 @@ Target_powerpc<size, big_endian>::Scan::check_non_pic(Relobj* object,
     case elfcpp::R_POWERPC_ADDR14_BRTAKEN:
     case elfcpp::R_POWERPC_ADDR14_BRNTAKEN:
     case elfcpp::R_POWERPC_REL32:
-    case elfcpp::R_POWERPC_REL24:
     case elfcpp::R_POWERPC_TPREL16:
     case elfcpp::R_POWERPC_TPREL16_LO:
     case elfcpp::R_POWERPC_TPREL16_HI:
@@ -7404,6 +7403,7 @@ Target_powerpc<size, big_endian>::Scan::check_non_pic(Relobj* object,
 	{
 	  // These are the relocation types supported only on 32-bit.
 	  // ??? glibc ld.so doesn't need to support these.
+	case elfcpp::R_POWERPC_REL24:
 	case elfcpp::R_POWERPC_DTPREL16:
 	case elfcpp::R_POWERPC_DTPREL16_LO:
 	case elfcpp::R_POWERPC_DTPREL16_HI:


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] x86-64: fix handling of PUSH/POP of segment register
@ 2019-09-20  8:48 gdb-buildbot
  2019-09-20 10:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20  8:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3f9aad111cea2f25877d0a6b404956769c14faee ***

commit 3f9aad111cea2f25877d0a6b404956769c14faee
Author:     Jan Beulich <jbeulich@suse.com>
AuthorDate: Fri Sep 20 10:18:15 2019 +0200
Commit:     Jan Beulich <jbeulich@suse.com>
CommitDate: Fri Sep 20 10:18:15 2019 +0200

    x86-64: fix handling of PUSH/POP of segment register
    
    Commit 21df382b91 ("x86: fold SReg{2,3}") went too far: Folding 64-bit
    PUSH/POP templates into non-64-bit ones isn't correct, due to the
    different operand widths, and hence suffixes permitted. Restore the
    separate templates.
    
    Add tests of PUSH/POP with q suffix and %fs/%gs operands to the
    testsuite. While doing so also add PUSHF/POPF ones _without_ suffix.

diff --git a/gas/ChangeLog b/gas/ChangeLog
index b4234f09c0..bcd2f9af35 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,12 @@
+2018-09-20  Jan Beulich  <jbeulich@suse.com>
+
+	PR gas/25012
+	* config/tc-i386.c (process_operands): Adjust handling of
+	PUSH/POP of segment registers.
+	* testsuite/gas/i386/x86-64-opcode.s: Add PUSHq/POPq case with
+	%fs/%gs operands. Add PUSHF/POPF case without suffix.
+	* testsuite/gas/i386/x86-64-opcode.d: Adjust expectations.
+
 2019-09-19  Matthew Malcomson  <matthew.malcomson@arm.com>
 
 	* NEWS: Add SVE2 and TME entries.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index fec69c1397..349b36da5d 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -7010,14 +7010,14 @@ duplicate:
 	  if (flag_code != CODE_64BIT
 	      ? i.tm.base_opcode == POP_SEG_SHORT
 		&& i.op[0].regs->reg_num == 1
-	      : (i.tm.base_opcode | 1) == POP_SEG_SHORT
+	      : (i.tm.base_opcode | 1) == POP_SEG386_SHORT
 		&& i.op[0].regs->reg_num < 4)
 	    {
 	      as_bad (_("you can't `%s %s%s'"),
 		      i.tm.name, register_prefix, i.op[0].regs->reg_name);
 	      return 0;
 	    }
-	  if ( i.op[0].regs->reg_num > 3 )
+	  if ( i.op[0].regs->reg_num > 3 && i.tm.opcode_length == 1 )
 	    {
 	      i.tm.base_opcode ^= POP_SEG_SHORT ^ POP_SEG386_SHORT;
 	      i.tm.opcode_length = 2;
diff --git a/gas/testsuite/gas/i386/x86-64-opcode.d b/gas/testsuite/gas/i386/x86-64-opcode.d
index 35829f4f84..d8a1e44a45 100644
--- a/gas/testsuite/gas/i386/x86-64-opcode.d
+++ b/gas/testsuite/gas/i386/x86-64-opcode.d
@@ -255,13 +255,19 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	41 8f 00             	popq   \(%r8\)
 [ 	]*[a-f0-9]+:	8f 00                	popq   \(%rax\)
 [ 	]*[a-f0-9]+:	0f a1                	popq   %fs
+[ 	]*[a-f0-9]+:	0f a1                	popq   %fs
+[ 	]*[a-f0-9]+:	0f a9                	popq   %gs
 [ 	]*[a-f0-9]+:	0f a9                	popq   %gs
 [ 	]*[a-f0-9]+:	9d                   	popfq  
+[ 	]*[a-f0-9]+:	9d                   	popfq  
 [ 	]*[a-f0-9]+:	41 ff 30             	pushq  \(%r8\)
 [ 	]*[a-f0-9]+:	ff 30                	pushq  \(%rax\)
 [ 	]*[a-f0-9]+:	0f a0                	pushq  %fs
+[ 	]*[a-f0-9]+:	0f a0                	pushq  %fs
+[ 	]*[a-f0-9]+:	0f a8                	pushq  %gs
 [ 	]*[a-f0-9]+:	0f a8                	pushq  %gs
 [ 	]*[a-f0-9]+:	9c                   	pushfq 
+[ 	]*[a-f0-9]+:	9c                   	pushfq 
 [ 	]*[a-f0-9]+:	0f 77                	emms   
 [ 	]*[a-f0-9]+:	0f 0e                	femms  
 [ 	]*[a-f0-9]+:	0f 08                	invd   
diff --git a/gas/testsuite/gas/i386/x86-64-opcode.s b/gas/testsuite/gas/i386/x86-64-opcode.s
index 8d4a6ed9b2..caee124d16 100644
--- a/gas/testsuite/gas/i386/x86-64-opcode.s
+++ b/gas/testsuite/gas/i386/x86-64-opcode.s
@@ -323,15 +323,21 @@
 	POPq (%r8)		      #	 --  --	 -- 41	 8F 00				 ; REX to access upper reg.
 	POPq (%rax)		      #	 --  --	 -- --	 8F 00
 	POP %fs			      #	 --  --	 -- --	 0F A1
+	POPq %fs		      #	 --  --	 -- --	 0F A1
 	POP %gs			      #	 --  --	 -- --	 0F A9
-	POPFQ			      #	 --  --	 -- --	 9D
+	POPq %gs		      #	 --  --	 -- --	 0F A9
+	POPF			      #	 --  --	 -- --	 9D
+	POPFq			      #	 --  --	 -- --	 9D
 
 	# PUSH
 	PUSHq (%r8)		      #	 --  --	 -- 41	 FF 30				 ; REX to access upper reg.
 	PUSHq (%rax)		      #	 --  --	 -- --	 FF 30
 	PUSH %fs		      #	 --  --	 -- --	 0F A0
+	PUSHq %fs		      #	 --  --	 -- --	 0F A0
 	PUSH %gs		      #	 --  --	 -- --	 0F A8
-	PUSHFQ			      #	 --  --	 -- --	 9C
+	PUSHq %gs		      #	 --  --	 -- --	 0F A8
+	PUSHF			      #	 --  --	 -- --	 9C
+	PUSHFq			      #	 --  --	 -- --	 9C
 
 
 
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 0d8abcd7ff..0043d4eb16 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,10 @@
+2018-09-20  Jan Beulich  <jbeulich@suse.com>
+
+	PR gas/25012
+	* i386-opc.tbl (push, pop): Re-instate distinct Cpu64 templates
+	with SReg operand.
+	* i386-tbl.h: Re-generate.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* arc-ext.c: Update throughout for bfd section macro changes.
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index af2b600ba1..256ff04360 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -116,22 +116,24 @@ push, 1, 0x50, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|N
 push, 1, 0xff, 0x6, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex }
 push, 1, 0x6a, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8S }
 push, 1, 0x68, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm16|Imm32 }
-push, 1, 0x6, None, 1, 0, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg }
+push, 1, 0x6, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg }
 // In 64bit mode, the operand size is implicitly 64bit.
 push, 1, 0x50, None, 1, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64 }
 push, 1, 0xff, 0x6, 1, Cpu64, Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex }
 push, 1, 0x6a, None, 1, Cpu64, DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8S }
 push, 1, 0x68, None, 1, Cpu64, DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Imm16|Imm32S }
+push, 1, 0xfa0, None, 2, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { SReg }
 
 pusha, 0, 0x60, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 
 // Pop instructions.
 pop, 1, 0x58, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32 }
 pop, 1, 0x8f, 0x0, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex }
-pop, 1, 0x7, None, 1, 0, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg }
+pop, 1, 0x7, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg }
 // In 64bit mode, the operand size is implicitly 64bit.
 pop, 1, 0x58, None, 1, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64 }
 pop, 1, 0x8f, 0x0, 1, Cpu64, Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex }
+pop, 1, 0xfa1, None, 2, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { SReg }
 
 popa, 0, 0x61, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 
diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h
index 307415e8ca..89c752e826 100644
--- a/opcodes/i386-tbl.h
+++ b/opcodes/i386-tbl.h
@@ -635,7 +635,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -694,6 +694,19 @@ const insn_template i386_optab[] =
       0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+  { "push", 1, 0xfa0, None, 2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0,
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
   { "pusha", 0, 0x60, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -739,7 +752,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -772,6 +785,19 @@ const insn_template i386_optab[] =
       0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0,
 	  0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+  { "pop", 1, 0xfa1, None, 2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0,
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
   { "popa", 0, 0x61, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfd macro conversion to inline functions
@ 2019-09-20  9:09 gdb-buildbot
  2019-09-20 10:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20  9:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 00f93c449228e69f2161405b1f49b406e88785f0 ***

commit 00f93c449228e69f2161405b1f49b406e88785f0
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Thu Sep 19 11:51:04 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Fri Sep 20 18:04:02 2019 +0930

    bfd macro conversion to inline functions
    
    This converts some of the macros that access struct bfd fields to
    inline functions.
    
    bfd/
            * archive.c (bfd_generic_archive_p): Use bfd_set_thin_archive.
            * bfd-in.h (bfd_get_filename, bfd_get_cacheable, bfd_get_format),
            (bfd_get_target, bfd_get_flavour, bfd_family_coff, bfd_big_endian),
            (bfd_little_endian, bfd_header_big_endian, bfd_header_little_endian),
            (bfd_get_file_flags, bfd_applicable_file_flags),
            (bfd_applicable_section_flags, bfd_has_map, bfd_is_thin_archive),
            (bfd_valid_reloc_types, bfd_usrdata, bfd_get_start_address),
            (bfd_get_symcount, bfd_get_outsymbols, bfd_count_sections),
            (bfd_get_dynamic_symcount, bfd_get_symbol_leading_char): Delete.
            * bfd/bfd.c (bfd_get_filename, bfd_get_cacheable, bfd_get_format),
            (bfd_get_file_flags, bfd_get_start_address, bfd_get_symcount),
            (bfd_get_dynamic_symcount, bfd_get_outsymbols, bfd_count_sections),
            (bfd_has_map, bfd_is_thin_archive, bfd_set_thin_archive),
            (bfd_usrdata, bfd_set_usrdata): New inline functions.
            * targets.c (bfd_get_target, bfd_get_flavour),
            (bfd_applicable_file_flags, bfd_family_coff, bfd_big_endian),
            (bfd_little_endian, bfd_header_big_endian),
            (bfd_header_little_endian, bfd_applicable_section_flags),
            (bfd_get_symbol_leading_char): New inline functions.
            * bfd-in2.h: Regenerate.
    binutils/
            * ar.c (write_archive): Use bfd_set_thin_archive.
    gdb/
            * gdb_bfd.c (gdb_bfd_ref, gdb_bfd_unref): Use bfd_set_usrdata.
            * dwarf2read.c (dwarf2_read_gdb_index, dwarf2_read_debug_names),
            (read_indirect_string_from_dwz): Use bfd accessor.
            * dwarf2read.h (struct dwz_file <filename>): Likewise.
            * machoread.c (macho_symfile_read_all_oso): Likewise.
            * solib.c (solib_bfd_open): Likewise.
    ld/
            * ldelf.c (ldelf_after_open, ldelf_place_orphan
            * ldlang.c (walk_wild_file, lang_process): Use bfd_usrdata.
            (load_symbols, ldlang_add_file): Use bfd_set_usrdata.
            * ldmain.c (add_archive_element): Use bfd_usrdata.
            * ldlang.h (bfd_input_just_syms): New inline function.
            * emultempl/aarch64elf.em (build_section_lists): Use it.
            * emultempl/mmo.em (mmo_place_orphan): Likewise.
            * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
            * emultempl/pep.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
            * emultempl/ppc64elf.em (build_section_lists): Likewise.
    sim/
            * ppc/emul_generic.c (emul_add_tree_options): Delete old bfd code.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6fa38eef45..1c700dbfff 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,26 @@
+2019-09-20  Alan Modra  <amodra@gmail.com>
+
+	* archive.c (bfd_generic_archive_p): Use bfd_set_thin_archive.
+	* bfd-in.h (bfd_get_filename, bfd_get_cacheable, bfd_get_format),
+	(bfd_get_target, bfd_get_flavour, bfd_family_coff, bfd_big_endian),
+	(bfd_little_endian, bfd_header_big_endian, bfd_header_little_endian),
+	(bfd_get_file_flags, bfd_applicable_file_flags),
+	(bfd_applicable_section_flags, bfd_has_map, bfd_is_thin_archive),
+	(bfd_valid_reloc_types, bfd_usrdata, bfd_get_start_address),
+	(bfd_get_symcount, bfd_get_outsymbols, bfd_count_sections),
+	(bfd_get_dynamic_symcount, bfd_get_symbol_leading_char): Delete.
+	* bfd/bfd.c (bfd_get_filename, bfd_get_cacheable, bfd_get_format),
+	(bfd_get_file_flags, bfd_get_start_address, bfd_get_symcount),
+	(bfd_get_dynamic_symcount, bfd_get_outsymbols, bfd_count_sections),
+	(bfd_has_map, bfd_is_thin_archive, bfd_set_thin_archive),
+	(bfd_usrdata, bfd_set_usrdata): New inline functions.
+	* targets.c (bfd_get_target, bfd_get_flavour),
+	(bfd_applicable_file_flags, bfd_family_coff, bfd_big_endian),
+	(bfd_little_endian, bfd_header_big_endian),
+	(bfd_header_little_endian, bfd_applicable_section_flags),
+	(bfd_get_symbol_leading_char): New inline functions.
+	* bfd-in2.h: Regenerate.
+
 2019-09-20  Alan Modra  <amodra@gmail.com>
 
 	* elf64-ppc.c (ppc64_glibc_dynamic_reloc): New function.
diff --git a/bfd/archive.c b/bfd/archive.c
index dc0400d1cf..ccc09ad49f 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -856,7 +856,7 @@ bfd_generic_archive_p (bfd *abfd)
       return NULL;
     }
 
-  bfd_is_thin_archive (abfd) = (strncmp (armag, ARMAGT, SARMAG) == 0);
+  bfd_set_thin_archive (abfd, strncmp (armag, ARMAGT, SARMAG) == 0);
 
   if (strncmp (armag, ARMAG, SARMAG) != 0
       && ! bfd_is_thin_archive (abfd))
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index e55e3e90ba..34c1c3ad0e 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -509,38 +509,6 @@ extern int bfd_stat (bfd *, struct stat *);
 #endif
 extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
 
-#define bfd_get_filename(abfd) ((abfd)->filename)
-#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
-#define bfd_get_format(abfd) ((abfd)->format)
-#define bfd_get_target(abfd) ((abfd)->xvec->name)
-#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
-#define bfd_family_coff(abfd) \
-  (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
-   bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
-#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
-#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
-#define bfd_header_big_endian(abfd) \
-  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
-#define bfd_header_little_endian(abfd) \
-  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
-#define bfd_get_file_flags(abfd) ((abfd)->flags)
-#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
-#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
-#define bfd_has_map(abfd) ((abfd)->has_armap)
-#define bfd_is_thin_archive(abfd) ((abfd)->is_thin_archive)
-
-#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
-#define bfd_usrdata(abfd) ((abfd)->usrdata)
-
-#define bfd_get_start_address(abfd) ((abfd)->start_address)
-#define bfd_get_symcount(abfd) ((abfd)->symcount)
-#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
-#define bfd_count_sections(abfd) ((abfd)->section_count)
-
-#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
-
-#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
-
 extern bfd_boolean bfd_cache_close
   (bfd *abfd);
 /* NB: This declaration should match the autogenerated one in libbfd.h.  */
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 425f0c6709..4f158679b2 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -516,38 +516,6 @@ extern int bfd_stat (bfd *, struct stat *);
 #endif
 extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
 
-#define bfd_get_filename(abfd) ((abfd)->filename)
-#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
-#define bfd_get_format(abfd) ((abfd)->format)
-#define bfd_get_target(abfd) ((abfd)->xvec->name)
-#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
-#define bfd_family_coff(abfd) \
-  (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
-   bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
-#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
-#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
-#define bfd_header_big_endian(abfd) \
-  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
-#define bfd_header_little_endian(abfd) \
-  ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
-#define bfd_get_file_flags(abfd) ((abfd)->flags)
-#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
-#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
-#define bfd_has_map(abfd) ((abfd)->has_armap)
-#define bfd_is_thin_archive(abfd) ((abfd)->is_thin_archive)
-
-#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
-#define bfd_usrdata(abfd) ((abfd)->usrdata)
-
-#define bfd_get_start_address(abfd) ((abfd)->start_address)
-#define bfd_get_symcount(abfd) ((abfd)->symcount)
-#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
-#define bfd_count_sections(abfd) ((abfd)->section_count)
-
-#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
-
-#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
-
 extern bfd_boolean bfd_cache_close
   (bfd *abfd);
 /* NB: This declaration should match the autogenerated one in libbfd.h.  */
@@ -7321,6 +7289,78 @@ struct bfd
   const struct bfd_build_id *build_id;
 };
 
+static inline const char *
+bfd_get_filename (const bfd *abfd)
+{
+  return abfd->filename;
+}
+
+static inline bfd_boolean
+bfd_get_cacheable (const bfd *abfd)
+{
+  return abfd->cacheable;
+}
+
+static inline enum bfd_format
+bfd_get_format (const bfd *abfd)
+{
+  return abfd->format;
+}
+
+static inline flagword
+bfd_get_file_flags (const bfd *abfd)
+{
+  return abfd->flags;
+}
+
+static inline bfd_vma
+bfd_get_start_address (const bfd *abfd)
+{
+  return abfd->start_address;
+}
+
+static inline unsigned int
+bfd_get_symcount (const bfd *abfd)
+{
+  return abfd->symcount;
+}
+
+static inline unsigned int
+bfd_get_dynamic_symcount (const bfd *abfd)
+{
+  return abfd->dynsymcount;
+}
+
+static inline struct bfd_symbol **
+bfd_get_outsymbols (const bfd *abfd)
+{
+  return abfd->outsymbols;
+}
+
+static inline unsigned int
+bfd_count_sections (const bfd *abfd)
+{
+  return abfd->section_count;
+}
+
+static inline bfd_boolean
+bfd_has_map (const bfd *abfd)
+{
+  return abfd->has_armap;
+}
+
+static inline bfd_boolean
+bfd_is_thin_archive (const bfd *abfd)
+{
+  return abfd->is_thin_archive;
+}
+
+static inline void *
+bfd_usrdata (const bfd *abfd)
+{
+  return abfd->usrdata;
+}
+
 /* See note beside bfd_set_section_userdata.  */
 static inline bfd_boolean
 bfd_set_cacheable (bfd * abfd, bfd_boolean val)
@@ -7329,6 +7369,18 @@ bfd_set_cacheable (bfd * abfd, bfd_boolean val)
   return TRUE;
 }
 
+static inline void
+bfd_set_thin_archive (bfd *abfd, bfd_boolean val)
+{
+  abfd->is_thin_archive = val;
+}
+
+static inline void
+bfd_set_usrdata (bfd *abfd, void *val)
+{
+  abfd->usrdata = val;
+}
+
 
 typedef enum bfd_error
 {
@@ -8023,6 +8075,66 @@ typedef struct bfd_target
 
 } bfd_target;
 
+static inline const char *
+bfd_get_target (const bfd *abfd)
+{
+  return abfd->xvec->name;
+}
+
+static inline enum bfd_flavour
+bfd_get_flavour (const bfd *abfd)
+{
+  return abfd->xvec->flavour;
+}
+
+static inline flagword
+bfd_applicable_file_flags (const bfd *abfd)
+{
+  return abfd->xvec->object_flags;
+}
+
+static inline bfd_boolean
+bfd_family_coff (const bfd *abfd)
+{
+  return (bfd_get_flavour (abfd) == bfd_target_coff_flavour
+          || bfd_get_flavour (abfd) == bfd_target_xcoff_flavour);
+}
+
+static inline bfd_boolean
+bfd_big_endian (const bfd *abfd)
+{
+  return abfd->xvec->byteorder == BFD_ENDIAN_BIG;
+}
+static inline bfd_boolean
+bfd_little_endian (const bfd *abfd)
+{
+  return abfd->xvec->byteorder == BFD_ENDIAN_LITTLE;
+}
+
+static inline bfd_boolean
+bfd_header_big_endian (const bfd *abfd)
+{
+  return abfd->xvec->header_byteorder == BFD_ENDIAN_BIG;
+}
+
+static inline bfd_boolean
+bfd_header_little_endian (const bfd *abfd)
+{
+  return abfd->xvec->header_byteorder == BFD_ENDIAN_LITTLE;
+}
+
+static inline flagword
+bfd_applicable_section_flags (const bfd *abfd)
+{
+  return abfd->xvec->section_flags;
+}
+
+static inline char
+bfd_get_symbol_leading_char (const bfd *abfd)
+{
+  return abfd->xvec->symbol_leading_char;
+}
+
 bfd_boolean bfd_set_default_target (const char *name);
 
 const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 7029bf7b85..c11274c187 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -355,6 +355,78 @@ CODE_FRAGMENT
 .  const struct bfd_build_id *build_id;
 .};
 .
+.static inline const char *
+.bfd_get_filename (const bfd *abfd)
+.{
+.  return abfd->filename;
+.}
+.
+.static inline bfd_boolean
+.bfd_get_cacheable (const bfd *abfd)
+.{
+.  return abfd->cacheable;
+.}
+.
+.static inline enum bfd_format
+.bfd_get_format (const bfd *abfd)
+.{
+.  return abfd->format;
+.}
+.
+.static inline flagword
+.bfd_get_file_flags (const bfd *abfd)
+.{
+.  return abfd->flags;
+.}
+.
+.static inline bfd_vma
+.bfd_get_start_address (const bfd *abfd)
+.{
+.  return abfd->start_address;
+.}
+.
+.static inline unsigned int
+.bfd_get_symcount (const bfd *abfd)
+.{
+.  return abfd->symcount;
+.}
+.
+.static inline unsigned int
+.bfd_get_dynamic_symcount (const bfd *abfd)
+.{
+.  return abfd->dynsymcount;
+.}
+.
+.static inline struct bfd_symbol **
+.bfd_get_outsymbols (const bfd *abfd)
+.{
+.  return abfd->outsymbols;
+.}
+.
+.static inline unsigned int
+.bfd_count_sections (const bfd *abfd)
+.{
+.  return abfd->section_count;
+.}
+.
+.static inline bfd_boolean
+.bfd_has_map (const bfd *abfd)
+.{
+.  return abfd->has_armap;
+.}
+.
+.static inline bfd_boolean
+.bfd_is_thin_archive (const bfd *abfd)
+.{
+.  return abfd->is_thin_archive;
+.}
+.
+.static inline void *
+.bfd_usrdata (const bfd *abfd)
+.{
+.  return abfd->usrdata;
+.}
+.
 .{* See note beside bfd_set_section_userdata.  *}
 .static inline bfd_boolean
 .bfd_set_cacheable (bfd * abfd, bfd_boolean val)
@@ -363,6 +435,18 @@ CODE_FRAGMENT
 .  return TRUE;
 .}
 .
+.static inline void
+.bfd_set_thin_archive (bfd *abfd, bfd_boolean val)
+.{
+.  abfd->is_thin_archive = val;
+.}
+.
+.static inline void
+.bfd_set_usrdata (bfd *abfd, void *val)
+.{
+.  abfd->usrdata = val;
+.}
+.
 */
 
 #include "sysdep.h"
diff --git a/bfd/targets.c b/bfd/targets.c
index b02dfc5484..116a5c34de 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -584,6 +584,66 @@ to find an alternative output format that is suitable.
 .
 .} bfd_target;
 .
+.static inline const char *
+.bfd_get_target (const bfd *abfd)
+.{
+.  return abfd->xvec->name;
+.}
+.
+.static inline enum bfd_flavour
+.bfd_get_flavour (const bfd *abfd)
+.{
+.  return abfd->xvec->flavour;
+.}
+.
+.static inline flagword
+.bfd_applicable_file_flags (const bfd *abfd)
+.{
+.  return abfd->xvec->object_flags;
+.}
+.
+.static inline bfd_boolean
+.bfd_family_coff (const bfd *abfd)
+.{
+.  return (bfd_get_flavour (abfd) == bfd_target_coff_flavour
+.          || bfd_get_flavour (abfd) == bfd_target_xcoff_flavour);
+.}
+.
+.static inline bfd_boolean
+.bfd_big_endian (const bfd *abfd)
+.{
+.  return abfd->xvec->byteorder == BFD_ENDIAN_BIG;
+.}
+.static inline bfd_boolean
+.bfd_little_endian (const bfd *abfd)
+.{
+.  return abfd->xvec->byteorder == BFD_ENDIAN_LITTLE;
+.}
+.
+.static inline bfd_boolean
+.bfd_header_big_endian (const bfd *abfd)
+.{
+.  return abfd->xvec->header_byteorder == BFD_ENDIAN_BIG;
+.}
+.
+.static inline bfd_boolean
+.bfd_header_little_endian (const bfd *abfd)
+.{
+.  return abfd->xvec->header_byteorder == BFD_ENDIAN_LITTLE;
+.}
+.
+.static inline flagword
+.bfd_applicable_section_flags (const bfd *abfd)
+.{
+.  return abfd->xvec->section_flags;
+.}
+.
+.static inline char
+.bfd_get_symbol_leading_char (const bfd *abfd)
+.{
+.  return abfd->xvec->symbol_leading_char;
+.}
+.
 */
 
 /* All known xvecs (even those that don't compile on all systems).
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 9d1aa848fb..21dc92dcae 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-20  Alan Modra  <amodra@gmail.com>
+
+	* ar.c (write_archive): Use bfd_set_thin_archive.
+
 2019-09-18  Tamar Christina  <tamar.christina@arm.com>
 
 	* testsuite/binutils-all/objdump.exp (objump -S): Update testcases.
diff --git a/binutils/ar.c b/binutils/ar.c
index 4e953c054d..6bac862bc7 100644
--- a/binutils/ar.c
+++ b/binutils/ar.c
@@ -1200,7 +1200,7 @@ write_archive (bfd *iarch)
     obfd->flags |= BFD_DETERMINISTIC_OUTPUT;
 
   if (make_thin_archive || bfd_is_thin_archive (iarch))
-    bfd_is_thin_archive (obfd) = 1;
+    bfd_set_thin_archive (obfd, TRUE);
 
   if (!bfd_set_archive_head (obfd, contents_head))
     bfd_fatal (old_name);
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 41a002498d..5314b2746b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-20  Alan Modra  <amodra@gmail.com>
+
+	* gdb_bfd.c (gdb_bfd_ref, gdb_bfd_unref): Use bfd_set_usrdata.
+	* dwarf2read.c (dwarf2_read_gdb_index, dwarf2_read_debug_names),
+	(read_indirect_string_from_dwz): Use bfd accessor.
+	* dwarf2read.h (struct dwz_file <filename>): Likewise.
+	* machoread.c (macho_symfile_read_all_oso): Likewise.
+	* solib.c (solib_bfd_open): Likewise.
+
 2019-09-19  Christian Biesinger  <cbiesinger@google.com>
 
 	* eval.c: Move declaration of overload_resolution to...
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 5e71ded203..1052501c35 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -3584,14 +3584,14 @@ dwarf2_read_gdb_index
 	return 0;
 
       if (!read_gdb_index_from_buffer (objfile,
-				       bfd_get_filename (dwz->dwz_bfd), 1,
-				       dwz_index_content, &dwz_map,
+				       bfd_get_filename (dwz->dwz_bfd.get ()),
+				       1, dwz_index_content, &dwz_map,
 				       &dwz_list, &dwz_list_elements,
 				       &dwz_types_ignore,
 				       &dwz_types_elements_ignore))
 	{
 	  warning (_("could not read '.gdb_index' section from %s; skipping"),
-		   bfd_get_filename (dwz->dwz_bfd));
+		   bfd_get_filename (dwz->dwz_bfd.get ()));
 	  return 0;
 	}
     }
@@ -5596,11 +5596,11 @@ dwarf2_read_debug_names (struct dwarf2_per_objfile *dwarf2_per_objfile)
   if (dwz != NULL)
     {
       if (!read_debug_names_from_section (objfile,
-					  bfd_get_filename (dwz->dwz_bfd),
+					  bfd_get_filename (dwz->dwz_bfd.get ()),
 					  &dwz->debug_names, dwz_map))
 	{
 	  warning (_("could not read '.debug_names' section from %s; skipping"),
-		   bfd_get_filename (dwz->dwz_bfd));
+		   bfd_get_filename (dwz->dwz_bfd.get ()));
 	  return false;
 	}
     }
@@ -19759,11 +19759,11 @@ read_indirect_string_from_dwz (struct objfile *objfile, struct dwz_file *dwz,
   if (dwz->str.buffer == NULL)
     error (_("DW_FORM_GNU_strp_alt used without .debug_str "
 	     "section [in module %s]"),
-	   bfd_get_filename (dwz->dwz_bfd));
+	   bfd_get_filename (dwz->dwz_bfd.get ()));
   if (str_offset >= dwz->str.size)
     error (_("DW_FORM_GNU_strp_alt pointing outside of "
 	     ".debug_str section [in module %s]"),
-	   bfd_get_filename (dwz->dwz_bfd));
+	   bfd_get_filename (dwz->dwz_bfd.get ()));
   gdb_assert (HOST_CHAR_BIT == 8);
   if (dwz->str.buffer[str_offset] == '\0')
     return NULL;
diff --git a/gdb/dwarf2read.h b/gdb/dwarf2read.h
index e9b946247b..d5a02990d4 100644
--- a/gdb/dwarf2read.h
+++ b/gdb/dwarf2read.h
@@ -417,7 +417,7 @@ struct dwz_file
 
   const char *filename () const
   {
-    return bfd_get_filename (this->dwz_bfd);
+    return bfd_get_filename (this->dwz_bfd.get ());
   }
 
   /* A dwz file can only contain a few sections.  */
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index 8a67d5e97d..69618a27e1 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -546,7 +546,7 @@ gdb_bfd_ref (struct bfd *abfd)
   abfd->flags |= BFD_DECOMPRESS;
 
   gdata = new gdb_bfd_data (abfd);
-  bfd_usrdata (abfd) = gdata;
+  bfd_set_usrdata (abfd, gdata);
   bfd_alloc_data (abfd);
 
   /* This is the first we've seen it, so add it to the hash table.  */
@@ -608,7 +608,7 @@ gdb_bfd_unref (struct bfd *abfd)
 
   bfd_free_data (abfd);
   delete gdata;
-  bfd_usrdata (abfd) = NULL;  /* Paranoia.  */
+  bfd_set_usrdata (abfd, NULL);  /* Paranoia.  */
 
   htab_remove_elt (all_bfds, abfd);
 
diff --git a/gdb/machoread.c b/gdb/machoread.c
index 1795982a3e..a015d297c3 100644
--- a/gdb/machoread.c
+++ b/gdb/machoread.c
@@ -671,7 +671,7 @@ macho_symfile_read_all_oso (std::vector<oso_el> *oso_vector_ptr,
           /* Load all oso in this library.  */
 	  while (member_bfd != NULL)
 	    {
-	      const char *member_name = member_bfd->filename;
+	      const char *member_name = bfd_get_filename (member_bfd.get ());
               int member_len = strlen (member_name);
 
               /* If this member is referenced, add it as a symfile.  */
@@ -685,7 +685,7 @@ macho_symfile_read_all_oso (std::vector<oso_el> *oso_vector_ptr,
                                   member_len))
                     {
                       macho_add_oso_symfile (oso2, member_bfd,
-					     bfd_get_filename (member_bfd),
+					     bfd_get_filename (member_bfd.get ()),
                                              main_objfile, symfile_flags);
                       oso2->name = NULL;
                       break;
diff --git a/gdb/solib.c b/gdb/solib.c
index 86000f6d61..b9a61e265b 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -502,14 +502,14 @@ solib_bfd_open (const char *pathname)
   /* Check bfd format.  */
   if (!bfd_check_format (abfd.get (), bfd_object))
     error (_("`%s': not in executable format: %s"),
-	   bfd_get_filename (abfd), bfd_errmsg (bfd_get_error ()));
+	   bfd_get_filename (abfd.get ()), bfd_errmsg (bfd_get_error ()));
 
   /* Check bfd arch.  */
   b = gdbarch_bfd_arch_info (target_gdbarch ());
   if (!b->compatible (b, bfd_get_arch_info (abfd.get ())))
     warning (_("`%s': Shared library architecture %s is not compatible "
-               "with target architecture %s."), bfd_get_filename (abfd),
-             bfd_get_arch_info (abfd.get ())->printable_name,
+	       "with target architecture %s."), bfd_get_filename (abfd.get ()),
+	     bfd_get_arch_info (abfd.get ())->printable_name,
 	     b->printable_name);
 
   return abfd;
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 2abb558b9c..705a2b2de8 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-20  Alan Modra  <amodra@gmail.com>
+
+	* ldelf.c (ldelf_after_open, ldelf_place_orphan
+	* ldlang.c (walk_wild_file, lang_process): Use bfd_usrdata.
+	(load_symbols, ldlang_add_file): Use bfd_set_usrdata.
+	* ldmain.c (add_archive_element): Use bfd_usrdata.
+	* ldlang.h (bfd_input_just_syms): New inline function.
+	* emultempl/aarch64elf.em (build_section_lists): Use it.
+	* emultempl/mmo.em (mmo_place_orphan): Likewise.
+	* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
+	* emultempl/pep.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
+	* emultempl/ppc64elf.em (build_section_lists): Likewise.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* ldcref.c, * ldctor.c, * ldelf.c, * ldlang.c, * pe-dll.c,
diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em
index bd5c888782..208d169404 100644
--- a/ld/emultempl/aarch64elf.em
+++ b/ld/emultempl/aarch64elf.em
@@ -217,7 +217,7 @@ build_section_lists (lang_statement_union_type *statement)
     {
       asection *i = statement->input_section.section;
 
-      if (!((lang_input_statement_type *) i->owner->usrdata)->flags.just_syms
+      if (!bfd_input_just_syms (i->owner)
 	  && (i->flags & SEC_EXCLUDE) == 0
 	  && i->output_section != NULL
 	  && i->output_section->owner == link_info.output_bfd)
diff --git a/ld/emultempl/mmo.em b/ld/emultempl/mmo.em
index fff48942bc..85c5863953 100644
--- a/ld/emultempl/mmo.em
+++ b/ld/emultempl/mmo.em
@@ -116,9 +116,7 @@ mmo_place_orphan (asection *s,
 	    && (nexts->flags & SEC_EXCLUDE) == 0
 	    && ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0
 	    && (nexts->owner->flags & DYNAMIC) == 0
-	    && nexts->owner->usrdata != NULL
-	    && !(((lang_input_statement_type *) nexts->owner->usrdata)
-		 ->flags.just_syms))
+	    && !bfd_input_just_syms (nexts->owner))
 	  flags = (((flags ^ SEC_READONLY) | (nexts->flags ^ SEC_READONLY))
 		   ^ SEC_READONLY);
     }
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 70f771cebd..150c98296f 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -2116,9 +2116,7 @@ gld_${EMULATION_NAME}_place_orphan (asection *s,
 		&& (nexts->flags & SEC_EXCLUDE) == 0
 		&& ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0
 		&& (nexts->owner->flags & DYNAMIC) == 0
-		&& nexts->owner->usrdata != NULL
-		&& !(((lang_input_statement_type *) nexts->owner->usrdata)
-		     ->flags.just_syms))
+		&& !bfd_input_just_syms (nexts->owner))
 	      flags = (((flags ^ SEC_READONLY)
 			| (nexts->flags ^ SEC_READONLY))
 		       ^ SEC_READONLY);
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index 6d150d211a..ab2a989bc5 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -1914,9 +1914,7 @@ gld_${EMULATION_NAME}_place_orphan (asection *s,
 		&& (nexts->flags & SEC_EXCLUDE) == 0
 		&& ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0
 		&& (nexts->owner->flags & DYNAMIC) == 0
-		&& nexts->owner->usrdata != NULL
-		&& !(((lang_input_statement_type *) nexts->owner->usrdata)
-		     ->flags.just_syms))
+		&& !bfd_input_just_syms (nexts->owner))
 	      flags = (((flags ^ SEC_READONLY)
 			| (nexts->flags ^ SEC_READONLY))
 		       ^ SEC_READONLY);
diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em
index ee71f256c6..aad56cfddd 100644
--- a/ld/emultempl/ppc64elf.em
+++ b/ld/emultempl/ppc64elf.em
@@ -489,7 +489,7 @@ build_section_lists (lang_statement_union_type *statement)
     {
       asection *i = statement->input_section.section;
 
-      if (!((lang_input_statement_type *) i->owner->usrdata)->flags.just_syms
+      if (!bfd_input_just_syms (i->owner)
 	  && (i->flags & SEC_EXCLUDE) == 0
 	  && i->output_section != NULL
 	  && i->output_section->owner == link_info.output_bfd)
diff --git a/ld/ldelf.c b/ld/ldelf.c
index 8d4a2e58a1..e43d33d432 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -1018,7 +1018,7 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
 	   abfd != (bfd *) NULL; abfd = abfd->link.next)
 	if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
 	    && bfd_count_sections (abfd) != 0
-	    && !((lang_input_statement_type *) abfd->usrdata)->flags.just_syms)
+	    && !bfd_input_just_syms (abfd))
 	  break;
 
       /* PR 10555: If there are no ELF input files do not try to
@@ -1060,7 +1060,7 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
 	{
 	  int type = 0;
 
-	  if (((lang_input_statement_type *) abfd->usrdata)->flags.just_syms)
+	  if (bfd_input_just_syms (abfd))
 	    continue;
 
 	  for (s = abfd->sections; s && type < COMPACT_EH_HDR; s = s->next)
@@ -2065,9 +2065,7 @@ ldelf_place_orphan (asection *s, const char *secname, int constraint)
 	    && (nexts->flags & SEC_EXCLUDE) == 0
 	    && ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0
 	    && (nexts->owner->flags & DYNAMIC) == 0
-	    && nexts->owner->usrdata != NULL
-	    && !(((lang_input_statement_type *) nexts->owner->usrdata)
-		 ->flags.just_syms)
+	    && !bfd_input_just_syms (nexts->owner)
 	    && _bfd_elf_match_sections_by_type (nexts->owner, nexts,
 						s->owner, s))
 	  flags = (((flags ^ SEC_READONLY)
diff --git a/ld/ldlang.c b/ld/ldlang.c
index a3843623fb..0ffcf34473 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -902,12 +902,8 @@ walk_wild_file (lang_wild_statement_type *s,
 	     archive which is included, BFD will call ldlang_add_file,
 	     which will set the usrdata field of the member to the
 	     lang_input_statement.  */
-	  if (member->usrdata != NULL)
-	    {
-	      walk_wild_section (s,
-				 (lang_input_statement_type *) member->usrdata,
-				 callback, data);
-	    }
+	  if (bfd_usrdata (member) != NULL)
+	    walk_wild_section (s, bfd_usrdata (member), callback, data);
 
 	  member = bfd_openr_next_archived_file (f->the_bfd, member);
 	}
@@ -3038,7 +3034,7 @@ load_symbols (lang_input_statement_type *entry,
     case bfd_archive:
       check_excluded_libs (entry->the_bfd);
 
-      entry->the_bfd->usrdata = entry;
+      bfd_set_usrdata (entry->the_bfd, entry);
       if (entry->flags.whole_archive)
 	{
 	  bfd *member = NULL;
@@ -6898,7 +6894,7 @@ ldlang_add_file (lang_input_statement_type *entry)
 
   *link_info.input_bfds_tail = entry->the_bfd;
   link_info.input_bfds_tail = &entry->the_bfd->link.next;
-  entry->the_bfd->usrdata = entry;
+  bfd_set_usrdata (entry->the_bfd, entry);
   bfd_set_gp_size (entry->the_bfd, g_switch_value);
 
   /* Look through the sections and check for any which should not be
@@ -7540,7 +7536,7 @@ lang_process (void)
 	      *iter = temp;
 	      if (my_arch != NULL)
 		{
-		  lang_input_statement_type *parent = my_arch->usrdata;
+		  lang_input_statement_type *parent = bfd_usrdata (my_arch);
 		  if (parent != NULL)
 		    parent->next = (lang_input_statement_type *)
 		      ((char *) iter
diff --git a/ld/ldlang.h b/ld/ldlang.h
index 686e44f841..9fb10f80a7 100644
--- a/ld/ldlang.h
+++ b/ld/ldlang.h
@@ -331,6 +331,12 @@ typedef struct input_section_userdata_struct
 
 #define get_userdata(x) ((x)->userdata)
 
+static inline bfd_boolean
+bfd_input_just_syms (const bfd *abfd)
+{
+  lang_input_statement_type *is = bfd_usrdata (abfd);
+  return is != NULL && is->flags.just_syms;
+}
 
 typedef struct lang_wild_statement_struct lang_wild_statement_type;
 
diff --git a/ld/ldmain.c b/ld/ldmain.c
index e24194ef87..34c1922313 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -816,7 +816,7 @@ add_archive_element (struct bfd_link_info *info,
   input->local_sym_name = abfd->filename;
   input->the_bfd = abfd;
 
-  parent = abfd->my_archive->usrdata;
+  parent = bfd_usrdata (abfd->my_archive);
   if (parent != NULL && !parent->flags.reload)
     parent->next = input;
 
diff --git a/sim/ChangeLog b/sim/ChangeLog
index 191e2370a9..d4c7d166d2 100644
--- a/sim/ChangeLog
+++ b/sim/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-20  Alan Modra  <amodra@gmail.com>
+
+	* ppc/emul_generic.c (emul_add_tree_options): Delete old bfd code.
+
 2019-09-18  Alan Modra  <amodra@gmail.com>
 
 	* common/sim-load.c, * common/sim-utils.c, * cris/sim-if.c,
diff --git a/sim/ppc/emul_generic.c b/sim/ppc/emul_generic.c
index dc0b2cf1e0..64c0219309 100644
--- a/sim/ppc/emul_generic.c
+++ b/sim/ppc/emul_generic.c
@@ -262,12 +262,7 @@ emul_add_tree_options(device *tree,
   if (tree_find_property(tree, "/options/little-endian?"))
     little_endian = tree_find_boolean_property(tree, "/options/little-endian?");
   else {
-#ifdef bfd_little_endian	/* new bfd */
     little_endian = (image != NULL && bfd_little_endian(image));
-#else
-    little_endian = (image != NULL &&
-		     !image->xvec->byteorder_big_p);
-#endif
     tree_parse(tree, "/options/little-endian? %s",
 	       little_endian ? "true" : "false");
   }


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfd macro conversion to inline functions, asymbol
@ 2019-09-20  9:27 gdb-buildbot
  2019-09-20 13:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20  9:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT af30dc128be191dc6179763203035ff62c634284 ***

commit af30dc128be191dc6179763203035ff62c634284
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Thu Sep 19 12:15:16 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Fri Sep 20 18:04:02 2019 +0930

    bfd macro conversion to inline functions, asymbol
    
            * bfd-in.h (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
            (bfd_asymbol_bfd, bfd_asymbol_flavour, bfd_set_asymbol_name): Delete.
            * bfd.c (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
            (bfd_asymbol_bfd, bfd_set_asymbol_name): New inline functions.
            * targets.c (bfd_asymbol_flavour): Likewise.
            * bfd-in2.h: Regenerate.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1c700dbfff..5222063bf0 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-20  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
+	(bfd_asymbol_bfd, bfd_asymbol_flavour, bfd_set_asymbol_name): Delete.
+	* bfd.c (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
+	(bfd_asymbol_bfd, bfd_set_asymbol_name): New inline functions.
+	* targets.c (bfd_asymbol_flavour): Likewise.
+	* bfd-in2.h: Regenerate.
+
 2019-09-20  Alan Modra  <amodra@gmail.com>
 
 	* archive.c (bfd_generic_archive_p): Use bfd_set_thin_archive.
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 34c1c3ad0e..e9ada8d27f 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -237,19 +237,6 @@ typedef unsigned long symindex;
 
 #define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
 
-/* General purpose part of a symbol X;
-   target specific parts are in libcoff.h, libaout.h, etc.  */
-
-#define bfd_asymbol_section(sy) ((sy)->section)
-#define bfd_asymbol_value(sy) ((sy)->section->vma + (sy)->value)
-#define bfd_asymbol_name(sy) ((sy)->name)
-#define bfd_asymbol_bfd(sy) ((sy)->the_bfd)
-#define bfd_asymbol_flavour(sy)			\
-  (((sy)->flags & BSF_SYNTHETIC) != 0		\
-   ? bfd_target_unknown_flavour			\
-   : (sy)->the_bfd->xvec->flavour)
-#define bfd_set_asymbol_name(sy, n) do { (sy)->name = (n); } while (0)
-
 /* A canonical archive symbol.  */
 /* This is a type pun with struct ranlib on purpose!  */
 typedef struct carsym
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 4f158679b2..5ac3f41b7a 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -244,19 +244,6 @@ typedef unsigned long symindex;
 
 #define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
 
-/* General purpose part of a symbol X;
-   target specific parts are in libcoff.h, libaout.h, etc.  */
-
-#define bfd_asymbol_section(sy) ((sy)->section)
-#define bfd_asymbol_value(sy) ((sy)->section->vma + (sy)->value)
-#define bfd_asymbol_name(sy) ((sy)->name)
-#define bfd_asymbol_bfd(sy) ((sy)->the_bfd)
-#define bfd_asymbol_flavour(sy)			\
-  (((sy)->flags & BSF_SYNTHETIC) != 0		\
-   ? bfd_target_unknown_flavour			\
-   : (sy)->the_bfd->xvec->flavour)
-#define bfd_set_asymbol_name(sy, n) do { (sy)->name = (n); } while (0)
-
 /* A canonical archive symbol.  */
 /* This is a type pun with struct ranlib on purpose!  */
 typedef struct carsym
@@ -7381,6 +7368,36 @@ bfd_set_usrdata (bfd *abfd, void *val)
   abfd->usrdata = val;
 }
 
+static inline asection *
+bfd_asymbol_section (const asymbol *sy)
+{
+  return sy->section;
+}
+
+static inline bfd_vma
+bfd_asymbol_value (const asymbol *sy)
+{
+  return sy->section->vma + sy->value;
+}
+
+static inline const char *
+bfd_asymbol_name (const asymbol *sy)
+{
+  return sy->name;
+}
+
+static inline struct bfd *
+bfd_asymbol_bfd (const asymbol *sy)
+{
+  return sy->the_bfd;
+}
+
+static inline void
+bfd_set_asymbol_name (asymbol *sy, const char *name)
+{
+  sy->name = name;
+}
+
 
 typedef enum bfd_error
 {
@@ -8135,6 +8152,14 @@ bfd_get_symbol_leading_char (const bfd *abfd)
   return abfd->xvec->symbol_leading_char;
 }
 
+static inline enum bfd_flavour
+bfd_asymbol_flavour (const asymbol *sy)
+{
+  if ((sy->flags & BSF_SYNTHETIC) != 0)
+    return bfd_target_unknown_flavour;
+  return sy->the_bfd->xvec->flavour;
+}
+
 bfd_boolean bfd_set_default_target (const char *name);
 
 const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
diff --git a/bfd/bfd.c b/bfd/bfd.c
index c11274c187..9270e118d3 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -447,6 +447,36 @@ CODE_FRAGMENT
 .  abfd->usrdata = val;
 .}
 .
+.static inline asection *
+.bfd_asymbol_section (const asymbol *sy)
+.{
+.  return sy->section;
+.}
+.
+.static inline bfd_vma
+.bfd_asymbol_value (const asymbol *sy)
+.{
+.  return sy->section->vma + sy->value;
+.}
+.
+.static inline const char *
+.bfd_asymbol_name (const asymbol *sy)
+.{
+.  return sy->name;
+.}
+.
+.static inline struct bfd *
+.bfd_asymbol_bfd (const asymbol *sy)
+.{
+.  return sy->the_bfd;
+.}
+.
+.static inline void
+.bfd_set_asymbol_name (asymbol *sy, const char *name)
+.{
+.  sy->name = name;
+.}
+.
 */
 
 #include "sysdep.h"
diff --git a/bfd/targets.c b/bfd/targets.c
index 116a5c34de..717657fba4 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -644,6 +644,14 @@ to find an alternative output format that is suitable.
 .  return abfd->xvec->symbol_leading_char;
 .}
 .
+.static inline enum bfd_flavour
+.bfd_asymbol_flavour (const asymbol *sy)
+.{
+.  if ((sy->flags & BSF_SYNTHETIC) != 0)
+.    return bfd_target_unknown_flavour;
+.  return sy->the_bfd->xvec->flavour;
+.}
+.
 */
 
 /* All known xvecs (even those that don't compile on all systems).


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfd macro conversion to inline functions, section
@ 2019-09-20  9:43 gdb-buildbot
  2019-09-20 14:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20  9:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a48931cc2df9f87596d93b319236c73ef0fe0f4e ***

commit a48931cc2df9f87596d93b319236c73ef0fe0f4e
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Tue Sep 17 08:59:25 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Fri Sep 20 18:04:03 2019 +0930

    bfd macro conversion to inline functions, section
    
    This one exposed a bug in tic6x gas, found with inline function
    parameter type checking.  struct bfd_section and struct bfd_symbol
    both have a flags field, so bfd_is_com_section (symbol) compiled OK
    when bfd_is_com_section was a macro but didn't special case common
    symbols.
    
    bfd/
            * bfd-in.h (bfd_section_name, bfd_section_size, bfd_section_vma),
            (bfd_section_lma, bfd_section_alignment, bfd_section_flags),
            (bfd_section_userdata, bfd_is_com_section, discarded_section),
            (bfd_get_section_limit_octets, bfd_get_section_limit): Delete macros.
            * bfd.c (bfd_get_section_limit_octets, bfd_get_section_limit),
            (bfd_section_list_remove, bfd_section_list_append),
            (bfd_section_list_prepend, bfd_section_list_insert_after),
            (bfd_section_list_insert_before, bfd_section_removed_from_list):
            New inline functions.
            * section.c (bfd_is_und_section, bfd_is_abs_section),
            (bfd_is_ind_section, bfd_is_const_section, bfd_section_list_remove),
            (bfd_section_list_append, bfd_section_list_prepend),
            (bfd_section_list_insert_after, bfd_section_list_insert_before),
            (bfd_section_removed_from_list): Delete macros.
            (bfd_section_name, bfd_section_size, bfd_section_vma),
            (bfd_section_lma, bfd_section_alignment, bfd_section_flags),
            (bfd_section_userdata, bfd_is_com_section, bfd_is_und_section),
            (bfd_is_abs_section, bfd_is_ind_section, bfd_is_const_section),
            (discarded_section): New inline functions.
            * bfd-in2.h: Regenerate.
    gas/
            * config/tc-tic6x.c (tc_gen_reloc): Correct common symbol check.
    ld/
            * emultempl/xtensaelf.em (xtensa_get_section_deps): Comment.
            Use bfd_section_userdata.
            (xtensa_set_section_deps): Use bfd_set_section_userdata.
            * ldlang.c (lang_output_section_get): Use bfd_section_userdata.
            (sort_def_symbol): Likewise, and bfd_set_section_userdata.
            (init_os): Use bfd_set_section_userdata.
            (print_all_symbols): Use bfd_section_userdata.
            * ldlang.h (get_userdata): Delete.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5222063bf0..080c628fee 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,26 @@
+2019-09-20  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h (bfd_section_name, bfd_section_size, bfd_section_vma),
+	(bfd_section_lma, bfd_section_alignment, bfd_section_flags),
+	(bfd_section_userdata, bfd_is_com_section, discarded_section),
+	(bfd_get_section_limit_octets, bfd_get_section_limit): Delete macros.
+	* bfd.c (bfd_get_section_limit_octets, bfd_get_section_limit),
+	(bfd_section_list_remove, bfd_section_list_append),
+	(bfd_section_list_prepend, bfd_section_list_insert_after),
+	(bfd_section_list_insert_before, bfd_section_removed_from_list):
+	New inline functions.
+	* section.c (bfd_is_und_section, bfd_is_abs_section),
+	(bfd_is_ind_section, bfd_is_const_section, bfd_section_list_remove),
+	(bfd_section_list_append, bfd_section_list_prepend),
+	(bfd_section_list_insert_after, bfd_section_list_insert_before),
+	(bfd_section_removed_from_list): Delete macros.
+	(bfd_section_name, bfd_section_size, bfd_section_vma),
+	(bfd_section_lma, bfd_section_alignment, bfd_section_flags),
+	(bfd_section_userdata, bfd_is_com_section, bfd_is_und_section),
+	(bfd_is_abs_section, bfd_is_ind_section, bfd_is_const_section),
+	(discarded_section): New inline functions.
+	* bfd-in2.h: Regenerate.
+
 2019-09-20  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index e9ada8d27f..969a965796 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -285,31 +285,6 @@ typedef struct bfd_section *sec_ptr;
   ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this))		  \
    ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
    : ~ (bfd_vma) 0)
-
-#define bfd_section_name(sec) ((sec)->name)
-#define bfd_section_size(sec) ((sec)->size)
-#define bfd_section_vma(sec) ((sec)->vma)
-#define bfd_section_lma(sec) ((sec)->lma)
-#define bfd_section_alignment(sec) ((sec)->alignment_power)
-#define bfd_section_flags(sec) ((sec)->flags)
-#define bfd_section_userdata(sec) ((sec)->userdata)
-
-#define bfd_is_com_section(sec) (((sec)->flags & SEC_IS_COMMON) != 0)
-
-#define bfd_get_section_limit_octets(bfd, sec)			\
-  ((bfd)->direction != write_direction && (sec)->rawsize != 0	\
-   ? (sec)->rawsize : (sec)->size)
-
-/* Find the address one past the end of SEC.  */
-#define bfd_get_section_limit(bfd, sec) \
-  (bfd_get_section_limit_octets(bfd, sec) / bfd_octets_per_byte (bfd))
-
-/* Return TRUE if input section SEC has been discarded.  */
-#define discarded_section(sec)				\
-  (!bfd_is_abs_section (sec)					\
-   && bfd_is_abs_section ((sec)->output_section)		\
-   && (sec)->sec_info_type != SEC_INFO_TYPE_MERGE		\
-   && (sec)->sec_info_type != SEC_INFO_TYPE_JUST_SYMS)
 \f
 typedef enum bfd_print_symbol
 {
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 5ac3f41b7a..44bce06191 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -292,31 +292,6 @@ typedef struct bfd_section *sec_ptr;
   ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this))		  \
    ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
    : ~ (bfd_vma) 0)
-
-#define bfd_section_name(sec) ((sec)->name)
-#define bfd_section_size(sec) ((sec)->size)
-#define bfd_section_vma(sec) ((sec)->vma)
-#define bfd_section_lma(sec) ((sec)->lma)
-#define bfd_section_alignment(sec) ((sec)->alignment_power)
-#define bfd_section_flags(sec) ((sec)->flags)
-#define bfd_section_userdata(sec) ((sec)->userdata)
-
-#define bfd_is_com_section(sec) (((sec)->flags & SEC_IS_COMMON) != 0)
-
-#define bfd_get_section_limit_octets(bfd, sec)			\
-  ((bfd)->direction != write_direction && (sec)->rawsize != 0	\
-   ? (sec)->rawsize : (sec)->size)
-
-/* Find the address one past the end of SEC.  */
-#define bfd_get_section_limit(bfd, sec) \
-  (bfd_get_section_limit_octets(bfd, sec) / bfd_octets_per_byte (bfd))
-
-/* Return TRUE if input section SEC has been discarded.  */
-#define discarded_section(sec)				\
-  (!bfd_is_abs_section (sec)					\
-   && bfd_is_abs_section ((sec)->output_section)		\
-   && (sec)->sec_info_type != SEC_INFO_TYPE_MERGE		\
-   && (sec)->sec_info_type != SEC_INFO_TYPE_JUST_SYMS)
 \f
 typedef enum bfd_print_symbol
 {
@@ -1686,6 +1661,53 @@ struct relax_table {
   int size;
 };
 
+static inline const char *
+bfd_section_name (const asection *sec)
+{
+  return sec->name;
+}
+
+static inline bfd_size_type
+bfd_section_size (const asection *sec)
+{
+  return sec->size;
+}
+
+static inline bfd_vma
+bfd_section_vma (const asection *sec)
+{
+  return sec->vma;
+}
+
+static inline bfd_vma
+bfd_section_lma (const asection *sec)
+{
+  return sec->lma;
+}
+
+static inline unsigned int
+bfd_section_alignment (const asection *sec)
+{
+  return sec->alignment_power;
+}
+
+static inline flagword
+bfd_section_flags (const asection *sec)
+{
+  return sec->flags;
+}
+
+static inline void *
+bfd_section_userdata (const asection *sec)
+{
+  return sec->userdata;
+}
+static inline bfd_boolean
+bfd_is_com_section (const asection *sec)
+{
+  return (sec->flags & SEC_IS_COMMON) != 0;
+}
+
 /* Note: the following are provided as inline functions rather than macros
    because not all callers use the return value.  A macro implementation
    would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
@@ -1738,105 +1760,39 @@ extern asection _bfd_std_section[4];
 /* Pointer to the indirect section.  */
 #define bfd_ind_section_ptr (&_bfd_std_section[3])
 
-#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
-#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
-#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
+static inline bfd_boolean
+bfd_is_und_section (const asection *sec)
+{
+  return sec == bfd_und_section_ptr;
+}
 
-#define bfd_is_const_section(SEC)              \
- (   ((SEC) == bfd_abs_section_ptr)            \
-  || ((SEC) == bfd_und_section_ptr)            \
-  || ((SEC) == bfd_com_section_ptr)            \
-  || ((SEC) == bfd_ind_section_ptr))
+static inline bfd_boolean
+bfd_is_abs_section (const asection *sec)
+{
+  return sec == bfd_abs_section_ptr;
+}
 
-/* Macros to handle insertion and deletion of a bfd's sections.  These
-   only handle the list pointers, ie. do not adjust section_count,
-   target_index etc.  */
-#define bfd_section_list_remove(ABFD, S) \
-  do                                                   \
-    {                                                  \
-      asection *_s = S;                                \
-      asection *_next = _s->next;                      \
-      asection *_prev = _s->prev;                      \
-      if (_prev)                                       \
-        _prev->next = _next;                           \
-      else                                             \
-        (ABFD)->sections = _next;                      \
-      if (_next)                                       \
-        _next->prev = _prev;                           \
-      else                                             \
-        (ABFD)->section_last = _prev;                  \
-    }                                                  \
-  while (0)
-#define bfd_section_list_append(ABFD, S) \
-  do                                                   \
-    {                                                  \
-      asection *_s = S;                                \
-      bfd *_abfd = ABFD;                               \
-      _s->next = NULL;                                 \
-      if (_abfd->section_last)                         \
-        {                                              \
-          _s->prev = _abfd->section_last;              \
-          _abfd->section_last->next = _s;              \
-        }                                              \
-      else                                             \
-        {                                              \
-          _s->prev = NULL;                             \
-          _abfd->sections = _s;                        \
-        }                                              \
-      _abfd->section_last = _s;                        \
-    }                                                  \
-  while (0)
-#define bfd_section_list_prepend(ABFD, S) \
-  do                                                   \
-    {                                                  \
-      asection *_s = S;                                \
-      bfd *_abfd = ABFD;                               \
-      _s->prev = NULL;                                 \
-      if (_abfd->sections)                             \
-        {                                              \
-          _s->next = _abfd->sections;                  \
-          _abfd->sections->prev = _s;                  \
-        }                                              \
-      else                                             \
-        {                                              \
-          _s->next = NULL;                             \
-          _abfd->section_last = _s;                    \
-        }                                              \
-      _abfd->sections = _s;                            \
-    }                                                  \
-  while (0)
-#define bfd_section_list_insert_after(ABFD, A, S) \
-  do                                                   \
-    {                                                  \
-      asection *_a = A;                                \
-      asection *_s = S;                                \
-      asection *_next = _a->next;                      \
-      _s->next = _next;                                \
-      _s->prev = _a;                                   \
-      _a->next = _s;                                   \
-      if (_next)                                       \
-        _next->prev = _s;                              \
-      else                                             \
-        (ABFD)->section_last = _s;                     \
-    }                                                  \
-  while (0)
-#define bfd_section_list_insert_before(ABFD, B, S) \
-  do                                                   \
-    {                                                  \
-      asection *_b = B;                                \
-      asection *_s = S;                                \
-      asection *_prev = _b->prev;                      \
-      _s->prev = _prev;                                \
-      _s->next = _b;                                   \
-      _b->prev = _s;                                   \
-      if (_prev)                                       \
-        _prev->next = _s;                              \
-      else                                             \
-        (ABFD)->sections = _s;                         \
-    }                                                  \
-  while (0)
-#define bfd_section_removed_from_list(ABFD, S) \
-  ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
+static inline bfd_boolean
+bfd_is_ind_section (const asection *sec)
+{
+  return sec == bfd_ind_section_ptr;
+}
+
+static inline bfd_boolean
+bfd_is_const_section (const asection *sec)
+{
+  return sec >= bfd_abs_section_ptr && sec <= bfd_ind_section_ptr;
+}
+
+/* Return TRUE if input section SEC has been discarded.  */
+static inline bfd_boolean
+discarded_section (const asection *sec)
+{
+  return (!bfd_is_abs_section (sec)
+          && bfd_is_abs_section (sec->output_section)
+          && sec->sec_info_type != SEC_INFO_TYPE_MERGE
+          && sec->sec_info_type != SEC_INFO_TYPE_JUST_SYMS);
+}
 
 #define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS)                   \
   /* name, id,  index, next, prev, flags, user_set_vma,            */  \
@@ -7398,6 +7354,105 @@ bfd_set_asymbol_name (asymbol *sy, const char *name)
   sy->name = name;
 }
 
+static inline bfd_size_type
+bfd_get_section_limit_octets (const bfd *abfd, const asection *sec)
+{
+  if (abfd->direction != write_direction && sec->rawsize != 0)
+    return sec->rawsize;
+  return sec->size;
+}
+
+/* Find the address one past the end of SEC.  */
+static inline bfd_size_type
+bfd_get_section_limit (const bfd *abfd, const asection *sec)
+{
+  return bfd_get_section_limit_octets (abfd, sec) / bfd_octets_per_byte (abfd);
+}
+
+/* Functions to handle insertion and deletion of a bfd's sections.  These
+   only handle the list pointers, ie. do not adjust section_count,
+   target_index etc.  */
+static inline void
+bfd_section_list_remove (bfd *abfd, asection *s)
+{
+  asection *next = s->next;
+  asection *prev = s->prev;
+  if (prev)
+    prev->next = next;
+  else
+    abfd->sections = next;
+  if (next)
+    next->prev = prev;
+  else
+    abfd->section_last = prev;
+}
+
+static inline void
+bfd_section_list_append (bfd *abfd, asection *s)
+{
+  s->next = 0;
+  if (abfd->section_last)
+    {
+      s->prev = abfd->section_last;
+      abfd->section_last->next = s;
+    }
+  else
+    {
+      s->prev = 0;
+      abfd->sections = s;
+    }
+  abfd->section_last = s;
+}
+
+static inline void
+bfd_section_list_prepend (bfd *abfd, asection *s)
+{
+  s->prev = 0;
+  if (abfd->sections)
+    {
+      s->next = abfd->sections;
+      abfd->sections->prev = s;
+    }
+  else
+    {
+      s->next = 0;
+      abfd->section_last = s;
+    }
+  abfd->sections = s;
+}
+
+static inline void
+bfd_section_list_insert_after (bfd *abfd, asection *a, asection *s)
+{
+  asection *next = a->next;
+  s->next = next;
+  s->prev = a;
+  a->next = s;
+  if (next)
+    next->prev = s;
+  else
+    abfd->section_last = s;
+}
+
+static inline void
+bfd_section_list_insert_before (bfd *abfd, asection *b, asection *s)
+{
+  asection *prev = b->prev;
+  s->prev = prev;
+  s->next = b;
+  b->prev = s;
+  if (prev)
+    prev->next = s;
+  else
+    abfd->sections = s;
+}
+
+static inline bfd_boolean
+bfd_section_removed_from_list (const bfd *abfd, const asection *s)
+{
+  return s->next ? s->next->prev != s : abfd->section_last != s;
+}
+
 
 typedef enum bfd_error
 {
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 9270e118d3..af2c192260 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -477,6 +477,105 @@ CODE_FRAGMENT
 .  sy->name = name;
 .}
 .
+.static inline bfd_size_type
+.bfd_get_section_limit_octets (const bfd *abfd, const asection *sec)
+.{
+.  if (abfd->direction != write_direction && sec->rawsize != 0)
+.    return sec->rawsize;
+.  return sec->size;
+.}
+.
+.{* Find the address one past the end of SEC.  *}
+.static inline bfd_size_type
+.bfd_get_section_limit (const bfd *abfd, const asection *sec)
+.{
+.  return bfd_get_section_limit_octets (abfd, sec) / bfd_octets_per_byte (abfd);
+.}
+.
+.{* Functions to handle insertion and deletion of a bfd's sections.  These
+.   only handle the list pointers, ie. do not adjust section_count,
+.   target_index etc.  *}
+.static inline void
+.bfd_section_list_remove (bfd *abfd, asection *s)
+.{
+.  asection *next = s->next;
+.  asection *prev = s->prev;
+.  if (prev)
+.    prev->next = next;
+.  else
+.    abfd->sections = next;
+.  if (next)
+.    next->prev = prev;
+.  else
+.    abfd->section_last = prev;
+.}
+.
+.static inline void
+.bfd_section_list_append (bfd *abfd, asection *s)
+.{
+.  s->next = 0;
+.  if (abfd->section_last)
+.    {
+.      s->prev = abfd->section_last;
+.      abfd->section_last->next = s;
+.    }
+.  else
+.    {
+.      s->prev = 0;
+.      abfd->sections = s;
+.    }
+.  abfd->section_last = s;
+.}
+.
+.static inline void
+.bfd_section_list_prepend (bfd *abfd, asection *s)
+.{
+.  s->prev = 0;
+.  if (abfd->sections)
+.    {
+.      s->next = abfd->sections;
+.      abfd->sections->prev = s;
+.    }
+.  else
+.    {
+.      s->next = 0;
+.      abfd->section_last = s;
+.    }
+.  abfd->sections = s;
+.}
+.
+.static inline void
+.bfd_section_list_insert_after (bfd *abfd, asection *a, asection *s)
+.{
+.  asection *next = a->next;
+.  s->next = next;
+.  s->prev = a;
+.  a->next = s;
+.  if (next)
+.    next->prev = s;
+.  else
+.    abfd->section_last = s;
+.}
+.
+.static inline void
+.bfd_section_list_insert_before (bfd *abfd, asection *b, asection *s)
+.{
+.  asection *prev = b->prev;
+.  s->prev = prev;
+.  s->next = b;
+.  b->prev = s;
+.  if (prev)
+.    prev->next = s;
+.  else
+.    abfd->sections = s;
+.}
+.
+.static inline bfd_boolean
+.bfd_section_removed_from_list (const bfd *abfd, const asection *s)
+.{
+.  return s->next ? s->next->prev != s : abfd->section_last != s;
+.}
+.
 */
 
 #include "sysdep.h"
diff --git a/bfd/section.c b/bfd/section.c
index 3a9cb26023..34e08aef57 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -549,6 +549,53 @@ CODE_FRAGMENT
 .  int size;
 .};
 .
+.static inline const char *
+.bfd_section_name (const asection *sec)
+.{
+.  return sec->name;
+.}
+.
+.static inline bfd_size_type
+.bfd_section_size (const asection *sec)
+.{
+.  return sec->size;
+.}
+.
+.static inline bfd_vma
+.bfd_section_vma (const asection *sec)
+.{
+.  return sec->vma;
+.}
+.
+.static inline bfd_vma
+.bfd_section_lma (const asection *sec)
+.{
+.  return sec->lma;
+.}
+.
+.static inline unsigned int
+.bfd_section_alignment (const asection *sec)
+.{
+.  return sec->alignment_power;
+.}
+.
+.static inline flagword
+.bfd_section_flags (const asection *sec)
+.{
+.  return sec->flags;
+.}
+.
+.static inline void *
+.bfd_section_userdata (const asection *sec)
+.{
+.  return sec->userdata;
+.}
+.static inline bfd_boolean
+.bfd_is_com_section (const asection *sec)
+.{
+.  return (sec->flags & SEC_IS_COMMON) != 0;
+.}
+.
 .{* Note: the following are provided as inline functions rather than macros
 .   because not all callers use the return value.  A macro implementation
 .   would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
@@ -601,105 +648,39 @@ CODE_FRAGMENT
 .{* Pointer to the indirect section.  *}
 .#define bfd_ind_section_ptr (&_bfd_std_section[3])
 .
-.#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
-.#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
-.#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
-.
-.#define bfd_is_const_section(SEC)		\
-. (   ((SEC) == bfd_abs_section_ptr)		\
-.  || ((SEC) == bfd_und_section_ptr)		\
-.  || ((SEC) == bfd_com_section_ptr)		\
-.  || ((SEC) == bfd_ind_section_ptr))
-.
-.{* Macros to handle insertion and deletion of a bfd's sections.  These
-.   only handle the list pointers, ie. do not adjust section_count,
-.   target_index etc.  *}
-.#define bfd_section_list_remove(ABFD, S) \
-.  do							\
-.    {							\
-.      asection *_s = S;				\
-.      asection *_next = _s->next;			\
-.      asection *_prev = _s->prev;			\
-.      if (_prev)					\
-.        _prev->next = _next;				\
-.      else						\
-.        (ABFD)->sections = _next;			\
-.      if (_next)					\
-.        _next->prev = _prev;				\
-.      else						\
-.        (ABFD)->section_last = _prev;			\
-.    }							\
-.  while (0)
-.#define bfd_section_list_append(ABFD, S) \
-.  do							\
-.    {							\
-.      asection *_s = S;				\
-.      bfd *_abfd = ABFD;				\
-.      _s->next = NULL;					\
-.      if (_abfd->section_last)				\
-.        {						\
-.          _s->prev = _abfd->section_last;		\
-.          _abfd->section_last->next = _s;		\
-.        }						\
-.      else						\
-.        {						\
-.          _s->prev = NULL;				\
-.          _abfd->sections = _s;			\
-.        }						\
-.      _abfd->section_last = _s;			\
-.    }							\
-.  while (0)
-.#define bfd_section_list_prepend(ABFD, S) \
-.  do							\
-.    {							\
-.      asection *_s = S;				\
-.      bfd *_abfd = ABFD;				\
-.      _s->prev = NULL;					\
-.      if (_abfd->sections)				\
-.        {						\
-.          _s->next = _abfd->sections;			\
-.          _abfd->sections->prev = _s;			\
-.        }						\
-.      else						\
-.        {						\
-.          _s->next = NULL;				\
-.          _abfd->section_last = _s;			\
-.        }						\
-.      _abfd->sections = _s;				\
-.    }							\
-.  while (0)
-.#define bfd_section_list_insert_after(ABFD, A, S) \
-.  do							\
-.    {							\
-.      asection *_a = A;				\
-.      asection *_s = S;				\
-.      asection *_next = _a->next;			\
-.      _s->next = _next;				\
-.      _s->prev = _a;					\
-.      _a->next = _s;					\
-.      if (_next)					\
-.        _next->prev = _s;				\
-.      else						\
-.        (ABFD)->section_last = _s;			\
-.    }							\
-.  while (0)
-.#define bfd_section_list_insert_before(ABFD, B, S) \
-.  do							\
-.    {							\
-.      asection *_b = B;				\
-.      asection *_s = S;				\
-.      asection *_prev = _b->prev;			\
-.      _s->prev = _prev;				\
-.      _s->next = _b;					\
-.      _b->prev = _s;					\
-.      if (_prev)					\
-.        _prev->next = _s;				\
-.      else						\
-.        (ABFD)->sections = _s;				\
-.    }							\
-.  while (0)
-.#define bfd_section_removed_from_list(ABFD, S) \
-.  ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
+.static inline bfd_boolean
+.bfd_is_und_section (const asection *sec)
+.{
+.  return sec == bfd_und_section_ptr;
+.}
+.
+.static inline bfd_boolean
+.bfd_is_abs_section (const asection *sec)
+.{
+.  return sec == bfd_abs_section_ptr;
+.}
+.
+.static inline bfd_boolean
+.bfd_is_ind_section (const asection *sec)
+.{
+.  return sec == bfd_ind_section_ptr;
+.}
+.
+.static inline bfd_boolean
+.bfd_is_const_section (const asection *sec)
+.{
+.  return sec >= bfd_abs_section_ptr && sec <= bfd_ind_section_ptr;
+.}
+.
+.{* Return TRUE if input section SEC has been discarded.  *}
+.static inline bfd_boolean
+.discarded_section (const asection *sec)
+.{
+.  return (!bfd_is_abs_section (sec)
+.          && bfd_is_abs_section (sec->output_section)
+.          && sec->sec_info_type != SEC_INFO_TYPE_MERGE
+.          && sec->sec_info_type != SEC_INFO_TYPE_JUST_SYMS);
+.}
 .
 .#define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS)			\
 .  {* name, id,  index, next, prev, flags, user_set_vma,            *}	\
diff --git a/gas/ChangeLog b/gas/ChangeLog
index bcd2f9af35..482ab08c29 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-20  Alan Modra  <amodra@gmail.com>
+
+	* config/tc-tic6x.c (tc_gen_reloc): Correct common symbol check.
+
 2018-09-20  Jan Beulich  <jbeulich@suse.com>
 
 	PR gas/25012
diff --git a/gas/config/tc-tic6x.c b/gas/config/tc-tic6x.c
index 0433d9e409..cd12c82dce 100644
--- a/gas/config/tc-tic6x.c
+++ b/gas/config/tc-tic6x.c
@@ -4526,7 +4526,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
   if (reloc->howto->pcrel_offset && reloc->howto->partial_inplace)
     {
       reloc->addend += reloc->address;
-      if (!bfd_is_com_section (symbol))
+      if (!bfd_is_com_section (bfd_asymbol_section (symbol)))
 	reloc->addend -= symbol->value;
     }
   if (r_type == BFD_RELOC_C6000_PCR_H16
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 705a2b2de8..3f62dad9cc 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-20  Alan Modra  <amodra@gmail.com>
+
+	* emultempl/xtensaelf.em (xtensa_get_section_deps): Comment.
+	Use bfd_section_userdata.
+	(xtensa_set_section_deps): Use bfd_set_section_userdata.
+	* ldlang.c (lang_output_section_get): Use bfd_section_userdata.
+	(sort_def_symbol): Likewise, and bfd_set_section_userdata.
+	(init_os): Use bfd_set_section_userdata.
+	(print_all_symbols): Use bfd_section_userdata.
+	* ldlang.h (get_userdata): Delete.
+
 2019-09-20  Alan Modra  <amodra@gmail.com>
 
 	* ldelf.c (ldelf_after_open, ldelf_place_orphan
diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em
index 569df615ce..0b11fdcd69 100644
--- a/ld/emultempl/xtensaelf.em
+++ b/ld/emultempl/xtensaelf.em
@@ -596,8 +596,12 @@ xtensa_get_section_deps (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
   /* We have a separate function for this so that
      we could in the future keep a completely independent
      structure that maps a section to its dependence edges.
-     For now, we place these in the sec->userdata field.  */
-  reloc_deps_section *sec_deps = sec->userdata;
+     For now, we place these in the sec->userdata field.
+     This doesn't clash with ldlang.c use of userdata for output
+     sections, and during map output for input sections, since the
+     xtensa use is only for input sections and only extant in
+     before_allocation.  */
+  reloc_deps_section *sec_deps = bfd_section_userdata (sec);
   return sec_deps;
 }
 
@@ -606,7 +610,7 @@ xtensa_set_section_deps (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
 			 asection *sec,
 			 reloc_deps_section *deps_section)
 {
-  sec->userdata = deps_section;
+  bfd_set_section_userdata (sec, deps_section);
 }
 
 
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 0ffcf34473..1a49f69d90 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -1414,7 +1414,7 @@ lang_memory_default (asection *section)
 lang_output_section_statement_type *
 lang_output_section_get (const asection *output_section)
 {
-  return get_userdata (output_section);
+  return bfd_section_userdata (output_section);
 }
 
 /* Find or create an output_section_statement with the given NAME.
@@ -2316,12 +2316,11 @@ sort_def_symbol (struct bfd_link_hash_entry *hash_entry,
       input_section_userdata_type *ud;
       struct map_symbol_def *def;
 
-      ud = ((input_section_userdata_type *)
-	    get_userdata (hash_entry->u.def.section));
+      ud = bfd_section_userdata (hash_entry->u.def.section);
       if (!ud)
 	{
 	  ud = stat_alloc (sizeof (*ud));
-	  get_userdata (hash_entry->u.def.section) = ud;
+	  bfd_set_section_userdata (hash_entry->u.def.section, ud);
 	  ud->map_symbol_def_tail = &ud->map_symbol_def_head;
 	  ud->map_symbol_def_count = 0;
 	}
@@ -2361,7 +2360,7 @@ init_os (lang_output_section_statement_type *s, flagword flags)
 
   /* Set the userdata of the output section to the output section
      statement to avoid lookup.  */
-  get_userdata (s->bfd_section) = s;
+  bfd_set_section_userdata (s->bfd_section, s);
 
   /* If there is a base address, make sure that any sections it might
      mention are initialized.  */
@@ -4390,8 +4389,7 @@ hash_entry_addr_cmp (const void *a, const void *b)
 static void
 print_all_symbols (asection *sec)
 {
-  input_section_userdata_type *ud
-    = (input_section_userdata_type *) get_userdata (sec);
+  input_section_userdata_type *ud = bfd_section_userdata (sec);
   struct map_symbol_def *def;
   struct bfd_link_hash_entry **entries;
   unsigned int i;
diff --git a/ld/ldlang.h b/ld/ldlang.h
index 9fb10f80a7..5ab62e3279 100644
--- a/ld/ldlang.h
+++ b/ld/ldlang.h
@@ -329,8 +329,6 @@ typedef struct input_section_userdata_struct
   unsigned long map_symbol_def_count;
 } input_section_userdata_type;
 
-#define get_userdata(x) ((x)->userdata)
-
 static inline bfd_boolean
 bfd_input_just_syms (const bfd *abfd)
 {


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Fix crash in Ada "catch exception"
@ 2019-09-20 19:53 gdb-buildbot
  2019-09-20 20:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 19:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d42076962798cd2329090cea213e797f4c69c03c ***

commit d42076962798cd2329090cea213e797f4c69c03c
Author:     Tom Tromey <tromey@adacore.com>
AuthorDate: Fri Sep 20 11:34:21 2019 -0600
Commit:     Tom Tromey <tromey@adacore.com>
CommitDate: Fri Sep 20 11:34:21 2019 -0600

    Fix crash in Ada "catch exception"
    
    PR ada/24919 concerns a crash that Tom de Vries noticed when running
    the "catch_ex" Ada test case.  He sent a test executable and tracked
    this down to commit f21c2bd7b7 ("Fix Fortran regression with variables
    in nested functions").
    
    Looking at that patch, you can see the obvious error:
    
        -  return 0;
        +  return true;
    
    Oops!  This patch fixes the bug.
    
    Tested on x86-64 Fedora 29.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tromey@adacore.com>
    
            PR ada/24919:
            * block.c (contained_in): Fix final return value.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5314b2746b..b1c4db854b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-20  Tom Tromey  <tromey@adacore.com>
+
+	PR ada/24919:
+	* block.c (contained_in): Fix final return value.
+
 2019-09-20  Alan Modra  <amodra@gmail.com>
 
 	* gdb_bfd.c (gdb_bfd_ref, gdb_bfd_unref): Use bfd_set_usrdata.
diff --git a/gdb/block.c b/gdb/block.c
index ca4dc22cf3..5ba44d47ba 100644
--- a/gdb/block.c
+++ b/gdb/block.c
@@ -86,7 +86,7 @@ contained_in (const struct block *a, const struct block *b,
     }
   while (a != NULL);
 
-  return true;
+  return false;
 }
 
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove tui_clear_source_windows_detail
@ 2019-09-20 20:49 gdb-buildbot
  2019-09-20 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 20:49 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 78d5933a43f8a4dd5fd54f5344a7dd9c2d4b8769 ***

commit 78d5933a43f8a4dd5fd54f5344a7dd9c2d4b8769
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Fri Jul 19 12:59:35 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:04 2019 -0600

    Remove tui_clear_source_windows_detail
    
    The calls to tui_clear_source_windows_detail in tui_add_win_to_layout
    aren't needed, because (after the resize unification) resizing will
    update the window contents.  Removing these calls lets us remove
    several other things as well.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-data.h (tui_clear_source_windows_detail): Don't
            declare.
            * tui/tui-layout.c (tui_add_win_to_layout): Don't call
            tui_clear_source_windows_detail.
            * tui/tui-winsource.h (struct tui_source_window_base)
            <clear_detail>: Don't declare.
            * tui/tui-winsource.c (tui_source_window_base::clear_detail):
            Remove.
            * tui/tui-data.c (tui_clear_source_windows_detail): Remove.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b1c4db854b..bedc073d9c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-data.h (tui_clear_source_windows_detail): Don't
+	declare.
+	* tui/tui-layout.c (tui_add_win_to_layout): Don't call
+	tui_clear_source_windows_detail.
+	* tui/tui-winsource.h (struct tui_source_window_base)
+	<clear_detail>: Don't declare.
+	* tui/tui-winsource.c (tui_source_window_base::clear_detail):
+	Remove.
+	* tui/tui-data.c (tui_clear_source_windows_detail): Remove.
+
 2019-09-20  Tom Tromey  <tromey@adacore.com>
 
 	PR ada/24919:
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c
index c11aa43340..833ea49a95 100644
--- a/gdb/tui/tui-data.c
+++ b/gdb/tui/tui-data.c
@@ -87,15 +87,6 @@ tui_set_win_with_focus (struct tui_win_info *win_info)
 }
 
 
-/* Clear the pertinent detail in the source windows.  */
-void
-tui_clear_source_windows_detail ()
-{
-  for (tui_source_window_base *win : tui_source_windows ())
-    win->clear_detail ();
-}
-
-
 /* Accessor for the term_height.  */
 int
 tui_term_height (void)
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index 23f769f6ba..be819503cf 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -295,7 +295,6 @@ extern void tui_set_term_height_to (int);
 extern int tui_term_width (void);
 extern void tui_set_term_width_to (int);
 extern struct tui_locator_window *tui_locator_win_info_ptr (void);
-extern void tui_clear_source_windows_detail (void);
 extern struct tui_win_info *tui_win_with_focus (void);
 extern void tui_set_win_with_focus (struct tui_win_info *);
 extern int tui_win_resized (void);
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index df7056ae97..d331a2f25c 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -207,7 +207,6 @@ tui_add_win_to_layout (enum tui_win_type type)
 	  && cur_layout != SRC_DISASSEM_COMMAND
 	  && cur_layout != SRC_DATA_COMMAND)
 	{
-	  tui_clear_source_windows_detail ();
 	  if (cur_layout == DISASSEM_DATA_COMMAND)
 	    show_layout (SRC_DATA_COMMAND);
 	  else
@@ -219,7 +218,6 @@ tui_add_win_to_layout (enum tui_win_type type)
 	  && cur_layout != SRC_DISASSEM_COMMAND
 	  && cur_layout != DISASSEM_DATA_COMMAND)
 	{
-	  tui_clear_source_windows_detail ();
 	  if (cur_layout == SRC_DATA_COMMAND)
 	    show_layout (DISASSEM_DATA_COMMAND);
 	  else
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 7a4821dc52..4520a1ac3f 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -253,17 +253,6 @@ tui_source_window_base::show_source_content ()
   refresh_window ();
 }
 
-/* See tui-data.h.  */
-
-void
-tui_source_window_base::clear_detail ()
-{
-  gdbarch = NULL;
-  start_line_or_addr.loa = LOA_ADDRESS;
-  start_line_or_addr.u.addr = 0;
-  horizontal_offset = 0;
-}
-
 tui_source_window_base::tui_source_window_base (enum tui_win_type type)
   : tui_win_info (type)
 {
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
index 4c98ca3ceb..445cc7c735 100644
--- a/gdb/tui/tui-winsource.h
+++ b/gdb/tui/tui-winsource.h
@@ -101,8 +101,6 @@ protected:
 
 public:
 
-  void clear_detail ();
-
   /* Refill the source window's source cache and update it.  If this
      is a disassembly window, then just update it.  */
   void refill ();


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change tui_source_element::line to be a unique_xmalloc_ptr
@ 2019-09-20 21:04 gdb-buildbot
  2019-09-20 22:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 21:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f14bec587fd0b695bbb8dcfe92169b4dae76245d ***

commit f14bec587fd0b695bbb8dcfe92169b4dae76245d
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 15:34:40 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:04 2019 -0600

    Change tui_source_element::line to be a unique_xmalloc_ptr
    
    This changes tui_source_element::line to be a unique_xmalloc_ptr,
    removing some manual memory management.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-winsource.h (~tui_source_element): Remove.
            (tui_source_element): Update.
            (struct tui_source_element) <line>: Now a unique_xmalloc_ptr.
            * tui/tui-winsource.c (tui_show_source_line): Update.
            * tui/tui-source.c (tui_source_window::set_contents): Update.
            * tui/tui-disasm.c (tui_disasm_window::set_contents): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bedc073d9c..3d322877df 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-winsource.h (~tui_source_element): Remove.
+	(tui_source_element): Update.
+	(struct tui_source_element) <line>: Now a unique_xmalloc_ptr.
+	* tui/tui-winsource.c (tui_show_source_line): Update.
+	* tui/tui-source.c (tui_source_window::set_contents): Update.
+	* tui/tui-disasm.c (tui_disasm_window::set_contents): Update.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-data.h (tui_clear_source_windows_detail): Don't
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 1d019ca60c..2a331327e7 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -231,11 +231,10 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
       strcpy (line + insn_pos, asm_lines[i].insn);
 
       /* Now copy the line taking the offset into account.  */
-      xfree (src->line);
       if (strlen (line) > offset)
-	src->line = xstrndup (&line[offset], line_width);
+	src->line.reset (xstrndup (&line[offset], line_width));
       else
-	src->line = xstrdup ("");
+	src->line.reset (xstrdup (""));
 
       src->line_or_addr.loa = LOA_ADDRESS;
       src->line_or_addr.u.addr = asm_lines[i].addr;
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index 906006a422..c379173018 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -184,9 +184,7 @@ tui_source_window::set_contents (struct gdbarch *arch,
 				 symtab_to_fullname (s)) == 0
 		   && cur_line_no == locator->line_no);
 
-	      xfree (content[cur_line].line);
-	      content[cur_line].line
-		= xstrdup (text.c_str ());
+	      content[cur_line].line.reset (xstrdup (text.c_str ()));
 
 	      cur_line++;
 	      cur_line_no++;
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 4520a1ac3f..d5281193c0 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -222,8 +222,7 @@ tui_show_source_line (struct tui_source_window_base *win_info, int lineno)
     tui_set_reverse_mode (win_info->handle, true);
 
   wmove (win_info->handle, lineno, TUI_EXECINFO_SIZE);
-  tui_puts (line->line,
-	    win_info->handle);
+  tui_puts (line->line.get (), win_info->handle);
   if (line->is_exec_point)
     tui_set_reverse_mode (win_info->handle, false);
 
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
index 445cc7c735..64f0739e53 100644
--- a/gdb/tui/tui-winsource.h
+++ b/gdb/tui/tui-winsource.h
@@ -54,23 +54,17 @@ struct tui_source_element
     line_or_addr.u.line_no = 0;
   }
 
-  ~tui_source_element ()
-  {
-    xfree (line);
-  }
-
   DISABLE_COPY_AND_ASSIGN (tui_source_element);
 
   tui_source_element (tui_source_element &&other)
-    : line (other.line),
+    : line (std::move (other.line)),
       line_or_addr (other.line_or_addr),
       is_exec_point (other.is_exec_point),
       break_mode (other.break_mode)
   {
-    other.line = nullptr;
   }
 
-  char *line = nullptr;
+  gdb::unique_xmalloc_ptr<char> line;
   struct tui_line_or_address line_or_addr;
   bool is_exec_point = false;
   tui_bp_flags break_mode = 0;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move "fullname" to tui_source_window
@ 2019-09-20 21:15 gdb-buildbot
  2019-09-20 23:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 21:15 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2d81b349982daae463bd29a87e962dde6d099392 ***

commit 2d81b349982daae463bd29a87e962dde6d099392
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 15:37:18 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:05 2019 -0600

    Move "fullname" to tui_source_window
    
    The "fullname" field in tui_source_window_base is only used by one
    subclass.  This patch moves the field to that subclass, and changes it
    to be a unique_xmalloc_ptr.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-winsource.h (struct tui_source_window_base)
            <~tui_source_window_base>: Don't declare.
            <fullname>: Remove.
            * tui/tui-winsource.c (~tui_source_window_base): Remove.
            * tui/tui-source.h (struct tui_source_window) <fullname>: New
            member.
            * tui/tui-source.c (tui_source_window::set_contents): Update.
            (tui_source_window::location_matches_p)
            (tui_source_window::maybe_update): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3d322877df..9f7accd2f6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-winsource.h (struct tui_source_window_base)
+	<~tui_source_window_base>: Don't declare.
+	<fullname>: Remove.
+	* tui/tui-winsource.c (~tui_source_window_base): Remove.
+	* tui/tui-source.h (struct tui_source_window) <fullname>: New
+	member.
+	* tui/tui-source.c (tui_source_window::set_contents): Update.
+	(tui_source_window::location_matches_p)
+	(tui_source_window::maybe_update): Update.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-winsource.h (~tui_source_element): Remove.
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index c379173018..f70e053bdb 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -155,8 +155,7 @@ tui_source_window::set_contents (struct gdbarch *arch,
 
 	  title = s_filename;
 
-	  xfree (fullname);
-	  fullname = xstrdup (symtab_to_fullname (s));
+	  fullname = make_unique_xstrdup (symtab_to_fullname (s));
 
 	  cur_line = 0;
 	  gdbarch = get_objfile_arch (SYMTAB_OBJFILE (s));
@@ -276,7 +275,7 @@ tui_source_window::location_matches_p (struct bp_location *loc, int line_no)
   return (content[line_no].line_or_addr.loa == LOA_LINE
 	  && content[line_no].line_or_addr.u.line_no == loc->line_number
 	  && loc->symtab != NULL
-	  && filename_cmp (fullname,
+	  && filename_cmp (fullname.get (),
 			   symtab_to_fullname (loc->symtab)) == 0);
 }
 
@@ -308,7 +307,7 @@ tui_source_window::maybe_update (struct frame_info *fi, symtab_and_line sal,
     start_line = 1;
 
   bool source_already_displayed = (sal.symtab != 0
-				   && showing_source_p (fullname));
+				   && showing_source_p (fullname.get ()));
 
   struct tui_line_or_address l;
 
diff --git a/gdb/tui/tui-source.h b/gdb/tui/tui-source.h
index a7002123c9..30728e4214 100644
--- a/gdb/tui/tui-source.h
+++ b/gdb/tui/tui-source.h
@@ -76,6 +76,9 @@ private:
      in the current source window.  */
   bool line_is_displayed (int line) const;
 
+  /* It is the resolved form as returned by symtab_to_fullname.  */
+  gdb::unique_xmalloc_ptr<char> fullname;
+
   /* A token used to register and unregister an observer.  */
   gdb::observers::token m_observable;
 };
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index d5281193c0..8b507ed912 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -261,11 +261,6 @@ tui_source_window_base::tui_source_window_base (enum tui_win_type type)
 }
 
 
-tui_source_window_base::~tui_source_window_base ()
-{
-  xfree (fullname);
-}  
-
 /* See tui-data.h.  */
 
 void
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
index 64f0739e53..eca0bde4bb 100644
--- a/gdb/tui/tui-winsource.h
+++ b/gdb/tui/tui-winsource.h
@@ -78,7 +78,7 @@ struct tui_source_window_base : public tui_win_info
 {
 protected:
   explicit tui_source_window_base (enum tui_win_type type);
-  ~tui_source_window_base () override;
+
   DISABLE_COPY_AND_ASSIGN (tui_source_window_base);
 
   void do_scroll_horizontal (int num_to_scroll) override;
@@ -137,9 +137,6 @@ public:
   int horizontal_offset = 0;
   struct tui_line_or_address start_line_or_addr;
 
-  /* It is the resolved form as returned by symtab_to_fullname.  */
-  char *fullname = nullptr;
-
   /* Architecture associated with code at this location.  */
   struct gdbarch *gdbarch = nullptr;
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change tui_make_status_line to return std::string
@ 2019-09-20 21:27 gdb-buildbot
  2019-09-21  0:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 21:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f85321544357a44a824d9d31fd57ed4d3aae1a4a ***

commit f85321544357a44a824d9d31fd57ed4d3aae1a4a
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 16:36:59 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:05 2019 -0600

    Change tui_make_status_line to return std::string
    
    This changes tui_make_status_line to return std::string.  This cleans
    it up a bit, and removes some explicit memory management.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-stack.c (tui_make_status_line): Return std::string.
            (tui_locator_window::rerender): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9f7accd2f6..862748efc1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-stack.c (tui_make_status_line): Return std::string.
+	(tui_locator_window::rerender): Update.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-winsource.h (struct tui_source_window_base)
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 36208d0cac..a2e4a161bb 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -66,14 +66,12 @@ tui_locator_win_info_ptr (void)
 /* Create the status line to display as much information as we can on
    this single line: target name, process number, current function,
    current line, current PC, SingleKey mode.  */
-static char *
+static std::string
 tui_make_status_line (struct tui_locator_window *loc)
 {
-  char *string;
   char line_buf[50], *pname;
-  char *buf;
   int status_size;
-  int i, proc_width;
+  int proc_width;
   const char *pid_name;
   int target_width;
   int pid_width;
@@ -97,8 +95,6 @@ tui_make_status_line (struct tui_locator_window *loc)
     pid_width = MAX_PID_WIDTH;
 
   status_size = tui_term_width ();
-  string = (char *) xmalloc (status_size + 1);
-  buf = (char*) alloca (status_size + 1);
 
   /* Translate line number and obtain its size.  */
   if (loc->line_no > 0)
@@ -158,61 +154,47 @@ tui_make_status_line (struct tui_locator_window *loc)
   pname = loc->proc_name;
 
   /* Now create the locator line from the string version of the
-     elements.  We could use sprintf() here but that wouldn't ensure
-     that we don't overrun the size of the allocated buffer.
-     strcat_to_buf() will.  */
-  *string = (char) 0;
+     elements.  */
+  string_file string;
 
   if (target_width > 0)
-    {
-      sprintf (buf, "%*.*s ",
-               -target_width, target_width, target_shortname);
-      strcat_to_buf (string, status_size, buf);
-    }
+    string.printf ("%*.*s ", -target_width, target_width, target_shortname);
   if (pid_width > 0)
-    {
-      sprintf (buf, "%*.*s ",
-               -pid_width, pid_width, pid_name);
-      strcat_to_buf (string, status_size, buf);
-    }
-  
+    string.printf ("%*.*s ", -pid_width, pid_width, pid_name);
+
   /* Show whether we are in SingleKey mode.  */
   if (tui_current_key_mode == TUI_SINGLE_KEY_MODE)
     {
-      strcat_to_buf (string, status_size, SINGLE_KEY);
-      strcat_to_buf (string, status_size, " ");
+      string.puts (SINGLE_KEY);
+      string.puts (" ");
     }
 
   /* Procedure/class name.  */
   if (proc_width > 0)
     {
       if (strlen (pname) > proc_width)
-        sprintf (buf, "%s%*.*s* ", PROC_PREFIX,
-                 1 - proc_width, proc_width - 1, pname);
+        string.printf ("%s%*.*s* ", PROC_PREFIX,
+		       1 - proc_width, proc_width - 1, pname);
       else
-        sprintf (buf, "%s%*.*s ", PROC_PREFIX,
-                 -proc_width, proc_width, pname);
-      strcat_to_buf (string, status_size, buf);
+        string.printf ("%s%*.*s ", PROC_PREFIX,
+		       -proc_width, proc_width, pname);
     }
 
   if (line_width > 0)
-    {
-      sprintf (buf, "%s%*.*s ", LINE_PREFIX,
-               -line_width, line_width, line_buf);
-      strcat_to_buf (string, status_size, buf);
-    }
+    string.printf ("%s%*.*s ", LINE_PREFIX,
+		   -line_width, line_width, line_buf);
   if (pc_width > 0)
     {
-      strcat_to_buf (string, status_size, PC_PREFIX);
-      strcat_to_buf (string, status_size, pc_buf);
+      string.puts (PC_PREFIX);
+      string.puts (pc_buf);
     }
-  
-  
-  for (i = strlen (string); i < status_size; i++)
-    string[i] = ' ';
-  string[status_size] = (char) 0;
 
-  return string;
+  if (string.size () < status_size)
+    string.puts (n_spaces (status_size - string.size ()));
+  else if (string.size () > status_size)
+    string.string ().erase (status_size, string.size ());
+
+  return std::move (string.string ());
 }
 
 /* Get a printable name for the function at the address.  The symbol
@@ -252,7 +234,7 @@ tui_locator_window::rerender ()
 {
   if (handle != NULL)
     {
-      char *string = tui_make_status_line (this);
+      std::string string = tui_make_status_line (this);
       wmove (handle, 0, 0);
       /* We ignore the return value from wstandout and wstandend, casting
 	 them to void in order to avoid a compiler warning.  The warning
@@ -260,12 +242,11 @@ tui_locator_window::rerender ()
 	 changing these macro to expand to code that causes the compiler
 	 to generate an unused-value warning.  */
       (void) wstandout (handle);
-      waddstr (handle, string);
+      waddstr (handle, string.c_str ());
       wclrtoeol (handle);
       (void) wstandend (handle);
       refresh_window ();
       wmove (handle, 0, 0);
-      xfree (string);
     }
 }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change tui_make_status_line to be a method
@ 2019-09-20 21:42 gdb-buildbot
  2019-09-21  1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 21:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 71a25ed2e77fd72e01d38aa84f5a0fbe5f081474 ***

commit 71a25ed2e77fd72e01d38aa84f5a0fbe5f081474
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 16:43:20 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:05 2019 -0600

    Change tui_make_status_line to be a method
    
    This changes tui_make_status_line to be a method on
    tui_locator_window.  This is a minor cleanup.
    
    This also changes the new method to use the locator's width, rather
    than the terminal width.  This is important if we ever want to allow
    windows to be made more narrow.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-stack.h (struct tui_locator_window) <make_status_line>:
            Declare.
            * tui/tui-stack.c (tui_locator_window::make_status_line): Rename
            from tui_make_status_line.
            (tui_locator_window::rerender): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 862748efc1..b6a15347b5 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-stack.h (struct tui_locator_window) <make_status_line>:
+	Declare.
+	* tui/tui-stack.c (tui_locator_window::make_status_line): Rename
+	from tui_make_status_line.
+	(tui_locator_window::rerender): Update.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-stack.c (tui_make_status_line): Return std::string.
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index a2e4a161bb..163a5ad725 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -63,13 +63,10 @@ tui_locator_win_info_ptr (void)
   return &_locator;
 }
 
-/* Create the status line to display as much information as we can on
-   this single line: target name, process number, current function,
-   current line, current PC, SingleKey mode.  */
-static std::string
-tui_make_status_line (struct tui_locator_window *loc)
+std::string
+tui_locator_window::make_status_line () const
 {
-  char line_buf[50], *pname;
+  char line_buf[50];
   int status_size;
   int proc_width;
   const char *pid_name;
@@ -94,11 +91,11 @@ tui_make_status_line (struct tui_locator_window *loc)
   if (pid_width > MAX_PID_WIDTH)
     pid_width = MAX_PID_WIDTH;
 
-  status_size = tui_term_width ();
+  status_size = width;
 
   /* Translate line number and obtain its size.  */
-  if (loc->line_no > 0)
-    xsnprintf (line_buf, sizeof (line_buf), "%d", loc->line_no);
+  if (line_no > 0)
+    xsnprintf (line_buf, sizeof (line_buf), "%d", line_no);
   else
     strcpy (line_buf, "??");
   line_width = strlen (line_buf);
@@ -106,8 +103,8 @@ tui_make_status_line (struct tui_locator_window *loc)
     line_width = MIN_LINE_WIDTH;
 
   /* Translate PC address.  */
-  std::string pc_out (loc->gdbarch
-		      ? paddress (loc->gdbarch, loc->addr)
+  std::string pc_out (gdbarch
+		      ? paddress (gdbarch, addr)
 		      : "??");
   const char *pc_buf = pc_out.c_str ();
   int pc_width = pc_out.size ();
@@ -150,9 +147,6 @@ tui_make_status_line (struct tui_locator_window *loc)
         }
     }
 
-  /* Now convert elements to string form.  */
-  pname = loc->proc_name;
-
   /* Now create the locator line from the string version of the
      elements.  */
   string_file string;
@@ -172,12 +166,12 @@ tui_make_status_line (struct tui_locator_window *loc)
   /* Procedure/class name.  */
   if (proc_width > 0)
     {
-      if (strlen (pname) > proc_width)
+      if (strlen (proc_name) > proc_width)
         string.printf ("%s%*.*s* ", PROC_PREFIX,
-		       1 - proc_width, proc_width - 1, pname);
+		       1 - proc_width, proc_width - 1, proc_name);
       else
         string.printf ("%s%*.*s ", PROC_PREFIX,
-		       -proc_width, proc_width, pname);
+		       -proc_width, proc_width, proc_name);
     }
 
   if (line_width > 0)
@@ -234,7 +228,7 @@ tui_locator_window::rerender ()
 {
   if (handle != NULL)
     {
-      std::string string = tui_make_status_line (this);
+      std::string string = make_status_line ();
       wmove (handle, 0, 0);
       /* We ignore the return value from wstandout and wstandend, casting
 	 them to void in order to avoid a compiler warning.  The warning
diff --git a/gdb/tui/tui-stack.h b/gdb/tui/tui-stack.h
index 86239b0d28..b6ffa986a6 100644
--- a/gdb/tui/tui-stack.h
+++ b/gdb/tui/tui-stack.h
@@ -63,6 +63,14 @@ struct tui_locator_window : public tui_gen_win_info
   CORE_ADDR addr = 0;
   /* Architecture associated with code at this location.  */
   struct gdbarch *gdbarch = nullptr;
+
+private:
+
+  /* Create the status line to display as much information as we can
+     on this single line: target name, process number, current
+     function, current line, current PC, SingleKey mode.  */
+
+  std::string make_status_line () const;
 };
 
 extern void tui_update_locator_fullname (const char *);


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove some explicit re-rendering from the TUI
@ 2019-09-20 21:56 gdb-buildbot
  2019-09-21  2:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 21:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b3b1bde658c97fbccc1e49b79cc45e434591533e ***

commit b3b1bde658c97fbccc1e49b79cc45e434591533e
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 17:14:37 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:06 2019 -0600

    Remove some explicit re-rendering from the TUI
    
    A couple of spots in tui-layout.c still call the show_source_content
    method.  However, now that re-rendering is done by the resize method,
    these calls are no longer needed.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-layout.c (show_source_disasm_command)
            (show_source_or_disasm_and_command): Don't call
            show_source_content.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b6a15347b5..7e4fa87c90 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-layout.c (show_source_disasm_command)
+	(show_source_or_disasm_and_command): Don't call
+	show_source_content.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-stack.h (struct tui_locator_window) <make_status_line>:
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index d331a2f25c..33d3dd6cb8 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -505,7 +505,6 @@ show_source_disasm_command (void)
   struct tui_locator_window *locator = tui_locator_win_info_ptr ();
   gdb_assert (locator != nullptr);
 
-  TUI_SRC_WIN->show_source_content ();
   if (TUI_DISASM_WIN == NULL)
     tui_win_list[DISASSEM_WIN] = new tui_disasm_window ();
   TUI_DISASM_WIN->resize (asm_height,
@@ -516,7 +515,6 @@ show_source_disasm_command (void)
 		   tui_term_width (),
 		   0,
 		   (src_height + asm_height) - 1);
-  TUI_DISASM_WIN->show_source_content ();
 
   if (TUI_CMD_WIN == NULL)
     tui_win_list[CMD_WIN] = new tui_cmd_window ();
@@ -646,8 +644,6 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
 		    0,
 		    0);
 
-  win_info->show_source_content ();
-
   if (TUI_CMD_WIN == NULL)
     tui_win_list[CMD_WIN] = new tui_cmd_window ();
   TUI_CMD_WIN->resize (cmd_height,


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Simplify tui_source_window_base::show_source_content
@ 2019-09-20 22:05 gdb-buildbot
  2019-09-21  3:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:05 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 2ad52f6fb3daecd928605384fcaa45ad43178b4e ***

commit 2ad52f6fb3daecd928605384fcaa45ad43178b4e
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 17:16:56 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:06 2019 -0600

    Simplify tui_source_window_base::show_source_content
    
    tui_source_window_base::show_source_content is not used outside the
    class any more, so this makes it private.  Examining the callers shows
    that it can't be called without source contents, so it can be
    simplified as well.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-winsource.h (struct tui_source_window_base)
            <show_source_content>: Now private.
            * tui/tui-winsource.c
            (tui_source_window_base::show_source_content): Don't handle empty
            content case.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7e4fa87c90..b634e52622 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-winsource.h (struct tui_source_window_base)
+	<show_source_content>: Now private.
+	* tui/tui-winsource.c
+	(tui_source_window_base::show_source_content): Don't handle empty
+	content case.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-layout.c (show_source_disasm_command)
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 8b507ed912..683856de81 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -238,15 +238,10 @@ tui_show_source_line (struct tui_source_window_base *win_info, int lineno)
 void
 tui_source_window_base::show_source_content ()
 {
-  if (!content.empty ())
-    {
-      int lineno;
+  gdb_assert (!content.empty ());
 
-      for (lineno = 1; lineno <= content.size (); lineno++)
-        tui_show_source_line (this, lineno);
-    }
-  else
-    erase_source_content ();
+  for (int lineno = 1; lineno <= content.size (); lineno++)
+    tui_show_source_line (this, lineno);
 
   check_and_display_highlight_if_needed ();
   refresh_window ();
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
index eca0bde4bb..a66c63597e 100644
--- a/gdb/tui/tui-winsource.h
+++ b/gdb/tui/tui-winsource.h
@@ -76,6 +76,9 @@ struct tui_source_element
 
 struct tui_source_window_base : public tui_win_info
 {
+private:
+  void show_source_content ();
+
 protected:
   explicit tui_source_window_base (enum tui_win_type type);
 
@@ -106,8 +109,6 @@ public:
 
   virtual bool location_matches_p (struct bp_location *loc, int line_no) = 0;
 
-  void show_source_content ();
-
   void update_exec_info ();
 
   /* Update the window to display the given location.  Does nothing if


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Simplify TUI disassembly
@ 2019-09-20 22:25 gdb-buildbot
  2019-09-21  4:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6b915f7d0caf868c037c387aa4feef0c7085cb48 ***

commit 6b915f7d0caf868c037c387aa4feef0c7085cb48
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 17:37:48 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:07 2019 -0600

    Simplify TUI disassembly
    
    This simplifies TUI disassembly somewhat, by removing manual memory
    management.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-disasm.c (struct tui_asm_line) <addr_string, insn>: Now
            std::string.
            (tui_disassemble): Add "pos" parameter.
            (tui_disasm_window::set_contents): Simplify.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b634e52622..00d97c6602 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-disasm.c (struct tui_asm_line) <addr_string, insn>: Now
+	std::string.
+	(tui_disassemble): Add "pos" parameter.
+	(tui_disasm_window::set_contents): Simplify.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-winsource.h (struct tui_source_window_base)
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 2a331327e7..53ea061afb 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -44,34 +44,32 @@
 struct tui_asm_line 
 {
   CORE_ADDR addr;
-  char *addr_string;
-  char *insn;
+  std::string addr_string;
+  std::string insn;
 };
 
 /* Function to set the disassembly window's content.
    Disassemble count lines starting at pc.
    Return address of the count'th instruction after pc.  */
 static CORE_ADDR
-tui_disassemble (struct gdbarch *gdbarch, struct tui_asm_line *asm_lines,
-		 CORE_ADDR pc, int count)
+tui_disassemble (struct gdbarch *gdbarch,
+		 std::vector<tui_asm_line> &asm_lines,
+		 CORE_ADDR pc, int pos, int count)
 {
   string_file gdb_dis_out;
 
   /* Now construct each line.  */
-  for (; count > 0; count--, asm_lines++)
+  for (int i = 0; i < count; ++i)
     {
-      xfree (asm_lines->addr_string);
-      xfree (asm_lines->insn);
-      
       print_address (gdbarch, pc, &gdb_dis_out);
-      asm_lines->addr = pc;
-      asm_lines->addr_string = xstrdup (gdb_dis_out.c_str ());
+      asm_lines[pos + i].addr = pc;
+      asm_lines[pos + i].addr_string = std::move (gdb_dis_out.string ());
 
       gdb_dis_out.clear ();
 
       pc = pc + gdb_print_insn (gdbarch, pc, &gdb_dis_out, NULL);
 
-      asm_lines->insn = xstrdup (gdb_dis_out.c_str ());
+      asm_lines[pos + i].insn = std::move (gdb_dis_out.string ());
 
       /* Reset the buffer to empty.  */
       gdb_dis_out.clear ();
@@ -87,20 +85,17 @@ tui_find_disassembly_address (struct gdbarch *gdbarch, CORE_ADDR pc, int from)
 {
   CORE_ADDR new_low;
   int max_lines;
-  int i;
-  struct tui_asm_line *asm_lines;
 
   max_lines = (from > 0) ? from : - from;
   if (max_lines <= 1)
-     return pc;
+    return pc;
 
-  asm_lines = XALLOCAVEC (struct tui_asm_line, max_lines);
-  memset (asm_lines, 0, sizeof (struct tui_asm_line) * max_lines);
+  std::vector<tui_asm_line> asm_lines (max_lines);
 
   new_low = pc;
   if (from > 0)
     {
-      tui_disassemble (gdbarch, asm_lines, pc, max_lines);
+      tui_disassemble (gdbarch, asm_lines, pc, 0, max_lines);
       new_low = asm_lines[max_lines - 1].addr;
     }
   else
@@ -122,7 +117,7 @@ tui_find_disassembly_address (struct gdbarch *gdbarch, CORE_ADDR pc, int from)
          else
             new_low += 1 * max_lines;
 
-         tui_disassemble (gdbarch, asm_lines, new_low, max_lines);
+         tui_disassemble (gdbarch, asm_lines, new_low, 0, max_lines);
          last_addr = asm_lines[pos].addr;
       } while (last_addr > pc && msymbol.minsym);
 
@@ -139,8 +134,8 @@ tui_find_disassembly_address (struct gdbarch *gdbarch, CORE_ADDR pc, int from)
             if (pos >= max_lines)
               pos = 0;
 
-            next_addr = tui_disassemble (gdbarch, &asm_lines[pos],
-					 last_addr, 1);
+            next_addr = tui_disassemble (gdbarch, asm_lines,
+					 last_addr, pos, 1);
 
             /* If there are some problems while disassembling exit.  */
             if (next_addr <= last_addr)
@@ -152,11 +147,6 @@ tui_find_disassembly_address (struct gdbarch *gdbarch, CORE_ADDR pc, int from)
          pos = 0;
       new_low = asm_lines[pos].addr;
     }
-  for (i = 0; i < max_lines; i++)
-    {
-      xfree (asm_lines[i].addr_string);
-      xfree (asm_lines[i].insn);
-    }
   return new_low;
 }
 
@@ -172,10 +162,8 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
   CORE_ADDR cur_pc;
   struct tui_locator_window *locator = tui_locator_win_info_ptr ();
   int tab_len = tui_tab_width;
-  struct tui_asm_line *asm_lines;
   int insn_pos;
   int addr_size, insn_size;
-  char *line;
   
   gdb_assert (line_or_addr.loa == LOA_ADDRESS);
   CORE_ADDR pc = line_or_addr.u.addr;
@@ -192,22 +180,21 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
   line_width = width - TUI_EXECINFO_SIZE - 2;
 
   /* Get temporary table that will hold all strings (addr & insn).  */
-  asm_lines = XALLOCAVEC (struct tui_asm_line, max_lines);
-  memset (asm_lines, 0, sizeof (struct tui_asm_line) * max_lines);
+  std::vector<tui_asm_line> asm_lines (max_lines);
 
-  tui_disassemble (gdbarch, asm_lines, pc, max_lines);
+  tui_disassemble (gdbarch, asm_lines, pc, 0, max_lines);
 
   /* Determine maximum address- and instruction lengths.  */
   addr_size = 0;
   insn_size = 0;
   for (i = 0; i < max_lines; i++)
     {
-      size_t len = strlen (asm_lines[i].addr_string);
+      size_t len = asm_lines[i].addr_string.size ();
 
       if (len > addr_size)
         addr_size = len;
 
-      len = strlen (asm_lines[i].insn);
+      len = asm_lines[i].insn.size ();
       if (len > insn_size)
 	insn_size = len;
     }
@@ -215,23 +202,20 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
   /* Align instructions to the same column.  */
   insn_pos = (1 + (addr_size / tab_len)) * tab_len;
 
-  /* Allocate memory to create each line.  */
-  line = (char*) alloca (insn_pos + insn_size + 1);
-
   /* Now construct each line.  */
   content.resize (max_lines);
   for (i = 0; i < max_lines; i++)
     {
-      int cur_len;
-
       tui_source_element *src = &content[i];
-      strcpy (line, asm_lines[i].addr_string);
-      cur_len = strlen (line);
-      memset (line + cur_len, ' ', insn_pos - cur_len);
-      strcpy (line + insn_pos, asm_lines[i].insn);
+
+      std::string line
+	= (asm_lines[i].addr_string
+	   + n_spaces (insn_pos
+		       - asm_lines[i].addr_string.size ())
+	   + asm_lines[i].insn);
 
       /* Now copy the line taking the offset into account.  */
-      if (strlen (line) > offset)
+      if (line.size() > offset)
 	src->line.reset (xstrndup (&line[offset], line_width));
       else
 	src->line.reset (xstrdup (""));
@@ -239,9 +223,6 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
       src->line_or_addr.loa = LOA_ADDRESS;
       src->line_or_addr.u.addr = asm_lines[i].addr;
       src->is_exec_point = asm_lines[i].addr == cur_pc;
-
-      xfree (asm_lines[i].addr_string);
-      xfree (asm_lines[i].insn);
     }
   return TUI_SUCCESS;
 }


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use "bool" in tui_data_window::show_register_group
@ 2019-09-20 22:33 gdb-buildbot
  2019-09-21  5:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:33 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b5457826744f08208a4c29addbbc26c7c877c485 ***

commit b5457826744f08208a4c29addbbc26c7c877c485
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Wed Jul 24 15:42:27 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:07 2019 -0600

    Use "bool" in tui_data_window::show_register_group
    
    This changes tui_data_window::show_register_group to use "bool" rather
    than "int".
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-regs.h (struct tui_data_window) <show_register_group>:
            Change type of "refresh_values_only".
            * tui/tui-regs.c (tui_data_window::show_register_group): Change
            type of "refresh_values_only".

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 00d97c6602..188984ee80 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-regs.h (struct tui_data_window) <show_register_group>:
+	Change type of "refresh_values_only".
+	* tui/tui-regs.c (tui_data_window::show_register_group): Change
+	type of "refresh_values_only".
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-disasm.c (struct tui_asm_line) <addr_string, insn>: Now
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 48e78fc9db..0485d04d25 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -166,12 +166,12 @@ tui_data_window::show_registers (struct reggroup *group)
 
 /* Set the data window to display the registers of the register group
    using the given frame.  Values are refreshed only when
-   refresh_values_only is TRUE.  */
+   refresh_values_only is true.  */
 
 void
 tui_data_window::show_register_group (struct reggroup *group,
 				      struct frame_info *frame, 
-				      int refresh_values_only)
+				      bool refresh_values_only)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
   int nr_regs;
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index abf44c88b6..73572efdf9 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -108,7 +108,7 @@ private:
 
   void show_register_group (struct reggroup *group,
 			    struct frame_info *frame,
-			    int refresh_values_only);
+			    bool refresh_values_only);
 
   /* Answer the number of the last line in the regs display.  If there
      are no registers (-1) is returned.  */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change "win_resized" to bool
@ 2019-09-20 22:45 gdb-buildbot
  2019-09-21  6:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:45 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9abd8a65c1298258c005af3f80bdc4da9726ee05 ***

commit 9abd8a65c1298258c005af3f80bdc4da9726ee05
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Wed Jul 24 15:43:40 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:08 2019 -0600

    Change "win_resized" to bool
    
    This changes the "win_resized" global to be a bool and then updates
    the uses.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui.c (tui_enable): Update.
            * tui/tui-win.c (tui_sigwinch_handler, tui_async_resize_screen):
            Update.
            * tui/tui-data.h (tui_win_resized, tui_set_win_resized_to):
            Update.
            * tui/tui-data.c (win_resized): Now bool.
            (tui_win_resized): Return bool.
            (tui_set_win_resized_to): Accept a bool.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 188984ee80..e36b54f226 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui.c (tui_enable): Update.
+	* tui/tui-win.c (tui_sigwinch_handler, tui_async_resize_screen):
+	Update.
+	* tui/tui-data.h (tui_win_resized, tui_set_win_resized_to):
+	Update.
+	* tui/tui-data.c (win_resized): Now bool.
+	(tui_win_resized): Return bool.
+	(tui_set_win_resized_to): Accept a bool.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-regs.h (struct tui_data_window) <show_register_group>:
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c
index 833ea49a95..c14b1711f6 100644
--- a/gdb/tui/tui-data.c
+++ b/gdb/tui/tui-data.c
@@ -38,7 +38,7 @@ struct tui_win_info *tui_win_list[MAX_MAJOR_WINDOWS];
 static int term_height, term_width;
 static struct tui_win_info *win_with_focus = NULL;
 
-static int win_resized = FALSE;
+static bool win_resized = false;
 
 
 /*********************************
@@ -56,8 +56,8 @@ tui_win_is_auxiliary (enum tui_win_type win_type)
 ******************************************/
 
 /* Answer a whether the terminal window has been resized or not.  */
-int
-tui_win_resized (void)
+bool
+tui_win_resized ()
 {
   return win_resized;
 }
@@ -65,7 +65,7 @@ tui_win_resized (void)
 
 /* Set a whether the terminal window has been resized or not.  */
 void
-tui_set_win_resized_to (int resized)
+tui_set_win_resized_to (bool resized)
 {
   win_resized = resized;
 }
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index be819503cf..264652361e 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -297,8 +297,8 @@ extern void tui_set_term_width_to (int);
 extern struct tui_locator_window *tui_locator_win_info_ptr (void);
 extern struct tui_win_info *tui_win_with_focus (void);
 extern void tui_set_win_with_focus (struct tui_win_info *);
-extern int tui_win_resized (void);
-extern void tui_set_win_resized_to (int);
+extern bool tui_win_resized ();
+extern void tui_set_win_resized_to (bool);
 
 extern struct tui_win_info *tui_next_win (struct tui_win_info *);
 extern struct tui_win_info *tui_prev_win (struct tui_win_info *);
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index bf84cdac44..d07a777360 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -664,7 +664,7 @@ static void
 tui_sigwinch_handler (int signal)
 {
   mark_async_signal_handler (tui_sigwinch_token);
-  tui_set_win_resized_to (TRUE);
+  tui_set_win_resized_to (true);
 }
 
 /* Callback for asynchronously resizing TUI following a SIGWINCH signal.  */
@@ -685,7 +685,7 @@ tui_async_resize_screen (gdb_client_data arg)
     }
   else
     {
-      tui_set_win_resized_to (FALSE);
+      tui_set_win_resized_to (false);
       tui_resize_all ();
       tui_refresh_all_win ();
       tui_update_gdb_sizes ();
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index 5d6b9f3203..966304f340 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -504,7 +504,7 @@ tui_enable (void)
      window.  */
   if (tui_win_resized ())
     {
-      tui_set_win_resized_to (FALSE);
+      tui_set_win_resized_to (false);
       tui_resize_all ();
     }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Set TUI locator height to 1
@ 2019-09-20 22:59 gdb-buildbot
  2019-09-21  7:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1b935acf7ecc2df4649b7d34b7ac467eac07221b ***

commit 1b935acf7ecc2df4649b7d34b7ac467eac07221b
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Wed Jul 24 16:37:48 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:08 2019 -0600

    Set TUI locator height to 1
    
    The TUI has long had code to resize the locator, using 2 as the
    height.  However the code has "1" in a comment, like:
    
        locator->resize (2 /* 1 */ ,
    
    This patch fixes the resizing code to set the height to 1.  Doing this
    revealed what was probably the reason for setting the height to 2 in
    the first place: this caused the locator window to scroll.  However,
    this is easily handled by calling scrollok on the locator window.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-win.c (tui_resize_all, tui_adjust_win_heights): Use 1 as
            height for locator.
            * tui/tui-stack.c (tui_locator_window::rerender): Call scrollok.
            * tui/tui-layout.c (show_source_disasm_command, show_data)
            (show_source_or_disasm_and_command): Use 1 as height for locator.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e36b54f226..9bc6f263f4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-win.c (tui_resize_all, tui_adjust_win_heights): Use 1 as
+	height for locator.
+	* tui/tui-stack.c (tui_locator_window::rerender): Call scrollok.
+	* tui/tui-layout.c (show_source_disasm_command, show_data)
+	(show_source_or_disasm_and_command): Use 1 as height for locator.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui.c (tui_enable): Update.
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 33d3dd6cb8..03115a7baa 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -511,10 +511,8 @@ show_source_disasm_command (void)
 			  tui_term_width (),
 			  0,
 			  src_height - 1);
-  locator->resize (2 /* 1 */ ,
-		   tui_term_width (),
-		   0,
-		   (src_height + asm_height) - 1);
+  locator->resize (1, tui_term_width (),
+		   0, (src_height + asm_height) - 1);
 
   if (TUI_CMD_WIN == NULL)
     tui_win_list[CMD_WIN] = new tui_cmd_window ();
@@ -561,10 +559,8 @@ show_data (enum tui_layout_type new_layout)
 				  tui_term_width (),
 				  0,
 				  data_height - 1);
-  locator->resize (2 /* 1 */ ,
-		   tui_term_width (),
-		   0,
-		   total_height - 1);
+  locator->resize (1, tui_term_width (),
+		   0, total_height - 1);
   TUI_CMD_WIN->resize (TUI_CMD_WIN->height, tui_term_width (),
 		       0, total_height);
 
@@ -635,10 +631,8 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
       win_info = TUI_DISASM_WIN;
     }
 
-  locator->resize (2 /* 1 */ ,
-		   tui_term_width (),
-		   0,
-		   src_height - 1);
+  locator->resize (1, tui_term_width (),
+		   0, src_height - 1);
   win_info->resize (src_height - 1,
 		    tui_term_width (),
 		    0,
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 163a5ad725..6bfbb0e5ea 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -229,6 +229,7 @@ tui_locator_window::rerender ()
   if (handle != NULL)
     {
       std::string string = make_status_line ();
+      scrollok (handle, FALSE);
       wmove (handle, 0, 0);
       /* We ignore the return value from wstandout and wstandend, casting
 	 them to void in order to avoid a compiler warning.  The warning
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index d07a777360..77044738ef 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -580,8 +580,7 @@ tui_resize_all (void)
 
 	  src_win->resize (new_height, screenwidth, 0, 0);
 
-	  locator->resize (2 /* 1 */, screenwidth,
-			   0, new_height);
+	  locator->resize (1, screenwidth, 0, new_height);
 
 	  new_height = screenheight - (new_height + 1);
 	  TUI_CMD_WIN->resize (new_height, screenwidth,
@@ -637,7 +636,7 @@ tui_resize_all (void)
 	  second_win->resize (new_height, screenwidth,
 			      0, first_win->height - 1);
 
-	  locator->resize (2 /* 1 */, screenwidth,
+	  locator->resize (1, screenwidth,
 			   0, second_win->origin.y + new_height);
 
 	  /* Change the command window's height/width.  */
@@ -1119,7 +1118,7 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info,
 		  second_win->resize (second_win->height + second_split_diff,
 				      width,
 				      0, first_win->height - 1);
-		  locator->resize (2 /* 1 */, width,
+		  locator->resize (1, width,
 				   0, (second_win->origin.y
 				       + second_win->height + 1));
 
@@ -1155,7 +1154,7 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info,
 		  else
 		    second_win->resize (second_win->height, width,
 					0, first_win->height - 1);
-		  locator->resize (2 /* 1 */, width,
+		  locator->resize (1, width,
 				   0, (second_win->origin.y
 				       + second_win->height + 1));
 		  TUI_CMD_WIN->origin.y = locator->origin.y + 1;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Don't call refresh in tui_resize_all
@ 2019-09-20 23:08 gdb-buildbot
  2019-09-21  8:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:08 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0891be0835883fc1159565b780d63954e6b09bd9 ***

commit 0891be0835883fc1159565b780d63954e6b09bd9
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Wed Jul 24 21:05:10 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:09 2019 -0600

    Don't call refresh in tui_resize_all
    
    There's no reason to call refresh in tui_resize_all.  This call
    flushes the curses window contents to the terminal -- but, because
    we're about the resize all the windows, we're going to be sending more
    data to the terminal momentarily.  This patch removes the call.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-win.c (tui_resize_all): Don't call refresh.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9bc6f263f4..35584db07f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-win.c (tui_resize_all): Don't call refresh.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-win.c (tui_resize_all, tui_adjust_win_heights): Use 1 as
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 77044738ef..8963da2b48 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -561,7 +561,6 @@ tui_resize_all (void)
          AIX 5.3 does not define clear.  */
       erase ();
       clearok (curscr, TRUE);
-      refresh ();
       switch (cur_layout)
        {
 	case SRC_COMMAND:


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove a call to tui_locator_win_info_ptr
@ 2019-09-20 23:22 gdb-buildbot
  2019-09-21  9:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:22 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b76251abaf279603367ae730b9194fb20861fdb9 ***

commit b76251abaf279603367ae730b9194fb20861fdb9
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Sun Sep 1 08:10:18 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:09 2019 -0600

    Remove a call to tui_locator_win_info_ptr
    
    Commit e594a5d1 ("Turn two locator functions into methods") turned
    set_locator_fullname into a method on tui_locator_window.  I missed it
    at the time, but this change allows for the removal of a call to
    tui_locator_win_info_ptr.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-stack.c (tui_locator_window::set_locator_fullname):
            Don't call tui_locator_win_info_ptr.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 35584db07f..401c74242e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-stack.c (tui_locator_window::set_locator_fullname):
+	Don't call tui_locator_win_info_ptr.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-win.c (tui_resize_all): Don't call refresh.
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 6bfbb0e5ea..830187995b 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -250,10 +250,8 @@ tui_locator_window::rerender ()
 void
 tui_locator_window::set_locator_fullname (const char *fullname)
 {
-  struct tui_locator_window *locator = tui_locator_win_info_ptr ();
-
-  locator->full_name[0] = 0;
-  strcat_to_buf (locator->full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
+  full_name[0] = 0;
+  strcat_to_buf (full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
   rerender ();
 }
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change members of tui_locator_window to std::string
@ 2019-09-20 23:35 gdb-buildbot
  2019-09-21 10:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:35 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9923f347c4e4b9ed710de3404444cf46b04135a0 ***

commit 9923f347c4e4b9ed710de3404444cf46b04135a0
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Sun Sep 1 08:13:24 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:10 2019 -0600

    Change members of tui_locator_window to std::string
    
    This changes two members of tui_locator_window to have type
    std::string.  This removes a static limit.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-stack.h (MAX_LOCATOR_ELEMENT_LEN): Remove define.
            (struct tui_locator_window) <full_name, proc_name>: Now
            std::string.
            * tui/tui-stack.c (tui_locator_window::make_status_line)
            (tui_locator_window::set_locator_fullname)
            (tui_locator_window::set_locator_info): Update.
            * tui/tui-source.c (tui_source_window::set_contents)
            (tui_source_window::showing_source_p): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 401c74242e..8d586e72f0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-stack.h (MAX_LOCATOR_ELEMENT_LEN): Remove define.
+	(struct tui_locator_window) <full_name, proc_name>: Now
+	std::string.
+	* tui/tui-stack.c (tui_locator_window::make_status_line)
+	(tui_locator_window::set_locator_fullname)
+	(tui_locator_window::set_locator_info): Update.
+	* tui/tui-source.c (tui_source_window::set_contents)
+	(tui_source_window::showing_source_p): Update.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-stack.c (tui_locator_window::set_locator_fullname):
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index f70e053bdb..e6cc0dbc1a 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -179,7 +179,7 @@ tui_source_window::set_contents (struct gdbarch *arch,
 	      element->line_or_addr.loa = LOA_LINE;
 	      element->line_or_addr.u.line_no = cur_line_no;
 	      element->is_exec_point
-		= (filename_cmp (locator->full_name,
+		= (filename_cmp (locator->full_name.c_str (),
 				 symtab_to_fullname (s)) == 0
 		   && cur_line_no == locator->line_no);
 
@@ -213,7 +213,7 @@ bool
 tui_source_window::showing_source_p (const char *fullname) const
 {
   return (!content.empty ()
-	  && (filename_cmp (tui_locator_win_info_ptr ()->full_name,
+	  && (filename_cmp (tui_locator_win_info_ptr ()->full_name.c_str (),
 			    fullname) == 0));
 }
 
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 830187995b..d66e3589e4 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -166,12 +166,12 @@ tui_locator_window::make_status_line () const
   /* Procedure/class name.  */
   if (proc_width > 0)
     {
-      if (strlen (proc_name) > proc_width)
+      if (proc_name.size () > proc_width)
         string.printf ("%s%*.*s* ", PROC_PREFIX,
-		       1 - proc_width, proc_width - 1, proc_name);
+		       1 - proc_width, proc_width - 1, proc_name.c_str ());
       else
         string.printf ("%s%*.*s ", PROC_PREFIX,
-		       -proc_width, proc_width, proc_name);
+		       -proc_width, proc_width, proc_name.c_str ());
     }
 
   if (line_width > 0)
@@ -250,8 +250,7 @@ tui_locator_window::rerender ()
 void
 tui_locator_window::set_locator_fullname (const char *fullname)
 {
-  full_name[0] = 0;
-  strcat_to_buf (full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
+  full_name = fullname;
   rerender ();
 }
 
@@ -272,16 +271,13 @@ tui_locator_window::set_locator_info (struct gdbarch *gdbarch_in,
   if (fullname == NULL)
     fullname = "";
 
-  locator_changed_p |= strncmp (proc_name, procname,
-				MAX_LOCATOR_ELEMENT_LEN) != 0;
+  locator_changed_p |= proc_name != procname;
   locator_changed_p |= lineno != line_no;
   locator_changed_p |= addr_in != addr;
   locator_changed_p |= gdbarch_in != gdbarch;
-  locator_changed_p |= strncmp (full_name, fullname,
-				MAX_LOCATOR_ELEMENT_LEN) != 0;
+  locator_changed_p |= full_name != fullname;
 
-  proc_name[0] = (char) 0;
-  strcat_to_buf (proc_name, MAX_LOCATOR_ELEMENT_LEN, procname);
+  proc_name = procname;
   line_no = lineno;
   addr = addr_in;
   gdbarch = gdbarch_in;
diff --git a/gdb/tui/tui-stack.h b/gdb/tui/tui-stack.h
index b6ffa986a6..93a79fbd79 100644
--- a/gdb/tui/tui-stack.h
+++ b/gdb/tui/tui-stack.h
@@ -26,12 +26,6 @@
 
 struct frame_info;
 
-#ifdef PATH_MAX
-# define MAX_LOCATOR_ELEMENT_LEN        PATH_MAX
-#else
-# define MAX_LOCATOR_ELEMENT_LEN        1024
-#endif
-
 /* Locator window class.  */
 
 struct tui_locator_window : public tui_gen_win_info
@@ -57,8 +51,8 @@ struct tui_locator_window : public tui_gen_win_info
   /* Set the full_name portion of the locator.  */
   void set_locator_fullname (const char *fullname);
 
-  char full_name[MAX_LOCATOR_ELEMENT_LEN];
-  char proc_name[MAX_LOCATOR_ELEMENT_LEN];
+  std::string full_name;
+  std::string proc_name;
   int line_no = 0;
   CORE_ADDR addr = 0;
   /* Architecture associated with code at this location.  */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Rename private data members of tui_data_window
@ 2019-09-20 23:46 gdb-buildbot
  2019-09-21 11:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:46 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 80df33379eb01e5cf959f3db8d6b1dec9bc6a03b ***

commit 80df33379eb01e5cf959f3db8d6b1dec9bc6a03b
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Mon Sep 2 08:09:37 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:10 2019 -0600

    Rename private data members of tui_data_window
    
    As Pedro suggested, this patch renames the private data members of
    tui_data_window to use the "m_" prefix.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-regs.h (struct tui_data_window) <get_current_group>:
            Update.
            <m_regs_content, m_regs_column_count, m_current_group>: Add "m_"
            prefix.
            * tui/tui-regs.c (tui_data_window::last_regs_line_no)
            (tui_data_window::line_from_reg_element_no)
            (tui_data_window::first_reg_element_no_inline)
            (tui_data_window::show_registers)
            (tui_data_window::show_register_group)
            (tui_data_window::display_registers_from)
            (tui_data_window::display_registers_from_line)
            (tui_data_window::first_data_item_displayed)
            (tui_data_window::delete_data_content_windows)
            (tui_data_window::erase_data_content)
            (tui_data_window::do_scroll_vertical)
            (tui_data_window::refresh_window)
            (tui_data_window::check_register_values): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8d586e72f0..96bf00595d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,23 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-regs.h (struct tui_data_window) <get_current_group>:
+	Update.
+	<m_regs_content, m_regs_column_count, m_current_group>: Add "m_"
+	prefix.
+	* tui/tui-regs.c (tui_data_window::last_regs_line_no)
+	(tui_data_window::line_from_reg_element_no)
+	(tui_data_window::first_reg_element_no_inline)
+	(tui_data_window::show_registers)
+	(tui_data_window::show_register_group)
+	(tui_data_window::display_registers_from)
+	(tui_data_window::display_registers_from_line)
+	(tui_data_window::first_data_item_displayed)
+	(tui_data_window::delete_data_content_windows)
+	(tui_data_window::erase_data_content)
+	(tui_data_window::do_scroll_vertical)
+	(tui_data_window::refresh_window)
+	(tui_data_window::check_register_values): Update.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-stack.h (MAX_LOCATOR_ELEMENT_LEN): Remove define.
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 0485d04d25..c4769cbcb4 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -96,8 +96,8 @@ tui_get_register (struct frame_info *frame,
 int
 tui_data_window::last_regs_line_no () const
 {
-  int num_lines = regs_content.size () / regs_column_count;
-  if (regs_content.size () % regs_column_count)
+  int num_lines = m_regs_content.size () / m_regs_column_count;
+  if (m_regs_content.size () % m_regs_column_count)
     num_lines++;
   return num_lines;
 }
@@ -107,14 +107,14 @@ tui_data_window::last_regs_line_no () const
 int
 tui_data_window::line_from_reg_element_no (int element_no) const
 {
-  if (element_no < regs_content.size ())
+  if (element_no < m_regs_content.size ())
     {
       int i, line = (-1);
 
       i = 1;
       while (line == (-1))
 	{
-	  if (element_no < regs_column_count * i)
+	  if (element_no < m_regs_column_count * i)
 	    line = i - 1;
 	  else
 	    i++;
@@ -131,8 +131,8 @@ tui_data_window::line_from_reg_element_no (int element_no) const
 int
 tui_data_window::first_reg_element_no_inline (int line_no) const
 {
-  if (line_no * regs_column_count <= regs_content.size ())
-    return ((line_no + 1) * regs_column_count) - regs_column_count;
+  if (line_no * m_regs_column_count <= m_regs_content.size ())
+    return ((line_no + 1) * m_regs_column_count) - m_regs_column_count;
   else
     return (-1);
 }
@@ -148,17 +148,17 @@ tui_data_window::show_registers (struct reggroup *group)
   if (target_has_registers && target_has_stack && target_has_memory)
     {
       show_register_group (group, get_selected_frame (NULL),
-			   group == current_group);
+			   group == m_current_group);
 
       /* Clear all notation of changed values.  */
-      for (auto &&data_item_win : regs_content)
+      for (auto &&data_item_win : m_regs_content)
 	data_item_win.highlight = false;
-      current_group = group;
+      m_current_group = group;
       rerender ();
     }
   else
     {
-      current_group = 0;
+      m_current_group = 0;
       erase_data_content (_("[ Register Values Unavailable ]"));
     }
 }
@@ -199,7 +199,7 @@ tui_data_window::show_register_group (struct reggroup *group,
       nr_regs++;
     }
 
-  regs_content.resize (nr_regs);
+  m_regs_content.resize (nr_regs);
 
   /* Now set the register names and values.  */
   pos = 0;
@@ -218,7 +218,7 @@ tui_data_window::show_register_group (struct reggroup *group,
       if (name == 0 || *name == '\0')
 	continue;
 
-      data_item_win = &regs_content[pos];
+      data_item_win = &m_regs_content[pos];
       if (data_item_win)
 	{
 	  if (!refresh_values_only)
@@ -241,7 +241,7 @@ tui_data_window::display_registers_from (int start_element_no)
   int j, item_win_width, cur_y;
 
   int max_len = 0;
-  for (auto &&data_item_win : regs_content)
+  for (auto &&data_item_win : m_regs_content)
     {
       const char *p;
       int len;
@@ -257,24 +257,24 @@ tui_data_window::display_registers_from (int start_element_no)
   item_win_width = max_len + 1;
   int i = start_element_no;
 
-  regs_column_count = (width - 2) / item_win_width;
-  if (regs_column_count == 0)
-    regs_column_count = 1;
-  item_win_width = (width - 2) / regs_column_count;
+  m_regs_column_count = (width - 2) / item_win_width;
+  if (m_regs_column_count == 0)
+    m_regs_column_count = 1;
+  item_win_width = (width - 2) / m_regs_column_count;
 
   /* Now create each data "sub" window, and write the display into
      it.  */
   cur_y = 1;
-  while (i < regs_content.size ()
+  while (i < m_regs_content.size ()
 	 && cur_y <= viewport_height)
     {
       for (j = 0;
-	   j < regs_column_count && i < regs_content.size ();
+	   j < m_regs_column_count && i < m_regs_content.size ();
 	   j++)
 	{
 	  /* Create the window if necessary.  */
-	  regs_content[i].resize (1, item_win_width,
-				  (item_win_width * j) + 1, cur_y);
+	  m_regs_content[i].resize (1, item_win_width,
+				    (item_win_width * j) + 1, cur_y);
 	  i++;		/* Next register.  */
 	}
       cur_y++;		/* Next row.  */
@@ -322,14 +322,14 @@ tui_data_window::display_registers_from_line (int line_no)
 	 registers.  */
       if (line_no >= last_regs_line_no ())
 	{
-	  line_no = line_from_reg_element_no (regs_content.size () - 1);
+	  line_no = line_from_reg_element_no (m_regs_content.size () - 1);
 	  if (line_no < 0)
 	    line_no = 0;
 	}
     }
 
   element_no = first_reg_element_no_inline (line_no);
-  if (element_no < regs_content.size ())
+  if (element_no < m_regs_content.size ())
     display_reg_element_at_line (element_no, line_no);
   else
     line_no = (-1);
@@ -343,11 +343,11 @@ tui_data_window::display_registers_from_line (int line_no)
 int
 tui_data_window::first_data_item_displayed ()
 {
-  for (int i = 0; i < regs_content.size (); i++)
+  for (int i = 0; i < m_regs_content.size (); i++)
     {
       struct tui_gen_win_info *data_item_win;
 
-      data_item_win = &regs_content[i];
+      data_item_win = &m_regs_content[i];
       if (data_item_win->is_visible ())
 	return i;
     }
@@ -360,7 +360,7 @@ tui_data_window::first_data_item_displayed ()
 void
 tui_data_window::delete_data_content_windows ()
 {
-  for (auto &&win : regs_content)
+  for (auto &&win : m_regs_content)
     {
       tui_delete_win (win.handle);
       win.handle = NULL;
@@ -392,7 +392,7 @@ tui_data_window::erase_data_content (const char *prompt)
 void
 tui_data_window::rerender ()
 {
-  if (regs_content.empty ())
+  if (m_regs_content.empty ())
     erase_data_content (_("[ Register Values Unavailable ]"));
   else
     {
@@ -411,7 +411,7 @@ tui_data_window::do_scroll_vertical (int num_to_scroll)
   int first_line = (-1);
 
   first_element_no = first_data_item_displayed ();
-  if (first_element_no < regs_content.size ())
+  if (first_element_no < m_regs_content.size ())
     first_line = line_from_reg_element_no (first_element_no);
   else
     { /* Calculate the first line from the element number which is in
@@ -433,7 +433,7 @@ void
 tui_data_window::refresh_window ()
 {
   tui_gen_win_info::refresh_window ();
-  for (auto &&win : regs_content)
+  for (auto &&win : m_regs_content)
     win.refresh_window ();
 }
 
@@ -443,11 +443,11 @@ tui_data_window::refresh_window ()
 void
 tui_data_window::check_register_values (struct frame_info *frame)
 {
-  if (regs_content.empty ())
-    show_registers (current_group);
+  if (m_regs_content.empty ())
+    show_registers (m_current_group);
   else
     {
-      for (auto &&data_item_win : regs_content)
+      for (auto &&data_item_win : m_regs_content)
 	{
 	  int was_hilighted;
 
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index 73572efdf9..e45a68f8f4 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -71,7 +71,7 @@ struct tui_data_window : public tui_win_info
 
   struct reggroup *get_current_group () const
   {
-    return current_group;
+    return m_current_group;
   }
 
 protected:
@@ -130,9 +130,9 @@ private:
   void erase_data_content (const char *prompt);
 
   /* Windows that are used to display registers.  */
-  std::vector<tui_data_item_window> regs_content;
-  int regs_column_count = 0;
-  struct reggroup *current_group = nullptr;
+  std::vector<tui_data_item_window> m_regs_content;
+  int m_regs_column_count = 0;
+  struct reggroup *m_current_group = nullptr;
 };
 
 #endif /* TUI_TUI_REGS_H */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Rename a private data member in tui_source_window
@ 2019-09-20 23:58 gdb-buildbot
  2019-09-21 12:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7226433c44e3792aeea6ad19c54cd3056ea4308e ***

commit 7226433c44e3792aeea6ad19c54cd3056ea4308e
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Mon Sep 2 08:10:44 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:11 2019 -0600

    Rename a private data member in tui_source_window
    
    This renames tui_source_window::fullname to add the "m_" prefix, as it
    is a private data member.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-source.h (struct tui_source_window) <m_fullname>: Rename
            from "fullname".
            * tui/tui-source.c (tui_source_window::set_contents)
            (tui_source_window::location_matches_p)
            (tui_source_window::maybe_update): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 96bf00595d..3b2fdd2056 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-source.h (struct tui_source_window) <m_fullname>: Rename
+	from "fullname".
+	* tui/tui-source.c (tui_source_window::set_contents)
+	(tui_source_window::location_matches_p)
+	(tui_source_window::maybe_update): Update.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-regs.h (struct tui_data_window) <get_current_group>:
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index e6cc0dbc1a..fa6ed7893f 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -155,7 +155,7 @@ tui_source_window::set_contents (struct gdbarch *arch,
 
 	  title = s_filename;
 
-	  fullname = make_unique_xstrdup (symtab_to_fullname (s));
+	  m_fullname = make_unique_xstrdup (symtab_to_fullname (s));
 
 	  cur_line = 0;
 	  gdbarch = get_objfile_arch (SYMTAB_OBJFILE (s));
@@ -275,7 +275,7 @@ tui_source_window::location_matches_p (struct bp_location *loc, int line_no)
   return (content[line_no].line_or_addr.loa == LOA_LINE
 	  && content[line_no].line_or_addr.u.line_no == loc->line_number
 	  && loc->symtab != NULL
-	  && filename_cmp (fullname.get (),
+	  && filename_cmp (m_fullname.get (),
 			   symtab_to_fullname (loc->symtab)) == 0);
 }
 
@@ -307,7 +307,7 @@ tui_source_window::maybe_update (struct frame_info *fi, symtab_and_line sal,
     start_line = 1;
 
   bool source_already_displayed = (sal.symtab != 0
-				   && showing_source_p (fullname.get ()));
+				   && showing_source_p (m_fullname.get ()));
 
   struct tui_line_or_address l;
 
diff --git a/gdb/tui/tui-source.h b/gdb/tui/tui-source.h
index 30728e4214..3ef737c56e 100644
--- a/gdb/tui/tui-source.h
+++ b/gdb/tui/tui-source.h
@@ -77,7 +77,7 @@ private:
   bool line_is_displayed (int line) const;
 
   /* It is the resolved form as returned by symtab_to_fullname.  */
-  gdb::unique_xmalloc_ptr<char> fullname;
+  gdb::unique_xmalloc_ptr<char> m_fullname;
 
   /* A token used to register and unregister an observer.  */
   gdb::observers::token m_observable;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove strcat_to_buf
@ 2019-09-21  0:13 gdb-buildbot
  2019-09-21 13:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-21  0:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 43df9b2fccc347e95f882519332592a826d72d11 ***

commit 43df9b2fccc347e95f882519332592a826d72d11
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Mon Sep 2 09:07:02 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:11 2019 -0600

    Remove strcat_to_buf
    
    An earlier patch in the series removed the last call to strcat_to_buf,
    so this patch removes the function entirely.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui.h (strcat_to_buf): Don't declare.
            * tui/tui.c (strcat_to_buf): Remove.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3b2fdd2056..ba434dd300 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui.h (strcat_to_buf): Don't declare.
+	* tui/tui.c (strcat_to_buf): Remove.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-source.h (struct tui_source_window) <m_fullname>: Rename
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index 966304f340..30bf548879 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -570,19 +570,6 @@ tui_disable_command (const char *args, int from_tty)
   tui_disable ();
 }
 
-void
-strcat_to_buf (char *buf, int buflen, 
-	       const char *item_to_add)
-{
-  if (item_to_add != NULL && buf != NULL)
-    {
-      if ((strlen (buf) + strlen (item_to_add)) <= buflen)
-	strcat (buf, item_to_add);
-      else
-	strncat (buf, item_to_add, (buflen - strlen (buf)));
-    }
-}
-
 #if 0
 /* Solaris <sys/termios.h> defines CTRL.  */
 #ifndef CTRL
diff --git a/gdb/tui/tui.h b/gdb/tui/tui.h
index 25ae0c5e47..baf4a813b6 100644
--- a/gdb/tui/tui.h
+++ b/gdb/tui/tui.h
@@ -24,8 +24,6 @@
 
 struct ui_file;
 
-extern void strcat_to_buf (char *, int, const char *);
-
 /* Types of error returns.  */
 enum tui_status
 {


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove separator comments from TUI
@ 2019-09-21  0:26 gdb-buildbot
  2019-09-21 14:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-21  0:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 63c4bf1922d5553edb213606270b0e2782bbe4c8 ***

commit 63c4bf1922d5553edb213606270b0e2782bbe4c8
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Sep 10 12:41:29 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:11 2019 -0600

    Remove separator comments from TUI
    
    This removes various separator comments from the TUI.  These aren't
    used elsewhere in gdb, and they were incorrect in some cases as well.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-data.c: Remove separator comments.
            * tui/tui-layout.c: Remove separator comments.
            * tui/tui-win.c: Remove separator comments.
            * tui/tui-wingeneral.c: Remove separator comments.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ba434dd300..8f69dc59ec 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-data.c: Remove separator comments.
+	* tui/tui-layout.c: Remove separator comments.
+	* tui/tui-win.c: Remove separator comments.
+	* tui/tui-wingeneral.c: Remove separator comments.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui.h (strcat_to_buf): Don't declare.
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c
index c14b1711f6..748d897821 100644
--- a/gdb/tui/tui-data.c
+++ b/gdb/tui/tui-data.c
@@ -27,34 +27,19 @@
 #include "tui/tui-winsource.h"
 #include "gdb_curses.h"
 
-/****************************
-** GLOBAL DECLARATIONS
-****************************/
 struct tui_win_info *tui_win_list[MAX_MAJOR_WINDOWS];
 
-/***************************
-** Private data
-****************************/
 static int term_height, term_width;
 static struct tui_win_info *win_with_focus = NULL;
 
 static bool win_resized = false;
 
-
-/*********************************
-** PUBLIC FUNCTIONS
-**********************************/
-
 int
 tui_win_is_auxiliary (enum tui_win_type win_type)
 {
   return (win_type > MAX_MAJOR_WINDOWS);
 }
 
-/******************************************
-** ACCESSORS & MUTATORS FOR PRIVATE DATA
-******************************************/
-
 /* Answer a whether the terminal window has been resized or not.  */
 bool
 tui_win_resized ()
@@ -119,11 +104,6 @@ tui_set_term_width_to (int w)
 }
 
 
-/*****************************
-** OTHER PUBLIC FUNCTIONS
-*****************************/
-
-
 /* Answer the next window in the list, cycling back to the top if
    necessary.  */
 struct tui_win_info *
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 03115a7baa..0f3e8d945e 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -40,9 +40,6 @@
 #include "tui/tui-source.h"
 #include "gdb_curses.h"
 
-/*******************************
-** Static Local Decls
-********************************/
 static void show_layout (enum tui_layout_type);
 static void show_source_or_disasm_and_command (enum tui_layout_type);
 static void show_source_command (void);
@@ -64,9 +61,6 @@ tui_current_layout (void)
   return current_layout;
 }
 
-/***************************************
-** DEFINITIONS
-***************************************/
 
 /* Show the screen layout defined.  */
 static void
@@ -338,11 +332,6 @@ Layout names are:\n\
 }
 
 
-/*************************
-** STATIC LOCAL FUNCTIONS
-**************************/
-
-
 /* Function to set the layout to SRC, ASM, SPLIT, NEXT, PREV, DATA, or
    REGS. */
 static void
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 8963da2b48..aecb7791f0 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -53,9 +53,6 @@
 
 #include <signal.h>
 
-/*******************************
-** Static Local Decls
-********************************/
 static enum tui_status tui_adjust_win_heights (struct tui_win_info *, 
 					       int);
 static int new_height_ok (struct tui_win_info *, int);
@@ -71,16 +68,9 @@ static void parse_scrolling_args (const char *,
 				  int *);
 
 
-/***************************************
-** DEFINITIONS
-***************************************/
 #define WIN_HEIGHT_USAGE    "Usage: winheight WINDOW-NAME [+ | -] NUM-LINES\n"
 #define FOCUS_USAGE         "Usage: focus [WINDOW-NAME | next | prev]\n"
 
-/***************************************
-** PUBLIC FUNCTIONS
-***************************************/
-
 #ifndef ACS_LRCORNER
 #  define ACS_LRCORNER '+'
 #endif
@@ -720,11 +710,6 @@ tui_initialize_win (void)
 }
 
 
-/*************************
-** STATIC LOCAL FUNCTIONS
-**************************/
-
-
 static void
 tui_scroll_forward_command (const char *arg, int from_tty)
 {
diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
index 235c17c5fa..713059d663 100644
--- a/gdb/tui/tui-wingeneral.c
+++ b/gdb/tui/tui-wingeneral.c
@@ -28,10 +28,6 @@
 
 #include "gdb_curses.h"
 
-/***********************
-** PUBLIC FUNCTIONS
-***********************/
-
 /* See tui-data.h.  */
 
 void
@@ -191,8 +187,3 @@ tui_refresh_all ()
   if (locator->is_visible ())
     locator->refresh_window ();
 }
-
-
-/*********************************
-** Local Static Functions
-*********************************/


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Use make_unique_xstrdup in TUI
@ 2019-09-21  0:43 gdb-buildbot
  2019-09-21 15:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-21  0:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f074b67ec812612637342a1647da9158a1e77de0 ***

commit f074b67ec812612637342a1647da9158a1e77de0
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Sep 10 12:56:09 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:12 2019 -0600

    Use make_unique_xstrdup in TUI
    
    This changes a couple of spots in the TUI to use make_unique_xstrdup.
    This simplifies the code slightly.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * tui/tui-source.c (tui_source_window::set_contents): Use
            make_unique_xstrdup.
            * tui/tui-disasm.c (tui_disasm_window::set_contents): Use
            make_unique_xstrdup.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8f69dc59ec..402b57ab6e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-source.c (tui_source_window::set_contents): Use
+	make_unique_xstrdup.
+	* tui/tui-disasm.c (tui_disasm_window::set_contents): Use
+	make_unique_xstrdup.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-data.c: Remove separator comments.
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 53ea061afb..51616bcf87 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -218,7 +218,7 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
       if (line.size() > offset)
 	src->line.reset (xstrndup (&line[offset], line_width));
       else
-	src->line.reset (xstrdup (""));
+	src->line = make_unique_xstrdup ("");
 
       src->line_or_addr.loa = LOA_ADDRESS;
       src->line_or_addr.u.addr = asm_lines[i].addr;
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index fa6ed7893f..bb1013bb86 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -183,7 +183,7 @@ tui_source_window::set_contents (struct gdbarch *arch,
 				 symtab_to_fullname (s)) == 0
 		   && cur_line_no == locator->line_no);
 
-	      content[cur_line].line.reset (xstrdup (text.c_str ()));
+	      content[cur_line].line = make_unique_xstrdup (text.c_str ());
 
 	      cur_line++;
 	      cur_line_no++;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Change TUI window commands to be case-sensitive
@ 2019-09-21  0:53 gdb-buildbot
  2019-09-21 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-21  0:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 78e8cb91cd1374ac59cc8bf6509fa70bde74ff1a ***

commit 78e8cb91cd1374ac59cc8bf6509fa70bde74ff1a
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 16:01:03 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:12 2019 -0600

    Change TUI window commands to be case-sensitive
    
    The TUI window-related commands like "focus" are case insensitive.
    This is not the norm in gdb, and I don't see a good reason to have it
    here.  This patch changes the TUI to be case sensitive, like the rest
    of gdb.
    
    gdb/ChangeLog
    2019-09-20  Tom Tromey  <tom@tromey.com>
    
            * NEWS: Mention case-sensitivity of TUI commands.
            * tui/tui-win.c (tui_set_focus_command): Now case-sensitive.
            (tui_set_win_height_command, parse_scrolling_args): Likewise.
            * tui/tui-layout.c (tui_layout_command): Now case-sensitive.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 402b57ab6e..adaa123822 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+	* NEWS: Mention case-sensitivity of TUI commands.
+	* tui/tui-win.c (tui_set_focus_command): Now case-sensitive.
+	(tui_set_win_height_command, parse_scrolling_args): Likewise.
+	* tui/tui-layout.c (tui_layout_command): Now case-sensitive.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* tui/tui-source.c (tui_source_window::set_contents): Use
diff --git a/gdb/NEWS b/gdb/NEWS
index 1fefd81409..201701bac3 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -186,6 +186,9 @@ maint show test-options-completion-result
   Commands used by the testsuite to validate the command options
   framework.
 
+focus, winheight, +, -, >, <
+  These commands are now case-sensitive.
+
 * New command options, command completion
 
   GDB now has a standard infrastructure to support dash-style command
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 0f3e8d945e..7aa670ec69 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -337,29 +337,23 @@ Layout names are:\n\
 static void
 tui_layout_command (const char *layout_name, int from_tty)
 {
-  int i;
   enum tui_layout_type new_layout = UNDEFINED_LAYOUT;
   enum tui_layout_type cur_layout = tui_current_layout ();
 
-  if (layout_name == NULL)
+  if (layout_name == NULL || *layout_name == '\0')
     error (_("Usage: layout prev | next | LAYOUT-NAME"));
 
-  std::string copy = layout_name;
-  for (i = 0; i < copy.size (); i++)
-    copy[i] = toupper (copy[i]);
-  const char *buf_ptr = copy.c_str ();
-
   /* First check for ambiguous input.  */
-  if (strlen (buf_ptr) <= 1 && *buf_ptr == 'S')
+  if (strcmp (layout_name, "s") == 0)
     error (_("Ambiguous command input."));
 
-  if (subset_compare (buf_ptr, "SRC"))
+  if (subset_compare (layout_name, "src"))
     new_layout = SRC_COMMAND;
-  else if (subset_compare (buf_ptr, "ASM"))
+  else if (subset_compare (layout_name, "asm"))
     new_layout = DISASSEM_COMMAND;
-  else if (subset_compare (buf_ptr, "SPLIT"))
+  else if (subset_compare (layout_name, "split"))
     new_layout = SRC_DISASSEM_COMMAND;
-  else if (subset_compare (buf_ptr, "REGS"))
+  else if (subset_compare (layout_name, "regs"))
     {
       if (cur_layout == SRC_COMMAND
 	  || cur_layout == SRC_DATA_COMMAND)
@@ -367,9 +361,9 @@ tui_layout_command (const char *layout_name, int from_tty)
       else
 	new_layout = DISASSEM_DATA_COMMAND;
     }
-  else if (subset_compare (buf_ptr, "NEXT"))
+  else if (subset_compare (layout_name, "next"))
     new_layout = next_layout ();
-  else if (subset_compare (buf_ptr, "PREV"))
+  else if (subset_compare (layout_name, "prev"))
     new_layout = prev_layout ();
   else
     error (_("Unrecognized layout: %s"), layout_name);
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index aecb7791f0..37e22c550f 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -776,35 +776,27 @@ tui_set_focus_command (const char *arg, int from_tty)
 
   if (arg != NULL)
     {
-      char *buf_ptr = xstrdup (arg);
-      int i;
       struct tui_win_info *win_info = NULL;
 
-      for (i = 0; (i < strlen (buf_ptr)); i++)
-	buf_ptr[i] = tolower (arg[i]);
-
-      if (subset_compare (buf_ptr, "next"))
+      if (subset_compare (arg, "next"))
 	win_info = tui_next_win (tui_win_with_focus ());
-      else if (subset_compare (buf_ptr, "prev"))
+      else if (subset_compare (arg, "prev"))
 	win_info = tui_prev_win (tui_win_with_focus ());
       else
-	win_info = tui_partial_win_by_name (buf_ptr);
+	win_info = tui_partial_win_by_name (arg);
 
-      if (win_info == NULL || !win_info->is_visible ())
-	warning (_("Invalid window specified. \n\
-The window name specified must be valid and visible.\n"));
-      else
-	{
-	  tui_set_win_focus_to (win_info);
-	  keypad (TUI_CMD_WIN->handle, (win_info != TUI_CMD_WIN));
-	}
+      if (win_info == NULL)
+	error (_("Unrecognized window name \"%s\""), arg);
+      if (!win_info->is_visible ())
+	error (_("Window \"%s\" is not visible"), arg);
 
-      xfree (buf_ptr);
+      tui_set_win_focus_to (win_info);
+      keypad (TUI_CMD_WIN->handle, (win_info != TUI_CMD_WIN));
       printf_filtered (_("Focus set to %s window.\n"),
 		       tui_win_with_focus ()->name ());
     }
   else
-    warning (_("Incorrect Number of Arguments.\n%s"), FOCUS_USAGE);
+    error (_("Incorrect Number of Arguments.\n%s"), FOCUS_USAGE);
 }
 
 static void
@@ -927,65 +919,61 @@ tui_set_win_height_command (const char *arg, int from_tty)
       char *buf = &copy[0];
       char *buf_ptr = buf;
       char *wname = NULL;
-      int new_height, i;
+      int new_height;
       struct tui_win_info *win_info;
 
       wname = buf_ptr;
       buf_ptr = strchr (buf_ptr, ' ');
       if (buf_ptr != NULL)
 	{
-	  *buf_ptr = (char) 0;
+	  *buf_ptr = '\0';
 
 	  /* Validate the window name.  */
-	  for (i = 0; i < strlen (wname); i++)
-	    wname[i] = tolower (wname[i]);
 	  win_info = tui_partial_win_by_name (wname);
 
-	  if (win_info == NULL || !win_info->is_visible ())
-	    warning (_("Invalid window specified. \n\
-The window name specified must be valid and visible.\n"));
-	  else
+	  if (win_info == NULL)
+	    error (_("Unrecognized window name \"%s\""), arg);
+	  if (!win_info->is_visible ())
+	    error (_("Window \"%s\" is not visible"), arg);
+
+	  /* Process the size.  */
+	  buf_ptr = skip_spaces (buf_ptr);
+
+	  if (*buf_ptr != '\0')
 	    {
-	      /* Process the size.  */
-	      while (*(++buf_ptr) == ' ')
-		;
+	      bool negate = false;
+	      bool fixed_size = true;
+	      int input_no;;
 
-	      if (*buf_ptr != (char) 0)
+	      if (*buf_ptr == '+' || *buf_ptr == '-')
 		{
-		  int negate = FALSE;
-		  int fixed_size = TRUE;
-		  int input_no;;
-
-		  if (*buf_ptr == '+' || *buf_ptr == '-')
-		    {
-		      if (*buf_ptr == '-')
-			negate = TRUE;
-		      fixed_size = FALSE;
-		      buf_ptr++;
-		    }
-		  input_no = atoi (buf_ptr);
-		  if (input_no > 0)
-		    {
-		      if (negate)
-			input_no *= (-1);
-		      if (fixed_size)
-			new_height = input_no;
-		      else
-			new_height = win_info->height + input_no;
-
-		      /* Now change the window's height, and adjust
-		         all other windows around it.  */
-		      if (tui_adjust_win_heights (win_info,
-						new_height) == TUI_FAILURE)
-			warning (_("Invalid window height specified.\n%s"),
-				 WIN_HEIGHT_USAGE);
-		      else
-                        tui_update_gdb_sizes ();
-		    }
+		  if (*buf_ptr == '-')
+		    negate = true;
+		  fixed_size = false;
+		  buf_ptr++;
+		}
+	      input_no = atoi (buf_ptr);
+	      if (input_no > 0)
+		{
+		  if (negate)
+		    input_no *= (-1);
+		  if (fixed_size)
+		    new_height = input_no;
 		  else
+		    new_height = win_info->height + input_no;
+
+		  /* Now change the window's height, and adjust
+		     all other windows around it.  */
+		  if (tui_adjust_win_heights (win_info,
+					      new_height) == TUI_FAILURE)
 		    warning (_("Invalid window height specified.\n%s"),
 			     WIN_HEIGHT_USAGE);
+		  else
+		    tui_update_gdb_sizes ();
 		}
+	      else
+		warning (_("Invalid window height specified.\n%s"),
+			 WIN_HEIGHT_USAGE);
 	    }
 	}
       else
@@ -1299,7 +1287,7 @@ parse_scrolling_args (const char *arg,
 	  buf_ptr = strchr (buf_ptr, ' ');
 	  if (buf_ptr != NULL)
 	    {
-	      *buf_ptr = (char) 0;
+	      *buf_ptr = '\0';
 	      if (num_to_scroll)
 		*num_to_scroll = atoi (num_str);
 	      buf_ptr++;
@@ -1313,29 +1301,19 @@ parse_scrolling_args (const char *arg,
 	{
 	  const char *wname;
 
-	  if (*buf_ptr == ' ')
-	    while (*(++buf_ptr) == ' ')
-	      ;
+	  wname = skip_spaces (buf_ptr);
 
-	  if (*buf_ptr != (char) 0)
+	  if (*wname != '\0')
 	    {
-	      /* Validate the window name.  */
-	      for (char *p = buf_ptr; *p != '\0'; p++)
-		*p = tolower (*p);
-
-	      wname = buf_ptr;
+	      *win_to_scroll = tui_partial_win_by_name (wname);
+
+	      if (*win_to_scroll == NULL)
+		error (_("Unrecognized window `%s'"), wname);
+	      if (!(*win_to_scroll)->is_visible ())
+		error (_("Window is not visible"));
+	      else if (*win_to_scroll == TUI_CMD_WIN)
+		*win_to_scroll = *(tui_source_windows ().begin ());
 	    }
-	  else
-	    wname = "?";
-	  
-	  *win_to_scroll = tui_partial_win_by_name (wname);
-
-	  if (*win_to_scroll == NULL)
-	    error (_("Unrecognized window `%s'"), wname);
-	  if (!(*win_to_scroll)->is_visible ())
-	    error (_("Window is not visible"));
-	  else if (*win_to_scroll == TUI_CMD_WIN)
-	    *win_to_scroll = *(tui_source_windows ().begin ());
 	}
     }
 }


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove Cell Broadband Engine debugging support
@ 2019-09-21  1:04 gdb-buildbot
  2019-09-21 18:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-21  1:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT abf516c6931af1683d1e51203de1ca01467f9f85 ***

commit abf516c6931af1683d1e51203de1ca01467f9f85
Author:     Ulrich Weigand <ulrich.weigand@de.ibm.com>
AuthorDate: Fri Sep 20 23:06:57 2019 +0200
Commit:     Ulrich Weigand <ulrich.weigand@de.ibm.com>
CommitDate: Fri Sep 20 23:06:57 2019 +0200

    Remove Cell Broadband Engine debugging support
    
    This patch implements removal of Cell/B.E. support, including
    - Support for the spu-*-* target
    - Support for native stand-alone SPU debugging
    - Support for integrated debugging of combined PPU/SPU applications
    - Remote debugging (gdbserver) support for all the above.
    
    The patch also removes the TARGET_OBJECT_SPU target object type,
    as this is available only on Cell/B.E. targets, including
    - Native Linux support
    - Core file support (including core file generation)
    - Remote target support, including removal of the qXfer:spu:read
      and qXfer:spu:write remote protocal packets and associated
      support in gdbserver.
    
    gdb/ChangeLog
    2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
    
            * NEWS: Mention that Cell/B.E. debugging support was removed.
            * MAINTAINERS: Remove spu target.
    
            * config/djgpp/fnchange.lst: Remove entries for removed files.
    
            * Makefile.in (ALL_TARGET_OBS): Remove solib-spu.o,
            spu-multiarch.o, and spu-tdep.o.
            (HFILES_NO_SRCDIR): Remove solib-spu.h and spu-tdep.h.
            (ALLDEPFILES): Remove solib-spu.c, spu-linux-nat.c,
            spu-multiarch.c, and spu-tdep.c.
            * spu-linux-nat.c: Remove file.
            * spu-multiarch.c: Remove file.
            * spu-tdep.c: Remove file.
            * spu-tdep.h: Remove file.
            * solib-spu.c: Remove file.
            * solib-spu.h: Remove file.
    
            * configure.host (powerpc64*-*-linux*): Remove Cell/B.E. support.
            * configure.nat (spu-linux): Remove.
            * configure.tgt (powerpc*-*-linux*): Remove solib-spu.o and
            solib-multiarch.o from gdb_target_obs.
            (spu*-*-*): Remove.
    
            * arch/ppc-linux-common.h (struct ppc_linux_features): Remove "cell"
            feature flag.
            (ppc_linux_no_features): Update.
            * arch/ppc-linux-common.c (ppc_linux_match_description): Remove
            Cell/B.E. support.
            * arch/ppc-linux-tdesc.h (tdesc_powerpc_cell32l): Remove declaration.
            (tdesc_powerpc_cell64l): Likewise.
            * nat/ppc-linux.h (PPC_FEATURE_CELL): Remove.
            * ppc-linux-nat.c (ppc_linux_nat_target::read_description): Remove
            Cell/B.E. support.
            * ppc-linux-tdep.h: Do not include "solib-spu.h" or "spu-tdep.h".
            Do not include "features/rs6000/powerpc-cell32l.c" or
            "features/rs6000/powerpc-cell64l.c".
            (ppc_linux_spu_section): Remove.
            (ppc_linux_core_read_description): Remove Cell/B.E. support.
            (spe_context_objfile, spe_context_lm_addr, spe_context_offset,
            spe_context_cache_ptid, spe_context_cache_ptid): Remove.
            (ppc_linux_spe_context_lookup): Remove.
            (ppc_linux_spe_context_inferior_created): Remove.
            (ppc_linux_spe_context_solib_loaded): Remove.
            (ppc_linux_spe_context_solib_unloaded): Remove.
            (ppc_linux_spe_context): Remove.
            (struct ppu2spu_cache): Remove.
            (ppu2spu_prev_arch, ppu2spu_this_id, ppu2spu_prev_register): Remove.
            (struct ppu2spu_data): Remove.
            (ppu2spu_unwind_register, ppu2spu_sniffer, ppu2spu_dealloc_cache,
            ppu2spu_unwind): Remove.
            (ppc_linux_init_abi): Remove Cell/B.E. support.
            * rs6000-tdep.h (rs6000_gdbarch_init): Remove Cell/B.E. support.
    
            * features/Makefile (rs6000/powerpc-cell32l-expedite): Remove.
            (rs6000/powerpc-cell64l-expedite): Likewise
            (WHICH): Remove rs6000/powerpc-cell32l and rs6000/powerpc-cell64l.
            (XMLTOC): Remove rs6000/powerpc-cell32l.xml and
            rs6000/powerpc-cell64l.xml.
            * features/rs6000/powerpc-cell32l.xml: Remove.
            * features/rs6000/powerpc-cell64l.xml: Likewise.
            * features/rs6000/powerpc-cell32l.c: Remove generated file.
            * features/rs6000/powerpc-cell64l.c: Likewise.
            * regformats/rs6000/powerpc-cell32l.dat: Remove generated file.
            * regformats/rs6000/powerpc-cell64l.dat: Likewise.
            * regformats/reg-spu.dat: Remove.
    
            * target.h (enum target_object): Remove TARGET_OBJECT_SPU.
            * corelow.c (struct spuid_list): Remove.
            (add_to_spuid_list): Remove.
            (core_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
            * remote.c (PACKET_qXfer_spu_read, PACKET_qXfer_spu_write): Remove.
            (remote_protocol_features): Remove associated entries.
            (_initialize_remote): No longer initialize them.
            (remote_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
            * linux-nat.c (SPUFS_MAGIC): Remove.
            (linux_proc_xfer_spu): Remove.
            (spu_enumerate_spu_ids): Remove.
            (linux_nat_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
            * linux-tdep.c (-linux_spu_make_corefile_notes): Remove.
            (linux_make_corefile_notes): No longer call it.
    
            * regcache.c (cooked_read_test): Remove bfd_arch_spu special case.
            (cooked_write_test): Likewise.
    
    gdb/doc/ChangeLog
    2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
    
            * doc/gdb.texinfo (Remote Configuration): Remove documentation for
            qXfer:spu:read and qXfer:spu:write.
            (General Query Packets): Likewise.
            (Cell Broadband Engine SPU architecture): Remove subsection.
    
    gdb/gdbserver/ChangeLog
    2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
    
            * configure.srv (ipa_ppc_linux_regobj): Remove powerpc-cell32l-ipa.o
            and powerpc-cell64l-ipa.o.
            (powerpc*-*-linux*): Remove powerpc-cell32l.o and powerpc-cell64l.o
            from srv_regobj.  Remove rs6000/powerpc-cell32l.xml and
            rs6000/powerpc-cell64l.xml from srv_xmlfiles.
            (spu*-*-*): Remove.
    
            * spu-low.c: Remove file.
    
            * linux-ppc-low.c (INSTR_SC, NR_spu_run): Remove.
            (parse_spufs_run): Remove.
            (ppc_get_pc): Remove Cell/B.E. support.
            (ppc_set_pc): Likewise.
            (ppc_breakpoint_at): Likewise.
            (ppc_arch_setup): Likewise.
            (ppc_get_ipa_tdesc_idx): Do not handle tdesc_powerpc_cell64l or
            tdesc_powerpc_cell32l.
            (initialize_low_arch): Do not call init_registers_powerpc_cell64l
            or init_registers_powerpc_cell32l.
            * linux-ppc-ipa.c (get_ipa_tdesc): Do not handle PPC_TDESC_CELL.
            (initialize_low_tracepoint): Do not call init_registers_powerpc_cell64l
            or init_registers_powerpc_cell32l.
            * linux-ppc-tdesc-init.h (PPC_TDESC_CELL): Mark as unused.
            (init_registers_powerpc_cell32l): Remove prototype.
            (init_registers_powerpc_cell64l): Likewise.
    
            * target.h (struct target_ops): Remove qxfer_spu member.
            * server.c (handle_qxfer_spu): Remove.
            (qxfer_packets): Remove entry for "spu".
            (handle_query): No longer support qXfer:spu:read or qXfer:spu:write.
            * linux-low.c (SPUFS_MAGIC): Remove.
            (spu_enumerate_spu_ids): Remove.
            (linux_qxfer_spu): Remove.
            (linux_target_ops): Remove qxfer_spu member.
            * lynx-low.c (lynx_target_ops): Remove qxfer_spu member.
            * nto-low.c (nto_target_ops): Remove qxfer_spu member.
            * win32-low.c (win32_target_ops): Remove qxfer_spu member.
    
    gdb/testsuite/ChangeLog
    2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
    
            * gdb.arch/spu-info.exp: Remove file.
            * gdb.arch/spu-info.c: Remove file.
            * gdb.arch/spu-ls.exp: Remove file.
            * gdb.arch/spu-ls.c: Remove file.
    
            * gdb.asm/asm-source.exp: Remove support for spu*-*-*.
            * gdb.asm/spu.inc: Remove file.
    
            * gdb.base/dump.exp: Remove support for spu*-*-*.
            * gdb.base/stack-checking.exp: Likewise.
            * gdb.base/overlays.exp: Likewise.
            * gdb.base/ovlymgr.c: Likewise.
            * gdb.base/spu.ld: Remove file.
    
            * gdb.cp/bs15503.exp: Remove support for spu*-*-*.
            * gdb.cp/cpexprs.exp: Likewise.
            * gdb.cp/exception.exp: Likewise.
            * gdb.cp/gdb2495.exp: Likewise.
            * gdb.cp/mb-templates.exp: Likewise.
            * gdb.cp/pr9167.exp: Likewise.
            * gdb.cp/userdef.exp: Likewise.
    
            * gdb.xml/tdesc-regs.exp: Remove support for spu*-*-*.
    
            * gdb.cell: Remove directory.
            * lib/cell.exp: Remove file.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index adaa123822..9c8cebaf6f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,89 @@
+2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* NEWS: Mention that Cell/B.E. debugging support was removed.
+	* MAINTAINERS: Remove spu target.
+
+	* config/djgpp/fnchange.lst: Remove entries for removed files.
+
+	* Makefile.in (ALL_TARGET_OBS): Remove solib-spu.o,
+	spu-multiarch.o, and spu-tdep.o.
+	(HFILES_NO_SRCDIR): Remove solib-spu.h and spu-tdep.h.
+	(ALLDEPFILES): Remove solib-spu.c, spu-linux-nat.c,
+	spu-multiarch.c, and spu-tdep.c.
+	* spu-linux-nat.c: Remove file.
+	* spu-multiarch.c: Remove file.
+	* spu-tdep.c: Remove file.
+	* spu-tdep.h: Remove file.
+	* solib-spu.c: Remove file.
+	* solib-spu.h: Remove file.
+
+	* configure.host (powerpc64*-*-linux*): Remove Cell/B.E. support.
+	* configure.nat (spu-linux): Remove.
+	* configure.tgt (powerpc*-*-linux*): Remove solib-spu.o and
+	solib-multiarch.o from gdb_target_obs.
+	(spu*-*-*): Remove.
+
+	* arch/ppc-linux-common.h (struct ppc_linux_features): Remove "cell"
+	feature flag.
+	(ppc_linux_no_features): Update.
+	* arch/ppc-linux-common.c (ppc_linux_match_description): Remove
+	Cell/B.E. support.
+	* arch/ppc-linux-tdesc.h (tdesc_powerpc_cell32l): Remove declaration.
+	(tdesc_powerpc_cell64l): Likewise.
+	* nat/ppc-linux.h (PPC_FEATURE_CELL): Remove.
+	* ppc-linux-nat.c (ppc_linux_nat_target::read_description): Remove
+	Cell/B.E. support.
+	* ppc-linux-tdep.h: Do not include "solib-spu.h" or "spu-tdep.h".
+	Do not include "features/rs6000/powerpc-cell32l.c" or
+	"features/rs6000/powerpc-cell64l.c".
+	(ppc_linux_spu_section): Remove.
+	(ppc_linux_core_read_description): Remove Cell/B.E. support.
+	(spe_context_objfile, spe_context_lm_addr, spe_context_offset,
+	spe_context_cache_ptid, spe_context_cache_ptid): Remove.
+	(ppc_linux_spe_context_lookup): Remove.
+	(ppc_linux_spe_context_inferior_created): Remove.
+	(ppc_linux_spe_context_solib_loaded): Remove.
+	(ppc_linux_spe_context_solib_unloaded): Remove.
+	(ppc_linux_spe_context): Remove.
+	(struct ppu2spu_cache): Remove.
+	(ppu2spu_prev_arch, ppu2spu_this_id, ppu2spu_prev_register): Remove.
+	(struct ppu2spu_data): Remove.
+	(ppu2spu_unwind_register, ppu2spu_sniffer, ppu2spu_dealloc_cache,
+	ppu2spu_unwind): Remove.
+	(ppc_linux_init_abi): Remove Cell/B.E. support.
+	* rs6000-tdep.h (rs6000_gdbarch_init): Remove Cell/B.E. support.
+
+	* features/Makefile (rs6000/powerpc-cell32l-expedite): Remove.
+	(rs6000/powerpc-cell64l-expedite): Likewise
+	(WHICH): Remove rs6000/powerpc-cell32l and rs6000/powerpc-cell64l.
+	(XMLTOC): Remove rs6000/powerpc-cell32l.xml and
+	rs6000/powerpc-cell64l.xml.
+	* features/rs6000/powerpc-cell32l.xml: Remove.
+	* features/rs6000/powerpc-cell64l.xml: Likewise.
+	* features/rs6000/powerpc-cell32l.c: Remove generated file.
+	* features/rs6000/powerpc-cell64l.c: Likewise.
+	* regformats/rs6000/powerpc-cell32l.dat: Remove generated file.
+	* regformats/rs6000/powerpc-cell64l.dat: Likewise.
+	* regformats/reg-spu.dat: Remove.
+
+	* target.h (enum target_object): Remove TARGET_OBJECT_SPU.
+	* corelow.c (struct spuid_list): Remove.
+	(add_to_spuid_list): Remove.
+	(core_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
+	* remote.c (PACKET_qXfer_spu_read, PACKET_qXfer_spu_write): Remove.
+	(remote_protocol_features): Remove associated entries.
+	(_initialize_remote): No longer initialize them.
+	(remote_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
+	* linux-nat.c (SPUFS_MAGIC): Remove.
+	(linux_proc_xfer_spu): Remove.
+	(spu_enumerate_spu_ids): Remove.
+	(linux_nat_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
+	* linux-tdep.c (-linux_spu_make_corefile_notes): Remove.
+	(linux_make_corefile_notes): No longer call it.
+
+	* regcache.c (cooked_read_test): Remove bfd_arch_spu special case.
+	(cooked_write_test): Likewise.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
 	* NEWS: Mention case-sensitivity of TUI commands.
diff --git a/gdb/MAINTAINERS b/gdb/MAINTAINERS
index fd24cb79bc..3efcb71470 100644
--- a/gdb/MAINTAINERS
+++ b/gdb/MAINTAINERS
@@ -319,9 +319,6 @@ the native maintainer when resolving ABI issues.
 	sparc		--target=sparc64-solaris2.10 ,-Werror
 			(--target=sparc-elf broken)
 
-	spu		--target=spu-elf ,-Werror
-			Ulrich Weigand		uweigand@de.ibm.com
-
 	tic6x		--target=tic6x-elf ,-Werror
 			Yao Qi			qiyao@sourceware.org
 
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index e7e26a44a0..877a9ccd6b 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -776,7 +776,6 @@ ALL_TARGET_OBS = \
 	solib-darwin.o \
 	solib-dsbt.o \
 	solib-frv.o \
-	solib-spu.o \
 	solib-svr4.o \
 	sparc-linux-tdep.o \
 	sparc-nbsd-tdep.o \
@@ -784,8 +783,6 @@ ALL_TARGET_OBS = \
 	sparc-ravenscar-thread.o \
 	sparc-sol2-tdep.o \
 	sparc-tdep.o \
-	spu-multiarch.o \
-	spu-tdep.o \
 	symfile-mem.o \
 	tic6x-linux-tdep.o \
 	tic6x-tdep.o \
@@ -1382,7 +1379,6 @@ HFILES_NO_SRCDIR = \
 	solib.h \
 	solib-aix.h \
 	solib-darwin.h \
-	solib-spu.h \
 	solib-svr4.h \
 	solib-target.h \
 	solist.h \
@@ -1392,7 +1388,6 @@ HFILES_NO_SRCDIR = \
 	sparc-ravenscar-thread.h \
 	sparc-tdep.h \
 	sparc64-tdep.h \
-	spu-tdep.h \
 	stabsread.h \
 	stack.h \
 	stap-probe.h \
@@ -2304,7 +2299,6 @@ ALLDEPFILES = \
 	sh-tdep.c \
 	sol2-tdep.c \
 	solib-aix.c \
-	solib-spu.c \
 	solib-svr4.c \
 	sparc-linux-nat.c \
 	sparc-linux-tdep.c \
@@ -2327,9 +2321,6 @@ ALLDEPFILES = \
 	sparc64-obsd-tdep.c \
 	sparc64-sol2-tdep.c \
 	sparc64-tdep.c \
-	spu-linux-nat.c \
-	spu-multiarch.c \
-	spu-tdep.c \
 	tilegx-linux-nat.c \
 	tilegx-linux-tdep.c \
 	tilegx-tdep.c \
diff --git a/gdb/NEWS b/gdb/NEWS
index 201701bac3..35b48d9cb3 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -330,6 +330,12 @@ focus, winheight, +, -, >, <
   from .inputrc to bind keys in this keymap.  This feature is only
   available when gdb is built against GNU readline 8.0 or later.
 
+* Removed targets and native configurations
+
+  GDB no longer supports debugging the Cell Broadband Engine.  This includes
+  both debugging standalone Cell/B.E. SPU applications and integrated debugging
+  of Cell/B.E. applications that use both the PPU and SPU architectures.
+
 *** Changes in GDB 8.3
 
 * GDB and GDBserver now support access to additional registers on
diff --git a/gdb/arch/ppc-linux-common.c b/gdb/arch/ppc-linux-common.c
index 8af30e3cd4..20b3580746 100644
--- a/gdb/arch/ppc-linux-common.c
+++ b/gdb/arch/ppc-linux-common.c
@@ -50,9 +50,7 @@ ppc_linux_match_description (struct ppc_linux_features features)
 
   if (features.wordsize == 8)
     {
-      if (features.cell)
-	tdesc = tdesc_powerpc_cell64l;
-      else if (features.vsx)
+      if (features.vsx)
 	tdesc = (features.htm? tdesc_powerpc_isa207_htm_vsx64l
 		 : features.isa207? tdesc_powerpc_isa207_vsx64l
 		 : features.ppr_dscr? tdesc_powerpc_isa205_ppr_dscr_vsx64l
@@ -69,9 +67,7 @@ ppc_linux_match_description (struct ppc_linux_features features)
     {
       gdb_assert (features.wordsize == 4);
 
-      if (features.cell)
-	tdesc = tdesc_powerpc_cell32l;
-      else if (features.vsx)
+      if (features.vsx)
 	tdesc = (features.htm? tdesc_powerpc_isa207_htm_vsx32l
 		 : features.isa207? tdesc_powerpc_isa207_vsx32l
 		 : features.ppr_dscr? tdesc_powerpc_isa205_ppr_dscr_vsx32l
diff --git a/gdb/arch/ppc-linux-common.h b/gdb/arch/ppc-linux-common.h
index fe332accdc..1f91ff0576 100644
--- a/gdb/arch/ppc-linux-common.h
+++ b/gdb/arch/ppc-linux-common.h
@@ -58,7 +58,6 @@ struct ppc_linux_features
   bool ppr_dscr;
   bool isa207;
   bool htm;
-  bool cell;
 };
 
 /* Base value for ppc_linux_features variables.  */
@@ -70,7 +69,6 @@ const struct ppc_linux_features ppc_linux_no_features = {
   false,
   false,
   false,
-  false,
 };
 
 /* Return a target description that matches FEATURES.  */
diff --git a/gdb/arch/ppc-linux-tdesc.h b/gdb/arch/ppc-linux-tdesc.h
index 5c9242f7dc..5014131b6e 100644
--- a/gdb/arch/ppc-linux-tdesc.h
+++ b/gdb/arch/ppc-linux-tdesc.h
@@ -24,7 +24,6 @@ struct target_desc;
 
 extern struct target_desc *tdesc_powerpc_32l;
 extern struct target_desc *tdesc_powerpc_altivec32l;
-extern struct target_desc *tdesc_powerpc_cell32l;
 extern struct target_desc *tdesc_powerpc_vsx32l;
 extern struct target_desc *tdesc_powerpc_isa205_32l;
 extern struct target_desc *tdesc_powerpc_isa205_altivec32l;
@@ -36,7 +35,6 @@ extern struct target_desc *tdesc_powerpc_e500l;
 
 extern struct target_desc *tdesc_powerpc_64l;
 extern struct target_desc *tdesc_powerpc_altivec64l;
-extern struct target_desc *tdesc_powerpc_cell64l;
 extern struct target_desc *tdesc_powerpc_vsx64l;
 extern struct target_desc *tdesc_powerpc_isa205_64l;
 extern struct target_desc *tdesc_powerpc_isa205_altivec64l;
diff --git a/gdb/config/djgpp/fnchange.lst b/gdb/config/djgpp/fnchange.lst
index 12fb082b66..7608218dbc 100644
--- a/gdb/config/djgpp/fnchange.lst
+++ b/gdb/config/djgpp/fnchange.lst
@@ -199,8 +199,6 @@
 @V@/gdb/features/rs6000/powerpc-vsx32l.c @V@/gdb/features/rs6000/ppc-v32l.c
 @V@/gdb/features/rs6000/powerpc-vsx64.c @V@/gdb/features/rs6000/ppc-v64.c
 @V@/gdb/features/rs6000/powerpc-vsx64l.c @V@/gdb/features/rs6000/ppc-v64l.c
-@V@/gdb/features/rs6000/powerpc-cell32l.c @V@/gdb/features/rs6000/ppc-c32l.c
-@V@/gdb/features/rs6000/powerpc-cell64l.c @V@/gdb/features/rs6000/ppc-c64l.c
 @V@/gdb/features/rs6000/powerpc-32.xml @V@/gdb/features/rs6000/ppc-32.xml
 @V@/gdb/features/rs6000/powerpc-32l.xml @V@/gdb/features/rs6000/ppc-32l.xml
 @V@/gdb/features/rs6000/powerpc-403.xml @V@/gdb/features/rs6000/ppc-403.xml
@@ -231,8 +229,6 @@
 @V@/gdb/features/rs6000/powerpc-vsx32l.xml @V@/gdb/features/rs6000/ppc-v32l.xml
 @V@/gdb/features/rs6000/powerpc-vsx64.xml @V@/gdb/features/rs6000/ppc-v64.xml
 @V@/gdb/features/rs6000/powerpc-vsx64l.xml @V@/gdb/features/rs6000/ppc-v64l.xml
-@V@/gdb/features/rs6000/powerpc-cell32l.xml @V@/gdb/features/rs6000/ppc-c32l.xml
-@V@/gdb/features/rs6000/powerpc-cell64l.xml @V@/gdb/features/rs6000/ppc-c64l.xml
 @V@/gdb/features/i386/amd64-avx-linux.c @V@/gdb/features/i386/a64-al.c
 @V@/gdb/features/i386/amd64-avx.c @V@/gdb/features/i386/a64-a.c
 @V@/gdb/features/i386/amd64-avx-linux.xml @V@/gdb/features/i386/a64-al.xml
@@ -356,8 +352,6 @@
 @V@/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat @V@/gdb/regformats/rs6000/ppciv64l.dat
 @V@/gdb/regformats/rs6000/powerpc-vsx32l.dat @V@/gdb/regformats/rs6000/ppc-v32l.dat
 @V@/gdb/regformats/rs6000/powerpc-vsx64l.dat @V@/gdb/regformats/rs6000/ppc-v64l.dat
-@V@/gdb/regformats/rs6000/powerpc-cell32l.dat @V@/gdb/regformats/rs6000/ppc-c32l.dat
-@V@/gdb/regformats/rs6000/powerpc-cell64l.dat @V@/gdb/regformats/rs6000/ppc-c64l.dat
 @V@/gdb/regformats/tic6x-c62x.dat @V@/gdb/regformats/c6x-62x.dat
 @V@/gdb/regformats/tic6x-c64x.dat @V@/gdb/regformats/c6x-64x.dat
 @V@/gdb/regformats/tic6x-c64xp.dat @V@/gdb/regformats/c6xc64xp.dat
@@ -452,9 +446,6 @@
 @V@/gdb/testsuite/gdb.base/watchpoint-cond-gone.exp @V@/gdb/testsuite/gdb.base/wpcondg.exp
 @V@/gdb/testsuite/gdb.base/watchpoint-cond-gone.c @V@/gdb/testsuite/gdb.base/wpcondg.c
 @V@/gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c @V@/gdb/testsuite/gdb.base/wpcondgs.c
-@V@/gdb/testsuite/gdb.cell/coremaker-spu.c @V@/gdb/testsuite/gdb.cell/core-spu.c
-@V@/gdb/testsuite/gdb.cell/ea-cache-spu.c @V@/gdb/testsuite/gdb.cell/ea-spu.c
-@V@/gdb/testsuite/gdb.cell/mem-access-spu.c @V@/gdb/testsuite/gdb.cell/mem-spu.c
 @V@/gdb/testsuite/gdb.cp/m-static1.cc @V@/gdb/testsuite/gdb.cp/m-stat1.cc
 @V@/gdb/testsuite/gdb.cp/namespace1.cc @V@/gdb/testsuite/gdb.cp/namesp1.cc
 @V@/gdb/testsuite/gdb.cp/namespace-nested-import.cc @V@/gdb/testsuite/gdb.cp/nnested.cc
diff --git a/gdb/configure.host b/gdb/configure.host
index c87f997abc..f382cad1a8 100644
--- a/gdb/configure.host
+++ b/gdb/configure.host
@@ -140,13 +140,7 @@ powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu)
 			gdb_host=nbsd ;;
 powerpc-*-openbsd*)	gdb_host=obsd ;;
 
-powerpc64*-*-linux*)	gdb_host=ppc64-linux
-                        # Support 'pseudo-native' debugging on the Cell BE
-                        if test "${target_cpu}" = "spu"; then
-				gdb_host=spu-linux
-				gdb_native=yes
-                        fi
-			;;
+powerpc64*-*-linux*)	gdb_host=ppc64-linux ;;
 powerpc*-*-linux*)	gdb_host=linux ;;
 
 riscv*-*-freebsd*)	gdb_host=fbsd ;;
diff --git a/gdb/configure.nat b/gdb/configure.nat
index 64ee101d83..77a2ee8083 100644
--- a/gdb/configure.nat
+++ b/gdb/configure.nat
@@ -484,21 +484,4 @@ case ${gdb_host} in
 		;;
 	esac
 	;;
-    spu-linux)
-	case ${gdb_host_cpu} in
-	    powerpc)
-		# Target: Cell BE (PowerPC64 + SPU)
-		# This implements a 'pseudo-native' GDB running on the
-		# PPU side of the Cell BE and debugging the SPU side.
-		NAT_FILE=
-		NAT_CDEPS=
-		LOADLIBES=
-		NATDEPFILES='spu-linux-nat.o \
-		      inf-ptrace.o fork-child.o nat/fork-inferior.o \
-		      nat/linux-procfs.o nat/linux-ptrace.o \
-		      nat/linux-waitpid.o \
-		      nat/linux-personality.o nat/linux-namespaces.o'
-		;;
-	esac
-	;;
 esac
diff --git a/gdb/configure.tgt b/gdb/configure.tgt
index 7c0215e89a..2edfe3bfb5 100644
--- a/gdb/configure.tgt
+++ b/gdb/configure.tgt
@@ -514,8 +514,7 @@ powerpc-*-aix* | rs6000-*-* | powerpc64-*-aix*)
 powerpc*-*-linux*)
 	# Target: PowerPC running Linux
 	gdb_target_obs="rs6000-tdep.o ppc-linux-tdep.o ppc-sysv-tdep.o \
-			ppc64-tdep.o solib-svr4.o solib-spu.o \
-			spu-multiarch.o \
+			ppc64-tdep.o solib-svr4.o \
 			glibc-tdep.o symfile-mem.o linux-tdep.o \
 			ravenscar-thread.o ppc-ravenscar-thread.o \
 			linux-record.o \
@@ -668,12 +667,6 @@ sparc64-*-*)
 			ravenscar-thread.o sparc-ravenscar-thread.o"
 	;;
 
-spu*-*-*)
-	# Target: Cell BE SPU
-	gdb_target_obs="spu-tdep.o"
-	build_gdbserver=yes
-	;;
-
 s12z-*-*)
 	# Target: Freescale S12z
 	gdb_target_obs="s12z-tdep.o"
diff --git a/gdb/corelow.c b/gdb/corelow.c
index b30b91b522..cea9210a52 100644
--- a/gdb/corelow.c
+++ b/gdb/corelow.c
@@ -709,36 +709,6 @@ core_target::files_info ()
   print_section_info (&m_core_section_table, core_bfd);
 }
 \f
-struct spuid_list
-{
-  gdb_byte *buf;
-  ULONGEST offset;
-  LONGEST len;
-  ULONGEST pos;
-  ULONGEST written;
-};
-
-static void
-add_to_spuid_list (bfd *abfd, asection *asect, void *list_p)
-{
-  struct spuid_list *list = (struct spuid_list *) list_p;
-  enum bfd_endian byte_order
-    = bfd_big_endian (abfd) ? BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
-  int fd, pos = 0;
-
-  sscanf (bfd_section_name (asect), "SPU/%d/regs%n", &fd, &pos);
-  if (pos == 0)
-    return;
-
-  if (list->pos >= list->offset && list->pos + 4 <= list->offset + list->len)
-    {
-      store_unsigned_integer (list->buf + list->pos - list->offset,
-			      4, byte_order, fd);
-      list->written += 4;
-    }
-  list->pos += 4;
-}
-
 enum target_xfer_status
 core_target::xfer_partial (enum target_object object, const char *annex,
 			   gdb_byte *readbuf, const gdb_byte *writebuf,
@@ -865,64 +835,6 @@ core_target::xfer_partial (enum target_object object, const char *annex,
 	}
       /* FALL THROUGH */
 
-    case TARGET_OBJECT_SPU:
-      if (readbuf && annex)
-	{
-	  /* When the SPU contexts are stored in a core file, BFD
-	     represents this with a fake section called
-	     "SPU/<annex>".  */
-
-	  struct bfd_section *section;
-	  bfd_size_type size;
-	  char sectionstr[100];
-
-	  xsnprintf (sectionstr, sizeof sectionstr, "SPU/%s", annex);
-
-	  section = bfd_get_section_by_name (core_bfd, sectionstr);
-	  if (section == NULL)
-	    return TARGET_XFER_E_IO;
-
-	  size = bfd_section_size (section);
-	  if (offset >= size)
-	    return TARGET_XFER_EOF;
-	  size -= offset;
-	  if (size > len)
-	    size = len;
-
-	  if (size == 0)
-	    return TARGET_XFER_EOF;
-	  if (!bfd_get_section_contents (core_bfd, section, readbuf,
-					 (file_ptr) offset, size))
-	    {
-	      warning (_("Couldn't read SPU section in core file."));
-	      return TARGET_XFER_E_IO;
-	    }
-
-	  *xfered_len = (ULONGEST) size;
-	  return TARGET_XFER_OK;
-	}
-      else if (readbuf)
-	{
-	  /* NULL annex requests list of all present spuids.  */
-	  struct spuid_list list;
-
-	  list.buf = readbuf;
-	  list.offset = offset;
-	  list.len = len;
-	  list.pos = 0;
-	  list.written = 0;
-	  bfd_map_over_sections (core_bfd, add_to_spuid_list, &list);
-
-	  if (list.written == 0)
-	    return TARGET_XFER_EOF;
-	  else
-	    {
-	      *xfered_len = (ULONGEST) list.written;
-	      return TARGET_XFER_OK;
-	    }
-	}
-      return TARGET_XFER_E_IO;
-
     case TARGET_OBJECT_SIGNAL_INFO:
       if (readbuf)
 	{
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 8eaaab3ae1..0a10fa3fad 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* doc/gdb.texinfo (Remote Configuration): Remove documentation for
+	qXfer:spu:read and qXfer:spu:write.
+	(General Query Packets): Likewise.
+	(Cell Broadband Engine SPU architecture): Remove subsection.
+
 2019-09-18  Tom Tromey  <tom@tromey.com>
 
 	* gdb.texinfo (Editing): Document readline application name.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index a129ea0aa1..f2713c0396 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -22563,14 +22563,6 @@ are:
 @tab @code{qXfer:sdata:read}
 @tab @code{print $_sdata}
 
-@item @code{read-spu-object}
-@tab @code{qXfer:spu:read}
-@tab @code{info spu}
-
-@item @code{write-spu-object}
-@tab @code{qXfer:spu:write}
-@tab @code{info spu}
-
 @item @code{read-siginfo-object}
 @tab @code{qXfer:siginfo:read}
 @tab @code{print $_siginfo}
@@ -24438,7 +24430,6 @@ all uses of @value{GDBN} with the architecture, both native and cross.
 * Alpha::
 * MIPS::
 * HPPA::               HP PA architecture
-* SPU::                Cell Broadband Engine SPU architecture
 * PowerPC::
 * Nios II::
 * Sparc64::
@@ -24753,69 +24744,6 @@ given @var{address}.
 @end table
 
 
-@node SPU
-@subsection Cell Broadband Engine SPU architecture
-@cindex Cell Broadband Engine
-@cindex SPU
-
-When @value{GDBN} is debugging the Cell Broadband Engine SPU architecture,
-it provides the following special commands:
-
-@table @code
-@item info spu event
-@kindex info spu
-Display SPU event facility status.  Shows current event mask
-and pending event status.
-
-@item info spu signal
-Display SPU signal notification facility status.  Shows pending
-signal-control word and signal notification mode of both signal
-notification channels.
-
-@item info spu mailbox
-Display SPU mailbox facility status.  Shows all pending entries,
-in order of processing, in each of the SPU Write Outbound,
-SPU Write Outbound Interrupt, and SPU Read Inbound mailboxes.
-
-@item info spu dma
-Display MFC DMA status.  Shows all pending commands in the MFC
-DMA queue.  For each entry, opcode, tag, class IDs, effective
-and local store addresses and transfer size are shown.
-
-@item info spu proxydma
-Display MFC Proxy-DMA status.  Shows all pending commands in the MFC
-Proxy-DMA queue.  For each entry, opcode, tag, class IDs, effective
-and local store addresses and transfer size are shown.
-
-@end table
- 
-When @value{GDBN} is debugging a combined PowerPC/SPU application
-on the Cell Broadband Engine, it provides in addition the following
-special commands:
-
-@table @code
-@item set spu stop-on-load @var{arg}
-@kindex set spu
-Set whether to stop for new SPE threads.  When set to @code{on}, @value{GDBN}
-will give control to the user when a new SPE thread enters its @code{main}
-function.  The default is @code{off}.
-
-@item show spu stop-on-load
-@kindex show spu
-Show whether to stop for new SPE threads.
-
-@item set spu auto-flush-cache @var{arg}
-Set whether to automatically flush the software-managed cache.  When set to
-@code{on}, @value{GDBN} will automatically cause the SPE software-managed
-cache to be flushed whenever SPE execution stops.  This provides a consistent
-view of PowerPC memory that is accessed via the cache.  If an application
-does not use the software-managed cache, this option has no effect.
-
-@item show spu auto-flush-cache
-Show whether to automatically flush the software-managed cache.
-
-@end table
-
 @node PowerPC
 @subsection PowerPC
 @cindex PowerPC architecture
@@ -40110,16 +40038,6 @@ These are the currently defined stub features and their properties:
 @tab @samp{-}
 @tab Yes
 
-@item @samp{qXfer:spu:read}
-@tab No
-@tab @samp{-}
-@tab Yes
-
-@item @samp{qXfer:spu:write}
-@tab No
-@tab @samp{-}
-@tab Yes
-
 @item @samp{qXfer:siginfo:read}
 @tab No
 @tab @samp{-}
@@ -40352,14 +40270,6 @@ The remote stub understands the @samp{qXfer:memory-map:read} packet
 The remote stub understands the @samp{qXfer:sdata:read} packet
 (@pxref{qXfer sdata read}).
 
-@item qXfer:spu:read
-The remote stub understands the @samp{qXfer:spu:read} packet
-(@pxref{qXfer spu read}).
-
-@item qXfer:spu:write
-The remote stub understands the @samp{qXfer:spu:write} packet
-(@pxref{qXfer spu write}).
-
 @item qXfer:siginfo:read
 The remote stub understands the @samp{qXfer:siginfo:read} packet
 (@pxref{qXfer siginfo read}).
@@ -40805,18 +40715,6 @@ This packet is not probed by default; the remote stub must request it,
 by supplying an appropriate @samp{qSupported} response
 (@pxref{qSupported}).
 
-@item qXfer:spu:read:@var{annex}:@var{offset},@var{length}
-@anchor{qXfer spu read}
-Read contents of an @code{spufs} file on the target system.  The
-annex specifies which file to read; it must be of the form 
-@file{@var{id}/@var{name}}, where @var{id} specifies an SPU context ID
-in the target process, and @var{name} identifes the @code{spufs} file
-in that context to be accessed.
-
-This packet is not probed by default; the remote stub must request it,
-by supplying an appropriate @samp{qSupported} response
-(@pxref{qSupported}).
-
 @item qXfer:threads:read::@var{offset},@var{length}
 @anchor{qXfer threads read}
 Access the list of threads on target.  @xref{Thread List Format}.  The
@@ -40902,17 +40800,6 @@ empty (@pxref{qXfer write}).
 This packet is not probed by default; the remote stub must request it,
 by supplying an appropriate @samp{qSupported} response
 (@pxref{qSupported}).
-
-@item qXfer:spu:write:@var{annex}:@var{offset}:@var{data}@dots{}
-@anchor{qXfer spu write}
-Write @var{data} to an @code{spufs} file on the target system.  The
-annex specifies which file to write; it must be of the form
-@file{@var{id}/@var{name}}, where @var{id} specifies an SPU context ID
-in the target process, and @var{name} identifes the @code{spufs} file
-in that context to be accessed.
-
-This packet is not probed by default; the remote stub must request it,
-by supplying an appropriate @samp{qSupported} response (@pxref{qSupported}).
 @end table
 
 @item qXfer:@var{object}:@var{operation}:@dots{}
diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index 2b65d46df0..52318d4c06 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -53,7 +53,7 @@ WHICH = arm/arm-with-iwmmxt arm/arm-with-vfpv2 arm/arm-with-vfpv3 \
 	rs6000/powerpc-32 \
 	rs6000/powerpc-32l rs6000/powerpc-altivec32l rs6000/powerpc-e500l \
 	rs6000/powerpc-64l rs6000/powerpc-altivec64l rs6000/powerpc-vsx32l \
-	rs6000/powerpc-vsx64l rs6000/powerpc-cell32l rs6000/powerpc-cell64l \
+	rs6000/powerpc-vsx64l \
 	rs6000/powerpc-isa205-32l rs6000/powerpc-isa205-64l \
 	rs6000/powerpc-isa205-altivec32l rs6000/powerpc-isa205-altivec64l \
 	rs6000/powerpc-isa205-vsx32l rs6000/powerpc-isa205-vsx64l \
@@ -84,8 +84,6 @@ microblaze-expedite = r1,rpc
 nios2-linux-expedite = sp,pc
 or1k-expedite = r1,npc
 powerpc-expedite = r1,pc
-rs6000/powerpc-cell32l-expedite = r1,pc,r0,orig_r3,r4
-rs6000/powerpc-cell64l-expedite = r1,pc,r0,orig_r3,r4
 s390-linux32-expedite = r14,r15,pswa
 s390-linux32v1-expedite = r14,r15,pswa
 s390-linux32v2-expedite = r14,r15,pswa
@@ -140,8 +138,6 @@ XMLTOC = \
 	rs6000/powerpc-altivec32l.xml \
 	rs6000/powerpc-altivec64.xml \
 	rs6000/powerpc-altivec64l.xml \
-	rs6000/powerpc-cell32l.xml \
-	rs6000/powerpc-cell64l.xml \
 	rs6000/powerpc-e500.xml \
 	rs6000/powerpc-e500l.xml \
 	rs6000/powerpc-isa205-32l.xml \
diff --git a/gdb/features/rs6000/powerpc-cell32l.c b/gdb/features/rs6000/powerpc-cell32l.c
deleted file mode 100644
index 74c42f94bc..0000000000
--- a/gdb/features/rs6000/powerpc-cell32l.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-cell32l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_cell32l;
-static void
-initialize_tdesc_powerpc_cell32l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
-
-  tdesc_add_compatible (result, bfd_scan_arch ("spu:256K"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  tdesc_powerpc_cell32l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-cell32l.xml b/gdb/features/rs6000/powerpc-cell32l.xml
deleted file mode 100644
index 57b4806947..0000000000
--- a/gdb/features/rs6000/powerpc-cell32l.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- Cell/B.E. architecture.  Identical to the PowerPC 32-bit Linux UISA,
-     but adds support for the SPU as compatible architecture.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common</architecture>
-  <compatible>spu</compatible>
-  <xi:include href="power-core.xml"/>
-  <xi:include href="power-fpu.xml"/>
-  <xi:include href="power-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-cell64l.c b/gdb/features/rs6000/powerpc-cell64l.c
deleted file mode 100644
index cbfda4c50a..0000000000
--- a/gdb/features/rs6000/powerpc-cell64l.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-cell64l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_cell64l;
-static void
-initialize_tdesc_powerpc_cell64l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
-
-  tdesc_add_compatible (result, bfd_scan_arch ("spu:256K"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  tdesc_powerpc_cell64l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-cell64l.xml b/gdb/features/rs6000/powerpc-cell64l.xml
deleted file mode 100644
index c2add44b45..0000000000
--- a/gdb/features/rs6000/powerpc-cell64l.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- Cell/B.E. architecture.  Identical to the PowerPC 64-bit Linux UISA,
-     but adds support for the SPU as compatible architecture.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common64</architecture>
-  <compatible>spu</compatible>
-  <xi:include href="power64-core.xml"/>
-  <xi:include href="power-fpu.xml"/>
-  <xi:include href="power64-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-</target>
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index faafdfd967..5c76167014 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,43 @@
+2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* configure.srv (ipa_ppc_linux_regobj): Remove powerpc-cell32l-ipa.o
+	and powerpc-cell64l-ipa.o.
+	(powerpc*-*-linux*): Remove powerpc-cell32l.o and powerpc-cell64l.o
+	from srv_regobj.  Remove rs6000/powerpc-cell32l.xml and
+	rs6000/powerpc-cell64l.xml from srv_xmlfiles.
+	(spu*-*-*): Remove.
+
+	* spu-low.c: Remove file.
+
+	* linux-ppc-low.c (INSTR_SC, NR_spu_run): Remove.
+	(parse_spufs_run): Remove.
+	(ppc_get_pc): Remove Cell/B.E. support.
+	(ppc_set_pc): Likewise.
+	(ppc_breakpoint_at): Likewise.
+	(ppc_arch_setup): Likewise.
+	(ppc_get_ipa_tdesc_idx): Do not handle tdesc_powerpc_cell64l or
+	tdesc_powerpc_cell32l.
+	(initialize_low_arch): Do not call init_registers_powerpc_cell64l
+	or init_registers_powerpc_cell32l.
+	* linux-ppc-ipa.c (get_ipa_tdesc): Do not handle PPC_TDESC_CELL.
+	(initialize_low_tracepoint): Do not call init_registers_powerpc_cell64l
+	or init_registers_powerpc_cell32l.
+	* linux-ppc-tdesc-init.h (PPC_TDESC_CELL): Mark as unused.
+	(init_registers_powerpc_cell32l): Remove prototype.
+	(init_registers_powerpc_cell64l): Likewise.
+
+	* target.h (struct target_ops): Remove qxfer_spu member.
+	* server.c (handle_qxfer_spu): Remove.
+	(qxfer_packets): Remove entry for "spu".
+	(handle_query): No longer support qXfer:spu:read or qXfer:spu:write.
+	* linux-low.c (SPUFS_MAGIC): Remove.
+	(spu_enumerate_spu_ids): Remove.
+	(linux_qxfer_spu): Remove.
+	(linux_target_ops): Remove qxfer_spu member.
+	* lynx-low.c (lynx_target_ops): Remove qxfer_spu member.
+	* nto-low.c (nto_target_ops): Remove qxfer_spu member.
+	* win32-low.c (win32_target_ops): Remove qxfer_spu member.
+
 2019-08-23  Sergio Durigan Junior  <sergiodj@redhat.com>
 
 	* Makefile.in (SFILES): Add 'gdbsupport/gdb-dlfcn.c'.
diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv
index 66d3d426ac..1a4ab8e336 100644
--- a/gdb/gdbserver/configure.srv
+++ b/gdb/gdbserver/configure.srv
@@ -24,7 +24,7 @@
 # Default hostio_last_error implementation
 srv_hostio_err_objs="hostio-errno.o"
 
-ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-cell32l-ipa.o powerpc-vsx32l-ipa.o powerpc-isa205-32l-ipa.o powerpc-isa205-altivec32l-ipa.o powerpc-isa205-vsx32l-ipa.o powerpc-isa205-ppr-dscr-vsx32l-ipa.o powerpc-isa207-vsx32l-ipa.o powerpc-isa207-htm-vsx32l-ipa.o powerpc-e500l-ipa.o powerpc-64l-ipa.o powerpc-altivec64l-ipa.o powerpc-cell64l-ipa.o powerpc-vsx64l-ipa.o powerpc-isa205-64l-ipa.o powerpc-isa205-altivec64l-ipa.o powerpc-isa205-vsx64l-ipa.o powerpc-isa205-ppr-dscr-vsx64l-ipa.o powerpc-isa207-vsx64l-ipa.o powerpc-isa207-htm-vsx64l-ipa.o"
+ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-vsx32l-ipa.o powerpc-isa205-32l-ipa.o powerpc-isa205-altivec32l-ipa.o powerpc-isa205-vsx32l-ipa.o powerpc-isa205-ppr-dscr-vsx32l-ipa.o powerpc-isa207-vsx32l-ipa.o powerpc-isa207-htm-vsx32l-ipa.o powerpc-e500l-ipa.o powerpc-64l-ipa.o powerpc-altivec64l-ipa.o powerpc-vsx64l-ipa.o powerpc-isa205-64l-ipa.o powerpc-isa205-altivec64l-ipa.o powerpc-isa205-vsx64l-ipa.o powerpc-isa205-ppr-dscr-vsx64l-ipa.o powerpc-isa207-vsx64l-ipa.o powerpc-isa207-htm-vsx64l-ipa.o"
 
 # Linux object files.  This is so we don't have to repeat
 # these files over and over again.
@@ -186,7 +186,6 @@ case "${target}" in
 			;;
   powerpc*-*-linux*)	srv_regobj="powerpc-32l.o"
 			srv_regobj="${srv_regobj} powerpc-altivec32l.o"
-			srv_regobj="${srv_regobj} powerpc-cell32l.o"
 			srv_regobj="${srv_regobj} powerpc-vsx32l.o"
 			srv_regobj="${srv_regobj} powerpc-isa205-32l.o"
 			srv_regobj="${srv_regobj} powerpc-isa205-altivec32l.o"
@@ -197,7 +196,6 @@ case "${target}" in
 			srv_regobj="${srv_regobj} powerpc-e500l.o"
 			srv_regobj="${srv_regobj} powerpc-64l.o"
 			srv_regobj="${srv_regobj} powerpc-altivec64l.o"
-			srv_regobj="${srv_regobj} powerpc-cell64l.o"
 			srv_regobj="${srv_regobj} powerpc-vsx64l.o"
 			srv_regobj="${srv_regobj} powerpc-isa205-64l.o"
 			srv_regobj="${srv_regobj} powerpc-isa205-altivec64l.o"
@@ -209,7 +207,6 @@ case "${target}" in
 			srv_tgtobj="${srv_tgtobj} arch/ppc-linux-common.o"
 			srv_xmlfiles="rs6000/powerpc-32l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec32l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-cell32l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx32l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-32l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec32l.xml"
@@ -240,7 +237,6 @@ case "${target}" in
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-spe.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-64l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec64l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-cell64l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx64l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-64l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec64l.xml"
@@ -340,9 +336,6 @@ case "${target}" in
 			srv_linux_regsets=yes
 			srv_linux_thread_db=yes
 			;;
-  spu*-*-*)		srv_regobj=reg-spu.o
-			srv_tgtobj="spu-low.o fork-child.o fork-inferior.o"
-			;;
   tic6x-*-uclinux)	if $development; then
 			  srv_regobj="tic6x-c64xp-linux.o"
 			  srv_regobj="${srv_regobj} tic6x-c64x-linux.o"
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index 3113017ae6..d64c3641ff 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -60,10 +60,6 @@
 #endif
 #include "nat/linux-namespaces.h"
 
-#ifndef SPUFS_MAGIC
-#define SPUFS_MAGIC 0x23c9b64e
-#endif
-
 #ifdef HAVE_PERSONALITY
 # include <sys/personality.h>
 # if !HAVE_DECL_ADDR_NO_RANDOMIZE
@@ -6358,99 +6354,6 @@ linux_supports_range_stepping (void)
   return (*the_low_target.supports_range_stepping) ();
 }
 
-/* Enumerate spufs IDs for process PID.  */
-static int
-spu_enumerate_spu_ids (long pid, unsigned char *buf, CORE_ADDR offset, int len)
-{
-  int pos = 0;
-  int written = 0;
-  char path[128];
-  DIR *dir;
-  struct dirent *entry;
-
-  sprintf (path, "/proc/%ld/fd", pid);
-  dir = opendir (path);
-  if (!dir)
-    return -1;
-
-  rewinddir (dir);
-  while ((entry = readdir (dir)) != NULL)
-    {
-      struct stat st;
-      struct statfs stfs;
-      int fd;
-
-      fd = atoi (entry->d_name);
-      if (!fd)
-        continue;
-
-      sprintf (path, "/proc/%ld/fd/%d", pid, fd);
-      if (stat (path, &st) != 0)
-        continue;
-      if (!S_ISDIR (st.st_mode))
-        continue;
-
-      if (statfs (path, &stfs) != 0)
-        continue;
-      if (stfs.f_type != SPUFS_MAGIC)
-        continue;
-
-      if (pos >= offset && pos + 4 <= offset + len)
-        {
-          *(unsigned int *)(buf + pos - offset) = fd;
-          written += 4;
-        }
-      pos += 4;
-    }
-
-  closedir (dir);
-  return written;
-}
-
-/* Implements the to_xfer_partial interface for the TARGET_OBJECT_SPU
-   object type, using the /proc file system.  */
-static int
-linux_qxfer_spu (const char *annex, unsigned char *readbuf,
-		 unsigned const char *writebuf,
-		 CORE_ADDR offset, int len)
-{
-  long pid = lwpid_of (current_thread);
-  char buf[128];
-  int fd = 0;
-  int ret = 0;
-
-  if (!writebuf && !readbuf)
-    return -1;
-
-  if (!*annex)
-    {
-      if (!readbuf)
-	return -1;
-      else
-	return spu_enumerate_spu_ids (pid, readbuf, offset, len);
-    }
-
-  sprintf (buf, "/proc/%ld/fd/%s", pid, annex);
-  fd = open (buf, writebuf? O_WRONLY : O_RDONLY);
-  if (fd <= 0)
-    return -1;
-
-  if (offset != 0
-      && lseek (fd, (off_t) offset, SEEK_SET) != (off_t) offset)
-    {
-      close (fd);
-      return 0;
-    }
-
-  if (writebuf)
-    ret = write (fd, writebuf, (size_t) len);
-  else
-    ret = read (fd, readbuf, (size_t) len);
-
-  close (fd);
-  return ret;
-}
-
 #if defined PT_GETDSBT || defined PTRACE_GETFDPIC
 struct target_loadseg
 {
@@ -7496,7 +7399,6 @@ static struct target_ops linux_target_ops = {
 #else
   NULL,
 #endif
-  linux_qxfer_spu,
   hostio_last_error_from_errno,
   linux_qxfer_osdata,
   linux_xfer_siginfo,
diff --git a/gdb/gdbserver/linux-ppc-ipa.c b/gdb/gdbserver/linux-ppc-ipa.c
index 08adc52ce4..f9df02236a 100644
--- a/gdb/gdbserver/linux-ppc-ipa.c
+++ b/gdb/gdbserver/linux-ppc-ipa.c
@@ -181,8 +181,6 @@ get_ipa_tdesc (int idx)
       return tdesc_powerpc_64l;
     case PPC_TDESC_ALTIVEC:
       return tdesc_powerpc_altivec64l;
-    case PPC_TDESC_CELL:
-      return tdesc_powerpc_cell64l;
     case PPC_TDESC_VSX:
       return tdesc_powerpc_vsx64l;
     case PPC_TDESC_ISA205:
@@ -202,8 +200,6 @@ get_ipa_tdesc (int idx)
       return tdesc_powerpc_32l;
     case PPC_TDESC_ALTIVEC:
       return tdesc_powerpc_altivec32l;
-    case PPC_TDESC_CELL:
-      return tdesc_powerpc_cell32l;
     case PPC_TDESC_VSX:
       return tdesc_powerpc_vsx32l;
     case PPC_TDESC_ISA205:
@@ -241,7 +237,6 @@ initialize_low_tracepoint (void)
 #ifdef __powerpc64__
   init_registers_powerpc_64l ();
   init_registers_powerpc_altivec64l ();
-  init_registers_powerpc_cell64l ();
   init_registers_powerpc_vsx64l ();
   init_registers_powerpc_isa205_64l ();
   init_registers_powerpc_isa205_altivec64l ();
@@ -252,7 +247,6 @@ initialize_low_tracepoint (void)
 #else
   init_registers_powerpc_32l ();
   init_registers_powerpc_altivec32l ();
-  init_registers_powerpc_cell32l ();
   init_registers_powerpc_vsx32l ();
   init_registers_powerpc_isa205_32l ();
   init_registers_powerpc_isa205_altivec32l ();
diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c
index 8a0965bd20..c0622825ad 100644
--- a/gdb/gdbserver/linux-ppc-low.c
+++ b/gdb/gdbserver/linux-ppc-low.c
@@ -220,73 +220,10 @@ ppc_supply_ptrace_register (struct regcache *regcache,
     perror_with_name ("Unexpected byte order");
 }
 
-
-#define INSTR_SC        0x44000002
-#define NR_spu_run      0x0116
-
-/* If the PPU thread is currently stopped on a spu_run system call,
-   return to FD and ADDR the file handle and NPC parameter address
-   used with the system call.  Return non-zero if successful.  */
-static int
-parse_spufs_run (struct regcache *regcache, int *fd, CORE_ADDR *addr)
-{
-  CORE_ADDR curr_pc;
-  int curr_insn;
-  int curr_r0;
-
-  if (register_size (regcache->tdesc, 0) == 4)
-    {
-      unsigned int pc, r0, r3, r4;
-      collect_register_by_name (regcache, "pc", &pc);
-      collect_register_by_name (regcache, "r0", &r0);
-      collect_register_by_name (regcache, "orig_r3", &r3);
-      collect_register_by_name (regcache, "r4", &r4);
-      curr_pc = (CORE_ADDR) pc;
-      curr_r0 = (int) r0;
-      *fd = (int) r3;
-      *addr = (CORE_ADDR) r4;
-    }
-  else
-    {
-      unsigned long pc, r0, r3, r4;
-      collect_register_by_name (regcache, "pc", &pc);
-      collect_register_by_name (regcache, "r0", &r0);
-      collect_register_by_name (regcache, "orig_r3", &r3);
-      collect_register_by_name (regcache, "r4", &r4);
-      curr_pc = (CORE_ADDR) pc;
-      curr_r0 = (int) r0;
-      *fd = (int) r3;
-      *addr = (CORE_ADDR) r4;
-    }
-
-  /* Fetch instruction preceding current NIP.  */
-  if ((*the_target->read_memory) (curr_pc - 4,
-				  (unsigned char *) &curr_insn, 4) != 0)
-    return 0;
-  /* It should be a "sc" instruction.  */
-  if (curr_insn != INSTR_SC)
-    return 0;
-  /* System call number should be NR_spu_run.  */
-  if (curr_r0 != NR_spu_run)
-    return 0;
-
-  return 1;
-}
-
 static CORE_ADDR
 ppc_get_pc (struct regcache *regcache)
 {
-  CORE_ADDR addr;
-  int fd;
-
-  if (parse_spufs_run (regcache, &fd, &addr))
-    {
-      unsigned int pc;
-      (*the_target->read_memory) (addr, (unsigned char *) &pc, 4);
-      return ((CORE_ADDR)1 << 63)
-	| ((CORE_ADDR)fd << 32) | (CORE_ADDR) (pc - 4);
-    }
-  else if (register_size (regcache->tdesc, 0) == 4)
+  if (register_size (regcache->tdesc, 0) == 4)
     {
       unsigned int pc;
       collect_register_by_name (regcache, "pc", &pc);
@@ -303,15 +240,7 @@ ppc_get_pc (struct regcache *regcache)
 static void
 ppc_set_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  CORE_ADDR addr;
-  int fd;
-
-  if (parse_spufs_run (regcache, &fd, &addr))
-    {
-      unsigned int newpc = pc;
-      (*the_target->write_memory) (addr, (unsigned char *) &newpc, 4);
-    }
-  else if (register_size (regcache->tdesc, 0) == 4)
+  if (register_size (regcache->tdesc, 0) == 4)
     {
       unsigned int newpc = pc;
       supply_register_by_name (regcache, "pc", &newpc);
@@ -348,23 +277,11 @@ ppc_breakpoint_at (CORE_ADDR where)
 {
   unsigned int insn;
 
-  if (where & ((CORE_ADDR)1 << 63))
-    {
-      char mem_annex[32];
-      sprintf (mem_annex, "%d/mem", (int)((where >> 32) & 0x7fffffff));
-      (*the_target->qxfer_spu) (mem_annex, (unsigned char *) &insn,
-				NULL, where & 0xffffffff, 4);
-      if (insn == 0x3fff)
-	return 1;
-    }
-  else
-    {
-      (*the_target->read_memory) (where, (unsigned char *) &insn, 4);
-      if (insn == ppc_breakpoint)
-	return 1;
-      /* If necessary, recognize more trap instructions here.  GDB only uses
-	 the one.  */
-    }
+  (*the_target->read_memory) (where, (unsigned char *) &insn, 4);
+  if (insn == ppc_breakpoint)
+    return 1;
+  /* If necessary, recognize more trap instructions here.  GDB only uses
+     the one.  */
 
   return 0;
 }
@@ -941,9 +858,6 @@ ppc_arch_setup (void)
 	}
     }
 
-  if (ppc_hwcap & PPC_FEATURE_CELL)
-    features.cell = true;
-
   tdesc = ppc_linux_match_description (features);
 
   /* On 32-bit machines, check for SPE registers.
@@ -3416,8 +3330,6 @@ ppc_get_ipa_tdesc_idx (void)
     return PPC_TDESC_BASE;
   if (tdesc == tdesc_powerpc_altivec64l)
     return PPC_TDESC_ALTIVEC;
-  if (tdesc == tdesc_powerpc_cell64l)
-    return PPC_TDESC_CELL;
   if (tdesc == tdesc_powerpc_vsx64l)
     return PPC_TDESC_VSX;
   if (tdesc == tdesc_powerpc_isa205_64l)
@@ -3438,8 +3350,6 @@ ppc_get_ipa_tdesc_idx (void)
     return PPC_TDESC_BASE;
   if (tdesc == tdesc_powerpc_altivec32l)
     return PPC_TDESC_ALTIVEC;
-  if (tdesc == tdesc_powerpc_cell32l)
-    return PPC_TDESC_CELL;
   if (tdesc == tdesc_powerpc_vsx32l)
     return PPC_TDESC_VSX;
   if (tdesc == tdesc_powerpc_isa205_32l)
@@ -3507,7 +3417,6 @@ initialize_low_arch (void)
 
   init_registers_powerpc_32l ();
   init_registers_powerpc_altivec32l ();
-  init_registers_powerpc_cell32l ();
   init_registers_powerpc_vsx32l ();
   init_registers_powerpc_isa205_32l ();
   init_registers_powerpc_isa205_altivec32l ();
@@ -3519,7 +3428,6 @@ initialize_low_arch (void)
 #if __powerpc64__
   init_registers_powerpc_64l ();
   init_registers_powerpc_altivec64l ();
-  init_registers_powerpc_cell64l ();
   init_registers_powerpc_vsx64l ();
   init_registers_powerpc_isa205_64l ();
   init_registers_powerpc_isa205_altivec64l ();
diff --git a/gdb/gdbserver/linux-ppc-tdesc-init.h b/gdb/gdbserver/linux-ppc-tdesc-init.h
index 4f9a7c5009..299b3ce363 100644
--- a/gdb/gdbserver/linux-ppc-tdesc-init.h
+++ b/gdb/gdbserver/linux-ppc-tdesc-init.h
@@ -27,7 +27,7 @@
 enum ppc_linux_tdesc {
   PPC_TDESC_BASE,
   PPC_TDESC_ALTIVEC,
-  PPC_TDESC_CELL,
+  PPC_TDESC_CELL,  /* No longer used, but kept to avoid ABI changes.  */
   PPC_TDESC_VSX,
   PPC_TDESC_ISA205,
   PPC_TDESC_ISA205_ALTIVEC,
@@ -46,9 +46,6 @@ void init_registers_powerpc_32l (void);
 /* Defined in auto-generated file powerpc-altivec32l.c.  */
 void init_registers_powerpc_altivec32l (void);
 
-/* Defined in auto-generated file powerpc-cell32l.c.  */
-void init_registers_powerpc_cell32l (void);
-
 /* Defined in auto-generated file powerpc-vsx32l.c.  */
 void init_registers_powerpc_vsx32l (void);
 
@@ -83,9 +80,6 @@ void init_registers_powerpc_64l (void);
 /* Defined in auto-generated file powerpc-altivec64l.c.  */
 void init_registers_powerpc_altivec64l (void);
 
-/* Defined in auto-generated file powerpc-cell64l.c.  */
-void init_registers_powerpc_cell64l (void);
-
 /* Defined in auto-generated file powerpc-vsx64l.c.  */
 void init_registers_powerpc_vsx64l (void);
 
diff --git a/gdb/gdbserver/lynx-low.c b/gdb/gdbserver/lynx-low.c
index 0a8b258e87..2bd24e7cee 100644
--- a/gdb/gdbserver/lynx-low.c
+++ b/gdb/gdbserver/lynx-low.c
@@ -753,7 +753,6 @@ static struct target_ops lynx_target_ops = {
   NULL,  /* stopped_data_address */
   NULL,  /* read_offsets */
   NULL,  /* get_tls_address */
-  NULL,  /* qxfer_spu */
   NULL,  /* hostio_last_error */
   NULL,  /* qxfer_osdata */
   NULL,  /* qxfer_siginfo */
diff --git a/gdb/gdbserver/nto-low.c b/gdb/gdbserver/nto-low.c
index 011701aa8c..3c1130680f 100644
--- a/gdb/gdbserver/nto-low.c
+++ b/gdb/gdbserver/nto-low.c
@@ -963,7 +963,6 @@ static struct target_ops nto_target_ops = {
   nto_stopped_data_address,
   NULL, /* nto_read_offsets */
   NULL, /* thread_db_set_tls_address */
-  NULL,
   hostio_last_error_from_errno,
   NULL, /* nto_qxfer_osdata */
   NULL, /* xfer_siginfo */
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index 127cd3840b..67e8e3e54d 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -1613,22 +1613,6 @@ handle_qxfer_siginfo (const char *annex,
   return (*the_target->qxfer_siginfo) (annex, readbuf, writebuf, offset, len);
 }
 
-/* Handle qXfer:spu:read and qXfer:spu:write.  */
-
-static int
-handle_qxfer_spu (const char *annex,
-		  gdb_byte *readbuf, const gdb_byte *writebuf,
-		  ULONGEST offset, LONGEST len)
-{
-  if (the_target->qxfer_spu == NULL)
-    return -2;
-
-  if (current_thread == NULL)
-    return -1;
-
-  return (*the_target->qxfer_spu) (annex, readbuf, writebuf, offset, len);
-}
-
 /* Handle qXfer:statictrace:read.  */
 
 static int
@@ -1985,7 +1969,6 @@ static const struct qxfer qxfer_packets[] =
     { "libraries-svr4", handle_qxfer_libraries_svr4 },
     { "osdata", handle_qxfer_osdata },
     { "siginfo", handle_qxfer_siginfo },
-    { "spu", handle_qxfer_spu },
     { "statictrace", handle_qxfer_statictrace },
     { "threads", handle_qxfer_threads },
     { "traceframe-info", handle_qxfer_traceframe_info },
@@ -2397,9 +2380,6 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
       if (the_target->read_auxv != NULL)
 	strcat (own_buf, ";qXfer:auxv:read+");
 
-      if (the_target->qxfer_spu != NULL)
-	strcat (own_buf, ";qXfer:spu:read+;qXfer:spu:write+");
-
       if (the_target->qxfer_siginfo != NULL)
 	strcat (own_buf, ";qXfer:siginfo:read+;qXfer:siginfo:write+");
 
diff --git a/gdb/gdbserver/spu-low.c b/gdb/gdbserver/spu-low.c
deleted file mode 100644
index 4930c59d73..0000000000
--- a/gdb/gdbserver/spu-low.c
+++ /dev/null
@@ -1,732 +0,0 @@
-/* Low level interface to SPUs, for the remote server for GDB.
-   Copyright (C) 2006-2019 Free Software Foundation, Inc.
-
-   Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#include "server.h"
-
-#include "gdbsupport/gdb_wait.h"
-#include <sys/ptrace.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/syscall.h>
-#include "gdbsupport/filestuff.h"
-#include "hostio.h"
-#include "nat/fork-inferior.h"
-
-/* Some older glibc versions do not define this.  */
-#ifndef __WNOTHREAD
-#define __WNOTHREAD     0x20000000      /* Don't wait on children of other
-					   threads in this group */
-#endif
-
-#define PTRACE_TYPE_RET long
-#define PTRACE_TYPE_ARG3 long
-
-/* Number of registers.  */
-#define SPU_NUM_REGS         130
-#define SPU_NUM_CORE_REGS    128
-
-/* Special registers.  */
-#define SPU_ID_REGNUM        128
-#define SPU_PC_REGNUM        129
-
-/* PPU side system calls.  */
-#define INSTR_SC	0x44000002
-#define NR_spu_run	0x0116
-
-/* These are used in remote-utils.c.  */
-int using_threads = 0;
-
-/* Defined in auto-generated file reg-spu.c.  */
-void init_registers_spu (void);
-extern const struct target_desc *tdesc_spu;
-
-/* Software breakpoint instruction.  */
-static const gdb_byte breakpoint[] = { 0x00, 0x00, 0x3f, 0xff };
-
-/* Fetch PPU register REGNO.  */
-static CORE_ADDR
-fetch_ppc_register (int regno)
-{
-  PTRACE_TYPE_RET res;
-
-  int tid = current_ptid.lwp ();
-
-#ifndef __powerpc64__
-  /* If running as a 32-bit process on a 64-bit system, we attempt
-     to get the full 64-bit register content of the target process.
-     If the PPC special ptrace call fails, we're on a 32-bit system;
-     just fall through to the regular ptrace call in that case.  */
-  {
-    char buf[8];
-
-    errno = 0;
-    ptrace ((PTRACE_TYPE_ARG1) PPC_PTRACE_PEEKUSR_3264, tid,
-	    (PTRACE_TYPE_ARG3) (regno * 8), buf);
-    if (errno == 0)
-      ptrace ((PTRACE_TYPE_ARG1) PPC_PTRACE_PEEKUSR_3264, tid,
-	      (PTRACE_TYPE_ARG3) (regno * 8 + 4), buf + 4);
-    if (errno == 0)
-      return (CORE_ADDR) *(unsigned long long *)buf;
-  }
-#endif
-
-  errno = 0;
-  res = ptrace (PT_READ_U, tid,
-		(PTRACE_TYPE_ARG3) (regno * sizeof (PTRACE_TYPE_RET)), 0);
-  if (errno != 0)
-    {
-      char mess[128];
-      sprintf (mess, "reading PPC register #%d", regno);
-      perror_with_name (mess);
-    }
-
-  return (CORE_ADDR) (unsigned long) res;
-}
-
-/* Fetch WORD from PPU memory at (aligned) MEMADDR in thread TID.  */
-static int
-fetch_ppc_memory_1 (int tid, CORE_ADDR memaddr, PTRACE_TYPE_RET *word)
-{
-  errno = 0;
-
-#ifndef __powerpc64__
-  if (memaddr >> 32)
-    {
-      unsigned long long addr_8 = (unsigned long long) memaddr;
-      ptrace ((PTRACE_TYPE_ARG1) PPC_PTRACE_PEEKTEXT_3264, tid,
-	      (PTRACE_TYPE_ARG3) &addr_8, word);
-    }
-  else
-#endif
-    *word = ptrace (PT_READ_I, tid, (PTRACE_TYPE_ARG3) (size_t) memaddr, 0);
-
-  return errno;
-}
-
-/* Store WORD into PPU memory at (aligned) MEMADDR in thread TID.  */
-static int
-store_ppc_memory_1 (int tid, CORE_ADDR memaddr, PTRACE_TYPE_RET word)
-{
-  errno = 0;
-
-#ifndef __powerpc64__
-  if (memaddr >> 32)
-    {
-      unsigned long long addr_8 = (unsigned long long) memaddr;
-      ptrace ((PTRACE_TYPE_ARG1) PPC_PTRACE_POKEDATA_3264, tid,
-	      (PTRACE_TYPE_ARG3) &addr_8, word);
-    }
-  else
-#endif
-    ptrace (PT_WRITE_D, tid, (PTRACE_TYPE_ARG3) (size_t) memaddr, word);
-
-  return errno;
-}
-
-/* Fetch LEN bytes of PPU memory at MEMADDR to MYADDR.  */
-static int
-fetch_ppc_memory (CORE_ADDR memaddr, char *myaddr, int len)
-{
-  int i, ret;
-
-  CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (PTRACE_TYPE_RET);
-  int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
-	       / sizeof (PTRACE_TYPE_RET));
-  PTRACE_TYPE_RET *buffer;
-
-  int tid = current_ptid.lwp ();
-
-  buffer = XALLOCAVEC (PTRACE_TYPE_RET, count);
-  for (i = 0; i < count; i++, addr += sizeof (PTRACE_TYPE_RET))
-    if ((ret = fetch_ppc_memory_1 (tid, addr, &buffer[i])) != 0)
-      return ret;
-
-  memcpy (myaddr,
-	  (char *) buffer + (memaddr & (sizeof (PTRACE_TYPE_RET) - 1)),
-	  len);
-
-  return 0;
-}
-
-/* Store LEN bytes from MYADDR to PPU memory at MEMADDR.  */
-static int
-store_ppc_memory (CORE_ADDR memaddr, char *myaddr, int len)
-{
-  int i, ret;
-
-  CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (PTRACE_TYPE_RET);
-  int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
-	       / sizeof (PTRACE_TYPE_RET));
-  PTRACE_TYPE_RET *buffer;
-
-  int tid = current_ptid.lwp ();
-
-  buffer = XALLOCAVEC (PTRACE_TYPE_RET, count);
-
-  if (addr != memaddr || len < (int) sizeof (PTRACE_TYPE_RET))
-    if ((ret = fetch_ppc_memory_1 (tid, addr, &buffer[0])) != 0)
-      return ret;
-
-  if (count > 1)
-    if ((ret = fetch_ppc_memory_1 (tid, addr + (count - 1)
-					       * sizeof (PTRACE_TYPE_RET),
-				   &buffer[count - 1])) != 0)
-      return ret;
-
-  memcpy ((char *) buffer + (memaddr & (sizeof (PTRACE_TYPE_RET) - 1)),
-	  myaddr, len);
-
-  for (i = 0; i < count; i++, addr += sizeof (PTRACE_TYPE_RET))
-    if ((ret = store_ppc_memory_1 (tid, addr, buffer[i])) != 0)
-      return ret;
-
-  return 0;
-}
-
-
-/* If the PPU thread is currently stopped on a spu_run system call,
-   return to FD and ADDR the file handle and NPC parameter address
-   used with the system call.  Return non-zero if successful.  */
-static int
-parse_spufs_run (int *fd, CORE_ADDR *addr)
-{
-  unsigned int insn;
-  CORE_ADDR pc = fetch_ppc_register (32);  /* nip */
-
-  /* Fetch instruction preceding current NIP.  */
-  if (fetch_ppc_memory (pc-4, (char *) &insn, 4) != 0)
-    return 0;
-  /* It should be a "sc" instruction.  */
-  if (insn != INSTR_SC)
-    return 0;
-  /* System call number should be NR_spu_run.  */
-  if (fetch_ppc_register (0) != NR_spu_run)
-    return 0;
-
-  /* Register 3 contains fd, register 4 the NPC param pointer.  */
-  *fd = fetch_ppc_register (34);  /* orig_gpr3 */
-  *addr = fetch_ppc_register (4);
-  return 1;
-}
-
-
-/* Copy LEN bytes at OFFSET in spufs file ANNEX into/from READBUF or WRITEBUF,
-   using the /proc file system.  */
-static int
-spu_proc_xfer_spu (const char *annex, unsigned char *readbuf,
-		   const unsigned char *writebuf,
-		   CORE_ADDR offset, int len)
-{
-  char buf[128];
-  int fd = 0;
-  int ret = -1;
-
-  if (!annex)
-    return 0;
-
-  sprintf (buf, "/proc/%ld/fd/%s", current_ptid.lwp (), annex);
-  fd = open (buf, writebuf? O_WRONLY : O_RDONLY);
-  if (fd <= 0)
-    return -1;
-
-  if (offset != 0
-      && lseek (fd, (off_t) offset, SEEK_SET) != (off_t) offset)
-    {
-      close (fd);
-      return 0;
-    }
-
-  if (writebuf)
-    ret = write (fd, writebuf, (size_t) len);
-  else if (readbuf)
-    ret = read (fd, readbuf, (size_t) len);
-
-  close (fd);
-  return ret;
-}
-
-/* Callback to be used when calling fork_inferior, responsible for
-   actually initiating the tracing of the inferior.  */
-
-static void
-spu_ptrace_fun ()
-{
-  if (ptrace (PTRACE_TRACEME, 0, 0, 0) < 0)
-    trace_start_error_with_name ("ptrace");
-  if (setpgid (0, 0) < 0)
-    trace_start_error_with_name ("setpgid");
-}
-
-/* Start an inferior process and returns its pid.
-   PROGRAM is the name of the program to be started, and PROGRAM_ARGS
-   are its arguments.  */
-
-static int
-spu_create_inferior (const char *program,
-		     const std::vector<char *> &program_args)
-{
-  int pid;
-  ptid_t ptid;
-  struct process_info *proc;
-  std::string str_program_args = stringify_argv (program_args);
-
-  pid = fork_inferior (program,
-		       str_program_args.c_str (),
-		       get_environ ()->envp (), spu_ptrace_fun,
-		       NULL, NULL, NULL, NULL);
-
-  post_fork_inferior (pid, program);
-
-  proc = add_process (pid, 0);
-  proc->tdesc = tdesc_spu;
-
-  ptid = ptid_t (pid, pid, 0);
-  add_thread (ptid, NULL);
-  return pid;
-}
-
-/* Attach to an inferior process.  */
-int
-spu_attach (unsigned long  pid)
-{
-  ptid_t ptid;
-  struct process_info *proc;
-
-  if (ptrace (PTRACE_ATTACH, pid, 0, 0) != 0)
-    {
-      fprintf (stderr, "Cannot attach to process %ld: %s (%d)\n", pid,
-	       strerror (errno), errno);
-      fflush (stderr);
-      _exit (0177);
-    }
-
-  proc = add_process (pid, 1);
-  proc->tdesc = tdesc_spu;
-  ptid = ptid_t (pid, pid, 0);
-  add_thread (ptid, NULL);
-  return 0;
-}
-
-/* Kill the inferior process.  */
-static int
-spu_kill (process_info *process)
-{
-  int status, ret;
-  int pid = process->pid;
-
-  ptrace (PTRACE_KILL, pid, 0, 0);
-
-  do {
-    ret = waitpid (pid, &status, 0);
-    if (WIFEXITED (status) || WIFSIGNALED (status))
-      break;
-  } while (ret != -1 || errno != ECHILD);
-
-  clear_inferiors ();
-  remove_process (process);
-  return 0;
-}
-
-/* Detach from inferior process.  */
-static int
-spu_detach (process_info *process)
-{
-  ptrace (PTRACE_DETACH, process->pid, 0, 0);
-
-  clear_inferiors ();
-  remove_process (process);
-  return 0;
-}
-
-static void
-spu_mourn (struct process_info *process)
-{
-  remove_process (process);
-}
-
-static void
-spu_join (int pid)
-{
-  int status, ret;
-
-  do {
-    ret = waitpid (pid, &status, 0);
-    if (WIFEXITED (status) || WIFSIGNALED (status))
-      break;
-  } while (ret != -1 || errno != ECHILD);
-}
-
-/* Return nonzero if the given thread is still alive.  */
-static int
-spu_thread_alive (ptid_t ptid)
-{
-  return ptid == current_ptid;
-}
-
-/* Resume process.  */
-static void
-spu_resume (struct thread_resume *resume_info, size_t n)
-{
-  struct thread_info *thr = get_first_thread ();
-  size_t i;
-
-  for (i = 0; i < n; i++)
-    if (resume_info[i].thread == minus_one_ptid
-	|| resume_info[i].thread == ptid_of (thr))
-      break;
-
-  if (i == n)
-    return;
-
-  /* We don't support hardware single-stepping right now, assume
-     GDB knows to use software single-stepping.  */
-  if (resume_info[i].kind == resume_step)
-    fprintf (stderr, "Hardware single-step not supported.\n");
-
-  regcache_invalidate ();
-
-  errno = 0;
-  ptrace (PTRACE_CONT, ptid_of (thr).lwp (), 0, resume_info[i].sig);
-  if (errno)
-    perror_with_name ("ptrace");
-}
-
-/* Wait for process, returns status.  */
-static ptid_t
-spu_wait (ptid_t ptid, struct target_waitstatus *ourstatus, int options)
-{
-  int pid = ptid.pid ();
-  int w;
-  int ret;
-
-  while (1)
-    {
-      ret = waitpid (pid, &w, WNOHANG | __WALL | __WNOTHREAD);
-
-      if (ret == -1)
-	{
-	  if (errno != ECHILD)
-	    perror_with_name ("waitpid");
-	}
-      else if (ret > 0)
-	break;
-
-      usleep (1000);
-    }
-
-  /* On the first wait, continue running the inferior until we are
-     blocked inside an spu_run system call.  */
-  if (!server_waiting)
-    {
-      int fd;
-      CORE_ADDR addr;
-
-      while (!parse_spufs_run (&fd, &addr))
-	{
-	  ptrace (PT_SYSCALL, pid, (PTRACE_TYPE_ARG3) 0, 0);
-	  waitpid (pid, NULL, __WALL | __WNOTHREAD);
-	}
-    }
-
-  if (WIFEXITED (w))
-    {
-      fprintf (stderr, "\nChild exited with retcode = %x \n", WEXITSTATUS (w));
-      ourstatus->kind =  TARGET_WAITKIND_EXITED;
-      ourstatus->value.integer = WEXITSTATUS (w);
-      clear_inferiors ();
-      return ptid_t (ret);
-    }
-  else if (!WIFSTOPPED (w))
-    {
-      fprintf (stderr, "\nChild terminated with signal = %x \n", WTERMSIG (w));
-      ourstatus->kind = TARGET_WAITKIND_SIGNALLED;
-      ourstatus->value.sig = gdb_signal_from_host (WTERMSIG (w));
-      clear_inferiors ();
-      return ptid_t (ret);
-    }
-
-  /* After attach, we may have received a SIGSTOP.  Do not return this
-     as signal to GDB, or else it will try to continue with SIGSTOP ...  */
-  if (!server_waiting)
-    {
-      ourstatus->kind = TARGET_WAITKIND_STOPPED;
-      ourstatus->value.sig = GDB_SIGNAL_0;
-      return ptid_t (ret, ret, 0);
-    }
-
-  ourstatus->kind = TARGET_WAITKIND_STOPPED;
-  ourstatus->value.sig = gdb_signal_from_host (WSTOPSIG (w));
-  return ptid_t (ret, ret, 0);
-}
-
-/* Fetch inferior registers.  */
-static void
-spu_fetch_registers (struct regcache *regcache, int regno)
-{
-  int fd;
-  CORE_ADDR addr;
-
-  /* We must be stopped on a spu_run system call.  */
-  if (!parse_spufs_run (&fd, &addr))
-    return;
-
-  /* The ID register holds the spufs file handle.  */
-  if (regno == -1 || regno == SPU_ID_REGNUM)
-    supply_register (regcache, SPU_ID_REGNUM, (char *)&fd);
-
-  /* The NPC register is found at ADDR.  */
-  if (regno == -1 || regno == SPU_PC_REGNUM)
-    {
-      char buf[4];
-      if (fetch_ppc_memory (addr, buf, 4) == 0)
-	supply_register (regcache, SPU_PC_REGNUM, buf);
-    }
-
-  /* The GPRs are found in the "regs" spufs file.  */
-  if (regno == -1 || (regno >= 0 && regno < SPU_NUM_CORE_REGS))
-    {
-      unsigned char buf[16*SPU_NUM_CORE_REGS];
-      char annex[32];
-      int i;
-
-      sprintf (annex, "%d/regs", fd);
-      if (spu_proc_xfer_spu (annex, buf, NULL, 0, sizeof buf) == sizeof buf)
-	for (i = 0; i < SPU_NUM_CORE_REGS; i++)
-	  supply_register (regcache, i, buf + i*16);
-    }
-}
-
-/* Store inferior registers.  */
-static void
-spu_store_registers (struct regcache *regcache, int regno)
-{
-  int fd;
-  CORE_ADDR addr;
-
-  /* ??? Some callers use 0 to mean all registers.  */
-  if (regno == 0)
-    regno = -1;
-
-  /* We must be stopped on a spu_run system call.  */
-  if (!parse_spufs_run (&fd, &addr))
-    return;
-
-  /* The NPC register is found at ADDR.  */
-  if (regno == -1 || regno == SPU_PC_REGNUM)
-    {
-      char buf[4];
-      collect_register (regcache, SPU_PC_REGNUM, buf);
-      store_ppc_memory (addr, buf, 4);
-    }
-
-  /* The GPRs are found in the "regs" spufs file.  */
-  if (regno == -1 || (regno >= 0 && regno < SPU_NUM_CORE_REGS))
-    {
-      unsigned char buf[16*SPU_NUM_CORE_REGS];
-      char annex[32];
-      int i;
-
-      for (i = 0; i < SPU_NUM_CORE_REGS; i++)
-	collect_register (regcache, i, buf + i*16);
-
-      sprintf (annex, "%d/regs", fd);
-      spu_proc_xfer_spu (annex, NULL, buf, 0, sizeof buf);
-    }
-}
-
-/* Copy LEN bytes from inferior's memory starting at MEMADDR
-   to debugger memory starting at MYADDR.  */
-static int
-spu_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
-{
-  int fd, ret;
-  CORE_ADDR addr;
-  char annex[32], lslr_annex[32], buf[32];
-  CORE_ADDR lslr;
-
-  /* We must be stopped on a spu_run system call.  */
-  if (!parse_spufs_run (&fd, &addr))
-    return 0;
-
-  /* Use the "mem" spufs file to access SPU local store.  */
-  sprintf (annex, "%d/mem", fd);
-  ret = spu_proc_xfer_spu (annex, myaddr, NULL, memaddr, len);
-  if (ret > 0)
-    return ret == len ? 0 : EIO;
-
-  /* SPU local store access wraps the address around at the
-     local store limit.  We emulate this here.  To avoid needing
-     an extra access to retrieve the LSLR, we only do that after
-     trying the original address first, and getting end-of-file.  */
-  sprintf (lslr_annex, "%d/lslr", fd);
-  memset (buf, 0, sizeof buf);
-  if (spu_proc_xfer_spu (lslr_annex, (unsigned char *)buf, NULL,
-			 0, sizeof buf) <= 0)
-    return ret;
-
-  lslr = strtoul (buf, NULL, 16);
-  ret = spu_proc_xfer_spu (annex, myaddr, NULL, memaddr & lslr, len);
-
-  return ret == len ? 0 : EIO;
-}
-
-/* Copy LEN bytes of data from debugger memory at MYADDR
-   to inferior's memory at MEMADDR.
-   On failure (cannot write the inferior)
-   returns the value of errno.  */
-static int
-spu_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len)
-{
-  int fd, ret;
-  CORE_ADDR addr;
-  char annex[32], lslr_annex[32], buf[32];
-  CORE_ADDR lslr;
-
-  /* We must be stopped on a spu_run system call.  */
-  if (!parse_spufs_run (&fd, &addr))
-    return 0;
-
-  /* Use the "mem" spufs file to access SPU local store.  */
-  sprintf (annex, "%d/mem", fd);
-  ret = spu_proc_xfer_spu (annex, NULL, myaddr, memaddr, len);
-  if (ret > 0)
-    return ret == len ? 0 : EIO;
-
-  /* SPU local store access wraps the address around at the
-     local store limit.  We emulate this here.  To avoid needing
-     an extra access to retrieve the LSLR, we only do that after
-     trying the original address first, and getting end-of-file.  */
-  sprintf (lslr_annex, "%d/lslr", fd);
-  memset (buf, 0, sizeof buf);
-  if (spu_proc_xfer_spu (lslr_annex, (unsigned char *)buf, NULL,
-			 0, sizeof buf) <= 0)
-    return ret;
-
-  lslr = strtoul (buf, NULL, 16);
-  ret = spu_proc_xfer_spu (annex, NULL, myaddr, memaddr & lslr, len);
-
-  return ret == len ? 0 : EIO;
-}
-
-/* Look up special symbols -- unneded here.  */
-static void
-spu_look_up_symbols (void)
-{
-}
-
-/* Send signal to inferior.  */
-static void
-spu_request_interrupt (void)
-{
-  struct thread_info *thr = get_first_thread ();
-
-  syscall (SYS_tkill, lwpid_of (thr), SIGINT);
-}
-
-/* Implementation of the target_ops method "sw_breakpoint_from_kind".  */
-
-static const gdb_byte *
-spu_sw_breakpoint_from_kind (int kind, int *size)
-{
-  *size = sizeof breakpoint;
-  return breakpoint;
-}
-
-static struct target_ops spu_target_ops = {
-  spu_create_inferior,
-  NULL,  /* post_create_inferior */
-  spu_attach,
-  spu_kill,
-  spu_detach,
-  spu_mourn,
-  spu_join,
-  spu_thread_alive,
-  spu_resume,
-  spu_wait,
-  spu_fetch_registers,
-  spu_store_registers,
-  NULL, /* prepare_to_access_memory */
-  NULL, /* done_accessing_memory */
-  spu_read_memory,
-  spu_write_memory,
-  spu_look_up_symbols,
-  spu_request_interrupt,
-  NULL,
-  NULL,  /* supports_z_point_type */
-  NULL,
-  NULL,
-  NULL, /* stopped_by_sw_breakpoint */
-  NULL, /* supports_stopped_by_sw_breakpoint */
-  NULL, /* stopped_by_hw_breakpoint */
-  NULL, /* supports_stopped_by_hw_breakpoint */
-  NULL, /* supports_hardware_single_step */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  spu_proc_xfer_spu,
-  hostio_last_error_from_errno,
-  NULL, /* qxfer_osdata */
-  NULL, /* qxfer_siginfo */
-  NULL, /* supports_non_stop */
-  NULL, /* async */
-  NULL, /* start_non_stop */
-  NULL, /* supports_multi_process */
-  NULL, /* supports_fork_events */
-  NULL, /* supports_vfork_events */
-  NULL, /* supports_exec_events */
-  NULL, /* handle_new_gdb_connection */
-  NULL, /* handle_monitor_command */
-  NULL, /* core_of_thread */
-  NULL, /* read_loadmap */
-  NULL, /* process_qsupported */
-  NULL, /* supports_tracepoints */
-  NULL, /* read_pc */
-  NULL, /* write_pc */
-  NULL, /* thread_stopped */
-  NULL, /* get_tib_address */
-  NULL, /* pause_all */
-  NULL, /* unpause_all */
-  NULL, /* stabilize_threads */
-  NULL, /* install_fast_tracepoint_jump_pad */
-  NULL, /* emit_ops */
-  NULL, /* supports_disable_randomization */
-  NULL, /* get_min_fast_tracepoint_insn_len */
-  NULL, /* qxfer_libraries_svr4 */
-  NULL, /* support_agent */
-  NULL, /* enable_btrace */
-  NULL, /* disable_btrace */
-  NULL, /* read_btrace */
-  NULL, /* read_btrace_conf */
-  NULL, /* supports_range_stepping */
-  NULL, /* pid_to_exec_file */
-  NULL, /* multifs_open */
-  NULL, /* multifs_unlink */
-  NULL, /* multifs_readlink */
-  NULL, /* breakpoint_kind_from_pc */
-  spu_sw_breakpoint_from_kind,
-};
-
-void
-initialize_low (void)
-{
-  set_target_ops (&spu_target_ops);
-  init_registers_spu ();
-}
diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h
index 67167cca2d..2df135a769 100644
--- a/gdb/gdbserver/target.h
+++ b/gdb/gdbserver/target.h
@@ -256,10 +256,6 @@ struct target_ops
   int (*get_tls_address) (struct thread_info *thread, CORE_ADDR offset,
 			  CORE_ADDR load_module, CORE_ADDR *address);
 
-   /* Read/Write from/to spufs using qXfer packets.  */
-  int (*qxfer_spu) (const char *annex, unsigned char *readbuf,
-		    unsigned const char *writebuf, CORE_ADDR offset, int len);
-
   /* Fill BUF with an hostio error packet representing the last hostio
      error.  */
   void (*hostio_last_error) (char *buf);
diff --git a/gdb/gdbserver/win32-low.c b/gdb/gdbserver/win32-low.c
index 49c6cf1b7c..7088ba4dd1 100644
--- a/gdb/gdbserver/win32-low.c
+++ b/gdb/gdbserver/win32-low.c
@@ -1809,7 +1809,6 @@ static struct target_ops win32_target_ops = {
   win32_stopped_data_address,
   NULL, /* read_offsets */
   NULL, /* get_tls_address */
-  NULL, /* qxfer_spu */
 #ifdef _WIN32_WCE
   wince_hostio_last_error,
 #else
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index 945c19f666..cd5cf1830d 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -68,10 +68,6 @@
 #include "gdbsupport/fileio.h"
 #include "gdbsupport/scope-exit.h"
 
-#ifndef SPUFS_MAGIC
-#define SPUFS_MAGIC 0x23c9b64e
-#endif
-
 /* This comment documents high-level logic of this file.
 
 Waiting for events in sync mode
@@ -3841,12 +3837,6 @@ linux_nat_xfer_osdata (enum target_object object,
 		       const gdb_byte *writebuf, ULONGEST offset, ULONGEST len,
 		       ULONGEST *xfered_len);
 
-static enum target_xfer_status
-linux_proc_xfer_spu (enum target_object object,
-		     const char *annex, gdb_byte *readbuf,
-		     const gdb_byte *writebuf,
-		     ULONGEST offset, ULONGEST len, ULONGEST *xfered_len);
-
 static enum target_xfer_status
 linux_proc_xfer_partial (enum target_object object,
 			 const char *annex, gdb_byte *readbuf,
@@ -3879,10 +3869,6 @@ linux_nat_target::xfer_partial (enum target_object object,
     return linux_nat_xfer_osdata (object, annex, readbuf, writebuf,
 				  offset, len, xfered_len);
 
-  if (object == TARGET_OBJECT_SPU)
-    return linux_proc_xfer_spu (object, annex, readbuf, writebuf,
-				offset, len, xfered_len);
-
   /* GDB calculates all addresses in the largest possible address
      width.
      The address width must be masked before its final use - either by
@@ -4020,121 +4006,6 @@ linux_proc_xfer_partial (enum target_object object,
 }
 
 
-/* Enumerate spufs IDs for process PID.  */
-static LONGEST
-spu_enumerate_spu_ids (int pid, gdb_byte *buf, ULONGEST offset, ULONGEST len)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
-  LONGEST pos = 0;
-  LONGEST written = 0;
-  char path[128];
-  DIR *dir;
-  struct dirent *entry;
-
-  xsnprintf (path, sizeof path, "/proc/%d/fd", pid);
-  dir = opendir (path);
-  if (!dir)
-    return -1;
-
-  rewinddir (dir);
-  while ((entry = readdir (dir)) != NULL)
-    {
-      struct stat st;
-      struct statfs stfs;
-      int fd;
-
-      fd = atoi (entry->d_name);
-      if (!fd)
-	continue;
-
-      xsnprintf (path, sizeof path, "/proc/%d/fd/%d", pid, fd);
-      if (stat (path, &st) != 0)
-	continue;
-      if (!S_ISDIR (st.st_mode))
-	continue;
-
-      if (statfs (path, &stfs) != 0)
-	continue;
-      if (stfs.f_type != SPUFS_MAGIC)
-	continue;
-
-      if (pos >= offset && pos + 4 <= offset + len)
-	{
-	  store_unsigned_integer (buf + pos - offset, 4, byte_order, fd);
-	  written += 4;
-	}
-      pos += 4;
-    }
-
-  closedir (dir);
-  return written;
-}
-
-/* Implement the to_xfer_partial interface for the TARGET_OBJECT_SPU
-   object type, using the /proc file system.  */
-
-static enum target_xfer_status
-linux_proc_xfer_spu (enum target_object object,
-		     const char *annex, gdb_byte *readbuf,
-		     const gdb_byte *writebuf,
-		     ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
-{
-  char buf[128];
-  int fd = 0;
-  int ret = -1;
-  int pid = inferior_ptid.lwp ();
-
-  if (!annex)
-    {
-      if (!readbuf)
-	return TARGET_XFER_E_IO;
-      else
-	{
-	  LONGEST l = spu_enumerate_spu_ids (pid, readbuf, offset, len);
-
-	  if (l < 0)
-	    return TARGET_XFER_E_IO;
-	  else if (l == 0)
-	    return TARGET_XFER_EOF;
-	  else
-	    {
-	      *xfered_len = (ULONGEST) l;
-	      return TARGET_XFER_OK;
-	    }
-	}
-    }
-
-  xsnprintf (buf, sizeof buf, "/proc/%d/fd/%s", pid, annex);
-  fd = gdb_open_cloexec (buf, writebuf? O_WRONLY : O_RDONLY, 0);
-  if (fd <= 0)
-    return TARGET_XFER_E_IO;
-
-  if (offset != 0
-      && lseek (fd, (off_t) offset, SEEK_SET) != (off_t) offset)
-    {
-      close (fd);
-      return TARGET_XFER_EOF;
-    }
-
-  if (writebuf)
-    ret = write (fd, writebuf, (size_t) len);
-  else if (readbuf)
-    ret = read (fd, readbuf, (size_t) len);
-
-  close (fd);
-
-  if (ret < 0)
-    return TARGET_XFER_E_IO;
-  else if (ret == 0)
-    return TARGET_XFER_EOF;
-  else
-    {
-      *xfered_len = (ULONGEST) ret;
-      return TARGET_XFER_OK;
-    }
-}
-
-
 /* Parse LINE as a signal set and add its set bits to SIGS.  */
 
 static void
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 63a9bd32df..567b01c5d1 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -1413,73 +1413,6 @@ find_signalled_thread (struct thread_info *info, void *data)
   return 0;
 }
 
-/* Generate corefile notes for SPU contexts.  */
-
-static char *
-linux_spu_make_corefile_notes (bfd *obfd, char *note_data, int *note_size)
-{
-  static const char *spu_files[] =
-    {
-      "object-id",
-      "mem",
-      "regs",
-      "fpcr",
-      "lslr",
-      "decr",
-      "decr_status",
-      "signal1",
-      "signal1_type",
-      "signal2",
-      "signal2_type",
-      "event_mask",
-      "event_status",
-      "mbox_info",
-      "ibox_info",
-      "wbox_info",
-      "dma_info",
-      "proxydma_info",
-   };
-
-  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
-
-  /* Determine list of SPU ids.  */
-  gdb::optional<gdb::byte_vector>
-    spu_ids = target_read_alloc (current_top_target (),
-				 TARGET_OBJECT_SPU, NULL);
-
-  if (!spu_ids)
-    return note_data;
-
-  /* Generate corefile notes for each SPU file.  */
-  for (size_t i = 0; i < spu_ids->size (); i += 4)
-    {
-      int fd = extract_unsigned_integer (spu_ids->data () + i, 4, byte_order);
-
-      for (size_t j = 0; j < sizeof (spu_files) / sizeof (spu_files[0]); j++)
-	{
-	  char annex[32], note_name[32];
-
-	  xsnprintf (annex, sizeof annex, "%d/%s", fd, spu_files[j]);
-	  gdb::optional<gdb::byte_vector> spu_data
-	    = target_read_alloc (current_top_target (), TARGET_OBJECT_SPU, annex);
-
-	  if (spu_data && !spu_data->empty ())
-	    {
-	      xsnprintf (note_name, sizeof note_name, "SPU/%s", annex);
-	      note_data = elfcore_write_note (obfd, note_data, note_size,
-					      note_name, NT_SPU,
-					      spu_data->data (),
-					      spu_data->size ());
-
-	      if (!note_data)
-		return nullptr;
-	    }
-	}
-    }
-
-  return note_data;
-}
-
 /* This is used to pass information from
    linux_make_mappings_corefile_notes through
    linux_find_memory_regions_full.  */
@@ -2008,11 +1941,6 @@ linux_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size)
 	return NULL;
     }
 
-  /* SPU information.  */
-  note_data = linux_spu_make_corefile_notes (obfd, note_data, note_size);
-  if (!note_data)
-    return NULL;
-
   /* File mappings.  */
   note_data = linux_make_mappings_corefile_notes (gdbarch, obfd,
 						  note_data, note_size);
diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h
index f1561b3b35..508395cdb2 100644
--- a/gdb/nat/ppc-linux.h
+++ b/gdb/nat/ppc-linux.h
@@ -33,9 +33,6 @@
    If they aren't, we can provide them ourselves (their values are fixed
    because they are part of the kernel ABI).  They are used in the AT_HWCAP
    entry of the AUXV.  */
-#ifndef PPC_FEATURE_CELL
-#define PPC_FEATURE_CELL 0x00010000
-#endif
 #ifndef PPC_FEATURE_BOOKE
 #define PPC_FEATURE_BOOKE 0x00008000
 #endif
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
index deb31d4989..53406f61c8 100644
--- a/gdb/ppc-linux-nat.c
+++ b/gdb/ppc-linux-nat.c
@@ -2646,9 +2646,6 @@ ppc_linux_nat_target::read_description ()
 	perror_with_name (_("Unable to fetch AltiVec registers"));
     }
 
-  if (hwcap & PPC_FEATURE_CELL)
-    features.cell = true;
-
   features.isa205 = ppc_linux_has_isa205 (hwcap);
 
   if ((hwcap2 & PPC_FEATURE2_DSCR)
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index c6181c9dd4..ce3c727371 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -31,7 +31,6 @@
 #include "osabi.h"
 #include "regset.h"
 #include "solib-svr4.h"
-#include "solib-spu.h"
 #include "solib.h"
 #include "solist.h"
 #include "ppc-tdep.h"
@@ -48,7 +47,6 @@
 #include "elf/common.h"
 #include "elf/ppc64.h"
 #include "arch-utils.h"
-#include "spu-tdep.h"
 #include "xml-syscall.h"
 #include "linux-tdep.h"
 #include "linux-record.h"
@@ -66,7 +64,6 @@
 
 #include "features/rs6000/powerpc-32l.c"
 #include "features/rs6000/powerpc-altivec32l.c"
-#include "features/rs6000/powerpc-cell32l.c"
 #include "features/rs6000/powerpc-vsx32l.c"
 #include "features/rs6000/powerpc-isa205-32l.c"
 #include "features/rs6000/powerpc-isa205-altivec32l.c"
@@ -76,7 +73,6 @@
 #include "features/rs6000/powerpc-isa207-htm-vsx32l.c"
 #include "features/rs6000/powerpc-64l.c"
 #include "features/rs6000/powerpc-altivec64l.c"
-#include "features/rs6000/powerpc-cell64l.c"
 #include "features/rs6000/powerpc-vsx64l.c"
 #include "features/rs6000/powerpc-isa205-64l.c"
 #include "features/rs6000/powerpc-isa205-altivec64l.c"
@@ -1555,19 +1551,12 @@ ppc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
     regcache_cooked_write_unsigned (regcache, PPC_TRAP_REGNUM, -1);
 }
 
-static int
-ppc_linux_spu_section (bfd *abfd, asection *asect, void *user_data)
-{
-  return startswith (bfd_section_name (asect), "SPU/");
-}
-
 static const struct target_desc *
 ppc_linux_core_read_description (struct gdbarch *gdbarch,
 				 struct target_ops *target,
 				 bfd *abfd)
 {
   struct ppc_linux_features features = ppc_linux_no_features;
-  asection *cell = bfd_sections_find_if (abfd, ppc_linux_spu_section, NULL);
   asection *altivec = bfd_get_section_by_name (abfd, ".reg-ppc-vmx");
   asection *vsx = bfd_get_section_by_name (abfd, ".reg-ppc-vsx");
   asection *section = bfd_get_section_by_name (abfd, ".reg");
@@ -1592,9 +1581,6 @@ ppc_linux_core_read_description (struct gdbarch *gdbarch,
       return NULL;
     }
 
-  if (cell)
-    features.cell = true;
-
   if (altivec)
     features.altivec = true;
 
@@ -1743,287 +1729,6 @@ ppc_stap_parse_special_token (struct gdbarch *gdbarch,
   return 1;
 }
 
-/* Cell/B.E. active SPE context tracking support.  */
-
-static struct objfile *spe_context_objfile = NULL;
-static CORE_ADDR spe_context_lm_addr = 0;
-static CORE_ADDR spe_context_offset = 0;
-
-static ptid_t spe_context_cache_ptid;
-static CORE_ADDR spe_context_cache_address;
-
-/* Hook into inferior_created, solib_loaded, and solib_unloaded observers
-   to track whether we've loaded a version of libspe2 (as static or dynamic
-   library) that provides the __spe_current_active_context variable.  */
-static void
-ppc_linux_spe_context_lookup (struct objfile *objfile)
-{
-  struct bound_minimal_symbol sym;
-
-  if (!objfile)
-    {
-      spe_context_objfile = NULL;
-      spe_context_lm_addr = 0;
-      spe_context_offset = 0;
-      spe_context_cache_ptid = minus_one_ptid;
-      spe_context_cache_address = 0;
-      return;
-    }
-
-  sym = lookup_minimal_symbol ("__spe_current_active_context", NULL, objfile);
-  if (sym.minsym)
-    {
-      spe_context_objfile = objfile;
-      spe_context_lm_addr = svr4_fetch_objfile_link_map (objfile);
-      spe_context_offset = MSYMBOL_VALUE_RAW_ADDRESS (sym.minsym);
-      spe_context_cache_ptid = minus_one_ptid;
-      spe_context_cache_address = 0;
-      return;
-    }
-}
-
-static void
-ppc_linux_spe_context_inferior_created (struct target_ops *t, int from_tty)
-{
-  ppc_linux_spe_context_lookup (NULL);
-  for (objfile *objfile : current_program_space->objfiles ())
-    ppc_linux_spe_context_lookup (objfile);
-}
-
-static void
-ppc_linux_spe_context_solib_loaded (struct so_list *so)
-{
-  if (strstr (so->so_original_name, "/libspe") != NULL)
-    {
-      solib_read_symbols (so, 0);
-      ppc_linux_spe_context_lookup (so->objfile);
-    }
-}
-
-static void
-ppc_linux_spe_context_solib_unloaded (struct so_list *so)
-{
-  if (so->objfile == spe_context_objfile)
-    ppc_linux_spe_context_lookup (NULL);
-}
-
-/* Retrieve contents of the N'th element in the current thread's
-   linked SPE context list into ID and NPC.  Return the address of
-   said context element, or 0 if not found.  */
-static CORE_ADDR
-ppc_linux_spe_context (int wordsize, enum bfd_endian byte_order,
-		       int n, int *id, unsigned int *npc)
-{
-  CORE_ADDR spe_context = 0;
-  gdb_byte buf[16];
-  int i;
-
-  /* Quick exit if we have not found __spe_current_active_context.  */
-  if (!spe_context_objfile)
-    return 0;
-
-  /* Look up cached address of thread-local variable.  */
-  if (spe_context_cache_ptid != inferior_ptid)
-    {
-      struct target_ops *target = current_top_target ();
-
-      try
-	{
-	  /* We do not call target_translate_tls_address here, because
-	     svr4_fetch_objfile_link_map may invalidate the frame chain,
-	     which must not do while inside a frame sniffer.
-
-	     Instead, we have cached the lm_addr value, and use that to
-	     directly call the target's to_get_thread_local_address.  */
-	  spe_context_cache_address
-	    = target->get_thread_local_address (inferior_ptid,
-						spe_context_lm_addr,
-						spe_context_offset);
-	  spe_context_cache_ptid = inferior_ptid;
-	}
-
-      catch (const gdb_exception_error &ex)
-	{
-	  return 0;
-	}
-    }
-
-  /* Read variable value.  */
-  if (target_read_memory (spe_context_cache_address, buf, wordsize) == 0)
-    spe_context = extract_unsigned_integer (buf, wordsize, byte_order);
-
-  /* Cyle through to N'th linked list element.  */
-  for (i = 0; i < n && spe_context; i++)
-    if (target_read_memory (spe_context + align_up (12, wordsize),
-			    buf, wordsize) == 0)
-      spe_context = extract_unsigned_integer (buf, wordsize, byte_order);
-    else
-      spe_context = 0;
-
-  /* Read current context.  */
-  if (spe_context
-      && target_read_memory (spe_context, buf, 12) != 0)
-    spe_context = 0;
-
-  /* Extract data elements.  */
-  if (spe_context)
-    {
-      if (id)
-	*id = extract_signed_integer (buf, 4, byte_order);
-      if (npc)
-	*npc = extract_unsigned_integer (buf + 4, 4, byte_order);
-    }
-
-  return spe_context;
-}
-
-
-/* Cell/B.E. cross-architecture unwinder support.  */
-
-struct ppu2spu_cache
-{
-  struct frame_id frame_id;
-  readonly_detached_regcache *regcache;
-};
-
-static struct gdbarch *
-ppu2spu_prev_arch (struct frame_info *this_frame, void **this_cache)
-{
-  struct ppu2spu_cache *cache = (struct ppu2spu_cache *) *this_cache;
-  return cache->regcache->arch ();
-}
-
-static void
-ppu2spu_this_id (struct frame_info *this_frame,
-		 void **this_cache, struct frame_id *this_id)
-{
-  struct ppu2spu_cache *cache = (struct ppu2spu_cache *) *this_cache;
-  *this_id = cache->frame_id;
-}
-
-static struct value *
-ppu2spu_prev_register (struct frame_info *this_frame,
-		       void **this_cache, int regnum)
-{
-  struct ppu2spu_cache *cache = (struct ppu2spu_cache *) *this_cache;
-  struct gdbarch *gdbarch = cache->regcache->arch ();
-  gdb_byte *buf;
-
-  buf = (gdb_byte *) alloca (register_size (gdbarch, regnum));
-
-  cache->regcache->cooked_read (regnum, buf);
-  return frame_unwind_got_bytes (this_frame, regnum, buf);
-}
-
-struct ppu2spu_data
-{
-  struct gdbarch *gdbarch;
-  int id;
-  unsigned int npc;
-  gdb_byte gprs[128*16];
-};
-
-static enum register_status
-ppu2spu_unwind_register (ppu2spu_data *data, int regnum, gdb_byte *buf)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (data->gdbarch);
-
-  if (regnum >= 0 && regnum < SPU_NUM_GPRS)
-    memcpy (buf, data->gprs + 16*regnum, 16);
-  else if (regnum == SPU_ID_REGNUM)
-    store_unsigned_integer (buf, 4, byte_order, data->id);
-  else if (regnum == SPU_PC_REGNUM)
-    store_unsigned_integer (buf, 4, byte_order, data->npc);
-  else
-    return REG_UNAVAILABLE;
-
-  return REG_VALID;
-}
-
-static int
-ppu2spu_sniffer (const struct frame_unwind *self,
-		 struct frame_info *this_frame, void **this_prologue_cache)
-{
-  struct gdbarch *gdbarch = get_frame_arch (this_frame);
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  struct ppu2spu_data data;
-  struct frame_info *fi;
-  CORE_ADDR base, func, backchain, spe_context;
-  gdb_byte buf[8];
-  int n = 0;
-
-  /* Count the number of SPU contexts already in the frame chain.  */
-  for (fi = get_next_frame (this_frame); fi; fi = get_next_frame (fi))
-    if (get_frame_type (fi) == ARCH_FRAME
-	&& gdbarch_bfd_arch_info (get_frame_arch (fi))->arch == bfd_arch_spu)
-      n++;
-
-  base = get_frame_sp (this_frame);
-  func = get_frame_pc (this_frame);
-  if (target_read_memory (base, buf, tdep->wordsize))
-    return 0;
-  backchain = extract_unsigned_integer (buf, tdep->wordsize, byte_order);
-
-  spe_context = ppc_linux_spe_context (tdep->wordsize, byte_order,
-				       n, &data.id, &data.npc);
-  if (spe_context && base <= spe_context && spe_context < backchain)
-    {
-      char annex[32];
-
-      /* Find gdbarch for SPU.  */
-      struct gdbarch_info info;
-      gdbarch_info_init (&info);
-      info.bfd_arch_info = bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu);
-      info.byte_order = BFD_ENDIAN_BIG;
-      info.osabi = GDB_OSABI_LINUX;
-      info.id = &data.id;
-      data.gdbarch = gdbarch_find_by_info (info);
-      if (!data.gdbarch)
-	return 0;
-
-      xsnprintf (annex, sizeof annex, "%d/regs", data.id);
-      if (target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-		       data.gprs, 0, sizeof data.gprs)
-	  == sizeof data.gprs)
-	{
-	  auto cooked_read = [&data] (int regnum, gdb_byte *out_buf)
-	    {
-	      return ppu2spu_unwind_register (&data, regnum, out_buf);
-	    };
-	  struct ppu2spu_cache *cache
-	    = FRAME_OBSTACK_CALLOC (1, struct ppu2spu_cache);
-	  std::unique_ptr<readonly_detached_regcache> regcache
-	    (new readonly_detached_regcache (data.gdbarch, cooked_read));
-
-	  cache->frame_id = frame_id_build (base, func);
-	  cache->regcache = regcache.release ();
-	  *this_prologue_cache = cache;
-	  return 1;
-	}
-    }
-
-  return 0;
-}
-
-static void
-ppu2spu_dealloc_cache (struct frame_info *self, void *this_cache)
-{
-  struct ppu2spu_cache *cache = (struct ppu2spu_cache *) this_cache;
-  delete cache->regcache;
-}
-
-static const struct frame_unwind ppu2spu_unwind = {
-  ARCH_FRAME,
-  default_frame_unwind_stop_reason,
-  ppu2spu_this_id,
-  ppu2spu_prev_register,
-  NULL,
-  ppu2spu_sniffer,
-  ppu2spu_dealloc_cache,
-  ppu2spu_prev_arch,
-};
-
 /* Initialize linux_record_tdep if not initialized yet.
    WORDSIZE is 4 or 8 for 32- or 64-bit PowerPC Linux respectively.
    Sizes of data structures are initialized accordingly.  */
@@ -2439,21 +2144,6 @@ ppc_linux_init_abi (struct gdbarch_info info,
 	}
     }
 
-  /* Enable Cell/B.E. if supported by the target.  */
-  if (tdesc_compatible_p (info.target_desc,
-			  bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu)))
-    {
-      /* Cell/B.E. multi-architecture support.  */
-      set_spu_solib_ops (gdbarch);
-
-      /* Cell/B.E. cross-architecture unwinder support.  */
-      frame_unwind_prepend_unwinder (gdbarch, &ppu2spu_unwind);
-
-      /* We need to support more than "addr_bit" significant address bits
-         in order to support SPUADDR_ADDR encoded values.  */
-      set_gdbarch_significant_addr_bit (gdbarch, 64);
-    }
-
   set_gdbarch_displaced_step_location (gdbarch,
 				       linux_displaced_step_location);
 
@@ -2478,15 +2168,9 @@ _initialize_ppc_linux_tdep (void)
   gdbarch_register_osabi (bfd_arch_rs6000, bfd_mach_rs6k, GDB_OSABI_LINUX,
                          ppc_linux_init_abi);
 
-  /* Attach to observers to track __spe_current_active_context.  */
-  gdb::observers::inferior_created.attach (ppc_linux_spe_context_inferior_created);
-  gdb::observers::solib_loaded.attach (ppc_linux_spe_context_solib_loaded);
-  gdb::observers::solib_unloaded.attach (ppc_linux_spe_context_solib_unloaded);
-
   /* Initialize the Linux target descriptions.  */
   initialize_tdesc_powerpc_32l ();
   initialize_tdesc_powerpc_altivec32l ();
-  initialize_tdesc_powerpc_cell32l ();
   initialize_tdesc_powerpc_vsx32l ();
   initialize_tdesc_powerpc_isa205_32l ();
   initialize_tdesc_powerpc_isa205_altivec32l ();
@@ -2496,7 +2180,6 @@ _initialize_ppc_linux_tdep (void)
   initialize_tdesc_powerpc_isa207_htm_vsx32l ();
   initialize_tdesc_powerpc_64l ();
   initialize_tdesc_powerpc_altivec64l ();
-  initialize_tdesc_powerpc_cell64l ();
   initialize_tdesc_powerpc_vsx64l ();
   initialize_tdesc_powerpc_isa205_64l ();
   initialize_tdesc_powerpc_isa205_altivec64l ();
diff --git a/gdb/regcache.c b/gdb/regcache.c
index 7184c74842..2e8b52ee75 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -1605,10 +1605,7 @@ cooked_read_test (struct gdbarch *gdbarch)
 
       SELF_CHECK (mock_target.fetch_registers_called == 0);
       SELF_CHECK (mock_target.store_registers_called == 0);
-
-      /* Some SPU pseudo registers are got via TARGET_OBJECT_SPU.  */
-      if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
-	SELF_CHECK (mock_target.xfer_partial_called == 0);
+      SELF_CHECK (mock_target.xfer_partial_called == 0);
 
       mock_target.reset ();
     }
@@ -1724,16 +1721,12 @@ cooked_write_test (struct gdbarch *gdbarch)
 
       auto bfd_arch = gdbarch_bfd_arch_info (gdbarch)->arch;
 
-      if ((bfd_arch == bfd_arch_sparc
-	   /* SPARC64_CWP_REGNUM, SPARC64_PSTATE_REGNUM,
-	      SPARC64_ASI_REGNUM and SPARC64_CCR_REGNUM are hard to test.  */
-	   && gdbarch_ptr_bit (gdbarch) == 64
-	   && (regnum >= gdbarch_num_regs (gdbarch)
-	       && regnum <= gdbarch_num_regs (gdbarch) + 4))
-	  || (bfd_arch == bfd_arch_spu
-	      /* SPU pseudo registers except SPU_SP_REGNUM are got by
-		 TARGET_OBJECT_SPU.  */
-	      && regnum >= gdbarch_num_regs (gdbarch) && regnum != 130))
+      if (bfd_arch == bfd_arch_sparc
+	  /* SPARC64_CWP_REGNUM, SPARC64_PSTATE_REGNUM,
+	     SPARC64_ASI_REGNUM and SPARC64_CCR_REGNUM are hard to test.  */
+	  && gdbarch_ptr_bit (gdbarch) == 64
+	  && (regnum >= gdbarch_num_regs (gdbarch)
+	      && regnum <= gdbarch_num_regs (gdbarch) + 4))
 	continue;
 
       std::vector<gdb_byte> expected (register_size (gdbarch, regnum), 0);
diff --git a/gdb/regformats/reg-spu.dat b/gdb/regformats/reg-spu.dat
deleted file mode 100644
index fb69119cc6..0000000000
--- a/gdb/regformats/reg-spu.dat
+++ /dev/null
@@ -1,133 +0,0 @@
-name:spu
-xmlarch:spu
-expedite:r0,r1,npc
-128:r0
-128:r1
-128:r2
-128:r3
-128:r4
-128:r5
-128:r6
-128:r7
-128:r8
-128:r9
-128:r10
-128:r11
-128:r12
-128:r13
-128:r14
-128:r15
-128:r16
-128:r17
-128:r18
-128:r19
-128:r20
-128:r21
-128:r22
-128:r23
-128:r24
-128:r25
-128:r26
-128:r27
-128:r28
-128:r29
-128:r30
-128:r31
-128:r32
-128:r33
-128:r34
-128:r35
-128:r36
-128:r37
-128:r38
-128:r39
-128:r40
-128:r41
-128:r42
-128:r43
-128:r44
-128:r45
-128:r46
-128:r47
-128:r48
-128:r49
-128:r50
-128:r51
-128:r52
-128:r53
-128:r54
-128:r55
-128:r56
-128:r57
-128:r58
-128:r59
-128:r60
-128:r61
-128:r62
-128:r63
-128:r64
-128:r65
-128:r66
-128:r67
-128:r68
-128:r69
-128:r70
-128:r71
-128:r72
-128:r73
-128:r74
-128:r75
-128:r76
-128:r77
-128:r78
-128:r79
-128:r80
-128:r81
-128:r82
-128:r83
-128:r84
-128:r85
-128:r86
-128:r87
-128:r88
-128:r89
-128:r90
-128:r91
-128:r92
-128:r93
-128:r94
-128:r95
-128:r96
-128:r97
-128:r98
-128:r99
-128:r100
-128:r101
-128:r102
-128:r103
-128:r104
-128:r105
-128:r106
-128:r107
-128:r108
-128:r109
-128:r110
-128:r111
-128:r112
-128:r113
-128:r114
-128:r115
-128:r116
-128:r117
-128:r118
-128:r119
-128:r120
-128:r121
-128:r122
-128:r123
-128:r124
-128:r125
-128:r126
-128:r127
-32:id
-32:npc
diff --git a/gdb/regformats/rs6000/powerpc-cell32l.dat b/gdb/regformats/rs6000/powerpc-cell32l.dat
deleted file mode 100644
index bd28505495..0000000000
--- a/gdb/regformats/rs6000/powerpc-cell32l.dat
+++ /dev/null
@@ -1,112 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-cell32l.xml
-name:powerpc_cell32l
-xmltarget:powerpc-cell32l.xml
-expedite:r1,pc,r0,orig_r3,r4
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-32:fpscr
-32:orig_r3
-32:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
diff --git a/gdb/regformats/rs6000/powerpc-cell64l.dat b/gdb/regformats/rs6000/powerpc-cell64l.dat
deleted file mode 100644
index b5b162eced..0000000000
--- a/gdb/regformats/rs6000/powerpc-cell64l.dat
+++ /dev/null
@@ -1,112 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-cell64l.xml
-name:powerpc_cell64l
-xmltarget:powerpc-cell64l.xml
-expedite:r1,pc,r0,orig_r3,r4
-64:r0
-64:r1
-64:r2
-64:r3
-64:r4
-64:r5
-64:r6
-64:r7
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:r16
-64:r17
-64:r18
-64:r19
-64:r20
-64:r21
-64:r22
-64:r23
-64:r24
-64:r25
-64:r26
-64:r27
-64:r28
-64:r29
-64:r30
-64:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-64:pc
-64:msr
-32:cr
-64:lr
-64:ctr
-32:xer
-32:fpscr
-64:orig_r3
-64:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
diff --git a/gdb/remote.c b/gdb/remote.c
index 980864e070..21160e13ac 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -1970,8 +1970,6 @@ enum {
   PACKET_qXfer_libraries,
   PACKET_qXfer_libraries_svr4,
   PACKET_qXfer_memory_map,
-  PACKET_qXfer_spu_read,
-  PACKET_qXfer_spu_write,
   PACKET_qXfer_osdata,
   PACKET_qXfer_threads,
   PACKET_qXfer_statictrace_read,
@@ -5083,10 +5081,6 @@ static const struct protocol_feature remote_protocol_features[] = {
     remote_supported_packet, PACKET_augmented_libraries_svr4_read_feature },
   { "qXfer:memory-map:read", PACKET_DISABLE, remote_supported_packet,
     PACKET_qXfer_memory_map },
-  { "qXfer:spu:read", PACKET_DISABLE, remote_supported_packet,
-    PACKET_qXfer_spu_read },
-  { "qXfer:spu:write", PACKET_DISABLE, remote_supported_packet,
-    PACKET_qXfer_spu_write },
   { "qXfer:osdata:read", PACKET_DISABLE, remote_supported_packet,
     PACKET_qXfer_osdata },
   { "qXfer:threads:read", PACKET_DISABLE, remote_supported_packet,
@@ -10858,19 +10852,6 @@ remote_target::xfer_partial (enum target_object object,
 				  xfered_len);
     }
 
-  /* Handle SPU memory using qxfer packets.  */
-  if (object == TARGET_OBJECT_SPU)
-    {
-      if (readbuf)
-	return remote_read_qxfer ("spu", annex, readbuf, offset, len,
-				  xfered_len, &remote_protocol_packets
-				  [PACKET_qXfer_spu_read]);
-      else
-	return remote_write_qxfer ("spu", annex, writebuf, offset, len,
-				   xfered_len, &remote_protocol_packets
-				   [PACKET_qXfer_spu_write]);
-    }
-
   /* Handle extra signal info using qxfer packets.  */
   if (object == TARGET_OBJECT_SIGNAL_INFO)
     {
@@ -14481,12 +14462,6 @@ Show the maximum size of the address (in bits) in a memory packet."), NULL,
   add_packet_config_cmd (&remote_protocol_packets[PACKET_qXfer_memory_map],
 			 "qXfer:memory-map:read", "memory-map", 0);
 
-  add_packet_config_cmd (&remote_protocol_packets[PACKET_qXfer_spu_read],
-                         "qXfer:spu:read", "read-spu-object", 0);
-
-  add_packet_config_cmd (&remote_protocol_packets[PACKET_qXfer_spu_write],
-                         "qXfer:spu:write", "write-spu-object", 0);
-
   add_packet_config_cmd (&remote_protocol_packets[PACKET_qXfer_osdata],
                         "qXfer:osdata:read", "osdata", 0);
 
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 47a232f6c6..9123a3dc33 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -6141,16 +6141,6 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   int num_pseudoregs = 0;
   int cur_reg;
 
-  /* INFO may refer to a binary that is not of the PowerPC architecture,
-     e.g. when debugging a stand-alone SPE executable on a Cell/B.E. system.
-     In this case, we must not attempt to infer properties of the (PowerPC
-     side) of the target system from properties of that executable.  Trust
-     the target description instead.  */
-  if (info.abfd
-      && bfd_get_arch (info.abfd) != bfd_arch_powerpc
-      && bfd_get_arch (info.abfd) != bfd_arch_rs6000)
-    info.abfd = NULL;
-
   from_xcoff_exec = info.abfd && info.abfd->format == bfd_object &&
     bfd_get_flavour (info.abfd) == bfd_target_xcoff_flavour;
 
diff --git a/gdb/solib-spu.c b/gdb/solib-spu.c
deleted file mode 100644
index 49e470adb6..0000000000
--- a/gdb/solib-spu.c
+++ /dev/null
@@ -1,547 +0,0 @@
-/* Cell SPU GNU/Linux support -- shared library handling.
-   Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
-   Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#include "defs.h"
-#include "solib-spu.h"
-#include "gdbcore.h"
-#include <sys/stat.h>
-#include "arch-utils.h"
-#include "bfd.h"
-#include "symtab.h"
-#include "solib.h"
-#include "solib-svr4.h"
-#include "solist.h"
-#include "inferior.h"
-#include "objfiles.h"
-#include "observable.h"
-#include "breakpoint.h"
-#include "gdbthread.h"
-#include "gdb_bfd.h"
-
-#include "spu-tdep.h"
-
-/* Highest SPE id (file handle) the inferior may have.  */
-#define MAX_SPE_FD 1024
-
-/* Stand-alone SPE executable?  */
-#define spu_standalone_p() \
-  (symfile_objfile && symfile_objfile->obfd \
-   && bfd_get_arch (symfile_objfile->obfd) == bfd_arch_spu)
-
-
-/* Relocate main SPE executable.  */
-static void
-spu_relocate_main_executable (int spufs_fd)
-{
-  struct section_offsets *new_offsets;
-  int i;
-
-  if (symfile_objfile == NULL)
-    return;
-
-  new_offsets = XALLOCAVEC (struct section_offsets,
-			    symfile_objfile->num_sections);
-
-  for (i = 0; i < symfile_objfile->num_sections; i++)
-    new_offsets->offsets[i] = SPUADDR (spufs_fd, 0);
-
-  objfile_relocate (symfile_objfile, new_offsets);
-}
-
-/* When running a stand-alone SPE executable, we may need to skip one more
-   exec event on startup, to get past the binfmt_misc loader.  */
-static void
-spu_skip_standalone_loader (void)
-{
-  if (target_has_execution && !current_inferior ()->attach_flag)
-    {
-      struct target_waitstatus ws;
-
-      /* Only some kernels report an extra SIGTRAP with the binfmt_misc
-	 loader; others do not.  In addition, if we have attached to an
-	 already running inferior instead of starting a new one, we will
-	 not see the extra SIGTRAP -- and we cannot readily distinguish
-	 the two cases, in particular with the extended-remote target.
-
-	 Thus we issue a single-step here.  If no extra SIGTRAP was pending,
-	 this will step past the first instruction of the stand-alone SPE
-	 executable loader, but we don't care about that.  */
-
-      inferior_thread ()->control.in_infcall = 1; /* Suppress MI messages.  */
-
-      target_resume (inferior_ptid, 1, GDB_SIGNAL_0);
-      target_wait (minus_one_ptid, &ws, 0);
-      set_executing (minus_one_ptid, 0);
-
-      inferior_thread ()->control.in_infcall = 0;
-    }
-}
-
-static objfile_key<CORE_ADDR, gdb::noop_deleter<CORE_ADDR>>
-  ocl_program_data_key;
-
-/* Appends OpenCL programs to the list of `struct so_list' objects.  */
-static void
-append_ocl_sos (struct so_list **link_ptr)
-{
-  CORE_ADDR *ocl_program_addr_base;
-
-  for (objfile *objfile : current_program_space->objfiles ())
-    {
-      ocl_program_addr_base = ocl_program_data_key.get (objfile);
-      if (ocl_program_addr_base != NULL)
-        {
-	  enum bfd_endian byte_order = bfd_big_endian (objfile->obfd)?
-					 BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
-	  try
-	    {
-	      CORE_ADDR data =
-		read_memory_unsigned_integer (*ocl_program_addr_base,
-					      sizeof (CORE_ADDR),
-					      byte_order);
-	      if (data != 0x0)
-		{
-		  struct so_list *newobj;
-
-		  /* Allocate so_list structure.  */
-		  newobj = XCNEW (struct so_list);
-
-		  /* Encode FD and object ID in path name.  */
-		  xsnprintf (newobj->so_name, sizeof newobj->so_name, "@%s <%d>",
-			     hex_string (data),
-			     SPUADDR_SPU (*ocl_program_addr_base));
-		  strcpy (newobj->so_original_name, newobj->so_name);
-
-		  *link_ptr = newobj;
-		  link_ptr = &newobj->next;
-		}
-	    }
-	  catch (const gdb_exception &ex)
-	    {
-	      /* Ignore memory errors.  */
-	      switch (ex.error)
-		{
-		case MEMORY_ERROR:
-		  break;
-		default:
-		  throw;
-		  break;
-		}
-	    }
-	}
-    }
-}
-
-/* Build a list of `struct so_list' objects describing the shared
-   objects currently loaded in the inferior.  */
-static struct so_list *
-spu_current_sos (void)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
-  struct so_list *head;
-  struct so_list **link_ptr;
-
-  gdb_byte buf[MAX_SPE_FD * 4];
-  int i, size;
-
-  /* First, retrieve the SVR4 shared library list.  */
-  head = svr4_so_ops.current_sos ();
-
-  /* Append our libraries to the end of the list.  */
-  for (link_ptr = &head; *link_ptr; link_ptr = &(*link_ptr)->next)
-    ;
-
-  /* Determine list of SPU ids.  */
-  size = target_read (current_top_target (), TARGET_OBJECT_SPU, NULL,
-		      buf, 0, sizeof buf);
-
-  /* Do not add stand-alone SPE executable context as shared library,
-     but relocate main SPE executable objfile.  */
-  if (spu_standalone_p ())
-    {
-      if (size == 4)
-	{
-	  int fd = extract_unsigned_integer (buf, 4, byte_order);
-
-	  spu_relocate_main_executable (fd);
-
-	  /* Re-enable breakpoints after main SPU context was established;
-	     see also comments in spu_solib_create_inferior_hook.  */
-	  enable_breakpoints_after_startup ();
-	}
-
-      return head;
-    }
-
-  /* Create an so_list entry for each SPU id.  */
-  for (i = 0; i < size; i += 4)
-    {
-      int fd = extract_unsigned_integer (buf + i, 4, byte_order);
-      struct so_list *newobj;
-
-      unsigned long long addr;
-      char annex[32], id[100];
-      int len;
-
-      /* Read object ID.  There's a race window where the inferior may have
-	 already created the SPE context, but not installed the object-id
-	 yet.  Skip such entries; we'll be back for them later.  */
-      xsnprintf (annex, sizeof annex, "%d/object-id", fd);
-      len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-			 (gdb_byte *) id, 0, sizeof id);
-      if (len <= 0 || len >= sizeof id)
-	continue;
-      id[len] = 0;
-      if (sscanf (id, "0x%llx", &addr) != 1 || !addr)
-	continue;
-
-      /* Allocate so_list structure.  */
-      newobj = XCNEW (struct so_list);
-
-      /* Encode FD and object ID in path name.  Choose the name so as not
-	 to conflict with any (normal) SVR4 library path name.  */
-      xsnprintf (newobj->so_name, sizeof newobj->so_name, "@%s <%d>",
-		 hex_string (addr), fd);
-      strcpy (newobj->so_original_name, newobj->so_name);
-
-      *link_ptr = newobj;
-      link_ptr = &newobj->next;
-    }
-
-  /* Append OpenCL sos.  */
-  append_ocl_sos (link_ptr);
-
-  return head;
-}
-
-/* Free so_list information.  */
-static void
-spu_free_so (struct so_list *so)
-{
-  if (so->so_original_name[0] != '@')
-    svr4_so_ops.free_so (so);
-}
-
-/* Relocate section addresses.  */
-static void
-spu_relocate_section_addresses (struct so_list *so,
-				struct target_section *sec)
-{
-  if (so->so_original_name[0] != '@')
-    svr4_so_ops.relocate_section_addresses (so, sec);
-  else
-    {
-      unsigned long long addr;
-      int fd;
-
-      /* Set addr_low/high to just LS offset for display.  */
-      if (so->addr_low == 0 && so->addr_high == 0
-          && strcmp (sec->the_bfd_section->name, ".text") == 0)
-        {
-          so->addr_low = sec->addr;
-          so->addr_high = sec->endaddr;
-        }
-
-      /* Decode object ID.  */
-      if (sscanf (so->so_original_name, "@0x%llx <%d>", &addr, &fd) != 2)
-	internal_error (__FILE__, __LINE__, "bad object ID");
-
-      sec->addr = SPUADDR (fd, sec->addr);
-      sec->endaddr = SPUADDR (fd, sec->endaddr);
-    }
-}
-
-
-/* Inferior memory should contain an SPE executable image at location ADDR.
-   Allocate a BFD representing that executable.  Return NULL on error.  */
-
-static void *
-spu_bfd_iovec_open (bfd *nbfd, void *open_closure)
-{
-  return open_closure;
-}
-
-static int
-spu_bfd_iovec_close (bfd *nbfd, void *stream)
-{
-  xfree (stream);
-
-  /* Zero means success.  */
-  return 0;
-}
-
-static file_ptr
-spu_bfd_iovec_pread (bfd *abfd, void *stream, void *buf,
-                     file_ptr nbytes, file_ptr offset)
-{
-  CORE_ADDR addr = *(CORE_ADDR *)stream;
-  int ret;
-
-  ret = target_read_memory (addr + offset, (gdb_byte *) buf, nbytes);
-  if (ret != 0)
-    {
-      bfd_set_error (bfd_error_invalid_operation);
-      return -1;
-    }
-
-  return nbytes;
-}
-
-static int
-spu_bfd_iovec_stat (bfd *abfd, void *stream, struct stat *sb)
-{
-  /* We don't have an easy way of finding the size of embedded spu
-     images.  We could parse the in-memory ELF header and section
-     table to find the extent of the last section but that seems
-     pointless when the size is needed only for checks of other
-     parsed values in dbxread.c.  */
-  memset (sb, 0, sizeof (struct stat));
-  sb->st_size = INT_MAX;
-  return 0;
-}
-
-static gdb_bfd_ref_ptr
-spu_bfd_fopen (const char *name, CORE_ADDR addr)
-{
-  CORE_ADDR *open_closure = XNEW (CORE_ADDR);
-
-  *open_closure = addr;
-
-  gdb_bfd_ref_ptr nbfd (gdb_bfd_openr_iovec (name, "elf32-spu",
-					     spu_bfd_iovec_open, open_closure,
-					     spu_bfd_iovec_pread,
-					     spu_bfd_iovec_close,
-					     spu_bfd_iovec_stat));
-  if (nbfd == NULL)
-    return NULL;
-
-  if (!bfd_check_format (nbfd.get (), bfd_object))
-    return NULL;
-
-  return nbfd;
-}
-
-/* Open shared library BFD.  */
-static gdb_bfd_ref_ptr
-spu_bfd_open (const char *pathname)
-{
-  const char *original_name = strrchr (pathname, '@');
-  asection *spu_name;
-  unsigned long long addr;
-  int fd;
-
-  /* Handle regular SVR4 libraries.  */
-  if (!original_name)
-    return svr4_so_ops.bfd_open (pathname);
-
-  /* Decode object ID.  */
-  if (sscanf (original_name, "@0x%llx <%d>", &addr, &fd) != 2)
-    internal_error (__FILE__, __LINE__, "bad object ID");
-
-  /* Open BFD representing SPE executable.  */
-  gdb_bfd_ref_ptr abfd (spu_bfd_fopen (original_name, (CORE_ADDR) addr));
-  if (abfd == NULL)
-    error (_("Cannot read SPE executable at %s"), original_name);
-
-  /* Retrieve SPU name note.  */
-  spu_name = bfd_get_section_by_name (abfd.get (), ".note.spu_name");
-  if (spu_name)
-    {
-      int sect_size = bfd_section_size (spu_name);
-
-      if (sect_size > 20)
-	{
-	  char *buf
-	    = (char *) alloca (sect_size - 20 + strlen (original_name) + 1);
-
-	  bfd_get_section_contents (abfd.get (), spu_name, buf, 20,
-				    sect_size - 20);
-	  buf[sect_size - 20] = '\0';
-
-	  strcat (buf, original_name);
-
-	  bfd_set_filename (abfd.get (), xstrdup (buf));
-	}
-    }
-
-  return abfd;
-}
-
-/* Lookup global symbol in a SPE executable.  */
-static struct block_symbol
-spu_lookup_lib_symbol (struct objfile *objfile,
-		       const char *name,
-		       const domain_enum domain)
-{
-  if (bfd_get_arch (objfile->obfd) == bfd_arch_spu)
-    return lookup_global_symbol_from_objfile (objfile, GLOBAL_BLOCK, name,
-					      domain);
-
-  if (svr4_so_ops.lookup_lib_global_symbol != NULL)
-    return svr4_so_ops.lookup_lib_global_symbol (objfile, name, domain);
-  return {};
-}
-
-/* Enable shared library breakpoint.  */
-static int
-spu_enable_break (struct objfile *objfile)
-{
-  struct bound_minimal_symbol spe_event_sym;
-
-  /* The libspe library will call __spe_context_update_event whenever any
-     SPE context is allocated or destroyed.  */
-  spe_event_sym = lookup_minimal_symbol ("__spe_context_update_event",
-					 NULL, objfile);
-
-  /* Place a solib_event breakpoint on the symbol.  */
-  if (spe_event_sym.minsym)
-    {
-      CORE_ADDR addr = BMSYMBOL_VALUE_ADDRESS (spe_event_sym);
-
-      addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch (), addr,
-						 current_top_target ());
-      create_solib_event_breakpoint (target_gdbarch (), addr);
-      return 1;
-    }
-
-  return 0;
-}
-
-/* Enable shared library breakpoint for the
-   OpenCL runtime running on the SPU.  */
-static void
-ocl_enable_break (struct objfile *objfile)
-{
-  struct bound_minimal_symbol event_sym;
-  struct bound_minimal_symbol addr_sym;
-
-  /* The OpenCL runtime on the SPU will call __opencl_program_update_event
-     whenever an OpenCL program is loaded.  */
-  event_sym = lookup_minimal_symbol ("__opencl_program_update_event", NULL,
-				     objfile);
-  /* The PPU address of the OpenCL program can be found
-     at opencl_elf_image_address.  */
-  addr_sym = lookup_minimal_symbol ("opencl_elf_image_address", NULL, objfile);
-
-  if (event_sym.minsym && addr_sym.minsym)
-    {
-      /* Place a solib_event breakpoint on the symbol.  */
-      CORE_ADDR event_addr = BMSYMBOL_VALUE_ADDRESS (event_sym);
-      create_solib_event_breakpoint (get_objfile_arch (objfile), event_addr);
-
-      /* Store the address of the symbol that will point to OpenCL program
-         using the per-objfile private data mechanism.  */
-      if (ocl_program_data_key.get (objfile) == NULL)
-        {
-          CORE_ADDR *ocl_program_addr_base = OBSTACK_CALLOC (
-		  &objfile->objfile_obstack,
-		  objfile->sections_end - objfile->sections,
-		  CORE_ADDR);
-	  *ocl_program_addr_base = BMSYMBOL_VALUE_ADDRESS (addr_sym);
-	  ocl_program_data_key.set (objfile, ocl_program_addr_base);
-        }
-    }
-}
-
-/* Create inferior hook.  */
-static void
-spu_solib_create_inferior_hook (int from_tty)
-{
-  /* Handle SPE stand-alone executables.  */
-  if (spu_standalone_p ())
-    {
-      /* After an SPE stand-alone executable was loaded, we'll receive
-	 an additional trap due to the binfmt_misc handler.  Make sure
-	 to skip that trap.  */
-      spu_skip_standalone_loader ();
-
-      /* If the user established breakpoints before starting the inferior, GDB
-	 would attempt to insert those now.  This would fail because the SPU
-	 context has not yet been created and the SPU executable has not yet
-	 been loaded.  To prevent such failures, we disable all user-created
-	 breakpoints now; they will be re-enabled in spu_current_sos once the
-	 main SPU context has been detected.  */
-      disable_breakpoints_before_startup ();
-
-      /* A special case arises when re-starting an executable, because at
-	 this point it still resides at the relocated address range that was
-	 determined during its last execution.  We need to undo the relocation
-	 so that that multi-architecture target recognizes the stand-alone
-	 initialization special case.  */
-      spu_relocate_main_executable (-1);
-    }
-
-  /* Call SVR4 hook -- this will re-insert the SVR4 solib breakpoints.  */
-  svr4_so_ops.solib_create_inferior_hook (from_tty);
-
-  /* If the inferior is statically linked against libspe, we need to install
-     our own solib breakpoint right now.  Otherwise, it will be installed by
-     the solib_loaded observer below as soon as libspe is loaded.  */
-  spu_enable_break (NULL);
-}
-
-/* Install SPE "shared library" handling.  This is called by -tdep code
-   that wants to support SPU as a secondary architecture.  */
-void
-set_spu_solib_ops (struct gdbarch *gdbarch)
-{
-  static struct target_so_ops spu_so_ops;
-
-  /* Initialize this lazily, to avoid an initialization order
-     dependency on solib-svr4.c's _initialize routine.  */
-  if (spu_so_ops.current_sos == NULL)
-    {
-      spu_so_ops = svr4_so_ops;
-      spu_so_ops.solib_create_inferior_hook = spu_solib_create_inferior_hook;
-      spu_so_ops.relocate_section_addresses = spu_relocate_section_addresses;
-      spu_so_ops.free_so = spu_free_so;
-      spu_so_ops.current_sos = spu_current_sos;
-      spu_so_ops.bfd_open = spu_bfd_open;
-      spu_so_ops.lookup_lib_global_symbol = spu_lookup_lib_symbol;
-    }
-
-  set_solib_ops (gdbarch, &spu_so_ops);
-}
-
-/* Observer for the solib_loaded event.  Used to install our breakpoint
-   if libspe is a shared library.  */
-static void
-spu_solib_loaded (struct so_list *so)
-{
-  if (strstr (so->so_original_name, "/libspe") != NULL)
-    {
-      solib_read_symbols (so, 0);
-      spu_enable_break (so->objfile);
-    }
-  /* In case the OpenCL runtime is loaded we install a breakpoint
-     to get notified whenever an OpenCL program gets loaded.  */
-  if (strstr (so->so_name, "CLRuntimeAccelCellSPU@") != NULL)
-    {
-      solib_read_symbols (so, 0);
-      ocl_enable_break (so->objfile);
-    }
-}
-
-void
-_initialize_spu_solib (void)
-{
-  gdb::observers::solib_loaded.attach (spu_solib_loaded);
-}
-
diff --git a/gdb/solib-spu.h b/gdb/solib-spu.h
deleted file mode 100644
index a7a65336f8..0000000000
--- a/gdb/solib-spu.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Cell SPU GNU/Linux support -- shared library handling.
-
-   Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#ifndef SOLIB_SPU_H
-#define SOLIB_SPU_H
-
-extern void set_spu_solib_ops (struct gdbarch *gdbarch);
-
-#endif
diff --git a/gdb/spu-linux-nat.c b/gdb/spu-linux-nat.c
deleted file mode 100644
index 635366b4f1..0000000000
--- a/gdb/spu-linux-nat.c
+++ /dev/null
@@ -1,661 +0,0 @@
-/* SPU native-dependent code for GDB, the GNU debugger.
-   Copyright (C) 2006-2019 Free Software Foundation, Inc.
-
-   Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#include "defs.h"
-#include "gdbcore.h"
-#include "target.h"
-#include "inferior.h"
-#include "inf-child.h"
-#include "inf-ptrace.h"
-#include "regcache.h"
-#include "symfile.h"
-#include "gdbsupport/gdb_wait.h"
-#include "gdbthread.h"
-#include "gdb_bfd.h"
-
-#include "nat/gdb_ptrace.h"
-#include <asm/ptrace.h>
-#include <sys/types.h>
-
-#include "spu-tdep.h"
-
-/* PPU side system calls.  */
-#define INSTR_SC	0x44000002
-#define NR_spu_run	0x0116
-
-class spu_linux_nat_target final : public inf_ptrace_target
-{
-public:
-  void fetch_registers (struct regcache *regcache, int regnum) override;
-  void store_registers (struct regcache *regcache, int regnum) override;
-
-  void post_attach (int) override;
-  void post_startup_inferior (ptid_t) override;
-
-  ptid_t wait (ptid_t, struct target_waitstatus *, int options) override;
-
-  enum target_xfer_status xfer_partial (enum target_object object,
-					const char *annex,
-					gdb_byte *readbuf,
-					const gdb_byte *writebuf,
-					ULONGEST offset, ULONGEST len,
-					ULONGEST *xfered_len) override;
-
-  int can_use_hw_breakpoint (enum bptype, int, int) override;
-};
-
-static spu_linux_nat_target the_spu_linux_nat_target;
-
-/* Fetch PPU register REGNO.  */
-static ULONGEST
-fetch_ppc_register (int regno)
-{
-  PTRACE_TYPE_RET res;
-
-  int tid = inferior_ptid.lwp ();
-  if (tid == 0)
-    tid = inferior_ptid.pid ();
-
-#ifndef __powerpc64__
-  /* If running as a 32-bit process on a 64-bit system, we attempt
-     to get the full 64-bit register content of the target process.
-     If the PPC special ptrace call fails, we're on a 32-bit system;
-     just fall through to the regular ptrace call in that case.  */
-  {
-    gdb_byte buf[8];
-
-    errno = 0;
-    ptrace (PPC_PTRACE_PEEKUSR_3264, tid,
-	    (PTRACE_TYPE_ARG3) (regno * 8), buf);
-    if (errno == 0)
-      ptrace (PPC_PTRACE_PEEKUSR_3264, tid,
-	      (PTRACE_TYPE_ARG3) (regno * 8 + 4), buf + 4);
-    if (errno == 0)
-      return (ULONGEST) *(uint64_t *)buf;
-  }
-#endif
-
-  errno = 0;
-  res = ptrace (PT_READ_U, tid,
-	 	(PTRACE_TYPE_ARG3) (regno * sizeof (PTRACE_TYPE_RET)), 0);
-  if (errno != 0)
-    {
-      char mess[128];
-      xsnprintf (mess, sizeof mess, "reading PPC register #%d", regno);
-      perror_with_name (_(mess));
-    }
-
-  return (ULONGEST) (unsigned long) res;
-}
-
-/* Fetch WORD from PPU memory at (aligned) MEMADDR in thread TID.  */
-static int
-fetch_ppc_memory_1 (int tid, ULONGEST memaddr, PTRACE_TYPE_RET *word)
-{
-  errno = 0;
-
-#ifndef __powerpc64__
-  if (memaddr >> 32)
-    {
-      uint64_t addr_8 = (uint64_t) memaddr;
-      ptrace (PPC_PTRACE_PEEKTEXT_3264, tid, (PTRACE_TYPE_ARG3) &addr_8, word);
-    }
-  else
-#endif
-    *word = ptrace (PT_READ_I, tid, (PTRACE_TYPE_ARG3) (size_t) memaddr, 0);
-
-  return errno;
-}
-
-/* Store WORD into PPU memory at (aligned) MEMADDR in thread TID.  */
-static int
-store_ppc_memory_1 (int tid, ULONGEST memaddr, PTRACE_TYPE_RET word)
-{
-  errno = 0;
-
-#ifndef __powerpc64__
-  if (memaddr >> 32)
-    {
-      uint64_t addr_8 = (uint64_t) memaddr;
-      ptrace (PPC_PTRACE_POKEDATA_3264, tid, (PTRACE_TYPE_ARG3) &addr_8, word);
-    }
-  else
-#endif
-    ptrace (PT_WRITE_D, tid, (PTRACE_TYPE_ARG3) (size_t) memaddr, word);
-
-  return errno;
-}
-
-/* Fetch LEN bytes of PPU memory at MEMADDR to MYADDR.  */
-static int
-fetch_ppc_memory (ULONGEST memaddr, gdb_byte *myaddr, int len)
-{
-  int i, ret;
-
-  ULONGEST addr = memaddr & -(ULONGEST) sizeof (PTRACE_TYPE_RET);
-  int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
-	       / sizeof (PTRACE_TYPE_RET));
-  PTRACE_TYPE_RET *buffer;
-
-  int tid = inferior_ptid.lwp ();
-  if (tid == 0)
-    tid = inferior_ptid.pid ();
-
-  buffer = (PTRACE_TYPE_RET *) alloca (count * sizeof (PTRACE_TYPE_RET));
-  for (i = 0; i < count; i++, addr += sizeof (PTRACE_TYPE_RET))
-    {
-      ret = fetch_ppc_memory_1 (tid, addr, &buffer[i]);
-      if (ret)
-	return ret;
-    }
-
-  memcpy (myaddr,
-	  (char *) buffer + (memaddr & (sizeof (PTRACE_TYPE_RET) - 1)),
-	  len);
-
-  return 0;
-}
-
-/* Store LEN bytes from MYADDR to PPU memory at MEMADDR.  */
-static int
-store_ppc_memory (ULONGEST memaddr, const gdb_byte *myaddr, int len)
-{
-  int i, ret;
-
-  ULONGEST addr = memaddr & -(ULONGEST) sizeof (PTRACE_TYPE_RET);
-  int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
-	       / sizeof (PTRACE_TYPE_RET));
-  PTRACE_TYPE_RET *buffer;
-
-  int tid = inferior_ptid.lwp ();
-  if (tid == 0)
-    tid = inferior_ptid.pid ();
-
-  buffer = (PTRACE_TYPE_RET *) alloca (count * sizeof (PTRACE_TYPE_RET));
-
-  if (addr != memaddr || len < (int) sizeof (PTRACE_TYPE_RET))
-    {
-      ret = fetch_ppc_memory_1 (tid, addr, &buffer[0]);
-      if (ret)
-	return ret;
-    }
-
-  if (count > 1)
-    {
-      ret = fetch_ppc_memory_1 (tid, addr + (count - 1)
-					       * sizeof (PTRACE_TYPE_RET),
-				&buffer[count - 1]);
-      if (ret)
-	return ret;
-    }
-
-  memcpy ((char *) buffer + (memaddr & (sizeof (PTRACE_TYPE_RET) - 1)),
-          myaddr, len);
-
-  for (i = 0; i < count; i++, addr += sizeof (PTRACE_TYPE_RET))
-    {
-      ret = store_ppc_memory_1 (tid, addr, buffer[i]);
-      if (ret)
-	return ret;
-    }
-
-  return 0;
-}
-
-
-/* If the PPU thread is currently stopped on a spu_run system call,
-   return to FD and ADDR the file handle and NPC parameter address
-   used with the system call.  Return non-zero if successful.  */
-static int 
-parse_spufs_run (int *fd, ULONGEST *addr)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
-  gdb_byte buf[4];
-  ULONGEST pc = fetch_ppc_register (32);  /* nip */
-
-  /* Fetch instruction preceding current NIP.  */
-  if (fetch_ppc_memory (pc-4, buf, 4) != 0)
-    return 0;
-  /* It should be a "sc" instruction.  */
-  if (extract_unsigned_integer (buf, 4, byte_order) != INSTR_SC)
-    return 0;
-  /* System call number should be NR_spu_run.  */
-  if (fetch_ppc_register (0) != NR_spu_run)
-    return 0;
-
-  /* Register 3 contains fd, register 4 the NPC param pointer.  */
-  *fd = fetch_ppc_register (34);  /* orig_gpr3 */
-  *addr = fetch_ppc_register (4);
-  return 1;
-}
-
-
-/* Implement the to_xfer_partial target_ops method for TARGET_OBJECT_SPU.
-   Copy LEN bytes at OFFSET in spufs file ANNEX into/from READBUF or WRITEBUF,
-   using the /proc file system.  */
-
-static enum target_xfer_status
-spu_proc_xfer_spu (const char *annex, gdb_byte *readbuf,
-		   const gdb_byte *writebuf,
-		   ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
-{
-  char buf[128];
-  int fd = 0;
-  int ret = -1;
-  int pid = inferior_ptid.pid ();
-
-  if (!annex)
-    return TARGET_XFER_EOF;
-
-  xsnprintf (buf, sizeof buf, "/proc/%d/fd/%s", pid, annex);
-  fd = open (buf, writebuf? O_WRONLY : O_RDONLY);
-  if (fd <= 0)
-    return TARGET_XFER_E_IO;
-
-  if (offset != 0
-      && lseek (fd, (off_t) offset, SEEK_SET) != (off_t) offset)
-    {
-      close (fd);
-      return TARGET_XFER_EOF;
-    }
-
-  if (writebuf)
-    ret = write (fd, writebuf, (size_t) len);
-  else if (readbuf)
-    ret = read (fd, readbuf, (size_t) len);
-
-  close (fd);
-  if (ret < 0)
-    return TARGET_XFER_E_IO;
-  else if (ret == 0)
-    return TARGET_XFER_EOF;
-  else
-    {
-      *xfered_len = (ULONGEST) ret;
-      return TARGET_XFER_OK;
-    }
-}
-
-
-/* Inferior memory should contain an SPE executable image at location ADDR.
-   Allocate a BFD representing that executable.  Return NULL on error.  */
-
-static void *
-spu_bfd_iovec_open (struct bfd *nbfd, void *open_closure)
-{
-  return open_closure;
-}
-
-static int
-spu_bfd_iovec_close (struct bfd *nbfd, void *stream)
-{
-  xfree (stream);
-
-  /* Zero means success.  */
-  return 0;
-}
-
-static file_ptr
-spu_bfd_iovec_pread (struct bfd *abfd, void *stream, void *buf,
-	             file_ptr nbytes, file_ptr offset)
-{
-  ULONGEST addr = *(ULONGEST *)stream;
-
-  if (fetch_ppc_memory (addr + offset, (gdb_byte *)buf, nbytes) != 0)
-    {
-      bfd_set_error (bfd_error_invalid_operation);
-      return -1;
-    }
-
-  return nbytes;
-}
-
-static int
-spu_bfd_iovec_stat (struct bfd *abfd, void *stream, struct stat *sb)
-{
-  /* We don't have an easy way of finding the size of embedded spu
-     images.  We could parse the in-memory ELF header and section
-     table to find the extent of the last section but that seems
-     pointless when the size is needed only for checks of other
-     parsed values in dbxread.c.  */
-  memset (sb, 0, sizeof (struct stat));
-  sb->st_size = INT_MAX;
-  return 0;
-}
-
-static gdb_bfd_ref_ptr
-spu_bfd_open (ULONGEST addr)
-{
-  asection *spu_name;
-
-  ULONGEST *open_closure = XNEW (ULONGEST);
-  *open_closure = addr;
-
-  gdb_bfd_ref_ptr nbfd (gdb_bfd_openr_iovec ("<in-memory>", "elf32-spu",
-					     spu_bfd_iovec_open, open_closure,
-					     spu_bfd_iovec_pread,
-					     spu_bfd_iovec_close,
-					     spu_bfd_iovec_stat));
-  if (nbfd == NULL)
-    return NULL;
-
-  if (!bfd_check_format (nbfd.get (), bfd_object))
-    return NULL;
-
-  /* Retrieve SPU name note and update BFD name.  */
-  spu_name = bfd_get_section_by_name (nbfd.get (), ".note.spu_name");
-  if (spu_name)
-    {
-      int sect_size = bfd_section_size (spu_name);
-      if (sect_size > 20)
-	{
-	  char *buf = (char *)alloca (sect_size - 20 + 1);
-	  bfd_get_section_contents (nbfd.get (), spu_name, buf, 20,
-				    sect_size - 20);
-	  buf[sect_size - 20] = '\0';
-
-	  bfd_set_filename (nbfd.get (), xstrdup (buf));
-	}
-    }
-
-  return nbfd;
-}
-
-/* INFERIOR_FD is a file handle passed by the inferior to the
-   spu_run system call.  Assuming the SPE context was allocated
-   by the libspe library, try to retrieve the main SPE executable
-   file from its copy within the target process.  */
-static void
-spu_symbol_file_add_from_memory (int inferior_fd)
-{
-  ULONGEST addr;
-
-  gdb_byte id[128];
-  char annex[32];
-  ULONGEST len;
-  enum target_xfer_status status;
-
-  /* Read object ID.  */
-  xsnprintf (annex, sizeof annex, "%d/object-id", inferior_fd);
-  status = spu_proc_xfer_spu (annex, id, NULL, 0, sizeof id, &len);
-  if (status != TARGET_XFER_OK || len >= sizeof id)
-    return;
-  id[len] = 0;
-  addr = strtoulst ((const char *) id, NULL, 16);
-  if (!addr)
-    return;
-
-  /* Open BFD representing SPE executable and read its symbols.  */
-  gdb_bfd_ref_ptr nbfd (spu_bfd_open (addr));
-  if (nbfd != NULL)
-    {
-      symbol_file_add_from_bfd (nbfd.get (), bfd_get_filename (nbfd),
-				SYMFILE_VERBOSE | SYMFILE_MAINLINE,
-				NULL, 0, NULL);
-    }
-}
-
-
-/* Override the post_startup_inferior routine to continue running
-   the inferior until the first spu_run system call.  */
-void
-spu_linux_nat_target::post_startup_inferior (ptid_t ptid)
-{
-  int fd;
-  ULONGEST addr;
-
-  int tid = ptid.lwp ();
-  if (tid == 0)
-    tid = ptid.pid ();
-  
-  while (!parse_spufs_run (&fd, &addr))
-    {
-      ptrace (PT_SYSCALL, tid, (PTRACE_TYPE_ARG3) 0, 0);
-      waitpid (tid, NULL, __WALL | __WNOTHREAD);
-    }
-}
-
-/* Override the post_attach routine to try load the SPE executable
-   file image from its copy inside the target process.  */
-void
-spu_linux_nat_target::post_attach (int pid)
-{
-  int fd;
-  ULONGEST addr;
-
-  /* Like child_post_startup_inferior, if we happened to attach to
-     the inferior while it wasn't currently in spu_run, continue 
-     running it until we get back there.  */
-  while (!parse_spufs_run (&fd, &addr))
-    {
-      ptrace (PT_SYSCALL, pid, (PTRACE_TYPE_ARG3) 0, 0);
-      waitpid (pid, NULL, __WALL | __WNOTHREAD);
-    }
-
-  /* If the user has not provided an executable file, try to extract
-     the image from inside the target process.  */
-  if (!get_exec_file (0))
-    spu_symbol_file_add_from_memory (fd);
-}
-
-/* Wait for child PTID to do something.  Return id of the child,
-   minus_one_ptid in case of error; store status into *OURSTATUS.  */
-ptid_t
-spu_linux_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus,
-			    int options)
-{
-  int save_errno;
-  int status;
-  pid_t pid;
-
-  do
-    {
-      set_sigint_trap ();	/* Causes SIGINT to be passed on to the
-				   attached process.  */
-
-      pid = waitpid (ptid.pid (), &status, 0);
-      if (pid == -1 && errno == ECHILD)
-	/* Try again with __WCLONE to check cloned processes.  */
-	pid = waitpid (ptid.pid (), &status, __WCLONE);
-
-      save_errno = errno;
-
-      /* Make sure we don't report an event for the exit of the
-         original program, if we've detached from it.  */
-      if (pid != -1 && !WIFSTOPPED (status)
-	  && pid != inferior_ptid.pid ())
-	{
-	  pid = -1;
-	  save_errno = EINTR;
-	}
-
-      clear_sigint_trap ();
-    }
-  while (pid == -1 && save_errno == EINTR);
-
-  if (pid == -1)
-    {
-      warning (_("Child process unexpectedly missing: %s"),
-	       safe_strerror (save_errno));
-
-      /* Claim it exited with unknown signal.  */
-      ourstatus->kind = TARGET_WAITKIND_SIGNALLED;
-      ourstatus->value.sig = GDB_SIGNAL_UNKNOWN;
-      return inferior_ptid;
-    }
-
-  store_waitstatus (ourstatus, status);
-  return ptid_t (pid);
-}
-
-/* Override the fetch_inferior_register routine.  */
-void
-spu_linux_nat_target::fetch_registers (struct regcache *regcache, int regno)
-{
-  int fd;
-  ULONGEST addr;
-
-  /* Since we use functions that rely on inferior_ptid, we need to set and
-     restore it.  */
-  scoped_restore save_ptid
-    = make_scoped_restore (&inferior_ptid, regcache->ptid ());
-
-  /* We must be stopped on a spu_run system call.  */
-  if (!parse_spufs_run (&fd, &addr))
-    return;
-
-  /* The ID register holds the spufs file handle.  */
-  if (regno == -1 || regno == SPU_ID_REGNUM)
-    {
-      struct gdbarch *gdbarch = regcache->arch ();
-      enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-      gdb_byte buf[4];
-      store_unsigned_integer (buf, 4, byte_order, fd);
-      regcache->raw_supply (SPU_ID_REGNUM, buf);
-    }
-
-  /* The NPC register is found at ADDR.  */
-  if (regno == -1 || regno == SPU_PC_REGNUM)
-    {
-      gdb_byte buf[4];
-      if (fetch_ppc_memory (addr, buf, 4) == 0)
-	regcache->raw_supply (SPU_PC_REGNUM, buf);
-    }
-
-  /* The GPRs are found in the "regs" spufs file.  */
-  if (regno == -1 || (regno >= 0 && regno < SPU_NUM_GPRS))
-    {
-      gdb_byte buf[16 * SPU_NUM_GPRS];
-      char annex[32];
-      int i;
-      ULONGEST len;
-
-      xsnprintf (annex, sizeof annex, "%d/regs", fd);
-      if ((spu_proc_xfer_spu (annex, buf, NULL, 0, sizeof buf, &len)
-	   == TARGET_XFER_OK)
-	  && len == sizeof buf)
-	for (i = 0; i < SPU_NUM_GPRS; i++)
-	  regcache->raw_supply (i, buf + i*16);
-    }
-}
-
-/* Override the store_inferior_register routine.  */
-void
-spu_linux_nat_target::store_registers (struct regcache *regcache, int regno)
-{
-  int fd;
-  ULONGEST addr;
-
-  /* Since we use functions that rely on inferior_ptid, we need to set and
-     restore it.  */
-  scoped_restore save_ptid
-    = make_scoped_restore (&inferior_ptid, regcache->ptid ());
-
-  /* We must be stopped on a spu_run system call.  */
-  if (!parse_spufs_run (&fd, &addr))
-    return;
-
-  /* The NPC register is found at ADDR.  */
-  if (regno == -1 || regno == SPU_PC_REGNUM)
-    {
-      gdb_byte buf[4];
-      regcache->raw_collect (SPU_PC_REGNUM, buf);
-      store_ppc_memory (addr, buf, 4);
-    }
-
-  /* The GPRs are found in the "regs" spufs file.  */
-  if (regno == -1 || (regno >= 0 && regno < SPU_NUM_GPRS))
-    {
-      gdb_byte buf[16 * SPU_NUM_GPRS];
-      char annex[32];
-      int i;
-      ULONGEST len;
-
-      for (i = 0; i < SPU_NUM_GPRS; i++)
-	regcache->raw_collect (i, buf + i*16);
-
-      xsnprintf (annex, sizeof annex, "%d/regs", fd);
-      spu_proc_xfer_spu (annex, NULL, buf, 0, sizeof buf, &len);
-    }
-}
-
-/* Override the to_xfer_partial routine.  */
-enum target_xfer_status
-spu_linux_nat_target::xfer_partial (enum target_object object, const char *annex,
-				    gdb_byte *readbuf, const gdb_byte *writebuf,
-				    ULONGEST offset, ULONGEST len,
-				    ULONGEST *xfered_len)
-{
-  if (object == TARGET_OBJECT_SPU)
-    return spu_proc_xfer_spu (annex, readbuf, writebuf, offset, len,
-			      xfered_len);
-
-  if (object == TARGET_OBJECT_MEMORY)
-    {
-      int fd;
-      ULONGEST addr;
-      char mem_annex[32], lslr_annex[32];
-      gdb_byte buf[32];
-      ULONGEST lslr;
-      enum target_xfer_status ret;
-
-      /* We must be stopped on a spu_run system call.  */
-      if (!parse_spufs_run (&fd, &addr))
-	return TARGET_XFER_EOF;
-
-      /* Use the "mem" spufs file to access SPU local store.  */
-      xsnprintf (mem_annex, sizeof mem_annex, "%d/mem", fd);
-      ret = spu_proc_xfer_spu (mem_annex, readbuf, writebuf, offset, len,
-			       xfered_len);
-      if (ret == TARGET_XFER_OK)
-	return ret;
-
-      /* SPU local store access wraps the address around at the
-	 local store limit.  We emulate this here.  To avoid needing
-	 an extra access to retrieve the LSLR, we only do that after
-	 trying the original address first, and getting end-of-file.  */
-      xsnprintf (lslr_annex, sizeof lslr_annex, "%d/lslr", fd);
-      memset (buf, 0, sizeof buf);
-      if (spu_proc_xfer_spu (lslr_annex, buf, NULL, 0, sizeof buf, xfered_len)
-	  != TARGET_XFER_OK)
-	return ret;
-
-      lslr = strtoulst ((const char *) buf, NULL, 16);
-      return spu_proc_xfer_spu (mem_annex, readbuf, writebuf,
-				offset & lslr, len, xfered_len);
-    }
-
-  return TARGET_XFER_E_IO;
-}
-
-/* Override the to_can_use_hw_breakpoint routine.  */
-int
-spu_linux_nat_target::can_use_hw_breakpoint (enum bptype type,
-					     int cnt, int othertype)
-{
-  return 0;
-}
-
-/* Initialize SPU native target.  */
-void 
-_initialize_spu_nat (void)
-{
-  add_inf_child_target (&the_spu_linux_nat_target);
-}
diff --git a/gdb/spu-multiarch.c b/gdb/spu-multiarch.c
deleted file mode 100644
index 88ad291dbd..0000000000
--- a/gdb/spu-multiarch.c
+++ /dev/null
@@ -1,417 +0,0 @@
-/* Cell SPU GNU/Linux multi-architecture debugging support.
-   Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
-   Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#include "defs.h"
-#include "gdbcore.h"
-#include "gdbcmd.h"
-#include "arch-utils.h"
-#include "observable.h"
-#include "inferior.h"
-#include "regcache.h"
-#include "symfile.h"
-#include "objfiles.h"
-#include "solib.h"
-#include "solist.h"
-
-#include "ppc-tdep.h"
-#include "ppc-linux-tdep.h"
-#include "spu-tdep.h"
-
-/* The SPU multi-architecture support target.  */
-
-static const target_info spu_multiarch_target_info = {
-  "spu",
-  N_("SPU multi-architecture support."),
-  N_("SPU multi-architecture support.")
-};
-
-struct spu_multiarch_target final : public target_ops
-{
-  const target_info &info () const override
-  { return spu_multiarch_target_info; }
-
-  strata stratum () const override { return arch_stratum; }
-
-  void mourn_inferior () override;
-
-  void fetch_registers (struct regcache *, int) override;
-  void store_registers (struct regcache *, int) override;
-
-  enum target_xfer_status xfer_partial (enum target_object object,
-					const char *annex,
-					gdb_byte *readbuf,
-					const gdb_byte *writebuf,
-					ULONGEST offset, ULONGEST len,
-					ULONGEST *xfered_len) override;
-
-  int search_memory (CORE_ADDR start_addr, ULONGEST search_space_len,
-		     const gdb_byte *pattern, ULONGEST pattern_len,
-		     CORE_ADDR *found_addrp) override;
-
-  int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
-
-  struct gdbarch *thread_architecture (ptid_t) override;
-};
-
-static spu_multiarch_target spu_ops;
-
-/* Number of SPE objects loaded into the current inferior.  */
-static int spu_nr_solib;
-
-/* Stand-alone SPE executable?  */
-#define spu_standalone_p() \
-  (symfile_objfile && symfile_objfile->obfd \
-   && bfd_get_arch (symfile_objfile->obfd) == bfd_arch_spu)
-
-/* PPU side system calls.  */
-#define INSTR_SC	0x44000002
-#define NR_spu_run	0x0116
-
-/* If the PPU thread is currently stopped on a spu_run system call,
-   return to FD and ADDR the file handle and NPC parameter address
-   used with the system call.  Return non-zero if successful.  */
-static int
-parse_spufs_run (ptid_t ptid, int *fd, CORE_ADDR *addr)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
-  struct gdbarch_tdep *tdep;
-  struct regcache *regcache;
-  gdb_byte buf[4];
-  ULONGEST regval;
-
-  /* If we're not on PPU, there's nothing to detect.  */
-  if (gdbarch_bfd_arch_info (target_gdbarch ())->arch != bfd_arch_powerpc)
-    return 0;
-
-  /* If we're called too early (e.g. after fork), we cannot
-     access the inferior yet.  */
-  if (find_inferior_ptid (ptid) == NULL)
-    return 0;
-
-  /* Get PPU-side registers.  */
-  regcache = get_thread_arch_regcache (ptid, target_gdbarch ());
-  tdep = gdbarch_tdep (target_gdbarch ());
-
-  /* Fetch instruction preceding current NIP.  */
-  {
-    scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
-    inferior_ptid = ptid;
-    regval = target_read_memory (regcache_read_pc (regcache) - 4, buf, 4);
-  }
-  if (regval != 0)
-    return 0;
-  /* It should be a "sc" instruction.  */
-  if (extract_unsigned_integer (buf, 4, byte_order) != INSTR_SC)
-    return 0;
-  /* System call number should be NR_spu_run.  */
-  regcache_cooked_read_unsigned (regcache, tdep->ppc_gp0_regnum, &regval);
-  if (regval != NR_spu_run)
-    return 0;
-
-  /* Register 3 contains fd, register 4 the NPC param pointer.  */
-  regcache_cooked_read_unsigned (regcache, PPC_ORIG_R3_REGNUM, &regval);
-  *fd = (int) regval;
-  regcache_cooked_read_unsigned (regcache, tdep->ppc_gp0_regnum + 4, &regval);
-  *addr = (CORE_ADDR) regval;
-  return 1;
-}
-
-/* Find gdbarch for SPU context SPUFS_FD.  */
-static struct gdbarch *
-spu_gdbarch (int spufs_fd)
-{
-  struct gdbarch_info info;
-  gdbarch_info_init (&info);
-  info.bfd_arch_info = bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu);
-  info.byte_order = BFD_ENDIAN_BIG;
-  info.osabi = GDB_OSABI_LINUX;
-  info.id = &spufs_fd;
-  return gdbarch_find_by_info (info);
-}
-
-/* Override the to_thread_architecture routine.  */
-struct gdbarch *
-spu_multiarch_target::thread_architecture (ptid_t ptid)
-{
-  int spufs_fd;
-  CORE_ADDR spufs_addr;
-
-  if (parse_spufs_run (ptid, &spufs_fd, &spufs_addr))
-    return spu_gdbarch (spufs_fd);
-
-  return beneath ()->thread_architecture (ptid);
-}
-
-/* Override the to_region_ok_for_hw_watchpoint routine.  */
-
-int
-spu_multiarch_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
-{
-  /* We cannot watch SPU local store.  */
-  if (SPUADDR_SPU (addr) != -1)
-    return 0;
-
-  return beneath ()->region_ok_for_hw_watchpoint (addr, len);
-}
-
-/* Override the to_fetch_registers routine.  */
-
-void
-spu_multiarch_target::fetch_registers (struct regcache *regcache, int regno)
-{
-  struct gdbarch *gdbarch = regcache->arch ();
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  int spufs_fd;
-  CORE_ADDR spufs_addr;
-
-  /* Since we use functions that rely on inferior_ptid, we need to set and
-     restore it.  */
-  scoped_restore save_ptid
-    = make_scoped_restore (&inferior_ptid, regcache->ptid ());
-
-  /* This version applies only if we're currently in spu_run.  */
-  if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
-    {
-      beneath ()->fetch_registers (regcache, regno);
-      return;
-    }
-
-  /* We must be stopped on a spu_run system call.  */
-  if (!parse_spufs_run (inferior_ptid, &spufs_fd, &spufs_addr))
-    return;
-
-  /* The ID register holds the spufs file handle.  */
-  if (regno == -1 || regno == SPU_ID_REGNUM)
-    {
-      gdb_byte buf[4];
-      store_unsigned_integer (buf, 4, byte_order, spufs_fd);
-      regcache->raw_supply (SPU_ID_REGNUM, buf);
-    }
-
-  /* The NPC register is found in PPC memory at SPUFS_ADDR.  */
-  if (regno == -1 || regno == SPU_PC_REGNUM)
-    {
-      gdb_byte buf[4];
-
-      if (target_read (beneath (), TARGET_OBJECT_MEMORY, NULL,
-		       buf, spufs_addr, sizeof buf) == sizeof buf)
-	regcache->raw_supply (SPU_PC_REGNUM, buf);
-    }
-
-  /* The GPRs are found in the "regs" spufs file.  */
-  if (regno == -1 || (regno >= 0 && regno < SPU_NUM_GPRS))
-    {
-      gdb_byte buf[16 * SPU_NUM_GPRS];
-      char annex[32];
-      int i;
-
-      xsnprintf (annex, sizeof annex, "%d/regs", spufs_fd);
-      if (target_read (beneath (), TARGET_OBJECT_SPU, annex,
-		       buf, 0, sizeof buf) == sizeof buf)
-	for (i = 0; i < SPU_NUM_GPRS; i++)
-	  regcache->raw_supply (i, buf + i*16);
-    }
-}
-
-/* Override the to_store_registers routine.  */
-
-void
-spu_multiarch_target::store_registers (struct regcache *regcache, int regno)
-{
-  struct gdbarch *gdbarch = regcache->arch ();
-  int spufs_fd;
-  CORE_ADDR spufs_addr;
-
-  /* Since we use functions that rely on inferior_ptid, we need to set and
-     restore it.  */
-  scoped_restore save_ptid
-    = make_scoped_restore (&inferior_ptid, regcache->ptid ());
-
-  /* This version applies only if we're currently in spu_run.  */
-  if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
-    {
-      beneath ()->store_registers (regcache, regno);
-      return;
-    }
-
-  /* We must be stopped on a spu_run system call.  */
-  if (!parse_spufs_run (inferior_ptid, &spufs_fd, &spufs_addr))
-    return;
-
-  /* The NPC register is found in PPC memory at SPUFS_ADDR.  */
-  if (regno == -1 || regno == SPU_PC_REGNUM)
-    {
-      gdb_byte buf[4];
-      regcache->raw_collect (SPU_PC_REGNUM, buf);
-
-      target_write (beneath (), TARGET_OBJECT_MEMORY, NULL,
-		    buf, spufs_addr, sizeof buf);
-    }
-
-  /* The GPRs are found in the "regs" spufs file.  */
-  if (regno == -1 || (regno >= 0 && regno < SPU_NUM_GPRS))
-    {
-      gdb_byte buf[16 * SPU_NUM_GPRS];
-      char annex[32];
-      int i;
-
-      for (i = 0; i < SPU_NUM_GPRS; i++)
-	regcache->raw_collect (i, buf + i*16);
-
-      xsnprintf (annex, sizeof annex, "%d/regs", spufs_fd);
-      target_write (beneath (), TARGET_OBJECT_SPU, annex,
-		    buf, 0, sizeof buf);
-    }
-}
-
-/* Override the to_xfer_partial routine.  */
-
-enum target_xfer_status
-spu_multiarch_target::xfer_partial (enum target_object object,
-				    const char *annex, gdb_byte *readbuf,
-				    const gdb_byte *writebuf, ULONGEST offset, ULONGEST len,
-				    ULONGEST *xfered_len)
-{
-  struct target_ops *ops_beneath = this->beneath ();
-
-  /* Use the "mem" spufs file to access SPU local store.  */
-  if (object == TARGET_OBJECT_MEMORY)
-    {
-      int fd = SPUADDR_SPU (offset);
-      CORE_ADDR addr = SPUADDR_ADDR (offset);
-      char mem_annex[32], lslr_annex[32];
-      gdb_byte buf[32];
-      ULONGEST lslr;
-      enum target_xfer_status ret;
-
-      if (fd >= 0)
-	{
-	  xsnprintf (mem_annex, sizeof mem_annex, "%d/mem", fd);
-	  ret = ops_beneath->xfer_partial (TARGET_OBJECT_SPU,
-					   mem_annex, readbuf, writebuf,
-					   addr, len, xfered_len);
-	  if (ret == TARGET_XFER_OK)
-	    return ret;
-
-	  /* SPU local store access wraps the address around at the
-	     local store limit.  We emulate this here.  To avoid needing
-	     an extra access to retrieve the LSLR, we only do that after
-	     trying the original address first, and getting end-of-file.  */
-	  xsnprintf (lslr_annex, sizeof lslr_annex, "%d/lslr", fd);
-	  memset (buf, 0, sizeof buf);
-	  if (ops_beneath->xfer_partial (TARGET_OBJECT_SPU,
-					 lslr_annex, buf, NULL,
-					 0, sizeof buf, xfered_len)
-	      != TARGET_XFER_OK)
-	    return ret;
-
-	  lslr = strtoulst ((char *) buf, NULL, 16);
-	  return ops_beneath->xfer_partial (TARGET_OBJECT_SPU,
-					    mem_annex, readbuf, writebuf,
-					    addr & lslr, len, xfered_len);
-	}
-    }
-
-  return ops_beneath->xfer_partial (object, annex,
-				    readbuf, writebuf, offset, len, xfered_len);
-}
-
-/* Override the to_search_memory routine.  */
-int
-spu_multiarch_target::search_memory (CORE_ADDR start_addr, ULONGEST search_space_len,
-				     const gdb_byte *pattern, ULONGEST pattern_len,
-				     CORE_ADDR *found_addrp)
-{
-  /* For SPU local store, always fall back to the simple method.  */
-  if (SPUADDR_SPU (start_addr) >= 0)
-    return simple_search_memory (this, start_addr, search_space_len,
-				 pattern, pattern_len, found_addrp);
-
-  return beneath ()->search_memory (start_addr, search_space_len,
-				    pattern, pattern_len, found_addrp);
-}
-
-
-/* Push and pop the SPU multi-architecture support target.  */
-
-static void
-spu_multiarch_activate (void)
-{
-  /* If GDB was configured without SPU architecture support,
-     we cannot install SPU multi-architecture support either.  */
-  if (spu_gdbarch (-1) == NULL)
-    return;
-
-  push_target (&spu_ops);
-
-  /* Make sure the thread architecture is re-evaluated.  */
-  registers_changed ();
-}
-
-static void
-spu_multiarch_deactivate (void)
-{
-  unpush_target (&spu_ops);
-
-  /* Make sure the thread architecture is re-evaluated.  */
-  registers_changed ();
-}
-
-static void
-spu_multiarch_inferior_created (struct target_ops *ops, int from_tty)
-{
-  if (spu_standalone_p ())
-    spu_multiarch_activate ();
-}
-
-static void
-spu_multiarch_solib_loaded (struct so_list *so)
-{
-  if (!spu_standalone_p ())
-    if (so->abfd && bfd_get_arch (so->abfd) == bfd_arch_spu)
-      if (spu_nr_solib++ == 0)
-	spu_multiarch_activate ();
-}
-
-static void
-spu_multiarch_solib_unloaded (struct so_list *so)
-{
-  if (!spu_standalone_p ())
-    if (so->abfd && bfd_get_arch (so->abfd) == bfd_arch_spu)
-      if (--spu_nr_solib == 0)
-	spu_multiarch_deactivate ();
-}
-
-void
-spu_multiarch_target::mourn_inferior ()
-{
-  beneath ()->mourn_inferior ();
-  spu_multiarch_deactivate ();
-}
-
-void
-_initialize_spu_multiarch (void)
-{
-  /* Install observers to watch for SPU objects.  */
-  gdb::observers::inferior_created.attach (spu_multiarch_inferior_created);
-  gdb::observers::solib_loaded.attach (spu_multiarch_solib_loaded);
-  gdb::observers::solib_unloaded.attach (spu_multiarch_solib_unloaded);
-}
-
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
deleted file mode 100644
index 5360efb12f..0000000000
--- a/gdb/spu-tdep.c
+++ /dev/null
@@ -1,2835 +0,0 @@
-/* SPU target-dependent code for GDB, the GNU debugger.
-   Copyright (C) 2006-2019 Free Software Foundation, Inc.
-
-   Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-   Based on a port by Sid Manning <sid@us.ibm.com>.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#include "defs.h"
-#include "arch-utils.h"
-#include "gdbtypes.h"
-#include "gdbcmd.h"
-#include "gdbcore.h"
-#include "frame.h"
-#include "frame-unwind.h"
-#include "frame-base.h"
-#include "trad-frame.h"
-#include "symtab.h"
-#include "symfile.h"
-#include "value.h"
-#include "inferior.h"
-#include "dis-asm.h"
-#include "disasm.h"
-#include "objfiles.h"
-#include "language.h"
-#include "regcache.h"
-#include "reggroups.h"
-#include "block.h"
-#include "observable.h"
-#include "infcall.h"
-#include "dwarf2.h"
-#include "dwarf2-frame.h"
-#include "ax.h"
-#include "spu-tdep.h"
-#include "location.h"
-
-/* The list of available "set spu " and "show spu " commands.  */
-static struct cmd_list_element *setspucmdlist = NULL;
-static struct cmd_list_element *showspucmdlist = NULL;
-
-/* Whether to stop for new SPE contexts.  */
-static bool spu_stop_on_load_p = false;
-/* Whether to automatically flush the SW-managed cache.  */
-static bool spu_auto_flush_cache_p = true;
-
-
-/* The tdep structure.  */
-struct gdbarch_tdep
-{
-  /* The spufs ID identifying our address space.  */
-  int id;
-
-  /* SPU-specific vector type.  */
-  struct type *spu_builtin_type_vec128;
-};
-
-
-/* SPU-specific vector type.  */
-static struct type *
-spu_builtin_type_vec128 (struct gdbarch *gdbarch)
-{
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
-  if (!tdep->spu_builtin_type_vec128)
-    {
-      const struct builtin_type *bt = builtin_type (gdbarch);
-      struct type *t;
-
-      t = arch_composite_type (gdbarch,
-			       "__spu_builtin_type_vec128", TYPE_CODE_UNION);
-      append_composite_type_field (t, "uint128", bt->builtin_int128);
-      append_composite_type_field (t, "v2_int64",
-				   init_vector_type (bt->builtin_int64, 2));
-      append_composite_type_field (t, "v4_int32",
-				   init_vector_type (bt->builtin_int32, 4));
-      append_composite_type_field (t, "v8_int16",
-				   init_vector_type (bt->builtin_int16, 8));
-      append_composite_type_field (t, "v16_int8",
-				   init_vector_type (bt->builtin_int8, 16));
-      append_composite_type_field (t, "v2_double",
-				   init_vector_type (bt->builtin_double, 2));
-      append_composite_type_field (t, "v4_float",
-				   init_vector_type (bt->builtin_float, 4));
-
-      TYPE_VECTOR (t) = 1;
-      TYPE_NAME (t) = "spu_builtin_type_vec128";
-
-      tdep->spu_builtin_type_vec128 = t;
-    }
-
-  return tdep->spu_builtin_type_vec128;
-}
-
-
-/* The list of available "info spu " commands.  */
-static struct cmd_list_element *infospucmdlist = NULL;
-
-/* Registers.  */
-
-static const char *
-spu_register_name (struct gdbarch *gdbarch, int reg_nr)
-{
-  static const char *register_names[] =
-    {
-      "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
-      "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
-      "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
-      "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31",
-      "r32", "r33", "r34", "r35", "r36", "r37", "r38", "r39",
-      "r40", "r41", "r42", "r43", "r44", "r45", "r46", "r47",
-      "r48", "r49", "r50", "r51", "r52", "r53", "r54", "r55",
-      "r56", "r57", "r58", "r59", "r60", "r61", "r62", "r63",
-      "r64", "r65", "r66", "r67", "r68", "r69", "r70", "r71",
-      "r72", "r73", "r74", "r75", "r76", "r77", "r78", "r79",
-      "r80", "r81", "r82", "r83", "r84", "r85", "r86", "r87",
-      "r88", "r89", "r90", "r91", "r92", "r93", "r94", "r95",
-      "r96", "r97", "r98", "r99", "r100", "r101", "r102", "r103",
-      "r104", "r105", "r106", "r107", "r108", "r109", "r110", "r111",
-      "r112", "r113", "r114", "r115", "r116", "r117", "r118", "r119",
-      "r120", "r121", "r122", "r123", "r124", "r125", "r126", "r127",
-      "id", "pc", "sp", "fpscr", "srr0", "lslr", "decr", "decr_status"
-    };
-
-  if (reg_nr < 0)
-    return NULL;
-  if (reg_nr >= sizeof register_names / sizeof *register_names)
-    return NULL;
-
-  return register_names[reg_nr];
-}
-
-static struct type *
-spu_register_type (struct gdbarch *gdbarch, int reg_nr)
-{
-  if (reg_nr < SPU_NUM_GPRS)
-    return spu_builtin_type_vec128 (gdbarch);
-
-  switch (reg_nr)
-    {
-    case SPU_ID_REGNUM:
-      return builtin_type (gdbarch)->builtin_uint32;
-
-    case SPU_PC_REGNUM:
-      return builtin_type (gdbarch)->builtin_func_ptr;
-
-    case SPU_SP_REGNUM:
-      return builtin_type (gdbarch)->builtin_data_ptr;
-
-    case SPU_FPSCR_REGNUM:
-      return builtin_type (gdbarch)->builtin_uint128;
-
-    case SPU_SRR0_REGNUM:
-      return builtin_type (gdbarch)->builtin_uint32;
-
-    case SPU_LSLR_REGNUM:
-      return builtin_type (gdbarch)->builtin_uint32;
-
-    case SPU_DECR_REGNUM:
-      return builtin_type (gdbarch)->builtin_uint32;
-
-    case SPU_DECR_STATUS_REGNUM:
-      return builtin_type (gdbarch)->builtin_uint32;
-
-    default:
-      internal_error (__FILE__, __LINE__, _("invalid regnum"));
-    }
-}
-
-/* Pseudo registers for preferred slots - stack pointer.  */
-
-static enum register_status
-spu_pseudo_register_read_spu (readable_regcache *regcache, const char *regname,
-			      gdb_byte *buf)
-{
-  struct gdbarch *gdbarch = regcache->arch ();
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  enum register_status status;
-  gdb_byte reg[32];
-  char annex[32];
-  ULONGEST id;
-  ULONGEST ul;
-
-  status = regcache->raw_read (SPU_ID_REGNUM, &id);
-  if (status != REG_VALID)
-    return status;
-  xsnprintf (annex, sizeof annex, "%d/%s", (int) id, regname);
-  memset (reg, 0, sizeof reg);
-  target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-	       reg, 0, sizeof reg);
-
-  ul = strtoulst ((char *) reg, NULL, 16);
-  store_unsigned_integer (buf, 4, byte_order, ul);
-  return REG_VALID;
-}
-
-static enum register_status
-spu_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
-                          int regnum, gdb_byte *buf)
-{
-  gdb_byte reg[16];
-  char annex[32];
-  ULONGEST id;
-  enum register_status status;
-
-  switch (regnum)
-    {
-    case SPU_SP_REGNUM:
-      status = regcache->raw_read (SPU_RAW_SP_REGNUM, reg);
-      if (status != REG_VALID)
-	return status;
-      memcpy (buf, reg, 4);
-      return status;
-
-    case SPU_FPSCR_REGNUM:
-      status = regcache->raw_read (SPU_ID_REGNUM, &id);
-      if (status != REG_VALID)
-	return status;
-      xsnprintf (annex, sizeof annex, "%d/fpcr", (int) id);
-      target_read (current_top_target (), TARGET_OBJECT_SPU, annex, buf, 0, 16);
-      return status;
-
-    case SPU_SRR0_REGNUM:
-      return spu_pseudo_register_read_spu (regcache, "srr0", buf);
-
-    case SPU_LSLR_REGNUM:
-      return spu_pseudo_register_read_spu (regcache, "lslr", buf);
-
-    case SPU_DECR_REGNUM:
-      return spu_pseudo_register_read_spu (regcache, "decr", buf);
-
-    case SPU_DECR_STATUS_REGNUM:
-      return spu_pseudo_register_read_spu (regcache, "decr_status", buf);
-
-    default:
-      internal_error (__FILE__, __LINE__, _("invalid regnum"));
-    }
-}
-
-static void
-spu_pseudo_register_write_spu (struct regcache *regcache, const char *regname,
-			       const gdb_byte *buf)
-{
-  struct gdbarch *gdbarch = regcache->arch ();
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  char reg[32];
-  char annex[32];
-  ULONGEST id;
-
-  regcache_raw_read_unsigned (regcache, SPU_ID_REGNUM, &id);
-  xsnprintf (annex, sizeof annex, "%d/%s", (int) id, regname);
-  xsnprintf (reg, sizeof reg, "0x%s",
-	     phex_nz (extract_unsigned_integer (buf, 4, byte_order), 4));
-  target_write (current_top_target (), TARGET_OBJECT_SPU, annex,
-		(gdb_byte *) reg, 0, strlen (reg));
-}
-
-static void
-spu_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
-                           int regnum, const gdb_byte *buf)
-{
-  gdb_byte reg[16];
-  char annex[32];
-  ULONGEST id;
-
-  switch (regnum)
-    {
-    case SPU_SP_REGNUM:
-      regcache->raw_read (SPU_RAW_SP_REGNUM, reg);
-      memcpy (reg, buf, 4);
-      regcache->raw_write (SPU_RAW_SP_REGNUM, reg);
-      break;
-
-    case SPU_FPSCR_REGNUM:
-      regcache_raw_read_unsigned (regcache, SPU_ID_REGNUM, &id);
-      xsnprintf (annex, sizeof annex, "%d/fpcr", (int) id);
-      target_write (current_top_target (), TARGET_OBJECT_SPU, annex, buf, 0, 16);
-      break;
-
-    case SPU_SRR0_REGNUM:
-      spu_pseudo_register_write_spu (regcache, "srr0", buf);
-      break;
-
-    case SPU_LSLR_REGNUM:
-      spu_pseudo_register_write_spu (regcache, "lslr", buf);
-      break;
-
-    case SPU_DECR_REGNUM:
-      spu_pseudo_register_write_spu (regcache, "decr", buf);
-      break;
-
-    case SPU_DECR_STATUS_REGNUM:
-      spu_pseudo_register_write_spu (regcache, "decr_status", buf);
-      break;
-
-    default:
-      internal_error (__FILE__, __LINE__, _("invalid regnum"));
-    }
-}
-
-static int
-spu_ax_pseudo_register_collect (struct gdbarch *gdbarch,
-				struct agent_expr *ax, int regnum)
-{
-  switch (regnum)
-    {
-    case SPU_SP_REGNUM:
-      ax_reg_mask (ax, SPU_RAW_SP_REGNUM);
-      return 0;
-
-    case SPU_FPSCR_REGNUM:
-    case SPU_SRR0_REGNUM:
-    case SPU_LSLR_REGNUM:
-    case SPU_DECR_REGNUM:
-    case SPU_DECR_STATUS_REGNUM:
-      return -1;
-
-    default:
-      internal_error (__FILE__, __LINE__, _("invalid regnum"));
-    }
-}
-
-static int
-spu_ax_pseudo_register_push_stack (struct gdbarch *gdbarch,
-				   struct agent_expr *ax, int regnum)
-{
-  switch (regnum)
-    {
-    case SPU_SP_REGNUM:
-      ax_reg (ax, SPU_RAW_SP_REGNUM);
-      return 0;
-
-    case SPU_FPSCR_REGNUM:
-    case SPU_SRR0_REGNUM:
-    case SPU_LSLR_REGNUM:
-    case SPU_DECR_REGNUM:
-    case SPU_DECR_STATUS_REGNUM:
-      return -1;
-
-    default:
-      internal_error (__FILE__, __LINE__, _("invalid regnum"));
-    }
-}
-
-
-/* Value conversion -- access scalar values at the preferred slot.  */
-
-static struct value *
-spu_value_from_register (struct gdbarch *gdbarch, struct type *type,
-			 int regnum, struct frame_id frame_id)
-{
-  struct value *value = default_value_from_register (gdbarch, type,
-						     regnum, frame_id);
-  LONGEST len = TYPE_LENGTH (type);
-
-  if (regnum < SPU_NUM_GPRS && len < 16)
-    {
-      int preferred_slot = len < 4 ? 4 - len : 0;
-      set_value_offset (value, preferred_slot);
-    }
-
-  return value;
-}
-
-/* Register groups.  */
-
-static int
-spu_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
-			 struct reggroup *group)
-{
-  /* Registers displayed via 'info regs'.  */
-  if (group == general_reggroup)
-    return 1;
-
-  /* Registers displayed via 'info float'.  */
-  if (group == float_reggroup)
-    return 0;
-
-  /* Registers that need to be saved/restored in order to
-     push or pop frames.  */
-  if (group == save_reggroup || group == restore_reggroup)
-    return 1;
-
-  return default_register_reggroup_p (gdbarch, regnum, group);
-}
-
-/* DWARF-2 register numbers.  */
-
-static int
-spu_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
-{
-  /* Use cooked instead of raw SP.  */
-  return (reg == SPU_RAW_SP_REGNUM)? SPU_SP_REGNUM : reg;
-}
-
-
-/* Address handling.  */
-
-static int
-spu_gdbarch_id (struct gdbarch *gdbarch)
-{
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-  int id = tdep->id;
-
-  /* The objfile architecture of a standalone SPU executable does not
-     provide an SPU ID.  Retrieve it from the objfile's relocated
-     address range in this special case.  */
-  if (id == -1
-      && symfile_objfile && symfile_objfile->obfd
-      && bfd_get_arch (symfile_objfile->obfd) == bfd_arch_spu
-      && symfile_objfile->sections != symfile_objfile->sections_end)
-    id = SPUADDR_SPU (obj_section_addr (symfile_objfile->sections));
-
-  return id;
-}
-
-static int
-spu_address_class_type_flags (int byte_size, int dwarf2_addr_class)
-{
-  if (dwarf2_addr_class == 1)
-    return TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1;
-  else
-    return 0;
-}
-
-static const char *
-spu_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
-{
-  if (type_flags & TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1)
-    return "__ea";
-  else
-    return NULL;
-}
-
-static int
-spu_address_class_name_to_type_flags (struct gdbarch *gdbarch,
-				      const char *name, int *type_flags_ptr)
-{
-  if (strcmp (name, "__ea") == 0)
-    {
-      *type_flags_ptr = TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1;
-      return 1;
-    }
-  else
-   return 0;
-}
-
-static void
-spu_address_to_pointer (struct gdbarch *gdbarch,
-			struct type *type, gdb_byte *buf, CORE_ADDR addr)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  store_unsigned_integer (buf, TYPE_LENGTH (type), byte_order,
-			  SPUADDR_ADDR (addr));
-}
-
-static CORE_ADDR
-spu_pointer_to_address (struct gdbarch *gdbarch,
-			struct type *type, const gdb_byte *buf)
-{
-  int id = spu_gdbarch_id (gdbarch);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  ULONGEST addr
-    = extract_unsigned_integer (buf, TYPE_LENGTH (type), byte_order);
-
-  /* Do not convert __ea pointers.  */
-  if (TYPE_ADDRESS_CLASS_1 (type))
-    return addr;
-
-  return addr? SPUADDR (id, addr) : 0;
-}
-
-static CORE_ADDR
-spu_integer_to_address (struct gdbarch *gdbarch,
-			struct type *type, const gdb_byte *buf)
-{
-  int id = spu_gdbarch_id (gdbarch);
-  ULONGEST addr = unpack_long (type, buf);
-
-  return SPUADDR (id, addr);
-}
-
-
-/* Decoding SPU instructions.  */
-
-enum
-  {
-    op_lqd   = 0x34,
-    op_lqx   = 0x3c4,
-    op_lqa   = 0x61,
-    op_lqr   = 0x67,
-    op_stqd  = 0x24,
-    op_stqx  = 0x144,
-    op_stqa  = 0x41,
-    op_stqr  = 0x47,
-
-    op_il    = 0x081,
-    op_ila   = 0x21,
-    op_a     = 0x0c0,
-    op_ai    = 0x1c,
-
-    op_selb  = 0x8,
-
-    op_br    = 0x64,
-    op_bra   = 0x60,
-    op_brsl  = 0x66,
-    op_brasl = 0x62,
-    op_brnz  = 0x42,
-    op_brz   = 0x40,
-    op_brhnz = 0x46,
-    op_brhz  = 0x44,
-    op_bi    = 0x1a8,
-    op_bisl  = 0x1a9,
-    op_biz   = 0x128,
-    op_binz  = 0x129,
-    op_bihz  = 0x12a,
-    op_bihnz = 0x12b,
-  };
-
-static int
-is_rr (unsigned int insn, int op, int *rt, int *ra, int *rb)
-{
-  if ((insn >> 21) == op)
-    {
-      *rt = insn & 127;
-      *ra = (insn >> 7) & 127;
-      *rb = (insn >> 14) & 127;
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-is_rrr (unsigned int insn, int op, int *rt, int *ra, int *rb, int *rc)
-{
-  if ((insn >> 28) == op)
-    {
-      *rt = (insn >> 21) & 127;
-      *ra = (insn >> 7) & 127;
-      *rb = (insn >> 14) & 127;
-      *rc = insn & 127;
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-is_ri7 (unsigned int insn, int op, int *rt, int *ra, int *i7)
-{
-  if ((insn >> 21) == op)
-    {
-      *rt = insn & 127;
-      *ra = (insn >> 7) & 127;
-      *i7 = (((insn >> 14) & 127) ^ 0x40) - 0x40;
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-is_ri10 (unsigned int insn, int op, int *rt, int *ra, int *i10)
-{
-  if ((insn >> 24) == op)
-    {
-      *rt = insn & 127;
-      *ra = (insn >> 7) & 127;
-      *i10 = (((insn >> 14) & 0x3ff) ^ 0x200) - 0x200;
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-is_ri16 (unsigned int insn, int op, int *rt, int *i16)
-{
-  if ((insn >> 23) == op)
-    {
-      *rt = insn & 127;
-      *i16 = (((insn >> 7) & 0xffff) ^ 0x8000) - 0x8000;
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-is_ri18 (unsigned int insn, int op, int *rt, int *i18)
-{
-  if ((insn >> 25) == op)
-    {
-      *rt = insn & 127;
-      *i18 = (((insn >> 7) & 0x3ffff) ^ 0x20000) - 0x20000;
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-is_branch (unsigned int insn, int *offset, int *reg)
-{
-  int rt, i7, i16;
-
-  if (is_ri16 (insn, op_br, &rt, &i16)
-      || is_ri16 (insn, op_brsl, &rt, &i16)
-      || is_ri16 (insn, op_brnz, &rt, &i16)
-      || is_ri16 (insn, op_brz, &rt, &i16)
-      || is_ri16 (insn, op_brhnz, &rt, &i16)
-      || is_ri16 (insn, op_brhz, &rt, &i16))
-    {
-      *reg = SPU_PC_REGNUM;
-      *offset = i16 << 2;
-      return 1;
-    }
-
-  if (is_ri16 (insn, op_bra, &rt, &i16)
-      || is_ri16 (insn, op_brasl, &rt, &i16))
-    {
-      *reg = -1;
-      *offset = i16 << 2;
-      return 1;
-    }
-
-  if (is_ri7 (insn, op_bi, &rt, reg, &i7)
-      || is_ri7 (insn, op_bisl, &rt, reg, &i7)
-      || is_ri7 (insn, op_biz, &rt, reg, &i7)
-      || is_ri7 (insn, op_binz, &rt, reg, &i7)
-      || is_ri7 (insn, op_bihz, &rt, reg, &i7)
-      || is_ri7 (insn, op_bihnz, &rt, reg, &i7))
-    {
-      *offset = 0;
-      return 1;
-    }
-
-  return 0;
-}
-
-
-/* Prolog parsing.  */
-
-struct spu_prologue_data
-  {
-    /* Stack frame size.  -1 if analysis was unsuccessful.  */
-    int size;
-
-    /* How to find the CFA.  The CFA is equal to SP at function entry.  */
-    int cfa_reg;
-    int cfa_offset;
-
-    /* Offset relative to CFA where a register is saved.  -1 if invalid.  */
-    int reg_offset[SPU_NUM_GPRS];
-  };
-
-static CORE_ADDR
-spu_analyze_prologue (struct gdbarch *gdbarch,
-		      CORE_ADDR start_pc, CORE_ADDR end_pc,
-                      struct spu_prologue_data *data)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  int found_sp = 0;
-  int found_fp = 0;
-  int found_lr = 0;
-  int found_bc = 0;
-  int reg_immed[SPU_NUM_GPRS];
-  gdb_byte buf[16];
-  CORE_ADDR prolog_pc = start_pc;
-  CORE_ADDR pc;
-  int i;
-
-
-  /* Initialize DATA to default values.  */
-  data->size = -1;
-
-  data->cfa_reg = SPU_RAW_SP_REGNUM;
-  data->cfa_offset = 0;
-
-  for (i = 0; i < SPU_NUM_GPRS; i++)
-    data->reg_offset[i] = -1;
-
-  /* Set up REG_IMMED array.  This is non-zero for a register if we know its
-     preferred slot currently holds this immediate value.  */
-  for (i = 0; i < SPU_NUM_GPRS; i++)
-      reg_immed[i] = 0;
-
-  /* Scan instructions until the first branch.
-
-     The following instructions are important prolog components:
-
-	- The first instruction to set up the stack pointer.
-	- The first instruction to set up the frame pointer.
-	- The first instruction to save the link register.
-	- The first instruction to save the backchain.
-
-     We return the instruction after the latest of these four,
-     or the incoming PC if none is found.  The first instruction
-     to set up the stack pointer also defines the frame size.
-
-     Note that instructions saving incoming arguments to their stack
-     slots are not counted as important, because they are hard to
-     identify with certainty.  This should not matter much, because
-     arguments are relevant only in code compiled with debug data,
-     and in such code the GDB core will advance until the first source
-     line anyway, using SAL data.
-
-     For purposes of stack unwinding, we analyze the following types
-     of instructions in addition:
-
-      - Any instruction adding to the current frame pointer.
-      - Any instruction loading an immediate constant into a register.
-      - Any instruction storing a register onto the stack.
-
-     These are used to compute the CFA and REG_OFFSET output.  */
-
-  for (pc = start_pc; pc < end_pc; pc += 4)
-    {
-      unsigned int insn;
-      int rt, ra, rb, rc, immed;
-
-      if (target_read_memory (pc, buf, 4))
-	break;
-      insn = extract_unsigned_integer (buf, 4, byte_order);
-
-      /* AI is the typical instruction to set up a stack frame.
-         It is also used to initialize the frame pointer.  */
-      if (is_ri10 (insn, op_ai, &rt, &ra, &immed))
-	{
-	  if (rt == data->cfa_reg && ra == data->cfa_reg)
-	    data->cfa_offset -= immed;
-
-	  if (rt == SPU_RAW_SP_REGNUM && ra == SPU_RAW_SP_REGNUM
-	      && !found_sp)
-	    {
-	      found_sp = 1;
-	      prolog_pc = pc + 4;
-
-	      data->size = -immed;
-	    }
-	  else if (rt == SPU_FP_REGNUM && ra == SPU_RAW_SP_REGNUM
-		   && !found_fp)
-	    {
-	      found_fp = 1;
-	      prolog_pc = pc + 4;
-
-	      data->cfa_reg = SPU_FP_REGNUM;
-	      data->cfa_offset -= immed;
-	    }
-	}
-
-      /* A is used to set up stack frames of size >= 512 bytes.
-         If we have tracked the contents of the addend register,
-         we can handle this as well.  */
-      else if (is_rr (insn, op_a, &rt, &ra, &rb))
-	{
-	  if (rt == data->cfa_reg && ra == data->cfa_reg)
-	    {
-	      if (reg_immed[rb] != 0)
-		data->cfa_offset -= reg_immed[rb];
-	      else
-		data->cfa_reg = -1;  /* We don't know the CFA any more.  */
-	    }
-
-	  if (rt == SPU_RAW_SP_REGNUM && ra == SPU_RAW_SP_REGNUM
-	      && !found_sp)
-	    {
-	      found_sp = 1;
-	      prolog_pc = pc + 4;
-
-	      if (reg_immed[rb] != 0)
-		data->size = -reg_immed[rb];
-	    }
-	}
-
-      /* We need to track IL and ILA used to load immediate constants
-         in case they are later used as input to an A instruction.  */
-      else if (is_ri16 (insn, op_il, &rt, &immed))
-	{
-	  reg_immed[rt] = immed;
-
-	  if (rt == SPU_RAW_SP_REGNUM && !found_sp)
-	    found_sp = 1;
-	}
-
-      else if (is_ri18 (insn, op_ila, &rt, &immed))
-	{
-	  reg_immed[rt] = immed & 0x3ffff;
-
-	  if (rt == SPU_RAW_SP_REGNUM && !found_sp)
-	    found_sp = 1;
-	}
-
-      /* STQD is used to save registers to the stack.  */
-      else if (is_ri10 (insn, op_stqd, &rt, &ra, &immed))
-	{
-	  if (ra == data->cfa_reg)
-	    data->reg_offset[rt] = data->cfa_offset - (immed << 4);
-
-	  if (ra == data->cfa_reg && rt == SPU_LR_REGNUM
-              && !found_lr)
-	    {
-	      found_lr = 1;
-	      prolog_pc = pc + 4;
-	    }
-
-	  if (ra == SPU_RAW_SP_REGNUM
-	      && (found_sp? immed == 0 : rt == SPU_RAW_SP_REGNUM)
-	      && !found_bc)
-	    {
-	      found_bc = 1;
-	      prolog_pc = pc + 4;
-	    }
-	}
-
-      /* _start uses SELB to set up the stack pointer.  */
-      else if (is_rrr (insn, op_selb, &rt, &ra, &rb, &rc))
-	{
-	  if (rt == SPU_RAW_SP_REGNUM && !found_sp)
-	    found_sp = 1;
-	}
-
-      /* We terminate if we find a branch.  */
-      else if (is_branch (insn, &immed, &ra))
-	break;
-    }
-
-
-  /* If we successfully parsed until here, and didn't find any instruction
-     modifying SP, we assume we have a frameless function.  */
-  if (!found_sp)
-    data->size = 0;
-
-  /* Return cooked instead of raw SP.  */
-  if (data->cfa_reg == SPU_RAW_SP_REGNUM)
-    data->cfa_reg = SPU_SP_REGNUM;
-
-  return prolog_pc;
-}
-
-/* Return the first instruction after the prologue starting at PC.  */
-static CORE_ADDR
-spu_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
-{
-  struct spu_prologue_data data;
-  return spu_analyze_prologue (gdbarch, pc, (CORE_ADDR)-1, &data);
-}
-
-/* Return the frame pointer in use at address PC.  */
-static void
-spu_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc,
-			   int *reg, LONGEST *offset)
-{
-  struct spu_prologue_data data;
-  spu_analyze_prologue (gdbarch, pc, (CORE_ADDR)-1, &data);
-
-  if (data.size != -1 && data.cfa_reg != -1)
-    {
-      /* The 'frame pointer' address is CFA minus frame size.  */
-      *reg = data.cfa_reg;
-      *offset = data.cfa_offset - data.size;
-    }
-  else
-    {
-      /* ??? We don't really know ...  */
-      *reg = SPU_SP_REGNUM;
-      *offset = 0;
-    }
-}
-
-/* Implement the stack_frame_destroyed_p gdbarch method.
-
-   1) scan forward from the point of execution:
-       a) If you find an instruction that modifies the stack pointer
-          or transfers control (except a return), execution is not in
-          an epilogue, return.
-       b) Stop scanning if you find a return instruction or reach the
-          end of the function or reach the hard limit for the size of
-          an epilogue.
-   2) scan backward from the point of execution:
-        a) If you find an instruction that modifies the stack pointer,
-            execution *is* in an epilogue, return.
-        b) Stop scanning if you reach an instruction that transfers
-           control or the beginning of the function or reach the hard
-           limit for the size of an epilogue.  */
-
-static int
-spu_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  CORE_ADDR scan_pc, func_start, func_end, epilogue_start, epilogue_end;
-  bfd_byte buf[4];
-  unsigned int insn;
-  int rt, ra, rb, immed;
-
-  /* Find the search limits based on function boundaries and hard limit.
-     We assume the epilogue can be up to 64 instructions long.  */
-
-  const int spu_max_epilogue_size = 64 * 4;
-
-  if (!find_pc_partial_function (pc, NULL, &func_start, &func_end))
-    return 0;
-
-  if (pc - func_start < spu_max_epilogue_size)
-    epilogue_start = func_start;
-  else
-    epilogue_start = pc - spu_max_epilogue_size;
-
-  if (func_end - pc < spu_max_epilogue_size)
-    epilogue_end = func_end;
-  else
-    epilogue_end = pc + spu_max_epilogue_size;
-
-  /* Scan forward until next 'bi $0'.  */
-
-  for (scan_pc = pc; scan_pc < epilogue_end; scan_pc += 4)
-    {
-      if (target_read_memory (scan_pc, buf, 4))
-	return 0;
-      insn = extract_unsigned_integer (buf, 4, byte_order);
-
-      if (is_branch (insn, &immed, &ra))
-	{
-	  if (immed == 0 && ra == SPU_LR_REGNUM)
-	    break;
-
-	  return 0;
-	}
-
-      if (is_ri10 (insn, op_ai, &rt, &ra, &immed)
-	  || is_rr (insn, op_a, &rt, &ra, &rb)
-	  || is_ri10 (insn, op_lqd, &rt, &ra, &immed))
-	{
-	  if (rt == SPU_RAW_SP_REGNUM)
-	    return 0;
-	}
-    }
-
-  if (scan_pc >= epilogue_end)
-    return 0;
-
-  /* Scan backward until adjustment to stack pointer (R1).  */
-
-  for (scan_pc = pc - 4; scan_pc >= epilogue_start; scan_pc -= 4)
-    {
-      if (target_read_memory (scan_pc, buf, 4))
-	return 0;
-      insn = extract_unsigned_integer (buf, 4, byte_order);
-
-      if (is_branch (insn, &immed, &ra))
-	return 0;
-
-      if (is_ri10 (insn, op_ai, &rt, &ra, &immed)
-	  || is_rr (insn, op_a, &rt, &ra, &rb)
-	  || is_ri10 (insn, op_lqd, &rt, &ra, &immed))
-	{
-	  if (rt == SPU_RAW_SP_REGNUM)
-	    return 1;
-	}
-    }
-
-  return 0;
-}
-
-
-/* Normal stack frames.  */
-
-struct spu_unwind_cache
-{
-  CORE_ADDR func;
-  CORE_ADDR frame_base;
-  CORE_ADDR local_base;
-
-  struct trad_frame_saved_reg *saved_regs;
-};
-
-static struct spu_unwind_cache *
-spu_frame_unwind_cache (struct frame_info *this_frame,
-			void **this_prologue_cache)
-{
-  struct gdbarch *gdbarch = get_frame_arch (this_frame);
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  struct spu_unwind_cache *info;
-  struct spu_prologue_data data;
-  CORE_ADDR id = tdep->id;
-  gdb_byte buf[16];
-
-  if (*this_prologue_cache)
-    return (struct spu_unwind_cache *) *this_prologue_cache;
-
-  info = FRAME_OBSTACK_ZALLOC (struct spu_unwind_cache);
-  *this_prologue_cache = info;
-  info->saved_regs = trad_frame_alloc_saved_regs (this_frame);
-  info->frame_base = 0;
-  info->local_base = 0;
-
-  /* Find the start of the current function, and analyze its prologue.  */
-  info->func = get_frame_func (this_frame);
-  if (info->func == 0)
-    {
-      /* Fall back to using the current PC as frame ID.  */
-      info->func = get_frame_pc (this_frame);
-      data.size = -1;
-    }
-  else
-    spu_analyze_prologue (gdbarch, info->func, get_frame_pc (this_frame),
-			  &data);
-
-  /* If successful, use prologue analysis data.  */
-  if (data.size != -1 && data.cfa_reg != -1)
-    {
-      CORE_ADDR cfa;
-      int i;
-
-      /* Determine CFA via unwound CFA_REG plus CFA_OFFSET.  */
-      get_frame_register (this_frame, data.cfa_reg, buf);
-      cfa = extract_unsigned_integer (buf, 4, byte_order) + data.cfa_offset;
-      cfa = SPUADDR (id, cfa);
-
-      /* Call-saved register slots.  */
-      for (i = 0; i < SPU_NUM_GPRS; i++)
-	if (i == SPU_LR_REGNUM
-	    || (i >= SPU_SAVED1_REGNUM && i <= SPU_SAVEDN_REGNUM))
-	  if (data.reg_offset[i] != -1)
-	    info->saved_regs[i].addr = cfa - data.reg_offset[i];
-
-      /* Frame bases.  */
-      info->frame_base = cfa;
-      info->local_base = cfa - data.size;
-    }
-
-  /* Otherwise, fall back to reading the backchain link.  */
-  else
-    {
-      CORE_ADDR reg;
-      LONGEST backchain;
-      ULONGEST lslr;
-      int status;
-
-      /* Get local store limit.  */
-      lslr = get_frame_register_unsigned (this_frame, SPU_LSLR_REGNUM);
-      if (!lslr)
-	lslr = (ULONGEST) -1;
-
-      /* Get the backchain.  */
-      reg = get_frame_register_unsigned (this_frame, SPU_SP_REGNUM);
-      status = safe_read_memory_integer (SPUADDR (id, reg), 4, byte_order,
-					 &backchain);
-
-      /* A zero backchain terminates the frame chain.  Also, sanity
-         check against the local store size limit.  */
-      if (status && backchain > 0 && backchain <= lslr)
-	{
-	  /* Assume the link register is saved into its slot.  */
-	  if (backchain + 16 <= lslr)
-	    info->saved_regs[SPU_LR_REGNUM].addr = SPUADDR (id,
-							    backchain + 16);
-
-          /* Frame bases.  */
-	  info->frame_base = SPUADDR (id, backchain);
-	  info->local_base = SPUADDR (id, reg);
-	}
-    }
-
-  /* If we didn't find a frame, we cannot determine SP / return address.  */
-  if (info->frame_base == 0)
-    return info;
-
-  /* The previous SP is equal to the CFA.  */
-  trad_frame_set_value (info->saved_regs, SPU_SP_REGNUM,
-			SPUADDR_ADDR (info->frame_base));
-
-  /* Read full contents of the unwound link register in order to
-     be able to determine the return address.  */
-  if (trad_frame_addr_p (info->saved_regs, SPU_LR_REGNUM))
-    target_read_memory (info->saved_regs[SPU_LR_REGNUM].addr, buf, 16);
-  else
-    get_frame_register (this_frame, SPU_LR_REGNUM, buf);
-
-  /* Normally, the return address is contained in the slot 0 of the
-     link register, and slots 1-3 are zero.  For an overlay return,
-     slot 0 contains the address of the overlay manager return stub,
-     slot 1 contains the partition number of the overlay section to
-     be returned to, and slot 2 contains the return address within
-     that section.  Return the latter address in that case.  */
-  if (extract_unsigned_integer (buf + 8, 4, byte_order) != 0)
-    trad_frame_set_value (info->saved_regs, SPU_PC_REGNUM,
-			  extract_unsigned_integer (buf + 8, 4, byte_order));
-  else
-    trad_frame_set_value (info->saved_regs, SPU_PC_REGNUM,
-			  extract_unsigned_integer (buf, 4, byte_order));
- 
-  return info;
-}
-
-static void
-spu_frame_this_id (struct frame_info *this_frame,
-		   void **this_prologue_cache, struct frame_id *this_id)
-{
-  struct spu_unwind_cache *info =
-    spu_frame_unwind_cache (this_frame, this_prologue_cache);
-
-  if (info->frame_base == 0)
-    return;
-
-  *this_id = frame_id_build (info->frame_base, info->func);
-}
-
-static struct value *
-spu_frame_prev_register (struct frame_info *this_frame,
-			 void **this_prologue_cache, int regnum)
-{
-  struct spu_unwind_cache *info
-    = spu_frame_unwind_cache (this_frame, this_prologue_cache);
-
-  /* Special-case the stack pointer.  */
-  if (regnum == SPU_RAW_SP_REGNUM)
-    regnum = SPU_SP_REGNUM;
-
-  return trad_frame_get_prev_register (this_frame, info->saved_regs, regnum);
-}
-
-static const struct frame_unwind spu_frame_unwind = {
-  NORMAL_FRAME,
-  default_frame_unwind_stop_reason,
-  spu_frame_this_id,
-  spu_frame_prev_register,
-  NULL,
-  default_frame_sniffer
-};
-
-static CORE_ADDR
-spu_frame_base_address (struct frame_info *this_frame, void **this_cache)
-{
-  struct spu_unwind_cache *info
-    = spu_frame_unwind_cache (this_frame, this_cache);
-  return info->local_base;
-}
-
-static const struct frame_base spu_frame_base = {
-  &spu_frame_unwind,
-  spu_frame_base_address,
-  spu_frame_base_address,
-  spu_frame_base_address
-};
-
-static CORE_ADDR
-spu_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
-{
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-  CORE_ADDR pc = frame_unwind_register_unsigned (next_frame, SPU_PC_REGNUM);
-  /* Mask off interrupt enable bit.  */
-  return SPUADDR (tdep->id, pc & -4);
-}
-
-static CORE_ADDR
-spu_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
-{
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-  CORE_ADDR sp = frame_unwind_register_unsigned (next_frame, SPU_SP_REGNUM);
-  return SPUADDR (tdep->id, sp);
-}
-
-static CORE_ADDR
-spu_read_pc (readable_regcache *regcache)
-{
-  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
-  ULONGEST pc;
-
-  regcache->cooked_read (SPU_PC_REGNUM, &pc);
-  /* Mask off interrupt enable bit.  */
-  return SPUADDR (tdep->id, pc & -4);
-}
-
-static void
-spu_write_pc (struct regcache *regcache, CORE_ADDR pc)
-{
-  /* Keep interrupt enabled state unchanged.  */
-  ULONGEST old_pc;
-
-  regcache_cooked_read_unsigned (regcache, SPU_PC_REGNUM, &old_pc);
-  regcache_cooked_write_unsigned (regcache, SPU_PC_REGNUM,
-				  (SPUADDR_ADDR (pc) & -4) | (old_pc & 3));
-}
-
-
-/* Cell/B.E. cross-architecture unwinder support.  */
-
-struct spu2ppu_cache
-{
-  struct frame_id frame_id;
-  readonly_detached_regcache *regcache;
-};
-
-static struct gdbarch *
-spu2ppu_prev_arch (struct frame_info *this_frame, void **this_cache)
-{
-  struct spu2ppu_cache *cache = (struct spu2ppu_cache *) *this_cache;
-  return cache->regcache->arch ();
-}
-
-static void
-spu2ppu_this_id (struct frame_info *this_frame,
-		 void **this_cache, struct frame_id *this_id)
-{
-  struct spu2ppu_cache *cache = (struct spu2ppu_cache *) *this_cache;
-  *this_id = cache->frame_id;
-}
-
-static struct value *
-spu2ppu_prev_register (struct frame_info *this_frame,
-		       void **this_cache, int regnum)
-{
-  struct spu2ppu_cache *cache = (struct spu2ppu_cache *) *this_cache;
-  struct gdbarch *gdbarch = cache->regcache->arch ();
-  gdb_byte *buf;
-
-  buf = (gdb_byte *) alloca (register_size (gdbarch, regnum));
-  cache->regcache->cooked_read (regnum, buf);
-  return frame_unwind_got_bytes (this_frame, regnum, buf);
-}
-
-static int
-spu2ppu_sniffer (const struct frame_unwind *self,
-		 struct frame_info *this_frame, void **this_prologue_cache)
-{
-  struct gdbarch *gdbarch = get_frame_arch (this_frame);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  CORE_ADDR base, func, backchain;
-  gdb_byte buf[4];
-
-  if (gdbarch_bfd_arch_info (target_gdbarch ())->arch == bfd_arch_spu)
-    return 0;
-
-  base = get_frame_sp (this_frame);
-  func = get_frame_pc (this_frame);
-  if (target_read_memory (base, buf, 4))
-    return 0;
-  backchain = extract_unsigned_integer (buf, 4, byte_order);
-
-  if (!backchain)
-    {
-      struct frame_info *fi;
-
-      struct spu2ppu_cache *cache
-	= FRAME_OBSTACK_CALLOC (1, struct spu2ppu_cache);
-
-      cache->frame_id = frame_id_build (base + 16, func);
-
-      for (fi = get_next_frame (this_frame); fi; fi = get_next_frame (fi))
-	if (gdbarch_bfd_arch_info (get_frame_arch (fi))->arch != bfd_arch_spu)
-	  break;
-
-      if (fi)
-	{
-	  cache->regcache = frame_save_as_regcache (fi).release ();
-	  *this_prologue_cache = cache;
-	  return 1;
-	}
-      else
-	{
-	  struct regcache *regcache;
-	  regcache = get_thread_arch_regcache (inferior_ptid, target_gdbarch ());
-	  cache->regcache = new readonly_detached_regcache (*regcache);
-	  *this_prologue_cache = cache;
-	  return 1;
-	}
-    }
-
-  return 0;
-}
-
-static void
-spu2ppu_dealloc_cache (struct frame_info *self, void *this_cache)
-{
-  struct spu2ppu_cache *cache = (struct spu2ppu_cache *) this_cache;
-  delete cache->regcache;
-}
-
-static const struct frame_unwind spu2ppu_unwind = {
-  ARCH_FRAME,
-  default_frame_unwind_stop_reason,
-  spu2ppu_this_id,
-  spu2ppu_prev_register,
-  NULL,
-  spu2ppu_sniffer,
-  spu2ppu_dealloc_cache,
-  spu2ppu_prev_arch,
-};
-
-
-/* Function calling convention.  */
-
-static CORE_ADDR
-spu_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
-{
-  return sp & ~15;
-}
-
-static CORE_ADDR
-spu_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr,
-		     struct value **args, int nargs, struct type *value_type,
-		     CORE_ADDR *real_pc, CORE_ADDR *bp_addr,
-		     struct regcache *regcache)
-{
-  /* Allocate space sufficient for a breakpoint, keeping the stack aligned.  */
-  sp = (sp - 4) & ~15;
-  /* Store the address of that breakpoint */
-  *bp_addr = sp;
-  /* The call starts at the callee's entry point.  */
-  *real_pc = funaddr;
-
-  return sp;
-}
-
-static int
-spu_scalar_value_p (struct type *type)
-{
-  switch (TYPE_CODE (type))
-    {
-    case TYPE_CODE_INT:
-    case TYPE_CODE_ENUM:
-    case TYPE_CODE_RANGE:
-    case TYPE_CODE_CHAR:
-    case TYPE_CODE_BOOL:
-    case TYPE_CODE_PTR:
-    case TYPE_CODE_REF:
-    case TYPE_CODE_RVALUE_REF:
-      return TYPE_LENGTH (type) <= 16;
-
-    default:
-      return 0;
-    }
-}
-
-static void
-spu_value_to_regcache (struct regcache *regcache, int regnum,
-		       struct type *type, const gdb_byte *in)
-{
-  int len = TYPE_LENGTH (type);
-
-  if (spu_scalar_value_p (type))
-    {
-      int preferred_slot = len < 4 ? 4 - len : 0;
-      regcache->cooked_write_part (regnum, preferred_slot, len, in);
-    }
-  else
-    {
-      while (len >= 16)
-	{
-	  regcache->cooked_write (regnum++, in);
-	  in += 16;
-	  len -= 16;
-	}
-
-      if (len > 0)
-	regcache->cooked_write_part (regnum, 0, len, in);
-    }
-}
-
-static void
-spu_regcache_to_value (struct regcache *regcache, int regnum,
-		       struct type *type, gdb_byte *out)
-{
-  int len = TYPE_LENGTH (type);
-
-  if (spu_scalar_value_p (type))
-    {
-      int preferred_slot = len < 4 ? 4 - len : 0;
-      regcache->cooked_read_part (regnum, preferred_slot, len, out);
-    }
-  else
-    {
-      while (len >= 16)
-	{
-	  regcache->cooked_read (regnum++, out);
-	  out += 16;
-	  len -= 16;
-	}
-
-      if (len > 0)
-	regcache->cooked_read_part (regnum, 0, len, out);
-    }
-}
-
-static CORE_ADDR
-spu_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
-		     struct regcache *regcache, CORE_ADDR bp_addr,
-		     int nargs, struct value **args, CORE_ADDR sp,
-		     function_call_return_method return_method,
-		     CORE_ADDR struct_addr)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  CORE_ADDR sp_delta;
-  int i;
-  int regnum = SPU_ARG1_REGNUM;
-  int stack_arg = -1;
-  gdb_byte buf[16];
-
-  /* Set the return address.  */
-  memset (buf, 0, sizeof buf);
-  store_unsigned_integer (buf, 4, byte_order, SPUADDR_ADDR (bp_addr));
-  regcache->cooked_write (SPU_LR_REGNUM, buf);
-
-  /* If STRUCT_RETURN is true, then the struct return address (in
-     STRUCT_ADDR) will consume the first argument-passing register.
-     Both adjust the register count and store that value.  */
-  if (return_method == return_method_struct)
-    {
-      memset (buf, 0, sizeof buf);
-      store_unsigned_integer (buf, 4, byte_order, SPUADDR_ADDR (struct_addr));
-      regcache->cooked_write (regnum++, buf);
-    }
-
-  /* Fill in argument registers.  */
-  for (i = 0; i < nargs; i++)
-    {
-      struct value *arg = args[i];
-      struct type *type = check_typedef (value_type (arg));
-      const gdb_byte *contents = value_contents (arg);
-      int n_regs = align_up (TYPE_LENGTH (type), 16) / 16;
-
-      /* If the argument doesn't wholly fit into registers, it and
-	 all subsequent arguments go to the stack.  */
-      if (regnum + n_regs - 1 > SPU_ARGN_REGNUM)
-	{
-	  stack_arg = i;
-	  break;
-	}
-
-      spu_value_to_regcache (regcache, regnum, type, contents);
-      regnum += n_regs;
-    }
-
-  /* Overflow arguments go to the stack.  */
-  if (stack_arg != -1)
-    {
-      CORE_ADDR ap;
-
-      /* Allocate all required stack size.  */
-      for (i = stack_arg; i < nargs; i++)
-	{
-	  struct type *type = check_typedef (value_type (args[i]));
-	  sp -= align_up (TYPE_LENGTH (type), 16);
-	}
-
-      /* Fill in stack arguments.  */
-      ap = sp;
-      for (i = stack_arg; i < nargs; i++)
-	{
-	  struct value *arg = args[i];
-	  struct type *type = check_typedef (value_type (arg));
-	  int len = TYPE_LENGTH (type);
-	  int preferred_slot;
-	  
-	  if (spu_scalar_value_p (type))
-	    preferred_slot = len < 4 ? 4 - len : 0;
-	  else
-	    preferred_slot = 0;
-
-	  target_write_memory (ap + preferred_slot, value_contents (arg), len);
-	  ap += align_up (TYPE_LENGTH (type), 16);
-	}
-    }
-
-  /* Allocate stack frame header.  */
-  sp -= 32;
-
-  /* Store stack back chain.  */
-  regcache->cooked_read (SPU_RAW_SP_REGNUM, buf);
-  target_write_memory (sp, buf, 16);
-
-  /* Finally, update all slots of the SP register.  */
-  sp_delta = sp - extract_unsigned_integer (buf, 4, byte_order);
-  for (i = 0; i < 4; i++)
-    {
-      CORE_ADDR sp_slot = extract_unsigned_integer (buf + 4*i, 4, byte_order);
-      store_unsigned_integer (buf + 4*i, 4, byte_order, sp_slot + sp_delta);
-    }
-  regcache->cooked_write (SPU_RAW_SP_REGNUM, buf);
-
-  return sp;
-}
-
-static struct frame_id
-spu_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
-{
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-  CORE_ADDR pc = get_frame_register_unsigned (this_frame, SPU_PC_REGNUM);
-  CORE_ADDR sp = get_frame_register_unsigned (this_frame, SPU_SP_REGNUM);
-  return frame_id_build (SPUADDR (tdep->id, sp), SPUADDR (tdep->id, pc & -4));
-}
-
-/* Function return value access.  */
-
-static enum return_value_convention
-spu_return_value (struct gdbarch *gdbarch, struct value *function,
-		  struct type *type, struct regcache *regcache,
-		  gdb_byte *out, const gdb_byte *in)
-{
-  struct type *func_type = function ? value_type (function) : NULL;
-  enum return_value_convention rvc;
-  int opencl_vector = 0;
-
-  if (func_type)
-    {
-      func_type = check_typedef (func_type);
-
-      if (TYPE_CODE (func_type) == TYPE_CODE_PTR)
-	func_type = check_typedef (TYPE_TARGET_TYPE (func_type));
-
-      if (TYPE_CODE (func_type) == TYPE_CODE_FUNC
-	  && TYPE_CALLING_CONVENTION (func_type) == DW_CC_GDB_IBM_OpenCL
-	  && TYPE_CODE (type) == TYPE_CODE_ARRAY
-	  && TYPE_VECTOR (type))
-	opencl_vector = 1;
-    }
-
-  if (TYPE_LENGTH (type) <= (SPU_ARGN_REGNUM - SPU_ARG1_REGNUM + 1) * 16)
-    rvc = RETURN_VALUE_REGISTER_CONVENTION;
-  else
-    rvc = RETURN_VALUE_STRUCT_CONVENTION;
-
-  if (in)
-    {
-      switch (rvc)
-	{
-	case RETURN_VALUE_REGISTER_CONVENTION:
-	  if (opencl_vector && TYPE_LENGTH (type) == 2)
-	    regcache->cooked_write_part (SPU_ARG1_REGNUM, 2, 2, in);
-	  else
-	    spu_value_to_regcache (regcache, SPU_ARG1_REGNUM, type, in);
-	  break;
-
-	case RETURN_VALUE_STRUCT_CONVENTION:
-	  error (_("Cannot set function return value."));
-	  break;
-	}
-    }
-  else if (out)
-    {
-      switch (rvc)
-	{
-	case RETURN_VALUE_REGISTER_CONVENTION:
-	  if (opencl_vector && TYPE_LENGTH (type) == 2)
-	    regcache->cooked_read_part (SPU_ARG1_REGNUM, 2, 2, out);
-	  else
-	    spu_regcache_to_value (regcache, SPU_ARG1_REGNUM, type, out);
-	  break;
-
-	case RETURN_VALUE_STRUCT_CONVENTION:
-	  error (_("Function return value unknown."));
-	  break;
-	}
-    }
-
-  return rvc;
-}
-
-
-/* Breakpoints.  */
-constexpr gdb_byte spu_break_insn[] = { 0x00, 0x00, 0x3f, 0xff };
-
-typedef BP_MANIPULATION (spu_break_insn) spu_breakpoint;
-
-static int
-spu_memory_remove_breakpoint (struct gdbarch *gdbarch,
-			      struct bp_target_info *bp_tgt)
-{
-  /* We work around a problem in combined Cell/B.E. debugging here.  Consider
-     that in a combined application, we have some breakpoints inserted in SPU
-     code, and now the application forks (on the PPU side).  GDB common code
-     will assume that the fork system call copied all breakpoints into the new
-     process' address space, and that all those copies now need to be removed
-     (see breakpoint.c:detach_breakpoints).
-
-     While this is certainly true for PPU side breakpoints, it is not true
-     for SPU side breakpoints.  fork will clone the SPU context file
-     descriptors, so that all the existing SPU contexts are in accessible
-     in the new process.  However, the contents of the SPU contexts themselves
-     are *not* cloned.  Therefore the effect of detach_breakpoints is to
-     remove SPU breakpoints from the *original* SPU context's local store
-     -- this is not the correct behaviour.
-
-     The workaround is to check whether the PID we are asked to remove this
-     breakpoint from (i.e. inferior_ptid.pid ()) is different from the
-     PID of the current inferior (i.e. current_inferior ()->pid).  This is only
-     true in the context of detach_breakpoints.  If so, we simply do nothing.
-     [ Note that for the fork child process, it does not matter if breakpoints
-     remain inserted, because those SPU contexts are not runnable anyway --
-     the Linux kernel allows only the original process to invoke spu_run.  */
-
-  if (inferior_ptid.pid () != current_inferior ()->pid) 
-    return 0;
-
-  return default_memory_remove_breakpoint (gdbarch, bp_tgt);
-}
-
-
-/* Software single-stepping support.  */
-
-static std::vector<CORE_ADDR>
-spu_software_single_step (struct regcache *regcache)
-{
-  struct gdbarch *gdbarch = regcache->arch ();
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  CORE_ADDR pc, next_pc;
-  unsigned int insn;
-  int offset, reg;
-  gdb_byte buf[4];
-  ULONGEST lslr;
-  std::vector<CORE_ADDR> next_pcs;
-
-  pc = regcache_read_pc (regcache);
-
-  if (target_read_memory (pc, buf, 4))
-    throw_error (MEMORY_ERROR, _("Could not read instruction at %s."),
-		 paddress (gdbarch, pc));
-
-  insn = extract_unsigned_integer (buf, 4, byte_order);
-
-  /* Get local store limit.  */
-  if ((regcache_cooked_read_unsigned (regcache, SPU_LSLR_REGNUM, &lslr)
-       != REG_VALID) || !lslr)
-    lslr = (ULONGEST) -1;
-
-  /* Next sequential instruction is at PC + 4, except if the current
-     instruction is a PPE-assisted call, in which case it is at PC + 8.
-     Wrap around LS limit to be on the safe side.  */
-  if ((insn & 0xffffff00) == 0x00002100)
-    next_pc = (SPUADDR_ADDR (pc) + 8) & lslr;
-  else
-    next_pc = (SPUADDR_ADDR (pc) + 4) & lslr;
-
-  next_pcs.push_back (SPUADDR (SPUADDR_SPU (pc), next_pc));
-
-  if (is_branch (insn, &offset, &reg))
-    {
-      CORE_ADDR target = offset;
-
-      if (reg == SPU_PC_REGNUM)
-	target += SPUADDR_ADDR (pc);
-      else if (reg != -1)
-      {
-	regcache->raw_read_part (reg, 0, 4, buf);
-	target += extract_unsigned_integer (buf, 4, byte_order) & -4;
-      }
-
-      target = target & lslr;
-      if (target != next_pc)
-	next_pcs.push_back (SPUADDR (SPUADDR_SPU (pc), target));
-    }
-
-  return next_pcs;
-}
-
-
-/* Longjmp support.  */
-
-static int
-spu_get_longjmp_target (struct frame_info *frame, CORE_ADDR *pc)
-{
-  struct gdbarch *gdbarch = get_frame_arch (frame);
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  gdb_byte buf[4];
-  CORE_ADDR jb_addr;
-  int optim, unavail;
-
-  /* Jump buffer is pointed to by the argument register $r3.  */
-  if (!get_frame_register_bytes (frame, SPU_ARG1_REGNUM, 0, 4, buf,
-				 &optim, &unavail))
-    return 0;
-
-  jb_addr = extract_unsigned_integer (buf, 4, byte_order);
-  if (target_read_memory (SPUADDR (tdep->id, jb_addr), buf, 4))
-    return 0;
-
-  *pc = extract_unsigned_integer (buf, 4, byte_order);
-  *pc = SPUADDR (tdep->id, *pc);
-  return 1;
-}
-
-
-/* Disassembler.  */
-
-struct spu_dis_asm_info : disassemble_info
-{
-  int id;
-};
-
-static void
-spu_dis_asm_print_address (bfd_vma addr, struct disassemble_info *info)
-{
-  struct spu_dis_asm_info *data = (struct spu_dis_asm_info *) info;
-  gdb_disassembler *di
-    = static_cast<gdb_disassembler *>(info->application_data);
-
-  print_address (di->arch (), SPUADDR (data->id, addr),
-		 (struct ui_file *) info->stream);
-}
-
-static int
-gdb_print_insn_spu (bfd_vma memaddr, struct disassemble_info *info)
-{
-  /* The opcodes disassembler does 18-bit address arithmetic.  Make
-     sure the SPU ID encoded in the high bits is added back when we
-     call print_address.  */
-  struct spu_dis_asm_info spu_info;
-
-  memcpy (&spu_info, info, sizeof (*info));
-  spu_info.id = SPUADDR_SPU (memaddr);
-  spu_info.print_address_func = spu_dis_asm_print_address;
-  return default_print_insn (memaddr, &spu_info);
-}
-
-
-/* Target overlays for the SPU overlay manager.
-
-   See the documentation of simple_overlay_update for how the
-   interface is supposed to work.
-
-   Data structures used by the overlay manager:
-
-   struct ovly_table
-     {
-        u32 vma;
-        u32 size;
-        u32 pos;
-        u32 buf;
-     } _ovly_table[];   -- one entry per overlay section
-
-   struct ovly_buf_table
-     {
-        u32 mapped;
-     } _ovly_buf_table[];  -- one entry per overlay buffer
-
-   _ovly_table should never change.
-
-   Both tables are aligned to a 16-byte boundary, the symbols
-   _ovly_table and _ovly_buf_table are of type STT_OBJECT and their
-   size set to the size of the respective array. buf in _ovly_table is
-   an index into _ovly_buf_table.
-
-   mapped is an index into _ovly_table.  Both the mapped and buf indices start
-   from one to reference the first entry in their respective tables.  */
-
-/* Using the per-objfile private data mechanism, we store for each
-   objfile an array of "struct spu_overlay_table" structures, one
-   for each obj_section of the objfile.  This structure holds two
-   fields, MAPPED_PTR and MAPPED_VAL.  If MAPPED_PTR is zero, this
-   is *not* an overlay section.  If it is non-zero, it represents
-   a target address.  The overlay section is mapped iff the target
-   integer at this location equals MAPPED_VAL.  */
-
-struct spu_overlay_table
-  {
-    CORE_ADDR mapped_ptr;
-    CORE_ADDR mapped_val;
-  };
-
-static objfile_key<spu_overlay_table,
-		   gdb::noop_deleter<spu_overlay_table>> spu_overlay_data;
-
-/* Retrieve the overlay table for OBJFILE.  If not already cached, read
-   the _ovly_table data structure from the target and initialize the
-   spu_overlay_table data structure from it.  */
-static struct spu_overlay_table *
-spu_get_overlay_table (struct objfile *objfile)
-{
-  enum bfd_endian byte_order = bfd_big_endian (objfile->obfd)?
-		   BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
-  struct bound_minimal_symbol ovly_table_msym, ovly_buf_table_msym;
-  CORE_ADDR ovly_table_base, ovly_buf_table_base;
-  unsigned ovly_table_size, ovly_buf_table_size;
-  struct spu_overlay_table *tbl;
-  struct obj_section *osect;
-  gdb_byte *ovly_table;
-  int i;
-
-  tbl = spu_overlay_data.get (objfile);
-  if (tbl)
-    return tbl;
-
-  ovly_table_msym = lookup_minimal_symbol ("_ovly_table", NULL, objfile);
-  if (!ovly_table_msym.minsym)
-    return NULL;
-
-  ovly_buf_table_msym = lookup_minimal_symbol ("_ovly_buf_table",
-					       NULL, objfile);
-  if (!ovly_buf_table_msym.minsym)
-    return NULL;
-
-  ovly_table_base = BMSYMBOL_VALUE_ADDRESS (ovly_table_msym);
-  ovly_table_size = MSYMBOL_SIZE (ovly_table_msym.minsym);
-
-  ovly_buf_table_base = BMSYMBOL_VALUE_ADDRESS (ovly_buf_table_msym);
-  ovly_buf_table_size = MSYMBOL_SIZE (ovly_buf_table_msym.minsym);
-
-  ovly_table = (gdb_byte *) xmalloc (ovly_table_size);
-  read_memory (ovly_table_base, ovly_table, ovly_table_size);
-
-  tbl = OBSTACK_CALLOC (&objfile->objfile_obstack,
-			objfile->sections_end - objfile->sections,
-			struct spu_overlay_table);
-
-  for (i = 0; i < ovly_table_size / 16; i++)
-    {
-      CORE_ADDR vma  = extract_unsigned_integer (ovly_table + 16*i + 0,
-						 4, byte_order);
-      /* Note that this skips the "size" entry, which is at offset
-	 4.  */
-      CORE_ADDR pos  = extract_unsigned_integer (ovly_table + 16*i + 8,
-						 4, byte_order);
-      CORE_ADDR buf  = extract_unsigned_integer (ovly_table + 16*i + 12,
-						 4, byte_order);
-
-      if (buf == 0 || (buf - 1) * 4 >= ovly_buf_table_size)
-	continue;
-
-      ALL_OBJFILE_OSECTIONS (objfile, osect)
-	if (vma == bfd_section_vma (osect->the_bfd_section)
-	    && pos == osect->the_bfd_section->filepos)
-	  {
-	    int ndx = osect - objfile->sections;
-	    tbl[ndx].mapped_ptr = ovly_buf_table_base + (buf - 1) * 4;
-	    tbl[ndx].mapped_val = i + 1;
-	    break;
-	  }
-    }
-
-  xfree (ovly_table);
-  spu_overlay_data.set (objfile, tbl);
-  return tbl;
-}
-
-/* Read _ovly_buf_table entry from the target to dermine whether
-   OSECT is currently mapped, and update the mapped state.  */
-static void
-spu_overlay_update_osect (struct obj_section *osect)
-{
-  enum bfd_endian byte_order = bfd_big_endian (osect->objfile->obfd)?
-		   BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
-  struct spu_overlay_table *ovly_table;
-  CORE_ADDR id, val;
-
-  ovly_table = spu_get_overlay_table (osect->objfile);
-  if (!ovly_table)
-    return;
-
-  ovly_table += osect - osect->objfile->sections;
-  if (ovly_table->mapped_ptr == 0)
-    return;
-
-  id = SPUADDR_SPU (obj_section_addr (osect));
-  val = read_memory_unsigned_integer (SPUADDR (id, ovly_table->mapped_ptr),
-				      4, byte_order);
-  osect->ovly_mapped = (val == ovly_table->mapped_val);
-}
-
-/* If OSECT is NULL, then update all sections' mapped state.
-   If OSECT is non-NULL, then update only OSECT's mapped state.  */
-static void
-spu_overlay_update (struct obj_section *osect)
-{
-  /* Just one section.  */
-  if (osect)
-    spu_overlay_update_osect (osect);
-
-  /* All sections.  */
-  else
-    {
-      for (objfile *objfile : current_program_space->objfiles ())
-	ALL_OBJFILE_OSECTIONS (objfile, osect)
-	  if (section_is_overlay (osect))
-	    spu_overlay_update_osect (osect);
-    }
-}
-
-/* Whenever a new objfile is loaded, read the target's _ovly_table.
-   If there is one, go through all sections and make sure for non-
-   overlay sections LMA equals VMA, while for overlay sections LMA
-   is larger than SPU_OVERLAY_LMA.  */
-static void
-spu_overlay_new_objfile (struct objfile *objfile)
-{
-  struct spu_overlay_table *ovly_table;
-  struct obj_section *osect;
-
-  /* If we've already touched this file, do nothing.  */
-  if (!objfile || spu_overlay_data.get (objfile) != NULL)
-    return;
-
-  /* Consider only SPU objfiles.  */
-  if (bfd_get_arch (objfile->obfd) != bfd_arch_spu)
-    return;
-
-  /* Check if this objfile has overlays.  */
-  ovly_table = spu_get_overlay_table (objfile);
-  if (!ovly_table)
-    return;
-
-  /* Now go and fiddle with all the LMAs.  */
-  ALL_OBJFILE_OSECTIONS (objfile, osect)
-    {
-      asection *bsect = osect->the_bfd_section;
-      int ndx = osect - objfile->sections;
-
-      if (ovly_table[ndx].mapped_ptr == 0)
-	bfd_set_section_lma (bsect, bfd_section_vma (bsect));
-      else
-	bfd_set_section_lma (bsect, SPU_OVERLAY_LMA + bsect->filepos);
-    }
-}
-
-
-/* Insert temporary breakpoint on "main" function of newly loaded
-   SPE context OBJFILE.  */
-static void
-spu_catch_start (struct objfile *objfile)
-{
-  struct bound_minimal_symbol minsym;
-  struct compunit_symtab *cust;
-  CORE_ADDR pc;
-
-  /* Do this only if requested by "set spu stop-on-load on".  */
-  if (!spu_stop_on_load_p)
-    return;
-
-  /* Consider only SPU objfiles.  */
-  if (!objfile || bfd_get_arch (objfile->obfd) != bfd_arch_spu)
-    return;
-
-  /* The main objfile is handled differently.  */
-  if (objfile == symfile_objfile)
-    return;
-
-  /* There can be multiple symbols named "main".  Search for the
-     "main" in *this* objfile.  */
-  minsym = lookup_minimal_symbol ("main", NULL, objfile);
-  if (!minsym.minsym)
-    return;
-
-  /* If we have debugging information, try to use it -- this
-     will allow us to properly skip the prologue.  */
-  pc = BMSYMBOL_VALUE_ADDRESS (minsym);
-  cust
-    = find_pc_sect_compunit_symtab (pc, MSYMBOL_OBJ_SECTION (minsym.objfile,
-							     minsym.minsym));
-  if (cust != NULL)
-    {
-      const struct blockvector *bv = COMPUNIT_BLOCKVECTOR (cust);
-      const struct block *block = BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK);
-      struct symbol *sym;
-      struct symtab_and_line sal;
-
-      sym = block_lookup_symbol (block, "main",
-				 symbol_name_match_type::SEARCH_NAME,
-				 VAR_DOMAIN);
-      if (sym)
-	{
-	  fixup_symbol_section (sym, objfile);
-	  sal = find_function_start_sal (sym, 1);
-	  pc = sal.pc;
-	}
-    }
-
-  /* Use a numerical address for the set_breakpoint command to avoid having
-     the breakpoint re-set incorrectly.  */
-  event_location_up location = new_address_location (pc, NULL, 0);
-  create_breakpoint (get_objfile_arch (objfile), location.get (),
-		     NULL /* cond_string */, -1 /* thread */,
-		     NULL /* extra_string */,
-		     0 /* parse_condition_and_thread */, 1 /* tempflag */,
-		     bp_breakpoint /* type_wanted */,
-		     0 /* ignore_count */,
-		     AUTO_BOOLEAN_FALSE /* pending_break_support */,
-		     &bkpt_breakpoint_ops /* ops */, 0 /* from_tty */,
-		     1 /* enabled */, 0 /* internal  */, 0);
-}
-
-
-/* Look up OBJFILE loaded into FRAME's SPU context.  */
-static struct objfile *
-spu_objfile_from_frame (struct frame_info *frame)
-{
-  struct gdbarch *gdbarch = get_frame_arch (frame);
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
-  if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
-    return NULL;
-
-  for (objfile *obj : current_program_space->objfiles ())
-    {
-      if (obj->sections != obj->sections_end
-	  && SPUADDR_SPU (obj_section_addr (obj->sections)) == tdep->id)
-	return obj;
-    }
-
-  return NULL;
-}
-
-/* Flush cache for ea pointer access if available.  */
-static void
-flush_ea_cache (void)
-{
-  struct bound_minimal_symbol msymbol;
-  struct objfile *obj;
-
-  if (!has_stack_frames ())
-    return;
-
-  obj = spu_objfile_from_frame (get_current_frame ());
-  if (obj == NULL)
-    return;
-
-  /* Lookup inferior function __cache_flush.  */
-  msymbol = lookup_minimal_symbol ("__cache_flush", NULL, obj);
-  if (msymbol.minsym != NULL)
-    {
-      struct type *type;
-      CORE_ADDR addr;
-
-      type = objfile_type (obj)->builtin_void;
-      type = lookup_function_type (type);
-      type = lookup_pointer_type (type);
-      addr = BMSYMBOL_VALUE_ADDRESS (msymbol);
-
-      call_function_by_hand (value_from_pointer (type, addr), NULL, {});
-    }
-}
-
-/* This handler is called when the inferior has stopped.  If it is stopped in
-   SPU architecture then flush the ea cache if used.  */
-static void
-spu_attach_normal_stop (struct bpstats *bs, int print_frame)
-{
-  if (!spu_auto_flush_cache_p)
-    return;
-
-  /* Temporarily reset spu_auto_flush_cache_p to avoid recursively
-     re-entering this function when __cache_flush stops.  */
-  spu_auto_flush_cache_p = 0;
-  flush_ea_cache ();
-  spu_auto_flush_cache_p = 1;
-}
-
-
-/* "info spu" commands.  */
-
-static void
-info_spu_event_command (const char *args, int from_tty)
-{
-  struct frame_info *frame = get_selected_frame (NULL);
-  ULONGEST event_status = 0;
-  ULONGEST event_mask = 0;
-  gdb_byte buf[100];
-  char annex[32];
-  LONGEST len;
-  int id;
-
-  if (gdbarch_bfd_arch_info (get_frame_arch (frame))->arch != bfd_arch_spu)
-    error (_("\"info spu\" is only supported on the SPU architecture."));
-
-  id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
-
-  xsnprintf (annex, sizeof annex, "%d/event_status", id);
-  len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-		     buf, 0, (sizeof (buf) - 1));
-  if (len <= 0)
-    error (_("Could not read event_status."));
-  buf[len] = '\0';
-  event_status = strtoulst ((char *) buf, NULL, 16);
- 
-  xsnprintf (annex, sizeof annex, "%d/event_mask", id);
-  len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-		     buf, 0, (sizeof (buf) - 1));
-  if (len <= 0)
-    error (_("Could not read event_mask."));
-  buf[len] = '\0';
-  event_mask = strtoulst ((char *) buf, NULL, 16);
- 
-  ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoEvent");
-
-  current_uiout->text (_("Event Status "));
-  current_uiout->field_fmt ("event_status", "0x%s", phex (event_status, 4));
-  current_uiout->text ("\n");
-  current_uiout->text (_("Event Mask   "));
-  current_uiout->field_fmt ("event_mask", "0x%s", phex (event_mask, 4));
-  current_uiout->text ("\n");
-}
-
-static void
-info_spu_signal_command (const char *args, int from_tty)
-{
-  struct frame_info *frame = get_selected_frame (NULL);
-  struct gdbarch *gdbarch = get_frame_arch (frame);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  ULONGEST signal1 = 0;
-  ULONGEST signal1_type = 0;
-  int signal1_pending = 0;
-  ULONGEST signal2 = 0;
-  ULONGEST signal2_type = 0;
-  int signal2_pending = 0;
-  char annex[32];
-  gdb_byte buf[100];
-  LONGEST len;
-  int id;
-
-  if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
-    error (_("\"info spu\" is only supported on the SPU architecture."));
-
-  id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
-
-  xsnprintf (annex, sizeof annex, "%d/signal1", id);
-  len = target_read (current_top_target (), TARGET_OBJECT_SPU,
-		     annex, buf, 0, 4);
-  if (len < 0)
-    error (_("Could not read signal1."));
-  else if (len == 4)
-    {
-      signal1 = extract_unsigned_integer (buf, 4, byte_order);
-      signal1_pending = 1;
-    }
-    
-  xsnprintf (annex, sizeof annex, "%d/signal1_type", id);
-  len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-		     buf, 0, (sizeof (buf) - 1));
-  if (len <= 0)
-    error (_("Could not read signal1_type."));
-  buf[len] = '\0';
-  signal1_type = strtoulst ((char *) buf, NULL, 16);
-
-  xsnprintf (annex, sizeof annex, "%d/signal2", id);
-  len = target_read (current_top_target (), TARGET_OBJECT_SPU,
-		     annex, buf, 0, 4);
-  if (len < 0)
-    error (_("Could not read signal2."));
-  else if (len == 4)
-    {
-      signal2 = extract_unsigned_integer (buf, 4, byte_order);
-      signal2_pending = 1;
-    }
-    
-  xsnprintf (annex, sizeof annex, "%d/signal2_type", id);
-  len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-		     buf, 0, (sizeof (buf) - 1));
-  if (len <= 0)
-    error (_("Could not read signal2_type."));
-  buf[len] = '\0';
-  signal2_type = strtoulst ((char *) buf, NULL, 16);
-
-  ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoSignal");
-
-  if (current_uiout->is_mi_like_p ())
-    {
-      current_uiout->field_signed ("signal1_pending", signal1_pending);
-      current_uiout->field_fmt ("signal1", "0x%s", phex_nz (signal1, 4));
-      current_uiout->field_signed ("signal1_type", signal1_type);
-      current_uiout->field_signed ("signal2_pending", signal2_pending);
-      current_uiout->field_fmt ("signal2", "0x%s", phex_nz (signal2, 4));
-      current_uiout->field_signed ("signal2_type", signal2_type);
-    }
-  else
-    {
-      if (signal1_pending)
-	printf_filtered (_("Signal 1 control word 0x%s "), phex (signal1, 4));
-      else
-	printf_filtered (_("Signal 1 not pending "));
-
-      if (signal1_type)
-	printf_filtered (_("(Type Or)\n"));
-      else
-	printf_filtered (_("(Type Overwrite)\n"));
-
-      if (signal2_pending)
-	printf_filtered (_("Signal 2 control word 0x%s "), phex (signal2, 4));
-      else
-	printf_filtered (_("Signal 2 not pending "));
-
-      if (signal2_type)
-	printf_filtered (_("(Type Or)\n"));
-      else
-	printf_filtered (_("(Type Overwrite)\n"));
-    }
-}
-
-static void
-info_spu_mailbox_list (gdb_byte *buf, int nr, enum bfd_endian byte_order,
-		       const char *field, const char *msg)
-{
-  int i;
-
-  if (nr <= 0)
-    return;
-
-  ui_out_emit_table table_emitter (current_uiout, 1, nr, "mbox");
-
-  current_uiout->table_header (32, ui_left, field, msg);
-  current_uiout->table_body ();
-
-  for (i = 0; i < nr; i++)
-    {
-      {
-	ULONGEST val;
-	ui_out_emit_tuple tuple_emitter (current_uiout, "mbox");
-	val = extract_unsigned_integer (buf + 4*i, 4, byte_order);
-	current_uiout->field_fmt (field, "0x%s", phex (val, 4));
-      }
-
-      current_uiout->text ("\n");
-    }
-}
-
-static void
-info_spu_mailbox_command (const char *args, int from_tty)
-{
-  struct frame_info *frame = get_selected_frame (NULL);
-  struct gdbarch *gdbarch = get_frame_arch (frame);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  char annex[32];
-  gdb_byte buf[1024];
-  LONGEST len;
-  int id;
-
-  if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
-    error (_("\"info spu\" is only supported on the SPU architecture."));
-
-  id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
-
-  ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoMailbox");
-
-  xsnprintf (annex, sizeof annex, "%d/mbox_info", id);
-  len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-		     buf, 0, sizeof buf);
-  if (len < 0)
-    error (_("Could not read mbox_info."));
-
-  info_spu_mailbox_list (buf, len / 4, byte_order,
-			 "mbox", "SPU Outbound Mailbox");
-
-  xsnprintf (annex, sizeof annex, "%d/ibox_info", id);
-  len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-		     buf, 0, sizeof buf);
-  if (len < 0)
-    error (_("Could not read ibox_info."));
-
-  info_spu_mailbox_list (buf, len / 4, byte_order,
-			 "ibox", "SPU Outbound Interrupt Mailbox");
-
-  xsnprintf (annex, sizeof annex, "%d/wbox_info", id);
-  len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-		     buf, 0, sizeof buf);
-  if (len < 0)
-    error (_("Could not read wbox_info."));
-
-  info_spu_mailbox_list (buf, len / 4, byte_order,
-			 "wbox", "SPU Inbound Mailbox");
-}
-
-static ULONGEST
-spu_mfc_get_bitfield (ULONGEST word, int first, int last)
-{
-  ULONGEST mask = ~(~(ULONGEST)0 << (last - first + 1));
-  return (word >> (63 - last)) & mask;
-}
-
-static void
-info_spu_dma_cmdlist (gdb_byte *buf, int nr, enum bfd_endian byte_order)
-{
-  static const char *spu_mfc_opcode[256] =
-    {
-    /* 00 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    /* 10 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    /* 20 */ "put", "putb", "putf", NULL, "putl", "putlb", "putlf", NULL,
-             "puts", "putbs", "putfs", NULL, NULL, NULL, NULL, NULL,
-    /* 30 */ "putr", "putrb", "putrf", NULL, "putrl", "putrlb", "putrlf", NULL,
-             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    /* 40 */ "get", "getb", "getf", NULL, "getl", "getlb", "getlf", NULL,
-             "gets", "getbs", "getfs", NULL, NULL, NULL, NULL, NULL,
-    /* 50 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    /* 60 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    /* 70 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    /* 80 */ "sdcrt", "sdcrtst", NULL, NULL, NULL, NULL, NULL, NULL,
-             NULL, "sdcrz", NULL, NULL, NULL, "sdcrst", NULL, "sdcrf",
-    /* 90 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    /* a0 */ "sndsig", "sndsigb", "sndsigf", NULL, NULL, NULL, NULL, NULL,
-             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    /* b0 */ "putlluc", NULL, NULL, NULL, "putllc", NULL, NULL, NULL,
-             "putqlluc", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    /* c0 */ "barrier", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-             "mfceieio", NULL, NULL, NULL, "mfcsync", NULL, NULL, NULL,
-    /* d0 */ "getllar", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    /* e0 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    /* f0 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-             NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    };
-
-  int *seq = XALLOCAVEC (int, nr);
-  int done = 0;
-  int i, j;
-
-
-  /* Determine sequence in which to display (valid) entries.  */
-  for (i = 0; i < nr; i++)
-    {
-      /* Search for the first valid entry all of whose
-	 dependencies are met.  */
-      for (j = 0; j < nr; j++)
-	{
-          ULONGEST mfc_cq_dw3;
-	  ULONGEST dependencies;
-
-	  if (done & (1 << (nr - 1 - j)))
-	    continue;
-
-	  mfc_cq_dw3
-	    = extract_unsigned_integer (buf + 32*j + 24,8, byte_order);
-	  if (!spu_mfc_get_bitfield (mfc_cq_dw3, 16, 16))
-	    continue;
-
-	  dependencies = spu_mfc_get_bitfield (mfc_cq_dw3, 0, nr - 1);
-	  if ((dependencies & done) != dependencies)
-	    continue;
-
-	  seq[i] = j;
-	  done |= 1 << (nr - 1 - j);
-	  break;
-	}
-
-      if (j == nr)
-	break;
-    }
-
-  nr = i;
-
-
-  ui_out_emit_table table_emitter (current_uiout, 10, nr, "dma_cmd");
-
-  current_uiout->table_header (7, ui_left, "opcode", "Opcode");
-  current_uiout->table_header (3, ui_left, "tag", "Tag");
-  current_uiout->table_header (3, ui_left, "tid", "TId");
-  current_uiout->table_header (3, ui_left, "rid", "RId");
-  current_uiout->table_header (18, ui_left, "ea", "EA");
-  current_uiout->table_header (7, ui_left, "lsa", "LSA");
-  current_uiout->table_header (7, ui_left, "size", "Size");
-  current_uiout->table_header (7, ui_left, "lstaddr", "LstAddr");
-  current_uiout->table_header (7, ui_left, "lstsize", "LstSize");
-  current_uiout->table_header (1, ui_left, "error_p", "E");
-
-  current_uiout->table_body ();
-
-  for (i = 0; i < nr; i++)
-    {
-      ULONGEST mfc_cq_dw0;
-      ULONGEST mfc_cq_dw1;
-      ULONGEST mfc_cq_dw2;
-      int mfc_cmd_opcode, mfc_cmd_tag, rclass_id, tclass_id;
-      int list_lsa, list_size, mfc_lsa, mfc_size;
-      ULONGEST mfc_ea;
-      int list_valid_p, qw_valid_p, ea_valid_p, cmd_error_p;
-
-      /* Decode contents of MFC Command Queue Context Save/Restore Registers.
-	 See "Cell Broadband Engine Registers V1.3", section 3.3.2.1.  */
-
-      mfc_cq_dw0
-	= extract_unsigned_integer (buf + 32*seq[i], 8, byte_order);
-      mfc_cq_dw1
-	= extract_unsigned_integer (buf + 32*seq[i] + 8, 8, byte_order);
-      mfc_cq_dw2
-	= extract_unsigned_integer (buf + 32*seq[i] + 16, 8, byte_order);
-
-      list_lsa = spu_mfc_get_bitfield (mfc_cq_dw0, 0, 14);
-      list_size = spu_mfc_get_bitfield (mfc_cq_dw0, 15, 26);
-      mfc_cmd_opcode = spu_mfc_get_bitfield (mfc_cq_dw0, 27, 34);
-      mfc_cmd_tag = spu_mfc_get_bitfield (mfc_cq_dw0, 35, 39);
-      list_valid_p = spu_mfc_get_bitfield (mfc_cq_dw0, 40, 40);
-      rclass_id = spu_mfc_get_bitfield (mfc_cq_dw0, 41, 43);
-      tclass_id = spu_mfc_get_bitfield (mfc_cq_dw0, 44, 46);
-
-      mfc_ea = spu_mfc_get_bitfield (mfc_cq_dw1, 0, 51) << 12
-		| spu_mfc_get_bitfield (mfc_cq_dw2, 25, 36);
-
-      mfc_lsa = spu_mfc_get_bitfield (mfc_cq_dw2, 0, 13);
-      mfc_size = spu_mfc_get_bitfield (mfc_cq_dw2, 14, 24);
-      qw_valid_p = spu_mfc_get_bitfield (mfc_cq_dw2, 38, 38);
-      ea_valid_p = spu_mfc_get_bitfield (mfc_cq_dw2, 39, 39);
-      cmd_error_p = spu_mfc_get_bitfield (mfc_cq_dw2, 40, 40);
-
-      {
-	ui_out_emit_tuple tuple_emitter (current_uiout, "cmd");
-
-	if (spu_mfc_opcode[mfc_cmd_opcode])
-	  current_uiout->field_string ("opcode", spu_mfc_opcode[mfc_cmd_opcode]);
-	else
-	  current_uiout->field_signed ("opcode", mfc_cmd_opcode);
-
-	current_uiout->field_signed ("tag", mfc_cmd_tag);
-	current_uiout->field_signed ("tid", tclass_id);
-	current_uiout->field_signed ("rid", rclass_id);
-
-	if (ea_valid_p)
-	  current_uiout->field_fmt ("ea", "0x%s", phex (mfc_ea, 8));
-	else
-	  current_uiout->field_skip ("ea");
-
-	current_uiout->field_fmt ("lsa", "0x%05x", mfc_lsa << 4);
-	if (qw_valid_p)
-	  current_uiout->field_fmt ("size", "0x%05x", mfc_size << 4);
-	else
-	  current_uiout->field_fmt ("size", "0x%05x", mfc_size);
-
-	if (list_valid_p)
-	  {
-	    current_uiout->field_fmt ("lstaddr", "0x%05x", list_lsa << 3);
-	    current_uiout->field_fmt ("lstsize", "0x%05x", list_size << 3);
-	  }
-	else
-	  {
-	    current_uiout->field_skip ("lstaddr");
-	    current_uiout->field_skip ("lstsize");
-	  }
-
-	if (cmd_error_p)
-	  current_uiout->field_string ("error_p", "*");
-	else
-	  current_uiout->field_skip ("error_p");
-      }
-
-      current_uiout->text ("\n");
-    }
-}
-
-static void
-info_spu_dma_command (const char *args, int from_tty)
-{
-  struct frame_info *frame = get_selected_frame (NULL);
-  struct gdbarch *gdbarch = get_frame_arch (frame);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  ULONGEST dma_info_type;
-  ULONGEST dma_info_mask;
-  ULONGEST dma_info_status;
-  ULONGEST dma_info_stall_and_notify;
-  ULONGEST dma_info_atomic_command_status;
-  char annex[32];
-  gdb_byte buf[1024];
-  LONGEST len;
-  int id;
-
-  if (gdbarch_bfd_arch_info (get_frame_arch (frame))->arch != bfd_arch_spu)
-    error (_("\"info spu\" is only supported on the SPU architecture."));
-
-  id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
-
-  xsnprintf (annex, sizeof annex, "%d/dma_info", id);
-  len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-		     buf, 0, 40 + 16 * 32);
-  if (len <= 0)
-    error (_("Could not read dma_info."));
-
-  dma_info_type
-    = extract_unsigned_integer (buf, 8, byte_order);
-  dma_info_mask
-    = extract_unsigned_integer (buf + 8, 8, byte_order);
-  dma_info_status
-    = extract_unsigned_integer (buf + 16, 8, byte_order);
-  dma_info_stall_and_notify
-    = extract_unsigned_integer (buf + 24, 8, byte_order);
-  dma_info_atomic_command_status
-    = extract_unsigned_integer (buf + 32, 8, byte_order);
-  
-  ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoDMA");
-
-  if (current_uiout->is_mi_like_p ())
-    {
-      current_uiout->field_fmt ("dma_info_type", "0x%s",
-				phex_nz (dma_info_type, 4));
-      current_uiout->field_fmt ("dma_info_mask", "0x%s",
-				phex_nz (dma_info_mask, 4));
-      current_uiout->field_fmt ("dma_info_status", "0x%s",
-				phex_nz (dma_info_status, 4));
-      current_uiout->field_fmt ("dma_info_stall_and_notify", "0x%s",
-				phex_nz (dma_info_stall_and_notify, 4));
-      current_uiout->field_fmt ("dma_info_atomic_command_status", "0x%s",
-				phex_nz (dma_info_atomic_command_status, 4));
-    }
-  else
-    {
-      const char *query_msg = _("no query pending");
-
-      if (dma_info_type & 4)
-	switch (dma_info_type & 3)
-	  {
-	    case 1: query_msg = _("'any' query pending"); break;
-	    case 2: query_msg = _("'all' query pending"); break;
-	    default: query_msg = _("undefined query type"); break;
-	  }
-
-      printf_filtered (_("Tag-Group Status  0x%s\n"),
-		       phex (dma_info_status, 4));
-      printf_filtered (_("Tag-Group Mask    0x%s (%s)\n"),
-		       phex (dma_info_mask, 4), query_msg);
-      printf_filtered (_("Stall-and-Notify  0x%s\n"),
-		       phex (dma_info_stall_and_notify, 4));
-      printf_filtered (_("Atomic Cmd Status 0x%s\n"),
-		       phex (dma_info_atomic_command_status, 4));
-      printf_filtered ("\n");
-    }
-
-  info_spu_dma_cmdlist (buf + 40, 16, byte_order);
-}
-
-static void
-info_spu_proxydma_command (const char *args, int from_tty)
-{
-  struct frame_info *frame = get_selected_frame (NULL);
-  struct gdbarch *gdbarch = get_frame_arch (frame);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  ULONGEST dma_info_type;
-  ULONGEST dma_info_mask;
-  ULONGEST dma_info_status;
-  char annex[32];
-  gdb_byte buf[1024];
-  LONGEST len;
-  int id;
-
-  if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
-    error (_("\"info spu\" is only supported on the SPU architecture."));
-
-  id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
-
-  xsnprintf (annex, sizeof annex, "%d/proxydma_info", id);
-  len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
-		     buf, 0, 24 + 8 * 32);
-  if (len <= 0)
-    error (_("Could not read proxydma_info."));
-
-  dma_info_type = extract_unsigned_integer (buf, 8, byte_order);
-  dma_info_mask = extract_unsigned_integer (buf + 8, 8, byte_order);
-  dma_info_status = extract_unsigned_integer (buf + 16, 8, byte_order);
-  
-  ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoProxyDMA");
-
-  if (current_uiout->is_mi_like_p ())
-    {
-      current_uiout->field_fmt ("proxydma_info_type", "0x%s",
-				phex_nz (dma_info_type, 4));
-      current_uiout->field_fmt ("proxydma_info_mask", "0x%s",
-				phex_nz (dma_info_mask, 4));
-      current_uiout->field_fmt ("proxydma_info_status", "0x%s",
-				phex_nz (dma_info_status, 4));
-    }
-  else
-    {
-      const char *query_msg;
-
-      switch (dma_info_type & 3)
-	{
-	case 0: query_msg = _("no query pending"); break;
-	case 1: query_msg = _("'any' query pending"); break;
-	case 2: query_msg = _("'all' query pending"); break;
-	default: query_msg = _("undefined query type"); break;
-	}
-
-      printf_filtered (_("Tag-Group Status  0x%s\n"),
-		       phex (dma_info_status, 4));
-      printf_filtered (_("Tag-Group Mask    0x%s (%s)\n"),
-		       phex (dma_info_mask, 4), query_msg);
-      printf_filtered ("\n");
-    }
-
-  info_spu_dma_cmdlist (buf + 24, 8, byte_order);
-}
-
-static void
-info_spu_command (const char *args, int from_tty)
-{
-  printf_unfiltered (_("\"info spu\" must be followed by "
-		       "the name of an SPU facility.\n"));
-  help_list (infospucmdlist, "info spu ", all_commands, gdb_stdout);
-}
-
-
-/* Root of all "set spu "/"show spu " commands.  */
-
-static void
-show_spu_command (const char *args, int from_tty)
-{
-  help_list (showspucmdlist, "show spu ", all_commands, gdb_stdout);
-}
-
-static void
-set_spu_command (const char *args, int from_tty)
-{
-  help_list (setspucmdlist, "set spu ", all_commands, gdb_stdout);
-}
-
-static void
-show_spu_stop_on_load (struct ui_file *file, int from_tty,
-                       struct cmd_list_element *c, const char *value)
-{
-  fprintf_filtered (file, _("Stopping for new SPE threads is %s.\n"),
-                    value);
-}
-
-static void
-show_spu_auto_flush_cache (struct ui_file *file, int from_tty,
-			   struct cmd_list_element *c, const char *value)
-{
-  fprintf_filtered (file, _("Automatic software-cache flush is %s.\n"),
-                    value);
-}
-
-
-/* Set up gdbarch struct.  */
-
-static struct gdbarch *
-spu_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
-{
-  struct gdbarch *gdbarch;
-  struct gdbarch_tdep *tdep;
-  int id = -1;
-
-  /* Which spufs ID was requested as address space?  */
-  if (info.id)
-    id = *info.id;
-  /* For objfile architectures of SPU solibs, decode the ID from the name.
-     This assumes the filename convention employed by solib-spu.c.  */
-  else if (info.abfd)
-    {
-      const char *name = strrchr (info.abfd->filename, '@');
-      if (name)
-	sscanf (name, "@0x%*x <%d>", &id);
-    }
-
-  /* Find a candidate among extant architectures.  */
-  for (arches = gdbarch_list_lookup_by_info (arches, &info);
-       arches != NULL;
-       arches = gdbarch_list_lookup_by_info (arches->next, &info))
-    {
-      tdep = gdbarch_tdep (arches->gdbarch);
-      if (tdep && tdep->id == id)
-	return arches->gdbarch;
-    }
-
-  /* None found, so create a new architecture.  */
-  tdep = XCNEW (struct gdbarch_tdep);
-  tdep->id = id;
-  gdbarch = gdbarch_alloc (&info, tdep);
-
-  /* Disassembler.  */
-  set_gdbarch_print_insn (gdbarch, gdb_print_insn_spu);
-
-  /* Registers.  */
-  set_gdbarch_num_regs (gdbarch, SPU_NUM_REGS);
-  set_gdbarch_num_pseudo_regs (gdbarch, SPU_NUM_PSEUDO_REGS);
-  set_gdbarch_sp_regnum (gdbarch, SPU_SP_REGNUM);
-  set_gdbarch_pc_regnum (gdbarch, SPU_PC_REGNUM);
-  set_gdbarch_read_pc (gdbarch, spu_read_pc);
-  set_gdbarch_write_pc (gdbarch, spu_write_pc);
-  set_gdbarch_register_name (gdbarch, spu_register_name);
-  set_gdbarch_register_type (gdbarch, spu_register_type);
-  set_gdbarch_pseudo_register_read (gdbarch, spu_pseudo_register_read);
-  set_gdbarch_pseudo_register_write (gdbarch, spu_pseudo_register_write);
-  set_gdbarch_value_from_register (gdbarch, spu_value_from_register);
-  set_gdbarch_register_reggroup_p (gdbarch, spu_register_reggroup_p);
-  set_gdbarch_dwarf2_reg_to_regnum (gdbarch, spu_dwarf_reg_to_regnum);
-  set_gdbarch_ax_pseudo_register_collect
-    (gdbarch, spu_ax_pseudo_register_collect);
-  set_gdbarch_ax_pseudo_register_push_stack
-    (gdbarch, spu_ax_pseudo_register_push_stack);
-
-  /* Data types.  */
-  set_gdbarch_char_signed (gdbarch, 0);
-  set_gdbarch_ptr_bit (gdbarch, 32);
-  set_gdbarch_addr_bit (gdbarch, 32);
-  set_gdbarch_short_bit (gdbarch, 16);
-  set_gdbarch_int_bit (gdbarch, 32);
-  set_gdbarch_long_bit (gdbarch, 32);
-  set_gdbarch_long_long_bit (gdbarch, 64);
-  set_gdbarch_float_bit (gdbarch, 32);
-  set_gdbarch_double_bit (gdbarch, 64);
-  set_gdbarch_long_double_bit (gdbarch, 64);
-  set_gdbarch_float_format (gdbarch, floatformats_ieee_single);
-  set_gdbarch_double_format (gdbarch, floatformats_ieee_double);
-  set_gdbarch_long_double_format (gdbarch, floatformats_ieee_double);
-
-  /* Address handling.  */
-  set_gdbarch_address_to_pointer (gdbarch, spu_address_to_pointer);
-  set_gdbarch_pointer_to_address (gdbarch, spu_pointer_to_address);
-  set_gdbarch_integer_to_address (gdbarch, spu_integer_to_address);
-  set_gdbarch_address_class_type_flags (gdbarch, spu_address_class_type_flags);
-  set_gdbarch_address_class_type_flags_to_name
-    (gdbarch, spu_address_class_type_flags_to_name);
-  set_gdbarch_address_class_name_to_type_flags
-    (gdbarch, spu_address_class_name_to_type_flags);
-
-  /* We need to support more than "addr_bit" significant address bits
-     in order to support SPUADDR_ADDR encoded values.  */
-  set_gdbarch_significant_addr_bit (gdbarch, 64);
-
-  /* Inferior function calls.  */
-  set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
-  set_gdbarch_frame_align (gdbarch, spu_frame_align);
-  set_gdbarch_frame_red_zone_size (gdbarch, 2000);
-  set_gdbarch_push_dummy_code (gdbarch, spu_push_dummy_code);
-  set_gdbarch_push_dummy_call (gdbarch, spu_push_dummy_call);
-  set_gdbarch_dummy_id (gdbarch, spu_dummy_id);
-  set_gdbarch_return_value (gdbarch, spu_return_value);
-
-  /* Frame handling.  */
-  set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
-  dwarf2_append_unwinders (gdbarch);
-  frame_unwind_append_unwinder (gdbarch, &spu_frame_unwind);
-  frame_base_set_default (gdbarch, &spu_frame_base);
-  set_gdbarch_unwind_pc (gdbarch, spu_unwind_pc);
-  set_gdbarch_unwind_sp (gdbarch, spu_unwind_sp);
-  set_gdbarch_virtual_frame_pointer (gdbarch, spu_virtual_frame_pointer);
-  set_gdbarch_frame_args_skip (gdbarch, 0);
-  set_gdbarch_skip_prologue (gdbarch, spu_skip_prologue);
-  set_gdbarch_stack_frame_destroyed_p (gdbarch, spu_stack_frame_destroyed_p);
-
-  /* Cell/B.E. cross-architecture unwinder support.  */
-  frame_unwind_prepend_unwinder (gdbarch, &spu2ppu_unwind);
-
-  /* Breakpoints.  */
-  set_gdbarch_decr_pc_after_break (gdbarch, 4);
-  set_gdbarch_breakpoint_kind_from_pc (gdbarch, spu_breakpoint::kind_from_pc);
-  set_gdbarch_sw_breakpoint_from_kind (gdbarch, spu_breakpoint::bp_from_kind);
-  set_gdbarch_memory_remove_breakpoint (gdbarch, spu_memory_remove_breakpoint);
-  set_gdbarch_software_single_step (gdbarch, spu_software_single_step);
-  set_gdbarch_get_longjmp_target (gdbarch, spu_get_longjmp_target);
-
-  /* Overlays.  */
-  set_gdbarch_overlay_update (gdbarch, spu_overlay_update);
-
-  return gdbarch;
-}
-
-void
-_initialize_spu_tdep (void)
-{
-  register_gdbarch_init (bfd_arch_spu, spu_gdbarch_init);
-
-  /* Add ourselves to objfile event chain.  */
-  gdb::observers::new_objfile.attach (spu_overlay_new_objfile);
-
-  /* Install spu stop-on-load handler.  */
-  gdb::observers::new_objfile.attach (spu_catch_start);
-
-  /* Add ourselves to normal_stop event chain.  */
-  gdb::observers::normal_stop.attach (spu_attach_normal_stop);
-
-  /* Add root prefix command for all "set spu"/"show spu" commands.  */
-  add_prefix_cmd ("spu", no_class, set_spu_command,
-		  _("Various SPU specific commands."),
-		  &setspucmdlist, "set spu ", 0, &setlist);
-  add_prefix_cmd ("spu", no_class, show_spu_command,
-		  _("Various SPU specific commands."),
-		  &showspucmdlist, "show spu ", 0, &showlist);
-
-  /* Toggle whether or not to add a temporary breakpoint at the "main"
-     function of new SPE contexts.  */
-  add_setshow_boolean_cmd ("stop-on-load", class_support,
-                          &spu_stop_on_load_p, _("\
-Set whether to stop for new SPE threads."),
-                           _("\
-Show whether to stop for new SPE threads."),
-                           _("\
-Use \"on\" to give control to the user when a new SPE thread\n\
-enters its \"main\" function.\n\
-Use \"off\" to disable stopping for new SPE threads."),
-                          NULL,
-                          show_spu_stop_on_load,
-                          &setspucmdlist, &showspucmdlist);
-
-  /* Toggle whether or not to automatically flush the software-managed
-     cache whenever SPE execution stops.  */
-  add_setshow_boolean_cmd ("auto-flush-cache", class_support,
-                          &spu_auto_flush_cache_p, _("\
-Set whether to automatically flush the software-managed cache."),
-                           _("\
-Show whether to automatically flush the software-managed cache."),
-                           _("\
-Use \"on\" to automatically flush the software-managed cache\n\
-whenever SPE execution stops.\n\
-Use \"off\" to never automatically flush the software-managed cache."),
-                          NULL,
-                          show_spu_auto_flush_cache,
-                          &setspucmdlist, &showspucmdlist);
-
-  /* Add root prefix command for all "info spu" commands.  */
-  add_prefix_cmd ("spu", class_info, info_spu_command,
-		  _("Various SPU specific commands."),
-		  &infospucmdlist, "info spu ", 0, &infolist);
-
-  /* Add various "info spu" commands.  */
-  add_cmd ("event", class_info, info_spu_event_command,
-	   _("Display SPU event facility status."),
-	   &infospucmdlist);
-  add_cmd ("signal", class_info, info_spu_signal_command,
-	   _("Display SPU signal notification facility status."),
-	   &infospucmdlist);
-  add_cmd ("mailbox", class_info, info_spu_mailbox_command,
-	   _("Display SPU mailbox facility status."),
-	   &infospucmdlist);
-  add_cmd ("dma", class_info, info_spu_dma_command,
-	   _("Display MFC DMA status."),
-	   &infospucmdlist);
-  add_cmd ("proxydma", class_info, info_spu_proxydma_command,
-	   _("Display MFC Proxy-DMA status."),
-	   &infospucmdlist);
-}
diff --git a/gdb/spu-tdep.h b/gdb/spu-tdep.h
deleted file mode 100644
index 255be2ed5a..0000000000
--- a/gdb/spu-tdep.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* SPU target-dependent code for GDB, the GNU debugger.
-   Copyright (C) 2006-2019 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#ifndef SPU_TDEP_H
-#define SPU_TDEP_H
-
-/* Number of registers.  */
-#define SPU_NUM_REGS         130
-#define SPU_NUM_PSEUDO_REGS  6
-#define SPU_NUM_GPRS	     128
-
-/* Register numbers of various important registers.  */
-enum spu_regnum
-{
-  /* SPU calling convention.  */
-  SPU_LR_REGNUM = 0,		/* Link register.  */
-  SPU_RAW_SP_REGNUM = 1,	/* Stack pointer (full register).  */
-  SPU_ARG1_REGNUM = 3,		/* First argument register.  */
-  SPU_ARGN_REGNUM = 74,		/* Last argument register.  */
-  SPU_SAVED1_REGNUM = 80,	/* First call-saved register.  */
-  SPU_SAVEDN_REGNUM = 127,	/* Last call-saved register.  */
-  SPU_FP_REGNUM = 127,		/* Frame pointer.  */
-
-  /* Special registers.  */
-  SPU_ID_REGNUM = 128,		/* SPU ID register.  */
-  SPU_PC_REGNUM = 129,		/* Next program counter.  */
-  SPU_SP_REGNUM = 130,		/* Stack pointer (preferred slot).  */
-  SPU_FPSCR_REGNUM = 131,	/* Floating point status/control register.  */
-  SPU_SRR0_REGNUM = 132,	/* SRR0 register.  */
-  SPU_LSLR_REGNUM = 133,	/* Local store limit register.  */
-  SPU_DECR_REGNUM = 134,	/* Decrementer value.  */
-  SPU_DECR_STATUS_REGNUM = 135	/* Decrementer status.  */
-};
-
-/* Address conversions.
-
-   In a combined PPU/SPU debugging session, we have to consider multiple
-   address spaces: the PPU 32- or 64-bit address space, and the 32-bit
-   local store address space for each SPU context.  As it is currently
-   not yet possible to use the program_space / address_space mechanism
-   to represent this, we encode all those addresses into one single
-   64-bit address for the whole process.  For SPU programs using overlays,
-   this address space must also include separate ranges reserved for the
-   LMA of overlay sections.
-
-
-   The following combinations are supported for combined debugging:
-
-   PPU address (this relies on the fact that PPC 64-bit user space
-   addresses can never have the highest-most bit set):
-
-      +-+---------------------------------+
-      |0|              ADDR [63]          |
-      +-+---------------------------------+
-
-   SPU address for SPU context with id SPU (this assumes that SPU
-   IDs, which are file descriptors, are never larger than 2^30):
-
-      +-+-+--------------+----------------+
-      |1|0|    SPU [30]  |    ADDR [32]   |
-      +-+-+--------------+----------------+
-
-   SPU overlay section LMA for SPU context with id SPU:
-
-      +-+-+--------------+----------------+
-      |1|1|    SPU [30]  |    ADDR [32]   |
-      +-+-+--------------+----------------+
-
-
-   In SPU stand-alone debugging mode (using spu-linux-nat.c),
-   the following combinations are supported:
-
-   SPU address:
-
-      +-+-+--------------+----------------+
-      |0|0|     0        |    ADDR [32]   |
-      +-+-+--------------+----------------+
-
-   SPU overlay section LMA:
-
-      +-+-+--------------+----------------+
-      |0|1|     0        |    ADDR [32]   |
-      +-+-+--------------+----------------+
-
-
-   The following macros allow manipulation of addresses in the
-   above formats.  */
-
-#define SPUADDR(spu, addr) \
-  ((spu) != -1? (ULONGEST)1 << 63 | (ULONGEST)(spu) << 32 | (addr) : (addr))
-
-#define SPUADDR_SPU(addr) \
-  (((addr) & (ULONGEST)1 << 63) \
-   ? (int) ((ULONGEST)(addr) >> 32 & 0x3fffffff) \
-   : -1)
-
-#define SPUADDR_ADDR(addr) \
-  (((addr) & (ULONGEST)1 << 63)? (ULONGEST)(addr) & 0xffffffff : (addr))
-
-#define SPU_OVERLAY_LMA ((ULONGEST)1 << 62)
-
-#endif
diff --git a/gdb/target.h b/gdb/target.h
index c2f6203174..8dbd2d62dc 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -137,8 +137,6 @@ enum target_object
 {
   /* AVR target specific transfer.  See "avr-tdep.c" and "remote.c".  */
   TARGET_OBJECT_AVR,
-  /* SPU target specific transfer.  See "spu-tdep.c".  */
-  TARGET_OBJECT_SPU,
   /* Transfer up-to LEN bytes of memory starting at OFFSET.  */
   TARGET_OBJECT_MEMORY,
   /* Memory, avoiding GDB's data cache and trusting the executable.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index e86091eee3..64c7d38861 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,32 @@
+2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* gdb.arch/spu-info.exp: Remove file.
+	* gdb.arch/spu-info.c: Remove file.
+	* gdb.arch/spu-ls.exp: Remove file.
+	* gdb.arch/spu-ls.c: Remove file.
+
+	* gdb.asm/asm-source.exp: Remove support for spu*-*-*.
+	* gdb.asm/spu.inc: Remove file.
+
+	* gdb.base/dump.exp: Remove support for spu*-*-*.
+	* gdb.base/stack-checking.exp: Likewise.
+	* gdb.base/overlays.exp: Likewise.
+	* gdb.base/ovlymgr.c: Likewise.
+	* gdb.base/spu.ld: Remove file.
+
+	* gdb.cp/bs15503.exp: Remove support for spu*-*-*.
+	* gdb.cp/cpexprs.exp: Likewise.
+	* gdb.cp/exception.exp: Likewise.
+	* gdb.cp/gdb2495.exp: Likewise.
+	* gdb.cp/mb-templates.exp: Likewise.
+	* gdb.cp/pr9167.exp: Likewise.
+	* gdb.cp/userdef.exp: Likewise.
+
+	* gdb.xml/tdesc-regs.exp: Remove support for spu*-*-*.
+
+	* gdb.cell: Remove directory.
+	* lib/cell.exp: Remove file.
+
 2019-09-19  Tom de Vries  <tdevries@suse.de>
 
 	* lib/gdb.exp (gdb_test): Eliminate "^FOOBAR$" pattern.
diff --git a/gdb/testsuite/gdb.arch/spu-info.c b/gdb/testsuite/gdb.arch/spu-info.c
deleted file mode 100644
index 3046525c9e..0000000000
--- a/gdb/testsuite/gdb.arch/spu-info.c
+++ /dev/null
@@ -1,235 +0,0 @@
-/* Copyright 2007-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   This file is part of the gdb testsuite.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>.
-   Tests for 'info spu' commands.  */
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <spu_mfcio.h>
-
-
-/* PPE-assisted call interface.  */
-void
-send_to_ppe (unsigned int signalcode, unsigned int opcode, void *data)
-{
-  __vector unsigned int stopfunc =
-    {
-      signalcode,     /* stop */
-      (opcode << 24) | (unsigned int) data,
-      0x4020007f,     /* nop */
-      0x35000000      /* bi $0 */
-    };
-
-  void (*f) (void) = (void *) &stopfunc;
-  asm ("sync");
-  f ();
-}
-
-/* PPE-assisted call to mmap from SPU.  */
-unsigned long long
-mmap_ea (unsigned long long start, size_t length,
-         int prot, int flags, int fd, off_t offset)
-{
-  struct mmap_args
-    {
-      unsigned long long start __attribute__ ((aligned (16)));
-      size_t length __attribute__ ((aligned (16)));
-      int prot __attribute__ ((aligned (16)));
-      int flags __attribute__ ((aligned (16)));
-      int fd __attribute__ ((aligned (16)));
-      off_t offset __attribute__ ((aligned (16)));
-    } args;
-
-  args.start = start;
-  args.length = length;
-  args.prot = prot;
-  args.flags = flags;
-  args.fd = fd;
-  args.offset = offset;
-
-  send_to_ppe (0x2101, 11, &args);
-  return args.start;
-}
-
-/* This works only in a Linux environment with <= 1024 open
-   file descriptors for one process. Result is the file
-   descriptor for the current context if available.  */
-int
-find_context_fd (void)
-{
-  int dir_fd = -1;
-  int i;
-
-  for (i = 0; i < 1024; i++)
-    {
-      struct stat stat;
-
-      if (fstat (i, &stat) < 0)
-        break;
-      if (S_ISDIR (stat.st_mode))
-        dir_fd = dir_fd == -1 ? i : -2;
-    }
-  return dir_fd < 0 ? -1 : dir_fd;
-}
-
-/* Open the context file and return the file handler.  */
-int
-open_context_file (int context_fd, char *name, int flags)
-{
-  char buf[128];
-
-  if (context_fd < 0)
-    return -1;
-
-  sprintf (buf, "/proc/self/fd/%d/%s", context_fd, name);
-  return open (buf, flags);
-}
-
-
-int
-do_event_test ()
-{
-  spu_write_event_mask (MFC_MULTI_SRC_SYNC_EVENT); /* 0x1000 */  /* Marker Event */
-  spu_write_event_mask (MFC_PRIV_ATTN_EVENT); /* 0x0800 */
-  spu_write_event_mask (MFC_LLR_LOST_EVENT); /* 0x0400 */
-  spu_write_event_mask (MFC_SIGNAL_NOTIFY_1_EVENT); /* 0x0200 */
-  spu_write_event_mask (MFC_SIGNAL_NOTIFY_2_EVENT); /* 0x0100 */
-  spu_write_event_mask (MFC_OUT_MBOX_AVAILABLE_EVENT); /* 0x0080 */
-  spu_write_event_mask (MFC_OUT_INTR_MBOX_AVAILABLE_EVENT); /* 0x0040 */
-  spu_write_event_mask (MFC_DECREMENTER_EVENT); /* 0x0020 */
-  spu_write_event_mask (MFC_IN_MBOX_AVAILABLE_EVENT); /* 0x0010 */
-  spu_write_event_mask (MFC_COMMAND_QUEUE_AVAILABLE_EVENT); /* 0x0008 */
-  spu_write_event_mask (MFC_LIST_STALL_NOTIFY_EVENT); /* 0x0002 */
-  spu_write_event_mask (MFC_TAG_STATUS_UPDATE_EVENT); /* 0x0001 */
-
-  return 0;
-}
-
-int
-do_dma_test ()
-{
-  #define MAP_FAILED      (-1ULL)
-  #define PROT_READ       0x1
-  #define MAP_PRIVATE     0x002
-  #define BSIZE 128
-  static char buf[BSIZE] __attribute__ ((aligned (128)));
-  char *file = "/var/tmp/tmp_buf";
-  struct stat fdstat;
-  int fd, cnt;
-  unsigned long long src;
-
-  /* Create a file and fill it with some bytes.  */
-  fd = open (file, O_CREAT | O_RDWR | O_TRUNC, 0777);
-  if (fd == -1)
-    return -1;
-  memset ((void *)buf, '1', BSIZE);
-  write (fd, buf, BSIZE);
-  write (fd, buf, BSIZE);
-  memset ((void *)buf, 0, BSIZE);
-
-  if (fstat (fd, &fdstat) != 0
-      || !fdstat.st_size)
-    return -2;
-
-  src = mmap_ea(0ULL, fdstat.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
-  if (src == MAP_FAILED)
-    return -3;
-
-  /* Copy some data via DMA.  */
-  mfc_get (&buf, src, BSIZE, 5, 0, 0);   /* Marker DMA */
-  mfc_write_tag_mask (1<<5);   /* Marker DMAWait */
-  spu_mfcstat (MFC_TAG_UPDATE_ALL);
-
-  /* Close the file.  */
-  close (fd);
-
-  return cnt;
-}
-
-int
-do_mailbox_test ()
-{
-  /* Write to SPU Outbound Mailbox.  */
-  if (spu_stat_out_mbox ())            /* Marker Mbox */
-    spu_write_out_mbox (0x12345678);
-
-  /* Write to SPU Outbound Interrupt Mailbox.  */
-  if (spu_stat_out_intr_mbox ())
-    spu_write_out_intr_mbox (0x12345678);
-
-  return 0;       /* Marker MboxEnd */
-}
-
-int
-do_signal_test ()
-{
-  struct stat fdstat;
-  int context_fd = find_context_fd ();
-  int ret, buf, fd;
-
-  buf = 23;    /* Marker Signal */
-  /* Write to signal1.  */
-  fd = open_context_file (context_fd, "signal1", O_RDWR);
-  if (fstat (fd, &fdstat) != 0)
-    return -1;
-  ret = write (fd, &buf, sizeof (int));
-  close (fd);  /* Marker Signal1 */
-
-  /* Write to signal2.  */
-  fd = open_context_file (context_fd, "signal2", O_RDWR);
-  if (fstat (fd, &fdstat) != 0)
-    return -1;
-  ret = write (fd, &buf, sizeof (int));
-  close (fd);  /* Marker Signal2 */
-
-  /* Read signal1.  */
-  if (spu_stat_signal1 ())
-    ret = spu_read_signal1 ();
-
-  /* Read signal2.  */
-  if (spu_stat_signal2 ())
-    ret = spu_read_signal2 ();   /* Marker SignalRead */
-
-  return 0;
-}
-
-int
-main (unsigned long long speid, unsigned long long argp, 
-      unsigned long long envp)
-{
-  int res;
-
-  /* info spu event  */
-  res = do_event_test ();
-
-  /* info spu dma  */
-  res = do_dma_test ();
-
-  /* info spu mailbox  */
-  res = do_mailbox_test ();
-
-  /* info spu signal  */
-  res = do_signal_test ();
-
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.arch/spu-info.exp b/gdb/testsuite/gdb.arch/spu-info.exp
deleted file mode 100644
index f840251c31..0000000000
--- a/gdb/testsuite/gdb.arch/spu-info.exp
+++ /dev/null
@@ -1,241 +0,0 @@
-# Copyright 2007-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# This file is part of the gdb testsuite.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-# Tests for 'info spu' commands.
-
-
-if { ![istarget "spu-*-elf"] } then {
-  verbose "Skipping SPU-only testcase"
-  return
-}
-
-standard_testfile
-
-if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] } {
-  fail "cannot compile test program"
-  return -1
-}
-
-
-# Continue to MARKER
-proc c_to { marker } {
-  global srcfile
-  set line [gdb_get_line_number $marker]
-  gdb_test "break $line" \
-	   "Breakpoint.*at.*file.*$srcfile.*line $line.*" \
-	   "break $line"
-  gdb_test "continue" \
-	   "Continuing.*Breakpoint.*at.*$srcfile.*$line.*" \
-	   "continue to $line"
-}
-
-
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-# Check the help.
-gdb_test "info spu" \
-	 ".*info spu.* must be followed by the name of an SPU facility.*" \
-	 "info spu"
-gdb_test "help info spu" \
-	 "Various SPU specific commands.*List of info spu subcommands.*" \
-	 "help info spu"
-
-gdb_test "help info spu dma" \
-	 "Display MFC DMA status." \
-	 "help info spu dma"
-gdb_test "help info spu event" \
-	 "Display SPU event facility status." \
-	 "help info spu event"
-gdb_test "help info spu mailbox" \
-	 "Display SPU mailbox facility status." \
-	 "help info spu mailbox"
-gdb_test "help info spu proxydma" \
-	 "Display MFC Proxy-DMA status." \
-	 "help info spu proxydma"
-gdb_test "help info spu signal" \
-	 "Display SPU signal notification facility status." \
-	 "help info spu signal"
-
-
-# architecture should be spu:256K.
-gdb_test "show architecture" \
-	 "The target architecture is set automatically.*currently spu:256K.*" \
-	 "architecture = spu256K"
-
-# 'info spu event'.
-gdb_test "info spu event" \
-	 "Event Status.*Event Mask.*" \
-	 "info spu event"
-
-# 'info spu signal'.
-gdb_test "info spu signal" \
-	 "Signal 1 not pending.*\(Type.*\).*Signal 2 not pending.*\(Type.*\).*" \
-	 "info spu signal"
-
-# 'info spu mailbox'.
-gdb_test "info spu mailbox" \
-	 "" \
-	 "info spu mailbox"
-
-# 'info spu dma'.
-gdb_test "info spu dma" \
-	 "Tag-Group Status.*Tag-Group Mask.*Stall-and-Notify .*Atomic Cmd Status.*" \
-	 "info spu dma"
-
-# 'info spu proxydma'.
-gdb_test "info spu proxydma" \
-	 "Tag-Group Status.*Tag-Group Mask.*" \
-	  "info spu proxydma"
-
-# Event tests.
-c_to "Marker Event"
-gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000000.*" \
-	"empty event status"
-
-# MFC_MULTI_SRC_SYNC_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00001000.*" \
-	"event mask 0x1000"
-# MFC_PRIV_ATTN_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00000800.*" \
-	"event mask 0x0800"
-# MFC_LLR_LOST_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00000400.*" \
-	"event mask 0x0400"
-# MFC_SIGNAL_NOTIFY_1_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00000200.*" \
-	"event mask 0x0200"
-# MFC_SIGNAL_NOTIFY_2_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00000100.*" \
-	"event mask 0x0100"
-# MFC_OUT_MBOX_AVAILABLE_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00000080.*" \
-	"event mask 0x0080"
-# MFC_OUT_INTR_MBOX_AVAILABLE_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00000040.*" \
-	"event mask 0x0040"
-# MFC_DECREMENTER_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00000020.*" \
-	"event mask 0x0020"
-# MFC_IN_MBOX_AVAILABLE_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00000010.*" \
-	"event mask 0x0010"
-# MFC_COMMAND_QUEUE_AVAILABLE_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00000008.*" \
-	"event mask 0x0008"
-# MFC_LIST_STALL_NOTIFY_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00000002.*" \
-	"event mask 0x0002"
-# MFC_TAG_STATUS_UPDATE_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
-	"Event Status 0x0000.*Event Mask   0x00000001.*" \
-	"event mask 0x0001"
-
-
-# DMA tests.
-# 'info spu dma' should be empty.
-c_to "Marker DMA"
-gdb_test "info spu dma" \
-	 "Tag-Group Status.*0x00000000.*Tag-Group Mask.*0x00000000.*Stall-and-Notify.*0x00000000.*Atomic Cmd Status.*0x00000000\[\r\n\]+" \
-	 "info spu dma (empty)"
-
-# 'info spu dma' should be filled with some data.
-c_to "Marker DMAWait"
-gdb_test "next" "" "next"
-gdb_test "info spu dma" \
-	 "Tag-Group Status.*0x00000000.*Tag-Group Mask.*0x00000020.*Stall-and-Notify.*0x00000000.*Atomic Cmd Status.*0x00000000.*Opcode.*Tag.*TId.*RId.*EA.*LSA.*Size.*LstAddr.*LstSize.*E.*get.*5.*0.*0.*0x00080\[ \r\n\]+" \
-	 "info spu dma (non-empty)"
-gdb_test "finish" "" "finish"
-
-# Mailbox Test
-# 'info spu mailbox' should be empty.
-c_to "Marker Mbox"
-set msg "info spu mailbox"
-gdb_test_multiple "info spu mailbox" $msg {
-    -re "$gdb_prompt $" {
-      pass $msg
-    }
-    -re "SPU Outbound Mailbox.*0x.*SPU Outbound Interrupt Mailbox.*0x.*$gdb_prompt $" {
-      # Older kernels had a bug that caused them to return arbitrary values
-      # when attempting to read from an empty mailbox via spufs.
-      xfail $msg
-    }
-}
-
-# 'info spu mailbox' should now contain data.
-c_to "Marker MboxEnd"
-gdb_test "info spu mailbox" \
-	 "SPU Outbound Mailbox.*0x12345678.*SPU Outbound Interrupt Mailbox.*0x12345678.*" \
-	 "info spu mailbox"
-
-# Signal Test
-# 'info spu signal'.
-c_to "Marker Signal"
-gdb_test "info spu signal" \
-	 "Signal 1 not pending.*\(Type.*\).*Signal 2 not pending.*\(Type.*\).*" \
-	 "info spu signal"
-
-# 'info spu signal' with signal1 pending.
-c_to "Marker Signal1"
-gdb_test "info spu signal" \
-	 "Signal 1 control word 0x00000017.*Signal 2 not pending.*\(Type.*\).*" \
-	 "info spu signal"
-
-# 'info spu signal' with signal1 and signal2 pending.
-c_to "Marker Signal2"
-gdb_test "info spu signal" \
-	 "Signal 1 control word 0x00000017.*Signal 2 control word 0x00000017.*" \
-	 "info spu signal"
-
-# Read signal1. Only signal2 is pending.
-c_to "Marker SignalRead"
-gdb_test "info spu signal" \
-	 "Signal 1 not pending.*Signal 2 control word 0x00000017.*" \
-	 "info spu signal"
-
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.arch/spu-ls.c b/gdb/testsuite/gdb.arch/spu-ls.c
deleted file mode 100644
index f1a20491f0..0000000000
--- a/gdb/testsuite/gdb.arch/spu-ls.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2010-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   This file is part of the gdb testsuite.
-
-   Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-   Tests for SPU local-store access.  */
-
-char *ptr = (char *)0x12345678;
-
-char array[256];
-
-int
-main (unsigned long long speid, unsigned long long argp, 
-      unsigned long long envp)
-{
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.arch/spu-ls.exp b/gdb/testsuite/gdb.arch/spu-ls.exp
deleted file mode 100644
index af0b1acec8..0000000000
--- a/gdb/testsuite/gdb.arch/spu-ls.exp
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 2010-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# This file is part of the gdb testsuite.
-#
-# Contributed by Ulrich Weigand  <uweigand@de.ibm.com>.
-# Tests for SPU local-store access.
-
-if { ![istarget "spu-*-elf"] } then {
-  verbose "Skipping SPU-only testcase"
-  return
-}
-
-standard_testfile
-
-if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] } {
-  fail "cannot compile test program"
-  return -1
-}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-gdb_test "print ptr" " = 0x12345678 \".*\"" "print ptr"
-gdb_test_no_output "set ptr = array + \$lslr + 1" "set ptr = array + \$lslr + 1"
-gdb_test_no_output "set array\[0\] = 1" "set array\[0\] = 1"
-gdb_test "print *ptr" " = 1 '\\\\001'" "print *ptr"
-gdb_test_no_output "set *ptr = 2" "set *ptr = 2"
-gdb_test "print array\[0\]" " = 2 '\\\\002'" "print array\[0\]"
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
index 1bc384e974..b10ee1702f 100644
--- a/gdb/testsuite/gdb.asm/asm-source.exp
+++ b/gdb/testsuite/gdb.asm/asm-source.exp
@@ -128,11 +128,6 @@ switch -glob -- [istarget] {
         set asm-flags "-xarch=v9 -I${srcdir}/${subdir} $obj_include"
 	set debug-flags "-gdwarf-2"
     }
-    "spu*-*-*" {
-       set asm-arch spu
-       set asm-flags "-I${srcdir}/${subdir} $obj_include --no-warn"
-       set debug-flags "-gdwarf-2"
-    }
     "xstormy16-*-*" {
         set asm-arch xstormy16
 	set debug-flags "-gdwarf-2"
diff --git a/gdb/testsuite/gdb.asm/spu.inc b/gdb/testsuite/gdb.asm/spu.inc
deleted file mode 100644
index aabceb845d..0000000000
--- a/gdb/testsuite/gdb.asm/spu.inc
+++ /dev/null
@@ -1,42 +0,0 @@
-	comment "subroutine prologue"
-	.macro gdbasm_enter
-	stqd    $lr, 16($sp)
-	stqd    $sp, -32($sp)
-	ai      $sp, $sp, -32
-	.endm
-
-	comment "subroutine epilogue"
-	.macro gdbasm_leave
-	ai	$sp, $sp, 32
-	lqd     $lr, 16($sp)
-	bi	$lr	
-	.endm
-
-	.macro gdbasm_call subr
-	brsl	$lr, \subr
-	.endm
-
-	.macro gdbasm_several_nops
-	nop
-	nop
-	nop
-	nop
-	.endm
-
-	comment "exit (0)"
-	.macro gdbasm_exit0
-	stop	0x2000
-	stop 
-	stop 
-	stop 
-	.endm
-
-	comment "startup"
-	.macro gdbasm_startup
-	il	$0, 0
-	ila	$sp, 16368
-	stqd	$0, 0($sp)
-	stqd	$sp, -32($sp)
-	ai	$sp, $sp, -32
-	stqd	$0, 16($sp)
-	.endm
diff --git a/gdb/testsuite/gdb.base/dump.exp b/gdb/testsuite/gdb.base/dump.exp
index 52ba5f8ebe..77db17936e 100644
--- a/gdb/testsuite/gdb.base/dump.exp
+++ b/gdb/testsuite/gdb.base/dump.exp
@@ -30,12 +30,6 @@ if [istarget "alpha*-*-*"] then {
     lappend options "additional_flags=-Wl,-taso"
 }
 
-if {[istarget "spu*-*-*"]} then {
-    # The internal address format used for the combined Cell/B.E.
-    # debugger requires 64-bit.
-    set is64bitonly "yes"
-}
-
 # Debian9/Ubuntu16.10 onwards default to PIE enabled. Ensure it is disabled as
 # this causes addresses to be out of range for IHEX.
 lappend options {nopie}
diff --git a/gdb/testsuite/gdb.base/overlays.exp b/gdb/testsuite/gdb.base/overlays.exp
index d8ac61921e..388b87f026 100644
--- a/gdb/testsuite/gdb.base/overlays.exp
+++ b/gdb/testsuite/gdb.base/overlays.exp
@@ -24,9 +24,6 @@ set data_overlays 1
 
 if [istarget "m32r-*-*"] then {
     set linker_script "${srcdir}/${subdir}/m32r.ld"
-} elseif [istarget "spu-*-*"] then {
-    set linker_script "${srcdir}/${subdir}/spu.ld"
-    set data_overlays 0
 } else {
     verbose "Skipping overlay test -- not implemented for this target."
     return 
diff --git a/gdb/testsuite/gdb.base/ovlymgr.c b/gdb/testsuite/gdb.base/ovlymgr.c
index 533606b036..f4958ed14a 100644
--- a/gdb/testsuite/gdb.base/ovlymgr.c
+++ b/gdb/testsuite/gdb.base/ovlymgr.c
@@ -5,18 +5,6 @@
 
 #include "ovlymgr.h"
 
-#ifdef __SPU__
-/* SPU tool chain provides its own overlay manager.  */
-bool
-OverlayLoad (unsigned long ovlyno)
-{
-}
-bool
-OverlayUnload (unsigned long ovlyno)
-{
-}
-#else /* __SPU__ */
-
 /* Local functions and data: */
 
 extern unsigned long _ovly_table[][4];
@@ -243,4 +231,3 @@ ovly_copy (unsigned long dst, unsigned long src, long size)
   return;
 }
 
-#endif /* __SPU__ */
diff --git a/gdb/testsuite/gdb.base/spu.ld b/gdb/testsuite/gdb.base/spu.ld
deleted file mode 100644
index 0cd5a85405..0000000000
--- a/gdb/testsuite/gdb.base/spu.ld
+++ /dev/null
@@ -1,202 +0,0 @@
-/* Script for -z combreloc: combine and sort reloc sections */
-OUTPUT_FORMAT("elf32-spu", "elf32-spu",
-	      "elf32-spu")
-OUTPUT_ARCH(spu)
-ENTRY(_start)
-SEARCH_DIR("/usr/spu/lib");
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  PROVIDE (__executable_start = 0); . = 0;
-  .interrupt : { KEEP(*(.interrupt)) }
-  .interp         : { *(.interp) }
-  .hash           : { *(.hash) }
-  .dynsym         : { *(.dynsym) }
-  .dynstr         : { *(.dynstr) }
-  .gnu.version    : { *(.gnu.version) }
-  .gnu.version_d  : { *(.gnu.version_d) }
-  .gnu.version_r  : { *(.gnu.version_r) }
-  .rel.dyn        :
-    {
-      *(.rel.init)
-      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
-      *(.rel.fini)
-      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
-      *(.rel.data.rel.ro*)
-      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
-      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
-      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
-      *(.rel.ctors)
-      *(.rel.dtors)
-      *(.rel.got)
-      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
-    }
-  .rela.dyn       :
-    {
-      *(.rela.init)
-      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
-      *(.rela.fini)
-      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
-      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
-      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
-      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
-      *(.rela.ctors)
-      *(.rela.dtors)
-      *(.rela.got)
-      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
-    }
-  .rel.plt        : { *(.rel.plt) }
-  .rela.plt       : { *(.rela.plt) }
-  .init           :
-  {
-    KEEP (*(.init))
-  } =0
-  .plt            : { *(.plt) }
-  .text           :
-  {
-    *(EXCLUDE_FILE (foo.o bar.o baz.o grbx.o) .text .stub .text.* .gnu.linkonce.t.*)
-    KEEP (*(.text.*personality*))
-    *(.spu.elf)
-    /* .gnu.warning sections are handled specially by elf32.em.  */
-    *(.gnu.warning)
-  } =0
-  .fini           :
-  {
-    KEEP (*(.fini))
-  } =0
-  PROVIDE (__etext = .);
-  PROVIDE (_etext = .);
-  PROVIDE (etext = .);
-  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
-  .rodata1        : { *(.rodata1) }
-  .eh_frame_hdr : { *(.eh_frame_hdr) }
-  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) }
-  .gcc_except_table   : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
-  /* Adjust the address for the data segment.  We want to adjust up to
-     the same address within the page on the next page up.  */
-  . = ALIGN(0x80);
-  /* Exception handling  */
-  .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
-  .gcc_except_table   : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
-  /* Thread Local Storage sections  */
-  .tdata	  : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
-  .tbss		  : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
-  /* Ensure the __preinit_array_start label is properly aligned.  We
-     could instead move the label definition inside the section, but
-     the linker would then create the section even if it turns out to
-     be empty, which isn't pretty.  */
-  . = ALIGN(16);
-  PROVIDE (__preinit_array_start = .);
-  .preinit_array     : { KEEP (*(.preinit_array)) }
-  PROVIDE (__preinit_array_end = .);
-  PROVIDE (__init_array_start = .);
-  .init_array     : { KEEP (*(.init_array)) }
-  PROVIDE (__init_array_end = .);
-  PROVIDE (__fini_array_start = .);
-  .fini_array     : { KEEP (*(.fini_array)) }
-  PROVIDE (__fini_array_end = .);
-  .ctors          :
-  {
-    /* gcc uses crtbegin.o to find the start of
-       the constructors, so we make sure it is
-       first.  Because this is a wildcard, it
-       doesn't matter if the user does not
-       actually link against crtbegin.o; the
-       linker won't look for a file to match a
-       wildcard.  The wildcard also means that it
-       doesn't matter which directory crtbegin.o
-       is in.  */
-    KEEP (*crtbegin*.o(.ctors))
-    /* We don't want to include the .ctor section from
-       from the crtend.o file until after the sorted ctors.
-       The .ctor section from the crtend file contains the
-       end of ctors marker and it must be last */
-    KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors))
-  }
-  .dtors          :
-  {
-    KEEP (*crtbegin*.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors))
-  }
-  .jcr            : { KEEP (*(.jcr)) }
-  .data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) }
-  .dynamic        : { *(.dynamic) }
-  .got            : { *(.got.plt) *(.got) }
-  .data           :
-  {
-    *(.data .data.* .gnu.linkonce.d.*)
-    KEEP (*(.gnu.linkonce.d.*personality*))
-    SORT(CONSTRUCTORS)
-  }
-  .data1          : { *(.data1) }
-  _edata = .;
-  PROVIDE (edata = .);
-  __bss_start = .;
-  .bss            :
-  {
-   *(.dynbss)
-   *(.bss .bss.* .gnu.linkonce.b.*)
-   *(COMMON)
-   /* Align here to ensure that the .bss section occupies space up to
-      _end.  Align after .bss to ensure correct alignment even if the
-      .bss section disappears because there are no input sections.  */
-   . = ALIGN(16);
-  }
-  .toe ALIGN(128) : { *(.toe) } = 0
-  . = ALIGN(16);
-  OVERLAY :
-    {
-      .ovly0 { foo.o(.text) }
-      .ovly1 { bar.o(.text) }
-    }
-  OVERLAY :
-    {
-      .ovly2 { baz.o(.text) }
-      .ovly3 { grbx.o(.text) }
-    }
-  _end = .;
-  PROVIDE (end = .);
-  /* Stabs debugging sections.  */
-  .stab          0 : { *(.stab) }
-  .stabstr       0 : { *(.stabstr) }
-  .stab.excl     0 : { *(.stab.excl) }
-  .stab.exclstr  0 : { *(.stab.exclstr) }
-  .stab.index    0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
-  .comment       0 : { *(.comment) }
-  /* DWARF debug sections.
-     Symbols in the DWARF debugging sections are relative to the beginning
-     of the section so we begin them at 0.  */
-  /* DWARF 1 */
-  .debug          0 : { *(.debug) }
-  .line           0 : { *(.line) }
-  /* GNU DWARF 1 extensions */
-  .debug_srcinfo  0 : { *(.debug_srcinfo) }
-  .debug_sfnames  0 : { *(.debug_sfnames) }
-  /* DWARF 1.1 and DWARF 2 */
-  .debug_aranges  0 : { *(.debug_aranges) }
-  .debug_pubnames 0 : { *(.debug_pubnames) }
-  /* DWARF 2 */
-  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
-  .debug_abbrev   0 : { *(.debug_abbrev) }
-  .debug_line     0 : { *(.debug_line) }
-  .debug_frame    0 : { *(.debug_frame) }
-  .debug_str      0 : { *(.debug_str) }
-  .debug_loc      0 : { *(.debug_loc) }
-  .debug_macinfo  0 : { *(.debug_macinfo) }
-  /* SGI/MIPS DWARF 2 extensions */
-  .debug_weaknames 0 : { *(.debug_weaknames) }
-  .debug_funcnames 0 : { *(.debug_funcnames) }
-  .debug_typenames 0 : { *(.debug_typenames) }
-  .debug_varnames  0 : { *(.debug_varnames) }
-  .note.spu_name 0 : { *(.note.spu_name) }
-  PROVIDE (__stack = 0x3fff0);
-  /DISCARD/ : { *(.note.GNU-stack) }
-}
-
diff --git a/gdb/testsuite/gdb.base/stack-checking.c b/gdb/testsuite/gdb.base/stack-checking.c
index e8af6a1c23..8f6dedbcec 100644
--- a/gdb/testsuite/gdb.base/stack-checking.c
+++ b/gdb/testsuite/gdb.base/stack-checking.c
@@ -36,11 +36,7 @@ void medium_frame ()
 
 void big_frame ()
 {
-#ifdef __SPU__
-  char S [131072];
-#else
   char S [524188];
-#endif
   small_frame ();
 }
 
diff --git a/gdb/testsuite/gdb.cell/arch.exp b/gdb/testsuite/gdb.cell/arch.exp
deleted file mode 100644
index dbfb20c379..0000000000
--- a/gdb/testsuite/gdb.cell/arch.exp
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcase checks if the "show architecture" command works properly.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-# No programm running, default architecture should be powerpc:common.
-gdb_test "show architecture" \
-	 "The target architecture is set automatically.*currently powerpc:common.*" \
-	 "startup architecture is powerpc:common"
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-# In PPU thread, architecture should be powerpc:common.
-gdb_test "show architecture" \
-	 "The target architecture is set automatically.*currently powerpc:common.*" \
-	 "ppu architecture is powerpc:common"
-
-# Switch to SPU thread.
-cont_spu_main
-check_spu_arch ""
-
-# Remember thread ID of first thread to hit SPU main.
-send_gdb "thread\n"
-gdb_expect 10 {
-    -re "Current thread is (\[0-9\]*) .*\r\n$gdb_prompt $" {
-	pass "retrieve current thread"
-	set thread_id $expect_out(1,string)
-    }
-    -re "$gdb_prompt $" {
-	fail "retrieve current thread"
-	return 0
-    }
-    timeout {
-	fail "retrieve current thread (timed out)"
-	return 0
-    }
-}
-
-# Stress Test: Switching from PPU- to SPU-Thread and back 'rep' times.
-set rep 100
-for {set i 0} {$i < $rep} {incr i} {
-  # Switch to PPU Thread.
-  gdb_test "t 1" \
-	   "Switching to thread 1.*" \
-	   "switch back to thread 1 (PPU) #$i"
-  # In PPU Thread, architecture should again be powerpc:common.
-  gdb_test "show architecture" \
-	   "The target architecture is set automatically.*currently powerpc:common.*" \
-	   "ppu architecture is powerpc:common again #$i"
-  # Thread switching to SPU.
-  gdb_test "t $thread_id" \
-	   "Switching to thread $thread_id.*at.*$spu_file.c.*" \
-	   "switch back to thread $thread_id (spu) #$i"
-  # Standing in SPU thread again, architecture should be spu:256K again.
-  check_spu_arch "spu architecture is spu256K again #$i"
-}
-# End of Stress Test loop
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/break-spu.c b/gdb/testsuite/gdb.cell/break-spu.c
deleted file mode 100644
index f28a843c04..0000000000
--- a/gdb/testsuite/gdb.cell/break-spu.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-
-void foo (void);
-
-int
-main (unsigned long long speid, unsigned long long argp,
-      unsigned long long envp)
-{
-  int i;
-
-  printf ("Hello World! from spu\n");
-
-  i = 5;
-  foo ();
-  printf ("i = %d\n", i);
-
-  return 0;
-}
-
-void
-foo (void)
-{
-  printf ("in foo\n");
-}
diff --git a/gdb/testsuite/gdb.cell/break.c b/gdb/testsuite/gdb.cell/break.c
deleted file mode 100644
index 95108d7d50..0000000000
--- a/gdb/testsuite/gdb.cell/break.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t break_spu;
-#define nr_t 5
-
-void *
-spe_thread (void * arg)
-{
-  int flags = 0;
-  unsigned int entry = SPE_DEFAULT_ENTRY;
-  spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
-  spe_program_load (*ctx, &break_spu);
-  spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
-  pthread_exit (NULL);
-}
-
-int
-main (void)
-{
-  int thread_id[nr_t];
-  pthread_t pts[nr_t];
-  spe_context_ptr_t ctx[nr_t];
-  int value = 1;
-  int cnt;
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    {
-      ctx[cnt] = spe_context_create (0, NULL);
-      thread_id[cnt]
-	= pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
-    }
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    pthread_join (pts[cnt], NULL);
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    spe_context_destroy (ctx[cnt]);
-
-  return 0;
-}
-
-void
-foo ()
-{
-  printf ("foo in break\n");
-  return;
-}
diff --git a/gdb/testsuite/gdb.cell/break.exp b/gdb/testsuite/gdb.cell/break.exp
deleted file mode 100644
index 73e60ad4c1..0000000000
--- a/gdb/testsuite/gdb.cell/break.exp
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests setting and deleting breakpoints on PPU and SPU.
-
-load_lib cell.exp
-
-set testfile "break"
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-# Delete breakpoints before starting the application. The debugger
-# shouldn't prompt for anything.
-gdb_test "delete breakpoints" \
-	 "" \
-	 "no prompt when deleting non-existing breakpoints"
-
-gdb_test "break main" \
-	 "Breakpoint.*at.* file .*$testfile.c, line.*" \
-	 "breakpoint main in ppu"
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-delete_breakpoints
-
-# Re-set breakpoint at main in PPU binary.
-gdb_test "break main" \
-	 "Breakpoint.*at.* file .*$testfile.c, line.*" \
-	 "breakpoint function"
-
-# Set breakpoint in SPU binary.
-send_gdb "break $spu_file.c:10\n"
-gdb_expect {
-  -re ".*$spu_file.c.*Make breakpoint pending.*y or \\\[n\\\]. $" {
-    gdb_test "y" "Breakpoint.*$spu_file.*pending." "set pending breakpoint"
-  }
-  timeout { fail "timeout while setting breakpoint in spu binary" }
-}
-
-# Check breakpoints.
-gdb_test "info break" \
-	 "Num\[ \]+Type\[ \]+Disp\[ \]+Enb\[ \]+Address\[ \]+What.*
-\[0-9\]+\[\t \]+breakpoint     keep y.*in main at.*$testfile.c.*
-\[0-9\]+\[\t \]+breakpoint     keep y.*PENDING.*$spu_file.c:10.*" \
-	 "breakpoint info"
-
-gdb_test "continue" \
-	 "Continuing.*Switching to Thread.*Breakpoint.*main.*at.*$spu_file.c.*" \
-	 "continuing to spu thread"
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/bt-spu.c b/gdb/testsuite/gdb.cell/bt-spu.c
deleted file mode 100644
index 6e83361cd3..0000000000
--- a/gdb/testsuite/gdb.cell/bt-spu.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-#include <sys/syscall.h>
-
-int
-main (unsigned long long speid, unsigned long long argp,
-      unsigned long long envp)
-{
-  __send_to_ppe (0x2111, 0, NULL);
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/bt.c b/gdb/testsuite/gdb.cell/bt.c
deleted file mode 100644
index 31fb4ea864..0000000000
--- a/gdb/testsuite/gdb.cell/bt.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t bt_spu;
-extern spe_program_handle_t bt2_spu;
-#define nr_t 5
-
-void *
-spe_thread (void * arg)
-{
-  int flags = 0;
-  unsigned int entry = SPE_DEFAULT_ENTRY;
-  spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
-  spe_program_load (*ctx, &bt_spu);
-  spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
-  pthread_exit (NULL);
-}
-
-int
-indirect_handler (unsigned char *base, unsigned long offset)
-{
-  int flags = 0;
-  unsigned int entry = SPE_DEFAULT_ENTRY;
-  spe_context_ptr_t ctx = spe_context_create (0, NULL);
-
-  spe_program_load (ctx, &bt2_spu);
-  spe_context_run (ctx, &entry, flags, NULL, NULL, NULL);
-
-  return 0;
-}
-
-static pthread_mutex_t crash_mutex = PTHREAD_MUTEX_INITIALIZER;
-static int crash_count = 0;
-
-int
-crash_handler (unsigned char *base, unsigned long offset)
-{
-  int count;
-
-  pthread_mutex_lock (&crash_mutex);
-  count = ++crash_count;
-  pthread_mutex_unlock (&crash_mutex);
-
-  while (count < nr_t)
-    ;
-
-  abort ();
-}
-
-int
-main (void)
-{
-  int thread_id[nr_t];
-  pthread_t pts[nr_t];
-  spe_context_ptr_t ctx[nr_t];
-  int value = 1;
-  int cnt;
-
-  spe_callback_handler_register (indirect_handler, 0x11, SPE_CALLBACK_NEW);
-  spe_callback_handler_register (crash_handler, 0x12, SPE_CALLBACK_NEW);
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    {
-      ctx[cnt] = spe_context_create (0, NULL);
-      thread_id[cnt]
-	= pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
-    }
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    pthread_join (pts[cnt], NULL);
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    spe_context_destroy (ctx[cnt]);
-
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/bt.exp b/gdb/testsuite/gdb.cell/bt.exp
deleted file mode 100644
index cacf7c2035..0000000000
--- a/gdb/testsuite/gdb.cell/bt.exp
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests mixed-architecture backtrace support
-
-load_lib cell.exp
-
-set testfile "bt"
-set ppu_file "bt"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "bt-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-set spu2_file "bt2-spu"
-set spu2_src ${srcdir}/${subdir}/${spu2_file}.c
-set spu2_bin [standard_output_file ${spu2_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binaries.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_spu $spu2_src $spu2_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_cell_embedspu $spu2_bin $spu2_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o $spu2_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-delete_breakpoints
-gdb_test "continue" ".*received signal SIGABRT, Aborted.*"
-
-gdb_test "backtrace" ".*abort.*crash_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu2_file.c.*<cross-architecture call>.*spe_context_run.*indirect_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*"
-
-for {set thread_id 2} {$thread_id < 7} {incr thread_id} {
-  gdb_test "t $thread_id" \
-           "Switching to thread $thread_id.*" \
-           "switch to thread $thread_id"
-  gdb_test "backtrace" \
-	   ".*crash_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu2_file.c.*<cross-architecture call>.*spe_context_run.*indirect_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*" \
-	   "backtrace in thread $thread_id"
-}
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/bt2-spu.c b/gdb/testsuite/gdb.cell/bt2-spu.c
deleted file mode 100644
index 67ed34c364..0000000000
--- a/gdb/testsuite/gdb.cell/bt2-spu.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-#include <sys/syscall.h>
-
-int
-main (unsigned long long speid, unsigned long long argp,
-      unsigned long long envp)
-{
-  __send_to_ppe (0x2112, 0, NULL);
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/core.exp b/gdb/testsuite/gdb.cell/core.exp
deleted file mode 100644
index 2de7562926..0000000000
--- a/gdb/testsuite/gdb.cell/core.exp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests mixed-architecture core file support
-
-load_lib cell.exp
-
-set testfile "coremaker"
-set ppu_file "coremaker"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "coremaker-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {![isnative]} then {
-    return 0
-}
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-# Run program to generate a core file -- see gdb.base/corefile.exp
-set found 0
-set coredir "${objdir}/${subdir}/coredir.[getpid]"
-file mkdir $coredir
-catch "system \"(cd ${coredir}; ulimit -c unlimited; ${ppu_bin}; true) >/dev/null 2>&1\""
-set names [glob -nocomplain -directory $coredir core.*]
-if {[llength $names] == 1} {
-    set corefile [file join $coredir [lindex $names 0]]
-    remote_exec build "mv $corefile ${objdir}/${subdir}/corefile"
-    set found 1
-}
-remote_exec build "rmdir $coredir"
-if { $found == 0  } {
-    warning "can't generate a core file - core tests suppressed - check ulimit -c"
-    return 0
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-send_gdb "core-file $objdir/$subdir/corefile\n"
-gdb_expect {
-    -re "Core was generated by .*coremaker.*\r\n\#0  .*\(\).*\r\n$gdb_prompt $" {
-	pass "core-file command"
-    }
-    -re "Core was generated by .*\r\n\#0  .*\(\).*\r\n$gdb_prompt $" {
-	pass "core-file command (with bad program name)"
-    }
-    -re ".*$gdb_prompt $"	{ fail "core-file command" }
-    timeout			{ fail "(timeout) core-file command" }
-}
-
-gdb_test "backtrace" ".*abort.*main.*at.*$ppu_file.c.*"
-
-for {set thread_id 2} {$thread_id < 7} {incr thread_id} {
-  gdb_test "t $thread_id" \
-           "Switching to thread $thread_id.*" \
-           "switch to thread $thread_id"
-  gdb_test "backtrace" \
-	   ".*terminal_func.*factorial_func.*value=1.*factorial_func.*value=2.*factorial_func.*value=3.*factorial_func.*value=4.*factorial_func.*value=5.*factorial_func.*value=6.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*" \
-	   "backtrace in thread $thread_id"
-}
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/coremaker-spu.c b/gdb/testsuite/gdb.cell/coremaker-spu.c
deleted file mode 100644
index 472660d629..0000000000
--- a/gdb/testsuite/gdb.cell/coremaker-spu.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <spu_mfcio.h>
-
-void
-terminal_func ()
-{
-  spu_write_out_intr_mbox (0);
-  spu_read_in_mbox ();
-}
-
-int
-factorial_func (int value)
-{
-  if (value > 1)
-    value *= factorial_func (value - 1);
-
-  terminal_func ();
-  return value;
-}
-
-int
-main (unsigned long long speid, unsigned long long argp,
-      unsigned long long envp)
-{
-  factorial_func (6);
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/coremaker.c b/gdb/testsuite/gdb.cell/coremaker.c
deleted file mode 100644
index 741e9483b4..0000000000
--- a/gdb/testsuite/gdb.cell/coremaker.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t coremaker_spu;
-#define nr_t 5
-
-void *
-spe_thread (void * arg)
-{
-  int flags = 0;
-  unsigned int entry = SPE_DEFAULT_ENTRY;
-  spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
-  spe_program_load (*ctx, &coremaker_spu);
-  spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
-  pthread_exit (NULL);
-}
-
-int
-main (void)
-{
-  int thread_id[nr_t];
-  pthread_attr_t attr;
-  pthread_t pts[nr_t];
-  spe_context_ptr_t ctx[nr_t];
-  unsigned int value;
-  int cnt;
-
-  /* Use small thread stacks to speed up writing out core file.  */
-  pthread_attr_init (&attr);
-  pthread_attr_setstacksize (&attr, 2*PTHREAD_STACK_MIN);
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    {
-      ctx[cnt] = spe_context_create (0, NULL);
-      thread_id[cnt]
-	= pthread_create (&pts[cnt], &attr, &spe_thread, &ctx[cnt]);
-    }
-
-  pthread_attr_destroy (&attr);
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    spe_out_intr_mbox_read (ctx[cnt], &value, 1, SPE_MBOX_ALL_BLOCKING);
-
-  abort ();
-}
-
diff --git a/gdb/testsuite/gdb.cell/data-spu.c b/gdb/testsuite/gdb.cell/data-spu.c
deleted file mode 100644
index 56efbbcc63..0000000000
--- a/gdb/testsuite/gdb.cell/data-spu.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-
-int
-main (unsigned long long speid, unsigned long long argp,
-      unsigned long long envp)
-{
-  char var_char = 'c';
-  short var_short = 7;
-  int var_int = 1337;
-  long var_long = 123456;
-  long long var_longlong = 123456789;
-  float var_float = 1.23;
-  double var_double = 2.3456;
-  long double var_longdouble = 3.45678;
-  return 0; /* Marker SPU End */
-}
-
diff --git a/gdb/testsuite/gdb.cell/data.c b/gdb/testsuite/gdb.cell/data.c
deleted file mode 100644
index 7c38461181..0000000000
--- a/gdb/testsuite/gdb.cell/data.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t data_spu;
-#define nr_t 1
-
-void *
-spe_thread (void *arg)
-{
-  int flags = 0;
-  unsigned int entry = SPE_DEFAULT_ENTRY;
-  spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
-  spe_program_load (*ctx, &data_spu);
-  spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
-  pthread_exit (NULL);
-}
-
-int main (void)
-{
-  int thread_id[nr_t];
-  pthread_t pts[nr_t];
-  spe_context_ptr_t ctx[nr_t];
-
-  int cnt;
-
-  char var_char = 'c';
-  short var_short = 7;
-  int var_int = 1337;
-  long var_long = 123456;
-  long long var_longlong = 123456789;
-  float var_float = 1.23;
-  double var_double = 2.3456;
-  long double var_longdouble = 3.45678;
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    {
-      ctx[cnt] = spe_context_create(0, NULL);
-      thread_id[cnt]
-	= pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
-    }
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    pthread_join (pts[cnt], NULL);
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    spe_context_destroy (ctx[cnt]);
-
-  return 0;
-}
diff --git a/gdb/testsuite/gdb.cell/data.exp b/gdb/testsuite/gdb.cell/data.exp
deleted file mode 100644
index f5c0d20788..0000000000
--- a/gdb/testsuite/gdb.cell/data.exp
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tries to read variables of each kind both on PPU and SPU.
-
-load_lib cell.exp
-
-set testfile "data"
-set ppu_file "data"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "data-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-proc check_var { name value } {
-  gdb_test "print $name" \
-	   ".*=.*$value" \
-	   "check_var $name = $value"
-}
-
-proc set_var { name value } {
-  gdb_test "set var $name = $value" \
-	   "" \
-	   "set var $name = $value"
-}
-
-proc dotest { name value } {
-  set_var $name $value
-  check_var $name $value
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-# Set values.
-dotest var_char 'z'
-dotest var_short 8
-dotest var_int 321
-dotest var_long 523442
-dotest var_longlong 235354533
-xfail "dotest var_float 33.2113"
-xfail "dotest var_double 2.3456"
-xfail "dotest var_longdouble 3.456789"
-
-gdb_test "break 55" \
-	 "Breakpoint.*at.*file.*$testfile.c, line 55.*" \
-	 "set breakpoint"
-gdb_test "continue" \
-	 "Breakpoint.*at.*$testfile.c.*55.*" \
-	 "continue to bp at line 55"
-
-# Lookup variables.
-check_var var_char 'c'
-check_var var_short 7
-check_var var_int 1337
-check_var var_long 123456
-check_var var_longlong 123456789
-xfail "check_var var_float 1.23"
-xfail "check_var var_double 2.3456"
-xfail "check_var var_longdouble 3.456789"
-
-cont_spu_main
-c_to "Marker SPU End" $spu_file.c
-
-# In SPU Thread, arch should now be spu:256K.
-check_spu_arch ""
-
-# Lookup variables.
-check_var var_char 'c'
-check_var var_short 7
-check_var var_int 1337
-check_var var_long 123456
-check_var var_longlong 123456789
-xfail "check_var var_float 1.23"
-xfail "check_var var_double 2.3456"
-xfail "check_var var_longdouble 3.456789"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/dwarfaddr.S b/gdb/testsuite/gdb.cell/dwarfaddr.S
deleted file mode 100644
index 543da3d78d..0000000000
--- a/gdb/testsuite/gdb.cell/dwarfaddr.S
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Copyright 2010-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   This file is part of the gdb testsuite.
-
-   Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-   Tests for SPU addresses resulting from complex DWARF expressions.  */
-
-	.text
-main:
-.Ltext_s:
-.LFB1:
-	stqd        $1,-240($1)
-	ai          $1,$1,-240
-	ai          $2,$1,32
-	ai          $2,$2,127
-	il          $3,127
-	andc        $3,$2,$3
-	il          $2,1
-	lqd         $4,0($3)
-	cwd         $5,0($3)
-	shufb       $2,$2,$4,$5
-	stqd        $2,0($3)
-	lqd         $1,0($1)
-	bi          $0
-.LFE1:
-	.global main
-	.type	main,@function
-	.size	main,.LFE1-.LFB1
-.Ltext_e:
-
-	.section	.debug_info,"",@progbits
-.Ldebug_info_s:
-	.int	.debug_info_size-4
-	.short	0x2
-	.int	.Ldebug_abbrev_s
-	.byte	0x4
-.Ldie0:
-	.uleb128	0x1
-	.string	"test.c"
-	.int	.Ltext_s
-	.int	.Ltext_e
-	.byte	0x1
-.Ldie1:
-	.uleb128	0x2
-	.string	"int"
-	.byte	0x4
-	.byte	0x5
-.Ldie2:
-	.uleb128	0x3
-	.int	.Ldie4-.Ldebug_info_s
-	.int	.Ldie1-.Ldebug_info_s
-.Ldie3:
-	.uleb128	0x4
-	.byte	0
-	.byte	0xf
-	.uleb128	0
-.Ldie4:
-	.uleb128	0x5
-	.string	"main"
-	.int	.LFB1
-	.int	.LFE1
-	.byte	0x1
-	.byte	0x1
-	.byte	0x3
-	.byte	0x1
-	.byte	0x1
-	.byte	0x51
-.Ldie5:
-	.uleb128	0x6
-	.byte	0xe
-	.byte	0x91
-	.sleb128	0x20
-	.byte	0xd
-	.int	0x7f
-	.byte	0x22
-	.byte	0xd
-	.int	0xffffff80
-	.byte	0x1a
-	.string	"x"
-	.byte	0x1
-	.byte	0
-	.int	.Ldie2-.Ldebug_info_s
-	.uleb128	0
-	.uleb128	0
-.Ldebug_info_e:
-	.set	.debug_info_size,.Ldebug_info_e-.Ldebug_info_s
-
-
-	.section	.debug_abbrev,"",@progbits
-.Ldebug_abbrev_s:
-	.uleb128	0x1
-	.uleb128	0x11
-	.byte	0x1
-	.uleb128	0x3
-	.uleb128	0x8
-	.uleb128	0x11
-	.uleb128	0x1
-	.uleb128	0x12
-	.uleb128	0x1
-	.uleb128	0x13
-	.uleb128	0xb
-	.uleb128	0
-	.uleb128	0
-
-	.uleb128	0x2
-	.uleb128	0x24
-	.byte	0
-	.uleb128	0x3
-	.uleb128	0x8
-	.uleb128	0xb
-	.uleb128	0xb
-	.uleb128	0x3e
-	.uleb128	0xb
-	.uleb128	0
-	.uleb128	0
-
-	.uleb128	0x3
-	.uleb128	0x1
-	.byte	0x1
-	.uleb128	0x1
-	.uleb128	0x13
-	.uleb128	0x49
-	.uleb128	0x13
-	.uleb128	0
-	.uleb128	0
-
-	.uleb128	0x4
-	.uleb128	0x21
-	.byte	0
-	.uleb128	0x22
-	.uleb128	0xb
-	.uleb128	0x2f
-	.uleb128	0xb
-	.uleb128	0
-	.uleb128	0
-
-	.uleb128	0x5
-	.uleb128	0x2e
-	.byte	0x1
-	.uleb128	0x3
-	.uleb128	0x8
-	.uleb128	0x11
-	.uleb128	0x1
-	.uleb128	0x12
-	.uleb128	0x1
-	.uleb128	0x27
-	.uleb128	0xc
-	.uleb128	0x3a
-	.uleb128	0xb
-	.uleb128	0x3b
-	.uleb128	0xb
-	.uleb128	0x3f
-	.uleb128	0xc
-	.uleb128	0x40
-	.uleb128	0xa
-	.uleb128	0
-	.uleb128	0
-
-	.uleb128	0x6
-	.uleb128	0x34
-	.byte	0
-	.uleb128	0x2
-	.uleb128	0xa
-	.uleb128	0x3
-	.uleb128	0x8
-	.uleb128	0x3a
-	.uleb128	0xb
-	.uleb128	0x3b
-	.uleb128	0xb
-	.uleb128	0x49
-	.uleb128	0x13
-	.uleb128	0
-	.uleb128	0
-	.uleb128	0
-.Ldebug_abbrev_e:
-	.set	.debug_abbrev_size,.Ldebug_abbrev_e-.Ldebug_abbrev_s
-
diff --git a/gdb/testsuite/gdb.cell/dwarfaddr.exp b/gdb/testsuite/gdb.cell/dwarfaddr.exp
deleted file mode 100644
index b61cd53c2e..0000000000
--- a/gdb/testsuite/gdb.cell/dwarfaddr.exp
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2010-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# This file is part of the gdb testsuite.
-#
-# Contributed by Ulrich Weigand  <uweigand@de.ibm.com>.
-# Tests for SPU addresses resulting from complex DWARF expressions.
-
-load_lib cell.exp
-
-set testfile "dwarfaddr"
-set srcfile ${srcdir}/${subdir}/${testfile}.S
-set binary [standard_output_file ${testfile}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $srcfile $binary executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binary}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-gdb_test "print x" " = \\{0 <repeats 16 times>\\}" "print x"
-gdb_test "print &x" " = \\(int \\(\\*\\)\\\[16\\\]\\) 0x\[0-9a-f\]*" "print &x"
-gdb_test "info address x" "Symbol \"x\" is a complex DWARF expression.*DW_OP_and\[\r\n\]+\." "info address x"
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/ea-cache-spu.c b/gdb/testsuite/gdb.cell/ea-cache-spu.c
deleted file mode 100644
index 07b11c18d3..0000000000
--- a/gdb/testsuite/gdb.cell/ea-cache-spu.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-#include <spu_mfcio.h>
-
-__ea int *ppe_int_ptr;
-
-int
-main (unsigned long long speid, unsigned long long argp,
-      unsigned long long envp)
-{
-  printf ("spe.c | argp = 0x%llx\n", argp);
-
-#ifdef __EA32__
-  ppe_int_ptr = (__ea int *)(unsigned long)argp;
-#else
-  ppe_int_ptr = (__ea int *)argp;
-#endif
-  printf ("spe.c | value = %d\n", *ppe_int_ptr);
-  *ppe_int_ptr = 42; /* Marker SPUEA */
-  printf ("spe.c | value = %d\n", *ppe_int_ptr);
-
-  return 0;
-}
diff --git a/gdb/testsuite/gdb.cell/ea-cache.c b/gdb/testsuite/gdb.cell/ea-cache.c
deleted file mode 100644
index a0a828b017..0000000000
--- a/gdb/testsuite/gdb.cell/ea-cache.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t ea_cache_spu;
-int int_var = 23;
-
-void *
-spe_thread (void *arg)
-{
-  int flags = 0;
-  unsigned int entry = SPE_DEFAULT_ENTRY;
-  spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
-  spe_program_load (*ctx, &ea_cache_spu);
-  spe_context_run (*ctx, &entry, flags, &int_var, NULL, NULL);
-
-  pthread_exit (NULL);
-}
-
-int
-main (void)
-{
-  spe_context_ptr_t ctx;
-  pthread_t pts;
-  int thread_id;
-
-  printf ("ppe.c | int_var vor %d | adr int_var %p\n", int_var, &int_var);
-
-  /* Create SPE context and pthread.  */
-  ctx = spe_context_create (0, NULL);
-  thread_id = pthread_create (&pts, NULL, &spe_thread, &ctx);
-
-  /* Join the pthread.  */
-  pthread_join (pts, NULL);
-
-  /* Destroy the SPE context.  */
-  spe_context_destroy (ctx);
-
-  printf ("ppe.c | int_var nach %d\n", int_var);
-
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/ea-cache.exp b/gdb/testsuite/gdb.cell/ea-cache.exp
deleted file mode 100644
index e9bb709155..0000000000
--- a/gdb/testsuite/gdb.cell/ea-cache.exp
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Testcase for ea software managed cache.
-
-load_lib cell.exp
-
-set ppu_file "ea-cache"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "ea-cache-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-# Set breakpoint in SPU binary.
-cont_spu_main
-c_to "Marker SPUEA" $spu_file.c
-
-gdb_test "p *ppe_int_ptr" \
-	 ".*=.*23.*" \
-	 "p *ppe_int_ptr"
-
-gdb_test "set *ppe_int_ptr=42" "" ""
-
-gdb_test "p *ppe_int_ptr" \
-	 ".*=.*42.*" \
-	 "p *ppe_int_ptr"
-
-# Now switch to thread 1 (PPU) and look at int_var.  ppe_int_ptr points to
-# int_var and should now also contain 42 (ea cache has been flushed).
-gdb_test "t 1" \
-	 ".*Switching to thread 1.*" \
-	 "switch to thread 1"
-
-gdb_test "p int_var" \
-	 ".*=.*42.*" \
-	 "p int_var on ppu"
-
-gdb_exit
-return 0
-
-
diff --git a/gdb/testsuite/gdb.cell/ea-standalone.c b/gdb/testsuite/gdb.cell/ea-standalone.c
deleted file mode 100644
index 20b9af3316..0000000000
--- a/gdb/testsuite/gdb.cell/ea-standalone.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-#include <ea.h>
-
-int
-main (unsigned long long speid, unsigned long long argp,
-      unsigned long long envp)
-{
-  int a;
-  __ea int *myarray = malloc_ea (3 * sizeof (int));
-
-  memset_ea (myarray, 0, 3 * sizeof (int));
-  a = ++myarray[0]; /* Marker SPUEA1  */
-  printf("a: %d, myarray[0]: %d\n", a, myarray[0]); /* Marker SPUEA2  */
-  return 0;
-}
diff --git a/gdb/testsuite/gdb.cell/ea-standalone.exp b/gdb/testsuite/gdb.cell/ea-standalone.exp
deleted file mode 100644
index cae8e98cdf..0000000000
--- a/gdb/testsuite/gdb.cell/ea-standalone.exp
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Testcase for ea software managed cache in a standalone binary.
-
-load_lib cell.exp
-
-set testfile "ea-standalone"
-set srcfile ${srcdir}/${subdir}/${testfile}.c
-set binary [standard_output_file ${testfile}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $srcfile $binary executable {debug}]  != "" } {
-  unsupported "failed to compile"
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binary}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-c_to "Marker SPUEA1" $testfile.c
-gdb_test "p myarray\[0\]" \
-	 ".*= 0" \
-	 "p myarray\[0\]"
-
-c_to "Marker SPUEA2" $testfile.c
-gdb_test "p myarray\[0\]" \
-	 ".*= 1" \
-	 "p myarray\[0\]"
-gdb_test "call __cache_flush()" "" "call cache_flush()"
-gdb_test "p myarray\[0\]" \
-	 ".*= 1" \
-	 "p myarray\[0\]"
-
-gdb_exit
-return 0
-
-
diff --git a/gdb/testsuite/gdb.cell/ea-test.c b/gdb/testsuite/gdb.cell/ea-test.c
deleted file mode 100644
index efe49c5418..0000000000
--- a/gdb/testsuite/gdb.cell/ea-test.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-
-__ea int *ppe_pointer;
-int *normal_pointer;
-
-int
-main (unsigned long long speid, unsigned long long argp,
-      unsigned long long envp)
-{
-  static __ea int *local_ppe_pointer;
-  static int *local_normal_pointer;
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/ea-test.exp b/gdb/testsuite/gdb.cell/ea-test.exp
deleted file mode 100644
index cbb02f120a..0000000000
--- a/gdb/testsuite/gdb.cell/ea-test.exp
+++ /dev/null
@@ -1,124 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Testcase for __ea pointer
-
-load_lib cell.exp
-
-set testfile "ea-test"
-set source ${srcdir}/${subdir}/${testfile}.c
-set binary [standard_output_file ${testfile}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $source $binary executable {debug}]  != "" } {
-  unsupported "failed to compile"
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binary}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-# p
-gdb_test "p ppe_pointer" \
-	 "(int.*@__ea).*0x0.*" \
-	 "p ppe_pointer"
-
-gdb_test "p normal_pointer" \
-	 "(int.*).*0x0.*" \
-	 "p normal_pointer"
-
-gdb_test "p local_ppe_pointer" \
-	 "(int.*@__ea).*0x0.*" \
-	 "p local_ppe_pointer"
-
-gdb_test "p local_normal_pointer" \
-	 "(int.*).*0x0.*" \
-	 "p local_normal_pointer"
-
-# ptype
-gdb_test "ptype ppe_pointer" \
-	 "type = int.*@__ea" \
-	 "ptype ppe_pointer"
-
-gdb_test "ptype normal_pointer" \
-	 "type = int.*" \
-	 "ptype normal_pointer"
-
-gdb_test "ptype local_ppe_pointer" \
-	 "type = int.*@__ea" \
-	 "ptype local_ppe_pointer"
-
-gdb_test "ptype local_normal_pointer" \
-	 "type = int.*" \
-	 "ptype local_normal_pointer"
-
-# info locals
-gdb_test "info locals" \
-	 ".*local_ppe_pointer =.*0x0.*local_normal_pointer =.*0x0.*" \
-	 "info locals"
-
-# p &
-gdb_test "p &ppe_pointer" \
-	 ".*=.*(int.*@__ea.*).*0x.*" \
-	 "p &ppe_pointer"
-
-gdb_test "p &normal_pointer" \
-	 ".*=.*(int.*).*0x.*" \
-	 "p &normal_pointer"
-
-gdb_test "p &local_ppe_pointer" \
-	 ".*=.*(int.*@__ea.*).*0x.*" \
-	 "p &local_ppe_pointer"
-
-gdb_test "p &local_normal_pointer" \
-	 ".*=.*(int.*).*0x.*" \
-	 "p &local_normal_pointer"
-
-# ptype *
-gdb_test "ptype *ppe_pointer" \
-	 "type = int" \
-	 "ptype *ppe_pointer"
-
-gdb_test "ptype *normal_pointer" \
-	 "type = int" \
-	 "ptype *normal_pointer"
-
-gdb_test "ptype *local_ppe_pointer" \
-	 "type = int" \
-	 "ptype *local_ppe_pointer"
-
-gdb_test "ptype *local_normal_pointer" \
-	 "type = int" \
-	 "ptype *local_normal_pointer"
-
-gdb_exit
-
-return 0
-
-
diff --git a/gdb/testsuite/gdb.cell/f-regs.exp b/gdb/testsuite/gdb.cell/f-regs.exp
deleted file mode 100644
index a37c77afe5..0000000000
--- a/gdb/testsuite/gdb.cell/f-regs.exp
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcase tests access to SPU vector registers while language is fortran.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-proc check_vector_regs {} {
-  for {set check_reg 0} {$check_reg < 128} {incr check_reg} {
-
-    gdb_test "p \$r$check_reg" \
-	     "r$check_reg.*=.*\(.*\).*" \
-	     "p \$r$check_reg"
-
-    gdb_test "ptype \$r$check_reg" \
-	     "type = Type,.*C_Union :: __spu_builtin_type_vec128.*int128_t :: uint128.*int64_t :: v2_int64.*int32_t :: v4_int32\(.*\).*int16_t :: v8_int16\(.*\).*int8_t :: v16_int8\(.*\).*double :: v2_double\(.*\).*float :: v4_float\(.*\).*End Type __spu_builtin_type_vec128.*" \
-	     "ptype \$r$check_reg"
-  }
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-# No programm running, no registers should be available.
-gdb_test "info all-registers" \
-         "The program has no registers now." \
-         "info all-registers"
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-cont_spu_main
-gdb_test "set language fortran" \
-	 "Warning: the current language does not match this frame.*" \
-	 "set language fortran"
-check_vector_regs
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/fork-spu.c b/gdb/testsuite/gdb.cell/fork-spu.c
deleted file mode 100644
index 7777165d97..0000000000
--- a/gdb/testsuite/gdb.cell/fork-spu.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2010-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Ulrich Weigand <uweigand@de.ibm.com>  */
-
-#include <spu_mfcio.h>
-
-int var;
-
-void
-func (void)
-{
-}
-
-int
-main (unsigned long long speid, unsigned long long argp,
-      unsigned long long envp)
-{
-  /* Signal to PPU side that it should fork now.  */
-  spu_write_out_intr_mbox (0);
-
-  /* Wait until fork completed.  */
-  spu_read_in_mbox ();
-
-  /* Trigger watchpoint.  */
-  var = 1;
-
-  /* Now call some function to trigger breakpoint.  */
-  func ();
-
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/fork.c b/gdb/testsuite/gdb.cell/fork.c
deleted file mode 100644
index 240af47089..0000000000
--- a/gdb/testsuite/gdb.cell/fork.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2010-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Ulrich Weigand <uweigand@de.ibm.com>  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-extern spe_program_handle_t fork_spu;
-
-void *
-spe_thread (void * arg)
-{
-  int flags = 0;
-  unsigned int entry = SPE_DEFAULT_ENTRY;
-  spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
-  spe_program_load (*ctx, &fork_spu);
-  spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
-  pthread_exit (NULL);
-}
-
-int
-main (void)
-{
-  pthread_t pts;
-  spe_context_ptr_t ctx;
-  unsigned int value;
-  unsigned int pid;
-
-  ctx = spe_context_create (0, NULL);
-  pthread_create (&pts, NULL, &spe_thread, &ctx);
-
-  /* Wait until the SPU thread is running.  */
-  spe_out_intr_mbox_read (ctx, &value, 1, SPE_MBOX_ALL_BLOCKING);
-
-  pid = fork ();
-  if (pid == 0)
-    {
-      /* This is the child.  Just exit immediately.  */
-      exit (0);
-    }
-  else
-    {
-      /* This is the parent.  Wait for the child to exit.  */
-      waitpid (pid, NULL, 0);
-    }
-
-  /* Tell SPU to continue.  */
-  spe_in_mbox_write (ctx, &value, 1, SPE_MBOX_ALL_BLOCKING);
-  
-  pthread_join (pts, NULL);
-  spe_context_destroy (ctx);
-
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/fork.exp b/gdb/testsuite/gdb.cell/fork.exp
deleted file mode 100644
index 009219180f..0000000000
--- a/gdb/testsuite/gdb.cell/fork.exp
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 2010-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests support for PPU-side fork during SPU debugging
-
-load_lib cell.exp
-
-set testfile "fork"
-set ppu_file "fork"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "fork-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-delete_breakpoints
-
-gdb_test_no_output "set spu stop-on-load" "set spu stop-on-load"
-
-gdb_test "continue" "Continuing\\..*Temporary breakpoint \[0-9\]+, main \\(speid=.*, argp=.*, envp=.*\\) at .*$spu_file\\.c:.*spu_write_out_intr_mbox.*" \
-	 "run until SPU main"
-
-gdb_test "break func" "Breakpoint \[0-9\]+ at.* file .*$spu_file.c, line \[0-9\]+\\." "break func"
-gdb_test "watch var" "Watchpoint \[0-9\]+: var" "watch var"
-
-gdb_test "continue" "Continuing\\..*Watchpoint.*Old value = 0.*New value = 1.*" \
-	 "run until watchpoint hit"
-
-gdb_test_no_output "delete \$bpnum" "delete watchpoint"
-
-gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, func \\(\\) at .*$spu_file.c:.*" \
-	 "run until breakpoint hit"
-
-gdb_continue_to_end "" continue 1
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/gcore.exp b/gdb/testsuite/gdb.cell/gcore.exp
deleted file mode 100644
index f586b7553a..0000000000
--- a/gdb/testsuite/gdb.cell/gcore.exp
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests mixed-architecture core file support
-
-load_lib cell.exp
-
-set testfile "coremaker"
-set ppu_file "coremaker"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "coremaker-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {![isnative]} then {
-    return 0
-}
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-delete_breakpoints
-
-gdb_test "continue" ".*Aborted.*"
-
-if {![gdb_gcore_cmd "${objdir}/${subdir}/gcore.test" \
-	  "save a corefile"]} {
-    return -1
-}
-
-# Now restart gdb and load the corefile.
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-send_gdb "core-file $objdir/$subdir/gcore.test\n"
-gdb_expect {
-    -re "Core was generated by .*coremaker.*\r\n\#0  .*\(\).*\r\n$gdb_prompt $" {
-	pass "core-file command"
-    }
-    -re "Core was generated by .*\r\n\#0  .*\(\).*\r\n$gdb_prompt $" {
-	pass "core-file command (with bad program name)"
-    }
-    -re ".*$gdb_prompt $"	{ fail "core-file command" }
-    timeout			{ fail "(timeout) core-file command" }
-}
-
-gdb_test "backtrace" ".*abort.*main.*at.*$ppu_file.c.*"
-
-for {set thread_id 2} {$thread_id < 7} {incr thread_id} {
-  gdb_test "t $thread_id" \
-           "Switching to thread $thread_id.*" \
-           "switch to thread $thread_id"
-  gdb_test "backtrace" \
-	   ".*terminal_func.*factorial_func.*value=1.*factorial_func.*value=2.*factorial_func.*value=3.*factorial_func.*value=4.*factorial_func.*value=5.*factorial_func.*value=6.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*" \
-	   "backtrace in thread $thread_id"
-}
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/mem-access-spu.c b/gdb/testsuite/gdb.cell/mem-access-spu.c
deleted file mode 100644
index 3baa3a2cc1..0000000000
--- a/gdb/testsuite/gdb.cell/mem-access-spu.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-
-int
-main (unsigned long long speid, unsigned long long argp,
-      unsigned long long envp)
-{
-  int i;
-  static int test_var;
-
-  printf ("Hello World! from spu\n");
-
-  test_var = 5;
-  i = 5; /* Marker SPUEA */
-  printf ("i = %d\n", i);
-
-  return 0;
-}
diff --git a/gdb/testsuite/gdb.cell/mem-access.c b/gdb/testsuite/gdb.cell/mem-access.c
deleted file mode 100644
index 442e8a245d..0000000000
--- a/gdb/testsuite/gdb.cell/mem-access.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t mem_access_spu;
-#define nr_t 1
-
-void *
-spe_thread (void *arg)
-{
-  int flags = 0;
-  unsigned int entry = SPE_DEFAULT_ENTRY;
-  spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
-  spe_program_load (*ctx, &mem_access_spu);
-  spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
-  pthread_exit (NULL);
-}
-
-int
-main (void)
-{
-  int thread_id[nr_t];
-  pthread_t pts[nr_t];
-  spe_context_ptr_t ctx[nr_t];
-  int value = 1;
-  int cnt;
-  static int test_var;
-
-  test_var = 5;
-  for (cnt = 0; cnt < nr_t; cnt++) /* Marker PPUEA */
-    {
-      ctx[cnt] = spe_context_create (0, NULL);
-      thread_id[cnt]
-	= pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
-    }
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    pthread_join (pts[cnt], NULL);
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    spe_context_destroy (ctx[cnt]);
-
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/mem-access.exp b/gdb/testsuite/gdb.cell/mem-access.exp
deleted file mode 100644
index 86d22941ac..0000000000
--- a/gdb/testsuite/gdb.cell/mem-access.exp
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests on PPU and SPU if variables and registers are accessible
-# via print and set by using names and adresses.
-
-load_lib cell.exp
-
-set ppu_file "mem-access"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "mem-access-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-# Get the adress to symbol name. If $reg
-# is set to 1, get address from a register.
-proc get_adress_from_name { name reg } {
-  global gdb_prompt
-  set adr ""
-
-  if { $reg == 1 } {
-    set q "x/x $name"
-  } else {
-    set q "x/x &$name"
-  }
-
-  gdb_test_multiple $q "get address from $name" {
-    -re "(0x.....):.*$gdb_prompt $" { # Registers.
-      set adr $expect_out(1,string)
-      pass "get adress from $name = $adr"
-    }
-    -re "(0x........) <.*$gdb_prompt $" { # PPU address.
-      set adr $expect_out(1,string)
-      pass "get adress from $name = $adr"
-    }
-    -re "(0x....) <.*$gdb_prompt $" { # SPU address.
-      set adr $expect_out(1,string)
-      pass "get adress from $name = $adr"
-    }
-    -re "(0x...) <.*$gdb_prompt $" { # SPU address.
-      set adr $expect_out(1,string)
-      pass "get adress from $name = $adr"
-    }
-  }
-
-  return ${adr}
-}
-
-# Try to set a $value at adress $adr.
-proc set_adr_content { adr value } {
-  gdb_test "set *$adr=$value" \
-	   "" \
-	   "set *$adr=$value"
-}
-
-# Try to set a $value for $symbol.
-proc set_symbol_content { symbol value } {
-  gdb_test "set $symbol=$value" \
-	   "" \
-	   "set *$symbol=$value"
-}
-
-# Check if $value is at *adr
-proc test_adr_content { adr value } {
-  gdb_test "p *$adr" \
-           ".*=.*$value.*" \
-           "(ptr) *$adr==$value"
-}
-
-proc test_symbol_content { symbol value } {
-  gdb_test "p $symbol" \
-	   ".*=.*$value.*" \
-	   "(symbol) $symbol==$value"
-}
-
-# Check VARNAME. Check if it has the inital
-# value INITIALVALUE. Set it to NEWVALUE.
-# Check if set properly. Do it via symbols and
-# pointers.
-proc check_var { varname initalvalue newvalue } {
-
-  # Initial value should be $initalvalue.
-  test_symbol_content $varname $initalvalue
-
-  # Get pointer to symbol and check if the
-  # initial value is found.
-  set adr [get_adress_from_name $varname 0]
-  test_adr_content $adr $initalvalue
-
-  # Re-set value using the pointer.
-  set_adr_content $adr $newvalue
-
-  # Test values by pointer and by symbol.
-  test_adr_content $adr $newvalue
-  test_symbol_content $varname $newvalue
-
-  # Set value back to initalvalue using symbol
-  # name and check it.
-  set_symbol_content $varname $initalvalue
-  test_adr_content $adr $initalvalue
-  test_symbol_content $varname $initalvalue
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-# Check in PPU thread.
-c_to "Marker PPUEA" $ppu_file.c
-check_var "test_var" 5 7
-
-# Go to SPU thread.
-cont_spu_main
-c_to "Marker SPUEA" $spu_file.c
-check_spu_arch ""
-
-# Check in SPU thread.
-check_var "test_var" 5 7
-# Check $sp register.
-set adr [get_adress_from_name "\$sp" 1]
-set_adr_content $adr 8
-test_adr_content $adr 8
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/ptype.exp b/gdb/testsuite/gdb.cell/ptype.exp
deleted file mode 100644
index 39311e78d9..0000000000
--- a/gdb/testsuite/gdb.cell/ptype.exp
+++ /dev/null
@@ -1,145 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Test ptype and print/set of SPU-side registers.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-# Continue to SPU
-cont_spu_main
-
-gdb_test "info registers r2"  \
-	 "r2.*\{uint128 =.*v2_int64 =.*v4_int32 =.*v8_int16 =.*v16_int8 =.*v2_double =.*v4_float =.*\}.*" \
-	 "info registers r2"
-
-for {set check_reg 10} {$check_reg < 12} {incr check_reg} {
-  gdb_test "print \$r$check_reg\.v4_int32" \
-	   ".*= \{.*,.*,.*,.*\}" \
-	   "print \$r$check_reg\.v4_int32"
-
-  gdb_test "ptype \$r$check_reg" \
-	   "type = union __spu_builtin_type_vec128.*\{.*int128_t uint128.* \
-	    int64_t v2_int64.*int32_t v4_int32.*int16_t v8_int16.* \
-	    int8_t v16_int8.*double v2_double.*float v4_float.*\}" \
-	   "ptype \$r$check_reg"
-
-  gdb_test "set \$r$check_reg\.v4_int32 = {1,2,3,4}" \
-	   "" \
-	   "set \$r$check_reg\.v4_int32 = {1,2,3,4}"
-
-  gdb_test "print \$r$check_reg\.v4_int32" \
-	   ".*= \{.*1, 2, 3, 4.*\}" \
-	   "print \$r$check_reg\.v4_int32"
-
-  gdb_test "print \$r$check_reg.v4_int32\[0\]" \
-	   ".*= 1.*" \
-	   "print \$r$check_reg.v4_int32\[0\]"
-
-  gdb_test "print \$r$check_reg.v4_int32\[1\]" \
-	   ".*= 2.*" \
-	   "print \$r$check_reg.v4_int32\[1\]"
-
-  gdb_test "print \$r$check_reg.v4_int32\[2\]" \
-	   ".*= 3.*" \
-	   "print \$r$check_reg.v4_int32\[2\]"
-
-  gdb_test "print \$r$check_reg.v4_int32\[3\]" \
-	   ".*= 4.*" \
-	   "print \$r$check_reg.v4_int32\[3\]"
-
-  gdb_test "print \$r$check_reg.v4_int32\[4\]" \
-	   "no such vector element" \
-	   "print \$r$check_reg.v4_int32\[4\]"
-
-  # Set single array elements to other values and check the results.
-  gdb_test "set \$r$check_reg\.v4_int32\[0\] = 5" \
-	   "" \
-	   "set \$r$check_reg\.v4_int32\[0\] = 5"
-  gdb_test "print \$r$check_reg.v4_int32\[0\]" \
-	   ".*= 5.*" \
-	   "print \$r$check_reg.v4_int32\[0\]"
-
-  gdb_test "set \$r$check_reg\.v4_int32\[1\] = 6" \
-	   "" \
-	   "set \$r$check_reg\.v4_int32\[1\] = 6"
-  gdb_test "print \$r$check_reg.v4_int32\[1\]" \
-	   ".*= 6.*" \
-	   "print \$r$check_reg.v4_int32\[1\]"
-
-  gdb_test "set \$r$check_reg\.v4_int32\[2\] = 7" \
-	   "" \
-	   "set \$r$check_reg\.v4_int32\[2\] = 7"
-  gdb_test "print \$r$check_reg.v4_int32\[2\]" \
-	   ".*= 7.*" \
-	   "print \$r$check_reg.v4_int32\[2\]"
-
-  gdb_test "set \$r$check_reg\.v4_int32\[3\] = 8" \
-	   "" \
-	   "set \$r$check_reg\.v4_int32\[3\] = 8"
-  gdb_test "print \$r$check_reg.v4_int32\[3\]" \
-	   ".*= 8.*" \
-	   "print \$r$check_reg.v4_int32\[3\]"
-
-  # Now there should be {5, 6, 7, 8} in that array.
-  gdb_test "print \$r$check_reg\.v4_int32" \
-	   ".*= \{.*5, 6, 7, 8.*\}" \
-	   "print \$r$check_reg\.v4_int32"
-}
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/registers.exp b/gdb/testsuite/gdb.cell/registers.exp
deleted file mode 100644
index c4d271098b..0000000000
--- a/gdb/testsuite/gdb.cell/registers.exp
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcase tests registers on PPU and SPU.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-# No programm running, no registers should be available.
-gdb_test "info all-registers" \
-	  "The program has no registers now." \
-	  "info all-registers"
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-# Check registers in PPU thread.
-gdb_test "info reg r0" "r0.*" "info register r0"
-gdb_test "info reg r31" "r31.*" "info register r31"
-gdb_test "info reg r32" "Invalid register.*r32.*" "(invalid) info register r32"
-gdb_test "info reg pc" "pc.*" "info register pc"
-gdb_test "info reg cr" "cr.*" "info register cr"
-gdb_test "info reg lr" "lr.*" "info register lr"
-gdb_test "info reg ctr" "ctr.*" "info register ctr"
-gdb_test "info reg xer" "xer.*" "info register xer"
-
-# Continue to SPU thread.
-cont_spu_main
-
-# In SPU thread, check SPU registers.
-for {set check_reg 0} {$check_reg < 128} {incr check_reg} {
-  gdb_test "info reg r$check_reg" \
-	   "r$check_reg.*uint128.*=.*v2\_int64.*v4\_int32.*v8\_int16.*v16\_int8.*v2\_double.*v4\_float.*" \
-	   "info register r$check_reg"
-}
-gdb_test "info reg r128" \
-	 "Invalid register.*r128.*" \
-	 "(invalid) info register r128"
-
-gdb_test "info reg pc" "pc.*main.*" "info register pc"
-gdb_test "info reg id" "id.*" "info register id"
-gdb_test "info reg sp" "sp.*" "info register sp"
-gdb_test "info reg fpscr" "fpscr.*" "info register fpscr"
-gdb_test "info reg srr0" "srr0.*" "info register srr0"
-gdb_test "info reg lslr" "lslr.*" "info register lslr"
-gdb_test "info reg decr" "decr.*" "info register decr"
-gdb_test "info reg decr_status" "decr_status.*" "info register decr-status"
-
-gdb_test "info reg cr" "Invalid register.*cr.*" "info register cr"
-gdb_test "info reg lr" "Invalid register.*lr.*" "info register lr"
-gdb_test "info reg ctr" "Invalid register.*ctr.*" "info register ctr"
-gdb_test "info reg xer" "Invalid register.*xer.*" "info register xer"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/size-spu.c b/gdb/testsuite/gdb.cell/size-spu.c
deleted file mode 100644
index 4d8b8815e8..0000000000
--- a/gdb/testsuite/gdb.cell/size-spu.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-
-
-int
-main (unsigned long long speid, unsigned long long argp,
-      unsigned long long envp)
-{
-  int c  = sizeof (char); /* Break here.  */
-  printf ("sizeof(char)=%d\n", c);
-
-  int s  = sizeof (short);
-  printf ("sizeof(short)=%d\n", s);
-
-  int i  = sizeof (int);
-  printf ("sizeof(int)=%d\n", i);
-
-  int l  = sizeof (long);
-  printf ("sizeof(long)=%d\n", l);
-
-  int ll = sizeof (long long);
-  printf ("sizeof(long long)=%d\n", ll);
-
-  int f  = sizeof (float);
-  printf ("sizeof(float)=%d\n", f);
-
-  int d  = sizeof (double);
-  printf ("sizeof(double)=%d\n", d);
-
-  int ld = sizeof (long double);
-  printf ("sizeof(long double)=%d\n", ld);
-
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/size.c b/gdb/testsuite/gdb.cell/size.c
deleted file mode 100644
index be9c8d33b2..0000000000
--- a/gdb/testsuite/gdb.cell/size.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
-   Copyright 2009-2019 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-   Contributed by Markus Deuling <deuling@de.ibm.com>  */
-
-#include <stdio.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t size_spu;
-#define nr_t 1
-
-void *
-spe_thread (void *arg)
-{
-  int flags = 0;
-  unsigned int entry = SPE_DEFAULT_ENTRY;
-  spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
-  spe_program_load (*ctx, &size_spu);
-  spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
-  pthread_exit (NULL);
-}
-
-int
-main (void)
-{
-  int thread_id[nr_t];
-  pthread_t pts[nr_t];
-  spe_context_ptr_t ctx[nr_t];
-  int cnt;
-
-  int c  = sizeof (char);
-  printf ("sizeof(char)=%d\n", c);
-
-  int s  = sizeof (short);
-  printf ("sizeof(short)=%d\n", s);
-
-  int i  = sizeof (int);
-  printf ("sizeof(int)=%d\n", i);
-
-  int l  = sizeof (long);
-  printf ("sizeof(long)=%d\n", l);
-
-  int ll = sizeof (long long);
-  printf ("sizeof(long long)=%d\n", ll);
-
-  int f  = sizeof (float);
-  printf ("sizeof(float)=%d\n", f);
-
-  int d  = sizeof (double);
-  printf ("sizeof(double)=%d\n", d);
-
-  int ld = sizeof (long double);
-  printf ("sizeof(long double)=%d\n", ld);
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    {
-      ctx[cnt] = spe_context_create (0, NULL);
-      thread_id[cnt]
-	= pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
-    }
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    pthread_join (pts[cnt], NULL);
-
-  for (cnt = 0; cnt < nr_t; cnt++)
-    spe_context_destroy (ctx[cnt]);
-
-  return 0;
-}
diff --git a/gdb/testsuite/gdb.cell/sizeof.exp b/gdb/testsuite/gdb.cell/sizeof.exp
deleted file mode 100644
index 8ea69e67fa..0000000000
--- a/gdb/testsuite/gdb.cell/sizeof.exp
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Check size of data types both on PPU and SPU.
-
-load_lib cell.exp
-
-set ppu_file "size"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "size-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-
-# Ask GDB about the sizes of data types.  This has
-# to be done in PPU thread and SPU thread.
-proc get_gdb_size { type } {
-  global gdb_prompt
-
-  set val "0"
-  gdb_test_multiple "print/d sizeof(${type})" "get sizeof(${type})" {
-    -re "\\$\[0-9\]* = (\[-\]*\[0-9\]*).*$gdb_prompt $" {
-	set val $expect_out(1,string)
-	pass "get sizeof ($type) = $val"
-    }
-  }
-  return ${val}
-}
-
-# Compare sizes from GDB and sizeof().
-proc size_compare { type gdb_size } {
-  set expr [string_to_regexp "sizeof(${type})=${gdb_size}"]
-  gdb_test "next" \
-           ".*" \
-           "next"
-  # Checks against string_to_regexp fails in remote testing.
-  if ![is_remote target] {
-    gdb_test "next" \
-             "${expr}.*" \
-             "check sizeof \"$type\" \"$gdb_size\" "
-  } else {
-    gdb_test "next" ".*" "check sizeof deactivate in remote testing"
-  }
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-# Compare sizes.
-size_compare "char" [get_gdb_size "char"]
-size_compare "short" [get_gdb_size "short"]
-size_compare "int" [get_gdb_size "int"]
-size_compare "long" [get_gdb_size "long"]
-size_compare "long long" [get_gdb_size "long long"]
-size_compare "float" [get_gdb_size "float"]
-size_compare "double" [get_gdb_size "double"]
-size_compare "long double" [get_gdb_size "long double"]
-
-# Continue to SPU thread.
-cont_spu_main
-check_spu_arch ""
-
-# Compare sizes in SPU thread.
-size_compare "char" [get_gdb_size "char"]
-size_compare "short" [get_gdb_size "short"]
-size_compare "int" [get_gdb_size "int"]
-size_compare "long" [get_gdb_size "long"]
-size_compare "long long" [get_gdb_size "long long"]
-size_compare "float" [get_gdb_size "float"]
-size_compare "double" [get_gdb_size "double"]
-size_compare "long double" [get_gdb_size "long double"]
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/solib-symbol.exp b/gdb/testsuite/gdb.cell/solib-symbol.exp
deleted file mode 100644
index 685ccf5c14..0000000000
--- a/gdb/testsuite/gdb.cell/solib-symbol.exp
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Testcase for multiple symbol disambiguation patch.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-# Symbol resolved in PPU thread.
-gdb_test "info symbol foo" \
-	 "foo in section \.text of .*$ppu_file\[\r\n\]+.*" \
-	 "info symbol foo in break"
-
-# Continue to SPU
-cont_spu_main
-check_spu_arch ""
-
-# Symbol resolved in SPU thread.
-gdb_test "info symbol foo" \
-	 "foo in section \.text of .*$spu_file@.*" \
-	 "info symbol foo in break-spu"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/solib.exp b/gdb/testsuite/gdb.cell/solib.exp
deleted file mode 100644
index d6ed65daf2..0000000000
--- a/gdb/testsuite/gdb.cell/solib.exp
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcase checks 'info sharedlibrary ' command.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
-    return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}]  != "" } {
-  unsupported "compiling spu binary failed."
-  return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}]  != "" } {
-  unsupported "embedding spu binary failed."
-  return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
-  unsupported "compiling ppu binary failed."
-  return -1
-}
-
-if [get_compiler_info] {
-  return -1
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-# No programm running, no libraries should be loaded.
-gdb_test "info sharedlibrary" \
-	 "No shared libraries loaded at this time." \
-	 "no shared library is loaded"
-
-if ![runto_main] then {
-  fail "can't run to main"
-  return 0
-}
-
-# Standing in PPU thread, now some libs should be loaded
-# including libspe library.
-gdb_test "info sharedlibrary" \
-	 "From.*To.*Syms Read.*Shared Object Library.*libspe.*" \
-	 "binary started, some libraries loaded"
-
-# Continue to SPU
-cont_spu_main
-check_spu_arch ""
-
-# In SPU thread now, the SPU binary should now appear in the list
-# of shared libraries.
-gdb_test "info sharedlibrary" \
-	 "From.*To.*Syms Read.*Shared Object Library.*libspe.*$spu_bin.*@.*x.*" \
-	 "spu thread, spu binary as shared library"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cp/bs15503.exp b/gdb/testsuite/gdb.cp/bs15503.exp
index 920b02a84a..f238f5188a 100644
--- a/gdb/testsuite/gdb.cp/bs15503.exp
+++ b/gdb/testsuite/gdb.cp/bs15503.exp
@@ -19,11 +19,6 @@
 
 if { [skip_stl_tests] } { continue }
 
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
-        return 0
-}
-
 standard_testfile .cc
 
 if [get_compiler_info] {
diff --git a/gdb/testsuite/gdb.cp/cpexprs.exp b/gdb/testsuite/gdb.cp/cpexprs.exp
index ecf3a2fbc8..d7decaf542 100644
--- a/gdb/testsuite/gdb.cp/cpexprs.exp
+++ b/gdb/testsuite/gdb.cp/cpexprs.exp
@@ -681,11 +681,6 @@ add {policyd5::function} \
 # Start the test
 if {[skip_cplus_tests]} { continue }
 
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
-        return 0
-}
-
 #
 # test running programs
 #
diff --git a/gdb/testsuite/gdb.cp/exception.exp b/gdb/testsuite/gdb.cp/exception.exp
index 0be382ba98..13631df129 100644
--- a/gdb/testsuite/gdb.cp/exception.exp
+++ b/gdb/testsuite/gdb.cp/exception.exp
@@ -35,11 +35,6 @@ set nl	"\[\r\n\]+"
 
 if { [skip_stl_tests] } { continue }
 
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
-        return 0
-}
-
 standard_testfile .cc
  
 if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
diff --git a/gdb/testsuite/gdb.cp/gdb2495.exp b/gdb/testsuite/gdb.cp/gdb2495.exp
index bcb6c5eb6d..a7de2ccbc2 100644
--- a/gdb/testsuite/gdb.cp/gdb2495.exp
+++ b/gdb/testsuite/gdb.cp/gdb2495.exp
@@ -38,11 +38,6 @@ if [target_info exists gdb,nosignals] {
     continue
 }
 
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
-        return 0
-}
-
 standard_testfile .cc
 
 # Create and source the file that provides information about the compiler
diff --git a/gdb/testsuite/gdb.cp/mb-templates.exp b/gdb/testsuite/gdb.cp/mb-templates.exp
index ad42ef6e39..5946c0b25c 100644
--- a/gdb/testsuite/gdb.cp/mb-templates.exp
+++ b/gdb/testsuite/gdb.cp/mb-templates.exp
@@ -18,11 +18,6 @@
 
 if { [skip_stl_tests] } { continue }
 
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
-        return 0
-}
-
 
 standard_testfile .cc
 
diff --git a/gdb/testsuite/gdb.cp/pr9167.exp b/gdb/testsuite/gdb.cp/pr9167.exp
index e8a7722cb4..214225233a 100644
--- a/gdb/testsuite/gdb.cp/pr9167.exp
+++ b/gdb/testsuite/gdb.cp/pr9167.exp
@@ -13,11 +13,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
-        return 0
-}
-
 standard_testfile .cc
 
 if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
diff --git a/gdb/testsuite/gdb.cp/userdef.exp b/gdb/testsuite/gdb.cp/userdef.exp
index dad9be36ad..7907593ec3 100644
--- a/gdb/testsuite/gdb.cp/userdef.exp
+++ b/gdb/testsuite/gdb.cp/userdef.exp
@@ -21,11 +21,6 @@
 
 if { [skip_stl_tests] } { continue }
 
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
-        return 0
-}
-
 standard_testfile .cc
 
 if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
diff --git a/gdb/testsuite/gdb.xml/tdesc-regs.exp b/gdb/testsuite/gdb.xml/tdesc-regs.exp
index 35fcc0005d..efd2227dd5 100644
--- a/gdb/testsuite/gdb.xml/tdesc-regs.exp
+++ b/gdb/testsuite/gdb.xml/tdesc-regs.exp
@@ -69,16 +69,6 @@ switch -glob -- [istarget] {
 	set regdir "sparc/"
         set core-regs {sparc64-cpu.xml sparc64-fpu.xml sparc64-cp0.xml}
     }
-    "spu*-*-*" {
-	# This may be either the spu-linux-nat target, or the Cell/B.E.
-	# multi-architecture debugger in SPU standalone executable mode.
-	# We do not support XML register sets on SPU in either case.
-	# However, the multi-arch debugger will accept XML registers sets
-	# (on the PowerPC side), hence the test below would fail.
-	# Simply return unconditionally here.
-	unsupported "register tests"
-	return 0
-    }
     "tic6x-*-*" {
 	set core-regs {tic6x-core.xml}
     }
diff --git a/gdb/testsuite/lib/cell.exp b/gdb/testsuite/lib/cell.exp
deleted file mode 100644
index 4a32805ead..0000000000
--- a/gdb/testsuite/lib/cell.exp
+++ /dev/null
@@ -1,181 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Support library for testing the combined debugger for Linux
-# on the Cell Broadband Engine.
-
-# Compile SPU objects.
-proc gdb_compile_cell_spu {source dest type options} {
-  global board
-
-  # Save and unset multilib flags; these are not appropriate
-  # for the SPU compiler.
-  set board [target_info name]
-  set save_multilib_flag [board_info $board multilib_flags]
-  unset_board_info "multilib_flags"
-
-  set options_spu [concat $options [list compiler=spu-gcc]]
-  set ccout [gdb_compile $source $dest $type $options_spu]
-
-  set_board_info multilib_flags $save_multilib_flag
-  return $ccout
-}
-
-# Compile PPU objects.  This is just like gdb_compile_pthreads, except that we
-# always add the libspe2 library for compiling Cell/B.E. programs.
-proc gdb_compile_cell_ppu {source dest type options} {
-    # We do not need to try multiple names for the pthread library
-    # -lpthread works on all Cell/B.E. systems
-    set lib "-lspe2 -lpthread"
-    set options_ppu [concat $options [list libs=$lib]]
-    return [gdb_compile $source $dest $type $options_ppu]
-}
-
-# Embed SPU executable into a PPU object.
-proc gdb_cell_embedspu {source dest options} {
-    global CC_FOR_TARGET
-
-    if [info exists CC_FOR_TARGET] {
-        set compiler $CC_FOR_TARGET
-    } else {
-	set compiler [board_info [target_info name] compiler]
-    }
-
-    # We assume the PPU compiler is called gcc or ppu-gcc,
-    # and find the appropriate embedspu based on that.
-    regsub gcc "$compiler" embedspu embedspu
-
-    # Determine default embedded symbol name from source filename.
-    set path [split "$source" /]
-    set filename [lindex $path [expr [llength $path] - 1]]
-    regsub -all -- "\[-\.\]" "$filename" "_" symbol
-
-    set options_embed [concat $options [list compiler=$embedspu]]
-    return [gdb_compile "$symbol $source $dest" "" none $options_embed]
-}
-
-# Run a test on the target to see if it supports Cell/B.E. hardware.
-# Return 0 if so, 1 if it does not.
-gdb_caching_proc skip_cell_tests {
-    global srcdir subdir gdb_prompt inferior_exited_re
-
-    set me "skip_cell_tests"
-
-    # Set up, compile, and execute a combined Cell/B.E. test program.
-    # Include the current process ID in the file names to prevent conflicts
-    # with invocations for multiple testsuites.
-    set src [standard_temp_file cell[pid].c]
-    set exe [standard_temp_file cell[pid].x]
-    set src_spu [standard_temp_file cell[pid]-spu.c]
-    set exe_spu [standard_temp_file cell[pid]-spu.x]
-
-    set f [open $src "w"]
-    puts $f "#include <libspe2.h>"
-    puts $f "extern spe_program_handle_t cell[pid]_spu_x;"
-    puts $f "int main (void) {"
-    puts $f "unsigned int entry = SPE_DEFAULT_ENTRY;"
-    puts $f "spe_context_ptr_t ctx = spe_context_create (0, NULL);"
-    puts $f "spe_program_load (ctx, &cell[pid]_spu_x);"
-    puts $f "return spe_context_run (ctx, &entry, 0, NULL, NULL, NULL); }"
-    close $f
-
-    set f [open $src_spu "w"]
-    puts $f "int main (void) { return 0; }"
-    close $f
-
-    verbose "$me:  compiling testfile $src" 2
-    set compile_flags {debug nowarnings quiet}
-
-    set skip 0
-    if { [gdb_compile_cell_spu $src_spu $exe_spu executable $compile_flags] != "" } {
-        verbose "$me:  compiling spu binary failed, returning 1" 2
-	set skip 1
-    }
-    if { ! $skip && [gdb_cell_embedspu $exe_spu $exe_spu-embed.o $compile_flags]  != "" } {
-        verbose "$me:  embedding spu binary failed, returning 1" 2
-	set skip 1
-    }
-    if { ! $skip && [gdb_compile_cell_ppu [list $src $exe_spu-embed.o] $exe executable $compile_flags] != "" } {
-        verbose "$me:  compiling ppu binary failed, returning 1" 2
-	set skip 1
-    }
-    file delete $src
-    file delete $src_spu
-    file delete $exe_spu
-    file delete $exe_spu-embed.o
-
-    if { $skip } {
-        return 1
-    }
-
-    # Compilation succeeded so now run it via gdb.
-
-    gdb_exit
-    gdb_start
-    gdb_reinitialize_dir $srcdir/$subdir
-    gdb_load "$exe"
-    gdb_run_cmd
-    gdb_expect {
-        -re ".*$inferior_exited_re normally.*${gdb_prompt} $" {
-            verbose -log "\n$me: Cell/B.E. hardware detected"
-            set result 0
-        }
-        -re ".*$inferior_exited_re with code.*${gdb_prompt} $" {
-            verbose -log "\n$me: Cell/B.E. hardware not detected"
-            set result 1
-        }
-        default {
-            unresolved "$me: unexpected failure"
-            set result 1
-        }
-    }
-    gdb_exit
-    remote_file build delete $exe
-
-    verbose "$me:  returning $result" 2
-    return $result
-}
-
-# Delete all breakpoints and stop on the next new SPU thread
-proc cont_spu_main { } {
-  delete_breakpoints
-  gdb_test "set spu stop-on-load on"
-  gdb_test "continue" \
-           "Continuing.*Temporary breakpoint .*main .*" \
-           "continue to SPU main"
-}
-
-# Continue to MARKER
-proc c_to { marker srcfile } {
-  set line [gdb_get_line_number $marker $srcfile]
-  gdb_test "break $line" \
-	   "Breakpoint.*at.*file.*$srcfile.*line $line.*" \
-	   "break $line"
-  gdb_test "continue" \
-	   "Continuing.*Breakpoint.*at.*$srcfile.*$line.*" \
-	   "continue to $line"
-}
-
-# Check if the current thread has SPU architecture
-proc check_spu_arch { msg } {
-  if { $msg == "" } {
-    set msg "spu architecture is spu256K"
-  }
-  gdb_test "show architecture" \
-	   "The target architecture is set automatically.*currently spu:256K.*" \
-	   $msg
-}


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] RISC-V: Optimize lui and auipc relaxations for undefweak symbol.
@ 2019-09-21  1:31 gdb-buildbot
  2019-09-21 20:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-21  1:31 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9d1da81b261a20050ef2ad01a5b4c8cf78404222 ***

commit 9d1da81b261a20050ef2ad01a5b4c8cf78404222
Author:     Jim Wilson <jimw@sifive.com>
AuthorDate: Fri Sep 20 15:01:20 2019 -0700
Commit:     Jim Wilson <jimw@sifive.com>
CommitDate: Fri Sep 20 15:01:20 2019 -0700

    RISC-V: Optimize lui and auipc relaxations for undefweak symbol.
    
    For the lui and auipc relaxations, since the symbol value of an undefined weak
    symbol is always be zero, we can optimize the patterns into a single LI/MV/ADDI
    instruction.
    
            bfd/
            * elfnn-riscv.c (riscv_pcgp_hi_reloc): Add new field undefined_weak.
            (riscv_record_pcgp_hi_reloc): New parameter undefined_weak.
            Set undefined_weak field from it.
            (relax_func_t): New parameter undefined_weak.
            (_bfd_riscv_relax_call): New ignored parameter undefined_weak.
            (_bfd_riscv_relax_tls_le): Likewise.
            (_bfd_riscv_relax_align): Likewise.
            (_bfd_riscv_relax_delete): Likewise.
            (_bfd_riscv_relax_lui): New parameter undefined_weak.  If true,
            allow relaxing.  For LO12* relocs, set rs1 to x0 when undefined_weak.
            (_bfd_riscv_relax_pc): New parameter undefined_weak.  For LO12* relocs,
            set undefined_weak from hi_reloc.  If true, allow relaxing.  For LO12*
            relocs, set rs1 to x0 when undefined_weak and change to non-pcrel
            reloc.
            (_bfd_riscv_relax_section): New local undefined_weak.  Set for
            undef weak relocs that can be relaxed.  Pass to relax_func call.
    
            ld/
            * testsuite/ld-riscv-elf/weakref32.s: Add relaxable undef weak code.
            * testsuite/ld-riscv-elf/weakref64.s: Likewise.
            * testsuite/ld-riscv-elf/weakref32.d: Updated.
            * testsuite/ld-riscv-elf/weakref64.d: Updated.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 080c628fee..b1a4aebd21 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,22 @@
+2019-09-20  Nelson Chu <nelson.chu@sifive.com>
+
+	* elfnn-riscv.c (riscv_pcgp_hi_reloc): Add new field undefined_weak.
+	(riscv_record_pcgp_hi_reloc): New parameter undefined_weak.
+	Set undefined_weak field from it.
+	(relax_func_t): New parameter undefined_weak.
+	(_bfd_riscv_relax_call): New ignored parameter undefined_weak.
+	(_bfd_riscv_relax_tls_le): Likewise.
+	(_bfd_riscv_relax_align): Likewise.
+	(_bfd_riscv_relax_delete): Likewise.
+	(_bfd_riscv_relax_lui): New parameter undefined_weak.  If true,
+	allow relaxing.  For LO12* relocs, set rs1 to x0 when undefined_weak.
+	(_bfd_riscv_relax_pc): New parameter undefined_weak.  For LO12* relocs,
+	set undefined_weak from hi_reloc.  If true, allow relaxing.  For LO12*
+	relocs, set rs1 to x0 when undefined_weak and change to non-pcrel
+	reloc.
+	(_bfd_riscv_relax_section): New local undefined_weak.  Set for
+	undef weak relocs that can be relaxed.  Pass to relax_func call.
+
 2019-09-20  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h (bfd_section_name, bfd_section_size, bfd_section_vma),
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index ccf904af1b..4ffe6a36e6 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -3319,6 +3319,7 @@ struct riscv_pcgp_hi_reloc
   bfd_vma hi_addr;
   unsigned hi_sym;
   asection *sym_sec;
+  bfd_boolean undefined_weak;
   riscv_pcgp_hi_reloc *next;
 };
 
@@ -3377,7 +3378,8 @@ riscv_free_pcgp_relocs (riscv_pcgp_relocs *p,
 static bfd_boolean
 riscv_record_pcgp_hi_reloc (riscv_pcgp_relocs *p, bfd_vma hi_sec_off,
 			    bfd_vma hi_addend, bfd_vma hi_addr,
-			    unsigned hi_sym, asection *sym_sec)
+			    unsigned hi_sym, asection *sym_sec,
+			    bfd_boolean undefined_weak)
 {
   riscv_pcgp_hi_reloc *new = bfd_malloc (sizeof(*new));
   if (!new)
@@ -3387,6 +3389,7 @@ riscv_record_pcgp_hi_reloc (riscv_pcgp_relocs *p, bfd_vma hi_sec_off,
   new->hi_addr = hi_addr;
   new->hi_sym = hi_sym;
   new->sym_sec = sym_sec;
+  new->undefined_weak = undefined_weak;
   new->next = p->hi;
   p->hi = new;
   return TRUE;
@@ -3439,7 +3442,8 @@ typedef bfd_boolean (*relax_func_t) (bfd *, asection *, asection *,
 				     struct bfd_link_info *,
 				     Elf_Internal_Rela *,
 				     bfd_vma, bfd_vma, bfd_vma, bfd_boolean *,
-				     riscv_pcgp_relocs *);
+				     riscv_pcgp_relocs *,
+				     bfd_boolean undefined_weak);
 
 /* Relax AUIPC + JALR into JAL.  */
 
@@ -3451,7 +3455,8 @@ _bfd_riscv_relax_call (bfd *abfd, asection *sec, asection *sym_sec,
 		       bfd_vma max_alignment,
 		       bfd_vma reserve_size ATTRIBUTE_UNUSED,
 		       bfd_boolean *again,
-		       riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED)
+		       riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED,
+		       bfd_boolean undefined_weak ATTRIBUTE_UNUSED)
 {
   bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
   bfd_signed_vma foff = symval - (sec_addr (sec) + rel->r_offset);
@@ -3539,7 +3544,8 @@ _bfd_riscv_relax_lui (bfd *abfd,
 		      bfd_vma max_alignment,
 		      bfd_vma reserve_size,
 		      bfd_boolean *again,
-		      riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED)
+		      riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED,
+		      bfd_boolean undefined_weak)
 {
   bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
   bfd_vma gp = riscv_global_pointer_value (link_info);
@@ -3561,21 +3567,38 @@ _bfd_riscv_relax_lui (bfd *abfd,
 
   /* Is the reference in range of x0 or gp?
      Valid gp range conservatively because of alignment issue.  */
-  if (VALID_ITYPE_IMM (symval)
-      || (symval >= gp
-	  && VALID_ITYPE_IMM (symval - gp + max_alignment + reserve_size))
-      || (symval < gp
-	  && VALID_ITYPE_IMM (symval - gp - max_alignment - reserve_size)))
+  if (undefined_weak
+      || (VALID_ITYPE_IMM (symval)
+	  || (symval >= gp
+	      && VALID_ITYPE_IMM (symval - gp + max_alignment + reserve_size))
+	  || (symval < gp
+	      && VALID_ITYPE_IMM (symval - gp - max_alignment - reserve_size))))
     {
       unsigned sym = ELFNN_R_SYM (rel->r_info);
       switch (ELFNN_R_TYPE (rel->r_info))
 	{
 	case R_RISCV_LO12_I:
-	  rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_I);
+	  if (undefined_weak)
+	    {
+	      /* Change the RS1 to zero.  */
+	      bfd_vma insn = bfd_get_32 (abfd, contents + rel->r_offset);
+	      insn &= ~(OP_MASK_RS1 << OP_SH_RS1);
+	      bfd_put_32 (abfd, insn, contents + rel->r_offset);
+	    }
+	  else
+	    rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_I);
 	  return TRUE;
 
 	case R_RISCV_LO12_S:
-	  rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_S);
+	  if (undefined_weak)
+	    {
+	      /* Change the RS1 to zero.  */
+	      bfd_vma insn = bfd_get_32 (abfd, contents + rel->r_offset);
+	      insn &= ~(OP_MASK_RS1 << OP_SH_RS1);
+	      bfd_put_32 (abfd, insn, contents + rel->r_offset);
+	    }
+	  else
+	    rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_S);
 	  return TRUE;
 
 	case R_RISCV_HI20:
@@ -3634,7 +3657,8 @@ _bfd_riscv_relax_tls_le (bfd *abfd,
 			 bfd_vma max_alignment ATTRIBUTE_UNUSED,
 			 bfd_vma reserve_size ATTRIBUTE_UNUSED,
 			 bfd_boolean *again,
-			 riscv_pcgp_relocs *prcel_relocs ATTRIBUTE_UNUSED)
+			 riscv_pcgp_relocs *prcel_relocs ATTRIBUTE_UNUSED,
+			 bfd_boolean undefined_weak ATTRIBUTE_UNUSED)
 {
   /* See if this symbol is in range of tp.  */
   if (RISCV_CONST_HIGH_PART (tpoff (link_info, symval)) != 0)
@@ -3674,7 +3698,8 @@ _bfd_riscv_relax_align (bfd *abfd, asection *sec,
 			bfd_vma max_alignment ATTRIBUTE_UNUSED,
 			bfd_vma reserve_size ATTRIBUTE_UNUSED,
 			bfd_boolean *again ATTRIBUTE_UNUSED,
-			riscv_pcgp_relocs *pcrel_relocs ATTRIBUTE_UNUSED)
+			riscv_pcgp_relocs *pcrel_relocs ATTRIBUTE_UNUSED,
+			bfd_boolean undefined_weak ATTRIBUTE_UNUSED)
 {
   bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
   bfd_vma alignment = 1, pos;
@@ -3732,8 +3757,10 @@ _bfd_riscv_relax_pc  (bfd *abfd ATTRIBUTE_UNUSED,
 		      bfd_vma max_alignment,
 		      bfd_vma reserve_size,
 		      bfd_boolean *again ATTRIBUTE_UNUSED,
-		      riscv_pcgp_relocs *pcgp_relocs)
+		      riscv_pcgp_relocs *pcgp_relocs,
+		      bfd_boolean undefined_weak)
 {
+  bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
   bfd_vma gp = riscv_global_pointer_value (link_info);
 
   BFD_ASSERT (rel->r_offset + 4 <= sec->size);
@@ -3763,12 +3790,19 @@ _bfd_riscv_relax_pc  (bfd *abfd ATTRIBUTE_UNUSED,
 	hi_reloc = *hi;
 	symval = hi_reloc.hi_addr;
 	sym_sec = hi_reloc.sym_sec;
+
+	/* We can not know whether the undefined weak symbol is referenced
+	   according to the information of R_RISCV_PCREL_LO12_I/S.  Therefore,
+	   we have to record the 'undefined_weak' flag when handling the
+	   corresponding R_RISCV_HI20 reloc in riscv_record_pcgp_hi_reloc.  */
+	undefined_weak = hi_reloc.undefined_weak;
       }
       break;
 
     case R_RISCV_PCREL_HI20:
       /* Mergeable symbols and code might later move out of range.  */
-      if (sym_sec->flags & (SEC_MERGE | SEC_CODE))
+      if (! undefined_weak
+	  && sym_sec->flags & (SEC_MERGE | SEC_CODE))
 	return TRUE;
 
       /* If the cooresponding lo relocation has already been seen then it's not
@@ -3796,23 +3830,50 @@ _bfd_riscv_relax_pc  (bfd *abfd ATTRIBUTE_UNUSED,
 
   /* Is the reference in range of x0 or gp?
      Valid gp range conservatively because of alignment issue.  */
-  if (VALID_ITYPE_IMM (symval)
-      || (symval >= gp
-	  && VALID_ITYPE_IMM (symval - gp + max_alignment + reserve_size))
-      || (symval < gp
-	  && VALID_ITYPE_IMM (symval - gp - max_alignment - reserve_size)))
+  if (undefined_weak
+      || (VALID_ITYPE_IMM (symval)
+	  || (symval >= gp
+	      && VALID_ITYPE_IMM (symval - gp + max_alignment + reserve_size))
+	  || (symval < gp
+	      && VALID_ITYPE_IMM (symval - gp - max_alignment - reserve_size))))
     {
       unsigned sym = hi_reloc.hi_sym;
       switch (ELFNN_R_TYPE (rel->r_info))
 	{
 	case R_RISCV_PCREL_LO12_I:
-	  rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_I);
-	  rel->r_addend += hi_reloc.hi_addend;
+	  if (undefined_weak)
+	    {
+	      /* Change the RS1 to zero, and then modify the relocation
+		 type to R_RISCV_LO12_I.  */
+	      bfd_vma insn = bfd_get_32 (abfd, contents + rel->r_offset);
+	      insn &= ~(OP_MASK_RS1 << OP_SH_RS1);
+	      bfd_put_32 (abfd, insn, contents + rel->r_offset);
+	      rel->r_info = ELFNN_R_INFO (sym, R_RISCV_LO12_I);
+	      rel->r_addend = hi_reloc.hi_addend;
+	    }
+	  else
+	    {
+	      rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_I);
+	      rel->r_addend += hi_reloc.hi_addend;
+	    }
 	  return TRUE;
 
 	case R_RISCV_PCREL_LO12_S:
-	  rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_S);
-	  rel->r_addend += hi_reloc.hi_addend;
+	  if (undefined_weak)
+	    {
+	      /* Change the RS1 to zero, and then modify the relocation
+		 type to R_RISCV_LO12_S.  */
+	      bfd_vma insn = bfd_get_32 (abfd, contents + rel->r_offset);
+	      insn &= ~(OP_MASK_RS1 << OP_SH_RS1);
+	      bfd_put_32 (abfd, insn, contents + rel->r_offset);
+	      rel->r_info = ELFNN_R_INFO (sym, R_RISCV_LO12_S);
+	      rel->r_addend = hi_reloc.hi_addend;
+	    }
+	  else
+	    {
+	      rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_S);
+	      rel->r_addend += hi_reloc.hi_addend;
+	    }
 	  return TRUE;
 
 	case R_RISCV_PCREL_HI20:
@@ -3821,7 +3882,8 @@ _bfd_riscv_relax_pc  (bfd *abfd ATTRIBUTE_UNUSED,
 				      rel->r_addend,
 				      symval,
 				      ELFNN_R_SYM(rel->r_info),
-				      sym_sec);
+				      sym_sec,
+				      undefined_weak);
 	  /* We can delete the unnecessary AUIPC and reloc.  */
 	  rel->r_info = ELFNN_R_INFO (0, R_RISCV_DELETE);
 	  rel->r_addend = 4;
@@ -3847,7 +3909,8 @@ _bfd_riscv_relax_delete (bfd *abfd,
 			 bfd_vma max_alignment ATTRIBUTE_UNUSED,
 			 bfd_vma reserve_size ATTRIBUTE_UNUSED,
 			 bfd_boolean *again ATTRIBUTE_UNUSED,
-			 riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED)
+			 riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED,
+			 bfd_boolean undefined_weak ATTRIBUTE_UNUSED)
 {
   if (!riscv_relax_delete_bytes(abfd, sec, rel->r_offset, rel->r_addend,
 				link_info))
@@ -3914,6 +3977,7 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec,
       int type = ELFNN_R_TYPE (rel->r_info);
       bfd_vma symval;
       char symtype;
+      bfd_boolean undefined_weak = FALSE;
 
       relax_func = NULL;
       if (info->relax_pass == 0)
@@ -4008,11 +4072,36 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec,
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
 
+	  if (h->root.type == bfd_link_hash_undefweak
+	      && (relax_func == _bfd_riscv_relax_lui
+		  || relax_func == _bfd_riscv_relax_pc))
+	    {
+	      /* For the lui and auipc relaxations, since the symbol
+		 value of an undefined weak symbol is always be zero,
+		 we can optimize the patterns into a single LI/MV/ADDI
+		 instruction.
+
+		 Note that, creating shared libraries and pie output may
+		 break the rule above.  Fortunately, since we do not relax
+		 pc relocs when creating shared libraries and pie output,
+		 and the absolute address access for R_RISCV_HI20 isn't
+		 allowed when "-fPIC" is set, the problem of creating shared
+		 libraries can not happen currently.  Once we support the
+		 auipc relaxations when creating shared libraries, then we will
+		 need the more rigorous checking for this optimization.  */
+	      undefined_weak = TRUE;
+	    }
+
 	  if (h->plt.offset != MINUS_ONE)
 	    {
 	      sym_sec = htab->elf.splt;
 	      symval = h->plt.offset;
 	    }
+	  else if (undefined_weak)
+	    {
+	      symval = 0;
+	      sym_sec = bfd_und_section_ptr;
+	    }
 	  else if (h->root.u.def.section->output_section == NULL
 		   || (h->root.type != bfd_link_hash_defined
 		       && h->root.type != bfd_link_hash_defweak))
@@ -4065,7 +4154,7 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec,
 
       if (!relax_func (abfd, sec, sym_sec, info, rel, symval,
 		       max_alignment, reserve_size, again,
-		       &pcgp_relocs))
+		       &pcgp_relocs, undefined_weak))
 	goto fail;
     }
 
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 3f62dad9cc..57d4df713a 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20  Nelson Chu <nelson.chu@sifive.com>
+
+	* testsuite/ld-riscv-elf/weakref32.s: Add relaxable undef weak code.
+	* testsuite/ld-riscv-elf/weakref64.s: Likewise.
+	* testsuite/ld-riscv-elf/weakref32.d: Updated.
+	* testsuite/ld-riscv-elf/weakref64.d: Updated.
+
 2019-09-20  Alan Modra  <amodra@gmail.com>
 
 	* emultempl/xtensaelf.em (xtensa_get_section_deps): Comment.
diff --git a/ld/testsuite/ld-riscv-elf/weakref32.d b/ld/testsuite/ld-riscv-elf/weakref32.d
index 5ede7cb7f6..eaeb6dae7e 100644
--- a/ld/testsuite/ld-riscv-elf/weakref32.d
+++ b/ld/testsuite/ld-riscv-elf/weakref32.d
@@ -5,15 +5,16 @@
 Disassembly of section \.text:
 
 90000000 <_start>:
-90000000:	70000797          	auipc	a5,0x70000
-90000004:	00078793          	mv	a5,a5
-90000008:	02078263          	beqz	a5,9000002c <_start\+0x2c>
-9000000c:	ff010113          	addi	sp,sp,-16
-90000010:	00112623          	sw	ra,12\(sp\)
-90000014:	00000097          	auipc	ra,0x0
-90000018:	000000e7          	jalr	zero # 0 <_start\-0x90000000>
-9000001c:	00c12083          	lw	ra,12\(sp\)
-90000020:	01010113          	addi	sp,sp,16
-90000024:	00000317          	auipc	t1,0x0
-90000028:	00000067          	jr	zero # 0 <_start\-0x90000000>
-9000002c:	00008067          	ret
+90000000:	00000793          	li	a5,0
+90000004:	02078663          	beqz	a5,90000030 <_start\+0x30>
+90000008:	00000793          	li	a5,0
+9000000c:	02078263          	beqz	a5,90000030 <_start\+0x30>
+90000010:	ff010113          	addi	sp,sp,-16
+90000014:	00112623          	sw	ra,12\(sp\)
+90000018:	00000097          	auipc	ra,0x0
+9000001c:	000000e7          	jalr	zero # 0 <_start\-0x90000000>
+90000020:	00c12083          	lw	ra,12\(sp\)
+90000024:	01010113          	addi	sp,sp,16
+90000028:	00000317          	auipc	t1,0x0
+9000002c:	00000067          	jr	zero # 0 <_start\-0x90000000>
+90000030:	00008067          	ret
diff --git a/ld/testsuite/ld-riscv-elf/weakref32.s b/ld/testsuite/ld-riscv-elf/weakref32.s
index 14df041218..6c3d84de5f 100644
--- a/ld/testsuite/ld-riscv-elf/weakref32.s
+++ b/ld/testsuite/ld-riscv-elf/weakref32.s
@@ -4,6 +4,9 @@
 	.globl	_start
 	.type	_start, @function
 _start:
+	lui	a5,%hi(f)
+	addi	a5,a5,%lo(f)
+	beq	a5,zero,.L1
 	lla	a5,f
 	beqz	a5,.L1
 	addi	sp,sp,-16
diff --git a/ld/testsuite/ld-riscv-elf/weakref64.d b/ld/testsuite/ld-riscv-elf/weakref64.d
index 52db9c2d0c..cc718a91a3 100644
--- a/ld/testsuite/ld-riscv-elf/weakref64.d
+++ b/ld/testsuite/ld-riscv-elf/weakref64.d
@@ -5,15 +5,16 @@
 Disassembly of section \.text:
 
 0000000090000000 <_start>:
-    90000000:	000007b7          	lui	a5,0x0
-    90000004:	00078793          	mv	a5,a5
-    90000008:	02078263          	beqz	a5,9000002c <_start\+0x2c>
-    9000000c:	ff010113          	addi	sp,sp,-16
-    90000010:	00113423          	sd	ra,8\(sp\)
-    90000014:	00000097          	auipc	ra,0x0
-    90000018:	000000e7          	jalr	zero # 0 <_start\-0x90000000>
-    9000001c:	00813083          	ld	ra,8\(sp\)
-    90000020:	01010113          	addi	sp,sp,16
-    90000024:	00000317          	auipc	t1,0x0
-    90000028:	00000067          	jr	zero # 0 <_start\-0x90000000>
-    9000002c:	00008067          	ret
+    90000000:	00000793          	li	a5,0
+    90000004:	02078663          	beqz	a5,90000030 <_start\+0x30>
+    90000008:	00000793          	li	a5,0
+    9000000c:	02078263          	beqz	a5,90000030 <_start\+0x30>
+    90000010:	ff010113          	addi	sp,sp,-16
+    90000014:	00113423          	sd	ra,8\(sp\)
+    90000018:	00000097          	auipc	ra,0x0
+    9000001c:	000000e7          	jalr	zero # 0 <_start\-0x90000000>
+    90000020:	00813083          	ld	ra,8\(sp\)
+    90000024:	01010113          	addi	sp,sp,16
+    90000028:	00000317          	auipc	t1,0x0
+    9000002c:	00000067          	jr	zero # 0 <_start\-0x90000000>
+    90000030:	00008067          	ret
diff --git a/ld/testsuite/ld-riscv-elf/weakref64.s b/ld/testsuite/ld-riscv-elf/weakref64.s
index 5872626665..83bcd28563 100644
--- a/ld/testsuite/ld-riscv-elf/weakref64.s
+++ b/ld/testsuite/ld-riscv-elf/weakref64.s
@@ -4,6 +4,9 @@
 	.globl	_start
 	.type	_start, @function
 _start:
+	lui	a5,%hi(f)
+	addi	a5,a5,%lo(f)
+	beq	a5,zero,.L1
 	lla	a5,f
 	beqz	a5,.L1
 	addi	sp,sp,-16


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/NEWS: Move entries about MI v3 and multi-loc breakpoints after GDB 8.3
@ 2019-09-21  2:11 gdb-buildbot
  2019-09-21 23:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-21  2:11 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5a3a0d6304b400f55d60b2e9199da04fe1c7d8e4 ***

commit 5a3a0d6304b400f55d60b2e9199da04fe1c7d8e4
Author:     Joel Brobecker <brobecker@adacore.com>
AuthorDate: Fri Sep 20 16:23:15 2019 -0700
Commit:     Joel Brobecker <brobecker@adacore.com>
CommitDate: Fri Sep 20 16:23:15 2019 -0700

    gdb/NEWS: Move entries about MI v3 and multi-loc breakpoints after GDB 8.3
    
    This is a followup on the following commit...
    
        commit b4be1b0648608a2578bbed39841c8ee411773edd
        Date:   Wed Mar 13 15:13:03 2019 -0400
        Subject: Fix MI output for multi-location breakpoints
    
    ... which mistakenly added NEWS entries in the "in gdb-8.3" section,
    rather than in the "since gdb-8.3" one.
    
    gdb/ChangeLog:
    
            * NEWS: Move entries about default MI version now being
            version 3, and about the GDB/MI fix for multi-location
            breakpoints to the "since GDB 8.3" section.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5ac98cd0c2..67aba3ed2d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-20  Joel Brobecker  <brobecker@adacore.com>
+
+	* NEWS: Move entries about default MI version now being
+	version 3, and about the GDB/MI fix for multi-location
+	breakpoints to the "since GDB 8.3" section.
+
 2019-09-20  Joel Brobecker  <brobecker@adacore.com>
 
 	GDB 8.3.1 released.
diff --git a/gdb/NEWS b/gdb/NEWS
index 35b48d9cb3..8f9b1d8ac4 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -304,6 +304,20 @@ focus, winheight, +, -, >, <
 
 * Other MI changes
 
+ ** The default version of the MI interpreter is now 3 (-i=mi3).
+
+  ** The output of information about multi-location breakpoints (which is
+     syntactically incorrect in MI 2) has changed in MI 3.  This affects
+     the following commands and events:
+
+	- -break-insert
+	- -break-info
+	- =breakpoint-created
+	- =breakpoint-modified
+
+     The -fix-multi-location-breakpoint-output command can be used to enable
+     this behavior with previous MI versions.
+
  ** Backtraces and frames include a new optional field addr_flags which is
     given after the addr field.  On AArch64 this contains PAC if the address
     has been masked in the frame.  On all other targets the field is not
@@ -501,8 +515,6 @@ set style address intensity VALUE
 
 * MI changes
 
-  ** The default version of the MI interpreter is now 3 (-i=mi3).
-
   ** The '-data-disassemble' MI command now accepts an '-a' option to
      disassemble the whole function surrounding the given program
      counter value or function name.  Support for this feature can be
@@ -512,18 +524,6 @@ set style address intensity VALUE
   ** Command responses and notifications that include a frame now include
      the frame's architecture in a new "arch" attribute.
 
-  ** The output of information about multi-location breakpoints (which is
-     syntactically incorrect in MI 2) has changed in MI 3.  This affects
-     the following commands and events:
-
-	- -break-insert
-	- -break-info
-	- =breakpoint-created
-	- =breakpoint-modified
-
-     The -fix-multi-location-breakpoint-output command can be used to enable
-     this behavior with previous MI versions.
-
 * New native configurations
 
 GNU/Linux/RISC-V		riscv*-*-linux*


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Move declarations of debug_threads and using_threads to header
@ 2019-09-21  2:32 gdb-buildbot
  2019-09-22  0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-21  2:32 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f9d949fb7b85323e3f307884a4a3cef6ba52607b ***

commit f9d949fb7b85323e3f307884a4a3cef6ba52607b
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Fri Sep 20 11:40:09 2019 +0900
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Sat Sep 21 11:00:50 2019 +0900

    Move declarations of debug_threads and using_threads to header
    
    Instead of declaring debug_threads and using_threads in several
    .c files, declare them in debug.h.
    
    gdb/gdbserver/ChangeLog:
    
    2019-09-20  Christian Biesinger  <cbiesinger@google.com>
    
            * debug.c (debug_threads): Remove comment in favor of the header.
            * debug.h (using_threads): Add declaration.
            (debug_threads): Add comment.
            * linux-aarch64-low.c: Include debug.h and remove declaration of
            debug_threads.
            * nto-low.c: Likewise.
            * remote-utils.c: Likewise.
            * thread-db.c: Likewise.

diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 5c76167014..c0c6f51a06 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-20  Christian Biesinger  <cbiesinger@google.com>
+
+	* debug.c (debug_threads): Remove comment in favor of the header.
+	* debug.h (using_threads): Add declaration.
+	(debug_threads): Add comment.
+	* linux-aarch64-low.c: Include debug.h and remove declaration of
+	debug_threads.
+	* nto-low.c: Likewise.
+	* remote-utils.c: Likewise.
+	* thread-db.c: Likewise.
+
 2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
 
 	* configure.srv (ipa_ppc_linux_regobj): Remove powerpc-cell32l-ipa.o
diff --git a/gdb/gdbserver/debug.c b/gdb/gdbserver/debug.c
index 19f11fc17c..a764df7688 100644
--- a/gdb/gdbserver/debug.c
+++ b/gdb/gdbserver/debug.c
@@ -26,8 +26,7 @@ int remote_debug = 0;
 /* Output file for debugging.  Default to standard error.  */
 FILE *debug_file = stderr;
 
-/* Enable miscellaneous debugging output.  The name is historical - it
-   was originally used to debug LinuxThreads support.  */
+/* See debug.h.  */
 int debug_threads;
 
 /* Include timestamps in debugging output.  */
diff --git a/gdb/gdbserver/debug.h b/gdb/gdbserver/debug.h
index 07e94eac6e..c136b9c224 100644
--- a/gdb/gdbserver/debug.h
+++ b/gdb/gdbserver/debug.h
@@ -28,7 +28,13 @@ extern int remote_debug;
 void debug_set_output (const char *debug_file);
 #endif
 
+extern int using_threads;
+
+/* Enable miscellaneous debugging output.  The name is historical - it
+   was originally used to debug LinuxThreads support.  */
+
 extern int debug_threads;
+
 extern int debug_timestamp;
 
 void debug_flush (void);
diff --git a/gdb/gdbserver/linux-aarch64-low.c b/gdb/gdbserver/linux-aarch64-low.c
index 33095ea752..ad04817145 100644
--- a/gdb/gdbserver/linux-aarch64-low.c
+++ b/gdb/gdbserver/linux-aarch64-low.c
@@ -28,6 +28,7 @@
 #include "elf/common.h"
 #include "ax.h"
 #include "tracepoint.h"
+#include "debug.h"
 
 #include <signal.h>
 #include <sys/user.h>
@@ -153,10 +154,6 @@ aarch64_store_pauthregset (struct regcache *regcache, const void *buf)
 		   &pauth_regset[1]);
 }
 
-/* Enable miscellaneous debugging output.  The name is historical - it
-   was originally used to debug LinuxThreads support.  */
-extern int debug_threads;
-
 /* Implementation of linux_target_ops method "get_pc".  */
 
 static CORE_ADDR
diff --git a/gdb/gdbserver/nto-low.c b/gdb/gdbserver/nto-low.c
index 3c1130680f..d77fda54b8 100644
--- a/gdb/gdbserver/nto-low.c
+++ b/gdb/gdbserver/nto-low.c
@@ -22,6 +22,7 @@
 #include "gdbthread.h"
 #include "nto-low.h"
 #include "hostio.h"
+#include "debug.h"
 
 #include <limits.h>
 #include <fcntl.h>
@@ -32,7 +33,6 @@
 #include <sys/neutrino.h>
 
 
-extern int using_threads;
 int using_threads = 1;
 
 const struct target_desc *nto_tdesc;
diff --git a/gdb/gdbserver/remote-utils.c b/gdb/gdbserver/remote-utils.c
index 665fc66c53..d7da4b7aed 100644
--- a/gdb/gdbserver/remote-utils.c
+++ b/gdb/gdbserver/remote-utils.c
@@ -23,6 +23,7 @@
 #include "target.h"
 #include "gdbthread.h"
 #include "tdesc.h"
+#include "debug.h"
 #include "dll.h"
 #include "gdbsupport/rsp-low.h"
 #include "gdbsupport/netstuff.h"
@@ -109,10 +110,6 @@ static int remote_is_stdio = 0;
 static gdb_fildes_t remote_desc = INVALID_DESCRIPTOR;
 static gdb_fildes_t listen_desc = INVALID_DESCRIPTOR;
 
-/* FIXME headerize? */
-extern int using_threads;
-extern int debug_threads;
-
 #ifdef USE_WIN32API
 # define read(fd, buf, len) recv (fd, (char *) buf, len, 0)
 # define write(fd, buf, len) send (fd, (char *) buf, len, 0)
diff --git a/gdb/gdbserver/thread-db.c b/gdb/gdbserver/thread-db.c
index b2791b0513..c6b43a06cc 100644
--- a/gdb/gdbserver/thread-db.c
+++ b/gdb/gdbserver/thread-db.c
@@ -22,8 +22,7 @@
 
 #include "linux-low.h"
 
-extern int debug_threads;
-
+#include "debug.h"
 #include "gdb_proc_service.h"
 #include "nat/gdb_thread_db.h"
 #include "gdbsupport/gdb_vecs.h"


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Replace solib_global_lookup with gdbarch_iterate_over_objfiles_in_search_order
@ 2019-09-21  2:52 gdb-buildbot
  2019-09-22  1:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-21  2:52 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 626ca2c06f7b5a5441d512ce334bb2daf5587259 ***

commit 626ca2c06f7b5a5441d512ce334bb2daf5587259
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Thu Aug 1 11:53:03 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Fri Sep 20 21:09:15 2019 -0500

    Replace solib_global_lookup with gdbarch_iterate_over_objfiles_in_search_order
    
    All implementations of either function use it for the same purpose (except
    Darwin, which is a no-op): to prefer a symbol in the current objfile over
    symbols with the same name in other objfiles. There does not seem to be a
    reason to have both mechanisms for that purpose.
    
    gdb/ChangeLog:
    
    2019-09-20  Christian Biesinger  <cbiesinger@google.com>
    
            * solib-darwin.c (darwin_lookup_lib_symbol): Remove.
            (_initialize_darwin_solib): Don't set
            darwin_so_ops.lookup_lib_global_symbol.
            * solib-svr4.c (set_solib_svr4_fetch_link_map_offsets): Call
            set_gdbarch_iterate_over_objfiles_in_search_order.
            (elf_lookup_lib_symbol): Rename to...
            (svr4_iterate_over_objfiles_in_search_order): this, and update
            to iterate semantics.
            (_initialize_svr4_solib): Don't set lookup_lib_global_symbol.
            * solib.c (solib_global_lookup): Remove.
            * solist.h (struct target_so_ops): Remove lookup_lib_global_symbol.
            (solib_global_lookup): Remove.
            * symtab.c (lookup_global_or_static_symbol): Remove call to
            solib_global_lookup.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 67aba3ed2d..3d0975afd8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,20 @@
+2019-09-20  Christian Biesinger  <cbiesinger@google.com>
+
+	* solib-darwin.c (darwin_lookup_lib_symbol): Remove.
+	(_initialize_darwin_solib): Don't set
+	darwin_so_ops.lookup_lib_global_symbol.
+	* solib-svr4.c (set_solib_svr4_fetch_link_map_offsets): Call
+	set_gdbarch_iterate_over_objfiles_in_search_order.
+	(elf_lookup_lib_symbol): Rename to...
+	(svr4_iterate_over_objfiles_in_search_order): this, and update
+	to iterate semantics.
+	(_initialize_svr4_solib): Don't set lookup_lib_global_symbol.
+	* solib.c (solib_global_lookup): Remove.
+	* solist.h (struct target_so_ops): Remove lookup_lib_global_symbol.
+	(solib_global_lookup): Remove.
+	* symtab.c (lookup_global_or_static_symbol): Remove call to
+	solib_global_lookup.
+
 2019-09-20  Joel Brobecker  <brobecker@adacore.com>
 
 	* NEWS: Move entries about default MI version now being
diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c
index 778c6d9f61..286e38558f 100644
--- a/gdb/solib-darwin.c
+++ b/gdb/solib-darwin.c
@@ -638,14 +638,6 @@ darwin_relocate_section_addresses (struct so_list *so,
     so->addr_low = sec->addr;
 }
 \f
-static struct block_symbol
-darwin_lookup_lib_symbol (struct objfile *objfile,
-			  const char *name,
-			  const domain_enum domain)
-{
-  return {};
-}
-
 static gdb_bfd_ref_ptr
 darwin_bfd_open (const char *pathname)
 {
@@ -687,6 +679,5 @@ _initialize_darwin_solib (void)
   darwin_so_ops.current_sos = darwin_current_sos;
   darwin_so_ops.open_symbol_file_object = open_symbol_file_object;
   darwin_so_ops.in_dynsym_resolve_code = darwin_in_dynsym_resolve_code;
-  darwin_so_ops.lookup_lib_global_symbol = darwin_lookup_lib_symbol;
   darwin_so_ops.bfd_open = darwin_bfd_open;
 }
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index e04fde942d..dc63549105 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -51,6 +51,10 @@ static int svr4_have_link_map_offsets (void);
 static void svr4_relocate_main_executable (void);
 static void svr4_free_library_list (void *p_list);
 static void probes_table_remove_objfile_probes (struct objfile *objfile);
+static void svr4_iterate_over_objfiles_in_search_order (
+  struct gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype *cb,
+  void *cb_data, struct objfile *objfile);
+
 
 /* On SVR4 systems, a list of symbols in the dynamic linker where
    GDB can try to place a breakpoint to monitor shared library
@@ -3102,6 +3106,8 @@ set_solib_svr4_fetch_link_map_offsets (struct gdbarch *gdbarch,
   ops->fetch_link_map_offsets = flmo;
 
   set_solib_ops (gdbarch, &svr4_so_ops);
+  set_gdbarch_iterate_over_objfiles_in_search_order
+    (gdbarch, svr4_iterate_over_objfiles_in_search_order);
 }
 
 /* Fetch a link_map_offsets structure using the architecture-specific
@@ -3200,32 +3206,45 @@ svr4_lp64_fetch_link_map_offsets (void)
 
 struct target_so_ops svr4_so_ops;
 
-/* Lookup global symbol for ELF DSOs linked with -Bsymbolic.  Those DSOs have a
+/* Search order for ELF DSOs linked with -Bsymbolic.  Those DSOs have a
    different rule for symbol lookup.  The lookup begins here in the DSO, not in
    the main executable.  */
 
-static struct block_symbol
-elf_lookup_lib_symbol (struct objfile *objfile,
-		       const char *name,
-		       const domain_enum domain)
+static void
+svr4_iterate_over_objfiles_in_search_order
+  (struct gdbarch *gdbarch,
+   iterate_over_objfiles_in_search_order_cb_ftype *cb,
+   void *cb_data, struct objfile *current_objfile)
 {
-  bfd *abfd;
-
-  if (objfile == symfile_objfile)
-    abfd = exec_bfd;
-  else
+  bool checked_current_objfile = false;
+  if (current_objfile != nullptr)
     {
-      /* OBJFILE should have been passed as the non-debug one.  */
-      gdb_assert (objfile->separate_debug_objfile_backlink == NULL);
+      bfd *abfd;
 
-      abfd = objfile->obfd;
-    }
+      if (current_objfile->separate_debug_objfile_backlink != nullptr)
+        current_objfile = current_objfile->separate_debug_objfile_backlink;
 
-  if (abfd == NULL || scan_dyntag (DT_SYMBOLIC, abfd, NULL, NULL) != 1)
-    return {};
+      if (current_objfile == symfile_objfile)
+	abfd = exec_bfd;
+      else
+	abfd = current_objfile->obfd;
+
+      if (abfd != nullptr &&
+	  scan_dyntag (DT_SYMBOLIC, abfd, nullptr, nullptr) == 1)
+	{
+	  checked_current_objfile = true;
+	  if (cb (current_objfile, cb_data) != 0)
+	    return;
+	}
+    }
 
-  return lookup_global_symbol_from_objfile (objfile, GLOBAL_BLOCK, name,
-					    domain);
+  for (objfile *objfile : current_program_space->objfiles ())
+    {
+      if (checked_current_objfile && objfile == current_objfile)
+	continue;
+      if (cb (objfile, cb_data) != 0)
+	return;
+    }
 }
 
 void
@@ -3242,7 +3261,6 @@ _initialize_svr4_solib (void)
   svr4_so_ops.open_symbol_file_object = open_symbol_file_object;
   svr4_so_ops.in_dynsym_resolve_code = svr4_in_dynsym_resolve_code;
   svr4_so_ops.bfd_open = solib_bfd_open;
-  svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol;
   svr4_so_ops.same = svr4_same;
   svr4_so_ops.keep_data_in_core = svr4_keep_data_in_core;
   svr4_so_ops.update_breakpoints = svr4_update_solib_event_breakpoints;
diff --git a/gdb/solib.c b/gdb/solib.c
index b9a61e265b..5b1246929b 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -1441,21 +1441,6 @@ show_auto_solib_add (struct ui_file *file, int from_tty,
 }
 
 
-/* Handler for library-specific lookup of global symbol NAME in OBJFILE.  Call
-   the library-specific handler if it is installed for the current target.  */
-
-struct block_symbol
-solib_global_lookup (struct objfile *objfile,
-		     const char *name,
-		     const domain_enum domain)
-{
-  const struct target_so_ops *ops = solib_ops (target_gdbarch ());
-
-  if (ops->lookup_lib_global_symbol != NULL)
-    return ops->lookup_lib_global_symbol (objfile, name, domain);
-  return {};
-}
-
 /* Lookup the value for a specific symbol from dynamic symbol table.  Look
    up symbol from ABFD.  MATCH_SYM is a callback function to determine
    whether to pick up a symbol.  DATA is the input of this callback
diff --git a/gdb/solist.h b/gdb/solist.h
index e1410c2b79..ee99fc815b 100644
--- a/gdb/solist.h
+++ b/gdb/solist.h
@@ -139,12 +139,6 @@ struct target_so_ops
 			      unsigned o_flags,
 			      gdb::unique_xmalloc_ptr<char> *temp_pathname);
 
-  /* Hook for looking up global symbols in a library-specific way.  */
-  struct block_symbol (*lookup_lib_global_symbol)
-    (struct objfile *objfile,
-     const char *name,
-     const domain_enum domain);
-
   /* Given two so_list objects, one from the GDB thread list
      and another from the list returned by current_sos, return 1
      if they represent the same library.
@@ -209,9 +203,4 @@ extern gdb_bfd_ref_ptr solib_bfd_open (const char *in_pathname);
 /* FIXME: gdbarch needs to control this variable.  */
 extern struct target_so_ops *current_target_so_ops;
 
-/* Handler for library-specific global symbol lookup in solib.c.  */
-struct block_symbol solib_global_lookup (struct objfile *objfile,
-					    const char *name,
-					    const domain_enum domain);
-
 #endif
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 35eab08cb3..54c7ed9c7c 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -2634,11 +2634,7 @@ lookup_global_or_static_symbol (const char *name,
       return result;
     }
 
-  /* Call library-specific lookup procedure.  */
-  if (objfile != NULL)
-    result = solib_global_lookup (objfile, name, domain);
-
-  /* If that didn't work go a global search (of global blocks, heh).  */
+  /* Do a global search (of global blocks, heh).  */
   if (result.symbol == NULL)
     {
       memset (&lookup_data, 0, sizeof (lookup_data));


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: change "nonzero" to "true" in comments
@ 2019-09-22  0:17 gdb-buildbot
  2019-09-22  2:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-22  0:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9252448ba984203cb5d0f15494ce9d942bb20c74 ***

commit 9252448ba984203cb5d0f15494ce9d942bb20c74
Author:     Simon Marchi <simon.marchi@polymtl.ca>
AuthorDate: Sat Sep 21 19:45:12 2019 -0400
Commit:     Simon Marchi <simon.marchi@polymtl.ca>
CommitDate: Sat Sep 21 19:47:22 2019 -0400

    gdb: change "nonzero" to "true" in comments
    
    These int fields have been converted to bool, so their doc should say
    "true" and not "nonzero".
    
    gdb/ChangeLog:
    
            * breakpoint.h (bp_location) <inserted, permanent, duplicate>:
            Change "nonzero" to "true" in documentation.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3d0975afd8..48f90186ff 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-21  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* breakpoint.h (bp_location) <inserted, permanent, duplicate>:
+	Change "nonzero" to "true" in documentation.
+
 2019-09-20  Christian Biesinger  <cbiesinger@google.com>
 
 	* solib-darwin.c (darwin_lookup_lib_symbol): Remove.
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 49380e30c2..80bb11c141 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -387,17 +387,17 @@ public:
   /* Is this particular location enabled.  */
   bool enabled = false;
   
-  /* Nonzero if this breakpoint is now inserted.  */
+  /* True if this breakpoint is now inserted.  */
   bool inserted = false;
 
-  /* Nonzero if this is a permanent breakpoint.  There is a breakpoint
+  /* True if this is a permanent breakpoint.  There is a breakpoint
      instruction hard-wired into the target's code.  Don't try to
      write another breakpoint instruction on top of it, or restore its
      value.  Step over it using the architecture's
      gdbarch_skip_permanent_breakpoint method.  */
   bool permanent = false;
 
-  /* Nonzero if this is not the first breakpoint in the list
+  /* True if this is not the first breakpoint in the list
      for the given address.  location of tracepoint can _never_
      be duplicated with other locations of tracepoints and other
      kinds of breakpoints, because two locations at the same


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: make watchpoint::val_valid a bool
@ 2019-09-22  0:41 gdb-buildbot
  2019-09-22  3:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-22  0:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4c1d86d9a8f7ddfbf7ff095a88a59497c8f6ddc9 ***

commit 4c1d86d9a8f7ddfbf7ff095a88a59497c8f6ddc9
Author:     Simon Marchi <simon.marchi@polymtl.ca>
AuthorDate: Sat Sep 21 19:50:40 2019 -0400
Commit:     Simon Marchi <simon.marchi@polymtl.ca>
CommitDate: Sat Sep 21 20:03:08 2019 -0400

    gdb: make watchpoint::val_valid a bool
    
    gdb/ChangeLog:
    
            * breakpoint.h (struct watchpoint) <val_valid>: Change type to
            bool.
            * breakpoint.c (update_watchpoint): Assign false instead of 0,
            true instead of 1.
            (breakpoint_init_inferior): Likewise.
            (watchpoint_check): Likewise.
            (watch_command_1): Likewise.
            (invalidate_bp_value_on_memory_change): Likewise.

diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 8ef3aac0c1..838c9d136f 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -1727,7 +1727,7 @@ update_watchpoint (struct watchpoint *b, int reparse)
 	 to the user when the old value and the new value may actually
 	 be completely different objects.  */
       b->val = NULL;
-      b->val_valid = 0;
+      b->val_valid = false;
 
       /* Note that unlike with breakpoints, the watchpoint's condition
 	 expression is stored in the breakpoint object, not in the
@@ -1780,7 +1780,7 @@ update_watchpoint (struct watchpoint *b, int reparse)
 	  if (b->val_bitsize != 0)
 	    v = extract_bitfield_from_watchpoint_value (b, v);
 	  b->val = release_value (v);
-	  b->val_valid = 1;
+	  b->val_valid = true;
 	}
 
       frame_pspace = get_frame_program_space (get_selected_frame (NULL));
@@ -3900,7 +3900,7 @@ breakpoint_init_inferior (enum inf_context context)
 		  /* Reset val field to force reread of starting value in
 		     insert_breakpoints.  */
 		  w->val.reset (nullptr);
-		  w->val_valid = 0;
+		  w->val_valid = false;
 		}
 	    }
 	}
@@ -4877,7 +4877,7 @@ watchpoint_check (bpstat bs)
 	{
 	  bs->old_val = b->val;
 	  b->val = release_value (new_val);
-	  b->val_valid = 1;
+	  b->val_valid = true;
 	  if (new_val != NULL)
 	    value_free_to_mark (mark);
 	  return WP_VALUE_CHANGED;
@@ -10717,7 +10717,7 @@ watch_command_1 (const char *arg, int accessflag, int from_tty,
       w->val = val;
       w->val_bitpos = saved_bitpos;
       w->val_bitsize = saved_bitsize;
-      w->val_valid = 1;
+      w->val_valid = true;
     }
 
   if (cond_start)
@@ -14375,7 +14375,7 @@ invalidate_bp_value_on_memory_change (struct inferior *inferior,
 		  && addr + len > loc->address)
 		{
 		  wp->val = NULL;
-		  wp->val_valid = 0;
+		  wp->val_valid = false;
 		}
 	  }
       }
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 80bb11c141..9791032c5e 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -817,9 +817,10 @@ struct watchpoint : public breakpoint
      we do not know the value yet or the value was not readable.  VAL
      is never lazy.  */
   value_ref_ptr val;
-  /* Nonzero if VAL is valid.  If VAL_VALID is set but VAL is NULL,
+
+  /* True if VAL is valid.  If VAL_VALID is set but VAL is NULL,
      then an error occurred reading the value.  */
-  int val_valid;
+  bool val_valid;
 
   /* When watching the location of a bitfield, contains the offset and size of
      the bitfield.  Otherwise contains 0.  */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb: fix formatting in solib-svr4.c
@ 2019-09-22  2:47 gdb-buildbot
  2019-09-22  4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-22  2:47 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7ab78ccbbb0d0918c293ade07bea59d789ea7d63 ***

commit 7ab78ccbbb0d0918c293ade07bea59d789ea7d63
Author:     Simon Marchi <simon.marchi@polymtl.ca>
AuthorDate: Sat Sep 21 22:13:49 2019 -0400
Commit:     Simon Marchi <simon.marchi@polymtl.ca>
CommitDate: Sat Sep 21 22:13:49 2019 -0400

    gdb: fix formatting in solib-svr4.c
    
    gdb/ChangeLog:
    
            * solib-svr4.c (svr4_iterate_over_objfiles_in_search_order): Fix
            formatting.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 48f90186ff..4374348c8d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-21  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* solib-svr4.c (svr4_iterate_over_objfiles_in_search_order): Fix
+	formatting.
+
 2019-09-21  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* breakpoint.h (bp_location) <inserted, permanent, duplicate>:
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index dc63549105..aa4af346b4 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -3229,8 +3229,8 @@ svr4_iterate_over_objfiles_in_search_order
       else
 	abfd = current_objfile->obfd;
 
-      if (abfd != nullptr &&
-	  scan_dyntag (DT_SYMBOLIC, abfd, nullptr, nullptr) == 1)
+      if (abfd != nullptr
+	  && scan_dyntag (DT_SYMBOLIC, abfd, nullptr, nullptr) == 1)
 	{
 	  checked_current_objfile = true;
 	  if (cb (current_objfile, cb_data) != 0)


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/testsuite] Allow some tests in gdb.base/restore.exp to be unsupported
@ 2019-09-22  5:10 gdb-buildbot
  2019-09-22  5:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-22  5:10 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 77d036789aab73c90dc7f4c798f34748b03de726 ***

commit 77d036789aab73c90dc7f4c798f34748b03de726
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Sun Sep 22 06:14:29 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Sun Sep 22 06:14:29 2019 +0200

    [gdb/testsuite] Allow some tests in gdb.base/restore.exp to be unsupported
    
    We currently run into:
    ...
    248       n = callee1 (n + l5);
    (gdb) PASS: gdb.base/restore.exp: caller5 calls callee1; return callee now
    print l1
    $51 = <optimized out>
    (gdb) FAIL: gdb.base/restore.exp: caller5 calls callee1; return restored l1 \
      to 32492
    ...
    
    The problem is that we try to access the value of l1 in function caller5, but
    variable l1 has no DW_AT_location attribute.  Since l1 is declared using the
    register keyword, it's valid for gcc to emit no DW_AT_location at -O0.
    
    Change the FAIL into an UNSUPPORTED.
    
    Tested on x86_64-linux.
    
    gdb/testsuite/ChangeLog:
    
    2019-09-22  Tom de Vries  <tdevries@suse.de>
    
            * gdb.base/restore.exp: Allow register variables to be optimized out at
            -O0.

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 64c7d38861..37e323f747 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-22  Tom de Vries  <tdevries@suse.de>
+
+	* gdb.base/restore.exp: Allow register variables to be optimized out at
+	-O0.
+
 2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
 
 	* gdb.arch/spu-info.exp: Remove file.
diff --git a/gdb/testsuite/gdb.base/restore.exp b/gdb/testsuite/gdb.base/restore.exp
index 947fe58be4..56c2f5e3dc 100644
--- a/gdb/testsuite/gdb.base/restore.exp
+++ b/gdb/testsuite/gdb.base/restore.exp
@@ -73,8 +73,17 @@ proc restore_tests { } {
 	    # they should be.
             for {set var 1} {$var <= $c} {incr var} {
                 set expected [expr 0x7eeb + $var]
-	        gdb_test "print l$var" " = $expected" \
-		    "caller$c calls callee$e; return restored l$var to $expected"
+		set test "caller$c calls callee$e; return restored l$var to $expected"
+		set pass_pattern " = $expected"
+		set unsupported_pattern " = <optimized out>"
+	        gdb_test_multiple "print l$var" $test {
+		    -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
+			pass $test
+		    }
+		    -re "\[\r\n\]*(?:$unsupported_pattern)\[\r\n\]+$gdb_prompt $" {
+			unsupported $test
+		    }
+		}
             }
         }
     }


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] csky bfd.h tidy
@ 2019-09-23  1:25 gdb-buildbot
  2019-09-23  2:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  1:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6e67e6b05abcb29148cda042c1297ad63e6c75f2 ***

commit 6e67e6b05abcb29148cda042c1297ad63e6c75f2
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 09:58:42 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:20 2019 +0930

    csky bfd.h tidy
    
    bfd/
            * bfd-in.h: Move csky function declarations to..
            * elf32-csky.h: ..here, new file.
            * elf32-csky.c: Include elf32-csky.h.
            * bfd-in2.h: Regenerate.
    ld/
            * emultempl/cskyelf.em: Include elf32-csky.h.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index b1a4aebd21..906ff1d2b4 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move csky function declarations to..
+	* elf32-csky.h: ..here, new file.
+	* elf32-csky.c: Include elf32-csky.h.
+	* bfd-in2.h: Regenerate.
+
 2019-09-20  Nelson Chu <nelson.chu@sifive.com>
 
 	* elfnn-riscv.c (riscv_pcgp_hi_reloc): Add new field undefined_weak.
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 969a965796..56a006e9cc 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1023,15 +1023,3 @@ extern bfd_boolean v850_elf_set_note
 /* MIPS ABI flags data access.  For the disassembler.  */
 struct elf_internal_abiflags_v0;
 extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
-
-/* C-SKY functions.  */
-extern bfd_boolean elf32_csky_build_stubs
-  (struct bfd_link_info *);
-extern bfd_boolean elf32_csky_size_stubs
-  (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
-   struct bfd_section *(*) (const char*, struct bfd_section*),
-   void (*) (void));
-extern void elf32_csky_next_input_section
-  (struct bfd_link_info *, struct bfd_section *);
-extern int elf32_csky_setup_section_lists
-  (bfd *, struct bfd_link_info *);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 44bce06191..1aa2975bd4 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1030,18 +1030,6 @@ extern bfd_boolean v850_elf_set_note
 /* MIPS ABI flags data access.  For the disassembler.  */
 struct elf_internal_abiflags_v0;
 extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
-
-/* C-SKY functions.  */
-extern bfd_boolean elf32_csky_build_stubs
-  (struct bfd_link_info *);
-extern bfd_boolean elf32_csky_size_stubs
-  (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
-   struct bfd_section *(*) (const char*, struct bfd_section*),
-   void (*) (void));
-extern void elf32_csky_next_input_section
-  (struct bfd_link_info *, struct bfd_section *);
-extern int elf32_csky_setup_section_lists
-  (bfd *, struct bfd_link_info *);
 /* Extracted from init.c.  */
 unsigned int bfd_init (void);
 
diff --git a/bfd/elf32-csky.c b/bfd/elf32-csky.c
index 16897b3930..85fddf8681 100644
--- a/bfd/elf32-csky.c
+++ b/bfd/elf32-csky.c
@@ -28,6 +28,7 @@
 #include "opcode/csky.h"
 #include <assert.h>
 #include "libiberty.h"
+#include "elf32-csky.h"
 
 /* Data structures used for merging different arch variants.
    V1 (510/610) and V2 (8xx) processors are incompatible, but
diff --git a/bfd/elf32-csky.h b/bfd/elf32-csky.h
new file mode 100644
index 0000000000..2ca07497f8
--- /dev/null
+++ b/bfd/elf32-csky.h
@@ -0,0 +1,30 @@
+/* 32-bit ELF support for C-SKY.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+extern bfd_boolean elf32_csky_build_stubs
+  (struct bfd_link_info *);
+extern bfd_boolean elf32_csky_size_stubs
+  (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
+   struct bfd_section *(*) (const char*, struct bfd_section*),
+   void (*) (void));
+extern void elf32_csky_next_input_section
+  (struct bfd_link_info *, struct bfd_section *);
+extern int elf32_csky_setup_section_lists
+  (bfd *, struct bfd_link_info *);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index eb7981ea48..56fc0a2d92 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* emultempl/cskyelf.em: Include elf32-csky.h.
+
 2019-09-22  Alan Modra  <amodra@gmail.com>
 
 	* testsuite/ld-srec/sr3.cc (FOO_MSG_LEN): Set to 4.
diff --git a/ld/emultempl/cskyelf.em b/ld/emultempl/cskyelf.em
index 9184808655..9215824c34 100644
--- a/ld/emultempl/cskyelf.em
+++ b/ld/emultempl/cskyelf.em
@@ -25,6 +25,7 @@ fragment <<EOF
 
 #include "ldctor.h"
 #include "elf/csky.h"
+#include "elf32-csky.h"
 
 /* To use branch stub or not.  */
 extern bfd_boolean use_branch_stub;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] mips bfd.h tidy
@ 2019-09-23  1:37 gdb-buildbot
  2019-09-23  3:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  1:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7beeaeb8c6d84ecc899b9454d9b92521e515fe4a ***

commit 7beeaeb8c6d84ecc899b9454d9b92521e515fe4a
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:00:21 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:20 2019 +0930

    mips bfd.h tidy
    
    bfd/
            * bfd-in.h: Move mips function declaration to..
            * elfxx-mips.h: ..here.
            * bfd-in2.h: Regenerate.
    opcodes/
            * mips-dis.c: Include elfxx-mips.h.  Move "elf-bfd.h" and
            "elf/mips.h" earlier.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 906ff1d2b4..d5521fb6dc 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move mips function declaration to..
+	* elfxx-mips.h: ..here.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move csky function declarations to..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 56a006e9cc..c2105e3a94 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1019,7 +1019,3 @@ extern bfd_boolean v850_elf_create_sections
 
 extern bfd_boolean v850_elf_set_note
   (bfd *, unsigned int, unsigned int);
-
-/* MIPS ABI flags data access.  For the disassembler.  */
-struct elf_internal_abiflags_v0;
-extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 1aa2975bd4..9960163e27 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1026,10 +1026,6 @@ extern bfd_boolean v850_elf_create_sections
 
 extern bfd_boolean v850_elf_set_note
   (bfd *, unsigned int, unsigned int);
-
-/* MIPS ABI flags data access.  For the disassembler.  */
-struct elf_internal_abiflags_v0;
-extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
 /* Extracted from init.c.  */
 unsigned int bfd_init (void);
 
diff --git a/bfd/elfxx-mips.h b/bfd/elfxx-mips.h
index 8e796a99d9..fe0e50ff39 100644
--- a/bfd/elfxx-mips.h
+++ b/bfd/elfxx-mips.h
@@ -176,6 +176,9 @@ extern int _bfd_mips_elf_cant_unwind_opcode (struct bfd_link_info *);
 extern void _bfd_mips_elf_record_xhash_symbol
   (struct elf_link_hash_entry *h, bfd_vma xlat_loc);
 
+/* MIPS ABI flags data access.  For the disassembler.  */
+extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
+
 static inline bfd_boolean
 gprel16_reloc_p (unsigned int r_type)
 {
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 0043d4eb16..91b084ef8a 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* mips-dis.c: Include elfxx-mips.h.  Move "elf-bfd.h" and
+	"elf/mips.h" earlier.
+
 2018-09-20  Jan Beulich  <jbeulich@suse.com>
 
 	PR gas/25012
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
index 5bf33d9f8f..8418841842 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -24,6 +24,9 @@
 #include "libiberty.h"
 #include "opcode/mips.h"
 #include "opintl.h"
+#include "elf-bfd.h"
+#include "elf/mips.h"
+#include "elfxx-mips.h"
 
 /* FIXME: These are needed to figure out if the code is mips16 or
    not. The low bit of the address is often a good indicator.  No
@@ -32,8 +35,6 @@
 
 #if !defined(EMBEDDED_ENV)
 #define SYMTAB_AVAILABLE 1
-#include "elf-bfd.h"
-#include "elf/mips.h"
 #endif
 
 /* Mips instructions are at maximum this many bytes long.  */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] v850 bfd.h tidy
@ 2019-09-23  1:59 gdb-buildbot
  2019-09-23  4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  1:59 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT d48d68b618f0950f63bdf2842a550384c0c58bc3 ***

commit d48d68b618f0950f63bdf2842a550384c0c58bc3
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:01:31 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:20 2019 +0930

    v850 bfd.h tidy
    
    bfd/
            * bfd-in.h: Move v850 function declarations..
            * elf32-v850.h: ..to here, new file.
            * elf32-v850.c: Include elf32-v850.h.
            * bfd-in2.h: Regenerate.
    ld/
            * emultempl/v850elf.em: Include elf32-v850.h.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d5521fb6dc..61d31aaf97 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move v850 function declarations..
+	* elf32-v850.h: ..to here, new file.
+	* elf32-v850.c: Include elf32-v850.h.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move mips function declaration to..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index c2105e3a94..fe5e168128 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1012,10 +1012,3 @@ extern void bfd_elf32_ia64_after_parse
 
 extern void bfd_elf64_ia64_after_parse
   (int);
-
-/* V850 Note manipulation routines.  */
-extern bfd_boolean v850_elf_create_sections
-  (struct bfd_link_info *);
-
-extern bfd_boolean v850_elf_set_note
-  (bfd *, unsigned int, unsigned int);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 9960163e27..6d92b89e2a 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1019,13 +1019,6 @@ extern void bfd_elf32_ia64_after_parse
 
 extern void bfd_elf64_ia64_after_parse
   (int);
-
-/* V850 Note manipulation routines.  */
-extern bfd_boolean v850_elf_create_sections
-  (struct bfd_link_info *);
-
-extern bfd_boolean v850_elf_set_note
-  (bfd *, unsigned int, unsigned int);
 /* Extracted from init.c.  */
 unsigned int bfd_init (void);
 
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index 21df3c8b9a..c8a97ed129 100644
--- a/bfd/elf32-v850.c
+++ b/bfd/elf32-v850.c
@@ -29,6 +29,7 @@
 #include "elf-bfd.h"
 #include "elf/v850.h"
 #include "libiberty.h"
+#include "elf32-v850.h"
 
 /* Sign-extend a 17-bit number.  */
 #define SEXT17(x)	((((x) & 0x1ffff) ^ 0x10000) - 0x10000)
diff --git a/bfd/elf32-v850.h b/bfd/elf32-v850.h
new file mode 100644
index 0000000000..0ed5871cce
--- /dev/null
+++ b/bfd/elf32-v850.h
@@ -0,0 +1,25 @@
+/* V850 Note manipulation routines.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+extern bfd_boolean v850_elf_create_sections
+  (struct bfd_link_info *);
+
+extern bfd_boolean v850_elf_set_note
+  (bfd *, unsigned int, unsigned int);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 56fc0a2d92..fa5913e7be 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* emultempl/v850elf.em: Include elf32-v850.h.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* emultempl/cskyelf.em: Include elf32-csky.h.
diff --git a/ld/emultempl/v850elf.em b/ld/emultempl/v850elf.em
index ac7051f3b7..3e3e09d4bb 100644
--- a/ld/emultempl/v850elf.em
+++ b/ld/emultempl/v850elf.em
@@ -24,6 +24,7 @@
 #
 fragment <<EOF
 #include "ldctor.h"
+#include "elf32-v850.h"
 
 static bfd_boolean
 is_v850_target (void)


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] ia64 bfd.h tidy
@ 2019-09-23  2:01 gdb-buildbot
  2019-09-23  5:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  2:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3352ae9900037b231f9838e088af450a19bade17 ***

commit 3352ae9900037b231f9838e088af450a19bade17
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:02:25 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930

    ia64 bfd.h tidy
    
    bfd/
            * bfd-in.h: Move ia64 function declarations..
            * elfxx-ia64.h: ..to here.
            * bfd-in2.h: Regenerate.
    ld/
            * emultempl/ia64elf.em: Include elfxx-ia64.h.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 61d31aaf97..a08cd7e20f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move ia64 function declarations..
+	* elfxx-ia64.h: ..to here.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move v850 function declarations..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index fe5e168128..1d0262ffae 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1005,10 +1005,3 @@ extern int bfd_ticoff_get_section_load_page
 /* H8/300 functions.  */
 extern bfd_vma bfd_h8300_pad_address
   (bfd *, bfd_vma);
-
-/* IA64 Itanium code generation.  Called from linker.  */
-extern void bfd_elf32_ia64_after_parse
-  (int);
-
-extern void bfd_elf64_ia64_after_parse
-  (int);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 6d92b89e2a..88ca55011a 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1012,13 +1012,6 @@ extern int bfd_ticoff_get_section_load_page
 /* H8/300 functions.  */
 extern bfd_vma bfd_h8300_pad_address
   (bfd *, bfd_vma);
-
-/* IA64 Itanium code generation.  Called from linker.  */
-extern void bfd_elf32_ia64_after_parse
-  (int);
-
-extern void bfd_elf64_ia64_after_parse
-  (int);
 /* Extracted from init.c.  */
 unsigned int bfd_init (void);
 
diff --git a/bfd/elfxx-ia64.h b/bfd/elfxx-ia64.h
index 915df82089..628cbf6a13 100644
--- a/bfd/elfxx-ia64.h
+++ b/bfd/elfxx-ia64.h
@@ -31,3 +31,10 @@ void ia64_elf_relax_ldxmov (bfd_byte *contents, bfd_vma off);
 
 bfd_reloc_status_type ia64_elf_install_value (bfd_byte *hit_addr, bfd_vma v,
 					      unsigned int r_type);
+
+/* IA64 Itanium code generation.  Called from linker.  */
+extern void bfd_elf32_ia64_after_parse
+  (int);
+
+extern void bfd_elf64_ia64_after_parse
+  (int);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index fa5913e7be..3eddd55ddf 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* emultempl/ia64elf.em: Include elfxx-ia64.h.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* emultempl/v850elf.em: Include elf32-v850.h.
diff --git a/ld/emultempl/ia64elf.em b/ld/emultempl/ia64elf.em
index 59e1d8da79..ae45956d77 100644
--- a/ld/emultempl/ia64elf.em
+++ b/ld/emultempl/ia64elf.em
@@ -27,6 +27,8 @@
 #
 fragment <<EOF
 
+#include "elfxx-ia64.h"
+
 /* None zero if generating binary for Intel Itanium processor.  */
 static int itanium = 0;
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] h8300 bfd.h tidy
@ 2019-09-23  2:13 gdb-buildbot
  2019-09-23  6:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  2:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ca437b1b5fe3d3dd7987ddf6c373bc2221c0726e ***

commit ca437b1b5fe3d3dd7987ddf6c373bc2221c0726e
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:03:04 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930

    h8300 bfd.h tidy
    
            * bfd-in.h: Move h8300 function declaration to..
            * cpu-h8300.h: ..here, new file.
            * cpu-h8300.c: Include cpu-h8300.h.
            * elf32-h8300.c: Likewise.
            * bfd-in2.h: Regenerate.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a08cd7e20f..9130fd510b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move h8300 function declaration to..
+	* cpu-h8300.h: ..here, new file.
+	* cpu-h8300.c: Include cpu-h8300.h.
+	* elf32-h8300.c: Likewise.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move ia64 function declarations..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 1d0262ffae..4216808c2a 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1001,7 +1001,3 @@ extern void bfd_ticoff_set_section_load_page
 
 extern int bfd_ticoff_get_section_load_page
   (struct bfd_section *);
-
-/* H8/300 functions.  */
-extern bfd_vma bfd_h8300_pad_address
-  (bfd *, bfd_vma);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 88ca55011a..a5c0f5806d 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1008,10 +1008,6 @@ extern void bfd_ticoff_set_section_load_page
 
 extern int bfd_ticoff_get_section_load_page
   (struct bfd_section *);
-
-/* H8/300 functions.  */
-extern bfd_vma bfd_h8300_pad_address
-  (bfd *, bfd_vma);
 /* Extracted from init.c.  */
 unsigned int bfd_init (void);
 
diff --git a/bfd/cpu-h8300.c b/bfd/cpu-h8300.c
index 53dd4ec52b..3dc2ac7c1b 100644
--- a/bfd/cpu-h8300.c
+++ b/bfd/cpu-h8300.c
@@ -22,6 +22,7 @@
 #include "sysdep.h"
 #include "bfd.h"
 #include "libbfd.h"
+#include "cpu-h8300.h"
 
 static bfd_boolean
 h8300_scan (const struct bfd_arch_info *info, const char *string)
diff --git a/bfd/cpu-h8300.h b/bfd/cpu-h8300.h
new file mode 100644
index 0000000000..9a51089c93
--- /dev/null
+++ b/bfd/cpu-h8300.h
@@ -0,0 +1,22 @@
+/* H8/300 functions.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+extern bfd_vma bfd_h8300_pad_address
+  (bfd *, bfd_vma);
diff --git a/bfd/elf32-h8300.c b/bfd/elf32-h8300.c
index ba7c8b2062..f0a04e222d 100644
--- a/bfd/elf32-h8300.c
+++ b/bfd/elf32-h8300.c
@@ -23,6 +23,7 @@
 #include "libbfd.h"
 #include "elf-bfd.h"
 #include "elf/h8.h"
+#include "cpu-h8300.h"
 
 static reloc_howto_type *elf32_h8_reloc_type_lookup
   (bfd *abfd, bfd_reloc_code_real_type code);


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] tic6x bfd.h tidy
@ 2019-09-23  2:50 gdb-buildbot
  2019-09-23  9:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  2:50 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 79c2ce54e1e52e5d63d96af56c544de778036a12 ***

commit 79c2ce54e1e52e5d63d96af56c544de778036a12
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:05:43 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930

    tic6x bfd.h tidy
    
            * bfd-in.h: Move tic6x function declaration..
            * elf32-tic6x.h: ..to here.
            * bfd-in2.h: Regenerate.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a72a63dbb5..06b09a16ab 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move tic6x function declaration..
+	* elf32-tic6x.h: ..to here.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move aarch64 declarations and defines..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index ed8e47f8a4..c923e54f5d 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -903,7 +903,3 @@ extern bfd_boolean elf32_arm_build_stubs
 /* ARM unwind section editing support.  */
 extern bfd_boolean elf32_arm_fix_exidx_coverage
 (struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
-
-/* C6x unwind section editing support.  */
-extern bfd_boolean elf32_tic6x_fix_exidx_coverage
-(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 8cc6201644..74aaf3c5aa 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -910,10 +910,6 @@ extern bfd_boolean elf32_arm_build_stubs
 /* ARM unwind section editing support.  */
 extern bfd_boolean elf32_arm_fix_exidx_coverage
 (struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
-
-/* C6x unwind section editing support.  */
-extern bfd_boolean elf32_tic6x_fix_exidx_coverage
-(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
 /* Extracted from init.c.  */
 unsigned int bfd_init (void);
 
diff --git a/bfd/elf32-tic6x.h b/bfd/elf32-tic6x.h
index 2198f67cae..24a280fbb7 100644
--- a/bfd/elf32-tic6x.h
+++ b/bfd/elf32-tic6x.h
@@ -37,6 +37,11 @@ struct elf32_tic6x_params
 extern void elf32_tic6x_setup (struct bfd_link_info *,
 			       struct elf32_tic6x_params *);
 
+/* C6x unwind section editing support.  */
+extern bfd_boolean elf32_tic6x_fix_exidx_coverage (struct bfd_section **,
+						   unsigned int,
+						   struct bfd_link_info *,
+						   bfd_boolean);
 #ifdef __cplusplus
 }
 #endif


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] arm bfd.h tidy
@ 2019-09-23  3:03 gdb-buildbot
  2019-09-23  9:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  3:03 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f37164d78b0d9600862b7038b896922127749b52 ***

commit f37164d78b0d9600862b7038b896922127749b52
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:06:45 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930

    arm bfd.h tidy
    
    bfd/
            * bfd-in.h: Move arm declaraions..
            * cpu-arm.h: ..to here, new file..
            * coff-arm.h: ..and here, new file..
            * elf32-arm.h: ..and here, new file.
            * cpu-arm.c: Include cpu-arm.h.
            * coff-arm.c: Include cpu-arm.h and coff-arm.h.
            * elf32-arm.c: Include cpu-arm.h and elf32-arm.h.
            * pe-arm.c: Move function rename defines later.
            * pe-arm-wince.c: Likewise and include sysdep.h and bfd.h early.
            * bfd-in2.h: Regenerate.
    gas/
            * config/tc-arm.c: Include cpu-arm.h.
    ld/
            * emultempl/armelf.em: Include elf32-arm.h.
            * emultempl/pe.em: Move func defines later and include coff-arm.h.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 06b09a16ab..c1f82cda92 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move arm declaraions..
+	* cpu-arm.h: ..to here, new file..
+	* coff-arm.h: ..and here, new file..
+	* elf32-arm.h: ..and here, new file.
+	* cpu-arm.c: Include cpu-arm.h.
+	* coff-arm.c: Include cpu-arm.h and coff-arm.h.
+	* elf32-arm.c: Include cpu-arm.h and elf32-arm.h.
+	* pe-arm.c: Move function rename defines later.
+	* pe-arm-wince.c: Likewise and include sysdep.h and bfd.h early.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move tic6x function declaration..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index c923e54f5d..124a0c2b81 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -763,143 +763,3 @@ union internal_auxent;
 
 extern bfd_boolean bfd_coff_set_symbol_class
   (bfd *, struct bfd_symbol *, unsigned int);
-
-/* ARM VFP11 erratum workaround support.  */
-typedef enum
-{
-  BFD_ARM_VFP11_FIX_DEFAULT,
-  BFD_ARM_VFP11_FIX_NONE,
-  BFD_ARM_VFP11_FIX_SCALAR,
-  BFD_ARM_VFP11_FIX_VECTOR
-} bfd_arm_vfp11_fix;
-
-extern void bfd_elf32_arm_init_maps
-  (bfd *);
-
-extern void bfd_elf32_arm_set_vfp11_fix
-  (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_set_cortex_a8_fix
-  (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
-  (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_vfp11_fix_veneer_locations
-  (bfd *, struct bfd_link_info *);
-
-/* ARM STM STM32L4XX erratum workaround support.  */
-typedef enum
-{
-  BFD_ARM_STM32L4XX_FIX_NONE,
-  BFD_ARM_STM32L4XX_FIX_DEFAULT,
-  BFD_ARM_STM32L4XX_FIX_ALL
-} bfd_arm_stm32l4xx_fix;
-
-extern void bfd_elf32_arm_set_stm32l4xx_fix
-  (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan
-  (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations
-  (bfd *, struct bfd_link_info *);
-
-/* ARM Interworking support.  Called from linker.  */
-extern bfd_boolean bfd_arm_allocate_interworking_sections
-  (struct bfd_link_info *);
-
-extern bfd_boolean bfd_arm_process_before_allocation
-  (bfd *, struct bfd_link_info *, int);
-
-extern bfd_boolean bfd_arm_get_bfd_for_interworking
-  (bfd *, struct bfd_link_info *);
-
-/* PE ARM Interworking support.  Called from linker.  */
-extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
-  (struct bfd_link_info *);
-
-extern bfd_boolean bfd_arm_pe_process_before_allocation
-  (bfd *, struct bfd_link_info *, int);
-
-extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
-  (bfd *, struct bfd_link_info *);
-
-/* ELF ARM Interworking support.  Called from linker.  */
-extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
-  (struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_process_before_allocation
-  (bfd *, struct bfd_link_info *);
-
-struct elf32_arm_params {
-  char *thumb_entry_symbol;
-  int byteswap_code;
-  int target1_is_rel;
-  char * target2_type;
-  int fix_v4bx;
-  int use_blx;
-  bfd_arm_vfp11_fix vfp11_denorm_fix;
-  bfd_arm_stm32l4xx_fix stm32l4xx_fix;
-  int no_enum_size_warning;
-  int no_wchar_size_warning;
-  int pic_veneer;
-  int fix_cortex_a8;
-  int fix_arm1176;
-  int merge_exidx_entries;
-  int cmse_implib;
-  bfd *in_implib_bfd;
-};
-
-void bfd_elf32_arm_set_target_params
-  (bfd *, struct bfd_link_info *, struct elf32_arm_params *);
-
-extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
-  (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
-  (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_keep_private_stub_output_sections
-  (struct bfd_link_info *);
-
-/* ELF ARM mapping symbol support.  */
-#define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
-#define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
-#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER	(1 << 2)
-#define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
-
-extern bfd_boolean bfd_is_arm_special_symbol_name
-  (const char *, int);
-
-extern void bfd_elf32_arm_set_byteswap_code
-  (struct bfd_link_info *, int);
-
-extern void bfd_elf32_arm_use_long_plt (void);
-
-/* ARM Note section processing.  */
-extern bfd_boolean bfd_arm_merge_machines
-  (bfd *, bfd *);
-
-extern bfd_boolean bfd_arm_update_notes
-  (bfd *, const char *);
-
-extern unsigned int bfd_arm_get_mach_from_notes
-  (bfd *, const char *);
-
-/* ARM stub generation support.  Called from the linker.  */
-extern int elf32_arm_setup_section_lists
-  (bfd *, struct bfd_link_info *);
-extern void elf32_arm_next_input_section
-  (struct bfd_link_info *, struct bfd_section *);
-extern bfd_boolean elf32_arm_size_stubs
-  (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
-   struct bfd_section * (*) (const char *, struct bfd_section *,
-			     struct bfd_section *, unsigned int),
-   void (*) (void));
-extern bfd_boolean elf32_arm_build_stubs
-  (struct bfd_link_info *);
-
-/* ARM unwind section editing support.  */
-extern bfd_boolean elf32_arm_fix_exidx_coverage
-(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 74aaf3c5aa..052a826176 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -770,146 +770,6 @@ union internal_auxent;
 
 extern bfd_boolean bfd_coff_set_symbol_class
   (bfd *, struct bfd_symbol *, unsigned int);
-
-/* ARM VFP11 erratum workaround support.  */
-typedef enum
-{
-  BFD_ARM_VFP11_FIX_DEFAULT,
-  BFD_ARM_VFP11_FIX_NONE,
-  BFD_ARM_VFP11_FIX_SCALAR,
-  BFD_ARM_VFP11_FIX_VECTOR
-} bfd_arm_vfp11_fix;
-
-extern void bfd_elf32_arm_init_maps
-  (bfd *);
-
-extern void bfd_elf32_arm_set_vfp11_fix
-  (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_set_cortex_a8_fix
-  (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
-  (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_vfp11_fix_veneer_locations
-  (bfd *, struct bfd_link_info *);
-
-/* ARM STM STM32L4XX erratum workaround support.  */
-typedef enum
-{
-  BFD_ARM_STM32L4XX_FIX_NONE,
-  BFD_ARM_STM32L4XX_FIX_DEFAULT,
-  BFD_ARM_STM32L4XX_FIX_ALL
-} bfd_arm_stm32l4xx_fix;
-
-extern void bfd_elf32_arm_set_stm32l4xx_fix
-  (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan
-  (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations
-  (bfd *, struct bfd_link_info *);
-
-/* ARM Interworking support.  Called from linker.  */
-extern bfd_boolean bfd_arm_allocate_interworking_sections
-  (struct bfd_link_info *);
-
-extern bfd_boolean bfd_arm_process_before_allocation
-  (bfd *, struct bfd_link_info *, int);
-
-extern bfd_boolean bfd_arm_get_bfd_for_interworking
-  (bfd *, struct bfd_link_info *);
-
-/* PE ARM Interworking support.  Called from linker.  */
-extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
-  (struct bfd_link_info *);
-
-extern bfd_boolean bfd_arm_pe_process_before_allocation
-  (bfd *, struct bfd_link_info *, int);
-
-extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
-  (bfd *, struct bfd_link_info *);
-
-/* ELF ARM Interworking support.  Called from linker.  */
-extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
-  (struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_process_before_allocation
-  (bfd *, struct bfd_link_info *);
-
-struct elf32_arm_params {
-  char *thumb_entry_symbol;
-  int byteswap_code;
-  int target1_is_rel;
-  char * target2_type;
-  int fix_v4bx;
-  int use_blx;
-  bfd_arm_vfp11_fix vfp11_denorm_fix;
-  bfd_arm_stm32l4xx_fix stm32l4xx_fix;
-  int no_enum_size_warning;
-  int no_wchar_size_warning;
-  int pic_veneer;
-  int fix_cortex_a8;
-  int fix_arm1176;
-  int merge_exidx_entries;
-  int cmse_implib;
-  bfd *in_implib_bfd;
-};
-
-void bfd_elf32_arm_set_target_params
-  (bfd *, struct bfd_link_info *, struct elf32_arm_params *);
-
-extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
-  (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
-  (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_keep_private_stub_output_sections
-  (struct bfd_link_info *);
-
-/* ELF ARM mapping symbol support.  */
-#define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
-#define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
-#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER	(1 << 2)
-#define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
-
-extern bfd_boolean bfd_is_arm_special_symbol_name
-  (const char *, int);
-
-extern void bfd_elf32_arm_set_byteswap_code
-  (struct bfd_link_info *, int);
-
-extern void bfd_elf32_arm_use_long_plt (void);
-
-/* ARM Note section processing.  */
-extern bfd_boolean bfd_arm_merge_machines
-  (bfd *, bfd *);
-
-extern bfd_boolean bfd_arm_update_notes
-  (bfd *, const char *);
-
-extern unsigned int bfd_arm_get_mach_from_notes
-  (bfd *, const char *);
-
-/* ARM stub generation support.  Called from the linker.  */
-extern int elf32_arm_setup_section_lists
-  (bfd *, struct bfd_link_info *);
-extern void elf32_arm_next_input_section
-  (struct bfd_link_info *, struct bfd_section *);
-extern bfd_boolean elf32_arm_size_stubs
-  (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
-   struct bfd_section * (*) (const char *, struct bfd_section *,
-			     struct bfd_section *, unsigned int),
-   void (*) (void));
-extern bfd_boolean elf32_arm_build_stubs
-  (struct bfd_link_info *);
-
-/* ARM unwind section editing support.  */
-extern bfd_boolean elf32_arm_fix_exidx_coverage
-(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
 /* Extracted from init.c.  */
 unsigned int bfd_init (void);
 
diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c
index cbc5257e9f..c9a7c098f5 100644
--- a/bfd/coff-arm.c
+++ b/bfd/coff-arm.c
@@ -24,6 +24,8 @@
 #include "libbfd.h"
 #include "coff/arm.h"
 #include "coff/internal.h"
+#include "cpu-arm.h"
+#include "coff-arm.h"
 
 #ifdef COFF_WITH_PE
 #include "coff/pe.h"
diff --git a/bfd/coff-arm.h b/bfd/coff-arm.h
new file mode 100644
index 0000000000..e0a93d6182
--- /dev/null
+++ b/bfd/coff-arm.h
@@ -0,0 +1,29 @@
+/* BFD back-end for ARM COFF files.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+/* ARM Interworking support.  Called from linker.  */
+extern bfd_boolean bfd_arm_allocate_interworking_sections
+  (struct bfd_link_info *);
+
+extern bfd_boolean bfd_arm_process_before_allocation
+  (bfd *, struct bfd_link_info *, int);
+
+extern bfd_boolean bfd_arm_get_bfd_for_interworking
+  (bfd *, struct bfd_link_info *);
diff --git a/bfd/cpu-arm.c b/bfd/cpu-arm.c
index 71a78daf11..4a8c340f70 100644
--- a/bfd/cpu-arm.c
+++ b/bfd/cpu-arm.c
@@ -23,6 +23,7 @@
 #include "bfd.h"
 #include "libbfd.h"
 #include "libiberty.h"
+#include "cpu-arm.h"
 
 /* This routine is provided two arch_infos and works out which ARM
    machine which would be compatible with both and returns a pointer
diff --git a/bfd/cpu-arm.h b/bfd/cpu-arm.h
new file mode 100644
index 0000000000..116b040e12
--- /dev/null
+++ b/bfd/cpu-arm.h
@@ -0,0 +1,39 @@
+/* BFD support for the ARM processor
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+/* ARM Note section processing.  */
+extern bfd_boolean bfd_arm_merge_machines
+  (bfd *, bfd *);
+
+extern bfd_boolean bfd_arm_update_notes
+  (bfd *, const char *);
+
+extern unsigned int bfd_arm_get_mach_from_notes
+  (bfd *, const char *);
+
+/* ELF ARM mapping symbol support.  */
+#define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
+#define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
+#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER	(1 << 2)
+#define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
+
+extern bfd_boolean bfd_is_arm_special_symbol_name
+  (const char *, int);
+
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 1c4887a034..bb53e039e3 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -28,6 +28,8 @@
 #include "elf-nacl.h"
 #include "elf-vxworks.h"
 #include "elf/arm.h"
+#include "elf32-arm.h"
+#include "cpu-arm.h"
 
 /* Return the relocation section associated with NAME.  HTAB is the
    bfd's elf32_arm_link_hash_entry.  */
diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h
new file mode 100644
index 0000000000..ba6c2367c4
--- /dev/null
+++ b/bfd/elf32-arm.h
@@ -0,0 +1,121 @@
+/* 32-bit ELF support for ARM
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+
+/* ARM VFP11 erratum workaround support.  */
+typedef enum
+{
+  BFD_ARM_VFP11_FIX_DEFAULT,
+  BFD_ARM_VFP11_FIX_NONE,
+  BFD_ARM_VFP11_FIX_SCALAR,
+  BFD_ARM_VFP11_FIX_VECTOR
+} bfd_arm_vfp11_fix;
+
+extern void bfd_elf32_arm_init_maps
+  (bfd *);
+
+extern void bfd_elf32_arm_set_vfp11_fix
+  (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_set_cortex_a8_fix
+  (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
+  (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_vfp11_fix_veneer_locations
+  (bfd *, struct bfd_link_info *);
+
+/* ARM STM STM32L4XX erratum workaround support.  */
+typedef enum
+{
+  BFD_ARM_STM32L4XX_FIX_NONE,
+  BFD_ARM_STM32L4XX_FIX_DEFAULT,
+  BFD_ARM_STM32L4XX_FIX_ALL
+} bfd_arm_stm32l4xx_fix;
+
+extern void bfd_elf32_arm_set_stm32l4xx_fix
+  (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan
+  (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations
+  (bfd *, struct bfd_link_info *);
+
+/* ELF ARM Interworking support.  Called from linker.  */
+extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
+  (struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_process_before_allocation
+  (bfd *, struct bfd_link_info *);
+
+struct elf32_arm_params {
+  char *thumb_entry_symbol;
+  int byteswap_code;
+  int target1_is_rel;
+  char * target2_type;
+  int fix_v4bx;
+  int use_blx;
+  bfd_arm_vfp11_fix vfp11_denorm_fix;
+  bfd_arm_stm32l4xx_fix stm32l4xx_fix;
+  int no_enum_size_warning;
+  int no_wchar_size_warning;
+  int pic_veneer;
+  int fix_cortex_a8;
+  int fix_arm1176;
+  int merge_exidx_entries;
+  int cmse_implib;
+  bfd *in_implib_bfd;
+};
+
+void bfd_elf32_arm_set_target_params
+  (bfd *, struct bfd_link_info *, struct elf32_arm_params *);
+
+extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
+  (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
+  (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_keep_private_stub_output_sections
+  (struct bfd_link_info *);
+
+extern void bfd_elf32_arm_set_byteswap_code
+  (struct bfd_link_info *, int);
+
+extern void bfd_elf32_arm_use_long_plt (void);
+
+/* ARM stub generation support.  Called from the linker.  */
+extern int elf32_arm_setup_section_lists
+  (bfd *, struct bfd_link_info *);
+extern void elf32_arm_next_input_section
+  (struct bfd_link_info *, struct bfd_section *);
+extern bfd_boolean elf32_arm_size_stubs
+  (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
+   struct bfd_section * (*) (const char *, struct bfd_section *,
+			     struct bfd_section *, unsigned int),
+   void (*) (void));
+extern bfd_boolean elf32_arm_build_stubs
+  (struct bfd_link_info *);
+
+/* ARM unwind section editing support.  */
+extern bfd_boolean elf32_arm_fix_exidx_coverage
+(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
diff --git a/bfd/pe-arm-wince.c b/bfd/pe-arm-wince.c
index d3d52ee520..733b8380f5 100644
--- a/bfd/pe-arm-wince.c
+++ b/bfd/pe-arm-wince.c
@@ -18,6 +18,9 @@
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
    MA 02110-1301, USA.  */
 
+#include "sysdep.h"
+#include "bfd.h"
+
 #define TARGET_UNDERSCORE    0
 #define USER_LABEL_PREFIX    ""
 
@@ -26,6 +29,11 @@
 #define TARGET_BIG_SYM       arm_pe_wince_be_vec
 #define TARGET_BIG_NAME      "pe-arm-wince-big"
 
+#define LOCAL_LABEL_PREFIX "."
+
+#undef  bfd_pe_print_pdata
+#define	bfd_pe_print_pdata   _bfd_pe_print_ce_compressed_pdata
+
 #define bfd_arm_allocate_interworking_sections \
   bfd_arm_wince_pe_allocate_interworking_sections
 #define bfd_arm_get_bfd_for_interworking \
@@ -33,13 +41,4 @@
 #define bfd_arm_process_before_allocation \
   bfd_arm_wince_pe_process_before_allocation
 
-#define LOCAL_LABEL_PREFIX "."
-
-#include "sysdep.h"
-#include "bfd.h"
-
-#undef  bfd_pe_print_pdata
-#define	bfd_pe_print_pdata   _bfd_pe_print_ce_compressed_pdata
-
 #include "pe-arm.c"
-
diff --git a/bfd/pe-arm.c b/bfd/pe-arm.c
index 2d1b7ead1f..4667046108 100644
--- a/bfd/pe-arm.c
+++ b/bfd/pe-arm.c
@@ -18,18 +18,6 @@
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
    MA 02110-1301, USA.  */
 
-
-/* Do this before including bfd.h, so we prototype the right functions.  */
-
-#ifndef bfd_arm_allocate_interworking_sections
-#define bfd_arm_allocate_interworking_sections \
-  bfd_armpe_allocate_interworking_sections
-#define bfd_arm_get_bfd_for_interworking \
-  bfd_armpe_get_bfd_for_interworking
-#define bfd_arm_process_before_allocation \
-  bfd_armpe_process_before_allocation
-#endif
-
 #include "sysdep.h"
 #include "bfd.h"
 
@@ -64,4 +52,13 @@
 { COFF_SECTION_NAME_PARTIAL_MATCH (".gnu.linkonce.wi."), \
   COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }
 
+#ifndef bfd_arm_allocate_interworking_sections
+#define bfd_arm_allocate_interworking_sections \
+  bfd_armpe_allocate_interworking_sections
+#define bfd_arm_get_bfd_for_interworking \
+  bfd_armpe_get_bfd_for_interworking
+#define bfd_arm_process_before_allocation \
+  bfd_armpe_process_before_allocation
+#endif
+
 #include "coff-arm.c"
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 39537f8129..cab918a49c 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* config/tc-arm.c: Include cpu-arm.h.
+
 2019-09-21  Alan Modra  <amodra@gmail.com>
 
 	* config/tc-i386.c (md_parse_option): Fix warning on vexwig assignment.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index b0f1507c36..7760d1807d 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -32,6 +32,7 @@
 #include "obstack.h"
 #include "libiberty.h"
 #include "opcode/arm.h"
+#include "cpu-arm.h"
 
 #ifdef OBJ_ELF
 #include "elf/arm.h"
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 378fcea064..f0fcd202e9 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* emultempl/armelf.em: Include elf32-arm.h.
+	* emultempl/pe.em: Move func defines later and include coff-arm.h.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* emultempl/aarch64elf.em: Include elfxx-aarch64.h.
diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em
index 0cbfcc70b3..9a1bc9a04b 100644
--- a/ld/emultempl/armelf.em
+++ b/ld/emultempl/armelf.em
@@ -27,6 +27,7 @@ fragment <<EOF
 
 #include "ldctor.h"
 #include "elf/arm.h"
+#include "elf32-arm.h"
 
 static struct elf32_arm_params params =
 {
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 150c98296f..c1932d79ad 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -37,18 +37,6 @@ fragment <<EOF
 
 #define TARGET_IS_${EMULATION_NAME}
 
-/* Do this before including bfd.h, so we prototype the right functions.  */
-
-#if defined(TARGET_IS_armpe) \
-    || defined(TARGET_IS_arm_wince_pe)
-#define bfd_arm_allocate_interworking_sections \
-	bfd_${EMULATION_NAME}_allocate_interworking_sections
-#define bfd_arm_get_bfd_for_interworking \
-	bfd_${EMULATION_NAME}_get_bfd_for_interworking
-#define bfd_arm_process_before_allocation \
-	bfd_${EMULATION_NAME}_process_before_allocation
-#endif
-
 #include "sysdep.h"
 #include "bfd.h"
 #include "bfdlink.h"
@@ -78,6 +66,17 @@ fragment <<EOF
 #include "../bfd/libcoff.h"
 #include "../bfd/libpei.h"
 
+#if defined(TARGET_IS_armpe) \
+    || defined(TARGET_IS_arm_wince_pe)
+#define bfd_arm_allocate_interworking_sections \
+	bfd_${EMULATION_NAME}_allocate_interworking_sections
+#define bfd_arm_get_bfd_for_interworking \
+	bfd_${EMULATION_NAME}_get_bfd_for_interworking
+#define bfd_arm_process_before_allocation \
+	bfd_${EMULATION_NAME}_process_before_allocation
+#include "coff-arm.h"
+#endif
+
 #include "deffile.h"
 #include "pe-dll.h"
 #include "safe-ctype.h"


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] coff bfd.h tidy
@ 2019-09-23  3:14 gdb-buildbot
  2019-09-23 10:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  3:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT aa739c59d3db95d1709b0417cdf7d082bfdea911 ***

commit aa739c59d3db95d1709b0417cdf7d082bfdea911
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:07:40 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930

    coff bfd.h tidy
    
    bfd/
            * bfd-in.h: Delete coff forward refs and move coff declaration..
            * coff-bfd.h: ..to here.
            * bfd-in2.h: Regenerate.
    binutils/
            * dlltool.c: Include coff-bfd.h.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c1f82cda92..696eeacc55 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Delete coff forward refs and move coff declaration..
+	* coff-bfd.h: ..to here.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move arm declaraions..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 124a0c2b81..a629a8430d 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -753,13 +753,3 @@ extern bfd_boolean bfd_xcoff_link_generate_rtinit
 /* XCOFF support routines for ar.  */
 extern bfd_boolean bfd_xcoff_ar_archive_set_magic
   (bfd *, char *);
-
-/* Externally visible COFF routines.  */
-
-#if defined(__STDC__) || defined(ALMOST_STDC)
-struct internal_syment;
-union internal_auxent;
-#endif
-
-extern bfd_boolean bfd_coff_set_symbol_class
-  (bfd *, struct bfd_symbol *, unsigned int);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 052a826176..e7537f7eaf 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -760,16 +760,6 @@ extern bfd_boolean bfd_xcoff_link_generate_rtinit
 /* XCOFF support routines for ar.  */
 extern bfd_boolean bfd_xcoff_ar_archive_set_magic
   (bfd *, char *);
-
-/* Externally visible COFF routines.  */
-
-#if defined(__STDC__) || defined(ALMOST_STDC)
-struct internal_syment;
-union internal_auxent;
-#endif
-
-extern bfd_boolean bfd_coff_set_symbol_class
-  (bfd *, struct bfd_symbol *, unsigned int);
 /* Extracted from init.c.  */
 unsigned int bfd_init (void);
 
diff --git a/bfd/coff-bfd.h b/bfd/coff-bfd.h
index 20c2a44e33..b88c5bee02 100644
--- a/bfd/coff-bfd.h
+++ b/bfd/coff-bfd.h
@@ -86,3 +86,6 @@ extern bfd_boolean bfd_coff_get_syment
 
 extern bfd_boolean bfd_coff_get_auxent
   (bfd *, struct bfd_symbol *, int, union internal_auxent *);
+
+extern bfd_boolean bfd_coff_set_symbol_class
+  (bfd *, struct bfd_symbol *, unsigned int);
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index a2ac2b752d..45817f41ec 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* dlltool.c: Include coff-bfd.h.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	PR 25018
diff --git a/binutils/dlltool.c b/binutils/dlltool.c
index 85304d0c37..6c4737e709 100644
--- a/binutils/dlltool.c
+++ b/binutils/dlltool.c
@@ -240,6 +240,7 @@
 #include "bucomm.h"
 #include "dlltool.h"
 #include "safe-ctype.h"
+#include "coff-bfd.h"
 
 #include <time.h>
 #include <assert.h>


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] xcoff bfd.h tidy
@ 2019-09-23  3:27 gdb-buildbot
  2019-09-23 12:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  3:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 6ea7de3237f0780065e6c17cd2d123792410c16b ***

commit 6ea7de3237f0780065e6c17cd2d123792410c16b
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:08:33 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930

    xcoff bfd.h tidy
    
    bfd/
            * bfd-in.h: Move xcoff function declarations..
            * xcofflink.h: ..to here, new file.
            * xcofflink.c: Include xcofflink.h.
            * coff-rs6000.c (bfd_xcoff_ar_archive_set_magic): Delete unused func.
            * bfd-in2.h: Regenerate.
    ld/
            * emultempl/aix.em: Include xcofflink.h.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 696eeacc55..3d30d759a1 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move xcoff function declarations..
+	* xcofflink.h: ..to here, new file.
+	* xcofflink.c: Include xcofflink.h.
+	* coff-rs6000.c (bfd_xcoff_ar_archive_set_magic): Delete unused func.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Delete coff forward refs and move coff declaration..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index a629a8430d..45858e08b9 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -725,31 +725,3 @@ extern void bfd_free_window
   (bfd_window *);
 extern bfd_boolean bfd_get_file_window
   (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
-
-/* XCOFF support routines for the linker.  */
-
-extern bfd_boolean bfd_xcoff_split_import_path
-  (bfd *, const char *, const char **, const char **);
-extern bfd_boolean bfd_xcoff_set_archive_import_path
-  (struct bfd_link_info *, bfd *, const char *);
-extern bfd_boolean bfd_xcoff_link_record_set
-  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
-extern bfd_boolean bfd_xcoff_import_symbol
-  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
-   const char *, const char *, const char *, unsigned int);
-extern bfd_boolean bfd_xcoff_export_symbol
-  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
-extern bfd_boolean bfd_xcoff_link_count_reloc
-  (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_xcoff_record_link_assignment
-  (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_xcoff_size_dynamic_sections
-  (bfd *, struct bfd_link_info *, const char *, const char *,
-   unsigned long, unsigned long, unsigned long, bfd_boolean,
-   int, bfd_boolean, unsigned int, struct bfd_section **, bfd_boolean);
-extern bfd_boolean bfd_xcoff_link_generate_rtinit
-  (bfd *, const char *, const char *, bfd_boolean);
-
-/* XCOFF support routines for ar.  */
-extern bfd_boolean bfd_xcoff_ar_archive_set_magic
-  (bfd *, char *);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index e7537f7eaf..d78fab3b6c 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -732,34 +732,6 @@ extern void bfd_free_window
   (bfd_window *);
 extern bfd_boolean bfd_get_file_window
   (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
-
-/* XCOFF support routines for the linker.  */
-
-extern bfd_boolean bfd_xcoff_split_import_path
-  (bfd *, const char *, const char **, const char **);
-extern bfd_boolean bfd_xcoff_set_archive_import_path
-  (struct bfd_link_info *, bfd *, const char *);
-extern bfd_boolean bfd_xcoff_link_record_set
-  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
-extern bfd_boolean bfd_xcoff_import_symbol
-  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
-   const char *, const char *, const char *, unsigned int);
-extern bfd_boolean bfd_xcoff_export_symbol
-  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
-extern bfd_boolean bfd_xcoff_link_count_reloc
-  (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_xcoff_record_link_assignment
-  (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_xcoff_size_dynamic_sections
-  (bfd *, struct bfd_link_info *, const char *, const char *,
-   unsigned long, unsigned long, unsigned long, bfd_boolean,
-   int, bfd_boolean, unsigned int, struct bfd_section **, bfd_boolean);
-extern bfd_boolean bfd_xcoff_link_generate_rtinit
-  (bfd *, const char *, const char *, bfd_boolean);
-
-/* XCOFF support routines for ar.  */
-extern bfd_boolean bfd_xcoff_ar_archive_set_magic
-  (bfd *, char *);
 /* Extracted from init.c.  */
 unsigned int bfd_init (void);
 
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index bdbb499a4a..86cf9e3e2a 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -1169,20 +1169,6 @@ _bfd_xcoff_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
    to take care that we are not generating the new form of archives
    on AIX 4.2 or earlier systems.  */
 
-/* XCOFF archives use this as a magic string.  Note that both strings
-   have the same length.  */
-
-/* Set the magic for archive.  */
-
-bfd_boolean
-bfd_xcoff_ar_archive_set_magic (bfd *abfd ATTRIBUTE_UNUSED,
-				char *magic ATTRIBUTE_UNUSED)
-{
-  /* Not supported yet.  */
-  return FALSE;
- /* bfd_xcoff_archive_set_magic (abfd, magic); */
-}
-
 /* PR 21786:  The PE/COFF standard does not require NUL termination for any of
    the ASCII fields in the archive headers.  So in order to be able to extract
    numerical values we provide our own versions of strtol and strtoll which
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index 52691720ae..91e0041ea1 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -28,6 +28,7 @@
 #include "libcoff.h"
 #include "libxcoff.h"
 #include "libiberty.h"
+#include "xcofflink.h"
 
 /* This file holds the XCOFF linker code.  */
 
diff --git a/bfd/xcofflink.h b/bfd/xcofflink.h
new file mode 100644
index 0000000000..5d1792e962
--- /dev/null
+++ b/bfd/xcofflink.h
@@ -0,0 +1,41 @@
+/* POWER/PowerPC XCOFF linker support.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+extern bfd_boolean bfd_xcoff_split_import_path
+  (bfd *, const char *, const char **, const char **);
+extern bfd_boolean bfd_xcoff_set_archive_import_path
+  (struct bfd_link_info *, bfd *, const char *);
+extern bfd_boolean bfd_xcoff_link_record_set
+  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
+extern bfd_boolean bfd_xcoff_import_symbol
+  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
+   const char *, const char *, const char *, unsigned int);
+extern bfd_boolean bfd_xcoff_export_symbol
+  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
+extern bfd_boolean bfd_xcoff_link_count_reloc
+  (bfd *, struct bfd_link_info *, const char *);
+extern bfd_boolean bfd_xcoff_record_link_assignment
+  (bfd *, struct bfd_link_info *, const char *);
+extern bfd_boolean bfd_xcoff_size_dynamic_sections
+  (bfd *, struct bfd_link_info *, const char *, const char *,
+   unsigned long, unsigned long, unsigned long, bfd_boolean,
+   int, bfd_boolean, unsigned int, struct bfd_section **, bfd_boolean);
+extern bfd_boolean bfd_xcoff_link_generate_rtinit
+  (bfd *, const char *, const char *, bfd_boolean);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index f0fcd202e9..5a20bf06cc 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* emultempl/aix.em: Include xcofflink.h.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* emultempl/armelf.em: Include elf32-arm.h.
diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em
index 1ce8376a52..96e84f9e62 100644
--- a/ld/emultempl/aix.em
+++ b/ld/emultempl/aix.em
@@ -55,6 +55,7 @@ fragment <<EOF
 #include "coff/xcoff.h"
 #include "libcoff.h"
 #include "libxcoff.h"
+#include "xcofflink.h"
 
 static void gld${EMULATION_NAME}_read_file (const char *, bfd_boolean);
 static void gld${EMULATION_NAME}_free (void *);


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] obsoleted bfd.h tidy
@ 2019-09-23  3:37 gdb-buildbot
  2019-09-23 13:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  3:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 530f61204cdba76413645c22065d453e814c7cd4 ***

commit 530f61204cdba76413645c22065d453e814c7cd4
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:09:07 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930

    obsoleted bfd.h tidy
    
            * bfd-in.h (bfd_sunos_get_needed_list),
            (bfd_sunos_record_link_assignment),
            (bfd_sunos_size_dynamic_sections),
            (bfd_i386linux_size_dynamic_sections),
            (bfd_sparclinux_size_dynamic_sections): Delete obsolete decls.
            * bfd-in2.h: Regenerate.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 3d30d759a1..57cefe1f78 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h (bfd_sunos_get_needed_list),
+	(bfd_sunos_record_link_assignment),
+	(bfd_sunos_size_dynamic_sections),
+	(bfd_i386linux_size_dynamic_sections),
+	(bfd_sparclinux_size_dynamic_sections): Delete obsolete decls.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move xcoff function declarations..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 45858e08b9..a01f80d023 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -682,23 +682,6 @@ extern bfd_boolean bfd_cr16_elf32_create_embedded_relocs
   (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
    char **);
 
-/* SunOS shared library support routines for the linker.  */
-
-extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
-  (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_sunos_record_link_assignment
-  (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_sunos_size_dynamic_sections
-  (bfd *, struct bfd_link_info *, struct bfd_section **,
-   struct bfd_section **, struct bfd_section **);
-
-/* Linux shared library support routines for the linker.  */
-
-extern bfd_boolean bfd_i386linux_size_dynamic_sections
-  (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_sparclinux_size_dynamic_sections
-  (bfd *, struct bfd_link_info *);
-
 /* mmap hacks */
 
 struct _bfd_window_internal;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index d78fab3b6c..47df9e37f2 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -689,23 +689,6 @@ extern bfd_boolean bfd_cr16_elf32_create_embedded_relocs
   (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
    char **);
 
-/* SunOS shared library support routines for the linker.  */
-
-extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
-  (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_sunos_record_link_assignment
-  (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_sunos_size_dynamic_sections
-  (bfd *, struct bfd_link_info *, struct bfd_section **,
-   struct bfd_section **, struct bfd_section **);
-
-/* Linux shared library support routines for the linker.  */
-
-extern bfd_boolean bfd_i386linux_size_dynamic_sections
-  (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_sparclinux_size_dynamic_sections
-  (bfd *, struct bfd_link_info *);
-
 /* mmap hacks */
 
 struct _bfd_window_internal;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] cr16 bfd.h tidy
@ 2019-09-23  3:51 gdb-buildbot
  2019-09-23 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  3:51 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ca05ca5e2d8c1628c37a335635dab4714f0d3bfe ***

commit ca05ca5e2d8c1628c37a335635dab4714f0d3bfe
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:09:47 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930

    cr16 bfd.h tidy
    
    bfd/
            * bfd-in.h: Move cr16 function declaration..
            * elf32-cr16.h: ..to here, new file.
            * elf32-cr16.c: Include elf32-cr16.h.
            * bfd-in2.h: Regenerate.
    ld/
            * emultempl/cr16elf.em: Include elf32-cr16.h.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 57cefe1f78..0b5ef9786f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move cr16 function declaration..
+	* elf32-cr16.h: ..to here, new file.
+	* elf32-cr16.c: Include elf32-cr16.h.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h (bfd_sunos_get_needed_list),
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index a01f80d023..61992feacb 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -678,10 +678,6 @@ extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
   (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
    char **);
 
-extern bfd_boolean bfd_cr16_elf32_create_embedded_relocs
-  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
-   char **);
-
 /* mmap hacks */
 
 struct _bfd_window_internal;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 47df9e37f2..257f9307cc 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -685,10 +685,6 @@ extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
   (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
    char **);
 
-extern bfd_boolean bfd_cr16_elf32_create_embedded_relocs
-  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
-   char **);
-
 /* mmap hacks */
 
 struct _bfd_window_internal;
diff --git a/bfd/elf32-cr16.c b/bfd/elf32-cr16.c
index 72642e532c..1a6bbbccda 100644
--- a/bfd/elf32-cr16.c
+++ b/bfd/elf32-cr16.c
@@ -25,6 +25,7 @@
 #include "libiberty.h"
 #include "elf-bfd.h"
 #include "elf/cr16.h"
+#include "elf32-cr16.h"
 
 /* The cr16 linker needs to keep track of the number of relocs that
    it decides to copy in check_relocs for each symbol.  This is so
diff --git a/bfd/elf32-cr16.h b/bfd/elf32-cr16.h
new file mode 100644
index 0000000000..6680c6e27d
--- /dev/null
+++ b/bfd/elf32-cr16.h
@@ -0,0 +1,22 @@
+/* BFD back-end for National Semiconductor's CR16 ELF
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+extern bfd_boolean bfd_cr16_elf32_create_embedded_relocs
+  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
+   char **);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 5a20bf06cc..60a1fd6f02 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* emultempl/cr16elf.em: Include elf32-cr16.h.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* emultempl/aix.em: Include xcofflink.h.
diff --git a/ld/emultempl/cr16elf.em b/ld/emultempl/cr16elf.em
index 9cdd356e35..eb068804f9 100644
--- a/ld/emultempl/cr16elf.em
+++ b/ld/emultempl/cr16elf.em
@@ -26,6 +26,7 @@
 fragment <<EOF
 
 #include "ldctor.h"
+#include "elf32-cr16.h"
 
 static void check_sections (bfd *, asection *, void *);
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfin bfd.h tidy
@ 2019-09-23  4:12 gdb-buildbot
  2019-09-23 14:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  4:12 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8410a6589d7fd1e02489e7ab57bda0fcba305dba ***

commit 8410a6589d7fd1e02489e7ab57bda0fcba305dba
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:10:28 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930

    bfin bfd.h tidy
    
    bfd/
            * bfd-in.h: Move bfin function declaration..
            * elf32-bfin.h: ..to here, new file.
            * elf32-bfin.c: Include elf32-bfin.h.
            * bfd-in2.h: Regenerate.
    ld/
            * emultempl/bfin.em: Include elf32-bfin.h.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0b5ef9786f..36a3c61974 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move bfin function declaration..
+	* elf32-bfin.h: ..to here, new file.
+	* elf32-bfin.c: Include elf32-bfin.h.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move cr16 function declaration..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 61992feacb..7cc35d9985 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -674,10 +674,6 @@ extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
 
 extern void bfd_elf_m68k_set_target_options (struct bfd_link_info *, int);
 
-extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
-  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
-   char **);
-
 /* mmap hacks */
 
 struct _bfd_window_internal;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 257f9307cc..424c27b53d 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -681,10 +681,6 @@ extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
 
 extern void bfd_elf_m68k_set_target_options (struct bfd_link_info *, int);
 
-extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
-  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
-   char **);
-
 /* mmap hacks */
 
 struct _bfd_window_internal;
diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c
index 6efee04c8b..c4f8874b24 100644
--- a/bfd/elf32-bfin.c
+++ b/bfd/elf32-bfin.c
@@ -25,6 +25,7 @@
 #include "elf/bfin.h"
 #include "dwarf2.h"
 #include "hashtab.h"
+#include "elf32-bfin.h"
 
 /* FUNCTION : bfin_pltpc_reloc
    ABSTRACT : TODO : figure out how to handle pltpc relocs.  */
diff --git a/bfd/elf32-bfin.h b/bfd/elf32-bfin.h
new file mode 100644
index 0000000000..1f294e8f39
--- /dev/null
+++ b/bfd/elf32-bfin.h
@@ -0,0 +1,23 @@
+/* ADI Blackfin BFD support for 32-bit ELF.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
+  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
+   char **);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 60a1fd6f02..1cea946ce4 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* emultempl/bfin.em: Include elf32-bfin.h.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* emultempl/cr16elf.em: Include elf32-cr16.h.
diff --git a/ld/emultempl/bfin.em b/ld/emultempl/bfin.em
index c6b3ae007d..75aa36b54a 100644
--- a/ld/emultempl/bfin.em
+++ b/ld/emultempl/bfin.em
@@ -25,6 +25,7 @@
 fragment <<EOF
 
 #include "elf-bfd.h"
+#include "elf32-bfin.h"
 
 /* Whether to put code in Blackfin L1 SRAM.  */
 extern bfd_boolean elf32_bfin_code_in_l1;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] m68k bfd.h tidy
@ 2019-09-23  4:13 gdb-buildbot
  2019-09-23 16:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  4:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f5c5b7c124934b464b67c7c3c53a1c62a7f4e98a ***

commit f5c5b7c124934b464b67c7c3c53a1c62a7f4e98a
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:11:29 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:22 2019 +0930

    m68k bfd.h tidy
    
    bfd/
            * bfd-in.h: Move m68k function declaration..
            * cpu-m68k.h: ..to here, new file..
            * elf32-m68k.h: ..and here, new file.
            * elf32-m68k.c: Include cpu-m68k.h and elf32-m68k.h.
            * bfd-in2.h: Regenerate.
    ld/
            * emultempl/m68kelf.em: Include elf32-m68k.h.
    opcodes/
            * m68k-dis.c: Include cpu-m68k.h

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 36a3c61974..fa67c70f7d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move m68k function declaration..
+	* cpu-m68k.h: ..to here, new file..
+	* elf32-m68k.h: ..and here, new file.
+	* elf32-m68k.c: Include cpu-m68k.h and elf32-m68k.h.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move bfin function declaration..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 7cc35d9985..d61467b593 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -664,16 +664,6 @@ _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
 extern void _bfd_fix_excluded_sec_syms
   (bfd *, struct bfd_link_info *);
 
-extern unsigned bfd_m68k_mach_to_features (int);
-
-extern int bfd_m68k_features_to_mach (unsigned);
-
-extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
-  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
-   char **);
-
-extern void bfd_elf_m68k_set_target_options (struct bfd_link_info *, int);
-
 /* mmap hacks */
 
 struct _bfd_window_internal;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 424c27b53d..4d2707621f 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -671,16 +671,6 @@ _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
 extern void _bfd_fix_excluded_sec_syms
   (bfd *, struct bfd_link_info *);
 
-extern unsigned bfd_m68k_mach_to_features (int);
-
-extern int bfd_m68k_features_to_mach (unsigned);
-
-extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
-  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
-   char **);
-
-extern void bfd_elf_m68k_set_target_options (struct bfd_link_info *, int);
-
 /* mmap hacks */
 
 struct _bfd_window_internal;
diff --git a/bfd/cpu-m68k.c b/bfd/cpu-m68k.c
index b3d3358ede..bfd32e3b20 100644
--- a/bfd/cpu-m68k.c
+++ b/bfd/cpu-m68k.c
@@ -23,6 +23,7 @@
 #include "bfd.h"
 #include "libbfd.h"
 #include "opcode/m68k.h"
+#include "cpu-m68k.h"
 
 static const bfd_arch_info_type *
 bfd_m68k_compatible (const bfd_arch_info_type *a,
diff --git a/bfd/cpu-m68k.h b/bfd/cpu-m68k.h
new file mode 100644
index 0000000000..aed97db210
--- /dev/null
+++ b/bfd/cpu-m68k.h
@@ -0,0 +1,23 @@
+/* BFD library support routines.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+extern unsigned bfd_m68k_mach_to_features (int);
+
+extern int bfd_m68k_features_to_mach (unsigned);
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index 559578d818..9b8652f67c 100644
--- a/bfd/elf32-m68k.c
+++ b/bfd/elf32-m68k.c
@@ -25,6 +25,8 @@
 #include "elf-bfd.h"
 #include "elf/m68k.h"
 #include "opcode/m68k.h"
+#include "cpu-m68k.h"
+#include "elf32-m68k.h"
 
 static bfd_boolean
 elf_m68k_discard_copies (struct elf_link_hash_entry *, void *);
diff --git a/bfd/elf32-m68k.h b/bfd/elf32-m68k.h
new file mode 100644
index 0000000000..63ce667dc2
--- /dev/null
+++ b/bfd/elf32-m68k.h
@@ -0,0 +1,25 @@
+/* Motorola 68k series support for 32-bit ELF
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
+  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
+   char **);
+
+extern void bfd_elf_m68k_set_target_options (struct bfd_link_info *, int);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 1cea946ce4..07e4611e00 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* emultempl/m68kelf.em: Include elf32-m68k.h.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* emultempl/bfin.em: Include elf32-bfin.h.
diff --git a/ld/emultempl/m68kelf.em b/ld/emultempl/m68kelf.em
index c8d9eea934..570891f883 100644
--- a/ld/emultempl/m68kelf.em
+++ b/ld/emultempl/m68kelf.em
@@ -45,6 +45,8 @@ esac
 
 fragment <<EOF
 
+#include "elf32-m68k.h"
+
 #define GOT_HANDLING_SINGLE   (0)
 #define GOT_HANDLING_NEGATIVE (1)
 #define GOT_HANDLING_MULTIGOT (2)
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 91b084ef8a..ef50402da8 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* m68k-dis.c: Include cpu-m68k.h
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* mips-dis.c: Include elfxx-mips.h.  Move "elf-bfd.h" and
diff --git a/opcodes/m68k-dis.c b/opcodes/m68k-dis.c
index 45af5ff7e2..7584541402 100644
--- a/opcodes/m68k-dis.c
+++ b/opcodes/m68k-dis.c
@@ -23,7 +23,7 @@
 #include "floatformat.h"
 #include "libiberty.h"
 #include "opintl.h"
-
+#include "cpu-m68k.h"
 #include "opcode/m68k.h"
 
 /* Local function prototypes.  */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] ecoff bfd.h tidy
@ 2019-09-23  4:36 gdb-buildbot
  2019-09-23 17:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  4:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0ba9378a2ad073524f20e9637dac8369ef06c639 ***

commit 0ba9378a2ad073524f20e9637dac8369ef06c639
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:13:26 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:22 2019 +0930

    ecoff bfd.h tidy
    
    bfd/
            * bfd-in.h: Move ecoff function declarations..
            * ecoff-bfd.h: ..to here, new file.
            * ecoff.c: Include ecoff-bfd.h.
            * ecofflink.c: Likewise.
            * elf64-alpha.c: Likewise.
            * elfxx-mips.c: Likewise.
            * bfd-in2.h: Regenerate.
    gas/
            * config/obj-ecoff.c: Include ecoff-bfd.h.
            * config/obj-elf.c: Likewise.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 62115f25c6..923adb4ea6 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h: Move ecoff function declarations..
+	* ecoff-bfd.h: ..to here, new file.
+	* ecoff.c: Include ecoff-bfd.h.
+	* ecofflink.c: Likewise.
+	* elf64-alpha.c: Likewise.
+	* elfxx-mips.c: Likewise.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h (enum notice_asneeded_action): Move to bfdlink.h.
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index de8479cf72..4d2f09f718 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -526,48 +526,6 @@ extern bfd_boolean _bfd_handle_already_linked
   (struct bfd_section *, struct bfd_section_already_linked *,
    struct bfd_link_info *);
 \f
-/* Externally visible ECOFF routines.  */
-
-extern bfd_boolean bfd_ecoff_set_gp_value
-  (bfd *abfd, bfd_vma gp_value);
-extern bfd_boolean bfd_ecoff_set_regmasks
-  (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
-   unsigned long *cprmask);
-extern void *bfd_ecoff_debug_init
-  (bfd *output_bfd, struct ecoff_debug_info *output_debug,
-   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
-extern void bfd_ecoff_debug_free
-  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
-   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_accumulate
-  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
-   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
-   struct ecoff_debug_info *input_debug,
-   const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_accumulate_other
-  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
-   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
-   struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_externals
-  (bfd *abfd, struct ecoff_debug_info *debug,
-   const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
-   bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
-   void (*set_index) (struct bfd_symbol *, bfd_size_type));
-extern bfd_boolean bfd_ecoff_debug_one_external
-  (bfd *abfd, struct ecoff_debug_info *debug,
-   const struct ecoff_debug_swap *swap, const char *name,
-   struct ecoff_extr *esym);
-extern bfd_size_type bfd_ecoff_debug_size
-  (bfd *abfd, struct ecoff_debug_info *debug,
-   const struct ecoff_debug_swap *swap);
-extern bfd_boolean bfd_ecoff_write_debug
-  (bfd *abfd, struct ecoff_debug_info *debug,
-   const struct ecoff_debug_swap *swap, file_ptr where);
-extern bfd_boolean bfd_ecoff_write_accumulated_debug
-  (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
-   const struct ecoff_debug_swap *swap,
-   struct bfd_link_info *info, file_ptr where);
-
 /* Externally visible ELF routines.  */
 
 /* Create a new BFD as if by bfd_openr.  Rather than opening a file,
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 30b2685a83..16fa462430 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -533,48 +533,6 @@ extern bfd_boolean _bfd_handle_already_linked
   (struct bfd_section *, struct bfd_section_already_linked *,
    struct bfd_link_info *);
 \f
-/* Externally visible ECOFF routines.  */
-
-extern bfd_boolean bfd_ecoff_set_gp_value
-  (bfd *abfd, bfd_vma gp_value);
-extern bfd_boolean bfd_ecoff_set_regmasks
-  (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
-   unsigned long *cprmask);
-extern void *bfd_ecoff_debug_init
-  (bfd *output_bfd, struct ecoff_debug_info *output_debug,
-   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
-extern void bfd_ecoff_debug_free
-  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
-   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_accumulate
-  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
-   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
-   struct ecoff_debug_info *input_debug,
-   const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_accumulate_other
-  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
-   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
-   struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_externals
-  (bfd *abfd, struct ecoff_debug_info *debug,
-   const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
-   bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
-   void (*set_index) (struct bfd_symbol *, bfd_size_type));
-extern bfd_boolean bfd_ecoff_debug_one_external
-  (bfd *abfd, struct ecoff_debug_info *debug,
-   const struct ecoff_debug_swap *swap, const char *name,
-   struct ecoff_extr *esym);
-extern bfd_size_type bfd_ecoff_debug_size
-  (bfd *abfd, struct ecoff_debug_info *debug,
-   const struct ecoff_debug_swap *swap);
-extern bfd_boolean bfd_ecoff_write_debug
-  (bfd *abfd, struct ecoff_debug_info *debug,
-   const struct ecoff_debug_swap *swap, file_ptr where);
-extern bfd_boolean bfd_ecoff_write_accumulated_debug
-  (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
-   const struct ecoff_debug_swap *swap,
-   struct bfd_link_info *info, file_ptr where);
-
 /* Externally visible ELF routines.  */
 
 /* Create a new BFD as if by bfd_openr.  Rather than opening a file,
diff --git a/bfd/ecoff-bfd.h b/bfd/ecoff-bfd.h
new file mode 100644
index 0000000000..00ecf010f4
--- /dev/null
+++ b/bfd/ecoff-bfd.h
@@ -0,0 +1,59 @@
+/* Externally visible ECOFF routines.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+extern bfd_boolean bfd_ecoff_set_gp_value
+  (bfd *abfd, bfd_vma gp_value);
+extern bfd_boolean bfd_ecoff_set_regmasks
+  (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
+   unsigned long *cprmask);
+extern void *bfd_ecoff_debug_init
+  (bfd *output_bfd, struct ecoff_debug_info *output_debug,
+   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
+extern void bfd_ecoff_debug_free
+  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+   const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
+extern bfd_boolean bfd_ecoff_debug_accumulate
+  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
+   struct ecoff_debug_info *input_debug,
+   const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
+extern bfd_boolean bfd_ecoff_debug_accumulate_other
+  (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+   const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
+   struct bfd_link_info *);
+extern bfd_boolean bfd_ecoff_debug_externals
+  (bfd *abfd, struct ecoff_debug_info *debug,
+   const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
+   bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
+   void (*set_index) (struct bfd_symbol *, bfd_size_type));
+extern bfd_boolean bfd_ecoff_debug_one_external
+  (bfd *abfd, struct ecoff_debug_info *debug,
+   const struct ecoff_debug_swap *swap, const char *name,
+   struct ecoff_extr *esym);
+extern bfd_size_type bfd_ecoff_debug_size
+  (bfd *abfd, struct ecoff_debug_info *debug,
+   const struct ecoff_debug_swap *swap);
+extern bfd_boolean bfd_ecoff_write_debug
+  (bfd *abfd, struct ecoff_debug_info *debug,
+   const struct ecoff_debug_swap *swap, file_ptr where);
+extern bfd_boolean bfd_ecoff_write_accumulated_debug
+  (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
+   const struct ecoff_debug_swap *swap,
+   struct bfd_link_info *info, file_ptr where);
diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index 30adba0e6d..be3d42e305 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -24,6 +24,7 @@
 #include "bfd.h"
 #include "bfdlink.h"
 #include "libbfd.h"
+#include "ecoff-bfd.h"
 #include "aout/ar.h"
 #include "aout/stab_gnu.h"
 
diff --git a/bfd/ecofflink.c b/bfd/ecofflink.c
index 47e210b56e..1345e917ac 100644
--- a/bfd/ecofflink.c
+++ b/bfd/ecofflink.c
@@ -23,6 +23,7 @@
 #include "bfd.h"
 #include "bfdlink.h"
 #include "libbfd.h"
+#include "ecoff-bfd.h"
 #include "objalloc.h"
 #include "aout/stab_gnu.h"
 #include "coff/internal.h"
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 84ec83b74a..3ea1289157 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -27,6 +27,7 @@
 #include "bfd.h"
 #include "libbfd.h"
 #include "elf-bfd.h"
+#include "ecoff-bfd.h"
 
 #include "elf/alpha.h"
 
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 496e42e7c5..3462c8b151 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -33,6 +33,7 @@
 #include "libbfd.h"
 #include "libiberty.h"
 #include "elf-bfd.h"
+#include "ecoff-bfd.h"
 #include "elfxx-mips.h"
 #include "elf/mips.h"
 #include "elf-vxworks.h"
diff --git a/gas/ChangeLog b/gas/ChangeLog
index cab918a49c..764789bca0 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* config/obj-ecoff.c: Include ecoff-bfd.h.
+	* config/obj-elf.c: Likewise.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* config/tc-arm.c: Include cpu-arm.h.
diff --git a/gas/config/obj-ecoff.c b/gas/config/obj-ecoff.c
index a5616f388e..d8e4f400d7 100644
--- a/gas/config/obj-ecoff.c
+++ b/gas/config/obj-ecoff.c
@@ -25,6 +25,7 @@
 #include "coff/internal.h"
 #include "bfd/libcoff.h"
 #include "bfd/libecoff.h"
+#include "bfd/ecoff-bfd.h"
 
 /* Almost all of the ECOFF support is actually in ecoff.c in the main
    gas directory.  This file mostly just arranges to call that one at
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 56293584a0..ee93628d70 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -33,6 +33,7 @@
 
 #ifdef NEED_ECOFF_DEBUG
 #include "ecoff.h"
+#include "bfd/ecoff-bfd.h"
 #endif
 
 #ifdef TC_ALPHA


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] elf bfd.h tidy
@ 2019-09-23  4:36 gdb-buildbot
  2019-09-23 16:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  4:36 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 0b4453c791106ab62011b59f97611f9ff21cda9f ***

commit 0b4453c791106ab62011b59f97611f9ff21cda9f
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:12:31 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:22 2019 +0930

    elf bfd.h tidy
    
    bfd/
            * bfd-in.h (enum notice_asneeded_action): Move to bfdlink.h.
            Move most other elf declarations..
            * elf-bfd.h: ..to here.
            * bfd-in2.h: Regenerate.
    include/
            * bfdlink.h (enum notice_asneeded_action): Define.
    ld/
            * deffilep.y: Include bfdlink.h.
            * ldelf.c: Likewise.
            * ldelfgen.c: Likewise.
            * ldver.c: Likewise.
            * mri.c: Likewise.
            * emultempl/irix.em: Don't include ld.h, ldmain.h, libiberty.h.
            Comment.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index fa67c70f7d..62115f25c6 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h (enum notice_asneeded_action): Move to bfdlink.h.
+	Move most other elf declarations..
+	* elf-bfd.h: ..to here.
+	* bfd-in2.h: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move m68k function declaration..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index d61467b593..de8479cf72 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -570,72 +570,6 @@ extern bfd_boolean bfd_ecoff_write_accumulated_debug
 
 /* Externally visible ELF routines.  */
 
-struct bfd_link_needed_list
-{
-  struct bfd_link_needed_list *next;
-  bfd *by;
-  const char *name;
-};
-
-enum dynamic_lib_link_class {
-  DYN_NORMAL = 0,
-  DYN_AS_NEEDED = 1,
-  DYN_DT_NEEDED = 2,
-  DYN_NO_ADD_NEEDED = 4,
-  DYN_NO_NEEDED = 8
-};
-
-enum notice_asneeded_action {
-  notice_as_needed,
-  notice_not_needed,
-  notice_needed
-};
-
-extern bfd_boolean bfd_elf_record_link_assignment
-  (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
-   bfd_boolean);
-extern struct bfd_link_needed_list *bfd_elf_get_needed_list
-  (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_elf_get_bfd_needed_list
-  (bfd *, struct bfd_link_needed_list **);
-extern bfd_boolean bfd_elf_stack_segment_size (bfd *, struct bfd_link_info *,
-					       const char *, bfd_vma);
-extern bfd_boolean bfd_elf_size_dynamic_sections
-  (bfd *, const char *, const char *, const char *, const char *, const char *,
-   const char * const *, struct bfd_link_info *, struct bfd_section **);
-extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
-  (bfd *, struct bfd_link_info *);
-extern void bfd_elf_set_dt_needed_name
-  (bfd *, const char *);
-extern const char *bfd_elf_get_dt_soname
-  (bfd *);
-extern void bfd_elf_set_dyn_lib_class
-  (bfd *, enum dynamic_lib_link_class);
-extern int bfd_elf_get_dyn_lib_class
-  (bfd *);
-extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
-  (bfd *, struct bfd_link_info *);
-extern int bfd_elf_discard_info
-  (bfd *, struct bfd_link_info *);
-extern unsigned int _bfd_elf_default_action_discarded
-  (struct bfd_section *);
-
-/* Return an upper bound on the number of bytes required to store a
-   copy of ABFD's program header table entries.  Return -1 if an error
-   occurs; bfd_get_error will return an appropriate code.  */
-extern long bfd_get_elf_phdr_upper_bound
-  (bfd *abfd);
-
-/* Copy ABFD's program header table entries to *PHDRS.  The entries
-   will be stored as an array of Elf_Internal_Phdr structures, as
-   defined in include/elf/internal.h.  To find out how large the
-   buffer needs to be, call bfd_get_elf_phdr_upper_bound.
-
-   Return the number of program header table entries read, or -1 if an
-   error occurs; bfd_get_error will return an appropriate code.  */
-extern int bfd_get_elf_phdrs
-  (bfd *abfd, void *phdrs);
-
 /* Create a new BFD as if by bfd_openr.  Rather than opening a file,
    reconstruct an ELF file by reading the segments out of remote
    memory based on the ELF file header at EHDR_VMA and the ELF program
@@ -655,9 +589,6 @@ extern bfd *bfd_elf_bfd_from_remote_memory
    int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
 			      bfd_size_type len));
 
-extern struct bfd_section *_bfd_elf_tls_setup
-  (bfd *, struct bfd_link_info *);
-
 extern struct bfd_section *
 _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
 
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 4d2707621f..30b2685a83 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -577,72 +577,6 @@ extern bfd_boolean bfd_ecoff_write_accumulated_debug
 
 /* Externally visible ELF routines.  */
 
-struct bfd_link_needed_list
-{
-  struct bfd_link_needed_list *next;
-  bfd *by;
-  const char *name;
-};
-
-enum dynamic_lib_link_class {
-  DYN_NORMAL = 0,
-  DYN_AS_NEEDED = 1,
-  DYN_DT_NEEDED = 2,
-  DYN_NO_ADD_NEEDED = 4,
-  DYN_NO_NEEDED = 8
-};
-
-enum notice_asneeded_action {
-  notice_as_needed,
-  notice_not_needed,
-  notice_needed
-};
-
-extern bfd_boolean bfd_elf_record_link_assignment
-  (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
-   bfd_boolean);
-extern struct bfd_link_needed_list *bfd_elf_get_needed_list
-  (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_elf_get_bfd_needed_list
-  (bfd *, struct bfd_link_needed_list **);
-extern bfd_boolean bfd_elf_stack_segment_size (bfd *, struct bfd_link_info *,
-					       const char *, bfd_vma);
-extern bfd_boolean bfd_elf_size_dynamic_sections
-  (bfd *, const char *, const char *, const char *, const char *, const char *,
-   const char * const *, struct bfd_link_info *, struct bfd_section **);
-extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
-  (bfd *, struct bfd_link_info *);
-extern void bfd_elf_set_dt_needed_name
-  (bfd *, const char *);
-extern const char *bfd_elf_get_dt_soname
-  (bfd *);
-extern void bfd_elf_set_dyn_lib_class
-  (bfd *, enum dynamic_lib_link_class);
-extern int bfd_elf_get_dyn_lib_class
-  (bfd *);
-extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
-  (bfd *, struct bfd_link_info *);
-extern int bfd_elf_discard_info
-  (bfd *, struct bfd_link_info *);
-extern unsigned int _bfd_elf_default_action_discarded
-  (struct bfd_section *);
-
-/* Return an upper bound on the number of bytes required to store a
-   copy of ABFD's program header table entries.  Return -1 if an error
-   occurs; bfd_get_error will return an appropriate code.  */
-extern long bfd_get_elf_phdr_upper_bound
-  (bfd *abfd);
-
-/* Copy ABFD's program header table entries to *PHDRS.  The entries
-   will be stored as an array of Elf_Internal_Phdr structures, as
-   defined in include/elf/internal.h.  To find out how large the
-   buffer needs to be, call bfd_get_elf_phdr_upper_bound.
-
-   Return the number of program header table entries read, or -1 if an
-   error occurs; bfd_get_error will return an appropriate code.  */
-extern int bfd_get_elf_phdrs
-  (bfd *abfd, void *phdrs);
-
 /* Create a new BFD as if by bfd_openr.  Rather than opening a file,
    reconstruct an ELF file by reading the segments out of remote
    memory based on the ELF file header at EHDR_VMA and the ELF program
@@ -662,9 +596,6 @@ extern bfd *bfd_elf_bfd_from_remote_memory
    int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
 			      bfd_size_type len));
 
-extern struct bfd_section *_bfd_elf_tls_setup
-  (bfd *, struct bfd_link_info *);
-
 extern struct bfd_section *
 _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
 
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 4458ff7b2a..0a83c17332 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -529,6 +529,13 @@ struct elf_sym_strtab
   unsigned long destshndx_index;
 };
 
+struct bfd_link_needed_list
+{
+  struct bfd_link_needed_list *next;
+  bfd *by;
+  const char *name;
+};
+
 /* ELF linker hash table.  */
 
 struct elf_link_hash_table
@@ -1828,6 +1835,14 @@ typedef struct elf_section_list
   struct elf_section_list *  next;
 } elf_section_list;
 
+enum dynamic_lib_link_class {
+  DYN_NORMAL = 0,
+  DYN_AS_NEEDED = 1,
+  DYN_DT_NEEDED = 2,
+  DYN_NO_ADD_NEEDED = 4,
+  DYN_NO_NEEDED = 8
+};
+
 /* Some private data is stashed away for future use using the tdata pointer
    in the bfd structure.  */
 
@@ -2287,6 +2302,37 @@ extern file_ptr _bfd_elf_assign_file_position_for_section
 extern bfd_boolean _bfd_elf_validate_reloc
   (bfd *, arelent *);
 
+extern bfd_boolean bfd_elf_record_link_assignment
+  (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
+   bfd_boolean);
+extern bfd_boolean bfd_elf_stack_segment_size (bfd *, struct bfd_link_info *,
+					       const char *, bfd_vma);
+extern bfd_boolean bfd_elf_size_dynamic_sections
+  (bfd *, const char *, const char *, const char *, const char *, const char *,
+   const char * const *, struct bfd_link_info *, struct bfd_section **);
+extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
+  (bfd *, struct bfd_link_info *);
+extern bfd_boolean bfd_elf_get_bfd_needed_list
+  (bfd *, struct bfd_link_needed_list **);
+extern struct bfd_link_needed_list *bfd_elf_get_needed_list
+  (bfd *, struct bfd_link_info *);
+extern void bfd_elf_set_dt_needed_name
+  (bfd *, const char *);
+extern const char *bfd_elf_get_dt_soname
+  (bfd *);
+extern void bfd_elf_set_dyn_lib_class
+  (bfd *, enum dynamic_lib_link_class);
+extern int bfd_elf_get_dyn_lib_class
+  (bfd *);
+extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
+  (bfd *, struct bfd_link_info *);
+extern int bfd_elf_discard_info
+  (bfd *, struct bfd_link_info *);
+extern unsigned int _bfd_elf_default_action_discarded
+  (struct bfd_section *);
+extern struct bfd_section *_bfd_elf_tls_setup
+  (bfd *, struct bfd_link_info *);
+
 extern bfd_boolean _bfd_elf_link_create_dynamic_sections
   (bfd *, struct bfd_link_info *);
 extern bfd_boolean _bfd_elf_omit_section_dynsym_default
@@ -2557,6 +2603,22 @@ extern bfd_boolean _bfd_elf_ppc_set_arch (bfd *);
 extern bfd_boolean _bfd_elf_ppc_merge_fp_attributes
   (bfd *, struct bfd_link_info *);
 
+/* Return an upper bound on the number of bytes required to store a
+   copy of ABFD's program header table entries.  Return -1 if an error
+   occurs; bfd_get_error will return an appropriate code.  */
+extern long bfd_get_elf_phdr_upper_bound
+  (bfd *abfd);
+
+/* Copy ABFD's program header table entries to *PHDRS.  The entries
+   will be stored as an array of Elf_Internal_Phdr structures, as
+   defined in include/elf/internal.h.  To find out how large the
+   buffer needs to be, call bfd_get_elf_phdr_upper_bound.
+
+   Return the number of program header table entries read, or -1 if an
+   error occurs; bfd_get_error will return an appropriate code.  */
+extern int bfd_get_elf_phdrs
+  (bfd *abfd, void *phdrs);
+
 /* Exported interface for writing elf corefile notes.  */
 extern char *elfcore_write_note
   (bfd *, char *, int *, const char *, int, const void *, int);
diff --git a/include/ChangeLog b/include/ChangeLog
index c725bfbbc7..580eeb0047 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfdlink.h (enum notice_asneeded_action): Define.
+
 2019-09-17  Maxim Blinov  <maxim.blinov@embecosm.com>
 
 	* opcode/riscv.h (riscv_insn_class): New enum.
diff --git a/include/bfdlink.h b/include/bfdlink.h
index c35469dd11..bb7909a9e2 100644
--- a/include/bfdlink.h
+++ b/include/bfdlink.h
@@ -42,6 +42,12 @@ enum bfd_link_discard
   discard_all		/* Discard all locals.  */
 };
 
+enum notice_asneeded_action {
+  notice_as_needed,
+  notice_not_needed,
+  notice_needed
+};
+
 /* Whether to generate ELF common symbols with the STT_COMMON type
    during a relocatable link.  */
 enum bfd_link_elf_stt_common
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 07e4611e00..fe27434bf2 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* deffilep.y: Include bfdlink.h.
+	* ldelf.c: Likewise.
+	* ldelfgen.c: Likewise.
+	* ldver.c: Likewise.
+	* mri.c: Likewise.
+	* emultempl/irix.em: Don't include ld.h, ldmain.h, libiberty.h.
+	Comment.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* emultempl/m68kelf.em: Include elf32-m68k.h.
diff --git a/ld/deffilep.y b/ld/deffilep.y
index 7f74157065..92116e68a8 100644
--- a/ld/deffilep.y
+++ b/ld/deffilep.y
@@ -23,6 +23,7 @@
 #include "libiberty.h"
 #include "safe-ctype.h"
 #include "bfd.h"
+#include "bfdlink.h"
 #include "ld.h"
 #include "ldmisc.h"
 #include "deffile.h"
diff --git a/ld/emultempl/irix.em b/ld/emultempl/irix.em
index ddd5fd69e5..e52c4a2d69 100644
--- a/ld/emultempl/irix.em
+++ b/ld/emultempl/irix.em
@@ -19,11 +19,10 @@
 # MA 02110-1301, USA.
 #
 
-fragment <<EOF
+# This file is sourced from elf.em, and defines extra irix specific
+# functions.
 
-#include "ld.h"
-#include "ldmain.h"
-#include "libiberty.h"
+fragment <<EOF
 
 /* The native IRIX linker will always create a DT_SONAME for shared objects.
    While this shouldn't really be necessary for ABI conformance, some versions
diff --git a/ld/ldelf.c b/ld/ldelf.c
index e43d33d432..3d12e3aa70 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -23,6 +23,7 @@
 #include "libiberty.h"
 #include "filenames.h"
 #include "safe-ctype.h"
+#include "bfdlink.h"
 #include "ld.h"
 #include "ldmain.h"
 #include "ldmisc.h"
diff --git a/ld/ldelfgen.c b/ld/ldelfgen.c
index 98bcecd89f..142a669db9 100644
--- a/ld/ldelfgen.c
+++ b/ld/ldelfgen.c
@@ -20,6 +20,7 @@
 
 #include "sysdep.h"
 #include "bfd.h"
+#include "bfdlink.h"
 #include "ld.h"
 #include "ldmain.h"
 #include "ldmisc.h"
diff --git a/ld/ldver.c b/ld/ldver.c
index fb2e52f4c5..7be0242ab2 100644
--- a/ld/ldver.c
+++ b/ld/ldver.c
@@ -21,7 +21,7 @@
 #include "sysdep.h"
 #include "bfd.h"
 #include "bfdver.h"
-
+#include "bfdlink.h"
 #include "ld.h"
 #include "ldver.h"
 #include "ldexp.h"
diff --git a/ld/mri.c b/ld/mri.c
index 37821e8f4c..7f8d7064e8 100644
--- a/ld/mri.c
+++ b/ld/mri.c
@@ -25,6 +25,7 @@
 
 #include "sysdep.h"
 #include "bfd.h"
+#include "bfdlink.h"
 #include "ld.h"
 #include "ldexp.h"
 #include "ldlang.h"


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] linker bfd.h tidy
@ 2019-09-23  4:45 gdb-buildbot
  2019-09-23 18:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  4:45 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 640197ac27920a9f0a23283a575dc71f74e8b8ab ***

commit 640197ac27920a9f0a23283a575dc71f74e8b8ab
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:14:20 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:22 2019 +0930

    linker bfd.h tidy
    
    bfd/
            * bfd-in.h (bfd_symbol, bfd_section_already_linked),
            (bfd_elf_version_tree): Delete forward declarations.
            Move other forward decls and remaining elf function decl later.
            (bfd_section_already_linked_table_init),
            (bfd_section_already_linked_table_free),
            (_bfd_handle_already_linked, _bfd_nearby_section),
            (_bfd_fix_excluded_sec_syms): Move to bfdlink.h.
    include/
            * bfdlink.h (struct bfd_section_already_linked): Forward declare.
            (bfd_section_already_linked_table_init),
            (bfd_section_already_linked_table_free),
            (_bfd_handle_already_linked, _bfd_nearby_section),
            (_bfd_fix_excluded_sec_syms): Declare.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 923adb4ea6..43544743ce 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h (bfd_symbol, bfd_section_already_linked),
+	(bfd_elf_version_tree): Delete forward declarations.
+	Move other forward decls and remaining elf function decl later.
+	(bfd_section_already_linked_table_init),
+	(bfd_section_already_linked_table_free),
+	(_bfd_handle_already_linked, _bfd_nearby_section),
+	(_bfd_fix_excluded_sec_syms): Move to bfdlink.h.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h: Move ecoff function declarations..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 4d2f09f718..d81cbb791f 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -509,49 +509,6 @@ void bfd_putl16 (bfd_vma, void *);
 bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
 void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
 
-#if defined(__STDC__) || defined(ALMOST_STDC)
-struct ecoff_debug_info;
-struct ecoff_debug_swap;
-struct ecoff_extr;
-struct bfd_symbol;
-struct bfd_link_info;
-struct bfd_link_hash_entry;
-struct bfd_section_already_linked;
-struct bfd_elf_version_tree;
-#endif
-
-extern bfd_boolean bfd_section_already_linked_table_init (void);
-extern void bfd_section_already_linked_table_free (void);
-extern bfd_boolean _bfd_handle_already_linked
-  (struct bfd_section *, struct bfd_section_already_linked *,
-   struct bfd_link_info *);
-\f
-/* Externally visible ELF routines.  */
-
-/* Create a new BFD as if by bfd_openr.  Rather than opening a file,
-   reconstruct an ELF file by reading the segments out of remote
-   memory based on the ELF file header at EHDR_VMA and the ELF program
-   headers it points to.  If non-zero, SIZE is the known extent of the
-   object.  If not null, *LOADBASEP is filled in with the difference
-   between the VMAs from which the segments were read, and the VMAs
-   the file headers (and hence BFD's idea of each section's VMA) put
-   them at.
-
-   The function TARGET_READ_MEMORY is called to copy LEN bytes from
-   the remote memory at target address VMA into the local buffer at
-   MYADDR; it should return zero on success or an `errno' code on
-   failure.  TEMPL must be a BFD for a target with the word size and
-   byte order found in the remote memory.  */
-extern bfd *bfd_elf_bfd_from_remote_memory
-  (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
-   int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
-			      bfd_size_type len));
-
-extern struct bfd_section *
-_bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
-
-extern void _bfd_fix_excluded_sec_syms
-  (bfd *, struct bfd_link_info *);
 
 /* mmap hacks */
 
@@ -579,3 +536,31 @@ extern void bfd_free_window
   (bfd_window *);
 extern bfd_boolean bfd_get_file_window
   (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
+\f
+/* Externally visible ELF routines.  */
+
+/* Create a new BFD as if by bfd_openr.  Rather than opening a file,
+   reconstruct an ELF file by reading the segments out of remote
+   memory based on the ELF file header at EHDR_VMA and the ELF program
+   headers it points to.  If non-zero, SIZE is the known extent of the
+   object.  If not null, *LOADBASEP is filled in with the difference
+   between the VMAs from which the segments were read, and the VMAs
+   the file headers (and hence BFD's idea of each section's VMA) put
+   them at.
+
+   The function TARGET_READ_MEMORY is called to copy LEN bytes from
+   the remote memory at target address VMA into the local buffer at
+   MYADDR; it should return zero on success or an `errno' code on
+   failure.  TEMPL must be a BFD for a target with the word size and
+   byte order found in the remote memory.  */
+extern bfd *bfd_elf_bfd_from_remote_memory
+  (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
+   int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
+			      bfd_size_type len));
+
+/* Forward declarations.  */
+struct ecoff_debug_info;
+struct ecoff_debug_swap;
+struct ecoff_extr;
+struct bfd_link_info;
+struct bfd_link_hash_entry;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 16fa462430..1c468dc68b 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -516,49 +516,6 @@ void bfd_putl16 (bfd_vma, void *);
 bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
 void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
 
-#if defined(__STDC__) || defined(ALMOST_STDC)
-struct ecoff_debug_info;
-struct ecoff_debug_swap;
-struct ecoff_extr;
-struct bfd_symbol;
-struct bfd_link_info;
-struct bfd_link_hash_entry;
-struct bfd_section_already_linked;
-struct bfd_elf_version_tree;
-#endif
-
-extern bfd_boolean bfd_section_already_linked_table_init (void);
-extern void bfd_section_already_linked_table_free (void);
-extern bfd_boolean _bfd_handle_already_linked
-  (struct bfd_section *, struct bfd_section_already_linked *,
-   struct bfd_link_info *);
-\f
-/* Externally visible ELF routines.  */
-
-/* Create a new BFD as if by bfd_openr.  Rather than opening a file,
-   reconstruct an ELF file by reading the segments out of remote
-   memory based on the ELF file header at EHDR_VMA and the ELF program
-   headers it points to.  If non-zero, SIZE is the known extent of the
-   object.  If not null, *LOADBASEP is filled in with the difference
-   between the VMAs from which the segments were read, and the VMAs
-   the file headers (and hence BFD's idea of each section's VMA) put
-   them at.
-
-   The function TARGET_READ_MEMORY is called to copy LEN bytes from
-   the remote memory at target address VMA into the local buffer at
-   MYADDR; it should return zero on success or an `errno' code on
-   failure.  TEMPL must be a BFD for a target with the word size and
-   byte order found in the remote memory.  */
-extern bfd *bfd_elf_bfd_from_remote_memory
-  (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
-   int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
-			      bfd_size_type len));
-
-extern struct bfd_section *
-_bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
-
-extern void _bfd_fix_excluded_sec_syms
-  (bfd *, struct bfd_link_info *);
 
 /* mmap hacks */
 
@@ -586,6 +543,34 @@ extern void bfd_free_window
   (bfd_window *);
 extern bfd_boolean bfd_get_file_window
   (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
+\f
+/* Externally visible ELF routines.  */
+
+/* Create a new BFD as if by bfd_openr.  Rather than opening a file,
+   reconstruct an ELF file by reading the segments out of remote
+   memory based on the ELF file header at EHDR_VMA and the ELF program
+   headers it points to.  If non-zero, SIZE is the known extent of the
+   object.  If not null, *LOADBASEP is filled in with the difference
+   between the VMAs from which the segments were read, and the VMAs
+   the file headers (and hence BFD's idea of each section's VMA) put
+   them at.
+
+   The function TARGET_READ_MEMORY is called to copy LEN bytes from
+   the remote memory at target address VMA into the local buffer at
+   MYADDR; it should return zero on success or an `errno' code on
+   failure.  TEMPL must be a BFD for a target with the word size and
+   byte order found in the remote memory.  */
+extern bfd *bfd_elf_bfd_from_remote_memory
+  (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
+   int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
+			      bfd_size_type len));
+
+/* Forward declarations.  */
+struct ecoff_debug_info;
+struct ecoff_debug_swap;
+struct ecoff_extr;
+struct bfd_link_info;
+struct bfd_link_hash_entry;
 /* Extracted from init.c.  */
 unsigned int bfd_init (void);
 
diff --git a/include/ChangeLog b/include/ChangeLog
index 580eeb0047..85405429e5 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* bfdlink.h (struct bfd_section_already_linked): Forward declare.
+	(bfd_section_already_linked_table_init),
+	(bfd_section_already_linked_table_free),
+	(_bfd_handle_already_linked, _bfd_nearby_section),
+	(_bfd_fix_excluded_sec_syms): Declare.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfdlink.h (enum notice_asneeded_action): Define.
diff --git a/include/bfdlink.h b/include/bfdlink.h
index bb7909a9e2..68fc17f55e 100644
--- a/include/bfdlink.h
+++ b/include/bfdlink.h
@@ -858,6 +858,20 @@ struct bfd_link_order_reloc
 /* Allocate a new link_order for a section.  */
 extern struct bfd_link_order *bfd_new_link_order (bfd *, asection *);
 
+struct bfd_section_already_linked;
+
+extern bfd_boolean bfd_section_already_linked_table_init (void);
+extern void bfd_section_already_linked_table_free (void);
+extern bfd_boolean _bfd_handle_already_linked
+  (struct bfd_section *, struct bfd_section_already_linked *,
+   struct bfd_link_info *);
+
+extern struct bfd_section *_bfd_nearby_section
+  (bfd *, struct bfd_section *, bfd_vma);
+
+extern void _bfd_fix_excluded_sec_syms
+  (bfd *, struct bfd_link_info *);
+
 /* These structures are used to describe version information for the
    ELF linker.  These structures could be manipulated entirely inside
    BFD, but it would be a pain.  Instead, the regular linker sets up


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] bfd Makefile update
@ 2019-09-23  5:57 gdb-buildbot
  2019-09-23 19:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23  5:57 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b06252c2b1972d31d3e263ba4a7e79aecec73255 ***

commit b06252c2b1972d31d3e263ba4a7e79aecec73255
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:15:02 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:22 2019 +0930

    bfd Makefile update
    
            * Makefile.am (SOURCE_HFILES): Add many missing .h files.
            * Makefile.in: Regenerate.
            * po/SRC-POTFILES.in: Regenerate.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 43544743ce..1da5d0d48c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* Makefile.am (SOURCE_HFILES): Add many missing .h files.
+	* Makefile.in: Regenerate.
+	* po/SRC-POTFILES.in: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in.h (bfd_symbol, bfd_section_already_linked),
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 4703955ee4..f31a734599 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -684,19 +684,35 @@ BUILD_CFILES = \
 
 CFILES = $(SOURCE_CFILES) $(BUILD_CFILES)
 
-## This is a list of all .h files which are in the source tree.
+## This is a list of all .h files in the source tree minus those that
+## are processed to produce other .h files
 SOURCE_HFILES = \
-	aout-target.h aoutx.h coffcode.h coffswap.h ecoffswap.h \
-	elf-bfd.h elf-hppa.h elf-linux-core.h elf32-hppa.h \
-	elf64-hppa.h elfcode.h elfcore.h \
+	aout-target.h aoutx.h arc-got.h arc-plt.h \
+	coff-arm.h coff-bfd.h coffcode.h coffswap.h \
+	cpu-aarch64.h cpu-arm.h cpu-h8300.h cpu-m68k.h \
+	ecoff-bfd.h ecoffswap.h \
+	elf32-arm.h elf32-avr.h elf32-bfin.h elf32-cr16.h elf32-csky.h \
+	elf32-dlx.h elf32-hppa.h elf32-m68hc1x.h elf32-m68k.h \
+	elf32-metag.h elf32-nds32.h elf32-nios2.h elf32-ppc.h \
+	elf32-rx.h elf32-score.h elf32-sh-relocs.h elf32-spu.h \
+	elf32-tic6x.h elf32-tilegx.h elf32-tilepro.h elf32-v850.h \
+	elf64-hppa.h elf64-ppc.h elf64-tilegx.h \
+	elf-bfd.h elfcode.h elfcore.h elf-hppa.h elf-linker-x86.h \
+	elf-linux-core.h elf-nacl.h elf-s390.h elf-vxworks.h \
+	elfxx-aarch64.h elfxx-ia64.h elfxx-mips.h elfxx-riscv.h \
+	elfxx-sparc.h elfxx-tilegx.h elfxx-x86.h \
 	genlink.h go32stub.h \
 	libaout.h libbfd.h libcoff.h libecoff.h libhppa.h \
-	libpei.h libxcoff.h mach-o.h \
+	libpei.h libxcoff.h \
+	mach-o.h \
 	netbsd.h ns32k.h \
-	pef.h pef-traceback.h peicode.h som.h version.h \
-	vms.h xsym.h
+	pef.h pef-traceback.h peicode.h plugin.h \
+	som.h sysdep.h \
+	version.h vms.h \
+	wasm-module.h \
+	xcofflink.h xsym.h
 
-## ... and all .h files which are in the build tree.
+## ... and .h files which are in the build tree, minus config.h and bfd.h
 BUILD_HFILES = \
 	bfdver.h elf32-target.h elf64-target.h targmatch.h bfd_stdint.h
 
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 9c14721fd8..c1cd371852 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -1108,15 +1108,30 @@ BUILD_CFILES = \
 
 CFILES = $(SOURCE_CFILES) $(BUILD_CFILES)
 SOURCE_HFILES = \
-	aout-target.h aoutx.h coffcode.h coffswap.h ecoffswap.h \
-	elf-bfd.h elf-hppa.h elf-linux-core.h elf32-hppa.h \
-	elf64-hppa.h elfcode.h elfcore.h \
+	aout-target.h aoutx.h arc-got.h arc-plt.h \
+	coff-arm.h coff-bfd.h coffcode.h coffswap.h \
+	cpu-aarch64.h cpu-arm.h cpu-h8300.h cpu-m68k.h \
+	ecoff-bfd.h ecoffswap.h \
+	elf32-arm.h elf32-avr.h elf32-bfin.h elf32-cr16.h elf32-csky.h \
+	elf32-dlx.h elf32-hppa.h elf32-m68hc1x.h elf32-m68k.h \
+	elf32-metag.h elf32-nds32.h elf32-nios2.h elf32-ppc.h \
+	elf32-rx.h elf32-score.h elf32-sh-relocs.h elf32-spu.h \
+	elf32-tic6x.h elf32-tilegx.h elf32-tilepro.h elf32-v850.h \
+	elf64-hppa.h elf64-ppc.h elf64-tilegx.h \
+	elf-bfd.h elfcode.h elfcore.h elf-hppa.h elf-linker-x86.h \
+	elf-linux-core.h elf-nacl.h elf-s390.h elf-vxworks.h \
+	elfxx-aarch64.h elfxx-ia64.h elfxx-mips.h elfxx-riscv.h \
+	elfxx-sparc.h elfxx-tilegx.h elfxx-x86.h \
 	genlink.h go32stub.h \
 	libaout.h libbfd.h libcoff.h libecoff.h libhppa.h \
-	libpei.h libxcoff.h mach-o.h \
+	libpei.h libxcoff.h \
+	mach-o.h \
 	netbsd.h ns32k.h \
-	pef.h pef-traceback.h peicode.h som.h version.h \
-	vms.h xsym.h
+	pef.h pef-traceback.h peicode.h plugin.h \
+	som.h sysdep.h \
+	version.h vms.h \
+	wasm-module.h \
+	xcofflink.h xsym.h
 
 BUILD_HFILES = \
 	bfdver.h elf32-target.h elf64-target.h targmatch.h bfd_stdint.h
diff --git a/bfd/po/SRC-POTFILES.in b/bfd/po/SRC-POTFILES.in
index f869c58be3..1c79d72ac4 100644
--- a/bfd/po/SRC-POTFILES.in
+++ b/bfd/po/SRC-POTFILES.in
@@ -7,6 +7,8 @@ aout-tic30.c
 aout32.c
 aout64.c
 aoutx.h
+arc-got.h
+arc-plt.h
 archive.c
 archive64.c
 archures.c
@@ -18,7 +20,9 @@ cache.c
 cf-i386lynx.c
 cisco-core.c
 coff-alpha.c
+coff-arm.h
 coff-bfd.c
+coff-bfd.h
 coff-go32.c
 coff-i386.c
 coff-mips.c
@@ -40,9 +44,11 @@ coffswap.h
 compress.c
 corefile.c
 cpu-aarch64.c
+cpu-aarch64.h
 cpu-alpha.c
 cpu-arc.c
 cpu-arm.c
+cpu-arm.h
 cpu-avr.c
 cpu-bfin.c
 cpu-bpf.c
@@ -59,6 +65,7 @@ cpu-fr30.c
 cpu-frv.c
 cpu-ft32.c
 cpu-h8300.c
+cpu-h8300.h
 cpu-hppa.c
 cpu-i386.c
 cpu-ia64.c
@@ -75,6 +82,7 @@ cpu-m32r.c
 cpu-m68hc11.c
 cpu-m68hc12.c
 cpu-m68k.c
+cpu-m68k.h
 cpu-m9s12x.c
 cpu-m9s12xg.c
 cpu-mcore.c
@@ -126,6 +134,7 @@ cpu-z80.c
 cpu-z8k.c
 dwarf1.c
 dwarf2.c
+ecoff-bfd.h
 ecoff.c
 ecofflink.c
 ecoffswap.h
@@ -134,27 +143,37 @@ elf-bfd.h
 elf-eh-frame.c
 elf-hppa.h
 elf-ifunc.c
+elf-linker-x86.h
 elf-linux-core.h
 elf-m10200.c
 elf-m10300.c
 elf-nacl.c
+elf-nacl.h
 elf-properties.c
+elf-s390.h
 elf-strtab.c
 elf-vxworks.c
+elf-vxworks.h
 elf.c
 elf32-am33lin.c
 elf32-arc.c
 elf32-arm.c
+elf32-arm.h
 elf32-avr.c
+elf32-avr.h
 elf32-bfin.c
+elf32-bfin.h
 elf32-cr16.c
+elf32-cr16.h
 elf32-cr16c.c
 elf32-cris.c
 elf32-crx.c
 elf32-csky.c
+elf32-csky.h
 elf32-d10v.c
 elf32-d30v.c
 elf32-dlx.c
+elf32-dlx.h
 elf32-epiphany.c
 elf32-fr30.c
 elf32-frv.c
@@ -172,34 +191,48 @@ elf32-m32r.c
 elf32-m68hc11.c
 elf32-m68hc12.c
 elf32-m68hc1x.c
+elf32-m68hc1x.h
 elf32-m68k.c
+elf32-m68k.h
 elf32-mcore.c
 elf32-mep.c
 elf32-metag.c
+elf32-metag.h
 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-nios2.h
 elf32-or1k.c
 elf32-pj.c
 elf32-ppc.c
+elf32-ppc.h
 elf32-pru.c
 elf32-rl78.c
 elf32-rx.c
+elf32-rx.h
 elf32-s12z.c
 elf32-s390.c
 elf32-score.c
+elf32-score.h
 elf32-score7.c
+elf32-sh-relocs.h
 elf32-sh.c
 elf32-sparc.c
 elf32-spu.c
+elf32-spu.h
 elf32-tic6x.c
+elf32-tic6x.h
 elf32-tilegx.c
+elf32-tilegx.h
 elf32-tilepro.c
+elf32-tilepro.h
 elf32-v850.c
+elf32-v850.h
 elf32-vax.c
 elf32-visium.c
 elf32-wasm32.c
@@ -218,9 +251,11 @@ elf64-mips.c
 elf64-mmix.c
 elf64-nfp.c
 elf64-ppc.c
+elf64-ppc.h
 elf64-s390.c
 elf64-sparc.c
 elf64-tilegx.c
+elf64-tilegx.h
 elf64-x86-64.c
 elf64.c
 elfcode.h
@@ -228,13 +263,20 @@ elfcore.h
 elflink.c
 elfn32-mips.c
 elfxx-aarch64.c
+elfxx-aarch64.h
 elfxx-ia64.c
+elfxx-ia64.h
 elfxx-mips.c
+elfxx-mips.h
 elfxx-riscv.c
+elfxx-riscv.h
 elfxx-sparc.c
+elfxx-sparc.h
 elfxx-tilegx.c
+elfxx-tilegx.h
 elfxx-x86.c
 elfxx-x86.c
+elfxx-x86.h
 format.c
 genlink.h
 go32stub.h
@@ -293,6 +335,7 @@ pei-sh.c
 pei-x86_64.c
 peicode.h
 plugin.c
+plugin.h
 ppcboot.c
 reloc.c
 reloc16.c
@@ -306,6 +349,7 @@ srec.c
 stab-syms.c
 stabs.c
 syms.c
+sysdep.h
 targets.c
 tekhex.c
 trad-core.c
@@ -318,7 +362,9 @@ vms-lib.c
 vms-misc.c
 vms.h
 wasm-module.c
+wasm-module.h
 xcofflink.c
+xcofflink.h
 xsym.c
 xsym.h
 xtensa-isa.c


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PowerPC64 dynamic symbol tweaks
@ 2019-09-23 15:16 gdb-buildbot
  2019-09-23 20:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23 15:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ec73ddcd43b588924c95f1a997351314ddf84e39 ***

commit ec73ddcd43b588924c95f1a997351314ddf84e39
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 16:06:22 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 23:49:25 2019 +0930

    PowerPC64 dynamic symbol tweaks
    
    In check_relocs, bfd_link_pic true means ld is producing a shared
    library or a position independent executable.  !bfd_link_pic means a
    fixed position (ie. static) executable since the relocatable linking
    case is excluded.  So it is appropriate to continue using bfd_link_pic
    when testing whether non-pcrelative relocations should be dynamic, and
    !bfd_link_pic for the special case of ifunc in static executables.
    However, -Bsymbolic shouldn't affect PIEs (they are executables so
    none of their symbols should be overridden) and PIEs can support copy
    relocations, thus bfd_link_executable should be used in those cases
    rather than bfd_link_pic.
    
    I've also removed the test of ELIMINATE_COPY_RELOCS in check_relocs.
    We can sort out what to do regarding copy relocs later, which allows
    the code in check_relocs to be simplified.
    
            * elf64-ppc.c (ppc64_elf_check_relocs): Use bfd_link_executable
            in choosing between different actions for shared library and
            non-shared library cases.  Delete ELIMINATE_COPY_RELOCS test.
            (dec_dynrel_count): Likewise.  Account for ifunc special case.
            (ppc64_elf_adjust_dynamic_symbol): Copy relocs are for executables,
            not non-pic.
            (allocate_dynrelocs): Comment fixes.  Delete ELIMINATE_COPY_RELOCS
            test.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1da5d0d48c..ac0296482b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-23  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_check_relocs): Use bfd_link_executable
+	in choosing between different actions for shared library and
+	non-shared library cases.  Delete ELIMINATE_COPY_RELOCS test.
+	(dec_dynrel_count): Likewise.  Account for ifunc special case.
+	(ppc64_elf_adjust_dynamic_symbol): Copy relocs are for executables,
+	not non-pic.
+	(allocate_dynrelocs): Comment fixes.  Delete ELIMINATE_COPY_RELOCS
+	test.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* Makefile.am (SOURCE_HFILES): Add many missing .h files.
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index ed8077586b..d5a46dbf21 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -4836,7 +4836,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	case R_PPC64_TOC16_HA:
 	case R_PPC64_TOC16_LO_DS:
 	  sec->has_toc_reloc = 1;
-	  if (h != NULL && !bfd_link_pic (info))
+	  if (h != NULL && bfd_link_executable (info))
 	    {
 	      /* We may need a copy reloc.  */
 	      h->non_got_ref = 1;
@@ -5076,7 +5076,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	case R_PPC64_UADDR32:
 	case R_PPC64_UADDR64:
 	case R_PPC64_TOC:
-	  if (h != NULL && !bfd_link_pic (info))
+	  if (h != NULL && bfd_link_executable (info))
 	    /* We may need a copy reloc.  */
 	    h->non_got_ref = 1;
 
@@ -5106,17 +5106,14 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	     dynamic library if we manage to avoid copy relocs for the
 	     symbol.  */
 	dodyn:
-	  if ((bfd_link_pic (info)
-	       && (must_be_dyn_reloc (info, r_type)
-		   || (h != NULL
-		       && (!SYMBOLIC_BIND (info, h)
-			   || h->root.type == bfd_link_hash_defweak
-			   || !h->def_regular))))
-	      || (ELIMINATE_COPY_RELOCS
-		  && !bfd_link_pic (info)
-		  && h != NULL
-		  && (h->root.type == bfd_link_hash_defweak
-		      || !h->def_regular))
+	  if ((h != NULL
+	       && (h->root.type == bfd_link_hash_defweak
+		   || !h->def_regular))
+	      || (h != NULL
+		  && !bfd_link_executable (info)
+		  && !SYMBOLIC_BIND (info, h))
+	      || (bfd_link_pic (info)
+		  && must_be_dyn_reloc (info, r_type))
 	      || (!bfd_link_pic (info)
 		  && ifunc != NULL))
 	    {
@@ -6425,7 +6422,7 @@ ppc64_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
      only references to the symbol are via the global offset table.
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
-  if (bfd_link_pic (info))
+  if (!bfd_link_executable (info))
     return TRUE;
 
   /* If there are no references to this symbol that do not use the
@@ -6904,17 +6901,18 @@ dec_dynrel_count (bfd_vma r_info,
 	return FALSE;
     }
 
-  if ((bfd_link_pic (info)
-       && (must_be_dyn_reloc (info, r_type)
-	   || (h != NULL
-	       && (!SYMBOLIC_BIND (info, h)
-		   || h->root.type == bfd_link_hash_defweak
-		   || !h->def_regular))))
-      || (ELIMINATE_COPY_RELOCS
-	  && !bfd_link_pic (info)
-	  && h != NULL
-	  && (h->root.type == bfd_link_hash_defweak
-	      || !h->def_regular)))
+  if ((h != NULL
+       && (h->root.type == bfd_link_hash_defweak
+	   || !h->def_regular))
+      || (h != NULL
+	  && !bfd_link_executable (info)
+	  && !SYMBOLIC_BIND (info, h))
+      || (bfd_link_pic (info)
+	  && must_be_dyn_reloc (info, r_type))
+      || (!bfd_link_pic (info)
+	  && (h != NULL
+	      ? h->type == STT_GNU_IFUNC
+	      : ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)))
     ;
   else
     return TRUE;
@@ -9403,7 +9401,8 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
   for (gent = h->got.glist; gent != NULL; gent = gent->next)
     if (!gent->is_indirect)
       {
-	/* Make sure this symbol is output as a dynamic symbol.  */
+	/* Ensure we catch all the cases where this symbol should
+	   be made dynamic.  */
 	if (!ensure_undef_dynamic (info, h))
 	  return FALSE;
 
@@ -9438,7 +9437,6 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
 	 be defined in regular objects.  For the normal shared case,
 	 discard space for relocs that have become local due to symbol
 	 visibility changes.  */
-
       if (bfd_link_pic (info))
 	{
 	  /* Relocs that use pc_count are those that appear on a call
@@ -9463,24 +9461,27 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
 
 	  if (eh->dyn_relocs != NULL)
 	    {
-	      /* Make sure this symbol is output as a dynamic symbol.  */
+	      /* Ensure we catch all the cases where this symbol
+		 should be made dynamic.  */
 	      if (!ensure_undef_dynamic (info, h))
 		return FALSE;
 	    }
 	}
-      else if (ELIMINATE_COPY_RELOCS && h->type != STT_GNU_IFUNC)
+
+      /* For a fixed position executable, discard space for
+	 relocs against symbols which are not dynamic.  */
+      else if (h->type != STT_GNU_IFUNC)
 	{
-	  /* For the non-pic case, discard space for relocs against
-	     symbols which turn out to need copy relocs or are not
-	     dynamic.  */
 	  if (h->dynamic_adjusted
 	      && !h->def_regular
 	      && !ELF_COMMON_DEF_P (h))
 	    {
-	      /* Make sure this symbol is output as a dynamic symbol.  */
+	      /* Ensure we catch all the cases where this symbol
+		 should be made dynamic.  */
 	      if (!ensure_undef_dynamic (info, h))
 		return FALSE;
 
+	      /* But if that didn't work out, discard dynamic relocs.  */
 	      if (h->dynindx == -1)
 		eh->dyn_relocs = NULL;
 	    }


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Make ada_decode not use a static buffer
@ 2019-09-23 19:29 gdb-buildbot
  2019-09-23 21:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23 19:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT f945dedfd3512bfbca0f1405c8ea85684980e69a ***

commit f945dedfd3512bfbca0f1405c8ea85684980e69a
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Wed Aug 28 15:40:31 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Mon Sep 23 13:36:34 2019 -0500

    Make ada_decode not use a static buffer
    
    This makes it safer to use in general, and also allows using it on a
    background thread in the future.
    
    Inspired by tromey's patch at:
    https://github.com/tromey/gdb/commit/1226cbdfa436297a5dec054d94592c45891afa93
    (however, implemented in a different way)
    
    gdb/ChangeLog:
    
    2019-09-23  Christian Biesinger  <cbiesinger@google.com>
    
            * ada-exp.y (write_object_remaining): Update.
            * ada-lang.c (ada_decode): Return a std::string instead of a char*
            and eliminate the static buffer.
            (ada_decode_symbol): Update.
            (ada_la_decode): Update.
            (ada_sniff_from_mangled_name): Update.
            (is_valid_name_for_wild_match): Update.
            (ada_lookup_name_info::matches): Update and simplify.
            (name_matches_regex): Update.
            (ada_add_global_exceptions): Update.
            * ada-lang.h (ada_decode): Update signature.
            * ada-varobj.c (ada_varobj_describe_simple_array_child): Update.
            * dwarf-index-write.c (debug_names::insert): Update.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4374348c8d..33951b88c6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,19 @@
+2019-09-23  Christian Biesinger  <cbiesinger@google.com>
+
+	* ada-exp.y (write_object_remaining): Update.
+	* ada-lang.c (ada_decode): Return a std::string instead of a char*
+	and eliminate the static buffer.
+	(ada_decode_symbol): Update.
+	(ada_la_decode): Update.
+	(ada_sniff_from_mangled_name): Update.
+	(is_valid_name_for_wild_match): Update.
+	(ada_lookup_name_info::matches): Update and simplify.
+	(name_matches_regex): Update.
+	(ada_add_global_exceptions): Update.
+	* ada-lang.h (ada_decode): Update signature.
+	* ada-varobj.c (ada_varobj_describe_simple_array_child): Update.
+	* dwarf-index-write.c (debug_names::insert): Update.
+
 2019-09-21  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* solib-svr4.c (svr4_iterate_over_objfiles_in_search_order): Fix
diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y
index c8a7b9c9c7..160e64bc05 100644
--- a/gdb/ada-exp.y
+++ b/gdb/ada-exp.y
@@ -816,7 +816,7 @@ write_object_renaming (struct parser_state *par_state,
 			  renamed_entity_len);
   ada_lookup_encoded_symbol (name, orig_left_context, VAR_DOMAIN, &sym_info);
   if (sym_info.symbol == NULL)
-    error (_("Could not find renamed variable: %s"), ada_decode (name));
+    error (_("Could not find renamed variable: %s"), ada_decode (name).c_str ());
   else if (SYMBOL_CLASS (sym_info.symbol) == LOC_TYPEDEF)
     /* We have a renaming of an old-style renaming symbol.  Don't
        trust the block information.  */
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index c34733e754..063b98bde5 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -1105,22 +1105,16 @@ ada_remove_po_subprogram_suffix (const char *encoded, int *len)
 
 /* If ENCODED follows the GNAT entity encoding conventions, then return
    the decoded form of ENCODED.  Otherwise, return "<%s>" where "%s" is
-   replaced by ENCODED.
+   replaced by ENCODED.  */
 
-   The resulting string is valid until the next call of ada_decode.
-   If the string is unchanged by decoding, the original string pointer
-   is returned.  */
-
-const char *
+std::string
 ada_decode (const char *encoded)
 {
   int i, j;
   int len0;
   const char *p;
-  char *decoded;
   int at_start_name;
-  static char *decoding_buffer = NULL;
-  static size_t decoding_buffer_size = 0;
+  std::string decoded;
 
   /* With function descriptors on PPC64, the value of a symbol named
      ".FN", if it exists, is the entry point of the function "FN".  */
@@ -1179,8 +1173,7 @@ ada_decode (const char *encoded)
 
   /* Make decoded big enough for possible expansion by operator name.  */
 
-  GROW_VECT (decoding_buffer, decoding_buffer_size, 2 * len0 + 1);
-  decoded = decoding_buffer;
+  decoded.resize (2 * len0 + 1, 'X');
 
   /* Remove trailing __{digit}+ or trailing ${digit}+.  */
 
@@ -1217,7 +1210,7 @@ ada_decode (const char *encoded)
                             op_len - 1) == 0)
                   && !isalnum (encoded[i + op_len]))
                 {
-                  strcpy (decoded + j, ada_opname_table[k].decoded);
+                  strcpy (&decoded.front() + j, ada_opname_table[k].decoded);
                   at_start_name = 0;
                   i += op_len;
                   j += strlen (ada_opname_table[k].decoded);
@@ -1338,27 +1331,22 @@ ada_decode (const char *encoded)
           j += 1;
         }
     }
-  decoded[j] = '\000';
+  decoded.resize (j);
 
   /* Decoded names should never contain any uppercase character.
      Double-check this, and abort the decoding if we find one.  */
 
-  for (i = 0; decoded[i] != '\0'; i += 1)
+  for (i = 0; i < decoded.length(); ++i)
     if (isupper (decoded[i]) || decoded[i] == ' ')
       goto Suppress;
 
-  if (strcmp (decoded, encoded) == 0)
-    return encoded;
-  else
-    return decoded;
+  return decoded;
 
 Suppress:
-  GROW_VECT (decoding_buffer, decoding_buffer_size, strlen (encoded) + 3);
-  decoded = decoding_buffer;
   if (encoded[0] == '<')
-    strcpy (decoded, encoded);
+    decoded = encoded;
   else
-    xsnprintf (decoded, decoding_buffer_size, "<%s>", encoded);
+    decoded = '<' + std::string(encoded) + '>';
   return decoded;
 
 }
@@ -1389,13 +1377,13 @@ ada_decode_symbol (const struct general_symbol_info *arg)
 
   if (!gsymbol->ada_mangled)
     {
-      const char *decoded = ada_decode (gsymbol->name);
+      std::string decoded = ada_decode (gsymbol->name);
       struct obstack *obstack = gsymbol->language_specific.obstack;
 
       gsymbol->ada_mangled = 1;
 
       if (obstack != NULL)
-	*resultp = obstack_strdup (obstack, decoded);
+	*resultp = obstack_strdup (obstack, decoded.c_str ());
       else
         {
 	  /* Sometimes, we can't find a corresponding objfile, in
@@ -1404,10 +1392,10 @@ ada_decode_symbol (const struct general_symbol_info *arg)
 	     significant memory leak (FIXME).  */
 
           char **slot = (char **) htab_find_slot (decoded_names_store,
-                                                  decoded, INSERT);
+                                                  decoded.c_str (), INSERT);
 
           if (*slot == NULL)
-            *slot = xstrdup (decoded);
+            *slot = xstrdup (decoded.c_str ());
           *resultp = *slot;
         }
     }
@@ -1418,7 +1406,7 @@ ada_decode_symbol (const struct general_symbol_info *arg)
 static char *
 ada_la_decode (const char *encoded, int options)
 {
-  return xstrdup (ada_decode (encoded));
+  return xstrdup (ada_decode (encoded).c_str ());
 }
 
 /* Implement la_sniff_from_mangled_name for Ada.  */
@@ -1426,11 +1414,11 @@ ada_la_decode (const char *encoded, int options)
 static int
 ada_sniff_from_mangled_name (const char *mangled, char **out)
 {
-  const char *demangled = ada_decode (mangled);
+  std::string demangled = ada_decode (mangled);
 
   *out = NULL;
 
-  if (demangled != mangled && demangled != NULL && demangled[0] != '<')
+  if (demangled != mangled && demangled[0] != '<')
     {
       /* Set the gsymbol language to Ada, but still return 0.
 	 Two reasons for that:
@@ -5993,7 +5981,7 @@ is_name_suffix (const char *str)
 static int
 is_valid_name_for_wild_match (const char *name0)
 {
-  const char *decoded_name = ada_decode (name0);
+  std::string decoded_name = ada_decode (name0);
   int i;
 
   /* If the decoded name starts with an angle bracket, it means that
@@ -6233,19 +6221,16 @@ ada_lookup_name_info::matches
   if (strncmp (sym_name, text, text_len) == 0)
     match = true;
 
+  std::string decoded_name = ada_decode (sym_name);
   if (match && !m_encoded_p)
     {
       /* One needed check before declaring a positive match is to verify
          that iff we are doing a verbatim match, the decoded version
          of the symbol name starts with '<'.  Otherwise, this symbol name
          is not a suitable completion.  */
-      const char *sym_name_copy = sym_name;
-      bool has_angle_bracket;
 
-      sym_name = ada_decode (sym_name);
-      has_angle_bracket = (sym_name[0] == '<');
+      bool has_angle_bracket = (decoded_name[0] == '<');
       match = (has_angle_bracket == m_verbatim_p);
-      sym_name = sym_name_copy;
     }
 
   if (match && !m_verbatim_p)
@@ -6269,7 +6254,7 @@ ada_lookup_name_info::matches
       /* Since we are doing wild matching, this means that TEXT
          may represent an unqualified symbol name.  We therefore must
          also compare TEXT against the unqualified name of the symbol.  */
-      sym_name = ada_unqualified_name (ada_decode (sym_name));
+      sym_name = ada_unqualified_name (decoded_name.c_str ());
 
       if (strncmp (sym_name, text, text_len) == 0)
 	match = true;
@@ -13494,7 +13479,7 @@ static bool
 name_matches_regex (const char *name, compiled_regex *preg)
 {
   return (preg == NULL
-	  || preg->exec (ada_decode (name), 0, NULL, 0) == 0);
+	  || preg->exec (ada_decode (name).c_str (), 0, NULL, 0) == 0);
 }
 
 /* Add all exceptions defined globally whose name name match
@@ -13527,8 +13512,8 @@ ada_add_global_exceptions (compiled_regex *preg,
 			   lookup_name_info::match_any (),
 			   [&] (const char *search_name)
 			   {
-			     const char *decoded = ada_decode (search_name);
-			     return name_matches_regex (decoded, preg);
+			     std::string decoded = ada_decode (search_name);
+			     return name_matches_regex (decoded.c_str (), preg);
 			   },
 			   NULL,
 			   VARIABLES_DOMAIN);
diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h
index 2fc3f523ca..c7279d5ac3 100644
--- a/gdb/ada-lang.h
+++ b/gdb/ada-lang.h
@@ -227,7 +227,7 @@ extern struct type *ada_get_decoded_type (struct type *type);
 
 extern const char *ada_decode_symbol (const struct general_symbol_info *);
 
-extern const char *ada_decode (const char*);
+extern std::string ada_decode (const char*);
 
 extern enum language ada_update_initial_language (enum language);
 
diff --git a/gdb/ada-varobj.c b/gdb/ada-varobj.c
index a4d553d378..1a5d0ac239 100644
--- a/gdb/ada-varobj.c
+++ b/gdb/ada-varobj.c
@@ -624,6 +624,7 @@ ada_varobj_describe_simple_array_child (struct value *parent_value,
 	 of the array index type when such type qualification is
 	 needed.  */
       const char *index_type_name = NULL;
+      std::string decoded;
 
       /* If the index type is a range type, find the base type.  */
       while (TYPE_CODE (index_type) == TYPE_CODE_RANGE)
@@ -634,7 +635,10 @@ ada_varobj_describe_simple_array_child (struct value *parent_value,
 	{
 	  index_type_name = ada_type_name (index_type);
 	  if (index_type_name)
-	    index_type_name = ada_decode (index_type_name);
+	    {
+	      decoded = ada_decode (index_type_name);
+	      index_type_name = decoded.c_str ();
+	    }
 	}
 
       if (index_type_name != NULL)
diff --git a/gdb/dwarf-index-write.c b/gdb/dwarf-index-write.c
index 153c6792f0..0947ba9ec1 100644
--- a/gdb/dwarf-index-write.c
+++ b/gdb/dwarf-index-write.c
@@ -714,13 +714,14 @@ public:
 	   name (of the form "<MumBle>") must be entered without the
 	   angle brackets.  Note that the current index is unusual,
 	   see PR symtab/24820 for details.  */
-	const char *decoded = ada_decode (name);
+	std::string decoded = ada_decode (name);
 	if (decoded[0] == '<')
 	  name = (char *) obstack_copy0 (&m_string_obstack,
-					 decoded + 1,
-					 strlen (decoded + 1) - 1);
+					 decoded.c_str () + 1,
+					 decoded.length () - 2);
 	else
-	  name = obstack_strdup (&m_string_obstack, ada_encode (decoded));
+	  name = obstack_strdup (&m_string_obstack,
+				 ada_encode (decoded.c_str ()));
       }
 
     const auto insertpair


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] sim: Add PRU simulator port
@ 2019-09-23 21:43 gdb-buildbot
  2019-09-23 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23 21:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ddd44b7053386b82769c27c871a08c72e589e93e ***

commit ddd44b7053386b82769c27c871a08c72e589e93e
Author:     Dimitar Dimitrov <dimitar@dinux.eu>
AuthorDate: Mon Sep 23 17:54:42 2019 +0100
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Mon Sep 23 22:11:02 2019 +0100

    sim: Add PRU simulator port
    
    A simulator port for the TI PRU I/O processor.
    
    v1: https://sourceware.org/ml/gdb-patches/2016-12/msg00143.html
    v2: https://sourceware.org/ml/gdb-patches/2017-02/msg00397.html
    v3: https://sourceware.org/ml/gdb-patches/2017-02/msg00516.html
    v4: https://sourceware.org/ml/gdb-patches/2018-06/msg00484.html
    v5: https://sourceware.org/ml/gdb-patches/2019-08/msg00584.html
    v6: https://sourceware.org/ml/gdb-patches/2019-09/msg00036.html
    
    gdb/ChangeLog:
    
            * NEWS: Mention new simulator port for PRU.
    
    sim/ChangeLog:
    
            * MAINTAINERS: Add myself as PRU maintainer.
            * configure: Regenerated.
            * configure.tgt: Add PRU.
    
    sim/common/ChangeLog:
    
            * gennltvals.sh: Add PRU libgloss target.
            * nltvals.def: Regenerate from the latest libgloss sources.
    
    sim/pru/ChangeLog:
    
            * Makefile.in: New file.
            * aclocal.m4: Regenerated.
            * config.in: Regenerated.
            * configure: Regenerated.
            * configure.ac: New file.
            * interp.c: New file.
            * pru.h: New file.
            * pru.isa: New file.
            * sim-main.h: New file.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 33951b88c6..77aab76492 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23  Dimitar Dimitrov  <dimitar@dinux.eu>
+
+	* NEWS: Mention new simulator port for PRU.
+
 2019-09-23  Christian Biesinger  <cbiesinger@google.com>
 
 	* ada-exp.y (write_object_remaining): Update.
diff --git a/gdb/NEWS b/gdb/NEWS
index 8f9b1d8ac4..779fd91d3a 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -350,6 +350,10 @@ focus, winheight, +, -, >, <
   both debugging standalone Cell/B.E. SPU applications and integrated debugging
   of Cell/B.E. applications that use both the PPU and SPU architectures.
 
+* New Simulators
+
+TI PRU					pru-*-elf
+
 *** Changes in GDB 8.3
 
 * GDB and GDBserver now support access to additional registers on
diff --git a/sim/ChangeLog b/sim/ChangeLog
index d4c7d166d2..7443e8442d 100644
--- a/sim/ChangeLog
+++ b/sim/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23  Dimitar Dimitrov  <dimitar@dinux.eu>
+
+	* MAINTAINERS: Add myself as PRU maintainer.
+	* configure: Regenerated.
+	* configure.tgt: Add PRU.
+
 2019-09-20  Alan Modra  <amodra@gmail.com>
 
 	* ppc/emul_generic.c (emul_add_tree_options): Delete old bfd code.
diff --git a/sim/MAINTAINERS b/sim/MAINTAINERS
index 3b9b08c40d..4ca67cfd1d 100644
--- a/sim/MAINTAINERS
+++ b/sim/MAINTAINERS
@@ -29,6 +29,7 @@ mips I-IV	Maciej W. Rozycki <macro@linux-mips.org>
 moxie		Anthony Green <green@moxielogic.com>
 msp430		Nick Clifton <nickc@redhat.com>
 or1k		Stafford Horne <shorne@gmail.com>
+pru		Dimitar Dimitrov <dimitar@dinux.eu>
 sh		(global maintainers)
 sh64		Dave Brolley <brolley@redhat.com>
 common		Frank Ch. Eigler <fche@redhat.com>
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index b84980bc95..a7ec5c7121 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-23  Dimitar Dimitrov  <dimitar@dinux.eu>
+
+	* gennltvals.sh: Add PRU libgloss target.
+	* nltvals.def: Regenerate from the latest libgloss sources.
+
 2019-06-13  Stafford Horne  <shorne@gmail.com>
 
 	* cgen-accfp.c (unorderedsf, unordereddf): New functions.
diff --git a/sim/common/gennltvals.sh b/sim/common/gennltvals.sh
index 7027c35ad4..79180335b6 100755
--- a/sim/common/gennltvals.sh
+++ b/sim/common/gennltvals.sh
@@ -95,3 +95,7 @@ $shell ${srccom}/gentvals.sh $target sys ${newlibroot}/$dir \
 dir=libgloss target=lm32
 $shell ${srccom}/gentvals.sh $target sys ${newlibroot}/$dir \
 	"syscall.h" 'SYS_[_[:alnum:]]*' "${cpp}"
+
+dir=libgloss target=pru
+$shell ${srccom}/gentvals.sh $target sys ${newlibroot}/$dir \
+	"syscall.h" 'SYS_[_[:alnum:]]*' "${cpp}"
diff --git a/sim/common/nltvals.def b/sim/common/nltvals.def
index 3f82d47b6b..92ccc9aded 100644
--- a/sim/common/nltvals.def
+++ b/sim/common/nltvals.def
@@ -574,3 +574,34 @@
 /* end lm32 sys target macros */
 #endif
 #endif
+#ifdef NL_TARGET_pru
+#ifdef sys_defs
+/* from syscall.h */
+/* begin pru sys target macros */
+ { "SYS_argc", 22 },
+ { "SYS_argn", 24 },
+ { "SYS_argnlen", 23 },
+ { "SYS_argv", 13 },
+ { "SYS_argvlen", 12 },
+ { "SYS_chdir", 14 },
+ { "SYS_chmod", 16 },
+ { "SYS_close", 3 },
+ { "SYS_exit", 1 },
+ { "SYS_fstat", 10 },
+ { "SYS_getpid", 8 },
+ { "SYS_gettimeofday", 19 },
+ { "SYS_kill", 9 },
+ { "SYS_link", 21 },
+ { "SYS_lseek", 6 },
+ { "SYS_open", 2 },
+ { "SYS_read", 4 },
+ { "SYS_reconfig", 25 },
+ { "SYS_stat", 15 },
+ { "SYS_time", 18 },
+ { "SYS_times", 20 },
+ { "SYS_unlink", 7 },
+ { "SYS_utime", 17 },
+ { "SYS_write", 5 },
+/* end pru sys target macros */
+#endif
+#endif
diff --git a/sim/configure b/sim/configure
index ca3fd673ab..72f95cd5c7 100755
--- a/sim/configure
+++ b/sim/configure
@@ -686,6 +686,7 @@ mn10300
 moxie
 msp430
 or1k
+pru
 rl78
 rx
 sh64
@@ -3837,6 +3838,13 @@ subdirs="$subdirs aarch64"
   subdirs="$subdirs or1k"
 
 
+       ;;
+   pru*-*-*)
+
+  sim_arch=pru
+  subdirs="$subdirs pru"
+
+
        ;;
    rl78-*-*)
 
diff --git a/sim/configure.tgt b/sim/configure.tgt
index a6dbd1af83..8a8e03d96f 100644
--- a/sim/configure.tgt
+++ b/sim/configure.tgt
@@ -79,6 +79,9 @@ case "${target}" in
    or1k-*-* | or1knd-*-*)
        SIM_ARCH(or1k)
        ;;
+   pru*-*-*)
+       SIM_ARCH(pru)
+       ;;
    rl78-*-*)
        SIM_ARCH(rl78)
        ;;
diff --git a/sim/pru/ChangeLog b/sim/pru/ChangeLog
new file mode 100644
index 0000000000..bccc3efd53
--- /dev/null
+++ b/sim/pru/ChangeLog
@@ -0,0 +1,11 @@
+2019-09-23  Dimitar Dimitrov  <dimitar@dinux.eu>
+
+	* Makefile.in: New file.
+	* aclocal.m4: Regenerated.
+	* config.in: Regenerated.
+	* configure: Regenerated.
+	* configure.ac: New file.
+	* interp.c: New file.
+	* pru.h: New file.
+	* pru.isa: New file.
+	* sim-main.h: New file.
diff --git a/sim/pru/Makefile.in b/sim/pru/Makefile.in
new file mode 100644
index 0000000000..5235a5ff07
--- /dev/null
+++ b/sim/pru/Makefile.in
@@ -0,0 +1,29 @@
+#    Makefile template for Configure for the PRU sim library.
+#    Copyright (C) 1990-2019 Free Software Foundation, Inc.
+#    Written by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+#    Based on the MCore sim library
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+## COMMON_PRE_CONFIG_FRAG
+
+SIM_OBJS = \
+	$(SIM_NEW_COMMON_OBJS) \
+	interp.o \
+	sim-resume.o
+
+NL_TARGET = -DNL_TARGET_pru
+
+## COMMON_POST_CONFIG_FRAG
diff --git a/sim/pru/aclocal.m4 b/sim/pru/aclocal.m4
new file mode 100644
index 0000000000..e9f11c775c
--- /dev/null
+++ b/sim/pru/aclocal.m4
@@ -0,0 +1,119 @@
+# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
+
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well.  Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+       [enable], [m4_define([am_maintainer_other], [disable])],
+       [disable], [m4_define([am_maintainer_other], [enable])],
+       [m4_define([am_maintainer_other], [enable])
+        m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+  AC_ARG_ENABLE([maintainer-mode],
+    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+      am_maintainer_other[ make rules and dependencies not useful
+      (and sometimes confusing) to the casual installer])],
+    [USE_MAINTAINER_MODE=$enableval],
+    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST([MAINT])dnl
+]
+)
+
+# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
diff --git a/sim/pru/config.in b/sim/pru/config.in
new file mode 100644
index 0000000000..7c667a1c0d
--- /dev/null
+++ b/sim/pru/config.in
@@ -0,0 +1,248 @@
+/* config.in.  Generated from configure.ac by autoheader.  */
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* Sim debug setting */
+#undef DEBUG
+
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+#undef ENABLE_NLS
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <errno.h> header file. */
+#undef HAVE_ERRNO_H
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define to 1 if you have the <fpu_control.h> header file. */
+#undef HAVE_FPU_CONTROL_H
+
+/* Define to 1 if you have the `ftruncate' function. */
+#undef HAVE_FTRUNCATE
+
+/* Define to 1 if you have the `getrusage' function. */
+#undef HAVE_GETRUSAGE
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+#undef HAVE_LIBNSL
+
+/* Define to 1 if you have the `socket' library (-lsocket). */
+#undef HAVE_LIBSOCKET
+
+/* Define to 1 if you have the `lstat' function. */
+#undef HAVE_LSTAT
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `mmap' function. */
+#undef HAVE_MMAP
+
+/* Define to 1 if you have the `munmap' function. */
+#undef HAVE_MUNMAP
+
+/* Define to 1 if you have the `posix_fallocate' function. */
+#undef HAVE_POSIX_FALLOCATE
+
+/* Define to 1 if you have the `sigaction' function. */
+#undef HAVE_SIGACTION
+
+/* Define to 1 if the system has the type `socklen_t'. */
+#undef HAVE_SOCKLEN_T
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if `st_atime' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_ATIME
+
+/* Define to 1 if `st_blksize' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLKSIZE
+
+/* Define to 1 if `st_blocks' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLOCKS
+
+/* Define to 1 if `st_ctime' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_CTIME
+
+/* Define to 1 if `st_dev' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_DEV
+
+/* Define to 1 if `st_gid' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_GID
+
+/* Define to 1 if `st_ino' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_INO
+
+/* Define to 1 if `st_mode' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_MODE
+
+/* Define to 1 if `st_mtime' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_MTIME
+
+/* Define to 1 if `st_nlink' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_NLINK
+
+/* Define to 1 if `st_rdev' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_RDEV
+
+/* Define to 1 if `st_size' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_SIZE
+
+/* Define to 1 if `st_uid' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_UID
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#undef HAVE_SYS_MMAN_H
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#undef HAVE_SYS_RESOURCE_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/times.h> header file. */
+#undef HAVE_SYS_TIMES_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the `time' function. */
+#undef HAVE_TIME
+
+/* Define to 1 if you have the <time.h> header file. */
+#undef HAVE_TIME_H
+
+/* Define to 1 if you have the `truncate' function. */
+#undef HAVE_TRUNCATE
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the <windows.h> header file. */
+#undef HAVE_WINDOWS_H
+
+/* Define to 1 if you have the `__setfpucw' function. */
+#undef HAVE___SETFPUCW
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#undef LT_OBJDIR
+
+/* Name of this package. */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Additional package description */
+#undef PKGVERSION
+
+/* Sim profile settings */
+#undef PROFILE
+
+/* Bug reporting address */
+#undef REPORT_BUGS_TO
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
+/* Sim assert settings */
+#undef WITH_ASSERT
+
+/* Sim debug setting */
+#undef WITH_DEBUG
+
+/* Sim default environment */
+#undef WITH_ENVIRONMENT
+
+/* Sim profile settings */
+#undef WITH_PROFILE
+
+/* How to route I/O */
+#undef WITH_STDIO
+
+/* Sim trace settings */
+#undef WITH_TRACE
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+#  undef WORDS_BIGENDIAN
+# endif
+#endif
+
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#undef _POSIX_SOURCE
diff --git a/sim/pru/configure b/sim/pru/configure
new file mode 100755
index 0000000000..aa99e9e984
--- /dev/null
+++ b/sim/pru/configure
@@ -0,0 +1,15973 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1
+
+  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+PACKAGE_URL=
+
+ac_unique_file="Makefile.in"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+cgen_breaks
+REPORT_BUGS_TEXI
+REPORT_BUGS_TO
+PKGVERSION
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+lt_cv_dlopen_libs
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+AWK
+STRIP
+OBJDUMP
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+SED
+LIBTOOL
+PLUGINS_FALSE
+PLUGINS_TRUE
+zlibinc
+zlibdir
+CATOBJEXT
+GENCAT
+INSTOBJEXT
+DATADIRNAME
+CATALOGS
+POSUB
+GMSGFMT
+XGETTEXT
+INCINTL
+LIBINTL_DEP
+LIBINTL
+USE_NLS
+GMAKE_FALSE
+GMAKE_TRUE
+MAKE
+CCDEPMODE
+DEPDIR
+am__leading_dot
+PACKAGE
+RANLIB
+AR
+HDEFINES
+CC_FOR_BUILD
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+EGREP
+GREP
+CPP
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+WERROR_CFLAGS
+WARN_CFLAGS
+sim_reserved_bits
+sim_inline
+sim_hw
+sim_hw_objs
+sim_hw_cflags
+sim_default_model
+sim_scache
+sim_float
+sim_endian
+sim_bitsize
+sim_alignment
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+with_system_zlib
+enable_plugins
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_gnu_ld
+enable_libtool_lock
+enable_maintainer_mode
+enable_sim_debug
+enable_sim_stdio
+enable_sim_trace
+enable_sim_profile
+enable_sim_assert
+enable_sim_environment
+enable_sim_inline
+with_pkgversion
+with_bugurl
+enable_sim_endian
+enable_sim_alignment
+enable_werror
+enable_build_warnings
+enable_sim_build_warnings
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking ...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+  --target=TARGET   configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-plugins        Enable support for plugins
+  --enable-shared[=PKGS]  build shared libraries [default=yes]
+  --enable-static[=PKGS]  build static libraries [default=yes]
+  --enable-fast-install[=PKGS]
+                          optimize for fast installation [default=yes]
+  --disable-libtool-lock  avoid locking (might break parallel builds)
+  --enable-maintainer-mode
+                          enable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
+  --enable-sim-debug=opts Enable debugging flags (for developers of the sim
+                          itself)
+  --enable-sim-stdio      Specify whether to use stdio for console
+                          input/output
+  --enable-sim-trace=opts Enable tracing of simulated programs
+  --enable-sim-profile=opts
+                          Enable profiling flags
+  --enable-sim-assert     Specify whether to perform random assertions
+  --enable-sim-environment=environment
+                          Specify mixed, user, virtual or operating
+                          environment
+  --enable-sim-inline=inlines
+                          Specify which functions should be inlined
+  --enable-sim-endian=endian
+                          Specify target byte endian orientation
+  --enable-sim-alignment=align
+                          Specify strict, nonstrict or forced alignment of
+                          memory accesses
+  --enable-werror         treat compile warnings as errors
+  --enable-build-warnings enable build-time compiler warnings if gcc is used
+  --enable-sim-build-warnings
+                          enable SIM specific build-time compiler warnings if
+                          gcc is used
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-system-zlib      use installed libz
+  --with-pic              try to use only PIC/non-PIC objects [default=use
+                          both]
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-pkgversion=PKG   Use PKG in the version string in place of "SIM"
+  --with-bugurl=URL       Direct users to URL to report a bug
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval \${$3+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$4
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_member
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=no"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+	 return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+	    return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_type
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	$as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# This file contains common code used by all simulators.
+#
+# SIM_AC_COMMON invokes AC macros used by all simulators and by the common
+# directory.  It is intended to be invoked before any target specific stuff.
+# SIM_AC_OUTPUT is a cover function to AC_OUTPUT to generate the Makefile.
+# It is intended to be invoked last.
+#
+# The simulator's configure.ac should look like:
+#
+# dnl Process this file with autoconf to produce a configure script.
+# AC_PREREQ(2.64)dnl
+# AC_INIT(Makefile.in)
+# sinclude(../common/aclocal.m4)
+#
+# SIM_AC_COMMON
+#
+# ... target specific stuff ...
+#
+# SIM_AC_OUTPUT
+
+# Include global overrides and fixes for Autoconf.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+
+
+# serial 56 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+# LT_INIT
+
+# Old names:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+
+
+# Initialize.
+
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+
+
+# Initialize.
+
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+
+
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+
+
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+
+
+
+# C support is built-in for now
+
+
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+# _LT_LANG
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_TAG_COMPILER
+# ----------------
+# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+
+
+# _LT_SYS_MODULE_PATH_AIX
+# -----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
+# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_ENABLE_LOCK
+# ---------------
+# _LT_ENABLE_LOCK
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+# _LT_COMPILER_OPTION
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+# _LT_LINKER_OPTION
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_CMD_MAX_LEN
+#---------------
+# LT_CMD_MAX_LEN
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+# LT_SYS_DLOPEN_SELF
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+# LT_PATH_LD
+
+# Old names:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+# LT_PATH_NM
+
+# Old names:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_LIB_M
+# --------
+# check for math library
+# LT_LIB_M
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+ # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+# _LT_LANG_CXX_CONFIG
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_PROG_RC
+# ----------
+
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+
+
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+# _LT_DECL_SED
+
+#m4_ifndef
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_XSI_SHELLFNS
+# ---------------------
+# Bourne and XSI compatible variants of some useful shell functions.
+
+
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+#   Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+# win32-dll
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# _LT_ENABLE_SHARED
+
+
+
+
+# Old names:
+
+
+
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# _LT_ENABLE_STATIC
+
+
+
+
+# Old names:
+
+
+
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+# _LT_ENABLE_FAST_INSTALL
+
+
+
+
+# Old names:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+# _LT_WITH_PIC
+
+
+
+
+# Old name:
+# This is what autoupdate's m4 run will expand.  It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4.  It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once.  We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf.  It tells the user to run autoupdate, and
+# then outputs the replacement expansion.  We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+
+
+
+
+
+
+
+
+
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+
+
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+
+
+
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+
+
+# ltversion.m4 -- version numbers			-*- Autoconf -*-
+#
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# Generated from ltversion.in.
+
+# serial 3134 ltversion.m4
+# This file is part of GNU Libtool
+
+
+
+
+
+
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 4 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+##                                                          -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# Based on depend.m4 from automake 1.9, modified for standalone use in
+# an environment where GNU make is required.
+
+# ZW_PROG_COMPILER_DEPENDENCIES
+# -----------------------------
+# Variant of _AM_DEPENDENCIES which just does the dependency probe and
+# sets fooDEPMODE accordingly.  Cache-variable compatible with
+# original; not side-effect compatible.  As the users of this macro
+# may require accurate dependencies for correct builds, it does *not*
+# honor --disable-dependency-checking, and failure to detect a usable
+# method is an error.  depcomp is assumed to be located in
+# $ac_aux_dir.
+#
+# FIXME: Should use the Autoconf 2.5x language-selection mechanism.
+
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+
+
+# ZW_CREATE_DEPDIR
+# ----------------
+# As AM_SET_DEPDIR, but also create the directory at config.status time.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# intl sister-directory configuration rules.
+#
+
+# The idea behind this macro is that there's no need to repeat all the
+# autoconf probes done by the intl directory - it's already done them
+# for us.  In fact, there's no need even to look at the cache for the
+# answers.  All we need to do is nab a few pieces of information.
+# The intl directory is set up to make this easy, by generating a
+# small file which can be sourced as a shell script; then we produce
+# the necessary substitutions and definitions for this directory.
+
+
+
+# Autoconf M4 include file defining utility macros for complex Canadian
+# cross builds.
+
+
+
+
+
+
+
+
+
+####
+# _NCN_TOOL_PREFIXES:  Some stuff that oughtta be done in AC_CANONICAL_SYSTEM
+# or AC_INIT.
+# These demand that AC_CANONICAL_SYSTEM be called beforehand.
+
+####
+# NCN_STRICT_CHECK_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path])
+# Like plain AC_CHECK_TOOLS, but require prefix if build!=host.
+
+
+####
+# NCN_STRICT_CHECK_TARGET_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path])
+# Like CVS Autoconf AC_CHECK_TARGET_TOOLS, but require prefix if build!=target.
+
+
+
+# Backported from Autoconf 2.5x; can go away when and if
+# we switch.  Put the OS path separator in $PATH_SEPARATOR.
+
+
+
+
+
+
+
+
+# ACX_HAVE_GCC_FOR_TARGET
+# Check if the variable GCC_FOR_TARGET really points to a GCC binary.
+
+
+# ACX_CHECK_INSTALLED_TARGET_TOOL(VAR, PROG)
+# Searching for installed target binutils.  We need to take extra care,
+# else we may find the wrong assembler, linker, etc., and lose.
+#
+# First try --with-build-time-tools, if specified.
+#
+# For build != host, we ask the installed GCC for the name of the tool it
+# uses, and accept it if it is an absolute path.  This is because the
+# only good choice for a compiler is the same GCC version that is being
+# installed (or we couldn't make target libraries), and we assume that
+# on the host system we'll have not only the same GCC version, but also
+# the same binutils version.
+#
+# For build == host, search the same directories that the installed
+# compiler will search.  We used to do this for the assembler, linker,
+# and nm only; for simplicity of configuration, however, we extend this
+# criterion to tools (such as ar and ranlib) that are never invoked by
+# the compiler, to avoid mismatches.
+#
+# Also note we have to check MD_EXEC_PREFIX before checking the user's path
+# if build == target.  This makes the most sense only when bootstrapping,
+# but we also do so when build != host.  In this case, we hope that the
+# build and host systems will have similar contents of MD_EXEC_PREFIX.
+#
+# If we do not find a suitable binary, then try the user's path.
+
+
+###
+# AC_PROG_CPP_WERROR
+# Used for autoconf 2.5x to force AC_PREPROC_IFELSE to reject code which
+# triggers warnings from the preprocessor.  Will be in autoconf 2.58.
+# For now, using this also overrides header checks to use only the
+# preprocessor (matches 2.13 behavior; matching 2.58's behavior is a
+# bit harder from here).
+# Eventually autoconf will default to checking headers with the compiler
+# instead, and we'll have to do this differently.
+
+# AC_PROG_CPP_WERROR
+
+# Test for GNAT.
+# We require the gnatbind & gnatmake programs, as well as a compiler driver
+# that understands Ada.  We use the user's CC setting, already found, and
+# possibly add $1 to the command-line parameters.
+#
+# Sets the shell variable have_gnat to yes or no as appropriate, and
+# substitutes GNATBIND and GNATMAKE.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
+	break;;
+    * )
+	break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+  { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+  if { ac_try='./conftest$ac_cv_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if ${ac_cv_target+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$target_alias" = x; then
+  ac_cv_target=$ac_cv_host
+else
+  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
+  MINIX=yes
+else
+  MINIX=
+fi
+
+
+  if test "$MINIX" = yes; then
+
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+
+
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+$as_echo "#define _MINIX 1" >>confdefs.h
+
+  fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#         define __EXTENSIONS__ 1
+          $ac_includes_default
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_safe_to_define___extensions__=yes
+else
+  ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+  test $ac_cv_safe_to_define___extensions__ = yes &&
+    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+
+  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+
+test "$program_prefix" != NONE &&
+  program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    rm -rf conftest.one conftest.two conftest.dir
+	    echo one > conftest.one
+	    echo two > conftest.two
+	    mkdir conftest.dir
+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	      test -s conftest.one && test -s conftest.two &&
+	      test -s conftest.dir/conftest.one &&
+	      test -s conftest.dir/conftest.two
+	    then
+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      break 3
+	    fi
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+
+  done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+DEPDIR="${am__leading_dot}deps"
+
+case `pwd` in
+  *\ * | *\	*)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.2.7a'
+macro_revision='1.3134'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`print -r -- -n 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO ""
+}
+
+case "$ECHO" in
+  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     { ac_script=; unset ac_script;}
+     if test -z "$SED"; then
+  ac_path_SED_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+  # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo '' >> "conftest.nl"
+    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_SED_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_SED="$ac_path_SED"
+      ac_path_SED_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_SED_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_SED"; then
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+  fi
+else
+  ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+  rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+   then ac_cv_path_FGREP="$GREP -F"
+   else
+     if test -z "$FGREP"; then
+  ac_path_FGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in fgrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+  # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'FGREP' >> "conftest.nl"
+    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_FGREP="$ac_path_FGREP"
+      ac_path_FGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_FGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_FGREP"; then
+    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_FGREP=$FGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in dumpbin "link -dump"
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DUMPBIN"; then
+  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$DUMPBIN" && break
+  done
+fi
+if test -z "$DUMPBIN"; then
+  ac_ct_DUMPBIN=$DUMPBIN
+  for ac_prog in dumpbin "link -dump"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DUMPBIN"; then
+  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_DUMPBIN" && break
+done
+
+  if test "x$ac_ct_DUMPBIN" = x; then
+    DUMPBIN=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DUMPBIN=$ac_ct_DUMPBIN
+  fi
+fi
+
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
+
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&5
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&5
+  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+  cat conftest.out >&5
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+    i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8 ; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,, \
+    && eval 'test $(( 1 + 1 )) -eq 2 \
+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+  && xsi_shell=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
+$as_echo "$xsi_shell" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
+    >/dev/null 2>&1 \
+  && lt_shell_append=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
+$as_echo "$lt_shell_append" >&6; }
+
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OBJDUMP"; then
+  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+  ac_ct_OBJDUMP=$OBJDUMP
+  # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OBJDUMP"; then
+  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OBJDUMP="objdump"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OBJDUMP" = x; then
+    OBJDUMP="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OBJDUMP=$ac_ct_OBJDUMP
+  fi
+else
+  OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[45]*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc*)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[3-9]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="ar"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_AR" = x; then
+    AR="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+else
+  AR="$ac_cv_prog_AR"
+fi
+
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$AWK" && break
+done
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[BCDT]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[ABCDGISTW]'
+  ;;
+hpux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDEGRST]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[BCDEGRST]'
+  ;;
+osf*)
+  symcode='[BCDEGQRST]'
+  ;;
+solaris*)
+  symcode='[BDRT]'
+  ;;
+sco3.2v5*)
+  symcode='[DT]'
+  ;;
+sysv4.2uw2*)
+  symcode='[DT]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[ABDT]'
+  ;;
+sysv4)
+  symcode='[DFNSTU]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function
+    # and D for any global variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK '"\
+"     {last_section=section; section=\$ 3};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+	  cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+const struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&5
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&5
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+    fi
+  else
+    echo "$progname: failed program was:" >&5
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+  enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+	HPUX_IA64_MODE="32"
+	;;
+      *ELF-64*)
+	HPUX_IA64_MODE="64"
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    if test "$lt_cv_prog_gnu_ld" = yes; then
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -melf32bsmip"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -melf32bmipn32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -melf64bmip"
+	;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -32"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -n32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -64"
+	  ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_i386_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    case `/usr/bin/file conftest.o` in
+	      *x86-64*)
+		LD="${LD-ld} -m elf32_x86_64"
+		;;
+	      *)
+		LD="${LD-ld} -m elf_i386"
+		;;
+	    esac
+	    ;;
+	  powerpc64le-*linux*)
+	    LD="${LD-ld} -m elf32lppclinux"
+	    ;;
+	  powerpc64-*linux*)
+	    LD="${LD-ld} -m elf32ppclinux"
+	    ;;
+	  s390x-*linux*)
+	    LD="${LD-ld} -m elf_s390"
+	    ;;
+	  sparc64-*linux*)
+	    LD="${LD-ld} -m elf32_sparc"
+	    ;;
+	esac
+	;;
+      *64-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_x86_64_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_x86_64"
+	    ;;
+	  powerpcle-*linux*)
+	    LD="${LD-ld} -m elf64lppc"
+	    ;;
+	  powerpc-*linux*)
+	    LD="${LD-ld} -m elf64ppc"
+	    ;;
+	  s390*-*linux*|s390*-*tpf*)
+	    LD="${LD-ld} -m elf64_s390"
+	    ;;
+	  sparc*-*linux*)
+	    LD="${LD-ld} -m elf64_sparc"
+	    ;;
+	esac
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  lt_cv_cc_needs_belf=yes
+else
+  lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)
+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+  case $host_os in
+    rhapsody* | darwin*)
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DSYMUTIL"; then
+  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+  ac_ct_DSYMUTIL=$DSYMUTIL
+  # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DSYMUTIL"; then
+  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DSYMUTIL" = x; then
+    DSYMUTIL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DSYMUTIL=$ac_ct_DSYMUTIL
+  fi
+else
+  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NMEDIT"; then
+  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+  ac_ct_NMEDIT=$NMEDIT
+  # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_NMEDIT"; then
+  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_NMEDIT="nmedit"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_NMEDIT" = x; then
+    NMEDIT=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    NMEDIT=$ac_ct_NMEDIT
+  fi
+else
+  NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$LIPO"; then
+  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+  ac_ct_LIPO=$LIPO
+  # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_LIPO"; then
+  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_LIPO="lipo"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_LIPO" = x; then
+    LIPO=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    LIPO=$ac_ct_LIPO
+  fi
+else
+  LIPO="$ac_cv_prog_LIPO"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OTOOL"; then
+  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+  ac_ct_OTOOL=$OTOOL
+  # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OTOOL"; then
+  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OTOOL="otool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OTOOL" = x; then
+    OTOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OTOOL=$ac_ct_OTOOL
+  fi
+else
+  OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OTOOL64"; then
+  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+  ac_ct_OTOOL64=$OTOOL64
+  # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OTOOL64"; then
+  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OTOOL64="otool64"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OTOOL64" = x; then
+    OTOOL64=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OTOOL64=$ac_ct_OTOOL64
+  fi
+else
+  OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+	# By default we will add the -single_module flag. You can override
+	# by either setting the environment variable LT_MULTI_MODULE
+	# non-empty at configure time, or by adding -multi_module to the
+	# link flags.
+	rm -rf libconftest.dylib*
+	echo "int foo(void){return 1;}" > conftest.c
+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	  lt_cv_apple_cc_single_mod=yes
+	else
+	  cat conftest.err >&5
+	fi
+	rm -rf libconftest.dylib*
+	rm -f conftest.*
+      fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  lt_cv_ld_exported_symbols_list=yes
+else
+  lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+	LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+      echo "$AR cru libconftest.a conftest.o" >&5
+      $AR cru libconftest.a conftest.o 2>&5
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+	lt_cv_ld_force_load=yes
+      else
+	cat conftest.err >&5
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+    case $host_os in
+    rhapsody* | darwin1.[012])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+	10.[012][,.]*)
+	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+	10.*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+
+for ac_header in dlfcn.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+# autoconf.info says this should be called right after AC_INIT.
+ac_config_headers="$ac_config_headers config.h:config.in"
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if ${ac_cv_c_bigendian+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+	       not a universal capable compiler
+	     #endif
+	     typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+	# Check for potential -arch flags.  It is not universal unless
+	# there are at least two -arch flags with different values.
+	ac_arch=
+	ac_prev=
+	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+	 if test -n "$ac_prev"; then
+	   case $ac_word in
+	     i?86 | x86_64 | ppc | ppc64)
+	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+		 ac_arch=$ac_word
+	       else
+		 ac_cv_c_bigendian=universal
+		 break
+	       fi
+	       ;;
+	   esac
+	   ac_prev=
+	 elif test "x$ac_word" = "x-arch"; then
+	   ac_prev=arch
+	 fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+	     #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+		     && LITTLE_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+		#include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then :
+  # Try to guess by grepping values from an object file.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+short int ascii_mm[] =
+		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+		short int ascii_ii[] =
+		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+		int use_ascii (int i) {
+		  return ascii_mm[i] + ascii_ii[i];
+		}
+		short int ebcdic_ii[] =
+		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+		short int ebcdic_mm[] =
+		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+		int use_ebcdic (int i) {
+		  return ebcdic_mm[i] + ebcdic_ii[i];
+		}
+		extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+	      ac_cv_c_bigendian=yes
+	    fi
+	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+	      if test "$ac_cv_c_bigendian" = unknown; then
+		ac_cv_c_bigendian=no
+	      else
+		# finding both strings is unlikely to happen, but who knows?
+		ac_cv_c_bigendian=unknown
+	      fi
+	    fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+	     /* Are we little or big endian?  From Harbison&Steele.  */
+	     union
+	     {
+	       long int l;
+	       char c[sizeof (long int)];
+	     } u;
+	     u.l = 1;
+	     return u.c[sizeof (long int) - 1] == 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_c_bigendian=no
+else
+  ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+    fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+   no)
+      ;; #(
+   universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+     ;; #(
+   *)
+     as_fn_error $? "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
+
+
+
+
+# Put a plausible default for CC_FOR_BUILD in Makefile.
+if test -z "$CC_FOR_BUILD"; then
+  if test "x$cross_compiling" = "xno"; then
+    CC_FOR_BUILD='$(CC)'
+  else
+    CC_FOR_BUILD=gcc
+  fi
+fi
+
+
+
+
+AR=${AR-ar}
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+
+# Some of the common include files depend on bfd.h, and bfd.h checks
+# that config.h is included first by testing that the PACKAGE macro
+# is defined.
+PACKAGE=sim
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+
+# Dependency checking.
+ac_config_commands="$ac_config_commands depdir"
+
+
+depcc="$CC"   am_compiler_list=
+
+am_depcomp=$ac_aux_dir/depcomp
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    if test $depmode = none; then break; fi
+
+    $as_echo "$as_me:$LINENO: trying $depmode" >&5
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "include sub/conftest.Po" > confmf
+
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    depcmd="depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c"
+    echo "| $depcmd" | sed -e 's/  */ /g' >&5
+    if env $depcmd > conftest.err 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po >>conftest.err 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po >>conftest.err 2>&1 &&
+       ${MAKE-make} -s -f confmf >>conftest.err 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+	$as_echo "$as_me:$LINENO: success" >&5
+        break
+      fi
+    fi
+    $as_echo "$as_me:$LINENO: failure, diagnostics are:" >&5
+    sed -e 's/^/| /' < conftest.err >&5
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+if test x${am_cv_CC_dependencies_compiler_type-none} = xnone
+then as_fn_error $? "no usable dependency style found" "$LINENO" 5
+else CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+fi
+
+
+# Check for the 'make' the user wants to use.
+for ac_prog in make
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MAKE+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MAKE"; then
+  ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MAKE="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+MAKE=$ac_cv_prog_MAKE
+if test -n "$MAKE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKE" >&5
+$as_echo "$MAKE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$MAKE" && break
+done
+
+MAKE_IS_GNU=
+case "`$MAKE --version 2>&1 | sed 1q`" in
+  *GNU*)
+    MAKE_IS_GNU=yes
+    ;;
+esac
+ if test "$MAKE_IS_GNU" = yes; then
+  GMAKE_TRUE=
+  GMAKE_FALSE='#'
+else
+  GMAKE_TRUE='#'
+  GMAKE_FALSE=
+fi
+
+
+ALL_LINGUAS=
+# If we haven't got the data from the intl directory,
+# assume NLS is disabled.
+USE_NLS=no
+LIBINTL=
+LIBINTL_DEP=
+INCINTL=
+XGETTEXT=
+GMSGFMT=
+POSUB=
+
+if test -f  ../../intl/config.intl; then
+  .  ../../intl/config.intl
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+$as_echo_n "checking whether NLS is requested... " >&6; }
+if test x"$USE_NLS" != xyes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5
+$as_echo_n "checking for catalogs to be installed... " >&6; }
+  # Look for .po and .gmo files in the source directory.
+  CATALOGS=
+  XLINGUAS=
+  for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do
+    # If there aren't any .gmo files the shell will give us the
+    # literal string "../path/to/srcdir/po/*.gmo" which has to be
+    # weeded out.
+    case "$cat" in *\**)
+      continue;;
+    esac
+    # The quadruple backslash is collapsed to a double backslash
+    # by the backticks, then collapsed again by the double quotes,
+    # leaving us with one backslash in the sed expression (right
+    # before the dot that mustn't act as a wildcard).
+    cat=`echo $cat | sed -e "s!$srcdir/po/!!" -e "s!\\\\.po!.gmo!"`
+    lang=`echo $cat | sed -e "s!\\\\.gmo!!"`
+    # The user is allowed to set LINGUAS to a list of languages to
+    # install catalogs for.  If it's empty that means "all of them."
+    if test "x$LINGUAS" = x; then
+      CATALOGS="$CATALOGS $cat"
+      XLINGUAS="$XLINGUAS $lang"
+    else
+      case "$LINGUAS" in *$lang*)
+        CATALOGS="$CATALOGS $cat"
+        XLINGUAS="$XLINGUAS $lang"
+        ;;
+      esac
+    fi
+  done
+  LINGUAS="$XLINGUAS"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5
+$as_echo "$LINGUAS" >&6; }
+
+
+    DATADIRNAME=share
+
+  INSTOBJEXT=.mo
+
+  GENCAT=gencat
+
+  CATOBJEXT=.gmo
+
+fi
+
+# Check for common headers.
+# FIXME: Seems to me this can cause problems for i386-windows hosts.
+# At one point there were hardcoded AC_DEFINE's if ${host} = i386-*-windows*.
+for ac_header in stdlib.h string.h strings.h unistd.h time.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/time.h sys/times.h sys/resource.h sys/mman.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in fcntl.h fpu_control.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dlfcn.h errno.h sys/stat.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_func in getrusage time sigaction __setfpucw
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in mmap munmap lstat truncate ftruncate posix_fallocate
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ac_fn_c_check_member "$LINENO" "struct stat" "st_dev" "ac_cv_member_struct_stat_st_dev" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_dev" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_DEV 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_ino" "ac_cv_member_struct_stat_st_ino" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_ino" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_INO 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_mode" "ac_cv_member_struct_stat_st_mode" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_mode" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_MODE 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_nlink" "ac_cv_member_struct_stat_st_nlink" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_nlink" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_NLINK 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_uid" "ac_cv_member_struct_stat_st_uid" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_uid" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_UID 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_gid" "ac_cv_member_struct_stat_st_gid" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_gid" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_GID 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_rdev" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_RDEV 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_size" "ac_cv_member_struct_stat_st_size" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_size" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_SIZE 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_atime" "ac_cv_member_struct_stat_st_atime" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_atime" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIME 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_mtime" "ac_cv_member_struct_stat_st_mtime" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_mtime" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_MTIME 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_ctime" "ac_cv_member_struct_stat_st_ctime" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_ctime" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_CTIME 1
+_ACEOF
+
+
+fi
+
+ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include <sys/types.h>
+#include <sys/socket.h>
+
+"
+if test "x$ac_cv_type_socklen_t" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SOCKLEN_T 1
+_ACEOF
+
+
+fi
+
+
+# Check for socket libraries
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bind in -lsocket" >&5
+$as_echo_n "checking for bind in -lsocket... " >&6; }
+if ${ac_cv_lib_socket_bind+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char bind ();
+int
+main ()
+{
+return bind ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_socket_bind=yes
+else
+  ac_cv_lib_socket_bind=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_bind" >&5
+$as_echo "$ac_cv_lib_socket_bind" >&6; }
+if test "x$ac_cv_lib_socket_bind" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
+_ACEOF
+
+  LIBS="-lsocket $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_nsl_gethostbyname=yes
+else
+  ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBNSL 1
+_ACEOF
+
+  LIBS="-lnsl $LIBS"
+
+fi
+
+
+# BFD conditionally uses zlib, so we must link it in if libbfd does, by
+# using the same condition.
+
+  # Use the system's zlib library.
+  zlibdir="-L\$(top_builddir)/../zlib"
+  zlibinc="-I\$(top_srcdir)/../zlib"
+
+# Check whether --with-system-zlib was given.
+if test "${with_system_zlib+set}" = set; then :
+  withval=$with_system_zlib; if test x$with_system_zlib = xyes ; then
+    zlibdir=
+    zlibinc=
+  fi
+
+fi
+
+
+
+
+
+# BFD uses libdl when when plugins enabled.
+
+  maybe_plugins=no
+  for ac_header in dlfcn.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+ maybe_plugins=yes
+fi
+
+done
+
+  for ac_header in windows.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_windows_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WINDOWS_H 1
+_ACEOF
+ maybe_plugins=yes
+fi
+
+done
+
+
+  # Check whether --enable-plugins was given.
+if test "${enable_plugins+set}" = set; then :
+  enableval=$enable_plugins; case "${enableval}" in
+      no) plugins=no ;;
+      *) plugins=yes
+         if test "$maybe_plugins" != "yes" ; then
+	   as_fn_error $? "Building with plugin support requires a host that supports dlopen." "$LINENO" 5
+	 fi ;;
+     esac
+else
+  plugins=$maybe_plugins
+
+fi
+
+  if test "$plugins" = "yes"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlsym" >&5
+$as_echo_n "checking for library containing dlsym... " >&6; }
+if ${ac_cv_search_dlsym+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlsym ();
+int
+main ()
+{
+return dlsym ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' dl; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_dlsym=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_dlsym+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_dlsym+:} false; then :
+
+else
+  ac_cv_search_dlsym=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlsym" >&5
+$as_echo "$ac_cv_search_dlsym" >&6; }
+ac_res=$ac_cv_search_dlsym
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+  fi
+
+ if test "$plugins" = yes; then
+  PLUGINS_TRUE=
+  PLUGINS_FALSE='#'
+else
+  PLUGINS_TRUE='#'
+  PLUGINS_FALSE=
+fi
+
+
+
+
+
+# Set options
+enable_dlopen=yes
+
+
+
+
+  enable_win32_dll=no
+
+
+            # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+  enableval=$enable_shared; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+  # Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+  enableval=$enable_static; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+  withval=$with_pic; pic_mode="$withval"
+else
+  pic_mode=default
+fi
+
+
+test -z "$pic_mode" && pic_mode=default
+
+
+
+
+
+
+
+  # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+  enableval=$enable_fast_install; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/${ac_tool_prefix}file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  else
+    MAGIC_CMD=:
+  fi
+fi
+
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+  case $cc_basename in
+  nvcc*)
+    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+  *)
+    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+  esac
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+   ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+
+
+
+
+
+  lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl='-Wl,'
+    lt_prog_compiler_static='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            lt_prog_compiler_pic='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      ;;
+
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static=
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      lt_prog_compiler_pic='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+    esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      lt_prog_compiler_wl='-Xlinker '
+      lt_prog_compiler_pic='-Xcompiler -fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      else
+	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-KPIC'
+	lt_prog_compiler_static='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fPIC'
+	lt_prog_compiler_static='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='--shared'
+	lt_prog_compiler_static='--static'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fpic'
+	lt_prog_compiler_static='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static='-non_shared'
+        ;;
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-qpic'
+	lt_prog_compiler_static='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ F* | *Sun*Fortran*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl=''
+	  ;;
+	*Sun\ C*)
+	  # Sun C 5.9
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl='-Wl,'
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      lt_prog_compiler_pic='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    rdos*)
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl='-Qoption ld '
+      lt_prog_compiler_pic='-PIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic='-Kconform_pic'
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_can_build_shared=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic='-pic'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared=no
+      ;;
+    esac
+  fi
+
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic=
+    ;;
+  *)
+    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+    ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+$as_echo "$lt_prog_compiler_pic" >&6; }
+
+
+
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic_works=no
+   ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_pic_works=yes
+     fi
+   fi
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+    case $lt_prog_compiler_pic in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+     esac
+else
+    lt_prog_compiler_pic=
+     lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_static_works=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler_static_works=yes
+       fi
+     else
+       lt_cv_prog_compiler_static_works=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+    :
+else
+    lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+  if test "$hard_links" = no; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+  runpath_var=
+  allow_undefined_flag=
+  always_export_symbols=no
+  archive_cmds=
+  archive_expsym_cmds=
+  compiler_needs_object=no
+  enable_shared_with_static_runtimes=no
+  export_dynamic_flag_spec=
+  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  hardcode_automatic=no
+  hardcode_direct=no
+  hardcode_direct_absolute=no
+  hardcode_libdir_flag_spec=
+  hardcode_libdir_flag_spec_ld=
+  hardcode_libdir_separator=
+  hardcode_minus_L=no
+  hardcode_shlibpath_var=unsupported
+  inherit_rpath=no
+  link_all_deplibs=unknown
+  module_cmds=
+  module_expsym_cmds=
+  old_archive_from_new_cmds=
+  old_archive_from_expsyms_cmds=
+  thread_safe_flag_spec=
+  whole_archive_flag_spec=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
+  if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+    export_dynamic_flag_spec='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      whole_archive_flag_spec=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[3-9]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_expsym_cmds=''
+        ;;
+      m68k)
+            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_minus_L=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      export_dynamic_flag_spec='${wl}--export-all-symbols'
+      allow_undefined_flag=unsupported
+      always_export_symbols=no
+      enable_shared_with_static_runtimes=yes
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    haiku*)
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      link_all_deplibs=yes
+      ;;
+
+    interix[3-9]*)
+      hardcode_direct=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test "$tmp_diet" = no
+      then
+	tmp_addflag=' $pic_flag'
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  whole_archive_flag_spec=
+	  tmp_sharedflag='--shared' ;;
+	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  compiler_needs_object=yes
+	  ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  compiler_needs_object=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	    echo "local: *; };" >> $output_objdir/$libname.ver~
+	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	xlf* | bgf* | bgxlf* | mpixlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+	  hardcode_libdir_flag_spec=
+	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
+	  archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  if test "x$supports_anon_versioning" = xyes; then
+	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	      echo "local: *; };" >> $output_objdir/$libname.ver~
+	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    ld_shlibs=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec=
+      export_dynamic_flag_spec=
+      whole_archive_flag_spec=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag=unsupported
+      always_export_symbols=yes
+      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct=unsupported
+      fi
+      ;;
+
+    aix[4-9]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	# Also, AIX nm treats weak defined symbols like other global
+	# defined symbols, whereas GNU nm marks them as "W".
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds=''
+      hardcode_direct=yes
+      hardcode_direct_absolute=yes
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      file_list_spec='${wl}-f,'
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  hardcode_direct=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  hardcode_minus_L=yes
+	  hardcode_libdir_flag_spec='-L$libdir'
+	  hardcode_libdir_separator=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      export_dynamic_flag_spec='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag="-z nodefs"
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag=' ${wl}-bernotok'
+	  allow_undefined_flag=' ${wl}-berok'
+	  if test "$with_gnu_ld" = yes; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    whole_archive_flag_spec='$convenience'
+	  fi
+	  archive_cmds_need_lc=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_expsym_cmds=''
+        ;;
+      m68k)
+            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_minus_L=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      allow_undefined_flag=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_from_new_cmds='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes=yes
+      ;;
+
+    darwin* | rhapsody*)
+
+
+  archive_cmds_need_lc=no
+  hardcode_direct=no
+  hardcode_automatic=yes
+  hardcode_shlibpath_var=unsupported
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  else
+    whole_archive_flag_spec=''
+  fi
+  link_all_deplibs=yes
+  allow_undefined_flag="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=func_echo_all
+    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+
+  else
+  ld_shlibs=no
+  fi
+
+      ;;
+
+    dgux*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2.*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      export_dynamic_flag_spec='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_flag_spec_ld='+b $libdir'
+	hardcode_libdir_separator=:
+	hardcode_direct=yes
+	hardcode_direct_absolute=yes
+	export_dynamic_flag_spec='${wl}-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+
+	  # Older versions of the 11.00 compiler do not understand -b yet
+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler__b=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS -b"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler__b=yes
+       fi
+     else
+       lt_cv_prog_compiler__b=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test x"$lt_cv_prog_compiler__b" = xyes; then
+    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_direct=no
+	  hardcode_shlibpath_var=no
+	  ;;
+	*)
+	  hardcode_direct=yes
+	  hardcode_direct_absolute=yes
+	  export_dynamic_flag_spec='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+        save_LDFLAGS="$LDFLAGS"
+        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int foo(void) {}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+        LDFLAGS="$save_LDFLAGS"
+      else
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      inherit_rpath=yes
+      link_all_deplibs=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    newsos6)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_shlibpath_var=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	hardcode_direct=yes
+	hardcode_shlibpath_var=no
+	hardcode_direct_absolute=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	  export_dynamic_flag_spec='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     hardcode_libdir_flag_spec='-R$libdir'
+	     ;;
+	   *)
+	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+	fi
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_separator=:
+      ;;
+
+    solaris*)
+      no_undefined_flag=' -z defs'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='${wl}'
+	  archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_shlibpath_var=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      link_all_deplibs=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds='$CC -r -o $output$reload_objs'
+	  hardcode_direct=no
+        ;;
+	motorola)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var=no
+      export_dynamic_flag_spec='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag='${wl}-z,text'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag='${wl}-z,text'
+      allow_undefined_flag='${wl}-z,nodefs'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='${wl}-R,$libdir'
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      export_dynamic_flag_spec='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      ld_shlibs=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	export_dynamic_flag_spec='${wl}-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } 2>conftest.err; then
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$lt_prog_compiler_wl
+	  pic_flag=$lt_prog_compiler_pic
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$allow_undefined_flag
+	  allow_undefined_flag=
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+	  then
+	    lt_cv_archive_cmds_need_lc=no
+	  else
+	    lt_cv_archive_cmds_need_lc=yes
+	  fi
+	  allow_undefined_flag=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[lt_foo]++; }
+  if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[4-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[23].*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2.*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+  postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
+  ;;
+
+interix[3-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+
+  # Some binutils ld are patched to set DT_RUNPATH
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+  lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
+    *)				need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+   test -n "$runpath_var" ||
+   test "X$hardcode_automatic" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$hardcode_direct" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
+     test "$hardcode_minus_L" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink ||
+   test "$inherit_rpath" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+
+
+
+
+  if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dl_dlopen=yes
+else
+  ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+    ;;
+
+  *)
+    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+  lt_cv_dlopen="shl_load"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dld_shl_load=yes
+else
+  ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dl_dlopen=yes
+else
+  ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_svld_dlopen=yes
+else
+  ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dld_dld_link=yes
+else
+  ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+#line 12882 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+void fnord () __attribute__((visibility("default")));
+#endif
+
+void fnord () { int i=42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}
+_LT_EOF
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+#line 12988 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+void fnord () __attribute__((visibility("default")));
+#endif
+
+void fnord () { int i=42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}
+_LT_EOF
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP" ; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+    fi
+    ;;
+  *)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+    ;;
+  esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+  # Report which library types will actually be built
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+  test "$can_build_shared" = "no" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test "$enable_shared" = yes && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[4-9]*)
+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+      test "$enable_shared" = yes && enable_static=no
+    fi
+    ;;
+  esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+  # Make sure either enable_shared or enable_static is yes.
+  test "$enable_shared" = yes || enable_static=yes
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+
+
+
+
+
+
+
+
+
+
+
+        ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+
+
+. ${srcdir}/../../bfd/configure.host
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+    # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+  USE_MAINTAINER_MODE=no
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+   if test $USE_MAINTAINER_MODE = yes; then
+  MAINTAINER_MODE_TRUE=
+  MAINTAINER_MODE_FALSE='#'
+else
+  MAINTAINER_MODE_TRUE='#'
+  MAINTAINER_MODE_FALSE=
+fi
+
+  MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim debug setting" >&5
+$as_echo_n "checking for sim debug setting... " >&6; }
+sim_debug="0"
+# Check whether --enable-sim-debug was given.
+if test "${enable_sim_debug+set}" = set; then :
+  enableval=$enable_sim_debug; case "${enableval}" in
+  yes) sim_debug="7";;
+  no)  sim_debug="0";;
+  *)   sim_debug="($enableval)";;
+esac
+fi
+if test "$sim_debug" != "0"; then
+
+cat >>confdefs.h <<_ACEOF
+#define DEBUG $sim_debug
+_ACEOF
+
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_DEBUG $sim_debug
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_debug" >&5
+$as_echo "$sim_debug" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim stdio debug behavior" >&5
+$as_echo_n "checking for sim stdio debug behavior... " >&6; }
+sim_stdio="0"
+# Check whether --enable-sim-stdio was given.
+if test "${enable_sim_stdio+set}" = set; then :
+  enableval=$enable_sim_stdio; case "${enableval}" in
+  yes)	sim_stdio="DO_USE_STDIO";;
+  no)	sim_stdio="DONT_USE_STDIO";;
+  *)	as_fn_error $? "Unknown value $enableval passed to --enable-sim-stdio" "$LINENO" 5;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_STDIO $sim_stdio
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_stdio" >&5
+$as_echo "$sim_stdio" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim trace settings" >&5
+$as_echo_n "checking for sim trace settings... " >&6; }
+sim_trace="~TRACE_debug"
+# Check whether --enable-sim-trace was given.
+if test "${enable_sim_trace+set}" = set; then :
+  enableval=$enable_sim_trace; case "${enableval}" in
+  yes)	sim_trace="-1";;
+  no)	sim_trace="0";;
+  [-0-9]*)
+	sim_trace="'(${enableval})'";;
+  [[:lower:]]*)
+	sim_trace=""
+	for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
+	  if test x"$sim_trace" = x; then
+	    sim_trace="(TRACE_$x"
+	  else
+	    sim_trace="${sim_trace}|TRACE_$x"
+	  fi
+	done
+	sim_trace="$sim_trace)" ;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_TRACE $sim_trace
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_trace" >&5
+$as_echo "$sim_trace" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim profile settings" >&5
+$as_echo_n "checking for sim profile settings... " >&6; }
+profile="1"
+sim_profile="-1"
+# Check whether --enable-sim-profile was given.
+if test "${enable_sim_profile+set}" = set; then :
+  enableval=$enable_sim_profile; case "${enableval}" in
+  yes)	profile="1" sim_profile="-1";;
+  no)	profile="0" sim_profile="0";;
+  [-0-9]*)
+	profile="(${enableval})" sim_profile="(${enableval})";;
+  [a-z]*)
+    profile="1"
+	sim_profile=""
+	for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
+	  if test x"$sim_profile" = x; then
+	    sim_profile="(PROFILE_$x"
+	  else
+	    sim_profile="${sim_profile}|PROFILE_$x"
+	  fi
+	done
+	sim_profile="$sim_profile)" ;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define PROFILE $profile
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_PROFILE $sim_profile
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_profile" >&5
+$as_echo "$sim_profile" >&6; }
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable sim asserts" >&5
+$as_echo_n "checking whether to enable sim asserts... " >&6; }
+sim_assert="1"
+# Check whether --enable-sim-assert was given.
+if test "${enable_sim_assert+set}" = set; then :
+  enableval=$enable_sim_assert; case "${enableval}" in
+  yes)	sim_assert="1";;
+  no)	sim_assert="0";;
+  *)	as_fn_error $? "--enable-sim-assert does not take a value" "$LINENO" 5;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_ASSERT $sim_assert
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_assert" >&5
+$as_echo "$sim_assert" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking default sim environment setting" >&5
+$as_echo_n "checking default sim environment setting... " >&6; }
+sim_environment="ALL_ENVIRONMENT"
+# Check whether --enable-sim-environment was given.
+if test "${enable_sim_environment+set}" = set; then :
+  enableval=$enable_sim_environment; case "${enableval}" in
+  all | ALL)             sim_environment="ALL_ENVIRONMENT";;
+  user | USER)           sim_environment="USER_ENVIRONMENT";;
+  virtual | VIRTUAL)     sim_environment="VIRTUAL_ENVIRONMENT";;
+  operating | OPERATING) sim_environment="OPERATING_ENVIRONMENT";;
+  *)   as_fn_error $? "Unknown value $enableval passed to --enable-sim-environment" "$LINENO" 5;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_ENVIRONMENT $sim_environment
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_environment" >&5
+$as_echo "$sim_environment" >&6; }
+
+
+sim_inline="-DDEFAULT_INLINE=0"
+# Check whether --enable-sim-inline was given.
+if test "${enable_sim_inline+set}" = set; then :
+  enableval=$enable_sim_inline; sim_inline=""
+case "$enableval" in
+  no)		sim_inline="-DDEFAULT_INLINE=0";;
+  0)		sim_inline="-DDEFAULT_INLINE=0";;
+  yes | 2)	sim_inline="-DDEFAULT_INLINE=ALL_C_INLINE";;
+  1)		sim_inline="-DDEFAULT_INLINE=INLINE_LOCALS";;
+  *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
+       new_flag=""
+       case "$x" in
+	 *_INLINE=*)	new_flag="-D$x";;
+	 *=*)		new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
+	 *_INLINE)	new_flag="-D$x=ALL_C_INLINE";;
+	 *)		new_flag="-D$x""_INLINE=ALL_C_INLINE";;
+       esac
+       if test x"$sim_inline" = x""; then
+	 sim_inline="$new_flag"
+       else
+	 sim_inline="$sim_inline $new_flag"
+       fi
+     done;;
+esac
+if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then
+  echo "Setting inline flags = $sim_inline" 6>&1
+fi
+fi
+
+
+
+
+# Check whether --with-pkgversion was given.
+if test "${with_pkgversion+set}" = set; then :
+  withval=$with_pkgversion; case "$withval" in
+      yes) as_fn_error $? "package version not specified" "$LINENO" 5 ;;
+      no)  PKGVERSION= ;;
+      *)   PKGVERSION="($withval) " ;;
+     esac
+else
+  PKGVERSION="(SIM) "
+
+fi
+
+
+
+
+
+# Check whether --with-bugurl was given.
+if test "${with_bugurl+set}" = set; then :
+  withval=$with_bugurl; case "$withval" in
+      yes) as_fn_error $? "bug URL not specified" "$LINENO" 5 ;;
+      no)  BUGURL=
+	   ;;
+      *)   BUGURL="$withval"
+	   ;;
+     esac
+else
+  BUGURL="http://www.gnu.org/software/gdb/bugs/"
+
+fi
+
+  case ${BUGURL} in
+  "")
+    REPORT_BUGS_TO=
+    REPORT_BUGS_TEXI=
+    ;;
+  *)
+    REPORT_BUGS_TO="<$BUGURL>"
+    REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`}
+    ;;
+  esac;
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define PKGVERSION "$PKGVERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define REPORT_BUGS_TO "$REPORT_BUGS_TO"
+_ACEOF
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
+$as_echo_n "checking return type of signal handlers... " >&6; }
+if ${ac_cv_type_signal+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <signal.h>
+
+int
+main ()
+{
+return *(signal (0, 0)) (0) == 1;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_type_signal=int
+else
+  ac_cv_type_signal=void
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
+$as_echo "$ac_cv_type_signal" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define RETSIGTYPE $ac_cv_type_signal
+_ACEOF
+
+
+
+
+
+
+
+
+wire_endian="LITTLE"
+default_endian=""
+# Check whether --enable-sim-endian was given.
+if test "${enable_sim_endian+set}" = set; then :
+  enableval=$enable_sim_endian; case "${enableval}" in
+  b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_BIG";;
+  l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_LITTLE";;
+  yes)	 if test x"$wire_endian" != x; then
+	   sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}"
+	 else
+	  if test x"$default_endian" != x; then
+	     sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}"
+	   else
+	     echo "No hard-wired endian for target $target" 1>&6
+	     sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_UNKNOWN"
+	   fi
+	 fi;;
+  no)	 if test x"$default_endian" != x; then
+	   sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}"
+	 else
+	   if test x"$wire_endian" != x; then
+	     sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}"
+	   else
+	     echo "No default endian for target $target" 1>&6
+	     sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_UNKNOWN"
+	   fi
+	 fi;;
+  *)	 as_fn_error $? "\"Unknown value $enableval for --enable-sim-endian\"" "$LINENO" 5; sim_endian="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then
+  echo "Setting endian flags = $sim_endian" 6>&1
+fi
+else
+  if test x"$default_endian" != x; then
+  sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}"
+else
+  if test x"$wire_endian" != x; then
+    sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}"
+  else
+    sim_endian=
+  fi
+fi
+fi
+
+wire_alignment="STRICT_ALIGNMENT"
+default_alignment="STRICT_ALIGNMENT"
+
+# Check whether --enable-sim-alignment was given.
+if test "${enable_sim_alignment+set}" = set; then :
+  enableval=$enable_sim_alignment; case "${enableval}" in
+  strict | STRICT)       sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";;
+  nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";;
+  forced | FORCED)       sim_alignment="-DWITH_ALIGNMENT=FORCED_ALIGNMENT";;
+  yes) if test x"$wire_alignment" != x; then
+	 sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
+       else
+         if test x"$default_alignment" != x; then
+           sim_alignment="-DWITH_ALIGNMENT=${default_alignment}"
+         else
+	   echo "No hard-wired alignment for target $target" 1>&6
+	   sim_alignment="-DWITH_ALIGNMENT=0"
+         fi
+       fi;;
+  no)  if test x"$default_alignment" != x; then
+	 sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
+       else
+         if test x"$wire_alignment" != x; then
+	   sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${wire_alignment}"
+         else
+           echo "No default alignment for target $target" 1>&6
+           sim_alignment="-DWITH_DEFAULT_ALIGNMENT=0"
+         fi
+       fi;;
+  *)   as_fn_error $? "\"Unknown value $enableval passed to --enable-sim-alignment\"" "$LINENO" 5; sim_alignment="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then
+  echo "Setting alignment flags = $sim_alignment" 6>&1
+fi
+else
+  if test x"$default_alignment" != x; then
+  sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
+else
+  if test x"$wire_alignment" != x; then
+    sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
+  else
+    sim_alignment=
+  fi
+fi
+fi
+
+
+# Check whether --enable-werror was given.
+if test "${enable_werror+set}" = set; then :
+  enableval=$enable_werror; case "${enableval}" in
+     yes | y) ERROR_ON_WARNING="yes" ;;
+     no | n)  ERROR_ON_WARNING="no" ;;
+     *) as_fn_error $? "bad value ${enableval} for --enable-werror" "$LINENO" 5 ;;
+   esac
+fi
+
+
+# Enable -Werror by default when using gcc
+if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
+    ERROR_ON_WARNING=yes
+fi
+
+WERROR_CFLAGS=""
+if test "${ERROR_ON_WARNING}" = yes ; then
+# NOTE: Disabled in the sim dir due to most sims generating warnings.
+#    WERROR_CFLAGS="-Werror"
+     true
+fi
+
+build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
+-Wpointer-sign \
+-Wno-unused -Wunused-value -Wunused-function \
+-Wno-switch -Wno-char-subscripts -Wmissing-prototypes
+-Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type \
+-Wold-style-declaration -Wold-style-definition"
+
+# Enable -Wno-format by default when using gcc on mingw since many
+# GCC versions complain about %I64.
+case "${host}" in
+  *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
+  *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
+esac
+
+# Check whether --enable-build-warnings was given.
+if test "${enable_build_warnings+set}" = set; then :
+  enableval=$enable_build_warnings; case "${enableval}" in
+  yes)	;;
+  no)	build_warnings="-w";;
+  ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
+        build_warnings="${build_warnings} ${t}";;
+  *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
+        build_warnings="${t} ${build_warnings}";;
+  *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
+esac
+if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
+  echo "Setting compiler warning flags = $build_warnings" 6>&1
+fi
+fi
+# Check whether --enable-sim-build-warnings was given.
+if test "${enable_sim_build_warnings+set}" = set; then :
+  enableval=$enable_sim_build_warnings; case "${enableval}" in
+  yes)	;;
+  no)	build_warnings="-w";;
+  ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
+        build_warnings="${build_warnings} ${t}";;
+  *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
+        build_warnings="${t} ${build_warnings}";;
+  *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
+esac
+if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
+  echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
+fi
+fi
+WARN_CFLAGS=""
+if test "x${build_warnings}" != x -a "x$GCC" = xyes
+then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking compiler warning flags" >&5
+$as_echo_n "checking compiler warning flags... " >&6; }
+    # Separate out the -Werror flag as some files just cannot be
+    # compiled with it enabled.
+    for w in ${build_warnings}; do
+	case $w in
+	-Werr*) WERROR_CFLAGS=-Werror ;;
+	*) # Check that GCC accepts it
+	    saved_CFLAGS="$CFLAGS"
+	    CFLAGS="$CFLAGS $w"
+	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  WARN_CFLAGS="${WARN_CFLAGS} $w"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	    CFLAGS="$saved_CFLAGS"
+	esac
+    done
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${WARN_CFLAGS} ${WERROR_CFLAGS}" >&5
+$as_echo "${WARN_CFLAGS} ${WERROR_CFLAGS}" >&6; }
+fi
+
+
+
+cgen_breaks=""
+if grep CGEN_MAINT $srcdir/Makefile.in >/dev/null; then
+cgen_breaks="break cgen_rtx_error";
+fi
+
+ac_config_files="$ac_config_files Makefile.sim:Makefile.in"
+
+ac_config_files="$ac_config_files Make-common.sim:../common/Make-common.in"
+
+ac_config_files="$ac_config_files .gdbinit:../common/gdbinit.in"
+
+ac_config_commands="$ac_config_commands Makefile"
+
+ac_config_commands="$ac_config_commands stamp-h"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+	cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+	  mv -f confcache "$cache_file"$$ &&
+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+	  mv -f confcache "$cache_file" ;;
+	esac
+      fi
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+if test -z "${GMAKE_TRUE}" && test -z "${GMAKE_FALSE}"; then
+  as_fn_error $? "conditional \"GMAKE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${PLUGINS_TRUE}" && test -z "${PLUGINS_FALSE}"; then
+  as_fn_error $? "conditional \"PLUGINS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+  as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.69,
+  with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in SHELL \
+ECHO \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+AR \
+AR_FLAGS \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_wl \
+lt_prog_compiler_pic \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_flag_spec_ld \
+hardcode_libdir_separator \
+fix_srcfile_path \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[\\\\\\\`\\"\\\$]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+sys_lib_dlsearch_path_spec; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[\\\\\\\`\\"\\\$]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+xsi_shell='$xsi_shell'
+lt_shell_append='$lt_shell_append'
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    TIMESTAMP='$TIMESTAMP'
+    RM='$RM'
+    ofile='$ofile'
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
+    "depdir") CONFIG_COMMANDS="$CONFIG_COMMANDS depdir" ;;
+    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+    "Makefile.sim") CONFIG_FILES="$CONFIG_FILES Makefile.sim:Makefile.in" ;;
+    "Make-common.sim") CONFIG_FILES="$CONFIG_FILES Make-common.sim:../common/Make-common.in" ;;
+    ".gdbinit") CONFIG_FILES="$CONFIG_FILES .gdbinit:../common/gdbinit.in" ;;
+    "Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
+    "stamp-h") CONFIG_COMMANDS="$CONFIG_COMMANDS stamp-h" ;;
+
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp= ac_tmp=
+  trap 'exit_status=$?
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = "\a"
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
+h
+s///
+s/^/:/
+s/[	 ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[	 ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any.  Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  for (key in D) D_is_set[key] = 1
+  FS = "\a"
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+  line = \$ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #undef with comments.  This is necessary, for example,
+    # in the case of _POSIX_SOURCE, which is predefined and required
+    # on some systems where configure will not decide to define it.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$ac_tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+  s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$ac_tmp/stdin"
+  case $ac_file in
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+  if test x"$ac_file" != x-; then
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f "$ac_file"
+      mv "$ac_tmp/config.h" "$ac_file" \
+	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    fi
+  else
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
+  fi
+ ;;
+
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "depdir":C) $SHELL $ac_aux_dir/mkinstalldirs $DEPDIR ;;
+    "libtool":C)
+
+    # See if we are running on zsh, and set the options which allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}" ; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile="${ofile}T"
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=""
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking.  This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  case $xsi_shell in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+  func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+  # positional parameters, so assign one to ordinary parameter first.
+  func_stripname_result=${3}
+  func_stripname_result=${func_stripname_result#"${1}"}
+  func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=${1%%=*}
+  func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  case ${1} in
+    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+    *)    func_lo2o_result=${1} ;;
+  esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=$(( $* ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=${#1}
+}
+
+_LT_EOF
+    ;;
+  *) # Bourne compatible functions.
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+}
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+  case ${2} in
+    .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+    *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[^=]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+  func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=`expr "$@"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$1+=\$2"
+}
+_LT_EOF
+    ;;
+  *)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$1=\$$1\$2"
+}
+
+_LT_EOF
+    ;;
+  esac
+
+
+  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+
+ ;;
+    "Makefile":C) echo "Merging Makefile.sim+Make-common.sim into Makefile ..."
+ rm -f Makesim1.tmp Makesim2.tmp Makefile
+ sed -n -e '/^## COMMON_PRE_/,/^## End COMMON_PRE_/ p' <Make-common.sim >Makesim1.tmp
+ sed -n -e '/^## COMMON_POST_/,/^## End COMMON_POST_/ p' <Make-common.sim >Makesim2.tmp
+ sed -e '/^## COMMON_PRE_/ r Makesim1.tmp' \
+	-e '/^## COMMON_POST_/ r Makesim2.tmp' \
+	<Makefile.sim >Makefile
+ rm -f Makefile.sim Make-common.sim Makesim1.tmp Makesim2.tmp
+ ;;
+    "stamp-h":C) echo > stamp-h ;;
+
+  esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
diff --git a/sim/pru/configure.ac b/sim/pru/configure.ac
new file mode 100644
index 0000000000..e7132b4493
--- /dev/null
+++ b/sim/pru/configure.ac
@@ -0,0 +1,31 @@
+dnl Process this file with autoconf to produce a configure script.
+
+dnl Copyright (C) 2016-2019 Free Software Foundation, Inc.
+dnl Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+dnl
+dnl This file is part of the GNU simulators.
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 3 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
+dnl
+AC_PREREQ(2.64)dnl
+AC_INIT(Makefile.in)
+sinclude(../common/acinclude.m4)
+
+SIM_AC_COMMON
+
+SIM_AC_OPTION_ENDIAN(LITTLE)
+SIM_AC_OPTION_ALIGNMENT(STRICT_ALIGNMENT,STRICT_ALIGNMENT)
+SIM_AC_OPTION_WARNINGS
+
+SIM_AC_OUTPUT
diff --git a/sim/pru/interp.c b/sim/pru/interp.c
new file mode 100644
index 0000000000..0e783c121c
--- /dev/null
+++ b/sim/pru/interp.c
@@ -0,0 +1,848 @@
+/* Simulator for the Texas Instruments PRU processor
+   Copyright 2009-2019 Free Software Foundation, Inc.
+   Inspired by the Microblaze simulator
+   Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+
+   This file is part of the simulators.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include "config.h"
+#include <stdbool.h>
+#include <stdint.h>
+#include <stddef.h>
+#include "bfd.h"
+#include "gdb/callback.h"
+#include "libiberty.h"
+#include "gdb/remote-sim.h"
+#include "sim-main.h"
+#include "sim-assert.h"
+#include "sim-options.h"
+#include "sim-syscall.h"
+#include "pru.h"
+
+/* DMEM zero address is perfectly valid.  But if CRT leaves the first word
+   alone, we can use it as a trap to catch NULL pointer access.  */
+static bfd_boolean abort_on_dmem_zero_access;
+
+enum {
+  OPTION_ERROR_NULL_DEREF = OPTION_START,
+};
+
+/* Extract (from PRU endianess) and return an integer in HOST's endianness.  */
+static uint32_t
+pru_extract_unsigned_integer (uint8_t *addr, size_t len)
+{
+  uint32_t retval;
+  uint8_t *p;
+  uint8_t *startaddr = addr;
+  uint8_t *endaddr = startaddr + len;
+
+  /* Start at the most significant end of the integer, and work towards
+     the least significant.  */
+  retval = 0;
+
+  for (p = endaddr; p > startaddr;)
+    retval = (retval << 8) | * -- p;
+  return retval;
+}
+
+/* Store "val" (which is in HOST's endianess) into "addr"
+   (using PRU's endianness).  */
+static void
+pru_store_unsigned_integer (uint8_t *addr, size_t len, uint32_t val)
+{
+  uint8_t *p;
+  uint8_t *startaddr = (uint8_t *)addr;
+  uint8_t *endaddr = startaddr + len;
+
+  for (p = startaddr; p < endaddr;)
+    {
+      *p++ = val & 0xff;
+      val >>= 8;
+    }
+}
+
+/* Extract a field value from CPU register using the given REGSEL selector.
+
+   Byte number maps directly to first values of RSEL, so we can
+   safely use "regsel" as a register byte number (0..3).  */
+static inline uint32_t
+extract_regval (uint32_t val, uint32_t regsel)
+{
+  ASSERT (RSEL_7_0 == 0);
+  ASSERT (RSEL_15_8 == 1);
+  ASSERT (RSEL_23_16 == 2);
+  ASSERT (RSEL_31_24 == 3);
+
+  switch (regsel)
+    {
+    case RSEL_7_0:    return (val >> 0) & 0xff;
+    case RSEL_15_8:   return (val >> 8) & 0xff;
+    case RSEL_23_16:  return (val >> 16) & 0xff;
+    case RSEL_31_24:  return (val >> 24) & 0xff;
+    case RSEL_15_0:   return (val >> 0) & 0xffff;
+    case RSEL_23_8:   return (val >> 8) & 0xffff;
+    case RSEL_31_16:  return (val >> 16) & 0xffff;
+    case RSEL_31_0:   return val;
+    default:	      sim_io_error (NULL, "invalid regsel");
+    }
+}
+
+/* Write a value into CPU subregister pointed by reg and regsel.  */
+static inline void
+write_regval (uint32_t val, uint32_t *reg, uint32_t regsel)
+{
+  uint32_t mask, sh;
+
+  switch (regsel)
+    {
+    case RSEL_7_0:    mask = (0xffu << 0); sh = 0; break;
+    case RSEL_15_8:   mask = (0xffu << 8); sh = 8; break;
+    case RSEL_23_16:  mask = (0xffu << 16); sh = 16; break;
+    case RSEL_31_24:  mask = (0xffu << 24); sh = 24; break;
+    case RSEL_15_0:   mask = (0xffffu << 0); sh = 0; break;
+    case RSEL_23_8:   mask = (0xffffu << 8); sh = 8; break;
+    case RSEL_31_16:  mask = (0xffffu << 16); sh = 16; break;
+    case RSEL_31_0:   mask = 0xffffffffu; sh = 0; break;
+    default:	      sim_io_error (NULL, "invalid regsel");
+    }
+
+  *reg = (*reg & ~mask) | ((val << sh) & mask);
+}
+
+/* Convert the given IMEM word address to a regular byte address used by the
+   GNU ELF container.  */
+static uint32_t
+imem_wordaddr_to_byteaddr (SIM_CPU *cpu, uint16_t wa)
+{
+  return (((uint32_t) wa << 2) & IMEM_ADDR_MASK) | PC_ADDR_SPACE_MARKER;
+}
+
+/* Convert the given ELF text byte address to IMEM word address.  */
+static uint16_t
+imem_byteaddr_to_wordaddr (SIM_CPU *cpu, uint32_t ba)
+{
+  return (ba >> 2) & 0xffff;
+}
+
+
+/* Store "nbytes" into DMEM "addr" from CPU register file, starting with
+   register "regn", and byte "regb" within it.  */
+static inline void
+pru_reg2dmem (SIM_CPU *cpu, uint32_t addr, unsigned int nbytes,
+	      int regn, int regb)
+{
+  /* GDB assumes unconditional access to all memories, so enable additional
+     checks only in standalone mode.  */
+  bool standalone = (STATE_OPEN_KIND (CPU_STATE (cpu)) == SIM_OPEN_STANDALONE);
+
+  if (abort_on_dmem_zero_access && addr < 4)
+    {
+      sim_core_signal (CPU_STATE (cpu), cpu, PC_byteaddr, write_map,
+		       nbytes, addr, write_transfer,
+		       sim_core_unmapped_signal);
+    }
+  else if (standalone && ((addr >= PC_ADDR_SPACE_MARKER)
+			  || (addr + nbytes > PC_ADDR_SPACE_MARKER)))
+    {
+      sim_core_signal (CPU_STATE (cpu), cpu, PC_byteaddr, write_map,
+		       nbytes, addr, write_transfer,
+		       sim_core_unmapped_signal);
+    }
+  else if ((regn * 4 + regb + nbytes) > (32 * 4))
+    {
+      sim_io_eprintf (CPU_STATE (cpu),
+		      "SBBO/SBCO with invalid store data length\n");
+      RAISE_SIGILL (CPU_STATE (cpu));
+    }
+  else
+    {
+      TRACE_MEMORY (cpu, "write of %d bytes to %08x", nbytes, addr);
+      while (nbytes--)
+	{
+	  sim_core_write_1 (cpu,
+			    PC_byteaddr,
+			    write_map,
+			    addr++,
+			    extract_regval (CPU.regs[regn], regb));
+
+	  if (++regb >= 4)
+	    {
+	      regb = 0;
+	      regn++;
+	    }
+	}
+    }
+}
+
+/* Load "nbytes" from DMEM "addr" into CPU register file, starting with
+   register "regn", and byte "regb" within it.  */
+static inline void
+pru_dmem2reg (SIM_CPU *cpu, uint32_t addr, unsigned int nbytes,
+	      int regn, int regb)
+{
+  /* GDB assumes unconditional access to all memories, so enable additional
+     checks only in standalone mode.  */
+  bool standalone = (STATE_OPEN_KIND (CPU_STATE (cpu)) == SIM_OPEN_STANDALONE);
+
+  if (abort_on_dmem_zero_access && addr < 4)
+    {
+      sim_core_signal (CPU_STATE (cpu), cpu, PC_byteaddr, read_map,
+		       nbytes, addr, read_transfer,
+		       sim_core_unmapped_signal);
+    }
+  else if (standalone && ((addr >= PC_ADDR_SPACE_MARKER)
+			  || (addr + nbytes > PC_ADDR_SPACE_MARKER)))
+    {
+      /* This check is necessary because our IMEM "address space"
+	 is not really accessible, yet we have mapped it as a generic
+	 memory space.  */
+      sim_core_signal (CPU_STATE (cpu), cpu, PC_byteaddr, read_map,
+		       nbytes, addr, read_transfer,
+		       sim_core_unmapped_signal);
+    }
+  else if ((regn * 4 + regb + nbytes) > (32 * 4))
+    {
+      sim_io_eprintf (CPU_STATE (cpu),
+		      "LBBO/LBCO with invalid load data length\n");
+      RAISE_SIGILL (CPU_STATE (cpu));
+    }
+  else
+    {
+      unsigned int b;
+      TRACE_MEMORY (cpu, "read of %d bytes from %08x", nbytes, addr);
+      while (nbytes--)
+	{
+	  b = sim_core_read_1 (cpu, PC_byteaddr, read_map, addr++);
+
+	  /* Reuse the fact the Register Byte Number maps directly to RSEL.  */
+	  ASSERT (RSEL_7_0 == 0);
+	  write_regval (b, &CPU.regs[regn], regb);
+
+	  if (++regb >= 4)
+	    {
+	      regb = 0;
+	      regn++;
+	    }
+	}
+    }
+}
+
+/* Set reset values of general-purpose registers.  */
+static void
+set_initial_gprs (SIM_CPU *cpu)
+{
+  int i;
+
+  /* Set up machine just out of reset.  */
+  CPU_PC_SET (cpu, 0);
+  PC_ADDR_SPACE_MARKER = IMEM_ADDR_DEFAULT; /* from default linker script? */
+
+  /* Clean out the GPRs.  */
+  for (i = 0; i < ARRAY_SIZE (CPU.regs); i++)
+    CPU.regs[i] = 0;
+  for (i = 0; i < ARRAY_SIZE (CPU.macregs); i++)
+    CPU.macregs[i] = 0;
+
+  CPU.loop.looptop = CPU.loop.loopend = 0;
+  CPU.loop.loop_in_progress = 0;
+  CPU.loop.loop_counter = 0;
+
+  CPU.carry = 0;
+  CPU.insts = 0;
+  CPU.cycles = 0;
+
+  /* AM335x should provide sane defaults.  */
+  CPU.ctable[0] = 0x00020000;
+  CPU.ctable[1] = 0x48040000;
+  CPU.ctable[2] = 0x4802a000;
+  CPU.ctable[3] = 0x00030000;
+  CPU.ctable[4] = 0x00026000;
+  CPU.ctable[5] = 0x48060000;
+  CPU.ctable[6] = 0x48030000;
+  CPU.ctable[7] = 0x00028000;
+  CPU.ctable[8] = 0x46000000;
+  CPU.ctable[9] = 0x4a100000;
+  CPU.ctable[10] = 0x48318000;
+  CPU.ctable[11] = 0x48022000;
+  CPU.ctable[12] = 0x48024000;
+  CPU.ctable[13] = 0x48310000;
+  CPU.ctable[14] = 0x481cc000;
+  CPU.ctable[15] = 0x481d0000;
+  CPU.ctable[16] = 0x481a0000;
+  CPU.ctable[17] = 0x4819c000;
+  CPU.ctable[18] = 0x48300000;
+  CPU.ctable[19] = 0x48302000;
+  CPU.ctable[20] = 0x48304000;
+  CPU.ctable[21] = 0x00032400;
+  CPU.ctable[22] = 0x480c8000;
+  CPU.ctable[23] = 0x480ca000;
+  CPU.ctable[24] = 0x00000000;
+  CPU.ctable[25] = 0x00002000;
+  CPU.ctable[26] = 0x0002e000;
+  CPU.ctable[27] = 0x00032000;
+  CPU.ctable[28] = 0x00000000;
+  CPU.ctable[29] = 0x49000000;
+  CPU.ctable[30] = 0x40000000;
+  CPU.ctable[31] = 0x80000000;
+}
+
+/* Map regsel selector to subregister field width.  */
+static inline unsigned int
+regsel_width (uint32_t regsel)
+{
+  switch (regsel)
+    {
+    case RSEL_7_0:    return 8;
+    case RSEL_15_8:   return 8;
+    case RSEL_23_16:  return 8;
+    case RSEL_31_24:  return 8;
+    case RSEL_15_0:   return 16;
+    case RSEL_23_8:   return 16;
+    case RSEL_31_16:  return 16;
+    case RSEL_31_0:   return 32;
+    default:	      sim_io_error (NULL, "invalid regsel");
+    }
+}
+
+/* Handle XIN instruction addressing the MAC peripheral.  */
+static void
+pru_sim_xin_mac (SIM_DESC sd, SIM_CPU *cpu, unsigned int rd_regn,
+		 unsigned int rdb, unsigned int length)
+{
+  if (rd_regn < 25 || (rd_regn * 4 + rdb + length) > (27 + 1) * 4)
+    sim_io_error (sd, "XIN MAC: invalid transfer regn=%u.%u, length=%u\n",
+		  rd_regn, rdb, length);
+
+  /* Copy from MAC to PRU regs.  Ranges have been validated above.  */
+  while (length--)
+    {
+      write_regval (CPU.macregs[rd_regn - 25] >> (rdb * 8),
+		    &CPU.regs[rd_regn],
+		    rdb);
+      if (++rdb == 4)
+	{
+	  rdb = 0;
+	  rd_regn++;
+	}
+    }
+}
+
+/* Handle XIN instruction.  */
+static void
+pru_sim_xin (SIM_DESC sd, SIM_CPU *cpu, unsigned int wba,
+	     unsigned int rd_regn, unsigned int rdb, unsigned int length)
+{
+  if (wba == 0)
+    {
+      pru_sim_xin_mac (sd, cpu, rd_regn, rdb, length);
+    }
+  else if (wba == XFRID_SCRATCH_BANK_0 || wba == XFRID_SCRATCH_BANK_1
+	   || wba == XFRID_SCRATCH_BANK_2 || wba == XFRID_SCRATCH_BANK_PEER)
+    {
+      while (length--)
+	{
+	  unsigned int val;
+
+	  val = extract_regval (CPU.scratchpads[wba][rd_regn], rdb);
+	  write_regval (val, &CPU.regs[rd_regn], rdb);
+	  if (++rdb == 4)
+	    {
+	      rdb = 0;
+	      rd_regn++;
+	    }
+	}
+    }
+  else if (wba == 254 || wba == 255)
+    {
+      /* FILL/ZERO pseudos implemented via XIN.  */
+      unsigned int fillbyte = (wba == 254) ? 0xff : 0x00;
+      while (length--)
+	{
+	  write_regval (fillbyte, &CPU.regs[rd_regn], rdb);
+	  if (++rdb == 4)
+	    {
+	      rdb = 0;
+	      rd_regn++;
+	    }
+	}
+    }
+  else
+    {
+      sim_io_error (sd, "XIN: XFR device %d not supported.\n", wba);
+    }
+}
+
+/* Handle XOUT instruction addressing the MAC peripheral.  */
+static void
+pru_sim_xout_mac (SIM_DESC sd, SIM_CPU *cpu, unsigned int rd_regn,
+		  unsigned int rdb, unsigned int length)
+{
+  const int modereg_accessed = (rd_regn == 25);
+
+  /* Multiple Accumulate.  */
+  if (rd_regn < 25 || (rd_regn * 4 + rdb + length) > (27 + 1) * 4)
+    sim_io_error (sd, "XOUT MAC: invalid transfer regn=%u.%u, length=%u\n",
+		  rd_regn, rdb, length);
+
+  /* Copy from PRU to MAC regs.  Ranges have been validated above.  */
+  while (length--)
+    {
+      write_regval (CPU.regs[rd_regn] >> (rdb * 8),
+		    &CPU.macregs[rd_regn - 25],
+		    rdb);
+      if (++rdb == 4)
+	{
+	  rdb = 0;
+	  rd_regn++;
+	}
+    }
+
+  if (modereg_accessed
+      && (CPU.macregs[PRU_MACREG_MODE] & MAC_R25_MAC_MODE_MASK))
+    {
+      /* MUL/MAC operands are sampled every XOUT in multiply and
+	 accumulate mode.  */
+      uint64_t prod, oldsum, sum;
+      CPU.macregs[PRU_MACREG_OP_0] = CPU.regs[28];
+      CPU.macregs[PRU_MACREG_OP_1] = CPU.regs[29];
+
+      prod = CPU.macregs[PRU_MACREG_OP_0];
+      prod *= (uint64_t)CPU.macregs[PRU_MACREG_OP_1];
+
+      oldsum = CPU.macregs[PRU_MACREG_ACC_L];
+      oldsum += (uint64_t)CPU.macregs[PRU_MACREG_ACC_H] << 32;
+      sum = oldsum + prod;
+
+      CPU.macregs[PRU_MACREG_PROD_L] = sum & 0xfffffffful;
+      CPU.macregs[PRU_MACREG_PROD_H] = sum >> 32;
+      CPU.macregs[PRU_MACREG_ACC_L] = CPU.macregs[PRU_MACREG_PROD_L];
+      CPU.macregs[PRU_MACREG_ACC_H] = CPU.macregs[PRU_MACREG_PROD_H];
+
+      if (oldsum > sum)
+	CPU.macregs[PRU_MACREG_MODE] |= MAC_R25_ACC_CARRY_MASK;
+    }
+  if (modereg_accessed
+      && (CPU.macregs[PRU_MACREG_MODE] & MAC_R25_ACC_CARRY_MASK))
+    {
+      /* store 1 to clear.  */
+      CPU.macregs[PRU_MACREG_MODE] &= ~MAC_R25_ACC_CARRY_MASK;
+      CPU.macregs[PRU_MACREG_ACC_L] = 0;
+      CPU.macregs[PRU_MACREG_ACC_H] = 0;
+    }
+
+}
+
+/* Handle XOUT instruction.  */
+static void
+pru_sim_xout (SIM_DESC sd, SIM_CPU *cpu, unsigned int wba,
+	      unsigned int rd_regn, unsigned int rdb, unsigned int length)
+{
+  if (wba == 0)
+    {
+      pru_sim_xout_mac (sd, cpu, rd_regn, rdb, length);
+    }
+  else if (wba == XFRID_SCRATCH_BANK_0 || wba == XFRID_SCRATCH_BANK_1
+	   || wba == XFRID_SCRATCH_BANK_2 || wba == XFRID_SCRATCH_BANK_PEER)
+    {
+      while (length--)
+	{
+	  unsigned int val;
+
+	  val = extract_regval (CPU.regs[rd_regn], rdb);
+	  write_regval (val, &CPU.scratchpads[wba][rd_regn], rdb);
+	  if (++rdb == 4)
+	    {
+	      rdb = 0;
+	      rd_regn++;
+	    }
+	}
+    }
+  else
+    sim_io_error (sd, "XOUT: XFR device %d not supported.\n", wba);
+}
+
+/* Handle XCHG instruction.  */
+static void
+pru_sim_xchg (SIM_DESC sd, SIM_CPU *cpu, unsigned int wba,
+	      unsigned int rd_regn, unsigned int rdb, unsigned int length)
+{
+  if (wba == XFRID_SCRATCH_BANK_0 || wba == XFRID_SCRATCH_BANK_1
+	   || wba == XFRID_SCRATCH_BANK_2 || wba == XFRID_SCRATCH_BANK_PEER)
+    {
+      while (length--)
+	{
+	  unsigned int valr, vals;
+
+	  valr = extract_regval (CPU.regs[rd_regn], rdb);
+	  vals = extract_regval (CPU.scratchpads[wba][rd_regn], rdb);
+	  write_regval (valr, &CPU.scratchpads[wba][rd_regn], rdb);
+	  write_regval (vals, &CPU.regs[rd_regn], rdb);
+	  if (++rdb == 4)
+	    {
+	      rdb = 0;
+	      rd_regn++;
+	    }
+	}
+    }
+  else
+    sim_io_error (sd, "XOUT: XFR device %d not supported.\n", wba);
+}
+
+/* Handle syscall simulation.  Its ABI is specific to the GNU simulator.  */
+static void
+pru_sim_syscall (SIM_DESC sd, SIM_CPU *cpu)
+{
+  /* If someday TI confirms that the "reserved" HALT opcode fields
+     can be used for extra arguments, then maybe we can embed
+     the syscall number there.  Until then, let's use R1.  */
+  const uint32_t syscall_num = CPU.regs[1];
+  long ret;
+
+  ret = sim_syscall (cpu, syscall_num,
+		     CPU.regs[14], CPU.regs[15],
+		     CPU.regs[16], CPU.regs[17]);
+  CPU.regs[14] = ret;
+}
+
+/* Simulate one instruction.  */
+static void
+sim_step_once (SIM_DESC sd)
+{
+  SIM_CPU *cpu = STATE_CPU (sd, 0);
+  const struct pru_opcode *op;
+  uint32_t inst;
+  uint32_t _RDVAL, OP2;	/* intermediate values.  */
+  int rd_is_modified = 0;	/* RD modified and must be stored back.  */
+
+  /* Fetch the initial instruction that we'll decode.  */
+  inst = sim_core_read_4 (cpu, PC_byteaddr, exec_map, PC_byteaddr);
+  TRACE_MEMORY (cpu, "read of insn 0x%08x from %08x", inst, PC_byteaddr);
+
+  op = pru_find_opcode (inst);
+
+  if (!op)
+    {
+      sim_io_eprintf (sd, "Unknown instruction 0x%04x\n", inst);
+      RAISE_SIGILL (sd);
+    }
+  else
+    {
+      TRACE_DISASM (cpu, PC_byteaddr);
+
+      /* In multiply-only mode, R28/R29 operands are sampled on every clock
+	 cycle.  */
+      if ((CPU.macregs[PRU_MACREG_MODE] & MAC_R25_MAC_MODE_MASK) == 0)
+	{
+	  CPU.macregs[PRU_MACREG_OP_0] = CPU.regs[28];
+	  CPU.macregs[PRU_MACREG_OP_1] = CPU.regs[29];
+	}
+
+      switch (op->type)
+	{
+/* Helper macro to improve clarity of pru.isa.  The empty while is a
+   guard against using RD as a left-hand side value.  */
+#define RD  do { } while (0); rd_is_modified = 1; _RDVAL
+#define INSTRUCTION(NAME, ACTION)		\
+	case prui_ ## NAME:			\
+		ACTION;				\
+	  break;
+#include "pru.isa"
+#undef INSTRUCTION
+#undef RD
+
+	default:
+	  RAISE_SIGILL (sd);
+	}
+
+      if (rd_is_modified)
+	write_regval (_RDVAL, &CPU.regs[RD_REGN], RDSEL);
+
+      /* Don't treat r30 and r31 as regular registers, they are I/O!  */
+      CPU.regs[30] = 0;
+      CPU.regs[31] = 0;
+
+      /* Handle PC match of loop end.  */
+      if (LOOP_IN_PROGRESS && (PC == LOOPEND))
+	{
+	  SIM_ASSERT (LOOPCNT > 0);
+	  if (--LOOPCNT == 0)
+	    LOOP_IN_PROGRESS = 0;
+	  else
+	    PC = LOOPTOP;
+	}
+
+      /* In multiply-only mode, MAC does multiplication every cycle.  */
+      if ((CPU.macregs[PRU_MACREG_MODE] & MAC_R25_MAC_MODE_MASK) == 0)
+	{
+	  uint64_t prod;
+	  prod = CPU.macregs[PRU_MACREG_OP_0];
+	  prod *= (uint64_t)CPU.macregs[PRU_MACREG_OP_1];
+	  CPU.macregs[PRU_MACREG_PROD_L] = prod & 0xfffffffful;
+	  CPU.macregs[PRU_MACREG_PROD_H] = prod >> 32;
+
+	  /* Clear the MAC accumulator when in normal mode.  */
+	  CPU.macregs[PRU_MACREG_ACC_L] = 0;
+	  CPU.macregs[PRU_MACREG_ACC_H] = 0;
+	}
+
+      /* Update cycle counts.  */
+      CPU.insts += 1;		  /* One instruction completed ...  */
+      CPU.cycles += 1;		  /* ... and it takes a single cycle.  */
+
+      /* Account for memory access latency with a reasonable estimate.
+	 No distinction is currently made between SRAM, DRAM and generic
+	 L3 slaves.  */
+      if (op->type == prui_lbbo || op->type == prui_sbbo
+	  || op->type == prui_lbco || op->type == prui_sbco)
+	CPU.cycles += 2;
+
+    }
+}
+
+/* Implement standard sim_engine_run function.  */
+void
+sim_engine_run (SIM_DESC sd,
+		int next_cpu_nr, /* ignore  */
+		int nr_cpus, /* ignore  */
+		int siggnal) /* ignore  */
+{
+  while (1)
+    {
+      sim_step_once (sd);
+      if (sim_events_tick (sd))
+	sim_events_process (sd);
+    }
+}
+
+
+/* Implement callback for standard CPU_PC_FETCH routine.  */
+static sim_cia
+pru_pc_get (sim_cpu *cpu)
+{
+  /* Present PC as byte address.  */
+  return imem_wordaddr_to_byteaddr (cpu, cpu->pru_cpu.pc);
+}
+
+/* Implement callback for standard CPU_PC_STORE routine.  */
+static void
+pru_pc_set (sim_cpu *cpu, sim_cia pc)
+{
+  /* PC given as byte address.  */
+  cpu->pru_cpu.pc = imem_byteaddr_to_wordaddr (cpu, pc);
+}
+
+
+/* Implement callback for standard CPU_REG_STORE routine.  */
+static int
+pru_store_register (SIM_CPU *cpu, int rn, unsigned char *memory, int length)
+{
+  if (rn < NUM_REGS && rn >= 0)
+    {
+      if (length == 4)
+	{
+	  /* Misalignment safe.  */
+	  long ival = pru_extract_unsigned_integer (memory, 4);
+	  if (rn < 32)
+	    CPU.regs[rn] = ival;
+	  else
+	    pru_pc_set (cpu, ival);
+	  return 4;
+	}
+      else
+	return 0;
+    }
+  else
+    return 0;
+}
+
+/* Implement callback for standard CPU_REG_FETCH routine.  */
+static int
+pru_fetch_register (SIM_CPU *cpu, int rn, unsigned char *memory, int length)
+{
+  long ival;
+
+  if (rn < NUM_REGS && rn >= 0)
+    {
+      if (length == 4)
+	{
+	  if (rn < 32)
+	    ival = CPU.regs[rn];
+	  else
+	    ival = pru_pc_get (cpu);
+
+	  /* Misalignment-safe.  */
+	  pru_store_unsigned_integer (memory, 4, ival);
+	  return 4;
+	}
+      else
+	return 0;
+    }
+  else
+    return 0;
+}
+
+static void
+free_state (SIM_DESC sd)
+{
+  if (STATE_MODULES (sd) != NULL)
+    sim_module_uninstall (sd);
+  sim_cpu_free_all (sd);
+  sim_state_free (sd);
+}
+
+/* Declare the PRU option handler.  */
+static DECLARE_OPTION_HANDLER (pru_option_handler);
+
+/* Implement the PRU option handler.  */
+static SIM_RC
+pru_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt, char *arg,
+		    int is_command)
+{
+  switch (opt)
+    {
+    case OPTION_ERROR_NULL_DEREF:
+      abort_on_dmem_zero_access = TRUE;
+      return SIM_RC_OK;
+
+    default:
+      sim_io_eprintf (sd, "Unknown PRU option %d\n", opt);
+      return SIM_RC_FAIL;
+    }
+}
+
+/* List of PRU-specific options.  */
+static const OPTION pru_options[] =
+{
+  { {"error-null-deref", no_argument, NULL, OPTION_ERROR_NULL_DEREF},
+      '\0', NULL, "Trap any access to DMEM address zero",
+      pru_option_handler, NULL },
+
+  { {NULL, no_argument, NULL, 0}, '\0', NULL, NULL, NULL, NULL }
+};
+
+/* Implement standard sim_open function.  */
+SIM_DESC
+sim_open (SIM_OPEN_KIND kind, host_callback *cb,
+	  struct bfd *abfd, char * const *argv)
+{
+  int i;
+  char c;
+  SIM_DESC sd = sim_state_alloc (kind, cb);
+  SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
+
+  /* The cpu data is kept in a separately allocated chunk of memory.  */
+  if (sim_cpu_alloc_all (sd, 1, /*cgen_cpu_max_extra_bytes ()*/0) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+
+  if (sim_pre_argv_init (sd, argv[0]) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+  sim_add_option_table (sd, NULL, pru_options);
+
+  /* The parser will print an error message for us, so we silently return.  */
+  if (sim_parse_args (sd, argv) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+
+  /* Check for/establish a reference program image.  */
+  if (sim_analyze_program (sd,
+			   (STATE_PROG_ARGV (sd) != NULL
+			    ? *STATE_PROG_ARGV (sd)
+			    : NULL), abfd) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+
+  /* Configure/verify the target byte order and other runtime
+     configuration options.  */
+  if (sim_config (sd) != SIM_RC_OK)
+    {
+      sim_module_uninstall (sd);
+      return 0;
+    }
+
+  if (sim_post_argv_init (sd) != SIM_RC_OK)
+    {
+      /* Uninstall the modules to avoid memory leaks,
+	 file descriptor leaks, etc.  */
+      sim_module_uninstall (sd);
+      return 0;
+    }
+
+  /* CPU specific initialization.  */
+  for (i = 0; i < MAX_NR_PROCESSORS; ++i)
+    {
+      SIM_CPU *cpu = STATE_CPU (sd, i);
+
+      CPU_REG_STORE (cpu) = pru_store_register;
+      CPU_REG_FETCH (cpu) = pru_fetch_register;
+      CPU_PC_FETCH (cpu) = pru_pc_get;
+      CPU_PC_STORE (cpu) = pru_pc_set;
+
+      set_initial_gprs (cpu);
+    }
+
+  /* Allocate external memory if none specified by user.
+     Use address 4 here in case the user wanted address 0 unmapped.  */
+  if (sim_core_read_buffer (sd, NULL, read_map, &c, 4, 1) == 0)
+    {
+      sim_do_commandf (sd, "memory-region 0x%x,0x%x",
+		       0,
+		       DMEM_DEFAULT_SIZE);
+    }
+  if (sim_core_read_buffer (sd, NULL, read_map, &c, IMEM_ADDR_DEFAULT, 1) == 0)
+    {
+      sim_do_commandf (sd, "memory-region 0x%x,0x%x",
+		       IMEM_ADDR_DEFAULT,
+		       IMEM_DEFAULT_SIZE);
+    }
+
+  return sd;
+}
+
+/* Implement standard sim_create_inferior function.  */
+SIM_RC
+sim_create_inferior (SIM_DESC sd, struct bfd *prog_bfd,
+		     char * const *argv, char * const *env)
+{
+  SIM_CPU *cpu = STATE_CPU (sd, 0);
+  SIM_ADDR addr;
+
+  addr = bfd_get_start_address (prog_bfd);
+
+  sim_pc_set (cpu, addr);
+  PC_ADDR_SPACE_MARKER = addr & ~IMEM_ADDR_MASK;
+
+  /* Standalone mode (i.e. `run`) will take care of the argv for us in
+     sim_open () -> sim_parse_args ().  But in debug mode (i.e. 'target sim'
+     with `gdb`), we need to handle it because the user can change the
+     argv on the fly via gdb's 'run'.  */
+  if (STATE_PROG_ARGV (sd) != argv)
+    {
+      freeargv (STATE_PROG_ARGV (sd));
+      STATE_PROG_ARGV (sd) = dupargv (argv);
+    }
+
+  return SIM_RC_OK;
+}
diff --git a/sim/pru/pru.h b/sim/pru/pru.h
new file mode 100644
index 0000000000..d4835a548c
--- /dev/null
+++ b/sim/pru/pru.h
@@ -0,0 +1,110 @@
+/* Copyright 2016-2019 Free Software Foundation, Inc.
+   Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+
+   This file is part of the PRU simulator.
+
+   This library is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef PRU_H
+#define PRU_H
+
+#include "config.h"
+#include "opcode/pru.h"
+
+/* Needed for handling the dual PRU address space.  */
+#define IMEM_ADDR_MASK	((1u << 23) - 1)
+
+#define IMEM_ADDR_DEFAULT 0x20000000
+
+/* Define memory sizes to allocate for simulated target.  Sizes are
+   artificially large to accommodate execution of compiler test suite.
+   Please synchronize with the linker script for prusim target.  */
+#define DMEM_DEFAULT_SIZE (64 * 1024 * 1024)
+
+/* 16-bit word addressable space.  */
+#define IMEM_DEFAULT_SIZE (64 * 4 * 1024)
+
+/* For AM335x SoCs.  */
+#define XFRID_SCRATCH_BANK_0	  10
+#define XFRID_SCRATCH_BANK_1	  11
+#define XFRID_SCRATCH_BANK_2	  12
+#define XFRID_SCRATCH_BANK_PEER	  14
+#define XFRID_MAX		  255
+
+#define CPU     (cpu->pru_cpu)
+
+#define PC		(CPU.pc)
+#define PC_byteaddr	((PC << 2) | PC_ADDR_SPACE_MARKER)
+
+/* Various opcode fields.  */
+#define RS1 extract_regval (CPU.regs[GET_INSN_FIELD (RS1, inst)], \
+			    GET_INSN_FIELD (RS1SEL, inst))
+#define RS2 extract_regval (CPU.regs[GET_INSN_FIELD (RS2, inst)], \
+			    GET_INSN_FIELD (RS2SEL, inst))
+
+#define RS2_w0 extract_regval (CPU.regs[GET_INSN_FIELD (RS2, inst)], \
+			       RSEL_15_0)
+
+#define XBBO_BASEREG (CPU.regs[GET_INSN_FIELD (RS1, inst)])
+
+#define RDSEL GET_INSN_FIELD (RDSEL, inst)
+#define RD_WIDTH regsel_width (RDSEL)
+#define RD_REGN GET_INSN_FIELD (RD, inst)
+#define IO GET_INSN_FIELD (IO, inst)
+#define IMM8 GET_INSN_FIELD (IMM8, inst)
+#define IMM16 GET_INSN_FIELD (IMM16, inst)
+#define WAKEONSTATUS GET_INSN_FIELD (WAKEONSTATUS, inst)
+#define CB GET_INSN_FIELD (CB, inst)
+#define RDB GET_INSN_FIELD (RDB, inst)
+#define XFR_WBA GET_INSN_FIELD (XFR_WBA, inst)
+#define LOOP_JMPOFFS GET_INSN_FIELD (LOOP_JMPOFFS, inst)
+#define BROFF ((uint32_t) GET_BROFF_SIGNED (inst))
+
+#define _BURSTLEN_CALCULATE(BITFIELD)					    \
+  ((BITFIELD) >= LSSBBO_BYTECOUNT_R0_BITS7_0 ?				    \
+  (CPU.regs[0] >> ((BITFIELD) - LSSBBO_BYTECOUNT_R0_BITS7_0) * 8) & 0xff    \
+  : (BITFIELD) + 1)
+
+#define BURSTLEN _BURSTLEN_CALCULATE (GET_BURSTLEN (inst))
+#define XFR_LENGTH _BURSTLEN_CALCULATE (GET_INSN_FIELD (XFR_LENGTH, inst))
+
+#define DO_XIN(wba,regn,rdb,l)	  \
+  pru_sim_xin (sd, cpu, (wba), (regn), (rdb), (l))
+#define DO_XOUT(wba,regn,rdb,l)	  \
+  pru_sim_xout (sd, cpu, (wba), (regn), (rdb), (l))
+#define DO_XCHG(wba,regn,rdb,l)	  \
+  pru_sim_xchg (sd, cpu, (wba), (regn), (rdb), (l))
+
+#define RAISE_SIGILL(sd)  sim_engine_halt ((sd), NULL, NULL, PC_byteaddr, \
+					   sim_stopped, SIM_SIGILL)
+#define RAISE_SIGINT(sd)  sim_engine_halt ((sd), NULL, NULL, PC_byteaddr, \
+					   sim_stopped, SIM_SIGINT)
+
+#define MAC_R25_MAC_MODE_MASK	  (1u << 0)
+#define MAC_R25_ACC_CARRY_MASK	  (1u << 1)
+
+#define CARRY	CPU.carry
+#define CTABLE	CPU.ctable
+
+#define PC_ADDR_SPACE_MARKER	CPU.pc_addr_space_marker
+
+#define LOOPTOP		  CPU.loop.looptop
+#define LOOPEND		  CPU.loop.loopend
+#define LOOP_IN_PROGRESS  CPU.loop.loop_in_progress
+#define LOOPCNT		  CPU.loop.loop_counter
+
+/* 32 GP registers plus PC.  */
+#define NUM_REGS	33
+
+#endif /* PRU_H */
diff --git a/sim/pru/pru.isa b/sim/pru/pru.isa
new file mode 100644
index 0000000000..c906b2a169
--- /dev/null
+++ b/sim/pru/pru.isa
@@ -0,0 +1,249 @@
+/* Copyright 2016-2019 Free Software Foundation, Inc.
+   Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+
+   This file is part of the PRU simulator.
+
+   This library is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+/*
+   PRU Instruction Set Architecture
+
+   INSTRUCTION (NAME,
+		SEMANTICS)
+ */
+
+INSTRUCTION (add,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 + OP2;
+	     CARRY = (((uint64_t) RS1 + (uint64_t) OP2) >> RD_WIDTH) & 1;
+	     PC++)
+
+INSTRUCTION (adc,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 + OP2 + CARRY;
+	     CARRY = (((uint64_t) RS1 + (uint64_t) OP2 + (uint64_t) CARRY)
+		      >> RD_WIDTH) & 1;
+	     PC++)
+
+INSTRUCTION (sub,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 - OP2;
+	     CARRY = (((uint64_t) RS1 - (uint64_t) OP2) >> RD_WIDTH) & 1;
+	     PC++)
+
+INSTRUCTION (suc,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 - OP2 - CARRY;
+	     CARRY = (((uint64_t) RS1 - (uint64_t) OP2 - (uint64_t) CARRY)
+		      >> RD_WIDTH) & 1;
+	     PC++)
+
+INSTRUCTION (rsb,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = OP2 - RS1;
+	     CARRY = (((uint64_t) OP2 - (uint64_t) RS1) >> RD_WIDTH) & 1;
+	     PC++)
+
+INSTRUCTION (rsc,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = OP2 - RS1 - CARRY;
+	     CARRY = (((uint64_t) OP2 - (uint64_t) RS1 - (uint64_t) CARRY)
+		      >> RD_WIDTH) & 1;
+	     PC++)
+
+INSTRUCTION (lsl,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 << (OP2 & 0x1f);
+	     PC++)
+
+INSTRUCTION (lsr,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 >> (OP2 & 0x1f);
+	     PC++)
+
+INSTRUCTION (and,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 & OP2;
+	     PC++)
+
+INSTRUCTION (or,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 | OP2;
+	     PC++)
+
+INSTRUCTION (xor,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 ^ OP2;
+	     PC++)
+
+INSTRUCTION (not,
+	     RD = ~RS1;
+	     PC++)
+
+INSTRUCTION (min,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 < OP2 ? RS1 : OP2;
+	     PC++)
+
+INSTRUCTION (max,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 > OP2 ? RS1 : OP2;
+	     PC++)
+
+INSTRUCTION (clr,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 & ~(1u << (OP2 & 0x1f));
+	     PC++)
+
+INSTRUCTION (set,
+	     OP2 = (IO ? IMM8 : RS2);
+	     RD = RS1 | (1u << (OP2 & 0x1f));
+	     PC++)
+
+INSTRUCTION (jmp,
+	     OP2 = (IO ? IMM16 : RS2);
+	     PC = OP2)
+
+INSTRUCTION (jal,
+	     OP2 = (IO ? IMM16 : RS2);
+	     RD = PC + 1;
+	     PC = OP2)
+
+INSTRUCTION (ldi,
+	     RD = IMM16;
+	     PC++)
+
+INSTRUCTION (halt,
+	     pru_sim_syscall (sd, cpu);
+	     PC++)
+
+INSTRUCTION (slp,
+	     if (!WAKEONSTATUS)
+	      {
+		RAISE_SIGINT (sd);
+	      }
+	     else
+	      {
+		PC++;
+	      })
+
+INSTRUCTION (qbgt,
+	     OP2 = (IO ? IMM8 : RS2);
+	     PC = (OP2 > RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qbge,
+	     OP2 = (IO ? IMM8 : RS2);
+	     PC = (OP2 >= RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qblt,
+	     OP2 = (IO ? IMM8 : RS2);
+	     PC = (OP2 < RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qble,
+	     OP2 = (IO ? IMM8 : RS2);
+	     PC = (OP2 <= RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qbeq,
+	     OP2 = (IO ? IMM8 : RS2);
+	     PC = (OP2 == RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qbne,
+	     OP2 = (IO ? IMM8 : RS2);
+	     PC = (OP2 != RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qba,
+	     OP2 = (IO ? IMM8 : RS2);
+	     PC = PC + BROFF)
+
+INSTRUCTION (qbbs,
+	     OP2 = (IO ? IMM8 : RS2);
+	     PC = (RS1 & (1u << (OP2 & 0x1f))) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qbbc,
+	     OP2 = (IO ? IMM8 : RS2);
+	     PC = !(RS1 & (1u << (OP2 & 0x1f))) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (lbbo,
+	     pru_dmem2reg (cpu, XBBO_BASEREG + (IO ? IMM8 : RS2),
+			   BURSTLEN, RD_REGN, RDB);
+	     PC++)
+
+INSTRUCTION (sbbo,
+	     pru_reg2dmem (cpu, XBBO_BASEREG + (IO ? IMM8 : RS2),
+			   BURSTLEN, RD_REGN, RDB);
+	     PC++)
+
+INSTRUCTION (lbco,
+	     pru_dmem2reg (cpu, CTABLE[CB] + (IO ? IMM8 : RS2),
+			   BURSTLEN, RD_REGN, RDB);
+	     PC++)
+
+INSTRUCTION (sbco,
+	     pru_reg2dmem (cpu, CTABLE[CB] + (IO ? IMM8 : RS2),
+			   BURSTLEN, RD_REGN, RDB);
+	     PC++)
+
+INSTRUCTION (xin,
+	     DO_XIN (XFR_WBA, RD_REGN, RDB, XFR_LENGTH);
+	     PC++)
+
+INSTRUCTION (xout,
+	     DO_XOUT (XFR_WBA, RD_REGN, RDB, XFR_LENGTH);
+	     PC++)
+
+INSTRUCTION (xchg,
+	     DO_XCHG (XFR_WBA, RD_REGN, RDB, XFR_LENGTH);
+	     PC++)
+
+INSTRUCTION (sxin,
+	     sim_io_eprintf (sd, "SXIN instruction not supported by sim\n");
+	     RAISE_SIGILL (sd))
+
+INSTRUCTION (sxout,
+	     sim_io_eprintf (sd, "SXOUT instruction not supported by sim\n");
+	     RAISE_SIGILL (sd))
+
+INSTRUCTION (sxchg,
+	     sim_io_eprintf (sd, "SXCHG instruction not supported by sim\n");
+	     RAISE_SIGILL (sd))
+
+INSTRUCTION (loop,
+	     OP2 = (IO ? IMM8 + 1 : RS2_w0);
+	     if (OP2 == 0)
+	      {
+		PC = LOOPEND;
+	      }
+	     else
+	      {
+		LOOPTOP = PC + 1;
+		LOOPEND = PC + LOOP_JMPOFFS;
+		LOOPCNT = OP2;
+		LOOP_IN_PROGRESS = 1;
+		PC++;
+	     })
+
+INSTRUCTION (iloop,
+	     OP2 = (IO ? IMM8 + 1 : RS2_w0);
+	     if (OP2 == 0)
+	      {
+		PC = LOOPEND;
+	      }
+	     else
+	      {
+		LOOPTOP = PC + 1;
+		LOOPEND = PC + LOOP_JMPOFFS;
+		LOOPCNT = OP2;
+		LOOP_IN_PROGRESS = 1;
+		PC++;
+	     })
diff --git a/sim/pru/sim-main.h b/sim/pru/sim-main.h
new file mode 100644
index 0000000000..b8a2c20ea8
--- /dev/null
+++ b/sim/pru/sim-main.h
@@ -0,0 +1,91 @@
+/* Copyright 2016-2019 Free Software Foundation, Inc.
+   Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+
+   This file is part of the PRU simulator.
+
+   This library is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef PRU_SIM_MAIN
+#define PRU_SIM_MAIN
+
+#include <stdint.h>
+#include <stddef.h>
+#include "pru.h"
+#include "sim-basics.h"
+
+#include "sim-base.h"
+
+/* The machine state.
+   This state is maintained in host byte order.  The
+   fetch/store register functions must translate between host
+   byte order and the target processor byte order.
+   Keeping this data in target byte order simplifies the register
+   read/write functions.  Keeping this data in host order improves
+   the performance of the simulator.  Simulation speed is deemed more
+   important.  */
+
+/* For clarity, please keep the same relative order in this enum as in the
+   corresponding group of GP registers.
+
+   In PRU ISA, Multiplier-Accumulator-Unit's registers are like "shadows" of
+   the GP registers.  MAC registers are implicitly addressed when executing
+   the XIN/XOUT instructions to access them.  Transfer to/from a MAC register
+   can happen only from/to its corresponding GP peer register.  */
+
+enum pru_macreg_id {
+    /* MAC register	  CPU GP register     Description.  */
+    PRU_MACREG_MODE,	  /* r25 */	      /* Mode (MUL/MAC).  */
+    PRU_MACREG_PROD_L,	  /* r26 */	      /* Lower 32 bits of product.  */
+    PRU_MACREG_PROD_H,	  /* r27 */	      /* Higher 32 bits of product.  */
+    PRU_MACREG_OP_0,	  /* r28 */	      /* First operand.  */
+    PRU_MACREG_OP_1,	  /* r29 */	      /* Second operand.  */
+    PRU_MACREG_ACC_L,	  /* N/A */	      /* Accumulator (not exposed)  */
+    PRU_MACREG_ACC_H,	  /* N/A */	      /* Higher 32 bits of MAC
+						 accumulator.  */
+    PRU_MAC_NREGS
+};
+
+struct pru_regset
+{
+  uint32_t	  regs[32];		/* Primary registers.  */
+  uint16_t	  pc;			/* IMEM _word_ address.  */
+  uint32_t	  pc_addr_space_marker; /* IMEM virtual linker offset.  This
+					   is the artificial offset that
+					   we invent in order to "separate"
+					   the DMEM and IMEM memory spaces.  */
+  unsigned int	  carry : 1;
+  uint32_t	  ctable[32];		/* Constant offsets table for xBCO.  */
+  uint32_t	  macregs[PRU_MAC_NREGS];
+  uint32_t	  scratchpads[XFRID_MAX + 1][32];
+  struct {
+    uint16_t looptop;			/* LOOP top (PC of loop instr).  */
+    uint16_t loopend;			/* LOOP end (PC of loop end label).  */
+    int loop_in_progress;		/* Whether to check for PC==loopend.  */
+    uint32_t loop_counter;		/* LOOP counter.  */
+  } loop;
+  int		  cycles;
+  int		  insts;
+};
+
+struct _sim_cpu {
+  struct pru_regset pru_cpu;
+  sim_cpu_base base;
+};
+
+struct sim_state {
+  sim_cpu *cpu[MAX_NR_PROCESSORS];
+
+  sim_state_base base;
+};
+#endif /* PRU_SIM_MAIN */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] gdb/readline: fix use of an undefined variable
@ 2019-09-23 22:26 gdb-buildbot
  2019-09-24  1:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-23 22:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 32a1adcccf05f98e95a2a451066af810e121bdd9 ***

commit 32a1adcccf05f98e95a2a451066af810e121bdd9
Author:     Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Wed Sep 18 15:13:25 2019 -0400
Commit:     Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Mon Sep 23 22:35:05 2019 +0100

    gdb/readline: fix use of an undefined variable
    
    This commit in binutils-gdb:
    
      commit 830b67068cebe7db0eb0db3fa19244e03859fae0
      Date:   Fri Jul 12 09:53:02 2019 +0200
    
          [readline] Fix heap-buffer-overflow in update_line
    
    Which corresponds to this commit in upstream readline:
    
      commit 31547b4ea4a1a904e1b08e2bc4b4ebd5042aedaa
      Date:   Mon Aug 5 10:24:27 2019 -0400
    
          commit readline-20190805 snapshot
    
    Introduced a use of an undefined variable, which can be seen using
    valgrind:
    
      $ valgrind --tool=memcheck gdb
      GNU gdb (GDB) 8.3.50.20190918-git
      Copyright (C) 2019 Free Software Foundation, Inc.
      License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
      This is free software: you are free to change and redistribute it.
      There is NO WARRANTY, to the extent permitted by law.
      Type "show copying" and "show warranty" for details.
      This GDB was configured as "x86_64-pc-linux-gnu".
      Type "show configuration" for configuration details.
      For bug reporting instructions, please see:
      <http://www.gnu.org/software/gdb/bugs/>.
      Find the GDB manual and other documentation resources online at:
          <http://www.gnu.org/software/gdb/documentation/>.
    
      For help, type "help".
      Type "apropos word" to search for commands related to "word".
      ==24924== Conditional jump or move depends on uninitialised value(s)
      ==24924==    at 0x9986C3: rl_redisplay (display.c:710)
      ==24924==    by 0x9839CE: readline_internal_setup (readline.c:447)
      ==24924==    by 0x9A1C2B: _rl_callback_newline (callback.c:100)
      ==24924==    by 0x9A1C85: rl_callback_handler_install (callback.c:111)
      ==24924==    by 0x6195EB: gdb_rl_callback_handler_install(char const*) (event-top.c:319)
      ==24924==    by 0x61975E: display_gdb_prompt(char const*) (event-top.c:409)
      ==24924==    by 0x4FBFE3: cli_interp_base::pre_command_loop() (cli-interp.c:286)
      ==24924==    by 0x6E53DA: interp_pre_command_loop(interp*) (interps.c:321)
      ==24924==    by 0x731F30: captured_command_loop() (main.c:334)
      ==24924==    by 0x733568: captured_main(void*) (main.c:1182)
      ==24924==    by 0x7335CE: gdb_main(captured_main_args*) (main.c:1197)
      ==24924==    by 0x41325D: main (gdb.c:32)
      ==24924==
      (gdb)
    
    The problem can be traced back to init_line_structures.  The very
    first time this function is ever called its MINSIZE parameter is
    always 0 and the global LINE_SIZE is 1024.  Prior to the above
    mentioned commits we spot that the line_state variables have not yet
    been initialised, and allocate them some new buffer, then we enter
    this loop:
    
      for (n = minsize; n < line_size; n++)
        {
          visible_line[n] = 0;
          invisible_line[n] = 1;
        }
    
    which would initialise everything from the incoming minimum up to the
    potentially extended upper line size.
    
    The problem is that the above patches added a new condition that would
    bump up the minsize like this:
    
      if (minsize <= _rl_screenwidth)       /* XXX - for gdb */
        minsize = _rl_screenwidth + 1;
    
    So, the first time this function is called the incoming MINSIZE is 0,
    the LINE_SIZE global is 1024, and if the _rl_screenwidth is 80, we see
    that MINSIZE will be pushed up to 80.  We still notice that the line
    state is uninitialised and allocate some buffers, then we enter the
    initialisation loop:
    
      for (n = minsize; n < line_size; n++)
        {
          visible_line[n] = 0;
          invisible_line[n] = 1;
        }
    
    And initialise from 80 to 1023 i the newly allocated buffers, leaving
    0 to 79 uninitialised.
    
    To confirm this is an issue, if we then look at rl_redisplay we see
    that a call to init_line_structures is followed first by a call to
    rl_on_new_line, which does initialise visible_line[0], but not
    invisible_line[0].  Later in rl_redisplay we have this logic:
    
      if (visible_line[0] != invisible_line[0])
        rl_display_fixed = 0;
    
    The use of invisible_line[0] here will be undefined.
    
    Considering how this variable was originally initialised before the
    above patches, this patch modifies the initialisation loop in
    init_line_structures, to use the original value of MINSIZE.  With this
    change the valgrind warning goes away.
    
    readline/ChangeLog:
    
            PR cli/24980
            * display.c (init_line_structures): Initialise line_state using
            original minsize value.

diff --git a/readline/ChangeLog.gdb b/readline/ChangeLog.gdb
index 01b083951e..49e9fba5ad 100644
--- a/readline/ChangeLog.gdb
+++ b/readline/ChangeLog.gdb
@@ -1,3 +1,9 @@
+2019-09-18  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	PR cli/24980
+	* display.c (init_line_structures): Initialise line_state using
+	original minsize value.
+
 2019-08-13  Christian Biesinger  <cbiesinger@google.com>
 
 	* colors.c (_rl_print_color_indicator): Remove unnecessary
diff --git a/readline/display.c b/readline/display.c
index b39f28291b..89193b572b 100644
--- a/readline/display.c
+++ b/readline/display.c
@@ -602,6 +602,7 @@ static void
 init_line_structures (int minsize)
 {
   register int n;
+  int original_minsize = minsize;
 
   if (minsize <= _rl_screenwidth)	/* XXX - for gdb */
     minsize = _rl_screenwidth + 1;
@@ -622,7 +623,7 @@ init_line_structures (int minsize)
       invisible_line = (char *)xrealloc (invisible_line, line_size);
     }
 
-  for (n = minsize; n < line_size; n++)
+  for (n = original_minsize; n < line_size; n++)
     {
       visible_line[n] = 0;
       invisible_line[n] = 1;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] [gdb/tdep] Handle mxcsr kernel bug on Intel Skylake CPUs
@ 2019-09-24 22:13 gdb-buildbot
  2019-09-25  0:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-24 22:13 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 3d4352200e3e98a6d8855e6f3a39b6d33d84e36b ***

commit 3d4352200e3e98a6d8855e6f3a39b6d33d84e36b
Author:     Tom de Vries <tdevries@suse.de>
AuthorDate: Tue Sep 24 23:38:49 2019 +0200
Commit:     Tom de Vries <tdevries@suse.de>
CommitDate: Tue Sep 24 23:38:49 2019 +0200

    [gdb/tdep] Handle mxcsr kernel bug on Intel Skylake CPUs
    
    On my openSUSE Leap 15.1 x86_64 Skylake system with the default (4.12) kernel,
    I run into:
    ...
    FAIL: gdb.base/gcore.exp: corefile restored all registers
    ...
    
    The problem is that there's a difference in the mxcsr register value before
    and after the gcore command:
    ...
    - mxcsr          0x0                 [ ]
    + mxcsr          0x400440            [ DAZ OM ]
    ...
    
    This can be traced back to amd64_linux_nat_target::fetch_registers, where
    xstateregs is partially initialized by the ptrace call:
    ...
              char xstateregs[X86_XSTATE_MAX_SIZE];
              struct iovec iov;
    
              amd64_collect_xsave (regcache, -1, xstateregs, 0);
              iov.iov_base = xstateregs;
              iov.iov_len = sizeof (xstateregs);
              if (ptrace (PTRACE_GETREGSET, tid,
                          (unsigned int) NT_X86_XSTATE, (long) &iov) < 0)
                perror_with_name (_("Couldn't get extended state status"));
    
              amd64_supply_xsave (regcache, -1, xstateregs);
    ...
    after which amd64_supply_xsave is called.
    
    The amd64_supply_xsave call is supposed to only use initialized parts of
    xstateregs, but due to a kernel bug on intel skylake (fixed from 4.14 onwards
    by commit 0852b374173b "x86/fpu: Add FPU state copying quirk to handle XRSTOR
    failure on Intel Skylake CPUs") it can happen that the mxcsr part of
    xstateregs is not initialized, while amd64_supply_xsave expects it to be
    initialized, which explains the FAIL mentioned above.
    
    Fix the undetermined behaviour by initializing xstateregs before calling
    ptrace, which makes sure we get a 0x0 for mxcsr when this kernel bug occurs,
    and which also happens to fix the FAIL.
    
    Furthermore, add an xfail for this FAIL which triggers the same kernel bug:
    ...
    FAIL: gdb.arch/amd64-init-x87-values.exp: check_setting_mxcsr_before_enable: \
      check new value of MXCSR is still in place
    ...
    
    Both FAILs pass when using a 5.3 kernel instead on the system mentioned above.
    
    Tested on x86_64-linux.
    
    gdb/ChangeLog:
    
    2019-09-24  Tom de Vries  <tdevries@suse.de>
    
            PR gdb/23815
            * amd64-linux-nat.c (amd64_linux_nat_target::fetch_registers):
            Initialize xstateregs before ptrace PTRACE_GETREGSET call.
    
    gdb/testsuite/ChangeLog:
    
    2019-09-24  Tom de Vries  <tdevries@suse.de>
    
            PR gdb/24598
            * gdb.arch/amd64-init-x87-values.exp: Add xfail.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 77aab76492..ee53e9c00a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-24  Tom de Vries  <tdevries@suse.de>
+
+	PR gdb/23815
+	* amd64-linux-nat.c (amd64_linux_nat_target::fetch_registers):
+	Initialize xstateregs before ptrace PTRACE_GETREGSET call.
+
 2019-09-23  Dimitar Dimitrov  <dimitar@dinux.eu>
 
 	* NEWS: Mention new simulator port for PRU.
diff --git a/gdb/amd64-linux-nat.c b/gdb/amd64-linux-nat.c
index 4f1c98a0d1..d0328b677d 100644
--- a/gdb/amd64-linux-nat.c
+++ b/gdb/amd64-linux-nat.c
@@ -238,6 +238,12 @@ amd64_linux_nat_target::fetch_registers (struct regcache *regcache, int regnum)
 	  char xstateregs[X86_XSTATE_MAX_SIZE];
 	  struct iovec iov;
 
+	  /* Pre-4.14 kernels have a bug (fixed by commit 0852b374173b
+	     "x86/fpu: Add FPU state copying quirk to handle XRSTOR failure on
+	     Intel Skylake CPUs") that sometimes causes the mxcsr location in
+	     xstateregs not to be copied by PTRACE_GETREGSET.  Make sure that
+	     the location is at least initialized with a defined value.  */
+	  memset (xstateregs, 0, sizeof (xstateregs));
 	  iov.iov_base = xstateregs;
 	  iov.iov_len = sizeof (xstateregs);
 	  if (ptrace (PTRACE_GETREGSET, tid,
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 37e323f747..706c5da420 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-24  Tom de Vries  <tdevries@suse.de>
+
+	PR gdb/24598
+	* gdb.arch/amd64-init-x87-values.exp: Add xfail.
+
 2019-09-22  Tom de Vries  <tdevries@suse.de>
 
 	* gdb.base/restore.exp: Allow register variables to be optimized out at
diff --git a/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp b/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
index cdf92dcd37..5fd18dbb79 100644
--- a/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
+++ b/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
@@ -116,7 +116,7 @@ proc_with_prefix check_x87_regs_around_init {} {
 # nop that does not enable any FP features).  Finally check that the
 # mxcsr register still has the value we set.
 proc_with_prefix check_setting_mxcsr_before_enable {} {
-    global binfile
+    global binfile gdb_prompt
 
     clean_restart ${binfile}
 
@@ -127,7 +127,22 @@ proc_with_prefix check_setting_mxcsr_before_enable {} {
 
     gdb_test_no_output "set \$mxcsr=0x9f80" "set a new value for MXCSR"
     gdb_test "stepi" "fwait" "step forward one instruction for mxcsr test"
-    gdb_test "p/x \$mxcsr" " = 0x9f80" "check new value of MXCSR is still in place"
+
+    set test "check new value of MXCSR is still in place"
+    set pass_pattern " = 0x9f80"
+    # Pre-4.14 kernels have a bug (fixed by commit 0852b374173b "x86/fpu:
+    # Add FPU state copying quirk to handle XRSTOR failure on Intel Skylake
+    # CPUs") that causes mxcsr not to be copied, in which case we get 0 instead of
+    # the just saved value.
+    set xfail_pattern " = 0x0"
+    gdb_test_multiple "p/x \$mxcsr" $test {
+	-re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
+	    pass $test
+	}
+	-re "\[\r\n\]*(?:$xfail_pattern)\[\r\n\]+$gdb_prompt $" {
+	    xfail $test
+	}
+    }
 }
 
 # Start the test file, all FP features will be disabled.  Set new


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove make_hex_string
@ 2019-09-25 16:37 gdb-buildbot
  2019-09-25 19:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-25 16:37 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 858f25f0dd3c7013e4c87b95fa8edac223d26156 ***

commit 858f25f0dd3c7013e4c87b95fa8edac223d26156
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Sep 24 17:36:07 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Wed Sep 25 09:37:56 2019 -0600

    Remove make_hex_string
    
    I noticed that make_hex_string does essentially the same thing as
    bin2hex, and furthermore is only called in a single spot.  This patch
    removes make_hex_string.
    
    Tested by the builtbot.
    
    gdb/ChangeLog
    2019-09-25  Tom Tromey  <tom@tromey.com>
    
            * python/py-objfile.c (objfpy_get_build_id): Use bin2hex.
            * utils.h (make_hex_string): Don't declare.
            * utils.c (make_hex_string): Remove.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ee53e9c00a..81f5785a78 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-25  Tom Tromey  <tom@tromey.com>
+
+	* python/py-objfile.c (objfpy_get_build_id): Use bin2hex.
+	* utils.h (make_hex_string): Don't declare.
+	* utils.c (make_hex_string): Remove.
+
 2019-09-24  Tom de Vries  <tdevries@suse.de>
 
 	PR gdb/23815
diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c
index 2c548450b4..517ed56dc7 100644
--- a/gdb/python/py-objfile.c
+++ b/gdb/python/py-objfile.c
@@ -141,10 +141,9 @@ objfpy_get_build_id (PyObject *self, void *closure)
 
   if (build_id != NULL)
     {
-      gdb::unique_xmalloc_ptr<char> hex_form
-	(make_hex_string (build_id->data, build_id->size));
+      std::string hex_form = bin2hex (build_id->data, build_id->size);
 
-      return host_string_to_python_string (hex_form.get ()).release ();
+      return host_string_to_python_string (hex_form.c_str ()).release ();
     }
 
   Py_RETURN_NONE;
diff --git a/gdb/utils.c b/gdb/utils.c
index b2535ebefd..154fcd97e2 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -736,22 +736,6 @@ gdb_print_host_address_1 (const void *addr, struct ui_file *stream)
   fprintf_filtered (stream, "%s", host_address_to_string (addr));
 }
 
-/* See utils.h.  */
-
-char *
-make_hex_string (const gdb_byte *data, size_t length)
-{
-  char *result = (char *) xmalloc (length * 2 + 1);
-  char *p;
-  size_t i;
-
-  p = result;
-  for (i = 0; i < length; ++i)
-    p += xsnprintf (p, 3, "%02x", data[i]);
-  *p = '\0';
-  return result;
-}
-
 \f
 
 /* An RAII class that sets up to handle input and then tears down
diff --git a/gdb/utils.h b/gdb/utils.h
index 7cdc73ef54..b0b5573239 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -540,11 +540,6 @@ extern void warn_cant_dump_core (const char *reason);
 
 extern void dump_core (void);
 
-/* Return the hex string form of LENGTH bytes of DATA.
-   Space for the result is malloc'd, caller must free.  */
-
-extern char *make_hex_string (const gdb_byte *data, size_t length);
-
 /* Copy NBITS bits from SOURCE to DEST starting at the given bit
    offsets.  Use the bit order as specified by BITS_BIG_ENDIAN.
    Source and destination buffers must not overlap.  */


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] PR24262, plugin search dir doesn't respect --libdir
@ 2019-09-26 11:09 gdb-buildbot
  2019-09-26 13:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-26 11:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 41f37a6fb71f2a3de388108f5cdfca9cbe6e9d51 ***

commit 41f37a6fb71f2a3de388108f5cdfca9cbe6e9d51
Author:     Alan Modra <amodra@gmail.com>
AuthorDate: Thu Sep 26 16:20:35 2019 +0930
Commit:     Alan Modra <amodra@gmail.com>
CommitDate: Thu Sep 26 19:51:18 2019 +0930

    PR24262, plugin search dir doesn't respect --libdir
    
    bfd/
            PR 24262
            * Makefile.am (AM_CPPFLAGS): Add -DLIBDIR.
            * plugin.c (load_plugin): Search both ${libdir}/bfd-plugins and
            ${bindir}/../lib/bfd-plugins if different.
            * Makefile.in: Regenerate.
    ld/
            PR 24262
            * ld.texi (-plugin): Revert 2019-03-15 change.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ac0296482b..8496cb484f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-26  Alan Modra  <amodra@gmail.com>
+
+	PR 24262
+	* Makefile.am (AM_CPPFLAGS): Add -DLIBDIR.
+	* plugin.c (load_plugin): Search both ${libdir}/bfd-plugins and
+	${bindir}/../lib/bfd-plugins if different.
+	* Makefile.in: Regenerate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* elf64-ppc.c (ppc64_elf_check_relocs): Use bfd_link_executable
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index f31a734599..ca868e7c2e 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -53,7 +53,7 @@ ZLIBINC = @zlibinc@
 WARN_CFLAGS = @WARN_CFLAGS@
 NO_WERROR = @NO_WERROR@
 AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
-AM_CPPFLAGS = -DBINDIR='"$(bindir)"'
+AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DLIBDIR='"$(libdir)"'
 if PLUGINS
 bfdinclude_HEADERS += $(INCDIR)/plugin-api.h
 LIBDL = @lt_cv_dlopen_libs@
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index c1cd371852..ec1ce3eb8d 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -479,8 +479,9 @@ libbfd_la_LDFLAGS = $(am__append_1) -release `cat libtool-soversion` \
 ZLIB = @zlibdir@ -lz
 ZLIBINC = @zlibinc@
 AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
-AM_CPPFLAGS = -DBINDIR='"$(bindir)"' @HDEFINES@ @COREFLAG@ @TDEFINES@ \
-	$(CSEARCH) $(CSWITCHES) $(HAVEVECS) @INCINTL@
+AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DLIBDIR='"$(libdir)"' @HDEFINES@ \
+	@COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) $(HAVEVECS) \
+	@INCINTL@ $(am__empty)
 @PLUGINS_TRUE@LIBDL = @lt_cv_dlopen_libs@
 
 # bfd.h goes here, for now
diff --git a/bfd/plugin.c b/bfd/plugin.c
index ca26005055..5f059befb4 100644
--- a/bfd/plugin.c
+++ b/bfd/plugin.c
@@ -367,11 +367,15 @@ register_ld_plugin_object_p (const bfd_target *(*object_p) (bfd *))
 static int
 load_plugin (bfd *abfd)
 {
-  char *plugin_dir;
-  char *p;
-  DIR *d;
-  struct dirent *ent;
+  /* The intent was to search ${libdir}/bfd-plugins for plugins, but
+     unfortunately the original implementation wasn't precisely that
+     when configuring binutils using --libdir.  Search in the proper
+     path first, then the old one for backwards compatibility.  */
+  static const char *path[]
+    = { LIBDIR "/bfd-plugins", BINDIR "/../lib/bfd-plugins" };
+  struct stat last_st;
   int found = 0;
+  unsigned int i;
 
   if (!has_plugin)
     return found;
@@ -382,38 +386,58 @@ load_plugin (bfd *abfd)
   if (plugin_program_name == NULL)
     return found;
 
-  plugin_dir = concat (BINDIR, "/../lib/bfd-plugins", NULL);
-  p = make_relative_prefix (plugin_program_name,
-			    BINDIR,
-			    plugin_dir);
-  free (plugin_dir);
-  plugin_dir = NULL;
-
-  d = opendir (p);
-  if (!d)
-    goto out;
-
-  while ((ent = readdir (d)))
+  /* Try not to search the same dir twice, by looking at st_dev and
+     st_ino for the dir.  If we are on a file system that always sets
+     st_ino to zero or the actual st_ino is zero we might waste some
+     time, but that doesn't matter too much.  */
+  last_st.st_dev = 0;
+  last_st.st_ino = 0;
+  for (i = 0; i < sizeof (path) / sizeof (path[0]); i++)
     {
-      char *full_name;
-      struct stat s;
-      int valid_plugin;
-
-      full_name = concat (p, "/", ent->d_name, NULL);
-      if (stat (full_name, &s) == 0 && S_ISREG (s.st_mode))
-	found = try_load_plugin (full_name, abfd, &valid_plugin);
-      if (has_plugin <= 0)
-	has_plugin = valid_plugin;
-      free (full_name);
+      char *plugin_dir = make_relative_prefix (plugin_program_name,
+					       BINDIR,
+					       path[i]);
+      if (plugin_dir)
+	{
+	  struct stat st;
+	  DIR *d;
+
+	  if (stat (plugin_dir, &st) == 0
+	      && S_ISDIR (st.st_mode)
+	      && !(last_st.st_dev == st.st_dev
+		   && last_st.st_ino == st.st_ino
+		   && st.st_ino != 0)
+	      && (d = opendir (plugin_dir)) != NULL)
+	    {
+	      struct dirent *ent;
+
+	      last_st.st_dev = st.st_dev;
+	      last_st.st_ino = st.st_ino;
+	      while ((ent = readdir (d)) != NULL)
+		{
+		  char *full_name;
+
+		  full_name = concat (plugin_dir, "/", ent->d_name, NULL);
+		  if (stat (full_name, &st) == 0 && S_ISREG (st.st_mode))
+		    {
+		      int valid_plugin;
+
+		      found = try_load_plugin (full_name, abfd, &valid_plugin);
+		      if (has_plugin <= 0)
+			has_plugin = valid_plugin;
+		    }
+		  free (full_name);
+		  if (found)
+		    break;
+		}
+	      closedir (d);
+	    }
+	  free (plugin_dir);
+	}
       if (found)
 	break;
     }
 
- out:
-  free (p);
-  if (d)
-    closedir (d);
-
   return found;
 }
 
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c90a587b3a..24f0ae90cb 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-26  Alan Modra  <amodra@gmail.com>
+
+	PR 24262
+	* ld.texi (-plugin): Revert 2019-03-15 change.
+
 2019-09-25  Alan Modra  <amodra@gmail.com>
 
 	* ld.texi (SORT_BY_ALIGNMENT): Reword slightly.
diff --git a/ld/ld.texi b/ld/ld.texi
index 95fa6a0348..fcbc335c95 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -855,7 +855,7 @@ Note that the location of the compiler originated plugins is different
 from the place where the @command{ar}, @command{nm} and
 @command{ranlib} programs search for their plugins.  In order for
 those commands to make use of a compiler based plugin it must first be
-copied into the @file{$@{bindir@}/../lib/bfd-plugins} directory.  All gcc
+copied into the @file{$@{libdir@}/bfd-plugins} directory.  All gcc
 based linker plugins are backward compatible, so it is sufficient to
 just copy in the newest one.
 


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove initialize_utils
@ 2019-09-26 14:43 gdb-buildbot
  2019-09-26 14:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-26 14:43 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 12904d3729fd027714bac97a6b8c28437c37c173 ***

commit 12904d3729fd027714bac97a6b8c28437c37c173
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Tue Sep 24 17:52:08 2019 -0600
Commit:     Tom Tromey <tom@tromey.com>
CommitDate: Thu Sep 26 07:35:00 2019 -0600

    Remove initialize_utils
    
    initialize_utils only registers some commands, so it isn't necessary
    to run it at any particular time during startup.  This patch removes
    it and merges its contents into _initialize_utils.
    
    Tested by the buildbot.
    
    gdb/ChangeLog
    2019-09-26  Tom Tromey  <tom@tromey.com>
    
            * utils.h (initialize_utils): Don't declare.
            * top.c (gdb_init): Don't call initialize_utils.
            * utils.c (initialize_utils): Remove.  Move contents...
            (_initialize_utils): ... here.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 81f5785a78..bc6c20375b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-26  Tom Tromey  <tom@tromey.com>
+
+	* utils.h (initialize_utils): Don't declare.
+	* top.c (gdb_init): Don't call initialize_utils.
+	* utils.c (initialize_utils): Remove.  Move contents...
+	(_initialize_utils): ... here.
+
 2019-09-25  Tom Tromey  <tom@tromey.com>
 
 	* python/py-objfile.c (objfpy_get_build_id): Use bin2hex.
diff --git a/gdb/top.c b/gdb/top.c
index 49e6daae94..a1a08e0b99 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -2234,7 +2234,6 @@ gdb_init (char *argv0)
 
   init_cmd_lists ();	    /* This needs to be done first.  */
   initialize_targets ();    /* Setup target_terminal macros for utils.c.  */
-  initialize_utils ();	    /* Make errors and warnings possible.  */
 
   init_page_info ();
 
diff --git a/gdb/utils.c b/gdb/utils.c
index 154fcd97e2..11295ed978 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -2773,57 +2773,6 @@ show_debug_timestamp (struct ui_file *file, int from_tty,
 }
 \f
 
-void
-initialize_utils (void)
-{
-  add_setshow_uinteger_cmd ("width", class_support, &chars_per_line, _("\
-Set number of characters where GDB should wrap lines of its output."), _("\
-Show number of characters where GDB should wrap lines of its output."), _("\
-This affects where GDB wraps its output to fit the screen width.\n\
-Setting this to \"unlimited\" or zero prevents GDB from wrapping its output."),
-			    set_width_command,
-			    show_chars_per_line,
-			    &setlist, &showlist);
-
-  add_setshow_uinteger_cmd ("height", class_support, &lines_per_page, _("\
-Set number of lines in a page for GDB output pagination."), _("\
-Show number of lines in a page for GDB output pagination."), _("\
-This affects the number of lines after which GDB will pause\n\
-its output and ask you whether to continue.\n\
-Setting this to \"unlimited\" or zero causes GDB never pause during output."),
-			    set_height_command,
-			    show_lines_per_page,
-			    &setlist, &showlist);
-
-  add_setshow_boolean_cmd ("pagination", class_support,
-			   &pagination_enabled, _("\
-Set state of GDB output pagination."), _("\
-Show state of GDB output pagination."), _("\
-When pagination is ON, GDB pauses at end of each screenful of\n\
-its output and asks you whether to continue.\n\
-Turning pagination off is an alternative to \"set height unlimited\"."),
-			   NULL,
-			   show_pagination_enabled,
-			   &setlist, &showlist);
-
-  add_setshow_boolean_cmd ("sevenbit-strings", class_support,
-			   &sevenbit_strings, _("\
-Set printing of 8-bit characters in strings as \\nnn."), _("\
-Show printing of 8-bit characters in strings as \\nnn."), NULL,
-			   NULL,
-			   show_sevenbit_strings,
-			   &setprintlist, &showprintlist);
-
-  add_setshow_boolean_cmd ("timestamp", class_maintenance,
-			    &debug_timestamp, _("\
-Set timestamping of debugging messages."), _("\
-Show timestamping of debugging messages."), _("\
-When set, debugging messages will be marked with seconds and microseconds."),
-			   NULL,
-			   show_debug_timestamp,
-			   &setdebuglist, &showdebuglist);
-}
-
 /* See utils.h.  */
 
 CORE_ADDR
@@ -3432,6 +3381,53 @@ copy_bitwise (gdb_byte *dest, ULONGEST dest_offset,
 void
 _initialize_utils (void)
 {
+  add_setshow_uinteger_cmd ("width", class_support, &chars_per_line, _("\
+Set number of characters where GDB should wrap lines of its output."), _("\
+Show number of characters where GDB should wrap lines of its output."), _("\
+This affects where GDB wraps its output to fit the screen width.\n\
+Setting this to \"unlimited\" or zero prevents GDB from wrapping its output."),
+			    set_width_command,
+			    show_chars_per_line,
+			    &setlist, &showlist);
+
+  add_setshow_uinteger_cmd ("height", class_support, &lines_per_page, _("\
+Set number of lines in a page for GDB output pagination."), _("\
+Show number of lines in a page for GDB output pagination."), _("\
+This affects the number of lines after which GDB will pause\n\
+its output and ask you whether to continue.\n\
+Setting this to \"unlimited\" or zero causes GDB never pause during output."),
+			    set_height_command,
+			    show_lines_per_page,
+			    &setlist, &showlist);
+
+  add_setshow_boolean_cmd ("pagination", class_support,
+			   &pagination_enabled, _("\
+Set state of GDB output pagination."), _("\
+Show state of GDB output pagination."), _("\
+When pagination is ON, GDB pauses at end of each screenful of\n\
+its output and asks you whether to continue.\n\
+Turning pagination off is an alternative to \"set height unlimited\"."),
+			   NULL,
+			   show_pagination_enabled,
+			   &setlist, &showlist);
+
+  add_setshow_boolean_cmd ("sevenbit-strings", class_support,
+			   &sevenbit_strings, _("\
+Set printing of 8-bit characters in strings as \\nnn."), _("\
+Show printing of 8-bit characters in strings as \\nnn."), NULL,
+			   NULL,
+			   show_sevenbit_strings,
+			   &setprintlist, &showprintlist);
+
+  add_setshow_boolean_cmd ("timestamp", class_maintenance,
+			    &debug_timestamp, _("\
+Set timestamping of debugging messages."), _("\
+Show timestamping of debugging messages."), _("\
+When set, debugging messages will be marked with seconds and microseconds."),
+			   NULL,
+			   show_debug_timestamp,
+			   &setdebuglist, &showdebuglist);
+
   add_internal_problem_command (&internal_error_problem);
   add_internal_problem_command (&internal_warning_problem);
   add_internal_problem_command (&demangler_warning_problem);
diff --git a/gdb/utils.h b/gdb/utils.h
index b0b5573239..7df86beec4 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -28,8 +28,6 @@
 struct completion_match_for_lcd;
 class compiled_regex;
 
-extern void initialize_utils (void);
-
 /* String utilities.  */
 
 extern bool sevenbit_strings;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Do not expose stub types to Python
@ 2019-09-26 15:01 gdb-buildbot
  2019-09-26 16:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-26 15:01 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 5d63b30afa2d1e24a3d1e6fe97507473e0545a02 ***

commit 5d63b30afa2d1e24a3d1e6fe97507473e0545a02
Author:     Tom Tromey <tromey@adacore.com>
AuthorDate: Mon Aug 19 13:41:34 2019 -0600
Commit:     Tom Tromey <tromey@adacore.com>
CommitDate: Thu Sep 26 08:26:12 2019 -0600

    Do not expose stub types to Python
    
    dwarf2read.c will create stub types for Ada "Taft Amendment" types.
    These stub types can currently be exposed to Python code, where they
    show up as TYPE_CODE_VOID types (but that, mysteriously, can sometimes
    be used in other ways).
    
    While it's possible to work with such types by using strip_typedefs,
    this seemed unpleasant to me.  This patch takes another approach
    instead, which is to try not to expose stub types to Python users.
    
    gdb/ChangeLog
    2019-09-26  Tom Tromey  <tromey@adacore.com>
    
            * python/py-type.c (type_to_type_object): Call check_typedef
            for stub types.
    
    gdb/testsuite/ChangeLog
    2019-09-26  Tom Tromey  <tromey@adacore.com>
    
            * gdb.ada/py_taft.exp: New file.
            * gdb.ada/py_taft/main.adb: New file.
            * gdb.ada/py_taft/pkg.adb: New file.
            * gdb.ada/py_taft/pkg.ads: New file.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bc6c20375b..433b239b58 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-26  Tom Tromey  <tromey@adacore.com>
+
+	* python/py-type.c (type_to_type_object): Call check_typedef
+	for stub types.
+
 2019-09-26  Tom Tromey  <tom@tromey.com>
 
 	* utils.h (initialize_utils): Don't declare.
diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c
index e8af6f60e1..134f76dafb 100644
--- a/gdb/python/py-type.c
+++ b/gdb/python/py-type.c
@@ -1334,6 +1334,17 @@ type_to_type_object (struct type *type)
 {
   type_object *type_obj;
 
+  try
+    {
+      /* Try not to let stub types leak out to Python.  */
+      if (TYPE_STUB (type))
+	type = check_typedef (type);
+    }
+  catch (...)
+    {
+      /* Just ignore failures in check_typedef.  */
+    }
+
   type_obj = PyObject_New (type_object, &type_object_type);
   if (type_obj)
     set_type (type_obj, type);
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 706c5da420..56ee785b1f 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-26  Tom Tromey  <tromey@adacore.com>
+
+	* gdb.ada/py_taft.exp: New file.
+	* gdb.ada/py_taft/main.adb: New file.
+	* gdb.ada/py_taft/pkg.adb: New file.
+	* gdb.ada/py_taft/pkg.ads: New file.
+
 2019-09-24  Tom de Vries  <tdevries@suse.de>
 
 	PR gdb/24598
diff --git a/gdb/testsuite/gdb.ada/py_taft.exp b/gdb/testsuite/gdb.ada/py_taft.exp
new file mode 100644
index 0000000000..71ac332738
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/py_taft.exp
@@ -0,0 +1,38 @@
+# Copyright 2019 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+load_lib "ada.exp"
+load_lib gdb-python.exp
+
+standard_ada_testfile main
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable debug] != ""} {
+    return -1
+}
+
+clean_restart ${testfile}
+
+# Skip this testcase if Python scripting is not enabled.
+if { [skip_python_tests] } { continue }
+
+set bp_location [gdb_get_line_number "STOP" ${testdir}/main.adb]
+runto "main.adb:$bp_location"
+
+gdb_test_no_output "python v = gdb.parse_and_eval('v')"
+
+gdb_test "python print(v.dereference().type.code is gdb.TYPE_CODE_VOID)" \
+    "False"
+gdb_test "python print(v.type.strip_typedefs().target().code is gdb.TYPE_CODE_VOID)" \
+    "False"
diff --git a/gdb/testsuite/gdb.ada/py_taft/main.adb b/gdb/testsuite/gdb.ada/py_taft/main.adb
new file mode 100644
index 0000000000..b0ba8bdb90
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/py_taft/main.adb
@@ -0,0 +1,22 @@
+--  Copyright 2019 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+with Pkg;
+
+procedure Main is
+   V : Pkg.Value := Pkg.Create (42);
+begin
+   null;				--  STOP
+end Main;
diff --git a/gdb/testsuite/gdb.ada/py_taft/pkg.adb b/gdb/testsuite/gdb.ada/py_taft/pkg.adb
new file mode 100644
index 0000000000..94ce4b1e85
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/py_taft/pkg.adb
@@ -0,0 +1,27 @@
+--  Copyright 2019 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+package body Pkg is
+
+   type Value_Record is record
+      I : Integer;
+   end record;
+
+   function Create (I : Integer) return Value is
+   begin
+      return new Value_Record'(I => I);
+   end Create;
+
+end Pkg;
diff --git a/gdb/testsuite/gdb.ada/py_taft/pkg.ads b/gdb/testsuite/gdb.ada/py_taft/pkg.ads
new file mode 100644
index 0000000000..daa4edbf1b
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/py_taft/pkg.ads
@@ -0,0 +1,22 @@
+--  Copyright 2019 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program is distributed in the hope that it will be useful,
+--  but WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--  GNU General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+package Pkg is
+   type Value is private;
+   function Create (I : Integer) return Value;
+private
+   type Value_Record;
+   type Value is access all Value_Record;
+end Pkg;


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Remove gdb_usleep.c
@ 2019-09-26 15:42 gdb-buildbot
  2019-09-26 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-26 15:42 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 27a900b8657d8e20a24026bb3485a5f6c9729615 ***

commit 27a900b8657d8e20a24026bb3485a5f6c9729615
Author:     Tom Tromey <tom@tromey.com>
AuthorDate: Sun Feb 17 11:23:20 2019 -0700
Commit:     Tom Tromey <tromey@adacore.com>
CommitDate: Thu Sep 26 08:43:15 2019 -0600

    Remove gdb_usleep.c
    
    I noticed that gdb_usleep is unused, so this patch removes it.
    
    gdb/ChangeLog
    2019-09-26  Tom Tromey  <tom@tromey.com>
    
            * Makefile.in (COMMON_SFILES): Remove gdb_usleep.c.
            (HFILES_NO_SRCDIR): Remove gdb_usleep.h.
            * gdb_usleep.h: Remove.
            * gdb_usleep.c: Remove.
            * utils.c: Don't include gdb_usleep.h.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 433b239b58..b36f196025 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-26  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (COMMON_SFILES): Remove gdb_usleep.c.
+	(HFILES_NO_SRCDIR): Remove gdb_usleep.h.
+	* gdb_usleep.h: Remove.
+	* gdb_usleep.c: Remove.
+	* utils.c: Don't include gdb_usleep.h.
+
 2019-09-26  Tom Tromey  <tromey@adacore.com>
 
 	* python/py-type.c (type_to_type_object): Call check_typedef
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 877a9ccd6b..d628263675 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1028,7 +1028,6 @@ COMMON_SFILES = \
 	gdb_bfd.c \
 	gdb_obstack.c \
 	gdb_regex.c \
-	gdb_usleep.c \
 	gdbarch.c \
 	gdbarch-selftests.c \
 	gdbtypes.c \
@@ -1265,7 +1264,6 @@ HFILES_NO_SRCDIR = \
 	gdb_regex.h \
 	gdb_select.h \
 	gdb-stabs.h \
-	gdb_usleep.h \
 	gdb_vfork.h \
 	gdb_wchar.h \
 	gdbarch.h \
diff --git a/gdb/gdb_usleep.c b/gdb/gdb_usleep.c
deleted file mode 100644
index 9a92ced34a..0000000000
--- a/gdb/gdb_usleep.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#include "defs.h"
-#include "gdb_usleep.h"
-#include "gdb_select.h"
-#include "gdbsupport/gdb_sys_time.h"
-
-int
-gdb_usleep (int usec)
-{
-  struct timeval delay;
-  int retval;
-
-  delay.tv_sec = usec / 1000000;
-  delay.tv_usec = usec % 1000000;
-  retval = gdb_select (0, 0, 0, 0, &delay);
-
-  if (retval < 0)
-    retval = -1;
-  else
-    retval = 0;
-
-  return retval;
-}
diff --git a/gdb/gdb_usleep.h b/gdb/gdb_usleep.h
deleted file mode 100644
index aadbf0d0ad..0000000000
--- a/gdb/gdb_usleep.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#if !defined(GDB_USLEEP_H)
-#define GDB_USLEEP_H
-
-/* Suspend execution for USEC microseconds.
-
-   Limitation: If a signal is raised during the delay, gdb_usleep
-   might return earlier than requested.
-
-   It returns 0 on success or -1 on error.  */
-extern int gdb_usleep (int usect);
-
-#endif /* !defined(GDB_USLEEP_H) */
-
diff --git a/gdb/utils.c b/gdb/utils.c
index 11295ed978..b7d380073f 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -62,7 +62,6 @@
 
 #include <chrono>
 
-#include "gdb_usleep.h"
 #include "interps.h"
 #include "gdb_regex.h"
 #include "gdbsupport/job-control.h"


^ permalink raw reply	[flat|nested] 4383+ messages in thread
* [binutils-gdb] Convert symtab.h function signatures to use bool instead of int
@ 2019-09-26 17:41 gdb-buildbot
  2019-09-26 20:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
  0 siblings, 1 reply; 4383+ messages in thread
From: gdb-buildbot @ 2019-09-26 17:41 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT ececd218c5254902db3301d700546f6702112c85 ***

commit ececd218c5254902db3301d700546f6702112c85
Author:     Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Sep 24 16:43:18 2019 -0500
Commit:     Christian Biesinger <cbiesinger@google.com>
CommitDate: Thu Sep 26 11:36:40 2019 -0500

    Convert symtab.h function signatures to use bool instead of int
    
    gdb/ChangeLog:
    
    2019-09-26  Christian Biesinger  <cbiesinger@google.com>
    
            * blockframe.c (find_pc_partial_function): Change return type to bool.
            * elfread.c (elf_gnu_ifunc_resolve_name): Likewise.
            * minsyms.c (in_gnu_ifunc_stub): Likewise.
            (stub_gnu_ifunc_resolve_name): Likewise.
            * symtab.c (compare_filenames_for_search): Likewise.
            (compare_glob_filenames_for_search): Likewise.
            (matching_obj_sections): Likewise.
            (symbol_matches_domain): Likewise.
            (find_line_symtab): Change out param EXACT_MATCH to bool *.
            (find_line_pc): Change return type to bool.
            (find_line_pc_range): Likewise.
            (producer_is_realview): Likewise.
            * symtab.h (symbol_matches_domain): Likewise.
            (find_pc_partial_function): Likewise.
            (find_pc_line_pc_range): Likewise.
            (in_gnu_ifunc_stub): Likewise.
            (struct gnu_ifunc_fns) <gnu_ifunc_resolve_name>: Likewise.
            (find_line_pc): Likewise.
            (find_line_pc_range): Likewise.
            (matching_obj_sections): Likewise.
            (find_line_symtab): Change out parameter to bool.
            (producer_is_realview): Change return type to bool.
            (compare_filenames_for_search): Likewise.
            (compare_glob_filenames_for_search): Likewise.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b36f196025..f323cf6b14 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,30 @@
+2019-09-26  Christian Biesinger  <cbiesinger@google.com>
+
+	* blockframe.c (find_pc_partial_function): Change return type to bool.
+	* elfread.c (elf_gnu_ifunc_resolve_name): Likewise.
+	* minsyms.c (in_gnu_ifunc_stub): Likewise.
+	(stub_gnu_ifunc_resolve_name): Likewise.
+	* symtab.c (compare_filenames_for_search): Likewise.
+	(compare_glob_filenames_for_search): Likewise.
+	(matching_obj_sections): Likewise.
+	(symbol_matches_domain): Likewise.
+	(find_line_symtab): Change out param EXACT_MATCH to bool *.
+	(find_line_pc): Change return type to bool.
+	(find_line_pc_range): Likewise.
+	(producer_is_realview): Likewise.
+	* symtab.h (symbol_matches_domain): Likewise.
+	(find_pc_partial_function): Likewise.
+	(find_pc_line_pc_range): Likewise.
+	(in_gnu_ifunc_stub): Likewise.
+	(struct gnu_ifunc_fns) <gnu_ifunc_resolve_name>: Likewise.
+	(find_line_pc): Likewise.
+	(find_line_pc_range): Likewise.
+	(matching_obj_sections): Likewise.
+	(find_line_symtab): Change out parameter to bool.
+	(producer_is_realview): Change return type to bool.
+	(compare_filenames_for_search): Likewise.
+	(compare_glob_filenames_for_search): Likewise.
+
 2019-09-26  Tom Tromey  <tom@tromey.com>
 
 	* Makefile.in (COMMON_SFILES): Remove gdb_usleep.c.
diff --git a/gdb/blockframe.c b/gdb/blockframe.c
index 4462274f46..a3f82ef5a9 100644
--- a/gdb/blockframe.c
+++ b/gdb/blockframe.c
@@ -209,7 +209,7 @@ clear_pc_function_cache (void)
 
 /* See symtab.h.  */
 
-int
+bool
 find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address,
 			  CORE_ADDR *endaddr, const struct block **block)
 {
@@ -333,7 +333,7 @@ find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address,
 	*endaddr = 0;
       if (block != nullptr)
 	*block = nullptr;
-      return 0;
+      return false;
     }
 
   cache_pc_function_low = BMSYMBOL_VALUE_ADDRESS (msymbol);
@@ -374,7 +374,7 @@ find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address,
   if (block != nullptr)
     *block = cache_pc_function_block;
 
-  return 1;
+  return true;
 }
 
 /* See symtab.h.  */
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 901710f283..a3d17e54a2 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -850,21 +850,21 @@ elf_gnu_ifunc_resolve_by_got (const char *name, CORE_ADDR *addr_p)
 
 /* Try to find the target resolved function entry address of a STT_GNU_IFUNC
    function NAME.  If the address is found it is stored to *ADDR_P (if ADDR_P
-   is not NULL) and the function returns 1.  It returns 0 otherwise.
+   is not NULL) and the function returns true.  It returns false otherwise.
 
    Both the elf_objfile_gnu_ifunc_cache_data hash table and
    SYMBOL_GOT_PLT_SUFFIX locations are searched by this function.  */
 
-static int
+static bool
 elf_gnu_ifunc_resolve_name (const char *name, CORE_ADDR *addr_p)
 {
   if (elf_gnu_ifunc_resolve_by_cache (name, addr_p))
-    return 1;
+    return true;
 
   if (elf_gnu_ifunc_resolve_by_got (name, addr_p))
-    return 1;
+    return true;
 
-  return 0;
+  return false;
 }
 
 /* Call STT_GNU_IFUNC - a function returning addresss of a real function to
diff --git a/gdb/minsyms.c b/gdb/minsyms.c
index 0f734ebc76..f06de4d88e 100644
--- a/gdb/minsyms.c
+++ b/gdb/minsyms.c
@@ -895,7 +895,7 @@ lookup_minimal_symbol_by_pc (CORE_ADDR pc)
 
 /* Return non-zero iff PC is in an STT_GNU_IFUNC function resolver.  */
 
-int
+bool
 in_gnu_ifunc_stub (CORE_ADDR pc)
 {
   bound_minimal_symbol msymbol
@@ -916,7 +916,7 @@ stub_gnu_ifunc_resolve_addr (struct gdbarch *gdbarch, CORE_ADDR pc)
 
 /* See elf_gnu_ifunc_resolve_name for its real implementation.  */
 
-static int
+static bool
 stub_gnu_ifunc_resolve_name (const char *function_name,
 			     CORE_ADDR *function_address_p)
 {
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 54c7ed9c7c..6ea9fc6971 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -355,18 +355,18 @@ minimal_symbol::text_p () const
    describes what we advertise).  Returns true if they match, false
    otherwise.  */
 
-int
+bool
 compare_filenames_for_search (const char *filename, const char *search_name)
 {
   int len = strlen (filename);
   size_t search_len = strlen (search_name);
 
   if (len < search_len)
-    return 0;
+    return false;
 
   /* The tail of FILENAME must match.  */
   if (FILENAME_CMP (filename + len - search_len, search_name) != 0)
-    return 0;
+    return false;
 
   /* Either the names must completely match, or the character
      preceding the trailing SEARCH_NAME segment of FILENAME must be a
@@ -393,7 +393,7 @@ compare_filenames_for_search (const char *filename, const char *search_name)
    compare_filenames_for_search, but it's the opposite of the order of
    arguments to gdb_filename_fnmatch.  */
 
-int
+bool
 compare_glob_filenames_for_search (const char *filename,
 				   const char *search_name)
 {
@@ -403,7 +403,7 @@ compare_glob_filenames_for_search (const char *filename,
   int search_path_elements = count_path_elements (search_name);
 
   if (search_path_elements > file_path_elements)
-    return 0;
+    return false;
 
   if (IS_ABSOLUTE_PATH (search_name))
     {
@@ -1002,11 +1002,11 @@ symbol_matches_search_name (const struct general_symbol_info *gsymbol,
 
 \f
 
-/* Return 1 if the two sections are the same, or if they could
+/* Return true if the two sections are the same, or if they could
    plausibly be copies of each other, one in an original object
    file and another in a separated debug file.  */
 
-int
+bool
 matching_obj_sections (struct obj_section *obj_first,
 		       struct obj_section *obj_second)
 {
@@ -1015,36 +1015,36 @@ matching_obj_sections (struct obj_section *obj_first,
 
   /* If they're the same section, then they match.  */
   if (first == second)
-    return 1;
+    return true;
 
   /* If either is NULL, give up.  */
   if (first == NULL || second == NULL)
-    return 0;
+    return false;
 
   /* This doesn't apply to absolute symbols.  */
   if (first->owner == NULL || second->owner == NULL)
-    return 0;
+    return false;
 
   /* If they're in the same object file, they must be different sections.  */
   if (first->owner == second->owner)
-    return 0;
+    return false;
 
   /* Check whether the two sections are potentially corresponding.  They must
      have the same size, address, and name.  We can't compare section indexes,
      which would be more reliable, because some sections may have been
      stripped.  */
   if (bfd_section_size (first) != bfd_section_size (second))
-    return 0;
+    return false;
 
   /* In-memory addresses may start at a different offset, relativize them.  */
   if (bfd_section_vma (first) - bfd_get_start_address (first->owner)
       != bfd_section_vma (second) - bfd_get_start_address (second->owner))
-    return 0;
+    return false;
 
   if (bfd_section_name (first) == NULL
       || bfd_section_name (second) == NULL
       || strcmp (bfd_section_name (first), bfd_section_name (second)) != 0)
-    return 0;
+    return false;
 
   /* Otherwise check that they are in corresponding objfiles.  */
 
@@ -1059,12 +1059,12 @@ matching_obj_sections (struct obj_section *obj_first,
 
   if (obj->separate_debug_objfile != NULL
       && obj->separate_debug_objfile->obfd == second->owner)
-    return 1;
+    return true;
   if (obj->separate_debug_objfile_backlink != NULL
       && obj->separate_debug_objfile_backlink->obfd == second->owner)
-    return 1;
+    return true;
 
-  return 0;
+  return false;
 }
 
 /* See symtab.h.  */
@@ -2674,7 +2674,7 @@ lookup_global_symbol (const char *name,
   return lookup_global_or_static_symbol (name, GLOBAL_BLOCK, objfile, domain);
 }
 
-int
+bool
 symbol_matches_domain (enum language symbol_language,
 		       domain_enum symbol_domain,
 		       domain_enum domain)
@@ -2688,7 +2688,7 @@ symbol_matches_domain (enum language symbol_language,
     {
       if ((domain == VAR_DOMAIN || domain == STRUCT_DOMAIN)
 	  && symbol_domain == STRUCT_DOMAIN)
-	return 1;
+	return true;
     }
   /* For all other languages, strict match is required.  */
   return (symbol_domain == domain);
@@ -3297,14 +3297,14 @@ find_pc_line_symtab (CORE_ADDR pc)
 
    If found, return the symtab that contains the linetable in which it was
    found, set *INDEX to the index in the linetable of the best entry
-   found, and set *EXACT_MATCH nonzero if the value returned is an
+   found, and set *EXACT_MATCH to true if the value returned is an
    exact match.
 
    If not found, return NULL.  */
 
 struct symtab *
 find_line_symtab (struct symtab *sym_tab, int line,
-		  int *index, int *exact_match)
+		  int *index, bool *exact_match)
 {
   int exact = 0;  /* Initialized here to avoid a compiler warning.  */
 
@@ -3389,7 +3389,7 @@ done:
   if (index)
     *index = best_index;
   if (exact_match)
-    *exact_match = exact;
+    *exact_match = (exact != 0);
 
   return best_symtab;
 }
@@ -3435,10 +3435,10 @@ find_pcs_for_symtab_line (struct symtab *symtab, int line,
 
 \f
 /* Set the PC value for a given source file and line number and return true.
-   Returns zero for invalid line number (and sets the PC to 0).
+   Returns false for invalid line number (and sets the PC to 0).
    The source file is specified with a struct symtab.  */
 
-int
+bool
 find_line_pc (struct symtab *symtab, int line, CORE_ADDR *pc)
 {
   struct linetable *l;
@@ -3446,26 +3446,26 @@ find_line_pc (struct symtab *symtab, int line, CORE_ADDR *pc)
 
   *pc = 0;
   if (symtab == 0)
-    return 0;
+    return false;
 
   symtab = find_line_symtab (symtab, line, &ind, NULL);
   if (symtab != NULL)
     {
       l = SYMTAB_LINETABLE (symtab);
       *pc = l->item[ind].pc;
-      return 1;
+      return true;
     }
   else
-    return 0;
+    return false;
 }
 
 /* Find the range of pc values in a line.
    Store the starting pc of the line into *STARTPTR
    and the ending pc (start of next line) into *ENDPTR.
-   Returns 1 to indicate success.
-   Returns 0 if could not find the specified line.  */
+   Returns true to indicate success.
+   Returns false if could not find the specified line.  */
 
-int
+bool
 find_line_pc_range (struct symtab_and_line sal, CORE_ADDR *startptr,
 		    CORE_ADDR *endptr)
 {
@@ -3474,7 +3474,7 @@ find_line_pc_range (struct symtab_and_line sal, CORE_ADDR *startptr,
 
   startaddr = sal.pc;
   if (startaddr == 0 && !find_line_pc (sal.symtab, sal.line, &startaddr))
-    return 0;
+    return false;
 
   /* This whole function is based on address.  For example, if line 10 has
      two parts, one from 0x100 to 0x200 and one from 0x300 to 0x400, then
@@ -3495,7 +3495,7 @@ find_line_pc_range (struct symtab_and_line sal, CORE_ADDR *startptr,
       *startptr = found_sal.pc;
       *endptr = found_sal.end;
     }
-  return 1;
+  return true;
 }
 
 /* Given a line table and a line number, return the index into the line
@@ -3549,7 +3549,7 @@ find_line_common (struct linetable *l, int lineno,
   return best_index;
 }
 
-int
+bool
 find_pc_line_pc_range (CORE_ADDR pc, CORE_ADDR *startptr, CORE_ADDR *endptr)
 {
   struct symtab_and_line sal;
@@ -6062,7 +6062,7 @@ symtab_observer_executable_changed (void)
 /* Return 1 if the supplied producer string matches the ARM RealView
    compiler (armcc).  */
 
-int
+bool
 producer_is_realview (const char *producer)
 {
   static const char *const arm_idents[] = {
@@ -6076,13 +6076,13 @@ producer_is_realview (const char *producer)
   int i;
 
   if (producer == NULL)
-    return 0;
+    return false;
 
   for (i = 0; i < ARRAY_SIZE (arm_idents); i++)
     if (startswith (producer, arm_idents[i]))
-      return 1;
+      return true;
 
-  return 0;
+  return false;
 }
 
 \f
diff --git a/gdb/symtab.h b/gdb/symtab.h
index d046598774..1f0fc62a65 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -1518,9 +1518,9 @@ extern const char multiple_symbols_cancel[];
 
 const char *multiple_symbols_select_mode (void);
 
-int symbol_matches_domain (enum language symbol_language, 
-			   domain_enum symbol_domain,
-			   domain_enum domain);
+bool symbol_matches_domain (enum language symbol_language,
+			    domain_enum symbol_domain,
+			    domain_enum domain);
 
 /* lookup a symbol table by source file name.  */
 
@@ -1689,8 +1689,8 @@ extern struct symbol *find_symbol_at_address (CORE_ADDR);
    nullptr is used as a return value for *BLOCK if no block is found. 
    This function either succeeds or fails (not halfway succeeds).  If
    it succeeds, it sets *NAME, *ADDRESS, and *ENDADDR to real
-   information and returns 1.  If it fails, it sets *NAME, *ADDRESS
-   and *ENDADDR to zero and returns 0.
+   information and returns true.  If it fails, it sets *NAME, *ADDRESS
+   and *ENDADDR to zero and returns false.
    
    If the function in question occupies non-contiguous ranges,
    *ADDRESS and *ENDADDR are (subject to the conditions noted above) set
@@ -1716,9 +1716,9 @@ extern struct symbol *find_symbol_at_address (CORE_ADDR);
    containing the entry pc should instead call
    find_function_entry_range_from_pc.  */
 
-extern int find_pc_partial_function (CORE_ADDR pc, const char **name,
-				     CORE_ADDR *address, CORE_ADDR *endaddr,
-				     const struct block **block = nullptr);
+extern bool find_pc_partial_function (CORE_ADDR pc, const char **name,
+				      CORE_ADDR *address, CORE_ADDR *endaddr,
+				      const struct block **block = nullptr);
 
 /* Like find_pc_partial_function, above, but *ADDRESS and *ENDADDR are
    set to start and end addresses of the range containing the entry pc.
@@ -1764,7 +1764,7 @@ extern struct compunit_symtab *find_pc_compunit_symtab (CORE_ADDR);
 extern struct compunit_symtab *
   find_pc_sect_compunit_symtab (CORE_ADDR, struct obj_section *);
 
-extern int find_pc_line_pc_range (CORE_ADDR, CORE_ADDR *, CORE_ADDR *);
+extern bool find_pc_line_pc_range (CORE_ADDR, CORE_ADDR *, CORE_ADDR *);
 
 extern void reread_symbols (void);
 
@@ -1786,7 +1786,7 @@ extern struct type *basic_lookup_transparent_type (const char *);
 #define GCC2_COMPILED_FLAG_SYMBOL "gcc2_compiled."
 #endif
 
-extern int in_gnu_ifunc_stub (CORE_ADDR pc);
+extern bool in_gnu_ifunc_stub (CORE_ADDR pc);
 
 /* Functions for resolving STT_GNU_IFUNC symbols which are implemented only
    for ELF symbol files.  */
@@ -1797,7 +1797,7 @@ struct gnu_ifunc_fns
   CORE_ADDR (*gnu_ifunc_resolve_addr) (struct gdbarch *gdbarch, CORE_ADDR pc);
 
   /* See elf_gnu_ifunc_resolve_name for its real implementation.  */
-  int (*gnu_ifunc_resolve_name) (const char *function_name,
+  bool (*gnu_ifunc_resolve_name) (const char *function_name,
 				 CORE_ADDR *function_address_p);
 
   /* See elf_gnu_ifunc_resolver_stop for its real implementation.  */
@@ -1861,10 +1861,10 @@ extern struct symtab *find_pc_line_symtab (CORE_ADDR);
 
 /* Given a symtab and line number, return the pc there.  */
 
-extern int find_line_pc (struct symtab *, int, CORE_ADDR *);
+extern bool find_line_pc (struct symtab *, int, CORE_ADDR *);
 
-extern int find_line_pc_range (struct symtab_and_line, CORE_ADDR *,
-			       CORE_ADDR *);
+extern bool find_line_pc_range (struct symtab_and_line, CORE_ADDR *,
+				CORE_ADDR *);
 
 extern void resolve_sal_pc (struct symtab_and_line *);
 
@@ -1936,9 +1936,9 @@ completion_skip_symbol (complete_symbol_mode mode, Symbol *sym)
 
 /* symtab.c */
 
-int matching_obj_sections (struct obj_section *, struct obj_section *);
+bool matching_obj_sections (struct obj_section *, struct obj_section *);
 
-extern struct symtab *find_line_symtab (struct symtab *, int, int *, int *);
+extern struct symtab *find_line_symtab (struct symtab *, int, int *, bool *);
 
 /* Given a function symbol SYM, find the symtab and line for the start
    of the function.  If FUNFIRSTLINE is true, we want the first line
@@ -2051,7 +2051,7 @@ extern struct block_symbol
 
 /* Return 1 if the supplied producer string matches the ARM RealView
    compiler (armcc).  */
-int producer_is_realview (const char *producer);
+bool producer_is_realview (const char *producer);
 
 void fixup_section (struct general_symbol_info *ginfo,
 		    CORE_ADDR addr, struct objfile *objfile);
@@ -2066,11 +2066,11 @@ extern unsigned int symbol_lookup_debug;
 
 extern bool basenames_may_differ;
 
-int compare_filenames_for_search (const char *filename,
-				  const char *search_name);
+bool compare_filenames_for_search (const char *filename,
+				   const char *search_name);
 
-int compare_glob_filenames_for_search (const char *filename,
-				       const char *search_name);
+bool compare_glob_filenames_for_search (const char *filename,
+					const char *search_name);
 
 bool iterate_over_some_symtabs (const char *name,
 				const char *real_path,


^ permalink raw reply	[flat|nested] 4383+ messages in thread
[parent not found: <@gdb-build>]

end of thread, other threads:[~2019-09-27  9:30 UTC | newest]

Thread overview: 4383+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-13 15:27 [binutils-gdb] Share proc get_var_address sergiodj+buildbot
2016-10-13 15:27 ` Failures on Fedora-x86_64-native-gdbserver-m32, branch master sergiodj+buildbot
2016-10-13 15:53 ` Failures on Fedora-i686, " sergiodj+buildbot
2016-10-13 15:53 ` Failures on Fedora-ppc64be-m64, " sergiodj+buildbot
2016-10-13 16:07 ` Failures on Fedora-ppc64be-native-gdbserver-m64, " sergiodj+buildbot
2016-10-13 16:11 ` Failures on Fedora-ppc64le-m64, " sergiodj+buildbot
2016-10-13 16:13 ` Failures on Debian-s390x-native-gdbserver-m64, " sergiodj+buildbot
2016-10-13 16:25 ` Failures on Fedora-ppc64be-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-10-13 16:29 ` Failures on Debian-x86_64-m64, " sergiodj+buildbot
2016-10-13 16:50 ` Failures on Fedora-ppc64le-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-10-13 17:04 ` Failures on Fedora-ppc64le-cc-with-index, " sergiodj+buildbot
2016-10-13 17:07 ` Failures on Debian-x86_64-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-10-13 17:14 ` Failures on Fedora-ppc64le-native-gdbserver-m64, " sergiodj+buildbot
2018-11-21 13:51 [binutils-gdb] valops.c: Some more gdb::array_view sergiodj+buildbot
2018-11-21 20:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-21 14:05 [binutils-gdb] valops.c: Overload resolution code: Rename parameters/locals sergiodj+buildbot
2018-11-21 20:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-21 17:05 [binutils-gdb] Fix linking MSP430 files created by gcc's LTO optimizer sergiodj+buildbot
2018-11-21 23:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-21 17:24 [binutils-gdb] C++ify badness_vector, fix leaks sergiodj+buildbot
2018-11-21 18:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-21 17:41 [binutils-gdb] Make command-repeat work after gdb.execute sergiodj+buildbot
2018-11-22  0:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-21 21:16 [binutils-gdb] S12Z opcodes: Fix bug disassembling certain shift instructions sergiodj+buildbot
2018-11-22  4:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-22 16:44 [binutils-gdb] Avoid find_thread_ptid with null_ptid sergiodj+buildbot
2018-11-22 17:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-22 16:58 [binutils-gdb] Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc sergiodj+buildbot
2018-11-22 20:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-22 18:39 [binutils-gdb] Fix follow_exec latent problem sergiodj+buildbot
2018-11-22 19:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-23 14:22 [binutils-gdb] Remove declarations of is_running/is_stopped/is_exited sergiodj+buildbot
2018-11-23 15:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-23 14:34 [binutils-gdb] gdbserver: AArch64: Remove cannot_fetch/store_register sergiodj+buildbot
2018-11-23 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-24 12:23 [binutils-gdb] Re-fix leak in source.c (open_source_file) sergiodj+buildbot
2018-11-24 13:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-25 23:04 [binutils-gdb] Remove obsolete comments from field_fmt sergiodj+buildbot
2018-11-26  0:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-25 23:41 [binutils-gdb] Implement timestamp'ed output on "make check" sergiodj+buildbot
2018-11-26  1:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-26 14:27 [binutils-gdb] Fix Solaris build sergiodj+buildbot
2018-11-26 14:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-26 22:26 [binutils-gdb] Fix spurious semicolon in sparc-linux-nat.c sergiodj+buildbot
2018-11-26 23:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-27 13:47 [binutils-gdb] AArch64: Fix regression in Cortex A53 erratum when PIE. (PR ld/23904) sergiodj+buildbot
2018-11-27 15:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-27 15:46 [binutils-gdb] Initialize *uncompressed_align_pow_p to 0 sergiodj+buildbot
2018-11-27 16:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-27 17:21 [binutils-gdb] MIPS/LD: Continue processing with refused relocations in PIC code sergiodj+buildbot
2018-11-27 18:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-27 19:07 [binutils-gdb] [ARM] Update knowledge of bfd architectures sergiodj+buildbot
2018-11-27 21:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-27 20:10 [binutils-gdb] RISC-V: Add .insn CA support sergiodj+buildbot
2018-11-27 22:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-29 18:14 [binutils-gdb] Fix use-after-free in gdbserver sergiodj+buildbot
2018-11-29 19:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-29 21:41 [binutils-gdb] RISC-V: Add missing c.unimp instruction sergiodj+buildbot
2018-11-29 22:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-29 22:18 [binutils-gdb] Implement the "gdb_signal_to/from_target" gdbarch methods for FreeBSD sergiodj+buildbot
2018-11-30  0:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 12:13 [binutils-gdb] Remove an abort in the bfd library and add a check for an integer overflow when mapping sections to segments sergiodj+buildbot
2018-11-30 13:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 12:21 [binutils-gdb] Fix a memory exhaustion bug when attempting to allocate room for an impossible number of program headers sergiodj+buildbot
2018-11-30 14:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 16:37 [binutils-gdb] Move test_target_ops to a separate file sergiodj+buildbot
2018-11-30 17:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 17:25 [binutils-gdb] Convert default_child_has_foo functions to process_stratum_target methods sergiodj+buildbot
2018-11-30 21:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 18:06 [binutils-gdb] target_ops::to_stratum -> target_ops::stratum() virtual method sergiodj+buildbot
2018-11-30 22:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 18:26 [binutils-gdb] gdb/riscv: Make some target description functions constant sergiodj+buildbot
2018-12-01  1:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 18:29 [binutils-gdb] gdb/riscv: Add equality operators to riscv_gdb_features sergiodj+buildbot
2018-12-01  2:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 19:00 [binutils-gdb] gdb/riscv: Create each unique target description only once sergiodj+buildbot
2018-12-01  3:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 22:02 [binutils-gdb] Update the conditionals in fbsd-nat.h so they are always honored sergiodj+buildbot
2018-12-01  6:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 22:26 [binutils-gdb] Fix leak in linespec parser sergiodj+buildbot
2018-12-01  7:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 23:52 [binutils-gdb] Use kinfo_getfile to implement fdwalk on FreeBSD sergiodj+buildbot
2018-12-01  8:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-01 17:05 [binutils-gdb] x86: Delay setting the iplt section alignment sergiodj+buildbot
2018-12-03 18:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-03 23:16 [binutils-gdb] RISC-V: Accept version, supervisor ext and more than one NSE for -march sergiodj+buildbot
2018-12-03 23:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-05 19:40 [binutils-gdb] [aarch64] Add support for pointer authentication B key sergiodj+buildbot
2018-12-05 22:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-06 10:52 [binutils-gdb] opcodes/riscv: Hide '.L0 ' fake symbols sergiodj+buildbot
2018-12-06 11:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-06 12:57 [binutils-gdb] sim/opcodes: Allow use of out of tree cgen source directory sergiodj+buildbot
2018-12-06 13:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-06 13:02 [binutils-gdb] sim/cris: Fix references to cgen cpu directory sergiodj+buildbot
2018-12-06 15:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-07 14:46 [binutils-gdb] PR23952, memory leak in _bfd_generic_read_minisymbols sergiodj+buildbot
2018-12-07 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-07 16:37 [binutils-gdb] Fix a (one shot small) leak in language.c sergiodj+buildbot
2018-12-07 17:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-07 16:59 [binutils-gdb] elf: Report property change when merging properties sergiodj+buildbot
2018-12-07 18:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-07 20:48 [binutils-gdb] Fix gdb build on 32-bit hosts w/ --enable-64-bit-bfd sergiodj+buildbot
2018-12-07 21:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-07 22:49 [binutils-gdb] gdb/or1k: Add linux debugging support sergiodj+buildbot
2018-12-08  0:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-08  0:24 [binutils-gdb] gdb/emacs/dir-locals: Update settings for c++-mode sergiodj+buildbot
2018-12-08  1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-08 16:16 [binutils-gdb] Merge forward-search/reverse-search, use gdb::def_vector, remove limit sergiodj+buildbot
2018-12-08 16:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-08 17:30 [binutils-gdb] Fix leak by using td_ta_delete() to deregister target process and deallocate internal process handle sergiodj+buildbot
2018-12-08 18:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-09 16:26 [binutils-gdb] Fix tid-reuse sometimes blocks for a very long (infinite?) time sergiodj+buildbot
2018-12-09 16:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-10 11:31 [binutils-gdb] gdb/riscv: Remove whitespace before #include line sergiodj+buildbot
2018-12-10 12:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-11 12:18 [binutils-gdb] gdb/riscv: Update test to handle targets without an fpu sergiodj+buildbot
2018-12-11 13:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-11 12:53 [binutils-gdb] Fix a failure in the libiberty testsuite by increasing the recursion limit to 2048 sergiodj+buildbot
2018-12-11 14:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-11 22:25 [binutils-gdb] PATCH/OBVIOUS Remove various trailing spaces in linux-osdata.c sergiodj+buildbot
2018-12-11 23:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-11 23:16 [binutils-gdb] bfd: xtensa: ignore overflow in hight part of const16 relocation sergiodj+buildbot
2018-12-12  2:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-12 15:16 [binutils-gdb] gdb/riscv: Handle passing variadic floating point arguments sergiodj+buildbot
2018-12-12 16:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-12 18:45 [binutils-gdb] gdb: Update test pattern to deal with native-extended-gdbserver sergiodj+buildbot
2018-12-12 20:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-12 18:57 [binutils-gdb] gdb/infcall: Make infcall_suspend_state into a class sergiodj+buildbot
2018-12-12 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-12 21:31 [binutils-gdb] OBVIOUS: Forward declare linux_xfer_osdata_info_os_types on one line to fix ARI warning sergiodj+buildbot
2018-12-12 22:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-12 22:57 [binutils-gdb] gdb: Update NEWS for OpenRISC Linux support sergiodj+buildbot
2018-12-12 23:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-13 19:51 [binutils-gdb] RISC-V: Correct printing of MSTATUS and MISA sergiodj+buildbot
2018-12-13 20:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-13 20:28 [binutils-gdb] Change get_syscalls_by_group to append to an existing vector of integers sergiodj+buildbot
2018-12-13 22:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-13 20:49 [binutils-gdb] Add an optional "alias" attribute to syscall entries sergiodj+buildbot
2018-12-13 23:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-13 23:40 [binutils-gdb] Update the FreeBSD system call table to match FreeBSD 12.0 sergiodj+buildbot
2018-12-14  0:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-15  2:55 [binutils-gdb] Minor gdb/Makefile.in cleanups sergiodj+buildbot
2018-12-15  3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-16 21:34 [binutils-gdb] Factorize killing the children in linux-ptrace.c, and fix a 'process leak' sergiodj+buildbot
2018-12-16 22:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-17  3:31 [binutils-gdb] PR23994, libbfd integer overflow sergiodj+buildbot
2018-12-17  3:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-17  7:20 [binutils-gdb] OBVIOUS: Fix ARI warning by removing warning trailing new line sergiodj+buildbot
2018-12-17 11:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-17 11:40 [binutils-gdb] AArch64: Fix the gdb build with musl libc sergiodj+buildbot
2018-12-17 12:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-17 23:32 [binutils-gdb] PR23980, powerpc64 ld segfault sergiodj+buildbot
2018-12-18  0:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-18  1:21 [binutils-gdb] sim: Don't overwrite stored errno in sim_syscall_multi sergiodj+buildbot
2018-12-18  3:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-19 16:51 [binutils-gdb] Fix build with latest GCC 9.0 tree sergiodj+buildbot
2018-12-19 18:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-20 21:43 [binutils-gdb] Ensure deterministic result order in gdb.ada/info_auto_lang.exp sergiodj+buildbot
2018-12-20 22:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-20 22:08 [binutils-gdb] x86: Call rtype_to_howto to get reloc_howto_type pointer sergiodj+buildbot
2018-12-21  0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-21 17:28 [binutils-gdb] Fix compile error with clang 3.8 sergiodj+buildbot
2018-12-21 18:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-21 17:51 [binutils-gdb] gdb/riscv: Format CORE_ADDR as a string for printing sergiodj+buildbot
2018-12-21 20:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-21 18:24 [binutils-gdb] when printing the GDB config, explicitly say if configured without python sergiodj+buildbot
2018-12-21 21:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-21 18:54 [binutils-gdb] Workaround a FreeBSD kernel bug resulting in spurious SIGTRAP events sergiodj+buildbot
2018-12-22  0:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-22 10:50 [binutils-gdb] gdb/riscv: Add gdb to dwarf register number mapping sergiodj+buildbot
2018-12-22 11:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-22 11:11 [binutils-gdb] gdb/riscv: Add float status registers to save and restore reggroups sergiodj+buildbot
2018-12-22 13:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-22 11:59 [binutils-gdb] gdb/riscv: Prevent buffer overflow in riscv_return_value sergiodj+buildbot
2018-12-22 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-23 18:40 [binutils-gdb] i386: Remove the unused bfd pointer argument sergiodj+buildbot
2018-12-23 19:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-24 13:18 [binutils-gdb] Fix gdb.ada bp_fun_addr failure due to conflict between fun 'a' and s-dimmks.ads 'A' sergiodj+buildbot
2018-12-24 14:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-24 17:54 [binutils-gdb] Simplify dwarf2_find_containing_comp_unit sergiodj+buildbot
2018-12-24 18:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-24 19:34 [binutils-gdb] gdb: Extend the comments in c-exp.y sergiodj+buildbot
2018-12-24 19:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27  2:10 [binutils-gdb] target.c: Remove struct keyword in range-based for sergiodj+buildbot
2018-12-27  2:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 10:51 [binutils-gdb] Fix gdb.ada/packed_array_assign.exp by using more unique names sergiodj+buildbot
2018-12-27 11:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 11:07 [binutils-gdb] Fix gdb.ada/assign_arr.exp by using more unique names sergiodj+buildbot
2018-12-27 14:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 11:24 [binutils-gdb] Fix gdb.ada/fun_renaming.exp by using more unique names sergiodj+buildbot
2018-12-27 15:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 12:28 [binutils-gdb] Improve gdb.ada/rename_subscript_param.exp by using more unique names sergiodj+buildbot
2018-12-27 12:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 20:08 [binutils-gdb] Use DISABLE_COPY_AND_ASSIGN in minimal_symbol_reader sergiodj+buildbot
2018-12-27 21:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 20:58 [binutils-gdb] Remove gdbtypes special case from init.c rule sergiodj+buildbot
2018-12-28  0:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 21:10 [binutils-gdb] Make init.c depend on source files sergiodj+buildbot
2018-12-28  1:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 21:27 [binutils-gdb] Build gdb "nat" files in subdirectory sergiodj+buildbot
2018-12-28  2:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 21:53 [binutils-gdb] Consolidate some Python exception-printing functions sergiodj+buildbot
2018-12-28  5:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 22:36 [binutils-gdb] Translate PyExc_KeyboardInterrupt to gdb "quit" sergiodj+buildbot
2018-12-28  6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28  7:24 [binutils-gdb] PR24028, PPC_INT_FMT sergiodj+buildbot
2018-12-28  8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 10:24 [binutils-gdb] PR24015, glibc-2.28 on little-endian mips32 broken sergiodj+buildbot
2018-12-28 11:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 18:09 [binutils-gdb] Fix leak of set/show verbose doc, avoid xfree of static string sergiodj+buildbot
2018-12-28 19:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 21:27 [binutils-gdb] Change wrap buffering to use a std::string sergiodj+buildbot
2018-12-28 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 22:14 [binutils-gdb] Change gdb test suite's TERM setting sergiodj+buildbot
2018-12-29  2:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 22:24 [binutils-gdb] Add output styles to gdb sergiodj+buildbot
2018-12-29  4:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 22:26 [binutils-gdb] Reset terminal styles sergiodj+buildbot
2018-12-29  5:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 22:37 [binutils-gdb] Style variable names sergiodj+buildbot
2018-12-29  6:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 23:02 [binutils-gdb] Style print_address_symbolic sergiodj+buildbot
2018-12-29  9:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 23:25 [binutils-gdb] Style the "Reading symbols" message sergiodj+buildbot
2018-12-29 12:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-29  0:31 [binutils-gdb] Introduce ui_file_style sergiodj+buildbot
2018-12-29  1:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-29  4:53 [binutils-gdb] Fix the build when GNU Source Highlight is not available sergiodj+buildbot
2018-12-29 18:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-29 14:34 [binutils-gdb] Make ANSI terminal escape sequences work in TUI sergiodj+buildbot
2018-12-29 14:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-30  9:50 [binutils-gdb] Fix 'help set/show style' strange layouts/results sergiodj+buildbot
2018-12-30 16:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-31  6:53 [binutils-gdb] PR24041, Invalid Memory Address Dereference in elf_link_add_object_symbols sergiodj+buildbot
2018-12-31 10:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-31  7:25 [binutils-gdb] [PowerPC64] Nop out ld 2, 24(1) after old-style __tls_get_addr sergiodj+buildbot
2018-12-31  8:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-01  6:42 [binutils-gdb] Update copyright year range in all GDB files sergiodj+buildbot
2019-01-01  8:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-01  6:54 [binutils-gdb] rotate gdb/ChangeLog sergiodj+buildbot
2019-01-01  7:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-01  6:54 [binutils-gdb] update copyright year printed by gdb, gdbserver and gdbreplay sergiodj+buildbot
2019-01-01 10:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-01 12:27 [binutils-gdb] Update year range in copyright notice of binutils files sergiodj+buildbot
2019-01-01 12:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-01 19:54 [binutils-gdb] Fix leak in print_one_catch_syscall sergiodj+buildbot
2019-01-01 20:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-01 20:25 [binutils-gdb] Fix 'Invalid read of size 4' in search_command_helper sergiodj+buildbot
2019-01-01 23:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-02  6:29 [binutils-gdb] Fix year range in unittests/.../char/empty.cc copyright header sergiodj+buildbot
2019-01-02  7:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-02 16:47 [binutils-gdb] Style improvements in gdb/python sergiodj+buildbot
2019-01-02 17:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-02 20:08 [binutils-gdb] Fix search of debug files for remote debuggee sergiodj+buildbot
2019-01-02 21:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-02 21:27 [binutils-gdb] Fix leak of struct call_thread_fsm in call_function_by_hand_dummy sergiodj+buildbot
2019-01-02 22:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-02 22:46 [binutils-gdb] Place displaced step data directly in inferior structure sergiodj+buildbot
2019-01-02 23:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-02 23:46 [binutils-gdb] Change inferior_to_inferior_object to return a gdbpy_ref sergiodj+buildbot
2019-01-03  1:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-02 23:59 [binutils-gdb] Remove cleanups from linespec.c sergiodj+buildbot
2019-01-03  2:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-03 14:58 [binutils-gdb] Add 'extern C' if simulator is written in C++ sergiodj+buildbot
2019-01-03 15:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-03 18:01 [binutils-gdb] S12Z: opcodes: Separate the decoding of operations from their display sergiodj+buildbot
2019-01-03 18:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-03 21:41 [binutils-gdb] gdb/remote: Remove a cleanup in remote_check_symbols sergiodj+buildbot
2019-01-03 22:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-03 21:54 [binutils-gdb] gdb: Remove a cleanup from find_overload_match sergiodj+buildbot
2019-01-03 23:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-03 23:17 [binutils-gdb] Simplify gdbpy_stop_recording sergiodj+buildbot
2019-01-04  7:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-04  2:21 [binutils-gdb] PR24061, powerpc-ibm-aix-ar sets bogus file permissions when extracting sergiodj+buildbot
2019-01-04 13:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-04  3:18 [binutils-gdb] gdb: Remove cleanup from linux_nat_target::follow_fork sergiodj+buildbot
2019-01-04  3:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-04 10:32 [binutils-gdb] Avoid questionable casts in py-symtab.c sergiodj+buildbot
2019-01-04 10:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-04 14:11 [binutils-gdb] Change the default for the CSKY target to be little endian sergiodj+buildbot
2019-01-04 15:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-04 21:57 [binutils-gdb] Use upper case for more metasyntactic variables in gdb sergiodj+buildbot
2019-01-04 22:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-05  8:10 [binutils-gdb] GDB crash re-running program on Windows (native) sergiodj+buildbot
2019-01-05  9:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-05 14:07 [binutils-gdb] RX: include - Add RXv3 support sergiodj+buildbot
2019-01-05 14:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-06 17:00 [binutils-gdb] Use std::vector in type stacks sergiodj+buildbot
2019-01-06 18:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-06 20:15 [binutils-gdb] Remove string-related cleanup from c-exp.y sergiodj+buildbot
2019-01-06 20:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-06 21:39 [binutils-gdb] Remove remaining cleanups from c-exp.y sergiodj+buildbot
2019-01-06 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-07  4:49 [binutils-gdb] s12z regen sergiodj+buildbot
2019-01-07  5:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-07 23:35 [binutils-gdb] Revert "Sync libiberty sources with master version in gcc repository. Updated stabs demangling and cxxfilt tests to match." sergiodj+buildbot
2019-01-08  0:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-08 12:32 [binutils-gdb] PR24065, 32-bit objcopy fails with 64-bit address ... out of range sergiodj+buildbot
2019-01-08 13:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-08 12:34 [binutils-gdb] gdb: Fix skip of `\r` before `\n` in source output sergiodj+buildbot
2019-01-08 14:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-08 12:49 [binutils-gdb] gdb: Handle requests to print source lines backward sergiodj+buildbot
2019-01-08 15:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-08 13:01 [binutils-gdb] gdb: Move declarations from symtab.h to source.h sergiodj+buildbot
2019-01-08 17:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-08 18:21 [binutils-gdb] Fix build failure with macOS bison sergiodj+buildbot
2019-01-08 18:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-09  3:39 [binutils-gdb] Adjust bfd/warning.m4 egrep patterns sergiodj+buildbot
2019-01-09  4:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-09 10:50 [binutils-gdb] gdb/testsuite: Remove interactive prompt case from mi_gdb_test sergiodj+buildbot
2019-01-09 11:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-09 18:33 [binutils-gdb] gdb: Remove support for old mangling schemes sergiodj+buildbot
2019-01-09 19:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-09 20:05 [binutils-gdb] S12Z: Don't crash when disassembling invalid instructions sergiodj+buildbot
2019-01-09 21:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10  2:24 [binutils-gdb] Remove ALL_PSPACE_OBJFILES sergiodj+buildbot
2019-01-10  4:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10  2:36 [binutils-gdb] Remove most uses of ALL_OBJFILES sergiodj+buildbot
2019-01-10  5:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10  2:59 [binutils-gdb] Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS sergiodj+buildbot
2019-01-10  8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10  3:56 [binutils-gdb] Remove ALL_COMPUNIT_FILETABS sergiodj+buildbot
2019-01-10 15:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10  4:42 [binutils-gdb] Remove ALL_OBJFILE_PSYMTABS sergiodj+buildbot
2019-01-10 20:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 14:26 [binutils-gdb] Move some declarations to mdebugread.h sergiodj+buildbot
2019-01-10 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 14:57 [binutils-gdb] Remove ALL_OBJFILE_FILETABS sergiodj+buildbot
2019-01-10 16:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 15:05 [binutils-gdb] Change add_psymbol_to_list to use an enum sergiodj+buildbot
2019-01-11  3:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 15:30 [binutils-gdb] Change create_demangled_names_hash to take an objfile_per_bfd_storage sergiodj+buildbot
2019-01-11  6:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 16:06 [binutils-gdb] Introduce objfile::reset_psymtabs sergiodj+buildbot
2019-01-11  9:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 16:18 [binutils-gdb] Allocate the address map on the psymtab obstack sergiodj+buildbot
2019-01-11 11:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 16:31 [binutils-gdb] Move more allocations to psymtab obstack sergiodj+buildbot
2019-01-11 12:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 16:43 [binutils-gdb] Add psymtab_storage::allocate_dependencies sergiodj+buildbot
2019-01-11 13:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 17:09 [binutils-gdb] Move psymtabs to their own obstack sergiodj+buildbot
2019-01-11 16:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 18:44 [binutils-gdb] Fix tracepoint.c:parse_tracepoint_definition leak (and one more) sergiodj+buildbot
2019-01-11 22:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 22:27 [binutils-gdb] gdb/23712: Introduce multidictionary's sergiodj+buildbot
2019-01-11 23:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 22:39 [binutils-gdb] gdb/23712: Use new multidictionary API sergiodj+buildbot
2019-01-12  0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 23:02 [binutils-gdb] gdb/23712: Remove dw2_add_symbol_to_list sergiodj+buildbot
2019-01-12  8:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 23:27 [binutils-gdb] Replace inf_threads_iterator with next_iterator sergiodj+buildbot
2019-01-12 11:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-11 14:49 [binutils-gdb] Make psymtab_storage::free_psymtabs private sergiodj+buildbot
2019-01-11 15:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-11 17:34 [binutils-gdb] gdb: Fix incorrect variable name in scoped_switch_fork_info sergiodj+buildbot
2019-01-11 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-12  1:32 [binutils-gdb] gdb/23712: Cleanup/Remove temporary dictionary functions sergiodj+buildbot
2019-01-12  2:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-12  9:25 [binutils-gdb] gdb/23712: Test case for multidictionary sergiodj+buildbot
2019-01-12  9:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-12 15:21 [binutils-gdb] expand a bit the in-GDB help for the "catch exception" help text sergiodj+buildbot
2019-01-12 15:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-12 16:44 [binutils-gdb] Add RXv3 instructions sergiodj+buildbot
2019-01-12 17:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-13 21:50 [binutils-gdb] gdb: xtensa: fix register counters for xtensa-linux sergiodj+buildbot
2019-01-13 22:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-14 15:04 [binutils-gdb] Sync config.guess, config.sub from GCC sergiodj+buildbot
2019-01-14 16:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-14 19:46 [binutils-gdb] [PowerPC] Fix "info vector" test in gdb.arch/altivec-regs.exp sergiodj+buildbot
2019-01-14 20:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-14 21:59 [binutils-gdb] Include <string.h> to dis-asm.h to get strchr declaration sergiodj+buildbot
2019-01-14 23:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-14 23:32 [binutils-gdb] Fix placement of output in TUI mode sergiodj+buildbot
2019-01-15  0:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-15  1:15 [binutils-gdb] Constify some remote-notif functions sergiodj+buildbot
2019-01-15  4:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-15 23:04 [binutils-gdb] sim: Fix definition of SIM_ARANGE_INLINE sergiodj+buildbot
2019-01-16  1:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-16 13:55 [binutils-gdb] S12Z: Emit RELOC_S12Z_OPR instead of RELOC_EXT24 where appropriate sergiodj+buildbot
2019-01-16 14:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-16 19:54 [binutils-gdb] Introduce dwarf2_cu::get_builder sergiodj+buildbot
2019-01-16 20:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-16 21:51 [binutils-gdb] RISC-V: Merge ELF attribute for ld sergiodj+buildbot
2019-01-17  1:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-16 22:21 [binutils-gdb] Actually remove definitions of DEFINE_NON_INLINE_P and DEFINE_INLINE_P sergiodj+buildbot
2019-01-17  3:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-16 22:52 [binutils-gdb] RISC-V: Support ELF attribute for gas and readelf sergiodj+buildbot
2019-01-16 23:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-17 17:38 [binutils-gdb] Replace "the the" with "the" sergiodj+buildbot
2019-01-17 18:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-17 17:50 [binutils-gdb] Remove cleanups from solib-target.c sergiodj+buildbot
2019-01-17 19:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-17 23:38 [binutils-gdb] Change all_objfiles adapter to be a method on program_space sergiodj+buildbot
2019-01-18  0:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-18  0:03 [binutils-gdb] Add compunits range adapter to objfile sergiodj+buildbot
2019-01-18  3:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-18  0:16 [binutils-gdb] Make psymtab range adapter a method on objfile sergiodj+buildbot
2019-01-18  4:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-18  0:41 [binutils-gdb] Make minimal symbol range adapter a method on objfile sergiodj+buildbot
2019-01-18  7:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-18  1:13 [binutils-gdb] Change all_objfiles_safe adapter to be a method on program_space sergiodj+buildbot
2019-01-18  1:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-18  5:48 [binutils-gdb] Simplify minsym iteration sergiodj+buildbot
2019-01-18  6:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-19 17:08 [binutils-gdb] Change version to 2.32.51 and regenerate configure and pot files sergiodj+buildbot
2019-01-19 18:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-20  2:52 [binutils-gdb] [MIPS] fix typo in mips_arch_choices sergiodj+buildbot
2019-01-20  3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-21 12:52 [binutils-gdb] Fix spelling mistakes in BFD library sergiodj+buildbot
2019-01-21 13:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-21 18:41 [binutils-gdb] Remove duplicate or commented-out #includes sergiodj+buildbot
2019-01-21 19:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-22 23:15 [binutils-gdb] Remove the EXTERN define from stabsread.h sergiodj+buildbot
2019-01-23  0:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23  4:20 [binutils-gdb] Include compile-internal.h in gcc-c-plugin.h sergiodj+buildbot
2019-01-23  5:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23  4:41 [binutils-gdb] Do not include py-ref.h in most files sergiodj+buildbot
2019-01-23  9:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23  5:55 [binutils-gdb] Remove a comment in compile/compile-cplus-types.c sergiodj+buildbot
2019-01-23  6:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 12:06 [binutils-gdb] AArch64: Ensure lwp info is created zeroed sergiodj+buildbot
2019-01-23 18:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 16:32 [binutils-gdb] Updated translations for some of the binutils subdirectory sergiodj+buildbot
2019-01-23 17:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 17:48 [binutils-gdb] Remove a warning from symtab.c sergiodj+buildbot
2019-01-23 19:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 19:30 [binutils-gdb] Rename ESC -> ESC_PARENS sergiodj+buildbot
2019-01-23 20:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 19:52 [binutils-gdb] Introduce forward_scope_exit sergiodj+buildbot
2019-01-23 23:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 20:56 [binutils-gdb] Remove remaining cleanup from gdb/breakpoint.c sergiodj+buildbot
2019-01-24  4:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 21:21 [binutils-gdb] Remove make_bpstat_clear_actions_cleanup sergiodj+buildbot
2019-01-24  7:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 21:33 [binutils-gdb] Remove cleanup_delete_std_terminate_breakpoint sergiodj+buildbot
2019-01-24  8:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 22:51 [binutils-gdb] Update an obsolete cleanup comment sergiodj+buildbot
2019-01-24 15:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 23:02 [binutils-gdb] Update cleanup comment in ui-out.h sergiodj+buildbot
2019-01-24 16:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-24  1:46 [binutils-gdb] Use SCOPE_EXIT in gdbarch-selftest.c sergiodj+buildbot
2019-01-24  2:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-24  8:41 [binutils-gdb] AArch64 AAPCS: Ignore static members sergiodj+buildbot
2019-01-24 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-24 21:28 [binutils-gdb] target_pass_signals/target_program_signals: Use gdb::array_view sergiodj+buildbot
2019-01-24 21:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-25 15:32 [binutils-gdb] AArch64: Remove ldgv and stgv instructions from Armv8.5-A Memory Tagging Extension sergiodj+buildbot
2019-01-25 16:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-25 17:11 [binutils-gdb] AArch64: Add new STZGM instruction for Armv8.5-A Memory Tagging Extension sergiodj+buildbot
2019-01-25 17:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-25 23:52 [binutils-gdb] Update create-version.sh to use common/version.h sergiodj+buildbot
2019-01-25 23:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-26  1:11 [binutils-gdb] Normalize includes to use common/ sergiodj+buildbot
2019-01-26  1:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-28 10:30 [binutils-gdb] Replace contribution list in CONTRIBUTE file with link sergiodj+buildbot
2019-01-28 12:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-28 16:17 [binutils-gdb] Fix GCC9 warning on elf32-arm.c:elf32_arm_final_link_relocate sergiodj+buildbot
2019-01-28 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-28 18:32 [binutils-gdb] Use trad_frame_set_reg_addr for FreeBSD arm signal trampoline unwinders sergiodj+buildbot
2019-01-28 19:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-30 18:16 [binutils-gdb] [PR gdb/23985] Fix libinproctrace.so build sergiodj+buildbot
2019-01-30 19:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-31 17:04 [binutils-gdb] S/390: Implement instruction set extensions sergiodj+buildbot
2019-01-31 17:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-31 18:19 [binutils-gdb] Readline: Cleanup some warnings sergiodj+buildbot
2019-01-31 18:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-05 13:58 [binutils-gdb] Hoist assertion in target_stack::unpush sergiodj+buildbot
2019-02-05 14:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-06 20:21 [binutils-gdb] Fix leak of identifier in macro definition sergiodj+buildbot
2019-02-06 21:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-06 20:32 [binutils-gdb] Factorize macro definition code in macrotab.c sergiodj+buildbot
2019-02-06 22:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-07 11:00 [binutils-gdb] Normalize include guards in gdb sergiodj+buildbot
2019-02-07 11:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-07 14:39 [binutils-gdb] Make gdb.base/corefile.exp work on terminals with few rows sergiodj+buildbot
2019-02-07 15:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-07 14:54 [binutils-gdb] Move potentially obsolete BFD targets into the definitely obsolete section. Add a note to the README-how-to-make-a-release document about doing this sergiodj+buildbot
2019-02-07 17:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-07 15:06 [binutils-gdb] gdbserver: When attaching, add process before lwps sergiodj+buildbot
2019-02-07 18:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-07 17:54 [binutils-gdb] AArch64: Add verifier for By elem Single and Double sized instructions sergiodj+buildbot
2019-02-08  0:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-07 19:10 [binutils-gdb] Updated Swedish translation for the opcodes sub-directory sergiodj+buildbot
2019-02-07 19:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-07 21:52 [binutils-gdb] SPARC: fix PR ld/18841 sergiodj+buildbot
2019-02-07 23:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-08  1:07 [binutils-gdb] Arm: Backport hlt to all architectures sergiodj+buildbot
2019-02-08  1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-08 21:33 [binutils-gdb] RISC-V: Compress 3-operand beq/bne against x0 sergiodj+buildbot
2019-02-08 22:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-08 21:44 [binutils-gdb] RISC-V: Add FP register core file support sergiodj+buildbot
2019-02-08 23:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-10 12:29 [binutils-gdb] Fix type_stack leaks in c expression parsing sergiodj+buildbot
2019-02-10 16:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-11 17:01 [binutils-gdb] AArch64: Detect exit from execve syscall sergiodj+buildbot
2019-02-11 17:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-12 13:20 [binutils-gdb] Fix splay tree KEY leak detected in GDB test gdb.base/macscp.exp sergiodj+buildbot
2019-02-12 14:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-12 19:30 [binutils-gdb] Use function_name_style to print Ada and C function names sergiodj+buildbot
2019-02-12 20:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-12 22:15 [binutils-gdb] Make symtab.c better styled sergiodj+buildbot
2019-02-12 22:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-12 22:22 [binutils-gdb] Add a new function child_path sergiodj+buildbot
2019-02-13  4:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-13  3:05 [binutils-gdb] Use child_path to determine if an object file is under a sysroot sergiodj+buildbot
2019-02-13  5:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-13  6:14 [binutils-gdb] Adding a test case sergiodj+buildbot
2019-02-13  8:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-13 22:36 [binutils-gdb] Add Andrew Burgess as global maintainer of gdb/ and sim/ sergiodj+buildbot
2019-02-13 23:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-14  4:51 [binutils-gdb] (riscv/ada) fix error when calling functions with range argument sergiodj+buildbot
2019-02-14  5:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-14 15:26 [binutils-gdb] [gdb, hurd] Work around conflict between Mach's 'thread_info' function, and GDB's 'thread_info' class sergiodj+buildbot
2019-02-14 17:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-14 15:42 [binutils-gdb] [gdb, hurd] Repair build after "Convert struct target_ops to C++" changes sergiodj+buildbot
2019-02-14 18:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-14 16:25 [binutils-gdb] [gdb, hurd] Repair build after "Use thread_info and inferior pointers more throughout" sergiodj+buildbot
2019-02-14 21:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-14 16:49 [binutils-gdb] [gdb, hurd] Adjust to Hurd "proc" interface changes sergiodj+buildbot
2019-02-14 23:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-14 19:25 [binutils-gdb] [gdb, hurd] Repair build after "Share fork_inferior et al with gdbserver" changes sergiodj+buildbot
2019-02-14 19:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-14 22:41 [binutils-gdb] Updating test case sergiodj+buildbot
2019-02-15  2:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 20:41 [binutils-gdb] C++-ify bp_location sergiodj+buildbot
2019-02-15 21:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 20:53 [binutils-gdb] Fix memory leak in create_ada_exception_catchpoint sergiodj+buildbot
2019-02-15 22:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 21:22 [binutils-gdb] Exception safety in ravenscar-thread.c sergiodj+buildbot
2019-02-16  1:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 22:17 [binutils-gdb] Minor C++-ification in ravenscar-thread.c sergiodj+buildbot
2019-02-16  5:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 22:29 [binutils-gdb] Add push_target overload sergiodj+buildbot
2019-02-16  6:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 22:41 [binutils-gdb] Make the ravenscar thread target multi-target-ready sergiodj+buildbot
2019-02-16  8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 22:54 [binutils-gdb] Special-case wildcard requests in ravenscar-thread.c sergiodj+buildbot
2019-02-16  9:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 23:42 [binutils-gdb] Fix some typos in ravenscar-thread.c sergiodj+buildbot
2019-02-16  0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-17 15:18 [binutils-gdb] type_align: handle range types the same as ints and enums sergiodj+buildbot
2019-02-17 16:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-18  6:37 [binutils-gdb] PR24225, nios2 buffer overflow sergiodj+buildbot
2019-02-18  6:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-18 23:39 [binutils-gdb] gdb: Allow gdbarch to override alignment for method and member pointers sergiodj+buildbot
2019-02-19  0:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-19 12:37 [binutils-gdb] PR24235, Read memory violation in pei-x86_64.c sergiodj+buildbot
2019-02-19 13:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-20  1:53 [binutils-gdb] PR24236, Heap buffer overflow in _bfd_archive_64_bit_slurp_armap sergiodj+buildbot
2019-02-20  2:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-20  8:48 [binutils-gdb] Check asprintf return value sergiodj+buildbot
2019-02-20 10:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-20 11:09 [binutils-gdb] bfd: xtensa: fix callx relaxation sergiodj+buildbot
2019-02-20 13:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-20 13:53 [binutils-gdb] AArch64: Add default reggroups sergiodj+buildbot
2019-02-20 14:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-20 15:46 [binutils-gdb] Use upper case for metasyntactic variables in "help find" sergiodj+buildbot
2019-02-20 16:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-20 19:48 [binutils-gdb] Fix typos in symtab_symbol_info sergiodj+buildbot
2019-02-20 20:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-21 13:50 [binutils-gdb] Disable styling when running in batch mode sergiodj+buildbot
2019-02-21 14:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-21 18:38 [binutils-gdb] Document style behavior in batch mode sergiodj+buildbot
2019-02-21 19:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-22 20:22 [binutils-gdb] Fix symtab/23853: symlinked default symtab sergiodj+buildbot
2019-02-22 21:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-22 20:33 [binutils-gdb] gdb: Update copyright year range generated by gdbarch.sh sergiodj+buildbot
2019-02-22 22:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-22 21:06 [binutils-gdb] Look for build-id-based separate debug files under the sysroot sergiodj+buildbot
2019-02-22 23:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-23  1:12 [binutils-gdb] Update my email address sergiodj+buildbot
2019-02-23  1:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-24 11:25 [binutils-gdb] PR24144, pdp11-ld overwriting section data with zeros sergiodj+buildbot
2019-02-24 11:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-25 16:02 [binutils-gdb] Fix BFD leak in solib-darwin.c sergiodj+buildbot
2019-02-25 16:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-25 21:09 [binutils-gdb] Fix crash when loading dwp files sergiodj+buildbot
2019-02-25 22:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-25 22:54 [binutils-gdb] Fix BFD leak in dwarf2_get_dwz_file sergiodj+buildbot
2019-02-26  0:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-26 18:09 [binutils-gdb] Add tests for gdb.Value(bufobj, type) constructor sergiodj+buildbot
2019-02-26 23:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-26 19:28 [binutils-gdb] Define gdb.Value(bufobj, type) constructor sergiodj+buildbot
2019-02-26 20:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-26 19:57 [binutils-gdb] Fix new py-value.exp test case sergiodj+buildbot
2019-02-27  2:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27  5:47 [binutils-gdb] Update NEWS post GDB 8.3 branch creation sergiodj+buildbot
2019-02-27 11:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 11:28 [binutils-gdb] gdb: Restructure type_align and gdbarch_type_align sergiodj+buildbot
2019-02-27 17:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 11:40 [binutils-gdb] gdb: Handle alignment for C++ structures with static members sergiodj+buildbot
2019-02-27 18:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 15:21 [binutils-gdb] gdb/alpha: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-27 23:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 15:43 [binutils-gdb] gdb/arm: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28  2:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 16:18 [binutils-gdb] gdb/csky: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28  6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 16:53 [binutils-gdb] gdb/ft32: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28 10:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 17:04 [binutils-gdb] gdb/h8300: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28 11:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 18:29 [binutils-gdb] Use Python 2.[67] / 3.X / PEP 3118 buffer protocol sergiodj+buildbot
2019-02-28 14:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 19:00 [binutils-gdb] Remove Python 2.4 and 2.5 support sergiodj+buildbot
2019-02-28 17:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 19:25 [binutils-gdb] Make 'show width/height' display "unlimited" when capped for readline sergiodj+buildbot
2019-02-28 21:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 19:37 [binutils-gdb] Test "set width/height -1" sergiodj+buildbot
2019-02-28 22:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 20:01 [binutils-gdb] Handle \r\n in gdbreplay sergiodj+buildbot
2019-03-01  1:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 20:22 [binutils-gdb] x86-64: Skip protected check on symbol defined by linker sergiodj+buildbot
2019-03-01  2:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28  0:52 [binutils-gdb] gdb/arc: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28  1:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28  4:51 [binutils-gdb] gdb/cris: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28  5:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28  7:38 [binutils-gdb] (gdb/sim) Move Mike Frysinger to past maintainers section sergiodj+buildbot
2019-03-01  5:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28  7:58 [binutils-gdb] gdb/riscv: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28  7:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28  8:46 [binutils-gdb] gdb/frv: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28  9:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28 12:41 [binutils-gdb] gdb/hppa: Use default gdbarch method default_dummy_id sergiodj+buildbot
2019-02-28 13:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28 14:43 [binutils-gdb] Prevent a buffer overrun error when attempting to parse a corrupt ELF file sergiodj+buildbot
2019-03-01  6:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-01  3:16 [binutils-gdb] PR24272, out-of-bounds read in pex64_xdata_print_uwd_codes sergiodj+buildbot
2019-03-01 10:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-01  7:20 [binutils-gdb] Can't interrupt process without controlling terminal on Solaris (PR gdb/8527) sergiodj+buildbot
2019-03-01  7:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-01 12:46 [binutils-gdb] Binutils: Always skip only 1 byte for CIE version 1's return address register sergiodj+buildbot
2019-03-01 12:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-01 14:55 [binutils-gdb] Revert "Add support to GNU ld to separate got related plt entries" sergiodj+buildbot
2019-03-01 16:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-02 13:35 [binutils-gdb] Fix GDB compilation on MinGW (PR gdb/24292) sergiodj+buildbot
2019-03-02 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-04 15:25 [binutils-gdb] gdbserver short-circuit-argument-list failures sergiodj+buildbot
2019-03-04 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 16:13 [binutils-gdb] Introduce ATTRIBUTE_UNUSED_RESULT and use it sergiodj+buildbot
2019-03-05 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 16:26 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_fd sergiodj+buildbot
2019-03-05 19:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 16:37 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_mmap sergiodj+buildbot
2019-03-05 21:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 16:49 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to macro_buffer sergiodj+buildbot
2019-03-05 22:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 17:03 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_remote_fd::release sergiodj+buildbot
2019-03-05 23:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 17:17 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to ref_ptr::release sergiodj+buildbot
2019-03-06  1:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 17:29 [binutils-gdb] Remove excess calls to gdb_flush sergiodj+buildbot
2019-03-06  2:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 17:35 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to parser_state sergiodj+buildbot
2019-03-05 18:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 21:27 [binutils-gdb] Change the_dummy_target to be a global sergiodj+buildbot
2019-03-06  6:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06  8:50 [binutils-gdb] Fortran function calls with arguments sergiodj+buildbot
2019-03-06  9:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06  9:57 [binutils-gdb] Fix a segmentation fault triggered by disassembling an EFi file with source included sergiodj+buildbot
2019-03-06 11:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06 18:28 [binutils-gdb] gdb/fortran: Remove some duplicate tests sergiodj+buildbot
2019-03-06 19:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06 19:54 [binutils-gdb] gdb/fortran: Add builtin 8-byte integer type with (kind=8) support sergiodj+buildbot
2019-03-07  4:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06 20:20 [binutils-gdb] gdb/fortran: Add support for the ABS intrinsic function sergiodj+buildbot
2019-03-07  7:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06 20:33 [binutils-gdb] gdb/fortran: Handle older TYPE*SIZE typenames sergiodj+buildbot
2019-03-07  9:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06 21:11 [binutils-gdb] linux-fork.c: rewrite inf_has_multiple_threads sergiodj+buildbot
2019-03-07 14:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06 21:33 [binutils-gdb] gdb/fortran: Simplify handling of Fortran dot operations and keywords sergiodj+buildbot
2019-03-06 22:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07  0:13 [binutils-gdb] Remove last cleanup from gdbserver sergiodj+buildbot
2019-03-08  0:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07  0:25 [binutils-gdb] Remove cleanup from solib-svr4.c sergiodj+buildbot
2019-03-08  2:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07  0:38 [binutils-gdb] Remove last cleanups from solib-svr4.c sergiodj+buildbot
2019-03-08  3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07  0:51 [binutils-gdb] Remove last cleanup solib-aix.c sergiodj+buildbot
2019-03-08  5:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07  1:04 [binutils-gdb] Remove last cleanup from linux-namespaces.c sergiodj+buildbot
2019-03-08  6:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07  1:42 [binutils-gdb] Remove basic cleanup code sergiodj+buildbot
2019-03-08 10:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07  1:55 [binutils-gdb] Remove free_current_contents sergiodj+buildbot
2019-03-08 11:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07  2:08 [binutils-gdb] Use SCOPE_EXIT in write_gcore_file sergiodj+buildbot
2019-03-08 13:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07  6:24 [binutils-gdb] gdb/fortran: Use TYPE_CODE_CHAR for character types sergiodj+buildbot
2019-03-07  6:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 10:35 [binutils-gdb] Make "checkpoint" not rely on inferior_ptid sergiodj+buildbot
2019-03-07 10:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 16:22 [binutils-gdb] Eliminate fork_info::clobber_regs sergiodj+buildbot
2019-03-07 16:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 16:42 [binutils-gdb] gdb: Move value_from_host_double into value.c and make more use of it sergiodj+buildbot
2019-03-08 14:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 18:05 [binutils-gdb] C++-ify bcache sergiodj+buildbot
2019-03-08 17:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 18:41 [binutils-gdb] Update two cleanup comments sergiodj+buildbot
2019-03-07 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 21:16 [binutils-gdb] Change displaced_step_clear_cleanup to a forward_scope_exit sergiodj+buildbot
2019-03-07 21:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 22:57 [binutils-gdb] C++ify remote notification code sergiodj+buildbot
2019-03-07 23:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-08  7:15 [binutils-gdb] Remove last cleanups from stabsread.c sergiodj+buildbot
2019-03-08  7:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-08 13:11 [binutils-gdb] PR24311, FAIL: S-records with constructors sergiodj+buildbot
2019-03-08 20:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-09  7:02 [binutils-gdb] Support styling on native MS-Windows console sergiodj+buildbot
2019-03-09  7:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-09 13:46 [binutils-gdb] Split rank_one_type_parm_ptr from rank_one_type sergiodj+buildbot
2019-03-09 14:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-09 13:57 [binutils-gdb] Split rank_one_type_parm_array from rank_one_type sergiodj+buildbot
2019-03-09 16:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-09 14:21 [binutils-gdb] Split rank_one_type_parm_int from rank_one_type sergiodj+buildbot
2019-03-09 18:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-09 15:10 [binutils-gdb] Split rank_one_type_parm_bool from rank_one_type sergiodj+buildbot
2019-03-10  0:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-09 15:36 [binutils-gdb] Split rank_one_type_parm_complex from rank_one_type sergiodj+buildbot
2019-03-10  3:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-10  1:16 [binutils-gdb] Split rank_one_type_parm_float from rank_one_type sergiodj+buildbot
2019-03-10  1:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-10  6:46 [binutils-gdb] Remove unnecessary cases from rank_one_type's switch sergiodj+buildbot
2019-03-10  7:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-11 17:36 [binutils-gdb] Remove redundant assignment from dwarf2_find_containing_comp_unit sergiodj+buildbot
2019-03-11 18:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 13:53 [binutils-gdb] Don't use bfd_get_file_size in objdump sergiodj+buildbot
2019-03-12 17:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 17:07 [binutils-gdb] Change iterate_over_lwps to take a gdb::function_view sergiodj+buildbot
2019-03-12 18:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 17:21 [binutils-gdb] Make null_ptid and minus_one_ptid "const" sergiodj+buildbot
2019-03-12 19:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 17:46 [binutils-gdb] Fix test-cp-name-parser build, parser_fprintf undefined sergiodj+buildbot
2019-03-12 22:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 18:26 [binutils-gdb] Fix MinGW build with source-highlight sergiodj+buildbot
2019-03-13  3:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 20:07 [binutils-gdb] gdb/testsuite: Prepare for DejaGnu 1.6.2 sergiodj+buildbot
2019-03-13  4:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 21:01 [binutils-gdb] Support the fs_base and gs_base registers on i386 sergiodj+buildbot
2019-03-13  5:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 21:13 [binutils-gdb] Support fs_base and gs_base on FreeBSD/i386 sergiodj+buildbot
2019-03-13  7:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 21:52 [binutils-gdb] Add a new gdbarch method to resolve the address of TLS variables sergiodj+buildbot
2019-03-13 11:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 22:06 [binutils-gdb] Remove code disabled since at least 1999 from lookup_struct_elt_type sergiodj+buildbot
2019-03-13 12:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 22:47 [binutils-gdb] Support TLS variables on FreeBSD/amd64 sergiodj+buildbot
2019-03-13 16:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 22:59 [binutils-gdb] Support TLS variables on FreeBSD/i386 sergiodj+buildbot
2019-03-13 18:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 23:25 [binutils-gdb] Support TLS variables on FreeBSD/powerpc sergiodj+buildbot
2019-03-13 21:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 23:39 [binutils-gdb] The NEWS file had two "New targets" sections for 8.3 sergiodj+buildbot
2019-03-13 22:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-13  9:31 [binutils-gdb] Update comment for target::get_thread_local_address sergiodj+buildbot
2019-03-13 10:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-13 12:16 [binutils-gdb] [BFD, LD, AArch64, 2/3] Add --force-bti to enable BTI and to select BTI enabled PLTs sergiodj+buildbot
2019-03-14  2:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-13 12:28 [binutils-gdb] [BFD, LD, AArch64, 3/3] Add --pac-plt to enable PLTs protected with PAC sergiodj+buildbot
2019-03-14  4:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-13 19:30 [binutils-gdb] Fix MI output for multi-location breakpoints sergiodj+buildbot
2019-03-14  6:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-14  0:03 [binutils-gdb] x86: Properly set IBT and SHSTK properties for -z ibt/shstk sergiodj+buildbot
2019-03-14  0:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-14  1:31 [binutils-gdb] [BFD, LD, AArch64, 1/3] Add support for GNU PROPERTIES in AArch64 for BTI and PAC sergiodj+buildbot
2019-03-14  1:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-14 12:15 [binutils-gdb] Add the "set style source" command sergiodj+buildbot
2019-03-14 14:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-14 16:03 [binutils-gdb] Fix colors in TUI mode in MS-Windows build with ncurses sergiodj+buildbot
2019-03-15  0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15  4:17 [binutils-gdb] Fix a buffer overrun error when attempting to parse corrupt DWARF information sergiodj+buildbot
2019-03-15  4:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15  8:02 [binutils-gdb] x86-64: Check for corrupt input with bad relocation sergiodj+buildbot
2019-03-15  9:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 10:11 [binutils-gdb] PR24336, buffer overflow in swap_reloca_in sergiodj+buildbot
2019-03-15 10:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 10:22 [binutils-gdb] PR24337, segfault in _bfd_elf_rela_local_sym sergiodj+buildbot
2019-03-15 12:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 10:35 [binutils-gdb] PR24339, segfault on NULL symbol section sergiodj+buildbot
2019-03-15 13:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 15:15 [binutils-gdb] COFF: Check for symbols defined in discarded section sergiodj+buildbot
2019-03-15 15:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 22:36 [binutils-gdb] Use bitset for demangled_hash_languages sergiodj+buildbot
2019-03-16  6:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 22:44 [binutils-gdb] Slightly simplify minsym creation sergiodj+buildbot
2019-03-15 23:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 22:51 [binutils-gdb] Remove some unneeded initializations in minimal_symbol_reader sergiodj+buildbot
2019-03-16  7:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16  0:38 [binutils-gdb] Allocate minimal symbols with malloc sergiodj+buildbot
2019-03-16 14:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16  0:52 [binutils-gdb] Use memcpy in minimal_symbol_reader::install sergiodj+buildbot
2019-03-16 15:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16  1:07 [binutils-gdb] Change minimal_symbol inheritance sergiodj+buildbot
2019-03-16 17:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16  4:16 [binutils-gdb] PR24337, segfault in _bfd_elf_rela_local_sym, again sergiodj+buildbot
2019-03-16 19:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16 11:07 [binutils-gdb] Simplify per-BFD storage management sergiodj+buildbot
2019-03-16 11:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16 12:31 [binutils-gdb] Revert "Use wclrtoeol in tui_show_source_line" sergiodj+buildbot
2019-03-16 20:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16 18:13 [binutils-gdb] Fix vertical scrolling of TUI source window sergiodj+buildbot
2019-03-17  1:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-18  4:18 [binutils-gdb] gdb: unconditionally define _initialize_string_view_selftests sergiodj+buildbot
2019-03-18  5:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-18 12:30 [binutils-gdb] PR24355, segmentation fault in function called from ppc_finish_symbols sergiodj+buildbot
2019-03-18 13:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-18 14:44 [binutils-gdb] Fix scrolling right in the TUI sergiodj+buildbot
2019-03-18 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-18 15:12 [binutils-gdb] Fix Ada "ptype" bug with array types sergiodj+buildbot
2019-03-18 15:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-18 18:23 [binutils-gdb] Fix gdb/TUI behavior in response to [Enter] keypress sergiodj+buildbot
2019-03-19  1:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-18 19:14 [binutils-gdb] Fix first time you type UP or DOWN in TUI's command window sergiodj+buildbot
2019-03-19  4:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-19 13:27 [binutils-gdb] ix86: Disable AVX512F when disabling AVX2 sergiodj+buildbot
2019-03-19 14:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-19 18:24 [binutils-gdb] Add comments describing tui_ui_out and its fields, cleanup a bit sergiodj+buildbot
2019-03-19 19:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-19 18:38 [binutils-gdb] Don't show "display"s twice in MI sergiodj+buildbot
2019-03-19 21:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-20 18:24 [binutils-gdb] Merge handle_inferior_event and handle_inferior_event_1 sergiodj+buildbot
2019-03-20 18:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-21 17:04 [binutils-gdb] [BFD, AArch64, x86] Improve warning for --force-bti sergiodj+buildbot
2019-03-21 17:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-21 22:32 [binutils-gdb] RISC-V: Fix linker crash in section symbol check sergiodj+buildbot
2019-03-21 23:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-22 12:22 [binutils-gdb] AArch64: Add pointer authentication feature sergiodj+buildbot
2019-03-22 13:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-22 13:17 [binutils-gdb] AArch64: Add pauth DWARF registers sergiodj+buildbot
2019-03-22 19:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-22 13:31 [binutils-gdb] AArch64: DWARF unwinder support for signed return addresses sergiodj+buildbot
2019-03-22 21:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-22 13:48 [binutils-gdb] AArch64: Prologue scan unwinder support for signed return addresses sergiodj+buildbot
2019-03-22 23:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-22 14:02 [binutils-gdb] AArch64: Read pauth section from core files sergiodj+buildbot
2019-03-23  2:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-22 18:18 [binutils-gdb] AArch64: gdbserver: read pauth registers sergiodj+buildbot
2019-03-22 18:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-23 17:15 [binutils-gdb] Include bcache.h from objfiles.h sergiodj+buildbot
2019-03-23 21:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-23 17:30 [binutils-gdb] Have parser reset the innermost block tracker sergiodj+buildbot
2019-03-23 23:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25  6:17 [binutils-gdb] More block constification sergiodj+buildbot
2019-03-25  7:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25  6:17 [binutils-gdb] Remove null_block_symbol sergiodj+buildbot
2019-03-25 10:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 14:22 [binutils-gdb] Fix testsuite hangs when gdb_test_multiple body errors out sergiodj+buildbot
2019-03-25 15:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 15:59 [binutils-gdb] AArch64: Fix disassembler bug with out-of-order sections sergiodj+buildbot
2019-03-25 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 17:24 [binutils-gdb] Fix s390 build sergiodj+buildbot
2019-03-26  1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 20:39 [binutils-gdb] Note support for TLS variables on FreeBSD sergiodj+buildbot
2019-03-26  6:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 22:26 [binutils-gdb] Arm: Fix Arm disassembler mapping symbol search sergiodj+buildbot
2019-03-25 22:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-26 17:26 [binutils-gdb] gdbserver: Add linux_get_hwcap sergiodj+buildbot
2019-03-26 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-26 20:13 [binutils-gdb] gdb: Avoid trailing whitespace when pretty printing sergiodj+buildbot
2019-03-26 23:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-26 20:58 [binutils-gdb] Fix Powerpc build sergiodj+buildbot
2019-03-26 21:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-27 12:22 [binutils-gdb] Testsuite: Ensure interrupt-daemon-attach doesn't run forever sergiodj+buildbot
2019-03-27 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-27 16:06 [binutils-gdb] Fix buffer overflow regression due to minsym malloc-ed instead of obstack-ed sergiodj+buildbot
2019-03-28  4:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-27 22:18 [binutils-gdb] sim/common: convert sim-arange to use sim-inline sergiodj+buildbot
2019-03-28  4:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-28 12:45 [binutils-gdb] gdbserver: Ensure AT_HWCAP2 is defined sergiodj+buildbot
2019-03-28 15:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-28 17:50 [binutils-gdb] AArch64: View the pseudo V registers as vectors sergiodj+buildbot
2019-03-28 20:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-28 21:16 [binutils-gdb] Fix gdb.multi/multi-arch-exec.exp blocking under high load/slow gdb sergiodj+buildbot
2019-03-29 10:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-28 23:33 [binutils-gdb] sim: fix all sim builds sergiodj+buildbot
2019-03-29 15:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-29 18:49 [binutils-gdb] Allow really large fortran array bounds: fortran type/value printers sergiodj+buildbot
2019-03-29 22:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-30 10:38 [binutils-gdb] Introduce new convenience variables $_gdb_major and $_gdb_minor sergiodj+buildbot
2019-03-30 12:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-01  8:39 [binutils-gdb] Add gdb.Value.format_string () sergiodj+buildbot
2019-04-01 11:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-01 15:18 [binutils-gdb] Destroy allocated values when exiting GDB sergiodj+buildbot
2019-04-01 16:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-01 17:31 [binutils-gdb] Handle DW_AT_ranges when reading partial symtabs sergiodj+buildbot
2019-04-01 18:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-01 21:35 [binutils-gdb] gdb: Add $_cimag and $_creal internal functions sergiodj+buildbot
2019-04-01 22:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-01 21:51 [binutils-gdb] gdb/fortran: Handle internal function calls sergiodj+buildbot
2019-04-02  0:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-03  4:24 [binutils-gdb] BFD whitespace fixes sergiodj+buildbot
2019-04-03  5:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-04 23:54 [binutils-gdb] [GDB, Hurd] Fix build; 'target_waitstatus_to_string' call sergiodj+buildbot
2019-04-08 11:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05  2:09 [binutils-gdb] PowerPC disassembler: Don't emit trailing spaces sergiodj+buildbot
2019-04-09 11:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05  2:26 [binutils-gdb] PowerPC bc extended branch mnemonics and "y" hints sergiodj+buildbot
2019-04-09 12:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05  2:42 [binutils-gdb] Make increase_expout_size static sergiodj+buildbot
2019-04-09 14:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05  3:47 [binutils-gdb] Turn parse_gdbarch into a method sergiodj+buildbot
2019-04-09 18:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05  4:17 [binutils-gdb] Move expression_context_* globals to parser_state sergiodj+buildbot
2019-04-09 23:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05  4:17 [binutils-gdb] Remove paren_depth global sergiodj+buildbot
2019-04-10  1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05  4:48 [binutils-gdb] Move lexptr and prev_lexptr to parser_state sergiodj+buildbot
2019-04-10  5:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05  5:50 [binutils-gdb] Move innermost_block_tracker global to parse_state sergiodj+buildbot
2019-04-10 11:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05 17:49 [binutils-gdb] Use linux_get_auxv to get AT_PHDR in the PPC stub sergiodj+buildbot
2019-04-10 15:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-06 14:44 [binutils-gdb] x86: Move x86-specific linker options to elf_linker_x86_params sergiodj+buildbot
2019-04-10 20:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-07 13:25 [binutils-gdb] Merge libiberty from gcc sergiodj+buildbot
2019-04-11  6:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-07 13:40 [binutils-gdb] PR24421, Wrong brackets in opcodes/arm-dis.c sergiodj+buildbot
2019-04-11  8:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08  4:59 [binutils-gdb] Fix x86_64-rdos build fail sergiodj+buildbot
2019-04-11 11:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 15:37 [binutils-gdb] Simplify exception handling sergiodj+buildbot
2019-04-11 13:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 15:53 [binutils-gdb] Make exceptions use std::string and be self-managing sergiodj+buildbot
2019-04-11 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 16:39 [binutils-gdb] Rewrite TRY/CATCH sergiodj+buildbot
2019-04-11 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 16:39 [binutils-gdb] Remove some now-dead exception code sergiodj+buildbot
2019-04-11 20:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 17:11 [binutils-gdb] Replace throw_exception with throw in some cases sergiodj+buildbot
2019-04-12  0:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 19:19 [binutils-gdb] x86: Remove i386-*-kaos* and i386-*-chaos targets sergiodj+buildbot
2019-04-12  3:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 19:35 [binutils-gdb] Some gdb_exception{,error,quit} tweaks sergiodj+buildbot
2019-04-12  5:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09  4:09 [binutils-gdb] Add python method InferiorThread.handle sergiodj+buildbot
2019-04-12 10:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09  4:40 [binutils-gdb] Tests for gdb.InferiorThread.handle sergiodj+buildbot
2019-04-12 13:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 10:15 [binutils-gdb] [MIPS] Add RDHWR with the SEL field for MIPS R6 sergiodj+buildbot
2019-04-12 17:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 16:15 [binutils-gdb] Remove parser_state "initial_size" parameter sergiodj+buildbot
2019-04-09 16:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 16:54 [binutils-gdb] Use -qualified flag when setting temporary breakpoint in start command sergiodj+buildbot
2019-04-12 19:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 18:18 [binutils-gdb] Consistently use bool for fake_pid_p sergiodj+buildbot
2019-04-12 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 19:44 [binutils-gdb] Turn parse_language into a method sergiodj+buildbot
2019-04-09 20:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 19:44 [binutils-gdb] Fix Rust lexer buglet sergiodj+buildbot
2019-04-13  0:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-10  9:17 [binutils-gdb] Move type stack handling to a new class sergiodj+buildbot
2019-04-10  9:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-10  9:22 [binutils-gdb] PR24427, bfd/doc/chew.c reads uninitialized memory and subtracts from function pointer sergiodj+buildbot
2019-04-13  2:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-10 14:24 [binutils-gdb] Remove some uses of "object_files" sergiodj+buildbot
2019-04-13  4:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-10 16:12 [binutils-gdb] x86: Support Intel AVX512 BF16 sergiodj+buildbot
2019-04-10 16:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-11  0:58 [binutils-gdb] Fix amd64->i386 linux syscall restart problem sergiodj+buildbot
2019-04-13 11:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-11  9:21 [binutils-gdb] print_insn_powerpc tidy sergiodj+buildbot
2019-04-11  9:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-11 10:57 [binutils-gdb] AArch64: When DF_BIND_NOW don't use TLSDESC GOT value sergiodj+buildbot
2019-04-13 18:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-11 11:45 [binutils-gdb] PR24435, buffer overflow reading dynamic entries sergiodj+buildbot
2019-04-13 20:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-11 19:21 [binutils-gdb] Make "msg" const in internal_vproblem sergiodj+buildbot
2019-04-14  3:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-11 23:12 [binutils-gdb] gdb: Fix alignment computation for structs with only static fields sergiodj+buildbot
2019-04-14  6:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12  6:05 [binutils-gdb] x86: Define GNU_PROPERTY_X86_ISA_1_AVX512_BF16 sergiodj+buildbot
2019-04-12  7:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 10:57 [binutils-gdb] Testsuite: Add gdbserver sysroot test sergiodj+buildbot
2019-04-14 12:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 12:53 [binutils-gdb] Another fix for GDB styling sergiodj+buildbot
2019-04-14 13:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 15:20 [binutils-gdb] Introduce a separate debug objfile iterator sergiodj+buildbot
2019-04-13  7:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 15:22 [binutils-gdb] AArch64: Ensure regcache is reset between tests sergiodj+buildbot
2019-04-13 13:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 15:25 [binutils-gdb] x86: Add -z cet-report=[none|warning|error] sergiodj+buildbot
2019-04-13 23:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 15:29 [binutils-gdb] gdb/riscv: Remove riscv_type_alignment function sergiodj+buildbot
2019-04-14  8:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-15 13:33 [binutils-gdb] [binutils, ARM, 9/16] New BFL instruction for Armv8.1-M Mainline sergiodj+buildbot
2019-04-16  0:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-15 14:41 [binutils-gdb] [binutils, ARM, 13/16] Add support for CLRM sergiodj+buildbot
2019-04-16  7:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-15 15:32 [binutils-gdb] [binutils, ARM, 16/16] Add support to VLDR and VSTR of system registers sergiodj+buildbot
2019-04-16 12:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-15 15:51 [binutils-gdb] AArch64: Tidy up aarch64_gdbarch_init sergiodj+buildbot
2019-04-16 14:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-15 16:10 [binutils-gdb] AArch64 SVE: Check for vector length change when getting gdbarch sergiodj+buildbot
2019-04-16 15:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-15 16:46 [binutils-gdb] Fix AMD64 return value ABI in expression evaluation sergiodj+buildbot
2019-04-16 19:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-16  4:47 [binutils-gdb] [binutils, ARM, 12/16] Scalar Low Overhead loop instructions for Armv8.1-M Mainline sergiodj+buildbot
2019-04-16  4:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-16  7:40 [binutils-gdb] [opcodes, ARM, 14/16] Add mode availability to coprocessor table entries sergiodj+buildbot
2019-04-16  8:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-17  0:08 [binutils-gdb] gdb/riscv: Allow breakpoints to be created at invalid addresses sergiodj+buildbot
2019-04-17  1:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-17 13:47 [binutils-gdb] gdbserver: Ensure all debug output uses debug functions sergiodj+buildbot
2019-04-17 13:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-17 16:36 [binutils-gdb] x86: Also check x86 linker_def for non-shared definition sergiodj+buildbot
2019-04-17 17:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-17 17:44 [binutils-gdb] x86: Suggest -fPIE when not building shared object sergiodj+buildbot
2019-04-17 19:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-18 16:30 [binutils-gdb] [gdb] Handle vfork in thread with follow-fork-mode child sergiodj+buildbot
2019-04-18 18:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-18 21:56 [binutils-gdb] [gdb/testsuite] Fix gdb.base/break-probes.exp with native-gdbserver sergiodj+buildbot
2019-04-18 23:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-20 15:04 [binutils-gdb] OBVIOUS move add_comm_alias "!" <=> "shell" near the add_com "shell" sergiodj+buildbot
2019-04-20 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-20 15:56 [binutils-gdb] Fix "list" when control characters are seen sergiodj+buildbot
2019-04-20 23:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-20 17:12 [binutils-gdb] Make copy_name return std::string sergiodj+buildbot
2019-04-21  8:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-20 17:28 [binutils-gdb] Make objfile::static_links an htab_up sergiodj+buildbot
2019-04-21 11:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-20 17:46 [binutils-gdb] Use std::list for event notifications in gdbserver sergiodj+buildbot
2019-04-21 12:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-20 18:38 [binutils-gdb] Remove common/queue.h sergiodj+buildbot
2019-04-21 17:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-21  4:17 [binutils-gdb] gdb/configure.ac: add --enable-source-highlight sergiodj+buildbot
2019-04-21  5:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-21 14:06 [binutils-gdb] Use std::list for remote_notif_state::notif_queue sergiodj+buildbot
2019-04-21 14:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23  4:05 [binutils-gdb] Support for DW_OP_addrx and DW_FORM_addrx tags sergiodj+buildbot
2019-04-23  9:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23 13:32 [binutils-gdb] Testsuite: Remove pie from trace tests sergiodj+buildbot
2019-04-23 15:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23 14:16 [binutils-gdb] [gdb/testsuite] Fix gdb.btrace/reconnect.exp with native-gdbserver sergiodj+buildbot
2019-04-23 20:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23 17:28 [binutils-gdb] Remove unused overload of line_header::file_name_at sergiodj+buildbot
2019-04-23 22:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23 22:28 [binutils-gdb] gdb/iq2000: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 12:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23 22:46 [binutils-gdb] gdb/aarch64: Use type_align instead of aarch64_type_align sergiodj+buildbot
2019-04-24  2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23 22:47 [binutils-gdb] gdb/lm32: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 14:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23 23:54 [binutils-gdb] gdb/m32c: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 15:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24  1:15 [binutils-gdb] gdb/moxie: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25  3:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24  1:32 [binutils-gdb] gdb/msp430: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25  5:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24  1:49 [binutils-gdb] gdb/nds32: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25  7:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24  2:22 [binutils-gdb] gdb/or1k: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25 10:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24  3:46 [binutils-gdb] gdb/sparc: Use default_unwind_pc sergiodj+buildbot
2019-04-25 20:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24  5:07 [binutils-gdb] gdb/xstormy16: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-26  5:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24  5:24 [binutils-gdb] gdb/rl78: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-26  6:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24  7:30 [binutils-gdb] gdb/arm: Use type_align instead of arm_type_align sergiodj+buildbot
2019-04-24  8:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24  9:52 [binutils-gdb] gdb/nds32: Use type_align instead of nds32_type_align sergiodj+buildbot
2019-04-24 11:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 17:03 [binutils-gdb] gdb/m32r: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 17:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 18:26 [binutils-gdb] Fix passing of struct with bitfields on x86-64 sergiodj+buildbot
2019-04-26 14:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 20:48 [binutils-gdb] Fix Rust testing sergiodj+buildbot
2019-04-26 18:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 23:39 [binutils-gdb] gdb/mep: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 23:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-25 13:08 [binutils-gdb] gdb/rx: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25 15:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-25 13:53 [binutils-gdb] [BFD, AArch64] Improve bti/pac plts sergiodj+buildbot
2019-04-26 22:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-25 19:20 [binutils-gdb] Implement dump of mappings with ELF headers by gcore sergiodj+buildbot
2019-04-27  3:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-25 19:44 [binutils-gdb] Make SJLJ exceptions more efficient sergiodj+buildbot
2019-04-27 10:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-25 20:51 [binutils-gdb] c++/24367: Infinite recursion of typedef substitution sergiodj+buildbot
2019-04-27 18:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-25 23:25 [binutils-gdb] gdb/tilegx: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25 23:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-26  8:03 [binutils-gdb] gdb/s12z: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-26  9:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-26 15:11 [binutils-gdb] Use "pulongest" on aarch64-tdep.c:aarch64_gdbarch_init sergiodj+buildbot
2019-04-26 16:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-27  3:38 [binutils-gdb] [PATCH] Support for DW_FORM_strx tag sergiodj+buildbot
2019-04-27  5:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-27 10:41 [binutils-gdb] Avoid undefined behavior in Guile exception handling sergiodj+buildbot
2019-04-27 11:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-27 11:41 [binutils-gdb] Implement show | set may-call-functions [on|off] sergiodj+buildbot
2019-04-28  0:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-27 12:26 [binutils-gdb] Make exception handling more efficient sergiodj+buildbot
2019-04-27 13:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-27 20:23 [binutils-gdb] Don't complain undefined weak dynamic reference sergiodj+buildbot
2019-04-27 21:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-28  1:28 [binutils-gdb] Have 'thread|frame apply' style their output sergiodj+buildbot
2019-04-28  2:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-28  5:25 [binutils-gdb] Follow-up to Support style in 'frame|thread apply' sergiodj+buildbot
2019-04-28  6:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-29 14:33 [binutils-gdb] S12Z: Opcodes: Fix crash when trying to decode a truncated operation sergiodj+buildbot
2019-04-29 16:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-29 21:43 [binutils-gdb] gdb/ada: Update some predicate functions to return bool sergiodj+buildbot
2019-04-29 22:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-29 21:55 [binutils-gdb] gdb: Introduce new language field la_is_string_type_p sergiodj+buildbot
2019-04-30  2:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-29 22:12 [binutils-gdb] gdb: Introduce 'print max-depth' feature sergiodj+buildbot
2019-04-30  4:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 12:53 [binutils-gdb] gdb: Remove an unbalanced stray double quote from a comment sergiodj+buildbot
2019-04-30 13:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 13:16 [binutils-gdb] gdb/fortran: Additional builtin procedures sergiodj+buildbot
2019-04-30 17:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 13:50 [binutils-gdb] gdb/fortran: print function arguments when printing function type sergiodj+buildbot
2019-04-30 22:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 14:39 [binutils-gdb] gdb/fortran: Introduce fortran-operator.def file sergiodj+buildbot
2019-04-30 15:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 15:12 [binutils-gdb] Fix crash in dwarf2read.c with template parameters sergiodj+buildbot
2019-05-01  8:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 15:28 [binutils-gdb] Fix "catch exception" with dynamic linking sergiodj+buildbot
2019-05-01 10:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 21:55 [binutils-gdb] gdb/windows-nat.c: Get rid of main_thread_id global sergiodj+buildbot
2019-05-01 16:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 23:41 [binutils-gdb] Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms sergiodj+buildbot
2019-05-01 17:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-01  3:08 [binutils-gdb] PowerPC64 GOT indirect to GOT relative optimisation sergiodj+buildbot
2019-05-01  3:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-01 13:10 [binutils-gdb] (Windows) fix thr != nullptr assert failure in delete_thread_1 sergiodj+buildbot
2019-05-01 13:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-01 13:53 [binutils-gdb] [gdb/testsuite] Fix "unable to find usable gdb" error with cc-with-tweaks.exp sergiodj+buildbot
2019-05-01 21:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-01 16:32 [binutils-gdb] [BINUTILS, AArch64] Enable Transactional Memory Extension sergiodj+buildbot
2019-05-02  2:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-01 22:56 [binutils-gdb] Fix big-endian aggregate assignment in Ada sergiodj+buildbot
2019-05-01 23:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-03  1:02 [binutils-gdb] Remove _initialize_valarith sergiodj+buildbot
2019-05-03  3:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-03 10:03 [binutils-gdb] Fix lookup of separate debug file on MS-Windows sergiodj+buildbot
2019-05-03 10:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-03 11:15 [binutils-gdb] [gdb/testsuite] Add cc-with-gdb-index.exp sergiodj+buildbot
2019-05-03 20:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-03 23:39 [binutils-gdb] Fix cast of character to enum type in Ada sergiodj+buildbot
2019-05-04  1:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-04  3:19 [binutils-gdb] Remove "struct" from foreach statements sergiodj+buildbot
2019-05-04  3:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-04  6:26 [binutils-gdb] Fix leaks by clearing registers and frame caches sergiodj+buildbot
2019-05-04  6:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-04 20:02 [binutils-gdb] Don't derive partial_symbol from general_symbol_info sergiodj+buildbot
2019-05-04 21:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-04 21:04 [binutils-gdb] Change valid_user_defined_cmd_name_p to return bool sergiodj+buildbot
2019-05-05  4:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-04 22:08 [binutils-gdb] Use "false" in compile_cplus_convert_enum sergiodj+buildbot
2019-05-05 12:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-04 22:24 [binutils-gdb] Use gdb_assert_not_reached in arm-linux-nat.c sergiodj+buildbot
2019-05-05 14:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-04 22:41 [binutils-gdb] Change arc_tdesc_init to return bool sergiodj+buildbot
2019-05-05 15:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-05  1:02 [binutils-gdb] Fix incorrect use of 'is' operator for comparison in python/lib/gdb/command/prompt.py sergiodj+buildbot
2019-05-05  0:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-05  8:19 [binutils-gdb] Use "false" in select_frame_for_mi sergiodj+buildbot
2019-05-05  8:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-05 17:17 [binutils-gdb] Remove a VEC from ppc-linux-nat.c sergiodj+buildbot
2019-05-05 17:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-06  3:06 [binutils-gdb] PowerPC reloc symbols that shouldn't be adjusted sergiodj+buildbot
2019-05-06  3:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-06  3:06 [binutils-gdb] PicoJava weak undefined symbols sergiodj+buildbot
2019-05-06  5:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-06  7:21 [binutils-gdb] [gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index, debug-names} sergiodj+buildbot
2019-05-06  7:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-06 14:09 [binutils-gdb] Add load-link, store-conditional paired EVA instructions sergiodj+buildbot
2019-05-06 14:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-07  4:22 [binutils-gdb] Fix scoped_mmap includes sergiodj+buildbot
2019-05-07  4:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-07  9:16 [binutils-gdb] [gdb/testsuite] Fix .debug_aranges in dw2-case-insensitive-debug.S sergiodj+buildbot
2019-05-07 11:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-07  9:16 [binutils-gdb] [gdb/testsuite] Fix handling of DW_FORM_ref_addr in dwarf assembler sergiodj+buildbot
2019-05-07  9:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-07  9:52 [binutils-gdb] [gdb/testsuite] Fix .debug_aranges in watch-loc.c sergiodj+buildbot
2019-05-07 13:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-07 10:09 [binutils-gdb] [gdb/testsuite] Fix ls_host return in index-cache.exp sergiodj+buildbot
2019-05-07 15:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-08 16:34 [binutils-gdb] Fix VLA printing for Ada sergiodj+buildbot
2019-05-08 17:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-08 17:16 [binutils-gdb] Change ptype/o to print bit offset sergiodj+buildbot
2019-05-08 20:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-08 17:32 [binutils-gdb] Correctly handle non-C-style arrays in c_get_string sergiodj+buildbot
2019-05-08 22:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-08 20:19 [binutils-gdb] gdb: Merge two 'New commands' sections in NEWS file sergiodj+buildbot
2019-05-09 14:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-08 22:42 [binutils-gdb] Convert main_info to type-safe registry API sergiodj+buildbot
2019-05-09 17:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-08 23:06 [binutils-gdb] Don't declare read_unsigned_leb128 in defs.h sergiodj+buildbot
2019-05-09  5:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-08 23:46 [binutils-gdb] Convert break-catch-syscall.c to type-safe registry API sergiodj+buildbot
2019-05-10  0:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09  0:18 [binutils-gdb] Convert auto-load.c to type-safe registry API sergiodj+buildbot
2019-05-10  4:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09  1:46 [binutils-gdb] Convert breakpoint.c to type-safe registry API sergiodj+buildbot
2019-05-10 13:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09  1:54 [binutils-gdb] Change some remote.c globals to "static" sergiodj+buildbot
2019-05-09 10:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09  2:03 [binutils-gdb] Convert remote.c to type-safe registry API sergiodj+buildbot
2019-05-10 15:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09  4:18 [binutils-gdb] Convert ada-lang.c to type-safe registry API sergiodj+buildbot
2019-05-11  4:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09  4:53 [binutils-gdb] Add a type-safe C++ interface to a registry sergiodj+buildbot
2019-05-09 15:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09  6:17 [binutils-gdb] Convert stabsread.c to type-safe registry API sergiodj+buildbot
2019-05-11 16:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09  7:07 [binutils-gdb] Convert target dcache to type-safe registry API sergiodj+buildbot
2019-05-09 21:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09  9:44 [binutils-gdb] Convert objfiles.c to type-safe registry API sergiodj+buildbot
2019-05-10  2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 10:22 [binutils-gdb] [binutils][aarch64] Introduce SVE_IMM_ROT3 operand sergiodj+buildbot
2019-05-12  5:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 10:37 [binutils-gdb] [binutils][aarch64] New iclass sve_size_hsd2 sergiodj+buildbot
2019-05-12  6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 11:57 [binutils-gdb] [binutils][aarch64] New sve_size_013 iclass sergiodj+buildbot
2019-05-12 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 12:14 [binutils-gdb] [binutils][aarch64] New SVE_SHRIMM_UNPRED_22 operand sergiodj+buildbot
2019-05-12 16:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 12:22 [binutils-gdb] Convert symfile-debug.c to type-safe registry API sergiodj+buildbot
2019-05-10  8:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 14:30 [binutils-gdb] Convert linux-tdep.c to type-safe registry API sergiodj+buildbot
2019-05-10 12:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 17:08 [binutils-gdb] Convert solib-svr4.c to type-safe registry API sergiodj+buildbot
2019-05-10 16:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 20:54 [binutils-gdb] Convert fbsd-tdep.c to type-safe registry API sergiodj+buildbot
2019-05-11  0:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 23:40 [binutils-gdb] Convert nto-tdep.c to type-safe registry API sergiodj+buildbot
2019-05-11  5:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-10  3:57 [binutils-gdb] Remove mips_pdr_data sergiodj+buildbot
2019-05-11 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-10  6:46 [binutils-gdb] Convert dwarf2-frame.c to type-safe registry API sergiodj+buildbot
2019-05-11 19:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-10 12:03 [binutils-gdb] [binutils][aarch64] SVE2 feature extension flags sergiodj+buildbot
2019-05-12  1:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-10 16:16 [binutils-gdb] Add completion for Ada catch commands sergiodj+buildbot
2019-05-13  9:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-10 16:33 [binutils-gdb] [binutils][aarch64] New SVE_ADDR_ZX operand sergiodj+buildbot
2019-05-12 10:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-11  0:43 [binutils-gdb] [binutils][aarch64] Add SVE2 instructions sergiodj+buildbot
2019-05-13  2:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-11  0:59 [binutils-gdb] PowerPC objdump -Mraw sergiodj+buildbot
2019-05-13 15:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-11  2:38 [binutils-gdb] Update printing of optional operands during disassembly sergiodj+buildbot
2019-05-13  7:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-11  8:39 [binutils-gdb] Fix GDB build when using --disable-gdbmi sergiodj+buildbot
2019-05-13 12:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-11 12:31 [binutils-gdb] Add macro expansions for ADD, SUB, DADD and DSUB for MIPS r6 sergiodj+buildbot
2019-05-13 16:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-12 16:12 [binutils-gdb] Fix two langauge -> language typos sergiodj+buildbot
2019-05-14  6:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-14  8:28 [binutils-gdb] [gdb/testsuite] Fix base address selection entry encoding in dw2-skip-prologue.S sergiodj+buildbot
2019-05-14  9:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-14  9:55 [binutils-gdb] AArch64: Add half float view to V registers sergiodj+buildbot
2019-05-14 10:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-14 10:15 [binutils-gdb] A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled sergiodj+buildbot
2019-05-14 12:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-14 10:31 [binutils-gdb] Add new option to objcopy: --verilog-data-width. Use this option to set the size of byte bundles generated in verilog format files sergiodj+buildbot
2019-05-14 14:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-14 22:29 [binutils-gdb] Fix assertion failure in coerce_unspec_val_to_type sergiodj+buildbot
2019-05-14 22:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-15  5:50 [binutils-gdb] GDB (s12z): Improve reliability of the stack unwinder sergiodj+buildbot
2019-05-15  6:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-15 15:54 [binutils-gdb] linux-thread-db.c: use bool where possible in thread_db code sergiodj+buildbot
2019-05-15 21:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-15 21:57 [binutils-gdb] gdb/fortran: Add sizeof tests for indexed and sliced arrays sergiodj+buildbot
2019-05-15 22:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 13:25 [binutils-gdb] Revert "ARM STM32L4XX erratum test failure" sergiodj+buildbot
2019-05-16 14:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 16:29 [binutils-gdb] [PATCH 45/57][Arm][OBJDUMP] Add support for MVE instructions: vmov, vmvn, vorr, vorn, vmovx and vbic sergiodj+buildbot
2019-05-16 21:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 17:22 [binutils-gdb] [PATCH 48/57][Arm][OBJDUMP] Add support for MVE instructions: vddup, vdwdup, vidup and viwdup sergiodj+buildbot
2019-05-17  2:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 17:53 [binutils-gdb] [PATCH 50/57][Arm][OBJDUMP] Add support for MVE shift instructions sergiodj+buildbot
2019-05-17  6:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 18:25 [binutils-gdb] [PATCH 52/57][Arm][OBJDUMP] Add support for MVE instructions: vadc, vabav, vabd, vabs, vadd, vsbc and vsub sergiodj+buildbot
2019-05-17  9:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 18:42 [binutils-gdb] [PATCH 53/57][Arm][OBJDUMP] Add support for MVE instructions: vand, vbrsr, vcls, vclz and vctp sergiodj+buildbot
2019-05-17 12:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 19:46 [binutils-gdb] Fix darwin-nat.c build sergiodj+buildbot
2019-05-17 20:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 20:49 [binutils-gdb] Bool-ify stap-probe.c and stap-related code on i386-tdep.c sergiodj+buildbot
2019-05-17 22:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 21:12 [binutils-gdb] [PATCH 49/57][Arm][OBJDUMP] Add support for MVE complex number instructions sergiodj+buildbot
2019-05-17  4:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 21:37 [binutils-gdb] Fix complaint string formatting on stap-probe.c sergiodj+buildbot
2019-05-18  4:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 21:53 [binutils-gdb] Make stap-probe.c:stap_parse_register_operand's "regname" an std::string sergiodj+buildbot
2019-05-18  6:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 23:02 [binutils-gdb] [PATCH 51/57][Arm][OBJDUMP] Add support for MVE instructions: lctp, letp, wlstp and dlstp sergiodj+buildbot
2019-05-17  7:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17  7:58 [binutils-gdb] [gdb] Fix heap-use-after-free in typename_concat sergiodj+buildbot
2019-05-18  8:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 10:42 [binutils-gdb] MI: extract command completion logic from complete_command() sergiodj+buildbot
2019-05-19  0:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 11:02 [binutils-gdb] MI: Add new command -complete sergiodj+buildbot
2019-05-19  3:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 13:27 [binutils-gdb] Change file close behavior for tee_file sergiodj+buildbot
2019-05-19  6:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 13:46 [binutils-gdb] Add debug redirect option sergiodj+buildbot
2019-05-19  9:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 14:55 [binutils-gdb] testsuite: Disable some tests when logging sergiodj+buildbot
2019-05-19 13:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 16:26 [binutils-gdb] testsuite: Add replay logging to GDBSERVER_DEBUG sergiodj+buildbot
2019-05-20  3:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 16:43 [binutils-gdb] testsuite: Remove TRANSCRIPT support sergiodj+buildbot
2019-05-20 15:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 17:00 [binutils-gdb] Constify annotate_source sergiodj+buildbot
2019-05-20 16:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 17:37 [binutils-gdb] Don't cast away const in find_and_open_source sergiodj+buildbot
2019-05-20 21:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 19:13 [binutils-gdb] testsuite: Add option to capture GDB debug sergiodj+buildbot
2019-05-19 12:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21  7:37 [binutils-gdb] Updated translations for various binutils subdirectories sergiodj+buildbot
2019-05-21  8:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21 10:14 [binutils-gdb] Fix PR 24571 - Relaxation does not shorten jmp or call to target at pc-relative range boundary sergiodj+buildbot
2019-05-21 12:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21 14:27 [binutils-gdb] AArch64: Implement choice between Cortex-A53 erratum workarounds. (PR ld/24373) sergiodj+buildbot
2019-05-21 15:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21 16:56 [binutils-gdb] [gdb/testsuite] Require c++11 where necessary sergiodj+buildbot
2019-05-21 18:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21 17:09 [binutils-gdb] [gdb/cli] Fix use of uninitialized variable in complete_command sergiodj+buildbot
2019-05-21 21:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21 18:17 [binutils-gdb] AArch64: Fix -Werror on build sergiodj+buildbot
2019-05-21 23:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21 19:25 [binutils-gdb] [binutils, Arm] Add support for conditional instructions in Armv8.1-M Mainline sergiodj+buildbot
2019-05-22  9:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21 20:39 [binutils-gdb] MIPS/LD: Fix memory fault linking non-PIC object in to shared library sergiodj+buildbot
2019-05-22 10:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21 21:26 [binutils-gdb] MIPS/LD: Reject tprel_hi and tprel_lo relocations in shared library sergiodj+buildbot
2019-05-22 11:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-22  0:49 [binutils-gdb] gdb/fortran: Handle gdbarch_floatformat_for_type returning nullptr sergiodj+buildbot
2019-05-22 13:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-22 10:41 [binutils-gdb] bfdtest1 segfaults on hppa-hp-hpux10 sergiodj+buildbot
2019-05-22 16:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-22 13:57 [binutils-gdb] gdb/riscv: Improve flen length determination sergiodj+buildbot
2019-05-22 23:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-22 16:32 [binutils-gdb] AArch64: Treat pauth ops as nops on non-pauth systems sergiodj+buildbot
2019-05-23 17:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-22 18:22 [binutils-gdb] [gdb/testsuite] Add missing mi_skip_python_tests to py-mi-var-info-path-expression.exp sergiodj+buildbot
2019-05-23 17:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-22 18:33 [binutils-gdb] [gdb/testsuite] Require c++11 for gdb.base/align.exp sergiodj+buildbot
2019-05-23 18:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-23 20:19 [binutils-gdb] opcodes: add support for eBPF sergiodj+buildbot
2019-05-24  2:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-23 20:52 [binutils-gdb] bfd: add support for eBPF sergiodj+buildbot
2019-05-24  0:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-24  2:50 [binutils-gdb] PowerPC add initial -mfuture instruction support sergiodj+buildbot
2019-05-24  4:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-24  3:29 [binutils-gdb] PowerPC relocations for prefix insns sergiodj+buildbot
2019-05-24 22:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-24  3:52 [binutils-gdb] PowerPC GOT_PCREL34 optimisation sergiodj+buildbot
2019-05-24 23:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-24  4:14 [binutils-gdb] PowerPC notoc linkage stubs sergiodj+buildbot
2019-05-24 23:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-25  0:33 [binutils-gdb] aarch64: add STO_AARCH64_VARIANT_PCS and DT_AARCH64_VARIANT_PCS sergiodj+buildbot
2019-05-27  7:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-25  0:56 [binutils-gdb] aarch64: handle STO_AARCH64_VARIANT_PCS in bfd sergiodj+buildbot
2019-05-27  7:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-25  1:22 [binutils-gdb] Regen POTFILES for bpf sergiodj+buildbot
2019-05-25  4:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-28  3:44 [binutils-gdb] Fix typo in gdb/NEWS sergiodj+buildbot
2019-05-28  4:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-28  4:24 [binutils-gdb] XCOFF linker segmentation fault sergiodj+buildbot
2019-05-28 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  0:02 [binutils-gdb] LM32 linker segmentation faults sergiodj+buildbot
2019-05-29  3:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  0:04 [binutils-gdb] Alpha-linux linker segmentation fault sergiodj+buildbot
2019-05-29  5:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  0:06 [binutils-gdb] Microblaze linker segmentation fault sergiodj+buildbot
2019-05-29  8:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  0:08 [binutils-gdb] Suppress SIGTTOU when handling errors sergiodj+buildbot
2019-05-29 11:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  0:11 [binutils-gdb] include: new header ctf-api.h sergiodj+buildbot
2019-05-29 15:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  0:24 [binutils-gdb] m68k linker segmentation faults sergiodj+buildbot
2019-05-29  1:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  0:50 [binutils-gdb] libctf: build system sergiodj+buildbot
2019-06-01 10:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  1:04 [binutils-gdb] Remove find_old_style_renaming_symbol sergiodj+buildbot
2019-06-01 11:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  1:10 [binutils-gdb] x86: Add CheckRegSize to AVX512_BF16 instructions with Disp8ShiftVL sergiodj+buildbot
2019-06-01 11:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  1:13 [binutils-gdb] MIPS/LD: Skip overflow check for %pcrel_hi relocations sergiodj+buildbot
2019-06-01 11:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  2:19 [binutils-gdb] libctf: opening sergiodj+buildbot
2019-05-30  3:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  3:33 [binutils-gdb] libctf: core type lookup sergiodj+buildbot
2019-05-31 16:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  4:16 [binutils-gdb] libctf: library version enforcement sergiodj+buildbot
2019-05-31 21:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  4:47 [binutils-gdb] libctf: labels sergiodj+buildbot
2019-06-01  6:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  4:51 [binutils-gdb] libctf: debug dumping sergiodj+buildbot
2019-06-01  8:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  5:10 [binutils-gdb] COFF linker segmentation faults sergiodj+buildbot
2019-05-29  9:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29  9:28 [binutils-gdb] libctf: lowest-level memory allocation and debug-dumping wrappers sergiodj+buildbot
2019-05-29 16:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 10:59 [binutils-gdb] libctf: error handling sergiodj+buildbot
2019-05-29 20:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 12:26 [binutils-gdb] libctf: implementation definitions related to file creation sergiodj+buildbot
2019-05-30  1:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 16:18 [binutils-gdb] libctf: ELF file opening via BFD sergiodj+buildbot
2019-05-31 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 19:15 [binutils-gdb] libctf: lookups by name and symbol sergiodj+buildbot
2019-05-31 16:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-30 11:54 [binutils-gdb] Revert "Sync top level files with versions from gcc." sergiodj+buildbot
2019-06-02  0:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-30 16:46 [binutils-gdb] Two comment fixes in gdbtypes.h sergiodj+buildbot
2019-06-02  3:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-31 17:03 [binutils-gdb] Add previous_saved_command_line to allow a command to repeat a previous command sergiodj+buildbot
2019-06-02 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-31 18:04 [binutils-gdb] Implement | (pipe) command sergiodj+buildbot
2019-06-02 23:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-31 18:34 [binutils-gdb] Add function execute_command_to_ui_file sergiodj+buildbot
2019-06-02 23:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-31 18:35 [binutils-gdb] NEWS and documentation for | (pipe) command sergiodj+buildbot
2019-06-03  2:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-03  2:58 [binutils-gdb] Remove fromhex implementation from gdbreplay sergiodj+buildbot
2019-06-03 15:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-03 16:02 [binutils-gdb] Don't waste space in prefix_opcd_indices sergiodj+buildbot
2019-06-03 20:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-03 21:15 [binutils-gdb] Revert patch that disables building libctf for non-ELF based targets sergiodj+buildbot
2019-06-03 21:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-03 21:49 [binutils-gdb] Add highlight style, title style, fputs_highlighted. Improve 'show style' sergiodj+buildbot
2019-06-03 23:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-03 22:05 [binutils-gdb] Improve usability and/or readibility of help and apropos output sergiodj+buildbot
2019-06-04 17:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-03 22:28 [binutils-gdb] Update tests following changes to "help" and "apropos" sergiodj+buildbot
2019-06-04 19:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-03 23:06 [binutils-gdb] Document in NEWS and gdb.texinfo the "help", "apropos" and "show style" changes sergiodj+buildbot
2019-06-04 20:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 16:15 [binutils-gdb] Remove an unnecessary set of parentheses in the arm-dis.c source file sergiodj+buildbot
2019-06-04 22:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 17:11 [binutils-gdb] Add support for Intel ENQCMD[S] instructions sergiodj+buildbot
2019-06-05  0:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 17:31 [binutils-gdb] Enable Intel AVX512_VP2INTERSECT insn sergiodj+buildbot
2019-06-05  0:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 18:26 [binutils-gdb] libctf: fix the type of ctf_enum.cte_value sergiodj+buildbot
2019-06-05  2:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 19:32 [binutils-gdb] libctf: look for BSD versus GNU qsort_r signatures sergiodj+buildbot
2019-06-05  9:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 19:41 [binutils-gdb] libctf: work on platforms without O_CLOEXEC sergiodj+buildbot
2019-06-05  9:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 21:05 [binutils-gdb] i386: Check for reserved VEX.vvvv and EVEX.vvvv sergiodj+buildbot
2019-06-05 10:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 21:37 [binutils-gdb] Use CHAR_BIT instead of NBBY in libctf sergiodj+buildbot
2019-06-05 10:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 22:03 [binutils-gdb] libctf: fix use-after-free in function dumping sergiodj+buildbot
2019-06-05  4:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 23:38 [binutils-gdb] Introduce and use make_unique_xstrdup sergiodj+buildbot
2019-06-05 10:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-05 10:48 [binutils-gdb] gdb/riscv: Don't error when decoding a 6 or 8 byte instruction sergiodj+buildbot
2019-06-05 11:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-05 18:25 [binutils-gdb] libctf: eschew %zi format specifier sergiodj+buildbot
2019-06-06 11:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-06 13:19 [binutils-gdb] [LD, AArch64] Move ELF options behind -z sergiodj+buildbot
2019-06-06 15:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-06 15:13 [binutils-gdb] [BFD, AArch64] Fix PT_GNU_PROPERTY alignment issue sergiodj+buildbot
2019-06-06 17:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-06 18:15 [binutils-gdb] Add timestamps to "maint time" output sergiodj+buildbot
2019-06-06 18:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-06 19:36 [binutils-gdb] Add thread-exit annotation sergiodj+buildbot
2019-06-07 13:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-07 14:40 [binutils-gdb] libctf: mark various args as unused in the !HAVE_MMAP case sergiodj+buildbot
2019-06-07 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-07 15:36 [binutils-gdb] libctf: avoid strndup sergiodj+buildbot
2019-06-10  8:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 13:53 [binutils-gdb] [gdb/symtab] Support DW_AT_main_subprogram with -readnow sergiodj+buildbot
2019-06-10 14:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 14:44 [binutils-gdb] Delay allocation of dbx_symfile_info sergiodj+buildbot
2019-06-10 15:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 14:58 [binutils-gdb] Use gdbpy_enter in py-breakpoint.c sergiodj+buildbot
2019-06-10 16:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 17:18 [binutils-gdb] Add support for NetBSD/sh3 core file sections. Merge multiple copies of auxv section creation into one function sergiodj+buildbot
2019-06-10 17:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 18:19 [binutils-gdb] Remove newlines from warnings sergiodj+buildbot
2019-06-10 18:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 19:04 [binutils-gdb] [gdb/symtab] Fix symbol loading performance regression sergiodj+buildbot
2019-06-10 20:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 19:29 [binutils-gdb] [gdb] Fix dynamic-stack-buffer-overflow in linespec_lexer_lex_string sergiodj+buildbot
2019-06-10 22:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 20:13 [binutils-gdb] [gdb] Fix heap-buffer-overflow in cp_find_first_component_aux sergiodj+buildbot
2019-06-10 23:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-11  7:57 [binutils-gdb] gdb: Check for not allocated/associated values during array slicing sergiodj+buildbot
2019-06-11  8:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-11 11:55 [binutils-gdb] [gdb/testsuite] Add readnow.exp sergiodj+buildbot
2019-06-11 12:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-11 13:14 [binutils-gdb] Remove shadowing from darwin-nat.c sergiodj+buildbot
2019-06-11 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-11 15:52 [binutils-gdb] Remove trailing newlines from help text sergiodj+buildbot
2019-06-11 16:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-12 15:03 [binutils-gdb] Dwarf: Don't add nameless modules to partial symbol table sergiodj+buildbot
2019-06-12 15:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-12 21:16 [binutils-gdb] Prevent a seg-fault from objdup when disassembling binaries which do not contain a symbol table sergiodj+buildbot
2019-06-12 21:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-12 23:45 [binutils-gdb] opcodes/or1k: Regenerate opcodes sergiodj+buildbot
2019-06-13  0:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13  1:56 [binutils-gdb] Allow "unlimited" abbreviations sergiodj+buildbot
2019-06-13  8:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13  2:25 [binutils-gdb] Remove "show" command completers, "set" command completers for string commands sergiodj+buildbot
2019-06-13  9:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13  2:36 [binutils-gdb] New set/show testing framework (gdb.base/settings.exp) sergiodj+buildbot
2019-06-13 11:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13  2:48 [binutils-gdb] Introduce generic command options framework sergiodj+buildbot
2019-06-13 13:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13  2:53 [binutils-gdb] Make "print" and "compile print" support -OPT options sergiodj+buildbot
2019-06-13 15:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13  3:01 [binutils-gdb] "set print raw frame-arguments" -> "set print raw-frame-arguments" sergiodj+buildbot
2019-06-13 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13  3:40 [binutils-gdb] lib/completion-support.exp: Add test_gdb_completion_offers_commands sergiodj+buildbot
2019-06-15  1:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13  3:56 [binutils-gdb] Make "frame apply" support -OPT options sergiodj+buildbot
2019-06-15 12:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13  4:21 [binutils-gdb] Make "thread apply" use the gdb::option framework sergiodj+buildbot
2019-06-15 15:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 10:19 [binutils-gdb] Fix gdb build with -std=gnu++11 sergiodj+buildbot
2019-06-15 17:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 14:32 [binutils-gdb] sim/common: wire up new unordered comparisons sergiodj+buildbot
2019-06-15 20:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 15:25 [binutils-gdb] sim/testsuite/or1k: Add tests for unordered compares sergiodj+buildbot
2019-06-15 21:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14  6:59 [binutils-gdb] Regenerate with approved autotools version sergiodj+buildbot
2019-06-15 21:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14  7:17 [binutils-gdb] sim/testsuite/or1k: Add test for 64-bit fpu operations sergiodj+buildbot
2019-06-15 20:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14  9:52 [binutils-gdb] Fix "set integer-command unlimited junk" sergiodj+buildbot
2019-06-15 21:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 13:09 [binutils-gdb] PowerPC comment fixes sergiodj+buildbot
2019-06-15 21:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 14:49 [binutils-gdb] Fix gdb.ada/vla.exp sergiodj+buildbot
2019-06-15 21:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 14:49 [binutils-gdb] Add R_AARCH64_P32_MOVW_PREL_* ELF32 relocs sergiodj+buildbot
2019-06-15 21:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 15:48 [binutils-gdb] Recognize _ in attribute names sergiodj+buildbot
2019-06-16  0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 16:19 [binutils-gdb] gdb: Use scoped_restore_terminal_state in annotate.c sergiodj+buildbot
2019-06-16  2:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 19:25 [binutils-gdb] Allow re-assigning to convenience variables sergiodj+buildbot
2019-06-16  1:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 22:55 [binutils-gdb] Warn if add-symbol-file does not provide any symbols sergiodj+buildbot
2019-06-16  8:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 23:38 [binutils-gdb] Minor NEWS rearrangement sergiodj+buildbot
2019-06-16 12:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-15 22:01 [binutils-gdb] gdb: Remove file path from test name sergiodj+buildbot
2019-06-16 14:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-15 22:42 [binutils-gdb] gdb: New function to open source file and compute line charpos data sergiodj+buildbot
2019-06-16 14:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-15 23:31 [binutils-gdb] gdb: Remove unused parameter sergiodj+buildbot
2019-06-16 14:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-16  0:13 [binutils-gdb] gdb/mi: New commands to catch C++ exceptions sergiodj+buildbot
2019-06-16 15:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-16  1:15 [binutils-gdb] gdb/fortran: Show the type for non allocated / associated types sergiodj+buildbot
2019-06-16 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-16  2:06 [binutils-gdb] gdb: Don't allow annotations to influence what else GDB prints sergiodj+buildbot
2019-06-16 15:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-16 16:53 [binutils-gdb] Remove some NULL checks from the TUI sergiodj+buildbot
2019-06-16 20:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-16 20:58 [binutils-gdb] Write index for dwz -m file sergiodj+buildbot
2019-06-17  4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-16 21:57 [binutils-gdb] Don't cast a tui_win_info directly to tui_gen_win_info sergiodj+buildbot
2019-06-17 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-17 18:56 [binutils-gdb] aarch64: remove unnecessary loc_hash_table traversal sergiodj+buildbot
2019-06-17 19:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-17 19:36 [binutils-gdb] i386: Check vector length for vshufXXX/vinsertXXX/vextractXXX sergiodj+buildbot
2019-06-17 20:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-18  2:06 [binutils-gdb] PR gdb/24364: Don't call dtrace_process_dof with NULL dof sergiodj+buildbot
2019-06-18  7:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-18  7:53 [binutils-gdb] [gdb] Fix heap-buffer-overflow in child_path sergiodj+buildbot
2019-06-18 16:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-18 16:46 [binutils-gdb] [gdb/testsuite] Break up long debug_flags line in fission.exp sergiodj+buildbot
2019-06-18 17:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-18 17:21 [binutils-gdb] Add comment to list0.h sergiodj+buildbot
2019-06-18 18:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-18 18:53 [binutils-gdb] [gdb/testsuite] Use -fuse-ld=gold in fission.exp sergiodj+buildbot
2019-06-19  4:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-19  5:18 [binutils-gdb] gdb: Remove use of deprecated_interactive_hook sergiodj+buildbot
2019-06-19  8:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-19 12:58 [binutils-gdb] Instantiate a single source highlighter sergiodj+buildbot
2019-06-19 15:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-19 14:38 [binutils-gdb] Fix crash when setting breakpoint condition sergiodj+buildbot
2019-06-19 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-19 17:31 [binutils-gdb] [gdb] Fix build breaker with gcc 4.8 sergiodj+buildbot
2019-06-20  5:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-20  5:24 [binutils-gdb] i386: Check vector length for EVEX broadcast instructions sergiodj+buildbot
2019-06-20  9:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-20  9:51 [binutils-gdb] Don't declare tui_init_content_element sergiodj+buildbot
2019-06-20 10:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-21  7:56 [binutils-gdb] [gdbserver] Fix s390x -m31 gdbserver build sergiodj+buildbot
2019-06-21 12:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-21 12:52 [binutils-gdb] PR24689, string table corruption sergiodj+buildbot
2019-06-21 13:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-21 14:34 [binutils-gdb] libctf: dump header offsets into the debugging output sergiodj+buildbot
2019-06-21 17:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-21 15:10 [binutils-gdb] libctf: unidentified type kinds on open are a sign of file corruption sergiodj+buildbot
2019-06-21 18:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-08-21 21:57 [binutils-gdb] Fix nullptr in with_command_1 gdb-buildbot
2019-08-21 22:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22  5:38 [binutils-gdb] ARM CMSE symbols gdb-buildbot
2019-08-22  9:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 11:36 [binutils-gdb] AArch64: Fix LD crash on weak and undefined TLS symbols. (PR/24602) gdb-buildbot
2019-08-22 12:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 12:18 [binutils-gdb] gdb/fortran: Remove some dead code from the parser gdb-buildbot
2019-08-22 13:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 14:33 [binutils-gdb] Fix an illegal memory access when dumping corrupt x86_64 PE unwind data gdb-buildbot
2019-08-22 14:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 15:14 [binutils-gdb] Arm: Add support for missing CPUs gdb-buildbot
2019-08-22 16:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 16:40 [binutils-gdb] [gdb/testsuite] Make gdb_test message more informative in multi-term-settings.exp gdb-buildbot
2019-08-22 18:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 23:24 [binutils-gdb] Make GDB compile with Python 3 on MinGW gdb-buildbot
2019-08-23  4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-23 10:41 [binutils-gdb] PR24933, Memory leak in elf_x86_64_get_synthetic_symtab gdb-buildbot
2019-08-23 12:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-23 13:01 [binutils-gdb] Stop the BFD library from failing when encountering a second set of relocs for the same section gdb-buildbot
2019-08-23 13:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-23 14:14 [binutils-gdb] or1k: Fix incorrect value in PLT GOT entries, causing infinite loop gdb-buildbot
2019-08-23 15:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-23 16:00 [binutils-gdb] Fix bug in nios2 prologue analysis gdb-buildbot
2019-08-23 17:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-23 18:28 [binutils-gdb] Move gdb-dlfcn.[ch] to gdbsupport/ gdb-buildbot
2019-08-24  0:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-24  1:17 [binutils-gdb] PowerPC64 segfault in ppc64_elf_edit_toc gdb-buildbot
2019-08-24 22:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-24 22:23 [binutils-gdb] Fix compile warning in symtab.c gdb-buildbot
2019-08-25  9:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-25 11:38 [binutils-gdb] Convert the RX target to make use of target descriptions gdb-buildbot
2019-08-25 12:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-25 23:11 [binutils-gdb] dwarf2read: replace gdb::optional<bool> with enum gdb-buildbot
2019-08-26  2:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-26  2:14 [binutils-gdb] dwarf2read: fix compilation issue with gcc 4.8 gdb-buildbot
2019-08-26 13:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-26 13:56 [binutils-gdb] Use raw strings on gdb.python/py-xmethods.exp (and fix Python 3.8's "SyntaxWarning: invalid escape sequence") gdb-buildbot
2019-08-26 17:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-26 17:29 [binutils-gdb] [gdb/testsuite] Make skip_libstdcxx_probe_tests return 1 if true gdb-buildbot
2019-08-26 18:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-26 18:01 [binutils-gdb] [gdb, c++] Improve error message when using libstdcxx without SDT probes gdb-buildbot
2019-08-26 19:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-26 22:05 [binutils-gdb] Factor out the common code in lookup_{static,global}_symbol gdb-buildbot
2019-08-27  5:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-27 11:48 [binutils-gdb] Add support for the MVE VMOV instruction to the ARM assembler. This instruction copies the value of one vector register to another vector register. The patch also modifies the decoding of VORR instruction which is effecting decoding of VMOV instruction gdb-buildbot
2019-08-27 15:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-27 16:22 [binutils-gdb] gdb: Add new -n flag to some info commands gdb-buildbot
2019-08-27 16:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-27 19:31 [binutils-gdb] Fix compiler warning in linux-namespaces.c gdb-buildbot
2019-08-28 12:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-28 13:33 [binutils-gdb] gdb/fortran: Implement la_print_typedef for Fortran gdb-buildbot
2019-08-28 13:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-28 13:58 [binutils-gdb] gdb/fortran: Don't include module symbols when searching for types gdb-buildbot
2019-08-28 15:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-28 15:15 [binutils-gdb] Fix Gnulib glob.c resource leaks found by Coverity gdb-buildbot
2019-08-28 16:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-28 17:56 [binutils-gdb] [gdb/testsuite] Fix info-var.exp for debug info from other files gdb-buildbot
2019-08-28 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29  0:55 [binutils-gdb] PR24891, objdump memory leaks when parsing malformed archive gdb-buildbot
2019-08-29  1:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29  1:25 [binutils-gdb] RISC-V: Fix a gp relaxation reloc overflow error gdb-buildbot
2019-08-29  2:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29  4:31 [binutils-gdb] PowerPC64 xlate_pcrel_opt gdb-buildbot
2019-08-29 11:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29 12:16 [binutils-gdb] PR24697, R_PPC_EMB_SDA21 cannot be used when making a shared object gdb-buildbot
2019-08-29 13:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29 13:44 [binutils-gdb] [gdb/testsuite] Fix gdb.fortran/info-types.exp regexp gdb-buildbot
2019-08-29 16:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29 17:21 [binutils-gdb] Fix PR win32/24284: tcp_auto_retry doesn't work in MinGW gdb-buildbot
2019-08-29 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29 22:28 [binutils-gdb] Run argv0-symlink.exp only on native target and local host gdb-buildbot
2019-08-30  8:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30  9:11 [binutils-gdb] [ARC] [COMMITTED] Fix FASTMATH field gdb-buildbot
2019-08-30 15:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 15:17 [binutils-gdb] Copy BFD_COMPRESS/BFD_DECOMPRESS/BFD_COMPRESS_GABI for thin archive gdb-buildbot
2019-08-30 19:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 19:52 [binutils-gdb] Remove NO_DATA_STRING gdb-buildbot
2019-08-30 20:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 20:53 [binutils-gdb] Remove tui_data_window::display_all_data gdb-buildbot
2019-08-30 21:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 21:05 [binutils-gdb] Remove some checks of .empty() gdb-buildbot
2019-08-30 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 21:37 [binutils-gdb] Remove some calls in tui_data_window gdb-buildbot
2019-08-30 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 22:10 [binutils-gdb] Private data members in tui_data_window gdb-buildbot
2019-08-31  0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 22:32 [binutils-gdb] Simplify register display gdb-buildbot
2019-08-31  1:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 23:36 [binutils-gdb] Remove NULL checks from box_win gdb-buildbot
2019-08-31  2:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 23:43 [binutils-gdb] Don't call touchwin in tui_gen_win_info::refresh_window gdb-buildbot
2019-08-31  3:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31  0:20 [binutils-gdb] Don't call tui_refresh_all from show_layout gdb-buildbot
2019-08-31  4:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31  1:42 [binutils-gdb] Turn two locator functions into methods gdb-buildbot
2019-08-31  4:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31  2:53 [binutils-gdb] Minor rearrangement of tui-stack.c gdb-buildbot
2019-08-31  8:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31  3:30 [binutils-gdb] Don't call wrefresh from tui_cont_sig gdb-buildbot
2019-08-31  8:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31  4:56 [binutils-gdb] Remove "\nError: " suffix from nat/fork-inferior.c:trace_start_error warning message gdb-buildbot
2019-08-31 10:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31  5:12 [binutils-gdb] RISC-V: Force linker error exit after unresolvable reloc gdb-buildbot
2019-08-31 12:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31  5:30 [binutils-gdb] Swap tui_show_locator_content and tui_locator_window::rerender gdb-buildbot
2019-08-31  5:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31  6:20 [binutils-gdb] Make tui_locator_window::set_locator_fullname re-render gdb-buildbot
2019-08-31  7:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31  9:14 [binutils-gdb] Remove tui_win_info::refresh_all gdb-buildbot
2019-08-31  9:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-01  6:49 [binutils-gdb] RISC-V: Fix linker problems with tls copy relocs gdb-buildbot
2019-09-01  8:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-02  8:27 [binutils-gdb] Re: Memory leak in dwarf2.c gdb-buildbot
2019-09-02  9:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-02 14:04 [binutils-gdb] Refactor svr4_create_solib_event_breakpoints gdb-buildbot
2019-09-02 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-02 15:09 [binutils-gdb] Use gdbarch for probe::get_argument_count gdb-buildbot
2019-09-02 15:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-02 15:29 [binutils-gdb] Check arguments for all probes before using them gdb-buildbot
2019-09-02 17:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-03  9:35 [binutils-gdb] Fix a potential buffer overrun in the MMIX disassembler when processing a corrupt input file gdb-buildbot
2019-09-03 14:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-03 15:14 [binutils-gdb] Fix buffer underrun bug in the TI C30 disassembler gdb-buildbot
2019-09-03 16:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-03 17:01 [binutils-gdb] Handle biased types gdb-buildbot
2019-09-03 21:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-03 22:11 [binutils-gdb] gdb: Handle missing domain types in: maintenance print psymbols gdb-buildbot
2019-09-04  2:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-04 21:19 [binutils-gdb] Avoid expect's buffer overflow in info-var.exp test gdb-buildbot
2019-09-05  1:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-05  4:49 [binutils-gdb] PR24955, libbfd terminating program on out of memory gdb-buildbot
2019-09-05  6:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-05  5:56 [binutils-gdb] R_PPC64_PCREL_OPT gdb-buildbot
2019-09-05  6:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-05  7:02 [binutils-gdb] PowerPC64 GOT_PCREL relocs gdb-buildbot
2019-09-05  9:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-05 13:10 [binutils-gdb] [gdb/testsuite] Restore breakpoint command in ui-redirect.exp gdb-buildbot
2019-09-06  2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-06 14:26 [binutils-gdb] bfd_get_filename gdb-buildbot
2019-09-06 19:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-06 20:12 [binutils-gdb] Change int to bool for the relocate_* functions gdb-buildbot
2019-09-06 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-06 21:56 [binutils-gdb] un-XFAIL under Clang tests using labels gdb-buildbot
2019-09-07  2:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-07 16:44 [binutils-gdb] Change lookup_symbol's block_index parameter type to block_enum gdb-buildbot
2019-09-08 20:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-08 20:44 [binutils-gdb] Truncate long TUI window titles gdb-buildbot
2019-09-09  9:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-09 10:14 [binutils-gdb] Add markers for 2.33 branch to NEWS and ChangeLog files gdb-buildbot
2019-09-09 22:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-09 22:31 [binutils-gdb] Fix leak detected in python.c initialization code gdb-buildbot
2019-09-09 23:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-09 23:50 [binutils-gdb] Use ui_out for "info win" gdb-buildbot
2019-09-10  1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10  2:15 [binutils-gdb] DWARF 5 support: Handle dwo_id gdb-buildbot
2019-09-10 14:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 15:02 [binutils-gdb] Enhance the disassembler so that it will reliably determine whether a reloc applies to the middle of the next insn gdb-buildbot
2019-09-10 15:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 15:28 [binutils-gdb] Change map_matching_symbols to take a symbol_found_callback_ftype gdb-buildbot
2019-09-10 16:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 15:39 [binutils-gdb] Change iterate_over_symbols to return bool gdb-buildbot
2019-09-10 18:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 15:52 [binutils-gdb] Simplify psym_map_matching_symbols gdb-buildbot
2019-09-10 18:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 16:09 [binutils-gdb] Change map_matching_symbols to take a lookup_name_info gdb-buildbot
2019-09-10 19:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 16:18 [binutils-gdb] Fix latent bug in .debug_names file-name handling gdb-buildbot
2019-09-10 20:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 16:33 [binutils-gdb] Add Ada support for .debug_names gdb-buildbot
2019-09-10 21:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 16:50 [binutils-gdb] Add Ada support to cc-with-tweaks.exp gdb-buildbot
2019-09-10 22:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 17:05 [binutils-gdb] Use the correct alias for the M68K tdiv instruction gdb-buildbot
2019-09-11  0:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-11  7:07 [binutils-gdb] Tidy ld/ldmisc.c gdb-buildbot
2019-09-11  9:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-11 18:15 [binutils-gdb] Introduce bfd_set_filename gdb-buildbot
2019-09-11 19:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-11 18:32 [binutils-gdb] Change the type of copy_names from int to bool gdb-buildbot
2019-09-11 20:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-11 19:49 [binutils-gdb] Fix float to LONGEST conversion gdb-buildbot
2019-09-11 21:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-11 22:11 [binutils-gdb] Refactor get_init_files to use std::string gdb-buildbot
2019-09-12  2:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-11 23:24 [binutils-gdb] Factor out the code to do the datadir-relocation for gdbinit gdb-buildbot
2019-09-12  5:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-12  0:41 [binutils-gdb] Make relocate_{path,gdb_directory} return std::string gdb-buildbot
2019-09-12  6:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-12  9:22 [binutils-gdb] Fix signals reported for faults on Solaris gdb-buildbot
2019-09-12 10:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-12 20:58 [binutils-gdb] Output the Ada task name in more messages gdb-buildbot
2019-09-12 21:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-12 21:01 [binutils-gdb] [gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported gdb-buildbot
2019-09-13  1:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-13  1:11 [binutils-gdb] gdb: Don't fault for 'maint print psymbols' when using an index gdb-buildbot
2019-09-13  2:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-13  1:12 [binutils-gdb] gdb: Have 'maint info sections' print all sections again gdb-buildbot
2019-09-13  3:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-13  1:14 [binutils-gdb] gdb/testsuite: Make use of exec_has_index_section function gdb-buildbot
2019-09-13  4:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-13  2:09 [binutils-gdb] gdb: Force use of float version of log10 gdb-buildbot
2019-09-13  5:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-15  3:16 [binutils-gdb] Add a NEWS entry that gdb can be compiled with py3 on Windows gdb-buildbot
2019-09-16 10:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-16 10:47 [binutils-gdb] Update version to 2.33.50 and regenerate configure scripts gdb-buildbot
2019-09-16 11:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-17  3:49 [binutils-gdb] Don't duplicate comment in symfile.c and .h gdb-buildbot
2019-09-17 12:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-17 19:09 [binutils-gdb] (Ada) do not print Ada task names in quotes in "info tasks" output gdb-buildbot
2019-09-17 20:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-17 20:17 [binutils-gdb] gdb: Catch exceptions when accessing source cache gdb-buildbot
2019-09-17 21:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-17 21:49 [binutils-gdb] gdb: Look for compilation directory relative to directory search path gdb-buildbot
2019-09-17 23:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18  0:59 [binutils-gdb] Change boolean options to bool instead of int gdb-buildbot
2019-09-18  2:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18  6:12 [binutils-gdb] Make extern declaration of dwarf_always_disassemble correct gdb-buildbot
2019-09-18 11:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 13:19 [binutils-gdb] PowerPC64, support medium model access to common symbols gdb-buildbot
2019-09-18 14:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 13:33 [binutils-gdb] Use bfd_set_filename more gdb-buildbot
2019-09-18 15:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 13:42 [binutils-gdb] Constify target name, reloc name, and carsym name gdb-buildbot
2019-09-18 16:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 13:54 [binutils-gdb] Constify bfd_octets_per_byte and related functions gdb-buildbot
2019-09-18 16:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 14:17 [binutils-gdb] Don't use bfd_get_* macro to set bfd fields gdb-buildbot
2019-09-18 17:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 14:17 [binutils-gdb] Re-generate many configure and Makefile.in files gdb-buildbot
2019-09-18 19:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 14:30 [binutils-gdb] bfd_asymbol_* macros gdb-buildbot
2019-09-18 19:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 17:17 [binutils-gdb] gdb/testsuite: Avoid directory names in test names gdb-buildbot
2019-09-18 20:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 18:13 [binutils-gdb] gdb: remove local extern declaration of cli_styling gdb-buildbot
2019-09-18 21:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 19:50 [binutils-gdb] gdb: Fix native build on Linux/Alpha gdb-buildbot
2019-09-18 22:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 21:35 [binutils-gdb] Give a name to the TUI SingleKey keymap gdb-buildbot
2019-09-18 23:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 23:45 [binutils-gdb] [gdb/testsuite] Fix gdb_target_cmd gdb-buildbot
2019-09-19  1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-19  1:02 [binutils-gdb] bfd_section_* macros gdb-buildbot
2019-09-19  3:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-19 18:20 [binutils-gdb] [gdb] Catch exception when constructing the highlighter gdb-buildbot
2019-09-19 21:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-19 18:42 [binutils-gdb] [gdb/testsuite] Don't use FOOBAR pattern in gdb_test gdb-buildbot
2019-09-20  0:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20  0:39 [binutils-gdb] Declare dwarf_always_disassemble in dwarf2read.h gdb-buildbot
2019-09-20  1:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20  0:53 [binutils-gdb] Move arm_apcs_32 extern declaration to header gdb-buildbot
2019-09-20  3:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20  1:12 [binutils-gdb] Move declaration of overload_resolution to value.h gdb-buildbot
2019-09-20  4:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20  7:59 [binutils-gdb] PowerPC64, error on unsupported dynamic relocation gdb-buildbot
2019-09-20  8:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20  8:48 [binutils-gdb] x86-64: fix handling of PUSH/POP of segment register gdb-buildbot
2019-09-20 10:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20  9:09 [binutils-gdb] bfd macro conversion to inline functions gdb-buildbot
2019-09-20 10:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20  9:27 [binutils-gdb] bfd macro conversion to inline functions, asymbol gdb-buildbot
2019-09-20 13:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20  9:43 [binutils-gdb] bfd macro conversion to inline functions, section gdb-buildbot
2019-09-20 14:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 19:53 [binutils-gdb] Fix crash in Ada "catch exception" gdb-buildbot
2019-09-20 20:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 20:49 [binutils-gdb] Remove tui_clear_source_windows_detail gdb-buildbot
2019-09-20 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 21:04 [binutils-gdb] Change tui_source_element::line to be a unique_xmalloc_ptr gdb-buildbot
2019-09-20 22:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 21:15 [binutils-gdb] Move "fullname" to tui_source_window gdb-buildbot
2019-09-20 23:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 21:27 [binutils-gdb] Change tui_make_status_line to return std::string gdb-buildbot
2019-09-21  0:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 21:42 [binutils-gdb] Change tui_make_status_line to be a method gdb-buildbot
2019-09-21  1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 21:56 [binutils-gdb] Remove some explicit re-rendering from the TUI gdb-buildbot
2019-09-21  2:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 22:05 [binutils-gdb] Simplify tui_source_window_base::show_source_content gdb-buildbot
2019-09-21  3:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 22:25 [binutils-gdb] Simplify TUI disassembly gdb-buildbot
2019-09-21  4:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 22:33 [binutils-gdb] Use "bool" in tui_data_window::show_register_group gdb-buildbot
2019-09-21  5:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 22:45 [binutils-gdb] Change "win_resized" to bool gdb-buildbot
2019-09-21  6:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 22:59 [binutils-gdb] Set TUI locator height to 1 gdb-buildbot
2019-09-21  7:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 23:08 [binutils-gdb] Don't call refresh in tui_resize_all gdb-buildbot
2019-09-21  8:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 23:22 [binutils-gdb] Remove a call to tui_locator_win_info_ptr gdb-buildbot
2019-09-21  9:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 23:35 [binutils-gdb] Change members of tui_locator_window to std::string gdb-buildbot
2019-09-21 10:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 23:46 [binutils-gdb] Rename private data members of tui_data_window gdb-buildbot
2019-09-21 11:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 23:58 [binutils-gdb] Rename a private data member in tui_source_window gdb-buildbot
2019-09-21 12:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21  0:13 [binutils-gdb] Remove strcat_to_buf gdb-buildbot
2019-09-21 13:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21  0:26 [binutils-gdb] Remove separator comments from TUI gdb-buildbot
2019-09-21 14:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21  0:43 [binutils-gdb] Use make_unique_xstrdup in TUI gdb-buildbot
2019-09-21 15:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21  0:53 [binutils-gdb] Change TUI window commands to be case-sensitive gdb-buildbot
2019-09-21 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21  1:04 [binutils-gdb] Remove Cell Broadband Engine debugging support gdb-buildbot
2019-09-21 18:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21  1:31 [binutils-gdb] RISC-V: Optimize lui and auipc relaxations for undefweak symbol gdb-buildbot
2019-09-21 20:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21  2:11 [binutils-gdb] gdb/NEWS: Move entries about MI v3 and multi-loc breakpoints after GDB 8.3 gdb-buildbot
2019-09-21 23:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21  2:32 [binutils-gdb] Move declarations of debug_threads and using_threads to header gdb-buildbot
2019-09-22  0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21  2:52 [binutils-gdb] Replace solib_global_lookup with gdbarch_iterate_over_objfiles_in_search_order gdb-buildbot
2019-09-22  1:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-22  0:17 [binutils-gdb] gdb: change "nonzero" to "true" in comments gdb-buildbot
2019-09-22  2:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-22  0:41 [binutils-gdb] gdb: make watchpoint::val_valid a bool gdb-buildbot
2019-09-22  3:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-22  2:47 [binutils-gdb] gdb: fix formatting in solib-svr4.c gdb-buildbot
2019-09-22  4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-22  5:10 [binutils-gdb] [gdb/testsuite] Allow some tests in gdb.base/restore.exp to be unsupported gdb-buildbot
2019-09-22  5:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  1:25 [binutils-gdb] csky bfd.h tidy gdb-buildbot
2019-09-23  2:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  1:37 [binutils-gdb] mips bfd.h tidy gdb-buildbot
2019-09-23  3:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  1:59 [binutils-gdb] v850 bfd.h tidy gdb-buildbot
2019-09-23  4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  2:01 [binutils-gdb] ia64 bfd.h tidy gdb-buildbot
2019-09-23  5:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  2:13 [binutils-gdb] h8300 bfd.h tidy gdb-buildbot
2019-09-23  6:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  2:50 [binutils-gdb] tic6x bfd.h tidy gdb-buildbot
2019-09-23  9:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  3:03 [binutils-gdb] arm bfd.h tidy gdb-buildbot
2019-09-23  9:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  3:14 [binutils-gdb] coff bfd.h tidy gdb-buildbot
2019-09-23 10:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  3:27 [binutils-gdb] xcoff bfd.h tidy gdb-buildbot
2019-09-23 12:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  3:37 [binutils-gdb] obsoleted bfd.h tidy gdb-buildbot
2019-09-23 13:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  3:51 [binutils-gdb] cr16 bfd.h tidy gdb-buildbot
2019-09-23 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  4:12 [binutils-gdb] bfin bfd.h tidy gdb-buildbot
2019-09-23 14:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  4:13 [binutils-gdb] m68k bfd.h tidy gdb-buildbot
2019-09-23 16:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  4:36 [binutils-gdb] ecoff bfd.h tidy gdb-buildbot
2019-09-23 17:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  4:36 [binutils-gdb] elf bfd.h tidy gdb-buildbot
2019-09-23 16:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  4:45 [binutils-gdb] linker bfd.h tidy gdb-buildbot
2019-09-23 18:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23  5:57 [binutils-gdb] bfd Makefile update gdb-buildbot
2019-09-23 19:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 15:16 [binutils-gdb] PowerPC64 dynamic symbol tweaks gdb-buildbot
2019-09-23 20:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 19:29 [binutils-gdb] Make ada_decode not use a static buffer gdb-buildbot
2019-09-23 21:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 21:43 [binutils-gdb] sim: Add PRU simulator port gdb-buildbot
2019-09-23 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 22:26 [binutils-gdb] gdb/readline: fix use of an undefined variable gdb-buildbot
2019-09-24  1:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-24 22:13 [binutils-gdb] [gdb/tdep] Handle mxcsr kernel bug on Intel Skylake CPUs gdb-buildbot
2019-09-25  0:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-25 16:37 [binutils-gdb] Remove make_hex_string gdb-buildbot
2019-09-25 19:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-26 11:09 [binutils-gdb] PR24262, plugin search dir doesn't respect --libdir gdb-buildbot
2019-09-26 13:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-26 14:43 [binutils-gdb] Remove initialize_utils gdb-buildbot
2019-09-26 14:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-26 15:01 [binutils-gdb] Do not expose stub types to Python gdb-buildbot
2019-09-26 16:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-26 15:42 [binutils-gdb] Remove gdb_usleep.c gdb-buildbot
2019-09-26 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-26 17:41 [binutils-gdb] Convert symtab.h function signatures to use bool instead of int gdb-buildbot
2019-09-26 20:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
     [not found] <@gdb-build>
2018-12-07 12:54 ` sergiodj+buildbot
2019-09-27 10:02 ` gdb-buildbot
2019-09-27 10:24 ` gdb-buildbot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).