Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Идёт попытка собрать Google V8 под NDMS. Собираться-то собирается, но при запуске виснет. Есть мнение, что неверные параметры при компиляции, связанные с floating point. V8 к этому очень чувствителен.

Итак, что имеем:

Keenetic Ultra II

SDK: ndwrt_gpl_2.06.A.6.0-12_011215

собранный V8 (коммит 3606220e348799e7b5332d191a456bfd4ab67df1) со следующими параметрами (из Makefile):

export GYPFLAGS=-Dv8_use_mips_abi_hardfloat=false -Dv8_can_use_fpu_instructions=false
export V8_ARGS=library=shared i18nsupport=off $(ARCH).release
export CFLAGS=-msoft-float
export CXXFLAGS=-msoft-float
 

При запуске d8 он зависает, а в логе имеем:

kernel: FPU emulator disabled, make sure your toolchainwas compiled with software floating point support (soft-float)
 

В процессе сборки параметры были такие:

mipsisa32r2el-unknown-linux-uclibc-g++ '-DV8_TARGET_ARCH_MIPS' '-D__mips_soft_float=1' '-D_MIPS_ARCH_MIPS32R2' '-DENABLE_DEBUGGER_SUPPORT' '-DV8_DEPRECATION_WARNINGS' '-DV8_USE_DEFAULT_PLATFORM' '-DBUILDING_V8_SHARED' '-DV8_SHARED' '-DENABLE_HANDLE_ZAPPING'
 -I../src  -Wall -Werror -W -Wno-unused-parameter -pthread -fno-exceptions -pedantic -ansi -fPIC -EL -msoft-float -mips32r2 -Wa,-mips32r2 -EL -msoft-float -mips32r2 -Wa,-mips32r2 -fdata-sections -ffunction-sections -O3 -fdata-sections -ffunction-sections -O3 -Wnon-virtual-dtor -fno-rtti
 -MMD -MF /home/xxx/ndwrt_gpl_2.06.A.6.0-12_011215/build_dir/target-ku_rd-mipsel-linux-uclibc/libv8-3606220e348799e7b5332d191a456bfd4ab67df1/out/mipsel.release/.deps//home/xxx/ndwrt_gpl_2.06.A.6.0-12_011215/build_dir/target-ku_rd-mipsel-linux-uclibc/libv8-3606220e348799e7b5332d191a456bfd4ab67df1/out/mipsel.release/obj.target/v8_base.mipsel/src/mips/disasm-mips.o.d.raw
 -msoft-float -c -o /home/xxx/ndwrt_gpl_2.06.A.6.0-12_011215/build_dir/target-ku_rd-mipsel-linux-uclibc/libv8-3606220e348799e7b5332d191a456bfd4ab67df1/out/mipsel.release/obj.target/v8_base.mipsel/src/mips/disasm-mips.o
  ../src/mips/disasm-mips.cc
 

Есть идеи, куда копать?

Опубликовано

Ну, я точно знаю, что стоит, т.к. на похожем железе пробовал уже.

С ссылкой проблема в том, что мне нужно именно отдельно libv8, да и ещё конкретный коммит (команда V8 утомила раз в полгода менять C++ API, и мы зафиксировали для себя версию почти двухлетней давности. Тем более ECMA6 нам не надо). А с какими они параметрами собираются в Entware?

В README нашёл:

I cross-compiled node using the entware toolchain using the following commands.

export CFLAGS='-mips32r2 -mtune=mips32r2'
export CXXFLAGS='-mips32r2 -mtune=mips32r2'
export LDFLAGS='-Wl,--dynamic-linker=/opt/lib/ld-uClibc.so.0 -Wl,-rpath,/opt/lib'
export AR=mipsel-linux-ar
export CC=mipsel-linux-gcc
export CXX=mipsel-linux-g++
export LINK=mipsel-linux-g++

./configure \
--prefix=/opt  \
--dest-os=linux \
--dest-cpu=mipsel \
--with-mips-float-abi=soft  \
--without-snapshot

make

Опубликовано

А этот нодовский пакет тоже не работает, вроде.

node также зависает при старте. Причём и node и d8 оба при запуске с --help выдают справку, т.е. скомпилированы корректно и запускаются. А вот при запуске v8 подвисают.

  • 1 месяц спустя...
Опубликовано

Добавил бинарники node v0.10.42 в Entware:

opkg install node_legacy

Тестовый пример отсюда работает. Обсуждение пакета здесь будет офф-топиком, поэтому предлагаю обсуждать его работу здесь.

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.