Index: /trunk/src/VBox/HostDrivers/Support/SUPDrv-dtrace.cpp
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/SUPDrv-dtrace.cpp	(revision 41353)
+++ /trunk/src/VBox/HostDrivers/Support/SUPDrv-dtrace.cpp	(revision 41354)
@@ -46,4 +46,26 @@
 #ifdef RT_OS_DARWIN
 # include VBOX_PATH_MACOSX_DTRACE_H
+#elif defined(RT_OS_LINUX)
+/* DTrace experiments with the Unbreakable Enterprise Kernel (UEK) 
+   (Oracle Linux).
+   1. The dtrace.h here is from the dtrace module source, not 
+      /usr/include/sys/dtrace.h nor /usr/include/dtrace.h.
+   2. To generate the missing entries for the dtrace module in Module.symvers 
+      of UEK:
+      nm /lib/modules/....../kernel/drivers/dtrace/dtrace.ko  \
+      | grep _crc_ \
+      | sed -e 's/^......../0x/' -e 's/ A __crc_/\t/' \
+            -e 's/$/\tdrivers\/dtrace\/dtrace\tEXPORT_SYMBOL/' \
+      >> Module.symvers
+   3. No tracepoints in vboxdrv, vboxnet* or vboxpci yet.  This requires yasm 
+      and VBoxTpG and build time. */ 
+# undef UINT8_MAX
+# undef UINT16_MAX
+# undef UINT32_MAX
+# undef UINT64_MAX
+# undef INT64_MAX
+# undef INT64_MIN
+# define intptr_t dtrace_intptr_t
+# include "dtrace.h"
 #else
 # include <sys/dtrace.h>
@@ -285,5 +307,6 @@
      */
     uint16_t const idxProv = (uint16_t)((PVTGDESCPROVIDER)((uintptr_t)pProv->pHdr + pProv->pHdr->offProviders) - pProv->pDesc);
-    for (uint32_t idxProbeLoc = 0; idxProbeLoc < cProbeLocs; idxProbeLoc++)
+    uint32_t idxProbeLoc;
+    for (idxProbeLoc = 0; idxProbeLoc < cProbeLocs; idxProbeLoc++)
     {
         /* Skip probe location belonging to other providers or once that
@@ -596,5 +619,6 @@
             else
             {
-                for (int i = 5; i < iArg; i++)
+                int i;
+                for (i = 5; i < iArg; i++)
                     if (VTG_TYPE_IS_LARGE(pArgList->aArgs[iArg].fType))
                         offArg++;
Index: /trunk/src/VBox/HostDrivers/Support/linux/Makefile
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/linux/Makefile	(revision 41353)
+++ /trunk/src/VBox/HostDrivers/Support/linux/Makefile	(revision 41354)
@@ -122,4 +122,5 @@
 	common/misc/thread.o \
 	common/string/RTStrCopy.o \
+	common/string/RTStrCopyEx.o \
 	common/string/RTStrCopyP.o \
 	common/string/RTStrNCmp.o \
@@ -159,4 +160,7 @@
 OBJS += common/alloc/heapsimple.o
 endif
+ifdef VBOX_WITH_NATIVE_DTRACE
+OBJS += SUPDrvDTrace.o
+endif
 
 ifneq ($(MAKECMDGOALS),clean)
@@ -251,4 +255,7 @@
  KFLAGS  += -DCONFIG_VBOXDRV_AS_MISC
 endif
+ifdef VBOX_WITH_NATIVE_DTRACE
+ KFLAGS  += -DVBOX_WITH_NATIVE_DTRACE
+endif
 ifeq ($(BUILD_TARGET_ARCH),amd64)
  KFLAGS  += -DRT_ARCH_AMD64
Index: /trunk/src/VBox/HostDrivers/Support/linux/files_vboxdrv
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/linux/files_vboxdrv	(revision 41353)
+++ /trunk/src/VBox/HostDrivers/Support/linux/files_vboxdrv	(revision 41354)
@@ -82,4 +82,5 @@
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvSem.c=>SUPDrvSem.c \
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvTracer.cpp=>SUPDrvTracer.c \
+    ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrv-dtrace.cpp=>SUPDrvDTrace.c \
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvIDC.h=>SUPDrvIDC.h \
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvIOC.h=>SUPDrvIOC.h \
@@ -116,6 +117,7 @@
     ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablectx.cpp=>common/misc/handletablectx.c \
     ${PATH_ROOT}/src/VBox/Runtime/common/misc/thread.cpp=>common/misc/thread.c \
+    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrCopy.cpp=>common/string/RTStrCopy.c \
+    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrCopyEx.cpp=>common/string/RTStrCopyEx.c \
     ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrCopyP.cpp=>common/string/RTStrCopyP.c \
-    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrCopy.cpp=>common/string/RTStrCopy.c \
     ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrNCmp.cpp=>common/string/RTStrNCmp.c \
     ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrNLen.cpp=>common/string/RTStrNLen.c \
