diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-poison-parameters.patch')
| -rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.6.0/gcc-poison-parameters.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-poison-parameters.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-poison-parameters.patch new file mode 100644 index 0000000000..f36fa8195e --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-poison-parameters.patch | |||
| @@ -0,0 +1,74 @@ | |||
| 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 | Index: gcc-4.6.0/gcc/config.in | ||
| 10 | =================================================================== | ||
| 11 | --- gcc-4.6.0.orig/gcc/config.in | ||
| 12 | +++ gcc-4.6.0/gcc/config.in | ||
| 13 | @@ -150,6 +150,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 | Index: gcc-4.6.0/gcc/configure | ||
| 27 | =================================================================== | ||
| 28 | --- gcc-4.6.0.orig/gcc/configure | ||
| 29 | +++ gcc-4.6.0/gcc/configure | ||
| 30 | @@ -26434,6 +26434,13 @@ $as_echo "#define ENABLE_LIBQUADMATH_SUP | ||
| 31 | fi | ||
| 32 | |||
| 33 | |||
| 34 | +if test x"$enable_target_optspace" != x; then : | ||
| 35 | + | ||
| 36 | +$as_echo "#define ENABLE_TARGET_OPTSPACE 1" >>confdefs.h | ||
| 37 | + | ||
| 38 | +fi | ||
| 39 | + | ||
| 40 | + | ||
| 41 | # Configure the subdirectories | ||
| 42 | # AC_CONFIG_SUBDIRS($subdirs) | ||
| 43 | |||
| 44 | Index: gcc-4.6.0/gcc/configure.ac | ||
| 45 | =================================================================== | ||
| 46 | --- gcc-4.6.0.orig/gcc/configure.ac | ||
| 47 | +++ gcc-4.6.0/gcc/configure.ac | ||
| 48 | @@ -4907,6 +4907,11 @@ if test "${ENABLE_LIBQUADMATH_SUPPORT}" | ||
| 49 | fi | ||
| 50 | |||
| 51 | |||
| 52 | +AC_SUBST(enable_target_optspace) | ||
| 53 | +if test x"$enable_target_optspace" != x; then | ||
| 54 | + AC_DEFINE(ENABLE_TARGET_OPTSPACE, 1, [Define to enable target optspace support.]) | ||
| 55 | +fi | ||
| 56 | + | ||
| 57 | # Configure the subdirectories | ||
| 58 | # AC_CONFIG_SUBDIRS($subdirs) | ||
| 59 | |||
| 60 | Index: gcc-4.6.0/gcc/opts.c | ||
| 61 | =================================================================== | ||
| 62 | --- gcc-4.6.0.orig/gcc/opts.c | ||
| 63 | +++ gcc-4.6.0/gcc/opts.c | ||
| 64 | @@ -605,6 +605,10 @@ default_options_optimization (struct gcc | ||
| 65 | maybe_set_param_value (PARAM_MIN_CROSSJUMP_INSNS, | ||
| 66 | default_param_value (PARAM_MIN_CROSSJUMP_INSNS), | ||
| 67 | opts->x_param_values, opts_set->x_param_values); | ||
| 68 | +#ifndef ENABLE_TARGET_OPTSPACE | ||
| 69 | + if (optimize_size == 1) | ||
| 70 | + error ("Do not use -Os option if --enable-target-optspace is not set."); | ||
| 71 | +#endif | ||
| 72 | |||
| 73 | /* Allow default optimizations to be specified on a per-machine basis. */ | ||
| 74 | maybe_default_options (opts, opts_set, | ||
