Results 1 to 15 of 143

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

Hybrid View

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

    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/" со старой олеговской прошивкой ассоциироваться не будет. Да и вряд ли кто станет использовать устаревший тулчейн тех времён.

  2. #2

    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

  3. #3
    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 никто не запрещает.

  4. #4
    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

  5. #5
    Quote Originally Posted by al37919 View Post
    TARGET = oleg++ ?
    в развитие оптварного
    TARGET = oleg
    oleg-ng
    ASUS RT-N15U

  6. #6
    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.

  7. #7
    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.

  8. #8
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by ryzhov_al View Post
    Правильный ответ такой?
    Примерно, особенно если ты пояснишь зачем во всех пакетах ставить rpath-link.
    Насколько я понял, путь rpath будет иметь приоритет над дефолтными значениями из ld.so.conf.
    ДА

    P.S. Префикс oleg-ng мне нравиться

  9. #9
    Quote Originally Posted by lly View Post
    P.S. Префикс oleg-ng мне нравиться
    аналогично.

  10. #10
    Quote Originally Posted by lly View Post
    P.S. Префикс oleg-ng мне нравиться
    Окончательный вариант:
    • /opt/lib - для optware'овских библиотек,
    • /opt/lib-oleg-ng - для библиотек, собранных энтузиастким тулчейном.

    Возражения есть?

    Только сразу условимся. Например, в http://wl500g.googlecode.com/svn/ipkg/optware/ и optware-d есть библиотеки как для использования с софтом optware, так и нет. Давайте класть в /opt/lib-oleg-ng исключительно те библиотеки, которые не будут использоваться optware'овским софтом.

  11. #11
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by ryzhov_al View Post
    Окончательный вариант:
    • /opt/lib - для optware'овских библиотек,
    • /opt/lib-oleg-ng - для библиотек, собранных энтузиастким тулчейном.

    Возражения есть?
    Нет.
    Только сразу условимся. Например, в http://wl500g.googlecode.com/svn/ipkg/optware/ и optware-d есть библиотеки как для использования с софтом optware, так и нет. Давайте класть в /opt/lib-oleg-ng исключительно те библиотеки, которые не будут использоваться optware'овским софтом.
    В svn/ipkg/optware должны лежать пакеты собранные optware'вским тулчейном. Зачем Влад сделал r2487 я пока не разбирался, не успел.
    А в optware-d как раз собранные нашим тулчейном, с завязками на нашу uClibc, ядро.

  12. #12
    Quote Originally Posted by lly View Post
    А в optware-d как раз собранные нашим тулчейном, с завязками на нашу uClibc, ядро.
    Странно. Почему тогда usbip_0.1.7-2_mipsel.ipk и sysfsutils_2.1.0-1_mipsel.ipk положили в optware, а не в optware-d, хотя он собран нашим тулчейном.

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
  •