Jens-Uwe, Listees:
Sorry that it has taken me about a week to get back to you. It has been
busy, and this problem had backgrounded itself.
Starting off w/ a fresh compliation of apache 1.3.12 & mod_perl 1.24, I
ended up with the same errors as before. I then added the flags that you
suggested to link my module. The httpd.exp file it expects for some
reason is /httpd.exp. I copied the httpd.exp from src/support to /. At
this point, the module compiled/linked correctly. I added the PerlModule
line to the httpd.conf to include it, and achieved the same broken
httpd. (See attached or below for details.)
Attached is a (long) listing of both the compilation & linking as well as
the 'dump -nv AuthenKerberos.so' that you suggested would be helpful. I
tried to read the dump - however I just don't quite understand it.
A few other notes: The module demands some mod_perl functions ->
perl_cmd_perl_FLAG, perl_cmd_perl_TAKE1... (in attached file) which I was
previously told were not usually exported by mod_perl, but I could put the
symbol names in my mod_perl.exp file to help with linking. I added those
symbol names before compiling mod_perl.
(I also had some odd problems at the "perl Makefile.PL" stage -> If I
left the arguments in a certain order it would work, another order would
cause segfaults :( -> the make test worked fine when run by hand. Since
the problem I am having was the exact same under this new configuration
and the other - I am assuming this is something random and
circumstantial.)
thanks,
jamie
On Fri, 7 Jul 2000, Jens-Uwe Mager wrote:
> On Thu, Jul 06, 2000 at 07:08:03PM -0500, John Marquart wrote:
>
> > Environment:
> > AIX 4.3.3
> > xlc
> > apache 1.3.12
> > mod_perl 1.22
> > perl 5.00503 (compiled w/ INSTALL patch, details below)
> >
> > I have had various difficulties trying to get mod_perl to compile
> > successfully using perl 5.6.0, also w/ mod_perl 1.24. However, with the
> > above configuration I have had no compilation problems. When I try to
> > include a module in httpd.conf w/ a "PerlModule
> > Apache::IU::AuthenKerberos" statement & then run apachectl start I get the
> > following error message:
> >
> > bash-2.01# ./apachectl start
> > Syntax error on line 191 of /usr/local/apache_perl.4/conf/httpd.conf:
> > Can't load
> >
>'/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/IU/AuthenKerberos/AuthenKerberos.so'
> > for module Apache::IU::AuthenKerberos: dlopen:
> >
>/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/IU/AuthenKerberos/AuthenKerberos.so:
> > 30
> >
>/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/IU/AuthenKerberos/AuthenKerberos.so36
> > ap_add_module 20 httpd36 ap_null_cleanup 21 httpd36 ap_palloc 22 httpd36
> > ap_register_cleanup 23 httpd at
> > /usr/local/lib/perl5/5.00503/aix/DynaLoader.pm line 169.
>
> This suspicially looks like you have some imports in the AuthenKerberos
> wrong. Modules that are plug-ins to Perl but at the same time need to
> reference Apache symbols need some more ld flags to compile. The
> Apache::src modules knows which:
>
> $ perl -MApache::src -le 'print Apache::src->new->otherldflags;'
> -bI:/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/mod_perl.exp
>-bI:/usr/local/apache/libexec/httpd.exp
>
> Add these to the link line of the AuthenKerberos module. If that still
> does not work, I would need to examine the exact link command line and
> the output of "dump -nv AuthenKerberos.so".
>
> --
> Jens-Uwe Mager
>
> HELIOS Software GmbH
> Steinriede 3
> 30827 Garbsen
> Germany
>
> Phone: +49 5131 709320
> FAX: +49 5131 709325
> Internet: [EMAIL PROTECTED]
>
John "Jamie" Marquart | This message posted 100% MS free.
Digital Library SysAdmin | Work: 812-856-5174 Pager: 812-334-6018
Indiana University Libraries | ICQ: 1131494 D'net Team: 6265
Script command is started on Mon Jul 10 17:55:48 EST 2000.sh-2.01# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Apache::IU::AuthenKerberos
sh-2.01# make
mkdir blib
mkdir blib/lib
mkdir blib/lib/Apache
mkdir blib/lib/Apache/IU
cp AuthenKerberos.pm blib/lib/Apache/IU/AuthenKerberos.pm
/usr/bin/perl "-I/usr/local/lib/perl5/5.00503/aix"
"-I/usr/local/lib/perl5/5.00503" -e 'use ExtUtils::Mksymlists; Mksymlists("NAME" =>
"Apache::IU::AuthenKerberos", "DL_FUNCS" => { }, "FUNCLIST" => [], "DL_VARS" => []);'
/usr/bin/perl -I/usr/local/lib/perl5/5.00503/aix
-I/usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/5.00503/ExtUtils/xsubpp -typemap
/usr/local/lib/perl5/5.00503/ExtUtils/typemap AuthenKerberos.xs >xstmp.c && mv xstmp.c
AuthenKerberos.c
cc -c -I/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/include
-I/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/include/modules/perl
-I/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/include/include
-I/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/include/regex
-I/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/include/os/unix -D_ALL_SOURCE
-D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=8192 -I/usr/local/include -O
-DVERSION=\"0.92\" -DXS_VERSION=\"0.92\" -I/usr/local/lib/perl5/5.00503/aix/CORE
AuthenKerberos.c
mkdir blib/arch
mkdir blib/arch/auto
mkdir blib/arch/auto/Apache
mkdir blib/arch/auto/Apache/IU
mkdir blib/arch/auto/Apache/IU/AuthenKerberos
Running Mkbootstrap for Apache::IU::AuthenKerberos ()
chmod 644 AuthenKerberos.bs
LD_RUN_PATH="" ld -o blib/arch/auto/Apache/IU/AuthenKerberos/AuthenKerberos.so
-bhalt:4 -bM:SRE -bI:/usr/local/lib/perl5/5.00503/aix/CORE/perl.exp
-bE:AuthenKerberos.exp -b noentry -lc -L/usr/local/lib AuthenKerberos.o
ld: 0711-317 ERROR: Undefined symbol: perl_cmd_perl_TAKE2
ld: 0711-317 ERROR: Undefined symbol: perl_cmd_perl_TAKE1
ld: 0711-317 ERROR: Undefined symbol: perl_cmd_perl_TAKE123
ld: 0711-317 ERROR: Undefined symbol: perl_cmd_perl_FLAG
ld: 0711-317 ERROR: Undefined symbol: perl_perl_merge_dir_config
ld: 0711-317 ERROR: Undefined symbol: .ap_add_module
ld: 0711-317 ERROR: Undefined symbol: .ap_palloc
ld: 0711-317 ERROR: Undefined symbol: perl_perl_cmd_cleanup
ld: 0711-317 ERROR: Undefined symbol: ap_null_cleanup
ld: 0711-317 ERROR: Undefined symbol: .ap_register_cleanup
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make: 1254-004 The error code from the last command is 8.
Stop.
sh-2.01# perl -MApache::src -le 'print Apache::src->new->otherldflags;'
-bI:/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/mod_perl.exp -bI:/httpd.exp
sh-2.01# ld -o blib/arch/auto/Apache/IU/AuthenKerberos/AuthenKerberos.so -bhalt:4
-bM:SRE -bI:/usr/local/lib/perl5/5.00503/aix/CORE/perl.exp-bE:
-bI:/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/mod_perl.exp -bI:/httpd.exp
-bE:AuthenKerberos.exp -b noentry -lc -L/usr/local/lib AuthenKerberos.o
sh-2.01# make
cp AuthenKerberos.bs blib/arch/auto/Apache/IU/AuthenKerberos/AuthenKerberos.bs
chmod 644 blib/arch/auto/Apache/IU/AuthenKerberos/AuthenKerberos.bs
mkdir blib/lib/auto/Apache
mkdir blib/lib/auto/Apache/IU
mkdir blib/lib/auto/Apache/IU/AuthenKerberos
mkdir blib/man3
Manifying blib/man3/Apache::IU::AuthenKerberos.3
Target "makemakerdflt" is up to date.
sh-2.01# dump -nv blib/arch/auto/Apache/IU/AuthenKerberos/AuthenKerberos.so
blib/arch/auto/Apache/IU/AuthenKerberos/AuthenKerberos.so:
***Loader Section***
Loader Header Information
VERSION# #SYMtableENT #RELOCent LENidSTR
0x00000001 0x00000019 0x00000044 0x00000031
#IMPfilID OFFidSTR LENstrTBL OFFstrTBL
0x00000003 0x000005a8 0x000001bd 0x000005d9
***Import File Strings***
INDEX PATH BASE MEMBER
0 /usr/local/lib:/usr/lib:/lib
1 libc.a shr.o
2 .
***Loader Symbol Table Information***
[Index] Value Scn IMEX Sclass Type IMPid Name
[0] 0x00000000 undef IMP UA EXTref libc.a(shr.o)
_system_configuration
[1] 0x00000000 undef IMP DS EXTref libc.a(shr.o) strlen
[2] 0x00000000 undef IMP UA EXTref [noIMid] PL_markstack_ptr
[3] 0x00000000 undef IMP UA EXTref [noIMid] PL_stack_base
[4] 0x00000000 undef IMP UA EXTref [noIMid] PL_stack_sp
[5] 0x00000000 undef IMP UA EXTref [noIMid] PL_sv_yes
[6] 0x00000000 undef IMP DS EXTref [noIMid] Perl_croak
[7] 0x00000000 undef IMP DS EXTref [noIMid] Perl_form
[8] 0x00000000 undef IMP DS EXTref [noIMid] Perl_hv_store
[9] 0x00000000 undef IMP DS EXTref [noIMid] Perl_newSV
[10] 0x00000000 undef IMP DS EXTref [noIMid] Perl_sv_2pv
[11] 0x00000000 undef IMP DS EXTref [noIMid] Perl_sv_setref_pv
[12] 0x00000000 undef IMP DS EXTref [noIMid] perl_get_hv
[13] 0x00000000 undef IMP DS EXTref [noIMid] perl_get_sv
[14] 0x00000000 undef IMP DS EXTref [noIMid] perl_cmd_perl_TAKE1
[15] 0x00000000 undef IMP DS EXTref [noIMid] perl_cmd_perl_TAKE2
[16] 0x00000000 undef IMP DS EXTref [noIMid]
perl_cmd_perl_TAKE123
[17] 0x00000000 undef IMP DS EXTref [noIMid] perl_cmd_perl_FLAG
[18] 0x00000000 undef IMP DS EXTref [noIMid]
perl_perl_cmd_cleanup
[19] 0x00000000 undef IMP DS EXTref [noIMid]
perl_perl_merge_dir_config
[20] 0x00000000 undef IMP DS EXTref . ap_add_module
[21] 0x00000000 undef IMP DS EXTref . ap_null_cleanup
[22] 0x00000000 undef IMP DS EXTref . ap_palloc
[23] 0x00000000 undef IMP DS EXTref . ap_register_cleanup
[24] 0x0000053c .data EXP DS SECdef [noIMid]
boot_Apache__IU__AuthenKerberos
***Relocation Information***
Vaddr Symndx Type Relsect Name
0x00000170 0x00000001 Pos_Rel 0x0002 .data
0x00000174 0x00000001 Pos_Rel 0x0002 .data
0x00000178 0x00000001 Pos_Rel 0x0002 .data
0x0000017c 0x00000001 Pos_Rel 0x0002 .data
0x00000180 0x00000001 Pos_Rel 0x0002 .data
0x00000184 0x00000001 Pos_Rel 0x0002 .data
0x00000188 0x00000001 Pos_Rel 0x0002 .data
0x0000018c 0x00000001 Pos_Rel 0x0002 .data
0x00000190 0x00000001 Pos_Rel 0x0002 .data
0x00000194 0x00000001 Pos_Rel 0x0002 .data
0x00000198 0x00000001 Pos_Rel 0x0002 .data
0x0000019c 0x00000001 Pos_Rel 0x0002 .data
0x00000430 0x00000001 Pos_Rel 0x0002 .data
0x00000434 0x00000012 Pos_Rel 0x0002 perl_cmd_perl_TAKE2
0x00000438 0x00000001 Pos_Rel 0x0002 .data
0x00000444 0x00000001 Pos_Rel 0x0002 .data
0x00000448 0x00000001 Pos_Rel 0x0002 .data
0x0000044c 0x00000011 Pos_Rel 0x0002 perl_cmd_perl_TAKE1
0x00000450 0x00000001 Pos_Rel 0x0002 .data
0x0000045c 0x00000001 Pos_Rel 0x0002 .data
0x00000460 0x00000001 Pos_Rel 0x0002 .data
0x00000464 0x00000013 Pos_Rel 0x0002 perl_cmd_perl_TAKE123
0x00000468 0x00000001 Pos_Rel 0x0002 .data
0x00000474 0x00000001 Pos_Rel 0x0002 .data
0x00000478 0x00000001 Pos_Rel 0x0002 .data
0x0000047c 0x00000011 Pos_Rel 0x0002 perl_cmd_perl_TAKE1
0x00000480 0x00000001 Pos_Rel 0x0002 .data
0x0000048c 0x00000001 Pos_Rel 0x0002 .data
0x00000490 0x00000001 Pos_Rel 0x0002 .data
0x00000494 0x00000011 Pos_Rel 0x0002 perl_cmd_perl_TAKE1
0x00000498 0x00000001 Pos_Rel 0x0002 .data
0x000004a4 0x00000001 Pos_Rel 0x0002 .data
0x000004a8 0x00000001 Pos_Rel 0x0002 .data
0x000004ac 0x00000014 Pos_Rel 0x0002 perl_cmd_perl_FLAG
0x000004b0 0x00000001 Pos_Rel 0x0002 .data
0x000004bc 0x00000001 Pos_Rel 0x0002 .data
0x000004e4 0x00000001 Pos_Rel 0x0002 .data
0x000004f8 0x00000001 Pos_Rel 0x0002 .data
0x000004fc 0x00000016 Pos_Rel 0x0002 perl_perl_merge_dir_config
0x00000500 0x00000001 Pos_Rel 0x0002 .data
0x00000508 0x00000001 Pos_Rel 0x0002 .data
0x0000053c 0x00000000 Pos_Rel 0x0002 .text
0x00000540 0x00000001 Pos_Rel 0x0002 .data
0x00000548 0x00000000 Pos_Rel 0x0002 .text
0x0000054c 0x00000001 Pos_Rel 0x0002 .data
0x00000554 0x00000000 Pos_Rel 0x0002 .text
0x00000558 0x00000001 Pos_Rel 0x0002 .data
0x00000560 0x00000004 Pos_Rel 0x0002 strlen
0x00000564 0x00000003 Pos_Rel 0x0002 _system_configuration
0x00000568 0x00000005 Pos_Rel 0x0002 PL_markstack_ptr
0x0000056c 0x00000006 Pos_Rel 0x0002 PL_stack_base
0x00000570 0x00000007 Pos_Rel 0x0002 PL_stack_sp
0x00000574 0x00000001 Pos_Rel 0x0002 .data
0x00000578 0x0000000d Pos_Rel 0x0002 Perl_sv_2pv
0x0000057c 0x0000000a Pos_Rel 0x0002 Perl_form
0x00000580 0x00000010 Pos_Rel 0x0002 perl_get_sv
0x00000584 0x00000009 Pos_Rel 0x0002 Perl_croak
0x00000588 0x00000001 Pos_Rel 0x0002 .data
0x0000058c 0x00000017 Pos_Rel 0x0002 ap_add_module
0x00000590 0x00000008 Pos_Rel 0x0002 PL_sv_yes
0x00000594 0x0000000c Pos_Rel 0x0002 Perl_newSV
0x00000598 0x0000000e Pos_Rel 0x0002 Perl_sv_setref_pv
0x0000059c 0x0000000f Pos_Rel 0x0002 perl_get_hv
0x000005a0 0x0000000b Pos_Rel 0x0002 Perl_hv_store
0x000005a4 0x00000019 Pos_Rel 0x0002 ap_palloc
0x000005a8 0x00000015 Pos_Rel 0x0002 perl_perl_cmd_cleanup
0x000005ac 0x00000018 Pos_Rel 0x0002 ap_null_cleanup
0x000005b0 0x0000001a Pos_Rel 0x0002 ap_register_cleanup
sh-2.01# exit
exit
Script command is complete on Mon Jul 10 17:59:54 EST 2000.
Error:
root@hautbois/usr/local/apache/bin# ./apachectl start
Syntax error on line 192 of /usr/local/apache/conf/httpd.conf:
Can't load
'/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/IU/AuthenKerberos/AuthenKerberos.so'
for module Apache::IU::AuthenKerberos: dlopen:
/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/IU/AuthenKerberos/AuthenKerberos.so:
30
/usr/local/lib/perl5/site_perl/5.005/aix/auto/Apache/IU/AuthenKerberos/AuthenKerberos.so36
ap_add_module 20 httpd36 ap_null_cleanup 21 httpd36 ap_palloc 22 httpd36
ap_register_cleanup 23 httpd at /usr/local/lib/perl5/5.00503/aix/DynaLoader.pm line
169.
at (eval 4) line 3
./apachectl start: httpd could not be started