This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Remove __ASSUME_SWAPCONTEXT_SYSCALL
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>, "Ryan S. Arnold" <ryan dot arnold at gmail dot com>
- Date: Thu, 16 Aug 2012 23:14:00 +0000
- Subject: Remove __ASSUME_SWAPCONTEXT_SYSCALL
__ASSUME_SWAPCONTEXT_SYSCALL is defined for powerpc for all supported
Linux kernel versions, and tested in code for powerpc32 (only). This
patch removes this macro and associated conditionals.
I have not tested this patch; it needs powerpc32 review and testing.
2012-08-16 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_SWAPCONTEXT_SYSCALL): Remove.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
[__ASSUME_SWAPCONTEXT_SYSCALL]: Make code unconditional.
[!__ASSUME_SWAPCONTEXT_SYSCALL]: Remove conditional code.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
[__ASSUME_SWAPCONTEXT_SYSCALL]: Make code unconditional.
[!__ASSUME_SWAPCONTEXT_SYSCALL]: Remove conditional code.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
[__ASSUME_SWAPCONTEXT_SYSCALL]: Make code unconditional.
[!__ASSUME_SWAPCONTEXT_SYSCALL]: Remove conditional code.
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 6b0eb95..c451a9b 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -117,13 +117,6 @@
# define __ASSUME_FADVISE64_64_SYSCALL 1
#endif
-/* Starting with 2.6.0 PowerPC adds signal/swapcontext support for Vector
- SIMD (AKA Altivec, VMX) instructions and register state. This changes
- the overall size of the sigcontext and adds the swapcontext syscall. */
-#ifdef __powerpc__
-# define __ASSUME_SWAPCONTEXT_SYSCALL 1
-#endif
-
/* On sparc64 stat64/lstat64/fstat64 syscalls were introduced in 2.6.12. */
#if defined __sparc__ && defined __arch64__
# define __ASSUME_STAT64_SYSCALL 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
index 2d36df4..27f2348 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
@@ -32,7 +32,6 @@
/* Size of ucontext in GLIBC_2.3.4 and later. */
#define _UC_SIZE_2_3_4 1184
-#ifdef __ASSUME_SWAPCONTEXT_SYSCALL
.section ".text";
ENTRY (__getcontext)
li r4,0
@@ -45,9 +44,6 @@ ENTRY (__getcontext)
1:
b __syscall_error@local
END(__getcontext)
-#else
-# include "getcontext-common.S"
-#endif
versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
index fa7d05f..b96b040 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
@@ -1,5 +1,5 @@
/* Jump to a new context.
- Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -32,7 +32,6 @@
/* Size of ucontext in GLIBC_2.3.4 and later. */
#define _UC_SIZE_2_3_4 1184
-#ifdef __ASSUME_SWAPCONTEXT_SYSCALL
.section ".text";
ENTRY (__setcontext)
mr r4,r3
@@ -46,9 +45,6 @@ ENTRY (__setcontext)
1:
b __syscall_error@local
END(__setcontext)
-#else
-# include "setcontext-common.S"
-#endif
versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
index 0189af8..556c802 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and jump to a new context.
- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -32,7 +32,6 @@
/* Size of ucontext in GLIBC_2.3.4 and later. */
#define _UC_SIZE_2_3_4 1184
-#ifdef __ASSUME_SWAPCONTEXT_SYSCALL
.section ".text";
ENTRY (__swapcontext)
li r5,_UC_SIZE_2_3_4;
@@ -44,9 +43,6 @@ ENTRY (__swapcontext)
1:
b __syscall_error@local
END(__swapcontext)
-#else
-# include "swapcontext-common.S"
-#endif
versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4)
--
Joseph S. Myers
joseph@codesourcery.com