[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compilation of Classpath with ecj on a 64-bit VM

From: Andrew John Hughes
Subject: Re: Compilation of Classpath with ecj on a 64-bit VM
Date: Mon, 05 Dec 2005 20:47:54 +0000

On Sun, 2005-12-04 at 14:10 +0100, Mark Wielaard wrote:
> Hi Andrew,
> On Sat, 2005-11-26 at 21:04 +0000, Andrew John Hughes wrote:
> >     I recently hit on the same bug again for the second time, and still
> > there seems to be no general solution to it.  ecj is a Java-based Java
> > compiler, which means that in compiling Classpath, it can run across
> > problems in the VM or Classpath.  On x86_64, this leads to a spurious
> > error with the MIN_DOUBLE value that ends up being misconverted from the
> > literal in the Java source file.
> >
> > back in July, and received no response then.  The original message that
> > refers to is even older (January 2004).  I believe this is quite a
> > serious issue, as it prevents the generics branch being compiled on
> > x86_64 (as only ecj can currently accomplish this), or ecj being used
> > there at all for that matter.  At the moment, I only solve this by using
> > a locally-modified version of kaffe.  I can't use a native version of
> > ecj for the same reason.
> > 
> > As such, I'm opening this to a wider audience in the hope of getting
> > some response.
> Was any of the responses you got "the solution"?
> What/How exactly did you modify kaffe to get past this?
> David (CCed) has the same problems with a current kaffe CVS snapshot.
> Thanks,
> Mark

I haven't had chance to look at doing anything with gcj yet.  The
current version I'm using is just in Debian unstable, and fiddling with
this means building my own...  so I'll probably talk a look over the
Christmas vacation period.

The patch I applied to Kaffe is the hack mentioned with changing the
value of MAX_BIGNUM_WDS in mprec.h.  I had manually changed this to 64
on my checkout.  However, doing an update shows that Kaffe now has this
fix.  I'm recompiling as I type, and I'll confirm that it is the case
that this works when that's done.   It sounds like the same patch has
gone into gcj, so HEAD should work there too.  The long-term fix is to
replace fdlib/mprec/whatever with a better-designed version when one can
be tracked down.

Long and short of it is that:

#define MAX_BIGNUM_WDS 32

in mprec.h is changed to:

#define MAX_BIGNUM_WDS 128

I only changed it to 64 with my quick hack.  Presumably, 128 will make
it even bigger.

Hope that's of some help,
Andrew :-)

Please avoid sending me Microsoft Office (e.g. Word, PowerPoint)

If you use Microsoft Office, support movement towards the end of vendor

"Value your freedom, or you will lose it, teaches history.
`Don't bother us with politics' respond those who don't want to learn."
-- Richard Stallman

Escape the Java Trap with GNU Classpath!
public class gcj extends Freedom implements Java { ... }

Attachment: signature.asc
Description: This is a digitally signed message part

reply via email to

[Prev in Thread] Current Thread [Next in Thread]