PoltoS Posted December 30, 2015 Share Posted December 30, 2015 Идёт попытка собрать 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 Есть идеи, куда копать? Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted December 30, 2015 Share Posted December 30, 2015 Можете попробовать готовый, чтобы оценить стоит ли игра свеч. В Entware я добавлять его не стал, так как на роутере он еле тошнит. Quote Link to comment Share on other sites More sharing options...
PoltoS Posted December 30, 2015 Author Share Posted December 30, 2015 Ну, я точно знаю, что стоит, т.к. на похожем железе пробовал уже. С ссылкой проблема в том, что мне нужно именно отдельно 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 Quote Link to comment Share on other sites More sharing options...
PoltoS Posted December 30, 2015 Author Share Posted December 30, 2015 А этот нодовский пакет тоже не работает, вроде. node также зависает при старте. Причём и node и d8 оба при запуске с --help выдают справку, т.е. скомпилированы корректно и запускаются. А вот при запуске v8 подвисают. Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted February 15, 2016 Share Posted February 15, 2016 Добавил бинарники node v0.10.42 в Entware: opkg install node_legacy Тестовый пример отсюда работает. Обсуждение пакета здесь будет офф-топиком, поэтому предлагаю обсуждать его работу здесь. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.