MLton на альпийском Linux

Я сталкиваюсь с проблемами при установке и запуске компилятора MLton в контейнере Docker с использованием Alpine Linux. Есть ли способ установить этот компилятор в этой системе?

Попробуйте №1

Используя стандартное `альпийское базовое изображение и двоичное распределение MLton:

$ curl http://sourceforge.net/projects/mlton/files/mlton/20130715/mlton-20130715-1.amd64-linux.tgz --output mlton-20130715-1.amd64-linux.tgz
$ docker build .

Со следующим Dockerfile:

FROM alpine
COPY mlton-20130715-1.amd64-linux.tgz /
RUN apk add --no-cache bash build-base gmp-dev linux-headers \
 && tar xf /mlton-20130715-1.amd64-linux.tgz \
        --directory /usr/ \
        --strip-components 1 \
 && echo 'print "Hello, world!\n";' >> hello-world.sml \
 && mlton hello-world.sml

Сборка Docker завершается неудачно со следующим сообщением об ошибке, возможно потому что glibc пропал, отсутствует.

/ usr / bin / mlton: строка 52: /usr/lib/mlton/mlton-compile: нет такого файла или каталога

Попробуйте №2

То же, что и выше, с базовым образом Docker, который встраивает glibc:

FROM frolvlad/alpine-glibc

Этот раз, mlton работает, но выдает следующую ошибку:

/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64-alpine-linux-musl/bin/ld: / usr / lib / mlton / target /self/libmlton.a(platform.o): перемещение R_X86_64_32 против `.rodata.str1.8'нельзя использовать при создании общего объекта; перекомпилировать с -fPIC

...

/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64-alpine-linux-musl/bin/ld: ошибка последней ссылки: непредставительный раздел на выход

collect2: error: ld вернул 1 состояние выхода

сбой вызова системы со статусом выхода 1:

gcc -o hello-world /tmp/fileGEluFu.o /tmp/fileYnNjh9.o -L / usr / lib / mlton / target /self -lmlton -lgdtoa -lm -lgmp -m64 -Wl,-znoexecstack

Есть идеи, как решить эту проблему?

0 ответов

Другие вопросы по тегам