File tree Expand file tree Collapse file tree 3 files changed +15
-3
lines changed Expand file tree Collapse file tree 3 files changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -749,8 +749,14 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
749749 case llvm::Triple::loongarch64:
750750 switch (os) {
751751 case llvm::Triple::Linux:
752- return std::make_unique<LinuxTargetInfo<LoongArch64TargetInfo>>(Triple,
753- Opts);
752+ switch (Triple.getEnvironment ()) {
753+ default :
754+ return std::make_unique<LinuxTargetInfo<LoongArch64TargetInfo>>(Triple,
755+ Opts);
756+ case llvm::Triple::OpenHOS:
757+ return std::make_unique<OHOSTargetInfo<LoongArch64TargetInfo>>(Triple,
758+ Opts);
759+ }
754760 case llvm::Triple::FreeBSD:
755761 return std::make_unique<FreeBSDTargetInfo<LoongArch64TargetInfo>>(Triple,
756762 Opts);
Original file line number Diff line number Diff line change @@ -111,6 +111,8 @@ std::string OHOS::getMultiarchTriple(const llvm::Triple &T) const {
111111 return " x86_64-linux-ohos" ;
112112 case llvm::Triple::aarch64:
113113 return " aarch64-linux-ohos" ;
114+ case llvm::Triple::loongarch64:
115+ return " loongarch64-linux-ohos" ;
114116 }
115117 return T.str ();
116118}
@@ -368,7 +370,9 @@ void OHOS::addExtraOpts(llvm::opt::ArgStringList &CmdArgs) const {
368370 CmdArgs.push_back (" -z" );
369371 CmdArgs.push_back (" relro" );
370372 CmdArgs.push_back (" -z" );
371- CmdArgs.push_back (" max-page-size=4096" );
373+ CmdArgs.push_back (getArch () == llvm::Triple::loongarch64
374+ ? " max-page-size=16384"
375+ : " max-page-size=4096" );
372376 // .gnu.hash section is not compatible with the MIPS target
373377 if (getArch () != llvm::Triple::mipsel)
374378 CmdArgs.push_back (" --hash-style=both" );
Original file line number Diff line number Diff line change 33// RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=riscv64-linux-ohos < /dev/null | FileCheck %s -match-full-lines -check-prefix=RISCV64-OHOS-CXX
44// RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=mipsel-linux-ohos < /dev/null | FileCheck %s -match-full-lines -check-prefix=MIPSEL-OHOS-CXX
55// RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=x86_64-linux-ohos < /dev/null | FileCheck %s -match-full-lines -check-prefix=X86_64-OHOS-CXX
6+ // RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=loongarch64-linux-ohos < /dev/null | FileCheck %s -match-full-lines -check-prefix=LOONGARCH64-OHOS-CXX
67// RUN: %clang_cc1 -E -dM -ffreestanding -triple=arm-linux-ohos < /dev/null | FileCheck %s -check-prefix=OHOS-DEFS
78
89// ARM-OHOS-CXX: #define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8U
910// ARM64-OHOS-CXX: #define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL
1011// RISCV64-OHOS-CXX: #define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL
1112// MIPSEL-OHOS-CXX: #define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8U
1213// X86_64-OHOS-CXX: #define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL
14+ // LOONGARCH64-OHOS-CXX: #define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL
1315// OHOS-DEFS: __OHOS_FAMILY__
1416// OHOS-DEFS: __OHOS__
1517// OHOS-DEFS-NOT: __OHOS__
You can’t perform that action at this time.
0 commit comments