The good news first: it compiles now. The problem I described in the
previous mail was that libjc was linked with the option "-module" (so
it can be dlopen()ed) and this is not portable. I removed the -module
and now it compiles.

I stripped out lots of ELF specific stuff, so my version could be 
interesting for a port to windows too. I just don't want to commit it
to "trunk" yet because it's completely untested.

@Archie Cobbs: Is the "-module" really important for libjc? If yes we'd
have to find a portable solution for this...

To make it compile I left the funtion "_jc_dynamic_invoke(...)" in the
file "libjc/arc/ppc/arch_functions.c" empty, but this function is needed
to run JCHEVM (it calls C functions and is needed for JNI AFAICS). Maybe
somebody with more PPC experience can help me with porting this function
from i386.

Cheers, David.

On Sat, 2005-11-26 at 11:44 +0100, David Tanzer wrote:
> Hi Again.
> 
> Now it compiles, but the linking fails:
> 
> Making all in jc
> /bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -g -O3 -pipe -Wall  
> -Waggregate-return -Wcast-align -Wchar-subscripts -Wcomment -Wformat - 
> Wimplicit -Wmissing-declarations -Wmissing-prototypes -Wnested- 
> externs -Wno-long-long -Wparentheses -Wpointer-arith -Wredundant- 
> decls -Wreturn-type -Wswitch -Wtrigraphs -Wuninitialized -Wunused - 
> Wwrite-strings -g -O2  -pthread -o jc  main.o ../libjc/libjc.la -ldl - 
> lpopt -lcrypto -lz -lm
> 
> *** Warning: Linking the executable jc against the loadable module
> *** libjc.so is not portable!
> ** Warning, lib libjc.so is a module, not a shared library
> 
> ** And there doesn't seem to be a static archive available
> ** The link will probably fail, sorry
> gcc -g -O2 -g -O3 -pipe -Wall -Waggregate-return -Wcast-align -Wchar- 
> subscripts -Wcomment -Wformat -Wimplicit -Wmissing-declarations - 
> Wmissing-prototypes -Wnested-externs -Wno-long-long -Wparentheses - 
> Wpointer-arith -Wredundant-decls -Wreturn-type -Wswitch -Wtrigraphs - 
> Wuninitialized -Wunused -Wwrite-strings -g -O2 -o .libs/jc main.o  - 
> pthread ../libjc/.libs/libjc.so -L/sw/lib -ldl /sw/lib/libpopt.dylib / 
> sw/lib/libintl.dylib /sw/lib/libiconv.dylib -lcrypto -lz -lm
> powerpc-apple-darwin8-gcc-4.0.1: unrecognized option '-pthread'
> /usr/bin/ld: ../libjc/.libs/libjc.so is input for the dynamic link  
> editor, is not relocatable by the static link editor again
> collect2: ld returned 1 exit status
> make[1]: *** [jc] Error 1
> make: *** [all-recursive] Error 1
> 
> Something similar is discussed here:
> http://www.cocoadev.com/index.pl?ApplicationLinkingIssues
> 
> Maybe somebody here on this list knows how to handle this.
> Cheers, David.
> 
> On Thu, 2005-11-24 at 17:22 +0100, David Tanzer wrote:
> > Hi Archie,
> > 
> > Thanks for your help so far. etc/makedist.sh runs now, and I have 
> > removed some more elf specific stuff from libjc/ (I hope I didn't 
> > destroy too much ;)). The build now hangs at libjc/gc_root.c where
> > _JC_REGISTER_OFFS is used for the first time. AFAICS this relies on
> > the i386 registers, so I guess this one will become more tricky to
> > port. I'll have a closer look into that over the weekend.
> > 
> > Cheers, David.
> > 
> > On Wed, 2005-11-23 at 11:56 -0600, Archie Cobbs wrote:
> > > David Tanzer wrote:
> > > > Thanks, your infos brought me a little bit further. Not etc/makedist.sh 
> > > > fails when it invokes jcjavah for the first time: the
> > > >   _JC_MUTEX_LOCK(...)
> > > > called from libjc/class_bytes.c (line 102) fails because of EINVAL, I'll
> > > > have a look at this in the next few days. Maybe you have some hints for
> > > > me where I could start?
> > > 
> > > Oops, fortunately that's an easy fix.. should be fixed now...
> > > svn update and try again.
> > > 
> > > -Archie
> > > 
> > > __________________________________________________________________________
> > > Archie Cobbs      *        CTO, Awarix        *      http://www.awarix.com
-- 
David Tanzer, Haghofstr. 29, A-3352 St. Peter/Au, Austria/Europe
http://deltalabs.at -- http://dev.guglhupf.net -- http://guglhupf.net
My PGP Public Key: http://guglhupf.net/david/david.asc
--
Real Programmers don't write in FORTRAN.  FORTRAN is for pipe stress freaks and
crystallography weenies.  FORTRAN is for wimp engineers who wear white socks.

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to