Bug#231972: lkh: /usr/include/linux/ptrace.h buggy
I had a look at this on raptor.debian.org (dchroot unstable). The
triggering code seem to be in in /usr/include/asm/types.h:
#ifndef __s390x__
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
#else /* __s390x__ */
typedef __signed__ long __s64;
typedef unsigned long __u64;
#endif
It fail to provide the type __u64 when the --ansi compile option is
used. Here is an example demonstrating the problem:
% uname -a
Linux raptor 2.4.21-debian02-1 #1 SMP Wed Jan 28 20:45:17 CET 2004
s390 GNU/Linux
% cat > sys-user-test.c
#include <sys/user.h>
int main() { return 0; }
% gcc sys-user-test.c
% gcc -ansi sys-user-test.c
In file included from /usr/include/linux/ptrace.h:49,
from /usr/include/asm/user.h:13,
from /usr/include/sys/user.h:22,
from sys-user-test.c:1:
/usr/include/asm/ptrace.h:193: error: syntax error before "__u64"
/usr/include/asm/ptrace.h:199: error: syntax error before '}' token
/usr/include/asm/ptrace.h:204: error: syntax error before "freg_t"
/usr/include/asm/ptrace.h:448: error: syntax error before "s390_fp_regs"
/usr/include/asm/ptrace.h:457: error: syntax error before '}' token
In file included from /usr/include/sys/user.h:22,
from sys-user-test.c:1:
/usr/include/asm/user.h:55: error: field `regs' has incomplete type
%
I'm not sure how to best solve the problem. Changing the includes in
<sys/user.h> might be the best solution, but I am not sure if that is
safe to do. Building kdebase without -ansi is an option too, but not
a good one. :/
Reply to: