summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2014-07-28 23:17:38 +0000
committerKevin Enderby <enderby@apple.com>2014-07-28 23:17:38 +0000
commit49b4f53cad35846612af05a9542426e8bc928040 (patch)
tree73eb19b2e3e078909f73a042d83b439f403c38b2
parent4dbffad80416ba47ba98e54050547e7b05a34ba8 (diff)
downloadbcm5719-llvm-49b4f53cad35846612af05a9542426e8bc928040.tar.gz
bcm5719-llvm-49b4f53cad35846612af05a9542426e8bc928040.zip
Tweak llvm-nm’s -undefined-only (aka -u) printing for Mach-O files
to just print the symbol name. So it matches darwin’s nm(1) -u option. llvm-svn: 214143
-rw-r--r--llvm/test/Object/nm-trivial-object.test10
-rw-r--r--llvm/tools/llvm-nm/llvm-nm.cpp2
2 files changed, 11 insertions, 1 deletions
diff --git a/llvm/test/Object/nm-trivial-object.test b/llvm/test/Object/nm-trivial-object.test
index a7bb7caad1d..4e44b7b554d 100644
--- a/llvm/test/Object/nm-trivial-object.test
+++ b/llvm/test/Object/nm-trivial-object.test
@@ -6,6 +6,8 @@ RUN: llvm-nm %p/Inputs/trivial-object-test.elf-i386 \
RUN: | FileCheck %s -check-prefix ELF
RUN: llvm-nm -o %p/Inputs/trivial-object-test.elf-i386 \
RUN: | FileCheck %s -check-prefix ELF-o
+RUN: llvm-nm -u %p/Inputs/trivial-object-test.elf-i386 \
+RUN: | FileCheck %s -check-prefix ELF-u
RUN: llvm-nm %p/Inputs/trivial-object-test.elf-x86-64 \
RUN: | FileCheck %s -check-prefix ELF64
RUN: llvm-nm %p/Inputs/weak.elf-x86-64 \
@@ -32,6 +34,8 @@ RUN: llvm-nm -o %p/Inputs/macho-text-data-bss.macho-x86_64 \
RUN: | FileCheck %s -check-prefix macho-o
RUN: llvm-nm -p -a %p/Inputs/macho-hello-g.macho-x86_64 \
RUN: | FileCheck %s -check-prefix macho-pa
+RUN: llvm-nm -u %p/Inputs/macho-hello-g.macho-x86_64 \
+RUN: | FileCheck %s -check-prefix macho-u
RUN: llvm-nm %p/Inputs/common.coff-i386 \
RUN: | FileCheck %s -check-prefix COFF-COMMON
RUN: llvm-nm %p/Inputs/relocatable-with-section-address.elf-x86-64 \
@@ -70,6 +74,9 @@ ELF-o: {{.*}}/trivial-object-test.elf-i386: U SomeOtherFunction
ELF-o: {{.*}}/trivial-object-test.elf-i386: 00000000 T main
ELF-o: {{.*}}/trivial-object-test.elf-i386: U puts
+ELF-u: U SomeOtherFunction
+ELF-u: U puts
+
ELF64: U SomeOtherFunction
ELF64: 0000000000000000 T main
ELF64: U puts
@@ -145,6 +152,9 @@ macho-pa: 0000000100000f30 T _main
macho-pa: U _printf
macho-pa: U dyld_stub_binder
+macho-u: _printf
+macho-u: dyld_stub_binder
+
Test that nm uses addresses even with ELF .o files.
ELF-SEC-ADDR64: 0000000000000058 D a
ELF-SEC-ADDR64-NEXT: 000000000000005c D b
diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp
index 38c945cb94f..07a85c401a3 100644
--- a/llvm/tools/llvm-nm/llvm-nm.cpp
+++ b/llvm/tools/llvm-nm/llvm-nm.cpp
@@ -583,7 +583,7 @@ static void sortAndPrintSymbolList(SymbolicFile *Obj, bool printName,
outs() << ArchiveName << ":";
outs() << CurrentFilename << ": ";
}
- if (JustSymbolName) {
+ if (JustSymbolName || (UndefinedOnly && isa<MachOObjectFile>(Obj))) {
outs() << I->Name << "\n";
continue;
}
OpenPOWER on IntegriCloud