 f54bc3985a
			
		
	
	f54bc3985a
	
	
	
		
			
			Including "sys/stat.h" from newer glibc will cause __u64 from linux uapi header to be included, causing compilation failure for u-boot tools USE_HOSTCC Remove typedef for __u64 in include/compiler.h to fix the issue. It should be safe because as of u-boot-2018.03, no ref to __u64 is found under u-boot tools/ directory Error message snippet follows HOSTCC tools/mkenvimage.o In file included from /usr/include/asm-generic/types.h:7, from /usr/include/asm/types.h:5, from /usr/include/linux/types.h:5, from /usr/include/linux/stat.h:5, from /usr/include/bits/statx.h:30, from /usr/include/sys/stat.h:446, from tools/mkenvimage.c:21: /usr/include/asm-generic/int-ll64.h:31:42: error: conflicting types for '__u64' 31 | __extension__ typedef unsigned long long __u64; | ^~~~~ In file included from <command-line>: ././include/compiler.h:69:18: note: previous declaration of '__u64' was here 69 | typedef uint64_t __u64; | ^~~~~ make[5]: *** [scripts/Makefile.host:116: tools/mkenvimage.o] Error 1 Ref: https://forum.openwrt.org/t/compile-error-19-07/44423 Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1699194 Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
		
			
				
	
	
		
			35 lines
		
	
	
		
			803 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			803 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/include/compiler.h
 | |
| +++ b/include/compiler.h
 | |
| @@ -66,6 +66,10 @@ typedef uint8_t __u8;
 | |
|  typedef uint16_t __u16;
 | |
|  typedef uint32_t __u32;
 | |
|  typedef unsigned int uint;
 | |
| +#ifndef linux
 | |
| +typedef int __kernel_daddr_t;
 | |
| +typedef unsigned int __kernel_ino_t;
 | |
| +#endif
 | |
|  
 | |
|  #define uswap_16(x) \
 | |
|  	((((x) & 0xff00) >> 8) | \
 | |
| --- a/include/linux/posix_types.h
 | |
| +++ b/include/linux/posix_types.h
 | |
| @@ -43,6 +43,8 @@ typedef void (*__kernel_sighandler_t)(in
 | |
|  /* Type of a SYSV IPC key.  */
 | |
|  typedef int __kernel_key_t;
 | |
|  
 | |
| +#ifdef linux
 | |
|  #include <asm/posix_types.h>
 | |
| +#endif
 | |
|  
 | |
|  #endif /* _LINUX_POSIX_TYPES_H */
 | |
| --- a/include/linux/types.h
 | |
| +++ b/include/linux/types.h
 | |
| @@ -2,7 +2,6 @@
 | |
|  #define _LINUX_TYPES_H
 | |
|  
 | |
|  #include <linux/posix_types.h>
 | |
| -#include <asm/types.h>
 | |
|  #include <stdbool.h>
 | |
|  
 | |
|  #ifndef __KERNEL_STRICT_NAMES
 |