binutils-gdb.git
22 months agoThe fuzzers have found the reloc special functions in coff-aarch64.c
Alan Modra [Tue, 17 Jan 2023 11:23:00 +0000 (21:53 +1030)]
The fuzzers have found the reloc special functions in coff-aarch64.c

All of them need a bfd_reloc_offset_in_range check before accessing
data + reloc_entry->address.  This patch adds the missing checks and
sanity checks reloc offsets in coff_pe_aarch64_relocate_section too.

All of them also need changing to support objdump -W calls to
bfd_simple_get_relocated_section_contents.  At least, secrel_reloc
needs the support, the others might not be present in dwarf debug
sections.

* coff-aarch64.c (coff_aarch64_rel21_reloc): Range check
reloc offset.  Support final-linking.
(coff_aarch64_po12l_reloc): Likewise.
(coff_aarch64_addr32nb_reloc): Likewise.
(coff_aarch64_secrel_reloc): Likewise.
(coff_pe_aarch64_relocate_section): Range check reloc offset.

22 months agoCorrect coff-aarch64 howtos and delete unnecessary special functions
Alan Modra [Sat, 14 Jan 2023 11:43:30 +0000 (22:13 +1030)]
Correct coff-aarch64 howtos and delete unnecessary special functions

The remaining special functions are still broken except when called
by gas bfd_install_relocation.

* coff-aarch64.c (coff_aarch64_addr64_reloc),
(coff_aarch64_addr32_reloc, coff_aarch64_branch26_reloc),
(coff_aarch64_branch19_reloc, coff_aarch64_branch14_reloc),
(coff_aarch64_po12a_reloc): Delete.
(HOWTO_INSTALL_ADDEND): Define as 1.
(HOW): Remove pcrel_off.  Correct all the howtos.
(CALC_ADDEND): Define.
(coff_aarch64_rtype_to_howto): New function.
(coff_rtype_to_howto): Define.

22 months agocoff-aarch64.c howtos
Alan Modra [Fri, 13 Jan 2023 06:11:54 +0000 (16:41 +1030)]
coff-aarch64.c howtos

This is just a patch to fix overlong lines.  Wrapping the HOWTO macro
in a new HOW macro helps in this.  No functional changes here.

* coff-aarch64.c (HOW): Define and use for reloc howtos.

22 months agohowto install_addend
Alan Modra [Mon, 16 Jan 2023 02:19:03 +0000 (12:49 +1030)]
howto install_addend

This adds a new flag to the reloc howtos that can be used to
incrementally change targets over to simple bfd_install_relocation
that just installs the addend without any weird adjustments.
I've made a few other changes to bfd_install_relocation, removing dead
code and comments that are really only applicable to
bfd_perform_relocation.

There is also a reloc offset bounds check change.  I've moved the
check to where data is accessed, as it seems reasonable to me to not
perform the check unless it is needed.  There is precedence for this;
Relocations against absolute symbols already avoided the check.

I also tried always performing the reloc offset check, and ran into
testsuite failures due to _NONE and _ALIGN relocs at the end of
sections.  These likely would be fixed if all such reloc howtos had
size set to zero, but I would rather not edit lots of files when it
involves checking that target code does not use the size.

* reloc.c (struct reloc_howto_struct): Add install_addend.
(HOWTO_INSTALL_ADDEND): Define.
(HOWTO): Init new field with HOWTO_INSTALL_ADDEND.
(bfd_install_relocation): Remove comments copied from
bfd_perform_relocation that aren't applicable here.  Remove
code dealing with output_offset and output_section.  Just set
relocation to addend if install_addend.  Move reloc offset
bounds check to just before section data is accessed, avoiding
the check when data is not accessed.
* bfd-in2.h: Regenerate.

22 months agosim: info: convert verbose field to a bool
Mike Frysinger [Thu, 19 Jan 2023 01:14:54 +0000 (20:14 -0500)]
sim: info: convert verbose field to a bool

The verbose argument has always been an int treated as a bool, so
convert it to an explicit bool.  Further, update the API docs to
match the reality that the verbose value is actually used by some
of the internal modules.

22 months agosim: unify sim-signal.o building
Mike Frysinger [Thu, 19 Jan 2023 00:26:58 +0000 (19:26 -0500)]
sim: unify sim-signal.o building

Now that sim-main.h has been reduced significantly, we can remove it
from sim-signal.c and unify it across all boards since it compiles to
the same code.

22 months agosim: v850: reduce extra header inclusion to igen files
Mike Frysinger [Thu, 19 Jan 2023 00:11:38 +0000 (19:11 -0500)]
sim: v850: reduce extra header inclusion to igen files

Limit these extra header includes to only when specific igen files
include us until we can move the includes to the igen fils directly.

22 months agosim: v850: drop redundant define
Mike Frysinger [Thu, 19 Jan 2023 00:07:19 +0000 (19:07 -0500)]
sim: v850: drop redundant define

This is already in v850/local.mk, so we can drop it from sim-main.h.

22 months agosim: mn10300: minimize mn10300-sim.h include in sim-main.h
Mark Wielaard [Sun, 15 Jan 2023 19:24:06 +0000 (20:24 +0100)]
sim: mn10300: minimize mn10300-sim.h include in sim-main.h

sim-main.h is special since it is one of the files automatically
included in igen generated files. But this means anything including
sim-main.h might get everything included just for the igen files.

To prevent clashing symbols/defines only include sim-fpu.h,
sim-signal.h, mn10300-sim.h from sim-main.h if it is included
from one of the generated igen C files. Add explicit includes
of mn10300-sim.h, sim-fpu.h and/or sim-signal.h to dv-mn103cpu.c,
interp.c and op_utils.c.

22 months agoAutomatic date update in version.in
GDB Administrator [Thu, 19 Jan 2023 00:00:07 +0000 (00:00 +0000)]
Automatic date update in version.in

22 months agoGDB: Add references to erased args in cli-decode.c
Maciej W. Rozycki [Wed, 18 Jan 2023 23:38:50 +0000 (23:38 +0000)]
GDB: Add references to erased args in cli-decode.c

Complement commit 1d7fe7f01b93 ("gdb: Introduce setting construct within
cmd_list_element") and commit 702991711a91 ("gdb: Have setter and getter
callbacks for settings") and update inline documentation accordingly for
`add_set_or_show_cmd' and `add_setshow_cmd_full_erased', documenting the
`args' parameter and removing references to `var', `set_setting_func'
and `get_setting_func'.

Approved-By: Simon Marchi <simon.marchi@efficios.com>
22 months agoGDB: Add missing inline documentation for `add_setshow_cmd_full'
Maciej W. Rozycki [Wed, 18 Jan 2023 23:23:00 +0000 (23:23 +0000)]
GDB: Add missing inline documentation for `add_setshow_cmd_full'

Complement commit 1d7fe7f01b93 ("gdb: Introduce setting construct
within cmd_list_element") and add missing description for
`add_setshow_cmd_full'.

22 months agoGDB: Correct inline documentation for `add_setshow_cmd_full_erased'
Maciej W. Rozycki [Wed, 18 Jan 2023 23:23:00 +0000 (23:23 +0000)]
GDB: Correct inline documentation for `add_setshow_cmd_full_erased'

Use proper English in the description of SET_LIST and SHOW_LIST.

22 months agoGDB: Fix documentation for `theclass' parameters in cli-decode.c
Maciej W. Rozycki [Wed, 18 Jan 2023 21:54:37 +0000 (21:54 +0000)]
GDB: Fix documentation for `theclass' parameters in cli-decode.c

Rename CLASS to THECLASS in the documentation for `theclass' parameters
throughout cli-decode.c, complementing commit fe978cb071b4 ("C++ keyword
cleanliness, mostly auto-generated").

Approved-By: Simon Marchi <simon.marchi@efficios.com>
22 months agoFix 'make TAGS' in gdbserver
Tom Tromey [Fri, 23 Dec 2022 20:28:20 +0000 (13:28 -0700)]
Fix 'make TAGS' in gdbserver

PR build/29003 points out that "make TAGS" is broken in gdbserver.
This patch fixes the problem that is pointed out there, plus another
one I noticed while working on that -- namely that the "sed" computes
the wrong names for some source files.  Finally, a couple of obsolete
variable references are removed.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29003

22 months agoRevert "X86: reverse-finish fix"
Carl Love [Wed, 18 Jan 2023 16:13:17 +0000 (11:13 -0500)]
Revert "X86: reverse-finish fix"

This reverts commit b22548ddb30bfb167708e82d3bb932461c1b703a.

This patch is being reverted since the patch series is causing regressions.

22 months agoRevert "PowerPC: fix for gdb.reverse/finish-precsave.exp and gdb.reverse/finish-rever...
Carl Love [Wed, 18 Jan 2023 16:12:13 +0000 (11:12 -0500)]
Revert "PowerPC: fix for gdb.reverse/finish-precsave.exp and gdb.reverse/finish-reverse.exp"

This reverts commit 92e07580db6a5572573d5177ca23933064158f89.

Reverting patch as the patch series is causing regressions.

22 months agogdb: care for dynamic objfiles in build_id_bfd_get ()
Jan Vrany [Wed, 18 Jan 2023 11:34:37 +0000 (11:34 +0000)]
gdb: care for dynamic objfiles in build_id_bfd_get ()

Accessing gdb.Objfile.build_id caused GDB to crash when objfile is
dynamic, that is created by JIT reader API.

The issue was NULL-pointer dereferencing in build_id_bfd_get () because
dynamic objfiles have no underlaying BFD structure. This commit fixes
the problem by a NULL-check in build_id_bfd_get ().

22 months agoSpeed up objcopy's note merging.
Nick Clifton [Wed, 18 Jan 2023 11:32:21 +0000 (11:32 +0000)]
Speed up objcopy's note merging.

   PR 29993
  * objcopy.c (merge_gnu_build_notes): Remember the last non-deleted note in order to speed up the scan for matching notes.

22 months agosim: ppc: drop local psim link
Mike Frysinger [Wed, 18 Jan 2023 04:21:31 +0000 (23:21 -0500)]
sim: ppc: drop local psim link

This has never been installed, and it's not clear anyone cares about
it in the local build dir (when the main program is sim/ppc/run), so
drop all the logic to simplify.

22 months agoUse subsystem to distinguish between pei-arm-little and pei-arm-wince-little
Mark Harmstone [Wed, 11 Jan 2023 18:32:04 +0000 (18:32 +0000)]
Use subsystem to distinguish between pei-arm-little and pei-arm-wince-little

Running objdump against a 32-bit ARM PE file currently needs
disambiguation, as it gets picked up by both pei-arm-little and
pei-arm-wince-little.

This adds a check in pe_bfd_object_p so that the subsystem in the PE
header is used to do the disambiguation for us, so that WinCE images get
assigned to pei-arm-wince-little, and everything else to pei-arm-little.

22 months agoRevert "gprofng: PR29987 bfd/archive.c:1447: undefined reference to `filename_ncmp'"
Vladimir Mezentsev [Wed, 18 Jan 2023 02:53:38 +0000 (18:53 -0800)]
Revert "gprofng: PR29987 bfd/archive.c:1447: undefined reference to `filename_ncmp'"

This reverts commit c2a5d74050ea9d7897b4122ef57c627d395683b3.

22 months agoAutomatic date update in version.in
GDB Administrator [Wed, 18 Jan 2023 00:00:17 +0000 (00:00 +0000)]
Automatic date update in version.in

22 months agoRemove two unused fields from gdbarch
Tom Tromey [Tue, 17 Jan 2023 19:45:11 +0000 (12:45 -0700)]
Remove two unused fields from gdbarch

When I converted gdbarch to use the registry, I forgot to remove the
two fields that were used to implement the previous approach.  This
patch removes them.  Tested by rebuilding.

22 months agoUse require in paramless.exp
Tom Tromey [Tue, 17 Jan 2023 18:45:40 +0000 (11:45 -0700)]
Use require in paramless.exp

The new paramless.exp test was not converted to the new "require"
approach.  This patch fixes the problem.

22 months agoPowerPC: fix for gdb.reverse/finish-precsave.exp and gdb.reverse/finish-reverse.exp
Carl Love [Fri, 13 Jan 2023 22:59:33 +0000 (17:59 -0500)]
PowerPC: fix for gdb.reverse/finish-precsave.exp and gdb.reverse/finish-reverse.exp

PR record/29927 - reverse-finish requires two reverse next instructions to
reach previous source line

PowerPC uses two entry points called the local entry point (LEP) and the
global entry point (GEP).  Normally the LEP is used when calling a
function.  However, if the table of contents (TOC) value in register 2 is
not valid the GEP is called to setup the TOC before execution continues at
the LEP.  When executing in reverse, the function finish_backward sets the
break point at the alternate entry point (GEP).  However if the forward
execution enters via the normal entry point (LEP), the reverse execution
never sees the break point at the GEP of the function.  Reverse execution
continues until the next break point is encountered or the end of the
recorded log is reached causing gdb to stop at the wrong place.

This patch adds a new address to struct execution_control_state to hold the
address of the alternate function start address, known as the GEP on
PowerPC.  The finish_backwards function is updated.  If the stopping point
is between the two entry points (the LEP and GEP on PowerPC), the stepping
range is set to execute back to the alternate entry point (GEP on PowerPC).
Otherwise, a breakpoint is inserted at the normal entry point (LEP on
PowerPC).

Function process_event_stop_test checks uses a stepping range to stop
execution in the caller at the first instruction of the source code line.
Note, on systems that only support one entry point, the address of the two
entry points are the same.

Test finish-reverse-next.exp is updated to include tests for the
reverse-finish command when the function is entered via the normal entry
point (i.e. the LEP) and the alternate entry point (i.e. the GEP).

The patch has been tested on X86 and PowerPC with no regressions.

22 months agoX86: reverse-finish fix
Carl Love [Mon, 19 Dec 2022 17:48:54 +0000 (12:48 -0500)]
X86: reverse-finish fix

PR record/29927  - reverse-finish requires two reverse next instructions to
reach previous source line

Currently on X86, when executing the finish command in reverse, gdb does a
single step from the first instruction in the callee to get back to the
caller.  GDB stops on the last instruction in the source code line where
the call was made.  When stopped at the last instruction of the source code
line, a reverse next or step command will stop at the first instruction
of the same source code line thus requiring two step/next commands to
reach the previous source code line.  It should only require one step/next
command to reach the previous source code line.

By contrast, a reverse next or step command from the first line in a
function stops at the first instruction in the source code line where the
call was made.

This patch fixes the reverse finish command so it will stop at the first
instruction of the source line where the function call was made.  The
behavior on X86 for the reverse-finish command now matches doing a
reverse-next from the beginning of the function.

The proceed_to_finish flag in struct thread_control_state is no longer
used.  This patch removes the declaration, initialization and setting of
the flag.

This patch requires a number of regression tests to be updated.  Test
gdb.mi/mi-reverse.exp no longer needs to execute two steps to get to the
previous line.  The gdb output for tests gdb.reverse/until-precsave.exp
and gdb.reverse/until-reverse.exp changed slightly.  The expected result in
tests gdb.reverse/amd64-failcall-reverse.exp and
gdb.reverse/singlejmp-reverse.exp are updated to the correct expected
result.

This patch adds a new test gdb.reverse/finish-reverse-next.exp to test the
reverse-finish command when returning from the entry point and from the
body of the function.

The step_until proceedure in test gdb.reverse/step-indirect-call-thunk.exp
was moved to lib/gdb.exp and renamed cmd_until.

The patch has been tested on X86 and PowerPC to verify no additional
regression failures occured.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29927

22 months agogdb/testsuite: expect SIGSEGV from top GDB spawn id
Simon Marchi [Sat, 14 Jan 2023 01:08:41 +0000 (20:08 -0500)]
gdb/testsuite: expect SIGSEGV from top GDB spawn id

When testing with the native-extended-gdbserver, I get:

    Thread 1 "xgdb" received signal SIGSEGV, Segmentation fault.
    0x00007ffff6d828f2 in GC_find_limit_with_bound () from /usr/lib/x86_64-linux-gnu/libgc.so.1
    (gdb) FAIL: gdb.gdb/selftest.exp: xgdb is at prompt

This is because the -re that is supposed to match this SIGSEGV is after
`-i $inferior_spawn_id`.  On native, the top and bottom GDB are on the
same spawn id, so it ends up working.  But with a gdbserver board,
that's not the case.  Move the SIGSEGV -re before the `-i
$inferior_spawn_id` line, such that it matches what the top GDB outputs.

Do the same fix in gdb.gdb/python-helper.exp.

Change-Id: I3291630e218a5a3a6a47805b999ddbc9b968c927
Approved-By: Tom Tromey <tom@tromey.com>
22 months agoFix parameter-less template regression in new DWARF reader
Tom Tromey [Wed, 14 Dec 2022 21:37:41 +0000 (14:37 -0700)]
Fix parameter-less template regression in new DWARF reader

PR c++/29896 points out a regression in the new DWARF reader.  It does
not properly handle a case like "break fn", where "fn" is a template
function.

This happens because the new index uses strncasecmp to compare.
However, to make this work correctly, we need a custom function that
ignores template parameters.

This patch adds a custom comparison function and fixes the bug.  A new
test case is included.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29896

22 months agoMove hash_entry and eq_entry into cooked_index::do_finalize
Tom Tromey [Thu, 15 Dec 2022 16:38:05 +0000 (09:38 -0700)]
Move hash_entry and eq_entry into cooked_index::do_finalize

I was briefly confused by the hash_entry and eq_entry functions in the
cooked index.  They are only needed in a single method, and that
method already has a couple of local lambdas for a different hash
table.  So, it seemed cleaner to move these there as well.

22 months agoDon't erase empty indices in DWARF reader
Tom Tromey [Wed, 14 Dec 2022 14:20:49 +0000 (07:20 -0700)]
Don't erase empty indices in DWARF reader

The DWARF reader has some code to remove empty indices.  However, I
think this code has been obsolete since some earlier changes to
parallel_for_each.  This patch removes this code.

22 months agoAvoid submitting empty tasks in parallel_for_each
Tom Tromey [Tue, 13 Dec 2022 19:03:34 +0000 (12:03 -0700)]
Avoid submitting empty tasks in parallel_for_each

I found that parallel_for_each would submit empty tasks to the thread
pool.  For example, this can happen if the number of tasks is smaller
than the number of available threads.  In the DWARF reader, this
resulted in the cooked index containing empty sub-indices.  This patch
arranges to instead shrink the result vector and process the trailing
entries in the calling thread.

22 months agogas: arm: Change warning message to not reference specific A-class architecture revision
Stam Markianos-Wright [Tue, 17 Jan 2023 13:37:40 +0000 (13:37 +0000)]
gas: arm: Change warning message to not reference specific A-class architecture revision

We noticed that a warning message about the use of scalar fp16
instructions being UNPREDICTABLE when conditionalized in an IT
block referenced the specific A-class architecture revision
ARMv8.2-A.
Many of these instructions are now also part of ARMv8.1-M, so
the warning message had become misleading.  Here we just change
the message to not specify an architecture revision at all and
update all testing accordingly.  This was done with a simple
find-n-replace within the binutils sources.  No tests have
regressed for the arm target.

gas/ChangeLog:

        * config/tc-arm.c (do_scalar_fp16_v82_encode): Remove
        ARMv8.2-A from the warning message.
        (do_neon_movhf): Likewise
        * testsuite/gas/arm/armv8-2-fp16-scalar-bad.l: Likewise
        * testsuite/gas/arm/mve-vaddsub-it-bad.l: Likewise
        * testsuite/gas/arm/mve-vcvtne-it-bad.l: Likewise
        * testsuite/gas/arm/mve-vcvtne-it.d: Likewise

22 months agogas: arm: Fix a further IT-predicated vcvt issue in the presense of MVE vcvtn
Stam Markianos-Wright [Tue, 17 Jan 2023 12:57:47 +0000 (12:57 +0000)]
gas: arm: Fix a further IT-predicated vcvt issue in the presense of MVE vcvtn

Previously we had experienced issues with assembling a "VCVTNE" instruction
in the presence of the MVE architecture extension, because it could be
interpreted both as:

* The base instruction VCVT + NE for IT predication when inside an IT block.
* The MVE instruction VCVTN + E in the Else of a VPT block.

Given a C reproducer of:
```
int test_function(float value)
{
  int ret_val = 10;
  if (value != 0.0)
  {
    ret_val = (int) value;
  }
  return ret_val;
}
```
GCC generates a VCVTNE instruction based on the `truncsisf2_vfp`
pattern, which will look like:
`vcvtne.s32.f32 s-reg, s-reg`
This still triggers an error due to being misidentified as "vcvtn+e"
Similar errors were found with other type combinations and instruction
patterns (these have all been added to the testing of this patch).

This class of errors was previously worked around by:
https://sourceware.org/pipermail/binutils/2020-August/112728.html
which addressed this by looking at the operand types, however,
that isn't adequate to cover all the extra cases that have been
found.  Instead, we add some special-casing logic earlier when
the instructions are parsed that is conditional on whether we are
in a VPT block or not, when the instruction is parsed.

gas/ChangeLog:

* config/tc-arm.c (opcode_lookup): Add special vcvtn handling.
* testsuite/gas/arm/mve-vcvtne-it-bad.l: Add further testing.
* testsuite/gas/arm/mve-vcvtne-it-bad.s: Likewise.
* testsuite/gas/arm/mve-vcvtne-it.d: Likewise.
* testsuite/gas/arm/mve-vcvtne-it.s: Likewise.

22 months agoFix snafu in previous delta for elf32-csky.c
Nick Clifton [Tue, 17 Jan 2023 12:55:33 +0000 (12:55 +0000)]
Fix snafu in previous delta for elf32-csky.c

22 months agoC-SKY: Fix machine flag.
Xianmiao Qu [Tue, 17 Jan 2023 11:43:16 +0000 (11:43 +0000)]
C-SKY: Fix machine flag.

* elf32-csky.c (elf32_csky_merge_attributes): Don't save and restore the ARCH attribute, it will actually clear the ARCH attribute. (csky_elf_merge_private_bfd_data): Store the machine flag correctly.

22 months agoAutomatic date update in version.in
GDB Administrator [Tue, 17 Jan 2023 00:00:36 +0000 (00:00 +0000)]
Automatic date update in version.in

22 months agolibctf: update regexp to allow makeinfo to build document
Enze Li [Sat, 14 Jan 2023 03:33:48 +0000 (11:33 +0800)]
libctf: update regexp to allow makeinfo to build document

While trying to build gdb on latest openSUSE Tumbleweed, I noticed the
following warning,

 checking for makeinfo... makeinfo --split-size=5000000
 configure: WARNING:
 *** Makeinfo is too old. Info documentation will not be built.

then I checked the version of makeinfo, it said,
======
$ makeinfo --version
texi2any (GNU texinfo) 7.0.1

Copyright (C) 2022 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.
======

After digging a little bit, it became quite obvious that a dot is
missing in regexp that makes it impossible to match versions higher than
7.0, and here's the solution:

-       | egrep 'texinfo[^0-9]*(6\.[3-9]|[7-9][0-9])' >/dev/null 2>&1; then
+       | egrep 'texinfo[^0-9]*(6\.[3-9]|[7-9]\.[0-9])' >/dev/null 2>&1; then

However, Eli pointed out that the solution above has another problem: it
will stop working when Texinfo 10.1 will be released.  Meanwhile, he
suggested to solve this problem permanently.  That is, we don't care
about the minor version for Texinfo > 6.9, we only care about the major
version.

In this way, the problem will be resolved permanently, thanks to Eli.

libctf/ChangeLog:

* configure: Regenerated.
* configure.ac: Update regexp to match versions higher than 7.0.

22 months agoCorrect ld-pe/aarch64.d test output
Alan Modra [Sat, 14 Jan 2023 11:42:48 +0000 (22:12 +1030)]
Correct ld-pe/aarch64.d test output

"foo" is at 0x2010.  This corrects the expected output for .long and
.word referencing foo, showing a problem with relocation handling.

* testsuite/ld-pe/aarch64.d: Correct expected output.

22 months agoTidy gas/expr.c static state
Alan Modra [Sat, 14 Jan 2023 11:43:54 +0000 (22:13 +1030)]
Tidy gas/expr.c static state

* expr.c (seen, nr_seen): Make file scope.
(expr_begin): Clear seen, nr_seen, and expr_symbol_lines.
(expr_end): New function.
* expr.h (expr_end): Declare.
* output-file.c (output_file_close): Call expr_end.
* config/tc-hppa.c (expr_end): Rename to expr_parse_end.
* config/tc-mips.c: Likewise.
* config/tc-riscv.c: Likewise.
* config/tc-sparc.c: Likewise.

22 months agoLeftover hack from i960-coff
Alan Modra [Mon, 16 Jan 2023 10:05:33 +0000 (20:35 +1030)]
Leftover hack from i960-coff

* reloc.c (bfd_perform_relocation, bfd_install_relocation): Remove
i960-coff target hack.

22 months agoCOFF CALC_ADDEND comment
Alan Modra [Mon, 16 Jan 2023 04:53:21 +0000 (15:23 +1030)]
COFF CALC_ADDEND comment

Old COFF (and AOUT) targets have unusual relocation addends.

* coffcode.h (<Reading relocations>): Describe COFF addends.

22 months agoPR29991, MicroMIPS flag erased after align directives
Alan Modra [Thu, 12 Jan 2023 23:09:19 +0000 (09:39 +1030)]
PR29991, MicroMIPS flag erased after align directives

PR 29991
* config/tc-mips.c (s_align): Call file_mips_check_options and
mips_mark_labels.
* testsuite/gas/mips/align-after-label.s,
* testsuite/gas/mips/mips-align-after-label.d,
* testsuite/gas/mips/micromips-align-after-label.d: New test.
* testsuite/gas/mips/mips.exp: Run it.

22 months agoUpdate release making howto
Nick Clifton [Mon, 16 Jan 2023 11:31:39 +0000 (11:31 +0000)]
Update release making howto

22 months agoUpdated translations for the gas and binutils sub-directories
Nick Clifton [Mon, 16 Jan 2023 10:45:38 +0000 (10:45 +0000)]
Updated translations for the gas and binutils sub-directories

22 months agosim: assume sys/stat.h always exists (via gnulib)
Mike Frysinger [Mon, 16 Jan 2023 09:42:47 +0000 (04:42 -0500)]
sim: assume sys/stat.h always exists (via gnulib)

We have many uses of sys/stat.h that are unprotected by HAVE_SYS_STAT_H,
so this is more formalizing the reality that we require this header.
Since we switched to gnulib, it guarantees that a sys/stat.h exists
for us to include, so we're doubly OK.

22 months agosim: formally assume unistd.h always exists (via gnulib)
Mike Frysinger [Mon, 16 Jan 2023 09:35:48 +0000 (04:35 -0500)]
sim: formally assume unistd.h always exists (via gnulib)

We have many uses of unistd.h that are unprotected by HAVE_UNISTD_H,
so this is more formalizing the reality that we require this header.
Since we switched to gnulib, it guarantees that a unistd.h exists
for us to include, so we're doubly OK.

22 months agosim: build: stop probing system extensions (ourselves)
Mike Frysinger [Mon, 16 Jan 2023 09:22:10 +0000 (04:22 -0500)]
sim: build: stop probing system extensions (ourselves)

This logic was added in order to expose the strsignal prototype for
nrun.c.  Since then, we've migrated to gnulib as our portability layer,
and it takes care of probing system extensions for us, so there's no
need to duplicate the work.

22 months agosim: modules.c: fix generation after recent refactors
Mike Frysinger [Mon, 16 Jan 2023 01:48:28 +0000 (20:48 -0500)]
sim: modules.c: fix generation after recent refactors

Add explicit arch-specific modules.c rules to keep the build from
generating an incorrect common/modules.c.  Otherwise the pattern
rules would cascade such that it'd look for $arch/modules.o which
turned into common/modules.c which triggered the gen rule.

My local testing of this code didn't catch this bug because of how
Automake manages .Po (dependency files) in incremental builds -- it
was adding extra rules that override the pattern rules which caused
the build to generate correct modules.c files.  But when building
from a cold cache, the pattern rules would force common/modules.c to
be used leading to crashes at runtime.

22 months agoAutomatic date update in version.in
GDB Administrator [Mon, 16 Jan 2023 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

22 months agosim: microblaze, mn10300: remove signal.h include in interp.c
Mark Wielaard [Sat, 14 Jan 2023 21:54:20 +0000 (22:54 +0100)]
sim: microblaze, mn10300: remove signal.h include in interp.c

signal.h isn't needed in microblaze and mn10300 interp.c
so don't include it.

22 months agosim: m32r: fix typos in stamp depends
Mike Frysinger [Sun, 15 Jan 2023 07:05:06 +0000 (02:05 -0500)]
sim: m32r: fix typos in stamp depends

Copying & pasting the first rule missed updating the dep to the right
stamp file.

22 months agosim: igen: simplify build logic a little
Mike Frysinger [Sun, 15 Jan 2023 02:55:31 +0000 (21:55 -0500)]
sim: igen: simplify build logic a little

Now that all ports (that use igen) build in the top-level and depend
on igen, we can move the conditional logic out of configure.  We also
switch from noinst_LIBRARIES to EXTRA_LIBRARIES so that the library
is only built when needed (i.e. the igen tool is used).

22 months agosim: build: drop depdir subdir hack
Mike Frysinger [Tue, 3 Jan 2023 00:08:14 +0000 (19:08 -0500)]
sim: build: drop depdir subdir hack

Now that all the ports compile some C files in their arch dirs, Automake
guarantees creating the depdir for us, so we can drop our configure hack.

22 months agosim: common: simplify modules.c deps
Mike Frysinger [Mon, 2 Jan 2023 05:11:00 +0000 (00:11 -0500)]
sim: common: simplify modules.c deps

Now that all ports (other than ppc) build in the top-level, we don't
need to expand all the modules.c targets as a recursive dep.  Each
port depends on their respective file now, and the ppc port doesn't
use it at all.

22 months agosim: common: move modules.c to source tracking
Mike Frysinger [Mon, 2 Jan 2023 21:46:14 +0000 (16:46 -0500)]
sim: common: move modules.c to source tracking

This makes sure the arch-specific modules.c wildcard is matched and
not the common/%.c so that we compile it correctly.  It also makes
sure each subdir has depdir logic enabled.

22 months agosim: common: move libcommon.a dep to ppc code
Mike Frysinger [Mon, 2 Jan 2023 19:38:01 +0000 (14:38 -0500)]
sim: common: move libcommon.a dep to ppc code

Rather than force this to be built ahead of time for all targets,
move the dep to the ppc code since it's the only user of it now.

22 months agosim: build: drop most recursive build deps
Mike Frysinger [Mon, 2 Jan 2023 19:34:52 +0000 (14:34 -0500)]
sim: build: drop most recursive build deps

Now that we build these objects in the top dir & generate modules.c
there, we don't need to generate them all first -- we can let the
normal dependency graph take care of building things in parallel.

22 months agosim: common: move libcommon.a objects to sources
Mike Frysinger [Mon, 2 Jan 2023 19:15:02 +0000 (14:15 -0500)]
sim: common: move libcommon.a objects to sources

This simplifies the build logic and avoids an Automake bug where the
common_libcommon_a_OBJECTS variable isn't set in the arch libsim.a
DEPENDENCIES for targets that, alphabetically, come before "common".
We aren't affected by that bug with the current code, but as we move
things out of SIM_ALL_RECURSIVE_DEPS and rely on finer dependencies,
we will trip over it.

22 months agosim: igen: simplify build dep
Mike Frysinger [Mon, 2 Jan 2023 05:08:56 +0000 (00:08 -0500)]
sim: igen: simplify build dep

Now that all ports (other than ppc) build in the top-level, we don't
need to mark the igen tool as a recursive dep.  Each port depends on
the tool if it actually uses it, and ppc doesn't use it at all.

22 months agosim: common: simplify hw-config.h deps
Mike Frysinger [Mon, 2 Jan 2023 05:06:34 +0000 (00:06 -0500)]
sim: common: simplify hw-config.h deps

Now that all ports (other than ppc) build in the top-level, we don't
need to expand all the hw-config.h targets as a recursive dep.  Each
port depends on their respective header now, and the ppc port doesn't
use it at all.

22 months agosim: build: drop AM_MAKEFLAGS settings
Mike Frysinger [Mon, 2 Jan 2023 04:02:28 +0000 (23:02 -0500)]
sim: build: drop AM_MAKEFLAGS settings

We don't have any recursive builds anymore, so we can drop this logic.

22 months agoAutomatic date update in version.in
GDB Administrator [Sun, 15 Jan 2023 00:00:45 +0000 (00:00 +0000)]
Automatic date update in version.in

22 months agoPass internal gdb flags to --configuration invocations
Tom Tromey [Sat, 14 Jan 2023 19:42:30 +0000 (12:42 -0700)]
Pass internal gdb flags to --configuration invocations

The test suite uses the --configuration flag to feature-test gdb.
However, when I added this, I neglected to pass the internal gdbflags
to this, causing an error, which then caused failures in the test
suite (which would not be seen if you'd ever run "make install").

This patch fixes the bug.  Tested by removing my install tree first,
to verify that I could reproduce the failure.

22 months agoUpdate how-to-make-a-release file now that the 2.40 release is out
Nick Clifton [Sat, 14 Jan 2023 15:37:20 +0000 (15:37 +0000)]
Update how-to-make-a-release file now that the 2.40 release is out

22 months agoAutomatic date update in version.in
GDB Administrator [Sat, 14 Jan 2023 00:00:18 +0000 (00:00 +0000)]
Automatic date update in version.in

22 months agosim: build: delete Make-common.in logic
Mike Frysinger [Mon, 2 Jan 2023 03:58:35 +0000 (22:58 -0500)]
sim: build: delete Make-common.in logic

Now that all (other than ppc) build in the top-level, this logic is
unused, so punt it all.

22 months agoRename to allow_tui_tests
Tom Tromey [Sun, 8 Jan 2023 19:42:29 +0000 (12:42 -0700)]
Rename to allow_tui_tests

This changes skip_tui_tests to invert the sense, and renames it to
allow_tui_tests.  It also rewrites this function to use the output of
"gdb --configuration", and it adds a note about the state of the TUI
to that output.

22 months agoRename to allow_guile_tests
Tom Tromey [Sun, 8 Jan 2023 19:01:33 +0000 (12:01 -0700)]
Rename to allow_guile_tests

This changes skip_guile_tests to invert the sense, and renames it to
allow_guile_tests.  It also rewrites this proc to check the output of
"gdb --configuration", as was done for Python.  Then it changes the
code to use "require" where possible.

22 months agoRename to allow_hw_breakpoint_tests
Tom Tromey [Sun, 8 Jan 2023 18:54:47 +0000 (11:54 -0700)]
Rename to allow_hw_breakpoint_tests

This changes skip_hw_breakpoint_tests to invert the sense, and renames
it to allow_hw_breakpoint_tests.  This also converts some tests to use
"require" -- I missed this particular check in the first series.

22 months agoRename to allow_tsx_tests
Tom Tromey [Sun, 8 Jan 2023 18:48:57 +0000 (11:48 -0700)]
Rename to allow_tsx_tests

This changes skip_tsx_tests to invert the sense, and renames it to
allow_tsx_tests.

22 months agoRename to allow_shlib_tests
Tom Tromey [Sun, 8 Jan 2023 18:47:51 +0000 (11:47 -0700)]
Rename to allow_shlib_tests

This changes skip_shlib_tests to invert the sense, and renames it to
allow_shlib_tests.

22 months agoRename to allow_rust_tests
Tom Tromey [Sun, 8 Jan 2023 18:46:36 +0000 (11:46 -0700)]
Rename to allow_rust_tests

This changes skip_rust_tests to invert the sense, and renames it to
allow_rust_tests.

22 months agoRename to allow_python_tests
Tom Tromey [Sun, 8 Jan 2023 18:46:05 +0000 (11:46 -0700)]
Rename to allow_python_tests

This changes skip_python_tests to invert the sense, and renames it to
allow_python_tests.

22 months agoRename to allow_perf_tests
Tom Tromey [Sun, 8 Jan 2023 18:43:09 +0000 (11:43 -0700)]
Rename to allow_perf_tests

This changes skip_perf_tests to invert the sense, and renames it to
allow_perf_tests.

22 months agoRename to allow_opencl_tests
Tom Tromey [Sun, 8 Jan 2023 18:42:26 +0000 (11:42 -0700)]
Rename to allow_opencl_tests

This changes skip_opencl_tests to invert the sense, and renames it to
allow_opencl_tests.

22 months agoRename to allow_ifunc_tests
Tom Tromey [Sun, 8 Jan 2023 18:41:19 +0000 (11:41 -0700)]
Rename to allow_ifunc_tests

This changes skip_ifunc_tests to invert the sense, and renames it to
allow_ifunc_tests.

22 months agoRename to allow_hw_watchpoint_tests
Tom Tromey [Sun, 8 Jan 2023 18:40:32 +0000 (11:40 -0700)]
Rename to allow_hw_watchpoint_tests

This changes skip_hw_watchpoint_tests to invert the sense, and renames
it to allow_hw_watchpoint_tests.

22 months agoRename to allow_hw_watchpoint_multi_tests
Tom Tromey [Sun, 8 Jan 2023 17:57:35 +0000 (10:57 -0700)]
Rename to allow_hw_watchpoint_multi_tests

This changes skip_hw_watchpoint_multi_tests to invert the sense, and
renames it to allow_hw_watchpoint_multi_tests.

22 months agoRename to allow_hw_watchpoint_access_tests
Tom Tromey [Sun, 8 Jan 2023 17:55:43 +0000 (10:55 -0700)]
Rename to allow_hw_watchpoint_access_tests

This changes skip_hw_watchpoint_access_tests to invert the sense, and
renames it to allow_hw_watchpoint_access_tests.

22 months agoRename to allow_go_tests
Tom Tromey [Sun, 8 Jan 2023 17:54:46 +0000 (10:54 -0700)]
Rename to allow_go_tests

This changes skip_go_tests to invert the sense, and renames it to
allow_go_tests.

22 months agoRename to allow_gdbserver_tests
Tom Tromey [Sun, 8 Jan 2023 17:53:55 +0000 (10:53 -0700)]
Rename to allow_gdbserver_tests

This changes skip_gdbserver_tests to invert the sense, and renames it
to allow_gdbserver_tests.

22 months agoRename to allow_fortran_tests
Tom Tromey [Sun, 8 Jan 2023 17:52:25 +0000 (10:52 -0700)]
Rename to allow_fortran_tests

This changes skip_fortran_tests to invert the sense, and renames it to
allow_fortran_tests.

22 months agoRename to allow_d_tests
Tom Tromey [Sun, 8 Jan 2023 17:51:43 +0000 (10:51 -0700)]
Rename to allow_d_tests

This changes skip_d_tests to invert the sense, and renames it to
allow_d_tests.

22 months agoRename to allow_dlmopen_tests
Tom Tromey [Sun, 8 Jan 2023 17:50:41 +0000 (10:50 -0700)]
Rename to allow_dlmopen_tests

This changes skip_dlmopen_tests to invert the sense, and renames it to
allow_dlmopen_tests.

22 months agoRename to allow_debuginfod_tests
Tom Tromey [Sun, 8 Jan 2023 17:49:20 +0000 (10:49 -0700)]
Rename to allow_debuginfod_tests

This changes skip_debuginfod_tests to invert the sense, and renames it
to allow_debuginfod_tests.

22 months agoRename to allow_ctf_tests
Tom Tromey [Sun, 8 Jan 2023 17:48:33 +0000 (10:48 -0700)]
Rename to allow_ctf_tests

This changes skip_ctf_tests to invert the sense, and renames it to
allow_ctf_tests.

22 months agoRename to allow_cplus_tests and allow_stl_tests
Tom Tromey [Sun, 8 Jan 2023 17:47:09 +0000 (10:47 -0700)]
Rename to allow_cplus_tests and allow_stl_tests

This changes skip_cplus_tests to invert the sense, and renames it to
allow_cplus_tests.  This one also converts skip_stl_tests to
allow_stl_tests, as that was convenient to do at the same time.

22 months agoRename to allow_btrace_tests
Tom Tromey [Sun, 8 Jan 2023 17:44:15 +0000 (10:44 -0700)]
Rename to allow_btrace_tests

This changes skip_btrace_tests to invert the sense, and renames it to
allow_btrace_tests.

22 months agoRename to allow_btrace_pt_tests
Tom Tromey [Sun, 8 Jan 2023 17:41:37 +0000 (10:41 -0700)]
Rename to allow_btrace_pt_tests

This changes skip_btrace_pt_tests to invert the sense, and renames it
to allow_btrace_pt_tests.

22 months agoRename to allow_avx512fp16_tests
Tom Tromey [Sun, 8 Jan 2023 17:39:51 +0000 (10:39 -0700)]
Rename to allow_avx512fp16_tests

This changes skip_avx512fp16_tests to invert the sense, and renames it
to allow_avx512fp16_tests.

22 months agoRename to allow_avx512bf16_tests
Tom Tromey [Sun, 8 Jan 2023 17:37:20 +0000 (10:37 -0700)]
Rename to allow_avx512bf16_tests

This changes skip_avx512bf16_tests to invert the sense, and renames it
to allow_avx512bf16_tests.

22 months agoRename to allow_ada_tests
Tom Tromey [Sat, 7 Jan 2023 20:36:00 +0000 (13:36 -0700)]
Rename to allow_ada_tests

This changes skip_ada_tests to invert the sense, and renames it to
allow_ada_tests.

22 months agoRename to allow_aarch64_sve_tests
Tom Tromey [Sat, 7 Jan 2023 20:32:55 +0000 (13:32 -0700)]
Rename to allow_aarch64_sve_tests

This changes skip_aarch64_sve_tests to invert the sense, and renames
it to allow_aarch64_sve_tests.

22 months agoRename to allow_xml_test
Tom Tromey [Sat, 7 Jan 2023 18:48:45 +0000 (11:48 -0700)]
Rename to allow_xml_test

This changes gdb_skip_xml_test to invert the sense, and renames it to
allow_xml_test.

22 months agoUse "require" for Python tests
Tom Tromey [Sat, 7 Jan 2023 19:18:59 +0000 (12:18 -0700)]
Use "require" for Python tests

This changes various tests to use "require" for the Python feature.

22 months agoFix latent bug in default_prompt_gdb_start
Tom Tromey [Wed, 11 Jan 2023 23:52:38 +0000 (16:52 -0700)]
Fix latent bug in default_prompt_gdb_start

default_prompt_gdb_start mimics default_gdb_start, but does not set
the use_gdb_stub global.  This caused one Python test to work only
because it used the ordinary gdb_start before later using
default_prompt_gdb_start.

This patch updates default_prompt_gdb_start to set this global as
well.

22 months agoRemove mi_skip_python_tests
Tom Tromey [Sat, 7 Jan 2023 18:51:33 +0000 (11:51 -0700)]
Remove mi_skip_python_tests

mi_skip_python_tests was necessary because skip_python_tests used the
running gdb, and so needed to know what prompt to expect.  Now that
skip_python_tests has been rewritten, mi_skip_python_tests is no
longer needed.

22 months agoRewrite skip_python_tests
Tom Tromey [Sat, 7 Jan 2023 03:36:38 +0000 (20:36 -0700)]
Rewrite skip_python_tests

This rewrites skip_python_tests to examine the output of
"gdb --configuration".  This is a bit nicer because it
does not require an already-running gdb.

22 months agoUse require gnat_runtime_has_debug_info
Tom Tromey [Fri, 16 Dec 2022 00:58:40 +0000 (17:58 -0700)]
Use require gnat_runtime_has_debug_info

This changes some tests to use "require gnat_runtime_has_debug_info".