Re: How to get libb to export liba's symbols?

Florian Weimer <[email protected]>
Newsgroups gmane.linux.rpm.maintenance,gmane.comp.gnu.libtool.general
Message-ID <[email protected]>
* Neal H. Walfield:

> Hi Florian,
>
> On Tue, 10 May 2022 12:04:52 +0200,
> Florian Weimer wrote:
>> * Neal H. Walfield:
>> 
>> > There are two major constraints.  Because rpm's OpenPGP API is public,
>> > it must be preserved until the next soname bump.  And, the OpenPGP
>> > backend should be pluggable.
>> 
>> How is this plug-in mechanism supposed to work?  Via RPM configuration
>> files?
>
> It is a build-time configuration option.  When you configure rpm, you
> can do:
>
>   ./configure --with-crypto=sequoia
>
> to get the Sequoia backend.  --with-crypto defaults to libgcrypt,
> which uses the internal OpenPGP implementation with libgcrypt.  (There
> is also --with-crypto=openssl, which uses the internal OpenPGP
> implementation with OpenSSL.)

That's a very limited form of pluggability.

I expect the most portable approach (for ELF targets) is to use a stub
shared object that contains all symbols, including those provided by
dependencies.  (librpmio.so should probably be a linker script
referencing the actual object, to prevent accidental loading of
librpmio.so via dlopen.)  That approach keeps the run-time DT_NEEDED
value an implementation detail.

I don't know if libtool supports that out of the box.

On non-ELF targets, you may need forwarder functions, and the plug-in
library cannot use the same symbols.

Thanks,
Florian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.