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
Yaroslav Yamshchikov [Tue, 2 Jul 2019 12:45:02 +0000 (15:45 +0300)]
add getRuntimeDir() output to nativeLibPath
This directory contains .so's coreCLR is looking for and can not find
elsewhere. We think there should be this path.
Merge pull request #67 from g-balykov/add-setenvvariable-wrapper
Add Dotnet.Launcher.Environment.SetEnvironmentVariable wrapper
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Thu, 4 Jul 2019 00:44:57 +0000 (09:44 +0900)]
Merge branch 'tizen' into tac_env
Merge pull request #74 from dotnet/bug_fix_ni_pkg_dll_option
bug-fix : support TAC and .native_image on --pkg-dll option
Merge pull request #73 from dotnet/use_concatPath_for_ni_sub_dir
Change APP_NI_SUB_DIR from "/.native_image" to ".native_image"
Gleb Balykov [Tue, 25 Jun 2019 09:56:38 +0000 (12:56 +0300)]
Add Dotnet.Launcher.Environment.SetEnvironmentVariable wrapper for System.Environment.SetEnvironmentVariable, delegate for which could be created in dotnet-launcher and used to setup app specific env variable after coreclr_initialize
j-h.choi [Thu, 27 Jun 2019 06:12:06 +0000 (15:12 +0900)]
Add define for TAC in launcher_env.h
Woongsuk Cho [Wed, 3 Jul 2019 03:59:23 +0000 (12:59 +0900)]
bug-fix : support TAC and NI_SUB_DIR for nitool --pkg-dll option
Woongsuk Cho [Wed, 3 Jul 2019 02:16:00 +0000 (11:16 +0900)]
Change APP_NI_SUB_DIR from "/.native_image" to ".native_image"
and use concatPath() function to combine path for APP_NI_SUB_DIR
Woongsuk Cho [Thu, 20 Jun 2019 05:17:19 +0000 (14:17 +0900)]
Use AssemblyLoadContext.LoadFromAssemblyName instead of AssemblyLoadContext.LoadFromAssmblyPath
There are some problems with loading assembly using actual file path.
- It is unnatural to load assembly which is included in TPA using path.
- TPA is set to the absolute path of the assembly files.
The current implementation preloads assembly files with the path including the symlink.
It makes assembly reloading in the coreclr because the path is not same.
So, I changed implementation to load assemblies with assembly name.
In addition, I changed implementation that the assembly name is not duplicated
Merge pull request #71 from j-h-choi/tac_dir
[Bug-fix] Create '/opt/usr/dotnet' directory
j-h.choi [Thu, 27 Jun 2019 05:36:00 +0000 (14:36 +0900)]
[Bug-fix] Create '/opt/usr/dotnet' directory
Merge pull request #64 from j-h-choi/tizen
Modify build error
j-h.choi [Tue, 11 Jun 2019 09:40:01 +0000 (18:40 +0900)]
Modify build error
j-h.choi [Tue, 11 Jun 2019 09:15:14 +0000 (18:15 +0900)]
Merge branch 'j-h-choi-tizen' into tizen
j-h.choi [Tue, 11 Jun 2019 09:14:14 +0000 (18:14 +0900)]
Merge branch 'tizen' of https://github.sec.samsung.net/j-h-choi/dotnet-launcher into j-h-choi-tizen
j-h.choi [Tue, 11 Jun 2019 06:26:37 +0000 (15:26 +0900)]
Add 'Tizen Assembly Cache' feature
Woongsuk Cho [Tue, 11 Jun 2019 08:05:57 +0000 (17:05 +0900)]
remove build warning message
Merge pull request #61 from dotnet/use_app_ni_path
generate native image files in the .native_image folder for the pkg aot.
Merge branch 'tizen' into use_app_ni_path
Merge pull request #62 from dotnet/generate_coreLib_ni_when_install
Generate native image for System.Private.CoreLib.dll when dotnet-launcher package installed
j-h.choi [Mon, 10 Jun 2019 06:04:05 +0000 (15:04 +0900)]
Add comments for added function in utils.h
Woongsuk Cho [Wed, 5 Jun 2019 01:58:03 +0000 (10:58 +0900)]
- generate NI for System.Private.CoreLib.dll
- add error code for ni_common
Generate native image for System.Private.CoreLib.dll when dotnet-launcher package installed.
System.Private.CoreLib.dll should be AOTed for other dll's AOTC.
최종헌/Common Platform Lab(SR)/Engineer/삼성전자 [Fri, 7 Jun 2019 00:30:27 +0000 (09:30 +0900)]
Merge branch 'tizen' into tizen
Mikhail Kurinnoi [Mon, 3 Jun 2019 12:18:47 +0000 (15:18 +0300)]
Hardcode injection lib path.
Fix https://github.sec.samsung.net/dotnet/dotnet-launcher/issues/59
C# .dll with code for type preloading (#57)
* Preload common managed code
* Tizen.Init.dll for type preloading and caller code
Woongsuk Cho [Tue, 4 Jun 2019 01:54:33 +0000 (10:54 +0900)]
generate native image files in the .native_image folder for the pkg aot.
j-h.choi [Fri, 17 May 2019 00:47:33 +0000 (09:47 +0900)]
TAC support for memory optimization
Merge pull request #56 from dotnet/donot_remove_standalone_option_from_cmdline
bug-fix: --standalone option should be remained after chanig cmdline
Woongsuk Cho [Sun, 12 May 2019 23:08:33 +0000 (08:08 +0900)]
bug-fix: --standalone option should be remained after chanig cmdline
Merge pull request #54 from dotnet/change_cmdline_standalone_mode
Set full appid string to cmdline at standalone mode
Woongsuk Cho [Tue, 23 Apr 2019 01:38:10 +0000 (10:38 +0900)]
To prevent appid from getting truncated to cmdline in standalone mode, add padding
Merge pull request #52 from dotnet/use_runtime_dir_for_crossgen
Use runtime directory to get crossgen path instead of device api directory.
Woongsuk Cho [Mon, 15 Apr 2019 02:01:40 +0000 (11:01 +0900)]
Use runtime directory to get crossgen path instead of device api directory
crossgen executable is included in the coreclr package. So, it is more natural to use the coreclr directory.
In addition, we have to eliminate unnecessary errors which occured while removing coreclr-extra packages from the image.
Woongsuk Cho [Fri, 12 Apr 2019 01:25:33 +0000 (10:25 +0900)]
Bug-fix : plugin extra directory should be added for TPA searching directory.
Woongsuk Cho [Wed, 30 Jan 2019 03:40:52 +0000 (12:40 +0900)]
Add RTLD_NODELETE option to open plugin library.
Woongsuk Cho [Wed, 13 Feb 2019 06:29:49 +0000 (15:29 +0900)]
Add TPA cache to reduce application startup time.
It takes a lot of time to configure the TPA through file I/O
in the case of an application launching as standalone while device booting (like VD CSFS application).
To avoid this kind of overhead, add tool to create TPA cache and modify path_manager to get TPA list.
Woongsuk Cho [Mon, 8 Apr 2019 04:37:49 +0000 (13:37 +0900)]
Create directories for coreclr / corefx
- /tmp/.dotnet : lockfiles for IPC is created under /tmp/.dotnet directory
- /home/owner/.dotnet : intermediate cert and temporal cert chain is stored under /home/owner/.dotnet
Merge pull request #48 from dotnet/remove_dependnecy_from_multiByteToWideChar
remove dependency from multiByteToWideChar
Woongsuk Cho [Thu, 4 Apr 2019 04:41:37 +0000 (13:41 +0900)]
bug-fix : To support backward-compatibility, add default value to regenerateAppNI().
Woongsuk Cho [Thu, 4 Apr 2019 05:01:49 +0000 (14:01 +0900)]
remove dependency from multiByteToWideChar
multiByteToWideChar() removed from unix exports from coreclr 3.0.0 prev 3
So, add char* to char16_t* API and use that
Merge pull request #45 from dotnet/update_ni_common_to_handle_exe_extension
Refactoring ni_common.cc
Woongsuk Cho [Wed, 13 Mar 2019 22:11:36 +0000 (07:11 +0900)]
Merge branch 'update_ni_common_to_handle_exe_extension' of github.sec.samsung.net:dotnet/dotnet-launcher into update_ni_common_to_handle_exe_extension
Conflicts:
NativeLauncher/installer-plugin/ni_common.cc
Woongsuk Cho [Wed, 13 Mar 2019 05:46:00 +0000 (14:46 +0900)]
Refactoring ni_common.cc
1. add /out option to crossgen to handle extension change case
2. move duplicated code
Woongsuk Cho [Wed, 13 Mar 2019 05:46:00 +0000 (14:46 +0900)]
Refactoring ni_common.cc
1. add /out option to crossgen to handle extension change case
2. move duplicated code
Woongsuk Cho [Wed, 6 Mar 2019 04:05:52 +0000 (13:05 +0900)]
Enable r2r/fnv selection for -regen-all-app option.
Previous implemenataion supports r2r mode only for --regen-all-app.
For convinence of development enable --r2r option for --regen-all-app.
ex) nitool --r2r --rege-all-app
Woongsuk Cho [Wed, 6 Mar 2019 04:05:52 +0000 (13:05 +0900)]
Enable r2r/fnv selection for -regen-all-app option.
Previous implemenataion supports r2r mode only for --regen-all-app.
For convinence of development enable --r2r option for --regen-all-app.
ex) nitool --r2r --rege-all-app
Woongsuk Cho [Mon, 25 Feb 2019 09:25:27 +0000 (18:25 +0900)]
Add COMPlus_DebugWriteToStdErr=1 to environment.
System.Diagnostics.Debug.WriteLine() function write logs to journalctl which cannot be accessed by 3rd party developer.
To show that logs to dlogutil, add environment value "COMPlus_DebugWriteToStdErr=1".
Igor Kulaychuk [Thu, 24 Jan 2019 20:21:27 +0000 (23:21 +0300)]
Call injectLibrary() after plugin initialization
Change-Id: Ief3c954196f6e41c841943f100b884d67f2a704f
Hyungju Lee [Wed, 19 Dec 2018 01:08:03 +0000 (10:08 +0900)]
Free localDataPath after done using it
Change-Id: I336bb29ed005c5a750176a064ef4e7d837c73046
Woongsuk Cho [Fri, 7 Dec 2018 02:07:04 +0000 (11:07 +0900)]
Remove dependency from Elementary
To use dotnet-launcher on the headless device (device without a graphical user interface),
remove build and runtime dependency from Elementary.
Elementary is used in ther launcher.cc file to precreate elm_window for enhancing application startup time.
To remove dependency, load elementary library with dlopen.
If libelementary.so.1 file doesnot exist, precreation is skipped.
Woongsuk Cho [Tue, 4 Dec 2018 07:17:04 +0000 (16:17 +0900)]
To support headless devices, it is necessary to remove graphics related dependencies.
This patch is the first one that uses liblaunchpad instead of launchpad which has a EFL dependency.
Woongsuk Cho [Tue, 4 Dec 2018 06:56:46 +0000 (15:56 +0900)]
Sometimes a process terminates abnormally due to a signal generated during coreclr_shutdown.
In order to handle this situation, plugin must get notification before coreclr_shutdown.
So, call pluginFinalize before coreclr_shutdown.
And unload the plugin library after coreclr_shutdown() to avoid breaking the signal chain.
박정혁/Tizen Platform Lab(SR)/Staff Engineer/삼성전자 [Mon, 26 Nov 2018 23:07:47 +0000 (08:07 +0900)]
Merge pull request #25 from dotnet/ignore_signal_when_terminate
ignore SIGABRT after starting coreclr shutdown
Woongsuk Cho [Mon, 26 Nov 2018 08:12:57 +0000 (17:12 +0900)]
If the native upcall comes after starting coreclr shutdown steps, SIGABRT is raised by the PalException.
To avoid that kind of crash, ignore SIGABRT after starting coreclr shutdown.
Woongsuk Cho [Wed, 7 Nov 2018 10:21:13 +0000 (19:21 +0900)]
Allow ni common initialization for arm architecture only.
AOTed dlls which generated under x86 architecture do not work correctly.
So, skip ni file generation except arm architecture.
NI_COMMON module can be used by other tools (for example vd-nitool)
So, add architecture checking code in the initNICommon() function
Woongsuk Cho [Thu, 4 Oct 2018 23:11:31 +0000 (08:11 +0900)]
assgin return value to unused variable to avoid build warning message
Woongsuk Cho [Tue, 2 Oct 2018 04:31:37 +0000 (13:31 +0900)]
check size before calling substr()
Woongsuk Cho [Tue, 2 Oct 2018 04:38:24 +0000 (13:38 +0900)]
add missing else
Igor Kulaychuk [Mon, 1 Oct 2018 11:19:40 +0000 (14:19 +0300)]
Move injection to realMain
Change-Id: I33a114b0d1f524b922c4dc0f81bbfaac08168f6c
Igor Kulaychuk [Mon, 1 Oct 2018 09:22:46 +0000 (12:22 +0300)]
Injection refactoring: code cleanup
Remove gotos, add comments
Change-Id: I87d7be179225c3e4ad5a28d167a862b08f1ce0fb
Signed-off-by: Igor Kulaychuk <igor.kulaychuk@gmail.com>
Merge pull request #13 from dotnet/memory_profiler_fix
Memory profiler fix for security capabilities
Petr Bred [Fri, 28 Sep 2018 10:16:34 +0000 (13:16 +0300)]
Refactoring and add detail comments
Signed-off-by: Petr Bred <p.bred@samsung.com>
Aleksei Vereshchagin [Thu, 13 Sep 2018 19:37:54 +0000 (22:37 +0300)]
Use DOTNET_LAUNCHER_INJECT instead of LD_PRELOAD for HEAPTRACK configuration
Alexey Vereschagin [Wed, 12 Sep 2018 23:35:27 +0000 (02:35 +0300)]
Implement injectLibrary() function
Aleksei Vereshchagin [Thu, 13 Sep 2018 18:37:25 +0000 (21:37 +0300)]
Implement injection logic with injectLibrary() stub
Aleksei Vereshchagin [Wed, 5 Sep 2018 16:43:30 +0000 (19:43 +0300)]
Configurations for 'unified' launch for profilers
- the same way to launch both profilers through profctl
Signed-off-by: Aleksei Vereshchagin <avereschagin@dev.rtsoft.ru>
Woongsuk Cho [Thu, 6 Sep 2018 01:31:08 +0000 (10:31 +0900)]
support tizen5 rid
Eden Lee [Fri, 24 Aug 2018 03:50:28 +0000 (12:50 +0900)]
Fix wrong arguments in corerun mode
Change-Id: I3d0bfa0cfab368d07ce85b867461d77c471d8329
Aleksei Vereshchagin [Fri, 1 Jun 2018 09:57:07 +0000 (12:57 +0300)]
Add HEAPTRACK, COREPROFILER and LIVEPROFILER configurations
Change-Id: I554dacad5b7f6f1e5b7339c60fba4c56926b147a
Signed-off-by: Petr Bred <p.bred@samsung.com>
Igor Kulaychuk [Thu, 16 Aug 2018 17:13:59 +0000 (20:13 +0300)]
Disable debug pipes and semaphores creation in case of non-standlone mode
Change-Id: I618eaa439ab7cbda7b21809ad2b4f200230292a5
Woongsuk Cho [Fri, 10 Aug 2018 04:37:01 +0000 (13:37 +0900)]
delete erroneously added code by merge
Change-Id: I19f8b1023d61b900506c33887e071987e12e4919
Woongsuk Cho [Fri, 10 Aug 2018 02:19:24 +0000 (11:19 +0900)]
create coredump for unhandled exception
Change-Id: Ic03d31c38b0c2e6626844a7707e6c9e111729791
Woongsuk Cho [Fri, 10 Aug 2018 01:19:39 +0000 (10:19 +0900)]
use write function instead of fprintf in the signal handler
Change-Id: Idb95796bc59841a3ffa325272ffe983fe893d43a
Woongsuk Cho [Fri, 10 Aug 2018 01:15:09 +0000 (10:15 +0900)]
support corerun mode
Change-Id: Ieed7de4eeec2238e02191c4669bd28aa15bde1c1
Woongsuk Cho [Wed, 8 Aug 2018 05:54:45 +0000 (14:54 +0900)]
set environment for corefx special folder
Change-Id: I80e0dafb32f1b716142c50371a1bd5779ca01559
Woongsuk Cho [Fri, 27 Jul 2018 04:34:18 +0000 (13:34 +0900)]
donot create coredump file for unhandled exception
Change-Id: I6cf6f566357250d7161effb34bbbd26d473791af
Woongsuk Cho [Fri, 27 Jul 2018 04:23:40 +0000 (13:23 +0900)]
add plugin interface to check log control
Change-Id: Ib6ad49a13b8064582d100be10d08b7f8ded8ef8d
Woongsuk Cho [Fri, 27 Jul 2018 04:17:15 +0000 (13:17 +0900)]
use proper dlog tag
Change-Id: I85a5cd0c5aec1ceb12a35edbf9d50365d7862396
Eden Lee [Thu, 26 Jul 2018 06:19:55 +0000 (06:19 +0000)]
Merge "set environment for debugging by env_list" into tizen
Woongsuk Cho [Tue, 17 Jul 2018 00:22:03 +0000 (09:22 +0900)]
set environment for debugging by env_list
Change-Id: If360563f29bb7ec6ff336d318fea2e361bfb3549
Woongsuk Cho [Tue, 24 Jul 2018 11:07:47 +0000 (20:07 +0900)]
caching tpa list for optimization
Change-Id: I7853ff5979afbfdd88bb55910ddd89087ebec1ba
Woongsuk Cho [Tue, 17 Jul 2018 07:13:28 +0000 (16:13 +0900)]
call plugin_initialize before mainloop start
Change-Id: Id493273c8e5c9cee92c77d2e8779eae9ed6030b2
Woongsuk Cho [Mon, 16 Jul 2018 10:34:59 +0000 (19:34 +0900)]
add log manager to redirect stderr to dlog
Change-Id: Ifee7e724f155897dbc92fb27e7f402e5ced6ba54
Woongsuk Cho [Wed, 11 Jul 2018 01:35:15 +0000 (10:35 +0900)]
bug-fix : support plugin path for tpa
Change-Id: I98c0f768dcc6d135cdbc6bc2b3e9682d78cbd933
Woongsuk Cho [Tue, 10 Jul 2018 01:18:40 +0000 (10:18 +0900)]
check runtime initialize before launch application to avoid crash
Change-Id: I142bd6f5ab42414d0f9183535751143a3e20d3e3
Woongsuk Cho [Tue, 10 Jul 2018 01:17:08 +0000 (10:17 +0900)]
use new operation instead of calloc to avoid crash
Change-Id: I6cc0995be7fb08737ce47aa8712f5883ae072e70