binutils-gdb.git
20 months agoCOFF build-id writes uninitialised data to file
Alan Modra [Thu, 22 Dec 2022 22:57:14 +0000 (09:27 +1030)]
COFF build-id writes uninitialised data to file

1) The first write in write_build_id wrote rubbish past the struct
external_IMAGE_DEBUG_DIRECTORY, which was later overwritten with
correct data.  No user visible problem there, except that tools like
valgrind complain.
2) The size for the pdb name was incorrectly calculated.

* emultempl/pe.em (write_build_id): Write the debug directory,
not the entire section contents.
(setup_build_id): Add size for the base name of pdb_name, not
the full path.
* emultempl/pep.em: Likewise.
* testsuite/ld-pe/pdb2-section-contrib.d: Update.

20 months agosim: mips: merge mips64vr4300 with existing multi-run build
Mike Frysinger [Fri, 11 Nov 2022 16:37:44 +0000 (23:37 +0700)]
sim: mips: merge mips64vr4300 with existing multi-run build

The existing mips64vr-* multi-run build already handles mips4300
targets, so reuse that for mips64vr43* targets too.  This moves
more logic from build-time to runtime so we can have a single
binary that supports many targets.

20 months agoAutomatic date update in version.in
GDB Administrator [Fri, 23 Dec 2022 00:01:40 +0000 (00:01 +0000)]
Automatic date update in version.in

20 months agosframe: doc: update documentation for pauth key in SFrame FDE
Indu Bhagat [Thu, 22 Dec 2022 17:58:21 +0000 (09:58 -0800)]
sframe: doc: update documentation for pauth key in SFrame FDE

ChangeLog:

* libsframe/doc/sframe-spec.texi

20 months agogas: sframe: testsuite: add testcase for .cfi_b_key_frame
Indu Bhagat [Thu, 22 Dec 2022 17:57:52 +0000 (09:57 -0800)]
gas: sframe: testsuite: add testcase for .cfi_b_key_frame

This is actually a composite test that checks SFrame unwind information
generation for both the .cfi_negate_ra_state and .cfi_b_key_frame
directives on aarch64.

ChangeLog:

* testsuite/gas/cfi-sframe/cfi-sframe-aarch64-pac-ab-key-1.d:
New test.
* testsuite/gas/cfi-sframe/cfi-sframe-aarch64-pac-ab-key-1.s:
Likewise.
* testsuite/gas/cfi-sframe/cfi-sframe.exp: Run new test.

20 months agoobjdump/readelf: sframe: emit marker for SFrame FDE with B key
Indu Bhagat [Thu, 22 Dec 2022 17:57:27 +0000 (09:57 -0800)]
objdump/readelf: sframe: emit marker for SFrame FDE with B key

ChangeLog:

* libsframe/sframe-dump.c (is_sframe_abi_arch_aarch64): New
definition.
(dump_sframe_func_with_fres): Emit a string if B key is used.

20 months agogas: sframe: add support for .cfi_b_key_frame
Indu Bhagat [Thu, 22 Dec 2022 17:57:16 +0000 (09:57 -0800)]
gas: sframe: add support for .cfi_b_key_frame

Gather the information from the DWARF FDE on whether frame's return
addresses are signed using the B key or A key.  Reflect the information in
the SFrame counterpart data structure, the SFrame FDE.

ChangeLog:

* gas/gen-sframe.c (get_dw_fde_pauth_b_key_p): New definition.
(sframe_v1_set_func_info): Add new argument for pauth_key.
(sframe_set_func_info): Likewise.
(output_sframe_funcdesc): Likewise.
* gas/gen-sframe.h (struct sframe_version_ops): Add new argument
to the function pointer declaration.
* gas/sframe-opt.c (sframe_convert_frag): Handle pauth_key.

20 months agosframe.h: add support for .cfi_b_key_frame
Indu Bhagat [Thu, 22 Dec 2022 17:57:02 +0000 (09:57 -0800)]
sframe.h: add support for .cfi_b_key_frame

ARM 8.3 provides five separate keys that can be used to authenticate
pointers. There are two key for executable (instruction) pointers. The
enum pointer_auth_key in gas/config/tc-aarch64.h currently holds two keys:
  enum pointer_auth_key {
    AARCH64_PAUTH_KEY_A,
    AARCH64_PAUTH_KEY_B
  };

Analogous to the above, in SFrame format V1, a bit is reserved in the SFrame
FDE to indicate which key is used for signing the frame's return addresses:
  - SFRAME_AARCH64_PAUTH_KEY_A has a value of 0
  - SFRAME_AARCH64_PAUTH_KEY_B has a value of 1

Note that the information in this bit will always be used along with the
mangled_ra_p bit, the latter indicates whether the return addresses are
mangled/contain PAC auth bits.

include/ChangeLog:

* sframe.h (SFRAME_AARCH64_PAUTH_KEY_A): New definition.
(SFRAME_AARCH64_PAUTH_KEY_B): Likewise.
(SFRAME_V1_FUNC_INFO): Adjust to accommodate pauth_key.
(SFRAME_V1_FUNC_PAUTH_KEY): New macro.
(SFRAME_V1_FUNC_INFO_UPDATE_PAUTH_KEY): Likewise.

20 months agogas: re-arrange listing output for .irp and alike
Jan Beulich [Thu, 22 Dec 2022 13:31:11 +0000 (14:31 +0100)]
gas: re-arrange listing output for .irp and alike

It is kind of odd to have the expansions of such constructs ahead of
their definition in listings with macro expansion enabled. Adjust this
by pulling ahead the output of the definition lines, taking care to
avoid producing a listing line for (non-existing) line 0 when the source
is stdin.

Note that with the code movement the conditional operator isn't
necessary anymore - list->line now match up.

20 months agox86: correct/improve TSX controls
Jan Beulich [Thu, 22 Dec 2022 08:36:16 +0000 (09:36 +0100)]
x86: correct/improve TSX controls

TSXLDTRK takes RTM as a prereq. Additionally introduce an umbrella "tsx"
extension option covering both RTM and HLE, paralleling the "abm" one we
already have.

20 months agox86: add dependencies on SVME
Jan Beulich [Thu, 22 Dec 2022 08:35:53 +0000 (09:35 +0100)]
x86: add dependencies on SVME

SEV-ES is an extension to SVME. SNP in turn is an extension to SEV-ES,
and yet in turn RMPQUERY is a SNP extension.

Note that cpu_arch[] has no SNP entry, so CPU_ANY_SNP_FLAGS remains
unused (just like CPU_SNP_FLAGS already is).

20 months agox86: add dependencies on VMX
Jan Beulich [Thu, 22 Dec 2022 08:35:32 +0000 (09:35 +0100)]
x86: add dependencies on VMX

Both EPT and VMFUNC are extensions to VMX.

20 months agox86: correct XSAVE* dependencies
Jan Beulich [Thu, 22 Dec 2022 08:35:11 +0000 (09:35 +0100)]
x86: correct XSAVE* dependencies

Like various other features AMX-TILE takes XSAVE as a prereq.

XSAVES, unconditionally using compacted format, in turn effectively
takes XSAVEC as a prereq (an SDM clarification to this effect is in the
works).

20 months agox86: correct dependencies of a few AVX512 sub-features
Jan Beulich [Thu, 22 Dec 2022 08:34:50 +0000 (09:34 +0100)]
x86: correct dependencies of a few AVX512 sub-features

Like AVX512-FP16, several other extensions require wider than 16-bit
mask registers. As a result they take AVX512BW as a prereq, not (just)
AVX512F. Which in turn points out wrong expectations in the noavx512-1
testcase.

20 months agox86: rework noavx512-1 testcase
Jan Beulich [Thu, 22 Dec 2022 08:34:17 +0000 (09:34 +0100)]
x86: rework noavx512-1 testcase

So far the set of ".noavx512*" has been accumulating, which isn't ideal.
In particular this hides issues with dependencies between features.
Switch back to the default ISA before disabling a particular subset.
Furthermore limit redundancy by wrapping the repeated block of insns in
an .irp.

20 months agox86: add dependencies on AVX2
Jan Beulich [Thu, 22 Dec 2022 08:33:53 +0000 (09:33 +0100)]
x86: add dependencies on AVX2

Like AVX-VNNI both VAES and VPCLMUL take AVX2 as a prereq, for operating
on up to 256-bit packed integer vectors.

20 months agox86: correct SSE dependencies
Jan Beulich [Thu, 22 Dec 2022 08:33:26 +0000 (09:33 +0100)]
x86: correct SSE dependencies

SSE itself takes FXSR as a prereq. Like AES, PCLMUL, and SHA both GFNI
and KL take SSE2 as a prereq, for operating on packed integers. And
while correcting KL also record it as a prereq to WIDEKL.

20 months agox86: correct what gets disabled by certain ".arch .no*"
Jan Beulich [Thu, 22 Dec 2022 08:33:01 +0000 (09:33 +0100)]
x86: correct what gets disabled by certain ".arch .no*"

Features with prereqs as well as features with dependents cannot re-use
CPU_*_MASK for the 3rd argument of SUBARCH() - they need to use
CPU_ANY_*_MASK in order to avoid disabling too many (when there are
prereqs) and/or too few (when there are dependents) features.

Generally any CPU_ANY_*_MASK which exist should not remain unused.
Exceptions are
- FISTTP which has no corresponding entry in cpu_arch[],
- IAMCU which is a base architecture and hence uses ARCH(), not
  SUBARCH() (only extensions can be disabled, but unlike for Cpu*86 it
  would be a little more clumsy to suppress generating of the #define).

20 months agox86: re-work ISA extension dependency handling
Jan Beulich [Thu, 22 Dec 2022 08:32:29 +0000 (09:32 +0100)]
x86: re-work ISA extension dependency handling

Getting both forward and reverse ISA dependencies right / consistent has
been a permanent source of mistakes. Reduce what needs specifying
manually to just the direct forward dependencies. Transitive forward
dependencies as well as reverse ones are now derived and hence cannot go
out of sync anymore (at least in the vast majority of cases; there are a
few special cases to still take care of manually). In the course of this
several CPU_ANY_*_FLAGS disappear, requiring adjustment to the
assembler's cpu_arch[].

Note that to retain the correct reverse dependency of AVX512F wrt
AVX512-VP2INTERSECT, the latter has the previously missing AVX512F
prereq added.

Note further that to avoid adding the following undue prereqs:
* ATHLON, K8, and AMDFAM10 gain CMOV and FXSR,
* IAMCU gains 387,
auxiliary table entries (including a colon-separated modifier) are
introduced in addition to the ones representing from converting the old
table.

To maintain forward-only dependencies between AVX (XOP) and SSE* (SSE4a)
(i.e. "nosse" not disabling AVX), reverse dependency tracking is
artifically suppressed.

As a side effect disabling of SSE or SSE2 will now also disable AES,
PCLMUL, and SHA (respective elements were missing from
CPU_ANY_SSE2_FLAGS).

20 months agosim: mips: match target on cpu settings
Mike Frysinger [Fri, 11 Nov 2022 16:27:12 +0000 (23:27 +0700)]
sim: mips: match target on cpu settings

We don't need to enforce larger target settings when the only thing
the sim should care about is the CPU target.  So reduce most of the
target matches to only check the CPU.

20 months agosim: mips: move fpu bitsize defines to top-level configure
Mike Frysinger [Fri, 11 Nov 2022 09:15:46 +0000 (16:15 +0700)]
sim: mips: move fpu bitsize defines to top-level configure

This drops support for the --enable-sim-float configure option,
but it's not clear anyone ever actually used that.  Eventually
we'll want this to be a runtime option anyways.

20 months agosim: mips: move bitsize defines to top-level configure
Mike Frysinger [Fri, 11 Nov 2022 08:57:55 +0000 (15:57 +0700)]
sim: mips: move bitsize defines to top-level configure

Since the msb value is always defined as the wordsize-1, stop
hardcoding that value directly, and use a CPP value instead.

20 months agosim: mips: move subtarget defines to top-level configure
Mike Frysinger [Fri, 11 Nov 2022 08:44:57 +0000 (15:44 +0700)]
sim: mips: move subtarget defines to top-level configure

We want to kill off mips/configure entirely.  Move this small part
out now to get started.

20 months agosim: mips: always resolve active bfd mach dynamically
Mike Frysinger [Fri, 11 Nov 2022 15:57:05 +0000 (22:57 +0700)]
sim: mips: always resolve active bfd mach dynamically

Don't assume that the default bfd that we configured for is the one
that is always active when running a program.  We already have access
to the real runtime value, so use it directly.  This simplifies the
code quite a bit, and will make it easier to support multiple mach's
in a single binary.

20 months agosim: hw-config.h: move generation to top-level
Mike Frysinger [Sun, 6 Nov 2022 15:57:06 +0000 (22:57 +0700)]
sim: hw-config.h: move generation to top-level

In order to compile arch objects from the top-level, we need to
generate the hw-config.h header, so move that logic up to the top
level first.

20 months agosim: build: hoist lists of hw devices up
Mike Frysinger [Sun, 6 Nov 2022 14:40:56 +0000 (21:40 +0700)]
sim: build: hoist lists of hw devices up

We need these in the top-level to generate libsim.a, but also in the
subdirs to generate hw-config.h.  Move it to the local.mk, and pass
it down when running recursive make.  This avoids duplication, and
makes it available to both.  We can simplify this once we move the
various steps up to the top-level too.

20 months agosim: build: hoist lists of common objects up
Mike Frysinger [Sun, 6 Nov 2022 14:24:24 +0000 (21:24 +0700)]
sim: build: hoist lists of common objects up

In order to create libsim.a in the common dir, we need the list of
objects for each target.  To avoid duplicating the list with the
recursive make in each port, pass it down as a variable.  This is
a temporary hack until the top-level creates libsim.a for ports.

20 months agoAutomatic date update in version.in
GDB Administrator [Thu, 22 Dec 2022 00:01:01 +0000 (00:01 +0000)]
Automatic date update in version.in

20 months agoPR29925, Memory leak in find_abstract_instance
Alan Modra [Wed, 21 Dec 2022 11:10:12 +0000 (21:40 +1030)]
PR29925, Memory leak in find_abstract_instance

The testcase in the PR had a variable with both DW_AT_decl_file and
DW_AT_specification, where the DW_AT_specification also specified
DW_AT_decl_file.  This leads to a memory leak as the file name is
malloced and duplicates are not expected.

I've also changed find_abstract_instance to not use a temp for "name",
because that can result in a change in behaviour from the usual last
of duplicate attributes wins.

PR 29925
* dwarf2.c (find_abstract_instance): Delete "name" variable.
Free *filename_ptr before assigning new file name.
(scan_unit_for_symbols): Similarly free func->file and
var->file before assigning.

20 months agoFix compiling of top.c
Andrew Pinski [Wed, 21 Dec 2022 17:30:14 +0000 (17:30 +0000)]
Fix compiling of top.c

When I moved my last patch forward, somehow I missed removing
the #endif for the HAVE_LIBMPFR case.

Committed as obvious after a quick build.

gdb/ChangeLog:
* top.c: Remove the extra #endif which was missed.

20 months agoUse toplevel configure for GMP and MPFR for gdb
Andrew Pinski [Tue, 8 Nov 2022 07:57:18 +0000 (07:57 +0000)]
Use toplevel configure for GMP and MPFR for gdb

This patch uses the toplevel configure parts for GMP/MPFR for
gdb. The only thing is that gdb now requires MPFR for building.
Before it was a recommended but not required library.
Also this allows building of GMP and MPFR with the toplevel
directory just like how it is done for GCC.
We now error out in the toplevel configure of the version
of GMP and MPFR that is wrong.

OK after GDB 13 branches? Build gdb 3 ways:
with GMP and MPFR in the toplevel (static library used at that point for both)
With only MPFR in the toplevel (GMP distro library used and MPFR built from source)
With neither GMP and MPFR in the toplevel (distro libraries used)

Changes from v1:
* Updated gdb/README and gdb/doc/gdb.texinfo.
* Regenerated using unmodified autoconf-2.69

Thanks,
Andrew Pinski

ChangeLog:
* Makefile.def: Add configure-gdb dependencies
on all-gmp and all-mpfr.
* configure.ac: Split out MPC checking from MPFR.
Require GMP and MPFR if the gdb directory exist.
* Makefile.in: Regenerate.
* configure: Regenerate.

gdb/ChangeLog:

PR bug/28500
* configure.ac: Remove AC_LIB_HAVE_LINKFLAGS
for gmp and mpfr.
Use GMPLIBS and GMPINC which is provided by the
toplevel configure.
* Makefile.in (LIBGMP, LIBMPFR): Remove.
(GMPLIBS, GMPINC): Add definition.
(INTERNAL_CFLAGS_BASE): Add GMPINC.
(CLIBS): Exchange LIBMPFR and LIBGMP
for GMPLIBS.
* target-float.c: Make the code conditional on
HAVE_LIBMPFR unconditional.
* top.c: Remove code checking HAVE_LIBMPFR.
* configure: Regenerate.
* config.in: Regenerate.
* README: Update GMP/MPFR section of the config
options.
* doc/gdb.texinfo: Likewise.

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

20 months agogdb/c++: validate 'using' directives based on the current line
Bruno Larsen [Wed, 19 Oct 2022 14:57:44 +0000 (16:57 +0200)]
gdb/c++: validate 'using' directives based on the current line

When asking GDB to print a variable from an imported namespace, we only
want to see variables imported in lines that the inferior has already
gone through, as is being tested last in gdb.cp/nsusing.exp. However
with the proposed change to gdb.cp/nsusing.exp, we get the following
failures:

(gdb) PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker10 stop
print x
$9 = 911
(gdb) FAIL: gdb.cp/nsusing.exp: print x, before using statement
next
15        y += x;
(gdb) PASS: gdb.cp/nsusing.exp: using namespace M
print x
$10 = 911
(gdb) PASS: gdb.cp/nsusing.exp: print x, only using M

Showing that the feature wasn't functioning properly, it just so
happened that gcc ordered the namespaces in a convenient way.
This happens because GDB doesn't take into account the line where the
"using namespace" directive is written. So long as it shows up in the
current scope, we assume it is valid.

To fix this, add a new member to struct using_direct, that stores the
line where the directive was written, and a new function that informs if
the using directive is valid already.

Unfortunately, due to a GCC bug, the failure still shows up. Compilers
that set the declaration line of the using directive correctly (such as
Clang) do not show such a bug, so the test includes an XFAIL for gcc
code.

Finally, because the final test of gdb.cp/nsusing.exp has turned into
multiple that all would need XFAILs for older GCCs (<= 4.3), and that
GCC is very old, if it is detected, the test just exits early.

Approved-by: Tom Tromey <tom@tromey.com>
20 months agoUpdated Romanian translation for the BFD sub-directory.
Nick Clifton [Wed, 21 Dec 2022 12:19:04 +0000 (12:19 +0000)]
Updated Romanian translation for the BFD sub-directory.

20 months agoFix an attempt to allocate an unreasonably large amount of memory when parsing a...
Nick Clifton [Wed, 21 Dec 2022 11:51:23 +0000 (11:51 +0000)]
Fix an attempt to allocate an unreasonably large amount of memory when parsing a corrupt ELF file.

PR  29924
* objdump.c (load_specific_debug_section): Check for excessively
large sections.

20 months agoKeep the .drectve section when performing a relocateable link.
Nick Clifton [Wed, 21 Dec 2022 10:23:08 +0000 (10:23 +0000)]
Keep the .drectve section when performing a relocateable link.

PR 29900
* scripttempl/pe.sc: Keep the .drectve section when performing a
relocateable link.
* scripttempl/pep.sc: Likewise.

20 months agox86: rename CheckRegSize to CheckOperandSize
Jan Beulich [Wed, 21 Dec 2022 08:07:03 +0000 (09:07 +0100)]
x86: rename CheckRegSize to CheckOperandSize

While originally indeed used for register size checking only, the
attribute has been used for memory operand size checking as well already
for quite a while, with more such uses recently having been added.

20 months agogprofng/testsuite: restrict testing to native configurations
Jan Beulich [Wed, 21 Dec 2022 08:05:43 +0000 (09:05 +0100)]
gprofng/testsuite: restrict testing to native configurations

The binaries involved in testing gprofng are native ones, and hence a
cross build of binutils won't really test intended functionality. Since
this testing takes quite a bit of time (typically more than running all
of binutils, gas, and ld testsuites together), restrict the testing to
native configurations only.

20 months agoenable-non-contiguous-regions warnings
Alan Modra [Wed, 21 Dec 2022 05:36:55 +0000 (16:06 +1030)]
enable-non-contiguous-regions warnings

The warning about discarded sections in elf_link_input_bfd doesn't
belong there since the code is dealing with symbols.  Multiple symbols
in a discarded section will result in multiple identical warnings
about the section.  Move the warning to a new function in ldlang.c.

The patch also tidies the warning quoting of section and file names,
consistently using `%pA' and `%pB'.  I'm no stickler for one style of
section and file name quoting, but they ought to be consistent within
a warning, eg. see the first one fixed in ldlang.c, and when a warning
is emitted for multiple targets they all ought to use exactly the same
format string to reduce translation work.  elf64-ppc.c loses the
build_one_stub errors since we won't get there before hitting the
fatal errors in size_one_stub.

bfd/
* elflink.c (elf_link_input_bfd): Don't warn here about
discarded sections.
* elf32-arm.c (arm_build_one_stub): Use consistent style in
--enable-non-contiguous-regions error.
* elf32-csky.c (csky_build_one_stub): Likewise.
* elf32-hppa.c (hppa_build_one_stub): Likewise.
* elf32-m68hc11.c (m68hc11_elf_build_one_stub): Likewise.
* elf32-m68hc12.c (m68hc12_elf_build_one_stub): Likewise.
* elf32-metag.c (metag_build_one_stub): Likewise.
* elf32-nios2.c (nios2_build_one_stub): Likewise.
* elfnn-aarch64.c (aarch64_build_one_stub): Likewise.
* xcofflink.c (xcoff_build_one_stub): Likewise.
* elf64-ppc.c (ppc_size_one_stub): Likewise.
(ppc_build_one_stub): Delete dead code.
ld/
* ldlang.c (lang_add_section): Use consistent style in
--enable-non-contiguous-regions warnings.
(size_input_section): Likewise.
(warn_non_contiguous_discards): New function.
(lang_process): Call it.
* testsuite/ld-arm/non-contiguous-arm.d: Update.
* testsuite/ld-arm/non-contiguous-arm4.d: Update.
* testsuite/ld-arm/non-contiguous-arm7.d: Add
--enable-non-contiguous-regions-warnings.
* testsuite/ld-arm/non-contiguous-arm7.err: New.
* testsuite/ld-powerpc/non-contiguous-powerpc.d: Update.
* testsuite/ld-powerpc/non-contiguous-powerpc64.d: Update.

20 months agoPR29922, SHT_NOBITS section avoids section size sanity check
Alan Modra [Tue, 20 Dec 2022 13:17:03 +0000 (23:47 +1030)]
PR29922, SHT_NOBITS section avoids section size sanity check

PR 29922
* dwarf2.c (find_debug_info): Ignore sections without
SEC_HAS_CONTENTS.

20 months agosim: fully merge sim_cpu_base into sim_cpu
Mike Frysinger [Mon, 31 Oct 2022 17:56:10 +0000 (23:41 +0545)]
sim: fully merge sim_cpu_base into sim_cpu

Now that all ports have migrated to the new framework, drop support
for the old sim_cpu_base layout.  There's a lot of noise here, so
it's been split into a dedicated commit.

20 months agosim: enable common sim_cpu usage everywhere
Mike Frysinger [Mon, 31 Oct 2022 17:54:51 +0000 (23:39 +0545)]
sim: enable common sim_cpu usage everywhere

All ports should be migrated now.  Drop the SIM_HAVE_COMMON_SIM_CPU
knob and require it be used everywhere now.

20 months agosim: or1k: invert sim_cpu storage
Mike Frysinger [Tue, 1 Nov 2022 13:04:48 +0000 (18:49 +0545)]
sim: or1k: invert sim_cpu storage

The cpu.h change is in generated cgen code, but that has been sent
upstream too, so the next regen should include it automatically.

20 months agosim: m32r: invert sim_cpu storage
Mike Frysinger [Tue, 1 Nov 2022 13:04:48 +0000 (18:49 +0545)]
sim: m32r: invert sim_cpu storage

The cpu*.h changes are in generated cgen code, but that has been sent
upstream too, so the next regen should include it automatically.

20 months agosim: lm32: invert sim_cpu storage
Mike Frysinger [Tue, 1 Nov 2022 13:04:48 +0000 (18:49 +0545)]
sim: lm32: invert sim_cpu storage

The cpu.h change is in generated cgen code, but that has been sent
upstream too, so the next regen should include it automatically.

20 months agosim: iq2000: invert sim_cpu storage
Mike Frysinger [Tue, 1 Nov 2022 13:04:48 +0000 (18:49 +0545)]
sim: iq2000: invert sim_cpu storage

The cpu.h change is in generated cgen code, but that has been sent
upstream too, so the next regen should include it automatically.

20 months agosim: frv: invert sim_cpu storage
Mike Frysinger [Tue, 1 Nov 2022 13:04:48 +0000 (18:49 +0545)]
sim: frv: invert sim_cpu storage

The cpu.h change is in generated cgen code, but that has been sent
upstream too, so the next regen should include it automatically.

20 months agosim: cris: invert sim_cpu storage
Mike Frysinger [Tue, 1 Nov 2022 13:04:48 +0000 (18:49 +0545)]
sim: cris: invert sim_cpu storage

The cpu*.h changes are in generated cgen code, but that has been sent
upstream too, so the next regen should include it automatically.

20 months agosim: bpf: invert sim_cpu storage
Mike Frysinger [Tue, 1 Nov 2022 13:04:48 +0000 (18:49 +0545)]
sim: bpf: invert sim_cpu storage

The cpu.h change is in generated cgen code, but that has been sent
upstream too, so the next regen should include it automatically.

20 months agosim: cgen: prep for inverting sim_cpu storage
Mike Frysinger [Tue, 1 Nov 2022 13:04:48 +0000 (18:49 +0545)]
sim: cgen: prep for inverting sim_cpu storage

Some common cgen code changes to allow cgen ports to invert their
sim_cpu storage one-by-one.

20 months agosim: riscv: invert sim_cpu storage
Mike Frysinger [Tue, 1 Nov 2022 06:15:34 +0000 (12:00 +0545)]
sim: riscv: invert sim_cpu storage

20 months agosim: pru: invert sim_cpu storage
Mike Frysinger [Tue, 1 Nov 2022 06:08:01 +0000 (11:53 +0545)]
sim: pru: invert sim_cpu storage

20 months agosim: example-synacor: invert sim_cpu storage
Mike Frysinger [Tue, 1 Nov 2022 05:57:11 +0000 (11:42 +0545)]
sim: example-synacor: invert sim_cpu storage

20 months agosim: h8300: invert sim_cpu storage
Mike Frysinger [Wed, 17 Aug 2016 02:50:25 +0000 (19:50 -0700)]
sim: h8300: invert sim_cpu storage

20 months agosim: m68hc11: invert sim_cpu storage
Mike Frysinger [Sat, 13 Aug 2016 18:40:31 +0000 (11:40 -0700)]
sim: m68hc11: invert sim_cpu storage

20 months agosim: mips: invert sim_cpu storage
Mike Frysinger [Sat, 13 Aug 2016 08:30:58 +0000 (01:30 -0700)]
sim: mips: invert sim_cpu storage

20 months agosim: v850: invert sim_cpu storage
Mike Frysinger [Sat, 13 Aug 2016 07:09:31 +0000 (15:09 +0800)]
sim: v850: invert sim_cpu storage

20 months agosim: mcore: invert sim_cpu storage
Mike Frysinger [Sat, 13 Aug 2016 07:00:33 +0000 (15:00 +0800)]
sim: mcore: invert sim_cpu storage

20 months agosim: aarch64: invert sim_cpu storage
Mike Frysinger [Sat, 13 Aug 2016 03:10:55 +0000 (11:10 +0800)]
sim: aarch64: invert sim_cpu storage

20 months agosim: microblaze: invert sim_cpu storage
Mike Frysinger [Sat, 13 Aug 2016 02:10:49 +0000 (10:10 +0800)]
sim: microblaze: invert sim_cpu storage

20 months agosim: avr: invert sim_cpu storage
Mike Frysinger [Fri, 12 Aug 2016 16:43:58 +0000 (00:43 +0800)]
sim: avr: invert sim_cpu storage

20 months agosim: moxie: invert sim_cpu storage
Mike Frysinger [Fri, 12 Aug 2016 16:37:34 +0000 (00:37 +0800)]
sim: moxie: invert sim_cpu storage

20 months agosim: msp430: invert sim_cpu storage
Mike Frysinger [Fri, 12 Aug 2016 16:28:11 +0000 (00:28 +0800)]
sim: msp430: invert sim_cpu storage

20 months agosim: ft32: invert sim_cpu storage
Mike Frysinger [Fri, 12 Aug 2016 16:07:45 +0000 (00:07 +0800)]
sim: ft32: invert sim_cpu storage

20 months agosim: bfin: invert sim_cpu storage
Mike Frysinger [Fri, 12 Aug 2016 15:43:27 +0000 (23:43 +0800)]
sim: bfin: invert sim_cpu storage

20 months agosim: sim_cpu: invert sim_cpu storage
Mike Frysinger [Fri, 12 Aug 2016 15:43:27 +0000 (23:43 +0800)]
sim: sim_cpu: invert sim_cpu storage

Currently all ports have to declare sim_cpu themselves in their
sim-main.h and then embed the common sim_cpu_base in it.  This
dynamic makes it impossible to share common object code among
multiple ports because the core data structure is always different.

Let's invert this relationship: common code declares sim_cpu, and
the port uses the new arch_data field for its per-cpu state.

This is the first in a series of changes: it adds a define to select
between the old & new layouts, then converts all the ports that don't
need custom state over to the new layout.  This includes mn10300 that,
while it defines custom fields in its cpu struct, never uses them.

20 months agosim: move register headers into sim/ namespace [PR sim/29869]
Mike Frysinger [Sat, 10 Dec 2022 11:33:58 +0000 (06:33 -0500)]
sim: move register headers into sim/ namespace [PR sim/29869]

These headers define the register numbers for each port to implement
the sim_fetch_register & sim_store_register interfaces.  While gdb
uses these, the APIs are part of the sim, not gdb.  Move the headers
out of the gdb/ include namespace and into sim/ instead.

20 months agosim: ppc: drop old dgen.c generator
Mike Frysinger [Wed, 9 Nov 2022 19:52:45 +0000 (02:52 +0700)]
sim: ppc: drop old dgen.c generator

The spreg.[ch] files live in the source tree now and are created
with the dgen.py script, so we don't need this old tool anymore.

20 months agosim: ppc: move spreg.[ch] files to the source tree
Mike Frysinger [Wed, 9 Nov 2022 19:52:45 +0000 (02:52 +0700)]
sim: ppc: move spreg.[ch] files to the source tree

Simplify the build by moving the generation of these files from
build-time (via dgen.c that we have to compile & execute on the
build system) to maintainer/release mode (via spreg-gen.py that
we only ever execute when the spreg table actually changes).  It
speeds up the build process and makes it easier for us to reason
about & review changes to the code generator.

The tool is renamed from "dgen" because it's hardcoded to only
generated spreg files.  It isn't a generalized tool for creating
lookup tables.

20 months agoAutomatic date update in version.in
GDB Administrator [Wed, 21 Dec 2022 00:00:53 +0000 (00:00 +0000)]
Automatic date update in version.in

20 months agoFix install-strip target
Hannes Domani [Mon, 19 Dec 2022 16:29:27 +0000 (17:29 +0100)]
Fix install-strip target

The libtool patch broke install-strip of gdb:

/bin/sh ../../gdb/../mkinstalldirs /src/gdb/inst/share/gdb/python/gdb
transformed_name=`t='s,y,y,'; \
                  echo gdb | sed -e "$t"` ; \
        if test "x$transformed_name" = x; then \
          transformed_name=gdb ; \
        else \
          true ; \
        fi ; \
        /bin/sh ../../gdb/../mkinstalldirs /src/gdb/inst/bin ; \
        /bin/sh ./libtool --mode=install STRIPPROG='strip' /bin/sh /src/gdb/gdb.git/install-sh -c -s \
                gdb \
                /src/gdb/inst/bin/$transformed_name ; \
        /bin/sh ../../gdb/../mkinstalldirs /src/gdb/inst/include/gdb ; \
        /usr/bin/install -c -m 644 jit-reader.h /src/gdb/inst/include/gdb/jit-reader.h
libtool: install: `/src/gdb/inst/bin/gdb' is not a directory
libtool: install: Try `libtool --help --mode=install' for more information.

Since INSTALL_PROGRAM_ENV is no longer at the beginning of the command, the
gdb executable is not installed with install-strip.

20 months agobfd: Discard symbol regardless of warning flag
Torbjörn SVENSSON [Sat, 17 Dec 2022 10:16:19 +0000 (11:16 +0100)]
bfd: Discard symbol regardless of warning flag

The discard of symbols should be performed whether the warning for
the discard is enabled or not.
Without this patch, ld would segfault in bfd_section_removed_from_list,
called in the if-statement right after this block, as the argument
isec->output_section can be NULL.

Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Co-Authored-By: Yvan ROUX <yvan.roux@foss.st.com>
20 months agoPR29915, bfdio.c does not compile with mingw.org's MinGW
Alan Modra [Tue, 20 Dec 2022 07:31:07 +0000 (18:01 +1030)]
PR29915, bfdio.c does not compile with mingw.org's MinGW

PR 29915
* configure.ac: Add AC_CHECK_DECLS test ___lc_codepage_func.
* configure: Regenerate.
* config.in: Regenerate.
* bfdio.c (___lc_codepage_func): Move declaration to..
(_bfd_real_fopen): ..here, and use !HAVE_DECL____LC_CODEPAGE_FUNC.

20 months agoRe: x86: remove i386-opc.c
Alan Modra [Tue, 20 Dec 2022 08:29:45 +0000 (18:59 +1030)]
Re: x86: remove i386-opc.c

Regen opcodes/po/POTFILES.in

20 months agosim: ppc: change spreg switch table generation to compile-time
Mike Frysinger [Wed, 9 Nov 2022 19:50:52 +0000 (02:50 +0700)]
sim: ppc: change spreg switch table generation to compile-time

Simplify the generator by always outputting the switch tables, and
leave the choice of whether to use them to the compiler via a -D
flag.

20 months agosim: dv-core: add hw_detach_address method [PR sim/25211]
Mike Frysinger [Thu, 10 Nov 2022 15:20:15 +0000 (22:20 +0700)]
sim: dv-core: add hw_detach_address method [PR sim/25211]

The core device has an attach address method as the root of the tree
which calls out to the sim API.  But it doesn't have a corresponding
detach method which means we just crash if anything tries to detach
itself from the core.  In practice, the m68hc11 is the only model
that actually tries to detach itself on the fly, so no one noticed
earlier.

With this in place, we can delete the existing detach code from the
m68hc11 model since it defaults to "passthru" callback which will in
turn call the dv-core detach, and they have the same behavior -- call
the sim core API to detach from the address space.

Bug: https://sourceware.org/PR25211

20 months agogprofng: PR29646 Various warnings
Vladimir Mezentsev [Mon, 19 Dec 2022 09:01:04 +0000 (01:01 -0800)]
gprofng: PR29646 Various warnings

gprofng/ChangeLog
2022-12-19  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

PR gprofng/29646
* common/core_pcbe.c: Fix missingReturn warning.
* libcollector/iolib.c: Fix -Waddress warnings.
* src/Settings.cc: Likewise.
* src/checks.cc: Likewise.
* libcollector/linetrace.c: Likewise.
* libcollector/iotrace.c: Fix va_end_missing error.
* libcollector/libcol_util.c: Fix uninitvar warning.
* src/Command.cc: Fix arrayIndexOutOfBounds error.
* src/Function.cc: Fix uninitStructMember warning.
* src/ipc.cc: Fix -Wwrite-strings warnings.

20 months agoAutomatic date update in version.in
GDB Administrator [Tue, 20 Dec 2022 00:00:54 +0000 (00:00 +0000)]
Automatic date update in version.in

20 months agoAvoid compiler warning in dwarf-do-refresh
Tom Tromey [Mon, 19 Dec 2022 16:46:54 +0000 (09:46 -0700)]
Avoid compiler warning in dwarf-do-refresh

The Emacs 28 compiler warns about dwarf-mode.el:

Warning (comp): dwarf-mode.el:180:32: Warning: Unused lexical argument `ignore'

This is easily fixed by prepending "_" to the parameter's name.

binutils/ChangeLog
2022-12-19  Tom Tromey  <tromey@adacore.com>

* dwarf-mode.el (dwarf-do-refresh): Avoid compiler warning.

20 months agoUse bool in bpstat
Tom Tromey [Fri, 11 Nov 2022 21:50:50 +0000 (14:50 -0700)]
Use bool in bpstat

This changes bpstat to use 'bool' rather than 'char', and updates the
uses.

20 months agoUse bool constants for value_print_options
Tom Tromey [Sun, 12 Jun 2022 20:13:22 +0000 (14:13 -0600)]
Use bool constants for value_print_options

This changes the uses of value_print_options to use 'true' and 'false'
rather than integers.

20 months agoRemove quick_symbol_functions::relocated
Tom Tromey [Thu, 20 Oct 2022 19:54:56 +0000 (13:54 -0600)]
Remove quick_symbol_functions::relocated

quick_symbol_functions::relocated is only needed for psymtabs, and
there it is only needed for Rust.  However, because we've switched the
DWARF reader away from psymtabs, this means there's no longer a need
for this method at all.

20 months agoRemove MI version 1
Tom Tromey [Wed, 10 Aug 2022 20:42:22 +0000 (14:42 -0600)]
Remove MI version 1

MI version 1 is long since obsolete.  Several years ago, I filed
PR mi/23170 for this.  I think it's finally time to remove this.
Any users of MI 1 can and should upgrade to a newer version.

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

20 months agoRemove vestiges of MI version 0
Tom Tromey [Wed, 10 Aug 2022 20:42:36 +0000 (14:42 -0600)]
Remove vestiges of MI version 0

I found a few vestiges of MI version 0 in the test suite.  This patch
removes them.

20 months agoTidy PR29893 and PR29908 fix
Alan Modra [Sun, 18 Dec 2022 02:37:51 +0000 (13:07 +1030)]
Tidy PR29893 and PR29908 fix

PR 29893
PR 29908
* dwarf.c (display_debug_addr): Combine dwarf5 unit_length checks.
Delete dead code.

20 months agogdb: fix command lookup in execute_command ()
Jan Vrany [Mon, 19 Dec 2022 11:24:36 +0000 (11:24 +0000)]
gdb: fix command lookup in execute_command ()

Commit b5661ff2 ("gdb: fix possible use-after-free when
executing commands") used lookup_cmd_exact () to lookup
command again after its execution to avoid possible
use-after-free error.

However this change broke test gdb.base/define.exp which
defines a post-hook for subcommand ("target testsuite").
In this case,  lookup_cmd_exact () returned NULL because
there's no command 'testsuite' in top-level commands.

This commit fixes this case by looking up the command again
using the original command line via lookup_cmd ().

Approved-By: Simon Marchi <simon.marchi@efficios.com>
20 months agoFix potential illegal memory accesses when parsing corrupt DWARF data.
Nick Clifton [Mon, 19 Dec 2022 11:13:46 +0000 (11:13 +0000)]
Fix potential illegal memory accesses when parsing corrupt DWARF data.

PR 29914
* dwarf.c (fetch_indexed_value): Fail if the section is not big
enough to contain a header size field.
(display_debug_addr): Fail if the computed address size is too big
or too small.

20 months agoNew Romainian translation for the GOLD subdirectory.
Nick Clifton [Mon, 19 Dec 2022 09:47:36 +0000 (09:47 +0000)]
New Romainian translation for the GOLD subdirectory.

20 months agogprofng/testsuite: skip Java test without JDK
Jan Beulich [Mon, 19 Dec 2022 08:36:21 +0000 (09:36 +0100)]
gprofng/testsuite: skip Java test without JDK

There's no point in even trying the Java test when gprofng was built
without Java support, and when the building of the constituents of the
testcase also would fail. On such systems this converts the respective
tests from "unresolved" to "unsupported", making the overall testsuite
run no longer report failure just because of this.

20 months agogprofng/testsuite: eliminate bogus casts
Jan Beulich [Mon, 19 Dec 2022 08:36:00 +0000 (09:36 +0100)]
gprofng/testsuite: eliminate bogus casts

Casting pointers to unsigned int is generally problematic and hence
compilers tend to warn about such. While here they're used only in
fprintf(), it still seems better to omit such casts, even if only to
avoid setting bad precedents.

20 months agogprofng/testsuite: correct line continuation in endcases.c
Jan Beulich [Mon, 19 Dec 2022 08:35:37 +0000 (09:35 +0100)]
gprofng/testsuite: correct line continuation in endcases.c

A backslash used to indicate line continuation (in a macro definition
here) is not supposed to be followed by blanks or other white space; the
end-of-line indicator is to follow immediately.

20 months agogprofng/testsuite: correct names for signal handling tests
Jan Beulich [Mon, 19 Dec 2022 08:35:18 +0000 (09:35 +0100)]
gprofng/testsuite: correct names for signal handling tests

The signal handling tests spend most of their time in the signal
handlers, and hence for profile output to match anything in program
output, the respective name fields need to hold the handler function
names. This converts both respective tests from "unresolved" to actually
succeeding.

20 months agogprofng/testsuite: adjust linking of synprog
Jan Beulich [Mon, 19 Dec 2022 08:23:34 +0000 (09:23 +0100)]
gprofng/testsuite: adjust linking of synprog

In order for so_syn.so and so_syx.so to be able to access the main
program's "testtime" variable, that variable needs exposing in the
dynamic symbol table. Since this is a test program only, do it the brute
force way and simply expose all global symbols.

20 months agoArm: break gas dependency on libopcodes
Jan Beulich [Mon, 19 Dec 2022 08:23:13 +0000 (09:23 +0100)]
Arm: break gas dependency on libopcodes

gas doesn't use anything from libopcodes (anymore?) - suppress linking
in that library.

20 months agox86: omit Cpu prefixes from opcode table
Jan Beulich [Mon, 19 Dec 2022 08:22:33 +0000 (09:22 +0100)]
x86: omit Cpu prefixes from opcode table

These enumerators can be used in only one specific field, and hence the
Cpu prefix isn't needed ther for disambiguation / name space separation.

20 months agoAutomatic date update in version.in
GDB Administrator [Mon, 19 Dec 2022 00:01:23 +0000 (00:01 +0000)]
Automatic date update in version.in

20 months agoComment bfd_get_section_limit_octets and bfd_get_section_alloc_size
Alan Modra [Sun, 18 Dec 2022 02:34:13 +0000 (13:04 +1030)]
Comment bfd_get_section_limit_octets and bfd_get_section_alloc_size

* bfd.c (bfd_get_section_limit_octets): Add comment.
(bfd_get_section_alloc_size): Likewise.
* libbfd.c (_bfd_generic_get_section_contents): Use
bfd_get_section_limit_octets.
* section.c (bfd_get_section_contents): Likewise.
* bfd-in2.h: Regenerate.

20 months agold bootstrap test in build dir with path containing symlinks
Alan Modra [Sun, 18 Dec 2022 02:24:49 +0000 (12:54 +1030)]
ld bootstrap test in build dir with path containing symlinks

This allows the bootstrap test to run if you have a symlink somewhere
in the build path directory.  $ld depends on $base_dir which is set
via tcl [pwd], collapsing the symlink like /usr/bin/pwd, while $objdir
contains the symlink.

* testsuite/ld-bootstrap/bootstrap.exp: Normalize paths when
checking for ld build directory.

20 months agoUpdate gdb/NEWS after GDB 13 branch creation.
Joel Brobecker [Sun, 18 Dec 2022 04:38:25 +0000 (08:38 +0400)]
Update gdb/NEWS after GDB 13 branch creation.

This commit a new section for the next release branch, and renames
the section of the current branch, now that it has been cut.

20 months agoBump version to 14.0.50.DATE-git.
Joel Brobecker [Sun, 18 Dec 2022 04:34:03 +0000 (08:34 +0400)]
Bump version to 14.0.50.DATE-git.

Now that the GDB 13 branch has been created,
this commit bumps the version number in gdb/version.in to
14.0.50.DATE-git

For the record, the GDB 13 branch was created
from commit 71c90666e601c511a5f495827ca9ba545e4cb463.

Also, as a result of the version bump, the following changes
have been made in gdb/testsuite:

* gdb.base/default.exp: Change $_gdb_major to 14.

20 months agoAutomatic date update in version.in
GDB Administrator [Sun, 18 Dec 2022 00:01:10 +0000 (00:01 +0000)]
Automatic date update in version.in