forked from mirrors/linux
		
	 02a6e4be2f
			
		
	
	
		02a6e4be2f
		
	
	
	
	
		
			
			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>
		
			
				
	
	
		
			7 lines
		
	
	
	
		
			169 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			7 lines
		
	
	
	
		
			169 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-only */
 | |
| #ifndef _STDLIB_H
 | |
| #define _STDLIB_H
 | |
| 
 | |
| #error "Please do not include <stdlib.h> from exported headers"
 | |
| 
 | |
| #endif /* _STDLIB_H */
 |