Page 4 of 12 FirstFirst ... 23456 ... LastLast
Results 46 to 60 of 175

Thread: Установка rTorrent + ruTorrent из репозитория Entware

  1. #46
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640

    mmap2 MIPS

    Ладно, пока порассуждаю вслух сам:

    1. В uClibc, как и в glibc, внутри есть две функции - mmap и mmap64. При определении __USE_FILE_OFFSET64 вместо mmap всегда подставляется mmap64. Вопрос - как собран rTorrent?
    2. Даже сейчас(0.9.32) для mmap64 используется общий код libc/sysdeps/linux/common/mmap64.c который использует syscall mmap2!
    3. Аргумент offset в mmap имеет тип __off_t, т.е. 32-бита. Великого смысла использовать syscall mmap2 не вижу, но, в любом случае, нельзя забывать про MMAP2_PAGE_SHIFT, а в приведенных патчах этого нет!
    4. Если хочется для MIPS использовать syscall mmap2, самое разумное - просто удалить ссылки на libc/sysdeps/linux/mips/mmap.c
    5. А вот скобочки в mmap64.c расставлены неправильно, факт. Но для варианта __USE_FILE_OFFSET64 это не должно иметь значения.
    Last edited by lly; 08-04-2012 at 20:35.

  2. #47
    Join Date
    Mar 2011
    Location
    UA
    Posts
    222
    Quote Originally Posted by lly View Post
    Вопрос - как собран rTorrent?
    Может не совсем понимаю, с __USE_FILE_OFFSET64 или нет? Это имелось ввиду?
    Quote Originally Posted by lly View Post
    Если хочется для MIPS использовать syscall mmap2, самое разумное - просто удалить ссылки на libc/sysdeps/linux/mips/mmap.c
    Откуда? Из mmap64.c?
    RT-N16 + Entware repo

  3. #48
    Quote Originally Posted by lly View Post
    Спасибо, но я хоть убей не вижу разницы с OpenWRT'шным вариантом, я что-то пропустил ??!
    Так и ничем не отличается, я же написал, где он лежит! Не знаю, как у вас, а в моей прошивке он не применяется, если я его добавлю. У вас он применен, файлы проверили, пропатчены?

  4. #49
    Quote Originally Posted by yut View Post
    Так и ничем не отличается, я же написал, где он лежит! Не знаю, как у вас, а в моей прошивке он не применяется, если я его добавлю. У вас он применен, файлы проверили, пропатчены?
    С этой западноевропейской кодировкой не могу отредактировать свои сообщения. В общем, хотел сказать, что тот патч у меня не применялся, что-то не захватывал, поэтому и номера изменены. А по умолчанию, у меня этого патча нет. Проверьте файлы, действительно ли они изменены. Если да, тогда не знаю, в чем проблемы. У меня решилось с помощью этого.

  5. #50
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by voidshah View Post
    Может не совсем понимаю, с __USE_FILE_OFFSET64 или нет? Это имелось ввиду?
    Да. Проще всего посмотреть уже в бинарнике что именно используется - mmap или mmap64 с помощью nm и/или readelf.

    Если mmap64, попробуй поправить только скобки:
    Code:
    diff -uBp a/libc/sysdeps/linux/common/mmap64.c b/libc/sysdeps/linux/common/mmap64.c
    --- a/libc/sysdeps/linux/common/mmap64.c	2011-06-08 23:35:20.000000000 +0400
    +++ b/libc/sysdeps/linux/common/mmap64.c	2012-04-08 22:47:24.000000000 +0400
    @@ -61,10 +61,10 @@ __ptr_t mmap64(__ptr_t addr, size_t len,
     
     #  ifdef __USE_FILE_OFFSET64
     	return __syscall_mmap2(addr, len, prot, flags,
    -	                       fd, ((__u_quad_t) offset >> MMAP2_PAGE_SHIFT));
    +	                       fd, (__u_quad_t)(offset >> MMAP2_PAGE_SHIFT));
     #  else
     	return __syscall_mmap2(addr, len, prot, flags,
    -	                       fd, ((__u_long) offset >> MMAP2_PAGE_SHIFT));
    +	                       fd, (__u_long)(offset >> MMAP2_PAGE_SHIFT));
     #  endif
     }
    Откуда? Из mmap64.c?
    Нет конечно, из libc/sysdeps/linux/mips/Makefile.arch

    Quote Originally Posted by yut View Post
    Так и ничем не отличается, я же написал, где он лежит! Не знаю, как у вас, а в моей прошивке он не применяется, если я его добавлю. У вас он применен, файлы проверили, пропатчены?
    Значит мы тебя неправильно поняли. Как я уже писал, этот патч ломает mmap и, очень на то похоже, чинит mmap64 на 32-х битных платформах.

  6. #51
    Quote Originally Posted by voidshah View Post
    Да ни в чем Они одинаковые! Только вот хотел написать, ты опередил
    Пы.Сы. Я в транке 31219 OpenWRT такого патча не увидел, может не туда смотрю...
    Этот транк я не смотрел, но не удивительно. Это в порядке вещей. Полно лежит важных патчей, которые не кладутся ни в транки, ни в бэкфайр.

  7. #52
    Join Date
    Mar 2011
    Location
    UA
    Posts
    222
    Quote Originally Posted by lly View Post
    Да. Проще всего посмотреть уже в бинарнике что именно используется - mmap или mmap64 с помощью nm и/или readelf.
    mmap64, только не в самом rtorrent, а
    Code:
    readelf -a libtorrent.so.14 | grep mmap
      5064: 002e4910     0 FUNC    GLOBAL DEFAULT  UND mmap64
      00378a00  -3152(gp) 002e4910 002e4910 FUNC    UND mmap64
    Пы.Сы. ryzhov_al светит все же скоро тулчейн и репозиторий пресобирать.
    RT-N16 + Entware repo

  8. #53
    Quote Originally Posted by lly View Post
    Если mmap64, попробуй поправить только скобки:...
    Как я уже писал, этот патч ломает mmap и, очень на то похоже, чинит mmap64 на 32-х битных платформах.
    Если сделаешь свой патч, кинь на него сюда ссылку. Спасибо.

  9. #54
    Quote Originally Posted by yut View Post
    Если сделаешь свой патч, кинь на него сюда ссылку. Спасибо.
    Зачем? Всегда можно взять патч из первоисточника сразу после появления.

  10. #55
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by voidshah View Post
    Пы.Сы. ryzhov_al светит все же скоро тулчейн и репозиторий пресобирать.
    Я правильно понял намёк, что патч помог?

    Кто-нибудь возьмётся запостить патч с комментариями в список рассылки uClibc?

  11. #56
    Quote Originally Posted by ryzhov_al View Post
    Зачем? Всегда можно взять патч из первоисточника сразу после появления.
    Спасибо, буду следить. Хоть у меня и другое железо, но uClibc 0.9.32 тот же. А в репозитории openwrt такого патча можно и не дождаться.

  12. #57
    Join Date
    Mar 2011
    Location
    UA
    Posts
    222
    Quote Originally Posted by lly View Post
    Я правильно понял намёк, что патч помог?

    Кто-нибудь возьмётся запостить патч с комментариями в список рассылки uClibc?
    Пока не знаю. Вечером все допересоберу и проверю. Тулчейн уже собрал с патчем. Осталось собрать пакеты.
    Отпишусь сразу!
    RT-N16 + Entware repo

  13. #58
    Quote Originally Posted by lly View Post
    Quote Originally Posted by voidshah View Post
    mmap64, только не в самом rtorrent, а
    Code:
    readelf -a libtorrent.so.14 | grep mmap
      5064: 002e4910     0 FUNC    GLOBAL DEFAULT  UND mmap64
      00378a00  -3152(gp) 002e4910 002e4910 FUNC    UND mmap64
    Пы.Сы. ryzhov_al светит все же скоро тулчейн и репозиторий пресобирать.
    Я правильно понял намёк, что патч помог?

    Кто-нибудь возьмётся запостить патч с комментариями в список рассылки uClibc?
    Подождите, в древней libtorent 0.11.0 из Optware тоже используется mmap64, но несмотря на это никто на подобный баг никогда не жаловался:
    Code:
    $ readelf -a /tmp/downloads/tmp/libtorrent.so.11.0.6   | grep mmap
       464: 000ccaa0   196 FUNC    GLOBAL DEFAULT  UND mmap64
      000ff534 -26476(gp) 000ccaa0 000ccaa0 FUNC    UND mmap64
    Может, дело не в mmap64? Или баг добавился где-то при развитии mmap64.c с 0.9.28 по 0.9.32?
    Last edited by ryzhov_al; 09-04-2012 at 13:39.

  14. #59
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by ryzhov_al View Post
    Подождите, в древней libtorent 0.11.0 из Optware тоже используется mmap64, но несмотря на это никто на подобный баг никогда не жаловался:

    Или баг добавился где-то при развитии mmap64.c с 0.9.28 по 0.9.32?
    Именно так и есть, виноват коммит Fix arm mmap when using mmap2 syscall. Fixes bug #1303

  15. #60
    Quote Originally Posted by lly View Post
    Именно так и есть, виноват коммит Fix arm mmap when using mmap2 syscall. Fixes bug #1303
    По хронологиии всё сходится:
    • uClibc 0.9.28, которую использует Optware вышла 17.08.2005г.,
    • Фикс, который ты указываешь включен в код 15.05.2007г.

    Следственно, в Optware этого бага действительно нет.
    Last edited by ryzhov_al; 09-04-2012 at 14:38.

Page 4 of 12 FirstFirst ... 23456 ... LastLast

Similar Threads

  1. Samba 3.6 EntWare - установка и настройка
    By voidshah in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 50
    Last Post: 02-12-2014, 11:37
  2. Еще раз про rTorrent и web-морду к нему.
    By Novik in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 3395
    Last Post: 18-11-2014, 14:02
  3. Создание зеркала репозитория Debian|Ubuntu
    By poisons in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 12
    Last Post: 30-06-2013, 14:39
  4. Установка и настройка софта EntWare на Asus RT-N66U
    By ryzhov_al in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 5
    Last Post: 05-06-2012, 14:48
  5. Проблемы с rTorrent ... и их решение
    By dsidelnikov in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 306
    Last Post: 16-07-2011, 06:15

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
  •