diff options
author | Pat Gavlin <pagavlin@microsoft.com> | 2015-02-12 11:03:50 -0800 |
---|---|---|
committer | Pat Gavlin <pagavlin@microsoft.com> | 2015-02-12 11:09:15 -0800 |
commit | 71ae39860ac64e03a548b466965dc9d418019e53 (patch) | |
tree | da94bdb8564d0a8eb89b8e95d9d78a8285908b9e /src | |
parent | a7557e46138d082a095f376201a692eb30598b58 (diff) | |
download | coreclr-71ae39860ac64e03a548b466965dc9d418019e53.tar.gz coreclr-71ae39860ac64e03a548b466965dc9d418019e53.tar.bz2 coreclr-71ae39860ac64e03a548b466965dc9d418019e53.zip |
Small fixes to enable AltJit support on UNIX.
- Load libcoreclr.so with the RTLD_GLOBAL flag set in unixxorerun s.t.
its exports are available for subsequently loaded libraries.
- Demangle PAL_TryExcept
- Replace a non-portable path separator character with the corresponding
portable definition from the PAL.
Diffstat (limited to 'src')
-rw-r--r-- | src/coreclr/hosts/unixcorerun/corerun.cpp | 2 | ||||
-rw-r--r-- | src/pal/src/exception/seh-unwind.cpp | 2 | ||||
-rw-r--r-- | src/vm/codeman.cpp | 2 |
3 files changed, 4 insertions, 2 deletions
diff --git a/src/coreclr/hosts/unixcorerun/corerun.cpp b/src/coreclr/hosts/unixcorerun/corerun.cpp index 8d411ebecd..0a54ca816f 100644 --- a/src/coreclr/hosts/unixcorerun/corerun.cpp +++ b/src/coreclr/hosts/unixcorerun/corerun.cpp @@ -266,7 +266,7 @@ int ExecuteManagedAssembly( std::string tpaList; AddFilesFromDirectoryToTpaList(clrFilesAbsolutePath, tpaList); - void* coreclrLib = dlopen(coreClrDllPath.c_str(), RTLD_NOW); + void* coreclrLib = dlopen(coreClrDllPath.c_str(), RTLD_NOW | RTLD_GLOBAL); if (coreclrLib != nullptr) { ExecuteAssemblyFunction executeAssembly = (ExecuteAssemblyFunction)dlsym(coreclrLib, "ExecuteAssembly"); diff --git a/src/pal/src/exception/seh-unwind.cpp b/src/pal/src/exception/seh-unwind.cpp index 9cded92fd8..c6baa16ad8 100644 --- a/src/pal/src/exception/seh-unwind.cpp +++ b/src/pal/src/exception/seh-unwind.cpp @@ -762,6 +762,8 @@ void PAL_CallRunHandler() _ASSERT(FALSE); } +extern "C" +PALAPI struct _Unwind_Exception *PAL_TryExcept( PFN_PAL_BODY pfnBody, PFN_PAL_EXCEPTION_FILTER pfnFilter, diff --git a/src/vm/codeman.cpp b/src/vm/codeman.cpp index b73eced187..d68e45b0af 100644 --- a/src/vm/codeman.cpp +++ b/src/vm/codeman.cpp @@ -1300,7 +1300,7 @@ static void LoadAndInitializeJIT(LPCWSTR pwzJitName, OUT HINSTANCE* phJit, OUT I extern HINSTANCE g_hThisInst; if (WszGetModuleFileName(g_hThisInst, CoreClrFolder, MAX_PATH)) { - WCHAR *filePtr = wcsrchr(CoreClrFolder, W('\\')); + WCHAR *filePtr = wcsrchr(CoreClrFolder, DIRECTORY_SEPARATOR_CHAR_W); if (filePtr) { filePtr[1] = W('\0'); |