aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe
diff options
context:
space:
mode:
authorClaude Bing <cbing@cybernetics.com>2021-11-16 09:21:39 -0500
committerKhem Raj <raj.khem@gmail.com>2021-11-16 09:11:31 -0800
commit265bab83c9acbfa97117103dd5c35bbd8a9814d6 (patch)
tree1c7aeaec30a0b7f110e1d6934695656410212baa /meta-oe
parentab1057d1b5e4c68ef54123ba053f2441dab1021f (diff)
downloadmeta-openembedded-265bab83c9acbfa97117103dd5c35bbd8a9814d6.tar.gz
php: use qemu wrapper to build minilua
minilua, by default, is compiled by the host machine as a dependency for compiling the JIT/opcache extension. To successfully cross-compile, this needs to be run under QEMU to match the target architecture. According to the [RFC](https://wiki.php.net/rfc/jit), only x86 and x86_64 targets are supported. Signed-off-by: Ashley Cox <ashleyc@cybernetics.com> Signed-off-by: Claude Bing <cbing@cybernetics.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe')
-rw-r--r--meta-oe/recipes-devtools/php/php/0011-use-qemuwrapper-for-minilua.patch11
-rw-r--r--meta-oe/recipes-devtools/php/php/1010-Fix-opcache-jit-minilua-compiling.patch20
-rw-r--r--meta-oe/recipes-devtools/php/php_8.0.12.bb17
3 files changed, 25 insertions, 23 deletions
diff --git a/meta-oe/recipes-devtools/php/php/0011-use-qemuwrapper-for-minilua.patch b/meta-oe/recipes-devtools/php/php/0011-use-qemuwrapper-for-minilua.patch
new file mode 100644
index 0000000000..892a0460cf
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0011-use-qemuwrapper-for-minilua.patch
@@ -0,0 +1,11 @@
+--- a/ext/opcache/jit/Makefile.frag 2021-10-19 06:34:32.000000000 -0400
++++ b/ext/opcache/jit/Makefile.frag 2021-11-15 15:10:41.437289836 -0500
+@@ -3,7 +3,7 @@ $(builddir)/minilua: $(srcdir)/jit/dynas
+ $(CC) $(srcdir)/jit/dynasm/minilua.c -lm -o $@
+
+ $(builddir)/jit/zend_jit_x86.c: $(srcdir)/jit/zend_jit_x86.dasc $(srcdir)/jit/dynasm/*.lua $(builddir)/minilua
+- $(builddir)/minilua $(srcdir)/jit/dynasm/dynasm.lua $(DASM_FLAGS) -o $@ $(srcdir)/jit/zend_jit_x86.dasc
++ $(top_srcdir)/qemuwrapper $(builddir)/minilua $(srcdir)/jit/dynasm/dynasm.lua $(DASM_FLAGS) -o $@ $(srcdir)/jit/zend_jit_x86.dasc
+
+ $(builddir)/jit/zend_jit.lo: \
+ $(builddir)/jit/zend_jit_x86.c \
diff --git a/meta-oe/recipes-devtools/php/php/1010-Fix-opcache-jit-minilua-compiling.patch b/meta-oe/recipes-devtools/php/php/1010-Fix-opcache-jit-minilua-compiling.patch
deleted file mode 100644
index 6f134fabb8..0000000000
--- a/meta-oe/recipes-devtools/php/php/1010-Fix-opcache-jit-minilua-compiling.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-From 73ea1d44c1e6b063bfa02e12919ec8a9de3709d8 Mon Sep 17 00:00:00 2001
-From: Michael Heimpold <mhei@heimpold.de>
-Date: Wed, 3 Feb 2021 22:51:34 +0100
-Subject: [PATCH] Fix opcache jit minilua compiling
-
-Signed-off-by: Michael Heimpold <mhei@heimpold.de>
----
- ext/opcache/jit/Makefile.frag | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/ext/opcache/jit/Makefile.frag
-+++ b/ext/opcache/jit/Makefile.frag
-@@ -1,6 +1,6 @@
-
- $(builddir)/minilua: $(srcdir)/jit/dynasm/minilua.c
-- $(CC) $(srcdir)/jit/dynasm/minilua.c -lm -o $@
-+ $(HOSTCC) $(srcdir)/jit/dynasm/minilua.c -lm -o $@
-
- $(builddir)/jit/zend_jit_x86.c: $(srcdir)/jit/zend_jit_x86.dasc $(srcdir)/jit/dynasm/*.lua $(builddir)/minilua
- $(builddir)/minilua $(srcdir)/jit/dynasm/dynasm.lua $(DASM_FLAGS) -o $@ $(srcdir)/jit/zend_jit_x86.dasc
diff --git a/meta-oe/recipes-devtools/php/php_8.0.12.bb b/meta-oe/recipes-devtools/php/php_8.0.12.bb
index 8d24c187ef..4f484179cc 100644
--- a/meta-oe/recipes-devtools/php/php_8.0.12.bb
+++ b/meta-oe/recipes-devtools/php/php_8.0.12.bb
@@ -6,7 +6,7 @@ LICENSE = "PHP-3.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=99532e0f6620bc9bca34f12fadaee33c"
BBCLASSEXTEND = "native"
-DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native"
+DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native qemu-native"
DEPENDS:class-native = "zlib-native libxml2-native"
PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}"
@@ -25,7 +25,7 @@ SRC_URI:append:class-target = " \
file://0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch \
file://0007-sapi-cli-config.m4-fix-build-directory.patch \
file://0008-ext-imap-config.m4-fix-include-paths.patch \
- file://1010-Fix-opcache-jit-minilua-compiling.patch \
+ file://0011-use-qemuwrapper-for-minilua.patch \
file://php-fpm.conf \
file://php-fpm-apache.conf \
file://70_mod_php${PHP_MAJOR_VERSION}.conf \
@@ -36,7 +36,7 @@ S = "${WORKDIR}/php-${PV}"
SRC_URI[sha256sum] = "b4886db1df322dc8fb128d8b34ae7e94f6fc682ecb29ff4f5a591d4de9feadbf"
-inherit autotools pkgconfig python3native gettext
+inherit autotools pkgconfig python3native gettext qemu
# phpize is not scanned for absolute paths by default (but php-config is).
#
@@ -128,6 +128,17 @@ do_configure:prepend () {
find ${S} -name config.m4 | xargs -n1 sed -i 's!APXS_HTTPD=.*!APXS_HTTPD=${STAGING_SBINDIR_NATIVE}/httpd!'
}
+do_configure:prepend:class-target () {
+ # Write out a qemu wrapper that will be used by the makefile
+ # so that it can run minilua through that.
+ qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
+ cat > ${S}/qemuwrapper << EOF
+#!/bin/sh
+$qemu_binary "\$@"
+EOF
+ chmod +x ${S}/qemuwrapper
+}
+
do_configure:append() {
# No, libtool, we really don't want rpath set...
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' ${HOST_SYS}-libtool