More info. I've tried to see different between Debian 3.0 (where
freeradius is working) and Debian 3.1. Excerpt from "perl -V" on 3.0,
where FR *works*:

  Linker and Libraries:
    ld='gcc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lndbm -ldb -ldl -lm -lc -lposix -lcrypt -lutil
    perllibs=-lnsl -ldl -lm -lc -lposix -lcrypt -lutil
    libc=/lib/libc-2.1.3.so, so=so, useshrplib=false, libperl=libperl.a

So it's static (libperl.a). Perhaps that's the cause why FR has no
problems here :?

Nevertheless, in Debian 3.1 (where FR is giving problems), it's using
libperl.so (or the correspondant link in /usr/lib).

One of the simmilar threads I've found is:
http://lists.cistron.nl/pipermail/freeradius-users/2005-April/042978.html

But I don't see the solution there.

I checked that rlm_perl.so is linked against:
libperl.so.5.8 => /usr/lib/libperl.so.5.8 (0x40012000)

while "perl -V" says "libc=/lib/libc-2.3.2.so, so=so, useshrplib=true,
libperl=libperl.so.5.8.4"

Although they're the same file:

raclde01:~# ls -l /usr/lib/libperl*
-rw-r--r--  1 root root 1400854 Mar  8 11:15 /usr/lib/libperl.a
lrwxrwxrwx  1 root root      14 Aug 23 16:57 /usr/lib/libperl.so ->
libperl.so.5.8
lrwxrwxrwx  1 root root      16 Aug 23 15:56 /usr/lib/libperl.so.5.8 ->
libperl.so.5.8.4
-rw-r--r--  1 root root 1150824 Mar  8 11:15 /usr/lib/libperl.so.5.8.4
raclde01:~#

Any ideas, please? :-(

Cheers,
-Román


Roman Medina-Heigl Hernandez wrote:
> Hi,
> 
> I'm trying to get FR 1.0.4 to work with new Debian stable distro (3.1).
> I need rlm_perl so I run ./configure with --with-experimental-modules
> and compiled it from source (latest .tgz downloaded from freeradius.org):
> 
> # tar zxvf freeradius-1.0.4.tar.gz
> # chown -R root. freeradius-1.0.4
> # cd freeradius-1.0.4
> # ./configure --with-experimental-modules --prefix=/usr/local/freeradius
> # make
> # make install
> 
> Compile/build process is ok. Then I configured it to use a perl script
> and that's what I get when trying to start radiusd:
> 
> raclde01:/usr/local/freeradius/sbin# ./radiusd -X
> Starting - reading configuration files ...
> reread_config:  reading radiusd.conf
> Config:   including file: /etc/freeradius/proxy.conf
> Config:   including file: /etc/freeradius/clients.conf
> Config:   including file: /etc/freeradius/snmp.conf
> Config:   including file: /etc/freeradius/eap.conf
> Config:   including file: /etc/freeradius/sql.conf
>  main: prefix = "/usr"
>  main: localstatedir = "/var"
>  main: logdir = "/var/log/freeradius"
>  main: libdir = "/usr/lib/freeradius"
>  main: radacctdir = "/var/log/freeradius/radacct"
>  main: hostname_lookups = no
>  main: max_request_time = 30
>  main: cleanup_delay = 5
>  main: max_requests = 1024
>  main: delete_blocked_requests = 0
>  main: port = 0
>  main: allow_core_dumps = no
>  main: log_stripped_names = no
>  main: log_file = "/var/log/freeradius/radius.log"
>  main: log_auth = no
>  main: log_auth_badpass = no
>  main: log_auth_goodpass = no
>  main: pidfile = "/var/run/freeradius/freeradius.pid"
>  main: user = "freerad"
>  main: group = "freerad"
>  main: usercollide = no
>  main: lower_user = "no"
>  main: lower_pass = "no"
>  main: nospace_user = "no"
>  main: nospace_pass = "no"
>  main: checkrad = "/usr/sbin/checkrad"
>  main: proxy_requests = yes
>  proxy: retry_delay = 5
>  proxy: retry_count = 3
>  proxy: synchronous = no
>  proxy: default_fallback = yes
>  proxy: dead_time = 120
>  proxy: post_proxy_authorize = yes
>  proxy: wake_all_if_all_dead = no
>  security: max_attributes = 200
>  security: reject_delay = 1
>  security: status_server = no
>  main: debug_level = 0
> read_config_files:  reading dictionary
> read_config_files:  reading naslist
> Using deprecated naslist file.  Support for this will go away soon.
> read_config_files:  reading clients
> read_config_files:  reading realms
> radiusd:  entering modules setup
> Module: Library search path is /usr/lib/freeradius
> Module: Loaded exec
>  exec: wait = yes
>  exec: program = "(null)"
>  exec: input_pairs = "request"
>  exec: output_pairs = "(null)"
>  exec: packet_type = "(null)"
> rlm_exec: Wait=yes but no output defined. Did you mean output=none?
> Module: Instantiated exec (exec)
> Module: Loaded expr
> Module: Instantiated expr (expr)
> Module: Loaded perl
>  perl: module = "/usr/local/usr/local/freeradius/bin/freeradius_test.pl"
>  perl: func_authorize = "authorize"
>  perl: func_authenticate = "authenticate"
>  perl: func_accounting = "accounting"
>  perl: func_preacct = "preacct"
>  perl: func_checksimul = "checksimul"
>  perl: func_detach = "detach"
>  perl: func_xlat = "xlat"
>  perl: perl_flags = "(null)"
>  perl: func_start_accounting = "start_accounting"
>  perl: func_stop_accounting = "stop_accounting"
> ./radiusd: relocation error: /usr/lib/perl/5.8/auto/IO/IO.so: undefined
> symbol: Perl_Tstack_sp_ptr
> raclde01:/usr/local/freeradius/sbin#
> 
> 
> It's strange because I followed the same process with FR 1.0.2 on Debian
> 3.0 (oldstable - Woody) 1 or 2 months ago and I got success (no problems
> at all). So I don't know whether I have a problem with Perl / Debian or
> it is freeradius related. Perhaps am I missing some perl package in my
> Debian sarge?
> 
> Has somebody tested FR + rlm_perl on Debian Sarge? Any idea on what's
> happening? If you need more info, I could provide it.
> 
> For instance:
> raclde01:/usr/local/freeradius/sbin# dpkg -l | grep perl
> ii  libdbi-perl    1.46-6         Perl5 database interface by Tim Bunce
> ii  libdigest-perl 1.10-1         generic interface to message digest
> modules
> rc  libnet-perl    1.09.01-1      Implementation of Internet protocols
> for Per
> ii  libnet-server- 0.87-3         An extensible, general perl server engine
> ii  libnetserver-g 1.03-7         A perl module for developing internet
> server
> ii  libperl-dev    5.8.4-8        Perl library: development files
> ii  libperl5.8     5.8.4-8        Shared Perl library
> ii  libperlio-via- 0.11-1         dynamic PerlIO layers
> ii  libplrpc-perl  0.2017-1       Perl extensions for writing PlRPC
> servers an
> ii  liburi-perl    1.35-1         Manipulates and accesses URI strings
> ii  libwww-perl    5.803-4        WWW client/server library for Perl
> (aka LWP)
> ii  perl           5.8.4-8        Larry Wall's Practical Extraction and
> Report
> ii  perl-base      5.8.4-8        The Pathologically Eclectic Rubbish Lister
> rc  perl-doc       5.6.1-8.9      Perl documentation.
> ii  perl-modules   5.8.4-8        Core Perl modules
> 
> raclde01:/usr/local/freeradius/sbin# perl -V
> Summary of my perl5 (revision 5 version 8 subversion 4) configuration:
>   Platform:
>     osname=linux, osvers=2.4.27-ti1211, archname=i386-linux-thread-multi
>     uname='linux kosh 2.4.27-ti1211 #1 sun sep 19 18:17:45 est 2004 i686
> gnulinux '
>     config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN
> -Dcccdlflags=-fPIC -Darchname=i386-linux -Dprefix=/usr
> -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8
> -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5
> -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local
> -Dsitelib=/usr/local/share/perl/5.8.4
> -Dsitearch=/usr/local/lib/perl/5.8.4 -Dman1dir=/usr/share/man/man1
> -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1
> -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl
> -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm
> -Duseshrplib -Dlibperl=libperl.so.5.8.4 -Dd_dosuid -des'
>     hint=recommended, useposix=true, d_sigaction=define
>     usethreads=define use5005threads=undef useithreads=define
> usemultiplicity=define
>     useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
>     use64bitint=undef use64bitall=undef uselongdouble=undef
>     usemymalloc=n, bincompat5005=undef
>   Compiler:
>     cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
> -DDEBIAN -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64',
>     optimize='-O2',
>     cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN
> -fno-strict-aliasing -I/usr/local/include'
>     ccversion='', gccversion='3.3.5 (Debian 1:3.3.5-9)', gccosandvers=''
>     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
>     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
>     ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
> lseeksize=8
>     alignbytes=4, prototype=define
>   Linker and Libraries:
>     ld='cc', ldflags =' -L/usr/local/lib'
>     libpth=/usr/local/lib /lib /usr/lib
>     libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
>     perllibs=-ldl -lm -lpthread -lc -lcrypt
>     libc=/lib/libc-2.3.2.so, so=so, useshrplib=true,
> libperl=libperl.so.5.8.4
>     gnulibc_version='2.3.2'
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
>     cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'
> 
> 
> Characteristics of this binary (from libperl):
>   Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
> PERL_IMPLICIT_CONTEXT
>   Built under linux
>   Compiled at Mar  8 2005 19:51:48
>   @INC:
>     /etc/perl
>     /usr/local/lib/perl/5.8.4
>     /usr/local/share/perl/5.8.4
>     /usr/lib/perl5
>     /usr/share/perl5
>     /usr/lib/perl/5.8
>     /usr/share/perl/5.8
>     /usr/local/lib/site_perl
>     .
> raclde01:/usr/local/freeradius/sbin#
> 
> Thanks in advance.
> -Roman
> 
> PS: I searched the list archive and other sources. I found other similar
> "symbol problems" but I did some tests (tried proposed solutions, etc)
> and I didn't got success, so I'm not really sure whether the origin of
> the problem is the same or not... Your help is appreciated.
> PS2: I also tried to rebuild FR package for Debian (which is currently
> 1.0.2 on Sarge), adding rlm_perl support (basically
> --with-experimental-modules). Build is correct but I have similar
> problems with symbols :-(
> 
> - 
> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to