X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fruntime.c;h=09e92c856c603e12c9d73cc434f54476d1eff198;hb=c1c2f11c297774cd7f0f48baeaa7631fec155405;hp=6c2df4011bb9e39f8fb941e6c9ae363cfa8bd998;hpb=40b949acce1ac108b62d52d13eb2a09454f8db33;p=sbcl.git diff --git a/src/runtime/runtime.c b/src/runtime/runtime.c index 6c2df40..09e92c8 100644 --- a/src/runtime/runtime.c +++ b/src/runtime/runtime.c @@ -70,6 +70,12 @@ #define SBCL_HOME "/usr/local/lib/sbcl/" #endif +#ifdef LISP_FEATURE_HPUX +extern void *return_from_lisp_stub; +#include "genesis/closure.h" +#include "genesis/simple-fun.h" +#endif + /* SIGINT handler that invokes the monitor (for when Lisp isn't up to it) */ static void @@ -426,6 +432,12 @@ main(int argc, char *argv[], char *envp[]) if (initial_function == NIL) { lose("couldn't find initial function\n"); } +#ifdef LISP_FEATURE_HPUX + /* -1 = CLOSURE_FUN_OFFSET, 23 = SIMPLE_FUN_CODE_OFFSET, we are not in LANGUAGE_ASSEMBLY + so we cant reach them. */ + return_from_lisp_stub = (void *) ((char *)*((unsigned long *) + ((char *)initial_function + -1)) + 23); +#endif gc_initialize_pointers();