Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.7 kB · 76 lines
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677Backport V8_TRAP_HANDLER_SUPPORTED conditional compilation for traphandler implementation.
See https://github.com/v8/v8/commit/e7bef8d4cc4f38cc3d5a532fbcc445dc62adc08f
E.g. when cross-compiling from aarch64-linux for x86_64-linux target,handler-inside-posix.cc is built on aarch64-linux even though it is notsupported; see src/trap-handler/trap-handler.h in v8 for (host, target)combinations where trap handler is supported.
Note that handler-inside-posix.cc fails to build in the case above.
diff --git a/deps/v8/src/trap-handler/handler-inside-posix.cc b/deps/v8/src/trap-handler/handler-inside-posix.ccindex e4454c378f..17af3d75dc 100644--- a/deps/v8/src/trap-handler/handler-inside-posix.cc+++ b/deps/v8/src/trap-handler/handler-inside-posix.cc@@ -47,6 +47,8 @@ namespace v8 { namespace internal { namespace trap_handler { +#if V8_TRAP_HANDLER_SUPPORTED+ #if V8_OS_LINUX #define CONTEXT_REG(reg, REG) &uc->uc_mcontext.gregs[REG_##REG] #elif V8_OS_DARWIN@@ -181,6 +183,8 @@ void HandleSignal(int signum, siginfo_t* info, void* context) { // TryHandleSignal modifies context to change where we return to. } +#endif+ } // namespace trap_handler } // namespace internal } // namespace v8diff --git a/deps/v8/src/trap-handler/handler-inside-win.cc b/deps/v8/src/trap-handler/handler-inside-win.ccindex fcccc78ee5..3d7a2c416a 100644--- a/deps/v8/src/trap-handler/handler-inside-win.cc+++ b/deps/v8/src/trap-handler/handler-inside-win.cc@@ -38,6 +38,8 @@ namespace v8 { namespace internal { namespace trap_handler { +#if V8_TRAP_HANDLER_SUPPORTED+ // The below struct needed to access the offset in the Thread Environment Block // to see if the thread local storage for the thread has been allocated yet. //@@ -129,6 +131,8 @@ LONG HandleWasmTrap(EXCEPTION_POINTERS* exception) { return EXCEPTION_CONTINUE_SEARCH; } +#endif+ } // namespace trap_handler } // namespace internal } // namespace v8diff --git a/deps/v8/src/trap-handler/handler-outside-simulator.cc b/deps/v8/src/trap-handler/handler-outside-simulator.ccindex 179eab0659..5e58719e7f 100644--- a/deps/v8/src/trap-handler/handler-outside-simulator.cc+++ b/deps/v8/src/trap-handler/handler-outside-simulator.cc@@ -4,6 +4,9 @@ #include "include/v8config.h" #include "src/trap-handler/trap-handler-simulator.h"+#include "src/trap-handler/trap-handler.h"++#if V8_TRAP_HANDLER_SUPPORTED #if V8_OS_DARWIN #define SYMBOL(name) "_" #name@@ -35,3 +38,5 @@ asm( SYMBOL(v8_probe_memory_continuation) ": \n" // If the trap handler continues here, it wrote the landing pad in %rax. " ret \n");++#endif