On 11/05/2012 6:06 AM, Henri Gomez wrote:
Happy to see subject back to technical.

If you take a closer look to patch, you'll see universal is enforced as ARCH.

My concerns with the patch is the necessity of introducing these platform specific ifdefs into what is notionally shared code - yes there are already ifdefs in there but I still dislike seeing this. And I think the various "arch" variables are being misused in ways that ultimately lead to confusion - the OSX build shouldn't require a completely different understanding of the build system.

I was not familiar with the Universal build and to be honest it seems to be more of a hindrance than a help. If the build was done as two passes: 32-bit then 64-bit with a stage at the end to produce the universal binary, then bit-specific make variables could continue to work as they were intended - is that possible?

I also think this should be taken to JDK8 first.

David
-----

More on this tomorrow.

Le 10 mai 2012 à 20:29, Scott Kovatch<[email protected]>  a écrit :


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.


Reply via email to