Skip to content
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

Fix linux-x86 build #111861

Merged
merged 13 commits into from
Jan 28, 2025
Merged

Fix linux-x86 build #111861

merged 13 commits into from
Jan 28, 2025

Conversation

filipnavara
Copy link
Member

@filipnavara filipnavara commented Jan 27, 2025

The linux-x86 builds have been broken for quite a while. At some point in the .NET 5 timeframe genZeroInitFrameUsingBlockInit was rewritten and it dropped support for non-SIMD platforms. linux-x86 had FEATURE_SIMD disabled since 2016 but the original intention was to disable AVX only.

  • Enable FEATURE_SIMD and HW intrinsics on linux-x86. Fixes [x86/unix] HW instrinsics support #11539
  • Disable AVX support due to missing context saving.
  • Fix general bit rot around stubs and W^X support.
  • Enable CrossGen runs on linux-x86 CI for S.P.CoreLib to reduce further bit rot.

This is good enough to run Hello World again.

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 27, 2025
@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Jan 27, 2025
@filipnavara filipnavara marked this pull request as ready for review January 27, 2025 13:34
@filipnavara

This comment was marked as resolved.

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
@filipnavara

This comment was marked as resolved.

@filipnavara filipnavara marked this pull request as draft January 27, 2025 16:29
@filipnavara

This comment was marked as resolved.

@@ -1143,9 +1144,12 @@ VOID StubLinkerCPU::X86EmitPopRegs(unsigned regSet)
{
STANDARD_VM_CONTRACT;

for (X86Reg r = NumX86Regs; r >= kEAX; r = (X86Reg)(r-1))
for (X86Reg r = NumX86Regs; regSet > 0; r = (X86Reg)(r-1))
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would always underflow, X86Reg is unsigned and kEAX is 0.

@filipnavara

This comment was marked as resolved.

@filipnavara

This comment was marked as resolved.

@filipnavara

This comment was marked as resolved.

@filipnavara filipnavara marked this pull request as ready for review January 27, 2025 21:26
@filipnavara filipnavara changed the title Enable FEATURE_SIMD on linux-x86 Fix linux-x86 build Jan 27, 2025
src/coreclr/jit/compiler.h Outdated Show resolved Hide resolved
@jkotas jkotas merged commit cdb88b2 into dotnet:main Jan 28, 2025
179 checks passed
@filipnavara filipnavara deleted the simd-on-linux-x86 branch January 28, 2025 21:04
grendello added a commit to grendello/runtime that referenced this pull request Jan 28, 2025
* main: (31 commits)
  Fix linux-x86 build (dotnet#111861)
  Add FrozenDictionary specialization for integers / enums (dotnet#111886)
  [SRM] Refactor reading from streams. (dotnet#111323)
  Sign the DAC and DBI during the build process instead of in separate steps (dotnet#111416)
  Removing Entry2MethodDesc as it is unnecessary (dotnet#111756)
  Cross Product for Vector2 and Vector4 (dotnet#111265)
  Handle unicode in absolute URI path for combine. (dotnet#111710)
  Drop RequiresProcessIsolation on mcc tests (dotnet#111887)
  [main] Update dependencies from dotnet/roslyn (dotnet#111691)
  new trimmer feature System.TimeZoneInfo.Invariant (dotnet#111215)
  [browser] reduce msbuild memory footprint (dotnet#111751)
  Add debugging checks for stack overflow tests failure (dotnet#111867)
  Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2629821 (dotnet#111884)
  Bump main to preview2 (dotnet#111882)
  Avoid generic virtual dispatch for frozen collections alternate lookup (dotnet#108732)
  Bump main versioning to preview1 (dotnet#111880)
  Switch OneLoc to main (dotnet#111872)
  Improve docs on building ILVerify (dotnet#111851)
  Update Debian version to 13 (dotnet#111768)
  win32: add fallback to environment vars for system folder (dotnet#109673)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[x86/unix] HW instrinsics support
5 participants