From: 최종헌/MDE Lab(SR)/삼성전자 Date: Tue, 2 Jul 2024 03:36:08 +0000 (+0900) Subject: Fix crossgen2 mic build (#557) X-Git-Tag: accepted/tizen/unified/x/20240702.121010~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bd42b5c3a13e0edb49d2351618dfbed957d58533;p=platform%2Fcore%2Fdotnet%2Flauncher.git Fix crossgen2 mic build (#557) Change-Id: Ica3e5993716efb637e01a10030f22ce9596f389a --- diff --git a/NativeLauncher/inc/launcher_env.h b/NativeLauncher/inc/launcher_env.h index d313a61..6f38566 100644 --- a/NativeLauncher/inc/launcher_env.h +++ b/NativeLauncher/inc/launcher_env.h @@ -40,17 +40,22 @@ #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_ diff --git a/NativeLauncher/tool/ni_common.cc b/NativeLauncher/tool/ni_common.cc index 81ab78d..3b6aa3b 100644 --- a/NativeLauncher/tool/ni_common.cc +++ b/NativeLauncher/tool/ni_common.cc @@ -54,10 +54,9 @@ #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()