[PATCH 0/5] tools/nolibc: cleanups, statx(), getuid()

From: Willy Tarreau
Date: Sat Mar 04 2023 - 09:29:10 EST


Hello Paul,

this is the second series of updates for nolibc. The work was
started by Feiyang Chen who got rid of some local definitions in
favor of inclusion of linux/fcntl.h. Consecutive to this I noticed
new issues related to redefinitions of S_IFDIR and friends and
figured that it can happen with some compilers that /usr/include is
inconditionally checked and causes annoyance around these flags that
are defined both in glibc and the kernel. The UAPI includes already
have a specific check for this, so the issue was fixed by always
including linux/stat.h in types.h and conditionally defining our own
flags like UAPI does.

Feiyang also added statx() because loongarch needs it for stat().

Finally I added getuid() and geteuid() so that we can finally skip
the two tests that require privileges in "run-user" native tests. Now
they appear as "SKIPPED" in the output, and the test is reported as
successful since there's no error anymore. I was finding it really
annoying to always have to carefully check errors that were expected
on success, now that's just bad old memories.

This series applies on top of Vincent's stdint series that was rebased
on top of your dev.2023.02.22a branch. Likewise, if it could make it
for 2.4 that would be great, especially since the next loongarch series
depends on it.

Thanks!
Willy

Feiyang Chen (2):
tools/nolibc: Include linux/fcntl.h and remove duplicate code
tools/nolibc: Add statx() and make stat() rely on statx() if necessary

Willy Tarreau (3):
tools/nolibc: add getuid() and geteuid()
selftests/nolibc: skip the chroot_root and link_dir tests when not
privileged
tools/nolibc: check for S_I* macros before defining them

tools/include/nolibc/sys.h | 100 ++++++++++++++++++-
tools/include/nolibc/types.h | 28 ++++--
tools/testing/selftests/nolibc/nolibc-test.c | 8 +-
3 files changed, 127 insertions(+), 9 deletions(-)

--
2.17.5