glibc/sysdeps/unix/sysv/linux/hppa
John David Anglin 71b108d7eb hppa: Fix swapcontext
This change fixes the failure of stdlib/tst-setcontext2 and
stdlib/tst-setcontext7 on hppa.  The implementation of swapcontext
in C is broken.  C saves the return pointer (rp) and any non
call-clobbered registers (in this case r3, r4 and r5) on the
stack.  However, the setcontext call in swapcontext pops the
stack and subsequent calls clobber the saved registers.  When
the context in oucp is restored, both tests fault.

Here we rewrite swapcontext in assembly code to avoid using
the stack for register values that need to be used after
restoration.  The getcontext and setcontext routines are
revised to save and restore register ret1 for normal returns.
We copy the oucp pointer to ret1.  This allows access to
the old context after calling getcontext and setcontext.
2022-02-18 20:38:25 +00:00
..
bits Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sys Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Implies
Makefile
Versions
____longjmp_chk.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
arch-syscall.h Update syscall lists for Linux 5.16 2022-01-13 22:18:13 +00:00
atomic-machine.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
c++-types.data
clone.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
errlist-compat.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fanotify_mark.c linux: Add fanotify_mark C implementation 2021-11-25 09:56:57 -03:00
getcontext.S hppa: Fix swapcontext 2022-02-18 20:38:25 +00:00
kernel-features.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
kernel_stat.h
ld.abilist Fix glibc 2.34 ABI omission (missing GLIBC_2.34 in dynamic loader) 2022-01-27 18:52:05 +01:00
libBrokenLocale.abilist
libanl.abilist
libc.abilist posix: Replace posix_spawnattr_tc{get,set}pgrp_np with posix_spawn_file_actions_addtcsetpgrp_np 2022-02-02 08:34:16 -03:00
libc_malloc_debug.abilist
libcrypt.abilist
libdl.abilist
libm.abilist math: Remove the error handling wrapper from hypot and hypotf 2021-12-13 10:08:46 -03:00
libnsl.abilist
libpthread.abilist
libresolv.abilist
librt.abilist
libthread_db.abilist
libutil.abilist
localplt.data
makecontext.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
prlimit64.c linux: Add prlimit64 C implementation 2021-11-30 13:13:03 -03:00
setcontext.S hppa: Fix swapcontext 2022-02-18 20:38:25 +00:00
shlib-versions
sigcontextinfo.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
socket-constants-time64.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
struct_kernel_msqid64_ds.h
struct_kernel_semid64_ds.h
struct_kernel_shmid64_ds.h
swapcontext.c hppa: Fix swapcontext 2022-02-18 20:38:25 +00:00
syscalls.list linux: Add prlimit64 C implementation 2021-11-30 13:13:03 -03:00
sysdep.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sysdep.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
time64-compat.h
ucontext_i.sym