mirror of
https://github.com/golang/go
synced 2024-11-20 11:14:45 -07:00
cgo: add -gccgopkgpath option to match gccgo -fgo-pkgpath
R=golang-dev, r, iant CC=golang-dev https://golang.org/cl/6416056
This commit is contained in:
parent
c0efcac6a9
commit
b575a98121
@ -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 objDir = flag.String("objdir", "", "object directory")
|
||||||
|
|
||||||
var gccgo = flag.Bool("gccgo", false, "generate files for use with gccgo")
|
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 importRuntimeCgo = flag.Bool("import_runtime_cgo", true, "import runtime/cgo in generated code")
|
||||||
var goarch, goos string
|
var goarch, goos string
|
||||||
|
|
||||||
|
@ -669,7 +669,21 @@ func (p *Package) writeGccgoExports(fgo2, fc, fm *os.File) {
|
|||||||
}
|
}
|
||||||
return '_'
|
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 {
|
for _, exp := range p.ExpFunc {
|
||||||
// TODO: support functions with receivers.
|
// TODO: support functions with receivers.
|
||||||
@ -707,7 +721,7 @@ func (p *Package) writeGccgoExports(fgo2, fc, fm *os.File) {
|
|||||||
|
|
||||||
// The function name.
|
// The function name.
|
||||||
fmt.Fprintf(cdeclBuf, " "+exp.ExpName)
|
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, " (")
|
fmt.Fprintf(cdeclBuf, " (")
|
||||||
// Function parameters.
|
// Function parameters.
|
||||||
forFieldList(fntype.Params,
|
forFieldList(fntype.Params,
|
||||||
|
Loading…
Reference in New Issue
Block a user