Good point.

I'm also wondering, what if (for whatever reason) MACOSX_SDK_PATH is empty?

That will cause the -isysroot argument to be invalid. I can either make an 
undefined MACOSX_SDK_PATH a hard error (in configure) or I can wrap all uses of 
-isysroot/-iframework with ifneq blocks. Personally, I'd prefer the former, 
since there should never be a case where it can't find the SDK, if there is 
then the build environment is not set up correctly. I've not yet hit a case 
where it's been undefined, so I find it unlikely to be an issue if we make it a 
hard error.

-DrD-

> We have several platform specific tools defined that way already (CYGPATH, 
> MT, RC to name a few), so no worries. The error would be trying to use them 
> on the wrong platform, but protecting the assignment won't help with that.
> 
> /Erik
> 
> On 2014-05-21 18:33, David DeHaven wrote:
>> As long as XCODEBUILD=@XCODEBUILD@ doesn't result in an error on other 
>> platforms, that was my only concern there.
>> 
>> -DrD-
>> 
>>> Hello David,
>>> 
>>> Mostly looks good. I don't see a reason to add ifeqs on OS around variables 
>>> in spec.gmk.in. We usually just leave them there for all platforms. The 
>>> only difference that will make is the variable will be undefined instead of 
>>> empty.
>>> 
>>> Variable name as suggested by Mike seems fine to me.
>>> 
>>> /Erik
>>> 
>>> On 2014-05-21 06:56, David DeHaven wrote:
>>>> I can do both of those. It's MacOSX<version>.sdk, e.g., MacOSX10.9.sdk so 
>>>> MACOSX_SDK_PATH does make more sense.
>>>> 
>>>> -DrD-
>>>> 
>>>>> [not a build project Reviewer]
>>>>> 
>>>>> The only change I would make is to put a conditional around the other new 
>>>>> variable in spec.gmk.in.
>>>>> 
>>>>> I wondered if the variable should be MACOS_SDK_PATH since macos.sdk is 
>>>>> the name used in the path.
>>>>> 
>>>>> Mike
>>>>> 
>>>>> On May 20, 2014, at 9:30 PM, David DeHaven <david.deha...@oracle.com> 
>>>>> wrote:
>>>>> 
>>>>>> JBS Issue:
>>>>>> https://bugs.openjdk.java.net/browse/JDK-8043340
>>>>>> 
>>>>>> Summary:
>>>>>> We currently hard code the path to JavaVM.framework to 
>>>>>> /System/Library/Framworks. This worked when Apple installed header files 
>>>>>> in those frameworks when the command line tools were installed. Those 
>>>>>> headers are no longer installed so we need to change our paths to use 
>>>>>> the Mac OS X SDK path instead.
>>>>>> 
>>>>>> Most of the changes here are just adding $(MAC_SDK_PATH) to the JavaVM 
>>>>>> (and one case of ApplicationServices) framework. If MAC_SDK_PATH is 
>>>>>> undefined, then it will simply revert to the current behavior of 
>>>>>> building against the system frameworks. If configure cannot determine 
>>>>>> the path to the macosx SDK, then it will spit out a warning but 
>>>>>> otherwise proceed as normal unless it cannot find headers inside 
>>>>>> JavaVM.framework, then it will fail.
>>>>>> 
>>>>>> Changes of note:
>>>>>> - Added MAC_SDK_PATH, set to the absolute path to the macosx SDK as 
>>>>>> determined by "$(TOOLCHAIN_PATH)/xcodebuild -sdk macosx -version"
>>>>>> - Changed all -F arguments to -F$(MAC_SDK_PATH)
>>>>>> - I had to add -iframework$(MAC_SDK_PATH) to force it to compile and 
>>>>>> link all frameworks from the same SDK, otherwise great big gobs of 
>>>>>> deprecation warnings filled the screen.
>>>>>> - XCODEBUILD was added as we need to use the copy of the tool at the 
>>>>>> location specified by --with-tools-dir if provided, otherwise we would 
>>>>>> end up with the completely wrong path. If it's not found in the tool 
>>>>>> path then it uses the default /usr/bin/xcodebuild (if that's not there 
>>>>>> then the system is not configured properly...)
>>>>>> - Removed JavaVM.framework from the header search path (and changed 
>>>>>> MacosxDebuggerLocal.m accordingly) in hotspot, we shouldn't be using 
>>>>>> those headers
>>>>>> - I made not being able to find JavaVM.framework a fatal error in 
>>>>>> configure, since we can't build without those headers
>>>>>> 
>>>>>> Tested on 10.8 with Xcode 5.1 and Xcode 4.6.3 and on a clean 10.9 system 
>>>>>> with Xcode 5.1 against jdk9/hs. I will submit a JPRT sanity run shortly.
>>>>>> 
>>>>>> Patches:
>>>>>> http://cr.openjdk.java.net/~ddehaven/8043340/v0/top
>>>>>> http://cr.openjdk.java.net/~ddehaven/8043340/v0/hotspot
>>>>>> http://cr.openjdk.java.net/~ddehaven/8043340/v0/jdk
>>>>>> 
>>>>>> -DrD-
>>>>>> 
> 

Reply via email to