summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Pye <ben@curlybracket.co.uk>2015-07-27 13:48:31 +0100
committerBen Pye <ben@curlybracket.co.uk>2015-07-27 14:40:59 +0100
commit085cff4715d4e8c4efa6eb476d5d97c88b926868 (patch)
tree9462be1d0895b996d9cfa4bd0f3a5fa723277aff
parenta0423ecf2f719b55332a7e4e3f8d5f9d71a9ca56 (diff)
downloadcoreclr-085cff4715d4e8c4efa6eb476d5d97c88b926868.tar.gz
coreclr-085cff4715d4e8c4efa6eb476d5d97c88b926868.tar.bz2
coreclr-085cff4715d4e8c4efa6eb476d5d97c88b926868.zip
Expose Unix hosting API on Windows
-rw-r--r--src/dlls/mscoree/CMakeLists.txt5
-rw-r--r--src/dlls/mscoree/mscorwks_ntdef.src6
-rw-r--r--src/dlls/mscoree/unixinterface.cpp11
3 files changed, 15 insertions, 7 deletions
diff --git a/src/dlls/mscoree/CMakeLists.txt b/src/dlls/mscoree/CMakeLists.txt
index 5959c0af39..7af76fbe6b 100644
--- a/src/dlls/mscoree/CMakeLists.txt
+++ b/src/dlls/mscoree/CMakeLists.txt
@@ -2,6 +2,7 @@ include_directories("../../inc")
set(CLR_SOURCES
mscoree.cpp
+ unixinterface.cpp
)
if(WIN32)
@@ -15,10 +16,6 @@ set (DEF_SOURCES
mscorwks_ntdef.src
)
else()
-list(APPEND CLR_SOURCES
- unixinterface.cpp
-)
-
set (DEF_SOURCES
mscorwks_unixexports.src
)
diff --git a/src/dlls/mscoree/mscorwks_ntdef.src b/src/dlls/mscoree/mscorwks_ntdef.src
index 90da7f9952..dcb68574a9 100644
--- a/src/dlls/mscoree/mscorwks_ntdef.src
+++ b/src/dlls/mscoree/mscorwks_ntdef.src
@@ -17,6 +17,12 @@ EXPORTS
; This cannot change, or else CoreCLR debugging will not work.
; See clr\src\DLLS\dbgshim\dbgshim.cpp.
g_CLREngineMetrics @2 data
+
+ ; Unix hosting API
+ coreclr_create_delegate
+ coreclr_execute_assembly
+ coreclr_initialize
+ coreclr_shutdown
#ifdef FEATURE_PREJIT
; MetaDataGetDispenser is needed for nidump. We want nidump to work on non-debug
diff --git a/src/dlls/mscoree/unixinterface.cpp b/src/dlls/mscoree/unixinterface.cpp
index 5c5e1dacc7..b02ce52576 100644
--- a/src/dlls/mscoree/unixinterface.cpp
+++ b/src/dlls/mscoree/unixinterface.cpp
@@ -112,8 +112,10 @@ int coreclr_initialize(
void** hostHandle,
unsigned int* domainId)
{
+ HRESULT hr;
+#ifdef FEATURE_PAL
DWORD error = PAL_InitializeCoreCLR(exePath);
- HRESULT hr = HRESULT_FROM_WIN32(error);
+ hr = HRESULT_FROM_WIN32(error);
// If PAL initialization failed, then we should return right away and avoid
// calling any other APIs because they can end up calling into the PAL layer again.
@@ -121,6 +123,7 @@ int coreclr_initialize(
{
return hr;
}
+#endif
ReleaseHolder<ICLRRuntimeHost2> host;
@@ -167,7 +170,7 @@ int coreclr_initialize(
propertyCount,
propertyKeysW,
propertyValuesW,
- domainId);
+ (DWORD *)domainId);
if (SUCCEEDED(hr))
{
@@ -280,12 +283,13 @@ int coreclr_execute_assembly(
ConstWStringHolder managedAssemblyPathW = StringToUnicode(managedAssemblyPath);
- HRESULT hr = host->ExecuteAssembly(domainId, managedAssemblyPathW, argc, argvW, exitCode);
+ HRESULT hr = host->ExecuteAssembly(domainId, managedAssemblyPathW, argc, argvW, (DWORD *)exitCode);
IfFailRet(hr);
return hr;
}
+#ifdef PLATFORM_UNIX
//
// Execute a managed assembly with given arguments
//
@@ -369,3 +373,4 @@ HRESULT ExecuteAssembly(
return hr;
}
+#endif