Skip to content

Commit

Permalink
[llvm-objdump --macho] Rename --dyld_info to --dyld-info
Browse files Browse the repository at this point in the history
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
  • Loading branch information
nico committed Aug 17, 2022
1 parent a36de09 commit 1642667
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 13 deletions.
2 changes: 1 addition & 1 deletion llvm/docs/CommandGuide/llvm-objdump.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
4 changes: 4 additions & 0 deletions llvm/docs/CommandGuide/llvm-otool.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ OPTIONS

Print linker optimization hints.

.. option:: -dyld_info

Print bind and rebase information.

.. option:: -D

Print shared library id.
Expand Down
8 changes: 4 additions & 4 deletions llvm/test/Object/AArch64/chained-fixups-header.test
Original file line number Diff line number Diff line change
@@ -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)
9 changes: 9 additions & 0 deletions llvm/test/tools/llvm-objdump/MachO/dyld-info.test
Original file line number Diff line number Diff line change
@@ -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:
6 changes: 0 additions & 6 deletions llvm/test/tools/llvm-objdump/MachO/dyld_info.test

This file was deleted.

2 changes: 1 addition & 1 deletion llvm/tools/llvm-objdump/ObjdumpOpts.td
Original file line number Diff line number Diff line change
Expand Up @@ -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)">,
Expand Down
3 changes: 2 additions & 1 deletion llvm/tools/llvm-objdump/OtoolOpts.td
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions llvm/tools/llvm-objdump/llvm-objdump.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand Down

0 comments on commit 1642667

Please sign in to comment.