print("gs    ", hex(u.gs), "\n")
 }
 
-func sigpanictramp() {}
+func sigpanictramp()
 
        print("gs    ", hex(u.gs), "\n")
 }
 
-func sigpanictramp() {}
+func sigpanictramp()
 
                        }
                }
                if usesLR {
-                       c.setpc(funcPC(sigpanictramp))
+                       c.setpc(abi.FuncPCABI0(sigpanictramp))
                } else {
                        c.setpc(abi.FuncPCABI0(sigpanic0))
                }
 
 func newosproc(mp *m) {
        stk := unsafe.Pointer(mp.g0.stack.hi)
        if false {
-               print("newosproc stk=", stk, " m=", mp, " g=", mp.g0, " lwp_start=", funcPC(lwp_start), " id=", mp.id, " ostk=", &mp, "\n")
+               print("newosproc stk=", stk, " m=", mp, " g=", mp.g0, " lwp_start=", abi.FuncPCABI0(lwp_start), " id=", mp.id, " ostk=", &mp, "\n")
        }
 
        var oset sigset
        sigprocmask(_SIG_SETMASK, &sigset_all, &oset)
 
        params := lwpparams{
-               start_func: funcPC(lwp_start),
+               start_func: abi.FuncPCABI0(lwp_start),
                arg:        unsafe.Pointer(mp),
                stack:      uintptr(stk),
                tid1:       nil, // minit will record tid
 
 package runtime
 
 import (
+       "internal/abi"
        "runtime/internal/sys"
        "unsafe"
 )
 func newosproc(mp *m) {
        stk := unsafe.Pointer(mp.g0.stack.hi)
        if false {
-               print("newosproc stk=", stk, " m=", mp, " g=", mp.g0, " thr_start=", funcPC(thr_start), " id=", mp.id, " ostk=", &mp, "\n")
+               print("newosproc stk=", stk, " m=", mp, " g=", mp.g0, " thr_start=", abi.FuncPCABI0(thr_start), " id=", mp.id, " ostk=", &mp, "\n")
        }
 
        param := thrparam{
-               start_func: funcPC(thr_start),
+               start_func: abi.FuncPCABI0(thr_start),
                arg:        unsafe.Pointer(mp),
                stack_base: mp.g0.stack.lo,
                stack_size: uintptr(stk) - mp.g0.stack.lo,
 
         * note: strace gets confused if we use CLONE_PTRACE here.
         */
        if false {
-               print("newosproc stk=", stk, " m=", mp, " g=", mp.g0, " clone=", funcPC(clone), " id=", mp.id, " ostk=", &mp, "\n")
+               print("newosproc stk=", stk, " m=", mp, " g=", mp.g0, " clone=", abi.FuncPCABI0(clone), " id=", mp.id, " ostk=", &mp, "\n")
        }
 
        // Disable signals during clone, so that the new thread starts
 
 package runtime
 
 import (
+       "internal/abi"
        "runtime/internal/atomic"
        "runtime/internal/sys"
        "unsafe"
        var oset sigset
        sigprocmask(_SIG_SETMASK, &sigset_all, &oset)
 
-       lwp_mcontext_init(&uc.uc_mcontext, stk, mp, mp.g0, funcPC(netbsdMstart))
+       lwp_mcontext_init(&uc.uc_mcontext, stk, mp, mp.g0, abi.FuncPCABI0(netbsdMstart))
 
        ret := lwp_create(unsafe.Pointer(&uc), _LWP_DETACHED, unsafe.Pointer(&mp.procid))
        sigprocmask(_SIG_SETMASK, &oset, nil)
        sa.sa_flags = _SA_SIGINFO | _SA_ONSTACK | _SA_RESTART
        sa.sa_mask = sigset_all
        if fn == funcPC(sighandler) {
-               fn = funcPC(sigtramp)
+               fn = abi.FuncPCABI0(sigtramp)
        }
        sa.sa_sigaction = fn
        sigaction(i, &sa, nil)
 
 
 package runtime
 
-import "unsafe"
+import (
+       "internal/abi"
+       "unsafe"
+)
 
 func lwp_mcontext_init(mc *mcontextt, stk unsafe.Pointer, mp *m, gp *g, fn uintptr) {
        // Machine dependent mcontext initialisation for LWP.
-       mc.__gregs[_REG_EIP] = uint32(funcPC(lwp_tramp))
+       mc.__gregs[_REG_EIP] = uint32(abi.FuncPCABI0(lwp_tramp))
        mc.__gregs[_REG_UESP] = uint32(uintptr(stk))
        mc.__gregs[_REG_EBX] = uint32(uintptr(unsafe.Pointer(mp)))
        mc.__gregs[_REG_EDX] = uint32(uintptr(unsafe.Pointer(gp)))
 
 
 package runtime
 
-import "unsafe"
+import (
+       "internal/abi"
+       "unsafe"
+)
 
 func lwp_mcontext_init(mc *mcontextt, stk unsafe.Pointer, mp *m, gp *g, fn uintptr) {
        // Machine dependent mcontext initialisation for LWP.
-       mc.__gregs[_REG_RIP] = uint64(funcPC(lwp_tramp))
+       mc.__gregs[_REG_RIP] = uint64(abi.FuncPCABI0(lwp_tramp))
        mc.__gregs[_REG_RSP] = uint64(uintptr(stk))
        mc.__gregs[_REG_R8] = uint64(uintptr(unsafe.Pointer(mp)))
        mc.__gregs[_REG_R9] = uint64(uintptr(unsafe.Pointer(gp)))
 
 
 package runtime
 
-import "unsafe"
+import (
+       "internal/abi"
+       "unsafe"
+)
 
 func lwp_mcontext_init(mc *mcontextt, stk unsafe.Pointer, mp *m, gp *g, fn uintptr) {
        // Machine dependent mcontext initialisation for LWP.
-       mc.__gregs[_REG_R15] = uint32(funcPC(lwp_tramp))
+       mc.__gregs[_REG_R15] = uint32(abi.FuncPCABI0(lwp_tramp))
        mc.__gregs[_REG_R13] = uint32(uintptr(stk))
        mc.__gregs[_REG_R0] = uint32(uintptr(unsafe.Pointer(mp)))
        mc.__gregs[_REG_R1] = uint32(uintptr(unsafe.Pointer(gp)))
 
 
 package runtime
 
-import "unsafe"
+import (
+       "internal/abi"
+       "unsafe"
+)
 
 func lwp_mcontext_init(mc *mcontextt, stk unsafe.Pointer, mp *m, gp *g, fn uintptr) {
        // Machine dependent mcontext initialisation for LWP.
-       mc.__gregs[_REG_ELR] = uint64(funcPC(lwp_tramp))
+       mc.__gregs[_REG_ELR] = uint64(abi.FuncPCABI0(lwp_tramp))
        mc.__gregs[_REG_X31] = uint64(uintptr(stk))
        mc.__gregs[_REG_X0] = uint64(uintptr(unsafe.Pointer(mp)))
        mc.__gregs[_REG_X1] = uint64(uintptr(unsafe.Pointer(mp.g0)))
 
 package runtime
 
 import (
+       "internal/abi"
        "runtime/internal/sys"
        "unsafe"
 )
 
        var oset sigset
        sigprocmask(_SIG_SETMASK, &sigset_all, &oset)
-       ret := tfork(¶m, unsafe.Sizeof(param), mp, mp.g0, funcPC(mstart))
+       ret := tfork(¶m, unsafe.Sizeof(param), mp, mp.g0, abi.FuncPCABI0(mstart))
        sigprocmask(_SIG_SETMASK, &oset, nil)
 
        if ret < 0 {
 
                }
                ts.g.set(mp.g0)
                ts.tls = (*uint64)(unsafe.Pointer(&mp.tls[0]))
-               ts.fn = unsafe.Pointer(funcPC(mstart))
+               ts.fn = unsafe.Pointer(abi.FuncPCABI0(mstart))
                if msanenabled {
                        msanwrite(unsafe.Pointer(&ts), unsafe.Sizeof(ts))
                }
 
 package runtime
 
 import (
+       "internal/abi"
        "runtime/internal/sys"
        "unsafe"
 )
 //go:nosplit
 //go:cgo_unsafe_args
 func g0_pthread_key_create(k *pthreadkey, destructor uintptr) int32 {
-       return asmcgocall(unsafe.Pointer(funcPC(pthread_key_create_trampoline)), unsafe.Pointer(&k))
+       return asmcgocall(unsafe.Pointer(abi.FuncPCABI0(pthread_key_create_trampoline)), unsafe.Pointer(&k))
 }
 func pthread_key_create_trampoline()
 
 //go:nosplit
 //go:cgo_unsafe_args
 func g0_pthread_setspecific(k pthreadkey, value uintptr) int32 {
-       return asmcgocall(unsafe.Pointer(funcPC(pthread_setspecific_trampoline)), unsafe.Pointer(&k))
+       return asmcgocall(unsafe.Pointer(abi.FuncPCABI0(pthread_setspecific_trampoline)), unsafe.Pointer(&k))
 }
 func pthread_setspecific_trampoline()
 
 
        MOVL    0(SP), AX
        MOVL    AX, ret_base+0(FP)
        RET
+
+// never called on this platform
+TEXT ·sigpanictramp(SB),NOSPLIT,$0-0
+       UNDEF
 
        MOVQ    0(SP), AX
        MOVQ    AX, ret_base+0(FP)
        RET
+
+// never called on this platform
+TEXT ·sigpanictramp(SB),NOSPLIT,$0-0
+       UNDEF