[DTrace-devel] [PATCH 3/7] build: support kernel builds with object directory

Kris Van Hees kvanhees at oracle.com
Tue Oct 31 15:25:29 UTC 2023


Some kernels are built with an explicit object directory rather than
in the actual source tree.  In that case, /lib/modules will usually
contain a source link to the kernel source tree and a build link to
the object directory.  Generated header files will be found under
the build link whereas regular header files will be under source.

Signed-off-by: Kris Van Hees <kvanhees at oracle.com>
---
 GNUmakefile     | 2 +-
 libdtrace/Build | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/GNUmakefile b/GNUmakefile
index 54a3c48c..eddcc362 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -70,7 +70,7 @@ KERNELDIRPREFIX=/lib/modules
 KERNELODIR=
 # This allows you to build using a locally installed kernel built with O= by
 # just specifying KERNELODIR=relative/path/to/your/kernel/o/dir.
-KERNELDIRSUFFIX=$(if $(KERNELODIR),/source,/build)
+KERNELDIRSUFFIX=$(if $(KERNELODIR),/build,/source)
 KERNELARCH := $(subst sparc64,sparc,$(subst aarch64,arm64,$(subst x86_64,x86,$(ARCH))))
 
 # Paths.
diff --git a/libdtrace/Build b/libdtrace/Build
index 7dc2d5d6..349f4f71 100644
--- a/libdtrace/Build
+++ b/libdtrace/Build
@@ -178,14 +178,14 @@ $(m4-dlib-targets): $(objdir)/dlibs/%.d: $$(foreach name,$$(notdir %.d.in), \
 			$(objdir)/dlibs/.dir.stamp
 	$(call describe-target,M4,$<)
 	$(PREPROCESS) -P -x c -Ilibdtrace/$(ARCHINC) \
-		      -I$(KERNELDIRPREFIX)/$(KERNELVER)$(KERNELDIRSUFFIX)/arch/$(KERNELARCH)/include \
+		      -I$(KERNELDIRPREFIX)/$(KERNELVER)/source/arch/$(KERNELARCH)/include \
 		      $(if $(KERNELODIR),-I$(KERNELDIRPREFIX)/$(KERNELVER)$(KERNELDIRSUFFIX)/$(KERNELODIR)/arch/$(KERNELARCH)/include/generated/uapi) \
 		      -I$(KERNELDIRPREFIX)/$(KERNELVER)$(KERNELDIRSUFFIX)/$(KERNELODIR)/arch/$(KERNELARCH)/include/generated/uapi \
 		      $(if $(KERNELODIR),-I$(KERNELDIRPREFIX)/$(KERNELVER)$(KERNELDIRSUFFIX)/$(KERNELODIR)/arch/$(KERNELARCH)include/generated) \
 		      -I$(KERNELDIRPREFIX)/$(KERNELVER)$(KERNELDIRSUFFIX)/$(KERNELODIR)/arch/$(KERNELARCH)/include/generated \
 		      $(if $(KERNELODIR),-I$(KERNELDIRPREFIX)/$(KERNELVER)$(KERNELDIRSUFFIX)/$(KERNELODIR)/include) \
-		      -I$(KERNELDIRPREFIX)/$(KERNELVER)$(KERNELDIRSUFFIX)/include \
-		      -I$(KERNELDIRPREFIX)/$(KERNELVER)$(KERNELDIRSUFFIX)/arch/$(KERNELARCH)/include/uapi \
+		      -I$(KERNELDIRPREFIX)/$(KERNELVER)/source/include \
+		      -I$(KERNELDIRPREFIX)/$(KERNELVER)/source/arch/$(KERNELARCH)/include/uapi \
 		      $(if $(KERNELODIR),-I$(KERNELDIRPREFIX)/$(KERNELVER)$(KERNELDIRSUFFIX)/$(KERNELODIR)/include/generated/uapi) \
 		      -I$(KERNELDIRPREFIX)/$(KERNELVER)$(KERNELDIRSUFFIX)/$(KERNELODIR)/include/generated/uapi \
 		      -I$(KERNELDIRPREFIX)/$(KERNELVER)$(KERNELDIRSUFFIX)/include/uapi \
-- 
2.39.2




More information about the DTrace-devel mailing list