[Q]: dlopen a spol.

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Pondělí Duben 24 15:52:23 CEST 2000


On Sun, 23 Apr 2000, Ondrej Sury wrote:

> > On Fri, 21 Apr 2000, Ondrej Sury wrote:
> > 
> > Pouzitim flagu "--noinhibit-exec" sice lze ld presvedcit, aby vygenerovalo
> > exac i s nedefinovanymi symboly, ale nebude to fungovat tak, jak byste asi
> > ocekaval, protoze za takovy symbol proste dosadi nulu.
> 
> No dobre, a kdybych nahral pres dlopen() knihovnu, ktera by definovala
> ony konkretni symboly, tak by se to nepreplaclo?

Nepreplaclo. Preplacne se to pouze, pokud je to reference z/do sdilene
knihovny, protoze pak linker vygeneruje udaj o "dynamickem symbolu", ze
ktereho dynamicky linker pozna, ze tam ma neco na praci. V tomto pripade
(je-li to nevyreseny odkaz z kodu kompilovaneho bez -shared) se ale zadny
symbol nekona a ld tam proste vrazi natvrdo nulu.

> Jedna, ale je to nepouzitelne.  Pokud vytvorite funkci
> void _init(void); tak se pri dlopen() zavola....

Hmm...mozna, ze linker strci _init do sekce .init automaticky.

> > 	static void f(void) __attribute((constructor));
> > 	void f(void) { ... };
> 
> Diky, vyzkousim.  Neni to nejaky gccismus?

Je.

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