In perl.git, the branch blead has been updated

<https://perl5.git.perl.org/perl.git/commitdiff/6c2ae6421675ba5ff81dd43f9167136f02dfe9d9?hp=0f00948681dc0ceca5f81f143dec277c5a598141>

- Log -----------------------------------------------------------------
commit 6c2ae6421675ba5ff81dd43f9167136f02dfe9d9
Author: Aaron Crane <a...@cpan.org>
Date:   Mon Oct 23 17:22:34 2017 +0100

    RT#132347: fix building Tk
    
    The Tk distribution has its own portability layer that expects to find
    certain settings in %Config, as well as some cpp symbols defined in
    perl.h. The recent Perl changes to require a C89 compiler caused some of
    the metaconfig units defining those %Config settings and cpp symbols to
    be omitted. This commit restores compatibility with Tk, by ensuring that
    the things it wants are available even though they are no longer
    provided by metaconfig.

-----------------------------------------------------------------------

Summary of changes:
 .metaconf-exclusions.txt |  1 +
 configpm                 | 15 ++++++++++++++-
 perl.h                   |  2 ++
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/.metaconf-exclusions.txt b/.metaconf-exclusions.txt
index 84d6057d96..ce9e3d5658 100644
--- a/.metaconf-exclusions.txt
+++ b/.metaconf-exclusions.txt
@@ -20,6 +20,7 @@
 # to be included, even before specific code using the relevant symbols has been
 # written.
 
+I_LIMITS
 I_STDARG
 index
 rindex
diff --git a/configpm b/configpm
index 09b9e67aab..ebbaaa9b44 100755
--- a/configpm
+++ b/configpm
@@ -212,6 +212,19 @@ my $in_v     = 0;
 my %Data     = ();
 my $quote;
 
+# These variables were set in older versions of Perl, but are no longer needed
+# by the core. However, some CPAN modules may rely on them; in particular, Tk
+# (at least up to version 804.034) fails to build without them. We force them
+# to be emitted to Config_heavy.pl for backcompat with such modules (and we may
+# find that this set needs to be extended in future). See RT#132347.
+my @v_forced = map "$_\n", split /\n+/, <<'EOT';
+i_limits='define'
+i_stdlib='define'
+i_string='define'
+i_time='define'
+prototype='define'
+EOT
+
 
 my %seen_quotes;
 {
@@ -567,7 +580,7 @@ $heavy_txt .= join('',
     map {
         /^([^=]+)/ ? [ $1, $_ ]
                    : [ $_, $_ ] # shouldnt happen
-    } @v_others
+    } @v_others, @v_forced
 ) . "!END!\n";
 
 # Only need the dynamic byteorder code in Config.pm if 'byteorder' is one of
diff --git a/perl.h b/perl.h
index 853fd6f8d3..f433dc7f43 100644
--- a/perl.h
+++ b/perl.h
@@ -565,7 +565,9 @@
 #define VOL volatile
 #define CAN_PROTOTYPE
 #define _(args) args
+#define I_LIMITS
 #define I_STDARG
+#define STANDARD_C
 #endif
 
 /* By compiling a perl with -DNO_TAINT_SUPPORT or -DSILENT_NO_TAINT_SUPPORT,

-- 
Perl5 Master Repository

Reply via email to