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