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:
/usr/local/lib/freeradius-2.1.6/rlm_perl.so:
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..