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
17 lines
1.1 KiB
Plaintext
17 lines
1.1 KiB
Plaintext
RUN: llvm-objdump --macho --dylibs-used %p/Inputs/dylibLoadKinds.macho-x86_64 | FileCheck %s --check-prefix=USED
|
|
RUN: llvm-otool -L %p/Inputs/dylibLoadKinds.macho-x86_64 | FileCheck %s --check-prefix=USED
|
|
USED: /usr/lib/foo1.dylib (compatibility version 0.0.0, current version 0.0.0)
|
|
USED: /usr/lib/foo2.dylib (compatibility version 0.0.0, current version 0.0.0, weak)
|
|
USED: /usr/lib/foo3.dylib (compatibility version 0.0.0, current version 0.0.0, reexport)
|
|
USED: /usr/lib/foo4.dylib (compatibility version 0.0.0, current version 0.0.0, lazy)
|
|
USED: /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
|
|
|
|
RUN: llvm-objdump --macho --dylib-id %p/Inputs/dylibLoadKinds.macho-x86_64 | FileCheck %s --check-prefix=ID
|
|
RUN: llvm-otool -D %p/Inputs/dylibLoadKinds.macho-x86_64 | FileCheck %s --check-prefix=ID
|
|
ID: /usr/lib/foo.dylib
|
|
|
|
RUN: llvm-objdump --macho --dylib-id --no-leading-headers %p/Inputs/dylibLoadKinds.macho-x86_64 | FileCheck %s --check-prefix=IDNOHEADERS
|
|
RUN: llvm-otool -DX %p/Inputs/dylibLoadKinds.macho-x86_64 | FileCheck %s --check-prefix=IDNOHEADERS
|
|
IDNOHEADERS-NOT: dylibLoadKinds.macho-x86_64:
|
|
IDNOHEADERS: /usr/lib/foo.dylib
|