It would certainly help if Joerg would tell what exactly breaks, but I spot one likely problem in include/asm-i386/types.h:
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
It might make sense to remove the #if and simply require that
a C compiler under Linux must know about the C99 "long long"?