From 6fef0d528158e6317793b1ebfa26a7b5413c3e80 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Fri, 29 Jan 2016 12:35:57 -0500 Subject: 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 Signed-off-by: Richard Purdie --- meta/recipes-core/glibc/glibc.inc | 22 ++++++++-------------- 1 file 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 -- cgit 1.2.3-korg