Skip to content

Commit

Permalink
[dsymutil] Enable -minimize feature.
Browse files Browse the repository at this point in the history
Passing -minimize to dsymutil prevents the emission of .debug_inlines,
.debug_pubnames, and .debug_pubtypes in favor of the Apple accelerator
tables.

The actual check in the DWARF linker was added in r323655. This patch
simply enables it.

Differential revision: https://reviews.llvm.org/D42688

llvm-svn: 323812
  • Loading branch information
JDevlieghere committed Jan 30, 2018
1 parent cc981d2 commit cca341b
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 0 deletions.
7 changes: 7 additions & 0 deletions llvm/docs/CommandGuide/dsymutil.rst
Expand Up @@ -35,6 +35,13 @@ OPTIONS
Produce a flat dSYM file. A ``.dwarf`` extension will be appended to the
executable name unless the output file is specified using the -o option.


.. option:: -z, --minimize

When used when creating a dSYM file, this option will suppress the emission of
the .debug_inlines, .debug_pubnames, and .debug_pubtypes sections since
dsymutil currently has better equivalents: .apple_names and .apple_types.

.. option:: --no-odr

Do not use ODR (One Definition Rule) for uniquing C++ types.
Expand Down
9 changes: 9 additions & 0 deletions llvm/test/tools/dsymutil/X86/minimize.test
@@ -0,0 +1,9 @@
RUN: llvm-dsymutil -f -o - -oso-prepend-path=%p/.. %p/../Inputs/basic.macho.x86_64 | llvm-readobj -sections - | FileCheck %s --check-prefix=FULL
RUN: llvm-dsymutil --minimize -f -o - -oso-prepend-path=%p/.. %p/../Inputs/basic.macho.x86_64 | llvm-readobj -sections - | FileCheck %s
RUN: llvm-dsymutil -z -f -o - -oso-prepend-path=%p/.. %p/../Inputs/basic.macho.x86_64 | llvm-readobj -sections - | FileCheck %s

FULL: Name: __debug_pubnames
FULL: Name: __debug_pubtypes

CHECK-NOT: Name: __debug_pubnames
CHECK-NOT: Name: __debug_pubtypes
1 change: 1 addition & 0 deletions llvm/test/tools/dsymutil/cmdline.test
Expand Up @@ -6,6 +6,7 @@ HELP: Specific Options:
HELP: -arch=<arch>
HELP: -dump-debug-map
HELP: -flat
HELP: -minimize
HELP: -no-odr
HELP: -no-output
HELP: -no-swiftmodule-timestamp
Expand Down
10 changes: 10 additions & 0 deletions llvm/tools/dsymutil/dsymutil.cpp
Expand Up @@ -75,6 +75,15 @@ static opt<bool> FlatOut("flat",
init(false), cat(DsymCategory));
static alias FlatOutA("f", desc("Alias for --flat"), aliasopt(FlatOut));

static opt<bool> Minimize(
"minimize",
desc("When used when creating a dSYM file, this option will suppress\n"
"the emission of the .debug_inlines, .debug_pubnames, and\n"
".debug_pubtypes sections since dsymutil currently has better\n"
"equivalents: .apple_names and .apple_types."),
init(false), cat(DsymCategory));
static alias MinimizeA("z", desc("Alias for --minimize"), aliasopt(Minimize));

static opt<unsigned> NumThreads(
"num-threads",
desc("Specifies the maximum number (n) of simultaneous threads to use\n"
Expand Down Expand Up @@ -302,6 +311,7 @@ int main(int argc, char **argv) {
Options.Verbose = Verbose;
Options.NoOutput = NoOutput;
Options.NoODR = NoODR;
Options.Minimize = Minimize;
Options.NoTimestamp = NoTimestamp;
Options.PrependPath = OsoPrependPath;

Expand Down

0 comments on commit cca341b

Please sign in to comment.