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

Marco Trudel mtrudel@gmx.ch
Fri Mar 16 15:08:00 GMT 2007


Andrew Haley wrote:
> Marco Trudel writes:
>  > Marco Trudel wrote:
>  > > Andrew Haley wrote:
>  > >> Marco Trudel writes:
>  > >>  > Andrew Haley wrote:
>  > >>  > > Marco Trudel writes:
>  > >>  > >  > Andrew Haley wrote:
>  > >>  > >
>  > >>  > >  [snip]
>  > >>  > >  > >  > > Without use_libgcj_bc set to "yes" you should get the 
>  > >> simple *lib line
>  > >>  > >  > > above.  There should be no references to -lgcj_bc.
>  > >>  > >  >  > >  > What about the the host=Linux target=Linux compiler? 
>  > >> -findirect-dispatch  > >  > doesn't work either.
>  > >>  > >  > > Eh?  Works for me and everyone else using it.
>  > >>  >  > It seems we talked about different setups all along. So let me 
>  > >> start  > from scratch again, simplify it and combine it with the 
>  > >> progress you  > already archived:
>  > >>  >  > I use a static gcj rev 122749, host=Linux, target=Linux.
>  > >>
>  > >> Configured with --disable-shared?  On Linux?
>  > > 
>  > > Yes.
>  > > 
>  > >> Surely not; that makes no sense at all.
>  > > 
>  > > For the sake of consistency, it does. At least in my case ;-)
> 
> You're configuring in a way that makes a broken compiler.  
> 
> Your gun, your bullet, your foot.
> 
> It is arguable that we should change the libgcj.spec rule so that when
> compiling with indirect dispatch in this broken case we should not
> error.  But indirect dispatch can't work properly with
> --disable-shared anyway, as I've already explained.

When someone knows what he's doing, indirect dispatch can be helpful. 
Even with a static GCJ build. It worked with 4.2 and in 4.3 it still 
works for target=Mingw. So it would be nice if it would work for 
target=Linux by default too.
BTW: ecj.jar is compiled with -findirect-dispatch. This implies that a 
shared GCJ is picked for the compilation. Might fail...

> For the Windows case, we need to know why the configury test isn't
> working before going any further.  Then, we can change it so that
> anyone who misconfigures a Linux compiler with --disable-shared gets
> the same rule in libgcj.spec.

Forget about all the Windows things. Somewhen along the road I may have 
been imprecise or you didn't read my description correctly. There's no 
issue with Windows. Let's concentrate on the host=Linux target=Linux 
compiler.


Marco



More information about the Java mailing list