When I do "dump -nv httpd | egrep 'ap_palloc|ap_table'" I don't get any
output.
I went into the apache_1.3.12/src directory and manually compiled httpd with
the same command issued by make with the addition of -bE:support/httpd.exp.
The complete command looked like this:
cc -DAIX=43 -U__STR__ -DAIX_BIND_PROCESSOR -qnogenpcomp -qnousepcomp -DMOD_
PERL
-DUSE_PERL_SSI -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=1638
4 -I
/usr/local/include -q32 -D_LARGE_FILES -qlonglong -DUSE_HSREGEX -DUSE_EXPAT
-I./
lib/expat-lite -DNO_DL_NEEDED `./apaci` -lm -o httpd buildmark.o modules.o
modul
es/perl/libperl.a modules/standard/libstandard.a main/libmain.a
./os/unix/libos.
a ap/libap.a regex/libregex.a
ib/expat-lite/libexpat.a -bE:/usr/local/lib/perl
5/5.6.0/aix/CORE/perl.exp -L/usr/local/lib -b32
/usr/local/lib/perl5/5.6.0/aix/
auto/DynaLoader/DynaLoader.a -L/usr/local/lib/perl5/5.6.0/aix/CORE -lperl -l
bind
-lnsl -ldbm -ldl -lld -lm -lC -lc -lcrypt -lbsd -lPW -liconv -bE:support/ht
tpd.
exp
Now a "dump -nv httpd | egrep 'ap_palloc|ap_table'" looks like:
[412] 0x20039330 .data EXP DS SECdef [noIMid]
ap_table_merge
[413] 0x2003933c .data EXP DS SECdef [noIMid]
ap_table_add
[440] 0x20039834 .data EXP DS SECdef [noIMid]
ap_overlap_tables
[442] 0x2003984c .data EXP DS SECdef [noIMid]
ap_table_do
[443] 0x20039858 .data EXP DS SECdef [noIMid]
ap_table_addn
[444] 0x20039864 .data EXP DS SECdef [noIMid]
ap_table_unset
[445] 0x20039870 .data EXP DS SECdef [noIMid]
ap_table_mergen
[446] 0x2003987c .data EXP DS SECdef [noIMid]
ap_table_setn
[447] 0x20039888 .data EXP DS SECdef [noIMid]
ap_table_set
[448] 0x20039894 .data EXP DS SECdef [noIMid]
ap_table_get
[465] 0x20039960 .data EXP DS SECdef [noIMid] ap_palloc
0x2003d64c 0x0000019f Pos_Rel 0x0002 ap_table_merge
0x2003d650 0x000001a0 Pos_Rel 0x0002 ap_table_add
I then did an apache 'make install', even though I think that the Embperl
compile and test processes use the source-code version of httpd...
Now a "make test" of Embperl still gives the following results:
$ make test
PERL_DL_NONLAZY=0
/usr/local/bin/perl -Iblib/arch -Iblib/lib -I/usr/local/lib/perl5/5.6.0/
aix -I/usr/local/lib/perl5/5.6.0 test.pl
loading... Can't load
'blib/arch/auto/HTML/Embperl/Embperl.so' for modu
le HTML::Embperl: dlopen: blib/arch/auto/HTML/Embperl/Embperl.so: 30
blib/arch/auto/HTML/
Embperl/Embperl.so36 ap_get_client_block 131 perl36 ap_log_error 132 perl36
ap_palloc 133
perl36 ap_pstrdup 134 perl36 ap_rflush 135 perl36 ap_rputc 136 perl36
ap_rwrite 137 perl36
ap_send_http_header 138 perl36 ap_set_content_length 139 perl36
ap_setup_client_block 140
perl36 ap_should_client_block 141 perl36 ap_table_add 142 perl36
ap_table_set 143 perl at
/usr/local/lib/perl5/5.6.0/aix/DynaLoader.pm line 200.
at test.pl line 557
Compilation failed in require at test.pl line 557.
BEGIN failed--compilation aborted at test.pl line 557.
make: *** [test_dynamic] Error 255
-----Original Message-----
From: Jens-Uwe Mager [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, June 14, 2000 5:54 PM
To: Greg Estep
Cc: Jens-Uwe Mager; [EMAIL PROTECTED]
Subject: Re: non-DSO mod_perl, Embperl, and AIX not working
On Wed, Jun 14, 2000 at 05:37:59PM -0400, Greg Estep wrote:
>
> I don't have a httpd.exp in /usr/local/apache/libexec. I assume that is
> because I am not using DSO for any of my apache modules. I
> used -bI:<apache-source-dir>/src/support/httpd.exp and got a clean
> compile/link.
Well, Apache's make install probably assumes that it is not needed in
this case, which is not entirely true as can be seen from this
situation.
> When I try 'make test', I get:
>
> $ make test
> PERL_DL_NONLAZY=0
>
/usr/local/bin/perl -Iblib/arch -Iblib/lib -I/usr/local/lib/perl5/5.6.0/aix
> -I/usr/local/lib/perl5/5.6.0 test.pl
>
> loading... Can't load
> 'blib/arch/auto/HTML/Embperl/Embperl.so
> ' for module HTML::Embperl: dlopen:
blib/arch/auto/HTML/Embperl/Embperl.so:
> 30
> blib/arch/auto/HTML/Embperl/Embperl.so36 ap_get_client_block 131 perl36
> ap_log_e
> rror 132 perl36 ap_palloc 133 perl36 ap_pstrdup 134 perl36 ap_rflush 135
> perl36
> ap_rputc 136 perl36 ap_rwrite 137 perl36 ap_send_http_header 138 perl36
> ap_set_c
> ontent_length 139 perl36 ap_setup_client_block 140 perl36
> ap_should_client_block
> 141 perl36 ap_table_add 142 perl36 ap_table_set 143 perl at
> /usr/local/lib/perl
> 5/5.6.0/aix/DynaLoader.pm line 200.
> at test.pl line 557
> Compilation failed in require at test.pl line 557.
> BEGIN failed--compilation aborted at test.pl line 557.
> make: *** [test_dynamic] Error 255
Well this surely looks like your Apache main part does not export the
symbols in question, does a dump -nv httpd list the symbols in question
like this?
[207] 0x20007458 .data EXP DS SECdef [noIMid]
ap_table_set
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX: +49 5131 709325
Internet: [EMAIL PROTECTED]