[Tizen] Add a config knob for importing ibc files
authorSwift Kim <swift.kim@samsung.com>
Thu, 1 Aug 2019 06:10:49 +0000 (15:10 +0900)
committerGleb Balykov <g.balykov@samsung.com>
Tue, 27 Sep 2022 12:50:22 +0000 (15:50 +0300)
src/coreclr/inc/clrconfigvalues.h
src/coreclr/zap/zapimage.cpp

index d069000..fdee15a 100644 (file)
@@ -288,7 +288,7 @@ RETAIL_CONFIG_STRING_INFO(EXTERNAL_GCName, W("GCName"), "")
 RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_ConvertIbcData, W("ConvertIbcData"), 1, "Converts between v1 and v2 IBC data")
 RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_DisableIBC, W("DisableIBC"), 0, "Disables the use of IBC data")
 RETAIL_CONFIG_DWORD_INFO(EXTERNAL_UseIBCFile, W("UseIBCFile"), 0, "")
-
+RETAIL_CONFIG_STRING_INFO(EXTERNAL_IBCFileDir, W("IBCFileDir"), "Directory to search for IBC files")
 
 ///
 /// JIT
index 6939219..172dd43 100644 (file)
@@ -2438,7 +2438,20 @@ HRESULT ZapImage::LocateProfileData()
     // Couldn't find profile resource--let's see if there's an ibc file to use instead
     //
 
-    SString path(m_pModuleFileName);
+    SString path;
+
+    LPWSTR ibcDir = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_IBCFileDir);
+    if (ibcDir != NULL)
+    {
+        LPCWSTR moduleFileName = wcsrchr(m_pModuleFileName, DIRECTORY_SEPARATOR_CHAR_W);
+        path.Set(ibcDir);
+        path.Append(DIRECTORY_SEPARATOR_CHAR_W);
+        path.Append(moduleFileName);
+    }
+    else
+    {
+        path.Set(m_pModuleFileName); // the same directory as the IL dll
+    }
 
     SString::Iterator dot = path.End();
     if (path.FindBack(dot, '.'))