summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/docs/CommandGuide/dsymutil.rst4
-rw-r--r--llvm/test/tools/dsymutil/X86/darwin-bundle.test7
-rw-r--r--llvm/test/tools/dsymutil/cmdline.test1
-rw-r--r--llvm/tools/dsymutil/dsymutil.cpp13
4 files changed, 22 insertions, 3 deletions
diff --git a/llvm/docs/CommandGuide/dsymutil.rst b/llvm/docs/CommandGuide/dsymutil.rst
index 2782da3c302..a89ee187922 100644
--- a/llvm/docs/CommandGuide/dsymutil.rst
+++ b/llvm/docs/CommandGuide/dsymutil.rst
@@ -74,6 +74,10 @@ OPTIONS
Dumps the symbol table found in *executable* or object file(s) and exits.
+.. option:: --toolchain
+
+ Embed the toolchain in the dSYM bundle's property list.
+
.. option:: -u, --update
Update an existing dSYM file to contain the latest accelerator tables and
diff --git a/llvm/test/tools/dsymutil/X86/darwin-bundle.test b/llvm/test/tools/dsymutil/X86/darwin-bundle.test
index b49cdeab858..59434c5e6d9 100644
--- a/llvm/test/tools/dsymutil/X86/darwin-bundle.test
+++ b/llvm/test/tools/dsymutil/X86/darwin-bundle.test
@@ -8,6 +8,9 @@ RUN: cat %p/../Inputs/Info.plist > %t/Info.plist
RUN: llvm-dsymutil -oso-prepend-path=%p/.. %t/basic.macho.x86_64 -o %t/dsymdest/basic.macho.x86_64.dSYM
RUN: FileCheck %s --input-file %t/dsymdest/basic.macho.x86_64.dSYM/Contents/Info.plist
+RUN: llvm-dsymutil -oso-prepend-path=%p/.. %t/basic.macho.x86_64 -toolchain "toolchain" -o %t/dsymdest/basic.macho.x86_64.dSYM
+RUN: FileCheck %s --input-file %t/dsymdest/basic.macho.x86_64.dSYM/Contents/Info.plist --check-prefix=CHECK --check-prefix=TOOLCHAIN
+
CHECK: <?xml version="1.0" encoding="UTF-8"?>
CHECK-NEXT: <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
CHECK-NEXT: <plist version="1.0">
@@ -26,5 +29,7 @@ CHECK-NEXT: <key>CFBundleShortVersionString</key>
CHECK-NEXT: <string>2.0</string>
CHECK-NEXT: <key>CFBundleVersion</key>
CHECK-NEXT: <string>2</string>
-CHECK-NEXT: </dict>
+TOOLCHAIN: <key>Toolchain</key>
+TOOLCHAIN-NEXT: <string>toolchain</string>
+CHECK: </dict>
CHECK-NEXT: </plist>
diff --git a/llvm/test/tools/dsymutil/cmdline.test b/llvm/test/tools/dsymutil/cmdline.test
index d246a14d32e..c45aa676650 100644
--- a/llvm/test/tools/dsymutil/cmdline.test
+++ b/llvm/test/tools/dsymutil/cmdline.test
@@ -14,6 +14,7 @@ HELP: -num-threads=<n>
HELP: -o=<filename>
HELP: -oso-prepend-path=<path>
HELP: -symtab
+HELP: -toolchain
HELP: -update
HELP: -verbose
HELP: -verify
diff --git a/llvm/tools/dsymutil/dsymutil.cpp b/llvm/tools/dsymutil/dsymutil.cpp
index adc2e859438..bbde2094f02 100644
--- a/llvm/tools/dsymutil/dsymutil.cpp
+++ b/llvm/tools/dsymutil/dsymutil.cpp
@@ -142,6 +142,10 @@ static opt<bool> InputIsYAMLDebugMap(
static opt<bool> Verify("verify", desc("Verify the linked DWARF debug info."),
cat(DsymCategory));
+static opt<std::string>
+ Toolchain("toolchain", desc("Embed toolchain information in dSYM bundle."),
+ cat(DsymCategory));
+
static bool createPlistFile(llvm::StringRef Bin, llvm::StringRef BundleRoot) {
if (NoOutput)
return true;
@@ -189,8 +193,13 @@ static bool createPlistFile(llvm::StringRef Bin, llvm::StringRef BundleRoot) {
<< "\t\t<string>" << BI.ShortVersionStr << "</string>\n";
PL << "\t\t<key>CFBundleVersion</key>\n"
- << "\t\t<string>" << BI.VersionStr << "</string>\n"
- << "\t</dict>\n"
+ << "\t\t<string>" << BI.VersionStr << "</string>\n";
+
+ if (!Toolchain.empty())
+ PL << "\t\t<key>Toolchain</key>\n"
+ << "\t\t<string>" << Toolchain << "</string>\n";
+
+ PL << "\t</dict>\n"
<< "</plist>\n";
PL.close();
OpenPOWER on IntegriCloud