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>
Showing
- Kbuild 2 additions, 0 deletionsKbuild
- Kconfig 24 additions, 0 deletionsKconfig
- Makefile 65 additions, 2 deletionsMakefile
- scripts/Makefile.lib 3 additions, 0 deletionsscripts/Makefile.lib
- scripts/Makefile.spl 43 additions, 1 deletionscripts/Makefile.spl
- scripts/gen_ll_addressable_symbols.sh 12 additions, 0 deletionsscripts/gen_ll_addressable_symbols.sh
Loading
Please register or sign in to comment