Building Clang 8/9 in El Capitan

Ken Cunningham ken.cunningham.webuse at
Sat Feb 13 09:42:26 UTC 2021

> On Feb 13, 2021, at 1:27 AM, Ryan Schmidt <ryandesign at> wrote:
> I would consider it unreasonable to ask users to be aware of the existence of our buildbot infrastructure or what versions of Xcode we have installed on the buildbot workers and to ask them to duplicate it.
> I didn't mention that I have Xcode 8.2.1 on the 10.11 buildbot worker in order to suggest that the user should duplicate it. Rather I mentioned it as a way to explain why we could build it and he currently cannot.
> Users should feel free to install any version of Xcode that is compatible with their OS version. Most users will probably choose the latest compatible version.

> It is fine if not all ports can be built with all Xcode versions, though where possible we should accommodate any compatible Xcode version, such as by using the compiler_blacklist_versions portgroup to blacklist incompatible Xcode clang versions or helpers like compiler.thread_local_storage that abstract away the knowledge of which clang versions support which features. As a last resort, a port could print an error if it cannot build with the currently installed Xcode and could advise the user on which version would be acceptable. I created the xcodeversion portgroup to help you emit such an error message.

> I'm not sure what you mean by "compiler.thread_local_storage yes" being "unpredictable". It should very predictably restrict the list of acceptable compilers to those that support thread-local storage, with the exception of the bug that currently exists when compiler.cxx_standard is set greater than 2011 which will be fixed in the next version of MacPorts. If you do not require thread-local storage on 10.6, then you can enclose the directive in a conditional that excludes 10.6.

Thread local includes __thread, Thread_local, and thread_local.

The compilers that support them are all different.

To make it easy for people to not think about it much, especially when you’re not talking about bootstrapping compiler, etc, MacPorts base just treats them all the same.

The system clang on 10.7 supports thread_local storage.

But base excludes it because it doesn’t support the “thread_local” keyword.

And 100 more complicated examples I could explain further to you if you are interested in learning more about it.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the macports-users mailing list