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