Commit Graph

103001 Commits

Author SHA1 Message Date
GDB Administrator
f2e5245f41 Automatic date update in version.in 2020-08-27 00:00:10 +00:00
Christian Biesinger
698be2d8e5 Update gnulib to current trunk
This fixes two issues on Windows: Update.
https://sourceware.org/pipermail/gdb-patches/2020-June/169978.html

gnulib/ChangeLog:

2020-08-26  Christian Biesinger  <cbiesinger@google.com>
	    Pedro Alves  <palves@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.
	* import/Makefile.am: Update.
	* import/Makefile.in: Regenerate.
	* import/alloca.in.h (if): Update.
	* import/assure.h (affirm): Update.
	* import/at-func.c: Update.
	* import/attribute.h: New file.
	* import/btowc.c: New file.
	* import/canonicalize-lgpl.c: Update.
	* import/count-one-bits.h (COUNT_ONE_BITS_GENERIC): Update.
	(COUNT_ONE_BITS): Update.
	(intrinsic): Update.
	(__popcnt64): Update.
	(popcount_supported): Update.
	* import/ctype.in.h: New file.
	* import/dirent-private.h (WIN32_FIND_DATA): Update.
	* import/dirent.in.h (_GL_ATTRIBUTE_PURE): Update.
	* import/dirname.h: Update.
	* import/dosname.h: Remove.
	* import/error.h (_GL_ATTRIBUTE_FORMAT): Update.
	* import/extra/update-copyright: Update.
	* import/fchdir.c: Update.
	* import/fcntl.in.h (GNULIB_defined_rpl_fcntl): Update.
	(GNULIB_defined_fcntl): Update.
	* import/filename.h (HAS_DEVICE): Update.
	(IS_ABSOLUTE_PATH): Update.
	(IS_PATH_WITH_DIR): Update.
	(FILE_SYSTEM_PREFIX_LEN): Update.
	(_IS_DRIVE_LETTER): Update.
	(FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE): Update.
	(IS_ABSOLUTE_FILE_NAME): Update.
	(IS_RELATIVE_FILE_NAME): Update.
	(IS_FILE_NAME_WITH_DIR): Update.
	* import/filenamecat-lgpl.c (mfile_name_concat): Update.
	* import/fnmatch.c (WIDE_CHAR_SUPPORT): Update.
	(btowc): Update.
	(iswctype): Update.
	(mempcpy): Update.
	(strnlen): Update.
	(towlower): Update.
	(wcscat): Update.
	(wcslen): Update.
	(wctype): Update.
	(wmemchr): Update.
	(wmempcpy): Update.
	(SIZE_MAX): Update.
	(isblank): Update.
	(__libc_use_alloca): Update.
	(alloca): Update.
	(alloca_account): Update.
	(STREQ): Update.
	(CHAR_CLASS_MAX_LENGTH): Update.
	(IS_CHAR_CLASS): Update.
	(ISWCTYPE): Update.
	(if): Update.
	(HANDLE_MULTIBYTE): Update.
	(internal_function): Update.
	(FOLD): Update.
	(CHAR): Update.
	(UCHAR): Update.
	(INT): Update.
	(FCT): Update.
	(EXT): Update.
	(END): Update.
	(L_): Update.
	(BTOWC): Update.
	(STRLEN): Update.
	(STRCAT): Update.
	(MEMPCPY): Update.
	(MEMCHR): Update.
	(WIDE_CHAR_VERSION): Update.
	(STRUCT): Update.
	(FINDIDX): Update.
	(findidx): Update.
	(ALLOCA_LIMIT): Update.
	(SHLIB_COMPAT): Update.
	* import/fnmatch_loop.c (struct STRUCT): Update.
	(FCT): Update.
	(EXT): Update.
	(END): Update.
	(str): Update.
	(NEW_PATTERN): Update.
	* import/getcwd.c: Update.
	* import/getlogin_r.c (GetUserName): Update.
	* import/getprogname.c (getprogname): Update.
	* import/getrandom.c: New file.
	* import/gettimeofday.c: Remove.
	* import/glob.in.h (_Restrict_): Update.
	* import/inttypes.in.h (_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	* import/isblank.c: New file.
	* import/isnanl-nolibm.h (__has_builtin): Update.
	* import/libc-config.h (versioned_symbol): Update.
	(compat_symbol): Update.
	* import/limits.in.h (_GL_ALREADY_INCLUDING_LIMITS_H): Update.
	* import/m4/btowc.m4: New file.
	* import/m4/ctype.m4: New file.
	* import/m4/exponentl.m4: Update.
	* import/m4/fnmatch.m4: Update.
	* import/m4/getrandom.m4: New file.
	* import/m4/glob.m4: Update.
	* import/m4/gnulib-cache.m4: Update.
	* import/m4/gnulib-common.m4: Update.
	* import/m4/gnulib-comp.m4: Update.
	* import/m4/inttypes.m4: Update.
	* import/m4/isblank.m4: New file.
	* import/m4/isnanl.m4: Update.
	* import/m4/largefile.m4: Update.
	* import/m4/mbtowc.m4: New file.
	* import/m4/memmem.m4: Update.
	* import/m4/minmax.m4: New file.
	* import/m4/signal_h.m4: Update.
	* import/m4/stdio_h.m4: Update.
	* import/m4/stdlib_h.m4: Update.
	* import/m4/string_h.m4: Update.
	* import/m4/strnlen.m4: New file.
	* import/m4/sys_random_h.m4: New file.
	* import/m4/sys_socket_h.m4: Update.
	* import/m4/sys_stat_h.m4: Update.
	* import/m4/time_h.m4: Update.
	* import/m4/unistd_h.m4: Update.
	* import/m4/wchar_h.m4: Update.
	* import/m4/wint_t.m4: Update.
	* import/m4/wmemchr.m4: New file.
	* import/m4/wmempcpy.m4: New file.
	* import/math.in.h (__has_builtin): Update.
	* import/mbrtowc.c (FALLTHROUGH): Update.
	* import/mbtowc-impl.h: New file.
	* import/mbtowc.c: New file.
	* import/minmax.h: New file.
	* import/open.c (open): Update.
	* import/openat-proc.c (openat_proc_name): Update.
	* import/openat.c (rpl_openat): Update.
	(openat_needs_fchdir): Update.
	* import/openat.h (FCHOWNAT_INLINE): Update.
	(CHOWNAT_INLINE): Update.
	(FCHMODAT_INLINE): Update.
	(CHMODAT_INLINE): Update.
	* import/opendir.c (WIN32_FIND_DATA): Update.
	(GetFullPathName): Update.
	(FindFirstFile): Update.
	* import/readdir.c (FindNextFile): Update.
	* import/rename.c (MoveFileEx): Update.
	* import/rewinddir.c (FindFirstFile): Update.
	* import/rmdir.c: Update.
	* import/signal.in.h (_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	* import/stat-w32.c (_WIN32_WINNT): Update.
	(LoadLibrary): Update.
	(GetFinalPathNameByHandle): Update.
	(GetProcAddress): Update.
	(DWORD): Update.
	(GetFileInformationByHandleExFunc): Update.
	(GetFinalPathNameByHandleFunc): Update.
	* import/stat.c (WIN32_FIND_DATA): Update.
	(CreateFile): Update.
	(FindFirstFile): Update.
	* import/stdio.in.h (_GL_ATTRIBUTE_FORMAT): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	(_GL_FUNCDECL_RPL_1): Update.
	(_GL_CXXALIAS_RPL_1): Update.
	(_GL_CXXALIAS_SYS_CAST): Update.
	* import/stdlib.in.h (_GL_ATTRIBUTE_PURE): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	* import/string.in.h (_GL_ATTRIBUTE_PURE): Update.
	(_GL_WARN_ON_USE): Update.
	(_GL_WARN_ON_USE_CXX): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_CXXALIAS_SYS): Update.
	(mbstok_r): Update.
	* import/strnlen.c: New file.
	* import/sys_random.in.h: New file.
	* import/sys_socket.in.h (GNULIB_defined_socklen_t): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_CXXALIAS_SYS_CAST): Update.
	* import/sys_stat.in.h (_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	(lchmod): Update.
	(_GL_CXXALIAS_RPL_1): Update.
	(stat): Update.
	* import/tempname.c (__set_errno): Update.
	(__secure_getenv): Update.
	(__try_tempname): Update.
	(__getpid): Update.
	(__gettimeofday): Update.
	(RANDOM_BITS): Update.
	(uint64_t): Update.
	(RANDOM_VALUE_MAX): Update.
	(BASE_62_DIGITS): Update.
	(BASE_62_POWER): Update.
	(try_tempname_len): Update.
	(try_file): Update.
	(try_dir): Update.
	(try_nocreate): Update.
	(gen_tempname_len): Update.
	(__gen_tempname): Update.
	(try_tempname): Update.
	* import/tempname.h (gen_tempname_len): Update.
	(try_tempname_len): Update.
	* import/time.in.h (_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_CXXALIAS_SYS): Update.
	* import/unistd.in.h (if): Update.
	(_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	(_GL_CXXALIASWARN): Update.
	(_GL_WARN_ON_USE): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	* import/verify.h: Update.
	* import/warn-on-use.h (_GL_WARN_ON_USE_CXX): Update.
	* import/wchar.in.h (_GL_ATTRIBUTE_PURE): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	(_GL_CXXALIASWARN): Update.
	(_GL_WARN_ON_USE): Update.
	(_GL_CXXALIAS_SYS_CAST2): Update.
	(_GL_CXXALIASWARN1): Update.
	* import/windows-rwlock.c (CreateEvent): Update.
	* import/wmemchr-impl.h: New file.
	* import/wmemchr.c: New file.
	* import/wmempcpy.c: New file.
	* update-gnulib.sh (IMPORTED_GNULIB_MODULES): Add gettimeofday.
	(GNULIB_COMMIT_SHA1): Update gnulib revision.
2020-08-26 15:37:28 -07:00
H.J. Lu
05fd99cc80 ld: Add $NOSANTIZE_CFLAGS to more linker tests
-fsanitize= can be used to build binutils with

$ CC="gcc -fsanitize=address,undefined" CXX="g++ -fsanitize=address,undefined" .../configure --disable-werror

Since not all linker tests are compatible with -fsanitize=, pass
$NOSANTIZE_CFLAGS to disable -fsanitize= for such tests.

	* testsuite/ld-elf/indirect.exp: Append $NOSANTIZE_CFLAGS to CC.
	* testsuite/ld-elf/shared.exp: Likewise.
	* testsuite/ld-elfcomm/elfcomm.exp: Likewise.
	* testsuite/ld-elfvers/vers.exp: Likewise.
	* testsuite/ld-elfvsb/elfvsb.exp: Likewise.
	* testsuite/ld-elfweak/elfweak.exp: Likewise.
	* testsuite/ld-plugin/lto.exp: Likewise.
	* testsuite/ld-plugin/plugin.exp: Likewise.
	* testsuite/ld-scripts/crossref.exp: Likewise.
2020-08-26 11:57:35 -07:00
Nick Clifton
8c51f2f291 Fix sanitization problems in the BFD library when running the linker testsuite for the AVR target.
PR 26433
	* elf32-avr.c (avr_final_link_relocate):  Fix undefined shift
	behaviour.
	(avr_elf32_load_records_from_section): Use bfd_get_16 and
	bfd_get_32 to load values from potentially unaligned pointers.
2020-08-26 17:43:39 +01:00
Nick Clifton
eae0b5c3b2 Fix sanitization problems running the linker testsuite for the alpha-elf target.
PR 26416
	* elf64-alpha.c (elf64_alpha_relax_tls_get_addr): Test for and
	ignore local symbols.
	(elf64_alpha_relax_got_load): Do not check for local dynamic
	symbols.
	(OP_LDA, OP_LDAH, OP_LDQ, OP_BR, OP_BSR): Use unsigned constant
	values.
	(INSN_A) Cast the A parameter to unsigned.
	(INSN_AB): Define in terms of INSN_A.
	(INSN_ABC): Likewise.
	(INSN_ABO): Likewise.
	(INSN_AD): Likewise.
2020-08-26 16:26:13 +01:00
Nick Clifton
b74a6c6086 Fix a sanitization problem running the linker testsuite for the AArch64 target.
PR 26411
	* elfnn-aarch64.c (elfNN_aarch64_relocate_section): Use an
	unsigned long constant when creating a mask to test for alignment
	issues.
2020-08-26 15:51:56 +01:00
Jose E. Marchesi
31b3f3e6e4 opcodes: Add missing entries to ebpf_isa_attr
opcodes/

	* disassemble.c (enum epbf_isa_attr): Add ISA_XBPFBE, ISA_EBPFMAX.
2020-08-26 16:48:39 +02:00
Nick Clifton
3eba3ef344 Add support to readelf for the OpenBSD segment types.
PR 26405
binutils* readelf.c (get_segment_type): Handle OpenBSD segment types.

include	* elf/common.h (PT_OPENBSD_BOOTDATA): Define.
	(PT_OPENBSD_RANDOMIZE): Define.
	(PT_OPENBSD_WXNEEDED): Define.
2020-08-26 15:15:10 +01:00
Alan Modra
e637b7ba2f PR26508 UBSAN: tc-xtensa.c:7764 null pointer bsearch
PR 26508
	* config/tc-xtensa.c (xg_get_trampoline_chain): Return early
	when n_entries is zero.
2020-08-26 23:23:45 +09:30
Alan Modra
4d43072582 PR26507 UBSAN: elf32-xtensa.c:6013 null pointer bsearch
PR 26507
	* elf32-xtensa.c (find_removed_literal): Don't bsearch empty map.
2020-08-26 23:23:45 +09:30
Alan Modra
252e57fdd4 PR26506 UBSAN: elf32-xtensa.c:3203 null pointer memcpy
PR 26506
	* elf32-xtensa.c (elf_xtensa_combine_prop_entries): Return early
	when section is empty.
2020-08-26 23:23:45 +09:30
Alan Modra
32168ca6c3 PR26499 UBSAN: eelf32_spu.c:537 member access null pointer
Another &p->field.

	PR 26499
	* emultempl/spuelf.em (spu_elf_relink): Check for NULL tmp_file_list.
2020-08-26 23:23:45 +09:30
Alan Modra
2d0ce6779c PR26498 UBSAN: elf32-spu.c:2292 left shift overflow
PR 26498
	* elf32-spu.c (find_function_stack_adjust): Use unsigned vars to
	avoid UB left shift.
2020-08-26 23:23:45 +09:30
Alan Modra
9e51d549d7 PR 26484-26488, 26490 UBSAN &h->elf null pointer
PR 26484
	PR 26485
	PR 26486
	PR 26487
	PR 26488
	PR 26490
	* elf64-ppc.c (is_tls_get_addr): Avoid UB &h->elf when h is NULL.
	(ppc64_elf_tls_setup): Likewise.
	(branch_reloc_hash_match): Likewise.
	(build_plt_stub): Likewise.
	(ppc64_elf_relocate_section): Likewise.
2020-08-26 23:23:45 +09:30
Alan Modra
00bc5e68b2 PR26478 UBSAN: mmo.c:2941 null pointer memcpy
PR 26478
	* mmo.c (mmo_write_symbols_and_terminator): Don't memcpy empty table.
2020-08-26 23:23:45 +09:30
Alan Modra
55e61b8ad9 PR26475 UBSAN: elfxx-mips.c:12180 null pointer memset
Another memset(0,0,0)

	PR 26475
	* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Check
	sstubs->contents != NULL.
2020-08-26 23:23:44 +09:30
Alan Modra
1673aff569 PR26458 UBSAN: elf32-i386.c:3615 left shift of negative value
Happens when poking symbol index -2 into r_info.  (The index is
updated before writing out to file.)

	PR 26458
	* elf/common.h (ELF32_R_INFO): Cast symbol index to unsigned.
2020-08-26 23:23:44 +09:30
Alan Modra
66ad6b4458 PR26453 UBSAN: som.c:2885 null pointer memcpy
PR 26453
	* som.c (som_prep_for_fixups): Return early when no symbols.
2020-08-26 23:23:44 +09:30
Alan Modra
d8d6da137d PR26448 UBSAN: symbols.c:1586 left shift of negative value
Besides avoiding the UB, this also makes right shifts inside
expression symbols unsigned, consistent with the way gas evaluates
expressions in source.

	PR 26448
	* symbols.c: Include limits.h.
	(resolve_symbol_value <O_left_shift, O_right_shift>): Do an
	unsigned shift.  Warn if shift count larger than valueT size.
2020-08-26 23:23:44 +09:30
Alan Modra
b2f386b99c PR26447 UBSAN: expr.c:1936 left shift of negative value
PR 26447
	* expr.c (expr <O_left_shift>): Do an unsigned shift.
2020-08-26 23:23:44 +09:30
Alan Modra
aaf9875ef9 PR26431 UBSAN: pe-dll.c:568 null pointer bsearch
PR 26431
	* pe-dll.c (auto_export): Don't call bsearch with zero count.
2020-08-26 23:23:44 +09:30
Alan Modra
9863cbb7bd PR26418 UBSAN: cache.c:386 null pointer fwrite
PR 26418
	* ecofflink.c (WRITE): Don't write size 0 chunks.
2020-08-26 23:23:44 +09:30
Alan Modra
c01de19363 asan: alpha-vms: mmember access within null pointer
* bfdio.c (bfd_get_file_size): Don't segv on NULL adata.
2020-08-26 23:23:44 +09:30
Alan Modra
b4e125d935 PR26415 UBSAN: vms-misc.c:636 left shift cannot be represented
An unsigned short value is promoted to int, thus triggering UB on a
left shift of a positive value that results in a negative int.

	PR 26415
	* vms-misc.c (vms_time_t_to_vms_time): Don't use unsigned short vars.
2020-08-26 23:23:44 +09:30
Alan Modra
a68aba2da7 PR26412 UBSAN: objcopy.c:3026 null pointer fwrite
PR 26412
	* objcopy.c (copy_object): Don't fwrite NULL contents.
2020-08-26 23:23:43 +09:30
David Faust
4449c81a85 bpf: add xBPF ISA
This patch adds support for xBPF, another ISA targetting the BPF
virtual architecture. For now, the primary difference between eBPF
and xBPF is that xBPF supports indirect calls through the
'call %reg' form of the call instruction.

bfd/
	* archures.c (bfd_mach_xbpf): Define.
	* bfd-in2.h: Regenerate.
	* cpu-bpf.c (bfd_xbpf_arch) New.
	(bfd_bpf_arch) Update next in list field to point to xbpf arch.

cpu/
	* bpf.cpu (arch bpf): Add xbpf mach and isas.
	(define-xbpf-isa) New pmacro.
	(all-isas) Add xbpfle,xbpfbe.
	(endian-isas): New pmacro.
	(mach xbpf): New.
	(model xbpf-def): Likewise.
	(h-gpr): Add xbpf mach.
	(f-dstle, f-srcle, dstle, srcle): Add xbpfle isa.
	(f-dstbe, f-srcbe, dstbe, srcbe): Add xbpfbe isa.
	(define-alu-insn-un): Use new endian-isas pmacro.
	(define-alu-insn-bin, define-alu-insn-mov): Likewise.
	(define-endian-insn, define-lddw): Likewise.
	(dlind, dxli, dxsi, dsti): Likewise.
	(define-cond-jump-insn, define-call-insn): Likewise.
	(define-atomic-insns): Likewise.

gas/
	* config/tc-bpf.c: Add option -mxbpf to select xbpf isa.
	* testsuite/gas/bpf/indcall-1.d: New file.
	* testsuite/gas/bpf/indcall-1.s: Likewise.
	* testsuite/gas/bpf/indcall-bad-1.l: Likewise.
	* testsuite/gas/bpf/indcall-bad-1.s: Likewise.
	* testsuite/gas/bpf/bpf.exp: Run new tests.

opcodes/
	* bpf-desc.c: Regenerate.
	* bpf-desc.h: Likewise.
	* bpf-opc.c: Likewise.
	* bpf-opc.h: Likewise.
	* disassemble.c (disassemble_init_for_target): Set bits for xBPF
	ISA when appropriate.
2020-08-26 15:39:00 +02:00
Katayama Hirofumi
37f628c34d windres: AUTOCHECKBOX default style must have WS_TABSTOP style
PR 26340
	* rcparse.y (AUTOCHECKBOX): Add WS_TABSTOP to the base style.
2020-08-26 11:57:02 +01:00
Shahab Vahedi
4c6e63bfa8 gdb: Add ARC target and maintainer to MAINTAINERS
This patch updates gdb/MAINTAINERS with ARC as a target and
myself as the maintainer.  There is no mention of "-Werror"
because that is enabled by default for gdb/ targets now.

gdb/ChangeLog:

	* MAINTAINERS: Add ARC target and maintainer.
2020-08-26 10:07:14 +02:00
Alan Modra
13f8a2465e Re: CSKY: Add new arch CK860
bfd-in2.h is a generated file.  Put the new machine where it belongs.

	* archures.c (bfd_mach_ck860): Define.
2020-08-26 11:43:03 +09:30
GDB Administrator
3c68b07e84 Automatic date update in version.in 2020-08-26 00:00:10 +00:00
Anton Kolesov
8d7f06359a arc: Add GNU/Linux support for ARC
ARC Linux targets differences from baremetal:

- No support for hardware single instruction stepping.
- Different access rules to registers.
- Use of another instruction for breakpoints.

v2: Changes after Tom's remarks [1]
 arc-linux-tdep.c
  - Use true/false instead of TRUE/FALSE.
  - arc_linux_sw_breakpoint_from_kind (): Break long lines into two.
  - arc_linux_sw_breakpoint_from_kind (): Remove starting blank line.
  - Use explicit number evaluation, e.g: if (a & b) -> if ((a & b) != 0)
 arc-tdep.c
  - Use explicit number evaluation, e.g: if (a & b) -> if ((a & b) != 0)
 gdb/configure.tgt
  - arc*-*-linux*): Remove "build_gdbserver=yes".

v3: Changes after Simon's remarks [2]
  arc-linux-tdep.c
  - Use "return trap_size" instead of cryptic "return 2".
  - Removed unnecessary curly braces.
  - Removed "void" from "_initialize_arc_linux_tdep (void)".

v5: Changes after Simon's remarks [3]
- Remove unnecessary empty lines.
- Replace "breakpoint uses" with "breakpoints use" in a comment.
- "return condition;" i.s.o. "if (condition) return true; else return false;"

[1] Tom's remarks
https://sourceware.org/pipermail/gdb-patches/2020-April/167887.html

[2] Simon's remarks on v2
https://sourceware.org/pipermail/gdb-patches/2020-May/168513.html

[3] Simon's remarks on v4
https://sourceware.org/pipermail/gdb-patches/2020-August/170994.html

gdb/ChangeLog:

2020-08-25  Anton Kolesov  <anton.kolesov@synopsys.com>

	* configure.tgt: ARC support for GNU/Linux.
	* Makefile.in (ALL_TARGET_OBJS): Likewise.
	* arc-linux-tdep.c: New file.
	* arc-tdep.h (ARC_STATUS32_L_MASK, ARC_STATUS32_DE_MASK): Declare.
	* arc-tdep.c (arc_write_pc): Use it.
2020-08-25 17:31:29 +02:00
Shahab Vahedi
fdd8731bd1 arc: Add hardware loop detection
For ARC there are registers that are not part of a required set in XML
target descriptions by default, but are almost always present on ARC
targets and are universally exposed by the ptrace interface.  Hardware
loop registers being one of them.

LP_START and LP_END auxiliary registers are hardware loop start and end.
Formally, they are optional, but it is hard to find an ARC configuration
that doesn't have them.  They are always present in processors that can
run GNU/Linux.  GDB needs to know about those registers to implement
proper software single stepping, since they affect  what instruction
will be next.

This commit adds the code to check for the existance of "lp_start" and
"lp_end" in XML target descriptions. If they exist, then the function
reports that the target supports hardware loops.

gdb/ChangeLog:

	* arc-tdep.c (arc_check_for_hardware_loop): New.
	* arc-tdep.h (gdbarch_tdep): New field has_hw_loops.

gdb/doc/ChangeLog:

	* gdb.texinfo (Synopsys ARC): Document LP_START, LP_END and BTA.
2020-08-25 17:31:29 +02:00
Shahab Vahedi
2245952499 arc: Add inclusion of "gdbarch.h" in "arc-tdep.h"
The "arc-tdep.h" makes use of definitions in "gdbarch.h", but it
does not include it explicitly.  I have piggy backed this fix
in another commit [1], but I was asked to do it separately [2].

[1] arc: Add hardware loop detection
https://sourceware.org/pipermail/gdb-patches/2020-July/170800.html

[2] Simon's remarks to "arc: Add hardware loop detection"
https://sourceware.org/pipermail/gdb-patches/2020-August/170993.html

gdb/ChangeLog:

	* arc-tdep.h: Include "gdbarch.h".
2020-08-25 17:31:29 +02:00
Shahab Vahedi
995d3a197d arc: Add ARCv2 XML target along with refactoring
A few changes have been made to make the register support simpler,
more flexible and extendible.  The trigger for most of these changes
are the remarks [1] made earlier for v2 of this patch.  The noticeable
improvements are:

- The arc XML target features are placed under gdb/features/arc
- There are two cores (based on ISA) and one auxiliary feature:
  v1-core: ARC600, ARC601, ARC700
  v2-core: ARC EM, ARC HS
  aux: common in both
- The XML target features represent a minimalistic sane set of
  registers irrespective of application (baremetal or linux).
- A concept of "feature" class has been introduced in the code.
  The "feature" object is constructed from BFD and GDBARCH data.
  It contains necessary information (ISA and register size) to
  determine which XML target feature to use.
- A new structure (ARC_REGISTER_FEATURE) is added that allows
  providing index, names, and the necessity of registers. This
  simplifies the sanity checks and future extendibility.
- Documnetation has been updated to reflect ARC features better.
- Although the feature names has changed, there still exists
  backward compatibility with older names through
  find_obsolete_[core,aux]_names() functions.

The last two points were inspired from RiscV port.

[1]
https://sourceware.org/pipermail/gdb-patches/2020-May/168511.html

gdb/ChangeLog:

	* arch/arc.h
	  (arc_gdbarch_features): New class to stir the selection of target XML.
	  (arc_create_target_description): Use FEATURES to choose XML target.
	  (arc_lookup_target_description): Use arc_create_target_description
	  to create _new_ target descriptions or return the already created
	  ones if the FEATURES is the same.
	* arch/arc.c: Implementation of prototypes described above.
	* gdb/arc-tdep.h (arc_regnum enum): Add more registers.
	  (arc_gdbarch_features_init): Initialize the FEATURES struct.
	* arc-tdep.c (*_feature_name): Make feature names consistent.
	  (arc_register_feature): A new struct to hold information about
	  registers of a particular target/feature.
	  (arc_check_tdesc_feature): Check if XML provides registers in
	  compliance with ARC_REGISTER_FEATURE structs.
	  (arc_update_acc_reg_names): Add aliases for r58 and r59.
	  (determine_*_reg_feature_set): Which feature name to look for.
	  (arc_gdbarch_features_init): Given MACH and ABFD, initialize FEATURES.
	  (mach_type_to_arc_isa): Convert from a set of binutils machine types
	  to expected ISA enums to be used in arc_gdbarch_features structs.
	* features/Makefile (FEATURE_XMLFILES): Add new files.
	* gdb/features/arc/v1-aux.c: New file.
	* gdb/features/arc/v1-aux.xml: Likewise.
	* gdb/features/arc/v1-core.c: Likewise.
	* gdb/features/arc/v1-core.xml: Likewise.
	* gdb/features/arc/v2-aux.c: Likewise.
	* gdb/features/arc/v2-aux.xml: Likewise.
	* gdb/features/arc/v2-core.c: Likewise.
	* gdb/features/arc/v2-core.xml: Likewise.
	* NEWS (Changes since GDB 9): Announce obsolence of old feature names.

gdb/doc/ChangeLog:

	* gdb.texinfo (Synopsys ARC): Update the documentation for ARC
	Features.

gdb/testsuite/ChangeLog:

	* gdb.arch/arc-tdesc-cpu.xml: Use new feature names.
2020-08-25 17:31:26 +02:00
Simon Marchi
8cac2b318b gdb/testsuite: fix gdb.threads/stepi-random-signal.exp pattern (gdb/26532)
Commit 1eb8556f5a ("gdb: add infrun_debug_printf macro") changed the
debug output format for `set debug infrun 1`.  The test
gdb.threads/stepi-random-signal.exp uses that debug output, and was
updated, but not correctly.  It results in this failure:

    FAIL: gdb.threads/stepi-random-signal.exp: stepi (no random signal)

Fix it by adjusting the pattern in the test.

gdb/testsuite/ChangeLog:

	PR gdb/26532
	* gdb.threads/stepi-random-signal.exp: Update pattern.

Change-Id: If5fa525e9545e32a286effe6a6184358374bd37c
2020-08-25 11:06:43 -04:00
Simon Marchi
2bc19622c9 gdb/testsuite: fix gdb.base/ui-redirect.exp pattern (gdb/26532)
Commit 1eb8556f5a ("gdb: add infrun_debug_printf macro") changed the
debug output format for `set debug infrun 1`.  It broke test
gdb.base/ui-redirect.exp, which I missed:

    FAIL: gdb.base/ui-redirect.exp: debugging: continue

Fix it by adjusting the pattern in the test to the new reality.

gdb/testsuite/ChangeLog:

	PR gdb/26532
	* gdb.base/ui-redirect.exp: Update pattern.

Change-Id: Ie8a8f6675e35a0cab55109b1534b44eb51baec9d
2020-08-25 11:06:27 -04:00
Gary Benson
8571e9c891 Fix ChangeLog entry for commit b04aa1fc8c 2020-08-25 15:53:33 +01:00
Mark Wielaard
c3757b583d Fix the linker's handling of DWARF-5 line number tables.
When building with gcc with -gdwarf-5 ld tests (including ld-elf/dwarf.exp)
fail because they try to read the .debug_ranges section. But DWARF5
introduces a new .debug_rnglists section that encodes the address ranges
more efficiently. Implement reading the debug_rnglists in bfd/dwarf2.c.
Which makes all tests pass again and fixes several gcc testsuite tests
when defaulting to DWARF5.

	*  dwarf2.c (struct dwarf2_debug_file): Add dwarf_rnglists_buffer
	and dwarf_rnglists_size fields.
	(dwarf_debug_sections): Add debug_rnglists.
	(dwarf_debug_section_enum): Likewise.
	(read_debug_rnglists): New function.
	(read_rangelist): New function to call either read_ranges or
	read_rnglists. Rename original function to...
	(read_ranges): ...this.
	(read_rnglists): New function.
2020-08-25 15:33:00 +01:00
Gary Benson
b04aa1fc8c Disable Clang's integrated assembler for two testcases
gdb.dwarf2/dw2-dir-file-name.exp fails to build using Clang because
the generated assembly language contains .ascii directives with more
than one string literal.  gdb.dwarf2/dw2-restore.exp fails to build
using Clang because it contains .func and .endfunc directives.
This commit causes Clang to invoke the system assembler to assemble
the relevant files.

gdb/testsuite/ChangeLog:

	* gdb.dwarf2/dw2-dir-file-name.exp: Use system assembler
	when compiling with clang.
	* gdb.dwarf2/dw2-restore.exp: Likewise
2020-08-25 15:25:04 +01:00
Gary Benson
9f68b45348 Enable gdb.cp/ambiguous.exp with GCC and clang
gdb.cp/ambiguous.exp failed to build using clang with the following
error:

 gdb compile failed, /gdbtest/src/gdb/testsuite/gdb.cp/ambiguous.cc:70:36:
   warning: direct base 'A1' is inaccessible due to ambiguity:
     class JVA1 -> class KV -> class A1
     class JVA1 -> class A1 [-Winaccessible-base]
 class JVA1 : public KV, public LV, public A1 {
                                   ^~~~~~~~~

This commit builds this testcase with -Wno-inaccessible-base when
using clang, to avoid this failure.

Furthermore, gdb.cp/ambiguous.exp has been disabled when using GCC
since 1998.  This commit enables this testcase, building with
-Wno-inaccessible-base when using GCC >= 10.1, and -w otherwise.

gdb/testsuite/ChangeLog:

	* gdb.cp/ambiguous.exp: Enable test when compiling with GCC.
	Add additional_flags=-Wno-inaccessible-base when compiling
	with GCC >= 10.1 or clang.  Add additional_flags=-w when
	compiling with GCC < 10.
2020-08-25 15:14:46 +01:00
Alan Modra
1ab8d92897 PR26505, ASAN: xstormy16_elf_relax_section elf32-xstormy16.c:595
PR 26505
	* elf32-xstormy16.c (xstormy16_elf_relax_section): Check
	is_elf_hash_table before accessing elf fields.
2020-08-25 23:07:10 +09:30
Alan Modra
8640c87dcd PR26504, ASAN: parse_disassembler_options vax-dis.c:142
PR 26504
	* vax-dis.c (parse_disassembler_options): Always add at least one
	to entry_addr_total_slots.
2020-08-25 23:07:10 +09:30
Alan Modra
69ff2100fd PR26501, ASAN: tic54x_undefined_symbol tc-tic54x.c:5015
PR26501
	* gas/config/tc-tic54x.c (tic54x_undefined_symbol): Properly treat
	misc_symbol_hash entries without values.
2020-08-25 23:07:10 +09:30
Alan Modra
1de153a168 PR26500, ASAN: tic4x_inst_make tc-tic4x.c:1247
PR 26500
	* tc-tic4x.c (tic4x_inst_make): Don't die on terminating insn
	with name = "".
2020-08-25 23:07:10 +09:30
Alan Modra
a93ba4c0cf PR26482, ASAN: _bfd_xcoff_sizeof_headers coff-rs6000.c:2585
PR 26482
	* coff-rs6000.c (_bfd_xcoff_sizeof_headers): Ignore sections that
	won't be output.
2020-08-25 23:07:10 +09:30
Alan Modra
1438dd86cc PR26463, ASAN: m32c_elf_relax_section elf32-m32c.c:1448
PR 26463
	* elf32-m32c.c (m32c_elf_relax_section): Check is_elf_hash_table
	before accessing elf fields.
2020-08-25 23:07:10 +09:30
Alan Modra
2186273ac4 PR26452, ASAN: som_compute_checksum som.c:4293
PR 26452
	* som.c (som_compute_checksum): XOR 32-bit words in header,
	not unsigned long sized words.
2020-08-25 23:07:10 +09:30
Alan Modra
d3e0baddb2 PR26441, ASAN: get_b_cc tc-cr16.c:1521
PR 26441
	* config/tc-cr16.c (get_b_cc): Return NULL early if op isn't
	two or three chars, and don't bother copying.
2020-08-25 23:07:10 +09:30
Alan Modra
0c1438eb15 PR26430, ASAN: nacl_modify_segment_map elf-nacl.c:164
PR 26430
	* elf-nacl.c (nacl_modify_segment_map): Correct alloc size and
	amount copied for elf_segment_map defined with one element
	sections array.
2020-08-25 23:07:10 +09:30
Alan Modra
250dd99fc9 PR26426, ASAN: neon_quad tc-arm.c:15175
PR 26426
	* config/tc-arm.c (do_neon_mvn, do_neon_swp): Bail out on
	NS_NULL shape.
2020-08-25 23:07:10 +09:30