shared knihovna

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Čtvrtek Duben 26 01:46:34 CEST 2001


On Tue, 24 Apr 2001, Lubos Lunak wrote:

> Vaclav Lorenc wrote:
> 
> > jn 24 Apr 2001 14:21:00 +0200, Pavel Rauš <rqs na cmail.cz> wrote:
> >>statickou - tj. libgd.so.1. Je nejak mozne ze staticke knihovny udelat
> >>sdilenou. Nebo je potreba nejak prekopat kompilacni skript? Jak?
> > 
> > ld -o libgd.so.1 libgd.a --shared --whole-archive
> > 
> > snad jsem na nic nezapomnel. Onehdy jsem takhle predelaval libfreetype. A
> > system si nestezuje, takze je to snad i v poradku... :)
> > 
>  Nejsem si uplne jisty, jestli to bude vzdycky spravne fungovat. Kod pro 
> sdilene knihovny by se mel prekladat jako PIC ( position-independent ) 
> prepinacem -fpic nebo -fPIC ( nebo aspon dokumentace k libtool to tvrdi ).

dynamic linker by to mel rozchodit...aspon na beznych CPU, nicmene je to
krajne neefektivni, protoze PIC kod je generovany tak, aby s co nejmensimi
zmenami fungoval na libovolne adrese, zatimco u obycejneho kodu muze dojit
k tomu, ze ho ld.so musi kompletne relokovat, nasledkem cehoz to uz neni
sdilena knihovna: jakmile ld.so musi na nejakou stranku sahnout, je z teto
vyrobena privatni kopie, cili kazdy proces ma svou soukromou temer
kompletni upravenou verzi misto toho, aby vetsi cast stranek byla sdilena

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux