[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: