From patchwork Wed Nov 28 06:11:31 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [2/2] eglibc: always compile with optimization. Date: Wed, 28 Nov 2012 06:11:31 -0000 From: jackie huang X-Patchwork-Id: 39769 Message-Id: <16914f95513f9405bbe1371e83647bf8855c2f9a.1354081123.git.jackie.huang@windriver.com> To: Cc: Jackie.Huang@windriver.com, saul.wold@intel.com From: Jackie Huang eglibc fails to compile if someone tries to compile an entire image as -O0: error "glibc cannot be compiled without optimization" so in this case, force to use -O2 and give a note about it. [YOCTO #3405] Signed-off-by: Jackie Huang --- meta/recipes-core/eglibc/eglibc.inc | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc index 3d136bf..1e04197 100644 --- a/meta/recipes-core/eglibc/eglibc.inc +++ b/meta/recipes-core/eglibc/eglibc.inc @@ -8,6 +8,17 @@ PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}" +# eglibc 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 base_contains("SELECTED_OPTIMIZATION", "-O0", "x", "", d) == "x": + bb.note("eglibc can't be built with -O0, -O2 will be used instead.") + return selected_optimization.replace("-O0", "-O2") + return selected_optimization + +SELECTED_OPTIMIZATION := "${@get_optimization(d)}" + # siteconfig.bbclass runs configure which needs a working compiler # For the compiler to work we need a working libc yet libc isn't # in the sysroots directory at this point. This means the libc.so