I am trying to change JNIPort such that it uses NativeBoost instead of Alien.
The first problem I ran into is that I can't load a function from the Java
VM library libclient.dylib on OS X 10.8.5 in Pharo 2.0. I am using the 1.6.0
JDK from Apple, and libclient.dylib is an i386 (i.e. 32 bit) library. The
following expression answers nil:
� � NativeBoost
� � � � loadFunction: 'JNI_CreateJavaVM_Impl'
� � � � from:
'/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/libclient.dylib'
The same happens when I copy libclient.dylib to the working directory and do
not specify a path. The only way to produce a different behavior is copying
the library into the Pharo2.0.app bundle and put it in the directory
Pharo2.0.app/Contents/MacOS/Plugins. Then, executing
� � NativeBoost loadFunction: 'JNI_CreateJavaVM_Impl' from:
'libclient.dylib'
crashes Pharo when attempting to load the library:
Crashed Thread: �0 �Dispatch queue: com.apple.main-thread
Exception Type: �EXC_BAD_ACCESS (SIGABRT)
Exception Codes: EXC_I386_GPFLT
Application Specific Information:
dyld: in dlopen()
abort() called
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 � libsystem_kernel.dylib � � � � 0x03f34a6a __pthread_kill + 10
1 � libsystem_c.dylib � � � � � � 0x03df0b2f pthread_kill + 101
2 � libsystem_c.dylib � � � � � � 0x03e27631 abort + 168
3 � org.pharo.Pharo � � � � � � � 0x0019f04a error + 138
4 � ??? � � � � � � � � � � � � � 0xffffffff 0 + 4294967295
5 � libdyld.dylib � � � � � � � � 0x03da5be9
getPerThreadBufferFor_dlerror(unsigned int) + 108
6 � dyld � � � � � � � � � � � � � 0x8fe87076 dlerrorSet(char const*) + 47
7 � dyld � � � � � � � � � � � � � 0x8fe8454c dlopen + 533
8 � libdyld.dylib � � � � � � � � 0x03da5dbe dlopen + 68
9 � org.pharo.Pharo � � � � � � � 0x001a1d65 tryLoadingInternals + 293
Any ideas what is wrong?
Joachim Geidel
--
View this message in context: http://forum.world.st/NativeBoost-Can-t-load-function-on-OS-X-10-8-5-tp4708359.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.