linux-stable/usr
Masahiro Yamada 02a6e4be2f kbuild: prevent exported headers from including <stdlib.h>, <stdbool.h>
Some UAPI headers included <stdlib.h>, like this:

  #ifndef __KERNEL__
  #include <stdlib.h>
  #endif

As it turned out, they just included it for no good reason.

After some fixes, now I can compile-test UAPI headers
(CONFIG_UAPI_HEADER_TEST=y) without including <stdlib.h> from the
system header search paths.

To avoid somebody getting it back again, this commit adds the dummy
header, usr/dummy-include/stdlib.h

I added $(srctree)/usr/dummy-include to the header search paths.
Because it is searched before the system directories, if someone
tries to include <stdlib.h>, they will see the error message.

While I am here, I also replaced $(objtree)/usr/include with $(obj),
but it has no functional change.

If we can make kernel headers self-contained (that is, none of exported
kernel headers includes system headers), we will be able to add the
-nostdinc flag, but that is much far from where we stand now.

As a realistic solution, we can ban header inclusion individually by
putting a dummy header into usr/dummy-include/.

Currently, no header include <stdbool.h>. I put it as well before somebody
attempts to use it.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-05-13 10:56:10 +02:00
..
dummy-include kbuild: prevent exported headers from including <stdlib.h>, <stdbool.h> 2022-05-13 10:56:10 +02:00
include kbuild: prevent exported headers from including <stdlib.h>, <stdbool.h> 2022-05-13 10:56:10 +02:00
.gitignore .gitignore: prefix local generated files with a slash 2021-05-02 00:43:35 +09:00
Kconfig initramfs: Remove redundant dependency of RD_ZSTD on BLK_DEV_INITRD 2021-02-24 15:12:06 +09:00
Makefile kbuild: unify cmd_copy and cmd_shipped 2022-02-14 10:37:32 +09:00
default_cpio_list initramfs: add default_cpio_list, and delete -d option support 2020-01-16 00:25:22 +09:00
gen_init_cpio.c initramfs: Check timestamp to prevent broken cpio archive 2021-10-24 13:48:40 +09:00
gen_initramfs.sh kbuild: replace LANG=C with LC_ALL=C 2021-05-02 00:43:35 +09:00
initramfs_data.S initramfs: refactor the initramfs build rules 2020-01-16 00:26:21 +09:00