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

Reply via email to