This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
header incompatibility between i386 and x86_64
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: libc-alpha at sources dot redhat dot com
- Date: Fri, 20 Jan 2006 16:03:57 -0200
- Subject: header incompatibility between i386 and x86_64
i386's sigcontext.h defines sigcontext_struct, whereas x86_64's does
not, not even in 32-bit mode. libjava has recently started failing to
build the 32-bit libs on x86_64 because something (in glibc?) changed
in this regard. I know it was not a change in libjava itself, because
I've just run into this same problem using a very old (early October
last year) source tree.
Could this please go in? Thanks,
Index: ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
(sigcontext_struct) [__WORDSIZE == 32]: Define.
Index: sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h,v
retrieving revision 1.7
diff -u -p -r1.7 sigcontext.h
--- sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h 27 Mar 2002 11:07:44 -0000 1.7
+++ sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h 20 Jan 2006 18:03:02 -0000
@@ -70,6 +70,14 @@ struct _fpstate
__uint32_t padding[56];
};
+#ifndef sigcontext_struct
+/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but
+ we need sigcontext. Some packages have come to rely on
+ sigcontext_struct being defined on 32-bit x86, so define this for
+ their benefit. */
+# define sigcontext_struct sigcontext
+#endif
+
struct sigcontext
{
unsigned short gs, __gsh;
--
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}