75 lines
2.3 KiB
Diff
75 lines
2.3 KiB
Diff
gcc: add poison parameters detection
|
|
|
|
Add the logic that, if not configured with "--enable-target-optspace",
|
|
gcc will meet error when build target app with "-Os" option.
|
|
This could avoid potential binary crash.
|
|
|
|
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
|
|
|
|
Index: gcc-4.6.0/gcc/config.in
|
|
===================================================================
|
|
--- gcc-4.6.0.orig/gcc/config.in
|
|
+++ gcc-4.6.0/gcc/config.in
|
|
@@ -150,6 +150,12 @@
|
|
#endif
|
|
|
|
|
|
+/* Define to enable target optspace support. */
|
|
+#ifndef USED_FOR_TARGET
|
|
+#undef ENABLE_TARGET_OPTSPACE
|
|
+#endif
|
|
+
|
|
+
|
|
/* Define if you want all operations on RTL (the basic data structure of the
|
|
optimizer and back end) to be checked for dynamic type safety at runtime.
|
|
This is quite expensive. */
|
|
Index: gcc-4.6.0/gcc/configure
|
|
===================================================================
|
|
--- gcc-4.6.0.orig/gcc/configure
|
|
+++ gcc-4.6.0/gcc/configure
|
|
@@ -26434,6 +26434,13 @@ $as_echo "#define ENABLE_LIBQUADMATH_SUP
|
|
fi
|
|
|
|
|
|
+if test x"$enable_target_optspace" != x; then :
|
|
+
|
|
+$as_echo "#define ENABLE_TARGET_OPTSPACE 1" >>confdefs.h
|
|
+
|
|
+fi
|
|
+
|
|
+
|
|
# Configure the subdirectories
|
|
# AC_CONFIG_SUBDIRS($subdirs)
|
|
|
|
Index: gcc-4.6.0/gcc/configure.ac
|
|
===================================================================
|
|
--- gcc-4.6.0.orig/gcc/configure.ac
|
|
+++ gcc-4.6.0/gcc/configure.ac
|
|
@@ -4907,6 +4907,11 @@ if test "${ENABLE_LIBQUADMATH_SUPPORT}"
|
|
fi
|
|
|
|
|
|
+AC_SUBST(enable_target_optspace)
|
|
+if test x"$enable_target_optspace" != x; then
|
|
+ AC_DEFINE(ENABLE_TARGET_OPTSPACE, 1, [Define to enable target optspace support.])
|
|
+fi
|
|
+
|
|
# Configure the subdirectories
|
|
# AC_CONFIG_SUBDIRS($subdirs)
|
|
|
|
Index: gcc-4.6.0/gcc/opts.c
|
|
===================================================================
|
|
--- gcc-4.6.0.orig/gcc/opts.c
|
|
+++ gcc-4.6.0/gcc/opts.c
|
|
@@ -605,6 +605,10 @@ default_options_optimization (struct gcc
|
|
maybe_set_param_value (PARAM_MIN_CROSSJUMP_INSNS,
|
|
default_param_value (PARAM_MIN_CROSSJUMP_INSNS),
|
|
opts->x_param_values, opts_set->x_param_values);
|
|
+#ifndef ENABLE_TARGET_OPTSPACE
|
|
+ if (optimize_size == 1)
|
|
+ error ("Do not use -Os option if --enable-target-optspace is not set.");
|
|
+#endif
|
|
|
|
/* Allow default optimizations to be specified on a per-machine basis. */
|
|
maybe_default_options (opts, opts_set,
|