diff options
Diffstat (limited to 'llvm')
13 files changed, 31 insertions, 21 deletions
diff --git a/llvm/test/tools/dsymutil/ARM/fat-arch-not-found.test b/llvm/test/tools/dsymutil/ARM/fat-arch-not-found.test index 89b518cd16f..e15d9b69b5f 100644 --- a/llvm/test/tools/dsymutil/ARM/fat-arch-not-found.test +++ b/llvm/test/tools/dsymutil/ARM/fat-arch-not-found.test @@ -1,5 +1,5 @@ # REQUIRES: object-emission -# RUN: llvm-dsymutil -oso-prepend-path=%p/../Inputs -y %s -o - 2>&1 | FileCheck %s +# RUN: llvm-dsymutil -f -oso-prepend-path=%p/../Inputs -y %s -o - 2>&1 | FileCheck %s --- triple: 'armv7-apple-darwin' diff --git a/llvm/test/tools/dsymutil/X86/basic-linking-x86.test b/llvm/test/tools/dsymutil/X86/basic-linking-x86.test index 19b4e3bef66..b92faa4cf03 100644 --- a/llvm/test/tools/dsymutil/X86/basic-linking-x86.test +++ b/llvm/test/tools/dsymutil/X86/basic-linking-x86.test @@ -1,13 +1,13 @@ REQUIRES: shell RUN: cat %p/../Inputs/basic.macho.x86_64 > %t1 -RUN: llvm-dsymutil -oso-prepend-path=%p/.. %t1 +RUN: llvm-dsymutil -f -oso-prepend-path=%p/.. %t1 RUN: llvm-dwarfdump %t1.dwarf | FileCheck %s -RUN: llvm-dsymutil -o %t2 -oso-prepend-path=%p/.. %p/../Inputs/basic.macho.x86_64 +RUN: llvm-dsymutil -f -o %t2 -oso-prepend-path=%p/.. %p/../Inputs/basic.macho.x86_64 RUN: llvm-dwarfdump %t2 | FileCheck %s -RUN: llvm-dsymutil -o - -oso-prepend-path=%p/.. %p/../Inputs/basic.macho.x86_64 | llvm-dwarfdump - | FileCheck %s --check-prefix=CHECK --check-prefix=BASIC -RUN: llvm-dsymutil -o - -oso-prepend-path=%p/.. %p/../Inputs/basic-archive.macho.x86_64 | llvm-dwarfdump - | FileCheck %s --check-prefix=CHECK --check-prefix=ARCHIVE -RUN: llvm-dsymutil -dump-debug-map -oso-prepend-path=%p/.. %p/../Inputs/basic.macho.x86_64 | llvm-dsymutil -y -o - - | llvm-dwarfdump - | FileCheck %s --check-prefix=CHECK --check-prefix=BASIC -RUN: llvm-dsymutil -dump-debug-map -oso-prepend-path=%p/.. %p/../Inputs/basic-archive.macho.x86_64 | llvm-dsymutil -o - -y - | llvm-dwarfdump - | FileCheck %s --check-prefix=CHECK --check-prefix=ARCHIVE +RUN: llvm-dsymutil -f -o - -oso-prepend-path=%p/.. %p/../Inputs/basic.macho.x86_64 | llvm-dwarfdump - | FileCheck %s --check-prefix=CHECK --check-prefix=BASIC +RUN: llvm-dsymutil -f -o - -oso-prepend-path=%p/.. %p/../Inputs/basic-archive.macho.x86_64 | llvm-dwarfdump - | FileCheck %s --check-prefix=CHECK --check-prefix=ARCHIVE +RUN: llvm-dsymutil -dump-debug-map -oso-prepend-path=%p/.. %p/../Inputs/basic.macho.x86_64 | llvm-dsymutil -f -y -o - - | llvm-dwarfdump - | FileCheck %s --check-prefix=CHECK --check-prefix=BASIC +RUN: llvm-dsymutil -dump-debug-map -oso-prepend-path=%p/.. %p/../Inputs/basic-archive.macho.x86_64 | llvm-dsymutil -f -o - -y - | llvm-dwarfdump - | FileCheck %s --check-prefix=CHECK --check-prefix=ARCHIVE CHECK: file format Mach-O 64-bit x86-64 diff --git a/llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test b/llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test index ad3ba5a15b6..3c44cb6f5e0 100644 --- a/llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test +++ b/llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test @@ -1,5 +1,5 @@ REQUIRES: shell -RUN: llvm-dsymutil -o - -oso-prepend-path=%p/.. %p/../Inputs/basic-lto-dw4.macho.x86_64 | llvm-dwarfdump - | FileCheck %s +RUN: llvm-dsymutil -f -o - -oso-prepend-path=%p/.. %p/../Inputs/basic-lto-dw4.macho.x86_64 | llvm-dwarfdump - | FileCheck %s CHECK: file format Mach-O 64-bit x86-64 diff --git a/llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test b/llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test index 395234e9616..81744273c6b 100644 --- a/llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test +++ b/llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test @@ -1,6 +1,6 @@ REQUIRES: shell -RUN: llvm-dsymutil -o - -oso-prepend-path=%p/.. %p/../Inputs/basic-lto.macho.x86_64 | llvm-dwarfdump - | FileCheck %s -RUN: llvm-dsymutil -oso-prepend-path=%p/.. -dump-debug-map %p/../Inputs/basic-lto.macho.x86_64 | llvm-dsymutil -o - -y - | llvm-dwarfdump - | FileCheck %s +RUN: llvm-dsymutil -f -o - -oso-prepend-path=%p/.. %p/../Inputs/basic-lto.macho.x86_64 | llvm-dwarfdump - | FileCheck %s +RUN: llvm-dsymutil -oso-prepend-path=%p/.. -dump-debug-map %p/../Inputs/basic-lto.macho.x86_64 | llvm-dsymutil -f -o - -y - | llvm-dwarfdump - | FileCheck %s CHECK: file format Mach-O 64-bit x86-64 diff --git a/llvm/test/tools/dsymutil/X86/fat-archive-input-i386.test b/llvm/test/tools/dsymutil/X86/fat-archive-input-i386.test index 7f17ff48372..f4ea288768c 100644 --- a/llvm/test/tools/dsymutil/X86/fat-archive-input-i386.test +++ b/llvm/test/tools/dsymutil/X86/fat-archive-input-i386.test @@ -1,5 +1,5 @@ # REQUIRES: object-emission -# RUN: llvm-dsymutil -oso-prepend-path=%p/../Inputs -y %s -o - | llvm-dwarfdump -debug-dump=info - | FileCheck %s +# RUN: llvm-dsymutil -f -oso-prepend-path=%p/../Inputs -y %s -o - | llvm-dwarfdump -debug-dump=info - | FileCheck %s --- triple: 'i386-apple-darwin' diff --git a/llvm/test/tools/dsymutil/X86/fat-object-input-x86_64.test b/llvm/test/tools/dsymutil/X86/fat-object-input-x86_64.test index 489afece120..cdd5a4c08d9 100644 --- a/llvm/test/tools/dsymutil/X86/fat-object-input-x86_64.test +++ b/llvm/test/tools/dsymutil/X86/fat-object-input-x86_64.test @@ -1,5 +1,5 @@ # REQUIRES: object-emission -# RUN: llvm-dsymutil -oso-prepend-path=%p/../Inputs -y %s -o - | llvm-dwarfdump -debug-dump=info - | FileCheck %s +# RUN: llvm-dsymutil -f -oso-prepend-path=%p/../Inputs -y %s -o - | llvm-dwarfdump -debug-dump=info - | FileCheck %s --- triple: 'x86_64-apple-darwin' diff --git a/llvm/test/tools/dsymutil/X86/fat-object-input-x86_64h.test b/llvm/test/tools/dsymutil/X86/fat-object-input-x86_64h.test index f611f5516f5..53aed1ec444 100644 --- a/llvm/test/tools/dsymutil/X86/fat-object-input-x86_64h.test +++ b/llvm/test/tools/dsymutil/X86/fat-object-input-x86_64h.test @@ -1,5 +1,5 @@ # REQUIRES: object-emission -# RUN: llvm-dsymutil -oso-prepend-path=%p/../Inputs -y %s -o - | llvm-dwarfdump -debug-dump=info - | FileCheck %s +# RUN: llvm-dsymutil -f -oso-prepend-path=%p/../Inputs -y %s -o - | llvm-dwarfdump -debug-dump=info - | FileCheck %s --- triple: 'x86_64h-apple-darwin' diff --git a/llvm/test/tools/dsymutil/X86/frame-1.test b/llvm/test/tools/dsymutil/X86/frame-1.test index fed18122d00..27bc17d7598 100644 --- a/llvm/test/tools/dsymutil/X86/frame-1.test +++ b/llvm/test/tools/dsymutil/X86/frame-1.test @@ -2,7 +2,7 @@ # RUN: rm -rf %t # RUN: mkdir -p %t # RUN: llc -filetype=obj %p/../Inputs/frame-dw2.ll -o %t/frame-dw2.o -# RUN: llvm-dsymutil -oso-prepend-path=%t -y %s -o - | llvm-dwarfdump -debug-dump=frames - | FileCheck %s +# RUN: llvm-dsymutil -f -oso-prepend-path=%t -y %s -o - | llvm-dwarfdump -debug-dump=frames - | FileCheck %s # This test is meant to verify that identical CIEs will get reused # in the same file but also inbetween files. For this to happen, we diff --git a/llvm/test/tools/dsymutil/X86/frame-2.test b/llvm/test/tools/dsymutil/X86/frame-2.test index 92520290dad..89a7670f86f 100644 --- a/llvm/test/tools/dsymutil/X86/frame-2.test +++ b/llvm/test/tools/dsymutil/X86/frame-2.test @@ -3,7 +3,7 @@ # RUN: mkdir -p %t # RUN: llc -filetype=obj %p/../Inputs/frame-dw2.ll -o %t/frame-dw2.o # RUN: llc -filetype=obj %p/../Inputs/frame-dw4.ll -o %t/frame-dw4.o -# RUN: llvm-dsymutil -oso-prepend-path=%t -y %s -o - | llvm-dwarfdump -debug-dump=frames - | FileCheck %s +# RUN: llvm-dsymutil -f -oso-prepend-path=%t -y %s -o - | llvm-dwarfdump -debug-dump=frames - | FileCheck %s # Check the handling of multiple different CIEs. To have CIEs that # appear to be different, use a dwarf2 version of the file along with diff --git a/llvm/test/tools/dsymutil/X86/multiple-inputs.test b/llvm/test/tools/dsymutil/X86/multiple-inputs.test index a4055740e4d..97f6d6d155e 100644 --- a/llvm/test/tools/dsymutil/X86/multiple-inputs.test +++ b/llvm/test/tools/dsymutil/X86/multiple-inputs.test @@ -3,7 +3,7 @@ RUN: cat %p/../Inputs/basic.macho.x86_64 > %t1 RUN: cat %p/../Inputs/basic-archive.macho.x86_64 > %t2 RUN: cat %p/../Inputs/basic-lto.macho.x86_64 > %t3 RUN: cat %p/../Inputs/basic-lto-dw4.macho.x86_64 > %t4 -RUN: llvm-dsymutil -oso-prepend-path=%p/.. %t1 %t2 %t3 %t4 +RUN: llvm-dsymutil -f -oso-prepend-path=%p/.. %t1 %t2 %t3 %t4 RUN: llvm-dwarfdump %t1.dwarf \ RUN: | FileCheck %S/basic-linking-x86.test --check-prefix=CHECK --check-prefix=BASIC RUN: llvm-dwarfdump %t2.dwarf \ diff --git a/llvm/test/tools/dsymutil/X86/odr-1.test b/llvm/test/tools/dsymutil/X86/odr-1.test index 607cd054b19..f39c5cef122 100644 --- a/llvm/test/tools/dsymutil/X86/odr-1.test +++ b/llvm/test/tools/dsymutil/X86/odr-1.test @@ -8,8 +8,8 @@ # RUN: llc -filetype=obj %p/../Inputs/odr5.ll -o %t/odr5.o # RUN: llc -filetype=obj %p/../Inputs/odr6.ll -o %t/odr6.o # RUN: llc -filetype=obj %p/../Inputs/odr7.ll -o %t/odr7.o -# RUN: llvm-dsymutil -oso-prepend-path=%t -y %s -o - | llvm-dwarfdump -debug-dump=info - | FileCheck -check-prefix=ODR -check-prefix=CHECK %s -# RUN: llvm-dsymutil -oso-prepend-path=%t -y %s -no-odr -o - | llvm-dwarfdump -debug-dump=info - | FileCheck -check-prefix=NOODR -check-prefix=CHECK %s +# RUN: llvm-dsymutil -f -oso-prepend-path=%t -y %s -o - | llvm-dwarfdump -debug-dump=info - | FileCheck -check-prefix=ODR -check-prefix=CHECK %s +# RUN: llvm-dsymutil -f -oso-prepend-path=%t -y %s -no-odr -o - | llvm-dwarfdump -debug-dump=info - | FileCheck -check-prefix=NOODR -check-prefix=CHECK %s # Totally made up debug map to test ODR uniquing diff --git a/llvm/test/tools/dsymutil/fat-binary-output.test b/llvm/test/tools/dsymutil/fat-binary-output.test index 29d49041453..fafef14ebe9 100644 --- a/llvm/test/tools/dsymutil/fat-binary-output.test +++ b/llvm/test/tools/dsymutil/fat-binary-output.test @@ -1,4 +1,4 @@ -RUN: llvm-dsymutil -verbose -no-output %p/Inputs/fat-test.dylib -oso-prepend-path %p | FileCheck %s +RUN: llvm-dsymutil -f -verbose -no-output %p/Inputs/fat-test.dylib -oso-prepend-path %p | FileCheck %s This test doesn't produce any filesytstem output, we just look at the verbose log output. diff --git a/llvm/tools/dsymutil/dsymutil.cpp b/llvm/tools/dsymutil/dsymutil.cpp index cf5e6ed99a5..a609d1933de 100644 --- a/llvm/tools/dsymutil/dsymutil.cpp +++ b/llvm/tools/dsymutil/dsymutil.cpp @@ -47,6 +47,11 @@ static opt<std::string> OsoPrependPath( desc("Specify a directory to prepend to the paths of object files."), value_desc("path"), cat(DsymCategory)); +static opt<bool> FlatOut("flat", + desc("Produce a flat dSYM file (not a bundle)."), + init(false), cat(DsymCategory)); +static alias FlatOutA("f", desc("Alias for --flat"), aliasopt(FlatOut)); + static opt<bool> Verbose("verbose", desc("Verbosity level"), init(false), cat(DsymCategory)); @@ -156,8 +161,13 @@ int main(int argc, char **argv) { llvm::InitializeAllTargets(); llvm::InitializeAllAsmPrinters(); - if (InputFiles.size() > 1 && !OutputFileOpt.empty()) { - llvm::errs() << "error: cannot use -o with multiple inputs\n"; + if (!FlatOut && OutputFileOpt == "-") { + llvm::errs() << "error: cannot emit to standard output without --flat\n"; + return 1; + } + + if (InputFiles.size() > 1 && FlatOut && !OutputFileOpt.empty()) { + llvm::errs() << "error: cannot use -o with multiple inputs in flat mode\n"; return 1; } |