Ошибка встраивания при вызове «always_inline» «vld1q_u16» — кросс-компиляция Node.js для Armv6C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка встраивания при вызове «always_inline» «vld1q_u16» — кросс-компиляция Node.js для Armv6

Сообщение Anonymous »

Я пытаюсь кросс-компилировать Node.js для Raspberry Pi Zero v1. В отличие от модели v2, в этой модели используется процессор Armv6, а официальные выпуски узлов предназначены только для Armv7+.
Я настроил проект с помощью следующего скрипта:

Код: Выделить всё

export CC=arm-linux-gnueabihf-gcc
export CXX=arm-linux-gnueabihf-g++
export CC_host="gcc -m32"
export CXX_host="g++ -m32"
mkdir ../node_build_armv6
./configure --prefix=../node_build_armv6 --dest-cpu=arm --cross-compiling --dest-os=linux --with-arm-float-abi=hard --with-arm-fpu=neon
Большую часть информации я взял из этой статьи: Кросс-компиляция Node.js для ARM в Ubuntu
Ошибки, которые я получаю, выглядят следующим образом:< /p>

Код: Выделить всё

/usr/lib/gcc-cross/arm-linux-gnueabihf/13/include/arm_neon.h:10460:1: error: inlining failed in call to ‘always_inline’ ‘vld1q_u16’: target specific option mismatch
10460 | vld1q_u16 (const uint16_t * __a)
| ^~~~~~~~~
../deps/zlib/slide_hash_simd.h:50:25: note: called from here
50 |         uint16x8_t v8 = vld1q_u16(table + 8); \
|                         ^~~~~~~~~~~~~~~~~~~~
../deps/zlib/slide_hash_simd.h:107:5: note: in expansion of macro ‘Z_SLIDE_HASH_SIMD’
107 |     Z_SLIDE_HASH_SIMD(prev, w_size, vec_wsize);
|     ^~~~~~~~~~~~~~~~~
/usr/lib/gcc-cross/arm-linux-gnueabihf/13/include/arm_neon.h:10460:1: error: inlining failed in call to ‘always_inline’ ‘vld1q_u16’: target specific option mismatch
10460 | vld1q_u16 (const uint16_t * __a)
| ^~~~~~~~~
../deps/zlib/slide_hash_simd.h:49:25: note: called from here
49 |         uint16x8_t vO = vld1q_u16(table + 0); \
|                         ^~~~~~~~~~~~~~~~~~~~
../deps/zlib/slide_hash_simd.h:107:5: note: in expansion of macro ‘Z_SLIDE_HASH_SIMD’
107 |     Z_SLIDE_HASH_SIMD(prev, w_size, vec_wsize);
|     ^~~~~~~~~~~~~~~~~
Мне удалось обнаружить, что vld1q_u16 — это инструкция векторной операции AVX, которая не поддерживается моим целевым процессором. Кажется, проблема в zlib, а не в самом nodejs, но мне бы очень хотелось как-то сказать всей системе сборки, чтобы она не собирала эту инструкцию.
Есть ли аргумент configure, который я могу передать, чтобы избежать этой ошибки?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ng-node-js
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»