bfgroup / b2

B2 makes it easy to build C++ projects, everywhere.
https://www.bfgroup.xyz/b2/
Boost Software License 1.0
76 stars 228 forks source link

build error on Raspberry Pi 2 Model B #142

Open LaySoft opened 2 years ago

LaySoft commented 2 years ago

I tried to install openswoole php pecl package on my Raspberry (Ubuntu 21.10) with the command:

pecl install openswoole

After a long time it breaks with the error:

libtool: compile: cc -I. -I/tmp/pear/temp/openswoole -I/tmp/pear/temp/pear-build-root6fqqK8/openswoole-4.10.0/include -I/tmp/pear/temp/pear-build-root6fqqK8/openswoole-4.10.0/main -I/tmp/pear/temp/openswoole -I/usr/include/php/20200930 -I/usr/include/php/20200930/main -I/usr/include/php/20200930/TSRM -I/usr/include/php/20200930/Zend -I/usr/include/php/20200930/ext -I/usr/include/php/20200930/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/tmp/pear/temp/openswoole -I/tmp/pear/temp/openswoole/include -I/tmp/pear/temp/openswoole/ext-src -I/tmp/pear/temp/openswoole/thirdparty/hiredis -DHAVE_CONFIG_H -Wall -pthread -g -O2 -DENABLE_PHP_SWOOLE -c /tmp/pear/temp/openswoole/thirdparty/boost/asm/jump_arm_aapcs_elf_gas.S -fPIC -DPIC -o thirdparty/boost/asm/.libs/jump_arm_aapcs_elf_gas.o /tmp/pear/temp/openswoole/thirdparty/boost/asm/jump_arm_aapcs_elf_gas.S: Assembler messages: /tmp/pear/temp/openswoole/thirdparty/boost/asm/jump_arm_aapcs_elf_gas.S:60: Error: selected processor does not support vstmia sp,{d8-d15}' in ARM mode /tmp/pear/temp/openswoole/thirdparty/boost/asm/jump_arm_aapcs_elf_gas.S:77: Error: selected processor does not support vldmia sp,{d8-d15}' in ARM mode make: *** [Makefile:463: thirdparty/boost/asm/jump_arm_aapcs_elf_gas.lo] Error 1 ERROR: `make' failed

It seems it's a boostorg problem: https://github.com/boostorg/context/issues/114

Is there any way, to fix this?

grafikrobot commented 2 years ago

I need to know how b2 is being invoked to make progress on this.

Minimonium commented 2 years ago

We experience the same issue on our Qemu-based build machine with Raspbian 10 with GCC 11 installed.

We build through Conan but this is the only similar issue. The line invoked looks like this:

b2 -q numa=on target-os=linux architecture=arm address-model=32 binary-format=elf abi=aapcs --layout=system --user-config=/builds/soft/apps/axt/axt/.conan/data/boost/1.73.0/_/_/source/source_subfolder/tools/build/user-config.jam -sNO_ZLIB=0 -sNO_BZIP2=0 -sNO_LZMA=1 -sNO_ZSTD=1 boost.locale.icu=off --disable-icu boost.locale.iconv=on boost.locale.iconv.lib=libc threading=multi visibility=hidden link=static variant=release --with-atomic --with-chrono --with-container --with-context --with-contract --with-coroutine --with-date_time --with-exception --with-fiber --with-filesystem --with-graph --with-iostreams --with-locale --with-log --with-math --with-nowide --with-program_options --with-random --with-regex --with-serialization --with-stacktrace --with-system --with-test --with-thread --with-timer --with-type_erasure --with-wave toolset=gcc define=_GLIBCXX_USE_CXX11_ABI=1 pch=on  cxxflags="-fPIC -DBOOST_STACKTRACE_ADDR2LINE_LOCATION=/usr/bin/addr2line" install --prefix=/builds/soft/apps/axt/axt/.conan/data/boost/1.73.0/_/_/package/f2ed6f69f82b143dc74625fec05fabc9ae381246 -j4 --abbreviate-paths -d0 --debug-configuration --build-dir="/builds/soft/apps/axt/axt/.conan/data/boost/1.73.0/_/_/build/f2ed6f69f82b143dc74625fec05fabc9ae38124
Minimonium commented 2 years ago

Fixed by reconfigurating GCC with --with-fpu=neon-fp-armv8 flag

LaySoft commented 2 years ago

Fixed by reconfigurating GCC with --with-fpu=neon-fp-armv8 flag

How can I apply this fix on the openswoole package?

Minimonium commented 2 years ago

It's the issue with GCC configuration it seems. So you either need to fix how Ubuntu configurated the compiler itself for Raspberry or pass an explicit -mfpu to compile flags.