Check ascii casing in the candidate process (#254)
If current culture's casing for ASCII is the same as invariant, it can take a fast path than calling out to the OS for culture-aware casing.
However, in certain languages, the "ascii casing check function" may be significantly slowed down.
To avoid that kind situation, call it in advance on the candidate process.
Change-Id: I46509deec025f724b8fdb3bfd81431e08e611209
Fix rid fallback graph making logic (#236)
RID tizen-[version]-armel, tizen-[version] is missed.
And, /usr/share/dotnet.tizen/netcoreapp and /usr/share/dotnet.tizen/lib should be checked first.
Afterwards, when the function of loading the app dll first comes in,
the order of searching this native library must also be changed.
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Tue, 26 May 2020 21:34:47 +0000 (06:34 +0900)]
Show the warning log when preload skip (#230)
Change-Id: Ifd9a28c26cecbb996c9452db3bb57930e0311224
Remove unnecessary binary dependency (#234)
dotnet doesnot use AUL and CoreRuntime.
So, clean up CMakeList.txt file.
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Tue, 26 May 2020 21:32:46 +0000 (06:32 +0900)]
Fix bugs when generating SPC.ni with --ni-dll option (#235)
Change-Id: I7f70ec0bf9b4a227b0f11fe35a4080f7685116a3
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Mon, 25 May 2020 07:55:10 +0000 (16:55 +0900)]
Refactoring the dotnettool (#231)
Change-Id: Ia41c0548849338b67e9eee143f4b52c74719fadf
add script to generate native image at mic (#232)
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Mon, 11 May 2020 00:46:23 +0000 (09:46 +0900)]
Hide the preload path from the dlog (#229)
Change-Id: Ie3cfb0f8b17d12d238921ff03b2e1f02bad7f7f9
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Thu, 7 May 2020 04:49:03 +0000 (13:49 +0900)]
Integrate managed code into Tizen.Runtime (#228)
Change-Id: I8dde5eca0a3115b5ae2eac2527810529f11ebfbb
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Thu, 7 May 2020 04:40:28 +0000 (13:40 +0900)]
Apply rules to .preload file name (#227)
Change-Id: I2adb4deab7d10a680c8d08fa7d631ffe1d267380
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Wed, 29 Apr 2020 02:37:58 +0000 (11:37 +0900)]
Sort preload files by name due to dependencies of each module (#225)
Change-Id: I4addc2fc049eeb9433f32fb85723d7b6194bed9f
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Mon, 27 Apr 2020 05:47:50 +0000 (14:47 +0900)]
Add .ibc file for Store Apps (#223)
Change-Id: Iec61395d777557a6fa98cbddf1aebd037720c734
j-h.choi [Fri, 24 Apr 2020 05:12:41 +0000 (14:12 +0900)]
Do not need to check if the Tizen.Runtime.dll exists
Change-Id: Id645fec023398e52d8caadde300c3f057d2ad66d
j-h.choi [Wed, 1 Apr 2020 01:12:49 +0000 (10:12 +0900)]
Support for preload of ElmSharp and preload.list file
Change-Id: I1da11acef01294963950d0f2027791c8b70f6063
Woongsuk Cho [Fri, 24 Apr 2020 04:48:53 +0000 (13:48 +0900)]
remove exec capability setting
김상욱/Common Platform Lab(SR)/Engineer/삼성전자 [Fri, 24 Apr 2020 02:37:07 +0000 (11:37 +0900)]
Do not pass a native image path to coreclr_execute_assembly (#222)
Passing a native image path will result in a BadImageFormatException
Hyungju Lee [Tue, 21 Apr 2020 02:16:38 +0000 (11:16 +0900)]
Fix to call CoreRuntime dispose()
Change-Id: I33f4a07bee4b69195f331952acb699b39e17c9e9
Hyungju Lee [Thu, 16 Apr 2020 03:22:46 +0000 (12:22 +0900)]
Remove dependency of main pkg from devel pkg
Change-Id: Ic058436eb9a34168bb243ce89b4eae4a0ce945e6
j-h.choi [Thu, 13 Feb 2020 06:46:55 +0000 (15:46 +0900)]
Add flags to the install plugin to avoid duplicate execution
Change-Id: If3297d4939cfbbcc4be106c849bb2b1334213ede
김상욱/Common Platform Lab(SR)/Engineer/삼성전자 [Mon, 13 Apr 2020 03:02:36 +0000 (12:02 +0900)]
Rework dotnet executable (#204)
* Re-implement dotnet binary
* Implement additional switches
* Remove corerun-related code from dotnet_launcher.cc
* Update code formatting
* Fix addAssembliesFromDirectories logic and refactor
* Fix the usage of depth parameter
* Organize command line options
* Minor fixes
Woongsuk Cho [Fri, 10 Apr 2020 01:13:39 +0000 (10:13 +0900)]
Enable diagnostics for .NET app
In the previous implementation, COMPlus_EnableDiagnostics is set to 0 to avoid creating clr-debug-pipe file.
But, from coreclr 3.1.0, that environment setting also affects the creation of diagnostics socket file.
To enable diagnostics at candidate process, set COMPlus_EnableDiagnostics to 1.
Hyungju Lee [Fri, 10 Apr 2020 08:23:44 +0000 (17:23 +0900)]
Update version to 3.1
Change-Id: Id0aa148579aed78dd2cc39211cd9b2f8c48a10e4
Woongsuk Cho [Thu, 9 Apr 2020 06:33:01 +0000 (15:33 +0900)]
In some specific language (az, tr, ku, etc), FileNotFoundException is occurred even though the dll exist.
coreclr keep TPA lists at hashmap(SimpleNameToFileNameMap) in the applicationcontext.
To add TPA to hashmap, hash code is generated by hash() function with simple name of dll.
In that hash function, towupper() function is used.
The return value of towupper() can be changed by locale setting.
Also, when lookup in hashmap, towlower() function is called for comparing values,
and the return value of this function also changed according to locale.
To prevent key mismatch issue by locale change, set to the locale before coreclr_initialize().
Woongsuk Cho [Thu, 9 Apr 2020 21:44:39 +0000 (06:44 +0900)]
Bug-fix: fix wrong probe path for corerun mode.
Woongsuk Cho [Thu, 26 Mar 2020 03:38:20 +0000 (12:38 +0900)]
seperate executable to apply User execute label to dotnet-loader
j-h.choi [Mon, 6 Apr 2020 01:40:13 +0000 (10:40 +0900)]
Change the ownership of the pdb file
Change-Id: Id3a6d3a3272b5f140b11c0f49004861c66d61cc8
Woongsuk Cho [Tue, 31 Mar 2020 04:46:18 +0000 (13:46 +0900)]
Use absolute path of input dll path.
If only the dll file name is entered as an input parameter without a path, it does not work properly.
To solve that issue, get the absolute path from dll file, and pass that to coreclr
Woongsuk Cho [Tue, 31 Mar 2020 03:38:39 +0000 (12:38 +0900)]
Set environment (LANG, LC_MESSAGE, LC_ALL) before using ICU API.
In order to operate ICU (used for globalization) normally, "LANG" and "LC_ALL" environment variables must be set before using ICU API.
In case of application running, AppFW set that variable. But when preloading the dll in the candidate process,
those environment variables are not set.
As a result, CultureInfo is incorrectly generated and malfunctions.
For example, uloc_getDefault() returns en_US_POSIX, CultureInfo is set to invariant mode.
Additionally, to apply language setting from native to managed, terminate and recreate candidate process when system language setting is changed.
After applying this patches, launching performance is reduced by 15ms ~ 20ms.
That is because previous .net application is launched in invariant mode.
(In invariant mode, string-related operations are fast.)
Woongsuk Cho [Thu, 26 Mar 2020 04:53:26 +0000 (13:53 +0900)]
Use root path only for corerun mode.
In the current implementation, app's "/bin" and "/lib" path are set to app_path for coreclr_initialization().
So, when running corerun mode, there is a problem that the assembly in the same directory cannot be found,
but rather, the assembly under "/bin" and "/lib" can be loaded.
Woongsuk Cho [Thu, 26 Mar 2020 03:40:20 +0000 (12:40 +0900)]
call ecore_init() in the CoreRuntime constructor.
ecore_init() must called before CoreRuntime initialization.
But, sometimes, calling ecore_init() is missed by mistake.
In order to prevent this mistake, call ecore_init() in the constructor of CoreRuntime.
Woongsuk Cho [Tue, 24 Mar 2020 01:51:30 +0000 (10:51 +0900)]
Remove "User" execute label from dotnet-launcher
When .NET application launched by standalone mode, launchpad fork & exec the executable.
In that case, process smack label is set to execute label of executable.
(Fail to change smack label to application)
To avoid this issue, remove execute label
Woongsuk Cho [Mon, 23 Mar 2020 02:16:03 +0000 (11:16 +0900)]
remove unused variable
Hyungju Lee [Mon, 23 Mar 2020 00:07:00 +0000 (09:07 +0900)]
Remove unnecessary ecore_init()
Change-Id: I8b882808784f8d5bf2fa6833073742fc9f1d447f
j-h.choi [Tue, 17 Mar 2020 05:52:37 +0000 (14:52 +0900)]
Change the name of the define directory(/opt/usr/dotnet)
Change-Id: Ia1b4090f30236c3390a2d89ab993f41e23698fab
j-h.choi [Wed, 18 Mar 2020 01:39:29 +0000 (10:39 +0900)]
Modify the standard output and error in fprintf
Change-Id: Ib266a4833eccdfb63b30d9ff1b5dffb71858cb82
Woongsuk Cho [Wed, 18 Mar 2020 08:02:08 +0000 (17:02 +0900)]
log manager code cleanup
- log redirection is handled in log manager
- log redirection can be turn on / off by calling initializeLogManager() function
- runLoggingThread function is merged to initializeLogManager
- unhanded exception check code is removed
- in corerun mode, log manager disabled
Woongsuk Cho [Wed, 18 Mar 2020 06:01:23 +0000 (15:01 +0900)]
Set exec label of dotnet-launcher to "User"
To attach diagnostics process to app process, exec label should be set to "User".
Additionally, log redirection (to dlog) is turned off for corerun mode.
j-h.choi [Wed, 18 Mar 2020 05:58:36 +0000 (14:58 +0900)]
Fixed memory corruption. AddressSanitizer: heap-buffer-overflow
Change-Id: Ie71f63fa076a11ac80166e0b11b4e6a6b178cf50
j-h.choi [Tue, 18 Feb 2020 06:38:36 +0000 (15:38 +0900)]
Set the native library path with the RIDs value set in TizenFX
Change-Id: I076c9966eb02552dec7e547933b64665577847d0
j-h.choi [Thu, 5 Mar 2020 01:23:47 +0000 (10:23 +0900)]
Copy the pdb file where the native image file exists
Hyungju Lee [Tue, 3 Mar 2020 02:37:57 +0000 (11:37 +0900)]
Full executable path to support crash-worker in case of standalone
Change-Id: I519bf8a430c5fd92bb5d43a7fe9092c3514ffa36
이형주/Common Platform Lab(SR)/Staff Engineer/삼성전자 [Wed, 12 Feb 2020 06:32:39 +0000 (15:32 +0900)]
Update README.md
j-h.choi [Wed, 12 Feb 2020 01:25:02 +0000 (10:25 +0900)]
Fixed svace.(HANDLE_LEAK.EX)
j-h.choi [Thu, 6 Feb 2020 03:58:39 +0000 (12:58 +0900)]
Modified to add 'NI_FLAGS_APPNI' flag and appPaths when the app generates ni
Hyungju Lee [Thu, 6 Feb 2020 05:17:21 +0000 (14:17 +0900)]
Remove dos carriage return
Change-Id: I47f301ead24f4bfd77ce082260d80d9af0f537d9
j-h.choi [Wed, 5 Feb 2020 08:55:53 +0000 (17:55 +0900)]
Fixed svace.(FILE_SYSTEM_REALPATH)
j-h.choi [Fri, 17 Jan 2020 02:04:17 +0000 (11:04 +0900)]
Change the function name from updateAssemblyInfo() to copySmackAndOwnership()
JoonghyunCho [Thu, 30 Jan 2020 08:25:11 +0000 (17:25 +0900)]
Merge preloading features
JoonghyunCho [Tue, 21 Jan 2020 06:51:44 +0000 (15:51 +0900)]
Add preloading features
j-h.choi [Mon, 3 Feb 2020 08:17:42 +0000 (17:17 +0900)]
Bug fixed: Skips generation of ni.dll in the TPA list
j-h.choi [Wed, 29 Jan 2020 04:48:33 +0000 (13:48 +0900)]
Modify the parameter name of the database function
김상욱/Common Platform Lab(SR)/Engineer/삼성전자 [Wed, 29 Jan 2020 03:17:39 +0000 (12:17 +0900)]
Use newline char as a delimiter in coreclr_env.list (#158)
JoonghyunCho [Wed, 15 Jan 2020 08:14:48 +0000 (17:14 +0900)]
Remove console log
JoonghyunCho [Mon, 6 Jan 2020 10:42:58 +0000 (19:42 +0900)]
Add step for invoking ElmSharp preload method
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Wed, 15 Jan 2020 08:31:10 +0000 (17:31 +0900)]
Support tizen.6.0.0 rid (#154)
j-h.choi [Wed, 8 Jan 2020 02:12:35 +0000 (11:12 +0900)]
Support tizen.5.5.0 rid
j-h.choi [Mon, 30 Dec 2019 04:56:55 +0000 (13:56 +0900)]
Modified to skip the assemblies in the TPA list when applying TAC
j-h.choi [Mon, 16 Dec 2019 07:54:39 +0000 (16:54 +0900)]
Add '--ni-reset-dir' option of dotnettool
j-h.choi [Wed, 27 Nov 2019 07:35:20 +0000 (16:35 +0900)]
Code cleanup
Woongsuk Cho [Thu, 5 Dec 2019 07:06:38 +0000 (16:06 +0900)]
add requires jsoncpp to support iot profile
Revert "A workaround to pre-compile internal methods" (#143)
This reverts commit
3abbd74537fea55a1003be2ae0f7bd58ce345d63.
Woongsuk Cho [Thu, 28 Nov 2019 03:42:18 +0000 (12:42 +0900)]
apply -Wl,-z,relro option in build flag for library build
Woongsuk Cho [Thu, 28 Nov 2019 01:45:09 +0000 (10:45 +0900)]
upgrade openssl from 1.0 to 1.1
j-h.choi [Wed, 20 Nov 2019 01:30:58 +0000 (10:30 +0900)]
Fixed Svace(memory_leak)
j-h.choi [Tue, 19 Nov 2019 05:51:41 +0000 (14:51 +0900)]
Fixed Svace issue
j-h.choi [Thu, 14 Nov 2019 01:54:40 +0000 (10:54 +0900)]
Fixed bug for TAC when upgrading application
j-h.choi [Tue, 29 Oct 2019 07:58:56 +0000 (16:58 +0900)]
Modify to enable TAC when restoring a database of TAC
Woongsuk Cho [Fri, 8 Nov 2019 06:03:46 +0000 (15:03 +0900)]
change candidate process name to dotnet-launcher
Woongsuk Cho [Wed, 6 Nov 2019 06:16:59 +0000 (15:16 +0900)]
apply launchpad-hydra refactoring
Mikhail Aksenov [Mon, 21 Oct 2019 12:21:50 +0000 (15:21 +0300)]
Fix setEnvFromFile()
Woongsuk Cho [Thu, 17 Oct 2019 01:33:02 +0000 (10:33 +0900)]
to avoid gdbus blocking issue, call storage api after process forking
Hyungju Lee [Wed, 16 Oct 2019 22:43:01 +0000 (07:43 +0900)]
Skip prelading on standalone mode
Change-Id: If53e8063e1f84edfc360c1d395856bf65a223d37
Woongsuk Cho [Wed, 16 Oct 2019 01:41:15 +0000 (10:41 +0900)]
use absoulte path for preloading list on hydra launcher
Woongsuk Cho [Tue, 15 Oct 2019 03:45:26 +0000 (12:45 +0900)]
svace : initialize hydracallback
Hyungju Lee [Mon, 14 Oct 2019 22:08:27 +0000 (07:08 +0900)]
Revert "turn off hydra-mode temporally. After fixing launchpad issue, it should be turned on again"
This reverts commit
612b1cd945501d15663c5c83c20f8d5799ca6cfd.
Konstantin Baladurin [Fri, 5 Jul 2019 15:35:15 +0000 (18:35 +0300)]
Preload NI dlls in hydra
j-h.choi [Fri, 11 Oct 2019 02:17:14 +0000 (11:17 +0900)]
Modify regenerate all tac file in dotnettool
Hyungju Lee [Mon, 14 Oct 2019 05:59:40 +0000 (14:59 +0900)]
Add ecore_init() at hydra adopter.loop_brgin callback
Change-Id: I6baa51356d68ea7527e248776a74f4408d2a6489
Woongsuk Cho [Thu, 10 Oct 2019 23:37:35 +0000 (08:37 +0900)]
turn off hydra-mode temporally. After fixing launchpad issue, it should be turned on again
Sangwook Kim [Tue, 8 Oct 2019 04:10:48 +0000 (13:10 +0900)]
A workaround to pre-compile internal methods
This patch is to avoid JIT compilation of the following methods on
setEnvironmentVariable() at launch time. These methods are not
subject to AOT compilation even if the system assemblies are fully-
NGENed and IBC-optimized.
- System.SpanHelpers:IndexOf(byref,ubyte,int)
- System.SpanHelpers:Contains(byref,ushort,int)
j-h.choi [Thu, 10 Oct 2019 05:40:43 +0000 (14:40 +0900)]
Code cleanup
Sangwook Kim [Tue, 8 Oct 2019 07:51:10 +0000 (16:51 +0900)]
Remove unnecessary code
Sangwook Kim [Tue, 8 Oct 2019 00:27:31 +0000 (09:27 +0900)]
Create a common root directory for managed csprojs
j-h.choi [Tue, 8 Oct 2019 00:41:00 +0000 (09:41 +0900)]
Change ownership of TAC database file in dotnettool
j-h.choi [Thu, 26 Sep 2019 01:01:20 +0000 (10:01 +0900)]
Added logic to recover when db file is corrupted.
Sangwook Kim [Fri, 20 Sep 2019 05:20:48 +0000 (14:20 +0900)]
Early init ecore regardless of the current mode
Gleb Balykov [Thu, 2 Nov 2017 17:01:51 +0000 (20:01 +0300)]
Support hydra mode
Kirill Frolov [Mon, 23 Sep 2019 18:46:11 +0000 (21:46 +0300)]
More verbose errors logging for libcoreclr.so
See https://github.sec.samsung.net/dotnet/home/issues/328
In case of EPERM error write error reason to log.
Woongsuk Cho [Mon, 26 Aug 2019 09:57:31 +0000 (18:57 +0900)]
fix bugs which found by coverity
Woongsuk Cho [Tue, 3 Sep 2019 05:16:42 +0000 (14:16 +0900)]
skip AOT if skip optimization option is enabled
Woongsuk Cho [Fri, 20 Sep 2019 01:03:46 +0000 (10:03 +0900)]
to prevent crash while process terminate on profiling mode, kill process immedately without coreclr_shutdown
Hyungju Lee [Wed, 18 Sep 2019 11:54:34 +0000 (20:54 +0900)]
SMACK Label on NamedLock directories
Change-Id: I669703cb1ac8d47b242c7b537235693cbb074ca1
Hyungju Lee [Tue, 13 Aug 2019 04:44:47 +0000 (13:44 +0900)]
Build error fix
Change-Id: Ib9d113e2e14e1aafa7e407e633a6229ac3ad6504
김상욱/Common Platform Lab(SR)/Engineer/삼성전자 [Thu, 8 Aug 2019 01:55:24 +0000 (10:55 +0900)]
Add switches for crossgen (#91)
* Refactor to use NI_FLAGS_* flags
* Enable --legacy and --instrument switches
* Change switch name to --compatibility
* Add more description and fix conditions
* Add a verbose flag
* Update descriptions
Gleb Balykov [Wed, 7 Aug 2019 11:36:51 +0000 (14:36 +0300)]
Reenable default base address for system dlls support
Gleb Balykov [Wed, 7 Aug 2019 11:36:19 +0000 (14:36 +0300)]
Support 3.0-preview7
j-h.choi [Wed, 7 Aug 2019 06:28:11 +0000 (15:28 +0900)]
Bug fixed. Break out of nested loop.
j-h.choi [Tue, 6 Aug 2019 00:50:38 +0000 (09:50 +0900)]
Nuget with no dependency applies TAC
j-h.choi [Mon, 5 Aug 2019 06:09:15 +0000 (15:09 +0900)]
Fixed svace (376818, 386676, 386690)
j-h.choi [Tue, 23 Jul 2019 23:59:08 +0000 (08:59 +0900)]
Verify that the assembly is in the TPA list.