MacOS build tool selections for JDK8

David DeHaven david.dehaven at
Mon May 13 20:21:49 UTC 2013

>> 1) Use gcc as the build does today.
> Does this mean the gcc+clang provided by XCode or some random port of GCC (fink/macports)? I would be concerned with using "cygwin quality" (if that doesn't make you cringe you haven't been using cygwin long enough) GCC port rather than the Apple port.

GCC as provided by Apple in Xcode.

>> 2) Use Clang.
> Is there any way to get clang for MacOS other than via XCode? Like using macports or fink GCC port I would be concerned about quality, stability and updates.

Not with any assurance of quality. I would not condone the use of any tools outside of what Apple delivers, just as you don't condone the use of Cygwin tools on Windows :) As was said before, if someone wants to use a different compiler they're free to, but they're entirely on their own.

>> 3) Support both (since they should both compile the same source) but identify Clang as the official tool.
> We're currently using the gcc front end. I think it would take signifiant work to switch to the clang front end.

In my experience it takes no work at all...

> 4) Use Xcode (er - wait - isn't Clang a part of Xcode?  Please correct me if I am mistaken here....)
> This seems to be the only supported option. For Java 8 we have a mandate to support 10.7 which the current XCode tools allow us to do. I assume that the requirement to support 10.7 will remain through all of Java 8's support lifetime. It's unclear when XCode will stop supporting 10.7 though it would seem that when/if that happens we will be stuck with the last-supporting-10.7 version.

The way Apple has developed their Mac OS X SDK, they never stop "supporting" a specific version of an OS. You can still build code that will run on 10.4 and later even with the 10.8 SDK (if targeting Intel), so ensuring our code will continue to work on 10.7 should not be a huge concern. That's what the -mmacosx-version-min argument is for.


More information about the build-dev mailing list