runtime: compatible difference of stdio symbols between linux and others
This commit is contained in:
6
c/c.go
6
c/c.go
@@ -97,13 +97,13 @@ func Qsort(base Pointer, count, elem uintptr, compar func(a, b Pointer) Int)
|
|||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
//go:linkname Stdin __stdinp
|
//go:linkname Stdin llgo_stdin
|
||||||
var Stdin FilePtr
|
var Stdin FilePtr
|
||||||
|
|
||||||
//go:linkname Stdout __stdoutp
|
//go:linkname Stdout llgo_stdout
|
||||||
var Stdout FilePtr
|
var Stdout FilePtr
|
||||||
|
|
||||||
//go:linkname Stderr __stderrp
|
//go:linkname Stderr llgo_stderr
|
||||||
var Stderr FilePtr
|
var Stderr FilePtr
|
||||||
|
|
||||||
//go:linkname Printf C.printf
|
//go:linkname Printf C.printf
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ source_filename = "main"
|
|||||||
@3 = private unnamed_addr constant [6 x i8] c"Hello\00", align 1
|
@3 = private unnamed_addr constant [6 x i8] c"Hello\00", align 1
|
||||||
@4 = private unnamed_addr constant [2 x i8] c" \00", align 1
|
@4 = private unnamed_addr constant [2 x i8] c" \00", align 1
|
||||||
@5 = private unnamed_addr constant [6 x i8] c"World\00", align 1
|
@5 = private unnamed_addr constant [6 x i8] c"World\00", align 1
|
||||||
@__stderrp = external global ptr
|
@llgo_stderr = external global ptr
|
||||||
@6 = private unnamed_addr constant [8 x i8] c"Hi, %s\0A\00", align 1
|
@6 = private unnamed_addr constant [8 x i8] c"Hi, %s\0A\00", align 1
|
||||||
|
|
||||||
define %"github.com/goplus/llgo/internal/runtime.String" @main.concat(%"github.com/goplus/llgo/internal/runtime.Slice" %0) {
|
define %"github.com/goplus/llgo/internal/runtime.String" @main.concat(%"github.com/goplus/llgo/internal/runtime.Slice" %0) {
|
||||||
@@ -119,7 +119,7 @@ _llgo_0:
|
|||||||
store i64 3, ptr %21, align 4
|
store i64 3, ptr %21, align 4
|
||||||
%22 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %18, align 8
|
%22 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %18, align 8
|
||||||
%23 = call %"github.com/goplus/llgo/internal/runtime.String" @main.concat(%"github.com/goplus/llgo/internal/runtime.Slice" %22)
|
%23 = call %"github.com/goplus/llgo/internal/runtime.String" @main.concat(%"github.com/goplus/llgo/internal/runtime.Slice" %22)
|
||||||
%24 = load ptr, ptr @__stderrp, align 8
|
%24 = load ptr, ptr @llgo_stderr, align 8
|
||||||
%25 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %23, 1
|
%25 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %23, 1
|
||||||
%26 = add i64 %25, 1
|
%26 = add i64 %25, 1
|
||||||
%27 = alloca i8, i64 %26, align 1
|
%27 = alloca i8, i64 %26, align 1
|
||||||
|
|||||||
@@ -19,10 +19,6 @@ package c
|
|||||||
import "C"
|
import "C"
|
||||||
import "unsafe"
|
import "unsafe"
|
||||||
|
|
||||||
const (
|
|
||||||
LLGoPackage = "decl"
|
|
||||||
)
|
|
||||||
|
|
||||||
type (
|
type (
|
||||||
Char = int8
|
Char = int8
|
||||||
Int = C.int
|
Int = C.int
|
||||||
@@ -30,13 +26,13 @@ type (
|
|||||||
FilePtr = unsafe.Pointer
|
FilePtr = unsafe.Pointer
|
||||||
)
|
)
|
||||||
|
|
||||||
//go:linkname Stdin __stdinp
|
//go:linkname Stdin llgo_stdin
|
||||||
var Stdin FilePtr
|
var Stdin FilePtr
|
||||||
|
|
||||||
//go:linkname Stdout __stdoutp
|
//go:linkname Stdout llgo_stdout
|
||||||
var Stdout FilePtr
|
var Stdout FilePtr
|
||||||
|
|
||||||
//go:linkname Stderr __stderrp
|
//go:linkname Stderr llgo_stderr
|
||||||
var Stderr FilePtr
|
var Stderr FilePtr
|
||||||
|
|
||||||
//go:linkname Str llgo.cstr
|
//go:linkname Str llgo.cstr
|
||||||
|
|||||||
8
internal/runtime/c/c_default.go
Normal file
8
internal/runtime/c/c_default.go
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
//go:build !linux
|
||||||
|
// +build !linux
|
||||||
|
|
||||||
|
package c
|
||||||
|
|
||||||
|
const (
|
||||||
|
LLGoPackage = "decl: stdio_default.ll"
|
||||||
|
)
|
||||||
9
internal/runtime/c/c_default.ll
Normal file
9
internal/runtime/c/c_default.ll
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
; ModuleID = 'github.com/goplus/llgo/internal/runtime/c'
|
||||||
|
source_filename = "github.com/goplus/llgo/internal/runtime/c"
|
||||||
|
|
||||||
|
@__stderrp = external global ptr
|
||||||
|
@__stdinp = external global ptr
|
||||||
|
@__stdoutp = external global ptr
|
||||||
|
@llgo_stdin = alias i8*, i8** @__stdinp
|
||||||
|
@llgo_stdout = alias i8*, i8** @__stdoutp
|
||||||
|
@llgo_stderr = alias i8*, i8** @__stderrp
|
||||||
8
internal/runtime/c/c_linux.go
Normal file
8
internal/runtime/c/c_linux.go
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
//go:build linux
|
||||||
|
// +build linux
|
||||||
|
|
||||||
|
package c
|
||||||
|
|
||||||
|
const (
|
||||||
|
LLGoPackage = "decl: stdio_linux.ll"
|
||||||
|
)
|
||||||
9
internal/runtime/c/c_linux.ll
Normal file
9
internal/runtime/c/c_linux.ll
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
; ModuleID = 'github.com/goplus/llgo/internal/runtime/c'
|
||||||
|
source_filename = "github.com/goplus/llgo/internal/runtime/c"
|
||||||
|
|
||||||
|
@stderr = external global ptr
|
||||||
|
@stdin = external global ptr
|
||||||
|
@stdout = external global ptr
|
||||||
|
@llgo_stdin = alias i8*, i8** @stdin
|
||||||
|
@llgo_stdout = alias i8*, i8** @stdout
|
||||||
|
@llgo_stderr = alias i8*, i8** @stderr
|
||||||
Binary file not shown.
Reference in New Issue
Block a user