[PATCH 00/10] tools/nolibc: split out functionality into new headers

Thomas Weißschuh posted 10 patches 8 months ago
tools/include/nolibc/Makefile      |  11 +-
tools/include/nolibc/dirent.h      |   1 +
tools/include/nolibc/elf.h         |  15 +++
tools/include/nolibc/fcntl.h       |  69 +++++++++++
tools/include/nolibc/nolibc.h      |   8 ++
tools/include/nolibc/stdlib.h      |  26 -----
tools/include/nolibc/sys.h         | 230 -------------------------------------
tools/include/nolibc/sys/auxv.h    |  41 +++++++
tools/include/nolibc/sys/mman.h    |  63 ++++++++++
tools/include/nolibc/sys/stat.h    |  74 ++++++++++++
tools/include/nolibc/sys/syscall.h |  19 +++
tools/include/nolibc/sys/time.h    |  36 ++++++
tools/include/nolibc/sys/types.h   |   7 ++
tools/include/nolibc/sys/wait.h    |  71 ++++++++++++
tools/include/nolibc/unistd.h      |   6 -
15 files changed, 414 insertions(+), 263 deletions(-)
[PATCH 00/10] tools/nolibc: split out functionality into new headers
Posted by Thomas Weißschuh 8 months ago
Porting applications to nolibc is made harder by the lack of standard
header names. Split out the existing functionality from the big catch-all
headers into new dedicated ones.

This series does not introduce any new logic.

The last patch for sys/wait.h will conflict with 
"tools/nolibc: implement waitpid() in terms of waitid()" [0].
But as both patches will go through the nolibc tree anyways we can take
care of the conflict there.

Based on linux-nolibc.git/next

[0] https://lore.kernel.org/lkml/20250411-nolibc-kselftest-harness-v3-21-4d9c0295893f@linutronix.de/

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
---
Thomas Weißschuh (10):
      tools/nolibc: prepare for headers in subdirectories
      tools/nolibc: add elf.h
      tools/nolibc: move open() and friends to fcntl.h
      tools/nolibc: move getauxval() to sys/auxv.h
      tools/nolibc: move mmap() and friends to sys/mman.h
      tools/nolibc: move stat() and friends to sys/stat.h
      tools/nolibc: move syscall() to sys/syscall.h
      tools/nolibc: move gettimeofday() to sys/time.h
      tools/nolibc: add sys/types.h shim
      tools/nolibc: move wait() and friends to sys/wait.h

 tools/include/nolibc/Makefile      |  11 +-
 tools/include/nolibc/dirent.h      |   1 +
 tools/include/nolibc/elf.h         |  15 +++
 tools/include/nolibc/fcntl.h       |  69 +++++++++++
 tools/include/nolibc/nolibc.h      |   8 ++
 tools/include/nolibc/stdlib.h      |  26 -----
 tools/include/nolibc/sys.h         | 230 -------------------------------------
 tools/include/nolibc/sys/auxv.h    |  41 +++++++
 tools/include/nolibc/sys/mman.h    |  63 ++++++++++
 tools/include/nolibc/sys/stat.h    |  74 ++++++++++++
 tools/include/nolibc/sys/syscall.h |  19 +++
 tools/include/nolibc/sys/time.h    |  36 ++++++
 tools/include/nolibc/sys/types.h   |   7 ++
 tools/include/nolibc/sys/wait.h    |  71 ++++++++++++
 tools/include/nolibc/unistd.h      |   6 -
 15 files changed, 414 insertions(+), 263 deletions(-)
---
base-commit: 7c73c10b906778384843b9d3ac6c2224727bbf5c
change-id: 20250416-nolibc-split-sys-e7f83832ca77

Best regards,
-- 
Thomas Weißschuh <thomas.weissschuh@linutronix.de>

Re: [PATCH 00/10] tools/nolibc: split out functionality into new headers
Posted by Willy Tarreau 8 months ago
Hi Thomas!

On Wed, Apr 16, 2025 at 02:06:15PM +0200, Thomas Weißschuh wrote:
> Porting applications to nolibc is made harder by the lack of standard
> header names. Split out the existing functionality from the big catch-all
> headers into new dedicated ones.
> 
> This series does not introduce any new logic.
> 
> The last patch for sys/wait.h will conflict with 
> "tools/nolibc: implement waitpid() in terms of waitid()" [0].
> But as both patches will go through the nolibc tree anyways we can take
> care of the conflict there.
> 
> Based on linux-nolibc.git/next
> 
> [0] https://lore.kernel.org/lkml/20250411-nolibc-kselftest-harness-v3-21-4d9c0295893f@linutronix.de/
> 
> Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>

Nice work! Now we'll have sys/types.h, which will simplify the port to
many trivial programs that had to use it (as well as the few others of
course, but that one really stands out during tests). And I do appreciate
that we can continue to include everything at once using -include nolibc.h
without having to care for such details.

For the whole series: Acked-by: Willy Tarreau <w@1wt.eu>

Thanks!
Willy