[kaffe] Problem with gc_pgbits

daniel at fh-konstanz.de daniel at fh-konstanz.de
Wed Sep 7 04:44:35 PDT 2005


Hello list!

I want to port kaffe-1.0.7 on arm7 with eCos as OS. I have taken the
kaffe-1.0.7, because this version was adapted for ecos from www.sinby.com.

I have built an eCos library; after this step, I have configured kaffe by
starting ‘configure’ with following option and environment variable settings:

whereis_ecosbase="/usr/local/Projekt/version_install"
whereis_arm_elf="`which arm-elf-gcc`/../../"
whereis_gcclib="`find ${whereis_arm_elf} -type d -name include | grep gcc-lib`"
whereis_kaffeh="/usr/local/kaffe-1.0.7_for_eCos-2.0/kaffe/kaffeh/kaffeh_for_1.0.7.exe"
export KAFFEH=${whereis_kaffeh}
export ECOS_ENV_DIR=${whereis_ecosbase}
export LDFLAGS="-nostartfiles -Ttarget.ld -nostdlib -L$ECOS_ENV_DIR/lib "
export OPTS="-O2 -Wall"
export CFLAGS="-mcpu=arm7tdmi -mbig-endian -malignment-traps -g $OPTS"
export CPPFLAGS="-I$ECOS_ENV_DIR/include -nostdinc -D__ECOS"
export COMMAND_PREFIX=arm-elf
export LD=$COMMAND_PREFIX-ld
export NM=$COMMAND_PREFIX-nm
export AR=$COMMAND_PREFIX-ar
export RANLIB=$COMMAND_PREFIX-ranlib
export CPP=$COMMAND_PREFIX-cpp
export OBJCOPY=$COMMAND_PREFIX-objcopy
export LD_LIBRARY_PATH=/usr/local/lib/

mv -f config.cache config.cache.old
make clean

sh configure --with-engine=intrp --with-includes=${whereis_gcclib}
--host=arm-ecos --build=i686-cygwin --with-staticlib --with-staticbinary
--with-staticvm

There is also a "config.frag" file in the directory "/config/arm/ecos/", which I
have modified with the following options:

# Copyright (c) 2000 Sinby.com
# All Rights Reserved
#
# This project is covered by the GNU General Public License.
#
# $Id: config.frag,v 1.4 2002/05/17 07:28:42 ryos Exp $

#
# arm/ecos configuration
#
echo "************************************************************"
echo "Using ARM/ECOS config.frag"
echo "************************************************************"

ac_cv_prog_cc_cross='yes'
cross_compiling='yes'
enable_xprofiling='no'

host_cpu=arm
host_os=ecos

with_staticlib=yes 
with_libraries=yes 
with_x=no
with_threads=ecos-native

ac_cv_c_bigendian='yes'
ac_cv_sizeof_int='4'
ac_cv_sizeof_long='4'
ac_cv_sizeof_long_long='8'
#ac_cv_sizeof___int64='8'
ac_cv_sizeof_short='2'
ac_cv_sizeof_voidp='4'
ac_cv_alignmentof_voidp='4'

ac_cv_c_char_unsigned='no'
ac_cv_typedef_bool='yes'

dynamic_libraries='no'
ac_cv_func_dlopen='no'
ac_cv_func_dlerror='no'
ac_cv_func_sbrk='no'
ac_cv_func_getuid='no'

ac_cv_func_strerror='yes'

ac_cv_header_sys_utsname_h='no'

enable_mips2='no'

After running the configure script, I wanted to build it with ‘make’. I get
following errors while running the makefile:


/.libs/libkaffevm.a -Wl,--rpath -Wl,/usr/local/lib
../kaffevm/.libs/libkaffevm.a(gc.o): In function `gcMarkAddress':
mem/gc-incremental.c:248: undefined reference to `gc_pgbits'
../kaffevm/.libs/libkaffevm.a(gc.o): In function `gcMarkObject':
mem/gc-incremental.c:261: undefined reference to `gc_pgbits'
../kaffevm/.libs/libkaffevm.a(gc.o): In function `gcGetObjectSize':
mem/gc-incremental.c:294: undefined reference to `gc_pgbits'
../kaffevm/.libs/libkaffevm.a(gc.o): In function `gcGetObjectIndex':
mem/gc-incremental.c:307: undefined reference to `gc_pgbits'
../kaffevm/.libs/libkaffevm.a(gc.o): In function `gcGetObjectBase':
mem/gc-incremental.c:353: undefined reference to `gc_pgbits'
../kaffevm/.libs/libkaffevm.a(gc.o):mem/gc-incremental.c:395: more undefined
ref
erences to `gc_pgbits' follow
../kaffevm/.libs/libkaffevm.a(thread.o): In function `createInitialThread':
/usr/local/kaffe-1.0.7_for_eCos-2.0/kaffe/kaffevm/thread.c:254: undefined
refere
nce to `cyg_libc_main_stack_size'
collect2: ld returned 1 exit status
rm -f .libs/kaffe-binS.o
make[2]: *** [kaffe-bin] Error 1

Can anybody analyse, why this error appears? I have checked the "gc-incremental"
file, but it includes the "mem-gc"-file, which include the necessary "gc_pgbits"
–Integer variable.
Thank you so much for answering!








More information about the kaffe mailing list