Message ID | 20240807-nolibc-llvm-v2-0-c20f2f5fc7c2@weissschuh.net (mailing list archive) |
---|---|
Headers | show |
Series | tools/nolibc: improve LLVM/clang support | expand |
On 8/7/24 15:51, Thomas Weißschuh wrote: > The current support for LLVM and clang in nolibc and its testsuite is > very limited. > > * Various architectures plain do not compile > * The user *has* to specify "-Os" otherwise the program crashes > * Cross-compilation of the tests does not work > * Using clang is not wired up in run-tests.sh > > This series extends this support. > > Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> > --- > Changes in v2: > - Add support for all architectures > - powerpc: "selftests/nolibc: don't use libgcc when building with clang" > - mips: "tools/nolibc: mips: load current function to $t9" > - s390: "selftests/nolibc: use correct clang target for s390/powerz" > - Expand commit messages > - Use __nolibc_ prefix for custom macros > - Link to v1: https://lore.kernel.org/r/20240728-nolibc-llvm-v1-0-bc384269bc35@weissschuh.net > > --- > Thomas Weißschuh (15): > tools/nolibc: arm: use clang-compatible asm syntax > tools/nolibc: mips: load current function to $t9 > tools/nolibc: powerpc: limit stack-protector workaround to GCC > tools/nolibc: compiler: introduce __nolibc_has_attribute() > tools/nolibc: move entrypoint specifics to compiler.h > tools/nolibc: compiler: use attribute((naked)) if available > selftests/nolibc: report failure if no testcase passed > selftests/nolibc: avoid passing NULL to printf("%s") > selftests/nolibc: determine $(srctree) first > selftests/nolibc: add support for LLVM= parameter > selftests/nolibc: add cc-option compatible with clang cross builds > selftests/nolibc: run-tests.sh: avoid overwriting CFLAGS_EXTRA > selftests/nolibc: don't use libgcc when building with clang > selftests/nolibc: use correct clang target for s390/powerz > selftests/nolibc: run-tests.sh: allow building through LLVM > > tools/include/nolibc/arch-aarch64.h | 4 +-- > tools/include/nolibc/arch-arm.h | 8 +++--- > tools/include/nolibc/arch-i386.h | 4 +-- > tools/include/nolibc/arch-loongarch.h | 4 +-- > tools/include/nolibc/arch-mips.h | 8 ++++-- > tools/include/nolibc/arch-powerpc.h | 6 ++-- > tools/include/nolibc/arch-riscv.h | 4 +-- > tools/include/nolibc/arch-s390.h | 4 +-- > tools/include/nolibc/arch-x86_64.h | 4 +-- > tools/include/nolibc/compiler.h | 24 +++++++++++----- > tools/testing/selftests/nolibc/Makefile | 41 +++++++++++++++++++--------- > tools/testing/selftests/nolibc/nolibc-test.c | 4 +-- > tools/testing/selftests/nolibc/run-tests.sh | 16 ++++++++--- > 13 files changed, 83 insertions(+), 48 deletions(-) > --- > base-commit: ae1f550efc11eaf1496c431d9c6e784cb49124c5 > change-id: 20240727-nolibc-llvm-3fad68590d4c > > Best regards, Looks good to me. For selftests patches: Reviewed-by: Shuah Khan <skhan@linuxfoundation.org> thanks, -- Shuah
On Wed, Aug 07, 2024 at 04:09:41PM -0600, Shuah Khan wrote: > On 8/7/24 15:51, Thomas Weißschuh wrote: > > The current support for LLVM and clang in nolibc and its testsuite is > > very limited. > > > > * Various architectures plain do not compile > > * The user *has* to specify "-Os" otherwise the program crashes > > * Cross-compilation of the tests does not work > > * Using clang is not wired up in run-tests.sh > > > > This series extends this support. > > > > Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> > > --- > > Changes in v2: > > - Add support for all architectures > > - powerpc: "selftests/nolibc: don't use libgcc when building with clang" > > - mips: "tools/nolibc: mips: load current function to $t9" > > - s390: "selftests/nolibc: use correct clang target for s390/powerz" > > - Expand commit messages > > - Use __nolibc_ prefix for custom macros > > - Link to v1: https://lore.kernel.org/r/20240728-nolibc-llvm-v1-0-bc384269bc35@weissschuh.net > > > > --- > > Thomas Weißschuh (15): > > tools/nolibc: arm: use clang-compatible asm syntax > > tools/nolibc: mips: load current function to $t9 > > tools/nolibc: powerpc: limit stack-protector workaround to GCC > > tools/nolibc: compiler: introduce __nolibc_has_attribute() > > tools/nolibc: move entrypoint specifics to compiler.h > > tools/nolibc: compiler: use attribute((naked)) if available > > selftests/nolibc: report failure if no testcase passed > > selftests/nolibc: avoid passing NULL to printf("%s") > > selftests/nolibc: determine $(srctree) first > > selftests/nolibc: add support for LLVM= parameter > > selftests/nolibc: add cc-option compatible with clang cross builds > > selftests/nolibc: run-tests.sh: avoid overwriting CFLAGS_EXTRA > > selftests/nolibc: don't use libgcc when building with clang > > selftests/nolibc: use correct clang target for s390/powerz > > selftests/nolibc: run-tests.sh: allow building through LLVM > > > > tools/include/nolibc/arch-aarch64.h | 4 +-- > > tools/include/nolibc/arch-arm.h | 8 +++--- > > tools/include/nolibc/arch-i386.h | 4 +-- > > tools/include/nolibc/arch-loongarch.h | 4 +-- > > tools/include/nolibc/arch-mips.h | 8 ++++-- > > tools/include/nolibc/arch-powerpc.h | 6 ++-- > > tools/include/nolibc/arch-riscv.h | 4 +-- > > tools/include/nolibc/arch-s390.h | 4 +-- > > tools/include/nolibc/arch-x86_64.h | 4 +-- > > tools/include/nolibc/compiler.h | 24 +++++++++++----- > > tools/testing/selftests/nolibc/Makefile | 41 +++++++++++++++++++--------- > > tools/testing/selftests/nolibc/nolibc-test.c | 4 +-- > > tools/testing/selftests/nolibc/run-tests.sh | 16 ++++++++--- > > 13 files changed, 83 insertions(+), 48 deletions(-) > > --- > > base-commit: ae1f550efc11eaf1496c431d9c6e784cb49124c5 > > change-id: 20240727-nolibc-llvm-3fad68590d4c > > > > Best regards, > > Looks good to me. For selftests patches: > > Reviewed-by: Shuah Khan <skhan@linuxfoundation.org> And all the series looks good to me as well (modulo that tiny "powerz" vs "systemz" mentioned in the 14th patch's commit message). The commit messages are now way more detailed and more pleasant to go through, thanks for that! Acked-by: Willy Tarreau <w@1wt.eu> Willy
The current support for LLVM and clang in nolibc and its testsuite is very limited. * Various architectures plain do not compile * The user *has* to specify "-Os" otherwise the program crashes * Cross-compilation of the tests does not work * Using clang is not wired up in run-tests.sh This series extends this support. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> --- Changes in v2: - Add support for all architectures - powerpc: "selftests/nolibc: don't use libgcc when building with clang" - mips: "tools/nolibc: mips: load current function to $t9" - s390: "selftests/nolibc: use correct clang target for s390/powerz" - Expand commit messages - Use __nolibc_ prefix for custom macros - Link to v1: https://lore.kernel.org/r/20240728-nolibc-llvm-v1-0-bc384269bc35@weissschuh.net --- Thomas Weißschuh (15): tools/nolibc: arm: use clang-compatible asm syntax tools/nolibc: mips: load current function to $t9 tools/nolibc: powerpc: limit stack-protector workaround to GCC tools/nolibc: compiler: introduce __nolibc_has_attribute() tools/nolibc: move entrypoint specifics to compiler.h tools/nolibc: compiler: use attribute((naked)) if available selftests/nolibc: report failure if no testcase passed selftests/nolibc: avoid passing NULL to printf("%s") selftests/nolibc: determine $(srctree) first selftests/nolibc: add support for LLVM= parameter selftests/nolibc: add cc-option compatible with clang cross builds selftests/nolibc: run-tests.sh: avoid overwriting CFLAGS_EXTRA selftests/nolibc: don't use libgcc when building with clang selftests/nolibc: use correct clang target for s390/powerz selftests/nolibc: run-tests.sh: allow building through LLVM tools/include/nolibc/arch-aarch64.h | 4 +-- tools/include/nolibc/arch-arm.h | 8 +++--- tools/include/nolibc/arch-i386.h | 4 +-- tools/include/nolibc/arch-loongarch.h | 4 +-- tools/include/nolibc/arch-mips.h | 8 ++++-- tools/include/nolibc/arch-powerpc.h | 6 ++-- tools/include/nolibc/arch-riscv.h | 4 +-- tools/include/nolibc/arch-s390.h | 4 +-- tools/include/nolibc/arch-x86_64.h | 4 +-- tools/include/nolibc/compiler.h | 24 +++++++++++----- tools/testing/selftests/nolibc/Makefile | 41 +++++++++++++++++++--------- tools/testing/selftests/nolibc/nolibc-test.c | 4 +-- tools/testing/selftests/nolibc/run-tests.sh | 16 ++++++++--- 13 files changed, 83 insertions(+), 48 deletions(-) --- base-commit: ae1f550efc11eaf1496c431d9c6e784cb49124c5 change-id: 20240727-nolibc-llvm-3fad68590d4c Best regards,