【发布时间】:2020-01-01 17:04:38
【问题描述】:
在this answer 之后,我将这个内容放入meta-custom-layer/recipes-devtools/php/php_%.bbappend 文件中:
PACKAGECONFIG_pn-php = "mysql sqlite3 imap opcache openssl ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} apache2"
EXTRA_OECONF_append_class-target = " --with-curl=${STAGING_LIBDIR}/.."
DEPENDS_append_class-target = " icu curl"
EXTRA_OECONF =+ " --enable-mbstring --with-openssl --enable-bcmath --enable-sockets --enable-intl \
--with-icu-dir=${BASE_WORKDIR}/cortexa7t2hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/icu/62.1-r0/recipe-sysroot-native/usr \
, \
, icu-native icu"
PACKAGECONFIG ??= "sqlite3"
PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_LIBDIR}/.. \
--with-pdo-sqlite=${STAGING_LIBDIR}/.. \
, \
,sqlite3"
LIBS_pn-php =" -lpthread "
export LIBS
THREADS_pn-php = "pthread"
export THREADS
但在${BASE_WORKDIR}/cortexa7t2hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/icu/62.1-r0 下的bitbake icu 之后只有一个temp 文件夹,其中包含所有icu 任务,但没有recipe-sysroot-native。我也尝试bitbake build-sysroots 没有任何变化。
因此,bitbake php 失败,因为它在该文件夹中找不到预期的文件。
更新
这里是错误信息:
检查 ICU 头文件和库的位置...未找到
配置:错误:无法检测到 ICU 前缀或 /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp- glibc/work/cortexa7t2hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/icu/62.1-r0/recipe-sysroot-native/usr/bin/icu-config 失败。
我在这里找到了icu-config:
work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/recipe-sysroot/usr/bin/crossscripts/icu-config
但因为它试图将/bin附加到--with-icu-dir上设置的路径,我无法告诉它在哪里可以找到icu-config。
更新2
遵循@Jussi Kukkonen 的提示后,我得到了这些奇怪的编译错误:
cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories]
cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories]
In file included from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/../TSRM/TSRM.h:52,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/zend_portability.h:49,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/zend_types.h:27,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/zend.h:29,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/main/php.h:35,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/ext/intl/dateformat/../php_intl.h:23,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/ext/intl/dateformat/dateformat_format.c:21:
/usr/include/pthread.h:681:6: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:693:3: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:716:6: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:729:3: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:738:6: warning: 'regparm' attribute directive ignored [-Wattributes]
;
^
cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories]
In file included from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/../TSRM/TSRM.h:52,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/zend_portability.h:49,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/zend_types.h:27,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/zend.h:29,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/main/php.h:35,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/ext/intl/php_intl.h:23,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/ext/intl/dateformat/dateformat_parse.c:24:
/usr/include/pthread.h:681:6: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:693:3: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:716:6: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:729:3: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:738:6: warning: 'regparm' attribute directive ignored [-Wattributes]
;
^
In file included from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/../TSRM/TSRM.h:52,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/zend_portability.h:49,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/zend_types.h:27,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/Zend/zend.h:29,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/main/php.h:35,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/ext/intl/php_intl.h:23,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/ext/intl/msgformat/msgformat.c:24:
/usr/include/pthread.h:681:6: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:693:3: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:716:6: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:729:3: warning: 'regparm' attribute directive ignored [-Wattributes]
__cleanup_fct_attribute;
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:738:6: warning: 'regparm' attribute directive ignored [-Wattributes]
;
^
In file included from /usr/include/math.h:472,
from /local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/ext/intl/dateformat/dateformat_parse.c:22:
/local/STM32MP15-Ecosystem-v1.0.0/Distribution-Package/openstlinux-4.19-thud-mp1-19-02-20/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7hf-neon-vfpv4-openstlinux_eglfs-linux-gnueabi/php/7.2.10-r0/php-7.2.10/ext/intl/dateformat/dateformat_parse.c: In function 'zif_datefmt_parse':
/usr/include/bits/mathinline.h:751:3: error: invalid 'asm': invalid operand for code 'w'
__asm __volatile ("fnstcw %3\n\t" \
^~~~~
/usr/include/bits/mathinline.h:503:5: note: in definition of macro '__inline_mathcodeNP_'
code; \
^~~~
/usr/include/bits/mathinline.h:746:1: note: in expansion of macro '__inline_mathcodeNP'
__inline_mathcodeNP (floor, __x, \
^~~~~~~~~~~~~~~~~~~
/usr/include/bits/mathinline.h:769:3: error: invalid 'asm': invalid operand for code 'w'
__asm __volatile ("fnstcw %3\n\t" \
^~~~~
/usr/include/bits/mathinline.h:503:5: note: in definition of macro '__inline_mathcodeNP_'
code; \
^~~~
/usr/include/bits/mathinline.h:764:1: note: in expansion of macro '__inline_mathcodeNP'
__inline_mathcodeNP (ceil, __x, \
^~~~~~~~~~~~~~~~~~~
{standard input}: Assembler messages:
{standard input}:463: Error: bad instruction `fnstcw [sp,#16]'
{standard input}:464: Error: bad instruction `movzwl [sp,#16],r3'
{standard input}:465: Error: bad instruction `andl $0xf3ff,r3'
{standard input}:466: Error: bad instruction `orl $0x0400,r3'
{standard input}:467: Error: ARM register expected -- `movw ,[sp,#18]'
{standard input}:468: Error: bad instruction `fldcw [sp,#18]'
{standard input}:469: Error: bad instruction `frndint'
{standard input}:470: Error: bad instruction `fldcw [sp,#16]'
{standard input}:685: Error: bad instruction `fnstcw [sp,#16]'
{standard input}:686: Error: bad instruction `movzwl [sp,#16],r3'
{standard input}:687: Error: bad instruction `andl $0xf3ff,r3'
{standard input}:688: Error: bad instruction `orl $0x0800,r3'
{standard input}:689: Error: ARM register expected -- `movw ,[sp,#18]'
{standard input}:690: Error: bad instruction `fldcw [sp,#18]'
{standard input}:691: Error: bad instruction `frndint'
{standard input}:692: Error: bad instruction `fldcw [sp,#16]'
Makefile:1007: recipe for target 'ext/intl/dateformat/dateformat_parse.lo' failed
make: *** [ext/intl/dateformat/dateformat_parse.lo] Error 1
make: *** Waiting for unfinished jobs....
ERROR: oe_runmake failed
WARNING: exit code 1 from a shell command.
ERROR: Function failed: do_compile
【问题讨论】:
-
该 sn-p 中的几乎每一行都有些奇怪,但主要是 icu-additions 不能这样工作:它看起来像 PACKAGECONFIG 格式,但在 EXTRA_OECONF 中使用(带有硬编码的构建主机路径引导)。您可能应该添加一个 PACKAGECONFIG[icu] (类似于 sqlite3 之一)假设 php 确实需要拼写出路径。假设 php 构建不会永远持续下去,我可以快速浏览一下......
-
icu-config 是一个红鲱鱼:那些几乎从不在交叉编译情况下工作,所以它们通常甚至在 yocto 中都不可用。 pkg-config 可以工作(因为 Yocto 中有一个特殊版本),但由于某种原因,这太容易了,像 php 这样的项目似乎没有使用它。
-
@JussiKukkonen 我的 Yocto knownloedge 太少,无法完全理解您的提示。基本上我需要启用
intlphp 扩展来运行CakePHP 应用程序。如果有更简单的方法我很高兴学习它!