summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPat Gavlin <pagavlin@microsoft.com>2015-02-12 11:03:50 -0800
committerPat Gavlin <pagavlin@microsoft.com>2015-02-12 11:09:15 -0800
commit71ae39860ac64e03a548b466965dc9d418019e53 (patch)
treeda94bdb8564d0a8eb89b8e95d9d78a8285908b9e /src
parenta7557e46138d082a095f376201a692eb30598b58 (diff)
downloadcoreclr-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.cpp2
-rw-r--r--src/pal/src/exception/seh-unwind.cpp2
-rw-r--r--src/vm/codeman.cpp2
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');