<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Dear smart people,</div><div><br></div>Having run into an unexpected problem with clang-3.7 segfaulting not long ago after a 3.7 minor version update, and then an interesting libLTO incorrect "version error" when I tried to upgrade the compiler chain from clang-3.7 to clang-3.8, I'd like to have a slightly better understanding of how these tools fit together.<div><br></div><div>There is a port select mechanism for clang, and a port select mechanism for llvm.&nbsp;But would it be fair to say you would always do both of them together, ie if you're switching to clang-3.8, you'll also need to switch to llvm-3.8? This seems pretty obvious, and I always do switch both when I do it. Should the port select mechanism just do that automatically for both if you ask it do it for one?</div><div><br></div><div>Also, cctools and ld64 also have a specific variant for each version of llvm, it appears from the following command.</div><div><br></div><div><br></div><div><span class="Apple-style-span" style="font-family: 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 13px; "><pre class="wiki" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(247, 247, 247); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(215, 215, 215); border-right-color: rgb(215, 215, 215); border-bottom-color: rgb(215, 215, 215); border-left-color: rgb(215, 215, 215); margin-top: 1em; margin-right: 1.75em; margin-bottom: 1em; margin-left: 1.75em; padding-top: 0.25em; padding-right: 0.25em; padding-bottom: 0.25em; padding-left: 0.25em; overflow-x: auto; overflow-y: auto; background-position: initial initial; background-repeat: initial initial; ">sudo port -v -n upgrade --enforce-variants cctools -llvm33 -llvm34 +llvm37 configure.compiler=macports-clang-3.7
sudo port -v upgrade --enforce-variants ld64 -llvm33 -llvm34 +llvm37 configure.compiler=macports-clang-3.7</pre></span><div><br></div></div><div><div>So is it also the case that if you're switching clang versions (and then llvm versions) you need to run commands like the following to bring your cctools and ld64 variants into sync?</div></div><div><br></div><div><br></div><div>And finally, for those of us who have installed libc++ on older systems, just to clarify that libc++ is a fixed entity, and it does not change or need to change with any of the above - build it once, install it, and leave it alone, basically?</div><div><br></div><div>Hope this question is clear. Thanks,</div><div><br></div><div>Ken</div></body></html>