Can't build sparc-linux gcc-3.1 2001年12月19日 java/lang/ThreadGroup.lo

Jeff Sturm jsturm@one-point.com
Fri Dec 21 09:11:00 GMT 2001


On 21 Dec 2001, Tom Tromey wrote:
> >>>>> "Christian" == Christian Jönsson <c.christian.joensson@telia.com> writes:
>> Christian> /tmp/ccoq2Nfo.s: Assembler messages:
> Christian> /tmp/ccoq2Nfo.s:2598: Error: undefined symbol `.LL306' in operation
> Christian> /tmp/ccoq2Nfo.s:2628: Error: undefined symbol `.LL306' in operation
> Christian> make[3]: *** [java/lang/ThreadGroup.lo] Error 1
>> I believe this is a known problem. It is a bug in gcc proper, not in
> gcj specifically. I think someone is working on it; check the main
> gcc list.

This also applies to sparc-solaris. Something changed recently in the
way cleanups are generated, and this probably triggered a dormant bug in
the sparc backend.
Cleanups are emitted by gcj for synchronized statements. Previously, the
compiler would emit two calls to _Jv_MonitorExit, one for a normal return
and one for an exceptional return. Recently gcc tries to be more clever,
saving the address of a return label, branching to the cleanup code, and
branching back. This interacts somewhat poorly with -fPIC. (I haven't
isolated the exact gcc patch that started this.)
I have a workaround which itself is probably not correct, but does allow
the bootstrap to finish so I can test other things:
http://gcc.gnu.org/ml/gcc/2001-12/msg01079.html
Jeff


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /