Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Leopard Questions



Doug Zwick wrote:

>a) will Java under Leopard be 64-bit?
>
>b) are there any implications for loading JNI libs (e.g. must their bitness
>match that of the loading process, must only use 64-bit system frameworks,
>etc.)?
>
>c) will there be a way to tell in a JNLP file whether a 32-bit or 64- bit
>binary for a JNI library is required (e.g. unique values for os.arch)?

I think most of the answers can be determined from current public
information.  Here's what I surmise:

a) Probably both a 32-bit and a 64-bit version, for obvious compatibility
reasons.

b) The 64-bit architecture for both ppc and x86 will be just another binary
in a fat-binary Mach-O file.  So this is probably no different than the
current Universal Binary requirements for JNI libs.  There's already a
ppc64 arch, just not across-the-board support for it in all frameworks.

c) There is currently no such distinction visible for ppc vs i386, so I
would expect none for 64 vs 32 bit.  That said, the "os.arch" system
property is readable by untrusted JNLP apps, and it often signals
architecture width.  The reason I expect this is because of how the 'arch'
command works, and how architectures are signified in the sysctl values and
elsewhere.  I think the ppc-64 value is "ppc64", but I don't know what the
x86-64 value is.

All the above are inferred from the public info about 64-bit archs and
libs.  That is, a new arch or API width is just another binary in a mach-o
file.  Apple could add support for Itanium or PDP-8's and it'd still be the
same thing: as long as there's a compiler to produce it, it's just another
binary in a mach-o file.

The main area for rework I see for myself is because a Java int will no
longer be wide enough to hold a pointer.  I'll have to modify a couple
native functions in a couple of jnilibs, but other than those, I think I'll
be OK.  I expect this transition to be easier than the i386 one, mainly
because I've already resolved the endian-ness issues.  Of course, the
magnitude of any conversion task depends on how wedded one's code is to
jint's as wide enough for pointers.

Other questions, such as about the C QT API, are probably best answered by
waiting for the Leopard preview DVD to arrive.

  -- GG


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Java-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/java-dev/email@hidden

This email sent to email@hidden



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.