public inbox for libc-hacker@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] s390{,x} kernel-features.h fixes
@ 2006-01-05 22:01 Jakub Jelinek
  0 siblings, 0 replies; only message in thread
From: Jakub Jelinek @ 2006-01-05 22:01 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: Glibc hackers

Hi!

waitid was added in 2.6.12 not only on ppc*, but also on s390*.

32-bit getdents with d_type is even more complicated.
Although it has been added in sys_getdents in 2.6.4-rc1, most of the
compat wrappers weren't adjusted accordingly.
Particularly, x86_64, ppc64 and sparc64 32-bit compat wrappers were adjusted
in 2.6.5, then in 2.6.8 ia64 patch replaced ia64 broken 32-bit compat
wrapper with generic compat_sys_getdents and sparc64 started using it as
well, then in 2.6.11 s390x which previously had the wrapper broken switched
to compat_sys_getdents
(http://www.ussg.iu.edu/hypermail/linux/kernel/0502.0/0372.html)
and then in 2.6.15 ppc64 switched to compat_sys_getdents.
So I guess to stay on the safe side, we should only enable it for 2.6.8+
on non-s390{,x} and for 2.6.11+ for s390{,x} instead of already in
2.6.4+ everywhere.  Otherwise e.g. gcc fails to bootstrap on s390.

2006-01-05  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_WAITID_SYSCALL):
	Only define for 2.6.12+ on s390{,x}.
	(__ASSUME_GETDENTS32_D_TYPE): Only define for 2.6.8+ on most arches
	and only for 2.6.11+ on s390{,x}.

--- libc/sysdeps/unix/sysv/linux/kernel-features.h.jj	2005-12-13 16:42:22.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/kernel-features.h	2006-01-05 22:52:21.000000000 +0100
@@ -1,6 +1,6 @@
 /* Set flags signalling availability of kernel features based on given
    kernel version number.
-   Copyright (C) 1999-2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1999-2003, 2004, 2005, 2006 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
@@ -423,8 +423,10 @@
 #endif
 
 /* Starting with version 2.6.4-rc1 the getdents syscall returns d_type
-   information as well.  */
-#if __LINUX_KERNEL_VERSION >= 132612
+   information as well and in between 2.6.5 and 2.6.8 most compat wrappers
+   were fixed too.  Except s390{,x} which was fixed in 2.6.11.  */
+#if (__LINUX_KERNEL_VERSION >= 0x020608 && !defined __s390__) \
+    || (__LINUX_KERNEL_VERSION >= 0x02060b && defined __s390__)
 # define __ASSUME_GETDENTS32_D_TYPE	1
 #endif
 
@@ -435,9 +437,11 @@
 #endif
 
 /* Starting with version 2.6.9, the waitid system call is available.
-   Except for powerpc and powerpc64, where it is available in 2.6.12.  */
-#if (__LINUX_KERNEL_VERSION >= 0x020609 && !defined __powerpc__) \
-    || (__LINUX_KERNEL_VERSION >= 0x02060c && defined __powerpc__)
+   Except for powerpc{,64} and s390{,x}, where it is available in 2.6.12.  */
+#if (__LINUX_KERNEL_VERSION >= 0x020609 \
+     && !defined __powerpc__ && !defined __s390__) \
+    || (__LINUX_KERNEL_VERSION >= 0x02060c \
+	&& (defined __powerpc__ || defined __s390__))
 # define __ASSUME_WAITID_SYSCALL	1
 #endif
 

	Jakub

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2006-01-05 22:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-05 22:01 [PATCH] s390{,x} kernel-features.h fixes Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).