Fix building core C compiler.
PowerPC unveiled that you can't reliably build a target libgcc until you have C library headers.
In fact you can't build it at all. The fact that it did build for some architectures was purely coincidental, and a mistake.
This fix should still allow to build uClibc-based toolchains (some ARM uClibc toolchains were build-tested).
/trunk/scripts/build/cc_gcc.sh | 100 47 53 0 +++++++++++++++++++++++-------------------------
1 file changed, 47 insertions(+), 53 deletions(-)
1 diff -durN gcc-3.4.6.orig/gcc/flow.c gcc-3.4.6/gcc/flow.c
2 --- gcc-3.4.6.orig/gcc/flow.c 2005-09-01 22:51:09.000000000 +0200
3 +++ gcc-3.4.6/gcc/flow.c 2007-08-15 23:00:30.000000000 +0200
5 rtx set_src = SET_SRC (pc_set (BB_END (bb)));
6 rtx cond_true = XEXP (set_src, 0);
7 rtx reg = XEXP (cond_true, 0);
8 + enum rtx_code inv_cond;
10 if (GET_CODE (reg) == SUBREG)
11 reg = SUBREG_REG (reg);
12 @@ -1892,11 +1893,13 @@
13 in the form of a comparison of a register against zero.
14 If the condition is more complex than that, then it is safe
15 not to record any information. */
16 - if (GET_CODE (reg) == REG
17 + inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
18 + if (inv_cond != UNKNOWN
19 + && GET_CODE (reg) == REG
20 && XEXP (cond_true, 1) == const0_rtx)
23 - = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
24 + = gen_rtx_fmt_ee (inv_cond,
25 GET_MODE (cond_true), XEXP (cond_true, 0),
27 if (GET_CODE (XEXP (set_src, 1)) == PC)