Thanks, I added the code and compiles on scratchbox...in that environement I get : ******* NATIVE LIB OPEN /usr/local/classpath/lib/classpath/libjavanio.so
The verbose output is attaches as txt. When I copy this over to the native platform I now get cannot open binary file...I am verifiying that the code changes you asked are doing this. On 10/8/07, Robert Lougher <[EMAIL PROTECTED]> wrote: > > Hi Larry, > > On 10/8/07, Larry Suto <[EMAIL PROTECTED]> wrote: > > Thanks for the info....I am compiling with the defaults and when I copy > the > > files over to the target I am placing them in a linux filesystem at the > > default locations and then I nfs mount it to the target and the I chroot > . > > in the mounted directory so it seems like I have the files in the > default > > location > > > > I tried the override and it seems like it went further: > > > > ./jamvm > > -Xbootclasspath:/usr/local/jamvm/share/jamvm:/usr/local/classp > > ath/share/classpath > > -Dgnu.classpath.boot.library.path=/usr/local/classpath/lib/c > > lasspath Test > > Exception occurred while VM initialising. > > java/lang/NoClassDefFoundError: java/lang/Thread > > > > No, java.lang.Thread is the first class JamVM attempts to load, so > it's failed almost immediately. It looks like you've specified the > bootclasspath wrong... Have a look in /usr/local/jamvm/share/jamvm > and /usr/local/classpath/share/classpath. The classes should be in > classes.zip and glibj.zip. This needs to be specified (i.e. > > -Xbootclasspath:/usr/local/jamvm/share/jamvm/classes.zip:/usr/local/classpath/share/classpath/glibj.zip). > > But this is irrelevant. By using chroot the classes should look like > they're in the right place anyway. > > My guess would be that JamVM is finding the library correctly, but a > dependency is failing, so the dlopen fails. You'll need to add a > debug printf to discover the cause. > > In jamvm/src/os/linux/os.c > > change: > > void *nativeLibOpen(char *path) { > return dlopen(path, RTLD_LAZY); > } > > to > > void *nativeLibOpen(char *path) { > void *ret; > > printf("******** NATIVE LIB OPEN %s\n", path); > > ret = dlopen(path, RTLD_LAZY); > > if(ret == NULL) > printf("DLOPEN FAILED %s\n", dlerror()); > > return ret; > } > > > Also, when running the test, please add -verbose -verbose:jni this > will indicate whether JamVM is finding the boot classes, and what JNI > methods it's trying to call. > > Rob. > > > for jamvm I use ./configure > > for classpath I use ./configure --with-jikes --enable-jni > --disable-gtk-peer > > --disable-gconf-peer --disable-plugin > > > > > > On 10/8/07, Robert Lougher <[EMAIL PROTECTED]> wrote: > > > Hi, > > > > > > On 10/8/07, Christian Thalinger <[EMAIL PROTECTED]> wrote: > > > > On Mon, 2007-10-08 at 01:42 -0700, Larry Suto wrote: > > > > > Hi I am trying to get classpath .93 compiled for a Marvell ARM5 > > > > > processor.....I can compile in the scratchbox crosscompile > environment > > > > > without any problems...but if copy the classpath files over to > the > > > > > native environmentI get this error from jamvm > > > > > > > > > > sh-2.05b# ./gjar > > > > > Cannot create system class loader > > > > > Exception occured while printing exception > > > > > (java/lang/NoClassDefFoundError)... > > > > > Original exception was java/lang/UnsatisfiedLinkError > > > > > > > > Can you run JamVM with -verbose:jni to see which native method is > > > > failing? > > > > > > > > - twisti > > > > > > > > > > Could you also provide details of how you configured/built JamVM and > > Classpath? > > > > > > In general, there are two common problems people have when > > > cross-compiling JamVM : > > > > > > 1) They configure JamVM/Classpath on the host to install in one place, > > > and then copy the files to somewhere else on the target. This doesn't > > > work, because JamVM builds at compile time default boot class and > > > library paths based on where it was configured to be installed. > > > > > > By default, JamVM is installed in /usr/local/jamvm, and Classpath > > > /usr/local/classpath. You can change the place using --prefix=xxx > > > when running configure. If you also move Classpath, you need to tell > > > JamVM this by using the --with-classpath-install-dir=xxx > > configure > > > option (this should be set to the --prefix value you gave to > > > Classpath's configure). > > > > > > You can also override the defaults at runtime, e.g. > > > > > > jamvm > > > -Xbootclasspath:/path/to/JamVMs/classes.zip:/path/to/Classpaths/glibj.zip > > > > > -Dgnu.classpath.boot.library.path=/path/to/Classpaths/lib/dir > > ... > > > > > > 2) Copying Classpath onto a fat/vfat formatted device. > > > > > > When Classpath is built, libtool creates library names with version > > > numbers in them, and creates symbolic links for shorter forms (from > > > memory) : > > > > > > libX.so.0.0.0 > > > libX.so.0 -> libX.so.0.0 > > > libX.so -> libX.so.0 > > > > > > The problem is fat/vfat does not support symbolic links, so the short > > > forms are lost when Classpath is copied onto it. > > > > > > Either: > > > > > > a) For each library in .../classpath/llib/classpath rename > > > libX.so.0.0.0 to libX.so > > > > > > or, > > > > > > b) Use tar and the -h option to follow the sybolic links. However, > > > this will create 3 versions of each library when you unpack, so you > > > should delete the libX.so.0, and libX.so.0.0 versions. > > > > > > > > > Hope this helps, > > > > > > Rob. > > > > > > > >
[Loaded java/lang/Object from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/Object] [Loaded java/io/Serializable from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/io/Serializable] [Loaded java/lang/reflect/Type from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/reflect/Type] [Loaded java/lang/reflect/AnnotatedElement from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/reflect/AnnotatedElement] [Loaded java/lang/reflect/GenericDeclaration from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/reflect/GenericDeclaration] [Loaded java/lang/Class from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/Class] [Loaded java/lang/Runnable from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/Runnable] [Loaded java/lang/Thread from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/Thread] [Loaded java/lang/VMThread from /usr/local/jamvm/share/jamvm/classes.zip] [Linking class java/lang/VMThread] [Loaded java/lang/Comparable from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/Comparable] [Loaded java/lang/CharSequence from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/CharSequence] [Loaded java/lang/String from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/String] [Loaded java/lang/Cloneable from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/Cloneable] [Created primitive class char] [Created array class [C] [Loaded gnu/classpath/VMStackWalker from /usr/local/jamvm/share/jamvm/classes.zip] [Linking class gnu/classpath/VMStackWalker] [Dynamic-linking native method gnu.classpath.VMStackWalker.getCallingClassLoader ... internal] [Loaded java/lang/VMClass from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/VMClass] [Dynamic-linking native method java.lang.VMClass.forName ... internal] [Created array class [Ljava/lang/Thread;] [Dynamic-linking native method java.lang.VMClass.getComponentType ... internal] [Loaded java/lang/Thread$UncaughtExceptionHandler from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/Thread$UncaughtExceptionHandler] [Loaded java/lang/ThreadGroup from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/ThreadGroup] [Loaded java/lang/Iterable from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/Iterable] [Loaded java/util/Collection from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Collection] [Loaded java/util/List from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/List] [Loaded java/util/RandomAccess from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/RandomAccess] [Loaded java/util/AbstractCollection from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/AbstractCollection] [Loaded java/util/AbstractList from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/AbstractList] [Loaded java/util/Vector from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Vector] [Created array class [Ljava/lang/Object;] [Loaded java/lang/StackTraceElement from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/StackTraceElement] [Created array class [Ljava/lang/StackTraceElement;] [Loaded java/lang/VMThrowable from /usr/local/jamvm/share/jamvm/classes.zip] [Linking class java/lang/VMThrowable] [Loaded java/lang/Throwable from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/Throwable] [Loaded java/lang/Error from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/Error] [Loaded java/lang/VirtualMachineError from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/VirtualMachineError] [Loaded java/lang/OutOfMemoryError from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/OutOfMemoryError] [Dynamic-linking native method java.lang.VMThrowable.fillInStackTrace ... internal] [Created primitive class int] [Created array class [I] [Loaded java/nio/Buffer from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/nio/Buffer] [Loaded java/nio/ByteBuffer from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/nio/ByteBuffer] [Loaded java/nio/DirectByteBufferImpl from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/nio/DirectByteBufferImpl] [Loaded gnu/classpath/Pointer from /usr/local/classpath/share/classpath/glibj.zip] [Linking class gnu/classpath/Pointer] [Loaded gnu/classpath/Pointer32 from /usr/local/classpath/share/classpath/glibj.zip] [Linking class gnu/classpath/Pointer32] [Loaded java/lang/LinkageError from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/LinkageError] [Loaded java/lang/NoClassDefFoundError from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/NoClassDefFoundError] [Loaded java/lang/ClassFormatError from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/ClassFormatError] [Loaded java/lang/IncompatibleClassChangeError from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/IncompatibleClassChangeError] [Loaded java/lang/NoSuchFieldError from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/NoSuchFieldError] [Loaded java/lang/NoSuchMethodError from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/NoSuchMethodError] [Loaded java/lang/ClassLoader from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/ClassLoader] [Loaded java/lang/SecurityManager from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/SecurityManager] [Loaded java/lang/ClassLoader$StaticData from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/ClassLoader$StaticData] [Loaded java/lang/VMClassLoader from /usr/local/jamvm/share/jamvm/classes.zip] [Linking class java/lang/VMClassLoader] [Loaded java/util/Map from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Map] [Loaded java/util/AbstractMap from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/AbstractMap] [Loaded java/util/HashMap from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/HashMap] [Loaded java/util/Map$Entry from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Map$Entry] [Loaded java/util/AbstractMap$BasicMapEntry from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/AbstractMap$BasicMapEntry] [Loaded java/util/HashMap$HashEntry from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/HashMap$HashEntry] [Created array class [Ljava/util/HashMap$HashEntry;] [Dynamic-linking native method java.lang.VMClassLoader.getBootClassPathSize ... internal] [Dynamic-linking native method java.lang.VMClassLoader.getBootClassPathResource ... internal] [Created array class [Ljava/lang/String;] [Loaded gnu/classpath/SystemProperties from /usr/local/classpath/share/classpath/glibj.zip] [Linking class gnu/classpath/SystemProperties] [Loaded java/util/Dictionary from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Dictionary] [Loaded java/util/Hashtable from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Hashtable] [Loaded java/util/Properties from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Properties] [Loaded java/util/Hashtable$HashEntry from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Hashtable$HashEntry] [Created array class [Ljava/util/Hashtable$HashEntry;] [Loaded gnu/classpath/VMSystemProperties from /usr/local/jamvm/share/jamvm/classes.zip] [Linking class gnu/classpath/VMSystemProperties] [Dynamic-linking native method gnu.classpath.VMSystemProperties.preInit ... internal] [Loaded java/util/Comparator from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Comparator] [Loaded java/lang/String$CaseInsensitiveComparator from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/String$CaseInsensitiveComparator] [Loaded java/lang/StringBuffer from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/StringBuffer] [Loaded java/lang/VMSystem from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/VMSystem] [Dynamic-linking native method java.lang.VMSystem.arraycopy ... internal] [Dynamic-linking native method gnu.classpath.VMSystemProperties.postInit ... internal] [Loaded java/lang/VMObject from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/VMObject] [Dynamic-linking native method java.lang.VMObject.clone ... internal] [Loaded java/util/Set from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Set] [Loaded java/util/AbstractSet from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/AbstractSet] [Loaded java/util/Hashtable$4 from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Hashtable$4] [Loaded java/util/Collections$SynchronizedCollection from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Collections$SynchronizedCollection] [Loaded java/util/Collections$SynchronizedSet from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Collections$SynchronizedSet] [Loaded java/util/Iterator from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Iterator] [Loaded java/util/Collections$SynchronizedIterator from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Collections$SynchronizedIterator] [Loaded java/util/Hashtable$EntryIterator from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Hashtable$EntryIterator] [Loaded java/util/Enumeration from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/Enumeration] [Loaded java/util/StringTokenizer from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/StringTokenizer] [Loaded java/io/File from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/io/File] [Loaded java/util/ArrayList from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/util/ArrayList] [Loaded java/io/VMFile from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/io/VMFile] [Loaded java/lang/System from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/lang/System] [Loaded java/io/Closeable from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/io/Closeable] [Loaded java/io/InputStream from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/io/InputStream] [Loaded java/io/FilterInputStream from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/io/FilterInputStream] [Loaded java/io/BufferedInputStream from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/io/BufferedInputStream] [Loaded java/io/FileInputStream from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/io/FileInputStream] [Loaded java/io/FileDescriptor from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/io/FileDescriptor] [Loaded java/nio/channels/Channel from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/nio/channels/Channel] [Loaded java/nio/channels/ReadableByteChannel from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/nio/channels/ReadableByteChannel] [Loaded java/nio/channels/WritableByteChannel from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/nio/channels/WritableByteChannel] [Loaded java/nio/channels/ByteChannel from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/nio/channels/ByteChannel] [Loaded java/nio/channels/GatheringByteChannel from /usr/local/classpath/share/classpath/glibj.zip] [Linking class java/nio/channels/GatheringByteChannel] [Loaded java/nio/channels/ScatteringByteChannel from /usr/local/classpath/shar