summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-core/busybox/busybox/fix-ice-on-mips-while-compiling-with-g-O.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/meta/recipes-core/busybox/busybox/fix-ice-on-mips-while-compiling-with-g-O.patch b/meta/recipes-core/busybox/busybox/fix-ice-on-mips-while-compiling-with-g-O.patch
new file mode 100644
index 0000000000..d8bf5da696
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/fix-ice-on-mips-while-compiling-with-g-O.patch
@@ -0,0 +1,65 @@
1shell/ash.c: fix ice on mips while compiling with -g -O
2
3Build busybox on mips with -g -O, there is a ice failure:
4...
5shell/ash.c:8758:1: internal compiler error: in dwarf2out_var_location, at dwarf2out.c:21264
6...
7Please submit a full bug report,
8with preprocessed source if appropriate.
9See <http://gcc.gnu.org/bugs.html> for instructions.
10{standard input}: Assembler messages:
11{standard input}: Warning: missing .end at end of assembly
12{standard input}: Error: open CFI at the end of file; missing .cfi_endproc directive
13...
14
15The following line caused the ice failure on mips:
16...
17void evaltreenr(union node *, int) __attribute__ ((alias("evaltree"),__noreturn__));
18...
19So remove evaltreenr which was a alias of evaltree, and use evaltree
20to instead.
21
22Upstream-Status: Pending
23
24Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
25---
26 shell/ash.c | 9 ++-------
27 1 file changed, 2 insertions(+), 7 deletions(-)
28
29diff --git a/shell/ash.c b/shell/ash.c
30index 71ef9a6..4462e40 100644
31--- a/shell/ash.c
32+++ b/shell/ash.c
33@@ -8490,11 +8490,6 @@ evaltree(union node *n, int flags)
34 TRACE(("leaving evaltree (no interrupts)\n"));
35 }
36
37-#if !defined(__alpha__) || (defined(__GNUC__) && __GNUC__ >= 3)
38-static
39-#endif
40-void evaltreenr(union node *, int) __attribute__ ((alias("evaltree"),__noreturn__));
41-
42 static void
43 evalloop(union node *n, int flags)
44 {
45@@ -8621,7 +8616,7 @@ evalsubshell(union node *n, int flags)
46 flags &= ~EV_TESTED;
47 nofork:
48 redirect(n->nredir.redirect, 0);
49- evaltreenr(n->nredir.n, flags);
50+ evaltree(n->nredir.n, flags);
51 /* never returns */
52 }
53 status = 0;
54@@ -8740,7 +8735,7 @@ evalpipe(union node *n, int flags)
55 dup2(pip[1], 1);
56 close(pip[1]);
57 }
58- evaltreenr(lp->n, flags);
59+ evaltree(lp->n, flags);
60 /* never returns */
61 }
62 if (prevfd >= 0)
63--
641.9.1
65