From f6d83fb7e899b7fc10ee692e4c387bca3acfd8ec Mon Sep 17 00:00:00 2001 From: randomtwdude <105645765+randomtwdude@users.noreply.github.com> Date: Fri, 26 Sep 2025 15:56:33 +0800 Subject: [PATCH 1/2] Move _init_metalfile to after __memmove is available --- libc/calls/metalfile_init.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libc/calls/metalfile_init.S b/libc/calls/metalfile_init.S index 0f5466fc50f..11717bc67d4 100644 --- a/libc/calls/metalfile_init.S +++ b/libc/calls/metalfile_init.S @@ -27,12 +27,12 @@ #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 pop %rsi pop %rdi - .init.end 102,_init_metalfile + .init.end 203,_init_metalfile APE_COM_NAME: .endobj APE_COM_NAME,globl,hidden From 38d343893d914b43425dadbf95df5f475608a131 Mon Sep 17 00:00:00 2001 From: randomtwdude <105645765+randomtwdude@users.noreply.github.com> Date: Fri, 26 Sep 2025 16:00:48 +0800 Subject: [PATCH 2/2] Set __pid to 1 for metal --- libc/calls/metalfile.c | 6 ++++++ libc/calls/metalfile_init.S | 1 + 2 files changed, 7 insertions(+) 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 11717bc67d4..ac8407a3d40 100644 --- a/libc/calls/metalfile_init.S +++ b/libc/calls/metalfile_init.S @@ -31,6 +31,7 @@ push %rdi push %rsi call InitializeMetalFile + call SetMetalPid pop %rsi pop %rdi .init.end 203,_init_metalfile