Submitted By: Ken Moffat Date: 2006-07-29 Initial Package Version: 1.39 Origin: Self. Upstream status: not submitted, pending comments on bug 1529730 for e2fsprogs. Description: Revert changes to two .h.in files which prevent cross-compilation for powerpc64 from x86 and x86_64. I believe the problem will appear whenever the machine doing the build uses long long for __{s,u}64and the target uses long, and perhaps also the other way around. The following arches that are in the book use long: alpha, mips64, ppc64, sparc64. None except ppc64 have reported this, so perhaps there is something different there. --- e2fsprogs-1.39/lib/ext2fs/ext2_types.h.in 2006-04-09 02:39:39.000000000 +0100 +++ e2fsprogs-1.38/lib/ext2fs/ext2_types.h.in 2004-04-03 16:20:26.000000000 +0100 @@ -7,128 +7,55 @@ !defined(_EXT2_TYPES_H)) #define _EXT2_TYPES_H -@ASM_TYPES_HEADER@ - -#ifdef __U8_TYPEDEF -typedef __U8_TYPEDEF __u8; -#else typedef unsigned char __u8; -#endif - -#ifdef __S8_TYPEDEF -typedef __S8_TYPEDEF __s8; -#else typedef signed char __s8; -#endif -#ifdef __U16_TYPEDEF -typedef __U16_TYPEDEF __u16; +#if (@SIZEOF_INT@ == 8) +typedef int __s64; +typedef unsigned int __u64; #else -#if (@SIZEOF_INT@ == 2) -typedef unsigned int __u16; +#if (@SIZEOF_LONG@ == 8) +typedef long __s64; +typedef unsigned long __u64; #else -#if (@SIZEOF_SHORT@ == 2) -typedef unsigned short __u16; +#if (@SIZEOF_LONG_LONG@ == 8) +#if defined(__GNUC__) +typedef __signed__ long long __s64; #else - ?==error: undefined 16 bit type -#endif /* SIZEOF_SHORT == 2 */ -#endif /* SIZEOF_INT == 2 */ -#endif /* __U16_TYPEDEF */ +typedef signed long long __s64; +#endif /* __GNUC__ */ +typedef unsigned long long __u64; +#endif /* SIZEOF_LONG_LONG == 8 */ +#endif /* SIZEOF_LONG == 8 */ +#endif /* SIZEOF_INT == 8 */ -#ifdef __S16_TYPEDEF -typedef __S16_TYPEDEF __s16; -#else #if (@SIZEOF_INT@ == 2) typedef int __s16; +typedef unsigned int __u16; #else #if (@SIZEOF_SHORT@ == 2) typedef short __s16; +typedef unsigned short __u16; #else ?==error: undefined 16 bit type #endif /* SIZEOF_SHORT == 2 */ #endif /* SIZEOF_INT == 2 */ -#endif /* __S16_TYPEDEF */ - - -#ifdef __U32_TYPEDEF -typedef __U32_TYPEDEF __u32; -#else -#if (@SIZEOF_INT@ == 4) -typedef unsigned int __u32; -#else -#if (@SIZEOF_LONG@ == 4) -typedef unsigned long __u32; -#else -#if (@SIZEOF_SHORT@ == 4) -typedef unsigned short __u32; -#else - ?== error: undefined 32 bit type -#endif /* SIZEOF_SHORT == 4 */ -#endif /* SIZEOF_LONG == 4 */ -#endif /* SIZEOF_INT == 4 */ -#endif /* __U32_TYPEDEF */ -#ifdef __S32_TYPEDEF -typedef __S32_TYPEDEF __s32; -#else #if (@SIZEOF_INT@ == 4) typedef int __s32; +typedef unsigned int __u32; #else #if (@SIZEOF_LONG@ == 4) typedef long __s32; +typedef unsigned long __u32; #else #if (@SIZEOF_SHORT@ == 4) typedef short __s32; +typedef unsigned short __u32; #else ?== error: undefined 32 bit type #endif /* SIZEOF_SHORT == 4 */ #endif /* SIZEOF_LONG == 4 */ #endif /* SIZEOF_INT == 4 */ -#endif /* __S32_TYPEDEF */ - -#ifdef __U64_TYPEDEF -typedef __U64_TYPEDEF __u64; -#else -#if (@SIZEOF_INT@ == 8) -typedef unsigned int __u64; -#else -#if (@SIZEOF_LONG@ == 8) -typedef unsigned long __u64; -#else -#if (@SIZEOF_LONG_LONG@ == 8) -typedef unsigned long long __u64; -#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@ == 8) -typedef long __s64; -#else -#if (@SIZEOF_LONG_LONG@ == 8) -#if defined(__GNUC__) -typedef __signed__ long long __s64; -#else -typedef signed long long __s64; -#endif /* __GNUC__ */ -#endif /* SIZEOF_LONG_LONG == 8 */ -#endif /* SIZEOF_LONG == 8 */ -#endif /* SIZEOF_INT == 8 */ -#endif /* __S64_TYPEDEF */ - -#undef __S8_TYPEDEF -#undef __U8_TYPEDEF -#undef __S16_TYPEDEF -#undef __U16_TYPEDEF -#undef __S32_TYPEDEF -#undef __U32_TYPEDEF -#undef __S64_TYPEDEF -#undef __U64_TYPEDEF #endif /* _*_TYPES_H */ --- e2fsprogs-1.39/lib/blkid/blkid_types.h.in 2006-04-09 02:43:44.000000000 +0100 +++ e2fsprogs-1.38/lib/blkid/blkid_types.h.in 2004-03-30 07:55:10.000000000 +0100 @@ -7,128 +7,55 @@ !defined(_EXT2_TYPES_H)) #define _BLKID_TYPES_H -@ASM_TYPES_HEADER@ - -#ifdef __U8_TYPEDEF -typedef __U8_TYPEDEF __u8; -#else typedef unsigned char __u8; -#endif - -#ifdef __S8_TYPEDEF -typedef __S8_TYPEDEF __s8; -#else typedef signed char __s8; -#endif -#ifdef __U16_TYPEDEF -typedef __U16_TYPEDEF __u16; +#if (@SIZEOF_INT@ == 8) +typedef int __s64; +typedef unsigned int __u64; #else -#if (@SIZEOF_INT@ == 2) -typedef unsigned int __u16; +#if (@SIZEOF_LONG@ == 8) +typedef long __s64; +typedef unsigned long __u64; #else -#if (@SIZEOF_SHORT@ == 2) -typedef unsigned short __u16; +#if (@SIZEOF_LONG_LONG@ == 8) +#if defined(__GNUC__) +typedef __signed__ long long __s64; #else - ?==error: undefined 16 bit type -#endif /* SIZEOF_SHORT == 2 */ -#endif /* SIZEOF_INT == 2 */ -#endif /* __U16_TYPEDEF */ +typedef signed long long __s64; +#endif /* __GNUC__ */ +typedef unsigned long long __u64; +#endif /* SIZEOF_LONG_LONG == 8 */ +#endif /* SIZEOF_LONG == 8 */ +#endif /* SIZEOF_INT == 8 */ -#ifdef __S16_TYPEDEF -typedef __S16_TYPEDEF __s16; -#else #if (@SIZEOF_INT@ == 2) typedef int __s16; +typedef unsigned int __u16; #else #if (@SIZEOF_SHORT@ == 2) typedef short __s16; +typedef unsigned short __u16; #else ?==error: undefined 16 bit type #endif /* SIZEOF_SHORT == 2 */ #endif /* SIZEOF_INT == 2 */ -#endif /* __S16_TYPEDEF */ - - -#ifdef __U32_TYPEDEF -typedef __U32_TYPEDEF __u32; -#else -#if (@SIZEOF_INT@ == 4) -typedef unsigned int __u32; -#else -#if (@SIZEOF_LONG@ == 4) -typedef unsigned long __u32; -#else -#if (@SIZEOF_SHORT@ == 4) -typedef unsigned short __u32; -#else - ?== error: undefined 32 bit type -#endif /* SIZEOF_SHORT == 4 */ -#endif /* SIZEOF_LONG == 4 */ -#endif /* SIZEOF_INT == 4 */ -#endif /* __U32_TYPEDEF */ -#ifdef __S32_TYPEDEF -typedef __S32_TYPEDEF __s32; -#else #if (@SIZEOF_INT@ == 4) typedef int __s32; +typedef unsigned int __u32; #else #if (@SIZEOF_LONG@ == 4) typedef long __s32; +typedef unsigned long __u32; #else #if (@SIZEOF_SHORT@ == 4) typedef short __s32; +typedef unsigned short __u32; #else ?== error: undefined 32 bit type #endif /* SIZEOF_SHORT == 4 */ #endif /* SIZEOF_LONG == 4 */ #endif /* SIZEOF_INT == 4 */ -#endif /* __S32_TYPEDEF */ - -#ifdef __U64_TYPEDEF -typedef __U64_TYPEDEF __u64; -#else -#if (@SIZEOF_INT@ == 8) -typedef unsigned int __u64; -#else -#if (@SIZEOF_LONG@ == 8) -typedef unsigned long __u64; -#else -#if (@SIZEOF_LONG_LONG@ == 8) -typedef unsigned long long __u64; -#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@ == 8) -typedef long __s64; -#else -#if (@SIZEOF_LONG_LONG@ == 8) -#if defined(__GNUC__) -typedef __signed__ long long __s64; -#else -typedef signed long long __s64; -#endif /* __GNUC__ */ -#endif /* SIZEOF_LONG_LONG == 8 */ -#endif /* SIZEOF_LONG == 8 */ -#endif /* SIZEOF_INT == 8 */ -#endif /* __S64_TYPEDEF */ - -#undef __S8_TYPEDEF -#undef __U8_TYPEDEF -#undef __S16_TYPEDEF -#undef __U16_TYPEDEF -#undef __S32_TYPEDEF -#undef __U32_TYPEDEF -#undef __S64_TYPEDEF -#undef __U64_TYPEDEF #endif /* _*_TYPES_H */