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

"Neal H. Walfield" <[email protected]>
Newsgroups gmane.linux.rpm.maintenance,gmane.comp.gnu.libtool.general
Message-ID <[email protected]>
On Tue, 10 May 2022 12:48:23 +0200,
Florian Weimer wrote:
> * Neal H. Walfield:
> > 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.

True.

> 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 for the ideas.  Panu also suggested forwarder functions.  That
indeed sounds like the least troublesome from a portability and
robustness perspective.

Thanks,

:) Neal
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.