119 lines · c
1// General tests that the driver handles combinations of --rtlib=XXX and2// --unwindlib=XXX properly.3//4// RUN: %clang -### %s 2>&1 \5// RUN: --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=platform \6// RUN: -resource-dir=%S/Inputs/resource_dir \7// RUN: | FileCheck --check-prefix=RTLIB-GCC %s8// RTLIB-GCC: "-lgcc"9// RTLIB-GCC-SAME: "--as-needed"10// RTLIB-GCC-SAME: "-lgcc_s"11// RTLIB-GCC-SAME: "--no-as-needed"12//13// RUN: %clangxx -### %s 2>&1 \14// RUN: --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=platform \15// RUN: -resource-dir=%S/Inputs/resource_dir \16// RUN: | FileCheck --check-prefix=RTLIB-GXX %s17// RTLIB-GXX: "-lgcc"18// RTLIB-GXX-NOT: "--as-needed"19// RTLIB-GXX-SAME: "-lgcc_s"20// RTLIB-GXX-NOT: "--no-as-needed"21//22// RUN: not %clang -### %s 2>&1 \23// RUN: --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=libunwind \24// RUN: -resource-dir=%S/Inputs/resource_dir \25// RUN: | FileCheck --check-prefix=RTLIB-GCC-UNWINDLIB-COMPILER-RT %s26// RUN: not %clangxx -### %s 2>&1 \27// RUN: --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=libunwind \28// RUN: -resource-dir=%S/Inputs/resource_dir \29// RUN: | FileCheck --check-prefix=RTLIB-GCC-UNWINDLIB-COMPILER-RT %s30// RTLIB-GCC-UNWINDLIB-COMPILER-RT: "-lgcc"31// RTLIB-GCC-UNWINDLIB-COMPILER-RT-SAME: "--as-needed"32// RTLIB-GCC-UNWINDLIB-COMPILER-RT-SAME: "-lunwind"33// RTLIB-GCC-UNWINDLIB-COMPILER-RT-SAME: "--no-as-needed"34//35// RUN: not %clang -### %s 2>&1 \36// RUN: --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=libunwind \37// RUN: -shared-libgcc \38// RUN: -resource-dir=%S/Inputs/resource_dir \39// RUN: | FileCheck --check-prefix=RTLIB-GCC-SHARED-UNWINDLIB-COMPILER-RT %s40// RTLIB-GCC-SHARED-UNWINDLIB-COMPILER-RT: "-l:libunwind.so"41// RTLIB-GCC-SHARED-UNWINDLIB-COMPILER-RT-SAME: "-lgcc"42//43// RUN: not %clang -### %s 2>&1 \44// RUN: --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=libunwind \45// RUN: -static-libgcc \46// RUN: -resource-dir=%S/Inputs/resource_dir \47// RUN: | FileCheck --check-prefix=RTLIB-GCC-STATIC-UNWINDLIB-COMPILER-RT %s48// RTLIB-GCC-STATIC-UNWINDLIB-COMPILER-RT: "-lgcc"49// RTLIB-GCC-STATIC-UNWINDLIB-COMPILER-RT-SAME: "-l:libunwind.a"50//51// RUN: %clang -### %s 2>&1 \52// RUN: --target=x86_64-unknown-linux -rtlib=compiler-rt \53// RUN: -resource-dir=%S/Inputs/resource_dir \54// RUN: | FileCheck --check-prefix=RTLIB-COMPILER-RT %s55// RTLIB-COMPILER-RT: "{{.*}}libclang_rt.builtins.a"56//57// RUN: %clang -### %s 2>&1 \58// RUN: --target=x86_64-unknown-linux -rtlib=compiler-rt --unwindlib=libunwind \59// RUN: -resource-dir=%S/Inputs/resource_dir \60// RUN: | FileCheck --check-prefix=RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT %s61// RUN: %clangxx -### %s 2>&1 \62// RUN: --target=x86_64-unknown-linux -rtlib=compiler-rt --unwindlib=libunwind \63// RUN: -resource-dir=%S/Inputs/resource_dir \64// RUN: | FileCheck --check-prefix=RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT %s65// RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT: "{{.*}}libclang_rt.builtins.a"66// RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT-SAME: "--as-needed"67// RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT-SAME: "-lunwind"68// RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT-SAME: "--no-as-needed"69//70// RUN: %clang -### %s 2>&1 \71// RUN: --target=x86_64-unknown-linux -rtlib=compiler-rt --unwindlib=libgcc \72// RUN: -resource-dir=%S/Inputs/resource_dir \73// RUN: | FileCheck --check-prefix=RTLIB-COMPILER-RT-UNWINDLIB-GCC %s74// RTLIB-COMPILER-RT-UNWINDLIB-GCC: "{{.*}}libclang_rt.builtins.a"75// RTLIB-COMPILER-RT-UNWINDLIB-GCC-SAME: "-lgcc_s"76//77// RUN: %clang -### %s 2>&1 \78// RUN: --target=x86_64-unknown-linux -rtlib=compiler-rt --unwindlib=libgcc \79// RUN: -static -resource-dir=%S/Inputs/resource_dir \80// RUN: | FileCheck --check-prefix=RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC %s81// RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC: "{{.*}}libclang_rt.builtins.a"82// RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC-SAME: "-lgcc_eh"83//84// RUN: not %clang %s 2> %t.err \85// RUN: --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=libunwind \86// RUN: -resource-dir=%S/Inputs/resource_dir \87// RUN: FileCheck --input-file=%t.err --check-prefix=RTLIB-GCC-UNWINDLIB-COMPILER_RT %s88// RTLIB-GCC-UNWINDLIB-COMPILER_RT: "{{[.|\\\n]*}}--rtlib=libgcc requires --unwindlib=libgcc"89//90// RUN: %clang -### %s 2>&1 \91// RUN: --target=x86_64-pc-windows-msvc -rtlib=compiler-rt --unwindlib=libunwind \92// RUN: -resource-dir=%S/Inputs/resource_dir \93// RUN: | FileCheck --check-prefix=MSVC-RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT %s94// MSVC-RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT: "{{.*}}clang_rt.builtins-x86_64.lib"95// MSVC-RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT-NOT: "{{.*}}unwind.lib"96//97// RUN: %clang -### %s 2>&1 \98// RUN: --target=x86_64-w64-mingw32 -rtlib=compiler-rt --unwindlib=libunwind \99// RUN: -shared-libgcc \100// RUN: | FileCheck --check-prefix=MINGW-RTLIB-COMPILER-RT-SHARED-UNWINDLIB-COMPILER-RT %s101// MINGW-RTLIB-COMPILER-RT-SHARED-UNWINDLIB-COMPILER-RT: "{{.*}}libclang_rt.builtins.a"102// MINGW-RTLIB-COMPILER-RT-SHARED-UNWINDLIB-COMPILER-RT-SAME: "-l:libunwind.dll.a"103//104// RUN: %clang -### %s 2>&1 \105// RUN: --target=x86_64-w64-mingw32 -rtlib=compiler-rt --unwindlib=libunwind \106// RUN: -static-libgcc \107// RUN: | FileCheck --check-prefix=MINGW-RTLIB-COMPILER-RT-STATIC-UNWINDLIB-COMPILER-RT %s108// MINGW-RTLIB-COMPILER-RT-STATIC-UNWINDLIB-COMPILER-RT: "{{.*}}libclang_rt.builtins.a"109// MINGW-RTLIB-COMPILER-RT-STATIC-UNWINDLIB-COMPILER-RT-SAME: "-l:libunwind.a"110//111// RUN: %clang -### %s 2>&1 \112// RUN: --target=x86_64-w64-mingw32 -rtlib=compiler-rt --unwindlib=libunwind \113// RUN: | FileCheck --check-prefix=MINGW-RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT %s114// RUN: %clangxx -### %s 2>&1 \115// RUN: --target=x86_64-w64-mingw32 -rtlib=compiler-rt --unwindlib=libunwind \116// RUN: | FileCheck --check-prefix=MINGW-RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT %s117// MINGW-RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT: "{{.*}}libclang_rt.builtins.a"118// MINGW-RTLIB-COMPILER-RT-UNWINDLIB-COMPILER-RT-SAME: "-lunwind"119