MacOS build tool selections for JDK8
david.dehaven at oracle.com
Tue May 14 17:40:02 UTC 2013
>>>> 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...
> Anyone attempted to build/test hotspot using clang rather than gcc?
I've been curious of that myself.
I've noticed some code is built using "cc" which is symlinked to clang in the current command line tools, so some stuff is already using clang (that might only be in JavaFX..).
>>> 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.
> Does this imply the underlying version of macosx doesn't matter, as long as you're using Xcode 4.6.1 (or what ever we have standardized upon for JDK8) with -mmacosx-version-min=10.7?
Underlying OS and the SDK used to build against, so long as they're at least the target OS version or later. IOW, you can build for 10.7 on 10.7 or later with the 10.7 SDK or later. Currently, we set both -mmacosx-version-min=10.7 and define MAC_OS_X_VERSION_MAX_ALLOWED as 1070, this prevents the use of any 10.8+ features while still allowing it to be built on any system or SDK >= 10.7.
> That would solve our new machines always having the latest macosx issue, that is as long as our instance of Xcode is supported. (the iOS-ifying of macosx)
Correct. We can cross the "next generation OSX" issue when we get there :)
More information about the build-dev