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

Work around a Linux arm32 unaligned data issue in SuperPMI #56517

Commits on Jul 29, 2021

  1. Work around a Linux arm32 unaligned data issue in SuperPMI

    impImportStaticReadOnlyField reads the data at the address returned by
    getFieldAddress. SuperPMI saves and replays this data, but it doesn't
    store it at a naturally aligned address. For int64/double (at least),
    this is a problem on Linux arm32, which raises a SIGBUS exception on
    such unaligned access.
    
    This works around the problem by copying the potentially unaligned data
    to a known aligned spot before reading it. This is only done under DEBUG
    and when we know we are replaying under SuperPMI.
    
    A proper fix would be to teach SuperPMI about alignment, but that would be
    a large and risky change, compared to this small and isolated workaround.
    
    The fixes the non-determinism of dotnet#56156.
    BruceForstall committed Jul 29, 2021
    Configuration menu
    Copy the full SHA
    947d268 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5f96fda View commit details
    Browse the repository at this point in the history