From 9800daf59d2235bc492d1aeb600e46ad62303510 Mon Sep 17 00:00:00 2001 From: Mark Asselstine Date: Wed, 10 Oct 2018 15:35:44 -0400 Subject: meson.bbclass: Fix build issues with /tmp mounted with noexec Since commit d297f7ebf3f6 [fribidi: use Meson instead of autotools] build failures have been observed with this package. The immediate issue was related to improperly named #defines per https://github.com/fribidi/fribidi/commit/46f52d588ab5, however, the root cause was FRIBIDI_SIZEOF_INT getting a value of "-1". After searching the meson logs the following was found: Could not run: /tmp/tmp2fxe6ha1/output.exe (error: [Errno 13] Permission denied) Checking for size of "int": -1 Which pointed to the real root cause being /tmp mounted with noexec, a common configuration on Redhat and other distros. This issues has been raised in the meson community: https://github.com/mesonbuild/meson/issues/2972 but is yet to be addressed. Using the discussion from issue#2972 and the fact that the underlying code makes use of python 'tempfile' we can simply create a 'tmp' directory and make use of TMPDIR to avoid this issue. Signed-off-by: Mark Asselstine Signed-off-by: Richard Purdie --- meta/classes/meson.bbclass | 3 +++ 1 file changed, 3 insertions(+) (limited to 'meta/classes/meson.bbclass') diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass index ed08a4058c..7e63e12588 100644 --- a/meta/classes/meson.bbclass +++ b/meta/classes/meson.bbclass @@ -109,6 +109,9 @@ EOF CONFIGURE_FILES = "meson.build" meson_do_configure() { + # Work around "Meson fails if /tmp is mounted with noexec #2972" + mkdir -p "${B}/meson-private/tmp" + export TMPDIR="${B}/meson-private/tmp" bbnote Executing meson ${EXTRA_OEMESON}... if ! meson ${MESONOPTS} "${MESON_SOURCEPATH}" "${B}" ${MESON_CROSS_FILE} ${EXTRA_OEMESON}; then bbfatal_log meson failed -- cgit 1.2.3-korg