>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]