When the p5-Apache-Radius port is used in conjunction with the mod_perl port on a RELENG_3 box, it works. On a HEAD box, it breaks: Syntax error on line 261 of /usr/local/etc/apache/httpd.conf: Can't load '/usr/local/lib/perl5/site_perl/5.005/i386-freebsd/auto/MD5/MD5.so' for module MD5: /usr/local/lib/perl5/site_perl/5.005/i386-freebsd/auto/MD5/MD5.so: Undefined symbol "PL_markstack_ptr" at /usr/libdata/perl/5.00503/DynaLoader.pm line 169. at /usr/local/lib/perl5/site_perl/5.005/Authen/Radius.pm line 18 BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.005/Authen/Radius.pm line 18. BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.005/Apache/AuthenRadius.pm line 8. The mod_perl port installs a loadable perl interpreter module for use with the Apache web server. The p5-Apache-Radius port installs a perl module which may be used by a mod_perl-enabled Apache to use RADIUS authentication. Fix: I have had no feedback from the modperl@apache.org mailing list. I received this reply to a message I sent to freebsd-hackers: | Date : Thu, 11 Nov 1999 00:45:52 +0100 | From : Ollivier Robert <roberto@keltia.freenix.fr> | To : hackers@freebsd.org | Subject : Re: mode_perl DSO works on STABLE, not CURRENT | Message-ID: <19991111004552.B44926@keltia.freenix.fr> | | Your Perl binary is compiled without '-Wl,-E' (or | '-Wl,--export-dynamic'). Without this option the Perl binary | doesn't expoert its symbols thus preventing any dynamically | loaded module to use anything from the binary. My perl binary _is_ compiled with '-Wl,-E' but I suspect that mod_perl may not have been. Regrettably, I don't know where to start with this problem. :-( Regards, Sheldon. How-To-Repeat: On a CURRENT FreeBSD machine with an up-to-date ports tree: Make sure that you do not have p5-Apache installed. The p5-Apache port integrates the perl interpretor into the httpd binary. You will not see this problem if you have p5-Apache installed. # cd /usr/ports/www/p5-Apache-Radius # make install # /usr/local/sbin/apachectl configtest Observe that the test is successful with "Syntax OK". Now edit /usr/local/etc/apache/httpd.conf and search for this line: AddModule mod_perl.c Add the following line directly after it: PerlModule Apache::AuthenRadius Now rerun the Apache configuration test: # /usr/local/sbin/apachectl configtest Observe the error messages as quoted above in the Description.
Responsible Changed From-To: freebsd-ports->markm Mark promised to take a look at it for me, but please don't let that stop you if you think you have a bead on it. :-)
This is the feedback I got from Doug MacEachern <dougm@backflipcorp.com>, who is quite clued up with mod_perl. :-) On Mon, 13 Dec 1999 22:12:28 PST, Doug MacEachern wrote: > I suggest linking things static, both mod_perl and Perl itself (no > -Duseshplib) Ciao, Sheldon.
I had about the same problem with mod_perl-1.21 and p5-Apache-DBI-0.87 Apache has been able to start after I relink it with -lperl
State Changed From-To: open->analyzed Fixed on the RELENG_4 branch a while back, but still broken in RELENG_3.
On my 3.4-Release box I get (Apache 1.3.12, p5-Apache-1.23, p5-DBI-1.13): root@ns.decros.cz:/home/reho# apachectl configtest Syntax error on line 319 of /usr/local/etc/apache/httpd.conf: Can't load '/usr/local/lib/perl5/site_perl/5.005/i386-freebsd/auto/DBI/DBI.so' for module DBI: /usr/local/lib/perl5/site_perl/5.005/i386-freebsd/auto/DBI/DBI.so: Undefined symbol "PL_dowarn" at /usr/libdata/perl/5.00503/DynaLoader.pm line 169. at /usr/local/lib/perl5/site_perl/5.005/i386-freebsd/DBI.pm line 158 BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.005/i386-freebsd/DBI.pm line 158. In PR14926 sheldonh wrote: Fixed on the RELENG_4 branch a while back, but still broken in RELENG_3. Becose I needed it on my box, I'm wrote a patch to solve this problem for 3.4-RELEASE/i386 (it's inspired by solution for RELENG_4) Petr diff -r -u gnu/usr.bin/perl/libperl/config.SH-elf.i386.orig gnu/usr.bin/perl/libperl/config.SH-elf.i386 --- gnu/usr.bin/perl/libperl/config.SH-elf.i386.orig Tue May 16 01:32:05 2000 +++ gnu/usr.bin/perl/libperl/config.SH-elf.i386 Tue May 16 11:23:57 2000 @@ -45,9 +45,9 @@ cat='cat' cc='cc' cccdlflags='-DPIC -fpic' -ccdlflags=' ' +ccdlflags=' -Wl,-R/usr/lib' ccflags='' -ccsymbols='__ELF__=1 __FreeBSD__=4 __FreeBSD_cc_version=400002 __GNUC_MINOR__=91 __GNUC__=2 cpu=i386 machine=i386 system=FreeBSD system=unix' +ccsymbols='__ELF__=1 __FreeBSD__=3 __FreeBSD_cc_version=340000 __GNUC_MINOR__=7 __GNUC__=2 cpu=i386 machine=i386 system=FreeBSD system=unix' cf_by='markm' cf_email='markm@freebsd.org' cf_time='$Date: 1999/05/05 19:42:40 $' @@ -323,7 +323,7 @@ full_ar='/usr/bin/ar' full_csh='/bin/csh' full_sed='/usr/bin/sed' -gccversion='egcs-2.91.66 19990314 (egcs-1.1.2 release)' +gccversion='2.7.2.3' gidtype='gid_t' glibpth='/usr/lib' grep='grep' @@ -405,16 +405,17 @@ installscript='/usr/local/bin' installsitearch='/usr/local/lib/perl5/site_perl/5.005/i386-freebsd' installsitelib='/usr/local/lib/perl5/site_perl/5.005' +installusrbinperl='undef' intsize='4' known_extensions='B DB_File Data/Dumper Fcntl GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re' ksh='' large='' ld='cc' -lddlflags='-shared' -ldflags='-Wl,-E' +lddlflags='-Wl,-E -shared -lperl -lm ' +ldflags='-Wl,-E -lperl -lm ' less='less' lib_ext='.a' -libc='/usr/lib/libc.so' +libc='' libperl='libperl.so.3' libpth='/usr/lib' libs='-lm -lc -lcrypt' @@ -457,7 +458,7 @@ myarchname='i386-freebsd' mydomain='.freebsd.org' myhostname='freefall' -myuname='freebsd freefall.freebsd.org 4.0-current freebsd 4.0-current #0: $Date: 1999/05/05 19:42:40 $' +myuname='freebsd freefall.freebsd.org 3.4-stable freebsd 3.4-stable #0: $Date: 1999/05/05 19:42:40 $' n='-n' netdb_hlen_type='int' netdb_host_type='const char *' @@ -473,7 +474,7 @@ optimize=${CFLAGS:-''} orderlib='false' osname='freebsd' -osvers='4.0-current' +osvers='3.4-stable' package='perl5' pager='/usr/bin/more' passcat='cat /etc/passwd' @@ -499,7 +500,7 @@ rd_nodata='-1' rm='rm' rmail='' -runnm='true' +runnm='false' scriptdir='/usr/bin' scriptdirexp='/usr/bin' sed='sed' @@ -564,7 +565,7 @@ uniq='uniq' usedl='define' usemymalloc='n' -usenm='true' +usenm='false' useopcode='true' useperlio='undef' useposix='true' @@ -582,8 +583,8 @@ zip='zip' # Configure command line arguments. config_arg0='Configure' -config_args='-Dprefix=/usr -Darchlib=/usr/libdata/perl/5.00503/mach -Dprivlib=/usr/libdata/perl/5.00503 -Dsitearch=/usr/local/lib/perl5/site_perl/5.005/i386-freebsd -Dsitelib=/usr/local/lib/perl5/site_perl/5.005 -Dman1dir=/usr/local/man/man1 -Dman3dir=/usr/share/perl/man/man3 -des -Ulocincpth= -Uloclibpth= -Dpager=more' -config_argc=11 +config_args='-Dprefix=/usr -Darchlib=/usr/libdata/perl/5.00503/mach -Dprivlib=/usr/libdata/perl/5.00503 -Dsitearch=/usr/local/lib/perl5/site_perl/5.005/i386-freebsd -Dsitelib=/usr/local/lib/perl5/site_perl/5.005 -Dman1dir=/usr/local/man/man1 -Dman3dir=/usr/share/perl/man/man3 -Ulocincpth= -Uloclibpth= -Dpager=more' +config_argc=10 config_arg1='-Dprefix=/usr' config_arg2='-Darchlib=/usr/libdata/perl/5.00503/mach' config_arg3='-Dprivlib=/usr/libdata/perl/5.00503' @@ -591,10 +592,9 @@ config_arg5='-Dsitelib=/usr/local/lib/perl5/site_perl/5.005' config_arg6='-Dman1dir=/usr/local/man/man1' config_arg7='-Dman3dir=/usr/share/perl/man/man3' -config_arg8='-des' -config_arg9='-Ulocincpth=' -config_arg10='-Uloclibpth=' -config_arg11='-Dpager=more' +config_arg8='-Ulocincpth=' +config_arg9='-Uloclibpth=' +config_arg10='-Dpager=more' PATCHLEVEL=5 SUBVERSION=3 CONFIG=true diff -r -u gnu/usr.bin/perl/perl/Makefile.orig gnu/usr.bin/perl/perl/Makefile --- gnu/usr.bin/perl/perl/Makefile.orig Tue May 16 10:53:00 2000 +++ gnu/usr.bin/perl/perl/Makefile Tue May 16 10:56:06 2000 @@ -7,6 +7,7 @@ CFLAGS+=-I${PERL5SRC} -I${.OBJDIR} SRCS= perlmain.c config.h NOSHARED= no +LDFLAGS= -Wl,-E DPADD= lib/auto/DynaLoader/DynaLoader.a ${LIBPERL} ${LIBM} ${LIBCRYPT} LDADD= lib/auto/DynaLoader/DynaLoader.a -lperl -lm -lcrypt LINKS= ${BINDIR}/${PROG} ${BINDIR}/perl5 \ diff -r -u gnu/usr.bin/perl/suidperl/Makefile.orig gnu/usr.bin/perl/suidperl/Makefile --- gnu/usr.bin/perl/suidperl/Makefile.orig Tue May 16 10:58:00 2000 +++ gnu/usr.bin/perl/suidperl/Makefile Tue May 16 10:58:34 2000 @@ -7,6 +7,7 @@ CFLAGS+=-I${PERL5SRC} -I${.OBJDIR} -DIAMSUID SRCS= perlmain.c sperl.c config.h NOSHARED= no +LDFLAGS= -Wl,-E DPADD= lib/auto/DynaLoader/DynaLoader.a ${LIBPERL} ${LIBM} ${LIBCRYPT} LDADD= lib/auto/DynaLoader/DynaLoader.a -lperl -lm -lcrypt BINOWN= root --------------------------------------------------------------------- DECROS s.r.o. J.S.Baara 40, Ceske Budejovice, Czech Republic Tel: +420-38-7312808 Fax: +420-38-7311480 http://www.decros.cz
Since 4 has been -stable for a while, is this still a problem?
State Changed From-To: analyzed->closed Fixed.