mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-08-09 06:14:34 +02:00
rtla started to only link parts of the tools library. It now misses the
ctype information used by all the related string operations. Just add
another single file to make it build again.
Signed-off-by: Bastian Blank <waldi@debian.org>
Fixes: 48209d763c ("rtla: Add libsubcmd dependency")
Link: https://lore.kernel.org/r/ako2S4mzIqWwYuas@steamhammer.waldi.eu.org
[ remove duplicated spaces in commit message ]
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
179 lines
5.1 KiB
Makefile
179 lines
5.1 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
ifeq ($(srctree),)
|
|
srctree := $(patsubst %/,%,$(dir $(CURDIR)))
|
|
srctree := $(patsubst %/,%,$(dir $(srctree)))
|
|
srctree := $(patsubst %/,%,$(dir $(srctree)))
|
|
endif
|
|
|
|
include $(srctree)/tools/scripts/Makefile.include
|
|
|
|
# O is an alias for OUTPUT
|
|
OUTPUT := $(O)
|
|
|
|
ifeq ($(OUTPUT),)
|
|
OUTPUT := $(CURDIR)
|
|
else
|
|
# subdir is used by the ../Makefile in $(call descend,)
|
|
ifneq ($(subdir),)
|
|
OUTPUT := $(OUTPUT)/$(subdir)
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(patsubst %/,,$(lastword $(OUTPUT))),)
|
|
OUTPUT := $(OUTPUT)/
|
|
endif
|
|
|
|
RTLA := $(OUTPUT)rtla
|
|
RTLA_IN := $(RTLA)-in.o
|
|
|
|
LIBSUBCMD_DIR = $(srctree)/tools/lib/subcmd/
|
|
ifneq ($(OUTPUT),)
|
|
LIBSUBCMD_OUTPUT = $(abspath $(OUTPUT))/libsubcmd
|
|
else
|
|
LIBSUBCMD_OUTPUT = $(CURDIR)/libsubcmd
|
|
endif
|
|
LIBSUBCMD = $(LIBSUBCMD_OUTPUT)/libsubcmd.a
|
|
LIBSUBCMD_INCLUDES = $(LIBSUBCMD_OUTPUT)/include
|
|
LIBSUBCMD_MAKEFLAGS = O=$(LIBSUBCMD_OUTPUT) DESTDIR=$(LIBSUBCMD_OUTPUT) prefix= subdir=
|
|
|
|
TOOLS_INCLUDES = -I$(srctree)/tools/include
|
|
|
|
ifneq ($(OUTPUT),)
|
|
LIB_OUTPUT = $(abspath $(OUTPUT))/lib
|
|
else
|
|
LIB_OUTPUT = $(CURDIR)/lib
|
|
endif
|
|
|
|
LIB_CTYPE = $(LIB_OUTPUT)/ctype.o
|
|
LIB_CTYPE_SRC = $(srctree)/tools/lib/ctype.c
|
|
|
|
LIB_STRING = $(LIB_OUTPUT)/string.o
|
|
LIB_STRING_SRC = $(srctree)/tools/lib/string.c
|
|
|
|
LIB_STR_ERROR_R = $(LIB_OUTPUT)/str_error_r.o
|
|
LIB_STR_ERROR_R_SRC = $(srctree)/tools/lib/str_error_r.c
|
|
|
|
VERSION := $(shell sh -c "make -sC ../../.. kernelversion | grep -v make")
|
|
DOCSRC := ../../../Documentation/tools/rtla/
|
|
|
|
FEATURE_TESTS := libtraceevent
|
|
FEATURE_TESTS += libtracefs
|
|
FEATURE_TESTS += libcpupower
|
|
FEATURE_TESTS += libcheck
|
|
FEATURE_TESTS += libbpf
|
|
FEATURE_TESTS += clang-bpf-co-re
|
|
FEATURE_TESTS += bpftool-skeletons
|
|
FEATURE_DISPLAY := libtraceevent
|
|
FEATURE_DISPLAY += libtracefs
|
|
FEATURE_DISPLAY += libcpupower
|
|
FEATURE_DISPLAY += libcheck
|
|
FEATURE_DISPLAY += libbpf
|
|
FEATURE_DISPLAY += clang-bpf-co-re
|
|
FEATURE_DISPLAY += bpftool-skeletons
|
|
|
|
all: $(RTLA)
|
|
|
|
include $(srctree)/tools/build/Makefile.include
|
|
include Makefile.rtla
|
|
include tests/unit/Makefile.unit
|
|
|
|
# check for dependencies only on required targets
|
|
NON_CONFIG_TARGETS := clean install tarball doc doc_clean doc_install
|
|
|
|
config := 1
|
|
ifdef MAKECMDGOALS
|
|
ifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),)
|
|
config := 0
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(config),1)
|
|
include $(srctree)/tools/build/Makefile.feature
|
|
include Makefile.config
|
|
endif
|
|
|
|
CFLAGS += $(INCLUDES) $(LIB_INCLUDES) $(TOOLS_INCLUDES) -I$(LIBSUBCMD_INCLUDES)
|
|
|
|
export CFLAGS OUTPUT srctree
|
|
|
|
ifeq ($(BUILD_BPF_SKEL),1)
|
|
src/timerlat.bpf.o: src/timerlat.bpf.c
|
|
$(QUIET_CLANG)$(CLANG) -g -O2 -target bpf -c $(filter %.c,$^) -o $@
|
|
|
|
src/timerlat.skel.h: src/timerlat.bpf.o
|
|
$(QUIET_GENSKEL)$(SYSTEM_BPFTOOL) gen skeleton $< > $@
|
|
|
|
example/timerlat_bpf_action.o: example/timerlat_bpf_action.c
|
|
$(QUIET_CLANG)$(CLANG) -g -O2 -target bpf -c $(filter %.c,$^) -o $@
|
|
|
|
tests/bpf/bpf_action_map.o: tests/bpf/bpf_action_map.c
|
|
$(QUIET_CLANG)$(CLANG) -g -O2 -target bpf -c $(filter %.c,$^) -o $@
|
|
else
|
|
src/timerlat.skel.h:
|
|
$(Q)echo '/* BPF skeleton is disabled */' > src/timerlat.skel.h
|
|
|
|
example/timerlat_bpf_action.o: example/timerlat_bpf_action.c
|
|
$(Q)echo "BPF skeleton support is disabled, skipping example/timerlat_bpf_action.o"
|
|
|
|
tests/bpf/bpf_action_map.o: tests/bpf/bpf_action_map.c
|
|
$(Q)echo "BPF skeleton support is disabled, skipping tests/bpf/bpf_action_map.o"
|
|
endif
|
|
|
|
$(RTLA): $(RTLA_IN) $(LIBSUBCMD) $(LIB_CTYPE) $(LIB_STRING) $(LIB_STR_ERROR_R)
|
|
$(QUIET_LINK)$(CC) $(LDFLAGS) -o $(RTLA) $(RTLA_IN) $(LIBSUBCMD) $(LIB_CTYPE) $(LIB_STRING) $(LIB_STR_ERROR_R) $(EXTLIBS)
|
|
|
|
static: $(RTLA_IN) $(LIBSUBCMD) $(LIB_CTYPE) $(LIB_STRING) $(LIB_STR_ERROR_R)
|
|
$(eval LDFLAGS += -static)
|
|
$(QUIET_LINK)$(CC) -static $(LDFLAGS) -o $(RTLA)-static $(RTLA_IN) $(LIBSUBCMD) $(LIB_CTYPE) $(LIB_STRING) $(LIB_STR_ERROR_R) $(EXTLIBS)
|
|
|
|
rtla.%: fixdep FORCE
|
|
make -f $(srctree)/tools/build/Makefile.build dir=. $@
|
|
|
|
$(RTLA_IN): fixdep FORCE src/timerlat.skel.h $(LIBSUBCMD_INCLUDES)
|
|
make $(build)=rtla
|
|
|
|
$(LIBSUBCMD_OUTPUT):
|
|
$(Q)$(MKDIR) -p $@
|
|
|
|
$(LIBSUBCMD_INCLUDES): FORCE | $(LIBSUBCMD_OUTPUT)
|
|
$(Q)$(MAKE) -C $(LIBSUBCMD_DIR) $(LIBSUBCMD_MAKEFLAGS) \
|
|
install_headers
|
|
|
|
$(LIBSUBCMD): FORCE | $(LIBSUBCMD_OUTPUT)
|
|
$(Q)$(MAKE) -C $(LIBSUBCMD_DIR) $(LIBSUBCMD_MAKEFLAGS) \
|
|
$@
|
|
|
|
$(LIB_OUTPUT):
|
|
$(Q)$(MKDIR) -p $@
|
|
|
|
$(LIB_STR_ERROR_R): $(LIB_STR_ERROR_R_SRC) | $(LIB_OUTPUT)
|
|
$(QUIET_CC)$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(LIB_STRING): $(LIB_STRING_SRC) | $(LIB_OUTPUT)
|
|
$(QUIET_CC)$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(LIB_CTYPE): $(LIB_CTYPE_SRC) | $(LIB_OUTPUT)
|
|
$(QUIET_CC)$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
libsubcmd-clean:
|
|
$(call QUIET_CLEAN, libsubcmd)
|
|
$(Q)$(RM) -r -- $(LIBSUBCMD_OUTPUT)
|
|
|
|
lib-clean:
|
|
$(call QUIET_CLEAN, lib)
|
|
$(Q)$(RM) -r -- $(LIB_OUTPUT)
|
|
|
|
clean: doc_clean fixdep-clean libsubcmd-clean lib-clean
|
|
$(call QUIET_CLEAN, rtla)
|
|
$(Q)find . -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
|
|
$(Q)rm -f rtla rtla-static fixdep FEATURE-DUMP rtla-*
|
|
$(Q)rm -rf feature
|
|
$(Q)rm -f src/timerlat.bpf.o src/timerlat.skel.h example/timerlat_bpf_action.o
|
|
$(Q)rm -f $(UNIT_TESTS)
|
|
|
|
check: $(RTLA) tests/bpf/bpf_action_map.o
|
|
RTLA=$(RTLA) BPFTOOL=$(SYSTEM_BPFTOOL) prove -o -f -v tests/
|
|
examples: example/timerlat_bpf_action.o
|
|
.PHONY: FORCE clean check
|