As the title suggests, what is the status of compiling llvm on versions of MSVC less than 2012? Not so much "Does it work?", but more like "Should any thought be given to whether or not something will break it?" Right now there are a bunch of warnings when compiling LLDB on Windows because it uses various symbols which have been defined since VS2012, but which are re-defined in llvm support header files. In the process of addressing this, I noticed in include\llvm\Support\DataTypes.h.in that it redefines a bunch of other stuff as well from stdint.h and inttypes.h with a comment about how these definitions were only added in certain updates to VC++. However, this was an update to MSVC 2010 if my memory serves me correctly, so if it's not necessary to support 2010, then I can clean up some of the stuff in this header at the same time that I'm fixing the warnings. Zach -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140525/0a6c0281/attachment.html>
Also, this question arises from the fact that the documentation ( http://llvm.org/docs/GettingStartedVS.html#id5) explicitly states that 2012 is required. On Sun, May 25, 2014 at 12:06 AM, Zachary Turner <zturner at google.com> wrote:> As the title suggests, what is the status of compiling llvm on versions of > MSVC less than 2012? Not so much "Does it work?", but more like "Should > any thought be given to whether or not something will break it?" > > Right now there are a bunch of warnings when compiling LLDB on Windows > because it uses various symbols which have been defined since VS2012, but > which are re-defined in llvm support header files. In the process of > addressing this, I noticed in include\llvm\Support\DataTypes.h.in that it > redefines a bunch of other stuff as well from stdint.h and inttypes.h with > a comment about how these definitions were only added in certain updates to > VC++. However, this was an update to MSVC 2010 if my memory serves me > correctly, so if it's not necessary to support 2010, then I can clean up > some of the stuff in this header at the same time that I'm fixing the > warnings. > > Zach > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140525/41744ad0/attachment.html>
Zachary Turner wrote:> As the title suggests, what is the status of compiling llvm on versions > of MSVC less than 2012? Not so much "Does it work?", but more like > "Should any thought be given to whether or not something will break it?"No. See http://llvm.org/docs/CodingStandards.html#supported-c-11-language-and-library-features where we state that the minimum versions are MSVC 2012, GCC 4.7 and Clang 3.1.> Right now there are a bunch of warnings when compiling LLDB on Windows > because it uses various symbols which have been defined since VS2012, > but which are re-defined in llvm support header files. In the process > of addressing this, I noticed in include\llvm\Support\DataTypes.h.in > that it redefines a bunch of other stuff as well > from stdint.h and inttypes.h with a comment about how these definitions > were only added in certain updates to VC++. However, this was an update > to MSVC 2010 if my memory serves me correctly, so if it's not necessary > to support 2010, then I can clean up some of the stuff in this header at > the same time that I'm fixing the warnings.Cleaning up code sounds great! Nick
Thanks, the last actual list discussion I could find was one that mentioned dropping support for 2008, but that was only about a year ago, and the discussion seemed controversial, so I wasn't sure. I'll double check that the definitions are present in a vanilla install of 2012, and if they are I will remove them from the llvm header. On Sun, May 25, 2014 at 12:15 AM, Nick Lewycky <nicholas at mxc.ca> wrote:> Zachary Turner wrote: > >> As the title suggests, what is the status of compiling llvm on versions >> of MSVC less than 2012? Not so much "Does it work?", but more like >> "Should any thought be given to whether or not something will break it?" >> > > No. See http://llvm.org/docs/CodingStandards.html# > supported-c-11-language-and-library-features where we state that the > minimum versions are MSVC 2012, GCC 4.7 and Clang 3.1. > > > Right now there are a bunch of warnings when compiling LLDB on Windows >> because it uses various symbols which have been defined since VS2012, >> but which are re-defined in llvm support header files. In the process >> of addressing this, I noticed in include\llvm\Support\DataTypes.h.in >> that it redefines a bunch of other stuff as well >> from stdint.h and inttypes.h with a comment about how these definitions >> were only added in certain updates to VC++. However, this was an update >> to MSVC 2010 if my memory serves me correctly, so if it's not necessary >> to support 2010, then I can clean up some of the stuff in this header at >> the same time that I'm fixing the warnings. >> > > Cleaning up code sounds great! > > Nick >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140525/c3e4e02b/attachment.html>
Apparently Analagous Threads
- [LLVMdev] [RFC] Raising LLVM minimum required MSVC version to 2013 for trunk
- [LLVMdev] [PATCH]: MSVC build enhancements
- [LLVMdev] [PATCH]: MSVC build enhancements
- Updated MSVC patch
- [LLVMdev] RFC: A proposal to move toward using C++11 features in LLVM & Clang / bounding support for old host compilers