Jump to content

PoltoS

Forum Members
  • Content Count

    14
  • Joined

  • Last visited

Community Reputation

0 Neutral

About PoltoS

  • Rank
    Member
  1. Как-то не вышло... эта и многие похожие ф-ции очень платформо зависимы и написаны на асме для соответствующей платформы. Выдирать без глубокого анализа не выйдет (для mips там даже нет ясного кода - похоже какой-то generic код идёт, для тех платформ, где нет специфичной asm реализации)... Также удивило, что nearbyint есть, а nearbyintf нет - они, вроде, вместе должны были быть. Или я ошибаюсь? Может их явно вырезали зачем-то? @McMCC а когда планируется ? Или можем в uclibc как-то это явно добавить? Вообще, странно, __USE_ISOC99 должен и в uClibc это добавлять.... В итоге решил проблему путём добавления вот такого хака (без асма) в проект (выдержка из сурсов самой uClibc) #define WRAPPER1(func) \ float func##f (float x) \ { \ return (float) func((double)x); \ } WRAPPER1(nearbyint) Теперь проверим как это всё живёт на практике.
  2. Просто подождать? Странно, на других OpenWRT таких проблем не было. Или есть какой-то отдельный пакет с этими функциями и другими, собранными в отдельную либу?
  3. Очевидная мысль отредактировать c++config.h и пересобрать toolchain не помогла.... ./build_dir/toolchain-mipsel-linux-uclibc/tools-mipsel-linux-mips32r2/mipsisa32r2el-unknown-linux-uclibc/include/c++/4.9.3/mipsisa32r2el-unknown-linux-uclibc/bits/c++config.h: #undef _GLIBCXX_USE_C99_MATH_TR1 заменил на #define _GLIBCXX_USE_C99_MATH_TR1 1 После чего make toolchain/clean и make Может кто знает, как полностью пересобрать libm с этими расширениями?
  4. Приветствую! При сборке большого проекта под Keenetik обнаружилось остутствие функций типа nearbyintf в libm.so. Наверняка эти ф-ции как-то можно включить при сборке toolchain. Увы, используемая софтина слепо полагается на C99 и C++11, а условие присутствия этих функций в man определены так: nearbyint(), nearbyintf(), nearbyintl(): _XOPEN_SOURCE >= 600 || _POSIX_C_SOURCE >= 200112L || _ISOC99_SOURCE; or cc -std=c99 Что посоветуете?
  5. PoltoS

    Спасибо, не догадался собрать тулчейн, да и конфиг на знал, где брать. Собрал, положил в /opt/lib, также явно пробовал указать путь через libthread-db-search-path, но при старте потоков gdb всё так же ругается. Может нужно явно gdb пересобрать с этой либой? Кстати, при старте дебажной версии v8 (именно она подвисает, ради неё вся работа), gdb странно ругается (gdb) r Starting program: /opt/usr/bin/d8 warning: GDB can't find the start of the function at 0x2aaa8f60. GDB is unable to find the start of the function at 0x2aaa8f60 and thus can't determine the size of that function's stack frame. This means that GDB may be unable to access that stack frame, or the frames below it. This problem is most likely caused by an invalid program counter or stack pointer. However, if you think GDB should simply search farther back from 0x2aaa8f60 for code which looks like the beginning of a function, you can increase the range of the search using the `set heuristic-fence-post' command. warning: Unable to find dynamic linker breakpoint function. GDB will be unable to debug shared library initializers and track explicitly loaded dynamic code. warning: GDB can't find the start of the function at 0x2aaa8f60. Что бы это могло значить? Обычно это означает битый стек, кажется. Ещё мне пришлось копировать бинарники из build_dir/target-ku_rd-mipsel-linux-uclibc/libv8/... т.к. те, что в пакете стрипнуты основательно и никакой debug информации уже не несут. Это как-то отключается через .config? Александр, а gdb из Entware имеет поддержку потоков? или тоже нет?
  6. PoltoS

    А могли бы ещё помочь допилить эти патчи для сборки с libthread_db. В toolchain эта либа не собирается, а привычной для OpenWRT галочки "Threads Debugging" (PTHREADS_DEBUG_SUPPORT) не найдено, да и упоминания этой константы тоже нет. А то вот такое вылезает: warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
  7. PoltoS

    Этот Entware не совместим с собранными мной пакетами - ругается на них. Самопальные пакеты, собранные родной SDK нельзя одновременно с Enware использовать? Вообще, этак Entware просто кладезь полезных прог. Было бы здорово понять, как их одновременно запускать.
  8. PoltoS

    Никто не собирал gdb пакет? Не хочется изобретать велосипед. Или пойти и изобрести? У нас софтина одна явно требует чего-то особенного на кинетике и работать не хочет (виснет с 100% загрузкой одного ядра). Без gdb не разобраться, что тут не так.
  9. PoltoS

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

    Ну, я точно знаю, что стоит, т.к. на похожем железе пробовал уже. С ссылкой проблема в том, что мне нужно именно отдельно 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
  11. PoltoS

    Идёт попытка собрать 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 Есть идеи, куда копать?
  12. PoltoS

    Похоже, гадалка права. А поясните незнайке, почему [M], а не [*] ? С моим хаком и с [*] собралось всё
  13. PoltoS

    1. Речь об этом архиве? http://files.keenopt.ru/preinstall/Keenetic_Ultra_II/ Т.е. просто те же пакеты из своего билда могу включить в минимальный комплект? 2. Про SDK спасибо, не догадывался, что есть новый. А где взять? Это? http://files.keenopt.ru/gpl_release/2015-11-01/ Может есть смысл SDK тоже в гите подавать? А то у меня только с feeds гит есть. UPD: собрал новую SDK. Включил opkg и opkg-install. Процесс прервался на этапе /home/xxx/ndwrt_gpl_2.06.A.6.0-12_011215/build_dir/target-ku_rd-mipsel-linux-uclibc/root-mt7621//usr/lib/opkg/info/busybox.postinst: not found * satisfy_dependencies_for: Cannot satisfy the following dependencies for busybox: * pkg_run_script: package "busybox" postinst script returned status 127. *** [/home/xxx/ndwrt_gpl_2.06.A.6.0-12_011215/build_dir/target-ku_rd-mipsel-linux-uclibc/root-mt7621/usr/lib/opkg/info/busybox.list] Error 255 make[3]: Leaving directory `/home/xxx/ndwrt_gpl_2.06.A.6.0-12_011215/feeds/ndmfeed/busybox' *** [package/feeds/ndmfeed/busybox/install] Error 2 make[2]: Leaving directory `/home/xxx/ndwrt_gpl_2.06.A.6.0-12_011215' *** [/home/xxx/ndwrt_gpl_2.06.A.6.0-12_011215/staging_dir/target-mipsel-linux-uclibc/stamp/.package_install] Error 2 make[1]: Leaving directory `/home/xxx/ndwrt_gpl_2.06.A.6.0-12_011215' Судя по strace проблема в том, что зачем-то запускается скрипт postinstall на системе, где идёт сборка. Очевидно, /opt у меня нет. [pid 24311] execve("/home/xxx/ndwrt_gpl_2.06.A.6.0-12_011215/build_dir/target-ku_rd-mipsel-linux-uclibc/root-mt7621//usr/lib/opkg/info/busybox.postinst", ["/home/xxx/"..., "configure"], [/* 112 vars */]) = -1 ENOENT (No such file or directory) Файл /home/xxx/ndwrt_gpl_2.06.A.6.0-12_011215/build_dir/target-ku_rd-mipsel-linux-uclibc/root-mt7621//usr/lib/opkg/info/busybox.postinst содержит #!/opt/bin/ash if [ -f /opt/etc/shells.busybox ]; then ln -sfn bash /opt/bin/sh fi Я, конечно, временно решил проблему, но это нужно исправить sudo ln -s /bin/true /opt/bin/ash
  14. PoltoS

    Решил совершить ещё одну попытку собрать свой пакет под NDMS. Но столкнулся со странной проблемой: поставил v2.06(AAUX.5)A7 и теперь по telnet зайти могу, а по ssh - нет. Я что-то забыл? Как его включить? или через opt поставить dropbear? Dec 29 18:49:50npkginflating "dropbear_2015.68-1_mt7621.ipk". Dec 29 21:49:53ndmOpkg::Manager: /tmp/mnt/IMAGES initialized. Dec 29 21:49:53ndmOpkg::Manager: invalid initrc "/opt/etc/initrc": no such file or directory, trying /opt/etc/init.d/. Dec 29 21:49:53ndmProcess: system failed [0xcffd093f], "/opt/bin/sh" executable not found. Dec 29 21:49:53ndmProcess: unable to create and initialize "Opkg shell" process. Dec 29 21:49:53ndmIo::Process: "Opkg shell" is broken. Dec 29 21:49:53ndmOpkg::Manager: process /opt/etc/init.d/S01dropbear: failed to start.
×
×
  • Create New...