<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jul 9, 2014 at 7:09 AM, Edward Diener <span dir="ltr"><<a href="mailto:eldlistmailingz@tropicsoft.com" target="_blank">eldlistmailingz@tropicsoft.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I see where a build of clang on Windows using VC++ produces both clang.exe and clang-cl.exe and that they are both the same executables. Nonetheless depending on the -target ( or default -target ) passed to the clang driver we have different build expectations in Boost Build. In Windows When the target mode is VC++ clang emulates VC++ in various ways and when the target mode is mingw/gcc clang emulates mingw/gcc. Even with the latter on Windows there are a few subtle differences from clang on Linux. That is why Boost Build needs to treat them differently from within its .jam files.</blockquote>
<div><br></div><div>What kinds of properties of a compiler do you normally check in Boost Build?  If you're willing to do a test compile, you can look for '#if defined(__clang__) && defined(_MSC_VER)' or '#if defined(__clang__) && defined(__GNUC__)'.</div>
<div><br></div><div>There are some who believe that in the future we should stop defining these macros for other compilers, but personally I don't see it happening.</div></div></div></div>