rlm_perl version?
Hi! First off: thanks for releasing 2.1.9, great job! I'm trying to get the freenac check_mac perl script running and get this error: freeradius: symbol lookup error: /usr/lib/perl/5.10/auto/Fcntl/Fcntl.so: undefined symbol: Perl_Istack_sp_ptr Afaik this means that the embedded perl interpreter (rlm_perl) is too old for the perl libraries that are "use"ed in the check_mac script (aka rad2vmps). However I was unable to find out what version of libperl is required for rlm_perl to work. My freeradius version is 2.1.9, just compiled it. Perl verion is v5.10.1. If you tell me that I need perl v.5.8.x libraries, how can I tell freeradius to look for the libraries in a folder like /usr/lib/perl/5.8.x instead of the default. At least "libdir = /usr/lib/perl/5.8.x" in radiusd.conf does not do the trick,I already tried it this way. I want the the old perl libs only to be used by freeradius, not systemwide. Thanks for your help, Jan
Jan Zacharias wrote:
I'm trying to get the freenac check_mac perl script running and get this error:
freeradius: symbol lookup error: /usr/lib/perl/5.10/auto/Fcntl/Fcntl.so: undefined symbol: Perl_Istack_sp_ptr
Afaik this means that the embedded perl interpreter (rlm_perl) is too old for the perl libraries that are "use"ed in the check_mac script (aka rad2vmps).
I'm not sure what that means. The "embedded perl interpreter" just builds and links using the Perl available on your system. My suspicion is that you've built 2.1.9 with version X of Perl, and are then trying to link it with version Y of Perl. Ensure that you only have one version of Perl installed. Alan DeKok.
Hey Alan, Alan DeKok <aland@deployingradius.com> hat am 25. Mai 2010 um 14:43 geschrieben:
My suspicion is that you've built 2.1.9 with version X of Perl, and are then trying to link it with version Y of Perl. Ensure that you only have one version of Perl installed. That's not the case here, I have (and had when building 2.1.9 this morning) only following libperl stuff installed: dpkg -l|grep libperl ii libperl-dev 5.10.1-8ubuntu2 Perl library: development files ii libperl5.10 5.10.1-8ubuntu2 shared Perl library
Isn't there a way to find out the perl version? I thought of "print $1" but this does not work as intended. Best, Jan
Am 25.05.2010 um 15:12 schrieb Jan Zacharias:
Hey Alan,
Alan DeKok <aland@deployingradius.com> hat am 25. Mai 2010 um 14:43 geschrieben:
My suspicion is that you've built 2.1.9 with version X of Perl, and are then trying to link it with version Y of Perl. Ensure that you only have one version of Perl installed. That's not the case here, I have (and had when building 2.1.9 this morning) only following libperl stuff installed:
dpkg -l|grep libperl ii libperl-dev 5.10.1-8ubuntu2 Perl library: development files ii libperl5.10 5.10.1-8ubuntu2 shared Perl library
Isn't there a way to find out the perl version? I thought of "print $1" but this does not work as intended.
Try using perl -V
Best, Jan - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Nicolas Goutte extragroup GmbH - Karlsruhe Waldstr. 49 76133 Karlsruhe Germany Geschäftsführer: Lars Busch Registergericht: Amtsgericht Münster / HRB: 5624 Steuer Nr.: 337/5903/0421 / UstID: DE 204607841
Nicolas Goutte <nicolas.goutte@extragroup.de> writes:
Am 25.05.2010 um 15:12 schrieb Jan Zacharias:
Isn't there a way to find out the perl version? I thought of "print $1" but this does not work as intended.
Try using
perl -V
Or if you want to check the version of the embedded perl interpreter FR is using: put something like print "perl version: $^V\n"; into myfile, create a perl module referring to it: perl perlversion { module = myfile } and reference it in the instantiate section instantiate { perlversion .. } restart FR and see the version. Or maybe a bit easier, just look at which perl library rlm_perl is linked with: frtest2:~# ldd /usr/lib/freeradius/rlm_perl.so |grep perl libperl.so.5.10 => /usr/lib/libperl.so.5.10 (0x00007fcba8989000) Bjørn
Hey Bjørn, thank you very much! The output is: perl version: v5.10.1 So it's clear that libperl and perl version do match. However if I add a "use IO::Socket::INET" in the myfile, I still get "freeradius: symbol lookup error: /usr/lib/perl/5.10/auto/IO/IO.so: undefined symbol: Perl_Istack_sp_ptr" What could be the reason? I run a Linux raw 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:28:05 UTC 2010 x86_64 GNU/Linux System. Best, Jan "Bjørn Mork" <bjorn@mork.no> hat am 25. Mai 2010 um 17:47 geschrieben:
Nicolas Goutte <nicolas.goutte@extragroup.de> writes:
Am 25.05.2010 um 15:12 schrieb Jan Zacharias:
Isn't there a way to find out the perl version? I thought of "print $1" but this does not work as intended.
Try using
perl -V
Or if you want to check the version of the embedded perl interpreter FR is using:
put something like
print "perl version: $^V\n";
into myfile, create a perl module referring to it:
perl perlversion { module = myfile }
and reference it in the instantiate section
instantiate { perlversion .. }
restart FR and see the version. Or maybe a bit easier, just look at which perl library rlm_perl is linked with:
frtest2:~# ldd /usr/lib/freeradius/rlm_perl.so |grep perl libperl.so.5.10 => /usr/lib/libperl.so.5.10 (0x00007fcba8989000)
Bjørn
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Jan Zacharias <janz@dfki.de> writes:
Hey Bjørn, thank you very much! The output is: perl version: v5.10.1 So it's clear that libperl and perl version do match. However if I add a "use IO::Socket::INET" in the myfile, I still get "freeradius: symbol lookup error: /usr/lib/perl/5.10/auto/IO/IO.so: undefined symbol: Perl_Istack_sp_ptr" What could be the reason? I run a Linux raw 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:28:05 UTC 2010 x86_64 GNU/Linux System.
Did you try defining HAVE_LT_DLADVISE_INIT? I believe your problem is not really related to perl, but to libtool. Which is black magic to me... But changing libtool version and/or playing with different options may get you a working rlm_perl module. Bjørn
Hey! That did the trick, I just added #defineHAVE_LT_DLADVISE_INIT to src/main/modules.c as Bjørn suggested and now it works flaw-less-ly :) Best, Jan "Bjørn Mork" <bjorn@mork.no> hat am 25. Mai 2010 um 22:36 geschrieben:
Jan Zacharias <janz@dfki.de> writes:
Hey Bjørn, thank you very much! The output is: perl version: v5.10.1 So it's clear that libperl and perl version do match. However if I add a "use IO::Socket::INET" in the myfile, I still get "freeradius: symbol lookup error: /usr/lib/perl/5.10/auto/IO/IO.so: undefined symbol: Perl_Istack_sp_ptr" What could be the reason? I run a Linux raw 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:28:05 UTC 2010 x86_64 GNU/Linux System.
Did you try defining HAVE_LT_DLADVISE_INIT? I believe your problem is not really related to perl, but to libtool. Which is black magic to me...
But changing libtool version and/or playing with different options may get you a working rlm_perl module.
Bjørn
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
On Tue, May 25, 2010 at 11:04:00PM +0200, Jan Zacharias wrote:
That did the trick, I just added #defineHAVE_LT_DLADVISE_INIT to src/main/modules.c as Bj??rn suggested and now it works flaw-less-ly :)
Alan, maybe it's time to enabled that bit by default :) -- 2. That which causes joy or happiness.
Josip Rodin wrote:
On Tue, May 25, 2010 at 11:04:00PM +0200, Jan Zacharias wrote:
That did the trick, I just added #defineHAVE_LT_DLADVISE_INIT to src/main/modules.c as Bj??rn suggested and now it works flaw-less-ly :)
Alan, maybe it's time to enabled that bit by default :)
I need to write a configure check for it... Alan DeKok.
On 2010/05/25 10:13 PM, Jan Zacharias wrote:
Hey Bjørn,
thank you very much! The output is:
perl version: v5.10.1
So it's clear that libperl and perl version do match.
However if I add a "use IO::Socket::INET" in the myfile,
I still get "freeradius: symbol lookup error: /usr/lib/perl/5.10/auto/IO/IO.so: undefined symbol: Perl_Istack_sp_ptr"
What could be the reason? I run a Linux raw 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:28:05 UTC 2010 x86_64 GNU/Linux System.
Hi, Don't really know enough about libraries, but it could be related to a previous issue I had on debian (issue still exists with 2.1.9) Can you try the following: 1) Make sure freeradius is not already running 2) Start freeradius using as follows: "/usr/sbin/freeradius -X" Confirm it fails. 3) Now start it like this: "LD_PRELOAD=/usr/lib/libperl.so.5.10 /usr/sbin/freeradius -X" If the third step works, it is a debian bug. Modify your /etc/init.d/freeradius. Look for: "start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $PROGRAM || ret=$?" Replace with: "LD_PRELOAD=/usr/lib/libperl.so.5.10 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $PROGRAM || ret=$?" Cheers, -- Johan Meiring Cape PC Services CC Tel: (021) 883-8271 Fax: (021) 886-7782
Jan Zacharias <janz@dfki.de> writes:
I'm trying to get the freenac check_mac perl script running and get this error:
freeradius: symbol lookup error: /usr/lib/perl/5.10/auto/Fcntl/Fcntl.so: undefined symbol: Perl_Istack_sp_ptr
See e.g. http://lists.freeradius.org/mailman/htdig/freeradius-users/2010-January/msg0...
However I was unable to find out what version of libperl is required for rlm_perl to work. My freeradius version is 2.1.9, just compiled it. Perl verion is v5.10.1.
It works fine with libperl version 5.10.1. I believe configure would have warned you if it wasn't so. Bjørn
participants (6)
-
Alan DeKok -
Bjørn Mork -
Jan Zacharias -
Johan Meiring -
Josip Rodin -
Nicolas Goutte