tvl-depot/nix
sterni 2dd8bc7977 fix(nix/buildLisp): prevent image loader from parsing arguments
CCL and SBCL create executables by dumping their image. As a
consequence, some part of the respective compiler is embedded in the
resulting executable which is executed and loads the image. For CCL and
SBCL this piece of software seems to unconditionally parse arguments
which can't be prevented since it happens before any lisp is loaded.

Luckily in both cases the parsing stops at `--`, so we can just pass
this via the wrapper — we just need to work around the problem that this
will of course be left in argv and confuse any later code. This can be
rectified by deleting everything prior to the first `--` in the global
argument list on startup in both cases.

In cases we do want to pass arguments to the image loader, we can use
the special NIX_BUILDLISP_LISP_ARGS environment variable which is
understood by the wrapper.

Note: This fix doesn't interfere with ECL since it is not using the
wrapper script at the moment.

Fixes b/136.

Change-Id: I3f95aa61e945e51428021ca18232ff15c923f870
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3357
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-08-26 11:26:52 +00:00
..
binify refactor(nix): use our own writeScript(Bin) 2020-06-30 00:19:27 +00:00
bufCheck refactor: Replace 'depotPath' with 'depot.path' 2021-04-12 21:55:07 +00:00
buildGo feat(nix/buildGo): add the import position to errmsg 2021-04-23 16:35:57 +00:00
buildLisp fix(nix/buildLisp): prevent image loader from parsing arguments 2021-08-26 11:26:52 +00:00
buildManPages refactor(sterni): use pkgs over third_party to import from nixpkgs 2021-04-10 11:40:18 +00:00
drvSeqL feat(nix/drvSeqL): make build of a drv depend on unrelated drvs 2021-02-14 12:40:06 +00:00
emptyDerivation feat(nix/emptyDerivation) add emptyDerivation 2020-06-28 17:59:46 +00:00
escapeExecline chore(OWNERS): move Profpatsch up to nix/ 2021-01-01 19:03:15 +00:00
getBins chore(OWNERS): move Profpatsch up to nix/ 2021-01-01 19:03:15 +00:00
mergePatch feat(nix): add mergePatch 2021-01-01 19:03:02 +00:00
netstring feat(nix): add basic netstring nix generation functions 2021-04-24 09:54:34 +00:00
readTree refactor(readTree): Initialise repo roots without recursing 2021-04-12 21:55:07 +00:00
runExecline feat(users/Profpatsch/blog): implement blog engine lol 2021-04-30 21:47:42 +00:00
runTestsuite fix(nix/runTestsuite): use s6-portable-utils 2021-03-26 11:01:20 +00:00
tag feat(nix): add nix.tag, a way of discriminating via tagged unions 2021-01-30 15:41:08 +00:00
tailscale refactor: Replace some uses of builtins.toFile with pkgs.writeText 2021-03-25 19:14:36 +00:00
utils refactor(users/grfn/gws.fyi): implement isDirectory in pure nix 2021-08-24 12:13:06 +00:00
writeElispBin chore(writeElispBin): Move from //overrides to //nix 2020-12-01 12:55:59 +00:00
writeExecline chore(OWNERS): move Profpatsch up to nix/ 2021-01-01 19:03:15 +00:00
writers fix(nix/writers/rust): remove args override 2021-05-17 23:00:57 +00:00
writeScript refactor(nix): use our own writeScript(Bin) 2020-06-30 00:19:27 +00:00
writeScriptBin refactor(nix): use our own writeScript(Bin) 2020-06-30 00:19:27 +00:00
yants fix(nix/yants): make (typedef …).checkType return a result set 2021-02-19 16:14:55 +00:00
OWNERS chore(OWNERS): move Profpatsch up to nix/ 2021-01-01 19:03:15 +00:00