PoltoS Posted December 30, 2015 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
Александр Рыжов Posted December 30, 2015 Posted December 30, 2015 Можете попробовать готовый, чтобы оценить стоит ли игра свеч. В Entware я добавлять его не стал, так как на роутере он еле тошнит. Quote
PoltoS Posted December 30, 2015 Author 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
PoltoS Posted December 30, 2015 Author Posted December 30, 2015 А этот нодовский пакет тоже не работает, вроде. node также зависает при старте. Причём и node и d8 оба при запуске с --help выдают справку, т.е. скомпилированы корректно и запускаются. А вот при запуске v8 подвисают. Quote
Александр Рыжов Posted February 15, 2016 Posted February 15, 2016 Добавил бинарники node v0.10.42 в Entware: opkg install node_legacy Тестовый пример отсюда работает. Обсуждение пакета здесь будет офф-топиком, поэтому предлагаю обсуждать его работу здесь. Quote
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.