Review OSX universal mode patch
Scott Kovatch
scott.kovatch at oracle.com
Thu May 10 11:29:55 PDT 2012
On May 10, 2012, at 11:19 AM, Michael McMahon wrote:
> On 10/05/12 18:35, Scott Kovatch wrote:
>> On May 10, 2012, at 8:51 AM, Dalibor Topic wrote:
>>
>>> On 5/10/12 5:21 PM, Mike Swingler wrote:
>>>> The OpenJDK product should be build-able for 32 or 32/64 Universal by anyone else, and should accept contributions to it's maintenance, but if nobody is signing up to keep forward-porting the changes - they don't have a future.
>>>>
>>>> Am I missing something here?
>>> That's why I'm asking the questions. I want to know what to expect -
>>> a single patch for some or other build issue, a full porting effort,
>>> or something else entirely.
>> Maybe what would help here is for someone to write a specification of what we want to have happen. I don't want to put words in Henri's mouth, but I feel he is assuming that everyone in the OpenJDK community is fully aware of what Apple did with the JDK, and in my time here it's clear that this is not the case. Being able to run a 32-bit JVM was a useful feature. If someone wants to continue to do that, Oracle should not make it impossible because we don't want to support it. This should be nothing more than a build issue. If someone wants to build x86_64 or a 'universal' build, we shouldn't block that.
>>
>> Let's make it clear once and for all what is desired. I can put this into a bug if it will help.
>>
>> -- A straight 'make' of OpenJDK on Mac OS X is 64-bit only. '-d32' and '-d64' are ignored.
>> -- 'make all_xxx_universal' produces a universal build. (Some clarification on the make target would be helpful)
>> -- All versions of Mac OS X that support 64-bit Intel allow you to run binaries of either architecture. If the build is universal, passing '-d32' or '-d64' on the command line chooses the architecture to be run.
>> -- When -d32 is used, System.getProperty("os.arch") = "i386". Any native libraries loaded must be i386.
>> -- When -d64 is used, System.getProperty("os.arch") = "x86_64". Any native libraries loaded must be x86_64.
>> -- We will not support an i386-only build. If someone wants to fork or add a post-processing step that lipo's away all of the x86_64 parts, they can do that.
>>
>> As far as maintenance goes:
>>
>> -- No patch that compiles with only one architecture is allowed.
>> -- By extension, no linking against a framework or library that is 32-bit or 64-bit only.
>> -- At some well-defined time in the future we will drop i386 entirely, but not before OS X is completely 32-bit-free. (Yes, this is strict. If you want to do something that is i386-only, fork the project.)
>>
>> Are there any points I'm missing here? Henri, does your patch satisfy all of these requirements? I think it does, based on the conversation I saw between you and David Holmes, but I'm not clear on the make targets.
> I'd agree with the above, though it would be nice if some existing build variable
> like ARCH_DATA_MODEL could be used to signify the universal build, rather than introducing
> a new make target.
I thought we already had universal make targets, based on Henri's patch… but now I see that's in hotspot only.
Henri, how are you triggering a universal JDK build? With ARCH_DATA_MODEL ?
> Also, should this be done first in jdk8 and then back-ported?
Yes, absolutely. I forgot about that part. I believe JDK 8 is successfully building on OS X and has everything from 7u6 so it shouldn't be that bad.
-- Scott K.
More information about the jdk7u-dev
mailing list