On Thu, Mar 22, 2001 at 08:15:48PM +0200, Aivo Kalu wrote:
> >And this exactly has the httpd.exp file that is needed to resolve the
> >external references to the ap_* symbols. Did you install modperl
> >properly before making Embperl? This should have installed Apache::src,
> >which is used to find various extra flags for building Embperl. What
> >does the following command print?
> >
> >$ perl -MApache::src -le "print Apache::src->new->otherldflags;"
> >-bI:/data/jum/perl/lib/site_perl/5.6.1/aix/auto/Apache/mod_perl.exp
> >-bI:/usr/local/apache/libexec/httpd.exp
> I did the following:
>
> 462 make distclean
> 463 rm -rf /usr/local/lib/perl5/site_perl/5.6.0/aix/Apache*
> 464 perl Makefile.PL EVERYTHING=1 DO_HTTPD=1 USE_APACI=1
> APACI_ARGS="--enable-module=most --enable-shared=max --disable-shared=perl
> --disable-shared=include"
> 465 make
> 466 make install
> 467 ls -la /usr/local/lib/perl5/site_perl/5.6.0/aix/Apache/src.pm
>
> src.pm existed.
>
> I think that should be properly enough ?
>
> Still,
>
> bash-2.04# perl -MApache::src -le "print Apache::src->new->otherldflags;"
> -bI:/usr/local/lib/perl5/site_perl/5.6.0/aix/auto/Apache/mod_perl.exp
>
I am really surprised by that one, but revisting how Apache::src finds
this it could happen if the modperl installation does not find the
Apache apxs script. It uses the command "apxs -q LIBEXECDIR" to find the
directory where the httpd.exp is. Does the output change if yoou put the
directory where your apxs is installed into your PATH?
> I'm sorry, I couldn't find out whats wrong. If I put the missing -bI: flag
> to embperl Makefile by hand and type make embperl compiled, but
>
> bash-2.04# make test
> PERL_DL_NONLAZY=0 /usr/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 137 perl36
> ap_log_error 138 perl36 ap_palloc 139 perl36 ap_pstrdup 140 perl36 ap_rflush
> 141 perl36 ap_rputc 142 perl36 ap_rwrite 143 perl36 ap_send_http_header 144
> perl36 ap_set_content_length 145 perl36 ap_setup_client_block 146 perl36
> ap_should_client_block 147 perl36 ap_table_add 148 perl36 ap_table_set 149
> perl at /usr/local/lib/perl5/5.6.0/aix/DynaLoader.pm line 200.
> at test.pl line 1033
> Compilation failed in require at test.pl line 1033.
> BEGIN failed--compilation aborted at test.pl line 1033.
> make: 1254-004 The error code from the last command is 255.
>
> I understand that there has to be certain library, from where those ap_*
> symbols are resolved. What name should it be ? The only *.so files from
> apache source directory are from modules directory and only *.a files are
>
> bash-2.04# find . -name *.a -print
> ./src/ap/libap.a
> ./src/main/libmain.a
> ./src/modules/standard/libstandard.a
> ./src/modules/perl/libperl.a
> ./src/os/unix/libos.a
> ./src/regex/libregex.a
>
> Is the missing library libperl.a ? Because,
>
> bash-2.04# find / -name libperl.a -exec ls -la {} \;
> -rw-r--r-- 1 root system 502869 Mar 22 19:55
> /home/aivo/apache_1.3.19/src/modules/perl/libperl.a
> -rw-r--r-- 1 root system 1725134 Mar 21 16:40
> /home/aivo/perl-5.6.0/libperl.a
> -r-xr-xr-x 1 root system 1725134 Mar 21 16:40
> /usr/local/lib/perl5/5.6.0/aix/CORE/libperl.a
>
> The sizes are not the same and I think they mean different libraries ?
No, the ap_* symbols come from the httpd main executable, which is
itself a shared library as well as a main program. If you use the dump
-nv command on an executable or library you can see where the symbols
come from and what is exported.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX: +49 5131 709325
Internet: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]