[OE-core] [PATCH] Perl: Use CC version not $Config(gccversion)

Jens Rehsack rehsack at gmail.com
Sat Oct 24 12:15:10 UTC 2015


> Am 23.10.2015 um 19:18 schrieb Jeremy Puhlman <jpuhlman at mvista.com>:
> 
> Get version data from querying $CC rather then
> $Config(gccversion) which comes from running version of
> perl. Since perl-native is not likely compiled by gcc
> 5 at this point, it will never trigger the required
> fixes for gcc 5.
> 
> [YOCTO #8367]
> 
> Signed-off-by: Jeremy Puhlman <jpuhlman at mvista.com>
> ---
> .../perl/perl/perl-errno-generation-gcc5.patch     | 23 ++++++++++++++++++++++
> meta/recipes-devtools/perl/perl_5.22.0.bb          |  1 +
> 2 files changed, 24 insertions(+)
> create mode 100644 meta/recipes-devtools/perl/perl/perl-errno-generation-gcc5.patch
> 
> diff --git a/meta/recipes-devtools/perl/perl/perl-errno-generation-gcc5.patch b/meta/recipes-devtools/perl/perl/perl-errno-generation-gcc5.patch
> new file mode 100644
> index 0000000..efbc55d
> --- /dev/null
> +++ b/meta/recipes-devtools/perl/perl/perl-errno-generation-gcc5.patch
> @@ -0,0 +1,23 @@
> +Upstream-Status:Inappropriate [embedded specific]

Did you ask p5-porters?

I strongly suggest to open an RT for 2 reasons:

1) Let the people know that I'm not the only one encountering problems with the way they deal situations
2) Those tickets enlighten over time.

Cross-compiling is not restricted to embedded.

The patch self looks more than sane and I'm happy to support it when reported (so tell me the ticket number or put me on CC when creating the ticket).

> +The upstream code assumes that the compiler version used to compiler miniperl/perl-native
> +is the same as the one being used to build the perl binary. Since most people are not running
> +systems with gcc 5, it is unlikely that it will work on any supported host. Switch out gccversion
> +for the version extracted from $CC --version.
> +
> +--- perl-5.22.0/ext/Errno/Errno_pm.PL	2015-10-19 18:01:20.622143786 -0400
> ++++ perl-5.22.0-fixed/ext/Errno/Errno_pm.PL	2015-10-19 17:50:35.662137367 -0400
> +@@ -224,9 +224,12 @@
> + 
> +     {	# BeOS (support now removed) did not enter this block
> +     # invoke CPP and read the output
> ++        my $compiler = $ENV{'CC'};
> ++        my $compiler_out = `$compiler --version`;
> ++        my @compiler_version = split / /,$compiler_out; 
> + 
> + 	my $inhibit_linemarkers = '';
> +-	if ($Config{gccversion} =~ /\A(\d+)\./ and $1 >= 5) {
> ++	if (@compiler_version[2] =~ /\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';
> diff --git a/meta/recipes-devtools/perl/perl_5.22.0.bb b/meta/recipes-devtools/perl/perl_5.22.0.bb
> index 3ce7849..66e074d 100644
> --- a/meta/recipes-devtools/perl/perl_5.22.0.bb
> +++ b/meta/recipes-devtools/perl/perl_5.22.0.bb
> @@ -62,6 +62,7 @@ SRC_URI += " \
>         file://ext-ODBM_File-hints-linux.pl-link-libgdbm_compat.patch \
>         file://ext-ODBM_File-t-odbm.t-fix-the-path-of-dbmt_common.p.patch \
>         file://perl-PathTools-don-t-filter-out-blib-from-INC.patch \
> +        file://perl-errno-generation-gcc5.patch \
> "
> 
> # Fix test case issues
> -- 
> 2.6.2

Cheers
-- 
Jens Rehsack - rehsack at gmail.com




More information about the Openembedded-core mailing list