Commit 97562879 authored by Paolo Severini's avatar Paolo Severini Committed by Commit Bot

Fix build error on ARM64/Windows

In file include/v8config.h we define:

ifdef V8_OS_WIN
...
if defined(_M_X64) || defined(__x86_64__)
  define V8_OS_WIN_X64 true
endif

and V8_OS_WIN_X64 is supposed to be defined when targeting X64 on Windows only.
But this is wrong because V8_OS_WIN_X64 gets defined also on an ARM64 builds
when the host machine is X64. It should instead be:

ifdef V8_OS_WIN
...
if defined(V8_TARGET_ARCH_X64)
  define V8_OS_WIN_X64 true
endif

Bug: v8:9090
Change-Id: I88e4c46bb6df1efa2070d4e1785081d71df96f0e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1554222Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
Commit-Queue: Paolo Severini <paolosev@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#60758}
parent a4b01d74
......@@ -7167,7 +7167,7 @@ typedef void (*JitCodeEventHandler)(const JitCodeEvent* event);
/**
* Callback function passed to SetUnhandledExceptionCallback.
*/
#if defined(V8_OS_WIN_X64)
#if defined(V8_OS_WIN)
typedef int (*UnhandledExceptionCallback)(
_EXCEPTION_POINTERS* exception_pointers);
#endif
......@@ -8791,7 +8791,7 @@ class V8_EXPORT V8 {
*/
static bool EnableWebAssemblyTrapHandler(bool use_v8_signal_handler);
#if defined(V8_OS_WIN_X64)
#if defined(V8_OS_WIN)
/**
* On Win64, by default V8 does not emit unwinding data for jitted code,
* which means the OS cannot walk the stack frames and the system Structured
......
......@@ -364,10 +364,6 @@
# define V8_EXPORT
#endif // BUILDING_V8_SHARED
#if defined(_M_X64) || defined(__x86_64__)
# define V8_OS_WIN_X64 true
#endif
#else // V8_OS_WIN
// Setup for Linux shared library export.
......
......@@ -5791,11 +5791,15 @@ bool V8::EnableWebAssemblyTrapHandler(bool use_v8_signal_handler) {
return v8::internal::trap_handler::EnableTrapHandler(use_v8_signal_handler);
}
#if defined(V8_OS_WIN_X64)
#if defined(V8_OS_WIN)
void V8::SetUnhandledExceptionCallback(
UnhandledExceptionCallback unhandled_exception_callback) {
#if defined(V8_TARGET_ARCH_X64)
v8::internal::win64_unwindinfo::SetUnhandledExceptionCallback(
unhandled_exception_callback);
#else
// Not implemented on ARM64.
#endif
}
#endif
......
......@@ -87,6 +87,10 @@ constexpr int kStackSpaceRequiredForCompilation = 40;
#define V8_SFI_HAS_UNIQUE_ID true
#endif
#if defined(V8_OS_WIN) && defined(V8_TARGET_ARCH_X64)
#define V8_OS_WIN_X64 true
#endif
// Superclass for classes only using static method functions.
// The subclass of AllStatic cannot be instantiated at all.
class AllStatic {
......
......@@ -5,12 +5,12 @@
#ifndef V8_UNWINDING_INFO_WIN64_H_
#define V8_UNWINDING_INFO_WIN64_H_
#include "include/v8.h"
#include "include/v8config.h"
#include "src/globals.h"
#if defined(V8_OS_WIN_X64)
#include "include/v8.h"
#include "src/base/win32-headers.h"
#include "src/globals.h"
namespace v8 {
namespace internal {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment