[2/2] eglibc: always compile with optimization.

Submitted by jackie huang on Nov. 28, 2012, 6:11 a.m. | Patch ID: 39769


Message ID 16914f95513f9405bbe1371e83647bf8855c2f9a.1354081123.git.jackie.huang@windriver.com
State New
Headers show

Commit Message

jackie huang Nov. 28, 2012, 6:11 a.m.
From: Jackie Huang <jackie.huang@windriver.com>

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 <jackie.huang@windriver.com>
 meta/recipes-core/eglibc/eglibc.inc |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

Patch hide | download patch | download mbox

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}:"
+# 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