From 77cfa2bcd797ec0b4f9d4c5ae8346efb07a67165 Mon Sep 17 00:00:00 2001 From: Andre McCurdy Date: Wed, 24 Feb 2016 14:39:33 -0800 Subject: glibc.inc: improve optimisation level sanity checking - Avoid code duplication to handle -O, -O1 and -Os cases - Consider the effective optimisation level only (avoids spurious warnings if multiple optimisation flags are present). - Prefix warnings with PN instead of hardcoding "glibc" (avoids confusing warnings since the test is also applied to glibc-initial, nativesdk-glibc, nativesdk-glibc-initial, etc, and each could potentually have different optimisation flags). (From OE-Core rev: 9d72015e3458c78a9f0d20ad3dc27c8a9bb1069c) Signed-off-by: Andre McCurdy Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/recipes-core/glibc/glibc.inc | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'meta/recipes-core/glibc/glibc.inc') diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc index 5711209c71..bf1dccdeb8 100644 --- a/meta/recipes-core/glibc/glibc.inc +++ b/meta/recipes-core/glibc/glibc.inc @@ -8,19 +8,15 @@ 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, 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.") - d.appendVar("SELECTED_OPTIMIZATION", " -Wno-error") - elif bb.utils.contains("SELECTED_OPTIMIZATION", "-O0", "x", "", d) == "x": - 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.") - 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.") + opt_effective = "-O" + for opt in d.getVar('SELECTED_OPTIMIZATION', True).split(): + if opt in ("-O0", "-O", "-O1", "-O2", "-O3", "-Os"): + opt_effective = opt + if opt_effective == "-O0": + bb.fatal("%s can't be built with %s, try -O1 instead" % (d.getVar('PN', True), opt_effective)) + if opt_effective in ("-O", "-O1", "-Os"): + bb.note("%s doesn't build cleanly with %s, adding -Wno-error to SELECTED_OPTIMIZATION" % (d.getVar('PN', True), opt_effective)) d.appendVar("SELECTED_OPTIMIZATION", " -Wno-error") } -- cgit v1.2.3-54-g00ecf