Nico Weber 1a3f88658a [llvm-objdump] Add an llvm-otool tool
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
2021-04-20 08:24:58 -04:00

25 lines
1.4 KiB
Plaintext

RUN: llvm-objdump --macho -r %p/Inputs/hello.obj.macho-x86_64 | \
RUN: FileCheck --check-prefix=VERBOSE %s
RUN: llvm-otool -rv %p/Inputs/hello.obj.macho-x86_64 | \
RUN: FileCheck --check-prefix=VERBOSE %s
RUN: llvm-objdump --macho -r --non-verbose %p/Inputs/hello.obj.macho-x86_64 | \
RUN: FileCheck --check-prefix=NONVERBOSE %s
RUN: llvm-otool -r %p/Inputs/hello.obj.macho-x86_64 | \
RUN: FileCheck --check-prefix=NONVERBOSE %s
VERBOSE: Relocation information (__TEXT,__text) 2 entries
VERBOSE-NEXT: address pcrel length extern type scattered symbolnum/value
VERBOSE-NEXT: 00000027 True long True BRANCH False _printf
VERBOSE-NEXT: 0000000b True long True SIGNED False L_.str
VERBOSE-NEXT: Relocation information (__LD,__compact_unwind) 1 entries
VERBOSE-NEXT: address pcrel length extern type scattered symbolnum/value
VERBOSE-NEXT: 00000000 False quad False UNSIGND False 1 (__TEXT,__text)
NONVERBOSE: Relocation information (__TEXT,__text) 2 entries
NONVERBOSE-NEXT: address pcrel length extern type scattered symbolnum/value
NONVERBOSE-NEXT: 00000027 1 2 1 2 0 4
NONVERBOSE-NEXT: 0000000b 1 2 1 1 0 0
NONVERBOSE-NEXT: Relocation information (__LD,__compact_unwind) 1 entries
NONVERBOSE-NEXT: address pcrel length extern type scattered symbolnum/value
NONVERBOSE-NEXT: 00000000 0 3 0 0 0 1