diff options
| author | Kevin Enderby <enderby@apple.com> | 2014-07-03 21:51:07 +0000 |
|---|---|---|
| committer | Kevin Enderby <enderby@apple.com> | 2014-07-03 21:51:07 +0000 |
| commit | 0fd8aac5dae2fe529e51a6b4db7eb32ce3922158 (patch) | |
| tree | a0dc225236c1518041629f60fadd57ccf4ecb000 | |
| parent | a37a2fc81f942ef044ea08430e3405bc23ece5c2 (diff) | |
| download | bcm5719-llvm-0fd8aac5dae2fe529e51a6b4db7eb32ce3922158.tar.gz bcm5719-llvm-0fd8aac5dae2fe529e51a6b4db7eb32ce3922158.zip | |
Add the -just-symbol-name (aka -j) flag to llvm-nm to just print the
symbol’s name. On darwin the -j flag is used (often in combinations
with other flags) to produce a complete list of symbol names which
than can then be reorder and used with ld(1)’s -order_file.
llvm-svn: 212294
| -rw-r--r-- | llvm/test/Object/nm-trivial-object.test | 8 | ||||
| -rw-r--r-- | llvm/tools/llvm-nm/llvm-nm.cpp | 9 |
2 files changed, 17 insertions, 0 deletions
diff --git a/llvm/test/Object/nm-trivial-object.test b/llvm/test/Object/nm-trivial-object.test index 09642e1c688..656d6b00cd3 100644 --- a/llvm/test/Object/nm-trivial-object.test +++ b/llvm/test/Object/nm-trivial-object.test @@ -18,6 +18,8 @@ RUN: llvm-nm %p/Inputs/trivial-object-test.macho-x86-64 \ RUN: | FileCheck %s -check-prefix macho64 RUN: llvm-nm %p/Inputs/macho-text-data-bss.macho-x86_64 \ RUN: | FileCheck %s -check-prefix macho-tdb +RUN: llvm-nm -j %p/Inputs/macho-text-data-bss.macho-x86_64 \ +RUN: | FileCheck %s -check-prefix macho-j RUN: llvm-nm -r %p/Inputs/macho-text-data-bss.macho-x86_64 \ RUN: | FileCheck %s -check-prefix macho-r RUN: llvm-nm %p/Inputs/common.coff-i386 \ @@ -85,6 +87,12 @@ macho-tdb: 000000000000000c D _d macho-tdb: 0000000000000000 T _t macho-tdb: 0000000000000048 S _t.eh +macho-j: EH_frame0 +macho-j: _b +macho-j: _d +macho-j: _t +macho-j: _t.eh + macho-r: 0000000000000048 S _t.eh macho-r-NEXT: 0000000000000000 T _t macho-r-NEXT: 000000000000000c D _d diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp index 3f9ce24471a..d3918547d84 100644 --- a/llvm/tools/llvm-nm/llvm-nm.cpp +++ b/llvm/tools/llvm-nm/llvm-nm.cpp @@ -131,6 +131,11 @@ cl::opt<bool> WithoutAliases("without-aliases", cl::Hidden, cl::opt<bool> ArchiveMap("print-armap", cl::desc("Print the archive map")); cl::alias ArchiveMaps("s", cl::desc("Alias for --print-armap"), cl::aliasopt(ArchiveMap)); + +cl::opt<bool> JustSymbolName("just-symbol-name", + cl::desc("Print just the symbol's name")); +cl::alias JustSymbolNames("j", cl::desc("Alias for --just-symbol-name"), + cl::aliasopt(JustSymbolName)); bool PrintAddress = true; bool MultipleFiles = false; @@ -446,6 +451,10 @@ static void sortAndPrintSymbolList(SymbolicFile *Obj, bool printName) { continue; if (SizeSort && !PrintAddress && I->Size == UnknownAddressOrSize) continue; + if (JustSymbolName) { + outs() << I->Name << "\n"; + continue; + } char SymbolAddrStr[18] = ""; char SymbolSizeStr[18] = ""; |

