dba8725f4c
When doing Clang builds of the kernel, it is possible to link with either ld.bfd (binutils) or ld.lld (LLVM), but it is not possible to discover this from a running kernel. Add the "$LD -v" output to /proc/version. Signed-off-by: Kees Cook <keescook@chromium.org> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Tested-by: Nick Desaulniers <ndesaulniers@google.com> Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> Tested-by: Nathan Chancellor <natechancellor@gmail.com> Reviewed-by: Fangrui Song <maskray@google.com> Reviewed-by: Sedat Dilek <sedat.dilek@gmail.com> Tested-by: Sedat Dilek <sedat.dilek@gmail.com> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Bug: 153484457 (cherry picked from commit 6f04f056df3c https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git for-next) [nd: commit 4b950bb9ac0c ("Kbuild: Handle PREEMPT_RT for version string and magic") missing in 4.19, first landed in 5.4-rc1. commit b79c6aa6a1f1 ("kbuild: remove unnecessary in-subshell execution") missing in 4.19, first landed in 5.1-rc1. ] Change-Id: Ifa5a98fe159392862e8d07a733c0f141fa9c7715 Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
38 lines
1.2 KiB
Makefile
38 lines
1.2 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the linux kernel.
|
|
#
|
|
|
|
ccflags-y := -fno-function-sections -fno-data-sections
|
|
|
|
obj-y := main.o version.o mounts.o
|
|
ifneq ($(CONFIG_BLK_DEV_INITRD),y)
|
|
obj-y += noinitramfs.o
|
|
else
|
|
obj-$(CONFIG_BLK_DEV_INITRD) += initramfs.o
|
|
endif
|
|
obj-$(CONFIG_GENERIC_CALIBRATE_DELAY) += calibrate.o
|
|
|
|
obj-y += init_task.o
|
|
|
|
mounts-y := do_mounts.o
|
|
mounts-$(CONFIG_BLK_DEV_RAM) += do_mounts_rd.o
|
|
mounts-$(CONFIG_BLK_DEV_INITRD) += do_mounts_initrd.o
|
|
mounts-$(CONFIG_BLK_DEV_MD) += do_mounts_md.o
|
|
|
|
# dependencies on generated files need to be listed explicitly
|
|
$(obj)/version.o: include/generated/compile.h
|
|
|
|
# compile.h changes depending on hostname, generation number, etc,
|
|
# so we regenerate it always.
|
|
# mkcompile_h will make sure to only update the
|
|
# actual file if its content has changed.
|
|
|
|
chk_compile.h = :
|
|
quiet_chk_compile.h = echo ' CHK $@'
|
|
silent_chk_compile.h = :
|
|
include/generated/compile.h: FORCE
|
|
@$($(quiet)chk_compile.h)
|
|
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
|
|
"$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" \
|
|
"$(CC) $(KBUILD_CFLAGS)" "$(LD)"
|