Page 5 of 16
Re: Newlib
Posted: Wed Aug 10, 2011 5:50 am
by SoUrcerer
А 586 версии нет? Ключами можно будет убрать использование cmov,к примеру?
Re: Newlib
Posted: Wed Aug 10, 2011 8:47 am
by Serge
Должно убираться. i686 дефолтная версия для 32-х бит.
Re: Newlib
Posted: Wed Aug 10, 2011 1:56 pm
by Serge
Собранные binutils-2.20 и gcc-4.6.1 заняли 45 Мб. Это с оптимизатором lto и без с++. Но пока как надо не работает. Проблема в том, что gcc не передаёт линковщику дефолтные библиотеки.
Re: Newlib
Posted: Thu Aug 11, 2011 12:30 pm
by Serge
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 та же история.
Re: Newlib
Posted: Thu Aug 11, 2011 2:37 pm
by SoUrcerer
Именно. Запускать компиляцию на i586, и код скомпилированный тоже.
Спасибо, так будет гораздо веселее работать!
Re: Newlib
Posted: Sat Aug 13, 2011 6:38 pm
by Serge
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
Re: Newlib
Posted: Sat Aug 13, 2011 7:34 pm
by SoUrcerer
В понедельник попробую, надеюсь.
Re: Newlib
Posted: Sat Aug 13, 2011 8:46 pm
by XVilka
Serge: а чем собирал? есть патчи в паблике?
Re: Newlib
Posted: Sat Aug 13, 2011 9:32 pm
by Serge
Собирал в последней Убунте дефолтным компилятором. Предыдущий патч для binutils-2.20 уже есть на svn.
Очень полезные статьи
http://wiki.osdev.org/GCC_Cross-Compiler
http://wiki.osdev.org/OS_Specific_Toolchain
Re: Newlib
Posted: Sat Aug 13, 2011 9:36 pm
by XVilka
да это я знаю, просто думаю, может добавить поддержку в crosstool-ng.
P.S. патч для binutils я не нашел

Re: Newlib
Posted: Mon Aug 15, 2011 2:15 pm
by CleverMouse
"Есть проблема с порядком аргументов в командной строке 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.
Re: Newlib
Posted: Mon Aug 15, 2011 3:26 pm
by Serge
CleverMouse
Спасибо за разъяснение. Я это подозревал. Такая проблема возникает только при статической сборке.
Re: Newlib
Posted: Sun Aug 21, 2011 12:27 am
by XVilka
Serge: а можно ссылку на патч к binutils? все перерыл - не нашел. И какие еще правки вносил? Я хочу попробовать добавить цель kolibri в crosstool-ng.
Re: Newlib
Posted: Sun Aug 21, 2011 7:09 am
by Serge
[url]svn://kolibrios.org/programs/develop/binutils[/url]
Re: Newlib
Posted: Sun Aug 21, 2011 11:02 am
by XVilka
Спасибо! Все оказалось очень просто!
