[kaffe] Cross compilation on MacOS X - need a little help
Dalibor Topic
robilad at kaffe.org
Fri May 21 12:43:02 PDT 2004
Hi Nikolaus,
Dr. H. Nikolaus Schaller wrote:
> Here the issues that I could not solve (yet):
> 1. there is a warning about libreplace.a
>
> /bin/sh ../libtool --mode=link gcc -g -O2 -Wall -Wstrict-prototypes
> -fsigned-char -o libreplace.la dummyin6.lo getaddrinfo.lo
> getifaddrs.lo inet_pton.lo inet_ntop.lo memset.lo
> ar cru .libs/libreplace.a .libs/dummyin6.o .libs/getaddrinfo.o
> .libs/getifaddrs.o .libs/inet_pton.o .libs/inet_ntop.o .libs/memset.o
> ranlib .libs/libreplace.a
> ranlib: warning for library: .libs/libreplace.a the table of contents
> is empty (no object file members in the library define global symbols)
> creating libreplace.la
> (cd .libs && rm -f libreplace.la && ln -s ../libreplace.la libreplace.la)
It's a harmless thing, as far as I know. I've asked on the automake
mailing list for tips how to build the replacement function library
conditionally only when it's actually needed. If the automake experts
know an easy way, then I'll update the build system to do it.
> 2. while creating kaffe-native, I get the following error sequence:
>
> *** snip ***
> Making all in man
> Making all in libraries/javalib
> cp /Volumes/Data/hns/Documents/JAVA/kaffe-1.1.4/libraries/javalib/rt-
> precompiled.jar rt.jar
> Making all in test
> Making all in regression
> Making all in compile_time
> java.lang.ClassFormatError: truncated class
> at java.lang.ClassLoader.defineClass0 (ClassLoader.java)
> at java.lang.ClassLoader.defineClass (ClassLoader.java:179)
> at java.security.SecureClassLoader.defineClass
> (SecureClassLoader.java:32)
> at kaffe.lang.AppClassLoader$JarSource.findClass
> (AppClassLoader.java:143)
> at kaffe.lang.AppClassLoader.findClass (AppClassLoader.java:291)
> at java.lang.ClassLoader.loadClass (ClassLoader.java:142)
> java.lang.ClassFormatError: truncated class
> at java.lang.ClassLoader.defineClass0 (ClassLoader.java)
> at java.lang.ClassLoader.defineClass (ClassLoader.java:179)
> at java.security.SecureClassLoader.defineClass
> (SecureClassLoader.java:32)
> at kaffe.lang.AppClassLoader$JarSource.findClass
> (AppClassLoader.java:143)
> at kaffe.lang.AppClassLoader.findClass (AppClassLoader.java:291)
> at java.lang.ClassLoader.loadClass (ClassLoader.java:142)
> *** snip ***
>
> This continues several times for other make directories.
>
> Otherwise, the native and the cross-compilation runs without further
> errors.
>
> When I try to execute any .jar file, I get the same error messages.
Hm. I think that's a problem with the current compile_time tests. Tim,
would it be possible to change the all: target in
compile_time/Makefile.am to depend on nothing, and make the check-am:
target depend on CompileScript $(CLASS_FILES) ? That would solve this
cross-compilation problem, I believe, but I'm not sure whether it would
break the tests.
> 3. I was not able to properly configure the make install of the
> cross-compiled kaffe so that it does not get installed on the host's
> /usr/local
>
> Using --prefix=.... makes it being installed in the working directory
> but also the scripts java, kaffe, etc. have hard-coded the host path -
> which is intended to be different on the target machine.
>
> I.e. I want to create the cross compiled kaffe at
> $HOME/JAVA/kaffe-arm-linux/usr/local/bin/kaffe on the host but in a way
> that it can be copied to /usr/local/bin/kaffe on the target machine.
You could try to apply the ideas from
http://www.kaffe.org/pipermail/kaffe/2003-September/043913.html. I
haven't looked at it yet :(
cheers,
dalibor topic
More information about the kaffe
mailing list