[kaffe] Cross compilation on MacOS X - need a little help

Michael Franz m.franz at verizon.net
Thu May 20 19:46:04 PDT 2004


The native compilation will not work.  It will compile, but does not  
produce a working version of Kaffe (on Mac OS X).  If you want to cross  
compile, I would recommend starting with a different platform.

Michael
On Thursday, May 20, 2004, at 03:26 PM, Dr. H. Nikolaus Schaller wrote:

> Dear all,
>
> I am trying to cross-compilie kaffe-1.1.4 for the arm-linux  
> architecture (Sharp Zaurus) and it works astonishingly well and  
> straightforward (great work!) - besides some final issues.
>
> Here the host system:
> Host:
> * Apple Powerbook G4 with MacOS X 10.3.3
> * gcc-2.95.3 cross compiler for arm-linux
>
> 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)
>
> 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.
>
> 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.
>
> Any help is greatly appreciated.
>
> Nikolaus Schaller
>
> +------------------+
> ! hns at computer.org !
> !       make       !
> !     software     !
> +------------------+
>
>
> _______________________________________________
> kaffe mailing list
> kaffe at kaffe.org
> http://kaffe.org/cgi-bin/mailman/listinfo/kaffe
>





More information about the kaffe mailing list