diff --git a/libc/calls/metalfile.c b/libc/calls/metalfile.c index 5d2c57540d8..757b2206ca4 100644 --- a/libc/calls/metalfile.c +++ b/libc/calls/metalfile.c @@ -34,6 +34,7 @@ #include "libc/intrin/weaken.h" #include "libc/macros.h" #include "libc/mem/mem.h" +#include "libc/runtime/internal.h" #include "libc/runtime/pc.internal.h" #include "libc/runtime/runtime.h" #include "libc/str/str.h" @@ -80,4 +81,9 @@ textstartup void InitializeMetalFile(void) { } } +textstartup void SetMetalPid(void) { + if (IsMetal()) + __pid = 1; +} + #endif /* __x86_64__ */ diff --git a/libc/calls/metalfile_init.S b/libc/calls/metalfile_init.S index 0f5466fc50f..ac8407a3d40 100644 --- a/libc/calls/metalfile_init.S +++ b/libc/calls/metalfile_init.S @@ -27,12 +27,13 @@ #include "libc/macros.h" #include "libc/calls/metalfile.internal.h" - .init.start 102,_init_metalfile + .init.start 203,_init_metalfile push %rdi push %rsi call InitializeMetalFile + call SetMetalPid pop %rsi pop %rdi - .init.end 102,_init_metalfile + .init.end 203,_init_metalfile APE_COM_NAME: .endobj APE_COM_NAME,globl,hidden