Add OS field to Target

This commit is contained in:
Sasha Koshka 2024-03-27 12:05:30 -04:00
parent 10246f7268
commit 92ad52b2aa
35 changed files with 109 additions and 20 deletions

View File

@ -16,8 +16,13 @@ type Target struct {
// of the Word type.
WordSize uint64
// Arch specifies the machine architecture
// Arch specifies the machine architecture. Values must correspond
// directly to those recognized by LLVM in a target triple.
Arch string
// OS specifies the machine operating system. Values must correspond
// directly to those recognized by LLVM in a target triple.
OS string
}
type generator struct {

View File

@ -4,7 +4,14 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
// LLVM supported operating systems (note: capitalization is wrong)
// https://llvm.org/doxygen/Triple_8h_source.html
// GOOS and GOARCH values:
// https://go.dev/doc/install/source#environment
// NativeTarget returns a target describing the current system.
func NativeTarget () generator.Target {
return nativeTarget()
target := nativeArch()
target.OS = nativeOS()
return target
}

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 32,
Arch: "i386",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 64,
Arch: "x86_64",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
// this may not be accurate, can't find info online about amd64p32
return generator.Target {
WordSize: 32,

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 32,
Arch: "arm",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 64,
Arch: "aarch64",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 64,
Arch: "aarch64_be",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 32,
Arch: "armeb",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 32,
Arch: "mips",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 64,
Arch: "mips64",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 64,
Arch: "mips64el",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 32,
Arch: "mipsel",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 32,
Arch: "ppc32",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 64,
Arch: "ppc64",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 64,
Arch: "ppc64le",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 32,
Arch: "riscv32",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 32,
Arch: "sparc",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
return generator.Target {
WordSize: 64,
Arch: "sparcv9",

View File

@ -2,7 +2,7 @@ package native
import "git.tebibyte.media/fspl/fspl/generator"
func nativeTarget () generator.Target {
func nativeArch () generator.Target {
// FIXME: golang doesn't discern between 32/64 bit wasm so we assume 64
// bit here
return generator.Target {

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "aix"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "linux"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "darwin"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "dragonfly"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "freebsd"
}

View File

@ -0,0 +1,6 @@
package native
func nativeOS () string {
// does not seem to be supported by LLVM at the moment
return "illumos"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "ios"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "unknown"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "linux"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "nacl"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "netbsd"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "openbsd"
}

View File

@ -0,0 +1,6 @@
package native
func nativeOS () string {
// does not seem to be supported by LLVM at the moment
return "plan9"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "solaris"
}

View File

@ -0,0 +1,5 @@
package native
func nativeOS () string {
return "win32"
}