? src/lwp/.process.c.swp
Index: src/config/param.i386_linux26.h
===================================================================
RCS file: /cvs/openafs/src/config/param.i386_linux26.h,v
retrieving revision 1.3.2.2
diff -u -r1.3.2.2 param.i386_linux26.h
--- src/config/param.i386_linux26.h	25 Apr 2005 00:02:18 -0000	1.3.2.2
+++ src/config/param.i386_linux26.h	30 Mar 2006 00:57:37 -0000
@@ -86,6 +86,11 @@
 #define SYS_NAME       "i386_linux26"
 #define SYS_NAME_ID    SYS_NAME_ID_i386_linux26
 
+#ifdef __GLIBC__
+#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 3)
+#define USE_UCONTEXT
+#endif
+#endif
 #endif /* AFS_PARAM_H */
 
 
Index: src/lwp/process.c
===================================================================
RCS file: /cvs/openafs/src/lwp/process.c,v
retrieving revision 1.21.2.1
diff -u -r1.21.2.1 process.c
--- src/lwp/process.c	22 Mar 2006 19:58:25 -0000	1.21.2.1
+++ src/lwp/process.c	30 Mar 2006 00:57:37 -0000
@@ -33,28 +33,19 @@
 afs_int32
 savecontext(char (*ep) (), struct lwp_context *savearea, char *newsp)
 {
-#if defined(AFS_IA64_LINUX20_ENV)
-    register unsigned long sp __asm__("r12");
-#elif defined(AFS_AMD64_LINUX24_ENV)
-    register unsigned long sp __asm__("sp");
-#elif defined(AFS_HPUX1122_ENV)
-/* don't need anything special, will use
- * ucontext.uc_stack.ss_sp as it matches r12.
- * This should also work for Linux,
- * but dont have system to test DEE
- */
-#else
-#error	"You need to update stack pointer register for this platform"
+#if defined(AFS_LINUX20_ENV)
+    /* getcontext does not export stack info */
+    int stackvar;
 #endif
 
     PRE_Block = 1;
 
     savearea->state = 0;
     getcontext(&savearea->ucontext);
-#if defined(AFS_HPUX1122_ENV)
-    savearea->topstack = savearea->ucontext.uc_stack.ss_sp;
+#if defined(AFS_LINUX20_ENV)
+    savearea->topstack = &stackvar;
 #else
-    savearea->topstack = sp;
+    savearea->topstack = savearea->ucontext.uc_stack.ss_sp;
 #endif
     switch (savearea->state) {
     case 0:
