diff options
author | Marek BehĂșn <marek.behun@nic.cz> | 2021-05-20 13:24:03 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-05-24 14:21:30 -0400 |
commit | c1094987d1dc4701646c5f3aa254e7a92a02d305 (patch) | |
tree | 5d2bbcee39b8adff66ac767d8bde1bcb6283dfe7 /Kbuild | |
parent | 958f2e57eff72b5156f7b08b9c1415fb7e12833d (diff) | |
download | u-boot-c1094987d1dc4701646c5f3aa254e7a92a02d305.tar.gz u-boot-c1094987d1dc4701646c5f3aa254e7a92a02d305.tar.bz2 u-boot-c1094987d1dc4701646c5f3aa254e7a92a02d305.zip |
build: support building with Link Time Optimizations
Add plumbing for building U-Boot with Link Time Optimizations.
When building with LTO, $(PLATFORM_LIBS) has to be in --whole-archive /
--no-whole-archive group, otherwise some functions declared in assembly
may not be resolved and linking may fail.
Note: clang may throw away linker list symbols it thinks are unused when
compiling with LTO. To force these symbols to be included, we refer to
them via the __ADDRESSABLE macro in a C file generated from compiled
built-in.o files before linking.
Signed-off-by: Marek BehĂșn <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'Kbuild')
-rw-r--r-- | Kbuild | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -10,6 +10,8 @@ generic-offsets-file := include/generated/generic-asm-offsets.h always := $(generic-offsets-file) targets := lib/asm-offsets.s +CFLAGS_REMOVE_asm-offsets.o := $(LTO_CFLAGS) + $(obj)/$(generic-offsets-file): $(obj)/lib/asm-offsets.s FORCE $(call filechk,offsets,__GENERIC_ASM_OFFSETS_H__) |