From: Ian Lance Taylor Date: Sat, 16 May 2015 00:12:20 +0000 (-0700) Subject: cmd/go: permit C files if the package uses SWIG X-Git-Tag: go1.5beta1~478 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=ac7ffdfa1006a40768d11ed7e2e20dab57799df0;p=gostls13.git cmd/go: permit C files if the package uses SWIG They will be compiled and added to the archive, just as though the package used cgo. In effect all SWIG packages now use cgo anyhow. Change-Id: I5d5a28ed0ec4295f24036b2834218bc980f080d0 Reviewed-on: https://go-review.googlesource.com/10146 Reviewed-by: Minux Ma --- diff --git a/src/cmd/go/pkg.go b/src/cmd/go/pkg.go index 7a71471340..601c30362f 100644 --- a/src/cmd/go/pkg.go +++ b/src/cmd/go/pkg.go @@ -673,10 +673,10 @@ func (p *Package) load(stk *importStack, bp *build.Package, err error) *Package p.Target = p.target // The gc toolchain only permits C source files with cgo. - if len(p.CFiles) > 0 && !p.usesCgo() && buildContext.Compiler == "gc" { + if len(p.CFiles) > 0 && !p.usesCgo() && !p.usesSwig() && buildContext.Compiler == "gc" { p.Error = &PackageError{ ImportStack: stk.copy(), - Err: fmt.Sprintf("C source files not allowed when not using cgo: %s", strings.Join(p.CFiles, " ")), + Err: fmt.Sprintf("C source files not allowed when not using cgo or SWIG: %s", strings.Join(p.CFiles, " ")), } return p }