[kaffe] Small XScale patch

Jari Korva jpkorva at iki.fi
Fri Feb 18 06:44:53 PST 2005


Hi,

I've sent this patch already before
(http://www.kaffe.org/pipermail/kaffe/2005-January/101250.html),
but this time I checked that it is correct (at least on my StrongARM and
XScale IXP boxes :)

The patch fixes this error:

> armv5b-softfloat-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../../../config
> -I../../../include/kaffe -I../../../include -I../../../config
> -I../../../config -I../../../kaffe/kaffevm/systems/unix-pthreads
> -I../../../include -I../../../kaffe/kaffevm -I../../../kaffe/jvmpi
> -I/wrk/arm/kaffe-cvs-head/./kaffe/kaffevm
> -I/wrk/arm/kaffe-cvs-head/./kaffe/kaffevm/jit
> -I/wrk/arm/kaffe-cvs-head/./kaffe/kaffevm/systems/unix-pthreads
> -I../../../replace -I../../../binreloc -I../../../config
> -I../../../include -DKAFFE_VMDEBUG -D_REENTRANT -g -O2 -Wchar-subscripts
> -Wcomment -Wformat=2 -Wimplicit-function-declaration -Wimplicit-int
-Wmain
> -Wmissing-braces -Wparentheses -Wsequence-point -Wreturn-type -Wswitch
> -Wswitch-default -Wswitch-enum -Wtrigraphs -Wunused-function
> -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value
> -Wunknown-pragmas -Wstrict-aliasing -W -Wfloat-equal -Wundef
> -Wendif-labels -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual
> -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare
> -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes
> -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute
> -Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long
> -Wdisabled-optimization -fsigned-char -pthread -DENABLE_BINRELOC -MT
> gc-incremental.lo -MD -MP -MF .deps/gc-incremental.Tpo -c
gc-incremental.c
> -fPIC -DPIC -o .libs/gc-incremental.o
> In file included from ../../../config/arm/linux/jit-md.h:18,
>                  from ../../../config/jit-md.h:1,
>                  from
> /wrk/arm/kaffe-cvs-head/kaffe/kaffevm/jit/stackTrace-impl.h:4,
>                  from ../../../kaffe/kaffevm/threadData.h:6,
>                  from
> ../../../kaffe/kaffevm/systems/unix-pthreads/thread-internal.h:25,
>                  from
> ../../../kaffe/kaffevm/systems/unix-pthreads/thread-impl.h:25,
>                  from ../../../kaffe/kaffevm/locks.h:16,
>                  from gc-incremental.c:22:
> ../../../config/arm/jit.h:107: warning: packed attribute causes
> inefficient alignment for `meth'
> ../../../config/arm/jit.h:109: warning: packed attribute causes
> inefficient alignment for `trampaddr'
> In file included from
> ../../../kaffe/kaffevm/systems/unix-pthreads/thread-impl.h:25,
>                  from ../../../kaffe/kaffevm/locks.h:16,
>                  from gc-incremental.c:22:
> ../../../kaffe/kaffevm/systems/unix-pthreads/thread-internal.h:420:
> warning: function declaration isn't a prototype
> gc-incremental.c: In function `gc_heap_isobject':
> gc-incremental.c:244: warning: cast increases required alignment of
target
> type
> gc-incremental.c: In function `KaffeGC_WalkConservative':
> gc-incremental.c:339: error: parse error before ')' token
> gc-incremental.c:339: error: parse error before ';' token
> gc-incremental.c:341: error: parse error before ')' token
> gc-incremental.c:343: error: `p' undeclared (first use in this function)
> gc-incremental.c:343: error: (Each undeclared identifier is reported
only
> once
> gc-incremental.c:343: error: for each function it appears in.)
> gc-incremental.c: At top level:
> gc-incremental.c:348: error: parse error before '}' token
> gc-incremental.c: In function `gcGetObjectBase':
> gc-incremental.c:410: warning: cast increases required alignment of
target
> type
> make[3]: *** [gc-incremental.lo] Error 1
> make[3]: Leaving directory
> `/wrk/arm/kaffe-cvs-head/kaffe/kaffevm/kaffe-gc'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/wrk/arm/kaffe-cvs-head/kaffe/kaffevm'
> make[1]: *** [kaffe-build-order] Error 2
> make[1]: Leaving directory `/wrk/arm/kaffe-cvs-head'
> make: *** [all-recursive] Error 1
>
>
> Preprosessor output for line 339 is the following...
>
>   for (mem = ((const int8*)base) + (size & (uintp)-) - sizeof(void*);
>
> ... so it seems that that ALIGNMENTOF_VOIDP is not correctly defined
> for arm/linux.

Cheers,
  Jari
-------------- next part --------------
Index: config/arm/linux/config.frag
===================================================================
RCS file: /cvs/kaffe/kaffe/config/arm/linux/config.frag,v
retrieving revision 1.8
diff -a -u -r1.8 config.frag
--- config/arm/linux/config.frag	20 Jan 2005 23:19:18 -0000	1.8
+++ config/arm/linux/config.frag	18 Feb 2005 14:19:02 -0000
@@ -12,4 +12,5 @@
   ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped='yes'}
 #  ac_cv_func_utime_null=${ac_cv_func_utime_null='yes'}
   ac_cv_c_char_unsigned=${ac_cv_c_char_unsigned='no'}
+  ac_cv_sizeof_voidp=${ac_cv_sizeof_voidp='4'}
 fi


More information about the kaffe mailing list