Author: stevehay
Date: Wed Apr  1 17:40:08 2015
New Revision: 1670740

URL: http://svn.apache.org/r1670740
Log:
Fix compilation failure in some configurations under Perl 5.21.1 and above

The problem is that mod_perl overrides Perl's definition of dNOOP with one that 
uses the same symbol in an incompatible way. Failures start with Perl 5.21.1 
because this version introduced some inline function definitions that can end 
up using dNOOP internally. The core inline.h is processed too early for 
mod_perl's override, so functions defined there and functions defined in 
mod_perl end up using different versions of dNOOP, exposing the incompatibility.

Presumably mod_perl is trying to avoid the warnings that one used to get with 
Perl 5.6. That was fixed a long time ago, so mod_perl no longer needs an 
override. However, since README notes that mod_perl *MAY* still work with Perls 
older than 5.8.2 it is probably worth keeping the override and avoiding the 
clash of dNOOP definitions by using a different symbol.

Patch by Zefram <zef...@fysh.org> from rt.cpan.org #101144.

Modified:
    perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h

Modified: perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h?rev=1670740&r1=1670739&r2=1670740&view=diff
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h Wed Apr  1 
17:40:08 2015
@@ -79,7 +79,7 @@
 /* avoiding -Wall warning */
 
 #undef dNOOP
-#define dNOOP extern int __attribute__ ((unused)) Perl___notused
+#define dNOOP extern int __attribute__ ((unused)) Perl___notused___modperl
 
 #ifndef G_METHOD
 #   define G_METHOD 64


Reply via email to