public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r10-6712] cmd/go: update -DGOPKGPATH to use current pkgpath encoding
@ 2020-02-18 20:03 Ian Lance Taylor
0 siblings, 0 replies; only message in thread
From: Ian Lance Taylor @ 2020-02-18 20:03 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:855b4aaeabdcddce04ff9295c4b0e6c7aa6db96b
commit r10-6712-g855b4aaeabdcddce04ff9295c4b0e6c7aa6db96b
Author: Ian Lance Taylor <iant@golang.org>
Date: Mon Feb 17 18:16:41 2020 -0800
cmd/go: update -DGOPKGPATH to use current pkgpath encoding
This will need to be done in the gc version too, probably more cleverly.
This version will ensure that the next GCC release works correctly
when using the GCC version of the go tool.
Updates golang/go#37272
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/219817
Diff:
---
gcc/go/gofrontend/MERGE | 2 +-
libgo/go/cmd/go/internal/work/gccgo.go | 26 ++++++++++++++++++++------
2 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index 47dd5fb..ce10ee1 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -1,4 +1,4 @@
-8505defaa91ecc5b42afd02eb335981e8b02b288
+d5d00d310ec33aeb18f33f807956ec0c4eeea6bb
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
diff --git a/libgo/go/cmd/go/internal/work/gccgo.go b/libgo/go/cmd/go/internal/work/gccgo.go
index f6fa17d..63d5c62 100644
--- a/libgo/go/cmd/go/internal/work/gccgo.go
+++ b/libgo/go/cmd/go/internal/work/gccgo.go
@@ -596,14 +596,28 @@ func gccgoPkgpath(p *load.Package) string {
return p.ImportPath
}
+// gccgoCleanPkgpath returns the form of p's pkgpath that gccgo uses
+// for symbol names. This is like gccgoPkgpathToSymbolNew in cmd/cgo/out.go.
func gccgoCleanPkgpath(p *load.Package) string {
- clean := func(r rune) rune {
+ ppath := gccgoPkgpath(p)
+ bsl := []byte{}
+ changed := false
+ for _, c := range []byte(ppath) {
switch {
- case 'A' <= r && r <= 'Z', 'a' <= r && r <= 'z',
- '0' <= r && r <= '9':
- return r
+ case 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z',
+ '0' <= c && c <= '9', c == '_':
+ bsl = append(bsl, c)
+ case c == '.':
+ bsl = append(bsl, ".x2e"...)
+ changed = true
+ default:
+ encbytes := []byte(fmt.Sprintf("..z%02x", c))
+ bsl = append(bsl, encbytes...)
+ changed = true
}
- return '_'
}
- return strings.Map(clean, gccgoPkgpath(p))
+ if !changed {
+ return ppath
+ }
+ return string(bsl)
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-02-18 20:03 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-18 20:03 [gcc r10-6712] cmd/go: update -DGOPKGPATH to use current pkgpath encoding Ian Lance Taylor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).