aboutsummaryrefslogtreecommitdiff
path: root/devel/electron37/files/patch-v8_src_execution_isolate.cc
diff options
context:
space:
mode:
Diffstat (limited to 'devel/electron37/files/patch-v8_src_execution_isolate.cc')
-rw-r--r--devel/electron37/files/patch-v8_src_execution_isolate.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/devel/electron37/files/patch-v8_src_execution_isolate.cc b/devel/electron37/files/patch-v8_src_execution_isolate.cc
new file mode 100644
index 000000000000..4ba57e28ff96
--- /dev/null
+++ b/devel/electron37/files/patch-v8_src_execution_isolate.cc
@@ -0,0 +1,27 @@
+--- v8/src/execution/isolate.cc.orig 2025-06-30 07:04:30 UTC
++++ v8/src/execution/isolate.cc
+@@ -173,6 +173,10 @@
+ #include "src/execution/simulator-base.h"
+ #endif
+
++#if defined(V8_OS_OPENBSD)
++#include <sys/mman.h>
++#endif
++
+ extern "C" const uint8_t v8_Default_embedded_blob_code_[];
+ extern "C" uint32_t v8_Default_embedded_blob_code_size_;
+ extern "C" const uint8_t v8_Default_embedded_blob_data_[];
+@@ -5171,6 +5175,13 @@ void Isolate::InitializeDefaultEmbeddedBlob() {
+ uint32_t code_size = DefaultEmbeddedBlobCodeSize();
+ const uint8_t* data = DefaultEmbeddedBlobData();
+ uint32_t data_size = DefaultEmbeddedBlobDataSize();
++
++#if defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32)
++ if (code_size > 0) {
++ mprotect(reinterpret_cast<void *>(const_cast<uint8_t *>(code)),
++ code_size, PROT_READ | PROT_EXEC);
++ }
++#endif
+
+ if (StickyEmbeddedBlobCode() != nullptr) {
+ base::MutexGuard guard(current_embedded_blob_refcount_mutex_.Pointer());