💾 Archived View for dimension.sh › ~novaburst › bb85caff.gmi captured on 2021-12-03 at 14:04:38. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Authors: Nova[有線魔女] <novaburst@envs.net>
Date: 2021-09-28
Since quite a while ago (a month or so I guess) I had read this blog post by OCamlPro[1] about generating static PIE with OCaml.
The first project on where I have tried doing so was Logarion[2] , and afterwards bumpmap-tool[2], each using a different build system.
In the 1st case I had to add the field '(flags (:standard -cclib -static))' to the 'cli/dune' file and rebuilt with 'dune build'
As for the 2nd case I added '-cclib -static' to the 'ocamlopt' flags in the command line and rebuilt.
I ran the ldd command in both (test done on a musl-based distro) only to have this output:
- /lib/ld-musl-x86_64.so.1: (insert executable name here): Not a valid dynamic program
Which means that it does actually work, but I'm not sure whether it could work for bigger projects.
I think that's all I've got to say here.
[1]:
https://www.ocamlpro.com/2021/09/02/generating-static-and-portable-executables-with-ocaml/
[2]:
https://git.sr.ht/~novaburst-dev/logarion)
[3]:
https://git.sr.ht/~novaburst-dev/bumpmap-tool
[Static builds of my own branch of Logarion]:
https://novaburst.bsd.tilde.team/tarballs/
(there are a lot of tarballs, actually, because almost all of them are snapshots made with abuild for use with Alpine Linux)