This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix ia64/sys/ucontext.h für g++ 3.5


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."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]