diff options
Diffstat (limited to 'recipes-devtools/gcc/gcc-4.5/gcc-poison-parameters.patch')
| -rw-r--r-- | recipes-devtools/gcc/gcc-4.5/gcc-poison-parameters.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/recipes-devtools/gcc/gcc-4.5/gcc-poison-parameters.patch b/recipes-devtools/gcc/gcc-4.5/gcc-poison-parameters.patch new file mode 100644 index 0000000000..3cc7cbad4b --- /dev/null +++ b/recipes-devtools/gcc/gcc-4.5/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. */ | ||
