Skip to content

Commit 1fc2a47

Browse files
committed
Add support for openSUSE RISC-V triple
Reviewers: asb Reviewed By: asb Subscribers: lenary, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, zzheng, edward-jones, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, lebedev.ri, kito-cheng, shiva0217, rogfer01, dexonsmith, rkruppe, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D63497 Patch by Andreas Schwab (schwab) llvm-svn: 367565
1 parent 5a3bb1a commit 1fc2a47

File tree

8 files changed

+28
-1
lines changed

8 files changed

+28
-1
lines changed

clang/lib/Driver/ToolChains/Gnu.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2017,7 +2017,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
20172017
static const char *const RISCV64LibDirs[] = {"/lib64", "/lib"};
20182018
static const char *const RISCV64Triples[] = {"riscv64-unknown-linux-gnu",
20192019
"riscv64-linux-gnu",
2020-
"riscv64-unknown-elf"};
2020+
"riscv64-unknown-elf",
2021+
"riscv64-suse-linux"};
20212022

20222023
static const char *const SPARCv8LibDirs[] = {"/lib32", "/lib"};
20232024
static const char *const SPARCv8Triples[] = {"sparc-linux-gnu",

clang/test/Driver/Inputs/opensuse_tumbleweed_riscv64_tree/usr/lib64/crt1.o

Whitespace-only changes.

clang/test/Driver/Inputs/opensuse_tumbleweed_riscv64_tree/usr/lib64/crti.o

Whitespace-only changes.

clang/test/Driver/Inputs/opensuse_tumbleweed_riscv64_tree/usr/lib64/crtn.o

Whitespace-only changes.

clang/test/Driver/Inputs/opensuse_tumbleweed_riscv64_tree/usr/lib64/gcc/riscv64-suse-linux/9/crtbegin.o

Whitespace-only changes.

clang/test/Driver/Inputs/opensuse_tumbleweed_riscv64_tree/usr/lib64/gcc/riscv64-suse-linux/9/crtend.o

Whitespace-only changes.

clang/test/Driver/linux-ld.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,26 @@
859859
// CHECK-OPENSUSE-TW-ARMV7HL: "{{.*}}/usr/lib/gcc/armv7hl-suse-linux-gnueabi/5{{/|\\\\}}crtend.o"
860860
// CHECK-OPENSUSE-TW-ARMV7HL: "{{.*}}/usr/lib/gcc/armv7hl-suse-linux-gnueabi/5/../../../../lib{{/|\\\\}}crtn.o"
861861
//
862+
// Check openSUSE Tumbleweed on riscv64
863+
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
864+
// RUN: --target=riscv64-suse-linux -rtlib=platform \
865+
// RUN: --gcc-toolchain="" \
866+
// RUN: --sysroot=%S/Inputs/opensuse_tumbleweed_riscv64_tree \
867+
// RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-TW-RISCV64 %s
868+
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
869+
// RUN: --target=riscv64-suse-linux -rtlib=platform \
870+
// RUN: --gcc-toolchain="" \
871+
// RUN: --sysroot=%S/Inputs/opensuse_tumbleweed_riscv64_tree \
872+
// RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-TW-RISCV64 %s
873+
// CHECK-OPENSUSE-TW-RISCV64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
874+
// CHECK-OPENSUSE-TW-RISCV64: "{{.*}}/usr/lib64/gcc/riscv64-suse-linux/9/../../../../lib64{{/|\\\\}}crt1.o"
875+
// CHECK-OPENSUSE-TW-RISCV64: "{{.*}}/usr/lib64/gcc/riscv64-suse-linux/9/../../../../lib64{{/|\\\\}}crti.o"
876+
// CHECK-OPENSUSE-TW-RISCV64: "{{.*}}/usr/lib64/gcc/riscv64-suse-linux/9{{/|\\\\}}crtbegin.o"
877+
// CHECK-OPENSUSE-TW-RISCV64: "-L[[SYSROOT]]/usr/lib64/gcc/riscv64-suse-linux/9"
878+
// CHECK-OPENSUSE-TW-RISCV64: "-L[[SYSROOT]]/usr/lib64/gcc/riscv64-suse-linux/9/../../../../lib64"
879+
// CHECK-OPENSUSE-TW-RISCV64: "{{.*}}/usr/lib64/gcc/riscv64-suse-linux/9{{/|\\\\}}crtend.o"
880+
// CHECK-OPENSUSE-TW-RISCV64: "{{.*}}/usr/lib64/gcc/riscv64-suse-linux/9/../../../../lib64{{/|\\\\}}crtn.o"
881+
//
862882
// Check dynamic-linker for different archs
863883
// RUN: %clang %s -### -o %t.o 2>&1 \
864884
// RUN: --target=arm-linux-gnueabi \

llvm/unittests/ADT/TripleTest.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,12 @@ TEST(TripleTest, ParsedIDs) {
330330
EXPECT_EQ(Triple::FreeBSD, T.getOS());
331331
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
332332

333+
T = Triple("riscv64-suse-linux");
334+
EXPECT_EQ(Triple::riscv64, T.getArch());
335+
EXPECT_EQ(Triple::SUSE, T.getVendor());
336+
EXPECT_EQ(Triple::Linux, T.getOS());
337+
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
338+
333339
T = Triple("armv7hl-suse-linux-gnueabi");
334340
EXPECT_EQ(Triple::arm, T.getArch());
335341
EXPECT_EQ(Triple::SUSE, T.getVendor());

0 commit comments

Comments
 (0)