This implements an LLVM tool that's flag- and output-compatible with macOS's `otool` -- except for bugs, but from testing with both `otool` and `xcrun otool-classic`, llvm-otool matches vanilla otool's behavior very well already. It's not 100% perfect, but it's a very solid start. This uses the same approach as llvm-objcopy: llvm-objdump uses a different OptTable when it's invoked as llvm-otool. This is possible thanks to D100433. Differential Revision: https://reviews.llvm.org/D100583
15 lines
638 B
Plaintext
15 lines
638 B
Plaintext
# RUN: llvm-mc %s --triple x86_64-apple-darwin -filetype=obj -o %t.o
|
|
# RUN: llvm-objdump --macho --info-plist %t.o | FileCheck %s
|
|
# RUN: llvm-otool -P %t.o | FileCheck %s
|
|
# RUN: llvm-objdump --macho --info-plist --no-leading-headers %t.o | FileCheck --check-prefix=NOHEADER %s
|
|
# RUN: llvm-otool -PX %t.o | FileCheck --check-prefix=NOHEADER %s
|
|
|
|
.section __TEXT, __info_plist
|
|
.asciz "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
|
|
|
# CHECK: Contents of (__TEXT,__info_plist) section
|
|
# CHECK: <?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
# NOHEADER-NOT: Contents of (__TEXT,__info_plist) section
|
|
# NOHEADER: <?xml version="1.0" encoding="UTF-8"?>
|