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>
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) {
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 {
*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']
ctxt.Ehist = h
}
-func linkprfile(ctxt *Link, line int) {
+func Linkprfile(ctxt *Link, line int) {
l := int32(line)
var i int
var n 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
/*
* start a new Prog list.
*/
-func linknewplist(ctxt *Link) *Plist {
+func Linknewplist(ctxt *Link) *Plist {
var pl *Plist
import (
"bufio"
"fmt"
- "go/build"
"io"
"os"
"strconv"
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 {
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)
}
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);