Newlib

Discussing libraries simplifying applications development
  • Должно убираться. i686 дефолтная версия для 32-х бит.
  • Собранные binutils-2.20 и gcc-4.6.1 заняли 45 Мб. Это с оптимизатором lto и без с++. Но пока как надо не работает. Проблема в том, что gcc не передаёт линковщику дефолтные библиотеки.
  • Sorcerer
    Тебе надо компиляцию запускать на i586 ? Остальное ключами регулируется.

    http://kolibri-pe.googlecode.com/files/kos32.7z binutils-2.20 + gcc-4.6.1 для Линукс. gcc пока ещё mingw32, там везде включены специфические для Win определения. Всё собиралось с sysroot=/home/kos32 но LD не находит библиотеки если не задан путь -L и дефолтную libc не "знает". Всё надо указывать явно. С gcc та же история.
  • Именно. Запускать компиляцию на i586, и код скомпилированный тоже.
    Спасибо, так будет гораздо веселее работать!
  • Toolchain под Linux. http://kolibri-pe.googlecode.com/files/i586-kos32.7z
    Собирал с указанием sysroot=/home/kos32 --disable-sjlj-exceptions --with-dwarf2 --disable-werror
    Добавлены встроенные определения __KOLIBRI__ и __KOS32__

    Известные недостатки:
    gcc берёт дефолтные исходники из /sysroot/i586-kos32/include и библиотеки из /sysroot/i586-kos32/lib
    ld берёт библиотеки из /sysroot/lib sysroot/usr/lib
    Есть проблема с порядком аргументов в командной строке LD. Желательно указывать статические библиотеки последними в списке аргументов
    i568-kos32-ld -o test test.o -lc а не
    i568-kos32-ld -lc -o test test.o

    Update.
    Этот неприятный баг похоже возникает только при статической сборке. Из-за него часто проваливаются тесты ./configure
    Last edited by Serge on Sat Aug 13, 2011 9:28 pm, edited 1 time in total.
  • В понедельник попробую, надеюсь.
  • Serge: а чем собирал? есть патчи в паблике?
  • Собирал в последней Убунте дефолтным компилятором. Предыдущий патч для binutils-2.20 уже есть на svn.
    Очень полезные статьи
    http://wiki.osdev.org/GCC_Cross-Compiler
    http://wiki.osdev.org/OS_Specific_Toolchain
  • да это я знаю, просто думаю, может добавить поддержку в crosstool-ng.

    P.S. патч для binutils я не нашел :(
  • "Есть проблема с порядком аргументов в командной строке LD. Желательно указывать статические библиотеки последними в списке аргументов" - это не проблема, а стандартное документированное поведение в gnu:
    http://sourceware.org/binutils/docs-2.20/ld/Options.html#index-archive-files_002c-from-cmd-line-54 wrote:The linker will search an archive only once, at the location where it is specified on the command line. If the archive defines a symbol which was undefined in some object which appeared before the archive on the command line, the linker will include the appropriate file(s) from the archive. However, an undefined symbol in an object appearing later on the command line will not cause the linker to search the archive again.

    See the -( option for a way to force the linker to search archives multiple times.

    You may list the same archive multiple times on the command line.
    Сделаем мир лучше!
  • CleverMouse
    Спасибо за разъяснение. Я это подозревал. Такая проблема возникает только при статической сборке.
  • Serge: а можно ссылку на патч к binutils? все перерыл - не нашел. И какие еще правки вносил? Я хочу попробовать добавить цель kolibri в crosstool-ng.
  • [url]svn://kolibrios.org/programs/develop/binutils[/url]
  • Спасибо! Все оказалось очень просто! :)
  • Who is online

    Users browsing this forum: No registered users and 10 guests