From 1cf76519807150b1b42c16349e856afeeee37a68 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 21 Oct 2015 10:37:05 -0400 Subject: [PATCH] dev-libs/efl: fix builds on PaX kernels #547076 The luajit code modifies its mappings at runtime as it jit-compiles code and then executes it. The efl build process creates a lua tool (named elua) and then executes it to compile other efl code. This fails under PaX kernels by default. Hack the src_compile in this situations to build up elua first, tweak the PaX file marks on the new binary, and then resume the compilation. --- dev-libs/efl/efl-1.15.2.ebuild | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/dev-libs/efl/efl-1.15.2.ebuild b/dev-libs/efl/efl-1.15.2.ebuild index da07704633a1..806219a27a0d 100644 --- a/dev-libs/efl/efl-1.15.2.ebuild +++ b/dev-libs/efl/efl-1.15.2.ebuild @@ -18,7 +18,7 @@ else EKEY_STATE="snap" fi -inherit enlightenment +inherit enlightenment pax-utils DESCRIPTION="Enlightenment Foundation Libraries all-in-one package" @@ -256,6 +256,18 @@ src_configure() { enlightenment_src_configure } +src_compile() { + if host-is-pax && ! use oldlua ; then + # We need to build the lua code first so we can pax-mark it. #547076 + local target='_e_built_sources_target_gogogo_' + printf '%s: $(BUILT_SOURCES)\n' "${target}" >> src/Makefile || die + emake -C src "${target}" + emake -C src bin/elua/elua + pax-mark m src/bin/elua/.libs/elua + fi + enlightenment_src_compile +} + src_install() { MAKEOPTS+=" -j1" -- 2.26.2