diff --git a/clang/lib/Driver/ToolChains/Fuchsia.cpp b/clang/lib/Driver/ToolChains/Fuchsia.cpp --- a/clang/lib/Driver/ToolChains/Fuchsia.cpp +++ b/clang/lib/Driver/ToolChains/Fuchsia.cpp @@ -114,6 +114,9 @@ CmdArgs.push_back(Args.MakeArgString(Dyld)); } + if (ToolChain.getArch() == llvm::Triple::riscv64) + CmdArgs.push_back("-X"); + CmdArgs.push_back("-o"); CmdArgs.push_back(Output.getFilename()); diff --git a/clang/test/Driver/fuchsia.c b/clang/test/Driver/fuchsia.c --- a/clang/test/Driver/fuchsia.c +++ b/clang/test/Driver/fuchsia.c @@ -43,6 +43,7 @@ // CHECK: "--hash-style=gnu" // CHECK-AARCH64: "--fix-cortex-a53-843419" // CHECK: "-dynamic-linker" "ld.so.1" +// CHECK-RISCV64: "-X" // CHECK: Scrt1.o // CHECK-NOT: crti.o // CHECK-NOT: crtbegin.o