summaryrefslogtreecommitdiff
path: root/src/dlls/mscordbi
diff options
context:
space:
mode:
authorJiyoung Yun <jy910.yun@samsung.com>2016-11-23 19:09:09 +0900
committerJiyoung Yun <jy910.yun@samsung.com>2016-11-23 19:09:09 +0900
commit4b4aad7217d3292650e77eec2cf4c198ea9c3b4b (patch)
tree98110734c91668dfdbb126fcc0e15ddbd93738ca /src/dlls/mscordbi
parentfa45f57ed55137c75ac870356a1b8f76c84b229c (diff)
downloadcoreclr-upstream/1.1.0.tar.gz
coreclr-upstream/1.1.0.tar.bz2
coreclr-upstream/1.1.0.zip
Imported Upstream version 1.1.0upstream/1.1.0
Diffstat (limited to 'src/dlls/mscordbi')
-rw-r--r--src/dlls/mscordbi/.gitmirror1
-rw-r--r--src/dlls/mscordbi/CMakeLists.txt114
-rw-r--r--src/dlls/mscordbi/DIRS.proj23
-rw-r--r--src/dlls/mscordbi/Native.rc8
-rw-r--r--src/dlls/mscordbi/mscordbi.cpp29
-rw-r--r--src/dlls/mscordbi/mscordbi.settings.targets144
-rw-r--r--src/dlls/mscordbi/mscordbi.src29
-rw-r--r--src/dlls/mscordbi/mscordbi.vrg78
-rw-r--r--src/dlls/mscordbi/mscordbi_unixexports.src18
-rw-r--r--src/dlls/mscordbi/mscordbiv.vrg4
-rw-r--r--src/dlls/mscordbi/stdafx.cpp10
-rw-r--r--src/dlls/mscordbi/stdafx.h15
12 files changed, 473 insertions, 0 deletions
diff --git a/src/dlls/mscordbi/.gitmirror b/src/dlls/mscordbi/.gitmirror
new file mode 100644
index 0000000000..f507630f94
--- /dev/null
+++ b/src/dlls/mscordbi/.gitmirror
@@ -0,0 +1 @@
+Only contents of this folder, excluding subfolders, will be mirrored by the Git-TFS Mirror. \ No newline at end of file
diff --git a/src/dlls/mscordbi/CMakeLists.txt b/src/dlls/mscordbi/CMakeLists.txt
new file mode 100644
index 0000000000..5f5ad5139e
--- /dev/null
+++ b/src/dlls/mscordbi/CMakeLists.txt
@@ -0,0 +1,114 @@
+
+# Set the RPATH of mscordbi so that it can find dependencies without needing to set LD_LIBRARY_PATH
+# For more information: http://www.cmake.org/Wiki/CMake_RPATH_handling.
+if(CORECLR_SET_RPATH)
+ set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
+ if(CLR_CMAKE_PLATFORM_DARWIN)
+ set(CMAKE_INSTALL_RPATH "@loader_path")
+ else()
+ set(CMAKE_INSTALL_RPATH "\$ORIGIN")
+ endif(CLR_CMAKE_PLATFORM_DARWIN)
+endif(CORECLR_SET_RPATH)
+
+set(MSCORDBI_SOURCES
+ mscordbi.cpp
+)
+
+if(WIN32)
+ add_precompiled_header(stdafx.h stdafx.cpp MSCORDBI_SOURCES)
+
+ add_definitions(-DFX_VER_INTERNALNAME_STR=mscordbi.dll)
+
+ list(APPEND MSCORDBI_SOURCES
+ Native.rc
+ )
+
+ set(DEF_SOURCES
+ mscordbi.src
+ )
+
+ convert_to_absolute_path(DEF_SOURCES ${DEF_SOURCES})
+
+ preprocess_def_file(${DEF_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/mscordbi.def)
+
+ list(APPEND MSCORDBI_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/mscordbi.def)
+else(WIN32)
+ set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/mscordbi_unixexports.src)
+ set(EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/mscordbi.exports)
+ generate_exports_file(${DEF_SOURCES} ${EXPORTS_FILE})
+endif(WIN32)
+
+if(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_FREEBSD OR CLR_CMAKE_PLATFORM_NETBSD)
+ # This option is necessary to ensure that the overloaded new/delete operators defined inside
+ # of the utilcode will be used instead of the standard library delete operator.
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic -Xlinker -Bsymbolic-functions")
+
+ # Add linker exports file option
+ set(EXPORTS_LINKER_OPTION -Wl,--version-script=${EXPORTS_FILE})
+endif(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_FREEBSD OR CLR_CMAKE_PLATFORM_NETBSD)
+
+if(CLR_CMAKE_PLATFORM_DARWIN)
+ # Add linker exports file option
+ set(EXPORTS_LINKER_OPTION -Wl,-exported_symbols_list,${EXPORTS_FILE})
+endif(CLR_CMAKE_PLATFORM_DARWIN)
+
+add_library_clr(mscordbi SHARED ${MSCORDBI_SOURCES})
+
+if(CLR_CMAKE_PLATFORM_UNIX)
+ add_custom_target(mscordbi_exports DEPENDS ${EXPORTS_FILE})
+ add_dependencies(mscordbi mscordbi_exports)
+
+ set_property(TARGET mscordbi APPEND_STRING PROPERTY LINK_FLAGS ${EXPORTS_LINKER_OPTION})
+ set_property(TARGET mscordbi APPEND_STRING PROPERTY LINK_DEPENDS ${EXPORTS_FILE})
+endif(CLR_CMAKE_PLATFORM_UNIX)
+
+set(COREDBI_LIBRARIES
+ debug-pal
+ cordbdi
+ utilcodestaticnohost
+ ildbsymlib
+ mdcompiler-dbi
+ mdruntime-dbi
+ mdruntimerw-dbi
+ mddatasource_dbi
+ corguids
+)
+
+if(WIN32)
+ list(APPEND COREDBI_LIBRARIES
+ ipcmanager-staticcrt
+ mdhotdata-staticcrt
+ mdwinmd_dbi
+ kernel32.lib
+ advapi32.lib
+ ole32.lib
+ oleaut32.lib
+ uuid.lib
+ user32.lib
+ version.lib
+ ${STATIC_MT_CRT_LIB}
+ ${STATIC_MT_VCRT_LIB}
+ )
+
+ target_link_libraries(mscordbi ${COREDBI_LIBRARIES})
+
+elseif(CLR_CMAKE_PLATFORM_UNIX)
+
+ list(APPEND COREDBI_LIBRARIES
+ mdhotdata_full
+ palrt
+ # share the PAL in the dac module
+ mscordaccore
+ )
+
+ add_dependencies(mscordbi mscordaccore)
+
+ # COREDBI_LIBRARIES is mentioned twice because ld is one pass linker and will not find symbols
+ # if they are defined after they are used. Having all libs twice makes sure that ld will actually
+ # find all symbols.
+ target_link_libraries(mscordbi ${COREDBI_LIBRARIES} ${COREDBI_LIBRARIES})
+
+endif(WIN32)
+
+# add the install targets
+install_clr(mscordbi) \ No newline at end of file
diff --git a/src/dlls/mscordbi/DIRS.proj b/src/dlls/mscordbi/DIRS.proj
new file mode 100644
index 0000000000..fb7248524d
--- /dev/null
+++ b/src/dlls/mscordbi/DIRS.proj
@@ -0,0 +1,23 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <!--Import the settings-->
+ <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" />
+
+ <PropertyGroup>
+ <BuildInPhase1>true</BuildInPhase1>
+ <BuildInPhaseDefault>false</BuildInPhaseDefault>
+ <BuildCoreBinaries>true</BuildCoreBinaries>
+ <BuildSysBinaries>true</BuildSysBinaries>
+ </PropertyGroup>
+
+ <!--The following projects will build during PHASE 1-->
+ <ItemGroup Condition="'$(BuildExePhase)' == '1'">
+ <ProjectFile Condition="'$(FeatureDbiDebugging)' == 'true'" Include="hostlocal\mscordbi.nativeproj" />
+ <ProjectFile Condition="'$(FeatureDbiOopDebugging_HostWindowsx86)' == 'true'" Include="hostwinx86\mscordbi.nativeproj" />
+ <ProjectFile Condition="'$(FeatureDbiOopDebugging_HostWindowsamd64)' == 'true'" Include="HostWinAMD64\mscordbi.nativeproj" />
+ <ProjectFile Condition="'$(FeatureDbiOopDebugging_HostOneCorex86)' == 'true'" Include="HostOneCorex86\mscordbi.nativeproj" />
+ <ProjectFile Condition="'$(FeatureDbiOopDebugging_HostOneCoreamd64)' == 'true'" Include="HostOneCoreAMD64\mscordbi.nativeproj" />
+ </ItemGroup>
+
+ <!--Import the targets-->
+ <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
+</Project>
diff --git a/src/dlls/mscordbi/Native.rc b/src/dlls/mscordbi/Native.rc
new file mode 100644
index 0000000000..529ae06f6b
--- /dev/null
+++ b/src/dlls/mscordbi/Native.rc
@@ -0,0 +1,8 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+#define FX_VER_FILEDESCRIPTION_STR "Microsoft .NET Runtime Debugging Services\0"
+
+#include <fxver.h>
+#include <fxver.rc>
diff --git a/src/dlls/mscordbi/mscordbi.cpp b/src/dlls/mscordbi/mscordbi.cpp
new file mode 100644
index 0000000000..4ef92c7ee8
--- /dev/null
+++ b/src/dlls/mscordbi/mscordbi.cpp
@@ -0,0 +1,29 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+//*****************************************************************************
+// MSCorDBI.cpp
+//
+// COM+ Debugging Services -- Debugger Interface DLL
+//
+// Dll* routines for entry points, and support for COM framework.
+//
+//*****************************************************************************
+#include "stdafx.h"
+
+extern BOOL STDMETHODCALLTYPE DbgDllMain(HINSTANCE hInstance, DWORD dwReason,
+ LPVOID lpReserved);
+
+//*****************************************************************************
+// The main dll entry point for this module. This routine is called by the
+// OS when the dll gets loaded. Control is simply deferred to the main code.
+//*****************************************************************************
+extern "C"
+BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
+{
+ //<TODO> Shoud we call DisableThreadLibraryCalls? Or does this code
+ // need native thread attatch/detatch notifications? </TODO>
+
+ // Defer to the main debugging code.
+ return DbgDllMain(hInstance, dwReason, lpReserved);
+}
diff --git a/src/dlls/mscordbi/mscordbi.settings.targets b/src/dlls/mscordbi/mscordbi.settings.targets
new file mode 100644
index 0000000000..c9fa97cbef
--- /dev/null
+++ b/src/dlls/mscordbi/mscordbi.settings.targets
@@ -0,0 +1,144 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <Import Project="..\..\debug\XPlatCommon.props" />
+
+ <PropertyGroup>
+ <FileToMarkForSigning>$(BinariesDirectory)\$(OutputName).dll</FileToMarkForSigning>
+ <UserIncludes>$(UserIncludes);
+ ..</UserIncludes>
+ <ClAdditionalOptions>$(ClAdditionalOptions) -DUNICODE -D_UNICODE</ClAdditionalOptions>
+ <PCHHeader>stdafx.h</PCHHeader>
+ <EnableCxxPCHHeaders>true</EnableCxxPCHHeaders>
+ <!--PCH: Both precompiled header and cpp are on the same ..\ path this is likely to be wrong.-->
+ <PCHCompile>..\stdafx.cpp</PCHCompile>
+
+ <!--
+ # We explicitly must not link with mscoree because mscordbi needs to
+ # be able to run on a machine without the runtime installed.
+ # Also, for this reason explicitly use the static CRT
+ -->
+ <LinkNoLibraries>true</LinkNoLibraries>
+ <UseMsvcrt>false</UseMsvcrt>
+ <DoNotAddCrtLibPath>true</DoNotAddCrtLibPath>
+ <LinkUseDefaultLib>false</LinkUseDefaultLib>
+ <NoLinkGdi32>true</NoLinkGdi32>
+ <!-- <LinkUseCMT>true</LinkUseCMT> -->
+ <TargetType>DYNLINK</TargetType>
+ <LinkSubsystem>windows</LinkSubsystem>
+ <PogoOptimized>true</PogoOptimized>
+
+ <DllEntryPoint>_DllMainCRTStartup</DllEntryPoint>
+ <DllDef>$(IntermediateOutputDirectory)\mscordbi.def</DllDef>
+
+ </PropertyGroup>
+
+
+ <ItemGroup Condition="'$(HostMachineOS)' == 'OneCore' or '$(HostMachineOS)' == 'OneCoreWin7Compat'">
+ <TargetLib Include="$(CoreSystemCrt)" />
+ <TargetLib Include="$(SdkLibPath)\uuid.lib" />
+ </ItemGroup>
+ <ItemGroup Condition="'$(HostMachineOS)' == 'OneCoreWin7Compat'">
+ <TargetLib Include="$(SdkLibPath)\bcrypt.lib" />
+ <TargetLib Include="$(SdkLibPath)\crypt32.lib" />
+ <TargetLib Include="$(SdkLibPath)\oleaut32.lib" />
+ <TargetLib Include="$(SdkLibPath)\mincore_fw.lib" />
+ </ItemGroup>
+ <ItemGroup Condition="'$(HostMachineOS)' == 'OneCore'">
+ <TargetLib Include="$(SdkLibPath)\mincore.lib" />
+ <TargetLib Include="$(SdkLibPath)\mincore_legacy.lib" />
+ <TargetLib Include="$(SdkLibPath)\mincore_private.lib" />
+ <TargetLib Include="$(SdkLibPath)\mincore_obsolete.lib" />
+ </ItemGroup>
+
+ <ItemGroup>
+
+ <TargetLib Condition="'$(HostMachineOS)'=='windows'" Include="$(SdkLibPath)\uuid.lib" />
+ <LinkPreCrtLibs Condition="'$(HostMachineOS)'=='windows'" Include="$(SdkLibPath)\ntdll.lib" />
+ <LinkPreCrtLibs Condition="'$(HostMachineOS)'=='windows'" Include="$(SdkLibPath)\kernel32.lib" />
+ <LinkPreCrtLibs Condition="'$(HostMachineOS)'=='windows'" Include="$(SdkLibPath)\user32.lib" />
+ <LinkPreCrtLibs Condition="'$(HostMachineOS)'=='windows'" Include="$(SdkLibPath)\advapi32.lib" />
+ <LinkPreCrtLibs Condition="'$(HostMachineOS)'=='windows'" Include="$(SdkLibPath)\wtsapi32.lib" />
+ <TargetLib Condition="'$(HostMachineOS)'=='windows'" Include="$(SdkLibPath)\ole32.lib" />
+ <TargetLib Condition="'$(HostMachineOS)'=='windows'" Include="$(SdkLibPath)\oleaut32.lib" />
+ <TargetLib Condition="'$(HostMachineOS)'=='windows'" Include="$(SdkLibPath)\version.lib" />
+ <TargetLib Condition="'$(HostMachineOS)'=='windows'" Include="$(SdkLibPath)\mscoree.lib" />
+ <TargetLib Condition="'$(HostMachineOS)'=='windows'" Include="$(SdkLibPath)\shlwapi.lib" />
+ <TargetLib Condition="'$(HostMachineOS)'=='windows'" Include="$(CrtLibPath)\libcmt$(BuildSuffix).lib" />
+
+
+
+ <LinkPreCrtLibs Include="$(Dbilib)">
+ <ProjectReference>$(DbiProject)</ProjectReference>
+ </LinkPreCrtLibs>
+ <LinkPreCrtLibs Include="$(ClrLibPath)\utilcodestaticnohost$(XPlatHostLibSuffix).lib" >
+ <!-- Another project with a bunch of pre-existing references so it doesn't follow the normal path convention -->
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostLocal'">$(ClrSrcDirectory)utilcode\staticnohost\staticnohost.nativeproj</ProjectReference>
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostWinx86'">$(ClrSrcDirectory)utilcode\staticnohostx86\staticnohost.nativeproj</ProjectReference>
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostWinAMD64'">$(ClrSrcDirectory)utilcode\staticnohostamd64\staticnohost.nativeproj</ProjectReference>
+ </LinkPreCrtLibs>
+ <TargetLib Include="$(ClrLibPath)\ipcmanager-staticcrt$(XPlatHostLibSuffix).lib" >
+ <ProjectReference>$(ClrSrcDirectory)ipcman\ipcman-staticcrt\$(XPlatHostLibBuildDir)\ipcman-staticcrt.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\ildbsymlib$(XPlatHostLibSuffix).lib" >
+ <ProjectReference>$(ClrSrcDirectory)debug\ildbsymlib\$(XPlatHostLibBuildDir)\ildbsymlib.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\MDCompiler-dbi$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)md\compiler\dbi\$(XPlatHostLibBuildDir)\mdcompiler-dbi.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\MDWinMD_dbi$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)md\winmd\dbi\$(XPlatHostLibBuildDir)\MDWinMD-dbi.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\MDRuntime-dbi$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)md\runtime\dbi\$(XPlatHostLibBuildDir)\mdruntime-dbi.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\MDRuntimeRW-dbi$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)md\enc\dbi\$(XPlatHostLibBuildDir)\mdruntimerw-dbi.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\MDHotData-StaticCrt$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)md\hotdata\full-staticcrt\$(XPlatHostLibBuildDir)\mdhotdata-staticcrt.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\MDDataSource_dbi$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)md\DataSource\dbi\$(XPlatHostLibBuildDir)\DataSource-dbi.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\CorGUIDS$(XPlatHostLibSuffix).lib">
+ <!-- This project isn't factored like the others above... there are many projects pointing to the current path of corguids -->
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostLocal'">$(ClrSrcDirectory)inc\corguids.nativeproj</ProjectReference>
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostWinx86'">$(ClrSrcDirectory)incx86\corguids.nativeproj</ProjectReference>
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostWinAMD64'">$(ClrSrcDirectory)incamd64\corguids.nativeproj</ProjectReference>
+ </TargetLib>
+
+ </ItemGroup>
+
+ <ItemGroup>
+
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostLocal'" Include="$(ClrSrcDirectory)inc\corguids.nativeproj" />
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostWinx86'" Include="$(ClrSrcDirectory)incx86\corguids.nativeproj" />
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostWinAMD64'" Include="$(ClrSrcDirectory)incamd64\corguids.nativeproj" />
+
+ </ItemGroup>
+
+ <ItemGroup>
+ <CppPreprocess Include="..\mscordbi.src">
+ <Defines>@(CommonPreprocessDefines);$(CDefines);$(TargetDefines)</Defines>
+ <FinalOutput>$(IntermediateOutputDirectory)\mscordbi.def</FinalOutput>
+ <AdditionalOptions>/TC</AdditionalOptions>
+ </CppPreprocess>
+ </ItemGroup>
+ <ItemGroup>
+ <ImportLib Include="$(ClrLibPath)\ipcmanager-staticcrt$(XPlatHostLibSuffix).lib" />
+ <ImportLib Include="$(ClrLibPath)\ildbsymlib$(XPlatHostLibSuffix).lib" />
+ <ImportLib Include="$(Dbilib)"/>
+ <ImportLib Include="$(ClrLibPath)\MDCompiler-dbi$(XPlatHostLibSuffix).lib" />
+ <ImportLib Include="$(ClrLibPath)\MDRuntime-dbi$(XPlatHostLibSuffix).lib" />
+ <ImportLib Include="$(ClrLibPath)\MDRuntimeRW-dbi$(XPlatHostLibSuffix).lib" />
+ <ImportLib Include="$(ClrLibPath)\MDHotData-StaticCrt$(XPlatHostLibSuffix).lib" />
+ </ItemGroup>
+ <ItemGroup>
+ <RCResourceFile Include="..\Native.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <CppCompile Include="..\mscordbi.cpp" />
+ </ItemGroup>
+
+ <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.targets" />
+</Project>
diff --git a/src/dlls/mscordbi/mscordbi.src b/src/dlls/mscordbi/mscordbi.src
new file mode 100644
index 0000000000..0baa49537e
--- /dev/null
+++ b/src/dlls/mscordbi/mscordbi.src
@@ -0,0 +1,29 @@
+; Licensed to the .NET Foundation under one or more agreements.
+; The .NET Foundation licenses this file to you under the MIT license.
+; See the LICENSE file in the project root for more information.
+
+LIBRARY mscordbi
+
+EXPORTS
+ // COM-instantiation - for CorPublish
+ DllGetClassObjectInternal private
+
+ // In-proc (Whidbey-style) creation path from the shim - CDIFV and it's replacement
+ CreateCordbObject private
+
+ // Out-of-proc creation path from the shim - ICLRDebugging
+ OpenVirtualProcessImpl
+
+ // DEPRECATED - use OpenVirtualProcessImpl
+ OpenVirtualProcess private
+ OpenVirtualProcess2
+
+#ifdef FEATURE_CORECLR
+ CoreCLRCreateCordbObject private
+#endif // FEATURE_CORECLR
+
+#if defined(FEATURE_DBGIPC_TRANSPORT_DI)
+ DllGetClassObject private
+#endif // FEATURE_DBGIPC_TRANSPORT_DI
+
+
diff --git a/src/dlls/mscordbi/mscordbi.vrg b/src/dlls/mscordbi/mscordbi.vrg
new file mode 100644
index 0000000000..2c7289633b
--- /dev/null
+++ b/src/dlls/mscordbi/mscordbi.vrg
@@ -0,0 +1,78 @@
+VSREG 7
+
+[HKEY_CLASSES_ROOT\ComPlusDebug.CorDebug.1]
+@="Microsoft Common Language Runtime Debugger"
+
+[HKEY_CLASSES_ROOT\ComPlusDebug.CorDebug.1\CLSID]
+@="{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}"
+
+
+[HKEY_CLASSES_ROOT\ComPlusDebug.CorDebug]
+@="Microsoft Common Language Runtime Debugger"
+
+[HKEY_CLASSES_ROOT\ComPlusDebug.CorDebug\CurVer]
+@="ComPlusDebug.CorDebug.1"
+
+[HKEY_CLASSES_ROOT\ComPlusDebug.CorDebug\CLSID]
+@="{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}"
+
+
+[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}]
+@="Microsoft Common Language Runtime Debugger"
+
+[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\ProgID]
+@="ComPlusDebug.CorDebug.1"
+
+[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\VersionIndependentProgID]
+@="ComPlusDebug.CorDebug"
+
+[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\NotInsertable]
+
+
+[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\InprocServer32]
+@="[SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8]mscoree.dll"
+
+[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\Server]
+@="mscordbi.dll"
+
+
+[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\InprocServer32]
+"ThreadingModel"="Both"
+
+[HKEY_CLASSES_ROOT\ComPlusDebug.CorpubPublish.1]
+@="Microsoft Common Language Runtime Debugger Publisher"
+
+[HKEY_CLASSES_ROOT\ComPlusDebug.CorpubPublish.1\CLSID]
+@="{047A9A40-657E-11D3-8D5B-00104B35E7EF}"
+
+
+[HKEY_CLASSES_ROOT\ComPlusDebug.CorpubPublish]
+@="Microsoft Common Language Runtime Debugger Publisher"
+
+[HKEY_CLASSES_ROOT\ComPlusDebug.CorpubPublish\CurVer]
+@="ComPlusDebug.CorpubPublish.1"
+
+[HKEY_CLASSES_ROOT\ComPlusDebug.CorpubPublish\CLSID]
+@="{047A9A40-657E-11D3-8D5B-00104B35E7EF}"
+
+
+[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}]
+@="Microsoft Common Language Runtime Debugger Publisher"
+
+[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\ProgID]
+@="ComPlusDebug.CorpubPublish.1"
+
+[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\VersionIndependentProgID]
+@="ComPlusDebug.CorpubPublish"
+
+[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\NotInsertable]
+
+
+[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\InprocServer32]
+@="[SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8]mscoree.dll"
+
+[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\Server]
+@="mscordbi.dll"
+
+[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\InprocServer32]
+"ThreadingModel"="Both"
diff --git a/src/dlls/mscordbi/mscordbi_unixexports.src b/src/dlls/mscordbi/mscordbi_unixexports.src
new file mode 100644
index 0000000000..b4704aef63
--- /dev/null
+++ b/src/dlls/mscordbi/mscordbi_unixexports.src
@@ -0,0 +1,18 @@
+; Licensed to the .NET Foundation under one or more agreements.
+; The .NET Foundation licenses this file to you under the MIT license.
+; See the LICENSE file in the project root for more information.
+
+; COM-instantiation
+DllGetClassObjectInternal
+DllGetClassObject
+
+; CoreClr API
+CoreCLRCreateCordbObject
+
+; Out-of-proc creation path from the shim - ICLRDebugging
+OpenVirtualProcessImpl
+
+; PAL module registration
+DllMain
+PAL_RegisterModule
+PAL_UnregisterModule \ No newline at end of file
diff --git a/src/dlls/mscordbi/mscordbiv.vrg b/src/dlls/mscordbi/mscordbiv.vrg
new file mode 100644
index 0000000000..5cb038647a
--- /dev/null
+++ b/src/dlls/mscordbi/mscordbiv.vrg
@@ -0,0 +1,4 @@
+VSREG 7
+
+[HKEY_CLASSES_ROOT\CLSID\{047a9a40-657e-11d3-8d5b-00104b35e7ef}\InprocServer32\[RTM_ProductVersion]]
+"ImplementedInThisVersion"=""
diff --git a/src/dlls/mscordbi/stdafx.cpp b/src/dlls/mscordbi/stdafx.cpp
new file mode 100644
index 0000000000..a23e304c22
--- /dev/null
+++ b/src/dlls/mscordbi/stdafx.cpp
@@ -0,0 +1,10 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+//*****************************************************************************
+// stdafx.cpp
+//
+// Precompiled headers.
+//
+//*****************************************************************************
+#include "stdafx.h"
diff --git a/src/dlls/mscordbi/stdafx.h b/src/dlls/mscordbi/stdafx.h
new file mode 100644
index 0000000000..feb0145d55
--- /dev/null
+++ b/src/dlls/mscordbi/stdafx.h
@@ -0,0 +1,15 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+//*****************************************************************************
+// stdafx.h
+//
+// Precompiled headers.
+//
+//*****************************************************************************
+#ifndef __STDAFX_H__
+#define __STDAFX_H__
+
+#include "winwrap.h" // Windows wrappers.
+
+#endif // __STDAFX_H__