[llvm-objdump --macho] Rename --dyld_info to --dyld-info

llvm-objdump takes foo-bar style flags, while llvm-otool takes foo_bar style
flags.  dyld_info was the only exception to that.

Add a -dyld_info flag to llvm-otool instead.

(Both in llvm-objdump and llvm-otool, the flag doesn't really do anything
yet.)

Differential Revision: https://reviews.llvm.org/D131897
This commit is contained in:
Nico Weber 2022-08-15 11:16:03 -04:00
parent a36de097fa
commit 1642667392
8 changed files with 22 additions and 13 deletions

View File

@ -316,7 +316,7 @@ MACH-O ONLY OPTIONS AND COMMANDS
Print chained fixup information.
.. option:: --dyld_info
.. option:: --dyld-info
Print bind and rebase information used by dyld to resolve external
references in a final linked binary.

View File

@ -31,6 +31,10 @@ OPTIONS
Print linker optimization hints.
.. option:: -dyld_info
Print bind and rebase information.
.. option:: -D
Print shared library id.

View File

@ -1,24 +1,24 @@
REQUIRES: host-byteorder-little-endian
RUN: cat %p/../Inputs/MachO/chained-fixups.yaml \
RUN: | sed 's/__LINKEDIT: 00000000/__LINKEDIT: AB000000/' \
RUN: | yaml2obj | not llvm-objdump --macho --dyld_info - 2>&1 \
RUN: | yaml2obj | not llvm-objdump --macho --dyld-info - 2>&1 \
RUN: | FileCheck %s --check-prefix=HEADER1
HEADER1: truncated or malformed object (bad chained fixups: unknown version: 171)
RUN: cat %p/../Inputs/MachO/chained-fixups.yaml \
RUN: | sed 's/1000000010000000/1000000AB0000000/' \
RUN: | yaml2obj | not llvm-objdump --macho --dyld_info - 2>&1 \
RUN: | yaml2obj | not llvm-objdump --macho --dyld-info - 2>&1 \
RUN: | FileCheck %s --check-prefix=HEADER2
HEADER2: truncated or malformed object (bad chained fixups: unknown imports format: 171)
RUN: cat %p/../Inputs/MachO/chained-fixups.yaml \
RUN: | sed 's/20000000/01000000/' \
RUN: | yaml2obj | not llvm-objdump --macho --dyld_info - 2>&1 \
RUN: | yaml2obj | not llvm-objdump --macho --dyld-info - 2>&1 \
RUN: | FileCheck %s --check-prefix=HEADER3
HEADER3: truncated or malformed object (bad chained fixups: image starts offset 1 overlaps with chained fixups header)
RUN: cat %p/../Inputs/MachO/chained-fixups.yaml \
RUN: | sed 's/20000000/FF000000/' \
RUN: | yaml2obj | not llvm-objdump --macho --dyld_info - 2>&1 \
RUN: | yaml2obj | not llvm-objdump --macho --dyld-info - 2>&1 \
RUN: | FileCheck %s --check-prefix=HEADER4
HEADER4: truncated or malformed object (bad chained fixups: image starts end 33031 extends past end 32856)

View File

@ -0,0 +1,9 @@
RUN: llvm-objdump --macho --dyld-info %p/Inputs/bind.macho-x86_64 \
RUN: | FileCheck %s --match-full-lines --strict-whitespace \
RUN: --implicit-check-not={{.}}
RUN: llvm-otool -dyld_info %p/Inputs/bind.macho-x86_64 \
RUN: | FileCheck %s --match-full-lines --strict-whitespace \
RUN: --implicit-check-not={{.}}
CHECK:{{.*}}bind.macho-x86_64:
CHECK:dyld information:

View File

@ -1,6 +0,0 @@
RUN: llvm-objdump --macho --dyld_info %p/Inputs/bind.macho-x86_64 \
RUN: | FileCheck %s --match-full-lines --strict-whitespace \
RUN: --implicit-check-not={{.}}
CHECK:{{.*}}bind.macho-x86_64:
CHECK:dyld information:

View File

@ -303,7 +303,7 @@ def chained_fixups : Flag<["--"], "chained-fixups">,
HelpText<"Print chained fixup information (requires --macho)">,
Group<grp_mach_o>;
def dyld_info : Flag<["--"], "dyld_info">,
def dyld_info : Flag<["--"], "dyld-info">,
HelpText<"Print bind and rebase information used by dyld to resolve "
"external references in a final linked binary "
"(requires --macho)">,

View File

@ -39,12 +39,13 @@ def X : Flag<["-"], "X">, HelpText<"omit leading addresses or headers">;
def chained_fixups : Flag<["-"], "chained_fixups">,
HelpText<"print chained fixup information">;
def dyld_info : Flag<["-"], "dyld_info">,
HelpText<"print bind and rebase information">;
// Not (yet?) implemented:
// def a : Flag<["-"], "a">, HelpText<"print archive header">;
// -c print argument strings of a core file
// -m don't use archive(member) syntax
// -dyld_info
// -dyld_opcodes
// -addr_slide=arg
// -function_offsets

View File

@ -2788,6 +2788,7 @@ static void parseOtoolOptions(const llvm::opt::InputArgList &InputArgs) {
LeadingAddr = LeadingHeaders = !InputArgs.hasArg(OTOOL_X);
ChainedFixups = InputArgs.hasArg(OTOOL_chained_fixups);
DyldInfo = InputArgs.hasArg(OTOOL_dyld_info);
InputFilenames = InputArgs.getAllArgValues(OTOOL_INPUT);
if (InputFilenames.empty())