In chapter 6.10, after modify the Makefile by sed: If xxxLIBS & xxxINC = /tools/, make will results the header error.
If xxxLIBS & xxxINC = /cross-tools/, make will results the wrong lib format error. Only xxxLIBS = /tools/ && xxxINC=/cross-tools/, the compiling could complete. This issue I had meet ever. Now I do the compiling in a new platform (hardware and os), the same issue remains. In chapter 7.7 The compiling results error: conflict type. in the build/lib/ext2fs/ext2_type.h, the _u64 typedef with unsigned long long, but in the kernel header, the _u64 typedef with unsigned long. The type _s64 has similar comfliction Maybe it's a e2fsprogs bug: In file root/lib/ext2fs/ext2_types.h.in Line 89, the comment about SIZEOF_LONG_LONG/SIZEOF_LONG is *NOT* consists with the if-else branch: #ifdef __U64_TYPEDEF typedef __U64_TYPEDEF __u64; #else #if (@SIZEOF_INT@ == 8) typedef unsigned int __u64; #else #if (@SIZEOF_LONG_LONG@ == 8) // < ------- should long branch typedef unsigned long long __u64; #else #if (@SIZEOF_LONG@ == 8) typedef unsigned long __u64; // < ------- should long long branch #endif /* SIZEOF_LONG_LONG == 8 */ #endif /* SIZEOF_LONG == 8 */ #endif /* SIZEOF_INT == 8 */ #endif /* __U64_TYPEDEF */ #ifdef __S64_TYPEDEF typedef __S64_TYPEDEF __s64; #else #if (@SIZEOF_INT@ == 8) typedef int __s64; #else #if (@SIZEOF_LONG_LONG@ == 8) #if defined(__GNUC__) // < --------------- should long branch typedef __signed__ long long __s64; #else typedef signed long long __s64; #endif /* __GNUC__ */ #else #if (@SIZEOF_LONG@ == 8) typedef long __s64; // < ------------ should long long branch #endif /* SIZEOF_LONG_LONG == 8 */ #endif /* SIZEOF_LONG == 8 */ #endif /* SIZEOF_INT == 8 */ #endif /* __S64_TYPEDEF */ After I exchange the inconsist branches, all things work fine.
_______________________________________________ Clfs-support mailing list [email protected] http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org
