Re: [PATCH] selftests: proc: include fcntl.h in proc-pidns
From: Amin Vakil
Date: Thu Jun 18 2026 - 12:17:09 EST
On 6/18/26 6:54 PM, Shuah Khan wrote:
On 6/18/26 09:14, Amin Vakil wrote:
proc-pidns.c uses open() and O_* flags, but does not include
<fcntl.h>. This breaks the proc selftests build with errors such as:
error: implicit declaration of function 'open'
error: 'O_WRONLY' undeclared
error: 'O_CREAT' undeclared
error: 'O_RDONLY' undeclared
Include <fcntl.h> to provide the declaration and flag definitions.
Did you install headers before compiling the test?
Sorry, no I hadn't.
But seems like problem is still relevant after make headers, I've tested now with these commands:
make -C tools/testing/selftests TARGETS=proc clean
make headers
make -C tools/testing/selftests TARGETS=proc
CC proc-pidns
proc-pidns.c: In function ‘touch’:
proc-pidns.c:34:18: error: implicit declaration of function ‘open’; did you mean ‘popen’? [-Wimplicit-function-declaration]
34 | int fd = open(path, O_WRONLY|O_CREAT|O_CLOEXEC, 0644);
| ^~~~
| popen
proc-pidns.c:34:29: error: ‘O_WRONLY’ undeclared (first use in this function)
34 | int fd = open(path, O_WRONLY|O_CREAT|O_CLOEXEC, 0644);
| ^~~~~~~~
proc-pidns.c:34:29: note: each undeclared identifier is reported only once for each function it appears in
proc-pidns.c:34:38: error: ‘O_CREAT’ undeclared (first use in this function)
34 | int fd = open(path, O_WRONLY|O_CREAT|O_CLOEXEC, 0644);
| ^~~~~~~
proc-pidns.c: In function ‘ns_setup’:
proc-pidns.c:49:54: error: ‘O_RDONLY’ undeclared (first use in this function); did you mean ‘MS_RDONLY’?
49 | self->host_mntns = open("/proc/self/ns/mnt", O_RDONLY|O_CLOEXEC);
| ^~~~~~~~
| MS_RDONLY
After applying the patch I've sent, error is gone.
My environment if relevant:
$ gcc --version
gcc (GCC) 16.1.1 20260430
$ make --version
GNU Make 4.4.1
Built for x86_64-pc-linux-gnu
$ ldd --version
ldd (GNU libc) 2.43
$ getconf GNU_LIBC_VERSION
glibc 2.43
Fixes: 5554d820f71c ("selftests/proc: add tests for new pidns APIs")
Tested with:
make -C tools/testing/selftests TARGETS=proc
Signed-off-by: Amin Vakil <info@xxxxxxxxxxxxx>
---
tools/testing/selftests/proc/proc-pidns.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/proc/proc-pidns.c b/tools/ testing/selftests/proc/proc-pidns.c
index 25b9a2933c45..6f7c10fe97b3 100644
--- a/tools/testing/selftests/proc/proc-pidns.c
+++ b/tools/testing/selftests/proc/proc-pidns.c
@@ -6,6 +6,7 @@
#include <assert.h>
#include <errno.h>
+#include <fcntl.h>
#include <sched.h>
#include <stdbool.h>
#include <stdlib.h>
thanks,
-- Shuah
Attachment:
OpenPGP_0x1EFC1864E9D9E56B.asc
Description: OpenPGP public key
Attachment:
OpenPGP_signature.asc
Description: OpenPGP digital signature