Jump to content

Recommended Posts

Идёт попытка собрать 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
 

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

Link to comment
Share on other sites

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

С ссылкой проблема в том, что мне нужно именно отдельно 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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

  • 1 month later...

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

opkg install node_legacy

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...