From bae40c82b94bc8debc4d8667de7c62a99b0380da Mon Sep 17 00:00:00 2001 From: xushiwei Date: Sun, 28 Jul 2024 22:51:35 +0800 Subject: [PATCH] llgo/xtool/nm/nmindex --- chore/nmindex/nmindex.go | 6 +++--- xtool/nm/{ => nmindex}/index.go | 12 +++++++----- xtool/nm/{ => nmindex}/query.go | 8 +++++--- 3 files changed, 15 insertions(+), 11 deletions(-) rename xtool/nm/{ => nmindex}/index.go (90%) rename xtool/nm/{ => nmindex}/query.go (96%) diff --git a/chore/nmindex/nmindex.go b/chore/nmindex/nmindex.go index 43d34118..fc575fc2 100644 --- a/chore/nmindex/nmindex.go +++ b/chore/nmindex/nmindex.go @@ -21,7 +21,7 @@ import ( "os" "github.com/goplus/llgo/xtool/env/llvm" - "github.com/goplus/llgo/xtool/nm" + "github.com/goplus/llgo/xtool/nm/nmindex" ) func main() { @@ -58,7 +58,7 @@ func makeIndex() { idxDir := indexDir() os.MkdirAll(idxDir, 0755) - b := nm.NewIndexBuilder(env.Nm()) + b := nmindex.NewIndexBuilder(env.Nm()) libDirs := []string{ usrLib(false), usrLib(true), @@ -78,7 +78,7 @@ func query(q string) { q = "_" + q } } - files, err := nm.Query(indexDir(), q) + files, err := nmindex.Query(indexDir(), q) check(err) for _, f := range files { fmt.Printf("%s:\n", f.ArFile) diff --git a/xtool/nm/index.go b/xtool/nm/nmindex/index.go similarity index 90% rename from xtool/nm/index.go rename to xtool/nm/nmindex/index.go index 912f5806..5f325444 100644 --- a/xtool/nm/index.go +++ b/xtool/nm/nmindex/index.go @@ -14,7 +14,7 @@ * limitations under the License. */ -package nm +package nmindex import ( "bytes" @@ -24,13 +24,15 @@ import ( "os" "path/filepath" "strings" + + "github.com/goplus/llgo/xtool/nm" ) type IndexBuilder struct { - nm *Cmd + nm *nm.Cmd } -func NewIndexBuilder(nm *Cmd) *IndexBuilder { +func NewIndexBuilder(nm *nm.Cmd) *IndexBuilder { return &IndexBuilder{nm} } @@ -95,12 +97,12 @@ func (p *IndexBuilder) IndexFile(arFile, outFile string) (err error) { } for _, sym := range item.Symbols { switch sym.Type { - case Text, Data, BSS, Rodata, 'S', 'C', 'W', 'A': + case nm.Text, nm.Data, nm.BSS, nm.Rodata, 'S', 'C', 'W', 'A': b.WriteByte(byte(sym.Type)) b.WriteByte(' ') b.WriteString(sym.Name) b.WriteByte('\n') - case Undefined, LocalText, LocalData, LocalBSS, LocalASym, 'I', 'i', 'a', 'w': + case nm.Undefined, nm.LocalText, nm.LocalData, nm.LocalBSS, nm.LocalASym, 'I', 'i', 'a', 'w': /* if sym.Type != Undefined && strings.Contains(sym.Name, "fprintf") { log.Printf("skip symbol type %c: %s\n", sym.Type, sym.Name) diff --git a/xtool/nm/query.go b/xtool/nm/nmindex/query.go similarity index 96% rename from xtool/nm/query.go rename to xtool/nm/nmindex/query.go index f39c19bc..d86c4d52 100644 --- a/xtool/nm/query.go +++ b/xtool/nm/nmindex/query.go @@ -14,19 +14,21 @@ * limitations under the License. */ -package nm +package nmindex import ( "bufio" "os" "strings" + + "github.com/goplus/llgo/xtool/nm" ) // MatchedItem represents a matched item type MatchedItem struct { ObjFile string Symbol string - Type SymbolType + Type nm.SymbolType } // MatchedFile represents a matched file @@ -88,7 +90,7 @@ func queryIndex(files []*MatchedFile, idxFile, query string) []*MatchedFile { items = append(items, &MatchedItem{ ObjFile: objFile, Symbol: sym, - Type: SymbolType(typ), + Type: nm.SymbolType(typ), }) } if len(items) > 0 {