mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +02:00
perl: Fix Errno.pm generation for GCC >= 5
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
1
lfs/perl
1
lfs/perl
@@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) :
|
||||
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
@$(PREBUILD)
|
||||
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
|
||||
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/perl-Fix-Errno.pm-generation-for-gcc-5.0.patch
|
||||
ifneq "$(ROOT)" ""
|
||||
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-libc-2.patch
|
||||
endif
|
||||
|
||||
66
src/patches/perl-Fix-Errno.pm-generation-for-gcc-5.0.patch
Normal file
66
src/patches/perl-Fix-Errno.pm-generation-for-gcc-5.0.patch
Normal file
@@ -0,0 +1,66 @@
|
||||
From 96bcd6ed97ff05f5b421005f23973279dbfcafbf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Wed, 11 Feb 2015 15:46:37 +0100
|
||||
Subject: [PATCH 1/2] 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
|
||||
---
|
||||
ext/Errno/Errno_pm.PL | 23 +++++++++++++++++------
|
||||
1 file changed, 17 insertions(+), 6 deletions(-)
|
||||
|
||||
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";
|
||||
}
|
||||
--
|
||||
2.3.0
|
||||
|
||||
Reference in New Issue
Block a user