Generator native uses GOARCH and GOOS instead of cond. compilation
This commit is contained in:
parent
eccb2e9a5b
commit
e805060370
|
@ -2,6 +2,7 @@
|
|||
// This is accomplished using several conditionally compiled source files.
|
||||
package native
|
||||
|
||||
import "runtime"
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
// LLVM supported operating systems (note: capitalization is wrong)
|
||||
|
@ -11,7 +12,50 @@ import "git.tebibyte.media/fspl/fspl/generator"
|
|||
|
||||
// NativeTarget returns a target describing the current system.
|
||||
func NativeTarget () generator.Target {
|
||||
target := nativeArch()
|
||||
target.OS = nativeOS()
|
||||
target := generator.Target { }
|
||||
switch runtime.GOARCH {
|
||||
case "386": target.WordSize = 32; target.Arch = "i386"
|
||||
case "amd64": target.WordSize = 64; target.Arch = "x86_64"
|
||||
case "amd64p32": target.WordSize = 32; target.Arch = "x86" // might be inaccurate
|
||||
case "arm": target.WordSize = 32; target.Arch = "arm"
|
||||
case "arm64": target.WordSize = 64; target.Arch = "aarch64"
|
||||
case "arm64be": target.WordSize = 64; target.Arch = "aarch64_be"
|
||||
case "armbe": target.WordSize = 32; target.Arch = "armeb"
|
||||
case "loong": target.WordSize = 32; target.Arch = "loongarch32"
|
||||
case "loong64": target.WordSize = 64; target.Arch = "loongarch64"
|
||||
case "mips": target.WordSize = 32; target.Arch = "mips"
|
||||
case "mips64": target.WordSize = 64; target.Arch = "mips64"
|
||||
case "mips64le": target.WordSize = 64; target.Arch = "mips64el"
|
||||
case "mipsle": target.WordSize = 32; target.Arch = "mipsel"
|
||||
case "ppc": target.WordSize = 32; target.Arch = "ppc32"
|
||||
case "ppc64": target.WordSize = 64; target.Arch = "ppc64"
|
||||
case "ppc64le": target.WordSize = 64; target.Arch = "ppc64le"
|
||||
case "riscv": target.WordSize = 32; target.Arch = "riscv32"
|
||||
case "riscv64": target.WordSize = 64; target.Arch = "riscv64"
|
||||
case "sparc": target.WordSize = 32; target.Arch = "sparc"
|
||||
case "sparc64": target.WordSize = 64; target.Arch = "sparcv9"
|
||||
case "wasm": target.WordSize = 64; target.Arch = "wasm64"
|
||||
default: target.WordSize = 64; target.Arch = "unknown"
|
||||
}
|
||||
switch runtime.GOOS {
|
||||
case "aix": target.OS = "aix"
|
||||
case "android": target.OS = "linux"
|
||||
case "darwin": target.OS = "darwin"
|
||||
case "dragonfly": target.OS = "dragonfly"
|
||||
case "freebsd": target.OS = "freebsd"
|
||||
case "illumos": target.OS = "illumos"
|
||||
case "ios": target.OS = "ios"
|
||||
case "js": target.OS = "unknown"
|
||||
case "linux": target.OS = "linux"
|
||||
case "nacl": target.OS = "nacl"
|
||||
case "netbsd": target.OS = "netbsd"
|
||||
case "openbsd": target.OS = "openbsd"
|
||||
case "plan9": target.OS = "plan9" // does not seem to be supported by LLVM at the moment
|
||||
case "solaris": target.OS = "solaris"
|
||||
case "wasip1": target.OS = "wasi"
|
||||
case "windows": target.OS = "win32"
|
||||
default: target.OS = "unknown"
|
||||
}
|
||||
|
||||
return target
|
||||
}
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 32,
|
||||
Arch: "i386",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 64,
|
||||
Arch: "x86_64",
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
// this may not be accurate, can't find info online about amd64p32
|
||||
return generator.Target {
|
||||
WordSize: 32,
|
||||
Arch: "x86",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 32,
|
||||
Arch: "arm",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 64,
|
||||
Arch: "aarch64",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 64,
|
||||
Arch: "aarch64_be",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 32,
|
||||
Arch: "armeb",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 32,
|
||||
Arch: "mips",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 64,
|
||||
Arch: "mips64",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 64,
|
||||
Arch: "mips64el",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 32,
|
||||
Arch: "mipsel",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 32,
|
||||
Arch: "ppc32",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 64,
|
||||
Arch: "ppc64",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 64,
|
||||
Arch: "ppc64le",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 32,
|
||||
Arch: "riscv32",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 32,
|
||||
Arch: "sparc",
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
return generator.Target {
|
||||
WordSize: 64,
|
||||
Arch: "sparcv9",
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
package native
|
||||
|
||||
import "git.tebibyte.media/fspl/fspl/generator"
|
||||
|
||||
func nativeArch () generator.Target {
|
||||
// FIXME: golang doesn't discern between 32/64 bit wasm so we assume 64
|
||||
// bit here
|
||||
return generator.Target {
|
||||
WordSize: 64,
|
||||
Arch: "wasm64",
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "aix"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "linux"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "darwin"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "dragonfly"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "freebsd"
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
// does not seem to be supported by LLVM at the moment
|
||||
return "illumos"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "ios"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "unknown"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "linux"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "nacl"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "netbsd"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "openbsd"
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
// does not seem to be supported by LLVM at the moment
|
||||
return "plan9"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "solaris"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
package native
|
||||
|
||||
func nativeOS () string {
|
||||
return "win32"
|
||||
}
|
Loading…
Reference in New Issue