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 è 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 è possibile ovviare a questo problema? > Quali soluzioni potrebbero essere praticabili? Ripeto: ho "myobj.o" che deve linkare tipo una malloc() che pero' è 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