mirror of
https://github.com/golang/go
synced 2024-11-18 20:24:41 -07:00
[dev.cc] cmd/internal/obj: reconvert from liblink
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>
This commit is contained in:
parent
a8e5e803e6
commit
24dfaba6d1
@ -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
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user