[git commit] Compile options: default to -O2 when -Os is not available

Denys Vlasenko vda.linux at googlemail.com
Mon May 2 00:50:46 UTC 2011

commit: http://git.busybox.net/busybox/commit/?id=91b77c3953d6b88770e3102fc2ce428e8f9a8f13
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Recent versions of GCC for PowerPC systems suffer from some compiler
bugs which prevent the use of "--enable-target-optspace" in their
configuration, which makes the compiler option "-Os" unavailable;
for reference see


In the result, BusyBox will be compiled without any optimization
options, which causes a huge binary (1.8 MiB for default configuration
on PPC, built with gcc 54.51 from the Yocto / Poky / OpenEmbedded tool
chains).  This commit changes behaviour so "-O2" gets used as fallback
when "-Os" is not available.  This reduces the image size in above
test to 1.3 MiB.  This is still 10...15% more then what we get with
"-Os", but much better than using no optimization at all.

Signed-off-by: Wolfgang Denk <wd at denx.de>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
 Makefile.flags |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile.flags b/Makefile.flags
index 363300b..b3e1371 100644
--- a/Makefile.flags
+++ b/Makefile.flags
@@ -58,14 +58,14 @@ CFLAGS += $(call cc-option,-falign-functions=1 -falign-jumps=1 -falign-labels=1
 #CFLAGS += $(call cc-option,-Wconversion,)
 ifneq ($(CONFIG_DEBUG),y)
-CFLAGS += $(call cc-option,-Os,)
+CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,))
 CFLAGS += $(call cc-option,-g,)
 CFLAGS += $(call cc-option,-O0,)
-CFLAGS += $(call cc-option,-Os,)
+CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,))

More information about the busybox-cvs mailing list