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