# Work-around for distro-specific public modules ABI breakages. # Some distributions break the public module instrumentation ABI # compared to upstream stable kernels without providing other mean than # the kernel EXTRAVERSION to figure it out. Translate this information # into a define visible from the C preprocessor. DEB_API_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/abi-debian-version.sh $(CURDIR)) ifneq ($(DEB_API_VERSION), 0) ccflags-y += -DDEBIAN_API_VERSION=$(DEB_API_VERSION) endif RHEL_API_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/abi-rhel-version.sh $(CURDIR)) ifneq ($(RHEL_API_VERSION), 0) ccflags-y += -DRHEL_API_VERSION=$(RHEL_API_VERSION) endif SLE_API_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/abi-sle-version.sh $(CURDIR)) ifneq ($(SLE_API_VERSION), 0) ccflags-y += -DSLE_API_VERSION=$(SLE_API_VERSION) endif RT_PATCH_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/rt-patch-version.sh $(CURDIR)) ifneq ($(RT_PATCH_VERSION), 0) ccflags-y += -DRT_PATCH_VERSION=$(RT_PATCH_VERSION) endif # Starting with kernel 4.12, the ftrace header was moved to private headers # and as such is not available when building against distro headers instead # of the full kernel sources. In the situation, define LTTNG_FTRACE_MISSING_HEADER # so we can enable the compat code even if CONFIG_DYNAMIC_FTRACE is enabled. ifneq ($(CONFIG_DYNAMIC_FTRACE),) ftrace_dep = $(srctree)/kernel/trace/trace.h ftrace_dep_check = $(wildcard $(ftrace_dep)) have_ftrace_header = $(shell \ if [ $(VERSION) -ge 5 -o \( $(VERSION) -eq 4 -a $(PATCHLEVEL) -ge 12 \) ] ; then \ if [ -z "$(ftrace_dep_check)" ] ; then \ echo "no" ; \ exit ; \ fi; \ fi; \ echo "yes" ; \ ) ifeq ($(have_ftrace_header), no) ccflags-y += -DLTTNG_FTRACE_MISSING_HEADER endif endif # vim:syntax=make