From 7ca8abc7884edd853f6f6967cfde9c4d88db16de Mon Sep 17 00:00:00 2001 From: Haolan Date: Fri, 5 Sep 2025 19:00:53 +0800 Subject: [PATCH] fix: println --- runtime/internal/clite/stdio_baremental.go | 7 ++----- runtime/internal/lib/runtime/maxprocs_default.go | 4 ++++ runtime/internal/runtime/z_print.go | 12 ++++++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/runtime/internal/clite/stdio_baremental.go b/runtime/internal/clite/stdio_baremental.go index 539e198a..fe009932 100644 --- a/runtime/internal/clite/stdio_baremental.go +++ b/runtime/internal/clite/stdio_baremental.go @@ -20,10 +20,7 @@ package c import _ "unsafe" -//go:linkname Stdin stdin +// initialized by z_print because LLGoPackage skips calling init() var Stdin FilePtr - -//go:linkname Stdout stdout var Stdout FilePtr - -var Stderr FilePtr = Fopen(Str("/dev/stderr"), Str("w")) +var Stderr FilePtr diff --git a/runtime/internal/lib/runtime/maxprocs_default.go b/runtime/internal/lib/runtime/maxprocs_default.go index 1788c76d..04d2b804 100644 --- a/runtime/internal/lib/runtime/maxprocs_default.go +++ b/runtime/internal/lib/runtime/maxprocs_default.go @@ -2,6 +2,10 @@ package runtime +import ( + _ "unsafe" +) + const ( LLGoPackage = "link" LLGoFiles = "_wrap/runtime.c" diff --git a/runtime/internal/runtime/z_print.go b/runtime/internal/runtime/z_print.go index 21c5e36a..02b3c9b3 100644 --- a/runtime/internal/runtime/z_print.go +++ b/runtime/internal/runtime/z_print.go @@ -22,6 +22,18 @@ import ( c "github.com/goplus/llgo/runtime/internal/clite" ) +func init() { + if c.Stdin == nil { + c.Stdin = c.Fopen(c.Str("/dev/stdin"), c.Str("r")) + } + if c.Stdout == nil { + c.Stdout = c.Fopen(c.Str("/dev/stdout"), c.Str("w")) + } + if c.Stderr == nil { + c.Stderr = c.Stdout + } +} + func boolCStr(v bool) *c.Char { if v { return c.Str("true")