Hyungju Lee [Thu, 16 Apr 2020 00:25:13 +0000 (09:25 +0900)]
Remove dotnet-launcher dependency from dotnet-launcher-devel
Change-Id: I319e8aa78090b9f8ccde897832f51773de4b15a7
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.
j-h.choi [Mon, 22 Jul 2019 04:20:13 +0000 (13:20 +0900)]
Code refactoring
Hyungju Lee [Thu, 18 Jul 2019 11:07:40 +0000 (20:07 +0900)]
Create .gitignore
Change-Id: I7ddaaa37de167f783dadb3eeecb1fa14adf72338
j-h.choi [Thu, 18 Jul 2019 00:23:11 +0000 (09:23 +0900)]
Remove the commented code
j-h.choi [Wed, 17 Jul 2019 05:55:57 +0000 (14:55 +0900)]
Code cleanup of TAC
remove unused service script file by system part request (#84)
Keep api for backward-compatibility and code clean-up (#82)
"ni-common.h" contains exposed API set. That APIs already used in VD tools
So, the interface should not be changed for compatibility.
And the parameter "doGenUniqueBaseSystem" can be removed.
We decided to apply the base address to the TPA dll only.
So, we can decied whether applying the base address or not with TPA list checking.
.NETCore 3.0.0 preview doesnot contains "/BaseAddress" option for crossgen. (#81)
So, disable base_addr_support related code with temporal flag.
This flag will be removed after merging .NETCore 3.0.0 Release Candidate.
And remove change smack command for SYSTEM_BASE_ADDR_FILE
The base_addr_file is generated after first ni file generation.
So, smack change command is not necessary.
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Tue, 16 Jul 2019 05:38:38 +0000 (14:38 +0900)]
Modify the problem that the original assembly is deleted (#80)
Gleb Balykov [Wed, 10 Jul 2019 13:26:09 +0000 (16:26 +0300)]
Move base address file from /usr to /opt/usr
Gleb Balykov [Tue, 9 Jul 2019 13:56:24 +0000 (16:56 +0300)]
Move defines to spec and set smack label on file with default base addresses
Gleb Balykov [Mon, 8 Jul 2019 10:45:32 +0000 (13:45 +0300)]
Review and rebase changes
Gleb Balykov [Thu, 4 Jul 2019 10:37:10 +0000 (13:37 +0300)]
Enable nitool support of unique default base address generation by default
This behavior can be changed manually in spec file: -DUNIQUE_DEFAULT_BASE_ADDR_SUPPORT
Gleb Balykov [Thu, 4 Jul 2019 10:30:19 +0000 (13:30 +0300)]
Enable generation of unique default base address for system dlls by default
This behavior can be changed manually in source code: nitool.cc -> doGenUniqueBaseSystem
Gleb Balykov [Fri, 28 Jun 2019 12:55:38 +0000 (15:55 +0300)]
Add nitool option to compile system libs with unique default base address
Gleb Balykov [Tue, 25 Jun 2019 17:21:22 +0000 (20:21 +0300)]
Add setup of COMPlus_UseDefaultBaseAddr environment variable
Merge pull request #72 from j-h-choi/tac_env
Add define for TAC in launcher_env.h
Merge pull request #77 from y-yamshchiko/iss154
add getRuntimeDir() output to nativeLibPath