possibly acceptable workaround for rlm_perl/dlopen problem on Debian

Alan DeKok aland at deployingradius.com
Fri Jul 6 16:33:54 CEST 2007

Enrik Berkhan wrote:
>>   When you say "-lfoo", the linker should pick "libfoo.so.x.y", OR
>> "libfoo.so.x".  Picking "libfoo.so" is broken.
> The linker should always pick libfoo.so, resolving it to the "current"
> libfoo.so.x(.y) at link (i.e. build) time and leave a reference/depency
> for the dynamic/runtime linker pointing directly at libfoo.so.x(.y).

  That's what I meant, in other words...

> To allow for different libfoo.so.version be installed at the same time
> on the same system to fulfill dependencies for different other packages
> is the reason why distributions like Debian maintain libfoo-packages
> without libfoo.so and libfoo-dev-packages containing one unique
> libfoo.so pointing to one unique libfoo.so.x(.y). This is plain standard
> distribution behaviour, IMHO.

  That's nice, but why then does "perl ... ldopts" print "-lperl"?

  It's broken.

  if the shared libraries had proper inter-library dependencies, then
different libfoo.so.X could be installed without a problem.  But because
there's no inter-library dependencies, those dependencies have to be
managed with packages.  WTF?

> This is the behaviour that would have to be kind of re-implemented by
> the workaround: Decide at build time using the generic current libfoo.so
> what concrete versioned library to dlopen at run time. Should be
> feasible by using some kind of AC_TRY_LINK and ldd or so. But in
> portable way, argh :)

  No.  If Data/Dumper.so depends on libperl.so.5.8, it should fscking
say so.  Relying on the application to manage Perl's library
dependencies is retarded.

> That's good. May be the failure message could give a hint like 'may be
> you have to install a package like libperl-dev to build rlm_perl'. I
> think I've seen stuff like that in other places.

  Or "your system is broken.  File a complaint at http://bugs.../12345"

  Alan DeKok.

More information about the Freeradius-Devel mailing list