diff options
author | sterni <sternenseemann@systemli.org> | 2022-01-29T12·59+0100 |
---|---|---|
committer | sterni <sternenseemann@systemli.org> | 2022-02-02T18·21+0000 |
commit | b57854e24df1f5a72369b44345219f650227ad53 (patch) | |
tree | 1c4f9b1fcca36935476b48fa5811d605f23c2d03 /nix/buildLisp/default.nix | |
parent | 49c8d8371ca17207157058b4daecded67ade1e5f (diff) |
fix(nix/buildLisp): make uiop:argv0 work also for ccl and sbcl r/3745
Detection is broken there, too, as UIOP relies on setting the variable before dumping the image in its portability wrapper dump-image which we don't use at all. Change-Id: If7bea5a8522a2e64707b1ee88d62d420bd00a952 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5112 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
Diffstat (limited to 'nix/buildLisp/default.nix')
-rw-r--r-- | nix/buildLisp/default.nix | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/nix/buildLisp/default.nix b/nix/buildLisp/default.nix index 30b90d9049d7..f483e3676565 100644 --- a/nix/buildLisp/default.nix +++ b/nix/buildLisp/default.nix @@ -319,6 +319,11 @@ let (let* ((bindir (concatenate 'string (sb-posix:getenv "out") "/bin")) (outpath (make-pathname :name "${name}" :directory bindir))) + + ;; Tell UIOP that argv[0] will refer to running image, not the lisp impl + (when (find-package :uiop) + (eval `(setq ,(find-symbol "*IMAGE-DUMPED-P*" :uiop) :executable))) + (save-lisp-and-die outpath :executable t :toplevel @@ -438,7 +443,7 @@ let ;; to handle argument parsing and such properly. Since ;; this needs to work even when we're not using UIOP, ;; we need to do some compile-time acrobatics. - ,(when (find-package 'uiop) + ,(when (find-package :uiop) `(setf ,(find-symbol "*IMAGE-DUMPED-P*" :uiop) :executable)) ;; Run the actual application… (${main}) @@ -561,6 +566,10 @@ let (bindir (concatenate 'string out "/bin/")) (executable (make-pathname :directory bindir :name "${name}"))) + ;; Tell UIOP that argv[0] will refer to running image, not the lisp impl + (when (find-package :uiop) + (eval `(setf ,(find-symbol "*IMAGE-DUMPED-P*" :uiop) :executable))) + (save-application executable :purify t :error-handler :quit |