Кросс-компиляция PHP для ARM - PullRequest
       24

Кросс-компиляция PHP для ARM

0 голосов
/ 25 сентября 2019

Я пытаюсь кросс-компилировать PHP для ARM.Вот что я сделал:

$ apt install re2c
$ mkdir ~/lamp
$ git clone https://github.com/php/php-src.git
$ cd php-src
$ ./buildconf
$ ./configure --prefix ~/lamp/sysroot --host=arm --build=x86_64

Системные переменные устанавливаются скриптом инициализации кросс-компилятора.Например:

$ echo $CC
arm-openstlinux_weston-linux-gnueabi-gcc -march=armv7ve -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/local/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi

$ echo $CFLAGS
-O2 -pipe -g -feliminate-unused-debug-types

Этап configure успешно завершен.Но когда я пытаюсь собрать, я получаю:

$ make
/bin/bash /home/osboxes/lamp/php-src/libtool --silent --preserve-dup-deps --mode=compile arm-openstlinux_weston-linux-gnueabi-gcc -march=armv7ve -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/local/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Iext/opcache/ -I/home/osboxes/lamp/php-src/ext/opcache/ -DPHP_ATOM_INC -I/home/osboxes/lamp/php-src/include -I/home/osboxes/lamp/php-src/main -I/home/osboxes/lamp/php-src -I/local/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi/usr/include/valgrind -I/home/osboxes/lamp/php-src/ext/date/lib -I/local/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi/usr/include/libxml2 -I/home/osboxes/lamp/php-src/TSRM -I/home/osboxes/lamp/php-src/Zend    -I/usr/include -O2 -pipe -g -feliminate-unused-debug-types -fvisibility=hidden -Wall -Wno-strict-aliasing -DZEND_SIGNALS    -c /home/osboxes/lamp/php-src/ext/opcache/ZendAccelerator.c -o ext/opcache/ZendAccelerator.lo 
cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories]
In file included from /home/osboxes/lamp/php-src/Zend/zend.h:30,
                 from /home/osboxes/lamp/php-src/main/php.h:31,
                 from /home/osboxes/lamp/php-src/ext/opcache/ZendAccelerator.c:22:
/home/osboxes/lamp/php-src/ext/opcache/ZendAccelerator.c: In function ‘store_script_in_file_cache’:
/home/osboxes/lamp/php-src/Zend/zend_alloc.h:30:38: error: missing binary operator before token "8"
 # define ZEND_MM_ALIGNMENT ((size_t) 8)
                                      ^
/home/osboxes/lamp/php-src/ext/opcache/ZendAccelerator.c:1371:7: note: in expansion of macro ‘ZEND_MM_ALIGNMENT’
 #elif ZEND_MM_ALIGNMENT < 8
       ^~~~~~~~~~~~~~~~~
Makefile:794: recipe for target 'ext/opcache/ZendAccelerator.lo' failed
make: *** [ext/opcache/ZendAccelerator.lo] Error 1

Насколько я понимаю, проблема может заключаться в использовании каталога include (/usr/include), который связан с хост-системой, а не с целевой (sysroot)).

Я просмотрел параметры configure -h, но не нашел ничего, связанного с sysroot или включенными каталогами.

...