Linking to JavaRuntimeSupport framework

Mike Swingler swingler at apple.com
Wed Jan 26 08:17:31 PST 2011


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.


More information about the macosx-port-dev mailing list