summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools/php
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/recipes-devtools/php
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/recipes-devtools/php')
-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 @@
1--- a/ext/opcache/jit/Makefile.frag 2021-10-19 06:34:32.000000000 -0400
2+++ b/ext/opcache/jit/Makefile.frag 2021-11-15 15:10:41.437289836 -0500
3@@ -3,7 +3,7 @@ $(builddir)/minilua: $(srcdir)/jit/dynas
4 $(CC) $(srcdir)/jit/dynasm/minilua.c -lm -o $@
5
6 $(builddir)/jit/zend_jit_x86.c: $(srcdir)/jit/zend_jit_x86.dasc $(srcdir)/jit/dynasm/*.lua $(builddir)/minilua
7- $(builddir)/minilua $(srcdir)/jit/dynasm/dynasm.lua $(DASM_FLAGS) -o $@ $(srcdir)/jit/zend_jit_x86.dasc
8+ $(top_srcdir)/qemuwrapper $(builddir)/minilua $(srcdir)/jit/dynasm/dynasm.lua $(DASM_FLAGS) -o $@ $(srcdir)/jit/zend_jit_x86.dasc
9
10 $(builddir)/jit/zend_jit.lo: \
11 $(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 @@
1From 73ea1d44c1e6b063bfa02e12919ec8a9de3709d8 Mon Sep 17 00:00:00 2001
2From: Michael Heimpold <mhei@heimpold.de>
3Date: Wed, 3 Feb 2021 22:51:34 +0100
4Subject: [PATCH] Fix opcache jit minilua compiling
5
6Signed-off-by: Michael Heimpold <mhei@heimpold.de>
7---
8 ext/opcache/jit/Makefile.frag | 2 +-
9 1 file changed, 1 insertion(+), 1 deletion(-)
10
11--- a/ext/opcache/jit/Makefile.frag
12+++ b/ext/opcache/jit/Makefile.frag
13@@ -1,6 +1,6 @@
14
15 $(builddir)/minilua: $(srcdir)/jit/dynasm/minilua.c
16- $(CC) $(srcdir)/jit/dynasm/minilua.c -lm -o $@
17+ $(HOSTCC) $(srcdir)/jit/dynasm/minilua.c -lm -o $@
18
19 $(builddir)/jit/zend_jit_x86.c: $(srcdir)/jit/zend_jit_x86.dasc $(srcdir)/jit/dynasm/*.lua $(builddir)/minilua
20 $(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"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=99532e0f6620bc9bca34f12fadaee33c" 6LIC_FILES_CHKSUM = "file://LICENSE;md5=99532e0f6620bc9bca34f12fadaee33c"
7 7
8BBCLASSEXTEND = "native" 8BBCLASSEXTEND = "native"
9DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native" 9DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native qemu-native"
10DEPENDS:class-native = "zlib-native libxml2-native" 10DEPENDS:class-native = "zlib-native libxml2-native"
11 11
12PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}" 12PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}"
@@ -25,7 +25,7 @@ SRC_URI:append:class-target = " \
25 file://0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch \ 25 file://0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch \
26 file://0007-sapi-cli-config.m4-fix-build-directory.patch \ 26 file://0007-sapi-cli-config.m4-fix-build-directory.patch \
27 file://0008-ext-imap-config.m4-fix-include-paths.patch \ 27 file://0008-ext-imap-config.m4-fix-include-paths.patch \
28 file://1010-Fix-opcache-jit-minilua-compiling.patch \ 28 file://0011-use-qemuwrapper-for-minilua.patch \
29 file://php-fpm.conf \ 29 file://php-fpm.conf \
30 file://php-fpm-apache.conf \ 30 file://php-fpm-apache.conf \
31 file://70_mod_php${PHP_MAJOR_VERSION}.conf \ 31 file://70_mod_php${PHP_MAJOR_VERSION}.conf \
@@ -36,7 +36,7 @@ S = "${WORKDIR}/php-${PV}"
36SRC_URI[sha256sum] = "b4886db1df322dc8fb128d8b34ae7e94f6fc682ecb29ff4f5a591d4de9feadbf" 36SRC_URI[sha256sum] = "b4886db1df322dc8fb128d8b34ae7e94f6fc682ecb29ff4f5a591d4de9feadbf"
37 37
38 38
39inherit autotools pkgconfig python3native gettext 39inherit autotools pkgconfig python3native gettext qemu
40 40
41# phpize is not scanned for absolute paths by default (but php-config is). 41# phpize is not scanned for absolute paths by default (but php-config is).
42# 42#
@@ -128,6 +128,17 @@ do_configure:prepend () {
128 find ${S} -name config.m4 | xargs -n1 sed -i 's!APXS_HTTPD=.*!APXS_HTTPD=${STAGING_SBINDIR_NATIVE}/httpd!' 128 find ${S} -name config.m4 | xargs -n1 sed -i 's!APXS_HTTPD=.*!APXS_HTTPD=${STAGING_SBINDIR_NATIVE}/httpd!'
129} 129}
130 130
131do_configure:prepend:class-target () {
132 # Write out a qemu wrapper that will be used by the makefile
133 # so that it can run minilua through that.
134 qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
135 cat > ${S}/qemuwrapper << EOF
136#!/bin/sh
137$qemu_binary "\$@"
138EOF
139 chmod +x ${S}/qemuwrapper
140}
141
131do_configure:append() { 142do_configure:append() {
132 # No, libtool, we really don't want rpath set... 143 # No, libtool, we really don't want rpath set...
133 sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' ${HOST_SYS}-libtool 144 sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' ${HOST_SYS}-libtool