On 2/11/2013 4:54 AM, Jan Kaluža wrote: > On 02/08/2013 04:39 PM, Kevin A. McGrail wrote: >> Following Jan's advice, I had to add this to ParseSource.pm >> >> + 'APACHE_HTTP_VHOST_H', #c-scan chokes on http_host.h >> + 'H_PERL', #"" >> >> That got me this far... > > Have you applied all my patches? This particular problem looks like > the one I've fixed in this patch: > > http://jkaluza.fedorapeople.org/mod_perl/0027-Do-no-cscan-expat-and-byteswap.patch > Definitely. I've intimately studied your patches and my notes above for ParseSource.pm are in addition to your patch based on feedback you've given previously. > If you have applied this patch and the problem is still there, you > have to grep /usr/include to find out which header declares > "XML_ParserCreate_MM", check the #ifdef guard in that file and add it > to ParseSource.pm as it's done for Expat in path 0027, so > source_scan.pl won't try to parse that header file. Unfortunately, the header for XML_ParserCreate_MM is expat.h which Expat_INCLUDED is already the purpose of your 0027 patch. So that's leaves me at this error: make source_scan /usr/local/perl-5.14/bin/perl build/source_scan.pl Expecting parenth after identifier in `const XML_Memory_Handling_Suite *memsuite' after `const XML_Memory_Handling_Suite ' at lib/ModPerl/CScan.pm line 895. at lib/ModPerl/CScan.pm line 895 ModPerl::CScan::do_declaration1('const XML_Memory_Handling_Suite *memsuite', 'HASH(0x35082e8)', 'HASH(0x34e3e20)', 1) called at lib/ModPerl/CScan.pm line 846 ModPerl::CScan::do_declaration('XML_Parser\x{a}XML_ParserCreate_MM(const XML_Char *encoding,\x{a} ...', 'HASH(0x35082e8)', 'HASH(0x34e3e20)') called at lib/ModPerl/CScan.pm line 764 ModPerl::CScan::do_declarations('ARRAY(0x34cdba0)', 'HASH(0x35082e8)', 'HASH(0x34e3e20)') called at /usr/local/perl-5.14/lib/site_perl/5.14.2/Data/Flow.pm line 93 Data::Flow::request('Apache2::ParseSource::Scan=ARRAY(0x34d8de0)', 'parsed_fdecls') called at /usr/local/perl-5.14/lib/site_perl/5.14.2/Data/Flow.pm line 46 Data::Flow::get('Apache2::ParseSource::Scan=ARRAY(0x34d8de0)', 'parsed_fdecls') called at lib/Apache2/ParseSource.pm line 68 Apache2::ParseSource::Scan::get('Apache2::ParseSource::Scan=ARRAY(0x34d8de0)', 'parsed_fdecls') called at lib/Apache2/ParseSource.pm line 410 Apache2::ParseSource::get_functions('Apache2::ParseSource=HASH(0x349cf00)') called at lib/Apache2/ParseSource.pm line 508 Apache2::ParseSource::write_functions_pm('Apache2::ParseSource=HASH(0x349cf00)') called at build/source_scan.pl line 18 make: *** [source_scan] Error 255 If I go further, I start to spiral a lot of exclusions that seemed to be modperl includes themselves which just seems messed up... I'm guessing perhaps there is a hard-coded exclusion somewhere by path or something because all of these MOD_PERL exclusions seem ridiculous... make source_scan /usr/local/perl-5.14/bin/perl build/source_scan.pl Expecting parenth after identifier in `pTHX_ request_rec *r' after `pTHX_ ' at lib/ModPerl/CScan.pm line 895. at lib/ModPerl/CScan.pm line 895 ModPerl::CScan::do_declaration1('pTHX_ request_rec *r', 'HASH(0x258c420)', 'HASH(0x2567f28)', 0) called at lib/ModPerl/CScan.pm line 846 ModPerl::CScan::do_declaration('apr_status_t modperl_config_request_cleanup(pTHX_ request_rec...', 'HASH(0x258c420)', 'HASH(0x2567f28)') called at lib/ModPerl/CScan.pm line 764 ModPerl::CScan::do_declarations('ARRAY(0x2551e88)', 'HASH(0x258c420)', 'HASH(0x2567f28)') called at /usr/local/perl-5.14/lib/site_perl/5.14.2/Data/Flow.pm line 93 Data::Flow::request('Apache2::ParseSource::Scan=ARRAY(0x255ce48)', 'parsed_fdecls') called at /usr/local/perl-5.14/lib/site_perl/5.14.2/Data/Flow.pm line 46 Data::Flow::get('Apache2::ParseSource::Scan=ARRAY(0x255ce48)', 'parsed_fdecls') called at lib/Apache2/ParseSource.pm line 68 Apache2::ParseSource::Scan::get('Apache2::ParseSource::Scan=ARRAY(0x255ce48)', 'parsed_fdecls') called at lib/Apache2/ParseSource.pm line 421 Apache2::ParseSource::get_functions('Apache2::ParseSource=HASH(0x25211d8)') called at lib/Apache2/ParseSource.pm line 519 Apache2::ParseSource::write_functions_pm('Apache2::ParseSource=HASH(0x25211d8)') called at build/source_scan.pl line 18 make: *** [source_scan] Error 255 Index: lib/Apache2/ParseSource.pm =================================================================== --- lib/Apache2/ParseSource.pm (revision 1) +++ lib/Apache2/ParseSource.pm (working copy) @@ -75,8 +75,27 @@ '_NETINET_TCP_H', #c-scan chokes on netinet/tcp.h '_BYTESWAP_H', #c-scan chokes on byteswap.h '_BITS_BYTESWAP_H', #c-scan chokes on byteswap.h - 'Expat_INCLUDED', #c-scan chokes on expath.h + 'Expat_INCLUDED', #c-scan chokes on expat.h + 'XmlParse_INCLUDED', #c-scan chokes on /usr/local/apache2/include/expat.h + 'APACHE_HTTP_VHOST_H', #c-scan chokes on http_vhost.h + 'H_PERL', #c-scan chokes on perl.h # 'APR_OPTIONAL_H', #c-scan chokes on apr_optional.h + 'MODPERL_ERROR_H', #c-scan chokes on modperl_error.h + 'MODPERL_FLAGS_H', #c-scan chokes on modperl_flags.h + 'MODPERL_PERL_GLOBAL_H', #c-scan chokes on modperl_perl_global.h + 'MODPERL_SYS_H', + 'MODPERL_CONSTANTS_H', + 'MODPERL_COMMON_UTIL_H', + 'MODPERL_PERL_H', + 'MODPERL_CONST_H', + 'MODPERL_UTIL_H', + 'MODPERL_IO_H', + 'MODPERL_CONFIG_H', + 'MODPERL_HANDLER_H', + 'MODPERL_CALLBACK_H', + 'USE_ITHREADS', + 'MODPERL_INTERP_H', + 'MODPERL_IO_APACHE_H', 'apr_table_do_callback_fn_t=void', #c-scan chokes on function pointers ); > This way of building is not right, because it really depends on all > headers you have installed in your system and in the order in which > they are included. > > For the proper fix, see below. It makes sense to me both to create a 2.4 version and the idea re: source_scan.pl > >> Overall, I think the concept that things should be forked to a new 2.4 >> mod_perl is best because if it's backwards compatibility that's holding >> things back, I'd rather lose that. I'm currently building on a devel >> box running on CentOS 6.2. > > This is what we should do I think. If we decide to have two branches > (one for 2.2 and one for 2.4), we can run source_scan.pl on properly > configured system and commit the code generated by that script. I > think this is how 2.2 mod_perl was initially created by > source_scan.pl. After that, users who want to compile mod_perl don't > have to run source_scan.pl themselves and lot of compilation problems > like the one you have will go away. Based on previous mod_perl 2's fork that was needed for apache httpd 2.X, I think we need to do this. Anything else is likely to hold up the process. And yes, I think this is what was done because until I started working with 2.4, I had never run source_scan.pl. The files are also tagged that distributions don't need them as they are for mp developers. I'll keep working on 2.4 support and getting AuthenDBI working! Regards, KAM