All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhangjin Wu <falcon@tinylab.org>
To: w@1wt.eu
Cc: falcon@tinylab.org, linux-kernel@vger.kernel.org,
	linux-kselftest@vger.kernel.org, linux-riscv@lists.infradead.org,
	palmer@dabbelt.com, paul.walmsley@sifive.com, thomas@t-8ch.de
Subject: [PATCH 00/13] tools/nolibc: riscv: Add full rv32 support
Date: Thu, 25 May 2023 01:33:14 +0800	[thread overview]
Message-ID: <cover.1684949267.git.falcon@tinylab.org> (raw)

Hi, Willy

Thanks very mush for your kindly review, discuss and suggestion, now we
get full rv32 support ;-)

In the first series [1], we have fixed up the compile errors about
_start and __NR_llseek for rv32, but left compile errors about tons of
time32 syscalls (removed after kernel commit d4c08b9776b3 ("riscv: Use
latest system call ABI")) and the missing fstat in nolibc-test.c [2],
now we have fixed up all of them.

Introduction
============

This series is based on the 20230524-nolibc-rv32+stkp4 branch of [3], it
includes 3 parts, they work together to add full rv32 support:

* Reverts two old out-of-day patches
  * Revert "tools/nolibc: riscv: Support __NR_llseek for rv32"
  * Revert "selftests/nolibc: Fix up compile error for rv32"

  (these two and the reverted ones:

    * commit 606343b7478c ("selftests/nolibc: Fix up compile error for rv32") 
    * commit d2c3acba6d66 ("tools/nolibc: riscv: Support __NR_llseek for rv32")

  can be removed from the git repo completely, there are two new ones to replace
  them)

* Compile and test support patches
  * selftests/nolibc: print name instead of number for EOVERFLOW
  * selftests/nolibc: syscall_args: use __NR_statx for rv32
    * --> replace the old one 606343b7478, use statx instead of read
  * selftests/nolibc: riscv: customize makefile for rv32
  * selftests/nolibc: allow specify a bios for qemu
  * selftests/nolibc: remove the duplicated gettimeofday_bad2

* Fix up some missing syscalls, mainly time32 syscalls
  * tools/nolibc: sys_lseek: riscv: use __NR_llseek for rv32
    * --> replace the old one d2c3acba6d66, cleaned up 
  * tools/nolibc: sys_poll: riscv: use __NR_ppoll_time64 for rv32
  * tools/nolibc: ppoll/ppoll_time64: Add a missing argument
  * tools/nolibc: sys_select: riscv: use __NR_pselect6_time64 for rv32
  * tools/nolibc: sys_wait4: riscv: use __NR_waitid for rv32
  * tools/nolibc: sys_gettimeofday: riscv: use __NR_clock_gettime64 for rv32

Compile
=======

For rv64:

    $ make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- nolibc-test
    $ file nolibc-test
    nolibc-test: ELF 64-bit LSB executable, UCB RISC-V ...

    $ make ARCH=riscv64 CROSS_COMPILE=riscv64-linux-gnu- nolibc-test
    $ file nolibc-test
    nolibc-test: ELF 64-bit LSB executable, UCB RISC-V ...

For rv32:

    $ make ARCH=riscv CONFIG_32BIT=1 CROSS_COMPILE=riscv64-linux-gnu- nolibc-test
    $ file nolibc-test
    nolibc-test: ELF 32-bit LSB executable, UCB RISC-V ...

    $ make ARCH=riscv32 CROSS_COMPILE=riscv64-linux-gnu- nolibc-test
    $ file nolibc-test
    nolibc-test: ELF 32-bit LSB executable, UCB RISC-V ...

Testing
=======

Environment:

    // gcc toolchain
    $ riscv64-linux-gnu-gcc --version
    riscv64-linux-gnu-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
    Copyright (C) 2019 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    // glibc >= 2.33 required, for older glibc, must upgrade include/bits/wordsize.h
    $ dpkg -l | grep libc6-dev | grep riscv
    ii  libc6-dev-riscv64-cross                  2.31-0ubuntu7cross1

    // glibc include/bits/wordsize.h: manually upgraded to >= 2.33
    // without this, can not build tools/testing/selftests/nolibc/nolibc-test.c
    $ cat /usr/riscv64-linux-gnu/include/bits/wordsize.h
    #if __riscv_xlen == (__SIZEOF_POINTER__ * 8)
    # define __WORDSIZE __riscv_xlen
    #else
    # error unsupported ABI
    #endif

    # define __WORDSIZE_TIME64_COMPAT32 1

    #if __WORDSIZE == 32
    # define __WORDSIZE32_SIZE_ULONG    0
    # define __WORDSIZE32_PTRDIFF_LONG  0
    #endif

    // higher qemu version is better, latest version is v8.0.0+
    $ qemu-system-riscv64  --version
    QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.18)
    Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

    // opensbi version, higher is better, must match kernel version and qemu version
    // rv64: used version is 1.2, latest is 1.2
    $ head -2 /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc/run.out | tail -1
    OpenSBI v1.2-116-g7919530
    // rv32: used version is v0.9, latest is 1.2
    $ head -2 /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc/run.out | tail -1
    OpenSBI v0.9-152-g754d511

For rv64:

    $ pwd
    /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc
    $ make ARCH=riscv64 CROSS_COMPILE=riscv64-linux-gnu- defconfig
    $ make ARCH=riscv64 CROSS_COMPILE=riscv64-linux-gnu- BIOS=/labs/linux-lab/boards/riscv64/virt/bsp/bios/opensbi/generic/fw_jump.elf run
        MKDIR   sysroot/riscv/include
      make[1]: Entering directory '/labs/linux-lab/src/linux-stable/tools/include/nolibc'
      make[2]: Entering directory '/labs/linux-lab/src/linux-stable'
      make[2]: Leaving directory '/labs/linux-lab/src/linux-stable'
      make[2]: Entering directory '/labs/linux-lab/src/linux-stable'
        INSTALL /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc/sysroot/sysroot/include
      make[2]: Leaving directory '/labs/linux-lab/src/linux-stable'
      make[1]: Leaving directory '/labs/linux-lab/src/linux-stable/tools/include/nolibc'
        CC      nolibc-test
        MKDIR   initramfs
        INSTALL initramfs/init
      make[1]: Entering directory '/labs/linux-lab/src/linux-stable'
        ...
        LD      vmlinux
        NM      System.map
        SORTTAB vmlinux
        OBJCOPY arch/riscv/boot/Image
        Kernel: arch/riscv/boot/Image is ready
      make[1]: Leaving directory '/labs/linux-lab/src/linux-stable'
      135 test(s) passed.
    $ file ../../../../vmlinux
    ../../../../vmlinux: ELF 64-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, BuildID[sha1]=b8e1cea5122b04bce540b4022f0d6f171ffe615a, not stripped

For rv32:

    $ pwd
    /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc
    $ make ARCH=riscv32 CROSS_COMPILE=riscv64-linux-gnu- defconfig
    $ make ARCH=riscv32 CROSS_COMPILE=riscv64-linux-gnu- BIOS=/labs/linux-lab/boards/riscv32/virt/bsp/bios/opensbi/generic/fw_jump.elf run
          MKDIR   sysroot/riscv/include
    make[1]: Entering directory '/labs/linux-lab/src/linux-stable/tools/include/nolibc'
    make[2]: Entering directory '/labs/linux-lab/src/linux-stable'
    make[2]: Leaving directory '/labs/linux-lab/src/linux-stable'
    make[2]: Entering directory '/labs/linux-lab/src/linux-stable'
      INSTALL /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc/sysroot/sysroot/include
    make[2]: Leaving directory '/labs/linux-lab/src/linux-stable'
    make[1]: Leaving directory '/labs/linux-lab/src/linux-stable/tools/include/nolibc'
      CC      nolibc-test
      MKDIR   initramfs
      INSTALL initramfs/init
    make[1]: Entering directory '/labs/linux-lab/src/linux-stable'
      CALL    scripts/checksyscalls.sh
      GEN     usr/initramfs_data.cpio
      COPY    usr/initramfs_inc_data
      AS      usr/initramfs_data.o
      AR      usr/built-in.a
      GEN     security/selinux/flask.h security/selinux/av_permissions.h
      CC      security/selinux/avc.o
      CC      security/selinux/hooks.o
      CC      security/selinux/selinuxfs.o
      CC      security/selinux/nlmsgtab.o
      CC      security/selinux/netif.o
      CC      security/selinux/netnode.o
      CC      security/selinux/netport.o
      CC      security/selinux/status.o
      CC      security/selinux/ss/services.o
      AR      security/selinux/built-in.a
      AR      security/built-in.a
      AR      built-in.a
      AR      vmlinux.a
      LD      vmlinux.o
      OBJCOPY modules.builtin.modinfo
      GEN     modules.builtin
      MODPOST vmlinux.symvers
      UPD     include/generated/utsversion.h
      CC      init/version-timestamp.o
      LD      .tmp_vmlinux.kallsyms1
      NM      .tmp_vmlinux.kallsyms1.syms
      KSYMS   .tmp_vmlinux.kallsyms1.S
      AS      .tmp_vmlinux.kallsyms1.S
      LD      .tmp_vmlinux.kallsyms2
      NM      .tmp_vmlinux.kallsyms2.syms
      KSYMS   .tmp_vmlinux.kallsyms2.S
      AS      .tmp_vmlinux.kallsyms2.S
      LD      vmlinux
      NM      System.map
      SORTTAB vmlinux
      OBJCOPY arch/riscv/boot/Image
      Kernel: arch/riscv/boot/Image is ready
    make[1]: Leaving directory '/labs/linux-lab/src/linux-stable'
    135 test(s) passed.
    $ file ../../../../vmlinux
    ../../../../vmlinux: ELF 32-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, BuildID[sha1]=bad4c1f3899f47355d2a2010bade56972fd94b9d, not stripped
 
The full rv64 testing result (run.out) is uploaded at [4].
The full rv32 testing result (run.out) is uploaded at [5].

That's all, thanks!

Best regards,
Zhangjin Wu
---

[1]: https://lore.kernel.org/linux-riscv/20230520143154.68663-1-falcon@tinylab.org/T/#mf0e54ee19bd3f94dadbb4420ed9dffa316d1719d
[2]: https://lore.kernel.org/linux-riscv/20230520135235.68155-1-falcon@tinylab.org/T/#u
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git
[4]: https://pastebin.com/3L0nV78u
[5]: https://pastebin.com/RadrXdta 



Zhangjin Wu (13):
  Revert "tools/nolibc: riscv: Support __NR_llseek for rv32"
  Revert "selftests/nolibc: Fix up compile error for rv32"
  selftests/nolibc: print name instead of number for EOVERFLOW
  selftests/nolibc: syscall_args: use __NR_statx for rv32
  selftests/nolibc: riscv: customize makefile for rv32
  selftests/nolibc: allow specify a bios for qemu
  selftests/nolibc: remove the duplicated gettimeofday_bad2
  tools/nolibc: sys_lseek: riscv: use __NR_llseek for rv32
  tools/nolibc: sys_poll: riscv: use __NR_ppoll_time64 for rv32
  tools/nolibc: ppoll/ppoll_time64: Add a missing argument
  tools/nolibc: sys_select: riscv: use __NR_pselect6_time64 for rv32
  tools/nolibc: sys_wait4: riscv: use __NR_waitid for rv32
  tools/nolibc: sys_gettimeofday: riscv: use __NR_clock_gettime64 for
    rv32

 tools/include/nolibc/std.h                   |   1 +
 tools/include/nolibc/sys.h                   | 135 +++++++++++++++++--
 tools/include/nolibc/types.h                 |  21 ++-
 tools/testing/selftests/nolibc/Makefile      |  14 +-
 tools/testing/selftests/nolibc/nolibc-test.c |  15 ++-
 5 files changed, 167 insertions(+), 19 deletions(-)

-- 
2.25.1


WARNING: multiple messages have this Message-ID (diff)
From: Zhangjin Wu <falcon@tinylab.org>
To: w@1wt.eu
Cc: falcon@tinylab.org, linux-kernel@vger.kernel.org,
	linux-kselftest@vger.kernel.org, linux-riscv@lists.infradead.org,
	palmer@dabbelt.com, paul.walmsley@sifive.com, thomas@t-8ch.de
Subject: [PATCH 00/13] tools/nolibc: riscv: Add full rv32 support
Date: Thu, 25 May 2023 01:33:14 +0800	[thread overview]
Message-ID: <cover.1684949267.git.falcon@tinylab.org> (raw)

Hi, Willy

Thanks very mush for your kindly review, discuss and suggestion, now we
get full rv32 support ;-)

In the first series [1], we have fixed up the compile errors about
_start and __NR_llseek for rv32, but left compile errors about tons of
time32 syscalls (removed after kernel commit d4c08b9776b3 ("riscv: Use
latest system call ABI")) and the missing fstat in nolibc-test.c [2],
now we have fixed up all of them.

Introduction
============

This series is based on the 20230524-nolibc-rv32+stkp4 branch of [3], it
includes 3 parts, they work together to add full rv32 support:

* Reverts two old out-of-day patches
  * Revert "tools/nolibc: riscv: Support __NR_llseek for rv32"
  * Revert "selftests/nolibc: Fix up compile error for rv32"

  (these two and the reverted ones:

    * commit 606343b7478c ("selftests/nolibc: Fix up compile error for rv32") 
    * commit d2c3acba6d66 ("tools/nolibc: riscv: Support __NR_llseek for rv32")

  can be removed from the git repo completely, there are two new ones to replace
  them)

* Compile and test support patches
  * selftests/nolibc: print name instead of number for EOVERFLOW
  * selftests/nolibc: syscall_args: use __NR_statx for rv32
    * --> replace the old one 606343b7478, use statx instead of read
  * selftests/nolibc: riscv: customize makefile for rv32
  * selftests/nolibc: allow specify a bios for qemu
  * selftests/nolibc: remove the duplicated gettimeofday_bad2

* Fix up some missing syscalls, mainly time32 syscalls
  * tools/nolibc: sys_lseek: riscv: use __NR_llseek for rv32
    * --> replace the old one d2c3acba6d66, cleaned up 
  * tools/nolibc: sys_poll: riscv: use __NR_ppoll_time64 for rv32
  * tools/nolibc: ppoll/ppoll_time64: Add a missing argument
  * tools/nolibc: sys_select: riscv: use __NR_pselect6_time64 for rv32
  * tools/nolibc: sys_wait4: riscv: use __NR_waitid for rv32
  * tools/nolibc: sys_gettimeofday: riscv: use __NR_clock_gettime64 for rv32

Compile
=======

For rv64:

    $ make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- nolibc-test
    $ file nolibc-test
    nolibc-test: ELF 64-bit LSB executable, UCB RISC-V ...

    $ make ARCH=riscv64 CROSS_COMPILE=riscv64-linux-gnu- nolibc-test
    $ file nolibc-test
    nolibc-test: ELF 64-bit LSB executable, UCB RISC-V ...

For rv32:

    $ make ARCH=riscv CONFIG_32BIT=1 CROSS_COMPILE=riscv64-linux-gnu- nolibc-test
    $ file nolibc-test
    nolibc-test: ELF 32-bit LSB executable, UCB RISC-V ...

    $ make ARCH=riscv32 CROSS_COMPILE=riscv64-linux-gnu- nolibc-test
    $ file nolibc-test
    nolibc-test: ELF 32-bit LSB executable, UCB RISC-V ...

Testing
=======

Environment:

    // gcc toolchain
    $ riscv64-linux-gnu-gcc --version
    riscv64-linux-gnu-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
    Copyright (C) 2019 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    // glibc >= 2.33 required, for older glibc, must upgrade include/bits/wordsize.h
    $ dpkg -l | grep libc6-dev | grep riscv
    ii  libc6-dev-riscv64-cross                  2.31-0ubuntu7cross1

    // glibc include/bits/wordsize.h: manually upgraded to >= 2.33
    // without this, can not build tools/testing/selftests/nolibc/nolibc-test.c
    $ cat /usr/riscv64-linux-gnu/include/bits/wordsize.h
    #if __riscv_xlen == (__SIZEOF_POINTER__ * 8)
    # define __WORDSIZE __riscv_xlen
    #else
    # error unsupported ABI
    #endif

    # define __WORDSIZE_TIME64_COMPAT32 1

    #if __WORDSIZE == 32
    # define __WORDSIZE32_SIZE_ULONG    0
    # define __WORDSIZE32_PTRDIFF_LONG  0
    #endif

    // higher qemu version is better, latest version is v8.0.0+
    $ qemu-system-riscv64  --version
    QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.18)
    Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

    // opensbi version, higher is better, must match kernel version and qemu version
    // rv64: used version is 1.2, latest is 1.2
    $ head -2 /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc/run.out | tail -1
    OpenSBI v1.2-116-g7919530
    // rv32: used version is v0.9, latest is 1.2
    $ head -2 /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc/run.out | tail -1
    OpenSBI v0.9-152-g754d511

For rv64:

    $ pwd
    /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc
    $ make ARCH=riscv64 CROSS_COMPILE=riscv64-linux-gnu- defconfig
    $ make ARCH=riscv64 CROSS_COMPILE=riscv64-linux-gnu- BIOS=/labs/linux-lab/boards/riscv64/virt/bsp/bios/opensbi/generic/fw_jump.elf run
        MKDIR   sysroot/riscv/include
      make[1]: Entering directory '/labs/linux-lab/src/linux-stable/tools/include/nolibc'
      make[2]: Entering directory '/labs/linux-lab/src/linux-stable'
      make[2]: Leaving directory '/labs/linux-lab/src/linux-stable'
      make[2]: Entering directory '/labs/linux-lab/src/linux-stable'
        INSTALL /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc/sysroot/sysroot/include
      make[2]: Leaving directory '/labs/linux-lab/src/linux-stable'
      make[1]: Leaving directory '/labs/linux-lab/src/linux-stable/tools/include/nolibc'
        CC      nolibc-test
        MKDIR   initramfs
        INSTALL initramfs/init
      make[1]: Entering directory '/labs/linux-lab/src/linux-stable'
        ...
        LD      vmlinux
        NM      System.map
        SORTTAB vmlinux
        OBJCOPY arch/riscv/boot/Image
        Kernel: arch/riscv/boot/Image is ready
      make[1]: Leaving directory '/labs/linux-lab/src/linux-stable'
      135 test(s) passed.
    $ file ../../../../vmlinux
    ../../../../vmlinux: ELF 64-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, BuildID[sha1]=b8e1cea5122b04bce540b4022f0d6f171ffe615a, not stripped

For rv32:

    $ pwd
    /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc
    $ make ARCH=riscv32 CROSS_COMPILE=riscv64-linux-gnu- defconfig
    $ make ARCH=riscv32 CROSS_COMPILE=riscv64-linux-gnu- BIOS=/labs/linux-lab/boards/riscv32/virt/bsp/bios/opensbi/generic/fw_jump.elf run
          MKDIR   sysroot/riscv/include
    make[1]: Entering directory '/labs/linux-lab/src/linux-stable/tools/include/nolibc'
    make[2]: Entering directory '/labs/linux-lab/src/linux-stable'
    make[2]: Leaving directory '/labs/linux-lab/src/linux-stable'
    make[2]: Entering directory '/labs/linux-lab/src/linux-stable'
      INSTALL /labs/linux-lab/src/linux-stable/tools/testing/selftests/nolibc/sysroot/sysroot/include
    make[2]: Leaving directory '/labs/linux-lab/src/linux-stable'
    make[1]: Leaving directory '/labs/linux-lab/src/linux-stable/tools/include/nolibc'
      CC      nolibc-test
      MKDIR   initramfs
      INSTALL initramfs/init
    make[1]: Entering directory '/labs/linux-lab/src/linux-stable'
      CALL    scripts/checksyscalls.sh
      GEN     usr/initramfs_data.cpio
      COPY    usr/initramfs_inc_data
      AS      usr/initramfs_data.o
      AR      usr/built-in.a
      GEN     security/selinux/flask.h security/selinux/av_permissions.h
      CC      security/selinux/avc.o
      CC      security/selinux/hooks.o
      CC      security/selinux/selinuxfs.o
      CC      security/selinux/nlmsgtab.o
      CC      security/selinux/netif.o
      CC      security/selinux/netnode.o
      CC      security/selinux/netport.o
      CC      security/selinux/status.o
      CC      security/selinux/ss/services.o
      AR      security/selinux/built-in.a
      AR      security/built-in.a
      AR      built-in.a
      AR      vmlinux.a
      LD      vmlinux.o
      OBJCOPY modules.builtin.modinfo
      GEN     modules.builtin
      MODPOST vmlinux.symvers
      UPD     include/generated/utsversion.h
      CC      init/version-timestamp.o
      LD      .tmp_vmlinux.kallsyms1
      NM      .tmp_vmlinux.kallsyms1.syms
      KSYMS   .tmp_vmlinux.kallsyms1.S
      AS      .tmp_vmlinux.kallsyms1.S
      LD      .tmp_vmlinux.kallsyms2
      NM      .tmp_vmlinux.kallsyms2.syms
      KSYMS   .tmp_vmlinux.kallsyms2.S
      AS      .tmp_vmlinux.kallsyms2.S
      LD      vmlinux
      NM      System.map
      SORTTAB vmlinux
      OBJCOPY arch/riscv/boot/Image
      Kernel: arch/riscv/boot/Image is ready
    make[1]: Leaving directory '/labs/linux-lab/src/linux-stable'
    135 test(s) passed.
    $ file ../../../../vmlinux
    ../../../../vmlinux: ELF 32-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, BuildID[sha1]=bad4c1f3899f47355d2a2010bade56972fd94b9d, not stripped
 
The full rv64 testing result (run.out) is uploaded at [4].
The full rv32 testing result (run.out) is uploaded at [5].

That's all, thanks!

Best regards,
Zhangjin Wu
---

[1]: https://lore.kernel.org/linux-riscv/20230520143154.68663-1-falcon@tinylab.org/T/#mf0e54ee19bd3f94dadbb4420ed9dffa316d1719d
[2]: https://lore.kernel.org/linux-riscv/20230520135235.68155-1-falcon@tinylab.org/T/#u
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git
[4]: https://pastebin.com/3L0nV78u
[5]: https://pastebin.com/RadrXdta 



Zhangjin Wu (13):
  Revert "tools/nolibc: riscv: Support __NR_llseek for rv32"
  Revert "selftests/nolibc: Fix up compile error for rv32"
  selftests/nolibc: print name instead of number for EOVERFLOW
  selftests/nolibc: syscall_args: use __NR_statx for rv32
  selftests/nolibc: riscv: customize makefile for rv32
  selftests/nolibc: allow specify a bios for qemu
  selftests/nolibc: remove the duplicated gettimeofday_bad2
  tools/nolibc: sys_lseek: riscv: use __NR_llseek for rv32
  tools/nolibc: sys_poll: riscv: use __NR_ppoll_time64 for rv32
  tools/nolibc: ppoll/ppoll_time64: Add a missing argument
  tools/nolibc: sys_select: riscv: use __NR_pselect6_time64 for rv32
  tools/nolibc: sys_wait4: riscv: use __NR_waitid for rv32
  tools/nolibc: sys_gettimeofday: riscv: use __NR_clock_gettime64 for
    rv32

 tools/include/nolibc/std.h                   |   1 +
 tools/include/nolibc/sys.h                   | 135 +++++++++++++++++--
 tools/include/nolibc/types.h                 |  21 ++-
 tools/testing/selftests/nolibc/Makefile      |  14 +-
 tools/testing/selftests/nolibc/nolibc-test.c |  15 ++-
 5 files changed, 167 insertions(+), 19 deletions(-)

-- 
2.25.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

             reply	other threads:[~2023-05-24 17:33 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-24 17:33 Zhangjin Wu [this message]
2023-05-24 17:33 ` [PATCH 00/13] tools/nolibc: riscv: Add full rv32 support Zhangjin Wu
2023-05-24 17:41 ` [PATCH 01/13] Revert "tools/nolibc: riscv: Support __NR_llseek for rv32" Zhangjin Wu
2023-05-24 17:41   ` Zhangjin Wu
2023-05-24 17:44 ` [PATCH 02/13] Revert "selftests/nolibc: Fix up compile error " Zhangjin Wu
2023-05-24 17:44   ` Zhangjin Wu
2023-05-24 17:46 ` [PATCH 03/13] selftests/nolibc: print name instead of number for EOVERFLOW Zhangjin Wu
2023-05-24 18:28   ` Zhangjin Wu
2023-05-24 17:46   ` Zhangjin Wu
2023-05-24 20:23   ` Thomas Weißschuh
2023-05-24 20:23     ` Thomas Weißschuh
2023-05-24 17:48 ` [PATCH 04/13] selftests/nolibc: syscall_args: use __NR_statx for rv32 Zhangjin Wu
2023-05-24 17:48   ` Zhangjin Wu
2023-05-24 19:49   ` Thomas Weißschuh
2023-05-24 19:49     ` Thomas Weißschuh
2023-05-25  7:20     ` Zhangjin Wu
2023-05-25  7:20       ` Zhangjin Wu
2023-05-26  9:21   ` Arnd Bergmann
2023-05-26  9:21     ` Arnd Bergmann
2023-05-26 10:06     ` Willy Tarreau
2023-05-26 10:06       ` Willy Tarreau
2023-05-27  0:58     ` Zhangjin Wu
2023-05-27  0:58       ` Zhangjin Wu
2023-05-24 17:50 ` [PATCH 05/13] selftests/nolibc: riscv: customize makefile " Zhangjin Wu
2023-05-24 17:50   ` Zhangjin Wu
2023-05-26  6:57   ` Thomas Weißschuh
2023-05-26  6:57     ` Thomas Weißschuh
2023-05-26  9:20     ` Zhangjin Wu
2023-05-26  9:20       ` Zhangjin Wu
2023-05-24 17:52 ` [PATCH 06/13] selftests/nolibc: allow specify a bios for qemu Zhangjin Wu
2023-05-24 17:52   ` Zhangjin Wu
2023-05-26  7:00   ` Thomas Weißschuh
2023-05-26  7:00     ` Thomas Weißschuh
2023-05-26 10:25     ` Zhangjin Wu
2023-05-26 10:25       ` Zhangjin Wu
2023-05-26 10:36       ` Conor Dooley
2023-05-26 10:36         ` Conor Dooley
2023-05-26 13:38         ` Zhangjin Wu
2023-05-26 13:38           ` Zhangjin Wu
2023-05-26 15:08           ` Conor Dooley
2023-05-26 15:08             ` Conor Dooley
2023-05-28  7:52     ` Willy Tarreau
2023-05-28  7:52       ` Willy Tarreau
2023-05-24 17:54 ` [PATCH 07/13] selftests/nolibc: remove the duplicated gettimeofday_bad2 Zhangjin Wu
2023-05-24 17:54   ` Zhangjin Wu
2023-05-24 17:55 ` [PATCH 08/13] tools/nolibc: sys_lseek: riscv: use __NR_llseek for rv32 Zhangjin Wu
2023-05-24 17:55   ` Zhangjin Wu
2023-05-24 17:57 ` [PATCH 09/13] tools/nolibc: sys_poll: riscv: use __NR_ppoll_time64 " Zhangjin Wu
2023-05-24 17:57   ` Zhangjin Wu
2023-05-26  7:15   ` Thomas Weißschuh
2023-05-26  7:15     ` Thomas Weißschuh
2023-05-26  9:34     ` Arnd Bergmann
2023-05-26  9:34       ` Arnd Bergmann
2023-05-28  8:25       ` Zhangjin Wu
2023-05-28  8:25         ` Zhangjin Wu
2023-05-28  8:48         ` Arnd Bergmann
2023-05-28  8:48           ` Arnd Bergmann
2023-05-28 10:29         ` Willy Tarreau
2023-05-28 10:29           ` Willy Tarreau
2023-05-28 10:55           ` Arnd Bergmann
2023-05-28 10:55             ` Arnd Bergmann
2023-05-28 11:03             ` Willy Tarreau
2023-05-28 11:03               ` Willy Tarreau
2023-05-24 17:58 ` [PATCH 10/13] tools/nolibc: ppoll/ppoll_time64: add a missing argument Zhangjin Wu
2023-05-24 17:58   ` Zhangjin Wu
2023-05-24 17:59 ` [PATCH 11/13] tools/nolibc: sys_select: riscv: use __NR_pselect6_time64 for rv32 Zhangjin Wu
2023-05-24 17:59   ` Zhangjin Wu
2023-05-24 20:22   ` Thomas Weißschuh
2023-05-24 20:22     ` Thomas Weißschuh
2023-05-25  7:10     ` Zhangjin Wu
2023-05-25  7:10       ` Zhangjin Wu
2023-05-25  7:22       ` Thomas Weißschuh
2023-05-25  7:22         ` Thomas Weißschuh
2023-05-26  1:50         ` Zhangjin Wu
2023-05-26  1:50           ` Zhangjin Wu
2023-05-26  9:19   ` Arnd Bergmann
2023-05-26  9:19     ` Arnd Bergmann
2023-05-26 11:00     ` [PATCH 00/13] tools/nolibc: riscv: Add full rv32 support Zhangjin Wu
2023-05-26 11:00       ` Zhangjin Wu
2023-05-26 11:13       ` Arnd Bergmann
2023-05-26 11:13         ` Arnd Bergmann
2023-05-24 18:02 ` [PATCH 12/13] tools/nolibc: sys_wait4: riscv: use __NR_waitid for rv32 Zhangjin Wu
2023-05-24 18:02   ` Zhangjin Wu
2023-05-24 18:03 ` [PATCH 13/13] tools/nolibc: sys_gettimeofday: riscv: use __NR_clock_gettime64 " Zhangjin Wu
2023-05-24 18:03   ` Zhangjin Wu
2023-05-26  7:38   ` Thomas Weißschuh
2023-05-26  7:38     ` Thomas Weißschuh
2023-05-27  1:26     ` Zhangjin Wu
2023-05-27  1:26       ` Zhangjin Wu
2023-05-27  3:39       ` Zhangjin Wu
2023-05-27  3:39         ` Zhangjin Wu
2023-05-27  5:12       ` Willy Tarreau
2023-05-27  5:12         ` Willy Tarreau
2023-05-24 18:24 ` [PATCH 00/13] tools/nolibc: riscv: Add full rv32 support Zhangjin Wu
2023-05-24 18:24   ` Zhangjin Wu
2023-05-28  7:59 ` Willy Tarreau
2023-05-28  7:59   ` Willy Tarreau
2023-05-28  8:42   ` Thomas Weißschuh
2023-05-28  8:42     ` Thomas Weißschuh
2023-05-28  9:41     ` Thomas Weißschuh
2023-05-28  9:41       ` Thomas Weißschuh
2023-05-28 10:17       ` Willy Tarreau
2023-05-28 10:17         ` Willy Tarreau
2023-05-28 10:39   ` Zhangjin Wu
2023-05-28 10:39     ` Zhangjin Wu
2023-05-28 11:33     ` Willy Tarreau
2023-05-28 11:33       ` Willy Tarreau
2023-05-28 12:52       ` Zhangjin Wu
2023-05-28 12:52         ` Zhangjin Wu
2023-05-28 13:45     ` Thomas Weißschuh 
2023-05-28 13:45       ` Thomas Weißschuh 
2023-05-28 18:39       ` Zhangjin Wu
2023-05-28 18:39         ` Zhangjin Wu
2023-05-29  8:45         ` Thomas Weißschuh
2023-05-29  8:45           ` Thomas Weißschuh
2023-05-29 11:31           ` Willy Tarreau
2023-05-29 11:31             ` Willy Tarreau
2023-05-30 10:06             ` Zhangjin Wu
2023-05-30 10:06               ` Zhangjin Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1684949267.git.falcon@tinylab.org \
    --to=falcon@tinylab.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=thomas@t-8ch.de \
    --cc=w@1wt.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.