]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.cc] cmd/internal/obj: reconvert from liblink
authorRuss Cox <rsc@golang.org>
Wed, 21 Jan 2015 17:27:36 +0000 (12:27 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 21 Jan 2015 19:06:31 +0000 (19:06 +0000)
Using rsc.io/c2go repo revision 60c9302.

- Export a few symbols needed by assemblers.
- Implement Getgoroot etc directly, and add Getgoversion.
- Removes dependency on Go 1.4 go/build.
- Change magic history name <no name> to <pop>

The <pop> change requires adjustment to the liblink serializer.

Change-Id: If5fb52ac9e91d50805263070b3fc5cc05d8b7632
Reviewed-on: https://go-review.googlesource.com/3141
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
src/cmd/internal/obj/obj.go
src/cmd/internal/obj/util.go
src/liblink/objfilego.c

index 23ecd57e5e5d9eeaadc75538a41bb5df1f5e4b0d..4d8d13c8ec41e94244ed9ad326352d42d4ee5f39 100644 (file)
@@ -37,7 +37,7 @@ func linklinefmt(ctxt *Link, lno0 int, showAll, showFullPath bool) string {
                if lno < h.Line {
                        break
                }
-               if h.Name != "<no name>" {
+               if h.Name != "<pop>" {
                        if h.Offset > 0 {
                                // #line directive
                                if n > 0 && n < int(HISTSZ) {
@@ -148,7 +148,7 @@ func linkgetline(ctxt *Link, line int32, f **LSym, l *int32) {
                if lno < h.Line {
                        break
                }
-               if h.Name != "<no name>" {
+               if h.Name != "<pop>" {
                        if h.Offset > 0 {
                                // #line directive
                                if n > 0 && n < HISTSZ {
@@ -214,7 +214,7 @@ func linkgetline(ctxt *Link, line int32, f **LSym, l *int32) {
        *l = lno
 }
 
-func linklinehist(ctxt *Link, lineno int, f string, offset int) {
+func Linklinehist(ctxt *Link, lineno int, f string, offset int) {
        var h *Hist
 
        if false { // debug['f']
@@ -247,7 +247,7 @@ func linklinehist(ctxt *Link, lineno int, f string, offset int) {
        ctxt.Ehist = h
 }
 
-func linkprfile(ctxt *Link, line int) {
+func Linkprfile(ctxt *Link, line int) {
        l := int32(line)
        var i int
        var n int
@@ -259,7 +259,7 @@ func linkprfile(ctxt *Link, line int) {
                if l < h.Line {
                        break
                }
-               if h.Name != "<no name>" {
+               if h.Name != "<pop>" {
                        if h.Offset == 0 {
                                if n >= 0 && n < HISTSZ {
                                        a[n] = *h
@@ -296,7 +296,7 @@ func linkprfile(ctxt *Link, line int) {
 /*
  * start a new Prog list.
  */
-func linknewplist(ctxt *Link) *Plist {
+func Linknewplist(ctxt *Link) *Plist {
 
        var pl *Plist
 
index 842e42ba504d636f9c177c3e89ab9326f62b80b4..2fc910a78faa6bc06bab02eeded52e8dfbd96b77 100644 (file)
@@ -7,7 +7,6 @@ package obj
 import (
        "bufio"
        "fmt"
-       "go/build"
        "io"
        "os"
        "strconv"
@@ -76,16 +75,31 @@ func Bflush(b *Biobuf) error {
        return b.w.Flush()
 }
 
+func envOr(key, value string) string {
+       if x := os.Getenv(key); x != "" {
+               return x
+       }
+       return value
+}
+
 func Getgoroot() string {
-       return build.Default.GOROOT
+       return envOr("GOROOT", defaultGOROOT)
 }
 
 func Getgoarch() string {
-       return build.Default.GOARCH
+       return envOr("GOARCH", defaultGOARCH)
 }
 
 func Getgoos() string {
-       return build.Default.GOOS
+       return envOr("GOOS", defaultGOOS)
+}
+
+func Getgoarm() string {
+       return envOr("GOARM", defaultGOARM)
+}
+
+func Getgoversion() string {
+       return version
 }
 
 func Atoi(s string) int {
@@ -93,14 +107,6 @@ func Atoi(s string) int {
        return i
 }
 
-func Getgoarm() string {
-       env := os.Getenv("GOARM")
-       if env != "" {
-               return env
-       }
-       return "5"
-}
-
 func (p *Prog) Line() string {
        return linklinefmt(p.Ctxt, int(p.Lineno), false, false)
 }
index 4d0336e912b95920f1c5dd86053e974dec4e2ba8..0dd1a6ef0940b36f5699f2f92b81a19100776282 100644 (file)
@@ -328,7 +328,7 @@ printhist(Link *ctxt, Biobuf *bw, Hist *h)
        printptr(ctxt, bw, h);
        printptr(ctxt, bw, h->link);
        if(h->name == nil)
-               printstr(ctxt, bw, "<no name>");
+               printstr(ctxt, bw, "<pop>");
        else
                printstr(ctxt, bw, h->name);
        printint(ctxt, bw, h->line);