perl: 5.20.2 -> 5.20.3
This commit is contained in:
parent
6a766f47c2
commit
403271a476
@ -21,11 +21,11 @@ in
|
|||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "perl-5.20.2";
|
name = "perl-5.20.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://cpan/authors/id/S/SH/SHAY/${name}.tar.gz";
|
url = "mirror://cpan/authors/id/S/SH/SHAY/${name}.tar.gz";
|
||||||
sha256 = "17cvplgpxbm1hshxlkra2fldn4da1iap1lsnb04hdm8ply93k95i";
|
sha256 = "0jlvpd5l5nk7lzfd4akdg1sw6vinbkj6izclyyr0lrbidfky691m";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "man" ];
|
outputs = [ "out" "man" ];
|
||||||
@ -33,8 +33,6 @@ stdenv.mkDerivation rec {
|
|||||||
patches =
|
patches =
|
||||||
[ # Do not look in /usr etc. for dependencies.
|
[ # Do not look in /usr etc. for dependencies.
|
||||||
./no-sys-dirs.patch
|
./no-sys-dirs.patch
|
||||||
# Remove in 5.20.3
|
|
||||||
./perl-5.20.2-gcc5_fixes-1.patch
|
|
||||||
]
|
]
|
||||||
++ optional stdenv.isSunOS ./ld-shared.patch
|
++ optional stdenv.isSunOS ./ld-shared.patch
|
||||||
++ stdenv.lib.optional stdenv.isDarwin [ ./cpp-precomp.patch ./no-libutil.patch ] ;
|
++ stdenv.lib.optional stdenv.isDarwin [ ./cpp-precomp.patch ./no-libutil.patch ] ;
|
||||||
@ -84,6 +82,9 @@ stdenv.mkDerivation rec {
|
|||||||
''}
|
''}
|
||||||
'' + optionalString stdenv.isDarwin ''
|
'' + optionalString stdenv.isDarwin ''
|
||||||
substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" ""
|
substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" ""
|
||||||
|
'' + optionalString (!enableThreading) ''
|
||||||
|
# We need to do this because the bootstrap doesn't have a static libpthread
|
||||||
|
sed -i 's,\(libswanted.*\)pthread,\1,g' Configure
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preBuild = optionalString (!(stdenv ? cc && stdenv.cc.nativeTools))
|
preBuild = optionalString (!(stdenv ? cc && stdenv.cc.nativeTools))
|
||||||
|
@ -1,127 +0,0 @@
|
|||||||
Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
|
|
||||||
Date: 2015-04-17
|
|
||||||
Initial Package Version: 5.20.2
|
|
||||||
Upstream Status: Committed
|
|
||||||
Origin: Petr Pisař and Tony Cook
|
|
||||||
Description: Fixes Errno.pm and h2ph with gcc-5.
|
|
||||||
|
|
||||||
1. cherry-picked because the change to $version will not apply, from
|
|
||||||
commit 816b056ffb99ae54642320e20dc30a59fd1effef
|
|
||||||
Author: Petr Písař <ppisar@redhat.com>
|
|
||||||
Date: Wed Feb 11 15:46:37 2015 +0100
|
|
||||||
|
|
||||||
Fix Errno.pm generation for gcc-5.0
|
|
||||||
|
|
||||||
gcc-5.0 -E interleaves now line numbers with expended macros, so that
|
|
||||||
the generated errno.c will be preprocessed to
|
|
||||||
|
|
||||||
EBFONT => [[
|
|
||||||
59
|
|
||||||
]]
|
|
||||||
|
|
||||||
which is hard to parse in in line-based reader.
|
|
||||||
|
|
||||||
So use -P option with gcc >= 5.0. Global -P usage would break makedepend,
|
|
||||||
global -ftrack-macro-expansion=0 would break lib/h2ph.t.
|
|
||||||
|
|
||||||
RT#123784
|
|
||||||
|
|
||||||
diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
|
|
||||||
index 3dadfce..c6bfa06 100644
|
|
||||||
--- a/ext/Errno/Errno_pm.PL
|
|
||||||
+++ b/ext/Errno/Errno_pm.PL
|
|
||||||
@@ -215,20 +215,31 @@ sub write_errno_pm {
|
|
||||||
{ # BeOS (support now removed) did not enter this block
|
|
||||||
# invoke CPP and read the output
|
|
||||||
|
|
||||||
+ my $inhibit_linemarkers = '';
|
|
||||||
+ if ($Config{gccversion} =~ /\A(\d+)\./ and $1 >= 5) {
|
|
||||||
+ # GCC 5.0 interleaves expanded macros with line numbers breaking
|
|
||||||
+ # each line into multiple lines. RT#123784
|
|
||||||
+ $inhibit_linemarkers = ' -P';
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if ($^O eq 'VMS') {
|
|
||||||
- my $cpp = "$Config{cppstdin} $Config{cppflags} $Config{cppminus}";
|
|
||||||
+ my $cpp = "$Config{cppstdin} $Config{cppflags}" .
|
|
||||||
+ $inhibit_linemarkers . " $Config{cppminus}";
|
|
||||||
$cpp =~ s/sys\$input//i;
|
|
||||||
open(CPPO,"$cpp errno.c |") or
|
|
||||||
die "Cannot exec $Config{cppstdin}";
|
|
||||||
} elsif ($IsMSWin32 || $^O eq 'NetWare') {
|
|
||||||
- open(CPPO,"$Config{cpprun} $Config{cppflags} errno.c |") or
|
|
||||||
- die "Cannot run '$Config{cpprun} $Config{cppflags} errno.c'";
|
|
||||||
+ my $cpp = "$Config{cpprun} $Config{cppflags}" .
|
|
||||||
+ $inhibit_linemarkers;
|
|
||||||
+ open(CPPO,"$cpp errno.c |") or
|
|
||||||
+ die "Cannot run '$cpp errno.c'";
|
|
||||||
} elsif ($IsSymbian) {
|
|
||||||
- my $cpp = "gcc -E -I$ENV{SDK}\\epoc32\\include\\libc -";
|
|
||||||
+ my $cpp = "gcc -E -I$ENV{SDK}\\epoc32\\include\\libc" .
|
|
||||||
+ $inhibit_linemarkers ." -";
|
|
||||||
open(CPPO,"$cpp < errno.c |")
|
|
||||||
or die "Cannot exec $cpp";
|
|
||||||
} else {
|
|
||||||
- my $cpp = default_cpp();
|
|
||||||
+ my $cpp = default_cpp() . $inhibit_linemarkers;
|
|
||||||
open(CPPO,"$cpp < errno.c |")
|
|
||||||
or die "Cannot exec $cpp";
|
|
||||||
}
|
|
||||||
|
|
||||||
commit 3bea78d24634e630b610f59957e7a019205a67b2
|
|
||||||
Author: Tony Cook <tony@develop-help.com>
|
|
||||||
Date: Mon Feb 16 15:57:00 2015 +1100
|
|
||||||
|
|
||||||
h2ph: correct handling of hex constants for the preamble
|
|
||||||
|
|
||||||
Previously they were treated as identifiers resulting in code
|
|
||||||
generated like C< &0xFFF >.
|
|
||||||
|
|
||||||
We also try to prevent compile-time warnings from large hex integers,
|
|
||||||
the user isn't responsible for the generated code, so we delay those
|
|
||||||
warnings to run-time.
|
|
||||||
|
|
||||||
diff --git a/utils/h2ph.PL b/utils/h2ph.PL
|
|
||||||
index 9a8b14d..d082f22 100644
|
|
||||||
--- a/utils/h2ph.PL
|
|
||||||
+++ b/utils/h2ph.PL
|
|
||||||
@@ -769,7 +769,7 @@ sub inc_dirs
|
|
||||||
sub build_preamble_if_necessary
|
|
||||||
{
|
|
||||||
# Increment $VERSION every time this function is modified:
|
|
||||||
- my $VERSION = 3;
|
|
||||||
+ my $VERSION = 4;
|
|
||||||
my $preamble = "$Dest_dir/_h2ph_pre.ph";
|
|
||||||
|
|
||||||
# Can we skip building the preamble file?
|
|
||||||
@@ -788,6 +788,11 @@ sub build_preamble_if_necessary
|
|
||||||
|
|
||||||
open PREAMBLE, ">$preamble" or die "Cannot open $preamble: $!";
|
|
||||||
print PREAMBLE "# This file was created by h2ph version $VERSION\n";
|
|
||||||
+ # Prevent non-portable hex constants from warning.
|
|
||||||
+ #
|
|
||||||
+ # We still produce an overflow warning if we can't represent
|
|
||||||
+ # a hex constant as an integer.
|
|
||||||
+ print PREAMBLE "no warnings qw(portable);\n";
|
|
||||||
|
|
||||||
foreach (sort keys %define) {
|
|
||||||
if ($opt_D) {
|
|
||||||
@@ -814,6 +819,18 @@ DEFINE
|
|
||||||
# integer:
|
|
||||||
print PREAMBLE
|
|
||||||
"unless (defined &$_) { sub $_() { $1 } }\n\n";
|
|
||||||
+ } elsif ($define{$_} =~ /^([+-]?0x[\da-f]+)U?L{0,2}$/i) {
|
|
||||||
+ # hex integer
|
|
||||||
+ # Special cased, since perl warns on hex integers
|
|
||||||
+ # that can't be represented in a UV.
|
|
||||||
+ #
|
|
||||||
+ # This way we get the warning at time of use, so the user
|
|
||||||
+ # only gets the warning if they happen to use this
|
|
||||||
+ # platform-specific definition.
|
|
||||||
+ my $code = $1;
|
|
||||||
+ $code = "hex('$code')" if length $code > 10;
|
|
||||||
+ print PREAMBLE
|
|
||||||
+ "unless (defined &$_) { sub $_() { $code } }\n\n";
|
|
||||||
} elsif ($define{$_} =~ /^\w+$/) {
|
|
||||||
my $def = $define{$_};
|
|
||||||
if ($isatype{$def}) {
|
|
Loading…
x
Reference in New Issue
Block a user