]> Cypherpunks repositories - gostls13.git/commitdiff
race: cmd/cgo changes
authorDmitriy Vyukov <dvyukov@google.com>
Tue, 18 Sep 2012 19:42:18 +0000 (23:42 +0400)
committerDmitriy Vyukov <dvyukov@google.com>
Tue, 18 Sep 2012 19:42:18 +0000 (23:42 +0400)
This is a part of a bigger change that adds data race detection feature:
https://golang.org/cl/6456044
This change breaks circular dependency between runtime/race and syscall packages.

R=rsc
CC=golang-dev
https://golang.org/cl/6498079

src/cmd/cgo/main.go
src/cmd/cgo/out.go

index 05389bb6968ee7ceca387a32c3cdc8996f1c418b..892b1198f5651a1f308d8c715c9d1f738d05a64c 100644 (file)
@@ -147,6 +147,7 @@ var gccgo = flag.Bool("gccgo", false, "generate files for use with gccgo")
 var gccgoprefix = flag.String("gccgoprefix", "", "-fgo-prefix option used with gccgo")
 var gccgopkgpath = flag.String("gccgopkgpath", "", "-fgo-pkgpath option used with gccgo")
 var importRuntimeCgo = flag.Bool("import_runtime_cgo", true, "import runtime/cgo in generated code")
+var importSyscall = flag.Bool("import_syscall", true, "import syscall in generated code")
 var goarch, goos string
 
 func main() {
index aa084b65c9a093c3b81e291bec821645e2ec11b5..02ef5873f023d973b0b296c9ac1421a42cb797c2 100644 (file)
@@ -51,12 +51,16 @@ func (p *Package) writeDefs() {
        fmt.Fprintf(fgo2, "// Created by cgo - DO NOT EDIT\n\n")
        fmt.Fprintf(fgo2, "package %s\n\n", p.PackageName)
        fmt.Fprintf(fgo2, "import \"unsafe\"\n\n")
-       fmt.Fprintf(fgo2, "import \"syscall\"\n\n")
+       if *importSyscall {
+               fmt.Fprintf(fgo2, "import \"syscall\"\n\n")
+       }
        if !*gccgo && *importRuntimeCgo {
                fmt.Fprintf(fgo2, "import _ \"runtime/cgo\"\n\n")
        }
        fmt.Fprintf(fgo2, "type _ unsafe.Pointer\n\n")
-       fmt.Fprintf(fgo2, "func _Cerrno(dst *error, x int) { *dst = syscall.Errno(x) }\n")
+       if *importSyscall {
+               fmt.Fprintf(fgo2, "func _Cerrno(dst *error, x int) { *dst = syscall.Errno(x) }\n")
+       }
 
        typedefNames := make([]string, 0, len(typedef))
        for name := range typedef {