summaryrefslogtreecommitdiff
path: root/src/dlls/mscordac
diff options
context:
space:
mode:
Diffstat (limited to 'src/dlls/mscordac')
-rw-r--r--src/dlls/mscordac/.gitmirror1
-rw-r--r--src/dlls/mscordac/CMakeLists.txt123
-rw-r--r--src/dlls/mscordac/GetFileVersion.dllbin0 -> 5120 bytes
-rw-r--r--src/dlls/mscordac/GetFileVersion.pdbbin0 -> 11776 bytes
-rw-r--r--src/dlls/mscordac/Native.rc8
-rw-r--r--src/dlls/mscordac/dirs.proj21
-rw-r--r--src/dlls/mscordac/mscordac.cpp21
-rw-r--r--src/dlls/mscordac/mscordac.src16
-rw-r--r--src/dlls/mscordac/mscordac.targets142
-rw-r--r--src/dlls/mscordac/mscordac.vrg10
-rw-r--r--src/dlls/mscordac/mscordac_unixexports.src174
-rw-r--r--src/dlls/mscordac/update.pl34
12 files changed, 550 insertions, 0 deletions
diff --git a/src/dlls/mscordac/.gitmirror b/src/dlls/mscordac/.gitmirror
new file mode 100644
index 0000000000..f507630f94
--- /dev/null
+++ b/src/dlls/mscordac/.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/mscordac/CMakeLists.txt b/src/dlls/mscordac/CMakeLists.txt
new file mode 100644
index 0000000000..02bba4a058
--- /dev/null
+++ b/src/dlls/mscordac/CMakeLists.txt
@@ -0,0 +1,123 @@
+include(${CLR_DIR}/dac.cmake)
+
+add_definitions(-DFEATURE_NO_HOST)
+
+if(CLR_CMAKE_PLATFORM_UNIX)
+ add_compile_options(-fPIC)
+endif(CLR_CMAKE_PLATFORM_UNIX)
+
+set(CLR_DAC_SOURCES
+ mscordac.cpp
+)
+
+add_definitions(-DFX_VER_INTERNALNAME_STR=mscordaccore.dll)
+
+if(WIN32)
+ list(APPEND CLR_DAC_SOURCES
+ Native.rc
+ )
+ set(DEF_SOURCES
+ mscordac.src
+ )
+
+ #Preprocess exports definition file
+ preprocess_def_file(${CMAKE_CURRENT_SOURCE_DIR}/${DEF_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/mscordac.def)
+
+ #create target to add file dependency on mscordac.def
+ add_custom_target(mscordaccore_def DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/mscordac.def)
+
+ # No library groups for Win32
+ set(START_LIBRARY_GROUP)
+ set(END_LIBRARY_GROUP)
+else(WIN32)
+ set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/mscordac_unixexports.src)
+ set(EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/mscordac.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 delete operator 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")
+
+ # The following linked options can be inserted into the linker libraries list to
+ # ensure proper resolving of circular references between a subset of the libraries.
+ set(START_LIBRARY_GROUP -Wl,--start-group)
+ set(END_LIBRARY_GROUP -Wl,--end-group)
+
+ # 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(mscordaccore SHARED ${CLR_DAC_SOURCES})
+
+if(CLR_CMAKE_PLATFORM_UNIX)
+ add_custom_target(mscordaccore_exports DEPENDS ${EXPORTS_FILE})
+ add_dependencies(mscordaccore mscordaccore_exports)
+
+ set_property(TARGET mscordaccore APPEND_STRING PROPERTY LINK_FLAGS ${EXPORTS_LINKER_OPTION})
+ set_property(TARGET mscordaccore APPEND_STRING PROPERTY LINK_DEPENDS ${EXPORTS_FILE})
+endif(CLR_CMAKE_PLATFORM_UNIX)
+
+# IMPORTANT! Please do not rearrange the order of the libraries. The linker on Linux is
+# order dependent and changing the order can result in undefined symbols in the shared
+# library.
+set(COREDAC_LIBRARIES
+ ${START_LIBRARY_GROUP} # Start group of libraries that have circular references
+ cee_dac
+ cordbee_dac
+ corguids
+ daccess
+ dbgutil
+ mdcompiler_dac
+ mdhotdata_dac
+ mdruntime_dac
+ mdruntimerw_dac
+ strongname_dac
+ utilcode_dac
+ unwinder_dac
+ gc_dac
+ ${END_LIBRARY_GROUP} # End group of libraries that have circular references
+)
+
+if(WIN32)
+ # mscordac.def should be generated before mscordaccore.dll is built
+ add_dependencies(mscordaccore mscordaccore_def)
+
+ # Generate export file
+ add_custom_command(TARGET mscordaccore
+ PRE_LINK
+ COMMAND lib.exe /OUT:"${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/mscordaccore.lib" /DEF:"${CMAKE_CURRENT_BINARY_DIR}/mscordac.def" "$<TARGET_FILE:daccess>" $<$<OR:$<CONFIG:Release>,$<CONFIG:Relwithdebinfo>>:/LTCG> ${STATIC_LIBRARY_FLAGS} "${CMAKE_CURRENT_BINARY_DIR}/mscordaccore.dir/$<CONFIG>/mscordac.obj"
+ COMMENT "Generating mscordaccore.exp export file"
+ )
+
+ set(COREDAC_LIBRARIES
+ ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/mscordaccore.exp # export file
+ ${COREDAC_LIBRARIES}
+ mdwinmd_dac
+ kernel32.lib
+ advapi32.lib
+ ole32.lib
+ oleaut32.lib
+ uuid.lib
+ user32.lib
+ ${STATIC_MT_CRT_LIB}
+ ${STATIC_MT_VCRT_LIB}
+ )
+else(WIN32)
+ list(APPEND COREDAC_LIBRARIES
+ mscorrc_debug
+ coreclrpal
+ palrt
+ )
+endif(WIN32)
+
+target_link_libraries(mscordaccore PRIVATE ${COREDAC_LIBRARIES})
+
+# add the install targets
+install_clr(mscordaccore) \ No newline at end of file
diff --git a/src/dlls/mscordac/GetFileVersion.dll b/src/dlls/mscordac/GetFileVersion.dll
new file mode 100644
index 0000000000..4479d7cad7
--- /dev/null
+++ b/src/dlls/mscordac/GetFileVersion.dll
Binary files differ
diff --git a/src/dlls/mscordac/GetFileVersion.pdb b/src/dlls/mscordac/GetFileVersion.pdb
new file mode 100644
index 0000000000..73d3587eaa
--- /dev/null
+++ b/src/dlls/mscordac/GetFileVersion.pdb
Binary files differ
diff --git a/src/dlls/mscordac/Native.rc b/src/dlls/mscordac/Native.rc
new file mode 100644
index 0000000000..b98bc187e6
--- /dev/null
+++ b/src/dlls/mscordac/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 External Data Access Support\0"
+
+#include <fxver.h>
+#include <fxver.rc>
diff --git a/src/dlls/mscordac/dirs.proj b/src/dlls/mscordac/dirs.proj
new file mode 100644
index 0000000000..46a2052403
--- /dev/null
+++ b/src/dlls/mscordac/dirs.proj
@@ -0,0 +1,21 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <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 Include="HostLocal\mscordac.nativeproj" />
+ <ProjectFile Condition="'$(FeatureXPlatDacDebugging_HostWindowsx86)'=='true'" Include="HostWinx86\mscordac.nativeproj" />
+ <ProjectFile Condition="'$(FeatureXPlatDacDebugging_HostWindowsAMD64)' == 'true'" Include="HostWinAMD64\mscordac.nativeproj" />
+ <ProjectFile Condition="'$(FeatureXPlatDacDebugging_HostOneCorex86)'=='true'" Include="HostOneCorex86\mscordac.nativeproj" />
+ <ProjectFile Condition="'$(FeatureXPlatDacDebugging_HostOneCoreAMD64)' == 'true'" Include="HostOneCoreAMD64\mscordac.nativeproj" />
+ </ItemGroup>
+
+ <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
+</Project>
diff --git a/src/dlls/mscordac/mscordac.cpp b/src/dlls/mscordac/mscordac.cpp
new file mode 100644
index 0000000000..94fdac5809
--- /dev/null
+++ b/src/dlls/mscordac/mscordac.cpp
@@ -0,0 +1,21 @@
+// 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.
+
+#ifdef FEATURE_PAL
+
+#include <clrdata.h>
+
+//
+// This dummy reference to CLRDataCreateInstance prevents the LLVM toolchain from optimizing this important export out.
+//
+#ifdef __llvm__
+__attribute__((used))
+#endif // __llvm__
+void
+DummyReferenceToExportedAPI()
+{
+ CLRDataCreateInstance(IID_ICLRDataTarget, NULL, NULL);
+}
+
+#endif // FEATURE_PAL
diff --git a/src/dlls/mscordac/mscordac.src b/src/dlls/mscordac/mscordac.src
new file mode 100644
index 0000000000..a107d4b504
--- /dev/null
+++ b/src/dlls/mscordac/mscordac.src
@@ -0,0 +1,16 @@
+; 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.
+
+EXPORTS
+ OutOfProcessFunctionTableCallback
+ OutOfProcessFunctionTableCallbackEx
+ DacDbiInterfaceInstance
+
+#ifndef FEATURE_PAL
+ OutOfProcessExceptionEventCallback
+ OutOfProcessExceptionEventSignatureCallback
+#endif // FEATURE_PAL
+ OutOfProcessExceptionEventDebuggerLaunchCallback
+
+ CLRDataCreateInstance
diff --git a/src/dlls/mscordac/mscordac.targets b/src/dlls/mscordac/mscordac.targets
new file mode 100644
index 0000000000..3e0474f9a8
--- /dev/null
+++ b/src/dlls/mscordac/mscordac.targets
@@ -0,0 +1,142 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="dogfood">
+
+ <UsingTask TaskName="GetFileVersionTask" AssemblyFile="GetFileVersion.dll"/>
+ <Import Project="..\..\debug\XPlatCommon.props" />
+
+ <PropertyGroup>
+ <CDefines>$(CDefines);UNICODE;_UNICODE;$(USER_SPECIFIC_C_DEFINES);FEATURE_NO_HOST</CDefines>
+ <OutputName Condition="'$(BuildForCoreSystem)'!='true'">mscordacwks$(XPlatHostSuffix)</OutputName>
+ <OutputName Condition="'$(BuildForCoreSystem)'=='true'">mscordaccore</OutputName>
+ <TargetType>DYNLINK</TargetType>
+ <LinkSubsystem>windows</LinkSubsystem>
+ <DllDef>$(IntermediateOutputDirectory)\mscordac.def</DllDef>
+ <DllEntryPoint>_DllMainCRTStartup</DllEntryPoint>
+ <GenerateBrowserFile>false</GenerateBrowserFile>
+ <CDefines Condition="'$(_BuildType)' == 'dbg'">$(CDefines);SPECIAL_BUILD</CDefines>
+ <UseMsvcrt>false</UseMsvcrt>
+ <ExtDelayImpLib>true</ExtDelayImpLib>
+ <DoNotAddCrtLibPath>true</DoNotAddCrtLibPath>
+ <LinkUseDefaultLib>false</LinkUseDefaultLib>
+ <LinkLibIgnore>$(LinkLibIgnore);4198</LinkLibIgnore>
+ <UseStl>true</UseStl>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(BuildForCoreSystem)' != 'true'">
+ <LinkDelayLoad Condition="'$(LinkDelayLoad)'!=''">$(LinkDelayLoad);</LinkDelayLoad>
+ <LinkDelayLoad>$(LinkDelayLoad)user32.dll;advapi32.dll;ole32.dll;oleaut32.dll</LinkDelayLoad>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <RCResourceFile Include="..\native.rc">
+ <IncludeInLib>true</IncludeInLib>
+ </RCResourceFile >
+ </ItemGroup>
+ <ItemGroup>
+ <CppCompile Include="..\mscordac.cpp" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <CppPreprocess Include="..\mscordac.src">
+ <Defines>@(CommonPreprocessDefines);$(CDefines);$(TargetDefines)</Defines>
+ <FinalOutput>$(IntermediateOutputDirectory)\mscordac.def</FinalOutput>
+ <AdditionalOptions>/TC</AdditionalOptions>
+ </CppPreprocess>
+ </ItemGroup>
+ <ItemGroup>
+ <ImportLib Include="$(ClrLibPath)\dac_wks$(XPlatHostLibSuffix).lib"/>
+ <LinkPreCrtLibs Include="$(ClrLibPath)\dac_wks$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)debug\daccess\$(XPlatHostLibBuildDir)\daccess.nativeproj</ProjectReference>
+ </LinkPreCrtLibs>
+ <LinkPreCrtLibs Include="$(ClrLibPath)\utilcode_dac$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)utilcode\dac\$(XPlatHostLibBuildDir)\dac.nativeproj</ProjectReference>
+ </LinkPreCrtLibs>
+ <TargetLib Include="$(ClrLibPath)\cee_wks_dac$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)vm\dac\$(XPlatHostLibBuildDir)\dacwks.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\cordbee_wks_dac$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)debug\ee\dac\$(XPlatHostLibBuildDir)\dacwks.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\MDCompiler_dac$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)md\compiler\dac\$(XPlatHostLibBuildDir)\mdcompiler_dac.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\MDRuntime_dac$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)md\runtime\dac\$(XPlatHostLibBuildDir)\mdruntime_dac.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\MDRuntimeRW_dac$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)md\enc\dac\$(XPlatHostLibBuildDir)\mdruntimerw_dac.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\MDWinMD_dac$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)md\winmd\dac\$(XPlatHostLibBuildDir)\mdwinmd_dac.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\MDHotData_dac$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)md\hotdata\dac\$(XPlatHostLibBuildDir)\mdhotdata_dac.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\ipcmanager_dac$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)ipcman\ipcman_dac\$(XPlatHostLibBuildDir)\ipcman_dac.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\strongname_dac$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)StrongName\api\dac\$(XPlatHostLibBuildDir)\strongname_dac.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Condition="'$(TargetArch)' != 'i386'" Include="$(ClrLibPath)\unwinder_dac$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)unwinder\dac\$(XPlatHostLibBuildDir)\unwinder_dac.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(ClrLibPath)\dbgutil$(XPlatHostLibSuffix).lib">
+ <ProjectReference>$(ClrSrcDirectory)debug\dbgutil\$(XPlatHostLibBuildDir)\dbgutil.nativeproj</ProjectReference>
+ </TargetLib>
+ </ItemGroup>
+ <ItemGroup Condition="'$(HostMachineOS)' != 'mac'">
+ <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 Condition="'$(HostMachineOS)' == 'windows'">
+ <TargetLib Include="$(ClrLibPath)\delayimp$(XPlatHostLibSuffix).lib">
+ <!-- This project isn't factored like the others above... there are many projects pointing to the current path of delayimp -->
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostLocal'">$(ClrSrcDirectory)delayimp\delayimp.nativeproj</ProjectReference>
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostWinx86'">$(ClrSrcDirectory)delayimpx86\delayimp.nativeproj</ProjectReference>
+ <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostWinAMD64'">$(ClrSrcDirectory)delayimpamd64\delayimp.nativeproj</ProjectReference>
+ </TargetLib>
+ <TargetLib Include="$(CrtLibPath)\libcmt$(BuildSuffix).lib" />
+ <TargetLib Include="$(SdkLibPath)\kernel32.lib" />
+ <TargetLib Include="$(SdkLibPath)\advapi32.lib" />
+ <TargetLib Include="$(SdkLibPath)\user32.lib" />
+ <TargetLib Include="$(SdkLibPath)\ole32.lib" />
+ <TargetLib Include="$(SdkLibPath)\oleaut32.lib" />
+ <TargetLib Include="$(SdkLibPath)\uuid.lib" />
+ <TargetLib Include="$(SdkLibPath)\wtsapi32.lib" />
+ <TargetLib Include="$(CrtLibPath)\delayimp.lib" />
+ <TargetLib Include="$(SdkLibPath)\ntdll.lib" />
+ </ItemGroup>
+ <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>
+
+ <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.targets" />
+
+
+ <Target Name="CreateLongNameDacForWindbg"
+ Condition="'$(HostMachineOS)'=='windows'"
+ AfterTargets="Link">
+ <GetFileVersionTask FilePath="$(ProductOutputFile)">
+ <Output TaskParameter="FileVersion" PropertyName="DacFileVersion"/>
+ </GetFileVersionTask>
+ <Exec Command="$(PerlCommand) -I$(DevDivToolsPath) $(ClrSrcDirectory)\dlls\mscordac\Update.pl $(ProductOutputFile) $(MainDacMouleName) $(XPlatHostMachineOSSuffix)$(HostMachineArch) $(TargetMachineArch) $(DacFileVersion) $(BinariesDirectory)"
+ StandardOutputImportance="Normal" />
+ </Target>
+</Project>
diff --git a/src/dlls/mscordac/mscordac.vrg b/src/dlls/mscordac/mscordac.vrg
new file mode 100644
index 0000000000..b8cb17547e
--- /dev/null
+++ b/src/dlls/mscordac/mscordac.vrg
@@ -0,0 +1,10 @@
+VSREG 7
+
+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\KnownFunctionTableDlls]
+"[#FilePath]"=dword:0
+
+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\KnownManagedDebuggingDlls]
+"[#FilePath]"=dword:0
+
+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting\RuntimeExceptionHelperModules]
+"[#FilePath]"=dword:0
diff --git a/src/dlls/mscordac/mscordac_unixexports.src b/src/dlls/mscordac/mscordac_unixexports.src
new file mode 100644
index 0000000000..466a1bf1f5
--- /dev/null
+++ b/src/dlls/mscordac/mscordac_unixexports.src
@@ -0,0 +1,174 @@
+; 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.
+
+DacDbiInterfaceInstance
+CLRDataCreateInstance
+
+; PAL module registration
+DllMain
+PAL_RegisterModule
+PAL_UnregisterModule
+
+PAL_BindResources
+PAL_bsearch
+PAL_errno
+PAL_fflush
+PAL__flushall
+PAL_free
+PAL_fwprintf
+PAL_swprintf
+PAL_GetPALDirectoryW
+PAL_GetResourceString
+PAL_get_stdout
+PAL_get_stderr
+PAL_GetSymbolModuleBase
+PAL_GetTransportPipeName
+PAL_InitializeDLL
+PAL_IsDebuggerPresent
+PAL_iswspace
+PAL_memcpy
+PAL_malloc
+PAL_realloc
+PAL_printf
+PAL_qsort
+PAL_Reenter
+PAL_fprintf
+PAL__vsnprintf
+PAL__wcstoui64
+PAL_wcstoul
+PAL_iswprint
+PAL_wcslen
+PAL_wcsncmp
+PAL_wcsrchr
+PAL_wcscmp
+PAL_wcschr
+PAL_wcscspn
+PAL_wcscat
+PAL_wcsstr
+
+_wcsicmp
+_stricmp
+_snprintf
+_snwprintf
+_vsnwprintf
+_itow
+_i64tow
+memcpy_s
+
+CoCreateGuid
+CopyFileW
+CreateDirectoryW
+CreateFileMappingA
+CreateFileMappingW
+CreateFileA
+CreateFileW
+CreateMutexW
+CreateEventW
+CreateProcessW
+CreateSemaphoreExW
+CreateStreamOnHGlobal
+CreateThread
+CloseHandle
+DebugBreak
+DeleteCriticalSection
+DeleteFileW
+DuplicateHandle
+EnterCriticalSection
+FindClose
+FindFirstFileW
+FindNextFileW
+FlushFileBuffers
+FlushInstructionCache
+FormatMessageW
+FreeLibrary
+FileTimeToSystemTime
+GetACP
+GetCPInfo
+GetCurrentDirectoryW
+GetCurrentProcess
+GetCurrentProcessId
+GetCurrentThreadId
+GetEnvironmentVariableA
+GetEnvironmentVariableW
+GetFileAttributesExW
+GetFileAttributesW
+GetFileSize
+GetFullPathNameW
+GetLastError
+GetLongPathNameW
+GetModuleFileNameW
+GetProcAddress
+GetProcessHeap
+GetShortPathNameW
+GetStdHandle
+GetSystemInfo
+GetSystemTime
+GetSystemTimeAsFileTime
+GetTempFileNameW
+GetTempPathW
+HeapAlloc
+HeapFree
+HeapSetInformation
+IIDFromString
+IID_IClassFactory
+IID_ISequentialStream
+IID_IStream
+IID_IUnknown
+InitializeCriticalSection
+IsDBCSLeadByte
+LeaveCriticalSection
+LoadLibraryA
+LoadLibraryW
+LoadLibraryExW
+LocalAlloc
+LocalReAlloc
+LocalFree
+MapViewOfFile
+MoveFileExW
+MultiByteToWideChar
+OpenProcess
+OutputDebugStringW
+OpenEventW
+OutputDebugStringA
+QueryPerformanceCounter
+QueryPerformanceFrequency
+RaiseException
+ReadFile
+ReleaseMutex
+ReleaseSemaphore
+RemoveDirectoryW
+ResetEvent
+ResumeThread
+SearchPathW
+SetEvent
+SetFileAttributesW
+SetFilePointer
+SetLastError
+SetErrorMode
+Sleep
+SleepEx
+SwitchToThread
+TerminateProcess
+TlsAlloc
+TlsFree
+TlsGetValue
+TlsSetValue
+VirtualAlloc
+VirtualFree
+VirtualProtect
+VirtualQuery
+UnmapViewOfFile
+WaitForMultipleObjectsEx
+WaitForSingleObject
+WaitForSingleObjectEx
+WideCharToMultiByte
+WriteFile
+YieldProcessor
+
+nativeStringResourceTable_mscorrc_debug
+_ZN25NativeExceptionHolderBase4PushEv
+_ZN25NativeExceptionHolderBaseC2Ev
+_ZN25NativeExceptionHolderBaseD2Ev
+_ZN28CatchHardwareExceptionHolderC1Ev
+_ZN28CatchHardwareExceptionHolderD1Ev \ No newline at end of file
diff --git a/src/dlls/mscordac/update.pl b/src/dlls/mscordac/update.pl
new file mode 100644
index 0000000000..353e1a177d
--- /dev/null
+++ b/src/dlls/mscordac/update.pl
@@ -0,0 +1,34 @@
+#!perl -w
+
+#
+# Renames the DAC to a long name form that windbg looks for
+#
+
+my $sSrcFile = shift or &Usage();
+my $sDestName = shift or &Usage();
+my $sHostMach = shift or &Usage();
+my $sTargMach = shift or &Usage();
+my $sVersion = shift or &Usage();
+my $sDestDir = shift or &Usage();
+
+my $sName = "$sDestDir\\${sDestName}_${sHostMach}_${sTargMach}_" .
+ "$sVersion";
+
+if ($ENV{'_BuildType'} eq "dbg" ||
+ $ENV{'_BuildType'} eq "chk") {
+ $sName .= "." . $ENV{'_BuildType'};
+}
+
+$sName .= ".dll";
+
+if (system("copy $sSrcFile $sName") / 256) {
+ die("$0: Unable to copy $sSrcFile to $sName\n");
+}
+
+exit 0;
+
+sub Usage
+{
+ die("usage: $0 <srcfile> <destname> <hostmach> <targmach> " .
+ "<version> <destdir> <applycommand>\n");
+}