Add experimental bitwise enum config option
authorMichael Jeanson <mjeanson@efficios.com>
Wed, 12 May 2021 20:21:50 +0000 (16:21 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 13 May 2021 15:39:25 +0000 (11:39 -0400)
Only generate the bitwise enumerations when
CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM is enabled, so the default build
does not generate traces which lead to warnings when viewed with
babeltrace 1.x and babeltrace 2 with default options.

Change-Id: Id45c7a78b280a7f35bbeafb80f2f6f5aa1ebbdc9
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Makefile
README.md
src/Kconfig
src/lttng-events.c

index 3974ce8bfab8b30a78aa4e8eef9f7ce59f285597..81bdedac2376381ac523af15a530f20e2b61dc7a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -16,13 +16,28 @@ else # KERNELRELEASE
 KERNELDIR ?= /lib/modules/$(shell uname -r)/build
 PWD := $(shell pwd)
 
+# Experimental bitwise enum defaults to disabled.
+CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM ?= n
+
+# Emulate Kconfig behavior of setting defines for config options.
+LKCPPFLAGS = $(KCPPFLAGS)
+ifeq ($(CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM),y)
+LKCPPFLAGS += -DCONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM=y
+endif
+
 default: modules
 
 modules:
-       $(MAKE) -C $(KERNELDIR) M=$(PWD)/src CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m modules
+       $(MAKE) -C $(KERNELDIR) M=$(PWD)/src \
+               CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m \
+               KCPPFLAGS='$(LKCPPFLAGS)' \
+               modules
 
 modules_install:
-       $(MAKE) -C $(KERNELDIR) M=$(PWD)/src CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m modules_install
+       $(MAKE) -C $(KERNELDIR) M=$(PWD)/src \
+               CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m \
+               KCPPFLAGS='$(LKCPPFLAGS)' \
+               modules_install
 
 clean:
        $(MAKE) -C $(KERNELDIR) M=$(PWD)/src clean
@@ -30,9 +45,15 @@ clean:
 # The following targets are used for development and debugging. They are not
 # part of the build system.
 %.i: %.c
-       $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m $@
+       $(MAKE) -C $(KERNELDIR) M=$(PWD) \
+               CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m \
+               KCPPFLAGS='$(LKCPPFLAGS)' \
+               $@
 
 %.o: %.c
-       $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m $@
+       $(MAKE) -C $(KERNELDIR) M=$(PWD) \
+               CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m \
+               KCPPFLAGS='$(LKCPPFLAGS)' \
+               $@
 
 endif # KERNELRELEASE
index 7b04cd83b04991153ce8f7282ef3203a24489661..fc083249cd5982b20dd1b0c9115ebda612868e72 100644 (file)
--- a/README.md
+++ b/README.md
@@ -95,6 +95,21 @@ available from LTTng:
   - `CONFIG_KALLSYMS_ALL`: state dump of mapping between block device
     number and name
 
+### LTTng specific kernel config options
+
+The following kernel configuration options are provided by LTTng:
+
+  - `CONFIG_LTTNG`: Build LTTng (Defaults to 'm').
+  - `CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM`: Enable the experimental bitwise
+    enumerations (Defaults to 'n'). This can be enabled by building with:
+
+         make CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM=y
+
+  - `CONFIG_LTTNG_CLOCK_PLUGIN_TEST`: Build the test clock plugin (Defaults to
+    'm'). This plugin overrides the trace clock and should always be built as a
+    module for testing.
+
+
 Customization/Extension
 -----------------------
 
index e42e25e685275afc859bfacb5eb9a3ee4ba1da27..a2a7b8f1e925e184efbb289dd2bb66a273f9804e 100644 (file)
@@ -14,4 +14,15 @@ config LTTNG
 
          If unsure, say N.
 
+config LTTNG_EXPERIMENTAL_BITWISE_ENUM
+       bool "LTTng experimental bitwise enum support"
+       default n
+       depends on LTTNG
+       help
+         Enable experimental bitwise enumerations. The traces produced with
+         this option enabled will generate warnings when read by trace
+         viewers with default options.
+
+         If unsure, say N.
+
 source "lttng/src/tests/Kconfig"
index 89257bd688ea72b6265e3984535fa6a6dc6fe478..af20bfccd117473051a26f8b6e66629c4b13d6f0 100644 (file)
@@ -4362,6 +4362,9 @@ static int __init lttng_events_init(void)
 #else
                "");
 #endif
+#ifdef CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM
+       printk(KERN_NOTICE "LTTng: Experimental bitwise enum enabled.\n");
+#endif /* CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM */
        return 0;
 
 error_hotplug:
This page took 0.028227 seconds and 4 git commands to generate.