[PATCH v5 0/4] arc: Add GNU/Linux support

Shahab Vahedi shahab.vahedi@gmail.com
Tue Aug 4 08:57:38 GMT 2020


From: Shahab Vahedi <shahab@synopsys.com>

This is a series of changes to enable debugging ARC targets that are
running on a native ARC GNU/Linux system.  Since this heavily relies
on XML target descriptions provided for different targets, that piece
of code has been refactored to accommodate flexible register support.

After this series, there will come patches that add support for
native ARC gdb/gdbserver.

v5: Changes per remarks of Simon [1] and on my own (documentation and tests)
 arc.h:
  - Made "reg_size" and "isa" constant in "arc_gdbarch_features".
 arc.c:
  - Fix some malformed indentations.
 arc-tdep.h:
  - Inclusion of "gdbarch.h" has its own patch now.
 arc-tdep.c
  - Use "nullptr" instead of "NULL".
  - Remove unnecessary "break"s after "return"s.
  - "determine_core_reg_feature_set" will assert if wrong input is given.
  - Removed dangling comment.
  - Replaced "const auto *" with "const auto" to be consistent.
  - in "arc_check_for_hw_loops()": No "nullptr" check for "aux_regset".
 arc-linux-tdep.c
  - 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;"
 gdb.texinfo
  - Update documentation regarding the new feature files.
 arc-tdesc-cpu.xml
  - Use new feature names.

[1] Simon's remarks to v4 of the patches
https://sourceware.org/pipermail/gdb-patches/2020-July/170975.html
https://sourceware.org/pipermail/gdb-patches/2020-August/170993.html
https://sourceware.org/pipermail/gdb-patches/2020-August/170994.html

v4: Latest changes per remarks of Simon [2]
 arc-tdep.c
  - Surround "=" in 2 assignments with space.
  - Put the return type of "mach_type_to_arc_isa ()" on the first line.
  - Remove "inline" from "mach_type_to_arc_isa ()".
  - Add space between the "if" conditions for readability.
  - Use "featues.isa" instead of "features.reg_size" in one occurrence.
  - Make "arc_gdbarch_features_init" static
  - Rename "arc_gdbarch_features_init" to "arc_gdbarch_features_create".
  - Adapt "arc_gdbarch_features_create" to act as a constructor.
 arch/arc.c
  - Add a constructor for "arc_gdbarch_features".
  - Get rid of "ARC_ISA_NONE" now that there is a constructor.
 arch/arc.c
  - Use simple assignments (instead of append) for "architecture".
  - Use "string_sprintf ()".
  - Use "target_desc_up" in "arc_tdesc_cache" to avoid memory leakage.
 arc-linux-tdep.c
  - Two occurrences: compare "resolver.minsym" against "nullptr".
  

[2] [PATCH v3 1/3] arc: Add ARCv2 XML target along with refactoring
https://sourceware.org/pipermail/gdb-patches/2020-July/170427.html

v3: Changes after Simon's remarks:
The XML files have reduced to minimal comprehensible set.
The code is adjusted to work with new reg sets and be platform agnostic.

v2: Changes after Tom's remarks:
 arc-tdep.c
  - arc_tdesc_init(): Use "ARC_{R58,R59}_REGNUM" to index "core_regs[]".
  - arc_gdbarch_init(): Use "xfree ()" instead of "XDELETE ()"
  - arc_gdbarch_init(): return "nullptr" instead of "NULL".
  - Use explicit number evaluation, e.g: if (a & b) -> if ((a & b) != 0)
 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)
 gdb/configure.tgt
  - arc*-*-linux*): Remove "build_gdbserver=yes".

Anton Kolesov (1):
  arc: Add GNU/Linux support for ARC

Shahab Vahedi (3):
  arc: Add ARCv2 XML target along with refactoring
  arc: Add inclusion of "gdbarch.h" in "arc-tdep.h"
  arc: Add hardware loop detection

 gdb/Makefile.in                               |   1 +
 gdb/arc-linux-tdep.c                          | 278 ++++++++
 gdb/arc-tdep.c                                | 651 +++++++++++-------
 gdb/arc-tdep.h                                |  27 +-
 gdb/arch/arc.c                                | 108 ++-
 gdb/arch/arc.h                                |  79 ++-
 gdb/configure.tgt                             |   5 +
 gdb/doc/gdb.texinfo                           |  76 +-
 gdb/features/Makefile                         |   8 +-
 .../arc/{aux-arcompact.c => v1-aux.c}         |   9 +-
 .../arc/{aux-arcompact.xml => v1-aux.xml}     |   7 +-
 .../arc/{core-arcompact.c => v1-core.c}       |   8 +-
 .../arc/{core-arcompact.xml => v1-core.xml}   |   4 +-
 gdb/features/arc/{aux-v2.c => v2-aux.c}       |   9 +-
 gdb/features/arc/{aux-v2.xml => v2-aux.xml}   |   5 +-
 gdb/features/arc/{core-v2.c => v2-core.c}     |   7 +-
 gdb/features/arc/{core-v2.xml => v2-core.xml} |   7 +-
 gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml      |   4 +-
 18 files changed, 938 insertions(+), 355 deletions(-)
 create mode 100644 gdb/arc-linux-tdep.c
 rename gdb/features/arc/{aux-arcompact.c => v1-aux.c} (73%)
 rename gdb/features/arc/{aux-arcompact.xml => v1-aux.xml} (80%)
 rename gdb/features/arc/{core-arcompact.c => v1-core.c} (87%)
 rename gdb/features/arc/{core-arcompact.xml => v1-core.xml} (92%)
 rename gdb/features/arc/{aux-v2.c => v2-aux.c} (76%)
 rename gdb/features/arc/{aux-v2.xml => v2-aux.xml} (86%)
 rename gdb/features/arc/{core-v2.c => v2-core.c} (91%)
 rename gdb/features/arc/{core-v2.xml => v2-core.xml} (90%)

-- 
2.28.0



More information about the Gdb-patches mailing list