Commit Graph

103555 Commits

Author SHA1 Message Date
Shahab Vahedi
981b570a53 gdbserver: Remove unused argument in register_data()
The register_data() function in gdbserver/regcache.cc has an
input argument called "fetch".  This argument is not used by this
static function at all.  Therefore, it is time to get rid of it.

gdbserver/ChangeLog:

	* regcache.cc (register_data): Remove unused "fetch" argument.
2020-10-06 17:23:22 +02:00
Alex Coplan
05cfb0d8cc aarch64: Fix bogus type punning in parse_barrier() [PR26699]
This patch fixes a bogus use of type punning in parse_barrier() which
was causing an assembly failure on big endian LP64 hosts when attempting
to assemble "isb sy" for AArch64.

The type of the entries in aarch64_barrier_opt_hsh is
aarch64_name_value_pair. We were incorrectly casting this to the
locally-defined asm_barrier_opt which has a wider type (on LP64) for the
second member. This happened to work on little-endian hosts but fails on
LP64 big endian.

The fix is to use the correct type in parse_barrier(). This makes the
locally-defined asm_barrier_opt redundant, so remove it.

gas/ChangeLog:

	* config/tc-aarch64.c (asm_barrier_opt): Delete.
	(parse_barrier): Fix bogus type punning.
	* testsuite/gas/aarch64/system.d: Update disassembly.
	* testsuite/gas/aarch64/system.s: Add isb sy test.
2020-10-06 15:56:44 +01:00
Nick Clifton
0ec992e664 Fix a bug in objcopy/strip's ability to merge notes in multiple same-named sections.
* objcopy.c (copy_object): Compare input and output sections by
	pointer rather than name.
2020-10-06 15:49:40 +01:00
Gary Benson
3089759191 Fix gdb.base/list.exp with Clang
Two subtests of gdb.base/list.exp failed when built with Clang
because the unused function "unused" was optimized out.  This
commit adds __attribute__ ((used)) to both definitions.

gdb/testsuite/ChangeLog:

	* gdb.base/list0.c (unused): Add __attribute__ ((used)).
	* gdb.base/list1.c (unused): Likewise.
2020-10-06 15:08:37 +01:00
Gary Benson
ced4a4c1cc Fix gdb.base/list-ambiguous.exp with Clang
The ambiguous variable parts of gdb.base/list-ambiguous.exp failed
when built with Clang because the variable in question was unused
and was optimized out.  This commit adds __attribute__ ((used)) to
both definitions.

gdb/testsuite/ChangeLog:

	* gdb.base/list-ambiguous0.c (ambiguous_var): Add
	__attribute__ ((used)).
	* gdb.base/list-ambiguous1.c (ambiguous_var): Likewise.
2020-10-06 15:08:37 +01:00
Sergey Belyashav
0ae9445d52 A small set of code improvements for the Z80 assembler.
PR 26692
	* config/tc-z80.c (md_begin): Ensure that xpressions are empty
	before using them.
	(unify_indexed): Likewise.
	(z80_start_line_hook): Improve hash sign handling when SDCC
	compatibility mode enabled.
	(md_parse_exp_not_indexed): Improve indirect addressing
	detection.
	(md_pseudo_table): Accept hd64 as an alias of z810.
2020-10-06 11:58:57 +01:00
Andrew Burgess
043f5c63f0 sim: Fix autoreconf errors in sim/ directory
Run autoreconf in sim/ directory and you'll see some errors.  The
problem is that autoreconf (a perl script) does not evaluate the value
passed as an argument to AC_CONFIG_AUX_DIR, so something like:

  AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../..)

does not do the right thing inside autoreconf, my understanding is
that changing to something like this is fine:

  AC_CONFIG_AUX_DIR(../..)

the generated configure seems to check the value passed, and the value
passed relative to the source directory, so I think we get basically
the same behaviour as before.

sim/testsuite/ChangeLog:

	* configure: Regnerate.
	* configure.ac (AC_CONFIG_AUX_DIR): Update.

sim/testsuite/d10v-elf/ChangeLog:

	* configure: Regnerate.
	* configure.ac (AC_CONFIG_AUX_DIR): Update.

sim/testsuite/frv-elf/ChangeLog:

	* configure: Regnerate.
	* configure.ac (AC_CONFIG_AUX_DIR): Update.

sim/testsuite/m32r-elf/ChangeLog:

	* configure: Regnerate.
	* configure.ac (AC_CONFIG_AUX_DIR): Update.

sim/testsuite/mips64el-elf/ChangeLog:

	* configure: Regnerate.
	* configure.ac (AC_CONFIG_AUX_DIR): Update.
2020-10-06 11:29:44 +01:00
Andrew Burgess
31a8f60f2f gdb: handle unmapped overlays in find_pc_line
I configured and built an m32r-elf toolchain, and ran the
gdb.base/overlays.exp test.  I saw a couple of errors where GDB would
place a breakpoint in the wrong place when placing a breakpoint using
a function name, for example in this function:

/* 1 */  int foo (int x)
/* 2 */  {
/* 3 */    if (x)
/* 4 */      return some_global_variable;
/* 5 */    else
/* 6 */      return 0;
/* 7 */  }

GDB would place the breakpoint on line 2 instead of line 3.  The issue
is that GDB was failing to skip the prologue correctly.

The reason for this is that in m32r-tdep.c:m32r_skip_prologue, we
first use find_pc_partial_function to find the functions start and end
addresses, then we use find_pc_line to find the start and end of the
first line of the function.

Currently, if the pc value passed to find_pc_partial_function is in an
unmapped overlay then the function start and end addresses that are
returned are also the unmapped addresses.

However, this is not the case for find_pc_line, here, if the address
passed in is in an unmapped overlay then we still get back a
symtab_and_line describing the mapped location.

What this means is that if a function's mapped location is 0x100 ->
0x120, and its unmapped locations is 0x400 -> 0x420 then we think that
the start/end is 0x400 and 0x420 respectively, but the first line
might run from 0x100 to 0x108.

GDB will then try to scan the prologue starting from 0x400 and ending
at 0x108, this immediately gives up as it thinks we have gone past the
end of the prologue and the breakpoint is placed at 0x400.

In this commit I propose that we change find_pc_line to return
addresses in the unmapped range if the address passed in is already in
the unmapped range.  Now the first line will appear to run from 0x400
to 0x408 and the prologue scanner will correctly find the end of the
prologue.

With this commit gdb.base/overlays.exp now completely passes with an
m32r-elf toolchain.

gdb/ChangeLog:

	* symtab.c (find_pc_line): Return unmapped addresses when the
	requested address is also unmapped.
2020-10-06 11:18:37 +01:00
Andrew Burgess
ed3bdac42c gdb/testsuite: allow gdb.base/overlays.exp to compile for m32r
The gdb.base/overlays.exp test is only currently supported on m32r
baremetal targets, however, when I configure a toolchain for m32r-elf
the test does not compile.

This commit updates the linker script, fixes some TCL errors in the
exp file, and adds some missing includes to the source file so that
the test does compile.

With this test, when run against an m32r-elf toolchain the test mostly
passes, but there are a couple of failures, these are GDB issues and
will be addressed in a later commit.

gdb/testsuite/ChangeLog:

	* gdb.base/m32r.ld: Remove SEARCH_DIR line.  Add MEMORY regions,
	make use of regions throughout.
	* gdb.base/overlays.exp: Enclose string with variableds in "..",
	not {...}.
	* gdb.base/ovlymgr.c: Add 'string.h' and 'stdlib.h' includes.
2020-10-06 11:18:37 +01:00
Alan Modra
3ce6300ea8 Fix gas sh-link-zero test for hppa64-hpux
* testsuite/gas/elf/sh-link-zero.s: Don't start directives in
	first column.  Don't use numeric labels.
2020-10-06 20:22:43 +10:30
Brandon Bergren
6afcdeb358 PR26667, Add powerpc64le-*-freebsd* support
PR 26667
bfd/
	* config.bfd: Add powerpc64le-*-freebsd*.
	* configure.ac: Add powerpc_elf64_fbsd_le_vec.
	* elf64-ppc.c (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME): Define for
	freebsd.
	* targets.c (powerpc_elf64_fbsd_le_vec): Declare.
	(_bfd_target_vector): Add it.
	* configure: Regenerate.
ld/
	* Makefile.am (ALL_64_EMULATION_SOURCES): Add eelf64lppc_fbsd.c.
	Include $(DEPDIR)/eelf64lppc_fbsd.Pc.
	* configure.tgt: Add powerpc64le-*-freebsd*.
	* emulparams/elf64lppc_fbsd.sh: New file.
	* Makefile.in: Regenerate.
	* po/BLD-POTFILES.in: Regenerate.
2020-10-06 17:09:27 +10:30
GDB Administrator
0897537869 Automatic date update in version.in 2020-10-06 00:00:09 +00:00
Simon Marchi
9e6dbd8b54 gdb: sync tui header files in HFILES_NO_SRCDIR
I noticed that tui/tui-windata.h didn't exist anymore, and that
tui/tui-out.h wasn't listed.  Fix that.

gdb/ChangeLog:

	* Makefile.in (HFILES_NO_SRCDIR): Remove tui/tui-windata.h, add
	tui/tui-out.h.

Change-Id: Ic75cc68432b90ba5be857a2852ad52dea326fe36
2020-10-05 12:37:23 -04:00
Simon Marchi
a1d217e844 gdb: TYPE_VECTOR -> type::is_vector in amd64-windows-tdep.c
I get this build failure:

      CXX    amd64-windows-tdep.o
    cc1plus: warning: command-line option '-Wmissing-prototypes' is valid for C/ObjC but not for C++
    /home/smarchi/src/binutils-gdb/gdb/amd64-windows-tdep.c: In function 'return_value_convention amd64_windows_return_value(gdbarch*, value*, type*, regcache*, gdb_byte*, const gdb_byte*)':
    /home/smarchi/src/binutils-gdb/gdb/amd64-windows-tdep.c:374:6: error: 'TYPE_VECTOR' was not declared in this scope
      374 |  if (TYPE_VECTOR (type) && len == 16)
          |      ^~~~~~~~~~~

TYPE_VECTOR was removed in favor of the type::is_vector method.

gdb/ChangeLog:

	* amd64-windows-tdep.c (amd64_windows_return_value): Use
	type::is_vector instead of TYPE_VECTOR.

Change-Id: I0ce26c3f7a33625761a8dba351c3158464f21b01
2020-10-05 12:22:39 -04:00
Nick Clifton
1f1845d435 Fix compile time error building windmc, detected by gcc 11.
PR 26698
	* windmc.c (mc_unify_path): Fix typo checking character at end of
	pathname.
2020-10-05 16:09:00 +01:00
Przemyslaw Wirkus
f9b1d75e91 [PATCH][GAS][AArch64] Update Cortex-X1 feature flags
This is feature flags update for Cortex-X1 CPU.
For more information about this processor, see [0].

[0] : https://www.arm.com/products/cortex-x

gas/ChangeLog:

2020-10-05  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* config/tc-aarch64.c: Update Cortex-X1 feature flags.
2020-10-05 15:43:41 +01:00
Przemyslaw Wirkus
a417e439c2 [PATCH][GAS][arm] Update Cortex-X1 feature flags
This is feature flags update for Cortex-X1 CPU.
For more information about this processor, see [0].

[0] : https://www.arm.com/products/cortex-x

gas/ChangeLog:

2020-10-05  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* config/tc-arm.c: Update Cortex-X1 feature flags.
2020-10-05 15:43:32 +01:00
Nick Clifton
c0b3134417 Add NetBSD AArch64 Little Endian and Big Endian BFD support.
bfd      * config.bfd (aarch64-*-netbsd*, aarch64_be-*-netbsd*): Add target.
2020-10-05 14:56:42 +01:00
Kamil Rytarowski
cc8b27f89c Add NetBSD AArch64 GAS support.
gas	* configure.tgt (aarch64*-*-netbsd*): Add target.
2020-10-05 14:54:00 +01:00
Samanta Navarro
0cc79db2b6 Fix spelling mistakes 2020-10-05 14:20:15 +01:00
Simon Marchi
7d1441178a gdb: avoid unnecessary string copy in auto_load_objfile_script_1
Assigning the result of STRIP_DRIVE_SPEC to an std::string creates an
unnecessary copy of the string.  STRIP_DRIVE_SPEC is defined as:

  #define STRIP_DRIVE_SPEC(f) ((f) + 2)

So if it is passed a "const char *", it returns a "const char *".  We
could use a "const char *" intermediary variable instead of an
std::string, or (as implemented in this patch) just use it directly in
the concatenation right after.

gdb/ChangeLog:

	* auto-load.c (auto_load_objfile_script_1): Don't use
	debugfile_holder as temporary variable when stripping drive
	letter.

Change-Id: If2ccc7a156b22100754d9cdf6778ac7eeb93da4c
2020-10-05 09:03:09 -04:00
T.K. Chia
6d96a5946d i386: Allow non-absolute segment values for lcall/ljmp
Allow an unresolved or non-absolute symbol as the segment operand of an
immediate far jump (`ljmp SEG, OFF') or far call (`lcall SEG, OFF').

gas/

2020-10-05  T.K. Chia  <u1049321969@caramail.com>

	PR gas/26694
	* NEWS: Updated for i386 lcall and ljmp change.
	* config/tc-i386.c (output_interseg_jump): Allow non-absolute
	segment operand for immediate lcall and ljmp.
	* testsuite/gas/i386/jump.d,
	* testsuite/gas/i386/jump.s,
	* testsuite/gas/i386/jump16.d,
	* testsuite/gas/i386/jump16.e,
	* testsuite/gas/i386/jump16.s: Add tests for non-absolute
	segment operand for immediate ljmp.

ld/

2020-10-05  T.K. Chia  <u1049321969@caramail.com>

	PR gas/26694
	* testsuite/ld-i386/ljmp.s,
	* testsuite/ld-i386/ljmp1.d,
	* testsuite/ld-i386/ljmp1.s,
	* testsuite/ld-i386/ljmp2.d,
	* testsuite/ld-i386/ljmp2.s,
	* testsuite/ld-x86-64/ljmp1.d,
	* testsuite/ld-x86-64/ljmp2.d: New testcases.
	* testsuite/ld-i386/i386.exp,
	* testsuite/ld-x86-64/x86-64.exp: Run them.
2020-10-05 05:58:33 -07:00
Nick Clifton
983d925db6 Update the BFD linker so that it deprecates grouped short options.
* lexsup.c (parse_args): Generate an error or warning message when
	multiple short options are used together.
2020-10-05 13:53:59 +01:00
Hannes Domani
cd096ec85f Fix function argument and return value locations
Fixes these testsuite fails on Windows:
FAIL: gdb.base/callfuncs.exp: p t_float_complex_values(fc1, fc2)
FAIL: gdb.base/callfuncs.exp: p t_float_complex_many_args(fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4)
FAIL: gdb.base/callfuncs.exp: noproto: p t_float_complex_values(fc1, fc2)
FAIL: gdb.base/callfuncs.exp: noproto: p t_float_complex_many_args(fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4)
FAIL: gdb.base/call-sc.exp: p/c fun(); call call-sc-tld
FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tld
FAIL: gdb.base/call-sc.exp: zed L for return; return call-sc-tld
FAIL: gdb.base/call-sc.exp: return foo; return call-sc-tld
FAIL: gdb.base/call-sc.exp: return foo; synchronize pc to main() for 'call-sc-tld'
FAIL: gdb.base/call-sc.exp: return foo; synchronize pc to main() for 'call-sc-tld'
FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tld
FAIL: gdb.base/call-sc.exp: zed L for finish; return call-sc-tld
FAIL: gdb.base/call-sc.exp: finish foo; return call-sc-tld (the program is no longer running)
FAIL: gdb.base/call-sc.exp: value foo finished; return call-sc-tld

For function arguments (callfuncs.exp), only TYPE_CODE_COMPLEX was
missing in the types passed via integer registers.

For return values, there were a lot more issues:
- TYPE_CODE_DECFLOAT is NOT returned via XMM0.
- long double is NOT returned via XMM0.
- but __int128 IS returned via XMM0.
- the comments for TYPE_CODE_FLT state that __m128, __m128i and __m128d are
  returned by XMM0, and this is correct, but it doesn't actually check for
  them, because they are TYPE_CODE_ARRAY with TYPE_VECTOR

So I had to add TYPE_CODE_DECFLOAT to the arguments passed via XMM register,
but I had to remove it from the values returned via XMM0 register.

gdb/ChangeLog:

2020-10-05  Hannes Domani  <ssbssa@yahoo.de>

	* amd64-windows-tdep.c (amd64_windows_passed_by_integer_register):
	Add TYPE_CODE_COMPLEX.
	(amd64_windows_return_value): Fix types returned via XMM0.

gdb/testsuite/ChangeLog:

2020-10-05  Hannes Domani  <ssbssa@yahoo.de>

	* gdb.base/call-sc.c: Fix return struct on stack test case.
	* gdb.base/call-sc.exp: Likewise.
2020-10-05 14:30:29 +02:00
H.J. Lu
5b316d90e4 x86-64: Always display suffix for %LQ in 64bit
In 64bit, assembler generates a warning for "sysret":

$ echo sysret | as --64 -o x.o -
{standard input}: Assembler messages:
{standard input}:1: Warning: no instruction mnemonic suffix given and no register operands; using default for `sysret'

Always display suffix for %LQ in 64bit to display "sysretl".

gas/

	PR binutils/26704
	* testsuite/gas/i386/noreg64-data16.d: Expect sysretl instead of
	sysret.
	* testsuite/gas/i386/noreg64.d: Likewise.
	* testsuite/gas/i386/x86-64-intel64.d: Likewise.
	* testsuite/gas/i386/x86-64-opcode.d: Likewise.

opcodes/

	PR binutils/26704
	* i386-dis.c (putop): Always display suffix for %LQ in 64bit.
2020-10-05 05:28:12 -07:00
H.J. Lu
0e9f3bf126 x86: Clear modrm if not needed
The MODRM byte can be checked to display the instruction name only if the
MODRM byte needed.  Clear modrm if the MODRM byte isn't needed so that
modrm field checks in putop like, modrm.mod == N with N != 0, can be done
without checking need_modrm.

gas/

	PR binutils/26705
	* testsuite/gas/i386/x86-64-suffix.s: Add "mov %rsp,%rbp" before
	sysretq.
	* testsuite/gas/i386/x86-64-suffix-intel.d: Updated.
	* testsuite/gas/i386/x86-64-suffix.d: Likewise.

opcodes/

	PR binutils/26705
	* i386-dis.c (print_insn): Clear modrm if not needed.
	(putop): Check need_modrm for modrm.mod != 3.  Don't check
	need_modrm for modrm.mod == 3.
2020-10-05 05:23:39 -07:00
Alan Hayward
b58e7f729e Add Luis Machado to AArch64/ARM GDB maintainers
gdb/ChangeLog:

	* MAINTAINERS (Responsible Maintainers): Add Luis Machado to
	  AArch64/ARM maintainers.
2020-10-05 12:28:38 +01:00
Nick Clifton
b71702f1c0 GAS: Update the .section directive so that a numeric section index can be provided when the "o" flag is used.
PR 26253
gas	* config/obj-elf.c (obj_elf_section): Accept a numeric value for
	the "o" section flag.  Interpret it as a section index.  Allow an
	index of zero.
	* doc/as.texi: Document the new behaviour.
	* NEWS: Mention the new feature.  Tidy entries.
	* testsuite/gas/elf/sh-link-zero.s: New test.
	* testsuite/gas/elf/sh-link-zero.d: New test driver.
	* testsuite/gas/elf/elf.exp: Run the new test.
	* testsuite/gas/elf/section21.l: Updated expected assembler
	output.

bfd	* elf.c (_bfd_elf_setup_sections): Do not complain about an
	sh_link value of zero when the SLF_LINK_ORDER flag is set.
	(assign_section_numbers): Likewise.
2020-10-05 10:40:07 +01:00
GDB Administrator
1ba0655539 Automatic date update in version.in 2020-10-05 00:00:07 +00:00
Simon Marchi
8d378f27ba gdb: add doc for "set/show debug event-loop"
I forgot that "set/show debug" commands are listed in the doc and in
NEWS, so here they are.

gdb/doc/ChangeLog:

	* gdb.texinfo (Debugging Output): Add set/show debug event-loop.

gdb/ChangeLog:

	* NEWS: Mention set/show debug event-loop.

Change-Id: If30b80177049006578280a06912ee2b97bd03a75
2020-10-04 12:41:56 -04:00
Simon Marchi
7b085b1c1c gdb/doc: space out list entries, fix one type
I want to add an item to this list, but it's so packed I have trouble
finding where one item ends and the next starts.  Add a few empty lines
to make it a bit more readable.

Doing this, I also noticed that an "aix-thread" should in fact be
"aix-solib".

gdb/doc/ChangeLog:

	* gdb.texinfo (Debugging Output): Add empty lines, fix typo.

Change-Id: I7ef211f9e3988cfbc6ec94124d23a5f2412f3c82
2020-10-04 12:36:02 -04:00
GDB Administrator
37df08e2fe Automatic date update in version.in 2020-10-04 00:00:07 +00:00
H.J. Lu
b3a3496f83 x86: Update register operand check for AddrPrefixOpReg
When the address size prefix applies to both the memory and the register
operand, we need to extract the address size prefix from the register
operand if the memory operand has no real registers, like symbol, DISP
or symbol(%rip).

NB: GCC always generates symbol(%rip) for RIP-relative addressing for
both x32 and x86-64.

Move the .code16 tests in movdir.s to movdir-16bit to show the correct
output from objdump.

	PR gas/26685
	* config/tc-i386.c (process_suffix): Also check the register
	operand for the address size prefix if the memory operand has
	no real registers.
	* testsuite/gas/i386/enqcmd-16bit.d: New file.
	* testsuite/gas/i386/enqcmd-16bit.s: Likewise.
	* testsuite/gas/i386/movdir-16bit.d: Likewise.
	* testsuite/gas/i386/movdir-16bit.s: Likewise.
	* testsuite/gas/i386/enqcmd.s: Add tests with symbol and DISP.
	* testsuite/gas/i386/x86-64-enqcmd.s: Likewise.
	* testsuite/gas/i386/x86-64-movdir.s: Likewise.
	* testsuite/gas/i386/movdir.s: Add tests with symbol and DISP.
	Remove the .code16 test.
	* testsuite/gas/i386/i386.exp: Run movdir-16bit and enqcmd-16bit.
	* testsuite/gas/i386/x86-64-enqcmd-intel.d: Updated.
	* testsuite/gas/i386/x86-64-enqcmd.d: Likewise.
	* testsuite/gas/i386/x86-64-movdir-intel.d: Likewise.
	* testsuite/gas/i386/x86-64-movdir.d: Likewise.
	* testsuite/gas/i386/enqcmd-intel.d: Likewise.
	* testsuite/gas/i386/enqcmd.d: Likewise.
	* testsuite/gas/i386/movdir-intel.d: Likewise.
	* testsuite/gas/i386/movdir.d: Likewise.
	* testsuite/gas/i386/x86-64-enqcmd-intel.d: Likewise.
	* testsuite/gas/i386/x86-64-enqcmd.d: Likewise.
	* testsuite/gas/i386/x86-64-movdir-intel.d: Likewise.
	* testsuite/gas/i386/x86-64-movdir.d: Likewise.
2020-10-03 04:24:05 -07:00
GDB Administrator
1fa1262d5a Automatic date update in version.in 2020-10-03 00:00:06 +00:00
Tom Tromey
d551991310 Unconditionally use REG_EXTENDED
skip.c checks whether REG_EXTENDED is defined -- but this should
always be available, and is used unconditionally in other parts of
gdb.  This patch removes this check, then further simplifies this
code, removing a declaration and a repeated assertion.

2020-10-02  Tom Tromey  <tromey@adacore.com>

	* skip.c (skiplist_entry::skiplist_entry): Unconditionally use
	REG_EXTENDED.
2020-10-02 14:08:28 -06:00
Przemyslaw Wirkus
42c36b7366 arm: add support for Cortex-A78 and Cortex-A78AE
bfd/ChangeLog:

2020-09-30  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* cpu-arm.c: Add cortex-a78 and cortex-a78ae.

gas/ChangeLog:

2020-09-30  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* config/tc-arm.c: Add cortex-a78 and cortex-a78ae cores.
	* doc/c-arm.texi: Update docs.
	* NEWS: Update news.
	* testsuite/gas/arm/cpu-cortex-a78.d: New test.
	* testsuite/gas/arm/cpu-cortex-a78ae.d: New test.
2020-10-02 20:44:37 +01:00
Simon Marchi
18b67edc2c gdb: fix some inferior_created observer signatures
I just noticed that in a7aba2668a ("gdb: remove arguments from
inferior_created observable"), I forgot to update
aix_thread_inferior_created and procfs_inferior_created, which are in
files I can't compile.

Remove the parameters from aix_thread_inferior_created.  And simply
remove procfs_inferior_created, since it's empty anyway.

gdb/ChangeLog:

	* aix-thread.c (aix_thread_inferior_created): Remove parameters.
	* procfs.c (procfs_inferior_created): Remove.
	(_initialize_procfs): Don't register procfs_inferior_created.

Change-Id: Ifc7def7c096332033b5d466d32cb873d1df18c2c
2020-10-02 15:22:32 -04:00
Simon Marchi
6b01403b25 gdb: add debug prints in event loop
Add debug printouts about event loop-related events:

 - When a file descriptor handler gets invoked
 - When an async event/signal handler gets invoked

gdb/ChangeLog:

	* async-event.c (invoke_async_signal_handlers): Add debug
	print.
	(check_async_event_handlers): Likewise.
	* event-top.c (show_debug_event_loop): New function.
	(_initialize_event_top): Register "set debug event-loop"
	setting.

gdbserver/ChangeLog:

	* server.cc (handle_monitor_command): Handle "set
	debug-event-loop".
	(captured_main): Handle "--debug-event-loop".
	(monitor_show_help): Mention new setting.
	(gdbserver_usage): Mention new flag.

gdbsupport/ChangeLog:

	* event-loop.h (debug_event_loop): New variable declaration.
	(event_loop_debug_printf_1): New function declaration.
	(event_loop_debug_printf): New macro.
	* event-loop.cc (debug_event_loop): New variable.
	(handle_file_event): Add debug print.
	(event_loop_debug_printf_1): New function.

Change-Id: If78ed3a69179881368e7895b42940ce13b6a1a05
2020-10-02 14:47:42 -04:00
Simon Marchi
ba98841943 gdb: move debug_prefixed_vprintf here
The following patch needs to output debug prints from gdbsupport code.
Move debug_prefixed_vprintf so that it is possible to use it from
gdbsupport.

gdb/ChangeLog:

	* debug.c (debug_prefixed_vprintf): Move to gdbsupport.
	* debug.h: Remove.
	* infrun.c: Include gdbsupport/common-debug.h.
	* linux-nat.c: Likewise.

gdbsupport/ChangeLog:

	* common-debug.cc (debug_prefixed_vprintf): Move here.
	* common-debug.h (debug_prefixed_vprintf): Move here.

Change-Id: I5170065fc10a7a49c0f1bba67c691decb2cf3bcb
2020-10-02 14:47:26 -04:00
Simon Marchi
db20ebdfae gdb: give names to async event/signal handlers
Assign names to async event/signal handlers.  They will be used in debug
messages when file handlers are invoked.

Unlike in the previous patch, the names are not copied in the structure,
since we don't need to (all names are string literals for the moment).

gdb/ChangeLog:

	* async-event.h (create_async_signal_handler): Add name
	parameter.
	(create_async_event_handler): Likewise.
	* async-event.c (struct async_signal_handler) <name>: New field.
	(struct async_event_handler) <name>: New field.
	(create_async_signal_handler): Assign name.
	(create_async_event_handler): Assign name.
	* event-top.c (async_init_signals): Pass name when creating
	handler.
	* infrun.c (_initialize_infrun): Likewise.
	* record-btrace.c (record_btrace_push_target): Likewise.
	* record-full.c (record_full_open): Likewise.
	* remote-notif.c (remote_notif_state_allocate): Likewise.
	* remote.c (remote_target::open_1): Likewise.
	* tui/tui-win.c (tui_initialize_win): Likewise.

Change-Id: Icd9d9f775542ae5fc2cd148c12f481e7885936d5
2020-10-02 14:47:06 -04:00
Simon Marchi
2554f6f564 gdb: give names to event loop file handlers
Assign names to event loop file handlers.  They will be used in debug
messages when file handlers are invoked.

In GDB, each UI used to get its own unique number, until commit
cbe256847e ("Remove ui::num").  Re-introduce this field, and use it to
make a unique name for the handler.

I'm not too sure what goes on in ser-base.c, all I know is that it's
what is used when debugging remotely.  I've just named the main handler
"serial".  It would be good to have unique names there too.  For instance
when debugging with two different remote connections, we'd ideally want
the handlers to have unique names.  I didn't do it in this patch though.

gdb/ChangeLog:

	* async-event.c (initialize_async_signal_handlers): Pass name to
	add_file_handler
	* event-top.c (ui_register_input_event_handler): Likewise.
	* linux-nat.c (linux_nat_target::async): Likewise.
	* run-on-main-thread.c (_initialize_run_on_main_thread):
	Likewise
	* ser-base.c (reschedule): Likewise.
	(ser_base_async): Likewise.
	* tui/tui-io.c: Likewise.
	* top.h (struct ui) <num>: New field.
	* top.c (highest_ui_num): New variable.
	(ui::ui): Initialize num.

gdbserver/ChangeLog:

	* linux-low.cc (linux_process_target::async): Pass name to
	add_file_handler.
	* remote-utils.cc (handle_accept_event): Likewise.
	(remote_open): Likewise.

gdbsupport/ChangeLog:

	* event-loop.h (add_file_handler): Add "name" parameter.
	* event-loop.cc (struct file_handler) <name>: New field.
	(create_file_handler): Add "name" parameter, assign it to file
	handler.
	(add_file_handler): Add "name" parameter.

Change-Id: I9f1545f73888ebb6778eb653a618ca44d105f92c
2020-10-02 14:46:56 -04:00
Simon Marchi
a7aba2668a gdb: remove arguments from inferior_created observable
I noticed that non of the listeners of the inferior_created observable
used either of the arguments.  Remove them.  This in turn allows
removing the target parameter of post_create_inferior.

Tested only by rebuilding.

gdb/ChangeLog:

	* observable.h <inferior_created>: Remove parameters.  Update all
	listeners.
	* inferior.h (post_create_inferior): Remove target parameter.
	Update all callers.

Change-Id: I8944cefdc4447ed5347dc927b75abf1e7a0e27e6
2020-10-02 10:46:38 -04:00
Gary Benson
3ee6f75d05 Fix spelling mistake in gdb/testsuite/README.
This commit corrects the spelling mistake detailed below.

gdb/testsuite/ChangeLog:

	* README: Fix "paralell".
2020-10-02 12:16:55 +01:00
Nick Clifton
7bd766ccd8 Fix the mve-vcvtne-it assembler test for the arm-*-pe targets.
* testsuite/gas/arm/mve-vcvtne-it.d: Allow for padding inserted by
	PE based targets.
2020-10-02 11:14:57 +01:00
H.J. Lu
7026832e52 Allow note sections to be discarded when they are linked to another discarded secction.
PR 26681
bfd	* elflink.c (bfd_elf_gc_sections): Do not arbitrarily keep note
	sections which are linked to another section.

ld	* testsuite/ld-elf/pr26681.s: New test.
	* testsuite/ld-elf/pr26681.d: New test driver.
	* testsuite/ld-elf/pr26681.l: New test output.
2020-10-02 11:08:19 +01:00
nitachra
048fde1ef4 DWARFv5: Handle DW_MACRO_define_strx and DW_MACRO_undef_strx macro entries.
GDB complaints "During symbol reading: unrecognized DW_MACFINO
opcode 0xb" with the testcase given below. Clang is emitting
DW_MACRO_define_strx and DW_MACRO_undef_strx entries in .debug_macro
section which are not supported in GDB. This patch handles them.

DW_MACRO_define_strx and DW_MACRO_undef_strx are added in DWARFv5.
They have two operands. The first operand encodes the line number of
the #define or #undef macro directive. The second operand identifies
a string; it is represented using an unsigned LEB128 encoded value,
which is interpreted as a zero-based index into an array of offsets
in the .debug_str_offsets section. This is as per the section 6.3.2.1
of Dwarf Debugging Information Format Version 5.

Test case used:
 #define MAX_SIZE 10
int main(void)
{
   int size = 0;
   size = size + MAX_SIZE;

   printf("\n The value of size is [%d]\n",size);

   return 0;
}

clang -gdwarf-5 -fdebug-macro  macro.c -o macro.out

Before the patch:

gdb/new_gdb/binutils-gdb/build/bin/gdb -q macro.out -ex "set complaints 1" -ex "start"
Reading symbols from macro.out...
During symbol reading: unrecognized DW_MACFINO opcode 0xb
Temporary breakpoint 1 at 0x4004df: file macro.c, line 7.
Starting program: /home/nitika/workspace/macro.out

Temporary breakpoint 1, main () at macro.c:7
7          int size = 0;
(gdb)

Tested by running the testsuite before and after the patch with
 -gdwarf-5 and there is no increase in the number of test cases
that fails. Used clang 11.0.0.

gdb/ChangeLog:

	* dwarf2/macro.c (dwarf_decode_macro_bytes): Handle DW_MACRO_define_strx
	and DW_MACRO_undef_strx.
	(dwarf_decode_macros): Likewise
	* dwarf2/read.c (dwarf_decode_macros): Pass str_offsets_base in the parameters
	which is the value of DW_AT_str_offsets_base.
	* dwarf2/macro.h (dwarf_decode_macros): Modify the definition to include
	str_offsets_base.
2020-10-02 12:27:45 +05:30
GDB Administrator
71a74ee72d Automatic date update in version.in 2020-10-02 00:00:10 +00:00
Kamil Rytarowski
064280be25 Fix the i386 build
Remove old, no longer needed and no longer valid extern.

../../gdb/i386-nbsd-tdep.c:58:12: error: 'i386nbsd_sc_reg_offset' was declared 'extern' and later 'static' [-fpermissive]
   58 | static int i386nbsd_sc_reg_offset[] =
      |            ^~~~~~~~~~~~~~~~~~~~~~
In file included from ../../gdb/i386-nbsd-tdep.c:31:
../../gdb/i386-tdep.h:480:12: note: previous declaration of 'i386nbsd_sc_reg_offset'
  480 | extern int i386nbsd_sc_reg_offset[];
      |            ^~~~~~~~~~~~~~~~~~~~~~

gdb/ChangeLog:

	* i386-tdep.h (i386nbsd_sc_reg_offset): Remove.
2020-10-02 01:04:39 +02:00
Kamil Rytarowski
6ff330351e Remove the old sanity check of sigcontext offsets for NetBSD/i386
NetBSD switched to ucontext, back in 2003 and the sigcontext code
is no longer available for users, except for legacy compat layers.

This code was not available anyway as the pre-processor check
was probably never operational and buildable on NetBSD. The code
inside it does not compile.

Meanwhile, move the offset variable into the ifdef goards and avoid
the error about unused variable.

../../gdb/i386-bsd-nat.c: In function 'void _initialize_i386bsd_nat()':
../../gdb/i386-bsd-nat.c:347:7: error: unused variable 'offset' [-Werror=unused-variable]
  347 |   int offset;
      |       ^~~~~~
cc1plus: all warnings being treated as errors

gdb/ChangeLog:

	* i386-bsd-nat.c (_initialize_i386bsd_nat): Update.
	* i386-nbsd-tdep.c (i386nbsd_sc_reg_offset): Now static.
2020-10-02 00:44:47 +02:00
Kamil Rytarowski
8b667faedf Add NetBSD/i386 gdbserver support
The support is on part with NetBSD/amd64, thus GPR works,
single step and software breakpoint are operational, and the
SVR4 r_debug integration is functional.

gdbserver/ChangeLog:

	* netbsd-i386-low.cc: Add.
	* Makefile.in (SFILES): Register "netbsd-i386-low.c".
	* configure.srv: Add i[34567]86-*-netbsd*.
2020-10-02 00:41:21 +02:00