RFR: [9] 8043340 & 8043591: [macosx] Build system issues
David DeHaven
david.dehaven at oracle.com
Sat Jun 14 01:09:38 UTC 2014
Updated. I kicked off a JPRT -bo run to be sure it doesn't break something else.
http://cr.openjdk.java.net/~ddehaven/8043340/v4/
Only change from previous is in make/bsd/makefiles/saproc.make, I added SA_SYSROOT_FLAGS which is set to SYSROOT_CFLAGS. I didn't want to add SYSROOT_CFLAGS to the compile command in case $(CC) expands to something that includes the same args on non-Mac platforms, this seems safer.
-DrD-
>
> Yes, I was going for convenience and minimizing disturbance. I'll change how the flags are passed.
>
> If SDKROOT is unset then the paths point at the existing hard-coded paths in /System/Library/Frameworks, all SDKROOT does is prepend the SDK path and it's only set under certain conditions. JPRT has been perfectly happy with this change so far.
>
> Note that this ugliness can go away when we remove the dependencies on the JavaNativeFoundation and JavaRuntimeSupport frameworks.
>
> -DrD-
>
>> Hi David,
>>
>> In saproc.make:
>>
>> Hijacking SAARCH seems wrong - convenient perhaps, but wrong. What you are adding is nothing to do with the ARCH setting. If none of the existing variables are suitable perhaps just add SA_CFLAGS?
>>
>> If SDKROOT is not set is the path one that would normally exist? In particular does it exist on all our JPRT clients?
>>
>> Thanks,
>> David H.
>>
>> On 12/06/2014 6:06 AM, David DeHaven wrote:
>>>
>>> Can I get hotspot signoff on the (fairly trivial) hotspot changes for this?
>>>
>>> The hotspot specific changes are here:
>>> http://cr.openjdk.java.net/~ddehaven/8043340/v3/hotspot/
>>>
>>> Also, is there a problem if I push these through jdk9/build instead of going through hotspot?
>>>
>>> I'm re-submitting a JPRT run, now that JDK-8045998 has been fixed I should actually get valid results.
>>>
>>> -DrD-
>>>
>>>> From: David DeHaven <david.dehaven at oracle.com>
>>>> Subject: Re: RFR: [9] 8043340 & 8043591: [macosx] Build system issues
>>>> Date: June 4, 2014 16:01:29 PDT
>>>> To: build-dev build-dev <build-dev at openjdk.java.net>
>>>>
>>>>
>>>> Next (hopefully last??) update:
>>>> http://cr.openjdk.java.net/~ddehaven/8043340/v3
>>>>
>>>> (ignore changes to jdk/src/macosx/native/sun/osxapp/ThreadUtilities.m, that's a separate patch)
>>>>
>>>> I also removed generated_configure.sh since those will be automatically generated before pushing anyways and it just keeps getting in the way.
>>>>
>>>>
>>>> These comments in flags.m4 are a bit misleading and not really true:
>>>> # FIXME: This needs to be exported in spec.gmk due to closed legacy code.
>>>> # FIXME: clean this up, and/or move it elsewhere.
>>>>
>>>> So, I removed them...
>>>>
>>>> I also removed using SDKROOT from the env, since we ignore the environment. Only two args affect SYSROOT now, --with-sysroot and --with-sdk-name.
>>>>
>>>>
>>>>
>>>> Testing:
>>>>
>>>> I now have two system configurations I'm testing with:
>>>> 1> OS X 10.8, Xcode 5 in /Applications/Xcode.app, Xcode 4.6.3 in /Applications/old/Xcode4.app (plus everything needed to build closed jdk)
>>>> 2> OS X 10.9, Command line tools only, installed JDK 8u5, freetype and autoconf 2.69 (nothing else)
>>>>
>>>> System 1 tests:
>>>> $ sudo xcode-select -switch /Applications/Xcode.app
>>>> $ make clean; sh ./configure; make images
>>>> ...
>>>> 00:09:17 TOTAL
>>>> -------------------------
>>>> Finished building Java(TM) for target 'images'
>>>>
>>>>
>>>> $ make clean; sh ./configure --with-toolchain-path=/Applications/old/Xcode4.app/Contents/Developer/usr/bin; make images
>>>> ...
>>>> 00:13:37 TOTAL
>>>> -------------------------
>>>> Finished building Java(TM) for target 'images'
>>>>
>>>> (Note that building with Xcode 5/clang is faster...)
>>>>
>>>>
>>>> $ sudo xcode-select -switch /Applications/old/Xcode4.app
>>>> $ make clean; sh ./configure; make images
>>>> Broken! The current Xcode command line tools don't run gcc as gcc even if Xcode 4 is active
>>>> Nothing we can do about this, anyone needing to use Xcode 4 will need to use --with-toolchain-path or --with-toolchain-type=clang (as below)
>>>> Hudson/JPRT should not be affected unless they also have Xcode 5 installed
>>>>
>>>>
>>>> $ make clean; sh ./configure --with-toolchain-type=clang; make images
>>>> ...
>>>> 00:10:54 TOTAL
>>>> -------------------------
>>>> Finished building Java(TM) for target 'images'
>>>>
>>>>
>>>> System 2 tests:
>>>> OpenJDK only (ignore the time, I had it pulling closed jdk while building):
>>>> $ rm -rf build; sh ./configure --with-freetype=/opt/freetype && make images
>>>> ...
>>>> 00:20:26 TOTAL
>>>> -------------------------
>>>> Finished building OpenJDK for target 'images'
>>>>
>>>>
>>>> Closed JDK (images only, deploy/install expected to fail)
>>>> $ rm -rf build; sh ./configure --with-freetype=/opt/freetype && make images
>>>> ...
>>>> 00:10:05 TOTAL
>>>> -------------------------
>>>> Finished building Java(TM) for target 'images'
>>>>
>>>> -DrD-
>>>>
>>>
>
More information about the build-dev
mailing list