X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Ffuncall.c;h=4eb1d7266e489f8c933b81b2b73c5bcf61251838;hb=37d3828773e2f847bb1ed7522b0af4fb8e736fc8;hp=c3724eb8c0cdfa426c9081a53c1ab8600a73be04;hpb=6793d7dd32d1fa48d2ee395e240e1b7ff857912e;p=sbcl.git diff --git a/src/runtime/funcall.c b/src/runtime/funcall.c index c3724eb..4eb1d72 100644 --- a/src/runtime/funcall.c +++ b/src/runtime/funcall.c @@ -22,16 +22,22 @@ #include "interrupt.h" /* This is implemented in assembly language and called from C: */ -extern lispobj call_into_lisp(lispobj fun, lispobj *args, int nargs); +extern lispobj call_into_lisp(lispobj fun, lispobj *args, int nargs) +#ifdef LISP_FEATURE_X86_64 + __attribute__((sysv_abi)) +#endif + ; static inline lispobj safe_call_into_lisp(lispobj fun, lispobj *args, int nargs) { +#ifndef LISP_FEATURE_SB_SAFEPOINT /* SIG_STOP_FOR_GC needs to be enabled before we can call lisp: * otherwise two threads racing here may deadlock: the other will * wait on the GC lock, and the other cannot stop the first * one... */ check_gc_signals_unblocked_or_lose(0); +#endif return call_into_lisp(fun, args, nargs); }