makecontext, swapcontext, … are not provided by musl itself. Instead, we depend on libucontext for these functions. plan9port uses them in libthread, we need to link against -lucontext in order to make libthread use them properly. diff -upr a/bin/9l b/bin/9l --- a/bin/9l 2020-12-15 06:06:03.000000000 +0100 +++ b/bin/9l 2020-12-23 14:43:20.376181908 +0100 @@ -25,7 +25,7 @@ case "$tag" in *Linux*) ld="${CC9:-gcc} $CC9FLAGS" userpath=true - extralibs="$extralibs -lutil -lresolv -lpthread" + extralibs="$extralibs -lutil -lresolv -lpthread -lucontext" ;; *Darwin*x86_64*) ld="${CC9:-gcc} -m64 $CC9FLAGS"