Проблемы сборки Node.js v4 для ARM с программной эмуляцией операций с плавающей точкой

Проблемы сборки Node.js v4 для ARM с программной эмуляцией операций с плавающей точкой

Моя команда разрабатывает продукт на встроенной ОС Linux, работающей на Node.js для веб-бэкенда для конфигурации устройств. Мы переносим наш код на систему с процессором arm, у которой нет аппаратного FPU. (У предыдущего продукта был FPU.) Мы скомпилировали Node.js со следующими параметрами компилятора:

--with-arm-float-abi=soft

и

--with-arm-float-abi=softfp

Но в обоих случаях Node.js вылетает во время выполнения с недопустимой инструкцией, потому что пытается выполнить аппаратную операцию с плавающей точкой. Похоже, это в движке V8, потому что мы можем запустить его node --version, он выводит версию и завершает работу. Я не проверял исходный код, но предполагаю, что он не запускает V8 только для того, чтобы вывести номер версии.

Есть идеи, что мы упускаем? Я мог бы выложить весь makefile, если это поможет, но для этой проблемы это выглядит как шум. Я надеюсь найти кого-то, кто собрал Node.js (версия после 0.10) для процессора ARM, у которого нет аппаратной плавающей точки, и сказать мне, какие параметры конфигурации/сборки нам могут не хватать. Или скажите мне, что указанный выше параметр должен работать, а мы просто делаем его неправильно.

решение1

У меня была та же проблема. Я решил ее добавлением в файлconfig.gypiэти две строки:

'v8_can_use_fpu_instructions%': 'false', 'v8_use_mips_abi_hardfloat%': 'false',

Связанный контент