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


  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