Some additionnal elements:
- shells/bash seems to be a RUN_DEPENDS (or scripts should be reviewed
and switched to ksh if possible).
$ mlton
env: bash: No such file or directory
./usr/local/bin/mlton:#!/usr/bin/env bash
./usr/local/lib/mlton/platform:#!/usr/bin/env bash
./usr/local/lib/mlton/static-library:#! /usr/bin/env bash
- mprotect(2) violations for mlton and all binaries builded with mlton
mlton-on-20130715-release/runtime/platform/mmap-protect.c
10: if (mprotect (result, length, PROT_READ | PROT_WRITE | PROT_EXEC))
11: diee ("mprotect failed");
this code is reach in GC initialisation (it builds a sigaltstack with
its own page protection (PROT_NONE)).
it makes mlton (and binaries compiled with mlton) violating W^X.
I tried removing PROT_EXEC as this block of memory is used for
sigaltstack(2) (stack_t.ss_sp), and this stack shouldn't required to
be executable. I just have done simple testing.
- lot of failure in building of tests due to ld errors:
"relocation R_X86_64_32S against `a local symbol' can not be used when making
a shared object; recompile with -fPIC"
according to https://github.com/MLton/mlton/issues/148 you should add
| (OpenBSD, _, _) => true
at line 936 to force compilation with position independent executable
which that, after a rebuild of the bootstrapper, it seems to be ok (no
more ld errors).
--
Sebastien Marie