perl-modperl-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1670740 - /perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h
Date Wed, 01 Apr 2015 17:40:08 GMT
Author: stevehay
Date: Wed Apr  1 17:40:08 2015
New Revision: 1670740

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 <> from #101144.


Modified: perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h
--- 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

View raw message