rlm_perl / libtool / libltdl problem

Garber, Neal Neal.Garber at energyeast.com
Tue Aug 18 01:16:37 CEST 2009

I've had FR 2.1.6 running on a FreeBSD 7.2 test server for some time now.  When I applied the rlm_mschap / rlm_eap_mschap patch I worked on over the weekend (which is working great btw - I will upload it shortly), I now get the following error on FR startup:

Can't load '/usr/local/lib/perl5/5.8.8/mach/auto/Data/Dumper/Dumper.so' for module Data::Dumper: /usr/local/lib/perl5/5.8.8/mach/auto/Data/Dumper/Dumper.so: Undefined symbol "Perl_sv_cmp" at /usr/local/lib/perl5/5.8.8/mach/XSLoader.pm line 70.
 at /usr/local/lib/perl5/5.8.8/mach/Data/Dumper.pm line 36

My friend google tells me that others have had this problem in the past (esp. on Debian) and the workaround is to use LD_PRELOAD=path_to_libperl.so /usr/local/sbin/radiusd
This does, in fact, work; but, isn't very satisfying as a permanent solution.  I believe that libtool and libltdl were updated during the install of the patch and this is the source of the problem.  I'm now running FreeBSD 7.2 with libltdl-2.2.6a & libtool-2.2.6a (they were at 2.2.5 before).

Is anyone aware of any compatibility issues with libtool/libltdl 2.2.6a and FreeRADIUS?
Anyone have a more permanent solution that avoids the LD_PRELOAD ugliness?

I've tried rebuilding FR from the port with no subsequent patches and received the same result (FR wouldn't start without the LD_PRELOAD).  I also tried using the portdowngrade port to downgrade libtool & libltdl back to 2.2.5 which didn't seem to have this problem.  However, it only displayed 2.2.6a (i.e., I couldn't downgrade).  rlm_perl seems to be pointing to the proper libperl.so as shown below:

ldd output on rlm_perl.so shows:
        libfreeradius-radius-2.1.6.so => /usr/local/lib/freeradius-2.1.6/libfreeradius-radius-2.1.6.so (0x2816c000)
        libperl.so => /usr/local/lib/perl5/5.8.8/mach/CORE/libperl.so (0x28187000)
        libm.so.4 => /lib/libm.so.4 (0x28294000)
        libcrypt.so.3 => /lib/libcrypt.so.3 (0x282aa000)
        libutil.so.5 => /lib/libutil.so.5 (0x282c2000)

libtool output for rlm_perl:
libtool: install: warning: relinking `rlm_perl.la'
libtool: install: (cd /usr/ports/net/freeradius2/work/freeradius-server-2.1.6/src/modules/rlm_perl; /bin/sh /usr/local/bin/libtool  --mode=relink cc -release 2.1.6 -module -export-dynamic -L/usr/local/lib -pthread -o rlm_perl.la -rpath /usr/local/lib/freeradius-2.1.6 rlm_perl.lo rlm_perl.c /usr/ports/net/freeradius2/work/freeradius-server-2.1.6/src/lib/libfreeradius-radius.la -Wl,-R/usr/local/lib/perl5/5.8.8/mach/CORE -pthread -Wl,-E -L/usr/local/lib /usr/local/lib/perl5/5.8.8/mach/auto/DynaLoader/DynaLoader.a -L/usr/local/lib/perl5/5.8.8/mach/CORE -lperl -lm -lcrypt -lutil )

*** Warning: Linking the shared library rlm_perl.la against the
*** static library /usr/local/lib/perl5/5.8.8/mach/auto/DynaLoader/DynaLoader.a is not portable!
libtool: relink: cc -shared  .libs/rlm_perl.o   -Wl,-rpath -Wl,/usr/local/lib/freeradius-2.1.6 -L/usr/local/lib -L/usr/local/lib/freeradius-2.1.6 -lfreeradius-radius -pthread /usr/local/lib/perl5/5.8.8/mach/auto/DynaLoader/DynaLoader.a -L/usr/local/lib/perl5/5.8.8/mach/CORE -lperl -lm -lcrypt -lutil  -pthread -Wl,-R/usr/local/lib/perl5/5.8.8/mach/CORE -pthread -Wl,-E -pthread -pthread -pthread   -pthread -Wl,-soname -Wl,rlm_perl-2.1.6.so -o .libs/rlm_perl-2.1.6.so
libtool: install: /usr/ports/net/freeradius2/work/freeradius-server-2.1.6/install-sh -c -c .libs/rlm_perl-2.1.6.soT /usr/local/lib/freeradius-2.1.6/rlm_perl-2.1.6.so
libtool: install: (cd /usr/local/lib/freeradius-2.1.6 && { ln -s -f rlm_perl-2.1.6.so rlm_perl.so || { rm -f rlm_perl.so && ln -s rlm_perl-2.1.6.so rlm_perl.so; }; })
libtool: install: /usr/ports/net/freeradius2/work/freeradius-server-2.1.6/install-sh -c -c .libs/rlm_perl.lai /usr/local/lib/freeradius-2.1.6/rlm_perl.la
libtool: install: /usr/ports/net/freeradius2/work/freeradius-server-2.1.6/install-sh -c -c .libs/rlm_perl.a /usr/local/lib/freeradius-2.1.6/rlm_perl.a
libtool: install: chmod 644 /usr/local/lib/freeradius-2.1.6/rlm_perl.a
libtool: install: ranlib /usr/local/lib/freeradius-2.1.6/rlm_perl.a

Thanks, in advance, for any help you can provide..
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20090817/20aac38d/attachment.html>

More information about the Freeradius-Users mailing list