Index: docs/CommandGuide/dsymutil.rst =================================================================== --- docs/CommandGuide/dsymutil.rst +++ docs/CommandGuide/dsymutil.rst @@ -35,6 +35,13 @@ 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. Index: test/tools/dsymutil/X86/minimize.test =================================================================== --- /dev/null +++ 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 Index: test/tools/dsymutil/cmdline.test =================================================================== --- test/tools/dsymutil/cmdline.test +++ test/tools/dsymutil/cmdline.test @@ -6,6 +6,7 @@ HELP: -arch= HELP: -dump-debug-map HELP: -flat +HELP: -minimize HELP: -no-odr HELP: -no-output HELP: -no-swiftmodule-timestamp Index: tools/dsymutil/dsymutil.cpp =================================================================== --- tools/dsymutil/dsymutil.cpp +++ tools/dsymutil/dsymutil.cpp @@ -75,6 +75,15 @@ init(false), cat(DsymCategory)); static alias FlatOutA("f", desc("Alias for --flat"), aliasopt(FlatOut)); +static opt 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 NumThreads( "num-threads", desc("Specifies the maximum number (n) of simultaneous threads to use\n" @@ -302,6 +311,7 @@ Options.Verbose = Verbose; Options.NoOutput = NoOutput; Options.NoODR = NoODR; + Options.Minimize = Minimize; Options.NoTimestamp = NoTimestamp; Options.PrependPath = OsoPrependPath;