Index: /trunk/src/VBox/HostDrivers/Support/SUPLibAll.cpp
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/SUPLibAll.cpp	(revision 87234)
+++ /trunk/src/VBox/HostDrivers/Support/SUPLibAll.cpp	(revision 87235)
@@ -44,5 +44,4 @@
 
 #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
-
 /**
  * The slow case for SUPReadTsc where we need to apply deltas.
@@ -218,4 +217,5 @@
     return uTsc;
 }
+#endif /* RT_ARCH_AMD64 || RT_ARCH_X86 */
 
 
@@ -230,4 +230,5 @@
     uint16_t iGipCpu;
 #ifdef IN_RING3
+# if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
     if (pGip->fGetGipCpu & SUPGIPGETCPU_IDTR_LIMIT_MASK_MAX_SET_CPUS)
     {
@@ -264,4 +265,13 @@
         iGipCpu = pGip->aiCpuFromApicId[idApic];
     }
+
+# else
+    int iCpuSet = RTMpCpuIdToSetIndex(RTMpCpuId());
+    if (RT_LIKELY((unsigned)iCpuSet < RT_ELEMENTS(pGip->aiCpuFromCpuSetIdx)))
+        iGipCpu = pGip->aiCpuFromCpuSetIdx[iCpuSet];
+    else
+        iGipCpu = UINT16_MAX;
+# endif
+
 #elif defined(IN_RING0)
     /* Ring-0: Use use RTMpCpuId() (disables cli to avoid host OS assertions about unsafe CPU number usage). */
@@ -281,4 +291,5 @@
     else
         iGipCpu = UINT16_MAX;
+
 #else
 # error "IN_RING3, IN_RC or IN_RING0 must be defined!"
@@ -324,4 +335,5 @@
     return pGip->u64CpuHz;
 }
+
 
 
@@ -383,4 +395,2 @@
 }
 
-#endif /* RT_ARCH_AMD64 || RT_ARCH_X86 */
-
Index: /trunk/src/VBox/HostDrivers/Support/testcase/tstInt.cpp
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/testcase/tstInt.cpp	(revision 87234)
+++ /trunk/src/VBox/HostDrivers/Support/testcase/tstInt.cpp	(revision 87235)
@@ -35,5 +35,9 @@
 #include <iprt/errcore.h>
 #include <VBox/param.h>
-#include <iprt/asm-amd64-x86.h>
+#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
+# include <iprt/asm-amd64-x86.h>
+#else
+# define ASMReadTSC RTTimeSystemNanoTS
+#endif
 #include <iprt/initterm.h>
 #include <iprt/stream.h>
Index: /trunk/src/VBox/Runtime/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Runtime/Makefile.kmk	(revision 87234)
+++ /trunk/src/VBox/Runtime/Makefile.kmk	(revision 87235)
@@ -2303,9 +2303,6 @@
 VBoxRT_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
 VBoxRT_LIBS                    = \
-	$(SDK_VBOX_LZF_LIBS)
-if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
-VBoxRT_LIBS                   += \
+	$(SDK_VBOX_LZF_LIBS) \
 	$(PATH_STAGE_LIB)/SUPR3$(VBOX_SUFF_LIB)
-endif
 ifndef SDK_VBOX_LIBXML2_LIBS
  VBoxRT_LIBS                  += \
Index: /trunk/src/VBox/Runtime/VBox/VBoxRTDeps.cpp
===================================================================
--- /trunk/src/VBox/Runtime/VBox/VBoxRTDeps.cpp	(revision 87234)
+++ /trunk/src/VBox/Runtime/VBox/VBoxRTDeps.cpp	(revision 87235)
@@ -29,7 +29,5 @@
 *   Header Files                                                                                                                 *
 *********************************************************************************************************************************/
-#ifndef RT_NO_GIP
-# include <VBox/sup.h>
-#endif
+#include <VBox/sup.h>
 #include <iprt/asm.h>
 #include <iprt/assert.h>
@@ -59,10 +57,11 @@
 struct CLANG11NONSENSE { PFNRT pfn; } g_VBoxRTDeps[] =
 {
-#ifndef RT_NO_GIP
     { (PFNRT)SUPR3Init },
     { (PFNRT)SUPR3PageAllocEx },
     { (PFNRT)SUPR3LoadVMM },
     { (PFNRT)SUPSemEventCreate },
-    { (PFNRT)SUPTracerFireProbe },
+    { (PFNRT)SUPIsTscFreqCompatibleEx },
+#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
+    { (PFNRT)SUPTracerFireProbe }, /** @todo port me @bugref{9898} ? */
     { (PFNRT)SUPGetTscDeltaSlow },
 #endif
