Rafael Garcia-Suarez wrote:
I can't build Apache::SubProcess 0.03 on AIX 5.2 with perl 5.8.2,
mod_perl 1.29 and apache 1.3.29. The error (pasted below) puzzles me ;
any clues ?


$ make cp SubProcess.pm blib/lib/Apache/SubProcess.pm
/opt/hexaflux/perl/bin/perl -e 'use ExtUtils::Mksymlists; Mksymlists("NAME" => "Apache::SubProcess", "DL_FUNCS" => { }, "FUNCLIST" => [], "DL_VARS" => []);'
/opt/hexaflux/perl/bin/perl /opt/hexaflux/perl/lib/5.8.2/ExtUtils/xsubpp -typemap /opt/hexaflux/perl/lib/5.8.2/ExtUtils/typemap -typemap /opt/hexaflux/perl/lib/site_perl/5.8.2/aix/auto/Apache/typemap SubProcess.xs > SubProcess.xsc && mv SubProcess.xsc SubProcess.c
cc -c -I/opt/hexaflux/perl/lib/site_perl/5.8.2/aix/auto/Apache/include -I/opt/hexaflux/perl/lib/site_perl/5.8.2/aix/auto/Apache/include/modules/perl -I/opt/hexaflux/perl/lib/site_perl/5.8.2/aix/auto/Apache/include/include -I/opt/hexaflux/perl/lib/site_perl/5.8.2/aix/auto/Apache/include/regex -I/opt/hexaflux/perl/lib/site_perl/5.8.2/aix/auto/Apache/include/os/unix -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias -DUSE_NATIVE_DLOPEN -DNO_LOCALE -q32 -D_LARGE_FILES -qlonglong -O -DVERSION=\"0.03\" -DXS_VERSION=\"0.03\" "-I/opt/hexaflux/perl/lib/5.8.2/aix/CORE" -g SubProcess.c
"SubProcess.xs", line 15.28: 1506-280 (W) Function argument assignment between types "struct _PerlIO**" and "struct {...}*" is not allowed.
"SubProcess.xs", line 19.18: 1506-068 (W) Operation between types "struct {...}*" and "struct _PerlIO**" is not allowed.
"SubProcess.xs", line 36.26: 1506-068 (W) Operation between types "struct _PerlIO**" and "struct {...}*" is not allowed.
"SubProcess.xs", line 40.26: 1506-068 (W) Operation between types "struct _PerlIO**" and "struct {...}*" is not allowed.
"SubProcess.xs", line 137.25: 1506-280 (W) Function argument assignment between types "struct {...}*" and "struct _PerlIO**" is not allowed.
Running Mkbootstrap for Apache::SubProcess ()

It seems that that module needs to be updated to support 5.8.x IO, I get similar problems:


perl-5.8.2 Makefile.PL && make
Writing Makefile for Apache::SubProcess
cc -c -I/home/stas/perl/5.8.2/lib/site_perl/5.8.2/i686-linux/auto/Apache/include -I/home/stas/perl/5.8.2/lib/site_perl/5.8.2/i686-linux/auto/Apache/include/modules/perl -I/home/stas/perl/5.8.2/lib/site_perl/5.8.2/i686-linux/auto/Apache/include/include -I/home/stas/perl/5.8.2/lib/site_perl/5.8.2/i686-linux/auto/Apache/include/regex -I/home/stas/perl/5.8.2/lib/site_perl/5.8.2/i686-linux/auto/Apache/include/os/unix -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -g -DVERSION=\"0.03\" -DXS_VERSION=\"0.03\" -fpic "-I/home/stas/perl/5.8.2/lib/5.8.2/i686-linux/CORE" -g SubProcess.c
SubProcess.xs: In function `io_dup':
SubProcess.xs:15: warning: passing arg 1 of `Perl_PerlIO_fileno' from incompatible pointer type
SubProcess.xs:19: warning: assignment from incompatible pointer type
SubProcess.xs: In function `io_hook':
SubProcess.xs:36: warning: assignment from incompatible pointer type
SubProcess.xs:40: warning: assignment from incompatible pointer type
SubProcess.xs: In function `XS_Apache_pfclose':
SubProcess.xs:137: warning: passing arg 2 of `ap_pfclose' from incompatible pointer type
Running Mkbootstrap for Apache::SubProcess ()
chmod 644 SubProcess.bs
rm -f blib/arch/auto/Apache/SubProcess/SubProcess.so
LD_RUN_PATH="" cc -shared -L/usr/local/lib SubProcess.o -o blib/arch/auto/Apache/SubProcess/SubProcess.so
chmod 755 blib/arch/auto/Apache/SubProcess/SubProcess.so
cp SubProcess.bs blib/arch/auto/Apache/SubProcess/SubProcess.bs
chmod 644 blib/arch/auto/Apache/SubProcess/SubProcess.bs


It builds fine with 5.6.x. I ported it to mp2 (it's now part of the core), so I guess parts can be re-used from there. I had to reimplement the IO part for 5.8+.

chmod 644 SubProcess.bs
rm -f blib/arch/auto/Apache/SubProcess/SubProcess.so
LD_RUN_PATH="" ld -bhalt:4 -bM:SRE -bI:/opt/hexaflux/perl/lib/5.8.2/aix/CORE/perl.exp -bE:SubProcess.exp -bnoentry -lc SubProcess.o -o blib/arch/auto/Apache/SubProcess/SubProcess.so ld: 0711-317 ERROR: Undefined symbol: .sv2request_rec
ld: 0711-317 ERROR: Undefined symbol: .ap_cleanup_for_exec
ld: 0711-317 ERROR: Undefined symbol: .ap_pfclose
ld: 0711-317 ERROR: Undefined symbol: .ap_create_environment
ld: 0711-317 ERROR: Undefined symbol: .ap_error_log2stderr
ld: 0711-317 ERROR: Undefined symbol: .ap_call_exec
ld: 0711-317 ERROR: Undefined symbol: .ap_log_error
ld: 0711-317 ERROR: Undefined symbol: .ap_pcalloc
ld: 0711-317 ERROR: Undefined symbol: .ap_spawn_child
ld: 0711-317 ERROR: Undefined symbol: .perl_bless_request_rec
ld: 0711-317 ERROR: Undefined symbol: .perl_eval_ok
ld: 0711-317 ERROR: Undefined symbol: .mod_perl_gensym
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make: The error code from the last command is 8.

Seems like it's trying to resolve symbols at linking time. (I think AIX always does)


You either need to tell it to ignore any linking problems by adding this linker flag:

-berok # I think you don't need -Wl, prefix as your uses ld directly

and hope that it'll resolve everything at the loading time, or give it the path to the symbol table export lists:

         -bI:$path/httpd.exp
         -bI:$path/modperl.exp

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


-- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html



Reply via email to