Dear smart people,

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.

There is a port select mechanism for clang, and a port select mechanism for 
llvm. 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?

Also, cctools and ld64 also have a specific variant for each version of llvm, 
it appears from the following command.


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

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?


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?

Hope this question is clear. Thanks,

Ken
_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to