Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add --unwindlib=[libgcc|compiler-rt] to parallel --rtlib= [take 2]
"clang++ hello.cc --rtlib=compiler-rt" now can works without specifying additional unwind or exception handling libraries. This reworked version of the feature no longer modifies today's default unwind library for compiler-rt: which is nothing. Rather, a user can specify -DCLANG_DEFAULT_UNWINDLIB=libunwind when configuring the compiler. This should address the issues from the previous version. Update tests for new --unwindlib semantics. Differential Revision: https://reviews.llvm.org/D59109 llvm-svn: 356508
- Loading branch information
1 parent
7742391
commit 6271606
Showing
8 changed files
with
186 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
// General tests that the driver handles combinations of --rtlib=XXX and | ||
// --unwindlib=XXX properly. | ||
// | ||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ | ||
// RUN: --target=x86_64-unknown-linux \ | ||
// RUN: --gcc-toolchain="" \ | ||
// RUN: | FileCheck --check-prefix=RTLIB-EMPTY %s | ||
// RTLIB-EMPTY: "{{.*}}lgcc" | ||
// RTLIB-EMPTY: "{{.*}}-lgcc_s" | ||
// | ||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ | ||
// RUN: --target=x86_64-unknown-linux -rtlib=libgcc \ | ||
// RUN: --gcc-toolchain="" \ | ||
// RUN: | FileCheck --check-prefix=RTLIB-GCC %s | ||
// RTLIB-GCC: "{{.*}}lgcc" | ||
// RTLIB-GCC: "{{.*}}lgcc_s" | ||
// | ||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ | ||
// RUN: --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=libunwind \ | ||
// RUN: --gcc-toolchain="" \ | ||
// RUN: | FileCheck --check-prefix=RTLIB-GCC-UNWINDLIB-COMPILER-RT %s | ||
// RTLIB-GCC-UNWINDLIB-COMPILER-RT: "{{.*}}lgcc" | ||
// RTLIB-GCC-UNWINDLIB-COMPILER-RT: "{{.*}}lunwind" | ||
// | ||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ | ||
// RUN: --target=x86_64-unknown-linux -rtlib=compiler-rt \ | ||
// RUN: --gcc-toolchain="" \ | ||
// RUN: | FileCheck --check-prefix=RTLIB-COMPILER-RT %s | ||
// RTLIB-COMPILER-RT: "{{.*}}libclang_rt.builtins-x86_64.a" | ||
// | ||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ | ||
// RUN: --target=x86_64-unknown-linux -rtlib=compiler-rt --unwindlib=libgcc \ | ||
// RUN: --gcc-toolchain="" \ | ||
// RUN: | FileCheck --check-prefix=RTLIB-COMPILER-RT-UNWINDLIB-GCC %s | ||
// RTLIB-COMPILER-RT-UNWINDLIB-GCC: "{{.*}}libclang_rt.builtins-x86_64.a" | ||
// RTLIB-COMPILER-RT-UNWINDLIB-GCC: "{{.*}}lgcc_s" | ||
// | ||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ | ||
// RUN: --target=x86_64-unknown-linux -rtlib=compiler-rt --unwindlib=libgcc \ | ||
// RUN: -static --gcc-toolchain="" \ | ||
// RUN: | FileCheck --check-prefix=RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC %s | ||
// RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC: "{{.*}}libclang_rt.builtins-x86_64.a" | ||
// RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC: "{{.*}}lgcc_eh" | ||
// | ||
// RUN: not %clang -no-canonical-prefixes %s -o %t.o 2> %t.err \ | ||
// RUN: --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=libunwind \ | ||
// RUN: --gcc-toolchain="" \ | ||
// RUN: FileCheck --input-file=%t.err --check-prefix=RTLIB-GCC-UNWINDLIB-COMPILER_RT %s | ||
// RTLIB-GCC-UNWINDLIB-COMPILER_RT: "{{[.|\\\n]*}}--rtlib=libgcc requires --unwindlib=libgcc" |