Newlib
-
А 586 версии нет? Ключами можно будет убрать использование cmov,к примеру?
Должно убираться. 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 ? Остальное ключами регулируется.
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
Собирал с указанием 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
Очень полезные статьи
http://wiki.osdev.org/GCC_Cross-Compiler
http://wiki.osdev.org/OS_Specific_Toolchain
да это я знаю, просто думаю, может добавить поддержку в crosstool-ng.
P.S. патч для binutils я не нашел
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