################################################################################ # # rtla # ################################################################################ LINUX_TOOLS += rtla RTLA_DEPENDENCIES = host-pkgconf libtracefs RTLA_MAKE_OPTS = $(LINUX_MAKE_FLAGS) \ CC=$(TARGET_CC) \ EXTRA_CFLAGS="-D_GNU_SOURCE" \ LDFLAGS="$(TARGET_LDFLAGS)" \ PKG_CONFIG_PATH=$(STAGING_DIR)/usr/lib/pkgconfig ifeq ($(BR2_TOOLCHAIN_HAS_SSP),) define RTLA_DISABLE_STACK_PROTECTOR $(SED) 's/-fstack-protector.* //' $(LINUX_DIR)/tools/tracing/rtla/Makefile endef endif define RTLA_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_FTRACE) $(call KCONFIG_ENABLE_OPT,CONFIG_TIMERLAT_TRACER) $(call KCONFIG_ENABLE_OPT,CONFIG_HIST_TRIGGERS) endef define RTLA_BUILD_CMDS $(Q)if ! grep install $(LINUX_DIR)/tools/tracing/rtla/Makefile >/dev/null 2>&1 ; then \ echo "Your kernel version is too old and does not implement the rtla tool." ; \ echo "At least kernel 5.19 must be used." ; \ exit 1 ; \ fi $(RTLA_DISABLE_STACK_PROTECTOR) $(TARGET_MAKE_ENV) $(MAKE) $(RTLA_MAKE_OPTS) \ -C $(LINUX_DIR)/tools/tracing rtla endef # make rtla_install build and install by default documentation using rst2man # but it's not available in Buildroot and we don't want manual files in target # folder so let's simply install the resulting rtla binary and create symlinks # like Linux does in its tools/tracing/rtla/Makefile define RTLA_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(LINUX_DIR)/tools/tracing/rtla/rtla $(TARGET_DIR)/usr/bin ln -sf rtla $(TARGET_DIR)/usr/bin/osnoise ln -sf rtla $(TARGET_DIR)/usr/bin/timerlat # Check if hwnoise is provided or not if grep -q hwnoise $(LINUX_DIR)/tools/tracing/rtla/Makefile; then \ ln -sf rtla $(TARGET_DIR)/usr/bin/hwnoise ; \ fi endef