-findirect-dispatch: broken on Linux, working on Mingw?
Marco Trudel
mtrudel@gmx.ch
Fri Mar 9 15:09:00 GMT 2007
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.
Marco
> > That makes compiling the sample with indirect dispatch work (it also
> > runs correct). But I really have no idea what I'm doing... Maybe you
> > know more?
>> You should only ever link statically with libgcj, not libgcj_bc.
> That's only for shared libraries.
>> > > I guess my fix doesn't work on Windows becasue you don't use the
> > > static-libgcj command, so it assumes dynamic linking. I suppose for a
> > > staticonly build you really need
> > >
> > > *lib: -lgcj -lm -lpthread -lrt -ldl %(libgcc) %(liborig)
> >
> > You mean the original line, right?
>> I have no idea what you're talking about. What original line?
>> > Well, your original fix doesn't work on Linux either.
>> It works for me, as long as you compile with -static-libgcj.
>> > But with the changed one, it works too...
>> OK.
>> Andrew.
>
More information about the Java
mailing list