[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Libtool 2.2 ABI issue

From: Ralf Wildenhues
Subject: Re: Libtool 2.2 ABI issue
Date: Tue, 4 Nov 2008 23:10:46 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

Hi Yoann,

* Yoann Vandoorselaere wrote on Tue, Nov 04, 2008 at 04:16:47PM CET:
> We are experiencing an issue following the libtool/libltdl 2.2 release
> due to the way we use the system in Prelude.
> The Prelude library (libprelude), provide a plugin API using
> libtool/libltdl, and try to hide most of the details to the application
> implementing plugin support through libprelude (for one, application
> don't have to use libltdl directly).
> In order to support dlpreopening, libprelude used to provide the
> following support code in prelude-plugin.h:

> extern const void *lt_preloaded_symbols[];
> #define PRELUDE_PLUGIN_SET_PRELOADED_SYMBOLS()                     \
>         prelude_plugin_set_preloaded_symbols(lt_preloaded_symbols)

Can you not include <ltdl.h> and use LTDL_SET_PRELOADED_SYMBOLS

AFAICS then that would solve your "second problem", too, no?

> This used to work fines with libtool 1.5, but we are now facing two
> problem:
> There is an ABI compatibility issue when libprelude is compiled with
> libtool/libltdl 2.2 but programs using it generated the dlpreopening
> table through libtool 1.5.

Yep.  Two issues, actually: libltdl changed incompatibly, *and* the
libtool version must be on the same side of the 2.0 divide as the
libltdl version, too.  :-/

Only upside is that the change was done for allowing to dlpreopen from
libraries, which couldn't be done safely before.

> I found a partial solution to this problem by rewriting the table if its
> first symbol is NULL or doesn't contain @address@hidden However, I find this
> solution less than ideal, so any comment on this solution will be
> welcome. 

Well, I'd like to believe that the symlist data structure and contents
is an internal detail, that you shouldn't (need to) know about.

I'll look at your proposed function tomorrow.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]