Почему мезон не может определить размер time_t, если работает в контейнере с tmpfs? - PullRequest
0 голосов
/ 13 ноября 2018

Вдохновленный файлом meson.build systemd, я создал следующий файл:

project('test','c')
cc = meson.get_compiler('c')
cc.sizeof('time_t', prefix : '#include <sys/time.h>')

Если я запускаю это в контейнере через docker run --rm -it ubuntu:18.04 bash и устанавливаю мезон через apt update && apt install -y meson gcc, это работает как положено, возвращая:

Проверка размера "time_t": 8

Однако, добавьте флаг --tmpfs /tmp к docker run, результат будет таким:

Проверка размера "time_t": -1

Почему это происходит? Может ли meson создавать временные исполняемые файлы в /tmp?

1 Ответ

0 голосов
/ 13 ноября 2018

После сравнения параметров монтирования /tmp в обоих контейнерах все оказалось очень просто: docker, похоже, по умолчанию устанавливает noexec, поэтому вы должны явно установить флаг exec:

--tmpfs /tmp:rw,nosuid,nodev,exec
...