mbox series

[v2,0/7] tools/nolibc: add 32/64-bit powerpc support

Message ID cover.1690373704.git.falcon@tinylab.org (mailing list archive)
Headers show
Series tools/nolibc: add 32/64-bit powerpc support | expand

Message

Zhangjin Wu July 26, 2023, 2:48 p.m. UTC
Hi, Willy, Thomas

The suggestions of v1 nolibc powerpc patchset [1] from you have been applied,
here is v2.

Testing results:

- run with tinyconfig

     arch/board | result
    ------------|------------
    ppc/g3beige | 165 test(s): 158 passed,   7 skipped,   0 failed => status: warning.
    ppc/ppce500 | 165 test(s): 158 passed,   7 skipped,   0 failed => status: warning.
ppc64le/pseries | 165 test(s): 158 passed,   7 skipped,   0 failed => status: warning.
ppc64le/powernv | 165 test(s): 158 passed,   7 skipped,   0 failed => status: warning.
  ppc64/pseries | 165 test(s): 158 passed,   7 skipped,   0 failed => status: warning.
  ppc64/powernv | 165 test(s): 158 passed,   7 skipped,   0 failed => status: warning.

- run-user

    (Tested with -Os, -O0 and -O2)

    // for 32-bit PowerPC
    $ for arch in powerpc ppc; do make run-user ARCH=$arch CROSS_COMPILE=powerpc-linux-gnu- ; done | grep status
    165 test(s): 157 passed,   8 skipped,   0 failed => status: warning
    165 test(s): 157 passed,   8 skipped,   0 failed => status: warning

    // for 64-bit big-endian PowerPC and 64-bit little-endian PowerPC
    $ for arch in ppc64 ppc64le; do make run-user ARCH=$arch CROSS_COMPILE=powerpc64le-linux-gnu- ; done | grep status
    165 test(s): 157 passed,   8 skipped,   0 failed => status: warning
    165 test(s): 157 passed,   8 skipped,   0 failed => status: warning

Changes from v1 --> v2:

- tools/nolibc: add support for powerpc

    Add missing arch-powerpc.h lines to arch.h

    Align with the other arch-<ARCH>.h, naming the variables
    with more meaningful words, such as _ret, _num, _arg1 ...

    Clean up the syscall instructions

    No line from musl now.

    Suggestons from Thomas

* tools/nolibc: add support for pppc64

    No change

* selftests/nolibc: add extra configs customize support

    To reduce complexity, merge the commands from the new extraconfig
    target to defconfig target and drop the extconfig target completely.

    Derived from Willy's suggestion of the tinyconfig patchset

* selftests/nolibc: add XARCH and ARCH mapping support

    To reduce complexity, let's use XARCH internally and only reserve
    ARCH as the input variable.

    Derived from Willy's suggestion

* selftests/nolibc: add test support for powerpc

    Add ppc as the default 32-bit variant for powerpc target, allow pass
    ARCH=ppc or ARCH=powerpc to test 32-bit powerpc
    
    Derived from Willy's suggestion

* selftests/nolibc: add test support for pppc64le

    Rename powerpc64le to ppc64le

    Suggestion from Willy

* selftests/nolibc: add test support for pppc64

    Rename powerpc64 to ppc64

    Suggestion from Willy

Best regards,
Zhangjin
---
[1]: https://lore.kernel.org/lkml/cover.1689713175.git.falcon@tinylab.org/

Zhangjin Wu (7):
  tools/nolibc: add support for powerpc
  tools/nolibc: add support for powerpc64
  selftests/nolibc: add extra configs customize support
  selftests/nolibc: add XARCH and ARCH mapping support
  selftests/nolibc: add test support for ppc
  selftests/nolibc: add test support for ppc64le
  selftests/nolibc: add test support for ppc64

 tools/include/nolibc/arch-powerpc.h     | 202 ++++++++++++++++++++++++
 tools/include/nolibc/arch.h             |   2 +
 tools/testing/selftests/nolibc/Makefile |  48 +++++-
 3 files changed, 244 insertions(+), 8 deletions(-)
 create mode 100644 tools/include/nolibc/arch-powerpc.h