I am building a new server (FreeBSD 4.8-RELEASE) and wanted to get mod_perl2 working. If I use the /usr/ports/www/mod_perl2 and /usr/ports/lang/perl5.8, I can build mod_perl and it works like a charm. However, nothing I do with with Perl5.8.1_rc5 works.
With the mod_perl2 CVS, I get this error:
modperl_filter.c: In function `modperl_run_filter_init': modperl_filter.c:363: syntax error before `extern' modperl_filter.c: In function `modperl_run_filter': modperl_filter.c:435: syntax error before `extern'
Both of those lines are MP_dINTERP_PUTBACK(interp) and I get lost in a maze of #define's. :~(
Yup, I know, Carl has reported this earlier, but never followed up on my suggestion. Please try this patch:
Index: src/modules/perl/modperl_filter.c =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_filter.c,v retrieving revision 1.68 diff -u -r1.68 modperl_filter.c --- src/modules/perl/modperl_filter.c 18 Sep 2003 07:34:21 -0000 1.68 +++ src/modules/perl/modperl_filter.c 23 Sep 2003 18:39:45 -0000 @@ -360,7 +360,9 @@
SvREFCNT_dec((SV*)args);
+#ifdef USE_ITHREADS MP_dINTERP_PUTBACK(interp); +#endif
MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT "return: %d\n", handler->name, status); @@ -432,7 +434,9 @@ MP_FAILURE_CROAK(modperl_output_filter_flush(filter)); }
+#ifdef USE_ITHREADS MP_dINTERP_PUTBACK(interp); +#endif
MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT "return: %d\n", handler->name, status);
With mod_perl-2.0-current.tar.gz from one of the mirrors, or with the FreeBSD port, I get this:
...lots of successful compilations...
rm -f mod_perl.so
ld -shared -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 -Wl,-E -L/usr/local/lib /usr/local/lib/perl5/5.8.1/mach/auto/DynaLoader/DynaLoader.a -L/usr/local/lib/perl5/5.8.1/mach/CORE -lperl -lm -lcrypt -lutil -lc -o mod_perl.so
/usr/libexec/elf/ld: unrecognized option '-Wl,-E'
/usr/libexec/elf/ld: use the --help option for usage information
because the -Wl is the cc option that should have been stripped before passing the -E to ld. :~(
Yup, that's a known issue, caused by a recent change in MakeMaker and fixed in the mp2 cvs. You can probably fix it in 1.99_09 with this patch:
http://marc.theaimsgroup.com/?l=apache-modperl-cvs&m=106390946300985&w=2
__________________________________________________________________ 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