mirror of https://github.com/golang/go.git
parent
8db131082d
commit
a664aa18b5
|
|
@ -43,6 +43,7 @@ import (
|
|||
"debug/elf"
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
"internal/abi"
|
||||
"log"
|
||||
"os"
|
||||
"sort"
|
||||
|
|
@ -2556,8 +2557,8 @@ func assignAddress(ctxt *Link, sect *sym.Section, n int, s loader.Sym, va uint64
|
|||
sect.Align = align
|
||||
}
|
||||
|
||||
funcsize := uint64(MINFUNC) // spacing required for findfunctab
|
||||
if ldr.SymSize(s) > MINFUNC {
|
||||
funcsize := uint64(abi.MINFUNC) // spacing required for findfunctab
|
||||
if ldr.SymSize(s) > abi.MINFUNC {
|
||||
funcsize = uint64(ldr.SymSize(s))
|
||||
}
|
||||
|
||||
|
|
@ -2611,7 +2612,7 @@ func assignAddress(ctxt *Link, sect *sym.Section, n int, s loader.Sym, va uint64
|
|||
// Assign its address directly in order to be the
|
||||
// first symbol of this new section.
|
||||
ntext.SetType(sym.STEXT)
|
||||
ntext.SetSize(int64(MINFUNC))
|
||||
ntext.SetSize(int64(abi.MINFUNC))
|
||||
ntext.SetOnList(true)
|
||||
ntext.SetAlign(sectAlign)
|
||||
ctxt.tramps = append(ctxt.tramps, ntext.Sym())
|
||||
|
|
|
|||
|
|
@ -273,10 +273,6 @@ var (
|
|||
symSize int32
|
||||
)
|
||||
|
||||
const (
|
||||
MINFUNC = 16 // minimum size for a function
|
||||
)
|
||||
|
||||
// Symbol version of ABIInternal symbols. It is sym.SymVerABIInternal if ABI wrappers
|
||||
// are used, 0 otherwise.
|
||||
var abiInternalVer = sym.SymVerABIInternal
|
||||
|
|
|
|||
|
|
@ -827,7 +827,7 @@ func expandGoroot(s string) string {
|
|||
}
|
||||
|
||||
const (
|
||||
BUCKETSIZE = 256 * MINFUNC
|
||||
BUCKETSIZE = 256 * abi.MINFUNC
|
||||
SUBBUCKETS = 16
|
||||
SUBBUCKETSIZE = BUCKETSIZE / SUBBUCKETS
|
||||
NOIDX = 0x7fffffff
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import (
|
|||
"cmd/link/internal/sym"
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
"internal/abi"
|
||||
"internal/buildcfg"
|
||||
"io"
|
||||
"regexp"
|
||||
|
|
@ -154,8 +155,8 @@ func assignAddress(ldr *loader.Loader, sect *sym.Section, n int, s loader.Sym, v
|
|||
// However, there is no PC register, only PC_F and PC_B. PC_F denotes the function,
|
||||
// PC_B the resume point inside of that function. The entry of the function has PC_B = 0.
|
||||
ldr.SetSymSect(s, sect)
|
||||
ldr.SetSymValue(s, int64(funcValueOffset+va/ld.MINFUNC)<<16) // va starts at zero
|
||||
va += uint64(ld.MINFUNC)
|
||||
ldr.SetSymValue(s, int64(funcValueOffset+va/abi.MINFUNC)<<16) // va starts at zero
|
||||
va += uint64(abi.MINFUNC)
|
||||
return sect, n, va
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -105,3 +105,5 @@ const (
|
|||
// Like UnsafePointRestart1, but back to function entry if async preempted.
|
||||
UnsafePointRestartAtEntry = -5
|
||||
)
|
||||
|
||||
const MINFUNC = 16 // minimum size for a function
|
||||
|
|
|
|||
|
|
@ -497,8 +497,7 @@ type textsect struct {
|
|||
baseaddr uintptr // relocated section address
|
||||
}
|
||||
|
||||
const minfunc = 16 // minimum function size
|
||||
const pcbucketsize = 256 * minfunc // size of bucket in the pc->func lookup table
|
||||
const pcbucketsize = 256 * abi.MINFUNC // size of bucket in the pc->func lookup table
|
||||
|
||||
// findfuncbucket is an array of these structures.
|
||||
// Each bucket represents 4096 bytes of the text segment.
|
||||
|
|
|
|||
Loading…
Reference in New Issue