kbuild: prevent exported headers from including <stdlib.h>, <stdbool.h>Some UAPI headers included <stdlib.h>, like this: #ifndef __KERNEL__ #include <stdlib.h> #endifAs it turned out, they
kbuild: prevent exported headers from including <stdlib.h>, <stdbool.h>Some UAPI headers included <stdlib.h>, like this: #ifndef __KERNEL__ #include <stdlib.h> #endifAs 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 thesystem header search paths.To avoid somebody getting it back again, this commit adds the dummyheader, usr/dummy-include/stdlib.hI added $(srctree)/usr/dummy-include to the header search paths.Because it is searched before the system directories, if someonetries 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 exportedkernel 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 byputting a dummy header into usr/dummy-include/.Currently, no header include <stdbool.h>. I put it as well before somebodyattempts 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>
show more ...