summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2019-03-07Fix hijacking for ARM/ARM64/x86 on Unix (#20042)Jan Vorlicek3-16/+41
* Fix hijacking for ARM/ARM64/x86 on Unix We were not checking the case when we have interrupted a thread inside of a function epilog for other architectures than amd64. When such an interruption happens, GS cookie check in a stack walking has failed, since we are unable to decode GS cookie location when the IP is in epilog. This fix implements IsIPInEpilog for all architectures and makes the check unconditional. Change-Id: I9adafe6df13ecaff90fc2bf32d8a8db5f40bdcda
2018-12-19Add an error log to determine where to throw BadImageFormatExceptionsubmit/tizen_5.0_base/20181219.005417accepted/tizen/5.0/base/20181221.113757Woongsuk Cho13-0/+87
Change-Id: I0231e9c5209ce39acfe37c54cfcda934b4f773db
2018-09-18[Tizen] Fix gen-buildsys-clang.sh to set CLR_CMAKE_LINUX_IDHyungju Lee1-0/+3
Change-Id: I95043b2fcdccd27e3ae198f7c41d89bde3049c48
2018-09-18FillRegDisplay: initialize volatileCurrContextPointers for ARM and ARM64Konstantin Baladurin1-1/+12
We need to initialize volatileCurrContextPointers because they could be used by GC in the case of the leaf frame. This patch fixes crashes during GC when we are single stepping using managed debugger.
2018-09-18Move assert so it doesn't fire for null addressesChris Sienkiewicz1-1/+1
2018-09-18Add missing semicolonChris Sienkiewicz1-1/+1
2018-09-18Restore deleted spaceChris Sienkiewicz1-0/+1
2018-09-18Ensure thumb bit is set when calling FindOrCreateInitAndAddJitInfo. Add an ↵Chris Sienkiewicz2-2/+2
assert to FindOrCreateInitAndAddJitInfo when on arm to ensure the thumb bit is set
2018-09-18Use macro rather than manually setting thumb bit in debugger.cppChris Sienkiewicz1-4/+1
2018-09-18Ensure thumb bit is set when intializing a code region.Chris Sienkiewicz1-1/+1
2018-09-18[Tizen] Fix call convension for profiler wrappers with clang 5 supportPetr Bred4-12/+12
Signed-off-by: Petr Bred <p.bred@samsung.com>
2018-09-18Zapper::CompileAssembly: save NI file atomicallyKonstantin Baladurin3-4/+13
It can get rid of possible problems with corrupted NI files if crossgen will be killed during image saving.
2018-09-18Fix call convension for profiler wrappers.Dmitri Botcharnikov1-3/+3
Change-Id: I7937dfffeb7500d37b4e2da485a563a442b38b8c
2018-09-18i386: Refixed declaration in eetoprofinterfaceimpl.cpp with definitionSergey Ignatov3-9/+9
2018-09-18i386: Fixed declaration in eetoprofinterfaceimpl.cpp with definitionSergey Ignatov1-3/+3
2018-09-18Revert "Launching the Memory Profiler on x86 emulator may lead to crash in ↵Sergey Ignatov2-7/+0
coreclr (xmm bug)" This reverts commit a6695d168396847df8d006a8743c84e5141824af.
2018-09-18PEImageLayout: flush instruction cache only for pages with relocs.Konstantin Baladurin1-17/+29
We need to flush instruction cache only for pages that have relocations instead of full sections because otherwise application's shared clean memory is increased in some cases on Linux.
2018-09-18Launching the Memory Profiler on x86 emulator may lead to crash in coreclr ↵Sergey Ignatov2-0/+7
(xmm bug)
2018-09-18Fix unset ZapRelocationType for fixup (#18589)Gleb Balykov1-1/+1
2018-09-18Fix build breaks with older MSVC compiler (#18725)Jan Kotas1-1/+2
2018-09-18Remove relocations for vtable chunks (#17147)Gleb Balykov22-109/+463
* Separate sections READONLY_VCHUNKS and READONLY_DICTIONARY * Remove relocations for second-level indirection of Vtable in case FEATURE_NGEN_RELOCS_OPTIMIZATIONS is enabled. Introduce FEATURE_NGEN_RELOCS_OPTIMIZATIONS, under which NGEN specific relocations optimizations are enabled * Replace push/pop of R11 in stubs with - str/ldr of R4 in space reserved in epilog for non-tail calls - usage of R4 with hybrid-tail calls (same as for EmitShuffleThunk) * Replace push/pop of R11 for function epilog with usage of LR as helper register right before its restore from stack
2018-09-18[x86/Linux] Fix marshalling struct with 64-bit types (#17455)Konstantin Baladurin2-0/+26
* [x86/Linux] Fix marshalling struct with 64-bit types The System V ABI for i386 defines 4-byte alignment for 64-bit types. * [Linux/x86] Fix marshalling tests in the case of System V i386 ABI
2018-09-18Fix OOPStackUnwinderX86::Unwind crash when Eip is invalidIgor Kulaychuk1-1/+1
2018-09-18Fix EECodeManager::GetAmbientSP on x86/LinuxIgor Kulaychuk1-1/+2
2018-09-18Fix unwinding of funclet with no epilog on x86/LinuxIgor Kulaychuk1-14/+5
2018-09-18Fix x86/Linux ICorDebug frames APIIgor Kulaychuk2-17/+17
2018-09-18[Tizen] Add -pie to linker optionHyungju Lee1-0/+1
There have been no -pie linker option. This patch adds -pie linker option into crossgen(for tizen) This originates from 0024-Add-pie-to-linker-option.patch
2018-09-18[Tizen] Enable -O3 optimization in clang 3.8junghyuk.park1-2/+2
2018-08-13Sign xstate binary from correct location (#19470)Matt Mitchell1-1/+5
* Sign xstate binary from correct location * Only submit xstate binary for x86
2018-08-13Sign api-ms-win-core-xstate-l2-1-0.dll (#19451)Matt Mitchell3-1/+14
This file is only catalog signed in RS4. Sign during the build. To achieve this copy the CRT binaries locally rather than referencing from the UCRT location directly.
2018-08-07Add Tizen 5.0 RIDGleb Balykov1-0/+3
2018-07-31JIT: port extra check to struct of struct of x promotion to relase/2.1Andy Ayers1-0/+12
Port of #19156. Avoid promoting structs that contain struct fields that themselves wrap single simple fields, if those single simple fields are smaller than their enclosing struct. Otherwise we run the risk of losing track of the "extra" bytes in the innner struct. Addresses #19149.
2018-07-12Skip old time zones adjustments with offsets higher than 14h (#18305) (#18874)Krzysztof Wicher2-13/+104
* Skip old time zones with offsets higher than 14h * apply offline feedback * fix braces
2018-07-02Port the fix for Issue 17969 to Rel/2.1Carol Eidt1-8/+11
2018-06-28Port to 2.1: Fix alternate stack cleanup on MUSL (#18687)Jan Vorlicek1-0/+4
The MUSL implementation of sigaltstack checks that the ss.ss_size is larger or equal than the MINSIGSTKSZ even when the ss_flags is set to SS_DISABLE even though Linux man page for sigaltstack states that when this flag is set, all other ss fields are ignored. We were not setting the ss_size in this case and it was causing a memory leak for each thread that has terminated on MUSL based Linux distros like Alpine. Glibc implementation doesn't check the ss_size when the SS_DISABLE is set so the problem was really MUSL specific.
2018-06-27JIT: Fix bug in finally cloning caused by unsound callfinally reorderingAndy Ayers1-17/+32
Port of #18348 to release/2.1 We need to make sure that if we reorder a callfinally during finally cloning that the callfinally is actually the one being targeted by the last block in the try range. Closes #18332. Linked issue has some more detailed notes.
2018-06-27Fix SpanHelpers.ClearWithoutReferences alignment detection (#18222)Pent Ploompuu1-5/+5
2018-06-27Optimize Array.Clear using SpanHelpers (#18101)Jan Kotas4-36/+41
Reimplement most of Array.Clear in managed code using Span Clear helpers. Fixes dotnet/corefx#29848
2018-06-26Fix number formatting exception with empty NumberGroupSizes array (#18221) ↵Stephen Toub1-1/+2
(#18667)
2018-06-26Allow ILCodeVersion to fallback to default IL (#18502)Noah Falk2-14/+35
* Allow ILCodeVersion to fallback to default IL For compat with profilers that used our APIs in unexpected ways we can allow the ILCodeVersion to fallback to the default IL code when no IL was explicitly given. * Fix incorrect usage of ILCodeVersion::AsNode (issue #18602) When the debugger is querying the active rejit IL for an IL method that has not been rejitted it incorrectly creates a VMPTR_ILCodeVersionNode for a code version that shouldn't have one.
2018-06-26AssemblyName parsing with unicode/emoji crashes (#18309)Luqun Lou1-3/+3
2018-06-26Fix handling of generating relative path to parent (#18460)Jeremy Kuhne1-6/+16
Fixes #30263
2018-06-26mach_absolute_time as the primary clock source on macOS (corefx#30391) ↵Stephen Toub1-20/+20
(#18505) (#18526) macOS 10.12+ supports clock_gettime (HAVE_CLOCK_MONOTONIC is defined) However, mach_absolute_time has better resolution and should be used as the primary clock source.
2018-06-01Fix alternate stack for Alpine docker on SELinux (#17936) (#17975)kasper31-12/+6
For some reason, the Alpine docker container running on a SELinux host maps heap as RWX. When we allocate alternate stack from the heap, we also change the protection of the first page to PROT_NONE so that it can serve as a guard page to catch stack overflow. And when we free the alternate stack, we restore the protection back to PROT_READ | PROT_WRITE. The restoration fails in Alpine docker container running on a SELinux host with EPROT failure and the SELinux log reports that an attempt to change heap to executable was made. So it looks like the kernel has added the PERM_EXEC to the permissions we have passed to the mprotect call. There is a code in the mprotect implementation that can do that, although I don't fully understand the conditions under which it happens. This is driven by the VM_MAYEXEC flag in the internal VMA block structure. To fix that, I've modified the alternate stack allocation to use mmap / munmap instead of C heap allocation.
2018-05-31Update g_highest_address and g_lowest_address in ↵Egor Chesakov1-1/+8
StompWriteBarrier(WriteBarrierOp::StompResize) on ARM (#18107)
2018-05-31Use sysconf(_SC_NPROCESSORS_CONF) instead of sysconf(_SC_NPROCESSORS_ONLN) ↵Egor Chesakov2-3/+17
in PAL and GC on ARM and ARM64
2018-05-04Fix for ARM secure delegate non-standard register argBruce Forstall1-9/+19
For ARM, doing a secure delegate call requires adding a custom calling convention argument R4 as the address of the secure delegate invoke indirection cell. This is done using the fgMorphArgs nonStandardArgs mechanism, and the argument is added at the end. For calls with 4 or more register arguments, this didn't work: we would initially set the non-standard arg as a non-register argument, and the nonStandardArgs check didn't consider converting an argument from a stack argument back to a register argument. The fix allows nonStandardArgs to be either stack or register arguments, no matter what their place in the argument list would imply. Fixes #17738
2018-05-03Revert "Make blobfeed containers private. (#17792)"Ricardo Arenas1-4/+2
This reverts commit 4950b038c84c223ddd9fc198dcf5722d46e21552.
2018-05-02Make blobfeed containers private. (#17792)Ricardo Arenas1-2/+4
2018-05-01Add runtimeconfig.json support for tiered compilation (#17839)Noah Falk1-1/+1