[PATCH 0/3] Add support for RISC-V 32-bit

Alistair Francis alistair.francis at wdc.com
Fri Feb 14 19:40:25 UTC 2020


This adds initial support for 32-bit RISC-V. RV32 is a 32-bit architecture
with a 64-bit time_t. It requires the kernel 5.4+ and the glibc support
is currently being upstreamed.

This is the result from make check on RV32, so there are some errors that
need to be fixed:

FAIL: clock.gen
FAIL: ioctl_v4l2.gen
FAIL: ipc_msg.gen
FAIL: ipc_msg-Xabbrev.gen
FAIL: ipc_msg-Xraw.gen
FAIL: ipc_msg-Xverbose.gen
FAIL: ipc_sem.gen
FAIL: ipc_sem-Xabbrev.gen
FAIL: ipc_sem-Xraw.gen
FAIL: ipc_sem-Xverbose.gen
FAIL: ksysent.gen
FAIL: mmap-Xabbrev.gen
FAIL: mmap-Xraw.gen
FAIL: mmap-Xverbose.gen
FAIL: mmap64.gen
FAIL: mmap64-Xabbrev.gen
FAIL: mmap64-Xraw.gen
FAIL: mmap64-Xverbose.gen
FAIL: printpath-umovestr.gen
FAIL: regex.gen
FAIL: sched.gen
FAIL: semop.gen
FAIL: semtimedop.gen
FAIL: sockopt-timestamp.gen
FAIL: trace_creds.gen
FAIL: trace_fstat.gen
FAIL: trace_fstatfs.gen
FAIL: trace_lstat.gen
FAIL: trace_personality_32.gen
FAIL: trace_personality_regex_32.gen
FAIL: trace_question.gen
FAIL: trace_stat.gen
FAIL: trace_stat_like.gen
FAIL: trace_statfs.gen
FAIL: trace_statfs_like.gen
FAIL: wait4.gen
FAIL: wait4-v.gen
FAIL: xetitimer.gen
FAIL: mmap
FAIL: delay
FAIL: filtering_syscall-syntax
FAIL: qual_fault-syscall
FAIL: qual_fault
FAIL: strace-k
FAIL: strace-k-p

# TOTAL: 732
# PASS:  471
# SKIP:  216
# XFAIL: 0
# FAIL:  45
# XPASS: 0
# ERROR: 0

Alistair Francis (3):
  linux/32: Split 32-bit time_t syscalls into a seperate header
  tests/clock_nanosleep: Skip test if __NR_clock_nanosleep isn't defined
  riscv: Add support for 32-bit RISC-V

 Makefile.am                                 | 20 +++++++-------
 configure.ac                                |  6 ++++-
 dist/INSTALL                                |  2 +-
 linux/32/syscallent.h                       | 26 +++---------------
 linux/riscv/arch_defs_.h                    | 16 +++++++++++
 linux/{riscv64 => riscv}/arch_regs.c        |  0
 linux/riscv/asm_stat.h                      | 26 ++++++++++++++++++
 linux/{riscv64 => riscv}/get_error.c        |  0
 linux/{riscv64 => riscv}/get_scno.c         |  0
 linux/{riscv64 => riscv}/get_syscall_args.c |  0
 linux/{riscv64 => riscv}/ioctls_arch0.h     |  0
 linux/riscv/ioctls_inc0.h                   |  7 +++++
 linux/{riscv64 => riscv}/raw_syscall.h      |  0
 linux/{riscv64 => riscv}/set_error.c        |  0
 linux/{riscv64 => riscv}/set_scno.c         |  0
 linux/{riscv64 => riscv}/syscallent.h       |  8 +++++-
 linux/riscv64/ioctls_inc0.h                 |  1 -
 linux/syscallent-common-time32.h            | 30 +++++++++++++++++++++
 riscv.c                                     |  4 +--
 tests/clock_nanosleep.c                     |  9 +++++++
 20 files changed, 116 insertions(+), 39 deletions(-)
 create mode 100644 linux/riscv/arch_defs_.h
 rename linux/{riscv64 => riscv}/arch_regs.c (100%)
 create mode 100644 linux/riscv/asm_stat.h
 rename linux/{riscv64 => riscv}/get_error.c (100%)
 rename linux/{riscv64 => riscv}/get_scno.c (100%)
 rename linux/{riscv64 => riscv}/get_syscall_args.c (100%)
 rename linux/{riscv64 => riscv}/ioctls_arch0.h (100%)
 create mode 100644 linux/riscv/ioctls_inc0.h
 rename linux/{riscv64 => riscv}/raw_syscall.h (100%)
 rename linux/{riscv64 => riscv}/set_error.c (100%)
 rename linux/{riscv64 => riscv}/set_scno.c (100%)
 rename linux/{riscv64 => riscv}/syscallent.h (64%)
 delete mode 100644 linux/riscv64/ioctls_inc0.h
 create mode 100644 linux/syscallent-common-time32.h

-- 
2.25.0



More information about the Strace-devel mailing list