Index: COFF/LTO.cpp =================================================================== --- COFF/LTO.cpp +++ COFF/LTO.cpp @@ -60,6 +60,9 @@ C.DisableVerify = true; C.DiagHandler = diagnosticHandler; C.OptLevel = Config->LTOO; + + C.MAttrs = GetMAttrs(); + if (Config->SaveTemps) checkError(C.addSaveTemps(std::string(Config->OutputFile) + ".", /*UseInputModulePath*/ true)); Index: Common/TargetOptionsCommandFlags.cpp =================================================================== --- Common/TargetOptionsCommandFlags.cpp +++ Common/TargetOptionsCommandFlags.cpp @@ -32,3 +32,4 @@ } std::string lld::GetCPUStr() { return ::getCPUStr(); } +std::vector lld::GetMAttrs() { return ::MAttrs; } Index: ELF/LTO.cpp =================================================================== --- ELF/LTO.cpp +++ ELF/LTO.cpp @@ -88,6 +88,7 @@ C.DiagHandler = diagnosticHandler; C.OptLevel = Config->LTOO; C.CPU = GetCPUStr(); + C.MAttrs = GetMAttrs(); // Set up a custom pipeline if we've been asked to. C.OptPipeline = Config->LTONewPmPasses; Index: include/lld/Common/TargetOptionsCommandFlags.h =================================================================== --- include/lld/Common/TargetOptionsCommandFlags.h +++ include/lld/Common/TargetOptionsCommandFlags.h @@ -19,4 +19,5 @@ llvm::TargetOptions InitTargetOptionsFromCodeGenFlags(); llvm::Optional GetCodeModelFromCMModel(); std::string GetCPUStr(); +std::vector GetMAttrs(); } Index: wasm/LTO.cpp =================================================================== --- wasm/LTO.cpp +++ wasm/LTO.cpp @@ -56,6 +56,8 @@ C.DiagHandler = diagnosticHandler; C.OptLevel = Config->LTOO; + C.MAttrs = GetMAttrs(); + if (Config->SaveTemps) checkError(C.addSaveTemps(Config->OutputFile.str() + ".", /*UseInputModulePath*/ true));