Ahson Khan [Mon, 26 Mar 2018 05:19:11 +0000 (22:19 -0700)]
Update uses of AsBytes to use MemoryMarshal.AsBytes (dotnet/corefx#28460)
* Update uses of AsBytes to use MemoryMarshal.AsBytes
* Cleanup commented out code
* Remove AsBytes from MemoryExtensions Portable
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
Igor Kulaychuk [Mon, 26 Mar 2018 17:58:16 +0000 (20:58 +0300)]
Fix funclet unwinding on x86 Linux (#17144)
Adam Sitnik [Mon, 26 Mar 2018 17:49:43 +0000 (19:49 +0200)]
JitBench scenarios fix (#17154)
* each web app should use a separate directory to avoid conflicts + dead code removal
* update the framework package version to get scenarios benchmarks working
Jarret Shook [Mon, 26 Mar 2018 15:52:11 +0000 (08:52 -0700)]
Merge pull request #17151 from jashook/disable_armlb_windows_jobs
Disable armlb windows jobs
Steve MacLean [Mon, 26 Mar 2018 13:02:19 +0000 (09:02 -0400)]
[Arm64] Remove C++ stubs obscurring assembly versions (#17172)
Koundinya Veluri [Mon, 26 Mar 2018 11:06:55 +0000 (04:06 -0700)]
Don't require all-user permissions on the temp directory for named mutexes on Unix under docker (#17206)
Avoids the need for a workaround for one of the issues seen in https://github.com/dotnet/coreclr/issues/17098
Jacek Blaszczynski [Mon, 26 Mar 2018 08:51:00 +0000 (10:51 +0200)]
build-test.sh: support Clang v4.0 to v6.0, fix always false logic condition preventing tests build (#17025)
dotnet bot [Mon, 26 Mar 2018 07:58:25 +0000 (00:58 -0700)]
Vectorize Span.IndexOf for T = char, similar to T = byte. (#28464) (#17218)
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
Phil Garcia [Mon, 26 Mar 2018 06:14:00 +0000 (23:14 -0700)]
Fixed a few typos (#17217)
dotnet-maestro-bot [Mon, 26 Mar 2018 05:20:47 +0000 (00:20 -0500)]
Update CoreFx to preview3-26326-01 (#17216)
Phil Garcia [Mon, 26 Mar 2018 04:18:46 +0000 (21:18 -0700)]
Fixed a few typos (#17215)
* Fixed a few typos
* Fixed a few typos
Ahson Khan [Mon, 26 Mar 2018 00:26:12 +0000 (17:26 -0700)]
Update use of AsBytes in perf tests to use MemoryMarshal.AsBytes. (#17214)
dotnet-maestro-bot [Sun, 25 Mar 2018 22:59:16 +0000 (17:59 -0500)]
Update CoreFx to preview3-26325-01 (#17190)
Ben Adams [Sun, 25 Mar 2018 22:21:16 +0000 (23:21 +0100)]
Dictionary/List code clean up/formatting (C#7) (#17196)
Ahson Khan [Sun, 25 Mar 2018 22:15:00 +0000 (15:15 -0700)]
Fix CompareTo/Equals when dealing with Empty Span or Span wrapping a null string (#17115)
* Fix CompareTo/Equals when dealing with Span wrapping a null string
* Removing unnecessary virtual keyword and address other feedback.
* Remove unnecessary/incorrect Debug.Asserts.
* Remove more unnecessary/incorrect Debug.Asserts.
Bruce Forstall [Sun, 25 Mar 2018 06:07:12 +0000 (23:07 -0700)]
Merge pull request #17201 from BruceForstall/FixDiffable
Fix a case of non-diffable JitDump
Bruce Forstall [Sun, 25 Mar 2018 05:38:58 +0000 (22:38 -0700)]
Fix Unreachable Code warning in desktop build (#17203)
Bruce Forstall [Sun, 25 Mar 2018 02:41:42 +0000 (19:41 -0700)]
Fix a case of non-diffable JitDump
Bruce Forstall [Sun, 25 Mar 2018 01:52:29 +0000 (18:52 -0700)]
Merge pull request #17195 from sdmaclea/PR-Arm64-Assert-on-NYI
[Arm64] Assert on NYI
Steve MacLean [Sat, 24 Mar 2018 22:36:34 +0000 (18:36 -0400)]
[Arm64] Assert on NYI
Anton Lapounov [Sat, 24 Mar 2018 22:48:47 +0000 (15:48 -0700)]
Rename CancellationTokenRegistration.TryDeregister method to Unregister. (#17194)
Reflects CoreRT change https://github.com/dotnet/corert/pull/5612.
mikedn [Sat, 24 Mar 2018 21:21:54 +0000 (23:21 +0200)]
Delete some unused functions (#17193)
Bruce Forstall [Sat, 24 Mar 2018 18:48:38 +0000 (11:48 -0700)]
Merge pull request #17159 from sandreenko/changeTimeOutForAltJitjobs
increase timeout for altjit jobs
Jan Kotas [Sat, 24 Mar 2018 15:30:36 +0000 (08:30 -0700)]
Delete unused files from src/inc (#17186)
Sergey Andreenko [Sat, 24 Mar 2018 08:44:37 +0000 (01:44 -0700)]
[RyuJit/ARM] Fix lsra BuildShiftRotate (#17103)
* add repro
* delete BuildShiftRotate for arm
* fix GT_LSH_HI and GT_RSH_LO
* return the special handling for GT_LSH_HI and GT_RSH_LO
* fix the header
dotnet-maestro-bot [Sat, 24 Mar 2018 05:43:56 +0000 (00:43 -0500)]
Update CoreFx to preview3-26323-09 (#17183)
Egor Chesakov [Sat, 24 Mar 2018 03:17:59 +0000 (20:17 -0700)]
Generate native image for System.Private.CoreLib.dll during Linux/arm build.sh (#17157)
* Add generating native image for System.Private.CoreLib.dll during Linux/arm cross build when __CrossArch/__BuildArch is x86/arm
Carol Eidt [Sat, 24 Mar 2018 01:26:10 +0000 (18:26 -0700)]
Merge pull request #17155 from fiigii/removezero
Remove non-deterministic AVX APIs
Sergey Andreenko [Sat, 24 Mar 2018 00:54:10 +0000 (17:54 -0700)]
[arm32] Disable JIT\jit64\opt\cse\hugeexpr1 stress testing. (#17137)
It fails R2R stress testing, issue 16587
Carol Eidt [Sat, 24 Mar 2018 00:14:46 +0000 (17:14 -0700)]
Merge pull request #17072 from CarolEidt/Fix545505
ARM: call compRsvdRegCheck later
Egor Chesakov [Fri, 23 Mar 2018 19:36:13 +0000 (12:36 -0700)]
Update DockerTag to use the image from dotnet-buildtools-prereqs-docker#38 which enables running x86_arm/crossgen
Bruce Forstall [Fri, 23 Mar 2018 21:57:52 +0000 (14:57 -0700)]
Merge pull request #17133 from sdmaclea/PR-FIX-17095
[Arm64] Fix #17095
Wes Haggard [Fri, 23 Mar 2018 20:28:18 +0000 (13:28 -0700)]
Merge pull request #17136 from weshaggard/OptDataSouceBuildFixes
Fix source-build issues in optdata
Sergey Andreenko [Fri, 23 Mar 2018 19:32:21 +0000 (12:32 -0700)]
increase timeout for altjit jobs
Fei Peng [Fri, 23 Mar 2018 18:21:50 +0000 (11:21 -0700)]
Remove non-deterministic AVX APIs
Bruce Forstall [Fri, 23 Mar 2018 17:47:12 +0000 (10:47 -0700)]
Merge pull request #17083 from BruceForstall/RemoveArmDeadCode
Remove arm32/arm64 dead code
dotnet-maestro-bot [Fri, 23 Mar 2018 17:28:01 +0000 (12:28 -0500)]
Update CoreClr, CoreFx to preview3-26323-05, preview3-26323-06, respectively (#17146)
Stephen Toub [Fri, 23 Mar 2018 16:41:21 +0000 (12:41 -0400)]
Fix Path.GetTempFileName on Windows (#17148)
GetTempFileNameW doesn't return the required length of the buffer; it returns the unique number used in the temporary file name. But the calling code is using that result as a length, resulting in sometimes truncated paths, and sometimes paths that aren't at all related to the original due to state left over in a pooled buffer.
jashook [Fri, 23 Mar 2018 16:33:57 +0000 (09:33 -0700)]
Disable armlb windows jobs
Maryam Ariyan [Fri, 23 Mar 2018 16:29:55 +0000 (09:29 -0700)]
Fixes StringBuilder unbounded size growth in Clear() when we use a mix of Append and Insert (#16926)
* Fixing Clear infinitely growing when we combine usage of Insert and Append. Fixes #27625
* Move debug code to StringBuilder.Debug.cs and Applied code review feedback
* Adding missing debug condition check
* Adding comments and moving Condition on projitems after filename
* Moving the infinite capacity growth fix to Length setter
* Removing originalCapacity and Debug.Assert
* Applying PR feedbacks
* Minor cleanup
* simplifying to single loop
* keeping just one method for ShowChunks function
Carol Eidt [Fri, 23 Mar 2018 16:22:13 +0000 (09:22 -0700)]
Merge pull request #17135 from CarolEidt/DevDiv544985
ARM: correctly unassign constant double
Wes Haggard [Wed, 21 Mar 2018 23:40:34 +0000 (16:40 -0700)]
Fix RestoreSources for optdata packages
Pass unprocessed args to restore optdata step so it
can override the sources when doing restore
Handle prority as an unprocessed arg for the sync alias
Anirudh Agnihotry [Fri, 23 Mar 2018 12:43:47 +0000 (05:43 -0700)]
Rename new Stream.Read/Write{Async} Span/Memory source/Destination arguments to buffer (#17141)
* changed to buffer
* More Common changes
* fixed
* another fix
Igor Kulaychuk [Fri, 23 Mar 2018 11:12:54 +0000 (14:12 +0300)]
Fix Linux/x86 FuncEvalHijack stack alignment (#17143)
dotnet-maestro-bot [Fri, 23 Mar 2018 06:14:05 +0000 (01:14 -0500)]
Update BuildTools, CoreClr, CoreFx to preview3-02622-03, preview3-26322-08, preview3-26323-01, respectively (#17123)
Egor Chesakov [Fri, 23 Mar 2018 03:23:56 +0000 (20:23 -0700)]
Merge pull request #17131 from BredPet/fix_relocation
Fix for #17089
Steve MacLean [Thu, 22 Mar 2018 20:41:33 +0000 (16:41 -0400)]
[Arm64] Fix #17095
Carol Eidt [Thu, 22 Mar 2018 22:05:46 +0000 (15:05 -0700)]
ARM: correctly unassign constant double
When a `RefTypeFixedReg` is encountered for a floating point register, if it is currently holding a double constant, we need to free both halves - but the current register be either half.
Petr Bred [Thu, 22 Mar 2018 19:20:13 +0000 (22:20 +0300)]
Fix bug for #17089
Signed-off-by: Petr Bred <bredpetr@gmail.com>
Brian Sullivan [Thu, 22 Mar 2018 19:51:41 +0000 (12:51 -0700)]
Merge pull request #17132 from dotnet-bot/from-tfs
Merge changes from TFS
Matt Galbraith [Thu, 22 Mar 2018 19:45:52 +0000 (12:45 -0700)]
Merge pull request #16849 from MattGal/use-dotnetcore-build
Move windows agents to DotNetCore-Build
Brian Sullivan [Thu, 22 Mar 2018 19:04:43 +0000 (12:04 -0700)]
Merge pull request #17112 from briansull/rollback-14481
Rollback Stack probing change - PR #14481
David Mason [Thu, 22 Mar 2018 18:44:37 +0000 (11:44 -0700)]
fix order of Serialize for linux build (#17119)
Fix for #17116. The build would work fine for dynamic events on Windows, but on Linux clang always takes the overloads with <Head, Tail...> until there are no arguments, then complains about no overload takes 0 arguments.
Matt Galbraith [Sat, 10 Feb 2018 01:57:35 +0000 (17:57 -0800)]
Move windows agents to DotNetCore-Build to see if we can build in VS2017-only environment
Fei Peng [Wed, 21 Mar 2018 21:51:28 +0000 (14:51 -0700)]
Add emitIns_AR_R_I for vextracti/f128
Fei Peng [Tue, 20 Mar 2018 18:40:39 +0000 (11:40 -0700)]
fix Set tests on 32-bit platforms
Fei Peng [Mon, 19 Mar 2018 22:24:22 +0000 (15:24 -0700)]
Implement SetAllVector256
Fei Peng [Mon, 19 Mar 2018 07:17:31 +0000 (00:17 -0700)]
Implement AVX SetVector256
Fei Peng [Mon, 19 Mar 2018 07:16:34 +0000 (00:16 -0700)]
Optimize AVX Insert/Extract intrinsics
Fei Peng [Mon, 19 Mar 2018 07:15:02 +0000 (00:15 -0700)]
Add more tests for AVX Insert/Extract intrinsics
Konstantin Baladurin [Thu, 22 Mar 2018 14:02:43 +0000 (17:02 +0300)]
[ARM64] Fix UMEntryThunkCode::Poison method (#17122)
Fix hex value of the instruction ldp x16, x0, [x12]
dotnet-maestro-bot [Thu, 22 Mar 2018 05:13:42 +0000 (00:13 -0500)]
Update BuildTools, CoreClr to preview3-02622-01, preview3-26322-01, respectively (#17105)
Brian Robbins [Thu, 22 Mar 2018 04:34:24 +0000 (21:34 -0700)]
Fix incorrect array dereference. (#17113)
Noah Falk [Thu, 22 Mar 2018 02:12:28 +0000 (19:12 -0700)]
Update CODE_OWNERS.TXT (#17114)
Updating owner on the profiler
Ahson Khan [Thu, 22 Mar 2018 01:03:02 +0000 (18:03 -0700)]
Rename {Try}Read/WriteMachineEndian to just {Try}Read/Write (#17106)
Brian Sullivan [Thu, 22 Mar 2018 00:46:10 +0000 (17:46 -0700)]
Rollback Stack probing change - PR #14481
Carol Eidt [Thu, 22 Mar 2018 00:17:44 +0000 (17:17 -0700)]
Fix release build
Jan Vorlicek [Thu, 22 Mar 2018 00:11:59 +0000 (01:11 +0100)]
Remove dependency on libunwind (#17094)
* Add original source of libunwind 1.3-stable
Taken from:
https://github.com/libunwind/libunwind/tree/v1.3-stable
* Enable building of libunwind
This change enables building libunwind and removes
dependency on the libunwind package for all Unixes
except OSX. In OSX the libunwind is part of the OS
and also has support for compact unwind info that
is OSX specific, so we keep using that one.
* Disable warnings in code we don't execute
dotnet-bot [Wed, 21 Mar 2018 22:49:46 +0000 (15:49 -0700)]
Disable legacy_backend jits
[tfs-changeset: 1692827]
Mike McLaughlin [Wed, 21 Mar 2018 22:43:15 +0000 (15:43 -0700)]
Update debugging doc on lldb versions and disabling managed debugging (#17107)
Carol Eidt [Wed, 21 Mar 2018 22:13:17 +0000 (15:13 -0700)]
Remove REG_OPT_RSVD from LSRA's candidate masks if it's reserved.
Stephen Toub [Wed, 21 Mar 2018 21:35:56 +0000 (17:35 -0400)]
Improve DateTime{Offset} "r" and "o" formatting performance (#17092)
Two main changes:
1. Rewrote the formatting to use span, only to then discover that we already had almost exactly the same implementation in Utf8Formatter. As that one had some extra optimizations around JIT behaviors, I ported that over instead.
2. Avoided [ThreadStatic] lookups unless necessary.
ToString/TryFormat for "o"/"O" improve by ~2.5x.
ToString/TryFormat for "r"/"R" improve by ~3x.
Brian Robbins [Wed, 21 Mar 2018 20:31:04 +0000 (13:31 -0700)]
Add More Process Information to EventPipe Traces (#17080)
Frank Gambino [Wed, 21 Mar 2018 20:08:00 +0000 (16:08 -0400)]
Fix strings from being concatenated (#17040)
Jeff Schwartz [Wed, 21 Mar 2018 20:07:00 +0000 (13:07 -0700)]
null terminate the converted LPStr at the right index (#17079)
Mike McLaughlin [Wed, 21 Mar 2018 19:42:49 +0000 (12:42 -0700)]
Add missing license header to test py and cs files (#17102)
Issue #13471
Ahson Khan [Wed, 21 Mar 2018 19:34:48 +0000 (12:34 -0700)]
Moving Span APIs that allow skipping visibility checks to MemoryMarshal (#17087)
Ben Adams [Wed, 21 Mar 2018 19:33:56 +0000 (19:33 +0000)]
Small tweaks to Dict asm size (#17096)
Sergey Ignatov [Wed, 21 Mar 2018 11:40:42 +0000 (14:40 +0300)]
Fixed #16564: the test objmonhelper hangs forever with GCStress=0x3
JC Aguilera [Wed, 21 Mar 2018 16:14:17 +0000 (09:14 -0700)]
Change directory in AgentTools script
dotnet-maestro-bot [Wed, 21 Mar 2018 14:33:18 +0000 (09:33 -0500)]
Update BuildTools, CoreClr, CoreFx to preview3-02620-10, preview3-26321-06, preview3-26319-04, respectively (#17012)
Stephen Toub [Wed, 21 Mar 2018 08:27:15 +0000 (04:27 -0400)]
Avoid allocating when SuppressFlow'ing in default ExecutionContext (#17081)
* Avoid allocating when SuppressFlow'ing in default ExecutionContext
* Address PR feedback
Ahson Khan [Wed, 21 Mar 2018 05:27:20 +0000 (22:27 -0700)]
API consistency for System.Memory APIs (argument names) (#28160)
* AsBytes and Cast: Change arg name source -> span
* CopyTo: Change arg name array/sequence -> source
* Several APIs: Change arg name arraySegment -> segment
* Several APIs: Change arg name readOnlyMemory -> memory
* BinaryPrimitives and Utf8Formatter: Change arg name buffer -> source or destination
* Base64: Change arg name consumed/written -> bytesConsumed/bytesWritten
* Utf8Parser: Change arg name text -> source
* TryGetOwnedMemory: Change arg name ownedMemory -> owner, index -> start
* BuffersExtensions.Write: Change arg name bufferWriter -> writer
* Span Compare APIs: Change arg name first -> span, second/value -> other
* ROSequence.TryGet & BuffersExtensions: Change arg name data -> memory, sequence -> source
* Fix mistake in BinaryPrimitives Writer APIs, source -> destination.
* BufferExtensions.Write: Change arg name source -> span
* SequencePosition.Equals: Change arg name position -> other
* BufferExtensions ToArray: Change arg name source -> sequence
* Rename leftover arraySegment to segment in MemoryMarshal.TryGetArray
* BufferExtensions.Write: Change arg name span -> value
* Contains, StartsWith, EndsWith: Change arg name other -> value
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
Bruce Forstall [Wed, 21 Mar 2018 03:15:31 +0000 (20:15 -0700)]
Remove arm32/arm64 dead code
Code in `IsContainableImmed()` appears to try to mark as contained
a floating-point 0.0 in comparison instructions. It doesn't work,
as comparison nodes have TYP_INT, and the zero comparison check
doesn't work for 0.0.
Remove the code, and add a tracking issue to implement it correctly.
Günther Foidl [Wed, 21 Mar 2018 00:56:41 +0000 (01:56 +0100)]
Updated steps in 'Viewing JIT Dumps' to see optimized code (#17077)
If one follows the current described steps, one won't see the JIT dump for optimized code in the core lib.
This PR adds the necessary step to see optimized code.
Cf. https://github.com/dotnet/coreclr/issues/17065#issuecomment-
374772011
Carol Eidt [Wed, 21 Mar 2018 00:01:14 +0000 (17:01 -0700)]
Merge pull request #16955 from fiigii/moreavx
Implement more AVX/AVX2 intrinsics
Kyungwoo Lee [Tue, 20 Mar 2018 22:46:15 +0000 (15:46 -0700)]
Fix type for lvaCachedGenericContextArgOffs (#14260)
lvaCachedGenericContextArgOffs should be signed since it's initially
assigned with a negative virtual offset. Finally depending on
frame pointer use with different arch, it could become positive or negative.
Luckily enough, so far such issue was by-passed since amd64 encoder didn't
care such signness when encoding move offset even though the value is
negative. For arm64, it is typically positive since FP is saved on the
bottom of stack.
Carol Eidt [Tue, 20 Mar 2018 19:19:18 +0000 (12:19 -0700)]
ARM: call compRsvdRegCheck later
For RyuJIT backend, the number of locals can change due to decomposition and lowering.
So, determine whether to reserve a register for accessing large state displacements just prior to register allocation.
This requires ensuring that the stack offset for promoted longs is fixed up, as for promoted reg structs on ARM64.
This is all a bit more difficult on LEGACY_BACKEND because the register allocator can change its mind about whether or not it's going to have a frame, so that is left as before.
Atsushi Kanamori [Tue, 20 Mar 2018 21:14:41 +0000 (14:14 -0700)]
Port System.Memory performance improvements to Convert.TryFromBase64Chars (#17033)
* Copy over Base64.DecodeFromUtf8 verbatim
* Don't need the InPlace api
* Change input from Utf8 to Utf16
* isFinalBlock will always be true, so constant fold it through
* I only need a true/false result, so get rid of OperationStatus
* Rename variables to reflect Utf8->Utf16 change
* Update comments and some minor cleanup
* Make Convert use Base64 as a fast-path
* Incorporate PR feedback.
* Delete FromBase64_Decode
* Use a single safe stackalloc
* Rename Base64.cs to Convert.Base64.cs
and make its contents a part of the Convert class.
We should eventually move all the Base64-related
stuff into this new file but not as part of this PR.
We want to be able to diff the implementation change
separately from the code movement.
* Thanks VS for the unasked for indent
Andrew Marino [Tue, 20 Mar 2018 20:31:17 +0000 (13:31 -0700)]
Fix header inclusion order; avoids use of RCWCache before definition (#17067)
Jan Kotas [Fri, 16 Mar 2018 18:34:56 +0000 (11:34 -0700)]
Fix build break
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
Bruce Forstall [Tue, 20 Mar 2018 16:00:19 +0000 (09:00 -0700)]
Merge pull request #17056 from BruceForstall/Arm64LclFldContainedZero
Allow arm64 to contain zero in GT_STORE_LCL_FLD
Andy Ayers [Tue, 20 Mar 2018 15:36:14 +0000 (08:36 -0700)]
JIT: remove boxing for interface call to shared generic struct (#17006)
Improve the jit's ability to optimize a box-interface call sequence
to handle cases where the unboxed entry point requires a method table
argument.
Added two test cases, one from the inspiring issue, and another where
the jit is then able to inline the method.
Closes #16982.
Jan Kotas [Mon, 19 Mar 2018 21:10:18 +0000 (14:10 -0700)]
Fix major System.Memory performance regression on .NET Framework x86 (#28179)
* Use Unsafe.AddByteOffset instead of Unsafe.Add where possible
* Use pointer for NUint backing field
* Delete unnecessary unchecked scopes, fixed comments
* Avoid unnecessary overflow checks when converting from IntPtr
* Switch SequenceEqual to IntPtr pointer arithmetic
This is fixing 10x regression introduced by use of NUint
* Delete NUint operators that are no longer necessary
* Fix CoreCLR build break
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
Jan Kotas [Tue, 20 Mar 2018 10:53:06 +0000 (03:53 -0700)]
Move CompareInfo.* to shared CoreLib partition (#17062)
Jan Kotas [Tue, 20 Mar 2018 10:34:35 +0000 (03:34 -0700)]
Move EncodingTable and CodePageDataItem to System.Text namespace (#17061)
This is the more logical namespace for it and it matches the namespace that these live under in CoreRT.
Fei [Tue, 20 Mar 2018 10:07:59 +0000 (02:07 -0800)]
Implement more AVX/AVX2 intrinsics
Fei [Tue, 20 Mar 2018 10:06:21 +0000 (02:06 -0800)]
Add tests for AVX/AVX2 intrinsics
Jan Kotas [Tue, 20 Mar 2018 04:16:23 +0000 (21:16 -0700)]
Fix copy&paste bug (#17059)
Sven Boemer [Tue, 20 Mar 2018 03:24:01 +0000 (20:24 -0700)]
Fix unloading of images mapped by PAL (#17053)
* Fix unloading of images mapped by PAL
The m_FileView member of MappedImageLayout is a CLRMapViewHolder,
which runs CLRUnmapViewOfFile on release. This is fine on Windows,
where the MappedImageLayout constructor calls
CLRMapViewOfFile. However, with FEATURE_PAL, the constructor calls
PAL_LOADLoadPEFile, which simulates LoadLibrary and records multiple
mapping entries. Each entry increases the refcount of the underlying
file handle PAL object. PAL_LOADUnloadPEFile should be called in this
case (instead of CLRUnmapViewOfFile), to decrease the refcount for
each mapping entry.
Fixes https://github.com/dotnet/coreclr/issues/15189.
* Fix build failure