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: [jna-users] Java 5 dependency on OSX




On Jul 30, 2007, at 3:57 PM, Doug Zwick wrote:

I don't think the lib is being linked right. I have a JNI lib that uses JAWT successfully, and it does not have a direct dependency on libjawt.dylib (as reported by otool -L), only a dependency on the JavaVM framework proper. The source code only names a call to JAWT_GetAWT -- all other JAWT calls are indirect via a function table filled in by GetAWT, and need not be made known to the linker. JAWT-GetAWT is in the JavaVM framework. Looking at libjawt.dylib I only see functions that are defined in the function table, so it need not be included in the link. Getting addresses of the functions to be placed in the function table becomes the JVM's responsibility at runtime. I don't see a dependency from the framework to libjawt.dylib, so it must either be statically linked, or using some funky mechanism that is not apparent to the causal observer.


So it may be that JNA just needs to drop the explicit -ljawt in order to be properly linked, since it is already linking to the JavaVM framework.



FYI my makefile places no -l terms in the link statement, only - framework terms:

/usr/bin/gcc-3.3 -arch ppc -pipe -fmessage-length=0 -L/Developer/ SDKs/MacOSX10.3.9.sdk/usr/lib/gcc/darwin/ -F/Developer/SDKs/ MacOSX10.3.9.sdk/System/Library/Frameworks -framework JavaVM - framework ApplicationServices -framework Foundation -dynamiclib - Wl,-single_module -compatibility_version 1 -current_version 1 - mmacosx-version-min=10.2 -Wl,-syslibroot,/Developer/SDKs/ MacOSX10.3.9.sdk ppc/xxx.o -lstdc++ -install_name libxxx.jnilib - o ppc/libxxx.jnilib

/usr/bin/gcc-4.0 -arch i386 -pipe -fmessage-length=0 -L/Developer/ SDKs/MacOSX10.4u.sdk/usr/lib/gcc/darwin/ -F/Developer/SDKs/ MacOSX10.4u.sdk/System/Library/Frameworks -framework JavaVM - framework ApplicationServices -framework Foundation -dynamiclib - Wl,-single_module -compatibility_version 1 -current_version 1 - mmacosx-version-min=10.4 -Wl,-syslibroot,/Developer/SDKs/ MacOSX10.4u.sdk x86/xxx.o -lstdc++ -install_name libxxx.jnilib - o x86/libxxx.jnilib

We have different SDK requirements for PPC and x86 jnilibs, hence the architecture-specific builds with different tool sets (one for ppc w/GCC 3 and one for x86 w/GCC 4).

The original poster was trying to build JNA with OSX 10.3 compatibility (which is only for PPC, right?).


Timothy Wall
http://abbot.sf.net


_______________________________________________ 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
References: 
 >Re: Fwd: [jna-users] Java 5 dependency on OSX (From: Doug Zwick <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.