Re: Trunk: APR.so won't load

2015-04-14 Thread Jie Gao
Hi Steve

Yes, I applied the AP_DEBUG patch.

Regards,

Jie 

* Steve Hay steve.m@googlemail.com wrote:

 Date: Tue, 14 Apr 2015 08:32:29 +0100
 From: Steve Hay steve.m@googlemail.com
 To: Jie Gao j@sydney.edu.au
 CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
  d...@perl.apache.org
 Subject: Re: Trunk: APR.so won't load
 
 That's great news! Was that with the AP_DEBUG patch to
 lib/Apache2/Build.pm that I posted last time, or did it just work
 without that anyway?
 
 On 14 April 2015 at 05:13, Jie Gao j@sydney.edu.au wrote:
  Hi Steve
 
  I got the src from trunk again and rebuilt httpd with
  --enable-maintainer-mode, just as you requested, and make test
  passed with my module!
 
  Didn't have to fiddle with httpd.conf as slotmem_shm_module wasn't
  commented out this time for some reason.
 
  Still had this when running make test with mod_perl:
 
  t/perl/ithreads3.t .. 1/6 # Failed test 3 in 
  t/perl/ithreads3.t at line 32
  # Failed test 4 in t/perl/ithreads3.t at line 33
  # Failed test 5 in t/perl/ithreads3.t at line 35
  t/perl/ithreads3.t .. Failed 3/6 subtests
 
  Thanks very much for your help!
 
 
  Regards,
 
  Jie
 
  * Steve Hay steve.m@googlemail.com wrote:
 
  Date: Mon, 13 Apr 2015 09:18:50 +0100
  From: Steve Hay steve.m@googlemail.com
  To: Jie Gao j@sydney.edu.au
  CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
   d...@perl.apache.org
  Subject: Re: Trunk: APR.so won't load
 
  Thanks for the extra information.
 
  I think the build with --enable-maintainer-mode succeeded simply
  because it doesn't include -DAP_DEBUG; the ap_strchr change was
  probably not related.
 
  It would be nice to allow building mod_perl with a httpd built with
  --enable-maintainer-mode, and in the light of Joe's comment I think we
  simply need to remove -DAP_DEBUG from the build flags.
 
  So please could you try rebuilding again using a clean mod_perl source
  tree (i.e. revert the ap_strchr change) but with the patch below
  applied to it, and using an --enable-maintainer-mode httpd?
 
  You may still have to fiddle with slotmem_shm_module as before (sorry,
  I do not know what the problem is there) and I wouldn't expect the two
  test failures to go away either, but I'm hopeful that this build might
  at least work.
 
  Index: lib/Apache2/Build.pm
  ===
  --- lib/Apache2/Build.pm(revision 1673126)
  +++ lib/Apache2/Build.pm(working copy)
  @@ -616,6 +616,9 @@
   my $extra_cppflags = $self-apxs_extra_cppflags;
   $ccopts .=   . $extra_cppflags;
 
  +# Make sure the evil AP_DEBUG is not defined when building mod_perl
  +$ccopts =~ s/ ?-DAP_DEBUG\b//;
  +
   $ccopts;
   }
 
 
  On 13 April 2015 at 03:37, Jie Gao j@sydney.edu.au wrote:
   Hi Steve
  
   I took some time to look further into this problem:
  
   [Fri Apr 10 08:04:45.465468 2015] [proxy_balancer:emerg] [pid 19852:tid 
   140397405107968] AH01177: Failed to lookup provider 'shm' for 
   'slotmem': is mod_slotmem_shm loaded??
  
   and I found that the apache build process does not allow
   slotmem_shm_module to be loaded by default, i.e.  LoadModule 
   slotmem_shm_module modules/mod_slotmem_shm.so was commented out in
   httpd.conf.
  
   Uncommenting that line made this problem go away.
  
   At the end of the process (with Apache built without
   --enable-maintainer-mode, and with ap_strchr replaced with
   strchr, which you suggested (but may not be necessary here without
   --enable-maintainer-mode, I could load my modules successfully.
  
   There were still some errors when running make test for mod_perl:
  
  
   ...
   t/hooks/authen_digest.t . 1/7 # Failed test 4 in 
   t/hooks/authen_digest.t at line 36
   # Failed test 5 in t/hooks/authen_digest.t at line 38
   # Failed test 6 in t/hooks/authen_digest.t at line 42
   # Failed test 7 in t/hooks/authen_digest.t at line 46
   t/hooks/authen_digest.t . Failed 4/7 subtests
   ...
   t/perl/ithreads3.t .. 1/6 # Failed test 3 in 
   t/perl/ithreads3.t at line 32
   # Failed test 4 in t/perl/ithreads3.t at line 33
   # Failed test 5 in t/perl/ithreads3.t at line 35
   t/perl/ithreads3.t .. Failed 3/6 subtests
  
   Here is some more info:
  
   [12:26:07]jiegao@/usr/local/src/mod_perl:975 rm t/logs/error_log
   jiegao@/usr/local/src/mod_perl:976 t/TEST -v 
   t/hooks/authen_digest.t t/perl/ithreads3.t
   [warning] setting ulimit to allow core files
   ulimit -c unlimited; /usr/local/bin/perl 
   /usr/local/src/mod_perl-2.0/t/TEST -v 't/hooks/authen_digest.t' 
   't/perl/ithreads3.t'
   /usr/local/httpd-2.4.12/bin/httpd  -d /usr/local/src/mod_perl-2.0/t -f 
   /usr/local/src/mod_perl-2.0/t/conf/httpd.conf -D APACHE2 -D APACHE2_4 -D 
   PERL_USEITHREADS
   using Apache/2.4.12 (worker MPM)
  
   waiting

Re: Trunk: APR.so won't load

2015-04-14 Thread Steve Hay
Excellent! I guess that's fixed it then, so I will apply that patch.
Many thanks for testing.

On 14 April 2015 at 08:37, Jie Gao j@sydney.edu.au wrote:
 Hi Steve

 Yes, I applied the AP_DEBUG patch.

 Regards,

 Jie

 * Steve Hay steve.m@googlemail.com wrote:

 Date: Tue, 14 Apr 2015 08:32:29 +0100
 From: Steve Hay steve.m@googlemail.com
 To: Jie Gao j@sydney.edu.au
 CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
  d...@perl.apache.org
 Subject: Re: Trunk: APR.so won't load

 That's great news! Was that with the AP_DEBUG patch to
 lib/Apache2/Build.pm that I posted last time, or did it just work
 without that anyway?

 On 14 April 2015 at 05:13, Jie Gao j@sydney.edu.au wrote:
  Hi Steve
 
  I got the src from trunk again and rebuilt httpd with
  --enable-maintainer-mode, just as you requested, and make test
  passed with my module!
 
  Didn't have to fiddle with httpd.conf as slotmem_shm_module wasn't
  commented out this time for some reason.
 
  Still had this when running make test with mod_perl:
 
  t/perl/ithreads3.t .. 1/6 # Failed test 3 in 
  t/perl/ithreads3.t at line 32
  # Failed test 4 in t/perl/ithreads3.t at line 33
  # Failed test 5 in t/perl/ithreads3.t at line 35
  t/perl/ithreads3.t .. Failed 3/6 subtests
 
  Thanks very much for your help!
 
 
  Regards,
 
  Jie
 
  * Steve Hay steve.m@googlemail.com wrote:
 
  Date: Mon, 13 Apr 2015 09:18:50 +0100
  From: Steve Hay steve.m@googlemail.com
  To: Jie Gao j@sydney.edu.au
  CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
   d...@perl.apache.org
  Subject: Re: Trunk: APR.so won't load
 
  Thanks for the extra information.
 
  I think the build with --enable-maintainer-mode succeeded simply
  because it doesn't include -DAP_DEBUG; the ap_strchr change was
  probably not related.
 
  It would be nice to allow building mod_perl with a httpd built with
  --enable-maintainer-mode, and in the light of Joe's comment I think we
  simply need to remove -DAP_DEBUG from the build flags.
 
  So please could you try rebuilding again using a clean mod_perl source
  tree (i.e. revert the ap_strchr change) but with the patch below
  applied to it, and using an --enable-maintainer-mode httpd?
 
  You may still have to fiddle with slotmem_shm_module as before (sorry,
  I do not know what the problem is there) and I wouldn't expect the two
  test failures to go away either, but I'm hopeful that this build might
  at least work.
 
  Index: lib/Apache2/Build.pm
  ===
  --- lib/Apache2/Build.pm(revision 1673126)
  +++ lib/Apache2/Build.pm(working copy)
  @@ -616,6 +616,9 @@
   my $extra_cppflags = $self-apxs_extra_cppflags;
   $ccopts .=   . $extra_cppflags;
 
  +# Make sure the evil AP_DEBUG is not defined when building mod_perl
  +$ccopts =~ s/ ?-DAP_DEBUG\b//;
  +
   $ccopts;
   }
 
 
  On 13 April 2015 at 03:37, Jie Gao j@sydney.edu.au wrote:
   Hi Steve
  
   I took some time to look further into this problem:
  
   [Fri Apr 10 08:04:45.465468 2015] [proxy_balancer:emerg] [pid 
   19852:tid 140397405107968] AH01177: Failed to lookup provider 'shm' 
   for 'slotmem': is mod_slotmem_shm loaded??
  
   and I found that the apache build process does not allow
   slotmem_shm_module to be loaded by default, i.e.  LoadModule 
   slotmem_shm_module modules/mod_slotmem_shm.so was commented out in
   httpd.conf.
  
   Uncommenting that line made this problem go away.
  
   At the end of the process (with Apache built without
   --enable-maintainer-mode, and with ap_strchr replaced with
   strchr, which you suggested (but may not be necessary here without
   --enable-maintainer-mode, I could load my modules successfully.
  
   There were still some errors when running make test for mod_perl:
  
  
   ...
   t/hooks/authen_digest.t . 1/7 # Failed test 4 in 
   t/hooks/authen_digest.t at line 36
   # Failed test 5 in t/hooks/authen_digest.t at line 38
   # Failed test 6 in t/hooks/authen_digest.t at line 42
   # Failed test 7 in t/hooks/authen_digest.t at line 46
   t/hooks/authen_digest.t . Failed 4/7 subtests
   ...
   t/perl/ithreads3.t .. 1/6 # Failed test 3 in 
   t/perl/ithreads3.t at line 32
   # Failed test 4 in t/perl/ithreads3.t at line 33
   # Failed test 5 in t/perl/ithreads3.t at line 35
   t/perl/ithreads3.t .. Failed 3/6 subtests
  
   Here is some more info:
  
   [12:26:07]jiegao@/usr/local/src/mod_perl:975 rm t/logs/error_log
   jiegao@/usr/local/src/mod_perl:976 t/TEST -v 
   t/hooks/authen_digest.t t/perl/ithreads3.t
   [warning] setting ulimit to allow core files
   ulimit -c unlimited; /usr/local/bin/perl 
   /usr/local/src/mod_perl-2.0/t/TEST -v 't/hooks/authen_digest.t' 
   't/perl/ithreads3.t'
   /usr/local/httpd-2.4.12/bin/httpd  -d /usr/local/src/mod_perl

Re: Trunk: APR.so won't load

2015-04-14 Thread Steve Hay
That's great news! Was that with the AP_DEBUG patch to
lib/Apache2/Build.pm that I posted last time, or did it just work
without that anyway?

On 14 April 2015 at 05:13, Jie Gao j@sydney.edu.au wrote:
 Hi Steve

 I got the src from trunk again and rebuilt httpd with
 --enable-maintainer-mode, just as you requested, and make test
 passed with my module!

 Didn't have to fiddle with httpd.conf as slotmem_shm_module wasn't
 commented out this time for some reason.

 Still had this when running make test with mod_perl:

 t/perl/ithreads3.t .. 1/6 # Failed test 3 in 
 t/perl/ithreads3.t at line 32
 # Failed test 4 in t/perl/ithreads3.t at line 33
 # Failed test 5 in t/perl/ithreads3.t at line 35
 t/perl/ithreads3.t .. Failed 3/6 subtests

 Thanks very much for your help!


 Regards,

 Jie

 * Steve Hay steve.m@googlemail.com wrote:

 Date: Mon, 13 Apr 2015 09:18:50 +0100
 From: Steve Hay steve.m@googlemail.com
 To: Jie Gao j@sydney.edu.au
 CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
  d...@perl.apache.org
 Subject: Re: Trunk: APR.so won't load

 Thanks for the extra information.

 I think the build with --enable-maintainer-mode succeeded simply
 because it doesn't include -DAP_DEBUG; the ap_strchr change was
 probably not related.

 It would be nice to allow building mod_perl with a httpd built with
 --enable-maintainer-mode, and in the light of Joe's comment I think we
 simply need to remove -DAP_DEBUG from the build flags.

 So please could you try rebuilding again using a clean mod_perl source
 tree (i.e. revert the ap_strchr change) but with the patch below
 applied to it, and using an --enable-maintainer-mode httpd?

 You may still have to fiddle with slotmem_shm_module as before (sorry,
 I do not know what the problem is there) and I wouldn't expect the two
 test failures to go away either, but I'm hopeful that this build might
 at least work.

 Index: lib/Apache2/Build.pm
 ===
 --- lib/Apache2/Build.pm(revision 1673126)
 +++ lib/Apache2/Build.pm(working copy)
 @@ -616,6 +616,9 @@
  my $extra_cppflags = $self-apxs_extra_cppflags;
  $ccopts .=   . $extra_cppflags;

 +# Make sure the evil AP_DEBUG is not defined when building mod_perl
 +$ccopts =~ s/ ?-DAP_DEBUG\b//;
 +
  $ccopts;
  }


 On 13 April 2015 at 03:37, Jie Gao j@sydney.edu.au wrote:
  Hi Steve
 
  I took some time to look further into this problem:
 
  [Fri Apr 10 08:04:45.465468 2015] [proxy_balancer:emerg] [pid 19852:tid 
  140397405107968] AH01177: Failed to lookup provider 'shm' for 'slotmem': 
  is mod_slotmem_shm loaded??
 
  and I found that the apache build process does not allow
  slotmem_shm_module to be loaded by default, i.e.  LoadModule 
  slotmem_shm_module modules/mod_slotmem_shm.so was commented out in
  httpd.conf.
 
  Uncommenting that line made this problem go away.
 
  At the end of the process (with Apache built without
  --enable-maintainer-mode, and with ap_strchr replaced with
  strchr, which you suggested (but may not be necessary here without
  --enable-maintainer-mode, I could load my modules successfully.
 
  There were still some errors when running make test for mod_perl:
 
 
  ...
  t/hooks/authen_digest.t . 1/7 # Failed test 4 in 
  t/hooks/authen_digest.t at line 36
  # Failed test 5 in t/hooks/authen_digest.t at line 38
  # Failed test 6 in t/hooks/authen_digest.t at line 42
  # Failed test 7 in t/hooks/authen_digest.t at line 46
  t/hooks/authen_digest.t . Failed 4/7 subtests
  ...
  t/perl/ithreads3.t .. 1/6 # Failed test 3 in 
  t/perl/ithreads3.t at line 32
  # Failed test 4 in t/perl/ithreads3.t at line 33
  # Failed test 5 in t/perl/ithreads3.t at line 35
  t/perl/ithreads3.t .. Failed 3/6 subtests
 
  Here is some more info:
 
  [12:26:07]jiegao@/usr/local/src/mod_perl:975 rm t/logs/error_log
  jiegao@/usr/local/src/mod_perl:976 t/TEST -v t/hooks/authen_digest.t 
  t/perl/ithreads3.t
  [warning] setting ulimit to allow core files
  ulimit -c unlimited; /usr/local/bin/perl 
  /usr/local/src/mod_perl-2.0/t/TEST -v 't/hooks/authen_digest.t' 
  't/perl/ithreads3.t'
  /usr/local/httpd-2.4.12/bin/httpd  -d /usr/local/src/mod_perl-2.0/t -f 
  /usr/local/src/mod_perl-2.0/t/conf/httpd.conf -D APACHE2 -D APACHE2_4 -D 
  PERL_USEITHREADS
  using Apache/2.4.12 (worker MPM)
 
  waiting 300 seconds for server to start: .[Mon Apr 13 12:28:17.293771 
  2015] [env:warn] [pid 25085:tid 140715845183232] AH01506: PassEnv variable 
  LD_LIBRARY_PATH was undefined
  [Mon Apr 13 12:28:17.319527 2015] [perl:info] [pid 25085:tid 
  140715845183232] 6 Apache2:: modules loaded
  [Mon Apr 13 12:28:17.319576 2015] [perl:info] [pid 25085:tid 
  140715845183232] 0 APR:: modules loaded
  [Mon Apr 13 12:28:17.319633 2015] [perl:info] [pid 25085:tid 
  140715845183232] base server

Re: Trunk: APR.so won't load

2015-04-13 Thread Jie Gao
Hi Steve

I got the src from trunk again and rebuilt httpd with
--enable-maintainer-mode, just as you requested, and make test
passed with my module!

Didn't have to fiddle with httpd.conf as slotmem_shm_module wasn't
commented out this time for some reason.

Still had this when running make test with mod_perl:

t/perl/ithreads3.t .. 1/6 # Failed test 3 in 
t/perl/ithreads3.t at line 32
# Failed test 4 in t/perl/ithreads3.t at line 33
# Failed test 5 in t/perl/ithreads3.t at line 35
t/perl/ithreads3.t .. Failed 3/6 subtests 

Thanks very much for your help!


Regards,

Jie 

* Steve Hay steve.m@googlemail.com wrote:

 Date: Mon, 13 Apr 2015 09:18:50 +0100
 From: Steve Hay steve.m@googlemail.com
 To: Jie Gao j@sydney.edu.au
 CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
  d...@perl.apache.org
 Subject: Re: Trunk: APR.so won't load
 
 Thanks for the extra information.
 
 I think the build with --enable-maintainer-mode succeeded simply
 because it doesn't include -DAP_DEBUG; the ap_strchr change was
 probably not related.
 
 It would be nice to allow building mod_perl with a httpd built with
 --enable-maintainer-mode, and in the light of Joe's comment I think we
 simply need to remove -DAP_DEBUG from the build flags.
 
 So please could you try rebuilding again using a clean mod_perl source
 tree (i.e. revert the ap_strchr change) but with the patch below
 applied to it, and using an --enable-maintainer-mode httpd?
 
 You may still have to fiddle with slotmem_shm_module as before (sorry,
 I do not know what the problem is there) and I wouldn't expect the two
 test failures to go away either, but I'm hopeful that this build might
 at least work.
 
 Index: lib/Apache2/Build.pm
 ===
 --- lib/Apache2/Build.pm(revision 1673126)
 +++ lib/Apache2/Build.pm(working copy)
 @@ -616,6 +616,9 @@
  my $extra_cppflags = $self-apxs_extra_cppflags;
  $ccopts .=   . $extra_cppflags;
 
 +# Make sure the evil AP_DEBUG is not defined when building mod_perl
 +$ccopts =~ s/ ?-DAP_DEBUG\b//;
 +
  $ccopts;
  }
 
 
 On 13 April 2015 at 03:37, Jie Gao j@sydney.edu.au wrote:
  Hi Steve
 
  I took some time to look further into this problem:
 
  [Fri Apr 10 08:04:45.465468 2015] [proxy_balancer:emerg] [pid 19852:tid 
  140397405107968] AH01177: Failed to lookup provider 'shm' for 'slotmem': 
  is mod_slotmem_shm loaded??
 
  and I found that the apache build process does not allow
  slotmem_shm_module to be loaded by default, i.e.  LoadModule 
  slotmem_shm_module modules/mod_slotmem_shm.so was commented out in
  httpd.conf.
 
  Uncommenting that line made this problem go away.
 
  At the end of the process (with Apache built without
  --enable-maintainer-mode, and with ap_strchr replaced with
  strchr, which you suggested (but may not be necessary here without
  --enable-maintainer-mode, I could load my modules successfully.
 
  There were still some errors when running make test for mod_perl:
 
 
  ...
  t/hooks/authen_digest.t . 1/7 # Failed test 4 in 
  t/hooks/authen_digest.t at line 36
  # Failed test 5 in t/hooks/authen_digest.t at line 38
  # Failed test 6 in t/hooks/authen_digest.t at line 42
  # Failed test 7 in t/hooks/authen_digest.t at line 46
  t/hooks/authen_digest.t . Failed 4/7 subtests
  ...
  t/perl/ithreads3.t .. 1/6 # Failed test 3 in 
  t/perl/ithreads3.t at line 32
  # Failed test 4 in t/perl/ithreads3.t at line 33
  # Failed test 5 in t/perl/ithreads3.t at line 35
  t/perl/ithreads3.t .. Failed 3/6 subtests
 
  Here is some more info:
 
  [12:26:07]jiegao@/usr/local/src/mod_perl:975 rm t/logs/error_log
  jiegao@/usr/local/src/mod_perl:976 t/TEST -v t/hooks/authen_digest.t 
  t/perl/ithreads3.t
  [warning] setting ulimit to allow core files
  ulimit -c unlimited; /usr/local/bin/perl /usr/local/src/mod_perl-2.0/t/TEST 
  -v 't/hooks/authen_digest.t' 't/perl/ithreads3.t'
  /usr/local/httpd-2.4.12/bin/httpd  -d /usr/local/src/mod_perl-2.0/t -f 
  /usr/local/src/mod_perl-2.0/t/conf/httpd.conf -D APACHE2 -D APACHE2_4 -D 
  PERL_USEITHREADS
  using Apache/2.4.12 (worker MPM)
 
  waiting 300 seconds for server to start: .[Mon Apr 13 12:28:17.293771 2015] 
  [env:warn] [pid 25085:tid 140715845183232] AH01506: PassEnv variable 
  LD_LIBRARY_PATH was undefined
  [Mon Apr 13 12:28:17.319527 2015] [perl:info] [pid 25085:tid 
  140715845183232] 6 Apache2:: modules loaded
  [Mon Apr 13 12:28:17.319576 2015] [perl:info] [pid 25085:tid 
  140715845183232] 0 APR:: modules loaded
  [Mon Apr 13 12:28:17.319633 2015] [perl:info] [pid 25085:tid 
  140715845183232] base server + 32 vhosts ready to run tests
  ...
  waiting 300 seconds for server to start: ok (waited 2 secs)
  server localhost:8529 started
  server localhost:8530 listening (filter_out_apache)
  server localhost:8531

Re: Trunk: APR.so won't load

2015-04-13 Thread Steve Hay
 (no directives)
 [Mon Apr 13 12:28:22.021608 2015] [authz_core:debug] [pid 25093:tid 
 140715476645632] mod_authz_core.c(835): [client 127.0.0.1:47870] AH01628: 
 authorization result: granted (no directives)
 [Mon Apr 13 12:28:22.024982 2015] [authz_core:debug] [pid 25093:tid 
 140715554629376] mod_authz_core.c(835): [client 127.0.0.1:47871] AH01628: 
 authorization result: granted (no directives)
 [Mon Apr 13 12:28:22.028020 2015] [authz_core:debug] [pid 25093:tid 
 140715476645632] mod_authz_core.c(835): [client 127.0.0.1:47872] AH01628: 
 authorization result: granted (no directives)
 [Mon Apr 13 12:28:22.030287 2015] [authz_core:debug] [pid 25093:tid 
 140715554629376] mod_authz_core.c(835): [client 127.0.0.1:47873] AH01628: 
 authorization result: granted (no directives)
 [Mon Apr 13 12:28:22.030435 2015] [authz_core:debug] [pid 25093:tid 
 140715554629376] mod_authz_core.c(835): [client 127.0.0.1:47873] AH01628: 
 authorization result: granted (no directives)
 [Mon Apr 13 12:28:22.246706 2015] [perl:info] [pid 25093:tid 140715845183232] 
 Child process pid=25093 is exiting
 [Mon Apr 13 12:28:22.246890 2015] [perl:info] [pid 25093:tid 140715845183232] 
 Child process pid=25093 is exiting - server push
 END in modperl_extra.pl, pid=25093
 END in modperl_extra.pl, pid=25093
 [Mon Apr 13 12:28:23.591699 2015] [core:info] [pid 25089:tid 140715845183232] 
 AH00096: removed PID file /usr/local/src/mod_perl-2.0/t/logs/httpd.pid 
 (pid=25089)
 [Mon Apr 13 12:28:23.591818 2015] [mpm_worker:notice] [pid 25089:tid 
 140715845183232] AH00295: caught SIGTERM, shutting down
 
 *** This is a test for Apache2::ServerUtil::server_shutdown_cleanup_register 
 ***
 *** Following a line consisting only of * characters there should be a line  
 ***
 *** containing   
 ***
 *** cleanup died: testing server_shutdown_cleanup_register.
 ***
 *** The next line should then read   
 ***
 *** done with server_shutdown_cleanup_register 
 ***
 
 Apache2::ServerUtil: cleanup died: testing server_shutdown_cleanup_register
 *** done with server_shutdown_cleanup_register   
 ***
 
 END in modperl_extra.pl, pid=25089
 END in modperl_extra.pl, pid=25089

 BTW, you can install VirtualBox on your Windows machine and have a linux 
 virtual server for testing.



 Regards,


 Jie

 * Jie Gao j@sydney.edu.au wrote:

 Date: Fri, 10 Apr 2015 12:02:05 +1000
 From: Jie Gao j@sydney.edu.au
 To: Steve Hay steve.m@googlemail.com
 CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
  d...@perl.apache.org
 Subject: Re: Trunk: APR.so won't load
 User-Agent: Mutt/1.5.21 (2010-09-15)

 Hi Steve

 I modified xs/Apache2/Module/Apache2__Module.h and replaced ap_strchr with
 strchr before recompiling.  I still got the same error message after that.

 I re-compiled apache without enabling the maintainer mode:

 ---
 CC=gcc; export CC
 CFLAGS=-Wall -O3; export CFLAGS
 ./configure \
 --prefix=/usr/local/httpd-2.4.12 \
 --with-included-apr \
 --with-mpm=worker \
 --enable-auth-digest \
 --enable-dav \
 --enable-expires \
 --enable-headers \
 --enable-proxy-html \
 --enable-xml2enc \
 --enable-info \
 --enable-mime-magic \
 --enable-nonportable-atomics \
 --enable-proxy \
 --enable-proxy-balancer \
 --enable-proxy-http \
 --enable-rewrite \
 --enable-so \
 --enable-ssl \
 --enable-unique-id \
 --enable-vhost-alias \
 --enable-modules=most \
 --enable-mods-shared=most \
 --enable-lbmethod-byrequests \
 --enable-lbmethod-bytraffic \
 --enable-lbmethod-bybusyness \
 --enable-lbmethod-heartbeat \
 --enable-heartmonitor \
 --enable-watchdog \
 --enable-ratelimit \
 --enable-ext-filter \
 --enable-request \
 CC=gcc \
 CFLAGS=-Wall -O3 \
 $@
 ---

 and got mod_perl source code from Trunk again. mod_perl then fails make 
 test early on:

 ---
 [warning] setting ulimit to allow core files
 ulimit -c unlimited; /usr/local/bin/perl 
 /usr/local/src/mod_perl-2.0_20150310_0709/t/TEST -clean
 APACHE_TEST_APXS= APACHE_TEST_PORT= APACHE_TEST_HTTPD= APACHE_TEST_GROUP= 
 APACHE_TEST_USER= \
 /usr/local/bin/perl -Iblib/arch -Iblib/lib \
 t/TEST -bugreport -verbose=0
 [warning] setting ulimit to allow core files
 ulimit -c unlimited; /usr/local/bin/perl 
 /usr/local/src/mod_perl-2.0_20150310_0709/t/TEST -bugreport -verbose=0
 /usr/local/httpd-2.4.12/bin/httpd  -d 
 /usr/local/src/mod_perl-2.0_20150310_0709/t -f 
 /usr/local/src/mod_perl-2.0_20150310_0709/t/conf/httpd.conf -D APACHE2 -D 
 PERL_USEITHREADS
 using Apache/2.4.12 (worker MPM)

 waiting 300 seconds for server to start: .[Fri Apr 10 08:04:42.875770 2015] 
 [env:warn] [pid 19848

Re: Trunk: APR.so won't load

2015-04-12 Thread Jie Gao
   ***
*** cleanup died: testing server_shutdown_cleanup_register.***
*** The next line should then read   ***
*** done with server_shutdown_cleanup_register ***

Apache2::ServerUtil: cleanup died: testing server_shutdown_cleanup_register
*** done with server_shutdown_cleanup_register   ***

END in modperl_extra.pl, pid=25089
END in modperl_extra.pl, pid=25089

BTW, you can install VirtualBox on your Windows machine and have a linux 
virtual server for testing.



Regards,


Jie 

* Jie Gao j@sydney.edu.au wrote:

 Date: Fri, 10 Apr 2015 12:02:05 +1000
 From: Jie Gao j@sydney.edu.au
 To: Steve Hay steve.m@googlemail.com
 CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
  d...@perl.apache.org
 Subject: Re: Trunk: APR.so won't load
 User-Agent: Mutt/1.5.21 (2010-09-15)
 
 Hi Steve
 
 I modified xs/Apache2/Module/Apache2__Module.h and replaced ap_strchr with
 strchr before recompiling.  I still got the same error message after that.
 
 I re-compiled apache without enabling the maintainer mode:
 
 ---
 CC=gcc; export CC
 CFLAGS=-Wall -O3; export CFLAGS
 ./configure \
 --prefix=/usr/local/httpd-2.4.12 \
 --with-included-apr \
 --with-mpm=worker \
 --enable-auth-digest \
 --enable-dav \
 --enable-expires \
 --enable-headers \
 --enable-proxy-html \
 --enable-xml2enc \
 --enable-info \
 --enable-mime-magic \
 --enable-nonportable-atomics \
 --enable-proxy \
 --enable-proxy-balancer \
 --enable-proxy-http \
 --enable-rewrite \
 --enable-so \
 --enable-ssl \
 --enable-unique-id \
 --enable-vhost-alias \
 --enable-modules=most \
 --enable-mods-shared=most \
 --enable-lbmethod-byrequests \
 --enable-lbmethod-bytraffic \
 --enable-lbmethod-bybusyness \
 --enable-lbmethod-heartbeat \
 --enable-heartmonitor \
 --enable-watchdog \
 --enable-ratelimit \
 --enable-ext-filter \
 --enable-request \
 CC=gcc \
 CFLAGS=-Wall -O3 \
 $@
 ---
 
 and got mod_perl source code from Trunk again. mod_perl then fails make 
 test early on:
 
 ---
 [warning] setting ulimit to allow core files
 ulimit -c unlimited; /usr/local/bin/perl 
 /usr/local/src/mod_perl-2.0_20150310_0709/t/TEST -clean
 APACHE_TEST_APXS= APACHE_TEST_PORT= APACHE_TEST_HTTPD= APACHE_TEST_GROUP= 
 APACHE_TEST_USER= \
 /usr/local/bin/perl -Iblib/arch -Iblib/lib \
 t/TEST -bugreport -verbose=0
 [warning] setting ulimit to allow core files
 ulimit -c unlimited; /usr/local/bin/perl 
 /usr/local/src/mod_perl-2.0_20150310_0709/t/TEST -bugreport -verbose=0
 /usr/local/httpd-2.4.12/bin/httpd  -d 
 /usr/local/src/mod_perl-2.0_20150310_0709/t -f 
 /usr/local/src/mod_perl-2.0_20150310_0709/t/conf/httpd.conf -D APACHE2 -D 
 PERL_USEITHREADS
 using Apache/2.4.12 (worker MPM)
 
 waiting 300 seconds for server to start: .[Fri Apr 10 08:04:42.875770 2015] 
 [env:warn] [pid 19848:tid 140397405107968] AH01506: PassEnv variable 
 LD_LIBRARY_PATH was undefined
 [Fri Apr 10 08:04:42.900978 2015] [perl:info] [pid 19848:tid 140397405107968] 
 6 Apache2:: modules loaded
 [Fri Apr 10 08:04:42.901033 2015] [perl:info] [pid 19848:tid 140397405107968] 
 0 APR:: modules loaded
 [Fri Apr 10 08:04:42.901092 2015] [perl:info] [pid 19848:tid 140397405107968] 
 base server + 32 vhosts ready to run tests
 .
 waiting 300 seconds for server to start: not ok
 [  error] giving up after 301 secs. If you think that your system
 is slow or overloaded try again with a longer timeout value.
 by setting the environment variable APACHE_TEST_STARTUP_TIMEOUT
 to a high value (e.g. 600) and repeat the last command.
 
 [  error] server failed to start! (please examine t/logs/error_log)
 ++
 | Please file a bug report: http://perl.apache.org/bugs/ |
 ++
 make: *** [run_tests] Error 1
 [08:09:44]jiegao@/usr/local/src/mod_perl-2.0_20150310_0709:822 ls -l 
 t/logs/error_log
 -rw-r--r--. 1 jiegao jiegao 1243 Apr 10 08:04 t/logs/error_log
 [08:10:01]jiegao@/usr/local/src/mod_perl-2.0_20150310_0709:823 cat !$
 jiegao@/usr/local/src/mod_perl-2.0_20150310_0709:823 cat t/logs/error_log
 
 *** This is a test for Apache2::ServerUtil::server_shutdown_cleanup_register 
 ***
 *** Following a line consisting only of * characters there should be a line  
 ***
 *** containing

Re: Trunk: APR.so won't load

2015-04-12 Thread Joe Schaefer
: Configuration Failed, exiting
---

Adding --enable-maintainer-mode and re-compliling apache, I could get make 
test going as before.
 



Regards,

Jie 

* Steve Hay steve.m@googlemail.com wrote:

 Date: Thu, 9 Apr 2015 18:27:51 +0100
 From: Steve Hay steve.m@googlemail.com
 To: Jie Gao j@sydney.edu.au
 CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
  d...@perl.apache.org
 Subject: Re: Trunk: APR.so won't load
 
 Actually, I don't think there is anything stopping -DAP_DEBUG from
 coming through from the httpd config. The change that was made
 (r357052) just stopped mod_perl from adding that itself when
 MP_MAINTAINER is specified.
 
 But maybe we do need to filter out -DAP_DEBUG?
 Or else stop using ap_strchr() and just use strchr() directly?
 
 Could you try the latter, since it seems like an easy fix? -- Change
 the one instance of ap_strchr() in xs/Apache2/Module/Apache2__Module.h
 to be strchr() instead and then rebuild. Does that make the problem go
 away?
 
 
 On 9 April 2015 at 18:16, Steve Hay steve.m@googlemail.com wrote:
  Can you see where the -DAP_DEBUG comes from, e.g. by grepping
  /usr/local/httpd-2.4.12/bin/ap* for AP_DEBUG?
 
  I think that symbol is not supposed to find its way into the mod_perl
  build options, but it's obviously getting picked up somewhere and
  slipping through...
 
 
  On 9 April 2015 at 15:05, Jie Gao j@sydney.edu.au wrote:
  Hi Steve
 
  httpd is configured with --enable-maintainer-mode.
 
  For mod_perl:
 
     /usr/local/bin/perl Makefile.PL 
 MP_APXS=/usr/local/httpd-2.4.12/bin/apxs 
 MP_APR_CONFIG=/usr/local/httpd-2.4.12/bin/apr-1-config
 
  and I found the following line in the resultant Makefile:
 
  CCFLAGS =  -D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv -fno-strict-aliasing 
  -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE 
  -D_FILE_OFFSET_BITS=64 -DMOD_PERL -DMP_COMPAT_1X -DLINUX -D_REENTRANT 
  -D_GNU_SOURCE -DAP_DEBUG
 
 
 
  Regards,
 
  Jie
 
  * Steve Hay steve.m@googlemail.com wrote:
 
  Date: Thu, 9 Apr 2015 14:29:44 +0100
  From: Steve Hay steve.m@googlemail.com
  To: Jie Gao j@sydney.edu.au
  CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
   d...@perl.apache.org
  Subject: Re: Trunk: APR.so won't load
 
  Sorry for the slow reply.
 
  I cannot reproduce the problem here on Windows. Your example module
  loads up fine with all the use APR lines uncommented.
 
  The build system (and the means by which APR::* should be loadable
  without mod_perl.so being loaded) is different on Windows, but I did
  notice this:
 
  ap_strchr seems to only be used in xs\Apache2\Module\Apache2__Module.h
  but when I run Module.c through the preprocessor I find that ap_strchr
  gets changed to strchr, and the latter is simply imported from the C
  run-time library.
 
  I guess that's down to this code in httpd.h:
 
  #ifdef AP_DEBUG
 
  #undef strchr
  # define strchr(s, c)  ap_strchr(s,c)
  #undef strrchr
  # define strrchr(s, c) ap_strrchr(s,c)
  #undef strstr
  # define strstr(s, c)  ap_strstr(s,c)
 
  #else
 
  /** use this instead of strchr */
  # define ap_strchr(s, c)    strchr(s, c)
  /** use this instead of strchr */
  # define ap_strchr_c(s, c)  strchr(s, c)
  /** use this instead of strrchr */
  # define ap_strrchr(s, c)    strrchr(s, c)
  /** use this instead of strrchr */
  # define ap_strrchr_c(s, c)  strrchr(s, c)
  /** use this instead of strrstr*/
  # define ap_strstr(s, c)    strstr(s, c)
  /** use this instead of strrstr*/
  # define ap_strstr_c(s, c)  strstr(s, c)
 
  #endif
 
  so presumably I do not have AP_DEBUG defined for my build (even though
  it was a debug build).
 
  It looks like AP_DEBUG should not be defined, even in maintainer mode,
  according to an old Changes entry:
 
  remove -DAP_HAVE_DESIGNATED_INITIALIZER and -DAP_DEBUG from
  MP_MAINTAINER mode to avoid collisions [Joe Orton]
 
  but do you somehow have AP_DEBUG defined somewhere, which causes the
  replacement of ap_strchr with strchr to not happen for you?
 
 
  On 27 March 2015 at 09:14, Jie Gao j@sydney.edu.au wrote:
   Hi All
  
   I had some more time looking into this, and here's some info I can 
   provide.
  
   --
  
   # readelf -a 
   /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/auto/APR/APR.so
   ELF Header:
    Magic:  7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
    Class:                            ELF64
    Data:                              2's complement, little endian
    Version:                          1 (current)
    OS/ABI:                            UNIX - System V
    ABI Version:                      0
    Type:                              DYN (Shared object file)
    Machine:                          Advanced Micro Devices X86-64
    Version:                          0x1
    Entry point address:              0x1cb0
    Start of program headers:          64 (bytes into file

Re: Trunk: APR.so won't load

2015-04-09 Thread Steve Hay
Can you see where the -DAP_DEBUG comes from, e.g. by grepping
/usr/local/httpd-2.4.12/bin/ap* for AP_DEBUG?

I think that symbol is not supposed to find its way into the mod_perl
build options, but it's obviously getting picked up somewhere and
slipping through...


On 9 April 2015 at 15:05, Jie Gao j@sydney.edu.au wrote:
 Hi Steve

 httpd is configured with --enable-maintainer-mode.

 For mod_perl:

 /usr/local/bin/perl Makefile.PL MP_APXS=/usr/local/httpd-2.4.12/bin/apxs 
 MP_APR_CONFIG=/usr/local/httpd-2.4.12/bin/apr-1-config

 and I found the following line in the resultant Makefile:

 CCFLAGS =   -D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv -fno-strict-aliasing 
 -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE 
 -D_FILE_OFFSET_BITS=64 -DMOD_PERL -DMP_COMPAT_1X -DLINUX -D_REENTRANT 
 -D_GNU_SOURCE -DAP_DEBUG



 Regards,

 Jie

 * Steve Hay steve.m@googlemail.com wrote:

 Date: Thu, 9 Apr 2015 14:29:44 +0100
 From: Steve Hay steve.m@googlemail.com
 To: Jie Gao j@sydney.edu.au
 CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
  d...@perl.apache.org
 Subject: Re: Trunk: APR.so won't load

 Sorry for the slow reply.

 I cannot reproduce the problem here on Windows. Your example module
 loads up fine with all the use APR lines uncommented.

 The build system (and the means by which APR::* should be loadable
 without mod_perl.so being loaded) is different on Windows, but I did
 notice this:

 ap_strchr seems to only be used in xs\Apache2\Module\Apache2__Module.h
 but when I run Module.c through the preprocessor I find that ap_strchr
 gets changed to strchr, and the latter is simply imported from the C
 run-time library.

 I guess that's down to this code in httpd.h:

 #ifdef AP_DEBUG

 #undef strchr
 # define strchr(s, c)  ap_strchr(s,c)
 #undef strrchr
 # define strrchr(s, c) ap_strrchr(s,c)
 #undef strstr
 # define strstr(s, c)  ap_strstr(s,c)

 #else

 /** use this instead of strchr */
 # define ap_strchr(s, c) strchr(s, c)
 /** use this instead of strchr */
 # define ap_strchr_c(s, c)   strchr(s, c)
 /** use this instead of strrchr */
 # define ap_strrchr(s, c)strrchr(s, c)
 /** use this instead of strrchr */
 # define ap_strrchr_c(s, c)  strrchr(s, c)
 /** use this instead of strrstr*/
 # define ap_strstr(s, c) strstr(s, c)
 /** use this instead of strrstr*/
 # define ap_strstr_c(s, c)   strstr(s, c)

 #endif

 so presumably I do not have AP_DEBUG defined for my build (even though
 it was a debug build).

 It looks like AP_DEBUG should not be defined, even in maintainer mode,
 according to an old Changes entry:

 remove -DAP_HAVE_DESIGNATED_INITIALIZER and -DAP_DEBUG from
 MP_MAINTAINER mode to avoid collisions [Joe Orton]

 but do you somehow have AP_DEBUG defined somewhere, which causes the
 replacement of ap_strchr with strchr to not happen for you?


 On 27 March 2015 at 09:14, Jie Gao j@sydney.edu.au wrote:
  Hi All
 
  I had some more time looking into this, and here's some info I can provide.
 
  --
 
  # readelf -a 
  /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/auto/APR/APR.so
  ELF Header:
Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data:  2's complement, little endian
Version:   1 (current)
OS/ABI:UNIX - System V
ABI Version:   0
Type:  DYN (Shared object file)
Machine:   Advanced Micro Devices X86-64
Version:   0x1
Entry point address:   0x1cb0
Start of program headers:  64 (bytes into file)
Start of section headers:  15480 (bytes into file)
Flags: 0x0
Size of this header:   64 (bytes)
Size of program headers:   56 (bytes)
Number of program headers: 6
Size of section headers:   64 (bytes)
Number of section headers: 29
Section header string table index: 26
 
  Section Headers:
[Nr] Name  Type Address   Offset
 Size  EntSize  Flags  Link  Info  Align
[ 0]   NULL   
      0 0 0
 
  [ Lines removed for clarity ]
 
  Dynamic section at offset 0x36f8 contains 27 entries:
TagType Name/Value
   0x0001 (NEEDED) Shared library: 
  [libaprutil-1.so.0]
   0x0001 (NEEDED) Shared library: [libexpat.so.1]
   0x0001 (NEEDED) Shared library: [libapr-1.so.0]
   0x0001 (NEEDED) Shared library: [librt.so.1]
   0x0001 (NEEDED

Re: Trunk: APR.so won't load

2015-04-09 Thread Steve Hay
Actually, I don't think there is anything stopping -DAP_DEBUG from
coming through from the httpd config. The change that was made
(r357052) just stopped mod_perl from adding that itself when
MP_MAINTAINER is specified.

But maybe we do need to filter out -DAP_DEBUG?
Or else stop using ap_strchr() and just use strchr() directly?

Could you try the latter, since it seems like an easy fix? -- Change
the one instance of ap_strchr() in xs/Apache2/Module/Apache2__Module.h
to be strchr() instead and then rebuild. Does that make the problem go
away?


On 9 April 2015 at 18:16, Steve Hay steve.m@googlemail.com wrote:
 Can you see where the -DAP_DEBUG comes from, e.g. by grepping
 /usr/local/httpd-2.4.12/bin/ap* for AP_DEBUG?

 I think that symbol is not supposed to find its way into the mod_perl
 build options, but it's obviously getting picked up somewhere and
 slipping through...


 On 9 April 2015 at 15:05, Jie Gao j@sydney.edu.au wrote:
 Hi Steve

 httpd is configured with --enable-maintainer-mode.

 For mod_perl:

 /usr/local/bin/perl Makefile.PL MP_APXS=/usr/local/httpd-2.4.12/bin/apxs 
 MP_APR_CONFIG=/usr/local/httpd-2.4.12/bin/apr-1-config

 and I found the following line in the resultant Makefile:

 CCFLAGS =   -D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv -fno-strict-aliasing 
 -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE 
 -D_FILE_OFFSET_BITS=64 -DMOD_PERL -DMP_COMPAT_1X -DLINUX -D_REENTRANT 
 -D_GNU_SOURCE -DAP_DEBUG



 Regards,

 Jie

 * Steve Hay steve.m@googlemail.com wrote:

 Date: Thu, 9 Apr 2015 14:29:44 +0100
 From: Steve Hay steve.m@googlemail.com
 To: Jie Gao j@sydney.edu.au
 CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
  d...@perl.apache.org
 Subject: Re: Trunk: APR.so won't load

 Sorry for the slow reply.

 I cannot reproduce the problem here on Windows. Your example module
 loads up fine with all the use APR lines uncommented.

 The build system (and the means by which APR::* should be loadable
 without mod_perl.so being loaded) is different on Windows, but I did
 notice this:

 ap_strchr seems to only be used in xs\Apache2\Module\Apache2__Module.h
 but when I run Module.c through the preprocessor I find that ap_strchr
 gets changed to strchr, and the latter is simply imported from the C
 run-time library.

 I guess that's down to this code in httpd.h:

 #ifdef AP_DEBUG

 #undef strchr
 # define strchr(s, c)  ap_strchr(s,c)
 #undef strrchr
 # define strrchr(s, c) ap_strrchr(s,c)
 #undef strstr
 # define strstr(s, c)  ap_strstr(s,c)

 #else

 /** use this instead of strchr */
 # define ap_strchr(s, c) strchr(s, c)
 /** use this instead of strchr */
 # define ap_strchr_c(s, c)   strchr(s, c)
 /** use this instead of strrchr */
 # define ap_strrchr(s, c)strrchr(s, c)
 /** use this instead of strrchr */
 # define ap_strrchr_c(s, c)  strrchr(s, c)
 /** use this instead of strrstr*/
 # define ap_strstr(s, c) strstr(s, c)
 /** use this instead of strrstr*/
 # define ap_strstr_c(s, c)   strstr(s, c)

 #endif

 so presumably I do not have AP_DEBUG defined for my build (even though
 it was a debug build).

 It looks like AP_DEBUG should not be defined, even in maintainer mode,
 according to an old Changes entry:

 remove -DAP_HAVE_DESIGNATED_INITIALIZER and -DAP_DEBUG from
 MP_MAINTAINER mode to avoid collisions [Joe Orton]

 but do you somehow have AP_DEBUG defined somewhere, which causes the
 replacement of ap_strchr with strchr to not happen for you?


 On 27 March 2015 at 09:14, Jie Gao j@sydney.edu.au wrote:
  Hi All
 
  I had some more time looking into this, and here's some info I can 
  provide.
 
  --
 
  # readelf -a 
  /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/auto/APR/APR.so
  ELF Header:
Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data:  2's complement, little endian
Version:   1 (current)
OS/ABI:UNIX - System V
ABI Version:   0
Type:  DYN (Shared object file)
Machine:   Advanced Micro Devices X86-64
Version:   0x1
Entry point address:   0x1cb0
Start of program headers:  64 (bytes into file)
Start of section headers:  15480 (bytes into file)
Flags: 0x0
Size of this header:   64 (bytes)
Size of program headers:   56 (bytes)
Number of program headers: 6
Size of section headers:   64 (bytes)
Number of section headers: 29
Section header string table index: 26
 
  Section Headers:
[Nr] Name  Type Address   Offset
 Size  EntSize  Flags  Link  Info  Align
[ 0

Re: Trunk: APR.so won't load

2015-04-09 Thread Jie Gao
Hi Steve

httpd is configured with --enable-maintainer-mode.

For mod_perl: 

/usr/local/bin/perl Makefile.PL MP_APXS=/usr/local/httpd-2.4.12/bin/apxs 
MP_APR_CONFIG=/usr/local/httpd-2.4.12/bin/apr-1-config

and I found the following line in the resultant Makefile:

CCFLAGS =   -D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv -fno-strict-aliasing -pipe 
-fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -DMOD_PERL -DMP_COMPAT_1X -DLINUX -D_REENTRANT 
-D_GNU_SOURCE -DAP_DEBUG



Regards,

Jie 

* Steve Hay steve.m@googlemail.com wrote:

 Date: Thu, 9 Apr 2015 14:29:44 +0100
 From: Steve Hay steve.m@googlemail.com
 To: Jie Gao j@sydney.edu.au
 CC: modperl@perl.apache.org modperl@perl.apache.org, mod_perl Dev
  d...@perl.apache.org
 Subject: Re: Trunk: APR.so won't load
 
 Sorry for the slow reply.
 
 I cannot reproduce the problem here on Windows. Your example module
 loads up fine with all the use APR lines uncommented.
 
 The build system (and the means by which APR::* should be loadable
 without mod_perl.so being loaded) is different on Windows, but I did
 notice this:
 
 ap_strchr seems to only be used in xs\Apache2\Module\Apache2__Module.h
 but when I run Module.c through the preprocessor I find that ap_strchr
 gets changed to strchr, and the latter is simply imported from the C
 run-time library.
 
 I guess that's down to this code in httpd.h:
 
 #ifdef AP_DEBUG
 
 #undef strchr
 # define strchr(s, c)  ap_strchr(s,c)
 #undef strrchr
 # define strrchr(s, c) ap_strrchr(s,c)
 #undef strstr
 # define strstr(s, c)  ap_strstr(s,c)
 
 #else
 
 /** use this instead of strchr */
 # define ap_strchr(s, c) strchr(s, c)
 /** use this instead of strchr */
 # define ap_strchr_c(s, c)   strchr(s, c)
 /** use this instead of strrchr */
 # define ap_strrchr(s, c)strrchr(s, c)
 /** use this instead of strrchr */
 # define ap_strrchr_c(s, c)  strrchr(s, c)
 /** use this instead of strrstr*/
 # define ap_strstr(s, c) strstr(s, c)
 /** use this instead of strrstr*/
 # define ap_strstr_c(s, c)   strstr(s, c)
 
 #endif
 
 so presumably I do not have AP_DEBUG defined for my build (even though
 it was a debug build).
 
 It looks like AP_DEBUG should not be defined, even in maintainer mode,
 according to an old Changes entry:
 
 remove -DAP_HAVE_DESIGNATED_INITIALIZER and -DAP_DEBUG from
 MP_MAINTAINER mode to avoid collisions [Joe Orton]
 
 but do you somehow have AP_DEBUG defined somewhere, which causes the
 replacement of ap_strchr with strchr to not happen for you?
 
 
 On 27 March 2015 at 09:14, Jie Gao j@sydney.edu.au wrote:
  Hi All
 
  I had some more time looking into this, and here's some info I can provide.
 
  --
 
  # readelf -a 
  /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/auto/APR/APR.so
  ELF Header:
Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data:  2's complement, little endian
Version:   1 (current)
OS/ABI:UNIX - System V
ABI Version:   0
Type:  DYN (Shared object file)
Machine:   Advanced Micro Devices X86-64
Version:   0x1
Entry point address:   0x1cb0
Start of program headers:  64 (bytes into file)
Start of section headers:  15480 (bytes into file)
Flags: 0x0
Size of this header:   64 (bytes)
Size of program headers:   56 (bytes)
Number of program headers: 6
Size of section headers:   64 (bytes)
Number of section headers: 29
Section header string table index: 26
 
  Section Headers:
[Nr] Name  Type Address   Offset
 Size  EntSize  Flags  Link  Info  Align
[ 0]   NULL   
      0 0 0
 
  [ Lines removed for clarity ]
 
  Dynamic section at offset 0x36f8 contains 27 entries:
TagType Name/Value
   0x0001 (NEEDED) Shared library: [libaprutil-1.so.0]
   0x0001 (NEEDED) Shared library: [libexpat.so.1]
   0x0001 (NEEDED) Shared library: [libapr-1.so.0]
   0x0001 (NEEDED) Shared library: [librt.so.1]
   0x0001 (NEEDED) Shared library: [libcrypt.so.1]
   0x0001 (NEEDED) Shared library: [libpthread.so.0]
   0x0001 (NEEDED) Shared library: [libc.so.6]
   0x000f (RPATH)  Library rpath: 
  [/usr/local/httpd-2.4.12/lib:/lib/../lib64]
 
  [ Lines removed for clarity

Re: Trunk: APR.so won't load

2015-03-27 Thread Jie Gao
Hi All

I had some more time looking into this, and here's some info I can provide.

--

# readelf -a 
/usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/auto/APR/APR.so
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class: ELF64
  Data:  2's complement, little endian
  Version:   1 (current)
  OS/ABI:UNIX - System V
  ABI Version:   0
  Type:  DYN (Shared object file)
  Machine:   Advanced Micro Devices X86-64
  Version:   0x1
  Entry point address:   0x1cb0
  Start of program headers:  64 (bytes into file)
  Start of section headers:  15480 (bytes into file)
  Flags: 0x0
  Size of this header:   64 (bytes)
  Size of program headers:   56 (bytes)
  Number of program headers: 6
  Size of section headers:   64 (bytes)
  Number of section headers: 29
  Section header string table index: 26

Section Headers:
  [Nr] Name  Type Address   Offset
   Size  EntSize  Flags  Link  Info  Align
  [ 0]   NULL   
        0 0 0

[ Lines removed for clarity ]

Dynamic section at offset 0x36f8 contains 27 entries:
  TagType Name/Value
 0x0001 (NEEDED) Shared library: [libaprutil-1.so.0]
 0x0001 (NEEDED) Shared library: [libexpat.so.1]
 0x0001 (NEEDED) Shared library: [libapr-1.so.0]
 0x0001 (NEEDED) Shared library: [librt.so.1]
 0x0001 (NEEDED) Shared library: [libcrypt.so.1]
 0x0001 (NEEDED) Shared library: [libpthread.so.0]
 0x0001 (NEEDED) Shared library: [libc.so.6]
 0x000f (RPATH)  Library rpath: 
[/usr/local/httpd-2.4.12/lib:/lib/../lib64]

[ Lines removed for clarity ]

Relocation section '.rela.plt' at offset 0x1300 contains 61 entries:
  Offset  Info   Type   Sym. ValueSym. Name + Addend
00203930  00020007 R_X86_64_JUMP_SLO  Perl_mg_get + 0
00203938  00030007 R_X86_64_JUMP_SLO  Perl_sv_setiv + 0
00203940  00040007 R_X86_64_JUMP_SLO  Perl_sv_bless + 0
00203948  00050007 R_X86_64_JUMP_SLO  apr_strerror + 0
00203950  00060007 R_X86_64_JUMP_SLO  Perl_require_pv + 0
00203958  00070007 R_X86_64_JUMP_SLO  Perl_warn + 0
00203960  00080007 R_X86_64_JUMP_SLO  PerlIO_printf + 0
00203968  00090007 R_X86_64_JUMP_SLO  ap_strchr + 0

[ Lines removed for clarity ]

Symbol table '.dynsym' contains 86 entries:
   Num:Value  Size TypeBind   Vis  Ndx Name
 0:  0 NOTYPE  LOCAL  DEFAULT  UND 
 1: 18b8 0 SECTION LOCAL  DEFAULT9 
 2:  0 NOTYPE  GLOBAL DEFAULT  UND Perl_mg_get
 3:  0 NOTYPE  GLOBAL DEFAULT  UND Perl_sv_setiv
 4:  0 NOTYPE  GLOBAL DEFAULT  UND Perl_sv_bless
 5:  0 FUNCGLOBAL DEFAULT  UND apr_strerror
 6:  0 NOTYPE  GLOBAL DEFAULT  UND Perl_require_pv
 7:  0 NOTYPE  GLOBAL DEFAULT  UND Perl_warn
 8:  0 NOTYPE  GLOBAL DEFAULT  UND PerlIO_printf
 9:  0 NOTYPE  GLOBAL DEFAULT  UND ap_strchr


[ Lines removed for clarity ]

Symbol table '.symtab' contains 143 entries:
   Num:Value  Size TypeBind   Vis  Ndx Name
 0:  0 NOTYPE  LOCAL  DEFAULT  UND 
 1: 0190 0 SECTION LOCAL  DEFAULT1 

[ Lines removed for clarity ]

69:  0 NOTYPE  GLOBAL DEFAULT  UND ap_strchr


[ Lines removed for clarity ]

--

It seems that ap_strchr is not defined anywhere outside httpd, and not in
any of the shared libs. This seems to create the problem when building
a module with mod_perl or outside the mod_perl source.

I find a somewhat related change by Stas in the past in the Changes file:

bug reports generating code: [Stas]
- add (apr|apu)-config linking info
- show the full path to the config file used to get the data for the
  report

The APR and APR::* family of modules can now be used without having
to load mod_perl.so. On *nix, this is done by compiling the needed
functions from the appropriate sources used to build mod_perl.so