Message ID | CAOyqgcWgzbZNOzLdF8JKHPXBs6E9iP73E7s0OdOV_NBeFDvPPw@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | libgo patch committed, RFA for GCC 8 release branch: Solaris assembler support | expand |
On Fri, Apr 27, 2018 at 11:00:41AM -0700, Ian Lance Taylor wrote: > This libgo patch fixes the go tool to use Solaris assembler syntax for > the buildid file. The Solaris assembler uses a different syntax for > section directives. This is https://golang.org/cl/109140 ported over > to gccgo. This fixes PR 85429. Bootstrapped and ran Go tests on > x86_64-pc-linux-gnu and SPARC/Solaris 11 (there are other unrelated > failures on SPARC Solaris). Committed to mainline. > > Release managers: OK for GCC 8 branch? Ok if you can commit very soon, would like to do rc2 shortly. BTW, could you please update gcc-8/changes.html for Go ? > Index: gcc/go/gofrontend/MERGE > =================================================================== > --- gcc/go/gofrontend/MERGE (revision 259531) > +++ gcc/go/gofrontend/MERGE (working copy) > @@ -1,4 +1,4 @@ > -7b37b9c3f9338a1387ee1e2301de89c3d2d87d2b > +32861fd0acb0f3232f66be4791388b27e71c9990 > > The first line of this file holds the git revision number of the last > merge done from the gofrontend repository. > Index: libgo/go/cmd/go/internal/work/buildid.go > =================================================================== > --- libgo/go/cmd/go/internal/work/buildid.go (revision 259359) > +++ libgo/go/cmd/go/internal/work/buildid.go (working copy) > @@ -309,7 +309,11 @@ func (b *Builder) gccgoBuildIDELFFile(a > sfile := a.Objdir + "_buildid.s" > > var buf bytes.Buffer > - fmt.Fprintf(&buf, "\t"+`.section .go.buildid,"e"`+"\n") > + if cfg.Goos != "solaris" { > + fmt.Fprintf(&buf, "\t"+`.section .go.buildid,"e"`+"\n") > + } else { > + fmt.Fprintf(&buf, "\t"+`.section ".go.buildid",#exclude`+"\n") > + } > fmt.Fprintf(&buf, "\t.byte ") > for i := 0; i < len(a.buildID); i++ { > if i > 0 { > @@ -322,8 +326,10 @@ func (b *Builder) gccgoBuildIDELFFile(a > fmt.Fprintf(&buf, "%#02x", a.buildID[i]) > } > fmt.Fprintf(&buf, "\n") > - fmt.Fprintf(&buf, "\t"+`.section .note.GNU-stack,"",@progbits`+"\n") > - fmt.Fprintf(&buf, "\t"+`.section .note.GNU-split-stack,"",@progbits`+"\n") > + if cfg.Goos != "solaris" { > + fmt.Fprintf(&buf, "\t"+`.section .note.GNU-stack,"",@progbits`+"\n") > + fmt.Fprintf(&buf, "\t"+`.section .note.GNU-split-stack,"",@progbits`+"\n") > + } > > if cfg.BuildN || cfg.BuildX { > for _, line := range bytes.Split(buf.Bytes(), []byte("\n")) { Jakub
On Fri, Apr 27, 2018 at 11:04 AM, Jakub Jelinek <jakub@redhat.com> wrote: > On Fri, Apr 27, 2018 at 11:00:41AM -0700, Ian Lance Taylor wrote: >> This libgo patch fixes the go tool to use Solaris assembler syntax for >> the buildid file. The Solaris assembler uses a different syntax for >> section directives. This is https://golang.org/cl/109140 ported over >> to gccgo. This fixes PR 85429. Bootstrapped and ran Go tests on >> x86_64-pc-linux-gnu and SPARC/Solaris 11 (there are other unrelated >> failures on SPARC Solaris). Committed to mainline. >> >> Release managers: OK for GCC 8 branch? > > Ok if you can commit very soon, would like to do rc2 shortly. Thanks. Committed to branch. > BTW, could you please update gcc-8/changes.html for Go ? Done. Ian
Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 259531) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -7b37b9c3f9338a1387ee1e2301de89c3d2d87d2b +32861fd0acb0f3232f66be4791388b27e71c9990 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. Index: libgo/go/cmd/go/internal/work/buildid.go =================================================================== --- libgo/go/cmd/go/internal/work/buildid.go (revision 259359) +++ libgo/go/cmd/go/internal/work/buildid.go (working copy) @@ -309,7 +309,11 @@ func (b *Builder) gccgoBuildIDELFFile(a sfile := a.Objdir + "_buildid.s" var buf bytes.Buffer - fmt.Fprintf(&buf, "\t"+`.section .go.buildid,"e"`+"\n") + if cfg.Goos != "solaris" { + fmt.Fprintf(&buf, "\t"+`.section .go.buildid,"e"`+"\n") + } else { + fmt.Fprintf(&buf, "\t"+`.section ".go.buildid",#exclude`+"\n") + } fmt.Fprintf(&buf, "\t.byte ") for i := 0; i < len(a.buildID); i++ { if i > 0 { @@ -322,8 +326,10 @@ func (b *Builder) gccgoBuildIDELFFile(a fmt.Fprintf(&buf, "%#02x", a.buildID[i]) } fmt.Fprintf(&buf, "\n") - fmt.Fprintf(&buf, "\t"+`.section .note.GNU-stack,"",@progbits`+"\n") - fmt.Fprintf(&buf, "\t"+`.section .note.GNU-split-stack,"",@progbits`+"\n") + if cfg.Goos != "solaris" { + fmt.Fprintf(&buf, "\t"+`.section .note.GNU-stack,"",@progbits`+"\n") + fmt.Fprintf(&buf, "\t"+`.section .note.GNU-split-stack,"",@progbits`+"\n") + } if cfg.BuildN || cfg.BuildX { for _, line := range bytes.Split(buf.Bytes(), []byte("\n")) {