summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAseda Aboagye <aaboagye@google.com>2015-11-06 10:35:47 -0800
committerchrome-bot <chrome-bot@chromium.org>2015-11-09 12:49:47 -0800
commit1aebf16f5e44ae551651e10f3554719f9127b4c0 (patch)
treea75133d9ef5e2bb76292ad9036445c3a383c0a42
parent20562ac025d8b65fe252a9a9232f70011cf052b3 (diff)
downloadchrome-ec-1aebf16f5e44ae551651e10f3554719f9127b4c0.tar.gz
GLaDOS: Kunimitsu: Enable link-time optimization.
Turn on LTO for GLaDOS and Kunimitsu. This saves about 5k from the image on GLaDOS. Also, LTO is disabled for the loader since it actually causes it to bloat in size for some reason. BUG=chrome-os-partner:46063 BRANCH=None TEST=Build and flash on GLaDOS with charger inserted. Verify that EC boot is successful. sysjump to RW and verify that the jump is successful. TEST=make -j buildall tests Change-Id: I9892edfc724f290acaf6cceba181c177702d63bf Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/311208 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r--board/glados/board.h1
-rw-r--r--board/kunimitsu/board.h1
-rw-r--r--chip/mec1322/build.mk9
3 files changed, 11 insertions, 0 deletions
diff --git a/board/glados/board.h b/board/glados/board.h
index ff9f817dca..ac2d1c4146 100644
--- a/board/glados/board.h
+++ b/board/glados/board.h
@@ -50,6 +50,7 @@
#define CONFIG_LID_ANGLE_SENSOR_LID 2
#define CONFIG_LID_SWITCH
#define CONFIG_LOW_POWER_IDLE
+#define CONFIG_LTO
#define CONFIG_POWER_BUTTON
#define CONFIG_POWER_BUTTON_X86
#define CONFIG_POWER_COMMON
diff --git a/board/kunimitsu/board.h b/board/kunimitsu/board.h
index c92a39d1ce..cc67ea5cf6 100644
--- a/board/kunimitsu/board.h
+++ b/board/kunimitsu/board.h
@@ -70,6 +70,7 @@
#define CONFIG_LED_COMMON
#define CONFIG_LID_SWITCH
#define CONFIG_LOW_POWER_IDLE
+#define CONFIG_LTO
#define CONFIG_POWER_BUTTON
#define CONFIG_POWER_BUTTON_X86
#define CONFIG_POWER_COMMON
diff --git a/chip/mec1322/build.mk b/chip/mec1322/build.mk
index 0f18cee24c..f2c5cf80a0 100644
--- a/chip/mec1322/build.mk
+++ b/chip/mec1322/build.mk
@@ -11,6 +11,11 @@ CORE:=cortex-m
# Allow the full Cortex-M4 instruction set
CFLAGS_CPU+=-march=armv7e-m -mcpu=cortex-m4
+ifeq ($(CONFIG_LTO),y)
+# Re-include the core's build.mk file so we can remove the lto flag.
+include core/$(CORE)/build.mk
+endif
+
# Required chip modules
chip-y=clock.o gpio.o hwtimer.o system.o uart.o jtag.o port80.o
chip-$(CONFIG_ADC)+=adc.o
@@ -55,6 +60,10 @@ dirs-y+=chip/$(CHIP)/lfw
# objs with -lfw suffix are to include lfw's gpio
$(out)/RW/%-lfw.o: private CC+=-I$(BDIR)/lfw -DLFW
+# Remove the lto flag for the loader. It actually causes it to bloat in size.
+ifeq ($(CONFIG_LTO),y)
+$(out)/RW/%-lfw.o: private CFLAGS_CPU := $(filter-out -flto, $(CFLAGS_CPU))
+endif
$(out)/RW/%-lfw.o: %.c
$(call quiet,c_to_o,CC )