• Jakob Gruber's avatar
    [build] Define V8_TARGET_OS_ and consider it in x64 codegen · 99d31b43
    Jakob Gruber authored
    This CL allows us to distinguish between the host- and target OS. The
    host OS is defined by V8_OS_ macros (e.g. V8_OS_WIN). The target OS is
    defined by V8_TARGET_OS_ macros (e.g. V8_TARGET_OS_WIN).
    
    V8_TARGET_OS_ macros are defined by gn, based on the `target_os` gn
    variable. If a V8_TARGET_OS_ is set, we also define V8_HAVE_TARGET_OS
    (this determines fall-back behavior in V8; if it is not defined, we set
    V8_TARGET_OS_ to equal the equivalent V8_OS_ define).
    
    Besides adding the defines, this CL also adds logic to consider the
    target OS in codegen. Specifically, x64 builds now look at the
    V8_TARGET_OS_WIN define instead of V8_OS_WIN or _WIN64. This
    effectively makes cross-compilation to x64 Windows in mksnapshot
    possible.
    
    In future work, we could add similar support for cross-compiling to
    other platforms such as ia32 Windows.
    
    Bug: v8:9736,chromium:803591
    Change-Id: I689f3de8c206b743c4bef703f5ade0bba32ce995
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1809374Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#63892}
    99d31b43
BUILD.gn 147 KB