summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.5.1/gcc-poison-parameters.patch
diff options
context:
space:
mode:
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.patch83
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 @@
1gcc: add poison parameters detection
2
3Add the logic that, if not configured with "--enable-target-optspace",
4gcc will meet error when build target app with "-Os" option.
5This could avoid potential binary crash.
6
7Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
8
9diff --git a/gcc/config.in b/gcc/config.in
10index 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. */
26diff --git a/gcc/configure b/gcc/configure
27index 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
52diff --git a/gcc/configure.ac b/gcc/configure.ac
53index 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
68diff --git a/gcc/opts.c b/gcc/opts.c
69index 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. */