eglibc: always compile with optimization.
authorJackie Huang <jackie.huang@windriver.com>
Thu, 15 Nov 2012 05:19:52 +0000 (13:19 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 24 Nov 2012 15:12:36 +0000 (15:12 +0000)
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]

(From OE-Core rev: 9ca1c6120fad5dcae1694e8e37331c1b903f1fd0)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/eglibc/eglibc_2.16.bb

index aa9256c..71bcc30 100644 (file)
@@ -87,6 +87,17 @@ EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
 
 EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}"
 
+# 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)}"
+
 do_unpack_append() {
     bb.build.exec_func('do_move_ports', d)
 }