This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


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

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


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