Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Dec 10, 2019 5:13 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 226 posts ]  Go to page Previous 13 4 5 6 716 Next
Author Message
 Post subject: Re: Newlib
PostPosted: Wed Aug 10, 2011 5:50 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
А 586 версии нет? Ключами можно будет убрать использование cmov,к примеру?


Top
   
 Post subject: Re: Newlib
PostPosted: Wed Aug 10, 2011 8:47 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Должно убираться. i686 дефолтная версия для 32-х бит.


Top
   
 Post subject: Re: Newlib
PostPosted: Wed Aug 10, 2011 1:56 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Собранные binutils-2.20 и gcc-4.6.1 заняли 45 Мб. Это с оптимизатором lto и без с++. Но пока как надо не работает. Проблема в том, что gcc не передаёт линковщику дефолтные библиотеки.


Top
   
 Post subject: Re: Newlib
PostPosted: Thu Aug 11, 2011 12:30 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
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 та же история.


Top
   
 Post subject: Re: Newlib
PostPosted: Thu Aug 11, 2011 2:37 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Именно. Запускать компиляцию на i586, и код скомпилированный тоже.
Спасибо, так будет гораздо веселее работать!


Top
   
 Post subject: Re: Newlib
PostPosted: Sat Aug 13, 2011 6:38 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
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.

Top
   
 Post subject: Re: Newlib
PostPosted: Sat Aug 13, 2011 7:34 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
В понедельник попробую, надеюсь.


Top
   
 Post subject: Re: Newlib
PostPosted: Sat Aug 13, 2011 8:46 pm 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 796
Serge: а чем собирал? есть патчи в паблике?


Top
   
 Post subject: Re: Newlib
PostPosted: Sat Aug 13, 2011 9:32 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Собирал в последней Убунте дефолтным компилятором. Предыдущий патч для binutils-2.20 уже есть на svn.
Очень полезные статьи
http://wiki.osdev.org/GCC_Cross-Compiler
http://wiki.osdev.org/OS_Specific_Toolchain


Top
   
 Post subject: Re: Newlib
PostPosted: Sat Aug 13, 2011 9:36 pm 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 796
да это я знаю, просто думаю, может добавить поддержку в crosstool-ng.

P.S. патч для binutils я не нашел :(


Top
   
 Post subject: Re: Newlib
PostPosted: Mon Aug 15, 2011 2:15 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
"Есть проблема с порядком аргументов в командной строке 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.

_________________
Сделаем мир лучше!


Top
   
 Post subject: Re: Newlib
PostPosted: Mon Aug 15, 2011 3:26 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
CleverMouse
Спасибо за разъяснение. Я это подозревал. Такая проблема возникает только при статической сборке.


Top
   
 Post subject: Re: Newlib
PostPosted: Sun Aug 21, 2011 12:27 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 796
Serge: а можно ссылку на патч к binutils? все перерыл - не нашел. И какие еще правки вносил? Я хочу попробовать добавить цель kolibri в crosstool-ng.


Top
   
 Post subject: Re: Newlib
PostPosted: Sun Aug 21, 2011 7:09 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
svn://kolibrios.org/programs/develop/binutils


Top
   
 Post subject: Re: Newlib
PostPosted: Sun Aug 21, 2011 11:02 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 796
Спасибо! Все оказалось очень просто! :)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 226 posts ]  Go to page Previous 13 4 5 6 716 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited