aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/perl/perl/perl-errno-generation-gcc5.patch
diff options
context:
space:
mode:
authorJeremy Puhlman <jpuhlman@mvista.com>2015-10-23 10:18:07 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-10-24 12:21:30 +0100
commitc616e05691ec143066df8f416cc0b6b464fabd02 (patch)
tree125fa476e3f568fed0fd70ef5a60d19b924920c2 /meta/recipes-devtools/perl/perl/perl-errno-generation-gcc5.patch
parentba127370e621b5b683d6f454596c3d0c60c13df7 (diff)
downloadopenembedded-core-contrib-c616e05691ec143066df8f416cc0b6b464fabd02.tar.gz
Perl: Use CC version not $Config(gccversion)
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@mvista.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/recipes-devtools/perl/perl/perl-errno-generation-gcc5.patch')
-rw-r--r--meta/recipes-devtools/perl/perl/perl-errno-generation-gcc5.patch23
1 files changed, 23 insertions, 0 deletions
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 0000000000..efbc55df29
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl/perl-errno-generation-gcc5.patch
@@ -0,0 +1,23 @@
+Upstream-Status:Inappropriate [embedded specific]
+
+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';
) { .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
2008-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR c/35751
	* c-decl.c (finish_decl): If extern or static var has variable
	size, set TREE_TYPE (decl) to error_mark_node.

	* decl.c (layout_var_decl): If extern or static var has variable
	size, set TREE_TYPE (decl) to error_mark_node.

	* gcc.dg/gomp/pr35751.c: New test.
	* g++.dg/gomp/pr35751.C: New test.

--- gcc/c-decl.c.jj	2008-04-03 09:41:42.000000000 +0200
+++ gcc/c-decl.c	2008-04-03 18:20:52.000000000 +0200
@@ -3481,7 +3481,10 @@ finish_decl (tree decl, tree init, tree 
 	  if (TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST)
 	    constant_expression_warning (DECL_SIZE (decl));
 	  else
-	    error ("storage size of %q+D isn%'t constant", decl);
+	    {
+	      error ("storage size of %q+D isn%'t constant", decl);
+	      TREE_TYPE (decl) = error_mark_node;
+	    }
 	}
 
       if (TREE_USED (type))
--- gcc/cp/decl.c.jj	2008-03-31 23:54:40.000000000 +0200
+++ gcc/cp/decl.c	2008-04-03 18:30:19.000000000 +0200
@@ -4442,7 +4442,10 @@ layout_var_decl (tree decl)
       if (TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST)
 	constant_expression_warning (DECL_SIZE (decl));
       else
-	error ("storage size of %qD isn't constant", decl);
+	{
+	  error ("storage size of %qD isn't constant", decl);
+	  TREE_TYPE (decl) = error_mark_node;
+	}
     }
 }
 
--- gcc/testsuite/gcc.dg/gomp/pr35751.c.jj	2008-04-03 18:26:12.000000000 +0200
+++ gcc/testsuite/gcc.dg/gomp/pr35751.c	2008-04-03 18:25:51.000000000 +0200
@@ -0,0 +1,34 @@
+/* PR c/35751 */
+/* { dg-do compile } */
+/* { dg-options "-fopenmp" } */
+
+void
+foo (int i)
+{
+  extern int a[i];	/* { dg-error "must have no linkage|storage size of" } */
+  static int b[i];	/* { dg-error "storage size of" } */
+
+#pragma omp parallel
+  {
+    a[0] = 0;
+    b[0] = 0;
+  }
+
+#pragma omp parallel shared (a, b)
+  {
+    a[0] = 0;
+    b[0] = 0;
+  }
+
+#pragma omp parallel private (a, b)
+  {
+    a[0] = 0;
+    b[0] = 0;
+  }
+
+#pragma omp parallel firstprivate (a, b)
+  {
+    a[0] = 0;
+    b[0] = 0;
+  }
+}
--- gcc/testsuite/g++.dg/gomp/pr35751.C.jj	2008-04-03 18:32:13.000000000 +0200
+++ gcc/testsuite/g++.dg/gomp/pr35751.C	2008-04-03 18:32:32.000000000 +0200
@@ -0,0 +1,34 @@
+// PR c/35751
+// { dg-do compile }
+// { dg-options "-fopenmp" }
+
+void
+foo (int i)
+{
+  extern int a[i];	// { dg-error "storage size of" }
+  static int b[i];	// { dg-error "storage size of" }
+
+#pragma omp parallel
+  {
+    a[0] = 0;
+    b[0] = 0;
+  }
+
+#pragma omp parallel shared (a, b)
+  {
+    a[0] = 0;
+    b[0] = 0;
+  }
+
+#pragma omp parallel private (a, b)
+  {
+    a[0] = 0;
+    b[0] = 0;
+  }
+
+#pragma omp parallel firstprivate (a, b)
+  {
+    a[0] = 0;
+    b[0] = 0;
+  }
+}