как скомпилировать node-v4.2.4 с armv7 без fpu?

У меня есть устройство, процессор которого armv7, но без процессора.

Я могу скомпилировать узел с опцией —with-arm-float-abi = soft, но когда я запускаю «node», происходит «Недопустимая инструкция (сбрасывается ядро)»

root@router:/tmp/target/bin# ./node -v
v4.2.4
root@router:/tmp/target/bin# ./node --v8-options | head -2
target arm v7 vfp3 soft
ARMv7=1 VFP3=1 VFP32DREGS=0 NEON=0 SUDIV=0 UNALIGNED_ACCESSES=1
MOVW_MOVT_IMMEDIATE_LOADS=0 COHERENT_CACHE=0 USE_EABI_HARDFLOAT=0

Инструмент objdump показал мне, что существуют инструкции (такие как vpush, vpop …), которые не поддерживаются моим процессором (arm v7 без fpu).

Для дальнейшего я нашел openssl и v8 в источнике узла, используя инструкции fpu.

строка конфигурации, как показано ниже

./configure \
--prefix=target \
--dest-cpu=arm \
--dest-os=linux \
--without-snapshot \
--with-arm-float-abi=soft \
--fully-static

Может кто-нибудь сказать мне, как скомпилировать node-v4.2.4 без поддержки fpu?

исходный код: nodejs-v4.2.2

версия руки: Cortex-A9 с плавающей запятой (FPU) (опция)

4

Решение

После многих попыток я использовал взамен node-v0.10.14, который хорошо работает без поддержки fpu. 😉

Так что я до сих пор не знаю, как скомпилировать nodejs-v4.2.2 без поддержки fpu.

3

Другие решения

Это невозможно.
V8 не поддерживает режим fpu с 3.18 (https://github.com/nodejs/node/issues/4447#issuecomment-168549889), предполагается, что ядро ​​может эмулировать для вас FPU. И NodeJS основан на V8.

Relavant комментарий в исходном коде:
https://github.com/v8/v8/blob/master/src/arm/assembler-arm.cc#L174

Это уточняется в Список рассылки v8-пользователей тоже.

0

По вопросам рекламы [email protected]