summaryrefslogtreecommitdiff
path: root/Kbuild
AgeCommit message (Collapse)AuthorFilesLines
2021-05-24build: support building with Link Time OptimizationsMarek BehĂșn1-0/+2
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>
2020-04-28kbuild: SPL/TPL: generate separate asm-offsets.h for SPL and TPLMasahiro Yamada1-2/+2
Currently generic-asm-offsets.h and asm-offsets.h are generated based on U-Boot proper config options. The same asm-offsets headers are used for building U-Boot SPL/TPL, which causes potential offset mismatch if U-Boot proper has different config options from U-Boot SPL/TPL. This commit adds: spl/include/generated/(generic-)asm-offsets.h tpl/include/generated/(generic-)asm-offsets.h spl/include/generated/(generic-)asm-offsets.h is generated if CONFIG_SPL=y, and included when building SPL. tpl/include/generated/(generic-)asm-offsets.h is generated if CONFIG_TPL=y, and included when building TPL. They are created before Kbuild descends into SPL/TPL object directories and builds $(obj)/dts/dt-platdata.o because $(obj)/dts/dt-platdata.c includes a bunch of headers. Prepend -I$(obj)/include to $(UBOOTINCLUDE) so (generic-)asm-offsets.h is searched in {spl,tpl}/include/generated/. Requested-by: Bin Meng <bmeng.cn@gmail.com> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Tested-by: Bin Meng <bmeng.cn@gmail.com>
2020-04-24kbuild: cherry-pick kbuild changes from LinuxMasahiro Yamada1-42/+3
b42841b7bb62 kbuild: Get rid of KBUILD_STR 2aedcd098a94 kbuild: suppress annoying "... is up to date." message 9c8fa9bc08f6 kbuild: fix if_change and friends to consider argument order ebf003f0cfb3 kbuild: Consolidate header generation from ASM offset information 2982c953570b kbuild: remove redundant $(wildcard ...) for cmd_files calculation 8a78756eb545 kbuild: create object directories simpler and faster 4d4b5c2e3b6e treewide: remove explicit rules for *offsets.s 01d509a48b46 kbuild: remove unimportant comments from ./Kbuild Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2015-07-27kbuild: do not add $((generic-)offsets-file) to targetsMasahiro Yamada1-2/+1
$(always) is added to targets by scripts/Makefile.build. Moreover, filechk does not need .*.cmd files. Adding these two files to targets is redundant. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2015-03-28kbuild: Don't reset timestamps in include/generated if not neededMichal Marek1-9/+9
Use filechk to generate asm-offsets.h and generic-asm-offsets.h. Based on a patch by Valdis Kletnieks. Reported-by: Valdis Kletnieks <Valdis.Kletnieks@vt.edu> Acked-by: Valdis Kletnieks <Valdis.Kletnieks@vt.edu> Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Michal Marek <mmarek@suse.cz> [ imported from Linux Kernel, commit 70a4fd6c56d0, with adjustment for U-Boot ] Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2015-03-28kbuild: remove redundant line from (generic-)asm-offsets.hMasahiro Yamada1-1/+0
This line produces an extra comment line for generic-asm-offsets.h and asm-offsets.h. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Signed-off-by: Michal Marek <mmarek@suse.cz> [ imported from Linux Kernel, commit 343d3e6cc861, with modification of commit description ] Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2015-03-28kbuild: merge generic-asm-offsets.h and asm-offsets.h rulesMasahiro Yamada1-40/+22
The rules "cmd_generic-offsets" and "cmd_offsets" are almost the same. (The difference is only the include guards.) They can be merged. This commit is mostly inspired by the following commit of Linux. commit 39664e2f3cdef98f42437e903159a6044a1d99d6 Author: Masahiro Yamada <yamada.m@jp.panasonic.com> Date: Mon Jan 5 15:57:15 2015 +0900 kbuild: merge bounds.h and asm-offsets.h rules Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2014-09-09clang: workaround for generated constantsJeroen Hofstee1-1/+2
KBuild abuses the asm statement to write to a file and clang chokes about these invalid asm statements. Hack it even more by fooling this is actual valid asm code. cc: Masahiro Yamada <yamada.m@jp.panasonic.com> cc: Tom Rini <trini@ti.com> Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
2014-03-28kbuild: move asm-offsets.c from SoC directory to arch/$(ARCH)/libMasahiro Yamada1-4/+4
U-Boot has supported two kinds of asm-offsets.h. One is generic for all architectures and its source is located at ./lib/asm-offsets.c. The other is SoC specific and its source is under SoC directory. The problem here is that only boards with SoC directory can use the asm-offsets infrastructure. Putting asm-offsets.c right under CPU directory does not work. Now a new demand is coming. PowerPC folks want to use asm-offsets. But no PowerPC boards have SoC directory. It seems inconsistent that some boards add asm-offsets.c to SoC directoreis and some to CPU directories. It looks more reasonable to put asm-offsets.c under arch/$(ARCH)/lib. This commit merges asm-offsets.c under SoC directories into arch/$(ARCH)/lib/asm-offsets.c. By the way, I doubt the necessity of some entries in asm-offsets.c. I am leaving refactoring to the board maintainers. Please check "TODO" in the comment blocks in arch/{arm,nds32}/lib/asm-offsets.c. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Yuantian Tang <Yuantian.Tang@freescale.com>
2014-02-25kbuild: move asm-offsets.h rules to ./KbuildMasahiro Yamada1-0/+87
Generate include/generated/generic-asm-offsets.h and include/generated/asm-offsets.h in ./Kbuild. This commit also changes the include guard. Before this commit, __ASM_OFFSETS_H__ was used for both of them. So we could not include generic-asm-offsets.h and asm-offsets.h at the same time. This commit renames the include guard of the former to __GENERIC_ASM_OFFSETS_H__. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>