+# SPDX-License-Identifier: (GPL-2.0 OR LGPL-2.1)
+
+ccflags-y += -DLTTNG_LINUX_MAJOR=$(VERSION)
+ccflags-y += -DLTTNG_LINUX_MINOR=$(PATCHLEVEL)
+ccflags-y += -DLTTNG_LINUX_PATCH=$(SUBLEVEL)
+
# 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))
+DEB_API_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/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))
+RHEL_API_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/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))
+SLE_API_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/abi-sle-version.sh $(CURDIR))
ifneq ($(SLE_API_VERSION), 0)
ccflags-y += -DSLE_API_VERSION=$(SLE_API_VERSION)
endif
-FEDORA_REVISION_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/abi-fedora-version.sh $(CURDIR))
+FEDORA_REVISION_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/abi-fedora-version.sh $(CURDIR))
ifneq ($(FEDORA_REVISION_VERSION), 0)
ccflags-y += -DFEDORA_REVISION_VERSION=$(FEDORA_REVISION_VERSION)
endif
-RT_PATCH_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/rt-patch-version.sh $(CURDIR))
+RT_PATCH_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/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
+EXTRA_VERSION_NAME:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/extra-version-name.sh $(TOP_LTTNG_MODULES_DIR))
+
+ifneq ($(EXTRA_VERSION_NAME), 0)
+ ccflags-y += -DLTTNG_EXTRA_VERSION_NAME='"$(EXTRA_VERSION_NAME)"'
+endif
+
+EXTRA_VERSION_GIT:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/extra-version-git.sh $(TOP_LTTNG_MODULES_DIR))
+
+ifneq ($(EXTRA_VERSION_GIT), 0)
+ ccflags-y += -DLTTNG_EXTRA_VERSION_GIT='"$(EXTRA_VERSION_GIT)"'
+endif
+
+EXTRA_VERSION_PATCHES:=$(shell $(TOP_LTTNG_MODULES_DIR)/scripts/extra-version-patches.sh $(TOP_LTTNG_MODULES_DIR))
+
+mnt_ns_dep = $(srctree)/fs/mount.h
+ifeq ($(wildcard $(mnt_ns_dep)),)
+ ccflags-y += -DLTTNG_MNT_NS_MISSING_HEADER
endif
# vim:syntax=make