Versioning longjmp etc.

Steve Munroe sjmunroe@us.ibm.com
Fri Oct 17 20:47:00 GMT 2003


We are looking at integrating Vector Extensions (AKA Altivec or VMX) into 
glibc for PPC32/PPC64. This will change the size of __jmp_buf and 
sigcontext/ucontext and requires versioning of the corresponding functions 
(setjmp/longjmp etc). 

I assume this includes the complete function stack, for example 
[siglongjmp | longjmp] -> [__libc_siglongjmp | __libc_longjmp] -> 
__longjmp.

But looking at linuxthreads/ptlongjmp.c and nptl/pt-longjmp.c I don't 
understand why we need the siglongjmp()/longjmp() stubs. They add 
path-length without adding any function (at least in the current 
implementation). 

So could these stubs be eliminated and replaced with aliases? If they are 
required where should I move ptlongjmp.c to (sysdeps/pthreads, 
sysdeps/generic, ...) so I can override it for powerpc[32 | 64]? Or should 
the siglongjmp()/longjmp() stubs be split out of ptlongjmp.c?



More information about the Libc-hacker mailing list