Linking to JavaRuntimeSupport framework
David Kocher
dkocher at cyberduck.ch
Wed Jan 26 11:39:19 PST 2011
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)? 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.
-
David
More information about the macosx-port-dev
mailing list