staticke linkovani s glibc 2.1 ?

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Úterý Leden 25 17:50:48 CET 2000


On Tue, 25 Jan 2000, Vaclav Ovsik wrote:

> Naivne jsem si myslel, ze postaci vsechno prelozit s volbou  -static.
> Strcil jsem tedy binarku do adresare tam pridal jeste nejake /etc
> passwd, group, nsswitch.conf. Pak jsem zkusil chroot na adresar
> a pustit to. Ale ono to jeste chtelo dynamicke knihovny, nejake
> ty libnss*.

DJB se vztekal, ze na Solarisu nejde vyrobit uplne staticky slinkovanou
binarku (stejny problem) a uz se nakazil i Linux. :)

Jedine jednoduche reseni je pouzit libc 5, tam zadne NSS nebylo. :)

> Jeste naivni otazka: Jmeno dynamickeho linkeru se zadratuje do kernelu
> pri prekladu ? (v mem pripade asi /lib/ld-2.1.2.so nebo
> /lib/ld-linux.so.2 ze ?) Nebo kernel zkousi najit ruzne dyn loadery?

Cesta k dyn. linkeru je obsazena v binarce, konkretne v sekci .interp
(viz objdump -j .interp --full-contents program). Tu cestu tam da ld
na zaklade parametru -dynamic-linker. 


On Tue, 25 Jan 2000, Michal Krause wrote:

> Na otazku, proc program, o kterem ldd tvrdi, ze je to staticka binarka,
> otevira libc.so ci libnss_files.so.2 a proc se tvari, ze funkce uspela,
> ackoliv vraci NULL, bude muset asi odpovedet nekdo povolanejsi.
  
Protoze ona je staticky linkovana. To zatracene NSS totiz
udela explicitne dlopen().


--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