Page 7 of 7 FirstFirst ... 567
Results 91 to 95 of 95

Thread: Кросс-компиляция rTorrent

  1. #91
    Годом раньше ситуация была следующая - при нативной компиляции выброс c++ исключения из динамической библиотеки не ловился при нативной компиляции. В статике (на простейших примерах) все работало.
    При кросс-компиляции данная проблема фиксилась.
    С чем сие связано, я тогда полностью не разобрался, и больше сказать по проблеме, к сожалению, ничего не могу - давно отошел от этих дел.

  2. #92
    Quote Originally Posted by Novik View Post
    Годом раньше ситуация была следующая - при нативной компиляции выброс c++ исключения из динамической библиотеки не ловился при нативной компиляции. В статике (на простейших примерах) все работало.
    При кросс-компиляции данная проблема фиксилась.
    С чем сие связано, я тогда полностью не разобрался, и больше сказать по проблеме, к сожалению, ничего не могу - давно отошел от этих дел.
    Ладно. В любом случае, спасибо что присоединились к нам.

    Quote Originally Posted by lly View Post
    Скорее всего влияет оптимизация "-Os", а не модель процессора "-mtune=mips32", но лучше перепроверить. Ключи оптимизации убирал только с библиотеки или и при сборке самого бинарника тоже?
    С libtorrent и с rtorrent. С других зависимых библиотек ключи оптимизации не убирал.
    Насколько я понял, -mips32 задаёт архитектуру, а -mtune только оптимизацию. Что именно gcc делает в процессе этой оптимизации я долго выяснять не стал

    Чуть позже продолжу метод научного тыка и экспериментально выясню какой из ключей оптимизации ломает механизм исключений.
    Last edited by ryzhov_al; 13-12-2011 at 13:46. Reason: Spell check, fix Yoda's speech

  3. #93

    Кросс-компиляция rTorrent 0.8.9/0.12.9

    Чтож, экспериментальным путём глюк отловлен и можно сформулировать следующую гипотезу:

    Если библиотека libtorrent собрана с ключом компилятора -Os, то выброс c++ исключения из библиотеки libtorrent не сможет быть обработан в rtorrent. Работа rtorrent в этот момент будет аварийно завершена.
    Надеюсь, в будущем это сэкономит кому-то время на поиск бага.

    В OpenWRT, например, проблема решается добавлением в make-файл строчки TARGET_CFLAGS= -pipe -mips32 -mtune=mips32, которая перекроет заданные по умолчанию ключи CFLAGS="-Os -pipe -mips32 -mtune=mips32 ".

  4. #94
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by ryzhov_al View Post
    Если библиотека libtorrent собрана с ключом компилятора -Os, то выброс c++ исключения из библиотеки libtorrent не сможет быть обработан в rtorrent. Работа rtorrent в этот момент будет аварийно завершена.
    Баг оптимизатора gcc

    Если вдруг у тебя найдется куча времени, было бы замечательно локализовать проблему.
    Во-первых, таки снять backtrace в gdb.
    Потом, если это не даст ясности, собирать часть исходников libtorrent с "-Os" и так попытаться найти проблемный файл/модуль.

  5. #95

    просто для информации

    Проверил, что при использовании тулчейна с GCC 4.5.3 баг остаётся на месте. Ключ -Os делает библиотеку libtorrent.so "худее" на несколько килобайт, но по прежнему "ломает" обработку исключений.

    У меня была надежда на то, что с обновлением GCC с 4.4.6 на GCC 4.5.3 ситуация изменится.
    Last edited by ryzhov_al; 22-04-2012 at 20:51.

Page 7 of 7 FirstFirst ... 567

Similar Threads

  1. Простая настройка роутера до торрентов
    By gostest in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 1402
    Last Post: 21-05-2010, 19:58
  2. [How to] rtorrent & ntorrent
    By mancub in forum WL-500gP Tutorials
    Replies: 101
    Last Post: 18-12-2008, 08:21
  3. small number of peers for rTorrent
    By ufo95 in forum WL-500gP Q&A
    Replies: 0
    Last Post: 10-11-2008, 09:23
  4. older rtorrent version
    By FastJack in forum WL-500gP Q&A
    Replies: 1
    Last Post: 23-10-2007, 10:40

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •