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

Cherry-pick V8 fixes needed for Apple Silicon #35986

Closed
wants to merge 4 commits into from

Commits on Nov 11, 2020

  1. deps: V8: cherry-pick 27e1ac1a79ff

    Original commit message:
    
        [wasm][mac] Support w^x codespaces for Apple Silicon
    
        Apple's upcoming arm64 devices will prevent rwx access to memory,
        but in turn provide a new per-thread way to switch between write
        and execute permissions. This patch puts that system to use for
        the WebAssembly subsystem.
        The approach relies on CodeSpaceWriteScope objects for now. That
        isn't optimal for background threads (which could stay in "write"
        mode permanently instead of toggling), but its simplicity makes
        it a good first step.
    
        Background:
        https://developer.apple.com/documentation/apple_silicon/porting_just-in-time_compilers_to_apple_silicon
    
        Bug: chromium:1117591
        Change-Id: I3b60f0efd34c0fed924dfc71ee2c7805801c5d42
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2378307
        Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
        Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
        Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
        Cr-Commit-Position: refs/heads/master@{#69791}
    oleavr authored and Trott committed Nov 11, 2020
    Configuration menu
    Copy the full SHA
    fdd2593 View commit details
    Browse the repository at this point in the history
  2. deps: V8: cherry-pick 086eecbd96b6

    Original commit message:
    
        [platform] Add Permission::kNoAccessWillJitLater enum value
    
        This value is unused for now. This CL is part 1 of a 3-step dance.
        Part 2 will be teaching Chrome's Platform implementation to accept
        the new value. Part 3 will then actually use it in V8.
    
        Bug: chromium:1117591
        Change-Id: Ie3aed20d4cc58f3def3be2a3a03bba4c3a37bf44
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2450056
        Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
        Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
        Cr-Commit-Position: refs/heads/master@{#70335}
    oleavr authored and Trott committed Nov 11, 2020
    Configuration menu
    Copy the full SHA
    d5fb2f0 View commit details
    Browse the repository at this point in the history
  3. deps: V8: cherry-pick 4e077ff0444a

    Original commit message:
    
        [mac] Set MAP_JIT only when necessary
    
        This is a "minimal" change to achieve the required goal: seeing that
        there is only one place where we need to indicate that memory should
        be reserved with MAP_JIT, we can add a value to the Permissions enum
        instead of adding a second, orthogonal parameter.
        That way we avoid changing public API functions, which makes this CL
        easier to undo once we have platform-independent w^x in Wasm.
    
        Bug: chromium:1117591
        Change-Id: I6333d69ab29d5900c689f08dcc892a5f1c1159b8
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2435365
        Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
        Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
        Reviewed-by: Clemens Backes <clemensb@chromium.org>
        Cr-Commit-Position: refs/heads/master@{#70379}
    oleavr authored and Trott committed Nov 11, 2020
    Configuration menu
    Copy the full SHA
    1d00265 View commit details
    Browse the repository at this point in the history
  4. deps: V8: cherry-pick 1d0f426311d4

    Original commit message:
    
        [mac-arm64] Fix missing #include
    
        For an "#if defined(MAP_JIT)" test to work as expected, <sys/mman.h>
        must be included in the compilation unit.
    
        Bug: chromium:1144200
        Change-Id: Ia0bf35ec1872c02457f1fbc0ee6689c7f7d27d4a
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2517689
        Reviewed-by: Clemens Backes <clemensb@chromium.org>
        Reviewed-by: Igor Sheludko <ishell@chromium.org>
        Reviewed-by: Nico Weber <thakis@chromium.org>
        Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
        Cr-Commit-Position: refs/heads/master@{#70986}
    oleavr authored and Trott committed Nov 11, 2020
    Configuration menu
    Copy the full SHA
    52b570c View commit details
    Browse the repository at this point in the history