From: Vincent Pit Date: Wed, 19 May 2010 00:32:21 +0000 (+0200) Subject: Fix for the official 5.13.0 release X-Git-Tag: v0.12~1 X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FScope-Upper.git;a=commitdiff_plain;h=84662f0d82519cb851bb79144bc4b45aa78646f5 Fix for the official 5.13.0 release --- diff --git a/Makefile.PL b/Makefile.PL index 1db1f75..f4df485 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -4,8 +4,22 @@ use strict; use warnings; use ExtUtils::MakeMaker; +use Config; + +my $pl = $Config{perl_patchlevel}; +my $desc = $Config{git_describe}; +for ($pl, $desc) { + $_ = undef unless defined and length; +} + my @DEFINES; +print "Checking if this is an official release of perl... "; +my $is_release = ($] < 5.011) ? (defined($pl) || defined($desc) ? 0 : 1) + : (defined($desc) ? 0 : 1); +push @DEFINES, "-DSU_RELEASE=$is_release"; +print $is_release ? "yes\n" : "no\n"; + # Threads, Windows and 5.8.x don't seem to be best friends if ($^O eq 'MSWin32' && $^V lt v5.9.0) { push @DEFINES, '-DSU_MULTIPLICITY=0'; @@ -28,6 +42,7 @@ my %PREREQ_PM = ( my %META = ( configure_requires => { + 'Config' => 0, 'ExtUtils::MakeMaker' => 0, }, build_requires => { diff --git a/Upper.xs b/Upper.xs index fb6de17..24e3f0a 100644 --- a/Upper.xs +++ b/Upper.xs @@ -69,6 +69,7 @@ #endif #define SU_HAS_PERL(R, V, S) (PERL_REVISION > (R) || (PERL_REVISION == (R) && (PERL_VERSION > (V) || (PERL_VERSION == (V) && (PERL_SUBVERSION >= (S)))))) +#define SU_HAS_PERL_EXACT(R, V, S) ((PERL_REVISION == (R)) && (PERL_VERSION == (V)) && (PERL_SUBVERSION == (S))) /* --- Threads and multiplicity -------------------------------------------- */ @@ -163,7 +164,7 @@ START_MY_CXT #if !SU_HAS_PERL(5, 8, 9) # define SU_SAVE_GP_SIZE 6 -#elif !SU_HAS_PERL(5, 13, 0) +#elif !SU_HAS_PERL(5, 13, 0) || (SU_RELEASE && SU_HAS_PERL_EXACT(5, 13, 0)) # define SU_SAVE_GP_SIZE 3 #else # define SU_SAVE_GP_SIZE 4