Bug#416266: freeradius: rlm_perl has symbol lookup errors when loading additional perl modules
Alan DeKok
aland at deployingradius.com
Thu Jul 5 17:56:31 CEST 2007
Stephen Gran wrote:
> steve at gashuffer:~$ dpkg -S libperl.a
> libperl-dev: /usr/lib/libperl.a
$ perl -MExtUtils::Embed -e ldopts
Outputs "-lperl", among other things.
$ perl -MExtUtils::Embed -e ccopts
Prints out where the header files are installed.
But, of course, you can't *use* those header files to build an
application like FreeRADIUS. You can't even believe the "perl
...ldopts" output, because it tells you to use "-lperl", which doesn't work.
The solution is simple:
a) libperl.a should be installed with Perl, not libperl-dev
or
b) The output of perl -MExtUtils::Embed -e ldopts / ccopts
should stop telling applications that linking will work.
It won't. It's lying to you. If the libperl-dev package
isn't installed, "perl ... ldopts" should return an error.
Every other library FreeRADIUS uses (MySQL, etc.) installs the
development library with the development headers. So if the application
compiles against the headers, you're pretty sure that it will link, too.
In fact, in 8 years of using FreeRADIUS, the only time that *doesn't*
happen is when someone installed broken headers/libraries by hand, from
a "tar" file. Except for libperl.
Alan DeKok.
More information about the Freeradius-Devel
mailing list