From: Michael Jeanson Date: Fri, 23 Jun 2017 18:29:43 +0000 (-0400) Subject: Rename Makefile.ABI.workarounds to Kbuild.common X-Git-Tag: v2.11.0-rc1~116 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=751494f999a67abe0039a32f1c899c1663732864;p=lttng-modules.git Rename Makefile.ABI.workarounds to Kbuild.common This file is now used for code which is common to all Kbuild files. Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- diff --git a/Kbuild.common b/Kbuild.common new file mode 100644 index 00000000..2e6c4aa2 --- /dev/null +++ b/Kbuild.common @@ -0,0 +1,50 @@ +# 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 diff --git a/Makefile b/Makefile index f65e4632..2cd2df09 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ ifneq ($(KERNELRELEASE),) endif endif - include $(TOP_LTTNG_MODULES_DIR)/Makefile.ABI.workarounds + include $(TOP_LTTNG_MODULES_DIR)/Kbuild.common ccflags-y += -I$(TOP_LTTNG_MODULES_DIR) diff --git a/Makefile.ABI.workarounds b/Makefile.ABI.workarounds deleted file mode 100644 index 2e6c4aa2..00000000 --- a/Makefile.ABI.workarounds +++ /dev/null @@ -1,50 +0,0 @@ -# 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 diff --git a/lib/Kbuild b/lib/Kbuild index 96807205..5248d372 100644 --- a/lib/Kbuild +++ b/lib/Kbuild @@ -1,6 +1,6 @@ TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))/.. -include $(TOP_LTTNG_MODULES_DIR)/Makefile.ABI.workarounds +include $(TOP_LTTNG_MODULES_DIR)/Kbuild.common ccflags-y += -I$(TOP_LTTNG_MODULES_DIR) diff --git a/probes/Kbuild b/probes/Kbuild index cc1c0656..70a3d868 100644 --- a/probes/Kbuild +++ b/probes/Kbuild @@ -1,6 +1,6 @@ TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))/.. -include $(TOP_LTTNG_MODULES_DIR)/Makefile.ABI.workarounds +include $(TOP_LTTNG_MODULES_DIR)/Kbuild.common ccflags-y += -I$(TOP_LTTNG_MODULES_DIR) diff --git a/tests/Kbuild b/tests/Kbuild index aabb8e20..0696c0ab 100644 --- a/tests/Kbuild +++ b/tests/Kbuild @@ -1,6 +1,6 @@ TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))/.. -include $(TOP_LTTNG_MODULES_DIR)/Makefile.ABI.workarounds +include $(TOP_LTTNG_MODULES_DIR)/Kbuild.common ccflags-y += -I$(TOP_LTTNG_MODULES_DIR)