Bug on Solaris

Martin Kahlert martin.kahlert@infineon.com
Wed Jan 9 08:11:00 GMT 2002


Hi Jeff,

On Wed, Jan 09, 2002 at 10:44:47AM -0500, Jeff Sturm wrote:
> On Wed, 9 Jan 2002, Martin Kahlert wrote:
> > cool idea, and i immediately changed the line 
> > if (FLOAT_WORDS_BIG_ENDIAN)
> > into
> > if (FLOAT_WORDS_BIG_ENDIAN && sizeof(num[0]) < 8)
> > and after that the prog worked o.k. for the testcase on Linux and Solaris.
> 
> Good.  Thanks for trying that.  It failed on my sparcv9 and alpha builds,
> apparently for unrelated reasons :(

This change survived a full bootstrap on sparc-sun-solaris2.7 with snapshot
gcc-20020107 here (only took me a day...)
My program compiles and seems to work correctly with it. I will check JNI tomorrow.

So i would be glad, if anybody would check in a correct fix for this bug
(considering my one an ugly hack only demonstrating that your suspicion was correct).

> > What's the idea behind HOST_WIDE_INT? For the java frontend, all the
> > types are defined exactly by Sun. E.g. an int has 32 bits and so on.
> > So wouldn't types like int32_t be better for such tasks?
> 
> We're pretty much constrained to using GCC's type system.  HOST_WIDE_INT
> is normally the largest integer type the host compiler can accomodate,
> i.e. `long long' if the compiler supports it, else `long'.
> 
> However for building gcj we don't support non-GCC host compilers, so
> "sizeof(HOST_WIDE_INT) >= 8" is probably a safe bet.

This makes the byte swap unneccessary on all architectures, doesn't it?

Thanks,
Martin.

-- 
The early bird catches the worm. If you want something else for       
breakfast, get up later.



More information about the Java mailing list