mirror of
https://github.com/golang/go.git
synced 2025-05-05 15:43:04 +00:00
debug/elf: adjust version API per issue discussion
This updates the new version API for the discussion on #63952. This change reveals that in fact none of the tests set the VERSYM_HIDDEN bit. The code before this CL set the hidden flag for symbols that appear in DynamicVersionNeed, but that is not an accurate representation of the ELF. The readelf program does print undefined symbols that way (with a single '@'), but that doesn't mean that the hidden flag is set. Leaving tests with the hidden bit set for later. For #63952 Change-Id: Ida60831e0c9922dfc10f10c7a64bc76a2b197537 Reviewed-on: https://go-review.googlesource.com/c/go/+/635079 Reviewed-by: Austin Clements <austin@google.com> Commit-Queue: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Ian Lance Taylor <iant@google.com>
This commit is contained in:
parent
c93477b5e5
commit
0ca521f9c1
@ -106,33 +106,34 @@ pkg debug/elf, const VER_FLG_INFO = 4 #63952
|
||||
pkg debug/elf, const VER_FLG_INFO DynamicVersionFlag #63952
|
||||
pkg debug/elf, const VER_FLG_WEAK = 2 #63952
|
||||
pkg debug/elf, const VER_FLG_WEAK DynamicVersionFlag #63952
|
||||
pkg debug/elf, const VerFlagGlobal = 2 #63952
|
||||
pkg debug/elf, const VerFlagGlobal SymbolVersionFlag #63952
|
||||
pkg debug/elf, const VerFlagHidden = 4 #63952
|
||||
pkg debug/elf, const VerFlagHidden SymbolVersionFlag #63952
|
||||
pkg debug/elf, const VerFlagLocal = 1 #63952
|
||||
pkg debug/elf, const VerFlagLocal SymbolVersionFlag #63952
|
||||
pkg debug/elf, const VerFlagNone = 0 #63952
|
||||
pkg debug/elf, const VerFlagNone SymbolVersionFlag #63952
|
||||
pkg debug/elf, const VersionScopeGlobal = 2 #63952
|
||||
pkg debug/elf, const VersionScopeGlobal SymbolVersionScope #63952
|
||||
pkg debug/elf, const VersionScopeHidden = 4 #63952
|
||||
pkg debug/elf, const VersionScopeHidden SymbolVersionScope #63952
|
||||
pkg debug/elf, const VersionScopeLocal = 1 #63952
|
||||
pkg debug/elf, const VersionScopeLocal SymbolVersionScope #63952
|
||||
pkg debug/elf, const VersionScopeNone = 0 #63952
|
||||
pkg debug/elf, const VersionScopeNone SymbolVersionScope #63952
|
||||
pkg debug/elf, const VersionScopeSpecific = 3 #63952
|
||||
pkg debug/elf, const VersionScopeSpecific SymbolVersionScope #63952
|
||||
pkg debug/elf, method (*File) DynamicVersionNeeds() ([]DynamicVersionNeed, error) #63952
|
||||
pkg debug/elf, method (*File) DynamicVersions() ([]DynamicVersion, error) #63952
|
||||
pkg debug/elf, type DynamicVersion struct #63952
|
||||
pkg debug/elf, type DynamicVersion struct, Deps []string #63952
|
||||
pkg debug/elf, type DynamicVersion struct, Flags DynamicVersionFlag #63952
|
||||
pkg debug/elf, type DynamicVersion struct, Name string #63952
|
||||
pkg debug/elf, type DynamicVersion struct, Index uint16 #63952
|
||||
pkg debug/elf, type DynamicVersion struct, Version uint16 #63952
|
||||
pkg debug/elf, type DynamicVersionDep struct #63952
|
||||
pkg debug/elf, type DynamicVersionDep struct, Dep string #63952
|
||||
pkg debug/elf, type DynamicVersionDep struct, Flags DynamicVersionFlag #63952
|
||||
pkg debug/elf, type DynamicVersionDep struct, Other uint16 #63952
|
||||
pkg debug/elf, type DynamicVersionDep struct, Index uint16 #63952
|
||||
pkg debug/elf, type DynamicVersionFlag uint16 #63952
|
||||
pkg debug/elf, type DynamicVersionNeed struct #63952
|
||||
pkg debug/elf, type DynamicVersionNeed struct, Name string #63952
|
||||
pkg debug/elf, type DynamicVersionNeed struct, Needs []DynamicVersionDep #63952
|
||||
pkg debug/elf, type DynamicVersionNeed struct, Version uint16 #63952
|
||||
pkg debug/elf, type Symbol struct, VersionFlags SymbolVersionFlag #63952
|
||||
pkg debug/elf, type Symbol struct, VersionScope SymbolVersionScope #63952
|
||||
pkg debug/elf, type Symbol struct, VersionIndex int16 #63952
|
||||
pkg debug/elf, type SymbolVersionFlag uint8 #63952
|
||||
pkg debug/elf, type SymbolVersionScope uint8 #63952
|
||||
pkg encoding, type BinaryAppender interface { AppendBinary } #62384
|
||||
pkg encoding, type BinaryAppender interface, AppendBinary([]uint8) ([]uint8, error) #62384
|
||||
pkg encoding, type TextAppender interface { AppendText } #62384
|
||||
|
@ -209,10 +209,22 @@ type Symbol struct {
|
||||
Name string
|
||||
Info, Other byte
|
||||
|
||||
// These fields are used for symbol versioning
|
||||
// and are present only for the dynamic symbol table.
|
||||
// VersionScope describes the version in which the symbol is defined.
|
||||
// This is only set for the dynamic symbol table.
|
||||
// When no symbol versioning information is available,
|
||||
// this is VersionScopeNone.
|
||||
VersionScope SymbolVersionScope
|
||||
// VersionIndex is the version index.
|
||||
// This is only set if VersionScope is VersionScopeSpecific or
|
||||
// VersionScopeHidden. This is only set for the dynamic symbol table.
|
||||
// This index will match either [DynamicVersion.Index]
|
||||
// in the slice returned by [File.DynamicVersions],
|
||||
// or [DynamicVersiondep.Index] in the Needs field
|
||||
// of the elements of the slice returned by [File.DynamicVersionNeeds].
|
||||
// In general, a defined symbol will have an index referring
|
||||
// to DynamicVersions, and an undefined symbol will have an index
|
||||
// referring to some version in DynamicVersionNeeds.
|
||||
VersionIndex int16
|
||||
VersionFlags SymbolVersionFlag
|
||||
|
||||
Section SectionIndex
|
||||
Value, Size uint64
|
||||
@ -1455,9 +1467,13 @@ func (f *File) DynamicSymbols() ([]Symbol, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if f.gnuVersionInit(str) {
|
||||
hasVersions, err := f.gnuVersionInit(str)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if hasVersions {
|
||||
for i := range sym {
|
||||
sym[i].VersionIndex, sym[i].Version, sym[i].Library, sym[i].VersionFlags = f.gnuVersion(i)
|
||||
sym[i].VersionIndex, sym[i].Version, sym[i].Library, sym[i].VersionScope = f.gnuVersion(i)
|
||||
}
|
||||
}
|
||||
return sym, nil
|
||||
@ -1478,7 +1494,9 @@ func (f *File) ImportedSymbols() ([]ImportedSymbol, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
f.gnuVersionInit(str)
|
||||
if _, err := f.gnuVersionInit(str); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var all []ImportedSymbol
|
||||
for i, s := range sym {
|
||||
if ST_BIND(s.Info) == STB_GLOBAL && s.Section == SHN_UNDEF {
|
||||
@ -1490,46 +1508,57 @@ func (f *File) ImportedSymbols() ([]ImportedSymbol, error) {
|
||||
return all, nil
|
||||
}
|
||||
|
||||
type SymbolVersionFlag byte
|
||||
// SymbolVersionScope describes the version in which a [Symbol] is defined.
|
||||
// This is only used for the dynamic symbol table.
|
||||
type SymbolVersionScope byte
|
||||
|
||||
const (
|
||||
VerFlagNone SymbolVersionFlag = 0x0 // No flags.
|
||||
VerFlagLocal SymbolVersionFlag = 0x1 // Symbol has local scope.
|
||||
VerFlagGlobal SymbolVersionFlag = 0x2 // Symbol has global scope.
|
||||
VerFlagHidden SymbolVersionFlag = 0x4 // Symbol is hidden.
|
||||
VersionScopeNone SymbolVersionScope = iota // no symbol version available
|
||||
VersionScopeLocal // symbol has local scope
|
||||
VersionScopeGlobal // symbol has global scope and is in the base version
|
||||
VersionScopeSpecific // symbol has global scope and is in the version given by VersionIndex
|
||||
VersionScopeHidden // symbol is in the version given by VersionIndex, and is hidden
|
||||
)
|
||||
|
||||
// DynamicVersion is a version defined by a dynamic object.
|
||||
// This describes entries in the ELF SHT_GNU_verdef section.
|
||||
// We assume that the vd_version field is 1.
|
||||
// Note that the name of the version appears here;
|
||||
// it is not in the first Deps entry as it is in the ELF file.
|
||||
type DynamicVersion struct {
|
||||
Version uint16 // Version of data structure.
|
||||
Flags DynamicVersionFlag
|
||||
Index uint16 // Version index.
|
||||
Deps []string // Dependencies.
|
||||
Name string // Name of version defined by this index.
|
||||
Index uint16 // Version index.
|
||||
Flags DynamicVersionFlag
|
||||
Deps []string // Names of versions that this version depends upon.
|
||||
}
|
||||
|
||||
// DynamicVersionNeed describes a shared library needed by a dynamic object,
|
||||
// with a list of the versions needed from that shared library.
|
||||
// This describes entries in the ELF SHT_GNU_verneed section.
|
||||
// We assume that the vn_version field is 1.
|
||||
type DynamicVersionNeed struct {
|
||||
Version uint16 // Version of data structure.
|
||||
Name string // Shared library name.
|
||||
Needs []DynamicVersionDep // Dependencies.
|
||||
Name string // Shared library name.
|
||||
Needs []DynamicVersionDep // Dependencies.
|
||||
}
|
||||
|
||||
// DynamicVersionDep is a version needed from some shared library.
|
||||
type DynamicVersionDep struct {
|
||||
Flags DynamicVersionFlag
|
||||
Other uint16 // Version index.
|
||||
Index uint16 // Version index.
|
||||
Dep string // Name of required version.
|
||||
}
|
||||
|
||||
// dynamicVersions returns version information for a dynamic object.
|
||||
func (f *File) dynamicVersions(str []byte) bool {
|
||||
func (f *File) dynamicVersions(str []byte) error {
|
||||
if f.dynVers != nil {
|
||||
// Already initialized.
|
||||
return true
|
||||
return nil
|
||||
}
|
||||
|
||||
// Accumulate verdef information.
|
||||
vd := f.SectionByType(SHT_GNU_VERDEF)
|
||||
if vd == nil {
|
||||
return false
|
||||
return nil
|
||||
}
|
||||
d, _ := vd.Data()
|
||||
|
||||
@ -1540,12 +1569,20 @@ func (f *File) dynamicVersions(str []byte) bool {
|
||||
break
|
||||
}
|
||||
version := f.ByteOrder.Uint16(d[i : i+2])
|
||||
if version != 1 {
|
||||
return &FormatError{int64(vd.Offset + uint64(i)), "unexpected dynamic version", version}
|
||||
}
|
||||
flags := DynamicVersionFlag(f.ByteOrder.Uint16(d[i+2 : i+4]))
|
||||
ndx := f.ByteOrder.Uint16(d[i+4 : i+6])
|
||||
cnt := f.ByteOrder.Uint16(d[i+6 : i+8])
|
||||
aux := f.ByteOrder.Uint32(d[i+12 : i+16])
|
||||
next := f.ByteOrder.Uint32(d[i+16 : i+20])
|
||||
|
||||
if cnt == 0 {
|
||||
return &FormatError{int64(vd.Offset + uint64(i)), "dynamic version has no name", nil}
|
||||
}
|
||||
|
||||
var name string
|
||||
var depName string
|
||||
var deps []string
|
||||
j := i + int(aux)
|
||||
@ -1557,16 +1594,20 @@ func (f *File) dynamicVersions(str []byte) bool {
|
||||
vnext := f.ByteOrder.Uint32(d[j+4 : j+8])
|
||||
depName, _ = getString(str, int(vname))
|
||||
|
||||
deps = append(deps, depName)
|
||||
if c == 0 {
|
||||
name = depName
|
||||
} else {
|
||||
deps = append(deps, depName)
|
||||
}
|
||||
|
||||
j += int(vnext)
|
||||
}
|
||||
|
||||
dynVers = append(dynVers, DynamicVersion{
|
||||
Version: version,
|
||||
Flags: flags,
|
||||
Index: ndx,
|
||||
Deps: deps,
|
||||
Name: name,
|
||||
Index: ndx,
|
||||
Flags: flags,
|
||||
Deps: deps,
|
||||
})
|
||||
|
||||
if next == 0 {
|
||||
@ -1577,7 +1618,7 @@ func (f *File) dynamicVersions(str []byte) bool {
|
||||
|
||||
f.dynVers = dynVers
|
||||
|
||||
return true
|
||||
return nil
|
||||
}
|
||||
|
||||
// DynamicVersions returns version information for a dynamic object.
|
||||
@ -1587,7 +1628,11 @@ func (f *File) DynamicVersions() ([]DynamicVersion, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !f.gnuVersionInit(str) {
|
||||
hasVersions, err := f.gnuVersionInit(str)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !hasVersions {
|
||||
return nil, errors.New("DynamicVersions: missing version table")
|
||||
}
|
||||
}
|
||||
@ -1596,16 +1641,16 @@ func (f *File) DynamicVersions() ([]DynamicVersion, error) {
|
||||
}
|
||||
|
||||
// dynamicVersionNeeds returns version dependencies for a dynamic object.
|
||||
func (f *File) dynamicVersionNeeds(str []byte) bool {
|
||||
func (f *File) dynamicVersionNeeds(str []byte) error {
|
||||
if f.dynVerNeeds != nil {
|
||||
// Already initialized.
|
||||
return true
|
||||
return nil
|
||||
}
|
||||
|
||||
// Accumulate verneed information.
|
||||
vn := f.SectionByType(SHT_GNU_VERNEED)
|
||||
if vn == nil {
|
||||
return false
|
||||
return nil
|
||||
}
|
||||
d, _ := vn.Data()
|
||||
|
||||
@ -1617,7 +1662,7 @@ func (f *File) dynamicVersionNeeds(str []byte) bool {
|
||||
}
|
||||
vers := f.ByteOrder.Uint16(d[i : i+2])
|
||||
if vers != 1 {
|
||||
break
|
||||
return &FormatError{int64(vn.Offset + uint64(i)), "unexpected dynamic need version", vers}
|
||||
}
|
||||
cnt := f.ByteOrder.Uint16(d[i+2 : i+4])
|
||||
fileoff := f.ByteOrder.Uint32(d[i+4 : i+8])
|
||||
@ -1632,14 +1677,14 @@ func (f *File) dynamicVersionNeeds(str []byte) bool {
|
||||
break
|
||||
}
|
||||
flags := DynamicVersionFlag(f.ByteOrder.Uint16(d[j+4 : j+6]))
|
||||
other := f.ByteOrder.Uint16(d[j+6 : j+8])
|
||||
index := f.ByteOrder.Uint16(d[j+6 : j+8])
|
||||
nameoff := f.ByteOrder.Uint32(d[j+8 : j+12])
|
||||
next := f.ByteOrder.Uint32(d[j+12 : j+16])
|
||||
depName, _ := getString(str, int(nameoff))
|
||||
|
||||
deps = append(deps, DynamicVersionDep{
|
||||
Flags: flags,
|
||||
Other: other,
|
||||
Index: index,
|
||||
Dep: depName,
|
||||
})
|
||||
|
||||
@ -1650,9 +1695,8 @@ func (f *File) dynamicVersionNeeds(str []byte) bool {
|
||||
}
|
||||
|
||||
dynVerNeeds = append(dynVerNeeds, DynamicVersionNeed{
|
||||
Version: vers,
|
||||
Name: file,
|
||||
Needs: deps,
|
||||
Name: file,
|
||||
Needs: deps,
|
||||
})
|
||||
|
||||
if next == 0 {
|
||||
@ -1663,7 +1707,7 @@ func (f *File) dynamicVersionNeeds(str []byte) bool {
|
||||
|
||||
f.dynVerNeeds = dynVerNeeds
|
||||
|
||||
return true
|
||||
return nil
|
||||
}
|
||||
|
||||
// DynamicVersionNeeds returns version dependencies for a dynamic object.
|
||||
@ -1673,7 +1717,11 @@ func (f *File) DynamicVersionNeeds() ([]DynamicVersionNeed, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !f.gnuVersionInit(str) {
|
||||
hasVersions, err := f.gnuVersionInit(str)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !hasVersions {
|
||||
return nil, errors.New("DynamicVersionNeeds: missing version table")
|
||||
}
|
||||
}
|
||||
@ -1683,66 +1731,66 @@ func (f *File) DynamicVersionNeeds() ([]DynamicVersionNeed, error) {
|
||||
|
||||
// gnuVersionInit parses the GNU version tables
|
||||
// for use by calls to gnuVersion.
|
||||
func (f *File) gnuVersionInit(str []byte) bool {
|
||||
// It reports whether any version tables were found.
|
||||
func (f *File) gnuVersionInit(str []byte) (bool, error) {
|
||||
// Versym parallels symbol table, indexing into verneed.
|
||||
vs := f.SectionByType(SHT_GNU_VERSYM)
|
||||
if vs == nil {
|
||||
return false
|
||||
return false, nil
|
||||
}
|
||||
d, _ := vs.Data()
|
||||
|
||||
f.gnuVersym = d
|
||||
f.dynamicVersions(str)
|
||||
f.dynamicVersionNeeds(str)
|
||||
return true
|
||||
if err := f.dynamicVersions(str); err != nil {
|
||||
return false, err
|
||||
}
|
||||
if err := f.dynamicVersionNeeds(str); err != nil {
|
||||
return false, err
|
||||
}
|
||||
return true, nil
|
||||
}
|
||||
|
||||
// gnuVersion adds Library and Version information to sym,
|
||||
// which came from offset i of the symbol table.
|
||||
func (f *File) gnuVersion(i int) (versionIndex int16, version string, library string, versionFlags SymbolVersionFlag) {
|
||||
func (f *File) gnuVersion(i int) (versionIndex int16, version string, library string, versionFlags SymbolVersionScope) {
|
||||
// Each entry is two bytes; skip undef entry at beginning.
|
||||
i = (i + 1) * 2
|
||||
if i >= len(f.gnuVersym) {
|
||||
return -1, "", "", VerFlagNone
|
||||
return -1, "", "", VersionScopeNone
|
||||
}
|
||||
s := f.gnuVersym[i:]
|
||||
if len(s) < 2 {
|
||||
return -1, "", "", VerFlagNone
|
||||
return -1, "", "", VersionScopeNone
|
||||
}
|
||||
j := int32(f.ByteOrder.Uint16(s))
|
||||
var ndx = int16(j & 0x7fff)
|
||||
ndx := int16(j & 0x7fff)
|
||||
|
||||
if ndx == 0 {
|
||||
return ndx, "", "", VerFlagLocal
|
||||
} else if ndx == 1 {
|
||||
return ndx, "", "", VerFlagGlobal
|
||||
if j == 0 {
|
||||
return ndx, "", "", VersionScopeLocal
|
||||
} else if j == 1 {
|
||||
return ndx, "", "", VersionScopeGlobal
|
||||
}
|
||||
|
||||
if ndx < 2 {
|
||||
return 0, "", "", VerFlagNone
|
||||
scope := VersionScopeSpecific
|
||||
if j&0x8000 != 0 {
|
||||
scope = VersionScopeHidden
|
||||
}
|
||||
|
||||
for _, v := range f.dynVerNeeds {
|
||||
for _, n := range v.Needs {
|
||||
if uint16(ndx) == n.Other {
|
||||
return ndx, n.Dep, v.Name, VerFlagHidden
|
||||
if uint16(ndx) == n.Index {
|
||||
return ndx, n.Dep, v.Name, scope
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for _, v := range f.dynVers {
|
||||
if uint16(ndx) == v.Index {
|
||||
if len(v.Deps) > 0 {
|
||||
flags := VerFlagNone
|
||||
if j&0x8000 != 0 {
|
||||
flags = VerFlagHidden
|
||||
}
|
||||
return ndx, v.Deps[0], "", flags
|
||||
}
|
||||
return ndx, v.Name, "", scope
|
||||
}
|
||||
}
|
||||
|
||||
return -1, "", "", VerFlagNone
|
||||
return -1, "", "", VersionScopeNone
|
||||
}
|
||||
|
||||
// ImportedLibraries returns the names of all libraries
|
||||
|
@ -78,80 +78,80 @@ var fileTests = []fileTest{
|
||||
},
|
||||
[]string{"libc.so.6"},
|
||||
[]Symbol{
|
||||
{"", 3, 0, -1, VerFlagNone, 1, 134512852, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 2, 134512876, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 3, 134513020, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 4, 134513292, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 5, 134513480, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 6, 134513512, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 7, 134513532, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 8, 134513612, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 9, 134513996, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 10, 134514008, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 11, 134518268, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 12, 134518280, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 13, 134518284, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 14, 134518436, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 15, 134518444, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 16, 134518452, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 17, 134518456, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 18, 134518484, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 19, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 20, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 21, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 22, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 23, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 24, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 25, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 26, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 27, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 28, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 29, 0, 0, "", ""},
|
||||
{"crt1.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"/usr/src/lib/csu/i386-elf/crti.S", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"<command line>", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"<built-in>", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"/usr/src/lib/csu/i386-elf/crti.S", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"crtstuff.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"__CTOR_LIST__", 1, 0, -1, VerFlagNone, 14, 134518436, 0, "", ""},
|
||||
{"__DTOR_LIST__", 1, 0, -1, VerFlagNone, 15, 134518444, 0, "", ""},
|
||||
{"__EH_FRAME_BEGIN__", 1, 0, -1, VerFlagNone, 12, 134518280, 0, "", ""},
|
||||
{"__JCR_LIST__", 1, 0, -1, VerFlagNone, 16, 134518452, 0, "", ""},
|
||||
{"p.0", 1, 0, -1, VerFlagNone, 11, 134518276, 0, "", ""},
|
||||
{"completed.1", 1, 0, -1, VerFlagNone, 18, 134518484, 1, "", ""},
|
||||
{"__do_global_dtors_aux", 2, 0, -1, VerFlagNone, 8, 134513760, 0, "", ""},
|
||||
{"object.2", 1, 0, -1, VerFlagNone, 18, 134518488, 24, "", ""},
|
||||
{"frame_dummy", 2, 0, -1, VerFlagNone, 8, 134513836, 0, "", ""},
|
||||
{"crtstuff.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"__CTOR_END__", 1, 0, -1, VerFlagNone, 14, 134518440, 0, "", ""},
|
||||
{"__DTOR_END__", 1, 0, -1, VerFlagNone, 15, 134518448, 0, "", ""},
|
||||
{"__FRAME_END__", 1, 0, -1, VerFlagNone, 12, 134518280, 0, "", ""},
|
||||
{"__JCR_END__", 1, 0, -1, VerFlagNone, 16, 134518452, 0, "", ""},
|
||||
{"__do_global_ctors_aux", 2, 0, -1, VerFlagNone, 8, 134513960, 0, "", ""},
|
||||
{"/usr/src/lib/csu/i386-elf/crtn.S", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"<command line>", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"<built-in>", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"/usr/src/lib/csu/i386-elf/crtn.S", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"hello.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"printf", 18, 0, -1, VerFlagNone, 0, 0, 44, "", ""},
|
||||
{"_DYNAMIC", 17, 0, -1, VerFlagNone, 65521, 134518284, 0, "", ""},
|
||||
{"__dso_handle", 17, 2, -1, VerFlagNone, 11, 134518272, 0, "", ""},
|
||||
{"_init", 18, 0, -1, VerFlagNone, 6, 134513512, 0, "", ""},
|
||||
{"environ", 17, 0, -1, VerFlagNone, 18, 134518512, 4, "", ""},
|
||||
{"__deregister_frame_info", 32, 0, -1, VerFlagNone, 0, 0, 0, "", ""},
|
||||
{"__progname", 17, 0, -1, VerFlagNone, 11, 134518268, 4, "", ""},
|
||||
{"_start", 18, 0, -1, VerFlagNone, 8, 134513612, 145, "", ""},
|
||||
{"__bss_start", 16, 0, -1, VerFlagNone, 65521, 134518484, 0, "", ""},
|
||||
{"main", 18, 0, -1, VerFlagNone, 8, 134513912, 46, "", ""},
|
||||
{"_init_tls", 18, 0, -1, VerFlagNone, 0, 0, 5, "", ""},
|
||||
{"_fini", 18, 0, -1, VerFlagNone, 9, 134513996, 0, "", ""},
|
||||
{"atexit", 18, 0, -1, VerFlagNone, 0, 0, 43, "", ""},
|
||||
{"_edata", 16, 0, -1, VerFlagNone, 65521, 134518484, 0, "", ""},
|
||||
{"_GLOBAL_OFFSET_TABLE_", 17, 0, -1, VerFlagNone, 65521, 134518456, 0, "", ""},
|
||||
{"_end", 16, 0, -1, VerFlagNone, 65521, 134518516, 0, "", ""},
|
||||
{"exit", 18, 0, -1, VerFlagNone, 0, 0, 68, "", ""},
|
||||
{"_Jv_RegisterClasses", 32, 0, -1, VerFlagNone, 0, 0, 0, "", ""},
|
||||
{"__register_frame_info", 32, 0, -1, VerFlagNone, 0, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 1, 134512852, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 2, 134512876, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 3, 134513020, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 4, 134513292, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 5, 134513480, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 6, 134513512, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 7, 134513532, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 8, 134513612, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 9, 134513996, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 10, 134514008, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 11, 134518268, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 12, 134518280, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 13, 134518284, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 14, 134518436, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 15, 134518444, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 16, 134518452, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 17, 134518456, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 18, 134518484, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 19, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 20, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 21, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 22, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 23, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 24, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 25, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 26, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 27, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 28, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 29, 0, 0, "", ""},
|
||||
{"crt1.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"/usr/src/lib/csu/i386-elf/crti.S", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"<command line>", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"<built-in>", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"/usr/src/lib/csu/i386-elf/crti.S", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"crtstuff.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"__CTOR_LIST__", 1, 0, VersionScopeNone, -1, 14, 134518436, 0, "", ""},
|
||||
{"__DTOR_LIST__", 1, 0, VersionScopeNone, -1, 15, 134518444, 0, "", ""},
|
||||
{"__EH_FRAME_BEGIN__", 1, 0, VersionScopeNone, -1, 12, 134518280, 0, "", ""},
|
||||
{"__JCR_LIST__", 1, 0, VersionScopeNone, -1, 16, 134518452, 0, "", ""},
|
||||
{"p.0", 1, 0, VersionScopeNone, -1, 11, 134518276, 0, "", ""},
|
||||
{"completed.1", 1, 0, VersionScopeNone, -1, 18, 134518484, 1, "", ""},
|
||||
{"__do_global_dtors_aux", 2, 0, VersionScopeNone, -1, 8, 134513760, 0, "", ""},
|
||||
{"object.2", 1, 0, VersionScopeNone, -1, 18, 134518488, 24, "", ""},
|
||||
{"frame_dummy", 2, 0, VersionScopeNone, -1, 8, 134513836, 0, "", ""},
|
||||
{"crtstuff.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"__CTOR_END__", 1, 0, VersionScopeNone, -1, 14, 134518440, 0, "", ""},
|
||||
{"__DTOR_END__", 1, 0, VersionScopeNone, -1, 15, 134518448, 0, "", ""},
|
||||
{"__FRAME_END__", 1, 0, VersionScopeNone, -1, 12, 134518280, 0, "", ""},
|
||||
{"__JCR_END__", 1, 0, VersionScopeNone, -1, 16, 134518452, 0, "", ""},
|
||||
{"__do_global_ctors_aux", 2, 0, VersionScopeNone, -1, 8, 134513960, 0, "", ""},
|
||||
{"/usr/src/lib/csu/i386-elf/crtn.S", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"<command line>", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"<built-in>", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"/usr/src/lib/csu/i386-elf/crtn.S", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"hello.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"printf", 18, 0, VersionScopeNone, -1, 0, 0, 44, "", ""},
|
||||
{"_DYNAMIC", 17, 0, VersionScopeNone, -1, 65521, 134518284, 0, "", ""},
|
||||
{"__dso_handle", 17, 2, VersionScopeNone, -1, 11, 134518272, 0, "", ""},
|
||||
{"_init", 18, 0, VersionScopeNone, -1, 6, 134513512, 0, "", ""},
|
||||
{"environ", 17, 0, VersionScopeNone, -1, 18, 134518512, 4, "", ""},
|
||||
{"__deregister_frame_info", 32, 0, VersionScopeNone, -1, 0, 0, 0, "", ""},
|
||||
{"__progname", 17, 0, VersionScopeNone, -1, 11, 134518268, 4, "", ""},
|
||||
{"_start", 18, 0, VersionScopeNone, -1, 8, 134513612, 145, "", ""},
|
||||
{"__bss_start", 16, 0, VersionScopeNone, -1, 65521, 134518484, 0, "", ""},
|
||||
{"main", 18, 0, VersionScopeNone, -1, 8, 134513912, 46, "", ""},
|
||||
{"_init_tls", 18, 0, VersionScopeNone, -1, 0, 0, 5, "", ""},
|
||||
{"_fini", 18, 0, VersionScopeNone, -1, 9, 134513996, 0, "", ""},
|
||||
{"atexit", 18, 0, VersionScopeNone, -1, 0, 0, 43, "", ""},
|
||||
{"_edata", 16, 0, VersionScopeNone, -1, 65521, 134518484, 0, "", ""},
|
||||
{"_GLOBAL_OFFSET_TABLE_", 17, 0, VersionScopeNone, -1, 65521, 134518456, 0, "", ""},
|
||||
{"_end", 16, 0, VersionScopeNone, -1, 65521, 134518516, 0, "", ""},
|
||||
{"exit", 18, 0, VersionScopeNone, -1, 0, 0, 68, "", ""},
|
||||
{"_Jv_RegisterClasses", 32, 0, VersionScopeNone, -1, 0, 0, 0, "", ""},
|
||||
{"__register_frame_info", 32, 0, VersionScopeNone, -1, 0, 0, 0, "", ""},
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -208,79 +208,79 @@ var fileTests = []fileTest{
|
||||
},
|
||||
[]string{"libc.so.6"},
|
||||
[]Symbol{
|
||||
{"", 3, 0, -1, VerFlagNone, 1, 4194816, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 2, 4194844, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 3, 4194880, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 4, 4194920, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 5, 4194952, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 6, 4195048, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 7, 4195110, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 8, 4195120, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 9, 4195152, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 10, 4195176, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 11, 4195224, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 12, 4195248, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 13, 4195296, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 14, 4195732, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 15, 4195748, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 16, 4195768, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 17, 4195808, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 18, 6293128, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 19, 6293144, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 20, 6293160, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 21, 6293168, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 22, 6293584, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 23, 6293592, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 24, 6293632, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 25, 6293656, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 26, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 27, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 28, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 29, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 30, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 31, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 32, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 33, 0, 0, "", ""},
|
||||
{"init.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"initfini.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"call_gmon_start", 2, 0, -1, VerFlagNone, 13, 4195340, 0, "", ""},
|
||||
{"crtstuff.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"__CTOR_LIST__", 1, 0, -1, VerFlagNone, 18, 6293128, 0, "", ""},
|
||||
{"__DTOR_LIST__", 1, 0, -1, VerFlagNone, 19, 6293144, 0, "", ""},
|
||||
{"__JCR_LIST__", 1, 0, -1, VerFlagNone, 20, 6293160, 0, "", ""},
|
||||
{"__do_global_dtors_aux", 2, 0, -1, VerFlagNone, 13, 4195376, 0, "", ""},
|
||||
{"completed.6183", 1, 0, -1, VerFlagNone, 25, 6293656, 1, "", ""},
|
||||
{"p.6181", 1, 0, -1, VerFlagNone, 24, 6293648, 0, "", ""},
|
||||
{"frame_dummy", 2, 0, -1, VerFlagNone, 13, 4195440, 0, "", ""},
|
||||
{"crtstuff.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"__CTOR_END__", 1, 0, -1, VerFlagNone, 18, 6293136, 0, "", ""},
|
||||
{"__DTOR_END__", 1, 0, -1, VerFlagNone, 19, 6293152, 0, "", ""},
|
||||
{"__FRAME_END__", 1, 0, -1, VerFlagNone, 17, 4195968, 0, "", ""},
|
||||
{"__JCR_END__", 1, 0, -1, VerFlagNone, 20, 6293160, 0, "", ""},
|
||||
{"__do_global_ctors_aux", 2, 0, -1, VerFlagNone, 13, 4195680, 0, "", ""},
|
||||
{"initfini.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"hello.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"_GLOBAL_OFFSET_TABLE_", 1, 2, -1, VerFlagNone, 23, 6293592, 0, "", ""},
|
||||
{"__init_array_end", 0, 2, -1, VerFlagNone, 18, 6293124, 0, "", ""},
|
||||
{"__init_array_start", 0, 2, -1, VerFlagNone, 18, 6293124, 0, "", ""},
|
||||
{"_DYNAMIC", 1, 2, -1, VerFlagNone, 21, 6293168, 0, "", ""},
|
||||
{"data_start", 32, 0, -1, VerFlagNone, 24, 6293632, 0, "", ""},
|
||||
{"__libc_csu_fini", 18, 0, -1, VerFlagNone, 13, 4195520, 2, "", ""},
|
||||
{"_start", 18, 0, -1, VerFlagNone, 13, 4195296, 0, "", ""},
|
||||
{"__gmon_start__", 32, 0, -1, VerFlagNone, 0, 0, 0, "", ""},
|
||||
{"_Jv_RegisterClasses", 32, 0, -1, VerFlagNone, 0, 0, 0, "", ""},
|
||||
{"puts@@GLIBC_2.2.5", 18, 0, -1, VerFlagNone, 0, 0, 396, "", ""},
|
||||
{"_fini", 18, 0, -1, VerFlagNone, 14, 4195732, 0, "", ""},
|
||||
{"__libc_start_main@@GLIBC_2.2.5", 18, 0, -1, VerFlagNone, 0, 0, 450, "", ""},
|
||||
{"_IO_stdin_used", 17, 0, -1, VerFlagNone, 15, 4195748, 4, "", ""},
|
||||
{"__data_start", 16, 0, -1, VerFlagNone, 24, 6293632, 0, "", ""},
|
||||
{"__dso_handle", 17, 2, -1, VerFlagNone, 24, 6293640, 0, "", ""},
|
||||
{"__libc_csu_init", 18, 0, -1, VerFlagNone, 13, 4195536, 137, "", ""},
|
||||
{"__bss_start", 16, 0, -1, VerFlagNone, 65521, 6293656, 0, "", ""},
|
||||
{"_end", 16, 0, -1, VerFlagNone, 65521, 6293664, 0, "", ""},
|
||||
{"_edata", 16, 0, -1, VerFlagNone, 65521, 6293656, 0, "", ""},
|
||||
{"main", 18, 0, -1, VerFlagNone, 13, 4195480, 27, "", ""},
|
||||
{"_init", 18, 0, -1, VerFlagNone, 11, 4195224, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 1, 4194816, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 2, 4194844, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 3, 4194880, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 4, 4194920, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 5, 4194952, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 6, 4195048, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 7, 4195110, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 8, 4195120, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 9, 4195152, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 10, 4195176, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 11, 4195224, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 12, 4195248, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 13, 4195296, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 14, 4195732, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 15, 4195748, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 16, 4195768, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 17, 4195808, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 18, 6293128, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 19, 6293144, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 20, 6293160, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 21, 6293168, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 22, 6293584, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 23, 6293592, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 24, 6293632, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 25, 6293656, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 26, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 27, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 28, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 29, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 30, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 31, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 32, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 33, 0, 0, "", ""},
|
||||
{"init.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"initfini.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"call_gmon_start", 2, 0, VersionScopeNone, -1, 13, 4195340, 0, "", ""},
|
||||
{"crtstuff.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"__CTOR_LIST__", 1, 0, VersionScopeNone, -1, 18, 6293128, 0, "", ""},
|
||||
{"__DTOR_LIST__", 1, 0, VersionScopeNone, -1, 19, 6293144, 0, "", ""},
|
||||
{"__JCR_LIST__", 1, 0, VersionScopeNone, -1, 20, 6293160, 0, "", ""},
|
||||
{"__do_global_dtors_aux", 2, 0, VersionScopeNone, -1, 13, 4195376, 0, "", ""},
|
||||
{"completed.6183", 1, 0, VersionScopeNone, -1, 25, 6293656, 1, "", ""},
|
||||
{"p.6181", 1, 0, VersionScopeNone, -1, 24, 6293648, 0, "", ""},
|
||||
{"frame_dummy", 2, 0, VersionScopeNone, -1, 13, 4195440, 0, "", ""},
|
||||
{"crtstuff.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"__CTOR_END__", 1, 0, VersionScopeNone, -1, 18, 6293136, 0, "", ""},
|
||||
{"__DTOR_END__", 1, 0, VersionScopeNone, -1, 19, 6293152, 0, "", ""},
|
||||
{"__FRAME_END__", 1, 0, VersionScopeNone, -1, 17, 4195968, 0, "", ""},
|
||||
{"__JCR_END__", 1, 0, VersionScopeNone, -1, 20, 6293160, 0, "", ""},
|
||||
{"__do_global_ctors_aux", 2, 0, VersionScopeNone, -1, 13, 4195680, 0, "", ""},
|
||||
{"initfini.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"hello.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"_GLOBAL_OFFSET_TABLE_", 1, 2, VersionScopeNone, -1, 23, 6293592, 0, "", ""},
|
||||
{"__init_array_end", 0, 2, VersionScopeNone, -1, 18, 6293124, 0, "", ""},
|
||||
{"__init_array_start", 0, 2, VersionScopeNone, -1, 18, 6293124, 0, "", ""},
|
||||
{"_DYNAMIC", 1, 2, VersionScopeNone, -1, 21, 6293168, 0, "", ""},
|
||||
{"data_start", 32, 0, VersionScopeNone, -1, 24, 6293632, 0, "", ""},
|
||||
{"__libc_csu_fini", 18, 0, VersionScopeNone, -1, 13, 4195520, 2, "", ""},
|
||||
{"_start", 18, 0, VersionScopeNone, -1, 13, 4195296, 0, "", ""},
|
||||
{"__gmon_start__", 32, 0, VersionScopeNone, -1, 0, 0, 0, "", ""},
|
||||
{"_Jv_RegisterClasses", 32, 0, VersionScopeNone, -1, 0, 0, 0, "", ""},
|
||||
{"puts@@GLIBC_2.2.5", 18, 0, VersionScopeNone, -1, 0, 0, 396, "", ""},
|
||||
{"_fini", 18, 0, VersionScopeNone, -1, 14, 4195732, 0, "", ""},
|
||||
{"__libc_start_main@@GLIBC_2.2.5", 18, 0, VersionScopeNone, -1, 0, 0, 450, "", ""},
|
||||
{"_IO_stdin_used", 17, 0, VersionScopeNone, -1, 15, 4195748, 4, "", ""},
|
||||
{"__data_start", 16, 0, VersionScopeNone, -1, 24, 6293632, 0, "", ""},
|
||||
{"__dso_handle", 17, 2, VersionScopeNone, -1, 24, 6293640, 0, "", ""},
|
||||
{"__libc_csu_init", 18, 0, VersionScopeNone, -1, 13, 4195536, 137, "", ""},
|
||||
{"__bss_start", 16, 0, VersionScopeNone, -1, 65521, 6293656, 0, "", ""},
|
||||
{"_end", 16, 0, VersionScopeNone, -1, 65521, 6293664, 0, "", ""},
|
||||
{"_edata", 16, 0, VersionScopeNone, -1, 65521, 6293656, 0, "", ""},
|
||||
{"main", 18, 0, VersionScopeNone, -1, 13, 4195480, 27, "", ""},
|
||||
{"_init", 18, 0, VersionScopeNone, -1, 11, 4195224, 0, "", ""},
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -338,21 +338,21 @@ var fileTests = []fileTest{
|
||||
[]ProgHeader{},
|
||||
nil,
|
||||
[]Symbol{
|
||||
{"hello.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 1, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 3, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 4, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 5, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 6, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 8, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 9, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 11, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 13, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 15, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 16, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 14, 0, 0, "", ""},
|
||||
{"main", 18, 0, -1, VerFlagNone, 1, 0, 23, "", ""},
|
||||
{"puts", 16, 0, -1, VerFlagNone, 0, 0, 0, "", ""},
|
||||
{"hello.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 1, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 3, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 4, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 5, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 6, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 8, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 9, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 11, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 13, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 15, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 16, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 14, 0, 0, "", ""},
|
||||
{"main", 18, 0, VersionScopeNone, -1, 1, 0, 23, "", ""},
|
||||
{"puts", 16, 0, VersionScopeNone, -1, 0, 0, 0, "", ""},
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -384,21 +384,21 @@ var fileTests = []fileTest{
|
||||
[]ProgHeader{},
|
||||
nil,
|
||||
[]Symbol{
|
||||
{"hello.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 1, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 3, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 4, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 5, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 6, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 8, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 9, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 11, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 13, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 15, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 16, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 14, 0, 0, "", ""},
|
||||
{"main", 18, 0, -1, VerFlagNone, 1, 0, 27, "", ""},
|
||||
{"puts", 16, 0, -1, VerFlagNone, 0, 0, 0, "", ""},
|
||||
{"hello.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 1, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 3, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 4, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 5, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 6, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 8, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 9, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 11, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 13, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 15, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 16, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 14, 0, 0, "", ""},
|
||||
{"main", 18, 0, VersionScopeNone, -1, 1, 0, 27, "", ""},
|
||||
{"puts", 16, 0, VersionScopeNone, -1, 0, 0, 0, "", ""},
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -430,21 +430,21 @@ var fileTests = []fileTest{
|
||||
[]ProgHeader{},
|
||||
nil,
|
||||
[]Symbol{
|
||||
{"hello.c", 4, 0, -1, VerFlagNone, 65521, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 1, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 3, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 4, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 5, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 6, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 8, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 9, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 11, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 13, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 15, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 16, 0, 0, "", ""},
|
||||
{"", 3, 0, -1, VerFlagNone, 14, 0, 0, "", ""},
|
||||
{"main", 18, 0, -1, VerFlagNone, 1, 0, 44, "", ""},
|
||||
{"puts", 16, 0, -1, VerFlagNone, 0, 0, 0, "", ""},
|
||||
{"hello.c", 4, 0, VersionScopeNone, -1, 65521, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 1, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 3, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 4, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 5, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 6, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 8, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 9, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 11, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 13, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 15, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 16, 0, 0, "", ""},
|
||||
{"", 3, 0, VersionScopeNone, -1, 14, 0, 0, "", ""},
|
||||
{"main", 18, 0, VersionScopeNone, -1, 1, 0, 44, "", ""},
|
||||
{"puts", 16, 0, VersionScopeNone, -1, 0, 0, 0, "", ""},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user