diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp index 85fbc4bf378a5..15c3ab18d90e1 100644 --- a/src/rustllvm/PassWrapper.cpp +++ b/src/rustllvm/PassWrapper.cpp @@ -399,6 +399,12 @@ extern "C" LLVMTargetMachineRef LLVMRustCreateTargetMachine( Options.ThreadModel = ThreadModel::Single; } + // See https://reviews.llvm.org/D52013 + if (Trip.getArch() == llvm::Triple::ArchType::ppc64 && + Trip.getEnvironment() == llvm::Triple::EnvironmentType::Musl) { + Options.MCOptions.ABIName = "elfv2"; + } + #if LLVM_VERSION_GE(6, 0) Optional CM; #else