Компиляция рецепта не удалась из-за проблемы совместимости модуля с плавающей точкой (я полагаю) - PullRequest
0 голосов
/ 20 марта 2020

Я застрял при составлении рецепта битового теста для Allwinner H2 Так что C. Кажется, это проблема совместимости модулей с плавающей запятой. Это журнал ошибок компиляции (сокращенные пути и добавленные разрывы строк для немного лучшей читабельности):

python3-scipy/1.3.3-r0/recipe-sysroot-native/[...]/gcc/arm-poky-linux-gnueabi/8.3.0/ld: error: build/lib.linux-x86_64-3.7/scipy/fftpack/_fftpack.cpython-37m-arm-linux-gnueabi.so uses VFP register arguments, build/temp.linux-x86_64-3.7/libfftpack.a(cffti1.o) does not
python3-scipy/1.3.3-r0/recipe-sysroot-native/[...]/gcc/arm-poky-linux-gnueabi/8.3.0/ld:: failed to merge target specific data of file build/temp.linux-x86_64-3.7/libfftpack.a(cffti1.o)

[...]

| error: Command "/home/marius/mender-orangepi-warrior/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/python3-scipy/1.3.3-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc -Wall -g -march=armv7ve -mthumb -mfpu=neon -mfloat-abi=hard \
-fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security \
--sysroot=/home/marius/mender-orangepi-warrior/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/python3-scipy/1.3.3-r0/recipe-sysroot -shared -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fstack-protector-strong -Wl,-z,relro,-z,now \
-L/home/marius/mender-orangepi-warrior/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/python3-scipy/1.3.3-r0/recipe-sysroot/usr/lib/python3.7/site-packages/numpy/core/lib build/temp.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack/_fftpackmodule.o \
build/temp.linux-x86_64-3.7/scipy/fftpack/src/zfft.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/drfft.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/zrfft.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/zfftnd.o \
build/temp.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack/src/dct.o build/temp.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack/src/dst.o build/temp.linux-x86_64-3.7/build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack/fortranobject.o \
-L/home/marius/mender-orangepi-warrior/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/python3-scipy/1.3.3-r0/recipe-sysroot/usr/lib -Lbuild/temp.linux-x86_64-3.7 -ldfftpack -lfftpack -lpython3.7m \
-lgfortran -o build/lib.linux-x86_64-3.7/scipy/fftpack/_fftpack.cpython-37m-arm-linux-gnueabi.so -Wl,--version-script=build/temp.linux-x86_64-3.7/link-version-scipy.fftpack._fftpack.map" failed with exit status 1
| ERROR: 'python3 setup.py build ' execution failed.

Я попытался принудительно применить жесткую и мягкую обработку FPU, установив target_FPU = "soft", "hard" и "vfp-neon" в конфигурации машины. Во всех случаях компиляция зависала на одном шаге. Далее я поэкспериментировал с флагами компилятора на шаге сбоя, например, изменив -mfloat-abi на soft, hard и vfp-neon. Ни один из них не ведет к успеху.

Любой намек на то, как скомпилировать этот рецепт для этой архитектуры, высоко ценится!

Редактировать: Это рецепт, который я пытаюсь испечь: meta- SciPy

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Ошибка, которую вы видите, происходит потому, что компилятору фортрана не переданы правильные аргументы с плавающей запятой. Я создал запрос pull для meta-scipy, который решает эту проблему, по крайней мере, теперь я могу собрать для Raspberry Pi без принудительного создания soft-float.

0 голосов
/ 27 марта 2020

Это скорее обходной путь, но он позволил, наконец, скомпилировать этот рецепт: отключите ABI с жестким плавающей точкой, изменив DEFAULTTUNE. Эта мелодия работала:

DEFAULTTUNE ?= "cortexa7t-neon"

Как обсуждено здесь: https://github.com/gpanders/meta-scipy/issues/2#issuecomment -603266558

...