diff options
| author | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2020-01-03 14:50:19 -0800 |
|---|---|---|
| committer | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2020-01-03 17:02:10 -0800 |
| commit | c8ab40ca0e760b50cc789b7a9d2de8d9eeebd261 (patch) | |
| tree | 37ac0ae0780c585f2ac67fc7265ecae4b5991d0a /llvm/test/tools | |
| parent | 6c87623615b3befdf62e3a5cd6c408a698f1c2d9 (diff) | |
| download | bcm5719-llvm-c8ab40ca0e760b50cc789b7a9d2de8d9eeebd261.tar.gz bcm5719-llvm-c8ab40ca0e760b50cc789b7a9d2de8d9eeebd261.zip | |
[Remarks] Warn if a remark file is not found when processing static archives
Static archives contain object files which contain sections pointing to
external remark files.
When static archives are shipped without the remark files, dsymutil
shouldn't generate an error.
Instead, generate a warning to inform the user that remarks for that
library won't be available in the .dSYM.
Diffstat (limited to 'llvm/test/tools')
| -rw-r--r-- | llvm/test/tools/dsymutil/Inputs/basic1.c | 4 | ||||
| -rwxr-xr-x | llvm/test/tools/dsymutil/Inputs/remarks/basic.macho.remarks.archive.x86_64 | bin | 0 -> 9320 bytes | |||
| -rw-r--r-- | llvm/test/tools/dsymutil/Inputs/remarks/libbasic.a | bin | 0 -> 9152 bytes | |||
| -rw-r--r-- | llvm/test/tools/dsymutil/X86/remarks-linking-archive.text | 43 |
4 files changed, 47 insertions, 0 deletions
diff --git a/llvm/test/tools/dsymutil/Inputs/basic1.c b/llvm/test/tools/dsymutil/Inputs/basic1.c index 20292069f5f..af96081ded9 100644 --- a/llvm/test/tools/dsymutil/Inputs/basic1.c +++ b/llvm/test/tools/dsymutil/Inputs/basic1.c @@ -26,6 +26,10 @@ done clang basic1.macho.remarks.x86_64.o basic2.macho.remarks.x86_64.o basic3.macho.remarks.x86_64.o -o basic.macho.remarks.x86_64 -Wl,-dead_strip + Remarks archive compilation (after remarks compilation): + ar -q libbasic.a basic1.macho.x86_64.o basic2.macho.x86_64.o basic3.macho.x86_64.o + clang -lbasic -L. -o basic.macho.remarks.archive.x86_64 -Wl,-dead_strip + */ int foo(int); diff --git a/llvm/test/tools/dsymutil/Inputs/remarks/basic.macho.remarks.archive.x86_64 b/llvm/test/tools/dsymutil/Inputs/remarks/basic.macho.remarks.archive.x86_64 Binary files differnew file mode 100755 index 00000000000..f4ab141d1a0 --- /dev/null +++ b/llvm/test/tools/dsymutil/Inputs/remarks/basic.macho.remarks.archive.x86_64 diff --git a/llvm/test/tools/dsymutil/Inputs/remarks/libbasic.a b/llvm/test/tools/dsymutil/Inputs/remarks/libbasic.a Binary files differnew file mode 100644 index 00000000000..c6b1dde9cce --- /dev/null +++ b/llvm/test/tools/dsymutil/Inputs/remarks/libbasic.a diff --git a/llvm/test/tools/dsymutil/X86/remarks-linking-archive.text b/llvm/test/tools/dsymutil/X86/remarks-linking-archive.text new file mode 100644 index 00000000000..117349c7839 --- /dev/null +++ b/llvm/test/tools/dsymutil/X86/remarks-linking-archive.text @@ -0,0 +1,43 @@ +RUN: rm -rf %t +RUN: mkdir -p %t +RUN: cat %p/../Inputs/remarks/basic.macho.remarks.archive.x86_64 > %t/basic.macho.remarks.archive.x86_64 + +RUN: dsymutil -oso-prepend-path=%p/../Inputs -remarks-prepend-path=%p/../Inputs %t/basic.macho.remarks.archive.x86_64 + +Check that the remark file in the bundle exists and is sane: +RUN: llvm-bcanalyzer -dump %t/basic.macho.remarks.archive.x86_64.dSYM/Contents/Resources/Remarks/basic.macho.remarks.archive.x86_64 | FileCheck %s + +Check that we don't error if we're missing remark files from an archive, but we warn instead. +Instead of creating a new binary, just remove the remarks prepend path. +RUN: dsymutil -oso-prepend-path=%p/../Inputs %t/basic.macho.remarks.archive.x86_64 2>&1 | FileCheck %s --check-prefix=CHECK-MISSING + +CHECK: <Meta +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK: <Remark Num +CHECK-NOT: <Remark Num + +CHECK-MISSING: warning: '/remarks/basic1.macho.remarks.x86_64.opt.bitstream': No such file or directory +CHECK-MISSING-NEXT: note: while processing {{.*}}libbasic.a(basic1.macho.remarks.x86_64.o) +CHECK-MISSING-NEXT: warning: '/remarks/basic2.macho.remarks.x86_64.opt.bitstream': No such file or directory +CHECK-MISSING-NEXT: note: while processing {{.*}}libbasic.a(basic2.macho.remarks.x86_64.o) +CHECK-MISSING-NEXT: warning: '/remarks/basic3.macho.remarks.x86_64.opt.bitstream': No such file or directory +CHECK-MISSING-NEXT: note: while processing {{.*}}libbasic.a(basic3.macho.remarks.x86_64.o) |

