Index: trunk/src/VBox/Runtime/VBox/logbackdoor.cpp
===================================================================
--- trunk/src/VBox/Runtime/VBox/logbackdoor.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/VBox/logbackdoor.cpp	(revision 21337)
@@ -33,4 +33,5 @@
 *******************************************************************************/
 #include <VBox/log.h>
+#include "internal/iprt.h"
 #include <iprt/asm.h>
 #include <iprt/string.h>
@@ -58,4 +59,6 @@
 }
 
+RT_EXPORT_SYMBOL(RTLogBackdoorPrintf);
+
 
 RTDECL(size_t) RTLogBackdoorPrintfV(const char *pszFormat, va_list args)
@@ -63,4 +66,6 @@
     return RTLogFormatV(rtLogBackdoorOutput, NULL, pszFormat, args);
 }
+
+RT_EXPORT_SYMBOL(RTLogBackdoorPrintfV);
 
 
@@ -76,15 +81,9 @@
 
 
-#ifdef IN_GUEST_R3
-
 RTDECL(void) RTLogWriteUser(const char *pch, size_t cb)
 {
+#ifdef IN_GUEST_R3
     VbglR3WriteLog(pch, cb);
-}
-
 #else  /* !IN_GUEST_R3 */
-
-RTDECL(void) RTLogWriteUser(const char *pch, size_t cb)
-{
     const uint8_t *pau8 = (const uint8_t *)pch;
     if (cb > 1)
@@ -92,16 +91,7 @@
     else if (cb)
         ASMOutU8(RTLOG_DEBUG_PORT, *pau8);
+#endif /* !IN_GUEST_R3 */
 }
 
-# if defined(RT_OS_LINUX) && defined(IN_MODULE)
-/*
- * When we build this in the Linux kernel module, we wish to make the
- * symbols available to other modules as well.
- */
-#  include "the-linux-kernel.h"
-EXPORT_SYMBOL(RTLogBackdoorPrintf);
-EXPORT_SYMBOL(RTLogBackdoorPrintfV);
-EXPORT_SYMBOL(RTLogWriteUser);
-# endif /* RT_OS_LINUX && IN_MODULE */
-#endif /* !IN_GUEST_R3 */
+RT_EXPORT_SYMBOL(RTLogWriteUser);
 
Index: trunk/src/VBox/Runtime/common/alloc/alloc.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/alloc/alloc.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/alloc/alloc.cpp	(revision 21337)
@@ -33,5 +33,7 @@
 *   Header Files                                                               *
 *******************************************************************************/
-#include <iprt/alloc.h>
+#include <iprt/mem.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include <iprt/string.h>
@@ -53,4 +55,5 @@
     return pvDst;
 }
+RT_EXPORT_SYMBOL(RTMemDup);
 
 
@@ -75,4 +78,5 @@
     return pvDst;
 }
+RT_EXPORT_SYMBOL(RTMemDupEx);
 
 
Index: trunk/src/VBox/Runtime/common/alloc/heapsimple.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/alloc/heapsimple.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/alloc/heapsimple.cpp	(revision 21337)
@@ -34,11 +34,7 @@
 *******************************************************************************/
 #define LOG_GROUP RTLOGGROUP_DEFAULT
-
-#if defined(IN_GUEST_R0) && defined(RT_OS_LINUX) && defined(IN_MODULE)
-/* should come first to prevent warnings about duplicate definitions of PAGE_* */
-# include "the-linux-kernel.h"
-#endif
-
 #include <iprt/heap.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include <iprt/asm.h>
@@ -349,4 +345,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTHeapSimpleInit);
 
 
@@ -397,4 +394,5 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTHeapSimpleAlloc);
 
 
@@ -445,4 +443,5 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTHeapSimpleAllocZ);
 
 
@@ -665,4 +664,5 @@
     rtHeapSimpleFreeBlock(pHeapInt, pBlock);
 }
+RT_EXPORT_SYMBOL(RTHeapSimpleFree);
 
 
@@ -860,4 +860,5 @@
     return cbBlock;
 }
+RT_EXPORT_SYMBOL(RTHeapSimpleSize);
 
 
@@ -885,4 +886,5 @@
     return pHeapInt->cbHeap;
 }
+RT_EXPORT_SYMBOL(RTHeapSimpleGetHeapSize);
 
 
@@ -909,4 +911,5 @@
     return pHeapInt->cbFree;
 }
+RT_EXPORT_SYMBOL(RTHeapSimpleGetFreeSize);
 
 
@@ -941,9 +944,4 @@
     pfnPrintf("**** Done dumping Heap %p ****\n", Heap);
 }
-
-
-#if defined(IN_GUEST_R0) && defined(RT_OS_LINUX) && defined(IN_MODULE)
-EXPORT_SYMBOL(RTHeapSimpleAlloc);
-EXPORT_SYMBOL(RTHeapSimpleInit);
-EXPORT_SYMBOL(RTHeapSimpleFree);
-#endif
+RT_EXPORT_SYMBOL(RTHeapSimpleDump);
+
Index: trunk/src/VBox/Runtime/common/checksum/crc32.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/checksum/crc32.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/checksum/crc32.cpp	(revision 21337)
@@ -80,4 +80,5 @@
 #else
 # include <iprt/crc32.h>
+# include "internal/iprt.h"
 #endif
 
@@ -169,4 +170,5 @@
     return uCRC32 ^ ~0U;
 }
+RT_EXPORT_SYMBOL(RTCrc32);
 
 
@@ -180,4 +182,5 @@
     return ~0U;
 }
+RT_EXPORT_SYMBOL(RTCrc32Start);
 
 
@@ -197,4 +200,5 @@
     return uCRC32;
 }
+RT_EXPORT_SYMBOL(RTCrc32Process);
 
 
@@ -209,3 +213,4 @@
     return uCRC32 ^ ~0U;
 }
-
+RT_EXPORT_SYMBOL(RTCrc32Finish);
+
Index: trunk/src/VBox/Runtime/common/checksum/crc64.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/checksum/crc64.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/checksum/crc64.cpp	(revision 21337)
@@ -34,8 +34,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/crc64.h>
+#include "internal/iprt.h"
 
 
@@ -168,4 +170,5 @@
     return uCRC64;
 }
+RT_EXPORT_SYMBOL(RTCrc64);
 
 
@@ -179,4 +182,5 @@
     return 0ULL;
 }
+RT_EXPORT_SYMBOL(RTCrc64Start);
 
 
@@ -196,4 +200,5 @@
     return uCRC64;
 }
+RT_EXPORT_SYMBOL(RTCrc64Process);
 
 
@@ -208,3 +213,4 @@
     return uCRC64;
 }
-
+RT_EXPORT_SYMBOL(RTCrc64Finish);
+
Index: trunk/src/VBox/Runtime/common/checksum/ipv4.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/checksum/ipv4.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/checksum/ipv4.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/net.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/assert.h>
@@ -83,4 +86,5 @@
     return (uint16_t)~u32Sum;
 }
+RT_EXPORT_SYMBOL(RTNetIPv4HdrChecksum);
 
 
@@ -124,4 +128,5 @@
     return true;
 }
+RT_EXPORT_SYMBOL(RTNetIPv4IsHdrValid);
 
 
@@ -159,4 +164,5 @@
     return rtNetIPv4PseudoChecksum(pIpHdr);
 }
+RT_EXPORT_SYMBOL(RTNetIPv4PseudoChecksum);
 
 
@@ -184,4 +190,5 @@
     return u32Sum;
 }
+RT_EXPORT_SYMBOL(RTNetIPv4PseudoChecksumBits);
 
 
@@ -214,4 +221,5 @@
     return rtNetIPv4AddUDPChecksum(pUdpHdr, u32Sum);
 }
+RT_EXPORT_SYMBOL(RTNetIPv4AddUDPChecksum);
 
 
@@ -275,4 +283,5 @@
     return rtNetIPv4AddTCPChecksum(pTcpHdr, u32Sum);
 }
+RT_EXPORT_SYMBOL(RTNetIPv4AddTCPChecksum);
 
 
@@ -343,4 +352,5 @@
     return rtNetIPv4AddDataChecksum(pvData, cbData, u32Sum, pfOdd);
 }
+RT_EXPORT_SYMBOL(RTNetIPv4AddDataChecksum);
 
 
@@ -370,4 +380,5 @@
     return rtNetIPv4FinalizeChecksum(u32Sum);
 }
+RT_EXPORT_SYMBOL(RTNetIPv4FinalizeChecksum);
 
 
@@ -391,4 +402,5 @@
     return rtNetIPv4FinalizeChecksum(u32Sum);
 }
+RT_EXPORT_SYMBOL(RTNetIPv4UDPChecksum);
 
 
@@ -431,4 +443,5 @@
     return rtNetIPv4IsUDPSizeValid(pIpHdr, pUdpHdr, cbPktMax);
 }
+RT_EXPORT_SYMBOL(RTNetIPv4IsUDPSizeValid);
 
 
@@ -456,4 +469,5 @@
     return true;
 }
+RT_EXPORT_SYMBOL(RTNetIPv4IsUDPValid);
 
 
@@ -481,4 +495,5 @@
     return rtNetIPv4FinalizeChecksum(u32Sum);
 }
+RT_EXPORT_SYMBOL(RTNetIPv4TCPChecksum);
 
 
@@ -526,4 +541,5 @@
     return rtNetIPv4IsTCPSizeValid(pIpHdr, pTcpHdr, cbHdrMax, cbPktMax);
 }
+RT_EXPORT_SYMBOL(RTNetIPv4IsTCPSizeValid);
 
 
@@ -551,4 +567,5 @@
     return true;
 }
+RT_EXPORT_SYMBOL(RTNetIPv4IsTCPValid);
 
 
@@ -679,3 +696,4 @@
     return true;
 }
-
+RT_EXPORT_SYMBOL(RTNetIPv4IsDHCPValid);
+
Index: trunk/src/VBox/Runtime/common/checksum/md5.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/checksum/md5.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/checksum/md5.cpp	(revision 21337)
@@ -50,7 +50,16 @@
  */
 
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
+#include <iprt/md5.h>
+#include "internal/iprt.h"
+
 #include <iprt/string.h>		 /* for memcpy() */
-#include <iprt/md5.h>
-
+
+
+/*******************************************************************************
+*   Defined Constants And Macros                                               *
+*******************************************************************************/
 #ifdef sgi
 #define HIGHFIRST
@@ -97,4 +106,6 @@
     ctx->bits[1] = 0;
 }
+RT_EXPORT_SYMBOL(RTMd5Init);
+
 
 /*
@@ -146,4 +157,6 @@
     memcpy(ctx->in, buf, len);
 }
+RT_EXPORT_SYMBOL(RTMd5Update);
+
 
 /*
@@ -191,4 +204,5 @@
     memset(ctx, 0, sizeof(ctx));        /* In case it's sensitive */
 }
+RT_EXPORT_SYMBOL(RTMd5Final);
 
 
Index: trunk/src/VBox/Runtime/common/dbg/dbg.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/dbg/dbg.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/dbg/dbg.cpp	(revision 21337)
@@ -33,4 +33,6 @@
 *******************************************************************************/
 #include <iprt/dbg.h>
+#include "internal/iprt.h"
+
 #include <iprt/mem.h>
 
@@ -46,4 +48,5 @@
     return (PRTDBGSYMBOL)RTMemAllocZ(sizeof(RTDBGSYMBOL));
 }
+RT_EXPORT_SYMBOL(RTDbgSymbolAlloc);
 
 
@@ -59,4 +62,5 @@
     return (PRTDBGSYMBOL)RTMemDup(pSymInfo, sizeof(*pSymInfo));
 }
+RT_EXPORT_SYMBOL(RTDbgSymbolDup);
 
 
@@ -70,4 +74,5 @@
     RTMemFree(pSymInfo);
 }
+RT_EXPORT_SYMBOL(RTDbgSymbolFree);
 
 
@@ -81,4 +86,5 @@
     return (PRTDBGLINE)RTMemAllocZ(sizeof(RTDBGLINE));
 }
+RT_EXPORT_SYMBOL(RTDbgLineAlloc);
 
 
@@ -94,4 +100,5 @@
     return (PRTDBGLINE)RTMemDup(pLine, sizeof(*pLine));
 }
+RT_EXPORT_SYMBOL(RTDbgLineDup);
 
 
@@ -105,4 +112,5 @@
     RTMemFree(pLine);
 }
+RT_EXPORT_SYMBOL(RTDbgLineFree);
 
 
Index: trunk/src/VBox/Runtime/common/dbg/dbgas.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/dbg/dbgas.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/dbg/dbgas.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/dbg.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/avl.h>
@@ -224,4 +227,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgAsCreate);
 
 
@@ -251,4 +255,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgAsCreateV);
 
 
@@ -272,4 +277,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgAsCreateF);
 
 
@@ -351,4 +357,5 @@
     return ASMAtomicIncU32(&pDbgAs->cRefs);
 }
+RT_EXPORT_SYMBOL(RTDbgAsRetain);
 
 
@@ -380,4 +387,5 @@
     return cRefs;
 }
+RT_EXPORT_SYMBOL(RTDbgAsRelease);
 
 
@@ -398,4 +406,5 @@
     return pDbgAs->szName;
 }
+RT_EXPORT_SYMBOL(RTDbgAsName);
 
 
@@ -416,4 +425,5 @@
     return pDbgAs->FirstAddr;
 }
+RT_EXPORT_SYMBOL(RTDbgAsFirstAddr);
 
 
@@ -434,4 +444,5 @@
     return pDbgAs->LastAddr;
 }
+RT_EXPORT_SYMBOL(RTDbgAsLastAddr);
 
 /**
@@ -453,4 +464,5 @@
     return pDbgAs->cModules;
 }
+RT_EXPORT_SYMBOL(RTDbgAsModuleCount);
 
 
@@ -635,4 +647,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgAsModuleLink);
 
 
@@ -683,4 +696,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgAsModuleLinkSeg);
 
 
@@ -839,4 +853,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTDbgAsModuleUnlink);
 
 
@@ -874,4 +889,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTDbgAsModuleUnlinkByAddr);
 
 
@@ -914,4 +930,5 @@
     return hMod;
 }
+RT_EXPORT_SYMBOL(RTDbgAsModuleByIndex);
 
 
@@ -965,4 +982,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTDbgAsModuleByAddr);
 
 
@@ -1019,4 +1037,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTDbgAsModuleByName);
 
 
@@ -1169,4 +1188,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgAsSymbolAdd);
 
 
@@ -1216,4 +1236,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgAsSymbolByAddr);
 
 
@@ -1264,4 +1285,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgAsSymbolByAddrA);
 
 
@@ -1437,4 +1459,5 @@
     return VERR_SYMBOL_NOT_FOUND;
 }
+RT_EXPORT_SYMBOL(RTDbgAsSymbolByName);
 
 
@@ -1511,4 +1534,5 @@
     return VERR_SYMBOL_NOT_FOUND;
 }
+RT_EXPORT_SYMBOL(RTDbgAsSymbolByNameA);
 
 
@@ -1551,4 +1575,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgAsLineAdd);
 
 
@@ -1590,4 +1615,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgAsLineByAddr);
 
 
@@ -1630,3 +1656,4 @@
     return rc;
 }
-
+RT_EXPORT_SYMBOL(RTDbgAsLineByAddrA);
+
Index: trunk/src/VBox/Runtime/common/dbg/dbgmod.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/dbg/dbgmod.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/dbg/dbgmod.cpp	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/dbg.h>
+#include "internal/iprt.h"
 
 #include <iprt/asm.h>
@@ -305,4 +307,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModCreate);
 
 
@@ -311,4 +314,5 @@
     return VERR_NOT_IMPLEMENTED;
 }
+RT_EXPORT_SYMBOL(RTDbgModCreateDeferred);
 
 
@@ -317,4 +321,5 @@
     return VERR_NOT_IMPLEMENTED;
 }
+RT_EXPORT_SYMBOL(RTDbgModCreateFromImage);
 
 
@@ -393,4 +398,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModCreateFromMap);
 
 
@@ -449,4 +455,5 @@
     return ASMAtomicIncU32(&pDbgMod->cRefs);
 }
+RT_EXPORT_SYMBOL(RTDbgModRetain);
 
 
@@ -475,4 +482,5 @@
     return cRefs;
 }
+RT_EXPORT_SYMBOL(RTDbgModRelease);
 
 
@@ -490,4 +498,5 @@
     return pDbgMod->pszName;
 }
+RT_EXPORT_SYMBOL(RTDbgModName);
 
 
@@ -514,4 +523,5 @@
     return iSeg;
 }
+RT_EXPORT_SYMBOL(RTDbgModRvaToSegOff);
 
 
@@ -538,4 +548,5 @@
     return cbImage;
 }
+RT_EXPORT_SYMBOL(RTDbgModImageSize);
 
 
@@ -596,4 +607,5 @@
 
 }
+RT_EXPORT_SYMBOL(RTDbgModSegmentAdd);
 
 
@@ -620,4 +632,5 @@
     return cSegs;
 }
+RT_EXPORT_SYMBOL(RTDbgModSegmentCount);
 
 
@@ -651,4 +664,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModSegmentByIndex);
 
 
@@ -675,4 +689,5 @@
     return RT_SUCCESS(rc) ? SegInfo.cb : RTUINTPTR_MAX;
 }
+RT_EXPORT_SYMBOL(RTDbgModSegmentSize);
 
 
@@ -696,4 +711,5 @@
     return RT_SUCCESS(rc) ? SegInfo.uRva : RTUINTPTR_MAX;
 }
+RT_EXPORT_SYMBOL(RTDbgModSegmentRva);
 
 
@@ -769,4 +785,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModSymbolAdd);
 
 
@@ -794,4 +811,5 @@
     return cSymbols;
 }
+RT_EXPORT_SYMBOL(RTDbgModSymbolCount);
 
 
@@ -821,4 +839,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModSymbolByOrdinal);
 
 
@@ -856,4 +875,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModSymbolByOrdinalA);
 
 
@@ -916,4 +936,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModSymbolByAddr);
 
 
@@ -962,4 +983,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModSymbolByAddrA);
 
 
@@ -999,4 +1021,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModSymbolByName);
 
 
@@ -1034,4 +1057,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModSymbolByNameA);
 
 
@@ -1102,4 +1126,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModLineAdd);
 
 
@@ -1127,4 +1152,5 @@
     return cLineNumbers;
 }
+RT_EXPORT_SYMBOL(RTDbgModLineCount);
 
 
@@ -1157,4 +1183,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModLineByOrdinal);
 
 
@@ -1195,4 +1222,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModLineByOrdinalA);
 
 
@@ -1253,4 +1281,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTDbgModLineByAddr);
 
 
@@ -1300,3 +1329,4 @@
     return rc;
 }
-
+RT_EXPORT_SYMBOL(RTDbgModLineByAddrA);
+
Index: trunk/src/VBox/Runtime/common/dbg/dbgmodcontainer.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/dbg/dbgmodcontainer.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/dbg/dbgmodcontainer.cpp	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/dbg.h>
+#include "internal/iprt.h"
 
 #include <iprt/avl.h>
Index: trunk/src/VBox/Runtime/common/dbg/dbgmodnm.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/dbg/dbgmodnm.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/dbg/dbgmodnm.cpp	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/dbg.h>
+#include "internal/iprt.h"
 
 #include <iprt/err.h>
Index: trunk/src/VBox/Runtime/common/err/RTErrConvertFromErrno.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/err/RTErrConvertFromErrno.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/err/RTErrConvertFromErrno.cpp	(revision 21337)
@@ -34,6 +34,7 @@
 *******************************************************************************/
 #include <iprt/err.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
-#include <iprt/err.h>
 
 #if defined(RT_OS_DARWIN) && defined(KERNEL)
@@ -446,3 +447,4 @@
     }
 }
-
+RT_EXPORT_SYMBOL(RTErrConvertFromErrno);
+
Index: trunk/src/VBox/Runtime/common/err/RTErrConvertToErrno.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/err/RTErrConvertToErrno.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/err/RTErrConvertToErrno.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/err.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include <iprt/err.h>
@@ -456,11 +458,4 @@
     }
 }
-
-#if defined(RT_OS_LINUX) && defined(IN_MODULE)
-/*
- * When we build this in the Linux kernel module, we wish to make the
- * symbols available to other modules as well.
- */
-# include "the-linux-kernel.h"
-EXPORT_SYMBOL(RTErrConvertToErrno);
-#endif
+RT_EXPORT_SYMBOL(RTErrConvertToErrno);
+
Index: trunk/src/VBox/Runtime/common/err/errmsg.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/err/errmsg.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/err/errmsg.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/err.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/string.h>
@@ -103,3 +106,4 @@
     return &g_aUnknownMsgs[iMsg];
 }
+RT_EXPORT_SYMBOL(RTErrGet);
 
Index: trunk/src/VBox/Runtime/common/err/errmsgxpcom.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/err/errmsgxpcom.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/err/errmsgxpcom.cpp	(revision 21337)
@@ -33,4 +33,6 @@
 *******************************************************************************/
 #include <iprt/err.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/string.h>
@@ -150,3 +152,4 @@
     return &g_aUnknownMsgs[iMsg];
 }
+RT_EXPORT_SYMBOL(RTErrCOMGet);
 
Index: trunk/src/VBox/Runtime/common/ldr/ldr.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/ldr/ldr.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/ldr/ldr.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_LDR
 #include <iprt/ldr.h>
+#include "internal/iprt.h"
+
 #include <iprt/alloc.h>
 #include <iprt/string.h>
@@ -84,4 +86,5 @@
     return false;
 }
+RT_EXPORT_SYMBOL(RTLdrIsLoadable);
 
 
@@ -128,4 +131,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLdrGetSymbol);
 
 
@@ -162,3 +166,4 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTLdrClose);
 
Index: trunk/src/VBox/Runtime/common/ldr/ldrELF.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/ldr/ldrELF.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/ldr/ldrELF.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_LDR
 #include <iprt/ldr.h>
+#include "internal/iprt.h"
+
 #include <iprt/alloc.h>
 #include <iprt/assert.h>
Index: trunk/src/VBox/Runtime/common/ldr/ldrELFRelocatable.cpp.h
===================================================================
--- trunk/src/VBox/Runtime/common/ldr/ldrELFRelocatable.cpp.h	(revision 21332)
+++ trunk/src/VBox/Runtime/common/ldr/ldrELFRelocatable.cpp.h	(revision 21337)
@@ -29,4 +29,5 @@
  */
 
+
 /*******************************************************************************
 *   Defined Constants And Macros                                               *
Index: trunk/src/VBox/Runtime/common/ldr/ldrEx.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/ldr/ldrEx.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/ldr/ldrEx.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_LDR
 #include <iprt/ldr.h>
+#include "internal/iprt.h"
+
 #include <iprt/alloc.h>
 #include <iprt/assert.h>
@@ -195,4 +197,5 @@
     return cb;
 }
+RT_EXPORT_SYMBOL(RTLdrSize);
 
 
@@ -231,4 +234,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLdrGetBits);
 
 
@@ -269,4 +273,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLdrRelocate);
 
 
@@ -321,4 +326,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLdrGetSymbolEx);
 
 
@@ -357,3 +363,4 @@
     return rc;
 }
-
+RT_EXPORT_SYMBOL(RTLdrEnumSymbols);
+
Index: trunk/src/VBox/Runtime/common/ldr/ldrFile.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/ldr/ldrFile.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/ldr/ldrFile.cpp	(revision 21337)
@@ -29,4 +29,5 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
@@ -34,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_LDR
 #include <iprt/ldr.h>
+#include "internal/iprt.h"
+
 #include <iprt/alloc.h>
 #include <iprt/file.h>
@@ -287,4 +290,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLdrOpen);
 
 
@@ -340,3 +344,4 @@
 #endif
 }
-
+RT_EXPORT_SYMBOL(RTLdrOpenkLdr);
+
Index: trunk/src/VBox/Runtime/common/ldr/ldrNative.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/ldr/ldrNative.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/ldr/ldrNative.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_LDR
 #include <iprt/ldr.h>
+#include "internal/iprt.h"
+
 #include <iprt/alloc.h>
 #include <iprt/assert.h>
@@ -134,4 +136,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLdrLoad);
 
 
@@ -199,4 +202,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLdrLoadAppPriv);
 
 
@@ -220,3 +224,4 @@
     return s_szSuff;
 }
-
+RT_EXPORT_SYMBOL(RTLdrGetSuff);
+
Index: trunk/src/VBox/Runtime/common/ldr/ldrPE.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/ldr/ldrPE.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/ldr/ldrPE.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_LDR
 #include <iprt/ldr.h>
+#include "internal/iprt.h"
+
 #include <iprt/alloc.h>
 #include <iprt/assert.h>
Index: trunk/src/VBox/Runtime/common/ldr/ldrkStuff.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/ldr/ldrkStuff.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/ldr/ldrkStuff.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_LDR
 #include <iprt/ldr.h>
+#include "internal/iprt.h"
+
 #include <iprt/file.h>
 #include <iprt/alloc.h>
Index: trunk/src/VBox/Runtime/common/log/log.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/log/log.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/log/log.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
+
 #ifndef IN_RC
 # include <iprt/alloc.h>
@@ -488,4 +490,6 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLogCreateExV);
+
 
 /**
@@ -517,4 +521,6 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLogCreate);
+
 
 /**
@@ -548,4 +554,6 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLogCreateEx);
+
 
 /**
@@ -625,4 +633,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLogDestroy);
 
 
@@ -708,4 +717,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTLogCloneRC);
 
 
@@ -764,4 +774,5 @@
     }
 }
+RT_EXPORT_SYMBOL(RTLogFlushRC);
 
 
@@ -809,4 +820,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTLogCreateForR0);
 #endif /* IN_RING3 */
 
@@ -866,4 +878,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLogCopyGroupsAndFlags);
 
 
@@ -935,4 +948,5 @@
     }
 }
+RT_EXPORT_SYMBOL(RTLogFlushToLogger);
 
 
@@ -968,4 +982,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTLogSetCustomPrefixCallback);
 
 
@@ -1147,4 +1162,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTLogGroupSettings);
 
 
@@ -1377,4 +1393,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLogFlags);
 
 
@@ -1428,4 +1445,5 @@
     }
 }
+RT_EXPORT_SYMBOL(RTLogFlush);
 
 
@@ -1464,4 +1482,5 @@
 #endif /* !IN_RC */
 }
+RT_EXPORT_SYMBOL(RTLogDefaultInstance);
 
 
@@ -1494,4 +1513,5 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTLogGetDefaultInstance);
 
 
@@ -1507,4 +1527,5 @@
     return (PRTLOGGER)ASMAtomicXchgPtr((void * volatile *)&g_pLogger, pLogger);
 }
+RT_EXPORT_SYMBOL(RTLogSetDefaultInstance);
 #endif /* !IN_RC */
 
@@ -1593,4 +1614,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTLogSetDefaultInstanceThread);
 #endif
 
@@ -1607,4 +1629,5 @@
     RTLogLoggerExV(pLogger, 0, ~0U, pszFormat, args);
 }
+RT_EXPORT_SYMBOL(RTLogLoggerV);
 
 
@@ -1691,4 +1714,6 @@
     rtlogUnlock(pLogger);
 }
+RT_EXPORT_SYMBOL(RTLogLoggerExV);
+
 
 #ifdef IN_RING0
@@ -1827,4 +1852,5 @@
     RTLogLoggerV(NULL, pszFormat, args);
 }
+RT_EXPORT_SYMBOL(RTLogPrintfV);
 
 
Index: trunk/src/VBox/Runtime/common/log/logcom.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/log/logcom.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/log/logcom.cpp	(revision 21337)
@@ -29,4 +29,5 @@
  */
 
+
 /*******************************************************************************
 *   Defined Constants And Macros                                               *
@@ -49,4 +50,6 @@
 *******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/stdarg.h>
@@ -77,4 +80,5 @@
     return cb;
 }
+RT_EXPORT_SYMBOL(RTLogComPrintf);
 
 
@@ -90,4 +94,5 @@
     return RTLogFormatV(rtLogComOutput, NULL, pszFormat, args);
 }
+RT_EXPORT_SYMBOL(RTLogComPrintfV);
 
 
@@ -134,3 +139,4 @@
     }
 }
+RT_EXPORT_SYMBOL(RTLogWriteCom);
 
Index: trunk/src/VBox/Runtime/common/log/logellipsis.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/log/logellipsis.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/log/logellipsis.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/stdarg.h>
@@ -59,4 +62,5 @@
     va_end(args);
 }
+RT_EXPORT_SYMBOL(RTLogLogger);
 
 
@@ -83,4 +87,5 @@
     va_end(args);
 }
+RT_EXPORT_SYMBOL(RTLogLoggerEx);
 
 
@@ -100,3 +105,4 @@
     va_end(args);
 }
+RT_EXPORT_SYMBOL(RTLogPrintf);
 
Index: trunk/src/VBox/Runtime/common/log/logformat.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/log/logformat.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/log/logformat.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
+
 #include <iprt/string.h>
 #include <iprt/assert.h>
@@ -69,4 +71,5 @@
     return RTStrFormatV(pfnOutput, pvArg, rtlogFormatStr, NULL, pszFormat, args);
 }
+RT_EXPORT_SYMBOL(RTLogFormatV);
 
 
Index: trunk/src/VBox/Runtime/common/log/logrel.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/log/logrel.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/log/logrel.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
+
 #ifndef IN_RC
 # include <iprt/alloc.h>
@@ -86,4 +88,5 @@
 #endif /* !IN_RC */
 }
+RT_EXPORT_SYMBOL(RTLogRelDefaultInstance);
 
 
@@ -99,4 +102,5 @@
     return (PRTLOGGER)ASMAtomicXchgPtr((void * volatile *)&g_pRelLogger, pLogger);
 }
+RT_EXPORT_SYMBOL(RTLogRelSetDefaultInstance);
 #endif /* !IN_RC */
 
@@ -129,4 +133,5 @@
     RTLogLoggerExV(pLogger, fFlags, iGroup, pszFormat, args);
 }
+RT_EXPORT_SYMBOL(RTLogRelLoggerV);
 
 
@@ -143,3 +148,4 @@
     RTLogRelLoggerV(NULL, 0, ~0U, pszFormat, args);
 }
+RT_EXPORT_SYMBOL(RTLogRelPrintfV);
 
Index: trunk/src/VBox/Runtime/common/log/logrelellipsis.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/log/logrelellipsis.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/log/logrelellipsis.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
+
 #include <iprt/stdarg.h>
 
@@ -58,4 +61,5 @@
     va_end(args);
 }
+RT_EXPORT_SYMBOL(RTLogRelLogger);
 
 
@@ -75,3 +79,4 @@
     va_end(args);
 }
+RT_EXPORT_SYMBOL(RTLogRelPrintf);
 
Index: trunk/src/VBox/Runtime/common/misc/RTAssertMsg1Weak.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/RTAssertMsg1Weak.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/RTAssertMsg1Weak.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/assert.h>
+#include "internal/iprt.h"
+
 #include <iprt/stdarg.h>
 
@@ -41,3 +43,4 @@
     RTAssertMsg1(pszExpr, uLine, pszFile, pszFunction);
 }
+RT_EXPORT_SYMBOL(AssertMsg1);
 
Index: trunk/src/VBox/Runtime/common/misc/RTAssertMsg2.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/RTAssertMsg2.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/RTAssertMsg2.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/assert.h>
+#include "internal/iprt.h"
+
 #include <iprt/stdarg.h>
 
@@ -44,3 +46,4 @@
     va_end(va);
 }
+RT_EXPORT_SYMBOL(RTAssertMsg2);
 
Index: trunk/src/VBox/Runtime/common/misc/RTAssertMsg2Weak.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/RTAssertMsg2Weak.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/RTAssertMsg2Weak.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/assert.h>
+#include "internal/iprt.h"
+
 #include <iprt/stdarg.h>
 
@@ -44,3 +46,4 @@
     va_end(va);
 }
+RT_EXPORT_SYMBOL(AssertMsg2);
 
Index: trunk/src/VBox/Runtime/common/misc/assert.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/assert.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/assert.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/assert.h>
+#include "internal/iprt.h"
+
 #include <iprt/log.h>
 #include <iprt/string.h>
@@ -42,5 +44,7 @@
 
 
-#if defined(IN_GUEST_R0) && (defined(RT_OS_LINUX) || defined(RT_OS_WINDOWS))
+#if defined(IN_GUEST_R0) \
+ && (  (defined(RT_OS_LINUX) && !defined(VBOX_WITH_COMMON_VBOXGUEST_ON_LINUX)) \
+     || defined(RT_OS_WINDOWS))
 /*
  * This is legacy that should be eliminated. OS specific code deals with
@@ -67,4 +71,5 @@
                         pszExpr, pszFile, uLine, pszFunction);
 }
+RT_EXPORT_SYMBOL(AssertMsg1);
 
 
@@ -83,14 +88,5 @@
     va_end(args);
 }
-
-# if defined(RT_OS_LINUX) && defined(IN_MODULE)
-/*
- * When we build this in the Linux kernel module, we wish to make the
- * symbols available to other modules as well.
- */
-#  include "the-linux-kernel.h"
-EXPORT_SYMBOL(AssertMsg1);
-EXPORT_SYMBOL(AssertMsg2);
-# endif
+RT_EXPORT_SYMBOL(AssertMsg2);
 
 #elif defined(IN_RING0)
Index: trunk/src/VBox/Runtime/common/misc/cache.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/cache.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/cache.cpp	(revision 21337)
@@ -33,4 +33,6 @@
 *   Header Files                                                               *
 *******************************************************************************/
+#include <iprt/cache.h>
+#include "internal/iprt.h"
 
 #include <iprt/cdefs.h>
@@ -39,8 +41,8 @@
 #include <iprt/spinlock.h>
 #include <iprt/mem.h>
-#include <iprt/cache.h>
 #include <iprt/asm.h>
 
 #include "internal/magics.h"
+
 
 /**
@@ -135,4 +137,6 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTCacheCreate);
+
 
 /**
@@ -178,4 +182,6 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTCacheDestroy);
+
 
 /**
@@ -245,4 +251,6 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTCacheRequest);
+
 
 /**
@@ -289,3 +297,4 @@
     return rc;
 }
-
+RT_EXPORT_SYMBOL(RTCacheInsert);
+
Index: trunk/src/VBox/Runtime/common/misc/cidr.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/cidr.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/cidr.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/cidr.h>
+#include "internal/iprt.h"
+
 #include <iprt/ctype.h>
 #include <iprt/string.h>
@@ -73,5 +76,5 @@
 
 
-int RTCidrStrToIPv4(const char *pszAddress, PRTIPV4ADDR pNetwork, PRTIPV4ADDR pNetmask)
+RTDECL(int) RTCidrStrToIPv4(const char *pszAddress, PRTIPV4ADDR pNetwork, PRTIPV4ADDR pNetmask)
 {
     uint8_t cBits;
@@ -135,2 +138,4 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTCidrStrToIPv4);
+
Index: trunk/src/VBox/Runtime/common/misc/getopt.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/getopt.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/getopt.cpp	(revision 21337)
@@ -32,6 +32,8 @@
 *   Header Files                                                               *
 *******************************************************************************/
-#include <iprt/net.h>
+#include <iprt/net.h>                   /* must come before getopt.h */
 #include <iprt/getopt.h>
+#include "internal/iprt.h"
+
 #include <iprt/err.h>
 #include <iprt/string.h>
@@ -69,4 +71,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTGetOptInit);
 
 
@@ -496,3 +499,4 @@
     return VINF_GETOPT_NOT_OPTION;
 }
-
+RT_EXPORT_SYMBOL(RTGetOpt);
+
Index: trunk/src/VBox/Runtime/common/misc/handletable.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/handletable.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/handletable.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/handletable.h>
+#include "internal/iprt.h"
+
 #include <iprt/mem.h>
 #include <iprt/spinlock.h>
@@ -115,4 +118,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTHandleTableCreateEx);
 
 
@@ -121,4 +125,5 @@
     return RTHandleTableCreateEx(phHandleTable, RTHANDLETABLE_FLAGS_LOCKED, 1, 65534, NULL, NULL);
 }
+RT_EXPORT_SYMBOL(RTHandleTableCreate);
 
 
@@ -215,3 +220,4 @@
     return VINF_SUCCESS;
 }
-
+RT_EXPORT_SYMBOL(RTHandleTableDestroy);
+
Index: trunk/src/VBox/Runtime/common/misc/handletablectx.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/handletablectx.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/handletablectx.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/handletable.h>
+#include "internal/iprt.h"
+
 #include <iprt/mem.h>
 #include <iprt/spinlock.h>
@@ -216,4 +219,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTHandleTableAllocWithCtx);
 
 
@@ -259,4 +263,5 @@
     return pvObj;
 }
+RT_EXPORT_SYMBOL(RTHandleTableLookupWithCtx);
 
 
@@ -330,3 +335,4 @@
     return pvObj;
 }
-
+RT_EXPORT_SYMBOL(RTHandleTableFreeWithCtx);
+
Index: trunk/src/VBox/Runtime/common/misc/handletablesimple.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/handletablesimple.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/handletablesimple.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/handletable.h>
+#include "internal/iprt.h"
+
 #include <iprt/mem.h>
 #include <iprt/spinlock.h>
@@ -200,4 +203,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTHandleTableAlloc);
 
 
@@ -240,4 +244,5 @@
     return pvObj;
 }
+RT_EXPORT_SYMBOL(RTHandleTableLookup);
 
 
@@ -303,3 +308,4 @@
     return pvObj;
 }
-
+RT_EXPORT_SYMBOL(RTHandleTableFree);
+
Index: trunk/src/VBox/Runtime/common/misc/once.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/once.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/once.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/once.h>
+#include "internal/iprt.h"
+
 #include <iprt/semaphore.h>
 #include <iprt/thread.h>
@@ -159,4 +162,5 @@
     return ASMAtomicUoReadS32(&pOnce->rc);
 }
+RT_EXPORT_SYMBOL(RTOnce);
 
 
@@ -172,3 +176,4 @@
     ASMAtomicWriteS32(&pOnce->iState, -1);
 }
+RT_EXPORT_SYMBOL(RTOnceReset);
 
Index: trunk/src/VBox/Runtime/common/misc/req.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/req.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/req.cpp	(revision 21337)
@@ -33,4 +33,6 @@
 *   Header Files                                                               *
 *******************************************************************************/
+#include <iprt/req.h>
+#include "internal/iprt.h"
 
 #include <iprt/assert.h>
@@ -40,5 +42,4 @@
 #include <iprt/semaphore.h>
 #include <iprt/thread.h>
-#include <iprt/req.h>
 #include <iprt/log.h>
 #include <iprt/mem.h>
@@ -70,4 +71,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTReqCreateQueue);
 
 
@@ -92,4 +94,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTReqDestroyQueue);
 
 /**
@@ -176,4 +179,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTReqProcess);
 
 /**
@@ -208,4 +212,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTReqCall);
 
 
@@ -241,4 +246,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTReqCallVoid);
 
 
@@ -276,4 +282,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTReqCallEx);
 
 
@@ -363,4 +370,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTReqCallV);
 
 
@@ -432,4 +440,5 @@
 RTDECL(int) RTReqAlloc(PRTREQQUEUE pQueue, PRTREQ *ppReq, RTREQTYPE enmType)
 {
+    RT_EXPORT_SYMBOL(RTReqAlloc);
     /*
      * Validate input.
@@ -609,4 +618,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTReqFree);
 
 
@@ -682,4 +692,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTReqQueue);
 
 
@@ -745,4 +756,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTReqWait);
 
 
@@ -890,5 +902,2 @@
 }
 
-
-
-
Index: trunk/src/VBox/Runtime/common/misc/s3.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/s3.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/s3.cpp	(revision 21337)
@@ -1,5 +1,5 @@
 /* $Id$ */
 /** @file
- * S3 communication API.
+ * IPRT - S3 communication API.
  */
 
@@ -33,5 +33,6 @@
 *   Header Files                                                               *
 *******************************************************************************/
-#include "iprt/s3.h"
+#include <iprt/s3.h>
+#include "internal/iprt.h"
 
 #include <iprt/err.h>
@@ -48,4 +49,8 @@
 #include "internal/magics.h"
 
+
+/*******************************************************************************
+*   Structures and Typedefs                                                    *
+*******************************************************************************/
 typedef struct RTS3INTERNAL
 {
@@ -71,4 +76,5 @@
 typedef RTS3TMPMEMCHUNK *PRTS3TMPMEMCHUNK;
 
+
 /*******************************************************************************
 *   Defined Constants And Macros                                               *
@@ -91,4 +97,5 @@
         AssertReturnVoid((hS3)->u32Magic == RTS3_MAGIC); \
     } while (0)
+
 
 /*******************************************************************************
Index: trunk/src/VBox/Runtime/common/misc/semspingpong.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/semspingpong.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/semspingpong.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/semaphore.h>
+#include "internal/iprt.h"
+
 #include <iprt/thread.h>
 #include <iprt/asm.h>
@@ -69,5 +71,5 @@
  * @param   pPP         Pointer to the ping-pong structure which needs initialization.
  */
-RTR3DECL(int) RTSemPingPongInit(PRTPINGPONG pPP)
+RTDECL(int) RTSemPingPongInit(PRTPINGPONG pPP)
 {
     /*
@@ -87,4 +89,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemPingPongInit);
 
 
@@ -96,5 +99,5 @@
  *                      (I.e. put into uninitialized state.)
  */
-RTR3DECL(int) RTSemPingPongDelete(PRTPINGPONG pPP)
+RTDECL(int) RTSemPingPongDelete(PRTPINGPONG pPP)
 {
     /*
@@ -117,4 +120,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemPingPongDelete);
 
 
@@ -126,5 +130,5 @@
  * @param   pPP         Pointer to the ping-pong structure to ping.
  */
-RTR3DECL(int) RTSemPing(PRTPINGPONG pPP)
+RTDECL(int) RTSemPing(PRTPINGPONG pPP)
 {
     /*
@@ -149,4 +153,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemPing);
 
 
@@ -158,5 +163,5 @@
  * @param   pPP         Pointer to the ping-pong structure to pong.
  */
-RTR3DECL(int) RTSemPong(PRTPINGPONG pPP)
+RTDECL(int) RTSemPong(PRTPINGPONG pPP)
 {
     /*
@@ -181,4 +186,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemPong);
 
 
@@ -191,5 +197,5 @@
  * @param   cMillies    Number of milliseconds to wait.
  */
-RTR3DECL(int) RTSemPingWait(PRTPINGPONG pPP, unsigned cMillies)
+RTDECL(int) RTSemPingWait(PRTPINGPONG pPP, unsigned cMillies)
 {
     /*
@@ -213,4 +219,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemPingWait);
 
 
@@ -223,5 +230,5 @@
  * @param   cMillies    Number of milliseconds to wait.
  */
-RTR3DECL(int) RTSemPongWait(PRTPINGPONG pPP, unsigned cMillies)
+RTDECL(int) RTSemPongWait(PRTPINGPONG pPP, unsigned cMillies)
 {
     /*
@@ -245,3 +252,4 @@
     return rc;
 }
-
+RT_EXPORT_SYMBOL(RTSemPongWait);
+
Index: trunk/src/VBox/Runtime/common/misc/term.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/term.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/term.cpp	(revision 21337)
@@ -33,4 +33,6 @@
 *******************************************************************************/
 #include <iprt/initterm.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/assert.h>
@@ -143,4 +145,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTTermRegisterCallback);
 
 
@@ -192,4 +195,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTTermDeregisterCallback);
 
 
@@ -240,3 +244,4 @@
     RTOnceReset(&g_InitTermCallbacksOnce); /* for the testcase */
 }
-
+RT_EXPORT_SYMBOL(RTTermRunCallbacks);
+
Index: trunk/src/VBox/Runtime/common/misc/thread.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/thread.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/thread.cpp	(revision 21337)
@@ -30,5 +30,4 @@
 
 
-
 /*******************************************************************************
 *   Header Files                                                               *
@@ -36,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_THREAD
 #include <iprt/thread.h>
+#include "internal/iprt.h"
+
 #include <iprt/log.h>
 #include <iprt/avl.h>
@@ -305,4 +306,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTThreadAdopt);
 
 
@@ -728,4 +730,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTThreadCreate);
 
 
@@ -752,4 +755,5 @@
     return RTThreadCreate(pThread, pfnThread, pvUser, cbStack, enmType, fFlags, szName);
 }
+RT_EXPORT_SYMBOL(RTThreadCreateV);
 
 
@@ -778,4 +782,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTThreadCreateF);
 
 
@@ -797,4 +802,5 @@
     return NIL_RTNATIVETHREAD;
 }
+RT_EXPORT_SYMBOL(RTThreadGetNative);
 
 
@@ -813,4 +819,5 @@
     return NIL_RTTHREAD;
 }
+RT_EXPORT_SYMBOL(RTThreadFromNative);
 
 
@@ -836,4 +843,5 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTThreadSelfName);
 
 
@@ -858,4 +866,5 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTThreadGetName);
 
 
@@ -890,4 +899,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTThreadSetName);
 
 
@@ -910,4 +920,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTThreadUserSignal);
 
 
@@ -933,4 +944,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTThreadUserWait);
 
 
@@ -956,4 +968,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTThreadUserWaitNoResume);
 
 
@@ -977,4 +990,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTThreadUserReset);
 
 
@@ -1045,4 +1059,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTThreadWait);
 
 
@@ -1060,4 +1075,5 @@
     return rtThreadWait(Thread, cMillies, prc, false);
 }
+RT_EXPORT_SYMBOL(RTThreadWaitNoResume);
 
 
@@ -1109,4 +1125,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTThreadSetType);
 
 
@@ -1129,4 +1146,5 @@
     return enmType;
 }
+RT_EXPORT_SYMBOL(RTThreadGetType);
 
 
@@ -1157,4 +1175,5 @@
     return cWriteLocks;
 }
+RT_EXPORT_SYMBOL(RTThreadGetWriteLockCount);
 
 
@@ -1171,4 +1190,5 @@
     rtThreadRelease(pThread);
 }
+RT_EXPORT_SYMBOL(RTThreadWriteLockInc);
 
 
@@ -1185,4 +1205,5 @@
     rtThreadRelease(pThread);
 }
+RT_EXPORT_SYMBOL(RTThreadWriteLockDec);
 
 
@@ -1210,4 +1231,5 @@
     return cReadLocks;
 }
+RT_EXPORT_SYMBOL(RTThreadGetReadLockCount);
 
 
@@ -1224,4 +1246,5 @@
     rtThreadRelease(pThread);
 }
+RT_EXPORT_SYMBOL(RTThreadReadLockInc);
 
 
@@ -1238,4 +1261,5 @@
     rtThreadRelease(pThread);
 }
+RT_EXPORT_SYMBOL(RTThreadReadLockDec);
 
 
@@ -1506,4 +1530,5 @@
     }
 }
+RT_EXPORT_SYMBOL(RTThreadBlocking);
 
 
@@ -1522,4 +1547,5 @@
         ASMAtomicWriteSize(&hThread->enmState, RTTHREADSTATE_RUNNING);
 }
+RT_EXPORT_SYMBOL(RTThreadUnblocked);
 
 #endif /* IN_RING3 */
Index: trunk/src/VBox/Runtime/common/misc/zip.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/misc/zip.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/misc/zip.cpp	(revision 21337)
@@ -54,4 +54,6 @@
 
 #include <iprt/zip.h>
+#include "internal/iprt.h"
+
 #include <iprt/alloc.h>
 #include <iprt/assert.h>
@@ -1343,4 +1345,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTZipCompCreate);
 
 
@@ -1359,4 +1362,5 @@
     return pZip->pfnCompress(pZip, pvBuf, cbBuf);
 }
+RT_EXPORT_SYMBOL(RTZipCompress);
 
 
@@ -1372,4 +1376,5 @@
     return pZip->pfnFinish(pZip);
 }
+RT_EXPORT_SYMBOL(RTZipCompFinish);
 
 
@@ -1395,4 +1400,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTZipCompDestroy);
 
 
@@ -1453,4 +1459,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTZipDecompCreate);
 
 
@@ -1564,4 +1571,6 @@
     return pZip->pfnDecompress(pZip, pvBuf, cbBuf, pcbWritten);
 }
+RT_EXPORT_SYMBOL(RTZipDecompress);
+
 
 /**
@@ -1586,4 +1595,4 @@
     return rc;
 }
-
-
+RT_EXPORT_SYMBOL(RTZipDecompDestroy);
+
Index: trunk/src/VBox/Runtime/common/rand/rand.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/rand/rand.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/rand/rand.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/rand.h>
+#include "internal/iprt.h"
+
 #include <iprt/time.h>
 #include <iprt/asm.h>
@@ -85,4 +87,5 @@
     RTRandAdvBytes(g_hRand, pv, cb);
 }
+RT_EXPORT_SYMBOL(RTRandBytes);
 
 
@@ -92,4 +95,5 @@
     return RTRandAdvU32Ex(g_hRand, u32First, u32Last);
 }
+RT_EXPORT_SYMBOL(RTRandU32Ex);
 
 
@@ -99,4 +103,5 @@
     return RTRandAdvU32(g_hRand);
 }
+RT_EXPORT_SYMBOL(RTRandU32);
 
 
@@ -106,4 +111,5 @@
     return RTRandAdvS32Ex(g_hRand, i32First, i32Last);
 }
+RT_EXPORT_SYMBOL(RTRandS32Ex);
 
 
@@ -113,4 +119,5 @@
     return RTRandAdvS32(g_hRand);
 }
+RT_EXPORT_SYMBOL(RTRandS32);
 
 
@@ -120,4 +127,5 @@
     return RTRandAdvU64Ex(g_hRand, u64First, u64Last);
 }
+RT_EXPORT_SYMBOL(RTRandU64Ex);
 
 
@@ -127,4 +135,5 @@
     return RTRandAdvU64(g_hRand);
 }
+RT_EXPORT_SYMBOL(RTRandU64);
 
 
@@ -134,4 +143,5 @@
     return RTRandAdvS64Ex(g_hRand, i64First, i64Last);
 }
+RT_EXPORT_SYMBOL(RTRandS64Ex);
 
 
@@ -141,3 +151,4 @@
     return RTRandAdvS32(g_hRand);
 }
+RT_EXPORT_SYMBOL(RTRandS64);
 
Index: trunk/src/VBox/Runtime/common/rand/randadv.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/rand/randadv.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/rand/randadv.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/rand.h>
+#include "internal/iprt.h"
+
 #include <iprt/mem.h>
 #include <iprt/err.h>
@@ -53,4 +55,5 @@
     return pThis->pfnDestroy(pThis);
 }
+RT_EXPORT_SYMBOL(RTRandAdvDestroy);
 
 
@@ -65,4 +68,5 @@
     return pThis->pfnSeed(pThis, u64Seed);
 }
+RT_EXPORT_SYMBOL(RTRandAdvSeed);
 
 
@@ -79,4 +83,5 @@
     return pThis->pfnSaveState(pThis, pszState, pcbState);
 }
+RT_EXPORT_SYMBOL(RTRandAdvSaveState);
 
 
@@ -92,4 +97,5 @@
     return pThis->pfnRestoreState(pThis, pszState);
 }
+RT_EXPORT_SYMBOL(RTRandAdvRestoreState);
 
 
@@ -105,4 +111,5 @@
     return pThis->pfnGetBytes(pThis, (uint8_t *)pv, cb);
 }
+RT_EXPORT_SYMBOL(RTRandAdvBytes);
 
 
@@ -117,4 +124,5 @@
     return pThis->pfnGetU32(pThis, 0, i32Last - i32First) + i32First;
 }
+RT_EXPORT_SYMBOL(RTRandAdvS32Ex);
 
 
@@ -129,4 +137,5 @@
     return pThis->pfnGetU32(pThis, 0, UINT32_MAX) + INT32_MAX;
 }
+RT_EXPORT_SYMBOL(RTRandAdvS32);
 
 
@@ -141,4 +150,5 @@
     return pThis->pfnGetU32(pThis, u32First, u32Last);
 }
+RT_EXPORT_SYMBOL(RTRandAdvU32Ex);
 
 
@@ -153,4 +163,5 @@
     return pThis->pfnGetU32(pThis, 0, UINT32_MAX);
 }
+RT_EXPORT_SYMBOL(RTRandAdvU32);
 
 
@@ -165,4 +176,5 @@
     return pThis->pfnGetU64(pThis, 0, i64Last - i64First) + i64First;
 }
+RT_EXPORT_SYMBOL(RTRandAdvS64Ex);
 
 
@@ -177,4 +189,5 @@
     return pThis->pfnGetU64(pThis, 0, UINT64_MAX) + INT64_MAX;
 }
+RT_EXPORT_SYMBOL(RTRandAdvS64);
 
 
@@ -189,4 +202,5 @@
     return pThis->pfnGetU64(pThis, u64First, u64Last);
 }
+RT_EXPORT_SYMBOL(RTRandAdvU64Ex);
 
 
@@ -201,4 +215,5 @@
     return pThis->pfnGetU64(pThis, 0, UINT64_MAX);
 }
+RT_EXPORT_SYMBOL(RTRandAdvU64);
 
 
@@ -402,3 +417,2 @@
 }
 
-
Index: trunk/src/VBox/Runtime/common/rand/randparkmiller.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/rand/randparkmiller.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/rand/randparkmiller.cpp	(revision 21337)
@@ -33,4 +33,6 @@
 *******************************************************************************/
 #include <iprt/rand.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/mem.h>
@@ -208,3 +210,4 @@
     return VINF_SUCCESS;
 }
-
+RT_EXPORT_SYMBOL(RTRandAdvCreateParkMiller);
+
Index: trunk/src/VBox/Runtime/common/string/RTStrNLen.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/RTStrNLen.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/RTStrNLen.cpp	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/string.h>
+#include "internal/iprt.h"
 
 
@@ -40,3 +42,4 @@
     return pchEnd ? pchEnd - pszString : cchMax;
 }
+RT_EXPORT_SYMBOL(RTStrNLen);
 
Index: trunk/src/VBox/Runtime/common/string/RTStrNLenEx.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/RTStrNLenEx.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/RTStrNLenEx.cpp	(revision 21337)
@@ -33,4 +33,5 @@
 *******************************************************************************/
 #include <iprt/string.h>
+#include "internal/iprt.h"
 
 
@@ -46,3 +47,4 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTStrNLenEx);
 
Index: trunk/src/VBox/Runtime/common/string/base64.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/base64.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/base64.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/base64.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include <iprt/err.h>
@@ -216,4 +219,5 @@
     return cb;
 }
+RT_EXPORT_SYMBOL(RTBase64DecodedSize);
 
 
@@ -399,4 +403,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTBase64Decode);
 
 
@@ -436,4 +441,5 @@
     return cch;
 }
+RT_EXPORT_SYMBOL(RTBase64EncodedLength);
 
 
@@ -534,3 +540,4 @@
     return VINF_SUCCESS;
 }
-
+RT_EXPORT_SYMBOL(RTBase64Encode);
+
Index: trunk/src/VBox/Runtime/common/string/simplepattern.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/simplepattern.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/simplepattern.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 
@@ -90,4 +92,5 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTStrSimplePatternMatch);
 
 
@@ -153,4 +156,5 @@
     }
 }
+RT_EXPORT_SYMBOL(RTStrSimplePatternNMatch);
 
 
@@ -191,4 +195,4 @@
     return false;
 }
+RT_EXPORT_SYMBOL(RTStrSimplePatternMultiMatch);
 
-
Index: trunk/src/VBox/Runtime/common/string/straprintf.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/straprintf.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/straprintf.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include <iprt/alloc.h>
@@ -178,4 +181,5 @@
     return cbRet;
 }
+RT_EXPORT_SYMBOL(RTStrAPrintfV);
 
 
@@ -188,3 +192,4 @@
     return cbRet;
 }
+RT_EXPORT_SYMBOL(RTStrAPrintf);
 
Index: trunk/src/VBox/Runtime/common/string/strformat.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/strformat.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/strformat.cpp	(revision 21337)
@@ -43,4 +43,6 @@
 #define LOG_GROUP RTLOGGROUP_STRING
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #ifdef IN_RING3
@@ -154,4 +156,5 @@
     return rtStrFormatNumber(psz, *(KSIZE64 *)(void *)&u64Value, uiBase, cchWidth, cchPrecision, fFlags);
 }
+RT_EXPORT_SYMBOL(RTStrFormatNumber);
 
 
@@ -185,6 +188,6 @@
     if (fFlags & RTSTR_F_LEFT)
         fFlags &= ~RTSTR_F_ZEROPAD;
-    if (    (fFlags & RTSTR_F_THOUSAND_SEP) 
-        &&  (   uiBase != 10 
+    if (    (fFlags & RTSTR_F_THOUSAND_SEP)
+        &&  (   uiBase != 10
              || (fFlags & RTSTR_F_ZEROPAD))) /** @todo implement RTSTR_F_ZEROPAD + RTSTR_F_THOUSAND_SEP. */
         fFlags &= ~RTSTR_F_THOUSAND_SEP;
@@ -285,5 +288,5 @@
         uint64_t    u64 = *(uint64_t *)(void *)&ullValue;
         if (fFlags & RTSTR_F_THOUSAND_SEP)
-        {    
+        {
             do
             {
@@ -295,5 +298,5 @@
         }
         else
-        {    
+        {
             do
             {
@@ -884,4 +887,5 @@
     return cch;
 }
+RT_EXPORT_SYMBOL(RTStrFormatV);
 
 
@@ -910,3 +914,4 @@
     return cch;
 }
-
+RT_EXPORT_SYMBOL(RTStrFormat);
+
Index: trunk/src/VBox/Runtime/common/string/strformatrt.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/strformatrt.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/strformatrt.cpp	(revision 21337)
@@ -142,6 +142,8 @@
 *******************************************************************************/
 #define LOG_GROUP RTLOGGROUP_STRING
+#include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/log.h>
-#include <iprt/string.h>
 #include <iprt/assert.h>
 #include <iprt/string.h>
Index: trunk/src/VBox/Runtime/common/string/strformattype.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/strformattype.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/strformattype.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_STRING
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include <iprt/stdarg.h>
@@ -314,4 +316,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrFormatTypeRegister);
 
 
@@ -358,4 +361,5 @@
          : VERR_FILE_NOT_FOUND; /** @todo fix status code */
 }
+RT_EXPORT_SYMBOL(RTStrFormatTypeDeregister);
 
 
@@ -397,4 +401,5 @@
          : VERR_FILE_NOT_FOUND; /** @todo fix status code */
 }
+RT_EXPORT_SYMBOL(RTStrFormatTypeSetUser);
 
 
Index: trunk/src/VBox/Runtime/common/string/string.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/string.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/string.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/alloc.h>
 #include <iprt/assert.h>
@@ -52,4 +54,5 @@
         RTMemTmpFree(pszString);
 }
+RT_EXPORT_SYMBOL(RTStrFree);
 
 
@@ -69,4 +72,5 @@
     return psz;
 }
+RT_EXPORT_SYMBOL(RTStrDup);
 
 
@@ -94,3 +98,4 @@
     return VERR_NO_MEMORY;
 }
+RT_EXPORT_SYMBOL(RTStrDupEx);
 
Index: trunk/src/VBox/Runtime/common/string/strprintf.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/strprintf.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/strprintf.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 
@@ -97,4 +99,5 @@
     return RTStrFormatV(strbufoutput, &Arg, pfnFormat, pvArg, pszFormat, args);
 }
+RT_EXPORT_SYMBOL(RTStrPrintfExV);
 
 
@@ -103,4 +106,6 @@
     return RTStrPrintfExV(NULL, NULL, pszBuffer, cchBuffer, pszFormat, args);
 }
+RT_EXPORT_SYMBOL(RTStrPrintfV);
+
 
 RTDECL(size_t) RTStrPrintfEx(PFNSTRFORMAT pfnFormat, void *pvArg, char *pszBuffer, size_t cchBuffer, const char *pszFormat, ...)
@@ -113,4 +118,6 @@
     return cbRet;
 }
+RT_EXPORT_SYMBOL(RTStrPrintfEx);
+
 
 RTDECL(size_t) RTStrPrintf(char *pszBuffer, size_t cchBuffer, const char *pszFormat, ...)
@@ -123,3 +130,4 @@
     return cbRet;
 }
+RT_EXPORT_SYMBOL(RTStrPrintf);
 
Index: trunk/src/VBox/Runtime/common/string/strspace.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/strspace.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/strspace.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 
@@ -124,4 +126,5 @@
     return false;
 }
+RT_EXPORT_SYMBOL(RTStrSpaceInsert);
 
 
@@ -172,4 +175,5 @@
     return pCur;
 }
+RT_EXPORT_SYMBOL(RTStrSpaceRemove);
 
 
@@ -197,4 +201,5 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTStrSpaceGet);
 
 
@@ -215,4 +220,5 @@
     return KAVL_FN(DoWithAll)(pStrSpace, true, pfnCallback, pvUser);
 }
+RT_EXPORT_SYMBOL(RTStrSpaceEnumerate);
 
 
@@ -232,3 +238,5 @@
     return KAVL_FN(Destroy)(pStrSpace, pfnCallback, pvUser);
 }
-
+RT_EXPORT_SYMBOL(RTStrSpaceDestroy);
+
+
Index: trunk/src/VBox/Runtime/common/string/strstrip.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/strstrip.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/strstrip.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/ctype.h>
 #include <iprt/string.h>
@@ -56,4 +59,5 @@
     return psz;
 }
+RT_EXPORT_SYMBOL(RTStrStrip);
 
 
@@ -72,4 +76,5 @@
     return (char *)psz;
 }
+RT_EXPORT_SYMBOL(RTStrStripL);
 
 
@@ -89,3 +94,4 @@
     return psz;
 }
+RT_EXPORT_SYMBOL(RTStrStripR);
 
Index: trunk/src/VBox/Runtime/common/string/strtonum.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/strtonum.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/strtonum.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/err.h>
 
@@ -210,4 +212,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt64Ex);
 
 
@@ -247,4 +250,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt64Full);
 
 
@@ -265,4 +269,5 @@
     return 0;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt64);
 
 
@@ -298,4 +303,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt32Ex);
 
 
@@ -331,4 +337,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt32Full);
 
 
@@ -349,4 +356,5 @@
     return 0;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt32);
 
 
@@ -382,4 +390,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt16Ex);
 
 
@@ -415,4 +424,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt16Full);
 
 
@@ -433,4 +443,5 @@
     return 0;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt16);
 
 
@@ -466,4 +477,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt8Ex);
 
 
@@ -499,4 +511,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt8Full);
 
 
@@ -517,4 +530,5 @@
     return 0;
 }
+RT_EXPORT_SYMBOL(RTStrToUInt8);
 
 
@@ -639,4 +653,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToInt64Ex);
 
 
@@ -675,4 +690,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToInt64Full);
 
 
@@ -693,4 +709,5 @@
     return 0;
 }
+RT_EXPORT_SYMBOL(RTStrToInt64);
 
 
@@ -726,4 +743,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToInt32Ex);
 
 
@@ -759,4 +777,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToInt32Full);
 
 
@@ -777,4 +796,5 @@
     return 0;
 }
+RT_EXPORT_SYMBOL(RTStrToInt32);
 
 
@@ -810,4 +830,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToInt16Ex);
 
 
@@ -843,4 +864,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToInt16Full);
 
 
@@ -861,4 +883,5 @@
     return 0;
 }
+RT_EXPORT_SYMBOL(RTStrToInt16);
 
 
@@ -894,4 +917,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToInt8Ex);
 
 
@@ -927,4 +951,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToInt8Full);
 
 
@@ -945,3 +970,4 @@
     return 0;
 }
-
+RT_EXPORT_SYMBOL(RTStrToInt8);
+
Index: trunk/src/VBox/Runtime/common/string/uni.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/uni.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/uni.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/uni.h>
+#include "internal/iprt.h"
+
 #include <iprt/alloc.h>
 
@@ -42,2 +44,4 @@
         RTMemFree(pusz);
 }
+RT_EXPORT_SYMBOL(RTUniFree);
+
Index: trunk/src/VBox/Runtime/common/string/utf-16.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/utf-16.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/utf-16.cpp	(revision 21337)
@@ -1,5 +1,5 @@
 /* $Id$ */
 /** @file
- * IPRT - UTF-16
+ * IPRT - UTF-16.
  */
 
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/uni.h>
 #include <iprt/alloc.h>
@@ -47,4 +49,5 @@
         RTMemTmpFree(pwszString);
 }
+RT_EXPORT_SYMBOL(RTUtf16Free);
 
 
@@ -58,4 +61,5 @@
     return pwsz;
 }
+RT_EXPORT_SYMBOL(RTUtf16Dup);
 
 
@@ -73,4 +77,5 @@
     return VERR_NO_MEMORY;
 }
+RT_EXPORT_SYMBOL(RTUtf16DupEx);
 
 
@@ -85,4 +90,5 @@
     return pwsz - pwszString;
 }
+RT_EXPORT_SYMBOL(RTUtf16Len);
 
 
@@ -106,4 +112,5 @@
     }
 }
+RT_EXPORT_SYMBOL(RTUtf16Cmp);
 
 
@@ -172,4 +179,5 @@
     }
 }
+RT_EXPORT_SYMBOL(RTUtf16ICmp);
 
 
@@ -209,4 +217,5 @@
     return pwsz;
 }
+RT_EXPORT_SYMBOL(RTUtf16ToLower);
 
 
@@ -242,4 +251,5 @@
     return pwsz;
 }
+RT_EXPORT_SYMBOL(RTUtf16ToUpper);
 
 
@@ -455,4 +465,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTUtf16ToUtf8);
 
 
@@ -512,4 +523,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTUtf16ToUtf8Ex);
 
 
@@ -520,4 +532,5 @@
     return RT_SUCCESS(rc) ? cch : 0;
 }
+RT_EXPORT_SYMBOL(RTUtf16CalcUtf8Len);
 
 
@@ -530,4 +543,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTUtf16CalcUtf8LenEx);
 
 
@@ -560,4 +574,5 @@
     return RTUNICP_INVALID;
 }
+RT_EXPORT_SYMBOL(RTUtf16GetCpInternal);
 
 
@@ -604,4 +619,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTUtf16GetCpExInternal);
 
 
@@ -631,4 +647,4 @@
     return pwsz;
 }
-
-
+RT_EXPORT_SYMBOL(RTUtf16PutCpInternal);
+
Index: trunk/src/VBox/Runtime/common/string/utf-8.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/string/utf-8.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/string/utf-8.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include <iprt/uni.h>
 #include <iprt/alloc.h>
@@ -282,4 +284,5 @@
     return RT_SUCCESS(rc) ? cCodePoints : 0;
 }
+RT_EXPORT_SYMBOL(RTStrUniLen);
 
 
@@ -292,4 +295,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrUniLenEx);
 
 
@@ -298,4 +302,5 @@
     return RTStrValidateEncodingEx(psz, RTSTR_MAX, 0);
 }
+RT_EXPORT_SYMBOL(RTStrValidateEncoding);
 
 
@@ -322,4 +327,5 @@
     return RTStrUniLenEx(psz, cch, &cCpsIgnored);
 }
+RT_EXPORT_SYMBOL(RTStrValidateEncodingEx);
 
 
@@ -329,4 +335,5 @@
     return RT_SUCCESS(rc);
 }
+RT_EXPORT_SYMBOL(RTStrIsValidEncoding);
 
 
@@ -369,4 +376,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUni);
 
 
@@ -428,4 +436,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUniEx);
 
 
@@ -689,4 +698,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUtf16);
 
 
@@ -748,4 +758,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrToUtf16Ex);
 
 
@@ -756,4 +767,5 @@
     return RT_SUCCESS(rc) ? cwc : 0;
 }
+RT_EXPORT_SYMBOL(RTStrCalcUtf16Len);
 
 
@@ -766,4 +778,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTStrCalcUtf16LenEx);
 
 
@@ -792,4 +805,5 @@
     return Cp;
 }
+RT_EXPORT_SYMBOL(RTStrGetCpInternal);
 
 
@@ -914,4 +928,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTStrGetCpExInternal);
 
 
@@ -1069,4 +1084,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTStrGetCpNExInternal);
 
 
@@ -1129,4 +1145,5 @@
     return (char *)puch;
 }
+RT_EXPORT_SYMBOL(RTStrPutCpInternal);
 
 
@@ -1161,4 +1178,5 @@
     return (char *)pszStart;
 }
+RT_EXPORT_SYMBOL(RTStrPrevCp);
 
 
@@ -1187,4 +1205,5 @@
     return strcmp(psz1, psz2);
 }
+RT_EXPORT_SYMBOL(RTStrCmp);
 
 
@@ -1215,4 +1234,5 @@
     return strncmp(psz1, psz2, cchMax);
 }
+RT_EXPORT_SYMBOL(RTStrNCmp);
 
 
@@ -1289,4 +1309,5 @@
     return RTStrCmp(psz1, psz2);
 }
+RT_EXPORT_SYMBOL(RTStrICmp);
 
 
@@ -1369,4 +1390,5 @@
     return RTStrNCmp(psz1, psz2, cchMax);
 }
+RT_EXPORT_SYMBOL(RTStrNICmp);
 
 
@@ -1382,4 +1404,5 @@
     return (char *)strstr(pszHaystack, pszNeedle);
 }
+RT_EXPORT_SYMBOL(RTStrStr);
 
 
@@ -1459,4 +1482,5 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTStrIStr);
 
 
@@ -1479,4 +1503,5 @@
     return psz;
 }
+RT_EXPORT_SYMBOL(RTStrToLower);
 
 
@@ -1499,3 +1524,4 @@
     return psz;
 }
-
+RT_EXPORT_SYMBOL(RTStrToUpper);
+
Index: trunk/src/VBox/Runtime/common/time/time.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/time/time.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/time/time.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_TIME
 #include <iprt/time.h>
+#include "internal/iprt.h"
+
 #include <iprt/string.h>
 #include <iprt/assert.h>
@@ -247,4 +249,5 @@
     return rtTimeIsLeapYear(i32Year);
 }
+RT_EXPORT_SYMBOL(RTTimeIsLeapYear);
 
 
@@ -352,4 +355,5 @@
     return pTime;
 }
+RT_EXPORT_SYMBOL(RTTimeExplode);
 
 
@@ -403,4 +407,5 @@
     return pTimeSpec;
 }
+RT_EXPORT_SYMBOL(RTTimeImplode);
 
 
@@ -653,4 +658,5 @@
     return pTime;
 }
+RT_EXPORT_SYMBOL(RTTimeNormalize);
 
 
@@ -702,4 +708,5 @@
     return psz;
 }
+RT_EXPORT_SYMBOL(RTTimeToString);
 
 
@@ -718,3 +725,4 @@
     return RTTimeToString(RTTimeExplode(&Time, pTime), psz, cb);
 }
-
+RT_EXPORT_SYMBOL(RTTimeSpecToString);
+
Index: trunk/src/VBox/Runtime/common/time/timeprog.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/time/timeprog.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/time/timeprog.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/time.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include "internal/time.h"
@@ -48,4 +50,5 @@
     return RTTimeNanoTS() - g_u64ProgramStartNanoTS;
 }
+RT_EXPORT_SYMBOL(RTTimeProgramNanoTS);
 
 
@@ -59,4 +62,5 @@
     return RTTimeProgramNanoTS() / 1000;
 }
+RT_EXPORT_SYMBOL(RTTimeProgramMicroTS);
 
 
@@ -70,4 +74,5 @@
     return RTTimeMilliTS() - g_u64ProgramStartMilliTS;
 }
+RT_EXPORT_SYMBOL(RTTimeProgramMilliTS);
 
 
@@ -82,4 +87,5 @@
     return (uint32_t)(RTTimeProgramMilliTS() / 1000);
 }
+RT_EXPORT_SYMBOL(RTTimeProgramSecTS);
 
 
@@ -93,2 +99,4 @@
     return g_u64ProgramStartNanoTS;
 }
+RT_EXPORT_SYMBOL(RTTimeProgramStartNanoTS);
+
Index: trunk/src/VBox/Runtime/common/time/timesup.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/time/timesup.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/time/timesup.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_TIME
 #include <iprt/time.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/assert.h>
@@ -191,4 +193,5 @@
     return rtTimeNanoTSInternal();
 }
+RT_EXPORT_SYMBOL(RTTimeNanoTS);
 
 
@@ -202,4 +205,5 @@
     return rtTimeNanoTSInternal() / 1000000;
 }
+RT_EXPORT_SYMBOL(RTTimeMilliTS);
 
 
@@ -214,4 +218,5 @@
     return g_TimeNanoTSData.c1nsSteps;
 }
+RT_EXPORT_SYMBOL(RTTimeDbgSteps);
 
 
@@ -225,4 +230,5 @@
     return g_TimeNanoTSData.cExpired;
 }
+RT_EXPORT_SYMBOL(RTTimeDbgExpired);
 
 
@@ -236,4 +242,5 @@
     return g_TimeNanoTSData.cBadPrev;
 }
+RT_EXPORT_SYMBOL(RTTimeDbgBad);
 
 
@@ -247,3 +254,5 @@
     return g_TimeNanoTSData.cUpdateRaces;
 }
+RT_EXPORT_SYMBOL(RTTimeDbgRaces);
 #endif /* !IN_GUEST && !RT_NO_GIP */
+
Index: trunk/src/VBox/Runtime/common/time/timesupref.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/time/timesupref.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/time/timesupref.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 *******************************************************************************/
 #include <iprt/time.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <VBox/sup.h>
@@ -48,4 +50,5 @@
 #define rtTimeNanoTSInternalRef RTTimeNanoTSLegacySync
 #include "timesupref.h"
+RT_EXPORT_SYMBOL(RTTimeNanoTSLegacySync);
 
 #define ASYNC_GIP
@@ -56,4 +59,5 @@
 #define rtTimeNanoTSInternalRef RTTimeNanoTSLegacyAsync
 #include "timesupref.h"
+RT_EXPORT_SYMBOL(RTTimeNanoTSLegacyAsync);
 
 
@@ -68,4 +72,5 @@
 #define rtTimeNanoTSInternalRef RTTimeNanoTSLFenceSync
 #include "timesupref.h"
+RT_EXPORT_SYMBOL(RTTimeNanoTSLFenceSync);
 
 #define ASYNC_GIP
@@ -76,5 +81,7 @@
 #define rtTimeNanoTSInternalRef RTTimeNanoTSLFenceAsync
 #include "timesupref.h"
+RT_EXPORT_SYMBOL(RTTimeNanoTSLFenceAsync);
 
 
 #endif /* !IN_GUEST */
+
Index: trunk/src/VBox/Runtime/common/time/timesysalias.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/time/timesysalias.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/common/time/timesysalias.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/time.h>
+#include "internal/iprt.h"
 
 
@@ -45,4 +46,5 @@
     return RTTimeSystemNanoTS();
 }
+RT_EXPORT_SYMBOL(RTTimeNanoTS);
 
 
@@ -56,3 +58,4 @@
     return RTTimeSystemMilliTS();
 }
+RT_EXPORT_SYMBOL(RTTimeMilliTS);
 
Index: trunk/src/VBox/Runtime/generic/RTAssertShouldPanic-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTAssertShouldPanic-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTAssertShouldPanic-generic.cpp	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/assert.h>
+#include "internal/iprt.h"
 
 
@@ -39,12 +41,4 @@
     return true;
 }
+RT_EXPORT_SYMBOL(RTAssertShouldPanic);
 
-
-#if defined(IN_RING0) && defined(RT_OS_LINUX) && defined(IN_MODULE)
-/*
- * When we build this in the Linux kernel module, we wish to make the
- * symbols available to other modules as well.
- */
-#  include "the-linux-kernel.h"
-EXPORT_SYMBOL(RTAssertShouldPanic);
-#endif /* IN_RING0 && RT_OS_LINUX && IN_MODULE */
Index: trunk/src/VBox/Runtime/generic/RTDirCreateTemp-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTDirCreateTemp-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTDirCreateTemp-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/dir.h>
+#include "internal/iprt.h"
 
 #include <iprt/assert.h>
@@ -117,3 +118,4 @@
     return VERR_ALREADY_EXISTS;
 }
+RT_EXPORT_SYMBOL(RTDirCreateTemp);
 
Index: trunk/src/VBox/Runtime/generic/RTDirQueryInfo-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTDirQueryInfo-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTDirQueryInfo-generic.cpp	(revision 21337)
@@ -30,5 +30,4 @@
 
 
-
 /*******************************************************************************
 *   Header Files                                                               *
@@ -42,4 +41,6 @@
 
 #include <iprt/dir.h>
+#include "internal/iprt.h"
+
 #include <iprt/path.h>
 #include <iprt/assert.h>
Index: trunk/src/VBox/Runtime/generic/RTDirSetTimes-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTDirSetTimes-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTDirSetTimes-generic.cpp	(revision 21337)
@@ -30,5 +30,4 @@
 
 
-
 /*******************************************************************************
 *   Header Files                                                               *
@@ -42,4 +41,6 @@
 
 #include <iprt/dir.h>
+#include "internal/iprt.h"
+
 #include <iprt/path.h>
 #include <iprt/assert.h>
Index: trunk/src/VBox/Runtime/generic/RTFileCopy-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTFileCopy-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTFileCopy-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/file.h>
+#include "internal/iprt.h"
 
 
@@ -50,3 +51,4 @@
     return RTFileCopyEx(pszSrc, pszDst, 0, NULL, NULL);
 }
+RT_EXPORT_SYMBOL(RTFileCopy);
 
Index: trunk/src/VBox/Runtime/generic/RTFileMove-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTFileMove-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTFileMove-generic.cpp	(revision 21337)
@@ -29,6 +29,12 @@
  */
 
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
 #define LOG_GROUP RTLOGGROUP_FILE
 #include <iprt/file.h>
+#include "internal/iprt.h"
+
 #include <iprt/path.h>
 #include <iprt/err.h>
@@ -109,3 +115,4 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTFileMove);
 
Index: trunk/src/VBox/Runtime/generic/RTFileReadAll-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTFileReadAll-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTFileReadAll-generic.cpp	(revision 21337)
@@ -30,9 +30,9 @@
 
 
-
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/file.h>
+#include "internal/iprt.h"
 
 
@@ -41,3 +41,4 @@
     return RTFileReadAllEx(pszFilename, 0, RTFOFF_MAX, 0, ppvFile, pcbFile);
 }
+RT_EXPORT_SYMBOL(RTFileReadAll);
 
Index: trunk/src/VBox/Runtime/generic/RTFileReadAllByHandle-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTFileReadAllByHandle-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTFileReadAllByHandle-generic.cpp	(revision 21337)
@@ -30,9 +30,9 @@
 
 
-
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/file.h>
+#include "internal/iprt.h"
 
 
@@ -41,4 +41,4 @@
     return RTFileReadAllByHandleEx(File, 0, RTFOFF_MAX, 0, ppvFile, pcbFile);
 }
+RT_EXPORT_SYMBOL(RTFileReadAllByHandle);
 
-
Index: trunk/src/VBox/Runtime/generic/RTFileReadAllByHandleEx-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTFileReadAllByHandleEx-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTFileReadAllByHandleEx-generic.cpp	(revision 21337)
@@ -30,9 +30,10 @@
 
 
-
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/file.h>
+#include "internal/iprt.h"
+
 #include <iprt/mem.h>
 #include <iprt/assert.h>
@@ -106,3 +107,4 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTFileReadAllByHandleEx);
 
Index: trunk/src/VBox/Runtime/generic/RTFileReadAllEx-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTFileReadAllEx-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTFileReadAllEx-generic.cpp	(revision 21337)
@@ -30,9 +30,10 @@
 
 
-
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/file.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include <iprt/err.h>
@@ -52,3 +53,4 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTFileReadAllEx);
 
Index: trunk/src/VBox/Runtime/generic/RTFileReadAllFree-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTFileReadAllFree-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTFileReadAllFree-generic.cpp	(revision 21337)
@@ -30,9 +30,10 @@
 
 
-
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/file.h>
+#include "internal/iprt.h"
+
 #include <iprt/mem.h>
 #include <iprt/assert.h>
@@ -53,4 +54,4 @@
     RTMemFree(pvFile);
 }
+RT_EXPORT_SYMBOL(RTFileReadAllFree);
 
-
Index: trunk/src/VBox/Runtime/generic/RTLogDefaultInit-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTLogDefaultInit-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTLogDefaultInit-generic.cpp	(revision 21337)
@@ -29,5 +29,10 @@
  */
 
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
 #include <iprt/log.h>
+
 
 RTDECL(PRTLOGGER) RTLogDefaultInit(void)
@@ -35,4 +40,4 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTLogDefaultInit);
 
-
Index: trunk/src/VBox/Runtime/generic/RTLogWriteDebugger-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTLogWriteDebugger-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTLogWriteDebugger-generic.cpp	(revision 21337)
@@ -29,5 +29,11 @@
  */
 
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
+
 
 RTDECL(void) RTLogWriteDebugger(const char *pch, size_t cb)
@@ -37,4 +43,5 @@
     return;
 }
+RT_EXPORT_SYMBOL(RTLogWriteDebugger);
 
 
Index: trunk/src/VBox/Runtime/generic/RTLogWriteStdErr-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTLogWriteStdErr-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTLogWriteStdErr-generic.cpp	(revision 21337)
@@ -29,5 +29,10 @@
  */
 
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
 #include <stdio.h>
 
@@ -36,3 +41,4 @@
     fwrite(pch, 1, cb, stderr);
 }
+RT_EXPORT_SYMBOL(RTLogWriteStdErr);
 
Index: trunk/src/VBox/Runtime/generic/RTLogWriteStdErr-stub-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTLogWriteStdErr-stub-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTLogWriteStdErr-stub-generic.cpp	(revision 21337)
@@ -29,5 +29,10 @@
  */
 
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
 
 
@@ -38,3 +43,4 @@
     return;
 }
+RT_EXPORT_SYMBOL(RTLogWriteStdErr);
 
Index: trunk/src/VBox/Runtime/generic/RTLogWriteStdOut-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTLogWriteStdOut-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTLogWriteStdOut-generic.cpp	(revision 21337)
@@ -29,6 +29,12 @@
  */
 
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
 #include <stdio.h>
+
 
 RTDECL(void) RTLogWriteStdOut(const char *pch, size_t cb)
@@ -37,3 +43,4 @@
     fflush(stdout);
 }
+RT_EXPORT_SYMBOL(RTLogWriteStdOut);
 
Index: trunk/src/VBox/Runtime/generic/RTLogWriteStdOut-stub-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTLogWriteStdOut-stub-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTLogWriteStdOut-stub-generic.cpp	(revision 21337)
@@ -29,5 +29,10 @@
  */
 
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
 
 
@@ -38,3 +43,4 @@
     return;
 }
+RT_EXPORT_SYMBOL(RTLogWriteStdOut);
 
Index: trunk/src/VBox/Runtime/generic/RTLogWriteUser-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTLogWriteUser-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTLogWriteUser-generic.cpp	(revision 21337)
@@ -29,5 +29,10 @@
  */
 
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
 #include <iprt/log.h>
+#include "internal/iprt.h"
 
 
@@ -38,3 +43,4 @@
     return;
 }
+RT_EXPORT_SYMBOL(RTLogWriteUser);
 
Index: trunk/src/VBox/Runtime/generic/RTMpCpuId-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpCpuId-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpCpuId-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 
@@ -44,5 +46,6 @@
 # error "Not ported to this architecture."
     return NIL_RTAPICID;
-#endif 
+#endif
 }
+RT_EXPORT_SYMBOL(RTMpCpuId);
 
Index: trunk/src/VBox/Runtime/generic/RTMpCpuIdFromSetIndex-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpCpuIdFromSetIndex-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpCpuIdFromSetIndex-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
 
 
@@ -40,3 +41,4 @@
     return iCpu >= 0 ? iCpu : NIL_RTCPUID;
 }
+RT_EXPORT_SYMBOL(RTMpCpuIdFromSetIndex);
 
Index: trunk/src/VBox/Runtime/generic/RTMpCpuIdToSetIndex-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpCpuIdToSetIndex-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpCpuIdToSetIndex-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
 
 
@@ -40,3 +41,4 @@
     return idCpu != NIL_RTCPUID ? (int) idCpu : -1;
 }
+RT_EXPORT_SYMBOL(RTMpCpuIdToSetIndex);
 
Index: trunk/src/VBox/Runtime/generic/RTMpGetCount-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpGetCount-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpGetCount-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
+
 #include <iprt/cpuset.h>
 
@@ -43,3 +45,4 @@
     return RTCpuSetCount(&Set);
 }
+RT_EXPORT_SYMBOL(RTMpGetCount);
 
Index: trunk/src/VBox/Runtime/generic/RTMpGetCurFrequency-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpGetCurFrequency-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpGetCurFrequency-generic.cpp	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
 
 
@@ -41,3 +43,4 @@
     return 0;
 }
+RT_EXPORT_SYMBOL(RTMpGetCurFrequency);
 
Index: trunk/src/VBox/Runtime/generic/RTMpGetMaxCpuId-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpGetMaxCpuId-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpGetMaxCpuId-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
 
 
@@ -40,3 +41,4 @@
     return RTMpCpuId();
 }
+RT_EXPORT_SYMBOL(RTMpGetMaxCpuId);
 
Index: trunk/src/VBox/Runtime/generic/RTMpGetMaxFrequency-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpGetMaxFrequency-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpGetMaxFrequency-generic.cpp	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
 
 
@@ -41,3 +43,4 @@
     return 0;
 }
+RT_EXPORT_SYMBOL(RTMpGetMaxFrequency);
 
Index: trunk/src/VBox/Runtime/generic/RTMpGetOnlineCount-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpGetOnlineCount-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpGetOnlineCount-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
+
 #include <iprt/cpuset.h>
 
@@ -43,3 +45,4 @@
     return RTCpuSetCount(&Set);
 }
+RT_EXPORT_SYMBOL(RTMpGetOnlineCount);
 
Index: trunk/src/VBox/Runtime/generic/RTMpGetOnlineSet-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpGetOnlineSet-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpGetOnlineSet-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
+
 #include <iprt/cpuset.h>
 
@@ -50,3 +52,4 @@
     return pSet;
 }
+RT_EXPORT_SYMBOL(RTMpGetOnlineSet);
 
Index: trunk/src/VBox/Runtime/generic/RTMpGetSet-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpGetSet-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpGetSet-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
+
 #include <iprt/cpuset.h>
 
@@ -50,3 +52,4 @@
     return pSet;
 }
+RT_EXPORT_SYMBOL(RTMpGetSet);
 
Index: trunk/src/VBox/Runtime/generic/RTMpIsCpuOnline-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpIsCpuOnline-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpIsCpuOnline-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
 
 
@@ -40,3 +41,4 @@
     return RTMpCpuId() == idCpu;
 }
+RT_EXPORT_SYMBOL(RTMpIsCpuOnline);
 
Index: trunk/src/VBox/Runtime/generic/RTMpIsCpuPossible-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTMpIsCpuPossible-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTMpIsCpuPossible-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
 
 
@@ -40,3 +41,4 @@
     return RTMpCpuId() == idCpu;
 }
+RT_EXPORT_SYMBOL(RTMpIsCpuPossible);
 
Index: trunk/src/VBox/Runtime/generic/RTProcIsRunningByName-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTProcIsRunningByName-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTProcIsRunningByName-generic.cpp	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/process.h>
+#include "internal/iprt.h"
 
 
Index: trunk/src/VBox/Runtime/generic/RTRandAdvCreateSystemFaster-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTRandAdvCreateSystemFaster-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTRandAdvCreateSystemFaster-generic.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/rand.h>
+#include "internal/iprt.h"
+
 #include <iprt/err.h>
 
@@ -41,4 +44,4 @@
     return VERR_NOT_SUPPORTED;
 }
+RT_EXPORT_SYMBOL(RTRandAdvCreateSystemFaster);
 
-
Index: trunk/src/VBox/Runtime/generic/RTRandAdvCreateSystemTruer-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTRandAdvCreateSystemTruer-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTRandAdvCreateSystemTruer-generic.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/rand.h>
+#include "internal/iprt.h"
+
 #include <iprt/err.h>
 
@@ -41,3 +44,4 @@
     return VERR_NOT_SUPPORTED;
 }
+RT_EXPORT_SYMBOL(RTRandAdvCreateSystemTruer);
 
Index: trunk/src/VBox/Runtime/generic/RTSystemQueryOSInfo-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTSystemQueryOSInfo-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTSystemQueryOSInfo-generic.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/system.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include <iprt/string.h>
@@ -54,5 +57,4 @@
     return VERR_NOT_SUPPORTED;
 }
+RT_EXPORT_SYMBOL(RTSystemQueryOSInfo);
 
-
-
Index: trunk/src/VBox/Runtime/generic/RTTimeLocalDeltaNano-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTTimeLocalDeltaNano-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTTimeLocalDeltaNano-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/time.h>
+#include "internal/iprt.h"
 
 
@@ -40,3 +41,4 @@
     return 0;
 }
+RT_EXPORT_SYMBOL(RTTimeLocalDeltaNano);
 
Index: trunk/src/VBox/Runtime/generic/RTTimeLocalExplode-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTTimeLocalExplode-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTTimeLocalExplode-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/time.h>
+#include "internal/iprt.h"
 
 
@@ -46,3 +47,4 @@
     return pTime;
 }
+RT_EXPORT_SYMBOL(RTTimeLocalExplode);
 
Index: trunk/src/VBox/Runtime/generic/RTTimeLocalNow-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTTimeLocalNow-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTTimeLocalNow-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/time.h>
+#include "internal/iprt.h"
 
 
@@ -49,3 +50,4 @@
     return RTTimeSpecAddNano(pTime, i64PostDelta);
 }
+RT_EXPORT_SYMBOL(RTTimeLocalNow);
 
Index: trunk/src/VBox/Runtime/generic/RTTimerCreate-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTTimerCreate-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTTimerCreate-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/timer.h>
+#include "internal/iprt.h"
+
 #include <iprt/err.h>
 #include <iprt/assert.h>
@@ -51,3 +53,4 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTTimerCreate);
 
Index: trunk/src/VBox/Runtime/generic/RTTimerLRCreate-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTTimerLRCreate-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTTimerLRCreate-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/timer.h>
+#include "internal/iprt.h"
+
 #include <iprt/err.h>
 #include <iprt/assert.h>
@@ -51,3 +53,4 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTTimerLRCreate);
 
Index: trunk/src/VBox/Runtime/generic/RTUuidCreate-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/RTUuidCreate-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/RTUuidCreate-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/uuid.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include <iprt/err.h>
@@ -55,3 +57,4 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTUuidCreate);
 
Index: trunk/src/VBox/Runtime/generic/critsect-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/critsect-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/critsect-generic.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/critsect.h>
+#include "internal/iprt.h"
+
 #include <iprt/semaphore.h>
 #include <iprt/thread.h>
@@ -55,4 +58,5 @@
     return RTCritSectInitEx(pCritSect, 0);
 }
+RT_EXPORT_SYMBOL(RTCritSectInit);
 
 
@@ -87,4 +91,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTCritSectInitEx);
 
 
@@ -198,4 +203,5 @@
     }
 }
+RT_EXPORT_SYMBOL(RTCritSectEnterMultiple);
 
 
@@ -261,4 +267,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTCritSectTryEnter);
 
 
@@ -349,4 +356,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTCritSectEnter);
 
 
@@ -394,4 +402,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTCritSectLeave);
 
 
@@ -414,4 +423,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTCritSectLeaveMultiple);
 
 
@@ -432,4 +442,7 @@
 }
 #endif /* RT_STRICT */
+RT_EXPORT_SYMBOL(RTCritSectEnterDebug);
+RT_EXPORT_SYMBOL(RTCritSectTryEnterDebug);
+RT_EXPORT_SYMBOL(RTCritSectEnterMultipleDebug);
 
 
@@ -469,3 +482,4 @@
     return rc;
 }
-
+RT_EXPORT_SYMBOL(RTCritSectDelete);
+
Index: trunk/src/VBox/Runtime/generic/env-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/env-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/env-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/env.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include <iprt/alloc.h>
@@ -53,4 +55,5 @@
 RT_C_DECLS_END
 #endif
+
 
 /*******************************************************************************
@@ -152,4 +155,5 @@
     return rtEnvCreate(pEnv, RTENV_GROW_SIZE);
 }
+RT_EXPORT_SYMBOL(RTEnvCreate);
 
 
@@ -195,4 +199,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTEnvDestroy);
 
 
@@ -274,4 +279,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTEnvClone);
 
 
@@ -301,4 +307,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTEnvPutEx);
 
 
@@ -406,4 +413,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTEnvSetEx);
 
 
@@ -461,4 +469,5 @@
 
 }
+RT_EXPORT_SYMBOL(RTEnvUnsetEx);
 
 
@@ -547,4 +556,5 @@
 
 }
+RT_EXPORT_SYMBOL(RTEnvGetEx);
 
 
@@ -593,4 +603,5 @@
     return fExist;
 }
+RT_EXPORT_SYMBOL(RTEnvExistEx);
 
 
@@ -655,2 +666,3 @@
     return papszRet;
 }
+RT_EXPORT_SYMBOL(RTEnvGetExecEnvP);
Index: trunk/src/VBox/Runtime/generic/fs-stubs-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/fs-stubs-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/fs-stubs-generic.cpp	(revision 21337)
@@ -34,6 +34,7 @@
 *******************************************************************************/
 #define LOG_GROUP RTLOGGROUP_FS
+#include <iprt/fs.h>
+#include "internal/iprt.h"
 
-#include <iprt/fs.h>
 #include <iprt/err.h>
 #include <iprt/log.h>
Index: trunk/src/VBox/Runtime/generic/mempool-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/mempool-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/mempool-generic.cpp	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/mempool.h>
+#include "internal/iprt.h"
 
 #include <iprt/asm.h>
@@ -154,4 +156,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTMemPoolCreate);
 
 
@@ -192,4 +195,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTMemPoolDestroy);
 
 
@@ -258,4 +262,5 @@
     return pEntry + 1;
 }
+RT_EXPORT_SYMBOL(RTMemPoolAlloc);
 
 
@@ -272,4 +277,5 @@
     return pEntry + 1;
 }
+RT_EXPORT_SYMBOL(RTMemPoolAllocZ);
 
 
@@ -287,4 +293,5 @@
     return pEntry + 1;
 }
+RT_EXPORT_SYMBOL(RTMemPoolDup);
 
 
@@ -303,4 +310,5 @@
     return pEntry + 1;
 }
+RT_EXPORT_SYMBOL(RTMemPoolDupEx);
 
 
@@ -346,4 +354,5 @@
     return pEntry + 1;
 }
+RT_EXPORT_SYMBOL(RTMemPoolRealloc);
 
 
@@ -352,4 +361,5 @@
     RTMemPoolRelease(hMemPool, pv);
 }
+RT_EXPORT_SYMBOL(RTMemPoolFree);
 
 
@@ -364,4 +374,5 @@
     return cRefs;
 }
+RT_EXPORT_SYMBOL(RTMemPoolRetain);
 
 
@@ -389,3 +400,4 @@
     return cRefs;
 }
-
+RT_EXPORT_SYMBOL(RTMemPoolRelease);
+
Index: trunk/src/VBox/Runtime/generic/mppresent-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/mppresent-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/mppresent-generic.cpp	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
 
 
@@ -39,4 +41,5 @@
     return RTMpGetSet(pSet);
 }
+RT_EXPORT_SYMBOL(RTMpGetPresentSet);
 
 
@@ -45,4 +48,5 @@
     return RTMpGetCount();
 }
+RT_EXPORT_SYMBOL(RTMpGetPresentCount);
 
 
@@ -51,3 +55,4 @@
     return RTMpIsCpuPossible(idCpu);
 }
+RT_EXPORT_SYMBOL(RTMpIsCpuPresent);
 
Index: trunk/src/VBox/Runtime/generic/pathhost-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/pathhost-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/pathhost-generic.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_PATH
 #include <iprt/string.h>
+#include "internal/iprt.h"
+
 #include "internal/path.h"
 
Index: trunk/src/VBox/Runtime/generic/sched-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/sched-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/sched-generic.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_THREAD
 #include <iprt/thread.h>
+#include "internal/iprt.h"
+
 #include <iprt/log.h>
 #include <iprt/assert.h>
Index: trunk/src/VBox/Runtime/generic/semfastmutex-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/semfastmutex-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/semfastmutex-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/semaphore.h>
+#include "internal/iprt.h"
+
 #include <iprt/alloc.h>
 #include <iprt/err.h>
@@ -50,4 +52,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemFastMutexCreate);
 
 
@@ -62,4 +65,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemFastMutexDestroy);
 
 
@@ -68,4 +72,5 @@
     return RTCritSectEnter((PRTCRITSECT)MutexSem);
 }
+RT_EXPORT_SYMBOL(RTSemFastMutexRequest);
 
 
@@ -74,3 +79,4 @@
     return RTCritSectLeave((PRTCRITSECT)MutexSem);
 }
+RT_EXPORT_SYMBOL(RTSemFastMutexRelease);
 
Index: trunk/src/VBox/Runtime/generic/semnoint-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/semnoint-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/semnoint-generic.cpp	(revision 21337)
@@ -35,4 +35,6 @@
 #define LOG_GROUP RTLOGGROUP_SEM
 #include <iprt/semaphore.h>
+#include "internal/iprt.h"
+
 #include <iprt/time.h>
 #include <iprt/err.h>
@@ -66,4 +68,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemEventWait);
 
 
@@ -93,4 +96,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemEventMultiWait);
 
 
@@ -120,3 +124,4 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemMutexRequest);
 
Index: trunk/src/VBox/Runtime/generic/semsrw-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/semsrw-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/semsrw-generic.cpp	(revision 21337)
@@ -33,9 +33,10 @@
 
 
-
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/semaphore.h>
+#include "internal/iprt.h"
+
 #include <iprt/critsect.h>
 #include <iprt/alloc.h>
@@ -150,4 +151,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemRWCreate);
 
 
@@ -210,4 +212,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemRWDestroy);
 
 
@@ -303,4 +306,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemRWRequestRead);
 
 
@@ -309,4 +313,5 @@
     return RTSemRWRequestRead(RWSem, cMillies);
 }
+RT_EXPORT_SYMBOL(RTSemRWRequestReadNoResume);
 
 
@@ -357,4 +362,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemRWReleaseRead);
 
 
@@ -466,4 +472,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemRWRequestWrite);
 
 
@@ -472,4 +479,5 @@
     return RTSemRWRequestWrite(RWSem, cMillies);
 }
+RT_EXPORT_SYMBOL(RTSemRWRequestWriteNoResume);
 
 
@@ -533,4 +541,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTSemRWReleaseWrite);
 
 
@@ -555,4 +564,5 @@
     return Writer == Self;
 }
+RT_EXPORT_SYMBOL(RTSemRWIsWriteOwner);
 
 
@@ -574,4 +584,5 @@
     return pThis->cWrites;
 }
+RT_EXPORT_SYMBOL(RTSemRWGetWriteRecursion);
 
 
@@ -593,2 +604,3 @@
     return pThis->cWriterReads;
 }
+RT_EXPORT_SYMBOL(RTSemRWGetWriterReadRecursion);
Index: trunk/src/VBox/Runtime/generic/spinlock-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/spinlock-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/spinlock-generic.cpp	(revision 21337)
@@ -43,4 +43,6 @@
 *******************************************************************************/
 #include <iprt/spinlock.h>
+#include "internal/iprt.h"
+
 #include <iprt/alloc.h>
 #include <iprt/asm.h>
@@ -88,4 +90,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSpinlockCreate);
 
 
@@ -108,4 +111,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSpinlockDestroy);
 
 
@@ -132,4 +136,5 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTSpinlockAcquireNoInts);
 
 
@@ -145,4 +150,5 @@
     ASMSetFlags(pTmp->uFlags);
 }
+RT_EXPORT_SYMBOL(RTSpinlockReleaseNoInts);
 
 
@@ -167,4 +173,5 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTSpinlockAcquire);
 
 
@@ -179,3 +186,4 @@
         AssertMsgFailed(("Spinlock %p was not locked!\n", pSpinlockInt));
 }
+RT_EXPORT_SYMBOL(RTSpinlockRelease);
 
Index: trunk/src/VBox/Runtime/generic/strcache-stubs-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/strcache-stubs-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/strcache-stubs-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/strcache.h>
+#include "internal/iprt.h"
 
 #include <iprt/asm.h>
@@ -50,4 +51,5 @@
     return RTMemPoolCreate((PRTMEMPOOL)phStrCache, pszName);
 }
+RT_EXPORT_SYMBOL(RTStrCacheCreate);
 
 
@@ -59,4 +61,5 @@
     return RTMemPoolDestroy((RTMEMPOOL)hStrCache);
 }
+RT_EXPORT_SYMBOL(RTStrCacheDestroy);
 
 
@@ -69,4 +72,5 @@
     return (const char *)RTMemPoolDupEx((RTMEMPOOL)hStrCache, pchString, cchString, 1);
 }
+RT_EXPORT_SYMBOL(RTStrCacheEnterN);
 
 
@@ -75,4 +79,5 @@
     return RTStrCacheEnterN(hStrCache, psz, strlen(psz));
 }
+RT_EXPORT_SYMBOL(RTStrCacheEnter);
 
 
@@ -82,4 +87,5 @@
     return RTMemPoolRetain((void *)psz);
 }
+RT_EXPORT_SYMBOL(RTStrCacheRetain);
 
 
@@ -90,4 +96,5 @@
     return RTMemPoolRelease((RTMEMPOOL)hStrCache, (void *)psz);
 }
+RT_EXPORT_SYMBOL(RTStrCacheRelease);
 
 
@@ -98,3 +105,4 @@
     return strlen(psz);
 }
+RT_EXPORT_SYMBOL(RTStrCacheLength);
 
Index: trunk/src/VBox/Runtime/generic/timer-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/timer-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/timer-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/timer.h>
+#include "internal/iprt.h"
+
 #include <iprt/thread.h>
 #include <iprt/err.h>
@@ -134,4 +136,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTTimerCreateEx);
 
 
@@ -181,4 +184,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTTimerDestroy);
 
 
@@ -204,4 +208,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTTimerStart);
 
 
@@ -223,4 +228,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTTimerStop);
 
 
@@ -307,4 +313,5 @@
     return 10000000; /* 10ms */
 }
+RT_EXPORT_SYMBOL(RTTimerGetSystemGranularity);
 
 
@@ -313,4 +320,5 @@
     return VERR_NOT_SUPPORTED;
 }
+RT_EXPORT_SYMBOL(RTTimerRequestSystemGranularity);
 
 
@@ -319,3 +327,4 @@
     return VERR_NOT_SUPPORTED;
 }
-
+RT_EXPORT_SYMBOL(RTTimerReleaseSystemGranularity);
+
Index: trunk/src/VBox/Runtime/generic/timerlr-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/timerlr-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/timerlr-generic.cpp	(revision 21337)
@@ -37,4 +37,6 @@
 *******************************************************************************/
 #include <iprt/timer.h>
+#include "internal/iprt.h"
+
 #include <iprt/thread.h>
 #include <iprt/err.h>
@@ -140,4 +142,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTTimerLRCreateEx);
 
 
@@ -176,4 +179,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTTimerLRDestroy);
 
 
@@ -208,4 +212,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTTimerLRStart);
 
 
@@ -233,4 +238,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTTimerLRStop);
 
 
Index: trunk/src/VBox/Runtime/generic/tls-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/tls-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/tls-generic.cpp	(revision 21337)
@@ -34,6 +34,7 @@
 *******************************************************************************/
 #define LOG_GROUP RTLOGGROUP_THREAD
+#include <iprt/thread.h>
+#include "internal/iprt.h"
 
-#include <iprt/thread.h>
 #include <iprt/err.h>
 #include <iprt/asm.h>
Index: trunk/src/VBox/Runtime/generic/utf16locale-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/utf16locale-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/utf16locale-generic.cpp	(revision 21337)
@@ -35,4 +35,5 @@
 #define LOG_GROUP RTLOGGROUP_UTF16
 #include <iprt/string.h>
+#include "internal/iprt.h"
 
 
@@ -41,3 +42,4 @@
     return RTUtf16ICmp(pusz1, pusz2);
 }
+RT_EXPORT_SYMBOL(RTUtf16LocaleICmp);
 
Index: trunk/src/VBox/Runtime/generic/uuid-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/generic/uuid-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/generic/uuid-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/uuid.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 #include <iprt/err.h>
@@ -79,4 +81,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTUuidClear);
 
 
@@ -87,4 +90,5 @@
         && !pUuid->au64[1];
 }
+RT_EXPORT_SYMBOL(RTUuidIsNull);
 
 
@@ -130,4 +134,5 @@
     return 0;
 }
+RT_EXPORT_SYMBOL(RTUuidCompare);
 
 
@@ -149,4 +154,5 @@
     return RTUuidCompare(pUuid1, &Uuid2);
 }
+RT_EXPORT_SYMBOL(RTUuidCompareStr);
 
 
@@ -218,4 +224,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTUuidToStr);
 
 
@@ -312,4 +319,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTUuidFromStr);
 
 
@@ -382,4 +390,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTUuidToUtf16);
 
 
@@ -477,3 +486,4 @@
     return VINF_SUCCESS;
 }
-
+RT_EXPORT_SYMBOL(RTUuidFromUtf16);
+
Index: trunk/src/VBox/Runtime/include/internal/iprt.h
===================================================================
--- trunk/src/VBox/Runtime/include/internal/iprt.h	(revision 21337)
+++ trunk/src/VBox/Runtime/include/internal/iprt.h	(revision 21337)
@@ -0,0 +1,54 @@
+/* $Id$ */
+/** @file
+ * IPRT - Internal header for miscellaneous global defs and types.
+ */
+
+/*
+ * Copyright (C) 2009 Sun Microsystems, Inc.
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * The contents of this file may alternatively be used under the terms
+ * of the Common Development and Distribution License Version 1.0
+ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
+ * VirtualBox OSE distribution, in which case the provisions of the
+ * CDDL are applicable instead of those of the GPL.
+ *
+ * You may elect to license modified versions of this file under the
+ * terms and conditions of either the GPL or the CDDL or both.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
+ * Clara, CA 95054 USA or visit http://www.sun.com if you need
+ * additional information or have any questions.
+ */
+
+#ifndef ___internal_iprt_h
+#define ___internal_iprt_h
+
+#include <iprt/cdefs.h>
+#include <iprt/types.h>
+
+/** @def RT_EXPORT_SYMBOL
+ * This define is really here just for the linux kernel.
+ * @param   Name        The symbol name.
+ */
+#if defined(RT_OS_LINUX) \
+ && defined(IN_RING0) \
+ && defined(IN_MODULE)
+# define bool linux_bool /* see r0drv/linux/the-linux-kernel.h */
+# include <linux/autoconf.h>
+# include <linux/module.h>
+# undef bool
+# define RT_EXPORT_SYMBOL(Name) EXPORT_SYMBOL(Name)
+#else
+# define RT_EXPORT_SYMBOL(Name) extern int g_rtExportSymbolDummyVariable
+#endif
+
+#endif
+
Index: trunk/src/VBox/Runtime/r0drv/alloc-r0drv.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/alloc-r0drv.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/alloc-r0drv.cpp	(revision 21337)
@@ -33,6 +33,8 @@
 *   Header Files                                                               *
 *******************************************************************************/
+#include <iprt/mem.h>
+#include "internal/iprt.h"
+
 #include <iprt/string.h>
-#include <iprt/alloc.h>
 #include <iprt/assert.h>
 #include <iprt/param.h>
@@ -84,4 +86,5 @@
     return RTMemAlloc(cb);
 }
+RT_EXPORT_SYMBOL(RTMemTmpAlloc);
 
 
@@ -99,4 +102,5 @@
     return RTMemAllocZ(cb);
 }
+RT_EXPORT_SYMBOL(RTMemTmpAllocZ);
 
 
@@ -110,4 +114,5 @@
     return RTMemFree(pv);
 }
+RT_EXPORT_SYMBOL(RTMemTmpFree);
 
 
@@ -132,4 +137,5 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTMemAlloc);
 
 
@@ -160,4 +166,5 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTMemAllocZ);
 
 
@@ -210,4 +217,5 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTMemRealloc);
 
 
@@ -240,4 +248,5 @@
         AssertMsgFailed(("pHdr->u32Magic=%RX32 pv=%p\n", pHdr->u32Magic, pv));
 }
+RT_EXPORT_SYMBOL(RTMemFree);
 
 
@@ -262,4 +271,5 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTMemExecAlloc);
 
 
@@ -291,3 +301,4 @@
         AssertMsgFailed(("pHdr->u32Magic=%RX32 pv=%p\n", pHdr->u32Magic, pv));
 }
-
+RT_EXPORT_SYMBOL(RTMemExecFree);
+
Index: trunk/src/VBox/Runtime/r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
 
 
@@ -45,3 +46,4 @@
     return false;
 }
+RT_EXPORT_SYMBOL(RTMpIsCpuWorkPending);
 
Index: trunk/src/VBox/Runtime/r0drv/generic/RTMpOn-r0drv-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/generic/RTMpOn-r0drv-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/generic/RTMpOn-r0drv-generic.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
+
 #include <iprt/err.h>
 
@@ -44,4 +46,5 @@
     return VERR_NOT_SUPPORTED;
 }
+RT_EXPORT_SYMBOL(RTMpOnAll);
 
 
@@ -53,4 +56,5 @@
     return VERR_NOT_SUPPORTED;
 }
+RT_EXPORT_SYMBOL(RTMpOnOthers);
 
 
@@ -63,3 +67,4 @@
     return VERR_NOT_SUPPORTED;
 }
+RT_EXPORT_SYMBOL(RTMpOnSpecific);
 
Index: trunk/src/VBox/Runtime/r0drv/generic/RTMpPokeCpu-r0drv-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/generic/RTMpPokeCpu-r0drv-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/generic/RTMpPokeCpu-r0drv-generic.cpp	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
 
 
@@ -48,3 +49,4 @@
     return RTMpOnSpecific(idCpu, rtMpNtPokeCpuDummy, NULL, NULL);
 }
+RT_EXPORT_SYMBOL(RTMpPokeCpu);
 
Index: trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptDisable-r0drv-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptDisable-r0drv-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptDisable-r0drv-generic.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/thread.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 
@@ -42,3 +45,4 @@
     pState->uchDummy = 42;
 }
+RT_EXPORT_SYMBOL(RTThreadPreemptDisable);
 
Index: trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptIsEnabled-r0drv-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptIsEnabled-r0drv-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptIsEnabled-r0drv-generic.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/thread.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 
@@ -41,3 +44,4 @@
     return true;
 }
+RT_EXPORT_SYMBOL(RTThreadPreemptIsEnabled);
 
Index: trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptIsPending-r0drv-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptIsPending-r0drv-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptIsPending-r0drv-generic.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/thread.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 
@@ -41,3 +44,4 @@
     return false;
 }
+RT_EXPORT_SYMBOL(RTThreadPreemptIsPending);
 
Index: trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptIsPendingTrusty-r0drv-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptIsPendingTrusty-r0drv-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptIsPendingTrusty-r0drv-generic.cpp	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/thread.h>
+#include "internal/iprt.h"
 
 
@@ -40,3 +42,4 @@
     return false;
 }
+RT_EXPORT_SYMBOL(RTThreadPreemptIsPendingTrusty);
 
Index: trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptRestore-r0drv-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptRestore-r0drv-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/generic/RTThreadPreemptRestore-r0drv-generic.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/thread.h>
+#include "internal/iprt.h"
+
 #include <iprt/assert.h>
 
@@ -42,3 +45,4 @@
     pState->uchDummy = 0;
 }
+RT_EXPORT_SYMBOL(RTThreadPreemptRestore);
 
Index: trunk/src/VBox/Runtime/r0drv/generic/mpnotification-r0drv-generic.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/generic/mpnotification-r0drv-generic.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/generic/mpnotification-r0drv-generic.cpp	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
+
 #include <iprt/err.h>
 #include "r0drv/mp-r0drv.h"
@@ -43,4 +46,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTMpNotificationRegister);
 
 
@@ -51,4 +55,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTMpNotificationDeregister);
 
 
Index: trunk/src/VBox/Runtime/r0drv/initterm-r0drv.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/initterm-r0drv.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/initterm-r0drv.cpp	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include <iprt/initterm.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/assert.h>
@@ -96,4 +98,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTR0Init);
 
 
@@ -120,3 +123,4 @@
     rtR0TermNative();
 }
+RT_EXPORT_SYMBOL(RTR0Term);
 
Index: trunk/src/VBox/Runtime/r0drv/linux/RTLogWriteDebugger-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/RTLogWriteDebugger-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/RTLogWriteDebugger-r0drv-linux.c	(revision 21337)
@@ -29,5 +29,10 @@
  */
 
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 #include <iprt/log.h>
 
@@ -37,3 +42,4 @@
     printk("%.*s", (int)cb, pch);
 }
+RT_EXPORT_SYMBOL(RTLogWriteDebugger);
 
Index: trunk/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c	(revision 21337)
@@ -34,4 +34,6 @@
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
+
 #include <iprt/mem.h>
 #include <iprt/assert.h>
@@ -105,4 +107,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTR0MemExecDonate);
 #endif /* RTMEMALLOC_EXEC_HEAP */
 
@@ -272,4 +275,5 @@
     return NULL;
 }
+RT_EXPORT_SYMBOL(RTMemContAlloc);
 
 
@@ -312,3 +316,4 @@
     }
 }
-
+RT_EXPORT_SYMBOL(RTMemContFree);
+
Index: trunk/src/VBox/Runtime/r0drv/linux/assert-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/assert-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/assert-r0drv-linux.c	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 
 #include <iprt/assert.h>
@@ -47,14 +48,20 @@
 /** The last assert message, 1st part. */
 RTDATADECL(char)                    g_szRTAssertMsg1[1024];
+RT_EXPORT_SYMBOL(g_szRTAssertMsg1);
 /** The last assert message, 2nd part. */
 RTDATADECL(char)                    g_szRTAssertMsg2[2048];
+RT_EXPORT_SYMBOL(g_szRTAssertMsg2);
 /** The last assert message, file name. */
 RTDATADECL(const char *) volatile   g_pszRTAssertExpr;
+RT_EXPORT_SYMBOL(g_pszRTAssertExpr);
 /** The last assert message, file name. */
 RTDATADECL(const char *) volatile   g_pszRTAssertFile;
+RT_EXPORT_SYMBOL(g_pszRTAssertFile);
 /** The last assert message, line number. */
 RTDATADECL(uint32_t) volatile       g_u32RTAssertLine;
+RT_EXPORT_SYMBOL(g_u32RTAssertLine);
 /** The last assert message, function name. */
 RTDATADECL(const char *) volatile   g_pszRTAssertFunction;
+RT_EXPORT_SYMBOL(g_pszRTAssertFunction);
 
 
@@ -83,4 +90,5 @@
     ASMAtomicUoWriteU32(&g_u32RTAssertLine, uLine);
 }
+RT_EXPORT_SYMBOL(AssertMsg1);
 
 
@@ -106,4 +114,5 @@
     va_end(va);
 }
+RT_EXPORT_SYMBOL(AssertMsg2);
 
 
@@ -112,14 +121,4 @@
     panic("%s%s", g_szRTAssertMsg1, g_szRTAssertMsg2);
 }
+RT_EXPORT_SYMBOL(RTR0AssertPanicSystem);
 
-
-#if defined(RT_OS_LINUX) && defined(IN_MODULE)
-/*
- * When we build this in the Linux kernel module, we wish to make the
- * symbols available to other modules as well.
- */
-# include "the-linux-kernel.h"
-EXPORT_SYMBOL (RTR0AssertPanicSystem);
-EXPORT_SYMBOL (AssertMsg1);
-EXPORT_SYMBOL (AssertMsg2);
-#endif /* RT_OS_LINUX && IN_MODULE */
Index: trunk/src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 #include <iprt/err.h>
 #include <iprt/assert.h>
@@ -45,5 +46,5 @@
 /* in alloc-r0drv0-linux.c */
 extern void rtR0MemExecCleanup(void);
-#endif 
+#endif
 
 
@@ -58,5 +59,5 @@
 #ifdef RT_ARCH_AMD64
     rtR0MemExecCleanup();
-#endif 
+#endif
 }
 
Index: trunk/src/VBox/Runtime/r0drv/linux/memuserkernel-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/memuserkernel-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/memuserkernel-r0drv-linux.c	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 
 #include <iprt/mem.h>
@@ -45,4 +46,5 @@
     return VERR_ACCESS_DENIED;
 }
+RT_EXPORT_SYMBOL(RTR0MemUserCopyFrom);
 
 
@@ -53,4 +55,5 @@
     return VERR_ACCESS_DENIED;
 }
+RT_EXPORT_SYMBOL(RTR0MemUserCopyTo);
 
 
@@ -59,4 +62,5 @@
     return access_ok(VERIFY_READ, (void *)R3Ptr, 1);
 }
+RT_EXPORT_SYMBOL(RTR0MemUserIsValidAddr);
 
 
@@ -83,4 +87,5 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTR0MemKernelIsValidAddr);
 
 
@@ -93,3 +98,4 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTR0MemAreKrnlAndUsrDifferent);
 
Index: trunk/src/VBox/Runtime/r0drv/linux/mp-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/mp-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/mp-r0drv-linux.c	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 
 #include <iprt/mp.h>
@@ -46,4 +47,5 @@
     return smp_processor_id();
 }
+RT_EXPORT_SYMBOL(RTMpCpuId);
 
 
@@ -52,4 +54,5 @@
     return idCpu < NR_CPUS ? (int)idCpu : -1;
 }
+RT_EXPORT_SYMBOL(RTMpCpuIdToSetIndex);
 
 
@@ -58,4 +61,5 @@
     return iCpu < NR_CPUS ? (RTCPUID)iCpu : NIL_RTCPUID;
 }
+RT_EXPORT_SYMBOL(RTMpCpuIdFromSetIndex);
 
 
@@ -64,4 +68,5 @@
     return NR_CPUS - 1; //???
 }
+RT_EXPORT_SYMBOL(RTMpGetMaxCpuId);
 
 
@@ -81,4 +86,5 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTMpIsCpuPossible);
 
 
@@ -96,4 +102,5 @@
     return pSet;
 }
+RT_EXPORT_SYMBOL(RTMpGetSet);
 
 
@@ -116,4 +123,5 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTMpGetCount);
 
 
@@ -132,4 +140,5 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTMpIsCpuOnline);
 
 
@@ -152,4 +161,5 @@
     return pSet;
 }
+RT_EXPORT_SYMBOL(RTMpGetOnlineSet);
 
 
@@ -168,4 +178,5 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTMpGetOnlineCount);
 
 
@@ -175,4 +186,5 @@
     return false;
 }
+RT_EXPORT_SYMBOL(RTMpIsCpuWorkPending);
 
 
@@ -222,4 +234,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTMpOnAll);
 
 
@@ -250,4 +263,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTMpOnOthers);
 
 
@@ -319,4 +333,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTMpOnSpecific);
 
 
@@ -359,3 +374,4 @@
 #endif /* older kernels */
 }
-
+RT_EXPORT_SYMBOL(RTMpPokeCpu);
+
Index: trunk/src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 
 #include <iprt/mp.h>
@@ -61,10 +63,10 @@
 };
 
-#ifdef CPU_DOWN_FAILED
+# ifdef CPU_DOWN_FAILED
 /**
  * The set of CPUs we've seen going offline recently.
  */
 static RTCPUSET g_MpPendingOfflineSet;
-#endif
+# endif
 
 
@@ -96,20 +98,20 @@
          * Ignore failure events for CPUs we didn't see go offline.
          */
-#ifdef CPU_DOWN_FAILED
+# ifdef CPU_DOWN_FAILED
         case CPU_DOWN_FAILED:
-# if defined(CPU_TASKS_FROZEN) && defined(CPU_DOWN_FAILED_FROZEN)
+#  if defined(CPU_TASKS_FROZEN) && defined(CPU_DOWN_FAILED_FROZEN)
         case CPU_DOWN_FAILED_FROZEN:
-# endif
+#  endif
             if (!RTCpuSetIsMember(&g_MpPendingOfflineSet, idCpu))
                 return 0;
         /* fall thru */
-#endif
+# endif
         case CPU_ONLINE:
-#if defined(CPU_TASKS_FROZEN) && defined(CPU_ONLINE_FROZEN)
+# if defined(CPU_TASKS_FROZEN) && defined(CPU_ONLINE_FROZEN)
         case CPU_ONLINE_FROZEN:
-#endif
-#ifdef CPU_DOWN_FAILED
+# endif
+# ifdef CPU_DOWN_FAILED
             RTCpuSetDel(&g_MpPendingOfflineSet, idCpu);
-#endif
+# endif
             rtMpNotificationDoCallbacks(RTMPEVENT_ONLINE, idCpu);
             break;
@@ -120,19 +122,19 @@
          * it's exactly one.
          */
-#ifdef CPU_DOWN_PREPARE
+# ifdef CPU_DOWN_PREPARE
         case CPU_DOWN_PREPARE:
-# if defined(CPU_TASKS_FROZEN) && defined(CPU_DOWN_PREPARE_FROZEN)
+#  if defined(CPU_TASKS_FROZEN) && defined(CPU_DOWN_PREPARE_FROZEN)
         case CPU_DOWN_PREPARE_FROZEN:
+#  endif
+# else
+        case CPU_DEAD:
+#  if defined(CPU_TASKS_FROZEN) && defined(CPU_DEAD_FROZEN)
+        case CPU_DEAD_FROZEN:
+#  endif
 # endif
-#else
-        case CPU_DEAD:
-# if defined(CPU_TASKS_FROZEN) && defined(CPU_DEAD_FROZEN)
-        case CPU_DEAD_FROZEN:
+            rtMpNotificationDoCallbacks(RTMPEVENT_OFFLINE, idCpu);
+# ifdef CPU_DOWN_FAILED
+            RTCpuSetAdd(&g_MpPendingOfflineSet, idCpu);
 # endif
-#endif
-            rtMpNotificationDoCallbacks(RTMPEVENT_OFFLINE, idCpu);
-#ifdef CPU_DOWN_FAILED
-            RTCpuSetAdd(&g_MpPendingOfflineSet, idCpu);
-#endif
             break;
     }
@@ -146,7 +148,7 @@
     int rc;
 
-#ifdef CPU_DOWN_FAILED
+# ifdef CPU_DOWN_FAILED
     RTCpuSetEmpty(&g_MpPendingOfflineSet);
-#endif
+# endif
 
     rc = register_cpu_notifier(&g_NotifierBlock);
Index: trunk/src/VBox/Runtime/r0drv/linux/process-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/process-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/process-r0drv-linux.c	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 
 #include <iprt/process.h>
@@ -41,4 +43,5 @@
     return (RTPROCESS)current->tgid;
 }
+RT_EXPORT_SYMBOL(RTProcSelf);
 
 
@@ -47,3 +50,4 @@
     return (RTR0PROCESS)current->tgid;
 }
+RT_EXPORT_SYMBOL(RTR0ProcHandleSelf);
 
Index: trunk/src/VBox/Runtime/r0drv/linux/semevent-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/semevent-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/semevent-r0drv-linux.c	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 #include <iprt/semaphore.h>
 #include <iprt/alloc.h>
@@ -74,4 +75,5 @@
     return VERR_NO_MEMORY;
 }
+RT_EXPORT_SYMBOL(RTSemEventCreate);
 
 
@@ -100,4 +102,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemEventDestroy);
 
 
@@ -125,4 +128,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemEventSignal);
 
 
@@ -204,4 +208,5 @@
     return rtSemEventWait(pEventInt, cMillies, false /* fInterruptible */);
 }
+RT_EXPORT_SYMBOL(RTSemEventWait);
 
 
@@ -222,3 +227,4 @@
     return rtSemEventWait(pEventInt, cMillies, true /* fInterruptible */);
 }
-
+RT_EXPORT_SYMBOL(RTSemEventWaitNoResume);
+
Index: trunk/src/VBox/Runtime/r0drv/linux/semeventmulti-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/semeventmulti-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/semeventmulti-r0drv-linux.c	(revision 21337)
@@ -34,4 +34,5 @@
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 #include <iprt/semaphore.h>
 #include <iprt/alloc.h>
@@ -74,4 +75,5 @@
     return VERR_NO_MEMORY;
 }
+RT_EXPORT_SYMBOL(RTSemEventMultiCreate);
 
 
@@ -97,4 +99,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemEventMultiDestroy);
 
 
@@ -117,4 +120,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemEventMultiSignal);
 
 
@@ -136,4 +140,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemEventMultiReset);
 
 
@@ -211,4 +216,5 @@
     return rtSemEventMultiWait(pThis, cMillies, false /* fInterruptible */);
 }
+RT_EXPORT_SYMBOL(RTSemEventMultiWait);
 
 
@@ -225,3 +231,4 @@
     return rtSemEventMultiWait(pThis, cMillies, true /* fInterruptible */);
 }
-
+RT_EXPORT_SYMBOL(RTSemEventMultiWaitNoResume);
+
Index: trunk/src/VBox/Runtime/r0drv/linux/semfastmutex-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/semfastmutex-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/semfastmutex-r0drv-linux.c	(revision 21337)
@@ -30,9 +30,9 @@
 
 
-
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 #include <iprt/semaphore.h>
 #include <iprt/alloc.h>
@@ -87,4 +87,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemFastMutexCreate);
 
 
@@ -107,4 +108,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemFastMutexDestroy);
 
 
@@ -133,4 +135,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemFastMutexRequest);
 
 
@@ -158,3 +161,4 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemFastMutexRelease);
 
Index: trunk/src/VBox/Runtime/r0drv/linux/semmutex-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/semmutex-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/semmutex-r0drv-linux.c	(revision 21337)
@@ -30,9 +30,9 @@
 
 
-
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 #include <iprt/semaphore.h>
 #include <iprt/alloc.h>
@@ -77,4 +77,5 @@
     return VERR_NO_MEMORY;
 }
+RT_EXPORT_SYMBOL(RTSemMutexCreate);
 
 
@@ -103,4 +104,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemMutexDestroy);
 
 
@@ -187,4 +189,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSemMutexRequest);
 
 
@@ -222,3 +225,4 @@
     return VINF_SUCCESS;
 }
-
+RT_EXPORT_SYMBOL(RTSemMutexRelease);
+
Index: trunk/src/VBox/Runtime/r0drv/linux/spinlock-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/spinlock-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/spinlock-r0drv-linux.c	(revision 21337)
@@ -42,4 +42,5 @@
 #include "internal/magics.h"
 
+
 /*******************************************************************************
 *   Structures and Typedefs                                                    *
@@ -81,4 +82,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSpinlockCreate);
 
 
@@ -101,4 +103,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTSpinlockDestroy);
 
 
@@ -112,4 +115,5 @@
     spin_lock_irqsave(&pSpinlockInt->Spinlock, pTmp->flFlags);
 }
+RT_EXPORT_SYMBOL(RTSpinlockAcquireNoInts);
 
 
@@ -123,4 +127,5 @@
     spin_unlock_irqrestore(&pSpinlockInt->Spinlock, pTmp->flFlags);
 }
+RT_EXPORT_SYMBOL(RTSpinlockReleaseNoInts);
 
 
@@ -134,4 +139,5 @@
     spin_lock(&pSpinlockInt->Spinlock);
 }
+RT_EXPORT_SYMBOL(RTSpinlockAcquire);
 
 
@@ -145,9 +151,4 @@
     spin_unlock(&pSpinlockInt->Spinlock);
 }
+RT_EXPORT_SYMBOL(RTSpinlockRelease);
 
-#if defined(IN_GUEST_R0) && defined(IN_MODULE)
-EXPORT_SYMBOL(RTSpinlockCreate);
-EXPORT_SYMBOL(RTSpinlockDestroy);
-EXPORT_SYMBOL(RTSpinlockAcquireNoInts);
-EXPORT_SYMBOL(RTSpinlockReleaseNoInts);
-#endif
Index: trunk/src/VBox/Runtime/r0drv/linux/thread-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/thread-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/thread-r0drv-linux.c	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 
 #include <iprt/thread.h>
@@ -43,7 +45,8 @@
     return (RTNATIVETHREAD)current;
 }
+RT_EXPORT_SYMBOL(RTThreadNativeSelf);
 
 
-RTDECL(int)   RTThreadSleep(unsigned cMillies)
+RTDECL(int) RTThreadSleep(unsigned cMillies)
 {
     long cJiffies = msecs_to_jiffies(cMillies);
@@ -54,4 +57,5 @@
     return VERR_INTERRUPTED;
 }
+RT_EXPORT_SYMBOL(RTThreadSleep);
 
 
@@ -67,4 +71,5 @@
     return true;
 }
+RT_EXPORT_SYMBOL(RTThreadYield);
 
 
@@ -82,4 +87,5 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTThreadPreemptIsEnabled);
 
 
@@ -100,4 +106,5 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTThreadPreemptIsPending);
 
 
@@ -107,4 +114,5 @@
     return true;
 }
+RT_EXPORT_SYMBOL(RTThreadPreemptIsPendingTrusty);
 
 
@@ -122,4 +130,5 @@
     preempt_disable();
 }
+RT_EXPORT_SYMBOL(RTThreadPreemptDisable);
 
 
@@ -132,3 +141,4 @@
     preempt_enable();
 }
+RT_EXPORT_SYMBOL(RTThreadPreemptRestore);
 
Index: trunk/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 
 #include <iprt/assert.h>
Index: trunk/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c	(revision 21337)
@@ -35,4 +35,5 @@
 #define LOG_GROUP RTLOGGROUP_TIME
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 #include <iprt/time.h>
 #include <iprt/asm.h>
@@ -147,4 +148,5 @@
     return rtTimeGetSystemNanoTS();
 }
+RT_EXPORT_SYMBOL(RTTimeNanoTS);
 
 
@@ -153,4 +155,5 @@
     return rtTimeGetSystemNanoTS() / 1000000;
 }
+RT_EXPORT_SYMBOL(RTTimeMilliTS);
 
 
@@ -159,4 +162,5 @@
     return rtTimeGetSystemNanoTS();
 }
+RT_EXPORT_SYMBOL(RTTimeSystemNanoTS);
 
 
@@ -165,4 +169,5 @@
     return rtTimeGetSystemNanoTS() / 1000000;
 }
+RT_EXPORT_SYMBOL(RTTimeSystemMilliTS);
 
 
@@ -180,3 +185,4 @@
 #endif
 }
+RT_EXPORT_SYMBOL(RTTimeNow);
 
Index: trunk/src/VBox/Runtime/r0drv/linux/timer-r0drv-linux.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/linux/timer-r0drv-linux.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/linux/timer-r0drv-linux.c	(revision 21337)
@@ -29,8 +29,10 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include "the-linux-kernel.h"
+#include "internal/iprt.h"
 
 #include <iprt/timer.h>
@@ -744,4 +746,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTTimerStart);
 
 
@@ -775,4 +778,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTTimerStop);
 
 
@@ -818,4 +822,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTTimerDestroy);
 
 
@@ -924,4 +929,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTTimerCreateEx);
 
 
@@ -939,4 +945,5 @@
     return 1000000000 / HZ; /* ns */
 }
+RT_EXPORT_SYMBOL(RTTimerGetSystemGranularity);
 
 
@@ -945,4 +952,5 @@
     return VERR_NOT_SUPPORTED;
 }
+RT_EXPORT_SYMBOL(RTTimerRequestSystemGranularity);
 
 
@@ -951,3 +959,4 @@
     return VERR_NOT_SUPPORTED;
 }
-
+RT_EXPORT_SYMBOL(RTTimerReleaseSystemGranularity);
+
Index: trunk/src/VBox/Runtime/r0drv/memobj-r0drv.cpp
===================================================================
--- trunk/src/VBox/Runtime/r0drv/memobj-r0drv.cpp	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/memobj-r0drv.cpp	(revision 21337)
@@ -35,4 +35,5 @@
 #define LOG_GROUP RTLOGGROUP_DEFAULT ///@todo RTLOGGROUP_MEM
 #include <iprt/memobj.h>
+#include "internal/iprt.h"
 
 #include <iprt/alloc.h>
@@ -158,4 +159,5 @@
     return rtR0MemObjIsMapping(pMem);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjIsMapping);
 
 
@@ -181,4 +183,5 @@
     return pMem->pv;
 }
+RT_EXPORT_SYMBOL(RTR0MemObjAddress);
 
 
@@ -219,4 +222,5 @@
     return (RTR3PTR)pMem->pv;
 }
+RT_EXPORT_SYMBOL(RTR0MemObjAddressR3);
 
 
@@ -243,4 +247,5 @@
     return pMem->cb;
 }
+RT_EXPORT_SYMBOL(RTR0MemObjSize);
 
 
@@ -288,4 +293,5 @@
     return rtR0MemObjNativeGetPagePhysAddr(pMem, iPage);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjGetPagePhysAddr);
 
 
@@ -396,4 +402,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTR0MemObjFree);
 
 
@@ -421,4 +428,5 @@
     return rtR0MemObjNativeAllocPage(pMemObj, cbAligned, fExecutable);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjAllocPage);
 
 
@@ -445,4 +453,5 @@
     return rtR0MemObjNativeAllocLow(pMemObj, cbAligned, fExecutable);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjAllocLow);
 
 
@@ -469,4 +478,5 @@
     return rtR0MemObjNativeAllocCont(pMemObj, cbAligned, fExecutable);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjAllocCont);
 
 
@@ -503,4 +513,5 @@
     return rtR0MemObjNativeLockUser(pMemObj, R3PtrAligned, cbAligned, R0Process);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjLockUser);
 
 
@@ -529,4 +540,5 @@
     return rtR0MemObjNativeLockKernel(pMemObj, pvAligned, cbAligned);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjLockKernel);
 
 
@@ -553,4 +565,5 @@
     return rtR0MemObjNativeAllocPhys(pMemObj, cbAligned, PhysHighest);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjAllocPhys);
 
 
@@ -577,4 +590,5 @@
     return rtR0MemObjNativeAllocPhysNC(pMemObj, cbAligned, PhysHighest);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjAllocPhysNC);
 
 
@@ -604,4 +618,5 @@
     return rtR0MemObjNativeEnterPhys(pMemObj, PhysAligned, cbAligned);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjEnterPhys);
 
 
@@ -633,4 +648,5 @@
     return rtR0MemObjNativeReserveKernel(pMemObj, pvFixed, cbAligned, uAlignment);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjReserveKernel);
 
 
@@ -665,4 +681,5 @@
     return rtR0MemObjNativeReserveUser(pMemObj, R3PtrFixed, cbAligned, uAlignment, R0Process);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjReserveUser);
 
 
@@ -682,4 +699,5 @@
     return RTR0MemObjMapKernelEx(pMemObj, MemObjToMap, pvFixed, uAlignment, fProt, 0, 0);
 }
+RT_EXPORT_SYMBOL(RTR0MemObjMapKernel);
 
 
@@ -762,4 +780,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTR0MemObjMapKernelEx);
 
 
@@ -821,4 +840,5 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTR0MemObjMapUser);
 
 
@@ -848,2 +868,4 @@
     return rc;
 }
+RT_EXPORT_SYMBOL(RTR0MemObjProtect);
+
Index: trunk/src/VBox/Runtime/r0drv/mpnotification-r0drv.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/mpnotification-r0drv.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/mpnotification-r0drv.c	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/mp.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/assert.h>
@@ -224,5 +227,5 @@
     return VINF_SUCCESS;
 }
-
+RT_EXPORT_SYMBOL(RTMpNotificationRegister);
 
 
@@ -273,4 +276,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTMpNotificationDeregister);
 
 
@@ -335,3 +339,2 @@
 }
 
-
Index: trunk/src/VBox/Runtime/r0drv/powernotification-r0drv.c
===================================================================
--- trunk/src/VBox/Runtime/r0drv/powernotification-r0drv.c	(revision 21332)
+++ trunk/src/VBox/Runtime/r0drv/powernotification-r0drv.c	(revision 21337)
@@ -29,8 +29,11 @@
  */
 
+
 /*******************************************************************************
 *   Header Files                                                               *
 *******************************************************************************/
 #include <iprt/power.h>
+#include "internal/iprt.h"
+
 #include <iprt/asm.h>
 #include <iprt/assert.h>
@@ -153,5 +156,5 @@
     return VINF_SUCCESS;
 }
-
+RT_EXPORT_SYMBOL(RTPowerSignalEvent);
 
 
@@ -220,5 +223,5 @@
     return VINF_SUCCESS;
 }
-
+RT_EXPORT_SYMBOL(RTPowerNotificationRegister);
 
 
@@ -269,4 +272,5 @@
     return VINF_SUCCESS;
 }
+RT_EXPORT_SYMBOL(RTPowerNotificationDeregister);
 
 
@@ -330,3 +334,2 @@
 }
 
-
