gcc-4.8: Fix meta-fsl-arm iperf build issue
This should fix the problem seen where gcc ICE was happening when compiling iperf with older 2.6.x kernel Test this patch by reverting below commit in meta-fsl-arm commit daf582c93a7283fb0af3b25fe2ada48f4c9985c4 Author: Otavio Salvador <otavio@ossystems.com.br> Date: Tue Jul 2 11:52:51 2013 -0300 perf: Disable FPU tune for i.MX5 SoCs to workaround GCC ICE (From OE-Core rev: 8ab1d16b6c6d946b625b6872e5d0f155206f4bad) Signed-off-by: Khem Raj <raj.khem@gmail.com> CC: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
82877a9665
commit
5aff1820c5
|
@ -71,6 +71,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
|
|||
file://0039-gcc-4.8-PR57717.patch \
|
||||
file://0040-fix-g++-sysroot.patch \
|
||||
file://0041-libtool-avoid-libdir.patch \
|
||||
file://0042-pr57748.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "3b2386c114cd74185aa3754b58a79304"
|
||||
SRC_URI[sha256sum] = "545b44be3ad9f2c4e90e6880f5c9d4f0a8f0e5f67e1ffb0d45da9fa01bb05813"
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
Upstream-Status: Backport
|
||||
Signed-off-by: Khem Raj
|
||||
|
||||
2013-08-01 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR middle-end/57748
|
||||
* stor-layout.c (compute_record_mode): Treat zero-sized array fields
|
||||
like incomplete types.
|
||||
|
||||
testsuite/
|
||||
* gcc.dg/torture/pr57748.c: New test.
|
||||
|
||||
|
||||
Index: gcc-4.8.1/gcc/stor-layout.c
|
||||
===================================================================
|
||||
--- gcc-4.8.1.orig/gcc/stor-layout.c 2013-04-28 10:29:18.000000000 -0700
|
||||
+++ gcc-4.8.1/gcc/stor-layout.c 2013-08-01 15:02:08.018006125 -0700
|
||||
@@ -1618,7 +1618,9 @@
|
||||
&& integer_zerop (TYPE_SIZE (TREE_TYPE (field)))))
|
||||
|| ! host_integerp (bit_position (field), 1)
|
||||
|| DECL_SIZE (field) == 0
|
||||
- || ! host_integerp (DECL_SIZE (field), 1))
|
||||
+ || ! host_integerp (DECL_SIZE (field), 1)
|
||||
+ || (TREE_CODE (TREE_TYPE (field)) == ARRAY_TYPE
|
||||
+ && tree_low_cst (DECL_SIZE (field), 1) == 0))
|
||||
return;
|
||||
|
||||
/* If this field is the whole struct, remember its mode so
|
||||
Index: gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57748.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57748.c 2013-08-01 15:02:08.062006126 -0700
|
||||
@@ -0,0 +1,45 @@
|
||||
+/* PR middle-end/57748 */
|
||||
+/* { dg-do run } */
|
||||
+
|
||||
+#include <stdlib.h>
|
||||
+
|
||||
+extern void abort (void);
|
||||
+
|
||||
+typedef long long V
|
||||
+ __attribute__ ((vector_size (2 * sizeof (long long)), may_alias));
|
||||
+
|
||||
+typedef struct S { V a; V b[0]; } P __attribute__((aligned (1)));
|
||||
+
|
||||
+struct __attribute__((packed)) T { char c; P s; };
|
||||
+
|
||||
+void __attribute__((noinline, noclone))
|
||||
+check (struct T *t)
|
||||
+{
|
||||
+ if (t->s.b[0][0] != 3 || t->s.b[0][1] != 4)
|
||||
+ abort ();
|
||||
+}
|
||||
+
|
||||
+int __attribute__((noinline, noclone))
|
||||
+get_i (void)
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+void __attribute__((noinline, noclone))
|
||||
+foo (P *p)
|
||||
+{
|
||||
+ V a = { 3, 4 };
|
||||
+ int i = get_i();
|
||||
+ p->b[i] = a;
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ struct T *t = (struct T *) malloc (128);
|
||||
+
|
||||
+ foo (&t->s);
|
||||
+ check (t);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
Loading…
Reference in New Issue