Re: dlopen e RTLD_DEEPBIND
Ferruccio Zamuner <[email protected]> Wed, 7 Oct 2015 11:19:11 +0200
| Newsgroups | gmane.os.freebsd.italian.esperti,gmane.os.freebsd.italian.aiuto |
|---|---|
| Organization | NonSoLoSoft |
| Message-ID | <[email protected]> |
On 06/10/2015 14:02, Ferruccio Zamuner wrote: > Ciao, > > per PostgreSQL ci sono delle comode estensioni che permettono di usare = > il front-end, > il parser e l'SQL di PostgreSQL su basi dati di vari sistemi tra cui = > mysql. > > Su FreeBSD e altri BSD questo non =E8 possibile: > > https://github.com/EnterpriseDB/mysql_fdw/issues/63 > > Pare che il porting facile richieda che dlopen supporti il > > flag RTLD_DEEPBIND. > > In pratica e' necessario linkare il codice oggetto con una libreria = > PostgreSQL (libpq, immagino) e con una libreria mysql, solo che entrambe > hanno definito uno o piu' simboli (funzioni/variabili) *omonimi* e = > c'e' da discriminare dove usare il codice in una o l'altra. > > Come =E8 possibile ovviare a questo problema? > Quali soluzioni potrebbero essere praticabili? Ripeto: ho "myobj.o" che deve linkare tipo una malloc() che pero' =E8 definita in = due librerie diverse. Entrambe le librerie, diciamo "mysql.lib" e "libpq.lib", hanno lo stesso = nome per una funzione equivalente. La malloc() di mysql deve essere chiamata per allocare le strutture di = mysql, quella di libpq per le strutture di PostgreSQL, non posso legare "myobj.o" con la prima che capita, altrimenti non = funziona nulla. Ciao, \ferz PS: malloc() e mysql.lib, pure myobj.o sono nomi puramente inventati, ma = adatti per spiegare il problema. _______________________________________________ Esperti mailing list [email protected] http://mailman.gufi.org/mailman/listinfo/esperti