[PATCH v2 nolibc 0/15] nolibc updates for v6.5]

From: Paul E. McKenney
Date: Mon Jun 12 2023 - 16:47:06 EST


Hello!

This series contains a second version of the nolibc updates for v6.5:

1. tools/nolibc: tests: use volatile to force stack smashing,
courtesy of Thomas Weißschuh.

2. tools/nolibc: tests: fix build on non-c99 compliant compilers,
courtesy of Willy Tarreau.

3. tools/nolibc: fix build of the test case using glibc, courtesy
of Willy Tarreau.

4. tools/nolibc: add libc-test binary, courtesy of Thomas Weißschuh.

5. tools/nolibc: add wrapper for memfd_create, courtesy of Thomas
Weißschuh.

6. tools/nolibc: implement fd-based FILE streams, courtesy of
Thomas Weißschuh.

7. tools/nolibc: add testcases for vfprintf, courtesy of Thomas
Weißschuh.

8. tools/nolibc: Fix build of stdio.h due to header ordering,
courtesy of Mark Brown.

9. tools/nolibc: use standard __asm__ statements, courtesy of
Thomas Weißschuh.

10. tools/nolibc: use __inline__ syntax, courtesy of Thomas
Weißschuh.

11. tools/nolibc: use C89 comment syntax, courtesy of Thomas
Weißschuh.

12. tools/nolibc: validate C89 compatibility, courtesy of Thomas
Weißschuh.

13. tools/nolibc: s390: provide custom implementation for sys_fork,
courtesy of Thomas Weißschuh.

14. tools/nolibc: add testcase for fork()/waitpid(), courtesy of
Thomas Weißschuh.

15. tools/nolibc: remove LINUX_REBOOT_ constants, courtesy of Thomas
Weißschuh.

16. tools/nolibc: riscv: Fix up load/store instructions for rv32,
courtesy of Zhangjin Wu.

17. tools/nolibc/unistd: add syscall(), courtesy of Thomas Weißschuh.

18. selftests/nolibc: syscall_args: use generic __NR_statx, courtesy
of Zhangjin Wu.

19. selftests/nolibc: reduce syscalls during space padding, courtesy
of Thomas Weißschuh.

20. tools/nolibc: aarch64: add stackprotector support, courtesy of
Thomas Weißschuh.

21. tools/nolibc: arm: add stackprotector support, courtesy of
Thomas Weißschuh.

22. tools/nolibc: loongarch: add stackprotector support, courtesy
of Thomas Weißschuh.

23. tools/nolibc: mips: add stackprotector support, courtesy of
Thomas Weißschuh.

24. tools/nolibc: riscv: add stackprotector support, courtesy of
Thomas Weißschuh.

25. tools/nolibc: fix typo pint -> point, courtesy of Thomas
Weißschuh.

26. tools/nolibc: x86_64: disable stack protector for _start,
courtesy of Thomas Weißschuh.

27. tools/nolibc: ensure stack protector guard is never zero,
courtesy of Thomas Weißschuh.

28. tools/nolibc: add test for __stack_chk_guard initialization,
courtesy of Thomas Weißschuh.

29. tools/nolibc: reformat list of headers to be installed, courtesy
of Thomas Weißschuh.

30. tools/nolibc: add autodetection for stackprotector support,
courtesy of Thomas Weißschuh.

31. tools/nolibc: simplify stackprotector compiler flags, courtesy
of Thomas Weißschuh.

32. tools/nolibc: fix segfaults on compilers without attribute
no_stack_protector, courtesy of Thomas Weißschuh.

33. tools/nolibc: s390: disable stackprotector in _start, courtesy
of Thomas Weißschuh.

34. tools/nolibc: add support for prctl(), courtesy of Thomas
Weißschuh.

35. selftests/nolibc: prevent coredumps during test execution,
courtesy of Thomas Weißschuh.

36. tools/nolibc: support nanoseconds in stat(), courtesy of
Thomas Weißschuh.

37. selftests/nolibc: print name instead of number for EOVERFLOW,
courtesy of Zhangjin Wu.

38. selftests/nolibc: remove the duplicated gettimeofday_bad2,
courtesy of Zhangjin Wu.

39. tools/nolibc: ppoll/ppoll_time64: add a missing argument,
courtesy of Zhangjin Wu.

40. selftests/nolibc: test_fork: fix up duplicated print, courtesy
of Zhangjin Wu.

41. tools/nolibc: ensure fast64 integer types have 64 bits, courtesy
of Thomas Weißschuh.

42. selftests/nolibc: remove test gettimeofday_null, courtesy of
Thomas Weißschuh.

43. selftests/nolibc: allow specify extra arguments for qemu,
courtesy of Zhangjin Wu.

44. selftests/nolibc: fix up compile warning with glibc on x86_64,
courtesy of Zhangjin Wu.

45. selftests/nolibc: not include limits.h for nolibc, courtesy of
Zhangjin Wu.

46. selftests/nolibc: use INT_MAX instead of __INT_MAX__, courtesy
of Zhangjin Wu.

47. tools/nolibc: arm: add missing my_syscall6, courtesy of
Zhangjin Wu.

48. tools/nolibc: open: fix up compile warning for arm, courtesy of
Zhangjin Wu.

49. selftests/nolibc: support two errnos with EXPECT_SYSER2(),
courtesy of Zhangjin Wu.

50. selftests/nolibc: remove gettimeofday_bad1/2 completely, courtesy
of Zhangjin Wu.

51. selftests/nolibc: add new gettimeofday test cases, courtesy of
Zhangjin Wu.

52. selftests/nolibc: also count skipped and failed tests in output,
courtesy of Willy Tarreau.

53. selftests/nolibc: make sure gcc always use little endian on MIPS,
courtesy of Willy Tarreau.

Thanx, Paul

------------------------------------------------------------------------

b/tools/include/nolibc/Makefile | 18 +
b/tools/include/nolibc/arch-aarch64.h | 32 +--
b/tools/include/nolibc/arch-arm.h | 44 ++--
b/tools/include/nolibc/arch-i386.h | 40 ++--
b/tools/include/nolibc/arch-loongarch.h | 38 ++--
b/tools/include/nolibc/arch-mips.h | 56 +++---
b/tools/include/nolibc/arch-riscv.h | 40 ++--
b/tools/include/nolibc/arch-s390.h | 2
b/tools/include/nolibc/arch-x86_64.h | 34 +--
b/tools/include/nolibc/arch.h | 2
b/tools/include/nolibc/compiler.h | 15 +
b/tools/include/nolibc/nolibc.h | 2
b/tools/include/nolibc/stackprotector.h | 4
b/tools/include/nolibc/stdint.h | 10 -
b/tools/include/nolibc/stdio.h | 95 +++++++---
b/tools/include/nolibc/stdlib.h | 18 -
b/tools/include/nolibc/string.h | 4
b/tools/include/nolibc/sys.h | 23 ++
b/tools/include/nolibc/types.h | 8
b/tools/include/nolibc/unistd.h | 15 +
b/tools/testing/selftests/nolibc/.gitignore | 1
b/tools/testing/selftests/nolibc/Makefile | 6
b/tools/testing/selftests/nolibc/nolibc-test.c | 8
tools/include/nolibc/Makefile | 1
tools/include/nolibc/arch-aarch64.h | 15 +
tools/include/nolibc/arch-arm.h | 38 +++-
tools/include/nolibc/arch-i386.h | 8
tools/include/nolibc/arch-loongarch.h | 15 +
tools/include/nolibc/arch-mips.h | 16 +
tools/include/nolibc/arch-riscv.h | 29 ++-
tools/include/nolibc/arch-s390.h | 13 +
tools/include/nolibc/arch-x86_64.h | 10 -
tools/include/nolibc/compiler.h | 10 +
tools/include/nolibc/stackprotector.h | 17 -
tools/include/nolibc/stdint.h | 14 +
tools/include/nolibc/sys.h | 108 +++++++----
tools/include/nolibc/types.h | 6
tools/testing/selftests/nolibc/Makefile | 39 ++--
tools/testing/selftests/nolibc/nolibc-test.c | 231 +++++++++++++++++++++----
39 files changed, 738 insertions(+), 347 deletions(-)