On 2025-05-21 14:03:37+0100, Mark Brown wrote:
On Thu, May 15, 2025 at 09:57:47PM +0200, Thomas Weißschuh wrote:
This is the location regular userspace expects this definition.
Signed-off-by: Thomas Weißschuh linux@weissschuh.net
This is in -next as b8c436bbef0f2a and breaks the build of all the arm64 selftests using nolibc:
clang --target=aarch64-linux-gnu -fintegrated-as -fno-asynchronous-unwind-tables -fno-ident -s -Os -nostdlib \ -static -include ../../../../include/nolibc/nolibc.h \ -ffreestanding -Wall tpidr2.c -o /home/broonie/git/bisect/tools/testing/selftests/arm64/abi/tpidr2 -lgcc In file included from <built-in>:1: In file included from ./../../../../include/nolibc/nolibc.h:100: ./../../../../include/nolibc/sys/ioctl.h:8:10: fatal error: 'nolibc.h' file not found 8 | #include "nolibc.h" | ^~~~~~~~~~ 1 error generated.
This happens because:
+++ b/tools/include/nolibc/sys/ioctl.h @@ -0,0 +1,29 @@ +/* SPDX-License-Identifier: LGPL-2.1 OR MIT */ +/*
- Ioctl definitions for NOLIBC
- Copyright (C) 2017-2021 Willy Tarreau w@1wt.eu
- */
+/* make sure to include all global symbols */ +#include "nolibc.h"
assumes that the nolibc include directory is in the include path, or otherwise set up with a -I path, previously you just had to include nolibc.h with the includes that are there working due to being relative to nolibc.h. I'll send a patch for the arm64 tests.
Thanks for the report. Inside sys/ this should actually be #include "../nolibc.h". I'll doublecheck all of sys/ and see why our new header checks didn't catch this.
It looks like the RISC-V selftests are also impacted, I didn't spot any other users that didn't already have an -I.
No changes to the selftests should be necessary.