Linking to JavaRuntimeSupport framework
Mike Swingler
swingler at apple.com
Wed Jan 26 12:33:57 PST 2011
On Jan 26, 2011, at 11:39 AM, David Kocher wrote:
> On 26.01.2011, at 17:17, Mike Swingler wrote:
>
>> On Jan 26, 2011, at 12:23 AM, David Kocher wrote:
>>
>>> On 26.01.2011, at 00:28, Mike Swingler wrote:
>>>
>>>> On Jan 25, 2011, at 2:43 PM, Henri Gomez wrote:
>>>>
>>>>> 2011/1/25 David Kocher <dkocher at cyberduck.ch>:
>>>>>> (Resending this to the list as it did not appear after 24h)
>>>>>>
>>>>>> Looking at the binary build available from the openjdk-osx-build [1], the universal libjava.dylib is linking against /System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/JavaRuntimeSupport. Is this intended and if so why? The equivalent library from the i386 build does not.
>>>>>>
>>>>>>> libjava.dylib:
>>>>>>> @rpath/libjava.dylib (compatibility version 1.0.0, current version 1.0.0)
>>>>>>> @rpath/libjvm.dylib (compatibility version 1.0.0, current version 1.0.0)
>>>>>>> @rpath/libverify.dylib (compatibility version 1.0.0, current version 1.0.0)
>>>>>>> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.42.0)
>>>>>>> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration (compatibility version 1.0.0, current version 293.6.0)
>>>>>>> /System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/JavaRuntimeSupport (compatibility version 1.0.0, current version 1.0.0)
>>>>>>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
>>>>>
>>>>> I guess it because it's now build with Apple VM 1.6.0
>>>>
>>>> Yes, this is intentional. JavaRuntimeSupport.framework is a special framework where we export API exclusively for the use of Java runtimes (like OpenJDK). Our proprietary Java SE 6 and J2SE 5.0 have also linked against it for almost three years, so it's known battle-tested code.
>>>>
>>>> We will also be making more additions to the JavaRuntimeSupport.framework soon to support additional functionality we will be introducing to the OpenJDK builds.
>>>
>>> I understand now that the difference is because the non universal builds available are from the BSD port instead. But linking against a private framework in the macosx-port makes it a show stopper to for applications targeting the MAS I presume.
>>
>> JavaRuntimeSupport.framework is a public sub-framework of the JavaVM.framework. It's all API, and it's all public (that is kinda the point).
>>
>> Regards,
>> Mike Swingler
>> Java Engineering
>> Apple Inc.
>
> Thanks for the clarification. I was mixing things up. JavaRuntimeSupport.framework is indeed part of the public JavaVM.framework. Can you assure that this framework will be in the default install of subsequent major OS X releases (10.7 and onward)?
I cannot comment specifically about Mac OS X 10.7, however it is our intention for the additions made to the /System/Library/Frameworks folder by Java updates to be standard API on Mac OS X.
> The Java deprecation notice never made it clear to me, what parts will be optional installs. I would assume that only /System/Library/Java/JavaVirtualMachines/* falls into this category then.
This is not a bad assumption to make. Hopefully I can discuss more at a later time.
My best,
Mike Swingler
Java Engineering
Apple Inc.
More information about the macosx-port-dev
mailing list