diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.5.1/gcc-poison-parameters.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.5.1/gcc-poison-parameters.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.5.1/gcc-poison-parameters.patch b/meta/recipes-devtools/gcc/gcc-4.5.1/gcc-poison-parameters.patch new file mode 100644 index 0000000000..3cc7cbad4b --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.5.1/gcc-poison-parameters.patch | |||
@@ -0,0 +1,83 @@ | |||
1 | gcc: add poison parameters detection | ||
2 | |||
3 | Add the logic that, if not configured with "--enable-target-optspace", | ||
4 | gcc will meet error when build target app with "-Os" option. | ||
5 | This could avoid potential binary crash. | ||
6 | |||
7 | Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> | ||
8 | |||
9 | diff --git a/gcc/config.in b/gcc/config.in | ||
10 | index a9e208f..3004321 100644 | ||
11 | --- a/gcc/config.in | ||
12 | +++ b/gcc/config.in | ||
13 | @@ -132,6 +132,12 @@ | ||
14 | #endif | ||
15 | |||
16 | |||
17 | +/* Define to enable target optspace support. */ | ||
18 | +#ifndef USED_FOR_TARGET | ||
19 | +#undef ENABLE_TARGET_OPTSPACE | ||
20 | +#endif | ||
21 | + | ||
22 | + | ||
23 | /* Define if you want all operations on RTL (the basic data structure of the | ||
24 | optimizer and back end) to be checked for dynamic type safety at runtime. | ||
25 | This is quite expensive. */ | ||
26 | diff --git a/gcc/configure b/gcc/configure | ||
27 | index 2e022ed..004ec0b 100755 | ||
28 | --- a/gcc/configure | ||
29 | +++ b/gcc/configure | ||
30 | @@ -909,6 +909,7 @@ enable_maintainer_mode | ||
31 | enable_version_specific_runtime_libs | ||
32 | with_slibdir | ||
33 | enable_plugin | ||
34 | +enable_target_optspace | ||
35 | ' | ||
36 | ac_precious_vars='build_alias | ||
37 | host_alias | ||
38 | @@ -25289,6 +25290,13 @@ $as_echo "#define ENABLE_PLUGIN 1" >>confdefs.h | ||
39 | |||
40 | fi | ||
41 | |||
42 | +if test x"$enable_target_optspace" != x; then : | ||
43 | + | ||
44 | +$as_echo "#define ENABLE_TARGET_OPTSPACE 1" >>confdefs.h | ||
45 | + | ||
46 | +fi | ||
47 | + | ||
48 | + | ||
49 | # Configure the subdirectories | ||
50 | # AC_CONFIG_SUBDIRS($subdirs) | ||
51 | |||
52 | diff --git a/gcc/configure.ac b/gcc/configure.ac | ||
53 | index ac4ca70..18ec0aa 100644 | ||
54 | --- a/gcc/configure.ac | ||
55 | +++ b/gcc/configure.ac | ||
56 | @@ -4434,6 +4434,11 @@ if test x"$enable_plugin" = x"yes"; then | ||
57 | AC_DEFINE(ENABLE_PLUGIN, 1, [Define to enable plugin support.]) | ||
58 | fi | ||
59 | |||
60 | +AC_SUBST(enable_target_optspace) | ||
61 | +if test x"$enable_target_optspace" != x; then | ||
62 | + AC_DEFINE(ENABLE_TARGET_OPTSPACE, 1, [Define to enable target optspace support.]) | ||
63 | +fi | ||
64 | + | ||
65 | # Configure the subdirectories | ||
66 | # AC_CONFIG_SUBDIRS($subdirs) | ||
67 | |||
68 | diff --git a/gcc/opts.c b/gcc/opts.c | ||
69 | index 139cd26..2fdd96a 100644 | ||
70 | --- a/gcc/opts.c | ||
71 | +++ b/gcc/opts.c | ||
72 | @@ -945,6 +945,11 @@ decode_options (unsigned int argc, const char **argv) | ||
73 | else | ||
74 | set_param_value ("min-crossjump-insns", initial_min_crossjump_insns); | ||
75 | |||
76 | +#ifndef ENABLE_TARGET_OPTSPACE | ||
77 | + if (optimize_size == 1) | ||
78 | + error ("Do not use -Os option if --enable-target-optspace is not set."); | ||
79 | +#endif | ||
80 | + | ||
81 | if (first_time_p) | ||
82 | { | ||
83 | /* Initialize whether `char' is signed. */ | ||