Subject: [bug#38606] [WIP SMLnj 0/1] Add SMLnj.

From: Foo Chuan Wei <[email-masked]>
Date: Mon, 8 Nov 2021 21:40:58 +0000

> /Users/jhr/Work/smlnj/sml-legacy/base/system/smlnj/installer.cm:29.7-29.32 Error: link-time exception in library code $smlnj/installer.cm@1570(installer/nix-install.sml)
>   SysErr: No such file or directory [noent]<exec.c>
> 
> 
> /tmp/guix-build-smlnj-110.99.2.drv-0/bin/sml: Fatal error -- Uncaught exception Link with 0
>  raised at ../cm/compile/link.sml:357.28-357.35
> 
> FAILURE: unpacking failed
> ./config/install.sh: !!! Installation of libraries and programs failed.
> command "./config/install.sh" "-default" "64" failed with status 1

The error above occurs because the build process uses nix-install.sml,
and nix-install.sml uses `OS.Process.system` (in the `unpack` function).
`OS.Process.system` relies on /bin/sh, but /bin/sh is not present in the
Guix build environment. "No such file or directory" presumably refers to
the absence of /bin/sh.

Unfortunately, the fix might require some binary patching. /bin/sh is
hardcoded in sml.boot.amd64-unix/SMLNJ-BASIS/.cm/amd64-unix/basis-common.cm
(a binary file from boot.amd64-unix.tgz).