mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-28 08:42:10 +00:00
6a34dfa15d
- Add generic support for built-in boot DTB files - Enable TAB cycling for dialog buttons in nconfig - Fix issues in streamline_config.pl - Refactor Kconfig - Add support for Clang's AutoFDO (Automatic Feedback-Directed Optimization) - Add support for Clang's Propeller, a profile-guided optimization. - Change the working directory to the external module directory for M= builds - Support building external modules in a separate output directory - Enable objtool for *.mod.o and additional kernel objects - Use lz4 instead of deprecated lz4c - Work around a performance issue with "git describe" - Refactor modpost -----BEGIN PGP SIGNATURE----- iQJJBAABCgAzFiEEbmPs18K1szRHjPqEPYsBB53g2wYFAmdKGgEVHG1hc2FoaXJv eUBrZXJuZWwub3JnAAoJED2LAQed4NsGrFoQAIgioJPRG+HC6bGmjy4tL4bq1RAm 78nbD12grrAa+NvQGRZYRs264rWxBGwrNfGGS9BDvlWJZ3fmKEuPlfCIxC0nkKk8 LVLNxSVvgpHE47RQ+E4V+yYhrlZKb4aWZjH3ZICn7vxRgbQ5Veq61aatluVHyn9c I8g+APYN/S1A4JkFzaLe8GV7v5OM3+zGSn3M9n7/DxVkoiNrMOXJm5hRdRgYfEv/ kMppheY2PPshZsaL+yLAdrJccY5au5vYE/v8wHkMtvM/LF6YwjgqPVDRFQ30BuLM sAMMd6AUoopiDZQOpqmXYukU0b0MQPswg3jmB+PWUBrlsuydRa8kkyPwUaFrDd+w 9d0jZRc8/O/lxUdD1AefRkNcA/dIJ4lTPr+2NpxwHuj2UFo0gLQmtjBggMFHaWvs 0NQRBPlxfOE4+Htl09gyg230kHuWq+rh7xqbyJCX+hBOaZ6kI2lryl6QkgpAoS+x KDOcUKnsgGMGARQRrvCOAXnQs+rjkW8fEm6t7eSBFPuWJMK85k4LmxOog8GVYEdM JcwCnCHt9TtcHlSxLRnVXj2aqGTFNLJXE1aLyCp9u8MxZ7qcx01xOuCmwp6FRzNq ghal7ngA58Y/S4K/oJ+CW2KupOb6CFne8mpyotpYeWI7MR64t0YWs4voZkuK46E2 CEBfA4PDehA4BxQe =GDKD -----END PGP SIGNATURE----- Merge tag 'kbuild-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kbuild updates from Masahiro Yamada: - Add generic support for built-in boot DTB files - Enable TAB cycling for dialog buttons in nconfig - Fix issues in streamline_config.pl - Refactor Kconfig - Add support for Clang's AutoFDO (Automatic Feedback-Directed Optimization) - Add support for Clang's Propeller, a profile-guided optimization. - Change the working directory to the external module directory for M= builds - Support building external modules in a separate output directory - Enable objtool for *.mod.o and additional kernel objects - Use lz4 instead of deprecated lz4c - Work around a performance issue with "git describe" - Refactor modpost * tag 'kbuild-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (85 commits) kbuild: rename .tmp_vmlinux.kallsyms0.syms to .tmp_vmlinux0.syms gitignore: Don't ignore 'tags' directory kbuild: add dependency from vmlinux to resolve_btfids modpost: replace tdb_hash() with hash_str() kbuild: deb-pkg: add python3:native to build dependency genksyms: reduce indentation in export_symbol() modpost: improve error messages in device_id_check() modpost: rename alias symbol for MODULE_DEVICE_TABLE() modpost: rename variables in handle_moddevtable() modpost: move strstarts() to modpost.h modpost: convert do_usb_table() to a generic handler modpost: convert do_of_table() to a generic handler modpost: convert do_pnp_device_entry() to a generic handler modpost: convert do_pnp_card_entries() to a generic handler modpost: call module_alias_printf() from all do_*_entry() functions modpost: pass (struct module *) to do_*_entry() functions modpost: remove DEF_FIELD_ADDR_VAR() macro modpost: deduplicate MODULE_ALIAS() for all drivers modpost: introduce module_alias_printf() helper modpost: remove unnecessary check in do_acpi_entry() ...
116 lines
3.3 KiB
Makefile
116 lines
3.3 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
PHONY := __default
|
|
__default: vmlinux
|
|
|
|
include include/config/auto.conf
|
|
include $(srctree)/scripts/Kbuild.include
|
|
include $(srctree)/scripts/Makefile.lib
|
|
|
|
targets :=
|
|
|
|
%.o: %.c FORCE
|
|
$(call if_changed_rule,cc_o_c)
|
|
|
|
%.o: %.S FORCE
|
|
$(call if_changed_rule,as_o_S)
|
|
|
|
# Built-in dtb
|
|
# ---------------------------------------------------------------------------
|
|
|
|
quiet_cmd_wrap_dtbs = WRAP $@
|
|
cmd_wrap_dtbs = { \
|
|
echo '\#include <asm-generic/vmlinux.lds.h>'; \
|
|
echo '.section .dtb.init.rodata,"a"'; \
|
|
while read dtb; do \
|
|
symbase=__dtb_$$(basename -s .dtb "$${dtb}" | tr - _); \
|
|
echo '.balign STRUCT_ALIGNMENT'; \
|
|
echo ".global $${symbase}_begin"; \
|
|
echo "$${symbase}_begin:"; \
|
|
echo '.incbin "'$$dtb'" '; \
|
|
echo ".global $${symbase}_end"; \
|
|
echo "$${symbase}_end:"; \
|
|
done < $<; \
|
|
} > $@
|
|
|
|
.builtin-dtbs.S: .builtin-dtbs-list FORCE
|
|
$(call if_changed,wrap_dtbs)
|
|
|
|
quiet_cmd_gen_dtbs_list = GEN $@
|
|
cmd_gen_dtbs_list = \
|
|
$(if $(CONFIG_BUILTIN_DTB_NAME), echo "arch/$(SRCARCH)/boot/dts/$(CONFIG_BUILTIN_DTB_NAME).dtb",:) > $@
|
|
|
|
.builtin-dtbs-list: arch/$(SRCARCH)/boot/dts/dtbs-list FORCE
|
|
$(call if_changed,$(if $(CONFIG_BUILTIN_DTB_ALL),copy,gen_dtbs_list))
|
|
|
|
targets += .builtin-dtbs-list
|
|
|
|
ifdef CONFIG_GENERIC_BUILTIN_DTB
|
|
targets += .builtin-dtbs.S .builtin-dtbs.o
|
|
vmlinux: .builtin-dtbs.o
|
|
endif
|
|
|
|
# vmlinux
|
|
# ---------------------------------------------------------------------------
|
|
|
|
ifdef CONFIG_MODULES
|
|
targets += .vmlinux.export.o
|
|
vmlinux: .vmlinux.export.o
|
|
endif
|
|
|
|
ifdef CONFIG_ARCH_WANTS_PRE_LINK_VMLINUX
|
|
vmlinux: arch/$(SRCARCH)/tools/vmlinux.arch.o
|
|
|
|
arch/$(SRCARCH)/tools/vmlinux.arch.o: vmlinux.o FORCE
|
|
$(Q)$(MAKE) $(build)=arch/$(SRCARCH)/tools $@
|
|
endif
|
|
|
|
ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink)
|
|
|
|
# Final link of vmlinux with optional arch pass after final link
|
|
cmd_link_vmlinux = \
|
|
$< "$(LD)" "$(KBUILD_LDFLAGS)" "$(LDFLAGS_vmlinux)"; \
|
|
$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true)
|
|
|
|
targets += vmlinux
|
|
vmlinux: scripts/link-vmlinux.sh vmlinux.o $(KBUILD_LDS) FORCE
|
|
+$(call if_changed_dep,link_vmlinux)
|
|
ifdef CONFIG_DEBUG_INFO_BTF
|
|
vmlinux: $(RESOLVE_BTFIDS)
|
|
endif
|
|
|
|
# module.builtin.ranges
|
|
# ---------------------------------------------------------------------------
|
|
ifdef CONFIG_BUILTIN_MODULE_RANGES
|
|
__default: modules.builtin.ranges
|
|
|
|
quiet_cmd_modules_builtin_ranges = GEN $@
|
|
cmd_modules_builtin_ranges = gawk -f $(real-prereqs) > $@
|
|
|
|
targets += modules.builtin.ranges
|
|
modules.builtin.ranges: $(srctree)/scripts/generate_builtin_ranges.awk \
|
|
modules.builtin vmlinux.map vmlinux.o.map FORCE
|
|
$(call if_changed,modules_builtin_ranges)
|
|
|
|
vmlinux.map: vmlinux
|
|
@:
|
|
|
|
endif
|
|
|
|
# Add FORCE to the prerequisites of a target to force it to be always rebuilt.
|
|
# ---------------------------------------------------------------------------
|
|
|
|
PHONY += FORCE
|
|
FORCE:
|
|
|
|
# Read all saved command lines and dependencies for the $(targets) we
|
|
# may be building above, using $(if_changed{,_dep}). As an
|
|
# optimization, we don't need to read them if the target does not
|
|
# exist, we will rebuild anyway in that case.
|
|
|
|
existing-targets := $(wildcard $(sort $(targets)))
|
|
|
|
-include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd)
|
|
|
|
.PHONY: $(PHONY)
|