Commit 2885a493 by Ian Lance Taylor

re PR go/85429 (Several gotools tests FAIL with Solaris as)

	PR go/85429
    cmd/go: add Solaris assembler syntax for gccgo buildid file
    
    The Solaris assembler uses a different syntax for section directives.
    
    This is https://golang.org/cl/109140 ported over to gccgo.
    
    Reviewed-on: https://go-review.googlesource.com/109141

From-SVN: r259719
parent 4c8906c9
7b37b9c3f9338a1387ee1e2301de89c3d2d87d2b 32861fd0acb0f3232f66be4791388b27e71c9990
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -309,7 +309,11 @@ func (b *Builder) gccgoBuildIDELFFile(a *Action) (string, error) { ...@@ -309,7 +309,11 @@ func (b *Builder) gccgoBuildIDELFFile(a *Action) (string, error) {
sfile := a.Objdir + "_buildid.s" sfile := a.Objdir + "_buildid.s"
var buf bytes.Buffer 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 ") fmt.Fprintf(&buf, "\t.byte ")
for i := 0; i < len(a.buildID); i++ { for i := 0; i < len(a.buildID); i++ {
if i > 0 { if i > 0 {
...@@ -322,8 +326,10 @@ func (b *Builder) gccgoBuildIDELFFile(a *Action) (string, error) { ...@@ -322,8 +326,10 @@ func (b *Builder) gccgoBuildIDELFFile(a *Action) (string, error) {
fmt.Fprintf(&buf, "%#02x", a.buildID[i]) fmt.Fprintf(&buf, "%#02x", a.buildID[i])
} }
fmt.Fprintf(&buf, "\n") fmt.Fprintf(&buf, "\n")
fmt.Fprintf(&buf, "\t"+`.section .note.GNU-stack,"",@progbits`+"\n") if cfg.Goos != "solaris" {
fmt.Fprintf(&buf, "\t"+`.section .note.GNU-split-stack,"",@progbits`+"\n") 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 { if cfg.BuildN || cfg.BuildX {
for _, line := range bytes.Split(buf.Bytes(), []byte("\n")) { for _, line := range bytes.Split(buf.Bytes(), []byte("\n")) {
......
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