summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHongxu Jia <hongxu.jia@windriver.com>2016-01-29 12:35:57 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-01-30 11:38:00 +0000
commit6fef0d528158e6317793b1ebfa26a7b5413c3e80 (patch)
treeee5450af2bc1359ceaf38a301df70fc376916b52
parentbdd8d79671b9a9fd90d427c9e95ab08af85c394a (diff)
downloadopenembedded-core-contrib-6fef0d528158e6317793b1ebfa26a7b5413c3e80.tar.gz
openembedded-core-contrib-6fef0d528158e6317793b1ebfa26a7b5413c3e80.tar.bz2
openembedded-core-contrib-6fef0d528158e6317793b1ebfa26a7b5413c3e80.zip
glibc.inc: do not immediate expand SELECTED_OPTIMIZATION
We need to expand SELECTED_OPTIMIZATION later, so do not immediate expansion, and do the work in anonymous python function. It is reasonable to give an error for -O0. [YOCTO #7058] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/glibc/glibc.inc22
1 files changed, 8 insertions, 14 deletions
diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc
index 17fa2d52a5..7c4551a4aa 100644
--- a/meta/recipes-core/glibc/glibc.inc
+++ b/meta/recipes-core/glibc/glibc.inc
@@ -9,26 +9,20 @@ PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
# glibc can't be built without optimization, if someone tries to compile an
-# entire image as -O0, we override it with -O2 here and give a note about it.
-def get_optimization(d):
- selected_optimization = d.getVar("SELECTED_OPTIMIZATION", True)
- if bb.utils.contains("SELECTED_OPTIMIZATION", "-O2", "x", "", d) == "x":
- return selected_optimization
- elif bb.utils.contains("SELECTED_OPTIMIZATION", "-O", "x", "", d) == "x":
+# entire image as -O0, break with fatal.
+python () {
+ if bb.utils.contains("SELECTED_OPTIMIZATION", "-O", "x", "", d) == "x":
bb.note("glibc can't be built with -O, -O -Wno-error will be used instead.")
- return selected_optimization.replace("-O", "-O -Wno-error")
+ d.appendVar("SELECTED_OPTIMIZATION", " -Wno-error")
elif bb.utils.contains("SELECTED_OPTIMIZATION", "-O0", "x", "", d) == "x":
- bb.note("glibc can't be built with -O0, -O2 will be used instead.")
- return selected_optimization.replace("-O0", "-O2")
+ bb.fatal("glibc can't be built with -O0, using -O1 -Wno-error or -O1 instead.")
elif bb.utils.contains("SELECTED_OPTIMIZATION", "-Os", "x", "", d) == "x":
bb.note("glibc can't be built with -Os, -Os -Wno-error will be used instead.")
- return selected_optimization.replace("-Os", "-Os -Wno-error")
+ d.appendVar("SELECTED_OPTIMIZATION", " -Wno-error")
elif bb.utils.contains("SELECTED_OPTIMIZATION", "-O1", "x", "", d) == "x":
bb.note("glibc can't be built with -O1, -O1 -Wno-error will be used instead.")
- return selected_optimization.replace("-O1", "-O1 -Wno-error")
- return selected_optimization
-
-SELECTED_OPTIMIZATION := "${@get_optimization(d)}"
+ d.appendVar("SELECTED_OPTIMIZATION", " -Wno-error")
+}
# siteconfig.bbclass runs configure which needs a working compiler
# For the compiler to work we need a working libc yet libc isn't