Fix ia64/sys/ucontext.h für g++ 3.5
Andreas Schwab
schwab@suse.de
Wed Sep 1 20:56:00 GMT 2004
Richard Henderson <rth@twiddle.net> writes:
> On Wed, Sep 01, 2004 at 11:32:21AM +0200, Andreas Schwab wrote:
>> * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h [g++ >= 3.5]: Use
>> __builtin_offsetof.
>
> Perhaps include stddef.h and use offsetof properly?
If it's ok to include that here, sure.
2004-09-01 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Repace
_SC_GR0_OFFSET by offsetof.
--- sysdeps/unix/sysv/linux/ia64/sys/ucontext.h 16 Jan 2003 11:33:48 +0100 1.7
+++ sysdeps/unix/sysv/linux/ia64/sys/ucontext.h 01 Sep 2004 22:41:55 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2001, 2002, 2004 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
@@ -21,6 +21,7 @@
#include <features.h>
#include <signal.h>
+#include <stddef.h>
#include <bits/sigcontext.h>
@@ -32,13 +33,6 @@
typedef struct sigcontext mcontext_t;
-#ifdef __GNUC__
-# define _SC_GR0_OFFSET \
- (((char *) &((struct sigcontext *) 0)->sc_gr[0]) - (char *) 0)
-#else
-# define _SC_GR0_OFFSET 0xc8 /* pray that this is correct... */
-#endif
-
typedef struct ucontext
{
union
@@ -46,7 +40,7 @@ typedef struct ucontext
mcontext_t _mc;
struct
{
- unsigned long _pad[_SC_GR0_OFFSET/8];
+ unsigned long _pad[offsetof (struct sigcontext, sc_gr[0]) / 8];
struct ucontext *_link; /* this should overlay sc_gr[0] */
}
_uc;
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, MaxfeldstraÃe 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
More information about the Libc-hacker
mailing list