From d5e051198503e74256b72fee7b93e681f1de6b57 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 16 May 2012 12:52:45 -0700 Subject: Add x32 support to sys/ucontext.h --- ChangeLog | 9 +++++++++ sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h | 13 ++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8d4506a579..738be2d85a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2012-05-16 H.J. Lu + + * sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h: Don't + include . Check __x86_64__ instead of + __WORDSIZE. + (greg_t): Use "__extension__ long long int" if __x86_64__ is + defined. + (mcontext_t): Replace "unsigned long" with "unsigned long long". + 2012-05-16 H.J. Lu * sysdeps/unix/sysv/linux/x86_64/sys/user.h: Don't diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h index a397620589..7a3938cbcd 100644 --- a/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 2001-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,16 +20,15 @@ #include #include -#include /* We need the signal context definitions even if they are not used included in . */ #include -#if __WORDSIZE == 64 +#ifdef __x86_64__ /* Type for general register. */ -typedef long int greg_t; +__extension__ typedef long long int greg_t; /* Number of general registers. */ #define NGREG 23 @@ -127,7 +126,7 @@ typedef struct gregset_t gregs; /* Note that fpregs is a pointer. */ fpregset_t fpregs; - unsigned long __reserved1 [8]; + __extension__ unsigned long long __reserved1 [8]; } mcontext_t; /* Userlevel context. */ @@ -141,7 +140,7 @@ typedef struct ucontext struct _libc_fpstate __fpregs_mem; } ucontext_t; -#else /* __WORDSIZE == 32 */ +#else /* !__x86_64__ */ /* Type for general register. */ typedef int greg_t; @@ -242,6 +241,6 @@ typedef struct ucontext struct _libc_fpstate __fpregs_mem; } ucontext_t; -#endif /* __WORDSIZE == 32 */ +#endif /* !__x86_64__ */ #endif /* sys/ucontext.h */ -- cgit 1.4.1