BZ #21: regression tests accessing longs fail on ppc

Status fields:

creation_ts:2006-03-26 09:09
cacao 0.94/0.95 built with gnu-classpath 0.20 and jikes 1.22 on Gentoo powerpc Linux

'make check' fails in the codepatching directory for tests operating on longs:

getfield (J): FAILED: 8213163617277379787 != 1234567890123
putfield (J): FAILED: 8213163617277379787 != 1234567890123
putfieldconst (J,D,L): FAILED: 8213163617277379787 != 123456789012

In each case, the lower word is getting duplicated into the high word. I first
saw this failure in building 0.94, and I was hoping that it would have been
fixed in version 0.95 after seeing the changelog:
powerpc bugfix: (M_COPY): Handle longs and doubles properly.

However, the problem did not go away in 0x95, so I guess either the changelog
refers to a separate issue or else it wasn't a complete fix...

Comment #1 by on 2006-03-26 11:56:42

This issue was fixed in SVN trunk.  Please try that one.

Comment #2 by on 2006-04-08 00:15:47

svn trunk doesn't seem to build on ppc starting around r4598. I just tried the
latest, r4745, with following error:

make[4]: Entering directory `/mnt/experimental/cacao/src/native'
/bin/sh ../../libtool --tag=CC --mode=compile powerpc-unknown-linux-gnu-gcc -DHA
VE_CONFIG_H -I. -I. -I../..  -I../../src -I../../src/vm/jit/powerpc -I../../src/
vm/jit/powerpc/linux -I../../src   -O0 -g3 -D__POWERPC__ -D__LINUX__ -ansi -peda
ntic -Wall -Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN
_SOURCE_EXTENDED -D_BSD_SOURCE -D_REENTRANT -c -o native.lo native.c
 powerpc-unknown-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -I../
../src/vm/jit/powerpc -I../../src/vm/jit/powerpc/linux -I../../src -O0 -g3 -D__P
OWERPC__ -D__LINUX__ -ansi -pedantic -Wall -Wno-long-long -D_POSIX_C_SOURCE=1995
native.c  -fPIC -DPIC -o .libs/native.o
native.c:196: error: `Java_java_lang_reflect_Constructor_getModifiersInternal'
undeclared here (not in a function)
native.c:196: error: initializer element is not constant
native.c:196: error: (near initialization for `dummynativetable[60]')
native.c:199: error: `Java_java_lang_reflect_Field_getModifiersInternal'
undeclared here (not in a function)
native.c:199: error: initializer element is not constant
native.c:199: error: (near initialization for `dummynativetable[62]')
native.c:220: error: `Java_java_lang_reflect_Method_getModifiersInternal'
undeclared here (not in a function)
native.c:220: error: initializer element is not constant
native.c:220: error: (near initialization for `dummynativetable[82]')
make[4]: *** [native.lo] Error 1

Can you recommend a rev that I could use to verify if this bug is really fixed?

Comment #3 by on 2006-04-10 13:27:43

SVN trunk does work, but you need to use a GNU Classpath CVS head version.