Fix crossgen2 mic build (#557)
author최종헌/MDE Lab(SR)/삼성전자 <j-h.choi@samsung.com>
Tue, 2 Jul 2024 03:36:08 +0000 (12:36 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Tue, 2 Jul 2024 03:36:08 +0000 (12:36 +0900)
Change-Id: Ica3e5993716efb637e01a10030f22ce9596f389a

NativeLauncher/inc/launcher_env.h
NativeLauncher/tool/ni_common.cc

index d313a612e9db7a2adc42f1a5d868e9a960b77065..6f385666382f76e57bdb06b5c2745678df386358 100644 (file)
 #define PRE_COMPILED_PACKAGE_FILE    "._TIZEN_DOTNET_PRE_COMPILED_PACKAGE"
 
 #if defined (__aarch64__)
-#define ARCHITECTURE_IDENTIFIER      "arm64"
+#define ARCHITECTURE_IDENTIFIER              "arm64"
+#define ARCHITECTURE_IDENTIFIER_GENERAL      ARCHITECTURE_IDENTIFIER
 #elif defined (__arm__)
-#define ARCHITECTURE_IDENTIFIER      "armel"
+#define ARCHITECTURE_IDENTIFIER              "armel"
+#define ARCHITECTURE_IDENTIFIER_GENERAL      "arm"
 #elif defined (__x86_64__)
-#define ARCHITECTURE_IDENTIFIER      "x64"
+#define ARCHITECTURE_IDENTIFIER              "x64"
+#define ARCHITECTURE_IDENTIFIER_GENERAL      ARCHITECTURE_IDENTIFIER
 #elif defined (__i386__)
-#define ARCHITECTURE_IDENTIFIER      "x86"
+#define ARCHITECTURE_IDENTIFIER              "x86"
+#define ARCHITECTURE_IDENTIFIER_GENERAL      ARCHITECTURE_IDENTIFIER
 #elif defined (__riscv)
-#define ARCHITECTURE_IDENTIFIER      "riscv64"
+#define ARCHITECTURE_IDENTIFIER              "riscv64"
+#define ARCHITECTURE_IDENTIFIER_GENERAL      ARCHITECTURE_IDENTIFIER
 #else
-#error                               "Unknown target"
+#error                                       "Unknown target"
 #endif
 
 #endif //__LAUNCHER_ENV_H_
index 81ab78d0728580ae78a69d284565e0038b5be570..3b6aa3b7062180cd9e31d6b39e43af56f8e2c270 100644 (file)
 
 #define __XSTR(x) #x
 #define __STR(x) __XSTR(x)
-#if defined(__arm__) || defined(__aarch64__)
 static const char* __NATIVE_LIB_DIR = __STR(NATIVE_LIB_DIR);
-#endif
 static const char* __DOTNET_DIR = __STR(DOTNET_DIR);
+static const char* __RUNTIME_DIR = __STR(RUNTIME_DIR);
 static const char* __READ_ONLY_APP_UPDATE_DIR = __STR(READ_ONLY_APP_UPDATE_DIR);
 
 #ifdef UNIQUE_DEFAULT_BASE_ADDR_SUPPORT
@@ -859,14 +858,24 @@ static int pkgAotCb(pkgmgrinfo_pkginfo_h handle, void *userData)
 
 ni_error_e initNICommon()
 {
-#if defined(__arm__) || defined(__aarch64__)
+#ifdef __i386__
+       _SERR("x86 doesnot supported. skip ni file generation");
+       return NI_ERROR_NOT_SUPPORTED;
+#endif
 
        char *env = nullptr;
        env = getenv("MIC_CROSSGEN2_ENABLED");
        if (env != nullptr && !strcmp(env, "1")) {
                CORERUN_CMD = std::string("/opt/usr/dotnet/mic/crossgen2");
                CROSSGEN2_PATH = "";
-               CLRJIT_PATH = std::string("/opt/usr/dotnet/mic/libclrjit_unix_") + ARCHITECTURE_IDENTIFIER + std::string("_x64.so");
+               CLRJIT_PATH = std::string("/opt/usr/dotnet/mic/libclrjit_");
+               if (strstr(bf::read_symlink(__RUNTIME_DIR).string().c_str(), "6.0.") != NULL) {
+                       CLRJIT_PATH.append("unix_"); //6.0.X
+               } else {
+                       CLRJIT_PATH.append("universal_");
+               }
+               CLRJIT_PATH.append(ARCHITECTURE_IDENTIFIER_GENERAL);
+               CLRJIT_PATH.append("_x64.so");
        }
 
        // get interval value
@@ -900,10 +909,6 @@ ni_error_e initNICommon()
        }
 
        return NI_ERROR_NONE;
-#else
-       _SERR("crossgen supports arm/arm64 architecture only. skip ni file generation");
-       return NI_ERROR_NOT_SUPPORTED;
-#endif
 }
 
 void finalizeNICommon()