Under -DPERL_DEBUG_READONLY_OPS don't work around glibc 2.2.5 _moddi3 bugs.
authorNicholas Clark <nick@ccl4.org>
Wed, 8 Aug 2012 10:37:48 +0000 (12:37 +0200)
committerNicholas Clark <nick@ccl4.org>
Tue, 4 Sep 2012 09:08:35 +0000 (11:08 +0200)
The work around involves a runtime check and substituting OP pointers based
on the result. The substitution fails if the optree is mapped read-only.

pp.c

index 05a9edf..29db8ed 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -2364,7 +2364,7 @@ PP(pp_i_divide)
     }
 }
 
-#if defined(__GLIBC__) && IVSIZE == 8
+#if defined(__GLIBC__) && IVSIZE == 8 && !defined(PERL_DEBUG_READONLY_OPS)
 STATIC
 PP(pp_i_modulo_0)
 #else
@@ -2387,7 +2387,7 @@ PP(pp_i_modulo)
      }
 }
 
-#if defined(__GLIBC__) && IVSIZE == 8
+#if defined(__GLIBC__) && IVSIZE == 8 && !defined(PERL_DEBUG_READONLY_OPS)
 STATIC
 PP(pp_i_modulo_1)