From 981d4dfa0f4e7ed2232e48845a239683fea182a4 Mon Sep 17 00:00:00 2001 From: Jason Molenda Date: Tue, 16 Oct 2012 20:45:49 +0000 Subject: [PATCH] llvm needs the OS to be set to either iOS or Mac OS X to work properly; when doing bare-boards rom debugging force the OS to be one of those when initializing llvm. llvm-svn: 166057 --- lldb/source/Core/Module.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index 0c82b6686abc..14d2e42ac50e 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -314,6 +314,22 @@ Module::GetClangASTContext () if (objfile && objfile->GetArchitecture(object_arch)) { m_did_init_ast = true; + + // LLVM wants this to be set to iOS or MacOSX; if we're working on + // a bare-boards type image, change the triple for llvm's benefit. + if (object_arch.GetTriple().getVendor() == llvm::Triple::Apple + && object_arch.GetTriple().getOS() == llvm::Triple::UnknownOS) + { + if (object_arch.GetTriple().getArch() == llvm::Triple::arm || + object_arch.GetTriple().getArch() == llvm::Triple::thumb) + { + object_arch.GetTriple().setOS(llvm::Triple::IOS); + } + else + { + object_arch.GetTriple().setOS(llvm::Triple::MacOSX); + } + } m_ast.SetArchitecture (object_arch); } }