github.com/corona10/go@v0.0.0-20180224231303-7a218942be57/src/cmd/compile/main.go (about) 1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package main 6 7 import ( 8 "cmd/compile/internal/amd64" 9 "cmd/compile/internal/arm" 10 "cmd/compile/internal/arm64" 11 "cmd/compile/internal/gc" 12 "cmd/compile/internal/mips" 13 "cmd/compile/internal/mips64" 14 "cmd/compile/internal/ppc64" 15 "cmd/compile/internal/s390x" 16 "cmd/compile/internal/x86" 17 "cmd/internal/objabi" 18 "fmt" 19 "log" 20 "os" 21 ) 22 23 var archInits = map[string]func(*gc.Arch){ 24 "386": x86.Init, 25 "amd64": amd64.Init, 26 "amd64p32": amd64.Init, 27 "arm": arm.Init, 28 "arm64": arm64.Init, 29 "mips": mips.Init, 30 "mipsle": mips.Init, 31 "mips64": mips64.Init, 32 "mips64le": mips64.Init, 33 "ppc64": ppc64.Init, 34 "ppc64le": ppc64.Init, 35 "s390x": s390x.Init, 36 } 37 38 func main() { 39 // disable timestamps for reproducible output 40 log.SetFlags(0) 41 log.SetPrefix("compile: ") 42 43 archInit, ok := archInits[objabi.GOARCH] 44 if !ok { 45 fmt.Fprintf(os.Stderr, "compile: unknown architecture %q\n", objabi.GOARCH) 46 os.Exit(2) 47 } 48 49 gc.Main(archInit) 50 gc.Exit(0) 51 }