Files
poky/meta/recipes-devtools/gcc/gcc-4.5.1/gcc-poison-parameters.patch
Nitin A Kamble 42d2170f86 recipes: Update upstream-status of patches
python: update upstream-status for patches
binutils: update upstream-status for patches
gcc 4.5.1 4.6.0: update upstream-status for patches
autoconf: update upstream-status for patches
automake: update upstream-status for patches
bison: update upstream-status for patches
distcc: update upstream-status of patches
fstests: update upstream-status for patches
gdb: update upstream-status of patches
intltool: update upstream-status of patches
libtool: update upstream status of patches
linux-libc-headers: update upstream-status for patches
make: update upstream-status for patches
perl: update upstream-status for patches
python-pycurl: update upstream-status for patches
python-pygobject: update upstream status for patches
python-pyrex: update upstream-status for patches
quilt: update upstream-status of patches
tcl: update upstream-status for patches
gnu-config: update upstream-status for patches
gmp: update upstream-status for patches

(From OE-Core rev: a62fa9b213b09bf48c48499d2e3c66a9ee306deb)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-13 11:02:19 +01:00

86 lines
2.2 KiB
Diff

Upstream-Status: Pending
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>
diff --git a/gcc/config.in b/gcc/config.in
index a9e208f..3004321 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -132,6 +132,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. */
diff --git a/gcc/configure b/gcc/configure
index 2e022ed..004ec0b 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -909,6 +909,7 @@ enable_maintainer_mode
enable_version_specific_runtime_libs
with_slibdir
enable_plugin
+enable_target_optspace
'
ac_precious_vars='build_alias
host_alias
@@ -25289,6 +25290,13 @@ $as_echo "#define ENABLE_PLUGIN 1" >>confdefs.h
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)
diff --git a/gcc/configure.ac b/gcc/configure.ac
index ac4ca70..18ec0aa 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -4434,6 +4434,11 @@ if test x"$enable_plugin" = x"yes"; then
AC_DEFINE(ENABLE_PLUGIN, 1, [Define to enable plugin 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)
diff --git a/gcc/opts.c b/gcc/opts.c
index 139cd26..2fdd96a 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -945,6 +945,11 @@ decode_options (unsigned int argc, const char **argv)
else
set_param_value ("min-crossjump-insns", initial_min_crossjump_insns);
+#ifndef ENABLE_TARGET_OPTSPACE
+ if (optimize_size == 1)
+ error ("Do not use -Os option if --enable-target-optspace is not set.");
+#endif
+
if (first_time_p)
{
/* Initialize whether `char' is signed. */