Browse Source

dubhe: clang: Update patch for llvm-project toolchain.

Signed-off-by: weiheng.cheng <weiheng.cheng@starfivetech.com>
weiheng.cheng 1 year ago
parent
commit
17b00eb321

+ 33 - 0
recipes-devtools/clang/clang/0007-set-clang-default-march-to-rv64gc.patch

@@ -0,0 +1,33 @@
+From bf362d8a818dee92a93c7062e9bfb0399746ef59 Mon Sep 17 00:00:00 2001
+From: "max.ma" <max.ma@starfivetech.com>
+Date: Sun, 9 Oct 2022 00:12:28 -0700
+Subject: [PATCH 7/8] set clang default march to rv64gc
+
+---
+ clang/lib/Driver/ToolChains/Arch/RISCV.cpp | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/clang/lib/Driver/ToolChains/Arch/RISCV.cpp b/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
+index 21a7cdf02291..9fe13fe2aec3 100644
+--- a/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
++++ b/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
+@@ -290,11 +290,10 @@ StringRef riscv::getRISCVArch(const llvm::opt::ArgList &Args,
+     else
+       return "rv32imafdc";
+   } else {
+-    //if (Triple.getOS() == llvm::Triple::UnknownOS)
+-    //  return "rv64imac";
+-    //else
+-    //  return "rv64imafdc";
+-    // align the default march with gcc toolchain of dubhe
+-    return "rv64imafdc_zba_zbb_zbc_zbs";  
++    if (Triple.getOS() == llvm::Triple::UnknownOS)
++      return "rv64imafdc";
++    else
++      //for dubhe linux toolchain, default is rv64gcb 
++      return "rv64imafdc_zba_zbb_zbc_zbs";
+   }
+ }
+-- 
+2.25.1
+

+ 61 - 0
recipes-devtools/clang/clang/0008-change-baremetal-multilib-directory-name-to-align-wi.patch

@@ -0,0 +1,61 @@
+From aaa51f4f755256f9a53b5bfba8054b135050dbeb Mon Sep 17 00:00:00 2001
+From: "max.ma" <max.ma@starfivetech.com>
+Date: Sun, 9 Oct 2022 00:19:02 -0700
+Subject: [PATCH 8/8] change baremetal multilib directory name to align with
+ gcc 12.1
+
+---
+ clang/lib/Driver/ToolChains/Gnu.cpp | 16 ++++++++++++++--
+ 1 file changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
+index 045f063b28f2..208671a4f962 100644
+--- a/clang/lib/Driver/ToolChains/Gnu.cpp
++++ b/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -1657,7 +1657,11 @@ static void findRISCVBareMetalMultilibs(const Driver &D,
+       {"rv32i", "ilp32"},     {"rv32im", "ilp32"},     {"rv32iac", "ilp32"},
+       {"rv32imac", "ilp32"},  {"rv32imafc", "ilp32f"}, {"rv64imac", "lp64"},
+       {"rv64imafdc", "lp64d"}, {"rv64imafdc_zba_zbb_zbc_zbs", "lp64d"},
+-      {"rv64imafdcv_zba_zbb_zbc_zbs", "lp64d"}, {"rv64imafdcv", "lp64d"},};
++      {"rv64imafdc_zicsr_zifencei", "lp64d"}, 
++      {"rv64imafdc_zicsr_zifencei_zba_zbb_zbc_zbs", "lp64d"},
++      {"rv64imafdcv_zicsr_zifencei_zve32f_zve32x_zve64d_zve64f_zve64x_zvl128b_zvl32b_zvl64b", "lp64d"}, 
++      {"rv64imafdcv_zicsr_zifencei_zba_zbb_zbc_zbs_zve32f_zve32x_zve64d_zve64f_zve64x_zvl128b_zvl32b_zvl64b", "lp64d"},
++      };   
+ 
+   std::vector<Multilib> Ms;
+   for (auto Element : RISCVMultilibSet) {
+@@ -1683,8 +1687,10 @@ static void findRISCVBareMetalMultilibs(const Driver &D,
+   llvm::StringSet<> Added_ABIs;
+   StringRef ABIName = tools::riscv::getRISCVABI(Args, TargetTriple);
+   StringRef MArch = tools::riscv::getRISCVArch(Args, TargetTriple);
++
+   std::string Ext, Extra;
+-  for (auto I = MArch.begin(), E = MArch.end(); I != E; ) {
++  Ext = "rv";
++  for (auto I = MArch.begin() + 2, E = MArch.end(); I != E; ) {
+     char c = *I;
+     switch (c) {
+       default: 
+@@ -1693,12 +1699,18 @@ static void findRISCVBareMetalMultilibs(const Driver &D,
+ 
+       case 'g':
+       Ext += "imafd";
++      Extra += "_zicsr_zifencei";
+       break;
+       
+       case 'b':
+       Extra += "_zba_zbb_zbc_zbs";
+       break;
+ 
++      case 'v':
++      Ext += c;
++      Extra += "_zve32f_zve32x_zve64d_zve64f_zve64x_zvl128b_zvl32b_zvl64b";
++      break;      
++
+       case '_':
+       for (;I != E; I++)
+         Ext += *I;
+-- 
+2.25.1
+

+ 2 - 0
recipes-devtools/clang/llvm-project-source.bbappend

@@ -17,6 +17,8 @@ SRC_URI = "\
     file://0004-set-default-march-to-rv64imafcd_zba_zbb_zbc_zbs-and-.patch \
     file://0005-support-b-letter-in-march-string.patch \
     file://0006-set-clang-default-dwarf-version-to-4.patch \
+    file://0007-set-clang-default-march-to-rv64gc.patch \
+    file://0008-change-baremetal-multilib-directory-name-to-align-wi.patch \
     file://0001-libcxxabi-Find-libunwind-headers-when.patch \
     file://0002-compiler-rt-support-a-new-embedded-linux-target.patch \
     file://0004-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch \