// ToSymbolFunc returns a function that may be used to convert a // package path into a string suitable for use as a symbol. // cmd is the gccgo/GoLLVM compiler in use, and tmpdir is a temporary // directory to pass to os.CreateTemp(). // For example, this returns a function that converts "net/http" // into a string like "net..z2fhttp". The actual string varies for // different gccgo/GoLLVM versions, which is why this returns a function // that does the conversion appropriate for the compiler in use. func ToSymbolFunc(cmd, tmpdir string) (func(string) string, error) { … } const mangleCheckCode … // toSymbolV1 converts a package path using the original mangling scheme. func toSymbolV1(ppath string) string { … } // toSymbolV2 converts a package path using the second mangling scheme. func toSymbolV2(ppath string) string { … } var v3UnderscoreCodes … // toSymbolV3 converts a package path using the third mangling scheme. func toSymbolV3(ppath string) string { … }