Remove CT_BROKEN.
Only one component is actually BROKEN (libelf), make it depend on EXPERIMENTAL, but state BROKEN in the prompt.
ltrace (which depends on libelf) is now marked as EXPERIMENTAL, with the reference to the BROKEN libelf in the help entry.
/trunk/docs/overview.txt | 6 0 6 0 ------
/trunk/config/debug/ltrace.in | 7 4 3 0 ++++---
/trunk/config/global/ct-behave.in | 8 0 8 0 --------
/trunk/config/tools/libelf.in | 5 3 2 0 +++--
4 files changed, 7 insertions(+), 19 deletions(-)
1 Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/18_all_904-flatten-switch-stmt-00.patch
2 http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00927.html
6 The attached patch makes sure that we create smaller object code for
7 simple switch statements. We just make sure to flatten the switch
8 statement into an if-else chain, basically.
10 This fixes a size-regression as compared to gcc-3.4, as can be seen
13 2007-04-15 Bernhard Fischer <..>
15 * stmt.c (expand_case): Do not create a complex binary tree when
16 optimizing for size but rather use the simple ordered list.
17 (emit_case_nodes): do not emit jumps to the default_label when
23 Attached is the test switch.c mentioned below.
25 $ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
26 gcc-$i -DCHAIN -Os -o switch-CHAIN-$i.o -c switch.c ;done
27 $ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
28 gcc-$i -UCHAIN -Os -o switch-$i.o -c switch.c ;done
31 text data bss dec hex filename
32 169 0 0 169 a9 switch-2.95.o
33 115 0 0 115 73 switch-3.3.o
34 103 0 0 103 67 switch-3.4.o
35 124 0 0 124 7c switch-4.0.o
36 124 0 0 124 7c switch-4.1.o
37 124 0 0 124 7c switch-4.2.orig-HEAD.o
38 95 0 0 95 5f switch-4.3-HEAD.o
39 124 0 0 124 7c switch-4.3.orig-HEAD.o
40 166 0 0 166 a6 switch-CHAIN-2.95.o
41 111 0 0 111 6f switch-CHAIN-3.3.o
42 95 0 0 95 5f switch-CHAIN-3.4.o
43 95 0 0 95 5f switch-CHAIN-4.0.o
44 95 0 0 95 5f switch-CHAIN-4.1.o
45 95 0 0 95 5f switch-CHAIN-4.2.orig-HEAD.o
46 95 0 0 95 5f switch-CHAIN-4.3-HEAD.o
47 95 0 0 95 5f switch-CHAIN-4.3.orig-HEAD.o
50 Content-Type: text/x-diff; charset=us-ascii
51 Content-Disposition: attachment; filename="gcc-4.3.gcc-flatten-switch-stmt.00.diff"
53 diff -durN gcc-4.3.1.orig/gcc/stmt.c gcc-4.3.1/gcc/stmt.c
54 --- gcc-4.3.1.orig/gcc/stmt.c 2008-05-09 20:12:13.000000000 +0200
55 +++ gcc-4.3.1/gcc/stmt.c 2008-06-10 14:57:58.000000000 +0200
56 @@ -2509,7 +2509,11 @@
58 = (TREE_CODE (orig_type) != ENUMERAL_TYPE
59 && estimate_case_costs (case_list));
60 - balance_case_nodes (&case_list, NULL);
61 + /* When optimizing for size, we want a straight list to avoid
62 + jumps as much as possible. This basically creates an if-else
65 + balance_case_nodes (&case_list, NULL);
66 emit_case_nodes (index, case_list, default_label, index_type);
67 emit_jump (default_label);
71 if (!node_has_low_bound (node, index_type))
73 + if (!optimize_size) /* don't jl to the .default_label. */
74 emit_cmp_and_jump_insns (index,