rlm_perl / libtool / libltdl problem
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..
Garber, Neal wrote:
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).
Did I mention that I hate libtool and libltdl? They're close to *causing* more problems than they solve.
Is anyone aware of any compatibility issues with libtool/libltdl 2.2.6a and FreeRADIUS?
They both suck. Depending on the phase of the moon, they might not even cause the *build* process to fail.
Anyone have a more permanent solution that avoids the LD_PRELOAD ugliness?
Educate the libltdl / libtool developers so that they write software that works?
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:
Yeah... isn't that nice? And libltdl *still* can't get it right. I mean... what the heck? I actually started removing libltdl a while ago. See src/main/modules.c. Look for WITHOUT_LIBLTDL. I'll bet that if you spent a bit of time hacking the source, you could get it to build && run *without* libltldl. At that point, the stupid "can't load library" issues will go away. Alan DeKok.
Did I mention that I hate libtool and libltdl? They're close to *causing* more problems than they solve.
Yes, on several occasions that I recall :) I share your sentiments...
I actually started removing libltdl a while ago. See src/main/modules.c. Look for WITHOUT_LIBLTDL. I'll bet that if you spent a bit of time hacking the source, you could get it to build && run *without* libltldl. At that point, the stupid "can't load library" issues will go away.
If I get some spare time (what's that :)), I'll see what I can do..
Hi, It means, there isn't solution for this problem now? Thanks, Anton 2009/8/18 Garber, Neal <Neal.Garber@energyeast.com>:
Did I mention that I hate libtool and libltdl? They're close to *causing* more problems than they solve.
Yes, on several occasions that I recall :) I share your sentiments...
I actually started removing libltdl a while ago. See src/main/modules.c. Look for WITHOUT_LIBLTDL. I'll bet that if you spent a bit of time hacking the source, you could get it to build && run *without* libltldl. At that point, the stupid "can't load library" issues will go away.
If I get some spare time (what's that :)), I'll see what I can do..
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Does this mean you are also having this problem with 2.2.6a of libtool/libltdl? There isn't a permanent solution that I know of yet. However, there is a workaround that you can use for now: LD_PRELOAD=path_to_libperl.so /usr/local/sbin/radiusd Where path_to_libperl.so is the full path for that file (e.g., it's /usr/local/lib/perl5/5.8.9/mach/CORE/libperl.so on one of my systems). -----Original Message----- From: freeradius-users-bounces+neal.garber=energyeast.com@lists.freeradius.org [mailto:freeradius-users-bounces+neal.garber=energyeast.com@lists.freeradius.org] On Behalf Of Anton Brinyov Sent: Sunday, August 23, 2009 6:17 PM To: FreeRadius users mailing list Subject: Re: rlm_perl / libtool / libltdl problem Hi, It means, there isn't solution for this problem now? Thanks, Anton 2009/8/18 Garber, Neal <Neal.Garber@energyeast.com>:
Did I mention that I hate libtool and libltdl? They're close to *causing* more problems than they solve.
Yes, on several occasions that I recall :) I share your sentiments...
I actually started removing libltdl a while ago. See src/main/modules.c. Look for WITHOUT_LIBLTDL. I'll bet that if you spent a bit of time hacking the source, you could get it to build && run *without* libltldl. At that point, the stupid "can't load library" issues will go away.
If I get some spare time (what's that :)), I'll see what I can do..
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Does this mean you are also having this problem with 2.2.6a of libtool/libltdl?
Yes.
There isn't a permanent solution that I know of yet. However, there is a workaround that you can use for now:
LD_PRELOAD=path_to_libperl.so /usr/local/sbin/radiusd
Thanks. It works.
Where path_to_libperl.so is the full path for that file (e.g., it's /usr/local/lib/perl5/5.8.9/mach/CORE/libperl.so on one of my systems).
-----Original Message----- From: freeradius-users-bounces+neal.garber=energyeast.com@lists.freeradius.org [mailto:freeradius-users-bounces+neal.garber=energyeast.com@lists.freeradius.org] On Behalf Of Anton Brinyov Sent: Sunday, August 23, 2009 6:17 PM To: FreeRadius users mailing list Subject: Re: rlm_perl / libtool / libltdl problem
Hi,
It means, there isn't solution for this problem now?
Thanks, Anton
participants (3)
-
Alan DeKok -
Anton Brinyov -
Garber, Neal