aboutsummaryrefslogtreecommitdiff
path: root/src/libthread/sysofiles.sh
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2020-01-19 22:39:22 -0500
committerRuss Cox <rsc@swtch.com>2020-01-19 23:04:58 -0500
commit41b3e8b9893a8561af7e85ca98444bc284b4013d (patch)
treee9bf7fdeefbdb7d2e6c1ebc25c7888b81f0bb16b /src/libthread/sysofiles.sh
parentac8042dfa9819f76ccfedd4aa36c1239322808b8 (diff)
downloadplan9port-41b3e8b9893a8561af7e85ca98444bc284b4013d.tar.gz
plan9port-41b3e8b9893a8561af7e85ca98444bc284b4013d.tar.bz2
plan9port-41b3e8b9893a8561af7e85ca98444bc284b4013d.zip
libthread: use consistent stack calculation code in makecontext
Also reduce duplication: makecontext is per-arch not per-os-arch. May fix #353.
Diffstat (limited to 'src/libthread/sysofiles.sh')
-rw-r--r--src/libthread/sysofiles.sh29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/libthread/sysofiles.sh b/src/libthread/sysofiles.sh
index 9a7301a8..8a65d0f6 100644
--- a/src/libthread/sysofiles.sh
+++ b/src/libthread/sysofiles.sh
@@ -7,24 +7,37 @@ NetBSD)
echo ${SYSNAME}-${OBJTYPE}-asm.o $SYSNAME.o stkmalloc.o
;;
OpenBSD)
- echo ${SYSNAME}-${OBJTYPE}-asm.o ${SYSNAME}-${OBJTYPE}.o pthread.o stkmmap.o
+ echo ${SYSNAME}-${OBJTYPE}-asm.o pthread.o stkmmap.o
;;
*)
echo pthread.o stkmalloc.o
esac
+# Various libc don't supply swapcontext, makecontext, so we do.
case "$OBJTYPE-$SYSNAME" in
-sparc64-Linux)
- # Debian glibc doesn't supply swapcontext, makecontext
- # so we supply our own copy from the latest glibc.
- echo Linux-sparc64-context.o Linux-sparc64-swapcontext.o
+386-OpenBSD)
+ echo 386-ucontext.o
;;
arm-Linux)
- # ARM doesn't supply them either.
- echo Linux-arm-context.o Linux-arm-swapcontext.o
+ echo arm-ucontext.o
+ echo Linux-arm-context.o # setcontext, getcontext
+ ;;
+arm-NetBSD)
+ echo arm-ucontext.o
+ ;;
+power-OpenBSD)
+ echo power-ucontext.o
+ ;;
+sparc64-Linux)
+ echo sparc64-ucontext.o
+ echo Linux-sparc64-swapcontext.o # setcontext, getcontext
;;
x86_64-Darwin)
- echo Darwin-x86_64-asm.o Darwin-x86_64-swapcontext.o
+ echo x86_64-ucontext.o
+ echo Darwin-x86_64-asm.o # setcontext, getcontext
+ ;;
+x86_64-OpenBSD)
+ echo x86_64-ucontext.o
;;
esac