mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-14 17:59:59 +00:00
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>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user