From: "Paul E. McKenney" <[email protected]>
To: [email protected]
Cc: [email protected], [email protected], [email protected]
Subject: [PATCH nolibc 0/61] nolibc updates for v5.19
Date: Mon, 18 Apr 2022 17:42:19 -0700 [thread overview]
Message-ID: <20220419004219.GA3952301@paulmck-ThinkPad-P17-Gen-1> (raw)
Hello!
This series adds a number of library functions and splits this library
into multiple files.
1. use pselect6 on RISCV, courtesy of Willy Tarreau.
2. guard the main file against multiple inclusion, courtesy of
Willy Tarreau.
3. move the standard type definitions to std.h, courtesy of Willy
Tarreau.
4. split syscall-specific definitions into their own files, courtesy
of Willy Tarreau.
5. split arch-specific code into individual files, courtesy of
Willy Tarreau.
6. split the syscall definitions into their own file, courtesy of
Willy Tarreau.
7. extract the stdlib-specific functions to their own file, courtesy
of Willy Tarreau.
8. split the string functions into string.h, courtesy of Willy
Tarreau.
9. split the is* functions to ctype.h, courtesy of Willy Tarreau.
10. add the missing is* functions, courtesy of Willy Tarreau.
11. move the FD_* functions to macros in types.h, courtesy of Willy
Tarreau.
12. make FD_SETSIZE configurable, courtesy of Willy Tarreau.
13. move makedev to types.h and make it a macro, courtesy of Willy
Tarreau.
14. move ltoa() to stdlib.h, courtesy of Willy Tarreau.
15. replace the ltoa() function with more efficient ones, courtesy
of Willy Tarreau.
16. add i64toa() and u64toa(), courtesy of Willy Tarreau.
17. add utoh() and u64toh(), courtesy of Willy Tarreau.
18. add a minimal set of stdio functions, courtesy of Willy Tarreau.
19. add stdin/stdout/stderr and fget*/fput* functions, courtesy of
Willy Tarreau.
20. add fwrite() to stdio, courtesy of Willy Tarreau.
21. add a minimal [vf]printf() implementation, courtesy of Willy
Tarreau.
22. define EXIT_SUCCESS and EXIT_FAILURE, courtesy of Willy Tarreau.
23. add perror() to report the errno value, courtesy of Willy Tarreau.
24. make open() take a vararg on the 3rd argument, courtesy of
Willy Tarreau.
25. avoid a 64-bit shift in u64toh_r(), courtesy of Willy Tarreau.
26. make raise() use the lower level syscalls only, courtesy of
Willy Tarreau.
27. make getpgrp(), getpid(), gettid() not set errno, courtesy of
Willy Tarreau.
28. use unidirectional variants for memcpy(), courtesy of Willy
Tarreau.
29. slightly simplify memmove(), courtesy of Willy Tarreau.
30. add strncpy() and strlcpy(), courtesy of Willy Tarreau.
31. add tiny versions of strncat() and strlcat(), courtesy of Willy
Tarreau.
32. move exported functions to their own section, courtesy of Willy
Tarreau.
33. mark the _start symbol as weak, courtesy of Willy Tarreau.
34. define PATH_MAX and MAXPATHLEN, courtesy of Willy Tarreau.
35. export memset() and memmove(), courtesy of Willy Tarreau.
36. extract errno.h from sys.h, courtesy of Willy Tarreau.
37. extract msleep(), sleep(), tcsetpgrp() to unistd.h, courtesy of
Willy Tarreau.
38. add usleep(), courtesy of Willy Tarreau.
39. move raise() to signal.h, courtesy of Willy Tarreau.
40. create time.h with time(), courtesy of Willy Tarreau.
41. also mention how to build by just setting the include path,
courtesy of Willy Tarreau.
42. implement abort(), courtesy of Willy Tarreau.
43. make printf(%s) accept NULL, courtesy of Willy Tarreau.
44. add a simple getenv() implementation, courtesy of Willy Tarreau.
45. add support for '%p' to vfprintf(), courtesy of Willy Tarreau.
46. add strcmp() and strncmp(), courtesy of Willy Tarreau.
47. add syscall definition for getppid(), courtesy of Willy Tarreau.
48. add poll() and waitpid() flag definitions, courtesy of Willy
Tarreau.
49. add a makefile to install headers, courtesy of Willy Tarreau.
50. add the nolibc subdir to the common Makefile, courtesy of Willy
Tarreau.
51. do not use __builtin_strlen() at -O0, courtesy of Willy Tarreau.
52. only reference the external environ when inlined, courtesy of
Willy Tarreau.
53. x86-64: Update System V ABI document link, courtesy of Ammar
Faizi.
54. Replace `asm` with `__asm__`, courtesy of Ammar Faizi.
55. Remove .global _start from the entry point code, courtesy of
Ammar Faizi.
56. i386: Implement syscall with 6 arguments, courtesy of Ammar Faizi.
57. Implement `mmap()` and `munmap()`, courtesy of Ammar Faizi.
58. Implement `offsetof()` and `container_of()` macro, courtesy of
Ammar Faizi.
59. Implement `malloc()`, `calloc()`, `realloc()` and `free()`,
courtesy of Ammar Faizi.
60. Implement `strnlen()`, courtesy of Ammar Faizi.
61. Implement `strdup()` and `strndup()`, courtesy of Ammar Faizi.
Thanx, Paul
------------------------------------------------------------------------
b/tools/Makefile | 4
b/tools/include/nolibc/Makefile | 42
b/tools/include/nolibc/arch-aarch64.h | 199 ++
b/tools/include/nolibc/arch-arm.h | 204 ++
b/tools/include/nolibc/arch-i386.h | 196 ++
b/tools/include/nolibc/arch-mips.h | 215 ++
b/tools/include/nolibc/arch-riscv.h | 204 ++
b/tools/include/nolibc/arch-x86_64.h | 215 ++
b/tools/include/nolibc/arch.h | 32
b/tools/include/nolibc/ctype.h | 22
b/tools/include/nolibc/errno.h | 27
b/tools/include/nolibc/nolibc.h | 3
b/tools/include/nolibc/signal.h | 22
b/tools/include/nolibc/std.h | 49
b/tools/include/nolibc/stdio.h | 57
b/tools/include/nolibc/stdlib.h | 85 +
b/tools/include/nolibc/string.h | 107 +
b/tools/include/nolibc/sys.h | 1189 +++++++++++++++
b/tools/include/nolibc/time.h | 28
b/tools/include/nolibc/types.h | 133 +
b/tools/include/nolibc/unistd.h | 46
tools/include/nolibc/arch-aarch64.h | 76 -
tools/include/nolibc/arch-arm.h | 60
tools/include/nolibc/arch-i386.h | 81 -
tools/include/nolibc/arch-mips.h | 64
tools/include/nolibc/arch-riscv.h | 76 -
tools/include/nolibc/arch-x86_64.h | 76 -
tools/include/nolibc/ctype.h | 79 +
tools/include/nolibc/nolibc.h | 2557 ----------------------------------
tools/include/nolibc/stdio.h | 297 +++
tools/include/nolibc/stdlib.h | 484 +++++-
tools/include/nolibc/string.h | 200 ++
tools/include/nolibc/sys.h | 138 +
tools/include/nolibc/types.h | 76 -
tools/include/nolibc/unistd.h | 8
35 files changed, 4480 insertions(+), 2871 deletions(-)
next reply other threads:[~2022-04-19 0:42 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-19 0:42 Paul E. McKenney [this message]
2022-04-19 0:41 ` [PATCH nolibc 01/61] tools/nolibc: use pselect6 on RISCV Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 02/61] tools/nolibc: guard the main file against multiple inclusion Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 03/61] tools/nolibc/std: move the standard type definitions to std.h Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 04/61] tools/nolibc/types: split syscall-specific definitions into their own files Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 05/61] tools/nolibc/arch: split arch-specific code into individual files Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 06/61] tools/nolibc/sys: split the syscall definitions into their own file Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 07/61] tools/nolibc/stdlib: extract the stdlib-specific functions to " Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 08/61] tools/nolibc/string: split the string functions into string.h Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 09/61] tools/nolibc/ctype: split the is* functions to ctype.h Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 10/61] tools/nolibc/ctype: add the missing is* functions Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 11/61] tools/nolibc/types: move the FD_* functions to macros in types.h Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 12/61] tools/nolibc/types: make FD_SETSIZE configurable Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 13/61] tools/nolibc/types: move makedev to types.h and make it a macro Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 14/61] tools/nolibc/stdlib: move ltoa() to stdlib.h Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 15/61] tools/nolibc/stdlib: replace the ltoa() function with more efficient ones Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 16/61] tools/nolibc/stdlib: add i64toa() and u64toa() Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 17/61] tools/nolibc/stdlib: add utoh() and u64toh() Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 18/61] tools/nolibc/stdio: add a minimal set of stdio functions Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 19/61] tools/nolibc/stdio: add stdin/stdout/stderr and fget*/fput* functions Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 20/61] tools/nolibc/stdio: add fwrite() to stdio Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 21/61] tools/nolibc/stdio: add a minimal [vf]printf() implementation Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 22/61] tools/nolibc/types: define EXIT_SUCCESS and EXIT_FAILURE Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 23/61] tools/nolibc/stdio: add perror() to report the errno value Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 24/61] tools/nolibc/sys: make open() take a vararg on the 3rd argument Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 25/61] tools/nolibc/stdlib: avoid a 64-bit shift in u64toh_r() Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 26/61] tools/nolibc/stdlib: make raise() use the lower level syscalls only Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 27/61] tools/nolibc/sys: make getpgrp(), getpid(), gettid() not set errno Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 28/61] tools/nolibc/string: use unidirectional variants for memcpy() Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 29/61] tools/nolibc/string: slightly simplify memmove() Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 30/61] tools/nolibc/string: add strncpy() and strlcpy() Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 31/61] tools/nolibc/string: add tiny versions of strncat() and strlcat() Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 32/61] tools/nolibc: move exported functions to their own section Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 33/61] tools/nolibc/arch: mark the _start symbol as weak Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 34/61] tools/nolibc/types: define PATH_MAX and MAXPATHLEN Paul E. McKenney
2022-04-19 0:41 ` [PATCH nolibc 35/61] tools/nolibc/string: export memset() and memmove() Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 36/61] tools/nolibc/errno: extract errno.h from sys.h Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 37/61] tools/nolibc/unistd: extract msleep(), sleep(), tcsetpgrp() to unistd.h Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 38/61] tools/nolibc/unistd: add usleep() Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 39/61] tools/nolibc/signal: move raise() to signal.h Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 40/61] tools/nolibc/time: create time.h with time() Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 41/61] tools/nolibc: also mention how to build by just setting the include path Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 42/61] tools/nolibc/stdlib: implement abort() Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 43/61] tools/nolibc/stdio: make printf(%s) accept NULL Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 44/61] tools/nolibc/stdlib: add a simple getenv() implementation Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 45/61] tools/nolibc/stdio: add support for '%p' to vfprintf() Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 46/61] tools/nolibc/string: add strcmp() and strncmp() Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 47/61] tools/nolibc/sys: add syscall definition for getppid() Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 48/61] tools/nolibc/types: add poll() and waitpid() flag definitions Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 49/61] tools/nolibc: add a makefile to install headers Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 50/61] tools/nolibc: add the nolibc subdir to the common Makefile Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 51/61] tools/nolibc/string: do not use __builtin_strlen() at -O0 Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 52/61] tools/nolibc/stdlib: only reference the external environ when inlined Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 53/61] tools/nolibc: x86-64: Update System V ABI document link Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 54/61] tools/nolibc: Replace `asm` with `__asm__` Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 55/61] tools/nolibc: Remove .global _start from the entry point code Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 56/61] tools/nolibc: i386: Implement syscall with 6 arguments Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 57/61] tools/nolibc/sys: Implement `mmap()` and `munmap()` Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 58/61] tools/nolibc/types: Implement `offsetof()` and `container_of()` macro Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 59/61] tools/nolibc/stdlib: Implement `malloc()`, `calloc()`, `realloc()` and `free()` Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 60/61] tools/nolibc/string: Implement `strnlen()` Paul E. McKenney
2022-04-19 0:42 ` [PATCH nolibc 61/61] tools/nolibc/string: Implement `strdup()` and `strndup()` Paul E. McKenney
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=20220419004219.GA3952301@paulmck-ThinkPad-P17-Gen-1 \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox