diff options
Diffstat (limited to 'data/nodejs/jitless.diff')
-rw-r--r-- | data/nodejs/jitless.diff | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/data/nodejs/jitless.diff b/data/nodejs/jitless.diff deleted file mode 100644 index f5cb3f95b..000000000 --- a/data/nodejs/jitless.diff +++ /dev/null @@ -1,165 +0,0 @@ -diff -Naur node-v12.3.1/deps/uv/src/unix/process.c node-v12.3.1+iPhone/deps/uv/src/unix/process.c ---- node-v12.3.1/deps/uv/src/unix/process.c 2019-05-22 12:21:52.000000000 +0000 -+++ node-v12.3.1+iPhone/deps/uv/src/unix/process.c 2019-05-28 22:01:59.417155270 +0000 -@@ -267,7 +267,8 @@ - } - - --#if !(defined(__APPLE__) && (TARGET_OS_TV || TARGET_OS_WATCH)) -+#if !(defined(__APPLE__) && (TARGET_OS_TV || TARGET_OS_WATCH || TARGET_OS_IPHONE)) -+// Disabled on iOS until MC fixes jitless, the syscall ruins spawning children. - /* execvp is marked __WATCHOS_PROHIBITED __TVOS_PROHIBITED, so must be - * avoided. Since this isn't called on those targets, the function - * doesn't even need to be defined for them. -@@ -411,7 +412,7 @@ - int uv_spawn(uv_loop_t* loop, - uv_process_t* process, - const uv_process_options_t* options) { --#if defined(__APPLE__) && (TARGET_OS_TV || TARGET_OS_WATCH) -+#if defined(__APPLE__) && (TARGET_OS_TV || TARGET_OS_WATCH || TARGET_OS_IPHONE) - /* fork is marked __WATCHOS_PROHIBITED __TVOS_PROHIBITED. */ - return UV_ENOSYS; - #else -diff -Naur node-v12.3.1/src/codesign.h node-v12.3.1+iPhone/src/codesign.h ---- node-v12.3.1/src/codesign.h 1970-01-01 00:00:00.000000000 +0000 -+++ node-v12.3.1+iPhone/src/codesign.h 2019-05-28 22:00:20.085095406 +0000 -@@ -0,0 +1,65 @@ -+/* -+ * Copyright (c) 2006 Apple Computer, Inc. All rights reserved. -+ * -+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -+ * -+ * This file contains Original Code and/or Modifications of Original Code -+ * as defined in and that are subject to the Apple Public Source License -+ * Version 2.0 (the 'License'). You may not use this file except in -+ * compliance with the License. The rights granted to you under the License -+ * may not be used to create, or enable the creation or redistribution of, -+ * unlawful or unlicensed copies of an Apple operating system, or to -+ * circumvent, violate, or enable the circumvention or violation of, any -+ * terms of an Apple operating system software license agreement. -+ * -+ * Please obtain a copy of the License at -+ * http://www.opensource.apple.com/apsl/ and read it before using this file. -+ * -+ * The Original Code and all software distributed under the License are -+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -+ * Please see the License for the specific language governing rights and -+ * limitations under the License. -+ * -+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -+ */ -+ -+#ifndef _SYS_CODESIGN_H_ -+#define _SYS_CODESIGN_H_ -+ -+#include <sys/types.h> -+ -+/* code signing attributes of a process */ -+#define CS_VALID 0x0001 /* dynamically valid */ -+#define CS_HARD 0x0100 /* don't load invalid pages */ -+#define CS_KILL 0x0200 /* kill process if it becomes invalid */ -+#define CS_EXEC_SET_HARD 0x1000 /* set CS_HARD on any exec'ed process */ -+#define CS_EXEC_SET_KILL 0x2000 /* set CS_KILL on any exec'ed process */ -+#define CS_KILLED 0x10000 /* was killed by kernel for invalidity */ -+#define CS_RESTRICT 0x20000 /* tell dyld to treat restricted */ -+ -+/* csops operations */ -+#define CS_OPS_STATUS 0 /* return status */ -+#define CS_OPS_MARKINVALID 1 /* invalidate process */ -+#define CS_OPS_MARKHARD 2 /* set HARD flag */ -+#define CS_OPS_MARKKILL 3 /* set KILL flag (sticky) */ -+#define CS_OPS_PIDPATH 4 /* get executable's pathname */ -+#define CS_OPS_CDHASH 5 /* get code directory hash */ -+#define CS_OPS_PIDOFFSET 6 /* get offset of active Mach-o slice */ -+#define CS_OPS_ENTITLEMENTS_BLOB 7 /* get entitlements blob */ -+#define CS_OPS_MARKRESTRICT 8 /* set RESTRICT flag (sticky) */ -+ -+#ifndef KERNEL -+ -+__BEGIN_DECLS -+ -+/* code sign operations */ -+int csops(pid_t pid, unsigned int ops, void * useraddr, size_t usersize); -+ -+__END_DECLS -+ -+#endif /* ! KERNEL */ -+ -+#endif /* _SYS_CODESIGN_H_ */ -diff -Naur node-v12.3.1/src/node.cc node-v12.3.1+iPhone/src/node.cc ---- node-v12.3.1/src/node.cc 2019-05-22 12:21:54.000000000 +0000 -+++ node-v12.3.1+iPhone/src/node.cc 2019-05-28 22:00:20.085095406 +0000 -@@ -94,6 +94,19 @@ - #include <unistd.h> // STDIN_FILENO, STDERR_FILENO - #endif - -+#if TARGET_OS_IPHONE || V8_TARGET_OS_IPHONE -+#ifdef __cplusplus -+extern "C" { -+#endif -+ #include "codesign.h" -+ #include <sys/syscall.h> -+#ifdef __cplusplus -+} -+#endif -+ #define CS_OPS_STATUS 0 -+ #define CS_DEBUGGED 0x10000000 -+#endif -+ - // ========== global C++ headers ========== - - #include <cerrno> -@@ -625,13 +638,6 @@ - per_process::cli_options->cmdline = *argv; - #endif // NODE_REPORT - --#if defined(NODE_V8_OPTIONS) -- // Should come before the call to V8::SetFlagsFromCommandLine() -- // so the user can disable a flag --foo at run-time by passing -- // --no_foo from the command line. -- V8::SetFlagsFromString(NODE_V8_OPTIONS, sizeof(NODE_V8_OPTIONS) - 1); --#endif -- - std::shared_ptr<EnvironmentOptions> default_env_options = - per_process::cli_options->per_isolate->per_env; - { -@@ -891,6 +897,22 @@ - params.snapshot_blob = blob; - } - -+#if defined(NODE_V8_OPTIONS) -+ V8::SetFlagsFromString(NODE_V8_OPTIONS, sizeof(NODE_V8_OPTIONS) - 1); -+ #if TARGET_OS_IPHONE || V8_TARGET_OS_IPHONE -+ /* -+ Even with '--jitless' it appears that node only works under a debugger. -+ https://github.com/hrydgard/ppsspp/commit/53e254d352986dc1093c620c58075189fd714a65 -+ https://github.com/hrydgard/ppsspp/issues/11905#issuecomment-476871010 -+ */ -+ uint32_t flags; -+ csops(getpid(), CS_OPS_STATUS, &flags, 0); -+ if (!(flags & CS_DEBUGGED)) { -+ syscall(SYS_ptrace, 0, 0, 0, 0); -+ } -+ #endif -+#endif -+ - NodeMainInstance main_instance(¶ms, - uv_default_loop(), - per_process::v8_platform.Platform(), -diff -Naur node-v12.3.1/src/node_options.cc node-v12.3.1+iPhone/src/node_options.cc ---- node-v12.3.1/src/node_options.cc 2019-05-22 12:21:54.000000000 +0000 -+++ node-v12.3.1+iPhone/src/node_options.cc 2019-05-28 22:00:20.085095406 +0000 -@@ -499,6 +499,10 @@ - kAllowedInEnvironment); - AddOption("--stack-trace-limit", "", V8Option{}, kAllowedInEnvironment); - -+#if TARGET_OS_IPHONE || V8_TARGET_OS_IPHONE -+ AddOption("--jitless", "", V8Option{}, kAllowedInEnvironment); -+#endif -+ - #ifdef NODE_REPORT - AddOption("--report-uncaught-exception", - "generate diagnostic report on uncaught exceptions", |