Page 2 of 6 FirstFirst 1234 ... LastLast
Results 16 to 30 of 143

Thread: Переход от нативной компиляции к кросс-компиляции

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    кросскомпиляция tinc

    Собираю tinc на debian5 в colinux.
    Использую http://svn.nslu2-linux.org/svnroot/optware/trunk
    Одна из зависимостей - openssl - установлена в debian, также её скомпилировал в тулчейне
    Подскажите, чего не хватает:
    Code:
    checking openssl/pem.h usability... yes
    checking openssl/pem.h presence... yes
    checking for openssl/pem.h... yes
    checking openssl/engine.h usability... yes
    checking openssl/engine.h presence... yes
    checking for openssl/engine.h... yes
    checking for SHA1_version in -lcrypto... no
    configure: error: OpenSSL libraries not found.
    make: *** [/home/user/optware/oleg/builds/tinc/.configured] Error 1
    colinux:/home/user/optware/oleg#

  2. #2
    Ищите причину. Всё собирается автоматом, вплоть до пакета.

    Quote Originally Posted by Colibri View Post
    Собираю tinc на debian5 в colinux....
    Одна из зависимостей - openssl - установлена в debian
    Дебиановская библиотека в кросс-компиляции не должна участвовать.
    ./configure скорее всего не находит интерфейсные файлы *.h библиотеки openssl.
    Last edited by ryzhov_al; 29-03-2011 at 20:36.

  3. #3
    ryzhov_al
    Спасибо! Теперь получилось. В основном благодаря .mk-файлу, в нем оказались некоторые неочевидные для меня вещи.

  4. #4
    Я на эти не очевидные вещи тоже целый вечер убил.

    Кстати, я забыл в tinc.mk указать ещё одну зависимость. Если будете где-то выкладывать пакет, не забудьте указать:
    Code:
    TINC_DEPENDS=openssl,lzo
    вместо
    Code:
    TINC_DEPENDS=openssl
    (!) На роутере всесторонне бинарник в работе не проверял. Просто убедился в том, что он не валится в segfault.
    Last edited by ryzhov_al; 07-01-2011 at 15:24.

  5. #5
    Quote Originally Posted by ryzhov_al View Post
    Кстати, я забыл в tinc.mk указать ещё одну зависимость. Если будете где-то выкладывать пакет, не забудьте указать:
    Code:
    TINC_DEPENDS=openssl,lzo
    (!) На роутере всесторонне бинарник в работе не проверял. Просто убедился в том, что он не валится в segfault.
    И еще там zlib в зависимостях.

    Я сгенерировал на роутере ключи и подключился к существующей сети - работает.

  6. #6

    Exclamation Речь об энтузиастком тулчейне

    Есть предложение унифицировать размещение файлов, собранных энтузиастким тулчейном (gcc 4.3.5 uClibc 0.9.30.1). Файлы предлагаю записывать по следующим путям:
    • /opt/1.9.2.7/bin
    • /opt/1.9.2.7/lib
    • /opt/1.9.2.7/include

    Что позволит:
    а) развязать библиотеки, собранные тулчейном optware и новым тулчейном,
    б) автоматизировать сборку libtool'ом, используя ./configure --prefix=/opt/1.9.2.7/,
    в) пользоваться совместными наработками, ссылаясь в своих проектах на указанные пути.

    Конкретизировать в пути "/opt/1.9.2.7-d/" или "/opt/1.9.2.7-rtn/" считаю избыточным, также считаю, что путь "/opt/1.9.2.7/" со старой олеговской прошивкой ассоциироваться не будет. Да и вряд ли кто станет использовать устаревший тулчейн тех времён.

  7. #7

    Question Как правильно указывать пути к своим библиотекам?

    При сборке с помощью энтузиасткого тулчейна есть необходимость использования собственных библиотек, лежащих в /opt/1.9.2.7/lib. Какие ключи необходимо использовать при линковке для того, чтобы по умолчанию библиотеки искались в папке /lib, а затем в папке /opt/1.9.2.7/lib?

    Насколько я понял, optware жестко прописывает пути к библиотекам в /opt/lib
    Code:
    LDFLAGS=" -L/optware/staging/opt/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link,/optware/staging/opt/lib "
    поэтому решение по аналогии не подойдёт. После прописывания rpath на /opt/1.9.2.7/lib библиотеки перестанут искаться в /lib.

    Пока для сборки новым тулчейном использую ключи, нагло спёртые у тулчейна optware
    Code:
    $ cat /media/projects/mk_new.sh
    #!/bin/sh
    AR=/media/brcm/hndtools-mipsel-uclibc-4.3.5/bin/mipsel-uclibc-ar \
    AS=/media/brcm/hndtools-mipsel-uclibc-4.3.5/bin/mipsel-uclibc-as \
    LD=/media/brcm/hndtools-mipsel-uclibc-4.3.5/bin/mipsel-uclibc-ld \
    NM=/media/brcm/hndtools-mipsel-uclibc-4.3.5/bin/mipsel-uclibc-nm \
    CC=/media/brcm/hndtools-mipsel-uclibc-4.3.5/bin/mipsel-uclibc-gcc \
    CPP="/media/brcm/hndtools-mipsel-uclibc-4.3.5/bin/mipsel-uclibc-gcc -E" \
    GCC=/media/brcm/hndtools-mipsel-uclibc-4.3.5/bin/mipsel-uclibc-gcc \
    CXX=/media/brcm/hndtools-mipsel-uclibc-4.3.5/bin/mipsel-uclibc-g++ \
    RANLIB=/media/brcm/hndtools-mipsel-uclibc-4.3.5/bin/mipsel-uclibc-ranlib \
    STRIP=/media/brcm/hndtools-mipsel-uclibc-4.3.5/bin/mipsel-uclibc-strip \
    CPPFLAGS="-O2   -pipe  -I/media/projects/staging/opt/1.9.2.7/include " \
    LDFLAGS=" -L/media/projects/staging/opt/1.9.2.7/lib " \
    ./configure \
    --build=i386-pc-linux-gnu \
    --host=mipsel-linux \
    --target=mipsel-linux \
    --prefix=/opt/1.9.2.7 \
    --disable-nls \
    --disable-static

  8. #8
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by ryzhov_al View Post
    Есть предложение унифицировать размещение файлов, собранных энтузиастким тулчейном (gcc 4.3.5 uClibc 0.9.30.1). Файлы предлагаю записывать по следующим путям:
    • /opt/1.9.2.7/bin
    • /opt/1.9.2.7/lib
    • /opt/1.9.2.7/include
    Предложение интересное, за исключением того что 1.9.2.7 мне не особо нравится.

    Реально разделять нужно только библиотеки, include вообще неактуальны на роутере, так как у нас нет нативного компилятора(аналог buildroot). Выделять bin я тоже не вижу смысла.

    После прописывания rpath на /opt/1.9.2.7/lib библиотеки перестанут искаться в /lib.
    Неправильно, посмотри описание ld. Это всего-лишь первый пункт в списке путей. Ну и иметь несколько путей в rpath никто не запрещает.

  9. #9
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    Quote Originally Posted by lly View Post
    Предложение интересное, за исключением того что 1.9.2.7 мне не особо нравится.
    TARGET = oleg++ ?
    в развитие оптварного
    TARGET = oleg

  10. #10
    Quote Originally Posted by lly View Post
    Quote Originally Posted by ryzhov_al View Post
    Есть предложение унифицировать размещение файлов, собранных энтузиастким тулчейном (gcc 4.3.5 uClibc 0.9.30.1). Файлы предлагаю записывать по следующим путям:
    • /opt/1.9.2.7/bin
    • /opt/1.9.2.7/lib
    • /opt/1.9.2.7/include
    Предложение интересное, за исключением того что 1.9.2.7 мне не особо нравится.
    Посмотри на свою подпись "1.9.2.7" или "oleg" - единственная узнаваемая часть из названия прошивки. Остальные варианты будут выдумкой.

    Quote Originally Posted by lly View Post
    Реально разделять нужно только библиотеки, include вообще неактуальны на роутере, так как у нас нет нативного компилятора(аналог buildroot). Выделять bin я тоже не вижу смысла.
    Ок. Из первоначального предложения оставляю один пункт:
    • /opt/lib-1.9.2.7

    По аналогии с RT-N16-1.9.2.7-rtn-rXXXX.trx или modules-1.9.2.7-d-rXXXX.tgz в названии прошивок.
    Last edited by ryzhov_al; 15-01-2011 at 14:12.

  11. #11
    Quote Originally Posted by lly View Post
    Quote Originally Posted by ryzhov_al View Post
    После прописывания rpath на /opt/1.9.2.7/lib библиотеки перестанут искаться в /lib.
    Неправильно, посмотри описание ld. Это всего-лишь первый пункт в списке путей. Ну и иметь несколько путей в rpath никто не запрещает.
    Правильный ответ такой?
    LDFLAGS=" -L/media/projects/staging-opt/lib-1.9.2.7 -Wl,-rpath,/opt/lib-1.9.2.7 -Wl,-rpath-link,/media/projects/staging-opt/lib-1.9.2.7" \
    Насколько я понял, путь rpath будет иметь приоритет над дефолтными значениями из ld.so.conf.

  12. #12

    Новый vsftpd+

    Вплоть до сегодняшего дня на форуме популярен vsftpd+, умеющий менять кодировку имён файлов UTF8>CP1251. В энтузиастком репозитории пакет обновлён до версии 2.3.2-ext.1.
    Last edited by ryzhov_al; 21-02-2011 at 07:09. Reason: перенос пакета в энтузиасткий репозиторий

  13. #13
    Quote Originally Posted by ryzhov_al View Post
    Вплоть до сегодняшего дня на форуме популярен vsftpd+, умеющий менять кодировку имён файлов UTF8>CP1251. В энтузиастом репозитории сейчас находится vsftpd+2.1.2-ext1 середины 2009 года. Я собрал vsftpd+_2.3.2-1_mipsel.ipk октября 2010 года энтузиастким тулчейном. Отличия старой и новой версии:
    Code:
    $ ldd ./vsftpd
            libcrypt.so.0 => /opt/lib/libcrypt.so.0 (0x2aabf000)
            libgcc_s.so.1 => /opt/lib/libgcc_s.so.1 (0x2aae3000)
            libc.so.0 => /opt/lib/libc.so.0 (0x2ab02000)
            ld-uClibc.so.0 => /opt/lib/ld-uClibc.so.0 (0x2aaa8000)
    $ ldd ./new/vsftpd
            libcrypt.so.0 => /lib/libcrypt.so.0 (0x2aabe000)
            libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aae2000)
            libc.so.0 => /lib/libc.so.0 (0x2ab01000)
            ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)
    PS На обновление меня сподвиг тот факт, что встроенный в прошивку vsftpd перестал работать при использовании собственного /etc/fstab.
    А встроенная самба?

  14. #14
    В моём случае тоже перестала запускаться:
    Code:
    $ mount | grep ext3
    /dev/discs/disca/part2 on /opt type ext3 (rw,noatime,data=ordered)
    /dev/discs/disca/part1 on /tmp/storage type ext3 (rw,noatime,data=ordered)
    $ ls /tmp/mnt/
    $ ls /tmp/ | grep harddisk
    $
    Last edited by ryzhov_al; 13-02-2011 at 19:31. Reason: sed ’s/перестала работать/перестала запускаться/g’

  15. #15
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by ryzhov_al View Post
    В моём случае тоже перестала работать:
    Выражайся пожалуйста корректнее - не перестала работать, а перестала запускаться автоматом. Это фича еще от Олега - автозапуск только по /tmp/mnt /tmp/harddisk

Page 2 of 6 FirstFirst 1234 ... LastLast

Similar Threads

  1. Entware - новый репозиторий для роутеров Asus (MIPS)
    By ryzhov_al in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 1391
    Last Post: 04-01-2021, 21:16
  2. Переход на летнее время - проблема с timezone
    By ABATAPA in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 101
    Last Post: 22-12-2014, 11:45
  3. Кросс-компиляция rTorrent
    By al37919 in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 94
    Last Post: 22-04-2012, 19:48

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
  •