-findirect-dispatch: broken on Linux, working on Mingw?

Andrew Haley aph@redhat.com
Sat Mar 10 06:53:00 GMT 2007


Marco Trudel writes:
 > Andrew Haley wrote:
 > > Marco Trudel writes:
 > >  > Andrew Haley wrote:
 > >  > > Marco Trudel writes:
 > >  > >  > Andrew Haley wrote:
 > >  > >  > > Marco Trudel writes:
 > >  > > 
 > >  > >  > >  > Is there a better way to solve this problem?
 > >  > >  > > 
 > >  > > 
 > >  > > Notice this fragment:
 > >  > > 
 > >  > > -lgcc -lgcj_bc -lm
 > >  > > 
 > >  > > shouldn't be there.  -lgcj_bc should only be linked when linking
 > >  > > dynamically.  It should be 
 > >  > > 
 > >  > > -lgcc -lgcj -lm
 > >  > 
 > >  > Well then, lets take your suggested line:
 > >  > *lib: %{static-libgcj:-non_shared -lgcj 
 > >  > -call_shared;:%{s-bc-abi:-lgcj_bc;:-lgcj}} -lm   -lpthread -lrt    -ldl 
 > >  > %(libgcc) %(liborig)
 > >  > and change it to:
 > >  > *lib: %{static-libgcj:-non_shared -lgcj 
 > >  > -call_shared;:%{s-bc-abi:-lgcj;:-lgcj}} -lm   -lpthread -lrt    -ldl 
 > >  > %(libgcc) %(liborig)
 > > 
 > > My suggestion is
 > > 
 > > *lib: -lgcj  -lm   -lpthread -lrt    -ldl %(libgcc) %(liborig)
 > 
 > Sorry, I wasn't sure if you meant this as suggestion or if you meant 
 > that I just should stay with the default. This prints "gcj: unrecognized 
 > option '-s-bc-abi'" as warning but otherwise works.

OK, rewrite that to

*lib: %{s-bc-abi:} -lgcj  -lm   -lpthread -lrt    -ldl %(libgcc) %(liborig)

Now, I'm very confused.  I don't know why you are getting all this
stuff in Windows.  It shouldn't be there.  The logic (in configure.host)
that controls this is:

case "${host}" in
  *linux*|*-kfreebsd*-gnu)
    use_libgcj_bc=yes
  ;;
  *)
    use_libgcj_bc=no
  ;;
esac    

Without use_libgcj_bc set to "yes" you should get the simple *lib line
above.  There should be no references to -lgcj_bc.

So, I don't know where your strage Windows *lib line came from.

Andrew.



More information about the Java mailing list