при попытке кросс-компиляции PHP 7.1.9 (я тестирую другие ветки, те же ошибки) для ARM я получаю следующие ошибки:
korm@Notebook-1 ~/php-src $ make
/bin/bash /home/korm/php-src/libtool --silent --preserve-dup-deps --mode=compile arm-angstrom-linux-gnueabi-gcc -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard --sysroot=/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi -Iext/date/lib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -DHAVE_TIMELIB_CONFIG_H=1 -Iext/date/ -I/home/korm/php-src/ext/date/ -DPHP_ATOM_INC -I/home/korm/php-src/include -I/home/korm/php-src/main -I/home/korm/php-src -I/home/korm/php-src/ext/date/lib -I/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/libxml2 -I/home/korm/php-src/ext/mbstring/oniguruma -I/home/korm/php-src/ext/mbstring/libmbfl -I/home/korm/php-src/ext/mbstring/libmbfl/mbfl -I/home/korm/php-src/ext/sqlite3/libsqlite -I/home/korm/php-src/TSRM -I/home/korm/php-src/Zend -I/usr/include -I/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include -pipe -g -feliminate-unused-debug-types -D_GNU_SOURCE -g -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED -fvisibility=hidden -DZEND_SIGNALS -c /home/korm/php-src/ext/date/php_date.c -o ext/date/php_date.lo
cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories]
In file included from /home/korm/php-src/Zend/zend_config.h:1:0,
from /home/korm/php-src/Zend/zend_portability.h:48,
from /home/korm/php-src/Zend/zend_types.h:27,
from /home/korm/php-src/Zend/zend.h:31,
from /home/korm/php-src/main/php.h:35,
from /home/korm/php-src/ext/date/php_date.c:21:
/home/korm/php-src/include/../main/php_config.h:2585:15: error: duplicate ‘unsigned’
#define ulong unsigned long
^
/home/korm/php-src/include/../main/php_config.h:2582:14: error: duplicate ‘unsigned’
#define uint unsigned int
^
/home/korm/php-src/include/../main/php_config.h:2582:23: error: two or more data types in declaration specifiers
#define uint unsigned int
^
In file included from /home/korm/php-src/Zend/zend_portability.h:54:0,
from /home/korm/php-src/Zend/zend_types.h:27,
from /home/korm/php-src/Zend/zend.h:31,
from /home/korm/php-src/main/php.h:35,
from /home/korm/php-src/ext/date/php_date.c:21:
/usr/include/stdio.h:41:10: fatal error: bits/libio.h: No such file or directory
#include <bits/libio.h>
^~~~~~~~~~~~~~
compilation terminated.
Makefile:700: recipe for target 'ext/date/php_date.lo' failed
make: *** [ext/date/php_date.lo] Error 1
Проблема 1 решается, когда я удаляю эти строки в php.config.h:
#define uint unsigned int
#define ulong unsigned long
Эти строки дважды находятся в php_config.h, и мне пришлось удалить их обе, чтобы решить проблему.
Проблема 2 в этой строке в Makefile:
CFLAGS_CLEAN = -I/usr/include -I/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include -pipe -g -feliminate-unused-debug-types -D_GNU_SOURCE -g -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED -fvisibility=hidden -DZEND_SIGNALS $(PROF_FLAGS)
Если я удаляю -I / usr / include, то все в порядке.
То же самое происходит и здесь:
ext / iconv / iconv.lo: /home/korm/php-src/ext/iconv/iconv.c
$ (LIBTOOL) —mode = compile $ (CC) -I «/ usr / include» Если я изменю / usr / include на oecore-include, все работает нормально.
У кого-нибудь есть подсказка, как избежать этих ошибок, когда я звоню ./configure?
Моя цепочка инструментов настроена отсюда:
https://developer.toradex.com/getting-started/module-2-my-first-hello-world-in-c/configure-toolchain-colibri-imx7?som=colibri-imx7&плата = колибри-оценка доска
Заранее спасибо.
Задача ещё не решена.
Других решений пока нет …