This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: [3.0 branch] libjava testsuite, i686-pc-linux-gnu --disable-shared
Bryce McKinlay writes:
>
> > This problem is caused by initialization in libgcj: class
> > initialization routines are being called before the C++ static
> > initializers that they depend on have been run.
> >
> > This patch removes the dependence on static initializers. It is
> > mostly the same as one posted by Bryce a couple of months ago.
> >
> > In practice it is almost impossible to control C++ static
> > initializers, so I propose that we ban them from now on.
>
> Agreed.
>
> > + finit_leg_name = _Jv_makeUtf8Const ("$finit$", 6);
>
> I think we can remove this?
Yes, but in another patch. Life is easier if each patch does one
thing.
> > {
> > ! // FIXME
> > ! //JvSynchronize sync (&ClassClass);
> > for (; *classes; ++classes)
> > {
>
> _Jv_RegisterClasses needs to be made thread-safe before we can
> check it in (thats the reason for the FIXME).
Hmm. Could you explain the problem? I mean, why is the JvSynchronize
commented out?
Andrew.