Add x32 support to sys/ucontext.h

This commit is contained in:
H.J. Lu 2012-05-16 12:52:45 -07:00
parent f62ee380a1
commit d5e0511985
2 changed files with 15 additions and 7 deletions

View File

@ -1,3 +1,12 @@
2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h: Don't
include <bits/wordsize.h>. 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 <hongjiu.lu@intel.com>
* sysdeps/unix/sysv/linux/x86_64/sys/user.h: Don't

View File

@ -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 <features.h>
#include <signal.h>
#include <bits/wordsize.h>
/* We need the signal context definitions even if they are not used
included in <signal.h>. */
#include <bits/sigcontext.h>
#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 */