| // UNSUPPORTED: system-windows |
| // REQUIRES: riscv-registered-target |
| // RUN: %clang -target riscv64be-unknown-elf -### %s 2>&1 \ |
| // RUN: | FileCheck %s |
| // RUN: %clang -target riscv64be-unknown-elf -Wno-riscv-be-experimental -### %s 2>&1 \ |
| // RUN: | FileCheck %s --check-prefix=NOWARN |
| |
| // CHECK: warning: big-endian RISC-V target support is experimental |
| // CHECK: "-triple" "riscv64be-unknown-unknown-elf" |
| // NOWARN-NOT: warning: big-endian RISC-V target support is experimental |
| // NOWARN: "-triple" "riscv64be-unknown-unknown-elf" |
| |
| /// Test dynamic linker for big-endian RISC-V Linux targets |
| // RUN: %clang -### %s --target=riscv64be-unknown-linux-gnu \ |
| // RUN: -Wno-riscv-be-experimental --rtlib=platform --unwindlib=platform -mabi=lp64d 2>&1 \ |
| // RUN: | FileCheck -check-prefix=RV64BE-LINUX-LP64D %s |
| // RV64BE-LINUX-LP64D: "-dynamic-linker" "/lib/ld-linux-riscv64be-lp64d.so.1" |
| |
| // RUN: %clang -### %s --target=riscv64be-unknown-linux-gnu \ |
| // RUN: -Wno-riscv-be-experimental --rtlib=platform --unwindlib=platform -mabi=lp64 2>&1 \ |
| // RUN: | FileCheck -check-prefix=RV64BE-LINUX-LP64 %s |
| // RV64BE-LINUX-LP64: "-dynamic-linker" "/lib/ld-linux-riscv64be-lp64.so.1" |
| |
| // RUN: %clang -### %s --target=riscv32be-unknown-linux-gnu \ |
| // RUN: -Wno-riscv-be-experimental --rtlib=platform --unwindlib=platform -mabi=ilp32d 2>&1 \ |
| // RUN: | FileCheck -check-prefix=RV32BE-LINUX-ILP32D %s |
| // RV32BE-LINUX-ILP32D: "-dynamic-linker" "/lib/ld-linux-riscv32be-ilp32d.so.1" |
| |
| // RUN: %clang -### %s --target=riscv32be-unknown-linux-gnu \ |
| // RUN: -Wno-riscv-be-experimental --rtlib=platform --unwindlib=platform -mabi=ilp32 2>&1 \ |
| // RUN: | FileCheck -check-prefix=RV32BE-LINUX-ILP32 %s |
| // RV32BE-LINUX-ILP32: "-dynamic-linker" "/lib/ld-linux-riscv32be-ilp32.so.1" |
| |
| /// Test big-endian RISC-V GCC multilib directory layout |
| // RUN: env "PATH=" %clang -### %s -fuse-ld= -no-pie \ |
| // RUN: --target=riscv64be-unknown-linux-gnu --rtlib=platform --unwindlib=platform -mabi=lp64 \ |
| // RUN: -Wno-riscv-be-experimental \ |
| // RUN: --gcc-toolchain=%S/Inputs/multilib_riscv_linux_sdk_be \ |
| // RUN: --sysroot=%S/Inputs/multilib_riscv_linux_sdk_be/sysroot 2>&1 \ |
| // RUN: | FileCheck -check-prefix=C-RV64BE-LINUX-MULTI-LP64 %s |
| |
| // C-RV64BE-LINUX-MULTI-LP64: "{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/../../../../riscv64be-unknown-linux-gnu/bin/ld" |
| // C-RV64BE-LINUX-MULTI-LP64: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot" |
| // C-RV64BE-LINUX-MULTI-LP64: "-m" "elf64briscv" "-X" |
| // C-RV64BE-LINUX-MULTI-LP64: "-dynamic-linker" "/lib/ld-linux-riscv64be-lp64.so.1" |
| // C-RV64BE-LINUX-MULTI-LP64: "{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64/crtbegin.o" |
| // C-RV64BE-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64" |
| // C-RV64BE-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib64/lp64" |
| // C-RV64BE-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib64/lp64" |
| |
| // RUN: env "PATH=" %clang -### %s -fuse-ld= -no-pie \ |
| // RUN: --target=riscv64be-unknown-linux-gnu --rtlib=platform --unwindlib=platform -march=rv64imafd \ |
| // RUN: -Wno-riscv-be-experimental \ |
| // RUN: --gcc-toolchain=%S/Inputs/multilib_riscv_linux_sdk_be \ |
| // RUN: --sysroot=%S/Inputs/multilib_riscv_linux_sdk_be/sysroot 2>&1 \ |
| // RUN: | FileCheck -check-prefix=C-RV64BE-LINUX-MULTI-LP64D %s |
| |
| // C-RV64BE-LINUX-MULTI-LP64D: "{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/../../../../riscv64be-unknown-linux-gnu/bin/ld" |
| // C-RV64BE-LINUX-MULTI-LP64D: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot" |
| // C-RV64BE-LINUX-MULTI-LP64D: "-m" "elf64briscv" |
| // C-RV64BE-LINUX-MULTI-LP64D: "-dynamic-linker" "/lib/ld-linux-riscv64be-lp64d.so.1" |
| // C-RV64BE-LINUX-MULTI-LP64D: "{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64d/crtbegin.o" |
| // C-RV64BE-LINUX-MULTI-LP64D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64d" |
| // C-RV64BE-LINUX-MULTI-LP64D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib64/lp64d" |
| // C-RV64BE-LINUX-MULTI-LP64D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib64/lp64d" |
| |
| // RUN: env "PATH=" %clang -### %s -fuse-ld= -no-pie \ |
| // RUN: --target=riscv32be-unknown-linux-gnu --rtlib=platform --unwindlib=platform -mabi=ilp32 \ |
| // RUN: -Wno-riscv-be-experimental \ |
| // RUN: --gcc-toolchain=%S/Inputs/multilib_riscv_linux_sdk_be \ |
| // RUN: --sysroot=%S/Inputs/multilib_riscv_linux_sdk_be/sysroot 2>&1 \ |
| // RUN: | FileCheck -check-prefix=C-RV32BE-LINUX-MULTI-ILP32 %s |
| |
| // C-RV32BE-LINUX-MULTI-ILP32: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot" |
| // C-RV32BE-LINUX-MULTI-ILP32: "-m" "elf32briscv" "-X" |
| // C-RV32BE-LINUX-MULTI-ILP32: "-dynamic-linker" "/lib/ld-linux-riscv32be-ilp32.so.1" |
| // C-RV32BE-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib32/ilp32" |
| // C-RV32BE-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib32/ilp32" |
| |
| // RUN: env "PATH=" %clang -### %s -fuse-ld= -no-pie \ |
| // RUN: --target=riscv32be-unknown-linux-gnu --rtlib=platform --unwindlib=platform -march=rv32imafd \ |
| // RUN: -Wno-riscv-be-experimental \ |
| // RUN: --gcc-toolchain=%S/Inputs/multilib_riscv_linux_sdk_be \ |
| // RUN: --sysroot=%S/Inputs/multilib_riscv_linux_sdk_be/sysroot 2>&1 \ |
| // RUN: | FileCheck -check-prefix=C-RV32BE-LINUX-MULTI-ILP32D %s |
| |
| // C-RV32BE-LINUX-MULTI-ILP32D: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot" |
| // C-RV32BE-LINUX-MULTI-ILP32D: "-m" "elf32briscv" |
| // C-RV32BE-LINUX-MULTI-ILP32D: "-dynamic-linker" "/lib/ld-linux-riscv32be-ilp32d.so.1" |
| // C-RV32BE-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib32/ilp32d" |
| // C-RV32BE-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib32/ilp32d" |
| |
| int foo(void) { |
| return 0; |
| } |