-JD.
At 5:02 PM -0500 3/3/03, Priest, Darryl - BALTO wrote:
#> I got the new CVS version applied the patch and I got a bit further # #good, I've committed that patch. # #>, but #> it's still dying with: #> #> cd "src/modules/perl" && make -f Makefile.modperl #> rm -f mod_perl.so #> ld -bhalt:4 -bM:SRE #> -bI:/usr/local/perl5.8.0/lib/5.8.0/aix/CORE/perl.exp -bE:mod_perl.exp #> -bnoentry -lc -L/usr/local/lib mod_perl.lo modperl_interp.lo #> modperl_tipool.lo modperl_log.lo modperl_config.lo modperl_cmd.lo #> modperl_options.lo modperl_callback.lo modperl_handler.lo modperl_gtop.lo #> modperl_util.lo modperl_io.lo modperl_filter.lo modperl_bucket.lo #> modperl_mgv.lo modperl_pcw.lo modperl_global.lo modperl_env.lo #> modperl_cgi.lo modperl_perl.lo modperl_perl_global.lo modperl_perl_pp.lo #> modperl_sys.lo modperl_module.lo modperl_svptr_table.lo modperl_const.lo #> modperl_constants.lo modperl_hooks.lo modperl_directives.lo modperl_flags.lo #> modperl_xsinit.lo -bE:/usr/local/perl5.8.0/lib/5.8.0/aix/CORE/perl.exp #> -brtl -L/usr/local/lib -b32 #> /usr/local/perl5.8.0/lib/5.8.0/aix/auto/DynaLoader/DynaLoader.a #> -L/usr/local/perl5.8.0/lib/5.8.0/aix/CORE -lperl -lbind -lnsl -ldl -lld -lm #> -lc -lcrypt -lbsd -lPW -o mod_perl.so #> ld: 0706-004 Cannot find or read export file: mod_perl.exp #> ld:accessx(): A file or directory in the path name does not exist. #> make: 1254-004 The error code from the last command is 255. # #> To get that far, in the src/modules/perl/Makefile.modperl I added #> definitions for BASEEXT and PERL_INC, as copied from modperl-2.0/Makefile, #> as shown below, since they were missing. # #why would you need them? I mean what was the error that you had to add them?
Without PERL_INC I got this error:
ld -bhalt:4 -bM:SRE -bI:/perl.exp -bE:.exp -bnoentry -lc -L/usr/local/lib mod_perl.lo modperl_interp.lo modperl_tipool.lo modperl_log.lo modperl_config.lo modperl_cmd.lo modperl_options.lo modperl_callback.lo modperl_handler.lo modperl_gtop.lo modperl_util.lo modperl_io.lo modperl_filter.lo modperl_bucket.lo modperl_mgv.lo modperl_pcw.lo modperl_global.lo modperl_env.lo modperl_cgi.lo modperl_perl.lo modperl_perl_global.lo modperl_perl_pp.lo modperl_sys.lo modperl_module.lo modperl_svptr_table.lo modperl_const.lo modperl_constants.lo modperl_hooks.lo modperl_directives.lo modperl_flags.lo modperl_xsinit.lo -bE:/usr/local/perl5.8.0/lib/5.8.0/aix/CORE/perl.exp -brtl -L/usr/local/lib -b32 /usr/local/perl5.8.0/lib/5.8.0/aix/auto/DynaLoader/DynaLoader.a -L/usr/local/perl5.8.0/lib/5.8.0/aix/CORE -lperl -lbind -lnsl -ldl -lld -lm -lc -lcrypt -lbsd -lPW -o mod_perl.so ld: 0706-003 Cannot find or read import file: /perl.exp ld:accessx(): A file or directory in the path name does not exist. ld: 0706-004 Cannot find or read export file: .exp ld:accessx(): A file or directory in the path name does not exist. make: 1254-004 The error code from the last command is 255.
So, I looked at the -bI:/perl.exp and looked at the Makefile.modperl and saw that it referenced PERL_INC, which didn't appear to be defined, although it was referenced, after setting it to PERL_INC = /usr/local/perl5.8.0/lib/5.8.0/aix/CORE and got this error next:
ld -bhalt:4 -bM:SRE -bI:/usr/local/perl5.8.0/lib/5.8.0/aix/CORE/perl.exp -bE:.exp -bnoentry -lc -L/usr/local/lib mod_perl.lo modperl_interp.lo modperl_tipool.lo modperl_log.lo modperl_config.lo modperl_cmd.lo modperl_options.lo modperl_callback.lo modperl_handler.lo modperl_gtop.lo modperl_util.lo modperl_io.lo modperl_filter.lo modperl_bucket.lo modperl_mgv.lo modperl_pcw.lo modperl_global.lo modperl_env.lo modperl_cgi.lo modperl_perl.lo modperl_perl_global.lo modperl_perl_pp.lo modperl_sys.lo modperl_module.lo modperl_svptr_table.lo modperl_const.lo modperl_constants.lo modperl_hooks.lo modperl_directives.lo modperl_flags.lo modperl_xsinit.lo -bE:/usr/local/perl5.8.0/lib/5.8.0/aix/CORE/perl.exp -brtl -L/usr/local/lib -b32 /usr/local/perl5.8.0/lib/5.8.0/aix/auto/DynaLoader/DynaLoader.a -L/usr/local/perl5.8.0/lib/5.8.0/aix/CORE -lperl -lbind -lnsl -ldl -lld -lm -lc -lcrypt -lbsd -lPW -o mod_perl.so ld: 0706-004 Cannot find or read export file: .exp ld:accessx(): A file or directory in the path name does not exist. make: 1254-004 The error code from the last command is 255.
Noticed -bE:.exp and looked in the makefile for where that was coming from, which led me to set BASEEXT = mod_perl since it was defined in Makefile.modperl but was referenced. Which led a bit further but still without success.
# #> BASEEXT = mod_perl # #what if you replace it with # #BASEEXT = modperl
I actually have a mod_perl.exp in /tmp/modperl-2.0 and if I point at that one or at an empty mod_perl.exp or modperl.exp I get further on to a new error:
LD_RUN_PATH="" ld -bhalt:4 -bM:SRE -bI:/usr/local/perl5.8.0/lib/5.8.0/aix/CORE/perl.exp -bE:Base64.exp -bnoentry -lc -L/usr/local/lib Base64.o -o .../../../blib/arch/auto/APR/Base64/Base64.so ld: 0711-317 ERROR: Undefined symbol: .apr_base64_encode_len ld: 0711-317 ERROR: Undefined symbol: .apr_base64_decode_len ld: 0711-317 ERROR: Undefined symbol: .apr_base64_decode_binary ld: 0711-317 ERROR: Undefined symbol: .apr_base64_encode_binary ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
Those symbols exists in ./xs/apache_global.exp and the Base64.exp in WrapXS/APR/Base64 contains just one line: boot_APR__Base64
So, not being any kind of C programmer at all, I'm sort of stuck.
# #In any case, AIX seems to be a special case, and without having an access to #it it's hard to debug the problem. So if you can debug what happens in the #function write_export_file() in lib/ModPerl/WrapXS.pm (where the exp files are #generated) and either it's a problem of the exp file not being generated or
#just not being found. #
With my limited knowledge of what's really going on here, it appears to me that the .exp files are being generated, just not in the places AIX expects them to be? I tried to verify that write_export_file was writing all the items it found and I didn't find anything that wasn't being written and as I said above the symbols that are "missing" are in another file.
I'm happy to try any suggestions that you may have to get through this.
#Apparently, the exp files are needed only for AIX. Though currently generated #for all, and I can see only these: #../xs/apache_global.exp #../xs/apache_inline.exp #../xs/apache_ithreads.exp #../xs/modperl_global.exp #../xs/modperl_inline.exp #../xs/modperl_ithreads.exp
I have: -rw-r--r-- 1 root system 17397 Mar 03 16:02 ./xs/apache_global.exp -rw-r--r-- 1 root system 3 Mar 03 16:02 ./xs/apache_inline.exp -rw-r--r-- 1 root system 3 Mar 03 16:02 ../xs/apache_ithreads.exp -rw-r--r-- 1 root system 5917 Mar 03 16:02 ../xs/modperl_global.exp -rw-r--r-- 1 root system 609 Mar 03 16:02 ../xs/modperl_inline.exp -rw-r--r-- 1 root system 840 Mar 03 16:02 ../xs/modperl_ithreads.exp -rw-r--r-- 1 root system 18 Mar 03 16:28 ../WrapXS/APR/Base64/Base64.exp -rw-r--r-- 1 root system 10 Mar 03 16:28 ./WrapXS/APR/APR.exp -rw-r--r-- 1 root system 22 Mar 03 16:28 ./WrapXS/WrapXS.exp -rw-r--r-- 1 root system 15 Mar 03 16:28 ./mod_perl.exp
Plus, the empty ones I created: -rw-r--r-- 1 root system 0 Mar 03 16:09 ../src/modules/perl/perl.exp -rw-r--r-- 1 root system 0 Mar 01 15:09 ../src/modules/perl/modperl.exp
# #what if you create an empty mod_perl.exp in src/modules/perl? # #> PERL_INC = /usr/local/perl5.8.0/lib/5.8.0/aix/CORE # #Thanks.
__________________________________________________________________ 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
____________________________________________________________________________ The information contained in this communication may be confidential, is intended only for the use of the recipient named above, and may be legally privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this communication, or any of its contents, is strictly prohibited. If you have received this communication in error, please re-send this communication to the sender and delete the original message and any copy of it from your computer system. Thank you.
For more information please visit us at http://www.piperrudnick.com ____________________________________________________________________________