Commit b575a981 authored by Ian Lance Taylor's avatar Ian Lance Taylor

cgo: add -gccgopkgpath option to match gccgo -fgo-pkgpath

R=golang-dev, r, iant
CC=golang-dev
https://golang.org/cl/6416056
parent c0efcac6
......@@ -144,7 +144,8 @@ var cdefs = flag.Bool("cdefs", false, "for bootstrap: write C definitions for C
var objDir = flag.String("objdir", "", "object directory")
var gccgo = flag.Bool("gccgo", false, "generate files for use with gccgo")
var gccgoprefix = flag.String("gccgoprefix", "go", "prefix of symbols generated by 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 goarch, goos string
......
......@@ -669,7 +669,21 @@ func (p *Package) writeGccgoExports(fgo2, fc, fm *os.File) {
}
return '_'
}
gccgoSymbolPrefix := strings.Map(clean, *gccgoprefix)
var gccgoSymbolPrefix string
if *gccgopkgpath != "" {
gccgoSymbolPrefix = strings.Map(clean, *gccgopkgpath)
} else {
if *gccgoprefix == "" && p.PackageName == "main" {
gccgoSymbolPrefix = "main"
} else {
prefix := strings.Map(clean, *gccgoprefix)
if prefix == "" {
prefix = "go"
}
gccgoSymbolPrefix = prefix + "." + p.PackageName
}
}
for _, exp := range p.ExpFunc {
// TODO: support functions with receivers.
......@@ -707,7 +721,7 @@ func (p *Package) writeGccgoExports(fgo2, fc, fm *os.File) {
// The function name.
fmt.Fprintf(cdeclBuf, " "+exp.ExpName)
gccgoSymbol := fmt.Sprintf("%s.%s.%s", gccgoSymbolPrefix, p.PackageName, exp.Func.Name)
gccgoSymbol := fmt.Sprintf("%s.%s", gccgoSymbolPrefix, exp.Func.Name)
fmt.Fprintf(cdeclBuf, " (")
// Function parameters.
forFieldList(fntype.Params,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment