scripts/addToolsVersion: properly handle .in vs. .in.2
While most components have their version in the .in file, some
have it in the .in.2 (eg. elf2flt).
Currently, to handle this case, we indiscriminately munge both files,
but this is wrong: in the elf2flt case, if we add a binutils version,
we do not want it to be added to elf2flt, and conversely.
So, for each tool, we need to explicitly know what file to munge.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
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,