-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove support for older LLVM versions, and re-order linker flags #105110
Commits on Jul 18, 2024
-
Remove support for older LLVM versions, and re-order linker flags
We have generally tried to support linking multiple versions of LLVM within our git tree. Every new LLVM version moves symbols around between libraries, and as a result, every new version of LLVM requires different linker flags to build. The command line tool `llvm-config` should tell you the exact flags you need, but it is a problem for us when cross-compiling to rely on this, and as a result, we transcribe the result of various llvm-config outputs directly into Mono's CMakeLists.txt. In an effort to support multiple versions of LLVM, flags common between all supported versions were kept in one place, then the version-specific flags appended afterwards. And this has worked fine for years. However: 1. Whilst we only link with `lld`, it is common for contributors and source-build to link with `gold`, `bfd`, or some other GNU-flavoured linker, where library order is essential 2. The list of common libraries to link has remained unchanged for years, but the symbol intra-dependencies may have changed a long time ago, so common symbol order cannot be assumed to remain valid between LLVM versions This has resulted in a long-standing problem for people using e.g. Debian or Ubuntu or GitHub CodeSpaces, rather than always building with one of our dockerfiles representing our "real" build environment, when targeting platforms which use Mono and link LLVM.
Configuration menu - View commit details
-
Copy full SHA for ad7e050 - Browse repository at this point
Copy the full SHA ad7e050View commit details
Commits on Jul 22, 2024
-
Configuration menu - View commit details
-
Copy full SHA for e446d5f - Browse repository at this point
Copy the full SHA e446d5fView commit details
Commits on Jul 24, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 17e0ef7 - Browse repository at this point
Copy the full SHA 17e0ef7View commit details
Commits on Jul 26, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 931a4bc - Browse repository at this point
Copy the full SHA 931a4bcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 79a0676 - Browse repository at this point
Copy the full SHA 79a0676View commit details -
Update SDK to preview 6 (#104696)
* Update SDK to preview 6 * Update Shared.csproj Fix `error NU1903: Package 'System.Text.Json' 8.0.0 has a known high severity vulnerability` * Fix with existing version. --------- Co-authored-by: Ilona Tomkowicz <32700855+ilonatommy@users.noreply.github.com> Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 5af0857 - Browse repository at this point
Copy the full SHA 5af0857View commit details -
Change DefaultMaximumErrorResponseLength to KB from Byte (#105396)
* Change DefaultMaximumErrorResponseLength to KB from Byte * Handle overflow * Review feedback
Configuration menu - View commit details
-
Copy full SHA for ce4f616 - Browse repository at this point
Copy the full SHA ce4f616View commit details -
Fix warning for MakeGenericType annotation mismatch (#104921)
Fixes warning code when a generic type whose type parameters have DAM annotations is used with MakeGenericType, over a type that doesn't have matching annotations. The code IL2070 used to mention the 'this' argument. Instead it should have been IL2071 which mentions the generic argument as the cause of the mismatch. Similar for MakeGenericMethod with IL2090 and IL2091.
Configuration menu - View commit details
-
Copy full SHA for f595707 - Browse repository at this point
Copy the full SHA f595707View commit details -
Set GCStressIncompatible on GenericContext tests (#104686)
Co-authored-by: Vladimir Sadov <vsadov@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 8c27dad - Browse repository at this point
Copy the full SHA 8c27dadView commit details -
Add runtime config parameter to force ijwhost to load assemblies in a…
…n isolated context (#105337) * Add support for isolated load context in LoadInMemoryAssemblyInContext by passing -1 as loadContext * Have ijwhost check a runtime config parameter to determine if it should run in an isolated load context * Added test for ijwhost isolated load context runtime config option
Configuration menu - View commit details
-
Copy full SHA for 62c6854 - Browse repository at this point
Copy the full SHA 62c6854View commit details -
[RISC-V] Fix passing float and uint arguments in VM (#105021)
* Add tests * Fix passing float and uint arguments in VM * Change test lib name so it doesn't clash with managed DLL on Windows
Configuration menu - View commit details
-
Copy full SHA for a75140d - Browse repository at this point
Copy the full SHA a75140dView commit details -
Fix platform analyzer attribute order for MacCatalyst (#105409)
We need to make sure the attribute for MacCatalyst comes _after_ the iOS one due to how MacCatalyst is a superset of iOS: https://learn.microsoft.com/en-us/dotnet/standard/analyzers/platform-compat-analyzer#platform-inclusion This caused an error in aspnetcore in the latest dependency flow because the analyzer thought AesGcm is _only_ supported on MacCatalyst: > error CA1416: (NETCORE_ENGINEERING_TELEMETRY=Build) This call site is reachable on all platforms. 'AesGcm.Decrypt(ReadOnlySpan<byte>, ReadOnlySpan<byte>, ReadOnlySpan<byte>, Span<byte>, ReadOnlySpan<byte>)' is only supported on: 'maccatalyst' 13.0 and later.
Configuration menu - View commit details
-
Copy full SHA for a36754a - Browse repository at this point
Copy the full SHA a36754aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1ca091e - Browse repository at this point
Copy the full SHA 1ca091eView commit details -
Remove zlib from requirements script and instruction files (#105419)
* Remove zlib from requirements instructions * Remove zlib from native requirements installation script
Configuration menu - View commit details
-
Copy full SHA for 1928c50 - Browse repository at this point
Copy the full SHA 1928c50View commit details -
Configuration menu - View commit details
-
Copy full SHA for b5076e1 - Browse repository at this point
Copy the full SHA b5076e1View commit details -
Ensure that WaitForPendingFinalizers has seen the expected Full GC co…
…unt (#105289) * Ensure that WaitForPendingFinalizers has seen the expected Full GC * NativeAOT and some renames * a testcase * make the test not unsafe and make OuterLoop * Use unsigned math when comparing collection ticks * cast the diff to int when comparing gc ticks
Configuration menu - View commit details
-
Copy full SHA for 06c6eea - Browse repository at this point
Copy the full SHA 06c6eeaView commit details -
Migrate to zlib-ng, part 3: Remove zlib and zlib-intel source code an…
…d license mentions (second attempt) (#105371) * Remove zlib/ * Remove zlib-intel/ * Remove third party notice * Remove patches * Remove version txts * Remove cgmanifest.json entries * Remove installer third party notice * Update docs --------- Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 7942b5b - Browse repository at this point
Copy the full SHA 7942b5bView commit details -
[browser] Trigger relink on
EmccMaximumHeapSize
change (#105027)* Edit test + trigger relink. * Remove logging to speed up the test + decrease loop runs to prevent "Browser has been disconnected" error. * Feedback - properties are not bool-only anymore. * Fix: workload needed when heap size set. --------- Co-authored-by: Larry Ewing <lewing@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for f6bca30 - Browse repository at this point
Copy the full SHA f6bca30View commit details -
Configuration menu - View commit details
-
Copy full SHA for c50bd0b - Browse repository at this point
Copy the full SHA c50bd0bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 113fd97 - Browse repository at this point
Copy the full SHA 113fd97View commit details -
Configuration menu - View commit details
-
Copy full SHA for 99d5cbc - Browse repository at this point
Copy the full SHA 99d5cbcView commit details -
Configuration menu - View commit details
-
Copy full SHA for a94af90 - Browse repository at this point
Copy the full SHA a94af90View commit details -
Set xunit env var to not print output for passing tests (#105392)
* Set xunit env var to not print output for passing tests Fixes #103445 * Update xunit.console.targets * Update xunit.console.targets
Configuration menu - View commit details
-
Copy full SHA for d0282ab - Browse repository at this point
Copy the full SHA d0282abView commit details -
Some more automated C# modernization in corelib (#105151)
* Fix IDE0056 on corelib (indexing can be simplified) * Fix IDE (null check can be simplified) * Fix IDE0078 (use pattern matching) * Fix IDE0019 (use pattern matching) * Fix IDE0066 (use switch expression) * Fix IDE0250 (struct can be made readonly) * Fix nullability warning and address PR feedback * Address PR feedback and revert a downlevel change * Wrap any `?? throw new`s that go beyond 120 characters
Configuration menu - View commit details
-
Copy full SHA for cad5a00 - Browse repository at this point
Copy the full SHA cad5a00View commit details -
Fix ECMA 355 Partition download links (#105454)
On https://github.com/dotnet/runtime/blob/main/docs/project/dotnet-standards.md the Partition with Notes download links using HTTP protocol fail to download in Chrome: >Mixed Content: The site at 'https://github.com/' was loaded over a secure connection, but the file at 'https://download.microsoft.com/download/7/3/3/733AD403-90B2-4064-A81E-01035A7FE13C/MS%20Partition%20I.pdf' was redirected through an insecure connection. This file should be served over HTTPS. See https://blog.chromium.org/2020/02/protecting-users-from-insecure.html for more details. (It might be reasonble for somebody else to followup fixing all domains on all pages with regex `\(http://([.a-z0-9-]+)` replacing with `(https://$1`, but I didn't test each blog site supports HTTPS.)
Configuration menu - View commit details
-
Copy full SHA for dbcbd8a - Browse repository at this point
Copy the full SHA dbcbd8aView commit details -
Add swiftcall signature check for `mono_class_try_get_swift_error_cla…
…ss` (#105408) * Add signature check for swiftcall * Handle null values for swift_error_ptr
Configuration menu - View commit details
-
Copy full SHA for 27a0dab - Browse repository at this point
Copy the full SHA 27a0dabView commit details -
Enable NativeAOT runtime tests on MacCatalyst (#102882)
This PR updates the CLRTest.Execute.Bash.targets file to set the apple run command for MacCatalyst. The command apple just-run used on Apple mobile is not permitted, and apple test requires the a test runner. Additionally, it is necessary to locate Info.plist in the Contents/ directory and the binary in Contents/MacOS/ within the bundle. --------- Co-authored-by: Ivan Povazan <ivan.povazan@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for e0f70b7 - Browse repository at this point
Copy the full SHA e0f70b7View commit details -
Resolving an antigen failure (#105260)
* Resolving an antigen failure * Fix method accessibility so xunit doesn't complain
Configuration menu - View commit details
-
Copy full SHA for 2af5db2 - Browse repository at this point
Copy the full SHA 2af5db2View commit details -
Support field access on GetType() of T constrained to be Enum (#105351)
Adds trimming support for instance.GetType().GetFields(), where instance is a variable of type `T` that is constrained to System.Enum. This includes a change to have ILLink's TypeProxy track a TypeReference instead of TypeDefinition, which was necessary to allow TypeProxy to represent a generic parameter. Note that this only supports the specific case where `GetType()` is called on a variable of type `T` that is constrained to `Enum`. A variable of type `Enum` is not supported, so the following will still warn: ```csharp static void M(Enum v) { v.GetType().GetFields(); } ```
Configuration menu - View commit details
-
Copy full SHA for b025166 - Browse repository at this point
Copy the full SHA b025166View commit details -
Update mono to support shuffle for constant inputs (#105299)
* Support mono creating xconst in a few more places * Update mono to support shuffle for constant inputs * Ensure that arm64 also accelerates shuffle for non-constant inputs * Ensure OP_XZERO and OP_XONES are recognized as being constant * Ensure shuffle creates a correct instruction when the fsig doesn't match the necessary parameter count * Ensure that getting the index for floating-point shuffle is possible * Ensure the right class handle is passed down to LLVM so overload resolution can function * Make sure we update the original xconst if we mutate it * Return a new constant and instead of mutating the existing one * Insert relevant xcast nodes * Add some asserts around the ecount * Ensure we get the right element type * Ensure we don't create nodes unnecessarily for create_elementwise * Ensure that create_elementwise still works for other vector sizes * Ensure indentation of switch cases is correct for Mono
Configuration menu - View commit details
-
Copy full SHA for ec5ac99 - Browse repository at this point
Copy the full SHA ec5ac99View commit details -
Make TooDeepJsonDocument test more consistent across platforms (#105445)
* Make TooDeepJsonDocument test more consistent across platforms Run the test on a thread with as consistent a stack size as possible so that we don't inadvertently succeed due to having a really large stack. * Disable test on mono
Configuration menu - View commit details
-
Copy full SHA for a16097d - Browse repository at this point
Copy the full SHA a16097dView commit details -
Update the TypeLib embedding and add comments on API use (#105416)
There is an undocumented semantic of Win32 Resource APIs. The missing semantic is that all resource type/name strings are transparently converted to uppercase when calling any of the Win32 Resource APIs. We don't want to apply this undocumented semantic to the reader/writer API so we document it instead. We are avoiding applying the behavior since ReadyToRun scenarios are designed to be a byte for byte copy of the resource, including name as it was written by other tooling.
Configuration menu - View commit details
-
Copy full SHA for 4541933 - Browse repository at this point
Copy the full SHA 4541933View commit details -
Update docs for ByRefLike with generics for work in .NET 10 (#103318)
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 4ff0041 - Browse repository at this point
Copy the full SHA 4ff0041View commit details -
Configuration menu - View commit details
-
Copy full SHA for 88a8796 - Browse repository at this point
Copy the full SHA 88a8796View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5be20e8 - Browse repository at this point
Copy the full SHA 5be20e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for ad957f2 - Browse repository at this point
Copy the full SHA ad957f2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4f66316 - Browse repository at this point
Copy the full SHA 4f66316View commit details -
Fix up Fuzzlyn CI scripts for new hardware intrinsics support (#105470)
1) Strip out the extensions in the seed name when using it for file/directory names, since the list of extensions is quite long 2) Limit the number of unreduced/uncategorized example seeds we show
Configuration menu - View commit details
-
Copy full SHA for b4730cd - Browse repository at this point
Copy the full SHA b4730cdView commit details -
Try to re-enable DeepEquals_TooDeepJsonDocument_ThrowsInsufficientExe…
…cutionStackException test on mono (#105509)
Configuration menu - View commit details
-
Copy full SHA for 28ad257 - Browse repository at this point
Copy the full SHA 28ad257View commit details -
zlib-ng: avoid suppressing WD4242 and WD4244 (#105433)
WD4242 and WD4244 are compiler warnings that should not be suppressed because the warn about possible loss of data. WD4242 shows up in zlib-ng/arch/*/slide_hash*.c files and comes from the arguments passed to the slide_hash_chain method. WD4244 happens in Windows when building in Debug configuration, in various zlib-ng/deflate*.c files, and comes from the arguments passed to the check_match method. Fixed by: - Adding asserts to verify the values are below the maximum allowed for their type. - Casting them the proper type before passing them as arguments to their methods. - Removing the WD suppressions, which unfortunately also propagated to other unrelated cmake files. - Fixed a similar loss of data error in an unrelated mono file where the warning suppression was propagated due to this.
Configuration menu - View commit details
-
Copy full SHA for 511c9f3 - Browse repository at this point
Copy the full SHA 511c9f3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9af8815 - Browse repository at this point
Copy the full SHA 9af8815View commit details -
Arm64/Sve: Add FFR register liveness tracking (#105348)
* Add tracking of FFR register somewhat workable code cleanup Remove FFR Add all the GetFfr* wip Work with MskCns() model Use physReg approach Remove commented prototypes working Remove bunch of unnecessary code Remove SpecialImport from GetFFR/SetFFR/LoadFirstFaulting some more code cleanup some fixup * Change condition for PhysReg * jit format * review feedback * unspill for LoadVectorFirstFaulting as well * Use the right opReg * skip spilling tracking * review feedback * Use non-existent REG_FFR * Do not reload from FFR for GetFfr() * review feedback * Make just GrabTemp * fix build and formatting * missed another build failure for arm
Configuration menu - View commit details
-
Copy full SHA for e6cbc87 - Browse repository at this point
Copy the full SHA e6cbc87View commit details -
Fix throwing exception when calling RunClassConstructor on a generic …
…type with a static constructor (#105513) * Fix throwing exception when calling RunClassConstructor on a generic type with a static constructor #99183 seems to have done away with assuming that a generic type's static constructor was always "initialized". As a result, if you call RunClassConstructor on it, the runtime would throw an exception. Fixes #103891 * Apply suggestions from code review --------- Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for b2e41aa - Browse repository at this point
Copy the full SHA b2e41aaView commit details -
[RISC-V][LoongArch64] New passing info for floating-point structs (#1…
…03945) * Replace StructFloatFieldInfoFlags with FpStructInRegistersInfo which carries also exact field sizes and offsets * Replace StructFloatFieldInfoFlags with FpStruct::Flags in profiler * Remove FpStructInRegistersInfo::FromOldFlags() * Fix duplicating types in HandleInlineArray * Remove signedness from FpStruct::IntKind because most probably we won't need it * Remove old StructFloatFieldInfoFlags calculating routine * Typo in TARGET_LOONGARCH64 * Remove m_returnedFpFieldOffsets from ArgIterator * Add missing ENREGISTERED_PARAMTYPE_MAXSIZE condition to C# version of FpStruct info calculation * Rename RISCV64PassStructInRegister to match settled casing for RiscV in class names * Update hardcoded flags for float and double in ArgIteratorTemplate::ComputeReturnFlags() This fixes JIT/HardwareIntrinsics/General/Vector* tests. * Fix build on other platforms * Update LoongArch to use FpStructInRegistersInfo * Remove unused old flag masks * LoongArch64 typo Co-authored-by: Qiao Pengcheng <qiaopengcheng@loongson.cn> * Missing FpStruct namespace Co-authored-by: Qiao Pengcheng <qiaopengcheng@loongson.cn> * Missing FpStruct namespace Co-authored-by: Qiao Pengcheng <qiaopengcheng@loongson.cn> * Missing FpStruct namespace Co-authored-by: Qiao Pengcheng <qiaopengcheng@loongson.cn> * Use FpStruct namespace everywhere in JIT * JIT review * Update StructFloatFieldInfoFlags description * Revert to hitherto instruction set order as it's not the point of this PR * Unify get{LoongArch,RiscV}64PassFpStructInRegistersInfo JIT interfaces * Use JIT_TO_EE_TRANSITION instead of _LEAF because MethodTable::GetFpStructInRegistersInfo may throw * Remove FpStruct::IntKind, we should have similar info in ClassLayout in JIT * Change JIT interface to return a struct similar to CORINFO_SWIFT_LOWERING to facilitate code unification in the future * Change JIT to use new Swift-like getFpStructLowering * Cache CORINFO_FPSTRUCT_LOWERING * Update LoongArch classifier to use CORINFO_FPSTRUCT_LOWERING * Update StructFloatInfoFlags doc comment on C# * Move StructFloatFieldInfoFlags and FpStructInRegistersInfo out of the JIT interface * Merge LoongArch and RISC-V AOT calculation of FpStructInRegistersInfo because they were identical. Move it to Common\Internal/Runtime because it's no longer exposed in JIT interface. * Don't zero-initialize CORINFO_FPSTRUCT_LOWERING * Add note for CORINFO_FPSTRUCT_LOWERING::loweredElements type --------- Co-authored-by: Qiao Pengcheng <qiaopengcheng@loongson.cn>
Configuration menu - View commit details
-
Copy full SHA for ff08208 - Browse repository at this point
Copy the full SHA ff08208View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5ce7d3f - Browse repository at this point
Copy the full SHA 5ce7d3fView commit details -
Ensure constant evaluation of shifts on xarch broadcast the operand t…
…o the correct size (#105487) * Ensure constant evaluation of shifts on xarch broadcast the operand to the correct size * Ensure we don't try to execute AVX2 code on unsupported platforms
Configuration menu - View commit details
-
Copy full SHA for 27dd261 - Browse repository at this point
Copy the full SHA 27dd261View commit details -
Use ConcurrentDictionary in runtimecounters test (#105520)
* Use ConcurrentDictionary in runtimecounters test Fixes #105443 * Fix build break
Configuration menu - View commit details
-
Copy full SHA for 0b1f89a - Browse repository at this point
Copy the full SHA 0b1f89aView commit details -
Fix issue 98506 - Excessive exceptions generated in StackTraceSymbols (…
…#105530) * Fix issue 98506 - Excessive exceptions generated in StackTraceSymbols * Code review feedback
Configuration menu - View commit details
-
Copy full SHA for d111595 - Browse repository at this point
Copy the full SHA d111595View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9248da8 - Browse repository at this point
Copy the full SHA 9248da8View commit details -
Fix ShuffleThunk cache heap (#105480)
There was a problem with using heap from the related LoaderAllocator for shuffle thunk cache heap. I have tested it again and it seems that the issue is gone. So I am removing the workaround, making the cache use LoaderAllocator local heap. Close #55697
Configuration menu - View commit details
-
Copy full SHA for 35c69cf - Browse repository at this point
Copy the full SHA 35c69cfView commit details -
[browser] Fix computing destination sub path and publish extension ta…
…rget path in Wasm SDK (#105458)
Configuration menu - View commit details
-
Copy full SHA for 7cf917e - Browse repository at this point
Copy the full SHA 7cf917eView commit details -
Configuration menu - View commit details
-
Copy full SHA for ccc87e4 - Browse repository at this point
Copy the full SHA ccc87e4View commit details -
Merge remote-tracking branch 'origin/main' into make-llvm-16-required…
…-and-fix-linker-order
Configuration menu - View commit details
-
Copy full SHA for fe4c42f - Browse repository at this point
Copy the full SHA fe4c42fView commit details