[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