Skip to content

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.

@ghost ghost 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.

@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.

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
@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)
  ...
@github-actions github-actions bot locked and limited conversation to collaborators Feb 28, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
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