--- /dev/null
+#include "emscripten.h"
+
+// If we're running in node, report the UID of the user in the native system as
+// the UID of the user. Since the nodefs will report the uid correctly, if we
+// don't make getuid report it correctly too we'll see some permission errors.
+// Normally __syscall_getuid32 is a stub that always returns 0 but it is
+// defined with weak linkage so we can override it.
+EM_JS(int, __syscall_getuid32_js, (void), {
+ // If we're in node and we can, report the native uid
+ if (typeof process !== "undefined" && typeof process.getuid === "function") {
+ return process.getuid();
+ }
+ // Fall back to the stub case of returning 0.
+ return 0;
+})
+
+int __syscall_getuid32(void) {
+ return __syscall_getuid32_js();
+}
Python/dynload_dl.c # dl.h
Python/dynload_hpux.c # dl.h
Python/emscripten_signal.c
+Python/emscripten_syscalls.c
Python/thread_pthread.h
Python/thread_pthread_stubs.h
case $ac_sys_system in #(
Emscripten) :
- as_fn_append PLATFORM_OBJS ' Python/emscripten_signal.o Python/emscripten_trampoline.o'
+ as_fn_append PLATFORM_OBJS ' Python/emscripten_signal.o Python/emscripten_trampoline.o Python/emscripten_syscalls.o'
as_fn_append PLATFORM_HEADERS ' $(srcdir)/Include/internal/pycore_emscripten_signal.h $(srcdir)/Include/internal/pycore_emscripten_trampoline.h'
;; #(
*) :
AS_CASE([$ac_sys_system],
[Emscripten], [
- AS_VAR_APPEND([PLATFORM_OBJS], [' Python/emscripten_signal.o Python/emscripten_trampoline.o'])
+ AS_VAR_APPEND([PLATFORM_OBJS], [' Python/emscripten_signal.o Python/emscripten_trampoline.o Python/emscripten_syscalls.o'])
AS_VAR_APPEND([PLATFORM_HEADERS], [' $(srcdir)/Include/internal/pycore_emscripten_signal.h $(srcdir)/Include/internal/pycore_emscripten_trampoline.h'])
],
)