>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 forgot to do make install in apache source directory. I thought that make
install in mod_perl's directory would take care of apache install as well.

Now, perl Makefile.PL && make succeeds, but make test failes with the same
message.  

>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.
Well, now the httpd is correct. 
#dump -nv /usr/local/apache/bin/httpd | grep ap_get_client_block
[621]   0x20013f74    .data      EXP     DS   Ldef        [noIMid]
ap_get_client_block

ap_get_client_block is one of missing symbols, make test failed for. 

Anyway, how do the AIX know that those symbols must come from
/usr/local/apache/bin/httpd ? From embperl.so file ? 

The command which produces Embperl.so file, is following:

LD_RUN_PATH="" ld -o blib/arch/auto/HTML/Embperl/Embperl.so  -bhalt:4
-bM:SRE -bI:/usr/local/lib/perl5/5.6.0/aix/CORE/perl.exp -bE:Embperl.exp -b
noentry -lc -L/usr/local/lib Embperl.o epmain.o epio.o epchar.o epcmd.o
eputil.o epeval.o epdbg.o
-bI:/usr/local/lib/perl5/site_perl/5.6.0/aix/auto/Apache/mod_perl.exp
-bI:/usr/local/apache/libexec/httpd.exp

dump -nv blib/arch/auto/HTML/Embperl/Embperl.so shows that 
[0]     0x00000000    undef      IMP     RW EXTref   libc.a(shr.o) errno


I guess this line means that errno is resolved from libc.a (actually even
from shr.o object module?) ? Regarding the Perl_ symbols, it shows 

[48]    0x00000000    undef      IMP     DS EXTref        [noIMid]
Perl_av_clear                                      

I hope that is correct as well, but for ap_ symbols, there are lines

[137]   0x00000000    undef      IMP     DS EXTref               .
ap_get_client_block

I'm afraid the "." doesn't mean good and therefore the embperl.so file isn't
made correctly ? However, could you point what's done wrong ? How come that
Perl symbols are resolved correctly and httpd symbols are not ? In my view,
both are specified in the same way in ld flags. 

Also, /usr/local/lib/perl5/5.6.0/aix/CORE/perl.exp starts with "#!", but
/usr/local/apache/libexec/httpd.exp starts with "#! .". I remember Jens
writing something about those in comp.os.aix ? 

Also, about my thought that there might be problems with my gcc and ld, 

>Shared C libraries can be build independent uponn compiler using the ld
>command, so no problem here I suppose. The only standing issue is that
>gcc does not know automatically which options to pass to the linker, so
>build procedures for AIX that were designed for the IBM C compiler need
>tweaking with -Xlinker options for any -b* options.

grep Xlinker Makefile gives

CCDLFLAGS = -Xlinker -bE:/usr/local/lib/perl5/5.6.0/aix/CORE/perl.exp

However, this flag and CC is not used in the linking of embperl. Instead LD
and LDDLFLAGS is used.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to