RFR:  8043340 & 8043591: [macosx] Build system issues
david.dehaven at oracle.com
Tue Jun 3 18:04:23 UTC 2014
>>> * Why remove MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@? I believe we still use this in some closed makefiles. Or is the idea that we instead will force the sdk name to 10.7? If so, then we need to still leave this in until every user (RE) has switched properly.
>> I moved all that to closed, it's in the internal review for those changes. The value is now set in custom-spec.gmk instead of spec.gmk. It was not used anywhere in OpenJDK that I could find. When deploy/install get revamped we can just remove it entirely, that'll be easier if it's in closed.
>> It's referenced in make/bsd/makefiles/gcc.make, but that entire block is skipped if spec.gmk exists (confirmed by throwing garbage in there), and it defaults to 10.7.0 anyways.
> Actually, I thought on this some more (and read the closed review). I added that feature to be able to build on 10.8 and still have bits runnable on 10.7, and it's still used in the jdk through the CFLAGS_JDKLIB and friends. We cannot remove those until we can guarantee that all builds are done on macosx10.7 sdkroot (which I assume would also fix the issue). So at least for now, please leave those in the open. Also, by having these CFLAGS/LDFLAGS set, we are able to create compatible bits even if macosx10.7 isn't installed.
> If we want to move towards using a specific sdkroot rather than the -mmacosx-version-min flags to control compatibility, then we should also add a default for macosx10.7 in configure. It would probably be good to add a default regardless.
Like I said before, the -mmacosx-version-min argument is set in CFLAGS in JDK, it does not need the MACOSX_VERSION_MIN macro to be defined. That macro is *only* used by deploy and install (for the time being). Removing the macro has no effect on how any of the OpenJDK components are built. The minimum version is still set to 10.7.
You're confusing SDK version with OS X supported version, the two are not the same. You can use a later SDK and set the minimum OS version to an earlier release. We cannot lock down a specific SDK because Apple changes which SDKs are available with each major release of Xcode (and there's really no point to doing so). The sdk name argument is to allow users to specify a particular SDK if it's needed, rather than assuming the default "macosx" sdk name which simply chooses the latest SDK available.
Does that make sense?
More information about the build-dev