Revert "Revert "kbuild: remove libelf checks from top Makefile""
This reverts commita2480b4d7e. LibELF is now linkable from the Android Kernel build infra thanks to a recent patch making hermetic the default for all builds. Bug: 191637574 Fixes:a2480b4d7e("Revert "kbuild: remove libelf checks from top Makefile"") Signed-off-by: Lee Jones <lee.jones@linaro.org> Change-Id: I6eb8aced5766ea759780d27e82b34256971fdf50
This commit is contained in:
78
Makefile
78
Makefile
@@ -1121,41 +1121,6 @@ export INSTALL_DTBS_PATH ?= $(INSTALL_PATH)/dtbs/$(KERNELRELEASE)
|
|||||||
MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
|
MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
|
||||||
export MODLIB
|
export MODLIB
|
||||||
|
|
||||||
HOST_LIBELF_LIBS = $(shell pkg-config libelf --libs 2>/dev/null || echo -lelf)
|
|
||||||
|
|
||||||
has_libelf = $(call try-run,\
|
|
||||||
echo "int main() {}" | $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0)
|
|
||||||
|
|
||||||
ifdef CONFIG_STACK_VALIDATION
|
|
||||||
ifeq ($(has_libelf),1)
|
|
||||||
objtool_target := tools/objtool FORCE
|
|
||||||
else
|
|
||||||
SKIP_STACK_VALIDATION := 1
|
|
||||||
export SKIP_STACK_VALIDATION
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
PHONY += resolve_btfids_clean
|
|
||||||
|
|
||||||
resolve_btfids_O = $(abspath $(objtree))/tools/bpf/resolve_btfids
|
|
||||||
|
|
||||||
# tools/bpf/resolve_btfids directory might not exist
|
|
||||||
# in output directory, skip its clean in that case
|
|
||||||
resolve_btfids_clean:
|
|
||||||
ifneq ($(wildcard $(resolve_btfids_O)),)
|
|
||||||
$(Q)$(MAKE) -sC $(srctree)/tools/bpf/resolve_btfids O=$(resolve_btfids_O) clean
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef CONFIG_BPF
|
|
||||||
ifdef CONFIG_DEBUG_INFO_BTF
|
|
||||||
ifeq ($(has_libelf),1)
|
|
||||||
resolve_btfids_target := tools/bpf/resolve_btfids FORCE
|
|
||||||
else
|
|
||||||
ERROR_RESOLVE_BTFIDS := 1
|
|
||||||
endif
|
|
||||||
endif # CONFIG_DEBUG_INFO_BTF
|
|
||||||
endif # CONFIG_BPF
|
|
||||||
|
|
||||||
PHONY += prepare0
|
PHONY += prepare0
|
||||||
|
|
||||||
export extmod_prefix = $(if $(KBUILD_EXTMOD),$(KBUILD_EXTMOD)/)
|
export extmod_prefix = $(if $(KBUILD_EXTMOD),$(KBUILD_EXTMOD)/)
|
||||||
@@ -1305,7 +1270,7 @@ prepare0: archprepare
|
|||||||
$(Q)$(MAKE) $(build)=.
|
$(Q)$(MAKE) $(build)=.
|
||||||
|
|
||||||
# All the preparing..
|
# All the preparing..
|
||||||
prepare: prepare0 prepare-objtool prepare-resolve_btfids
|
prepare: prepare0
|
||||||
|
|
||||||
PHONY += remove-stale-files
|
PHONY += remove-stale-files
|
||||||
remove-stale-files:
|
remove-stale-files:
|
||||||
@@ -1322,26 +1287,6 @@ uapi-asm-generic:
|
|||||||
$(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/uapi/asm \
|
$(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/uapi/asm \
|
||||||
generic=include/uapi/asm-generic
|
generic=include/uapi/asm-generic
|
||||||
|
|
||||||
PHONY += prepare-objtool prepare-resolve_btfids
|
|
||||||
prepare-objtool: $(objtool_target)
|
|
||||||
ifeq ($(SKIP_STACK_VALIDATION),1)
|
|
||||||
ifdef CONFIG_FTRACE_MCOUNT_USE_OBJTOOL
|
|
||||||
@echo "error: Cannot generate __mcount_loc for CONFIG_DYNAMIC_FTRACE=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
|
|
||||||
@false
|
|
||||||
endif
|
|
||||||
ifdef CONFIG_UNWINDER_ORC
|
|
||||||
@echo "error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
|
|
||||||
@false
|
|
||||||
else
|
|
||||||
@echo "warning: Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
prepare-resolve_btfids: $(resolve_btfids_target)
|
|
||||||
ifeq ($(ERROR_RESOLVE_BTFIDS),1)
|
|
||||||
@echo "error: Cannot resolve BTF IDs for CONFIG_DEBUG_INFO_BTF, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
|
|
||||||
@false
|
|
||||||
endif
|
|
||||||
# Generate some files
|
# Generate some files
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -1415,6 +1360,27 @@ install: sub_make_done :=
|
|||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Tools
|
# Tools
|
||||||
|
|
||||||
|
ifdef CONFIG_STACK_VALIDATION
|
||||||
|
prepare: tools/objtool
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef CONFIG_BPF
|
||||||
|
ifdef CONFIG_DEBUG_INFO_BTF
|
||||||
|
prepare: tools/bpf/resolve_btfids
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
PHONY += resolve_btfids_clean
|
||||||
|
|
||||||
|
resolve_btfids_O = $(abspath $(objtree))/tools/bpf/resolve_btfids
|
||||||
|
|
||||||
|
# tools/bpf/resolve_btfids directory might not exist
|
||||||
|
# in output directory, skip its clean in that case
|
||||||
|
resolve_btfids_clean:
|
||||||
|
ifneq ($(wildcard $(resolve_btfids_O)),)
|
||||||
|
$(Q)$(MAKE) -sC $(srctree)/tools/bpf/resolve_btfids O=$(resolve_btfids_O) clean
|
||||||
|
endif
|
||||||
|
|
||||||
# Clear a bunch of variables before executing the submake
|
# Clear a bunch of variables before executing the submake
|
||||||
ifeq ($(quiet),silent_)
|
ifeq ($(quiet),silent_)
|
||||||
tools_silent=s
|
tools_silent=s
|
||||||
|
|||||||
@@ -225,7 +225,6 @@ endif # CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT
|
|||||||
|
|
||||||
ifdef CONFIG_STACK_VALIDATION
|
ifdef CONFIG_STACK_VALIDATION
|
||||||
ifndef CONFIG_LTO_CLANG
|
ifndef CONFIG_LTO_CLANG
|
||||||
ifneq ($(SKIP_STACK_VALIDATION),1)
|
|
||||||
|
|
||||||
__objtool_obj := $(objtree)/tools/objtool/objtool
|
__objtool_obj := $(objtree)/tools/objtool/objtool
|
||||||
|
|
||||||
@@ -239,7 +238,6 @@ objtool_obj = $(if $(patsubst y%,, \
|
|||||||
$(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \
|
$(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \
|
||||||
$(__objtool_obj))
|
$(__objtool_obj))
|
||||||
|
|
||||||
endif # SKIP_STACK_VALIDATION
|
|
||||||
endif # CONFIG_LTO_CLANG
|
endif # CONFIG_LTO_CLANG
|
||||||
endif # CONFIG_STACK_VALIDATION
|
endif # CONFIG_STACK_VALIDATION
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user