summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-10-07fix dwarf-based unwinding to the end of stacksubmit/tizen_5.5_wearable_hotfix/20201030.060217accepted/tizen/5.5/unified/wearable/hotfix/20201103.003343tizen_5.5_wearable_hotfixtizen_5.5accepted/tizen_5.5_unified_wearable_hotfixYaroslav Yamshchikov1-1/+1
We experience CLR crash on some architectures (at least on x86) in case of unhandled managed exception. libunwind steps to the very end of a stack, and if .eh_frame info is correct, it returns with retcode 0 and ip=0 from unw_step, then PAL calls unw_is_signal_frame with c->validate==0 which in turn dereferences zeroed ip in access_mem. libunwind spec says that retcode 0 from unw_step means very end of a stack, so PAL should not expect any frames, signal or not. It should convert cursor back to SEH representation and return with TRUE. corresponding PR to dotnet/runtime on upstream: https://github.com/dotnet/runtime/pull/42620
2020-10-07Revert "[Tizen] Fix crash on accessing 0x0 while unwinding (#287)"Yaroslav Yamshchikov1-3/+1
This reverts commit c4a72f57bee753daf09ffbc2a2dfe65ed1582919.
2020-07-03[Tizen] Unify dnetmemoryenumlib terms to match the codebase (#291)submit/tizen_5.5_wearable_hotfix/20201026.184306submit/tizen_5.5/20200729.021615submit/tizen_5.5/20200629.221218submit/tizen/20200703.012556accepted/tizen/unified/20200703.155115accepted/tizen/5.5/unified/wearable/hotfix/20201027.101953accepted/tizen/5.5/unified/20200729.230651accepted/tizen_5.5_unifiedMateusz Moscicki/System (PLT) /SRPOL/Engineer/Samsung Electronics2-20/+40
2020-06-30[Tizen] Fix cross build arm64 rootfs creation (#284)submit/tizen/20200629.221257accepted/tizen/unified/20200630.131323Gleb Balykov/AI Compiler Lab /SRR/Engineer/Samsung Electronics4-4/+6
2020-06-30[Tizen] Fix crash on accessing 0x0 while unwinding (#287)이형주/Common Platform Lab(SR)/Staff Engineer/삼성전자1-1/+3
Change-Id: I663d0fcdcd6fd8fb4c521d9bdbb4d234c96022ae
2020-06-26Fix a FNV error on arm64 (#286)정동헌/Common Platform Lab(SR)/Principal Engineer/삼성전자1-0/+2
Simple HelloWorld app can run with NI of System.Private.CoreLib.dll, HelloWorld.dll and System.Console.dll
2020-06-26Fix TPA map hash calculation. (#288)Mikhail Kurinnoi/AI Compiler Lab /SRR/Staff Engineer/Samsung Electronics3-2/+57
* Fix TPA map hash calculation. The point of issue is "the Turkish-I Problem". After locale changed, towupper() provide another result for "i" and different hash are calculated in case if file name have "i" letter. * Regression test for #37910
2020-06-24[Tizen] Pass compilation flags to asm files (#285)Gleb Balykov/AI Compiler Lab /SRR/Engineer/Samsung Electronics1-0/+1
2020-06-23[Tizen] Force Inline for Generic Methods (#224)submit/tizen/20200622.225420accepted/tizen/unified/20200623.124116정동헌/Common Platform Lab(SR)/Principal Engineer/삼성전자3-2/+17
This patch enables more generic method inlining for methods which are not compiled by NI.
2020-06-18Fix missing TransitionBlock methods (#33134)submit/tizen_5.5/20200623.003918accepted/tizen/5.5/unified/20200623.152349JUNG DONG-HEON1-3/+0
2020-06-18[Tizen] Add arm64 rootfs build scriptGleb Balykov8-4/+444
2020-06-18[Tizen] Enable aarch64 gbs buildGleb Balykov2-6/+8
2020-06-18[Tizen] Add tizen arm64 toolchain file. Explicitly pass non-portable build ↵Gleb Balykov3-15/+57
to fix arm64 build on tizen (on armel non-portable build is default, tizen rid in general is non-portable).
2020-06-18Add JIT/Stress/ABI TestsJUNG DONG-HEON16-0/+1832
Cherrypick only test parts of below patches in public dotnet/runtime github - be8e050a6d27040d6c249382d99d57d973e919b2 Implement instantiating and unboxing through portable stublinker code… (#106) - 0e949491faee53d2a7ad4d5649be17e98e5d3a96 Some minor ABI stress improvements - 3f339687a8151e989bbb4673aab9b0abcddf5642 Mark emitted types assembly as collectible in ABI stress (dotnet/coreclr#26253) - a25dd1a45b6fdad114ffaa915550906c986aa1ca Remove redundant ABI stress tests (dotnet/coreclr#26183) - 57945676a6395da61b61ce427a055e77d330db86 Fix GenerateShuffleArray to support cyclic shuffles (dotnet/coreclr#26169) - 3b0ba1ee24823030a3fc7278dd064d24a49a90bb Add ABI stress tests (dotnet/coreclr#26090)
2020-06-18Implement instantiating and unboxing through portable stublinker code… (#106)JUNG DONG-HEON43-2407/+761
* Implement instantiating and unboxing through portable stublinker code - Handle only the cases with register to register moves - Shares abi processing logic with delegate shuffle thunk creation - Architecture specific logic is relatively simple - Do not permit use of HELPERREG in computed instantiating stubs - Fix GetArgLoc such that it works on all architectures and OS combinations Add a JIT stress test case for testing all of the various combinations - Use the same calling convention test architecture that was used as part of tail call work Rename secure delegates to wrapper delegates - Secure delegates are no longer a feature of the runtime - But the wrapper delegate lives on as a workaround for a weird detail of the ARM32 abi
2020-06-18Fix GenerateShuffleArray to support cyclic shuffles (dotnet/coreclr#26169)JUNG DONG-HEON4-20/+182
* Fix GenerateShuffleArray to support cyclic shuffles The GenerateShuffleArray was not handling case when there was a cycle in the register / stack slots shuffle and it resulted in an infinite loop in this function. This issue is Unix Amd64 ABI specific. To fix that, this change reworks the algorithm completely. Besides fixing the issue, it has also better performance in some cases. To fix the cyclic shuffling, I needed an extra helper register. However, there was no available general purpose register available, so I had to use xmm8 for this purpose. * Remove special handling of the hang from ABI stress
2020-06-05[x86/Linux] Fix SIGSEGV during evaluation abort routine.submit/tizen_5.5/20200607.233848submit/tizen/20200607.233857accepted/tizen/unified/20200608.144754accepted/tizen/5.5/unified/20200608.142150Mikhail Kurinnoi1-1/+16
In case of evaluation with implicit function call aborted by ```ICorDebugEval::Abort()```, CoreCLR crash with SIGSEGV at line https://github.com/dotnet/runtime/blob/e25517ea27311297c1e3946acb3b4382d5fa7fef/src/coreclr/src/vm/jitinterface.cpp#L14293 since ```m_pJM``` is ```NULL```. This happens because during ```EECodeInfo::Init()``` call, ```codeAddress``` parameter provide address inside native code region (this address belong to CallDescrWorkerInternal(), libcoreclr.so), but not address inside managed code, so, ```ExecutionManager::FindCodeRange()``` can't find appropriate ```RangeSection```. During investigation I found, that at line https://github.com/dotnet/runtime/blob/e25517ea27311297c1e3946acb3b4382d5fa7fef/src/coreclr/src/vm/stackwalk.cpp#L2584 current context was not changed properly (we have wrong ```Eip``` register value). I found, that ```FuncEvalFrame::UpdateRegDisplay()``` code https://github.com/dotnet/runtime/blob/e25517ea27311297c1e3946acb3b4382d5fa7fef/src/coreclr/src/debug/ee/debugger.inl#L238-L247 don't have x86/Linux support implemented. I propose changes, that were already made for other ```UpdateRegDisplay()``` implementations in order to provide proper context for x86/Linux.
2020-06-04[Tizen] Enable ASan annotation of passing to native code buffersAndrey Kazmin2-3/+47
Turn on ASan inteceptors while marshaling managed buffers to native code. We could not properly annotate already allocated on heap buffers, so we have to disable pinning of such objects. Current patch affects only pinning of native arrays.
2020-05-27[Tizen] Cleanup confusing symlinkssubmit/tizen_5.5/20200529.025744submit/tizen/20200529.025703accepted/tizen/unified/20200601.051718accepted/tizen/5.5/unified/20200601.002556Hyungju Lee1-11/+0
Change-Id: I032c9ff1e0f43e39d0d05a38eb95dabe2f1b6b25
2020-05-25Update package version to 3.1.3Alexander Soldatov/AI Compiler Lab /SRR/Staff Engineer/Samsung Electronics1-2/+2
2020-05-14Set vtable offset as containedJUNG DONG-HEON1-0/+1
- Can remove a machine instruction which adds vtable offset
2020-05-13[Tizen] Change the visibility of symbols for dnetmemoryenumlibsubmit/tizen_5.5/20200512.212247submit/tizen/20200528.065414accepted/tizen/unified/20200529.124257accepted/tizen/5.5/unified/20200522.160111Mateusz Moscicki2-6/+6
2020-04-22[Tizen] Skip tests, which throw System.OutOfMemoryException on TW3submit/tizen_5.5/20200422.104039submit/tizen/20200422.104050accepted/tizen/unified/20200423.054553accepted/tizen/5.5/unified/20200423.150450Gleb Balykov1-0/+2
2020-04-22[Tizen] Enable Debug builds for i686Sangwook Kim1-5/+0
2020-04-22[Tizen] Add a config knob for importing ibc filesSwift Kim3-2/+16
2020-04-16Fix PIE options (#26323)submit/tizen/20200415.223728accepted/tizen/unified/20200416.080052Jan Vorlicek45-128/+10
* Fix PIE options We were missing passing the -pie linker option. That means that while we were compiling our code as position independent, the executables (not shared libraries) were not marked as position independent and ASLR was not applied to them. They were always loaded to fixed addresses. This change adds the missing -pie option and also replaces all the individual settings of -fPIE / -fPIC on the targets we build by a centralized setting of CMAKE_POSITION_INDEPENDENT_CODE variable that causes cmake to add the appropriate compiler options everywhere. * Fix native parts of coreclr tests build The native parts of the tests are not built using the root CMakeLists.txt so I am moving enabling the position independent code to configurecompiler.cmake Change-Id: Ieafff8984ec23e5fdb00fb0c2fb017e53afbce88
2020-03-25[Tizen] Fix build of Runtime_1241 testsubmit/tizen/20200402.013218accepted/tizen/unified/20200402.155517Gleb Balykov1-3/+23
2020-03-25[Tizen] Add FEATURE_LARGEADDRESS_SUPPORTSangwook Kim3-0/+13
Many diagnostic tools are unaware of 32-bit applications which have large address spaces (> 2GB). Such tools include the TraceEvent library (required by PerfView and dotnet-trace), and Visual Studio. They assume the address range 0x80000000 through 0xFFFFFFFF as the system space and thus often fail to read symbols from event traces generated by CoreCLR. This workaround is to support such scenarios by simply discarding MSBs of 32-bit instruction pointer values in the trace output. Only a minimal set of values required for symbol resolution are affected by this change. Beware that you will have to manually restore the original values when you inspect them in lldb or etc.
2020-03-25[Tizen] Fix usage of ni.exe in readytorun testGleb Balykov1-1/+1
2020-03-25[Tizen] Add System.Private.CoreLib.pdb to coreclr-devel packageGleb Balykov1-1/+3
2020-03-25[Tizen] Move the executables(ilasm, ildasm) to use in dotnettool from devel rpmj-h.choi1-4/+4
2020-03-25modify integral tryparse to use memcpy (#2295)John Salem1-1/+1
2020-03-25Fix OverflowException from IntPtr casting (#14381)Swift Kim1-1/+1
2020-03-25[Tizen] Reduce arm_phdr_cb call overheadJUNG DONG-HEON3-1/+48
- Too many calls to arm_phdr_cb even though it get the same data. - It caches an ARM_CB_DATA for libcoreclr.so, then reuse.
2020-03-25[Tizen] RPM version of Tizen will be upgrade to 4.14.1.Woongsuk Cho1-5/+6
2020-03-25Change bIsFree check in DacValidateMethodTable (#1086)Dong-Heon Jung1-8/+1
Some commands of SOS validate a method table in DacValidateMethodTable. In the function, it checks whether a method table is FreeObjectMethodTable or not with GetClass() value. However, GetClass() should not be NULL. (There is an assert in GetClass()) In this patch, it compares pMT address with g_pFreeObjectMethodTable address only.
2020-03-25[Tizen] add pie linker option to createdumpWoongsuk Cho1-0/+1
2020-03-25Handle glibc sys/sysctl.h deprecation (#27048)Omair Majid1-2/+5
glibc has deprecated sys/sysctl.h: In file included from /coreclr/src/pal/src/misc/sysinfo.cpp:32: /usr/include/sys/sysctl.h:21:2: error: "The <sys/sysctl.h> header is deprecated and will be removed." [-Werror,-W#warnings] #warning "The <sys/sysctl.h> header is deprecated and will be removed." ^ 1 error generated. Fix that by preferring sysconf and only including sys/sysctl.h if HAVE_SYSCONF is not true. This mirrors the order of the implementation code in this file (sysinfo.cpp) which checks for HAVE_SYSCONF before HAVE_SYSCTL. Fixes #27008
2020-03-25[Tizen] Use -mstackrealign to sync up with Tizen build changesMikhail Kashkarov1-4/+6
Tizen i586 now builds with -mstackrealign by default: "Realign the stack at entry. On the x86, the -mstackrealign option generates an alternate prologue and epilogue that realigns the run-time stack if necessary. This supports mixing legacy codes that keep 4-byte stack alignment with modern codes that keep 16-byte stack alignment for SSE compatibility. ..." Change-Id: I36afd18998829f897c6b2b48687c4ae1d172b84b Signed-off-by: Mikhail Kashkarov <m.kashkarov@partner.samsung.com>
2020-03-25Enable NGEN for methods marked with AggressiveOptimization (#27259)Dong-Heon Jung1-1/+4
- Methods marked with AggressiveOptimization are not NGENed at all. - The methods are compiled during the runtime with high JITC overhead. - It makes launching time slower over 6% in our embedded systems.
2020-03-25Mark Relocation Section as NotNeeded (#25715)Dong-Heon Jung5-0/+110
- After relocation, relocation section in zap image is not necessary. - Mark the section as NotNeeded by giving advice(madvise with MADV_DONTNEED) - It reduces 120~150KB PSS in tizen sample apps.
2020-03-25[Tizen] Use PTRACE_GETREGSET for any arch when creating dumpSwift Kim1-13/+5
Also ignore ptrace NT_FPREGSET failures for arm processes on aarch64 kernels. Fixes #25707.
2020-03-25[Tizen] Add createdump to build outputSangwook Kim1-20/+20
2020-03-25[Tizen] Add coreclr_preload_assembly to CoreCLR host APIKonstantin Baladurin14-162/+1064
2020-03-25[Tizen] Enable Tizen ASan runtime supportVyacheslav Cherkashin2-1/+14
Enable libasansi.so support (libasan.so with switchable interceptors). Change-Id: I9ee9b47b7beab55f036ffc0697ffab2583e9701c Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
2020-03-25[Tizen] Implement ASan wrapper for Linux AMD64Vyacheslav Cherkashin3-0/+157
Change-Id: I48446ce7c8771a4c75149512bb7d8a8cb3fae8e5 Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
2020-03-25[Tizen] Implement ASan wrapper for Linux ARM32Vyacheslav Cherkashin6-0/+278
This commit implements wrappers that allow interception transitions from managed to external unmanaged code (CIL -> native) and back (native -> CIL). This allows enable/disable ASan during transitions. Due to this, we sanitize only external code, which allows us to achieve acceptable performance. Change-Id: I53ecdc14d28f7210cd9e7f5bd4db0c8ef5ed81fc Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
2020-03-25[Tizen] Implement detecting of sanitized librariesAndrey Drobyshev5-0/+182
Parse ".dynamic" section (ELF dynamic array tags) of the module being added, find ".rel(a).plt" section and search it for presence of '__asan_init' symbol. Change-Id: Ie7cc4c818b791b5f00713b42ba15131325b8152c Signed-off-by: Andrey Drobyshev <a.drobyshev@samsung.com>
2020-03-25Prevent freeing of the profiler on process shutdown.David Mason1-11/+6
2020-03-25[Tizen] skip dotnet specific arguments in corerunKonstantin Baladurin1-0/+13
Now we use corerun to run corefx tests instead of dotnet, because last one isn't available for Tizen/armel. So we need to skip dotnet specific arguments, we patch corerun for it because Microsoft.DotNet.RemoteExecutor tries to execute binary that it gets from /proc/self/maps, so we need a binary that will behave like dotnet.