diff options
author | Mike McLaughlin <mikem@microsoft.com> | 2016-06-03 14:15:43 -0700 |
---|---|---|
committer | Mike McLaughlin <mikem@microsoft.com> | 2016-06-03 14:15:43 -0700 |
commit | 0a4675b32fee372e458852ba3ec703d3abd89831 (patch) | |
tree | f9a6b8b4fe08fdb486c81adbe06e9af4c5019b95 /src/dlls | |
parent | 924b56813d3b1c7cde0c7ea9ea9d8d86370581e3 (diff) | |
download | coreclr-0a4675b32fee372e458852ba3ec703d3abd89831.tar.gz coreclr-0a4675b32fee372e458852ba3ec703d3abd89831.tar.bz2 coreclr-0a4675b32fee372e458852ba3ec703d3abd89831.zip |
Limit exports on debugger modules. (#5442)
Remove obsolete ExecuteAssembly hosting API from coreclr.
Needed to add palrt to dbi instead of trying to export from palrt.
Didn't end up adding the --no-allow-shlib-undefined linker option because Centos
and FreeBSD link with lots of undefined symbols from the C++ runtime libraries.
Diffstat (limited to 'src/dlls')
-rw-r--r-- | src/dlls/dbgshim/CMakeLists.txt | 32 | ||||
-rw-r--r-- | src/dlls/dbgshim/dbgshim_unixexports.src | 16 | ||||
-rw-r--r-- | src/dlls/mscordac/CMakeLists.txt | 42 | ||||
-rw-r--r-- | src/dlls/mscordac/mscordac_unixexports.src | 174 | ||||
-rw-r--r-- | src/dlls/mscordbi/CMakeLists.txt | 41 | ||||
-rw-r--r-- | src/dlls/mscordbi/mscordbi_unixexports.src | 18 | ||||
-rw-r--r-- | src/dlls/mscoree/coreclr/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/dlls/mscoree/mscorwks_unixexports.src | 3 | ||||
-rw-r--r-- | src/dlls/mscoree/unixinterface.cpp | 86 |
9 files changed, 296 insertions, 118 deletions
diff --git a/src/dlls/dbgshim/CMakeLists.txt b/src/dlls/dbgshim/CMakeLists.txt index 5024642ca5..4e72ee219a 100644 --- a/src/dlls/dbgshim/CMakeLists.txt +++ b/src/dlls/dbgshim/CMakeLists.txt @@ -18,20 +18,38 @@ if(WIN32) preprocess_def_file(${CMAKE_CURRENT_SOURCE_DIR}/dbgshim.ntdef ${CMAKE_CURRENT_BINARY_DIR}/dbgshim.def) list(APPEND DBGSHIM_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/dbgshim.def) +else(WIN32) + set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/dbgshim_unixexports.src) + set(EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/dbgshim.exports) + generate_exports_file(${DEF_SOURCES} ${EXPORTS_FILE}) endif(WIN32) -if(CLR_CMAKE_PLATFORM_UNIX) - add_compile_options(-fPIC) -endif(CLR_CMAKE_PLATFORM_UNIX) - -if(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_NETBSD) +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 -Bsymbolic-functions") -endif(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_NETBSD) + 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(dbgshim SHARED ${DBGSHIM_SOURCES}) +if(CLR_CMAKE_PLATFORM_UNIX) + add_compile_options(-fPIC) + + add_custom_target(dbgshim_exports DEPENDS ${EXPORTS_FILE}) + add_dependencies(dbgshim dbgshim_exports) + + set_property(TARGET dbgshim APPEND_STRING PROPERTY LINK_FLAGS ${EXPORTS_LINKER_OPTION}) + set_property(TARGET dbgshim APPEND_STRING PROPERTY LINK_DEPENDS ${EXPORTS_FILE}) +endif(CLR_CMAKE_PLATFORM_UNIX) + set(DBGSHIM_LIBRARIES debug-pal debugshim diff --git a/src/dlls/dbgshim/dbgshim_unixexports.src b/src/dlls/dbgshim/dbgshim_unixexports.src new file mode 100644 index 0000000000..b1cc36bc2f --- /dev/null +++ b/src/dlls/dbgshim/dbgshim_unixexports.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. + +CreateProcessForLaunch +ResumeProcess +CloseResumeHandle +RegisterForRuntimeStartup +UnregisterForRuntimeStartup +GetStartupNotificationEvent +EnumerateCLRs +CloseCLREnumeration +CreateVersionStringFromModule +CreateDebuggingInterfaceFromVersion +CreateDebuggingInterfaceFromVersionEx +CLRCreateInstance diff --git a/src/dlls/mscordac/CMakeLists.txt b/src/dlls/mscordac/CMakeLists.txt index 8c2cec1b81..8ef0a54432 100644 --- a/src/dlls/mscordac/CMakeLists.txt +++ b/src/dlls/mscordac/CMakeLists.txt @@ -30,20 +30,40 @@ if(WIN32) set(START_LIBRARY_GROUP) set(END_LIBRARY_GROUP) else(WIN32) - if(CLR_CMAKE_PLATFORM_LINUX 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 -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) - endif(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_NETBSD) + 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. @@ -96,7 +116,7 @@ else(WIN32) ) endif(WIN32) -target_link_libraries(mscordaccore ${COREDAC_LIBRARIES}) +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/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/mscordbi/CMakeLists.txt b/src/dlls/mscordbi/CMakeLists.txt index 28b006b58c..5f5ad5139e 100644 --- a/src/dlls/mscordbi/CMakeLists.txt +++ b/src/dlls/mscordbi/CMakeLists.txt @@ -26,16 +26,41 @@ if(WIN32) 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) -add_library_clr(mscordbi SHARED - ${MSCORDBI_SOURCES} -) +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 @@ -69,24 +94,20 @@ if(WIN32) elseif(CLR_CMAKE_PLATFORM_UNIX) - if(CLR_CMAKE_PLATFORM_LINUX 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 -Bsymbolic-functions") - endif(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_NETBSD) - 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}) - add_dependencies(mscordbi mscordaccore) endif(WIN32) # add the install targets 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/mscoree/coreclr/CMakeLists.txt b/src/dlls/mscoree/coreclr/CMakeLists.txt index 42a3bc6550..a51e841c78 100644 --- a/src/dlls/mscoree/coreclr/CMakeLists.txt +++ b/src/dlls/mscoree/coreclr/CMakeLists.txt @@ -24,7 +24,7 @@ else() if(CMAKE_SYSTEM_NAME STREQUAL Linux OR CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR CMAKE_SYSTEM_NAME STREQUAL 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 -Bsymbolic-functions") + 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. diff --git a/src/dlls/mscoree/mscorwks_unixexports.src b/src/dlls/mscoree/mscorwks_unixexports.src index 7120337177..9c151a942c 100644 --- a/src/dlls/mscoree/mscorwks_unixexports.src +++ b/src/dlls/mscoree/mscorwks_unixexports.src @@ -10,9 +10,6 @@ GetMetaDataInternalInterface GetMetaDataInternalInterfaceFromPublic GetMetaDataPublicInterfaceFromInternal -; Obsolete Unix hosting API, to be removed -ExecuteAssembly - ; PAL module registration PAL_RegisterModule PAL_UnregisterModule diff --git a/src/dlls/mscoree/unixinterface.cpp b/src/dlls/mscoree/unixinterface.cpp index 42f2d80054..be345b3ca1 100644 --- a/src/dlls/mscoree/unixinterface.cpp +++ b/src/dlls/mscoree/unixinterface.cpp @@ -352,89 +352,3 @@ int coreclr_execute_assembly( return hr; } - -#ifdef PLATFORM_UNIX -// -// Execute a managed assembly with given arguments -// -// Parameters: -// exePath - Absolute path of the executable that invoked the ExecuteAssembly -// coreClrPath - Absolute path of the libcoreclr.so -// appDomainFriendlyName - Friendly name of the app domain that will be created to execute the assembly -// propertyCount - Number of properties (elements of the following two arguments) -// propertyKeys - Keys of properties of the app domain -// propertyValues - Values of properties of the app domain -// argc - Number of arguments passed to the executed assembly -// argv - Array of arguments passed to the executed assembly -// managedAssemblyPath - Path of the managed assembly to execute (or NULL if using a custom entrypoint). -// enntyPointAssemblyName - Name of the assembly which holds the custom entry point (or NULL to use managedAssemblyPath). -// entryPointTypeName - Name of the type which holds the custom entry point (or NULL to use managedAssemblyPath). -// entryPointMethodName - Name of the method which is the custom entry point (or NULL to use managedAssemblyPath). -// exitCode - Exit code returned by the executed assembly -// -// Returns: -// HRESULT indicating status of the operation. S_OK if the assembly was successfully executed -// -extern "C" -HRESULT ExecuteAssembly( - LPCSTR exePath, - LPCSTR coreClrPath, - LPCSTR appDomainFriendlyName, - int propertyCount, - LPCSTR* propertyKeys, - LPCSTR* propertyValues, - int argc, - LPCSTR* argv, - LPCSTR managedAssemblyPath, - LPCSTR entryPointAssemblyName, - LPCSTR entryPointTypeName, - LPCSTR entryPointMethodName, - DWORD* exitCode) -{ - if (exitCode == NULL) - { - return HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER); - } - *exitCode = -1; - - ReleaseHolder<ICLRRuntimeHost2> host; //(reinterpret_cast<ICLRRuntimeHost2*>(hostHandle)); - DWORD domainId; - - HRESULT hr = coreclr_initialize(exePath, appDomainFriendlyName, propertyCount, propertyKeys, propertyValues, &host, &domainId); - IfFailRet(hr); - - ConstWStringArrayHolder argvW; - argvW.Set(StringArrayToUnicode(argc, argv), argc); - - if (entryPointAssemblyName == NULL || entryPointTypeName == NULL || entryPointMethodName == NULL) - { - ConstWStringHolder managedAssemblyPathW = StringToUnicode(managedAssemblyPath); - - hr = host->ExecuteAssembly(domainId, managedAssemblyPathW, argc, argvW, exitCode); - IfFailRet(hr); - } - else - { - ConstWStringHolder entryPointAssemblyNameW = StringToUnicode(entryPointAssemblyName); - ConstWStringHolder entryPointTypeNameW = StringToUnicode(entryPointTypeName); - ConstWStringHolder entryPointMethodNameW = StringToUnicode(entryPointMethodName); - - HostMain pHostMain; - - hr = host->CreateDelegate( - domainId, - entryPointAssemblyNameW, - entryPointTypeNameW, - entryPointMethodNameW, - (INT_PTR*)&pHostMain); - - IfFailRet(hr); - - *exitCode = pHostMain(argc, argvW); - } - - hr = coreclr_shutdown(host, domainId); - - return hr; -} -#endif |