[PATCH v3 0/3] nolibc: Add getcwd() and readlink()
From: Daniel Palmer
Date: Thu Jul 02 2026 - 05:03:03 EST
I needed getcwd() for something. So I added that, then realised
I also needed readlink() to test the result of getcwd().
This adds getcwd() and readlink() then adds a test that uses
both.
Note: getcwd() has some behaviour where if the current directory
is unreachable then the kernel returns "(unreachable)" and this
needs some special handling. I checked what musl was doing for
this. It seems pretty difficult to test and maybe needs some
calls nolibc doesn't have yet. Basically: It looks right but
there is no test.
v3:
- Addressed the issues noted by sashiko (impressed by how good it is now)
- Use __LINE__ for the error numbers in the test to make it
easy to spot where it broke.
- Redid the nolibc test for all archs, all passed.
v2:
- Addressed Thomas' comments for readlink() and making the test depend on proc.
- Filled out getcwd() so it matches what musl is doing.
- Expanded the test a little to try to cover passing bad arguments.
Daniel Palmer (3):
tools/nolibc: unistd: Add getcwd()
tools/nolibc: unistd: Add readlink()
selftests/nolibc: Add test for getcwd() and readlink()
tools/include/nolibc/unistd.h | 58 ++++++++++++++++++++
tools/testing/selftests/nolibc/nolibc-test.c | 53 ++++++++++++++++++
2 files changed, 111 insertions(+)
--
2.53.0