From 96013ea6a9f2a51aad235420d8432ad35406fbc9 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 4 Feb 2026 08:47:51 +0100 Subject: [PATCH 1/9] Temporarily disable ios_arm64 platform builds --- .../runtime-extra-platforms-ioslike.yml | 18 ++++++++++++------ eng/pipelines/runtime.yml | 9 ++++++--- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 9b400f09b0bf8a..0b921ff329bf01 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -23,7 +23,8 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 + # Tracking issue: https://github.com/dotnet/runtime/issues/123796 + # - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables @@ -64,7 +65,8 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 + # Tracking issue: https://github.com/dotnet/runtime/issues/123796 + # - ios_arm64 - tvos_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: @@ -108,7 +110,8 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 + # Tracking issue: https://github.com/dotnet/runtime/issues/123796 + # - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables @@ -141,7 +144,8 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 + # Tracking issue: https://github.com/dotnet/runtime/issues/123796 + # - ios_arm64 - tvos_arm64 variables: - name: timeoutPerTestInMinutes @@ -179,7 +183,8 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 + # Tracking issue: https://github.com/dotnet/runtime/issues/123796 + # - ios_arm64 - tvos_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: @@ -222,7 +227,8 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 + # Tracking issue: https://github.com/dotnet/runtime/issues/123796 + # - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 301e1a5186f332..113ba3b0aacf88 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1046,7 +1046,8 @@ extends: buildConfig: Release runtimeFlavor: mono platforms: - - ios_arm64 + # Tracking issue: https://github.com/dotnet/runtime/issues/123796 + # - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables @@ -1092,7 +1093,8 @@ extends: buildConfig: Release runtimeFlavor: coreclr platforms: - - ios_arm64 + # Tracking issue: https://github.com/dotnet/runtime/issues/123796 + # - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables @@ -1137,7 +1139,8 @@ extends: buildConfig: Release runtimeFlavor: coreclr platforms: - - ios_arm64 + # Tracking issue: https://github.com/dotnet/runtime/issues/123796 + # - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables From b80c38fad2469693b4d9ebb78b47c6fea46e3c55 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 4 Feb 2026 12:50:02 +0100 Subject: [PATCH 2/9] Fix target dependency for ZipMergedPayloadDirectory in helixpublishwitharcade.proj --- src/tests/Common/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 626f0a50d58d00..ae093a53fd9f67 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -564,7 +564,7 @@ From b85b946aab30a32cde836d2d4cf29a110caeed39 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 4 Feb 2026 12:51:22 +0100 Subject: [PATCH 3/9] Revert changes --- .../runtime-extra-platforms-ioslike.yml | 18 ++++++------------ eng/pipelines/runtime.yml | 9 +++------ 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 0b921ff329bf01..9b400f09b0bf8a 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -23,8 +23,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - # Tracking issue: https://github.com/dotnet/runtime/issues/123796 - # - ios_arm64 + - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables @@ -65,8 +64,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - # Tracking issue: https://github.com/dotnet/runtime/issues/123796 - # - ios_arm64 + - ios_arm64 - tvos_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: @@ -110,8 +108,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - # Tracking issue: https://github.com/dotnet/runtime/issues/123796 - # - ios_arm64 + - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables @@ -144,8 +141,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - # Tracking issue: https://github.com/dotnet/runtime/issues/123796 - # - ios_arm64 + - ios_arm64 - tvos_arm64 variables: - name: timeoutPerTestInMinutes @@ -183,8 +179,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - # Tracking issue: https://github.com/dotnet/runtime/issues/123796 - # - ios_arm64 + - ios_arm64 - tvos_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: @@ -227,8 +222,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - # Tracking issue: https://github.com/dotnet/runtime/issues/123796 - # - ios_arm64 + - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 113ba3b0aacf88..301e1a5186f332 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1046,8 +1046,7 @@ extends: buildConfig: Release runtimeFlavor: mono platforms: - # Tracking issue: https://github.com/dotnet/runtime/issues/123796 - # - ios_arm64 + - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables @@ -1093,8 +1092,7 @@ extends: buildConfig: Release runtimeFlavor: coreclr platforms: - # Tracking issue: https://github.com/dotnet/runtime/issues/123796 - # - ios_arm64 + - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables @@ -1139,8 +1137,7 @@ extends: buildConfig: Release runtimeFlavor: coreclr platforms: - # Tracking issue: https://github.com/dotnet/runtime/issues/123796 - # - ios_arm64 + - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables From cc72d44bdffd092ede2ae66a0a01d0802fc59933 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 4 Feb 2026 15:54:25 +0100 Subject: [PATCH 4/9] Fix Native AOT relocation handling and add thread safety for CoreCLR R2R tests --- .../Common/Compiler/ObjectWriter/MachObjectWriter.cs | 12 +++++++++++- .../AppleAppBuilder/Templates/runtime-coreclr.m | 5 +++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs b/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs index 659c48acda2000..81cd9af08a861f 100644 --- a/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs +++ b/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs @@ -459,7 +459,17 @@ protected internal override unsafe void EmitRelocation( case IMAGE_REL_BASED_ARM64_PAGEBASE_REL21: case IMAGE_REL_BASED_ARM64_PAGEOFFSET_12A: case IMAGE_REL_BASED_ARM64_PAGEOFFSET_12L: - // Addend is handled through ARM64_RELOC_ADDEND + // Read any value already embedded in the instruction and add it to the addend, + // then zero out the instruction's immediate field. + fixed (byte* pData = data) + { + long inlineValue = Relocation.ReadValue(relocType, (void*)pData); + if (inlineValue != 0) + { + addend += inlineValue; + Relocation.WriteValue(relocType, (void*)pData, 0); + } + } break; case IMAGE_REL_BASED_RELPTR32: diff --git a/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m b/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m index 938de5423105c6..f235aada7fc199 100644 --- a/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m +++ b/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m @@ -11,6 +11,7 @@ #include #include #include +#include #import "util.h" @@ -103,6 +104,8 @@ size_t get_image_size(const struct mach_header_64* header) return image_size; } +static pthread_mutex_t s_r2r_load_mutex = PTHREAD_MUTEX_INITIALIZER; + bool get_native_code_data(const struct host_runtime_contract_native_code_context* context, struct host_runtime_contract_native_code_data* data) { if (!context || !data || !context->assembly_path || !context->owner_composite_name) @@ -120,7 +123,9 @@ bool get_native_code_data(const struct host_runtime_contract_native_code_context if (written <= 0 || (size_t)written >= sizeof(r2r_path) - dir_len) return false; + pthread_mutex_lock(&s_r2r_load_mutex); void* handle = dlopen(r2r_path, RTLD_LAZY | RTLD_LOCAL); + pthread_mutex_unlock(&s_r2r_load_mutex); if (handle == NULL) return false; From 8951dee676baab3c22dbb20eff642d891137854d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 5 Feb 2026 13:19:00 +0100 Subject: [PATCH 5/9] Update merged wrapper name regex --- src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m | 5 ----- src/tests/Common/helixpublishwitharcade.proj | 7 ++++--- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m b/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m index f235aada7fc199..938de5423105c6 100644 --- a/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m +++ b/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m @@ -11,7 +11,6 @@ #include #include #include -#include #import "util.h" @@ -104,8 +103,6 @@ size_t get_image_size(const struct mach_header_64* header) return image_size; } -static pthread_mutex_t s_r2r_load_mutex = PTHREAD_MUTEX_INITIALIZER; - bool get_native_code_data(const struct host_runtime_contract_native_code_context* context, struct host_runtime_contract_native_code_data* data) { if (!context || !data || !context->assembly_path || !context->owner_composite_name) @@ -123,9 +120,7 @@ bool get_native_code_data(const struct host_runtime_contract_native_code_context if (written <= 0 || (size_t)written >= sizeof(r2r_path) - dir_len) return false; - pthread_mutex_lock(&s_r2r_load_mutex); void* handle = dlopen(r2r_path, RTLD_LAZY | RTLD_LOCAL); - pthread_mutex_unlock(&s_r2r_load_mutex); if (handle == NULL) return false; diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index ae093a53fd9f67..d74695d00e618f 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -269,6 +269,7 @@ <_MergedWrapperMarker Include="$(TestBinDir)**\*.MergedTestAssembly" Exclude="$(TestBinDir)**\supportFiles\*.MergedTestAssembly" /> <_MergedWrapperMarker Include="$(TestBinDir)**\*.MergedTestAssemblyForStress" Exclude="$(TestBinDir)**\supportFiles\*.MergedTestAssemblyForStress" /> + <_MergedWrapperMarker Condition="'$(TargetsMobile)' == 'true' and '$(NeedsToBuildAppsOnHelix)' == 'true'" Include="$(TestBinDir)**\*.StandaloneTestRunner" Exclude="$(TestBinDir)**\supportFiles\*.StandaloneTestRunner" /> <_MergedWrapperMarker> $([System.IO.Path]::ChangeExtension('%(Identity)', '.$(TestScriptExtension)')) @@ -424,7 +425,7 @@ DependsOnTargets="DiscoverMergedTestWrappers;GetTestExclusionList"> <_MergedWrapperDirectory>%(_MergedWrapperMarker.RootDir)%(Directory) - <_MergedWrapperName>%(_MergedWrapperMarker.FileName) + <_MergedWrapperName>$([System.Text.RegularExpressions.Regex]::Replace('%(_MergedWrapperMarker.FileName)', '\.MergedTestAssembly(ForStress)?(\.\d+\.\d+)?$', '')) <_MergedApkName>$(_MergedWrapperName.Replace('-', '_')) @@ -496,7 +497,7 @@ <_MergedWrapperDirectory>%(_MergedWrapperMarker.RootDir)%(Directory) - <_MergedWrapperName>$([System.Text.RegularExpressions.Regex]::Replace('%(_MergedWrapperMarker.FileName)', '\.MergedTestAssembly(ForStress)?\.\d+\.\d+$', '')) + <_MergedWrapperName>$([System.Text.RegularExpressions.Regex]::Replace('%(_MergedWrapperMarker.FileName)', '\.MergedTestAssembly(ForStress)?(\.\d+\.\d+)?$', '')) @@ -538,7 +539,7 @@ <_MergedWrapperDirectory>%(_MergedWrapperMarker.RootDir)%(Directory) - <_MergedWrapperName>$([System.Text.RegularExpressions.Regex]::Replace('%(_MergedWrapperMarker.FileName)', '\.MergedTestAssembly(ForStress)?\.\d+\.\d+$', '')) + <_MergedWrapperName>$([System.Text.RegularExpressions.Regex]::Replace('%(_MergedWrapperMarker.FileName)', '\.(MergedTestAssembly(ForStress)?(\.\d+\.\d+)?|StandaloneTestRunner)$', '')) From f74fd4970ac61fb9fd560a294a5ff714cfc7e640 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 6 Feb 2026 10:37:17 +0100 Subject: [PATCH 6/9] Fix Android merged test runners and disable failing tests --- .../tests/FunctionalTests/GetHostEntryTest.cs | 1 + .../tests/FunctionalTests/SendReceive/SendReceive.cs | 3 ++- .../tests/FunctionalTests/SocketAsyncEventArgsTest.cs | 3 +++ src/tests/Common/helixpublishwitharcade.proj | 9 ++++++--- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/libraries/System.Net.NameResolution/tests/FunctionalTests/GetHostEntryTest.cs b/src/libraries/System.Net.NameResolution/tests/FunctionalTests/GetHostEntryTest.cs index c4fa6aaadad73a..e5d8ab8674a2a2 100644 --- a/src/libraries/System.Net.NameResolution/tests/FunctionalTests/GetHostEntryTest.cs +++ b/src/libraries/System.Net.NameResolution/tests/FunctionalTests/GetHostEntryTest.cs @@ -260,6 +260,7 @@ public async Task DnsGetHostEntry_BadName_ThrowsArgumentOutOfRangeException_Obso [InlineData(1)] [InlineData(2)] [ActiveIssue("https://github.com/dotnet/runtime/issues/107339", TestPlatforms.Wasi)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124079", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)] public async Task DnsGetHostEntry_LocalHost_ReturnsFqdnAndLoopbackIPs(int mode) { IPHostEntry entry = mode switch diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs index ce7f48d90d30e1..7ce9264bf224e1 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs @@ -185,7 +185,7 @@ public async Task SendRecv_Stream_TCP_LargeMultiBufferSends(IPAddress listenAt) Task acceptTask = AcceptAsync(listener); await client.ConnectAsync(listener.LocalEndPoint).WaitAsync(TestSettings.PassingTestTimeout); using Socket server = await acceptTask.WaitAsync(TestSettings.PassingTestTimeout); - + var sentChecksum = new Fletcher32(); var rand = new Random(); int bytesToSend = 0; @@ -1030,6 +1030,7 @@ await Task.WhenAny(disposeTask, receiveTask) [Theory] [MemberData(nameof(TcpReceiveSendGetsCanceledByDispose_Data))] [ActiveIssue("https://github.com/dotnet/runtime/issues/50568", TestPlatforms.Android | TestPlatforms.LinuxBionic)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124079", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)] [SkipOnPlatform(TestPlatforms.Wasi, "Wasi doesn't support PortBlocker")] public async Task TcpReceiveSendGetsCanceledByDispose(bool receiveOrSend, bool ipv6Server, bool dualModeClient, bool owning) { diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketAsyncEventArgsTest.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketAsyncEventArgsTest.cs index 811b6ff2b18bbe..774f62c866d2d0 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketAsyncEventArgsTest.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketAsyncEventArgsTest.cs @@ -1091,6 +1091,7 @@ public async Task SendTo_DifferentEP_Success(bool ipv4) } [ConditionalFact(typeof(DualModeBase), nameof(DualModeBase.LocalhostIsBothIPv4AndIPv6))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124079", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)] public void Connect_Parallel_Success() { using PortBlocker portBlocker = new PortBlocker(() => @@ -1123,6 +1124,7 @@ public void Connect_Parallel_Success() } [ConditionalFact(typeof(DualModeBase), nameof(DualModeBase.LocalhostIsBothIPv4AndIPv6))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124000", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)] public void Connect_Parallel_Fails() { using PortBlocker portBlocker = new PortBlocker(() => @@ -1157,6 +1159,7 @@ public void Connect_Parallel_Fails() [ConditionalTheory(typeof(DualModeBase), nameof(DualModeBase.LocalhostIsBothIPv4AndIPv6))] [InlineData(true)] [InlineData(false)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124000", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)] public void Connect_Parallel_FailsOver(bool preferIPv6) { using PortBlocker portBlocker = new PortBlocker(() => diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index d74695d00e618f..4e33614e0d8e6f 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -428,9 +428,11 @@ <_MergedWrapperName>$([System.Text.RegularExpressions.Regex]::Replace('%(_MergedWrapperMarker.FileName)', '\.MergedTestAssembly(ForStress)?(\.\d+\.\d+)?$', '')) <_MergedApkName>$(_MergedWrapperName.Replace('-', '_')) + <_ExpectedApkPath>$(_MergedWrapperDirectory)$(MobileAppBundleDirName)/bin/$(_MergedApkName).apk - + + <_MergedPayloadGroups Include="$(_MergedWrapperName)"> $(_MergedApkName) @@ -439,10 +441,11 @@ <_MergedPayloadFiles Include="$(_MergedWrapperDirectory)ExpectedExitCode.txt" Condition="Exists('$(_MergedWrapperDirectory)ExpectedExitCode.txt')" /> - + + ExcludedTests="@(FilteredTestExclusionList)" + Condition="'@(_MergedPayloadApkFiles)' != ''" /> Date: Fri, 6 Feb 2026 14:07:50 +0100 Subject: [PATCH 7/9] Fix MergedWrapperName regex in helixpublishwitharcade.proj --- .../tests/FunctionalTests/SocketAsyncEventArgsTest.cs | 4 ++-- src/tests/Common/helixpublishwitharcade.proj | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketAsyncEventArgsTest.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketAsyncEventArgsTest.cs index 774f62c866d2d0..7e96416c18dd0d 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketAsyncEventArgsTest.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketAsyncEventArgsTest.cs @@ -1124,7 +1124,7 @@ public void Connect_Parallel_Success() } [ConditionalFact(typeof(DualModeBase), nameof(DualModeBase.LocalhostIsBothIPv4AndIPv6))] - [ActiveIssue("https://github.com/dotnet/runtime/issues/124000", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124079", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)] public void Connect_Parallel_Fails() { using PortBlocker portBlocker = new PortBlocker(() => @@ -1159,7 +1159,7 @@ public void Connect_Parallel_Fails() [ConditionalTheory(typeof(DualModeBase), nameof(DualModeBase.LocalhostIsBothIPv4AndIPv6))] [InlineData(true)] [InlineData(false)] - [ActiveIssue("https://github.com/dotnet/runtime/issues/124000", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124079", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)] public void Connect_Parallel_FailsOver(bool preferIPv6) { using PortBlocker portBlocker = new PortBlocker(() => diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 4e33614e0d8e6f..e6a74781906500 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -269,7 +269,7 @@ <_MergedWrapperMarker Include="$(TestBinDir)**\*.MergedTestAssembly" Exclude="$(TestBinDir)**\supportFiles\*.MergedTestAssembly" /> <_MergedWrapperMarker Include="$(TestBinDir)**\*.MergedTestAssemblyForStress" Exclude="$(TestBinDir)**\supportFiles\*.MergedTestAssemblyForStress" /> - <_MergedWrapperMarker Condition="'$(TargetsMobile)' == 'true' and '$(NeedsToBuildAppsOnHelix)' == 'true'" Include="$(TestBinDir)**\*.StandaloneTestRunner" Exclude="$(TestBinDir)**\supportFiles\*.StandaloneTestRunner" /> + <_MergedWrapperMarker Condition="'$(TargetsMobile)' == 'true'" Include="$(TestBinDir)**\*.StandaloneTestRunner" Exclude="$(TestBinDir)**\supportFiles\*.StandaloneTestRunner" /> <_MergedWrapperMarker> $([System.IO.Path]::ChangeExtension('%(Identity)', '.$(TestScriptExtension)')) @@ -500,7 +500,7 @@ <_MergedWrapperDirectory>%(_MergedWrapperMarker.RootDir)%(Directory) - <_MergedWrapperName>$([System.Text.RegularExpressions.Regex]::Replace('%(_MergedWrapperMarker.FileName)', '\.MergedTestAssembly(ForStress)?(\.\d+\.\d+)?$', '')) + <_MergedWrapperName>$([System.Text.RegularExpressions.Regex]::Replace('%(_MergedWrapperMarker.FileName)', '\.(MergedTestAssembly(ForStress)?(\.\d+\.\d+)?|StandaloneTestRunner)$', '')) From 19e4681d2ab14601af3f9d89ff0089d40131a038 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 9 Feb 2026 09:42:24 +0100 Subject: [PATCH 8/9] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/tests/Common/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index e6a74781906500..1d66d8b2e107db 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -425,7 +425,7 @@ DependsOnTargets="DiscoverMergedTestWrappers;GetTestExclusionList"> <_MergedWrapperDirectory>%(_MergedWrapperMarker.RootDir)%(Directory) - <_MergedWrapperName>$([System.Text.RegularExpressions.Regex]::Replace('%(_MergedWrapperMarker.FileName)', '\.MergedTestAssembly(ForStress)?(\.\d+\.\d+)?$', '')) + <_MergedWrapperName>$([System.Text.RegularExpressions.Regex]::Replace('%(_MergedWrapperMarker.FileName)', '\.(MergedTestAssembly(ForStress)?(\.\d+\.\d+)?|StandaloneTestRunner)$', '')) <_MergedApkName>$(_MergedWrapperName.Replace('-', '_')) <_ExpectedApkPath>$(_MergedWrapperDirectory)$(MobileAppBundleDirName)/bin/$(_MergedApkName).apk From 317809fafff75e0130709992444f8af927287de8 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 9 Feb 2026 09:44:46 +0100 Subject: [PATCH 9/9] Revert changes --- .../Common/Compiler/ObjectWriter/MachObjectWriter.cs | 12 +----------- src/tests/Common/helixpublishwitharcade.proj | 2 +- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs b/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs index 81cd9af08a861f..659c48acda2000 100644 --- a/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs +++ b/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs @@ -459,17 +459,7 @@ protected internal override unsafe void EmitRelocation( case IMAGE_REL_BASED_ARM64_PAGEBASE_REL21: case IMAGE_REL_BASED_ARM64_PAGEOFFSET_12A: case IMAGE_REL_BASED_ARM64_PAGEOFFSET_12L: - // Read any value already embedded in the instruction and add it to the addend, - // then zero out the instruction's immediate field. - fixed (byte* pData = data) - { - long inlineValue = Relocation.ReadValue(relocType, (void*)pData); - if (inlineValue != 0) - { - addend += inlineValue; - Relocation.WriteValue(relocType, (void*)pData, 0); - } - } + // Addend is handled through ARM64_RELOC_ADDEND break; case IMAGE_REL_BASED_RELPTR32: diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 1d66d8b2e107db..7a9ff200f57fe1 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -431,7 +431,7 @@ <_ExpectedApkPath>$(_MergedWrapperDirectory)$(MobileAppBundleDirName)/bin/$(_MergedApkName).apk - + <_MergedPayloadGroups Include="$(_MergedWrapperName)"> $(_MergedApkName)