diff options
-rw-r--r-- | meta/recipes-core/busybox/busybox/fix-ice-on-mips-while-compiling-with-g-O.patch | 65 |
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 @@ | |||
1 | shell/ash.c: fix ice on mips while compiling with -g -O | ||
2 | |||
3 | Build busybox on mips with -g -O, there is a ice failure: | ||
4 | ... | ||
5 | shell/ash.c:8758:1: internal compiler error: in dwarf2out_var_location, at dwarf2out.c:21264 | ||
6 | ... | ||
7 | Please submit a full bug report, | ||
8 | with preprocessed source if appropriate. | ||
9 | See <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 | |||
15 | The following line caused the ice failure on mips: | ||
16 | ... | ||
17 | void evaltreenr(union node *, int) __attribute__ ((alias("evaltree"),__noreturn__)); | ||
18 | ... | ||
19 | So remove evaltreenr which was a alias of evaltree, and use evaltree | ||
20 | to instead. | ||
21 | |||
22 | Upstream-Status: Pending | ||
23 | |||
24 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
25 | --- | ||
26 | shell/ash.c | 9 ++------- | ||
27 | 1 file changed, 2 insertions(+), 7 deletions(-) | ||
28 | |||
29 | diff --git a/shell/ash.c b/shell/ash.c | ||
30 | index 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 | -- | ||
64 | 1.9.1 | ||
65 | |||