diff options
| author | Nicholas Piggin <npiggin@gmail.com> | 2016-11-24 03:41:38 +1100 |
|---|---|---|
| committer | Nolen Johnson <johnsonnolen@gmail.com> | 2023-03-18 19:41:47 +0100 |
| commit | 362c7b73bac86e4396a8aba314703ac2e572d2f6 (patch) | |
| tree | b712cb8797c35a4794b0ad46c276357d0fe6367b /scripts | |
| parent | 43076241b514e16fdbbdeebaf77ad62da38d109e (diff) | |
kbuild: thin archives for multi-y targets
THIN_ARCHIVES builds archives for built-in.o targets, have it build
multi-y targets as archives as well.
This saves another ~15% of the size of intermediate artifacts in the
build tree. After this patch, the linker is only used in final link,
and special cases like vdsos.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Change-Id: Ic42ae9917ec19215a63e99b1fca1bd6fd4592294
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Makefile.build | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 1c9eca59c399..4c1aec9b8da3 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -493,11 +493,18 @@ $($(subst $(obj)/,,$(@:.o=-objs))) \ $($(subst $(obj)/,,$(@:.o=-y))) \ $($(subst $(obj)/,,$(@:.o=-m)))), $^) -quiet_cmd_link_multi-y = LD $@ -cmd_link_multi-y = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps) $(cmd_secanalysis) +cmd_link_multi-link = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps) $(cmd_secanalysis) + +ifdef CONFIG_THIN_ARCHIVES + quiet_cmd_link_multi-y = AR $@ + cmd_link_multi-y = rm -f $@; $(AR) rcST$(KBUILD_ARFLAGS) $@ $(link_multi_deps) +else + quiet_cmd_link_multi-y = LD $@ + cmd_link_multi-y = $(cmd_link_multi-link) +endif quiet_cmd_link_multi-m = LD [M] $@ -cmd_link_multi-m = $(cmd_link_multi-y) +cmd_link_multi-m = $(cmd_link_multi-link) $(multi-used-y): FORCE $(call if_changed,link_multi-y) |
