1################################################################################ 2# 3# rtla 4# 5################################################################################ 6 7LINUX_TOOLS += rtla 8 9RTLA_DEPENDENCIES = host-pkgconf libtracefs 10RTLA_MAKE_OPTS = $(LINUX_MAKE_FLAGS) \ 11 CC=$(TARGET_CC) \ 12 EXTRA_CFLAGS="-D_GNU_SOURCE" \ 13 LDFLAGS="$(TARGET_LDFLAGS)" \ 14 PKG_CONFIG_PATH=$(STAGING_DIR)/usr/lib/pkgconfig 15 16ifeq ($(BR2_TOOLCHAIN_HAS_SSP),) 17define RTLA_DISABLE_STACK_PROTECTOR 18 $(SED) 's/-fstack-protector.* //' $(LINUX_DIR)/tools/tracing/rtla/Makefile 19endef 20endif 21 22define RTLA_LINUX_CONFIG_FIXUPS 23 $(call KCONFIG_ENABLE_OPT,CONFIG_FTRACE) 24 $(call KCONFIG_ENABLE_OPT,CONFIG_TIMERLAT_TRACER) 25 $(call KCONFIG_ENABLE_OPT,CONFIG_HIST_TRIGGERS) 26endef 27 28define RTLA_BUILD_CMDS 29 $(Q)if ! grep install $(LINUX_DIR)/tools/tracing/rtla/Makefile >/dev/null 2>&1 ; then \ 30 echo "Your kernel version is too old and does not implement the rtla tool." ; \ 31 echo "At least kernel 5.19 must be used." ; \ 32 exit 1 ; \ 33 fi 34 $(RTLA_DISABLE_STACK_PROTECTOR) 35 $(TARGET_MAKE_ENV) $(MAKE) $(RTLA_MAKE_OPTS) \ 36 -C $(LINUX_DIR)/tools/tracing rtla 37endef 38 39# make rtla_install build and install by default documentation using rst2man 40# but it's not available in Buildroot and we don't want manual files in target 41# folder so let's simply install the resulting rtla binary and create symlinks 42# like Linux does in its tools/tracing/rtla/Makefile 43define RTLA_INSTALL_TARGET_CMDS 44 $(INSTALL) -m 0755 -D $(LINUX_DIR)/tools/tracing/rtla/rtla $(TARGET_DIR)/usr/bin 45 ln -sf rtla $(TARGET_DIR)/usr/bin/osnoise 46 ln -sf rtla $(TARGET_DIR)/usr/bin/timerlat 47 48 # Check if hwnoise is provided or not 49 if grep -q hwnoise $(LINUX_DIR)/tools/tracing/rtla/Makefile; then \ 50 ln -sf rtla $(TARGET_DIR)/usr/bin/hwnoise ; \ 51 fi 52endef 53