diff options
author | Dongxiao Xu <dongxiao.xu@intel.com> | 2010-09-25 10:16:26 +0800 |
---|---|---|
committer | Saul Wold <Saul.Wold@intel.com> | 2010-09-27 08:59:15 -0700 |
commit | ce456306dad3fdf42494830011dacae213c48edf (patch) | |
tree | 0dfca13c02aa1880a5353b21676cc48bd65834b9 /meta/recipes-devtools/gcc | |
parent | b3ef7f59e2c7e7ea232b4a22bfaf423cd747c2a7 (diff) | |
download | openembedded-core-ce456306dad3fdf42494830011dacae213c48edf.tar.gz openembedded-core-ce456306dad3fdf42494830011dacae213c48edf.tar.bz2 openembedded-core-ce456306dad3fdf42494830011dacae213c48edf.zip |
gcc: enable poison parameters detection
If not configured with --enable-target-optspace, gcc will report
errors if there is '-Os' optimization in parameters.
This fixes [BUGID #342]
Also add "--enable-target-optspace" option to arm gcc configuration.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Diffstat (limited to 'meta/recipes-devtools/gcc')
24 files changed, 106 insertions, 22 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.5.0.inc b/meta/recipes-devtools/gcc/gcc-4.5.0.inc index 6da8ddaa53..2b5c82975a 100644 --- a/meta/recipes-devtools/gcc/gcc-4.5.0.inc +++ b/meta/recipes-devtools/gcc/gcc-4.5.0.inc @@ -48,6 +48,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ file://64bithack.patch \ file://optional_libstdc.patch \ file://disable_relax_pic_calls_flag.patch \ + file://gcc-poison-parameters.patch \ " SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 " diff --git a/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-poison-parameters.patch b/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-poison-parameters.patch new file mode 100644 index 0000000000..3cc7cbad4b --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-poison-parameters.patch @@ -0,0 +1,83 @@ +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. */ diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc index d86cb9a0b6..9dd8feef7c 100644 --- a/meta/recipes-devtools/gcc/gcc-configure-common.inc +++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc @@ -17,7 +17,7 @@ LANGUAGES ?= "c,c++${FORTRAN}${JAVA}" # hidden symbols in libgcc.a which linker complains # when linking shared libraries further in the build like (gnutls) -SPECIAL_ARCH_LIST = "powerpc arm" +SPECIAL_ARCH_LIST = "powerpc" OPTSPACE = ${@base_contains("SPECIAL_ARCH_LIST", "${TARGET_ARCH}", "", "--enable-target-optspace",d)} EXTRA_OECONF_BASE ?= "" diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.3.3.bb index 87cd27a95c..43bab3961d 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.3.3.bb @@ -5,7 +5,7 @@ require gcc-cross-canadian.inc require gcc-configure-sdk.inc require gcc-package-sdk.inc -PR = "r18" +PR = "r19" DEPENDS += "gmp-nativesdk mpfr-nativesdk" RDEPENDS_${PN} += "mpfr-nativesdk" diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.0.bb index a9f79b6509..37a0933bd2 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.0.bb @@ -5,7 +5,7 @@ require gcc-cross-canadian.inc require gcc-configure-sdk.inc require gcc-package-sdk.inc -PR = "r8" +PR = "r9" DEPENDS += "gmp-nativesdk mpfr-nativesdk libmpc-nativesdk elfutils-nativesdk" RDEPENDS_${PN} += "mpfr-nativesdk libmpc-nativesdk elfutils-nativesdk" diff --git a/meta/recipes-devtools/gcc/gcc-cross-initial_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-cross-initial_4.3.3.bb index 38e0964fed..081b7d60fb 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-initial_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-initial_4.3.3.bb @@ -1,5 +1,5 @@ require gcc-cross_${PV}.bb require gcc-cross-initial.inc -PR = "r3" +PR = "r4" diff --git a/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.0.bb index e05fb346e8..7072fdf4a0 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.0.bb @@ -1,5 +1,5 @@ require gcc-cross_${PV}.bb require gcc-cross-initial.inc -PR = "r8" +PR = "r9" diff --git a/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.3.3.bb index e65d5df671..9a30cb5119 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.3.3.bb @@ -1,4 +1,4 @@ require gcc-cross_${PV}.bb require gcc-cross-intermediate.inc -PR = "r3" +PR = "r4" diff --git a/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.0.bb index e0147743ee..bb145710c1 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.0.bb @@ -1,4 +1,4 @@ require gcc-cross_${PV}.bb require gcc-cross-intermediate.inc -PR = "r8" +PR = "r9" diff --git a/meta/recipes-devtools/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb b/meta/recipes-devtools/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb index 675d3e44af..88e38420eb 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb @@ -9,7 +9,7 @@ require gcc-cross-kernel.inc DEFAULT_PREFERENCE = "-1" -PR = "r3" +PR = "r4" SRC_URI += "file://gcc-3.4.4-makefile-fix.patch;patch=1" diff --git a/meta/recipes-devtools/gcc/gcc-cross_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-cross_4.3.3.bb index d22fb9ed22..5eaac5fa1b 100644 --- a/meta/recipes-devtools/gcc/gcc-cross_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-cross_4.3.3.bb @@ -1,4 +1,4 @@ -PR = "r16" +PR = "r17" require gcc-${PV}.inc require gcc-cross4.inc diff --git a/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb index d3a068e1f6..72032762bf 100644 --- a/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb @@ -1,4 +1,4 @@ -PR = "r9" +PR = "r10" require gcc-${PV}.inc require gcc-cross4.inc diff --git a/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb b/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb index 7cef7e7a3a..89534f18ec 100644 --- a/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb +++ b/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb @@ -1,4 +1,4 @@ -PR = "r4" +PR = "r5" require gcc-csl-arm-2008q1.inc require gcc-cross4.inc diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.3.3.bb index 44dd50dcb8..5daa31b888 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.3.3.bb @@ -1,3 +1,3 @@ require gcc-cross-initial_${PV}.bb require gcc-crosssdk-initial.inc -PR = "r4" +PR = "r5" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.0.bb index 9daa2925b1..c14846a397 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.0.bb @@ -1,4 +1,4 @@ require gcc-cross-initial_${PV}.bb require gcc-crosssdk-initial.inc -PR = "r8" +PR = "r9" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.3.3.bb index ae439622ac..cd1f96651b 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.3.3.bb @@ -1,3 +1,3 @@ require gcc-cross-intermediate_${PV}.bb require gcc-crosssdk-intermediate.inc -PR = "r7" +PR = "r8" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.0.bb index eeb2d87d54..b8204c4dc6 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.0.bb @@ -1,4 +1,4 @@ require gcc-cross-intermediate_${PV}.bb require gcc-crosssdk-intermediate.inc -PR = "r8" +PR = "r9" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-crosssdk_4.3.3.bb index ffbd671598..12de62ae3f 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk_4.3.3.bb @@ -1,3 +1,3 @@ require gcc-cross_${PV}.bb require gcc-crosssdk.inc -PR="r2" +PR="r3" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.0.bb index ffb0739c5d..df4807d5ad 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.0.bb @@ -1,4 +1,4 @@ require gcc-cross_${PV}.bb require gcc-crosssdk.inc -PR = "r8" +PR = "r9" diff --git a/meta/recipes-devtools/gcc/gcc-runtime_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-runtime_4.3.3.bb index 8c7c123f2e..6b375f323a 100644 --- a/meta/recipes-devtools/gcc/gcc-runtime_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-runtime_4.3.3.bb @@ -1,4 +1,4 @@ -PR = "r16" +PR = "r17" require gcc-${PV}.inc require gcc-configure-runtime.inc diff --git a/meta/recipes-devtools/gcc/gcc-runtime_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-runtime_4.5.0.bb index 79ce466a29..2bfc0df1cb 100644 --- a/meta/recipes-devtools/gcc/gcc-runtime_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-runtime_4.5.0.bb @@ -1,4 +1,4 @@ -PR = "r8" +PR = "r9" require gcc-${PV}.inc require gcc-configure-runtime.inc diff --git a/meta/recipes-devtools/gcc/gcc_4.3.3.bb b/meta/recipes-devtools/gcc/gcc_4.3.3.bb index ca22e0f69c..582fff49ac 100644 --- a/meta/recipes-devtools/gcc/gcc_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc_4.3.3.bb @@ -1,4 +1,4 @@ -PR = "r9" +PR = "r10" require gcc-${PV}.inc require gcc-configure-target.inc diff --git a/meta/recipes-devtools/gcc/gcc_4.5.0.bb b/meta/recipes-devtools/gcc/gcc_4.5.0.bb index a42fb39764..880c99c8e9 100644 --- a/meta/recipes-devtools/gcc/gcc_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc_4.5.0.bb @@ -1,4 +1,4 @@ -PR = "r8" +PR = "r9" require gcc-${PV}.inc require gcc-configure-target.inc diff --git a/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb b/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb index 4999c6a53e..cc7540af15 100644 --- a/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb +++ b/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb @@ -1,4 +1,4 @@ -PR = "r2" +PR = "r3" require gcc-${PV}.inc require gcc-configure-target.inc |