summaryrefslogtreecommitdiff
path: root/dev-libs/efl
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-10-21 10:37:05 -0400
committerMike Frysinger <vapier@gentoo.org>2015-10-21 10:39:02 -0400
commit1cf76519807150b1b42c16349e856afeeee37a68 (patch)
tree97f30e465e4ab629da96e59e1477e2722b36ce1a /dev-libs/efl
parentb95c7dc6904efdea1b1bf7d55d2767759fa799be (diff)
downloadgentoo-1cf76519807150b1b42c16349e856afeeee37a68.tar.gz
gentoo-1cf76519807150b1b42c16349e856afeeee37a68.tar.xz
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.
Diffstat (limited to 'dev-libs/efl')
-rw-r--r--dev-libs/efl/efl-1.15.2.ebuild14
1 files changed, 13 insertions, 1 deletions
diff --git a/dev-libs/efl/efl-1.15.2.ebuild b/dev-libs/efl/efl-1.15.2.ebuild
index da07704633a..806219a27a0 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"