RFR:  8043340 & 8043591: [macosx] Build system issues
erik.joelsson at oracle.com
Tue Jun 3 08:31:40 UTC 2014
On 2014-06-02 18:23, David DeHaven wrote:
>> * 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.
> I have to do another iteration based on what Max found when only the command line tools are installed (no Xcode). Thankfully, it won't be too difficult to determine if Xcode is installed or not. The logic won't be terribly different. Basically XCODEBUILD might not be usable since if Xcode is not installed we will not be able to use it. The stub xcodebuild tool is installed with the OS and I can actually use the return code to detect if Xcode is present or not. Additionally, SYSROOT/SDKROOT will not be set as the CL tools install headers to the System frameworks directories. There are no SDKs installed so there is no other place to put them.
Supporting this usecase makes it even more important to keep the
More information about the build-dev