patches/gcc/4.2.4/260-flatten-switch-stmt-00.patch
author |
"Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com> |
|
Thu Jul 28 22:09:31 2011 +0200 (2011-07-28) |
changeset 2573 |
424fa2092ace |
parent 687 |
b2b6b1d46aa1
|
permissions |
-rw-r--r-- |
scripts/libc: do not build add-ons by default
Currently, no --enable-add-ons option is passed to libc configure when
"$(do_libc_add_ons_list ,)" is empty, which makes configure automatically search
for present add-ons. In that case, all present add-ons are built, although
no add-on was selected by the user in the config. Moreover, this can make the
configure fail if some non-standard add-ons like eglibc-localedef are present.
This behavior also leads to an inconsistency from a user point of view between
the following cases:
- LIBC_ADDONS_LIST="", LIBC_GLIBC_USE_PORTS=n and THREADS="none" in the config,
which makes "$(do_libc_add_ons_list ,)" return "", so all present add-ons
are built.
- LIBC_ADDONS_LIST="", LIBC_GLIBC_USE_PORTS=n and THREADS!="none" in the
config, which makes "$(do_libc_add_ons_list ,)" return the add-on supporting
the chosen threading implementation, e.g. "nptl", so only this add-on is
built.
This patch disables the building of all add-ons in that case.
It is still possible to build all present add-ons by adding --enable-add-ons to
LIBC_GLIBC_EXTRA_CONFIG_ARRAY.
Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
yann@687
|
1 |
diff -durN gcc-4.2.1.orig/gcc/stmt.c gcc-4.2.1/gcc/stmt.c
|
yann@687
|
2 |
--- gcc-4.2.1.orig/gcc/stmt.c 2007-07-19 05:25:32.000000000 +0200
|
yann@687
|
3 |
+++ gcc-4.2.1/gcc/stmt.c 2007-08-03 20:37:19.000000000 +0200
|
yann@687
|
4 |
@@ -2512,7 +2512,11 @@
|
yann@687
|
5 |
use_cost_table
|
yann@687
|
6 |
= (TREE_CODE (orig_type) != ENUMERAL_TYPE
|
yann@687
|
7 |
&& estimate_case_costs (case_list));
|
yann@687
|
8 |
- balance_case_nodes (&case_list, NULL);
|
yann@687
|
9 |
+ /* When optimizing for size, we want a straight list to avoid
|
yann@687
|
10 |
+ jumps as much as possible. This basically creates an if-else
|
yann@687
|
11 |
+ chain. */
|
yann@687
|
12 |
+ if (!optimize_size)
|
yann@687
|
13 |
+ balance_case_nodes (&case_list, NULL);
|
yann@687
|
14 |
emit_case_nodes (index, case_list, default_label, index_type);
|
yann@687
|
15 |
emit_jump (default_label);
|
yann@687
|
16 |
}
|
yann@687
|
17 |
@@ -3070,6 +3074,7 @@
|
yann@687
|
18 |
{
|
yann@687
|
19 |
if (!node_has_low_bound (node, index_type))
|
yann@687
|
20 |
{
|
yann@687
|
21 |
+ if (!optimize_size) /* don't jl to the .default_label. */
|
yann@687
|
22 |
emit_cmp_and_jump_insns (index,
|
yann@687
|
23 |
convert_modes
|
yann@687
|
24 |
(mode, imode,
|