Subject: | Miscompilation on Perl without "." in @INC |
Perl 5.26.0 removes "." from @INC and that breaks loading "OPTIONS!" file from plplot.pd:
"/usr/bin/perl" "-I/usr/lib64/perl5/vendor_perl" "-MPDL::PP qw[PDL::Graphics::PL
plot PDL::Graphics::PLplot PLplot]" plplot.pd
do "OPTIONS!" failed, '.' is no longer in @INC; did you mean do "./OPTIONS!"? at plplot.pd line 12.
as a result, the generated Perl and XS code does not respect the configuration. E.g. it does not alternate between plwid and plwidth properly.
A fix is attached.
(I experience some test failures even with the fix applied, but that can be caused by my new compiler hardening options.)
Subject: | PDL-Graphics-PLplot-0.71-Fix-building-on-Perl-without-.-in-INC.patch |
From f1c3834b76c921f168f4622bd6f0ec18dac5184e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Thu, 25 May 2017 13:20:10 +0200
Subject: [PATCH] Fix building on Perl without "." in @INC
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Perl 5.26.0 removes "." from @INC, then executing plplot.pd warns:
"/usr/bin/perl" "-I/usr/lib64/perl5/vendor_perl" "-MPDL::PP qw[PDL::Graphics::PL
plot PDL::Graphics::PLplot PLplot]" plplot.pd
do "OPTIONS!" failed, '.' is no longer in @INC; did you mean do "./OPTIONS!"? at plplot.pd line 12.
and the OPIONTS! file with plplot configuration is ignored. This can
result into undefined plwid symbol in the generatated XS module.
This patch fixes the "do" statement to load "OPIONTS!" from working
directory.
Signed-off-by: Petr PÃsaÅ <ppisar@redhat.com>
---
plplot.pd | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plplot.pd b/plplot.pd
index f09a918..358e4d7 100644
--- a/plplot.pd
+++ b/plplot.pd
@@ -9,7 +9,7 @@ my $int_ptr_type = ($ptrsize == 4) ? 'I32' : 'long';
$PDL::Graphics::PLplot::standard_order = 0;
# Read in options determined by Makefile.PL and written to the OPTIONS! file
-my $plversion = do 'OPTIONS!';
+my $plversion = do './OPTIONS!';
pp_addpm({At => Top}, <<'EOD');
our $VERSION;
--
2.9.4