RTEMS & kaffe!

Oscar Martinez de la Torre omt at wm.estec.esa.nl
Wed Jan 19 08:29:39 PST 2000


Hi Kaffe-Fans!

	I'm trying to compile Kaffe for RTEMS on ERC32 chip!
	I've got it once on a Solaris host, but I realized
	that I need a filesystem!

	Before Christmas time I got a new RTEMS release with filesystem, and
	after testing successfully that I can put files
	inside a tar file and then link, and by untarring it,
	read and write them, I started to compile kaffe1.0.5
	but after several problems I was stopped because
	rtems-sparc-asm can not understand some assamble words,
	I discovered the scripts use i386 configuration
	I tried to change it but I was unable!

	So, I decided to come back to kaffe1.0b4,
	but the problem is the same, in other way, in this case,
	the register name are from i386 and it doesn't work!
	
	I have try to avoid the use of config/i386 and
	also set --host=sparc-sun-solaris2 but then some
	problems arise with libraries! :(

	I think that when I compiled kaffe-1.0b4 in Solaris-Sparc
	as it is similar a erc32, sparc-rtems-asm works,
	but now it doesn't work...
	
	Would you help me with the bloody configuration scripts?


Thank you anyway,
							Oscar

PD: 	I attach the output of the last configure!

--------------------------------------------------------
/opt/rtems/sparc-rtems/include/signal.h:29: warning: function
declaration isn't a prototype
support.c: In function `callMethodA':
support.c:399: unknown register name `esi' in `asm'
support.c:399: unknown register name `edi' in `asm'
support.c:399: unknown register name `edx' in `asm'
support.c:399: unknown register name `ecx' in `asm'
support.c:399: unknown register name `ebx' in `asm'
support.c:399: unknown register name `eax' in `asm'
support.c: In function `callMethodV':
support.c:581: unknown register name `esi' in `asm'
support.c:581: unknown register name `edi' in `asm'
support.c:581: unknown register name `edx' in `asm'
support.c:581: unknown register name `ecx' in `asm'
support.c:581: unknown register name `ebx' in `asm'
support.c:581: unknown register name `eax' in `asm'
sparc-rtems-gcc: file path prefix `/opt/rtems/sparc-rtems/include' never
used
gmake[3]: *** [support.lo] Error 1
gmake[3]: Leaving directory `/home/omt/kaffe-1.0b4/kaffe/kaffevm'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/home/omt/kaffe-1.0b4/kaffe/kaffevm'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/home/omt/kaffe-1.0b4/kaffe'

-----------------------------------------------------------------------------

You see that they are defined in  venus:~/kaffe-1.0b4$ cat
config/i386/common.h 

 * Make a call to a native or Java (JIT) method.
 *  This assembly code should build a standard C call using the passed
 *  call information.  By its nature this is highly processor specific.
 *  This function is mandatory for both JIT and Interpreter (since stubs
 *  have now been deprecated).
 */
/* Jason <jbaker at cs.utah.edu> notes that we must not use %ebx because
it's
 * used for shared lib support on ELF systems (Linux, FreeBSD3.0) and
gcc
 * will not save it before it uses it again, despite what we say in
asm().
 */
#define sysdepCallMethod(CALL)                                         
\
        asm volatile ("                                                
\n\
1:                                                                     
\n\
                cmpl $0,%0                                             
\n\
                je 3f                                                  
\n\
                decl %0                                                
\n\
                pushl (%1,%0,8)                                        
\n\
                jmp 1b                                                 
\n\
3:                                                                     
\n\
                call *%3                                               
\n\
                movl %5,%%edi                                          
\n\
                movb %4,%%cl                                           
\n\
                cmpb $0x46,%%cl                                        
\n\
                jne 4f                                                 
\n\
                fstps (%%edi)                                          
\n\
                jmp 6f                                                 
\n\
4:                                                                     
\n\
                cmpb $0x44,%%cl                                        
\n\
                jne 5f                                                 
\n\
                fstpl (%%edi)                                          
\n\
                jmp 6f                                                 
\n\
5:                                                                     
\n\
                movl %%eax,(%%edi)                                     
\n\
                cmpb $0x4a,%%cl                                        
\n\
                jne 6f                                                 
\n\
                movl %%edx,4(%%edi)                                    
\n\
6:                                                                     
\n\
        " :                                                            
\
          : "r" ((CALL)->nrargs),                                      
\
            "r" ((CALL)->args),                                        
\
            "r" ((CALL)->callsize),                                    
\
            "m" ((CALL)->function),                                    
\
            "m" ((CALL)->rettype),                                     
\
            "m" ((CALL)->ret)                                          
\
          : "eax", "ebx", "ecx", "edx", "edi", "esi", "cc", "memory"); 
\
        asm volatile ("                                                
\n\
                subl %0,%%esp                                          
\n\
        " : : "r" ((CALL)->argsize * sizeof(jint)) : "cc")
#endif

-----------------------


-- 
Óscar Martínez de la Torre -  Office Phone: +31-(0)71.565.5844
Telecommunication Engineer at Universidad Politécnica de Madrid 
European Space Agency ESTEC/TOS/EMS Erasmus Building Office Nb212 
Keplerlaan,1 - NL 2201 AZ - Noordwijk ZH - The Netherlands
Mail: omt at wm.estec.esa.nl - Personal Mail: omt at etsit.upm.es
-------------- next part --------------
venus:~/kaffe-1.0b4$ ./configure --target=rtems-sparc --host=i386-linux --with-staticlib --with-staticvm --with-engine=intrp --without-x
loading cache ./config.cache
checking for a BSD compatible install... (cached) /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... (cached) yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking for gnutar... (cached) tar
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... (cached) /opt/rtems/bin/sparc-rtems-gcc
checking whether the C compiler (/opt/rtems/bin/sparc-rtems-gcc -B/opt/rtems/erc32/lib/include -B/opt/rtems/sparc-rtems/include -I/opt/rtems/erc32/lib/include -I/opt/rtems/sparc-rtems/include -L/opt/rtems/erc32/lib -L/opt/rtems/sparc-rtems/lib -specs /opt/rtems/erc32/lib/bsp_specs -qrtems -g -Wall -ansi -fasm -O4 -mcpu=cypress ) works... yes
checking whether the C compiler (/opt/rtems/bin/sparc-rtems-gcc -B/opt/rtems/erc32/lib/include -B/opt/rtems/sparc-rtems/include -I/opt/rtems/erc32/lib/include -I/opt/rtems/sparc-rtems/include -L/opt/rtems/erc32/lib -L/opt/rtems/sparc-rtems/lib -specs /opt/rtems/erc32/lib/bsp_specs -qrtems -g -Wall -ansi -fasm -O4 -mcpu=cypress ) is a cross-compiler... yes
checking whether we are using GNU C... (cached) yes
checking whether /opt/rtems/bin/sparc-rtems-gcc accepts -g... (cached) yes
checking host system type... i386-pc-linux-gnu
checking for Cygwin environment... (cached) no
checking for mingw32 environment... (cached) no
checking for executable suffix... (cached) .exe
checking build system type... i386-pc-linux-gnu
checking for ranlib... (cached) /opt/rtems/bin/sparc-rtems-ranlib
checking for ld used by GCC... (cached) /opt/rtems/bin/sparc-rtems-ld
checking if the linker (/opt/rtems/bin/sparc-rtems-ld) is GNU ld... (cached) yes
checking for BSD-compatible nm... (cached) /opt/rtems/bin/sparc-rtems-nm
checking whether ln -s works... (cached) yes
loading cache ./config.cache within ltconfig
checking for object suffix... o
checking for /opt/rtems/bin/sparc-rtems-gcc option to produce PIC... -fPIC
checking if /opt/rtems/bin/sparc-rtems-gcc PIC flag -fPIC works... yes
checking if /opt/rtems/bin/sparc-rtems-gcc supports -c -o file.o... no
checking if we can lock with hard links... yes
checking if /opt/rtems/bin/sparc-rtems-gcc supports -fno-rtti -fno-exceptions ... no
checking if /opt/rtems/bin/sparc-rtems-gcc static flag -static works... none
checking if the linker (/opt/rtems/bin/sparc-rtems-ld) is GNU ld... yes
checking whether the linker (/opt/rtems/bin/sparc-rtems-ld) supports shared libraries... yes
checking command to parse /opt/rtems/bin/sparc-rtems-nm output... failed
checking how to hardcode library paths into programs... immediate
checking for /opt/rtems/bin/sparc-rtems-ld option to reload object files... -r
checking dynamic linker characteristics... Linux ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for objdir... .libs
creating libtool
loading cache ./config.cache
checking for _ prefix in compiled symbols... (cached) no
checking execution engine... intrp
checking for getpagesize... (cached) no
checking sun compatibility mode... yes
checking thread system... unix-jthreads
checking for a BSD compatible install... /usr/bin/ginstall -c
checking whether make sets ${MAKE}... (cached) yes
checking for jikes... no
checking for zip... (cached) zip
checking size of short... (cached) 2
checking size of int... (cached) 4
checking size of long... (cached) 4
checking size of long long... (cached) 8
checking size of __int64... (cached) 0
checking size of void*... (cached) 4
checking alignment of void*... (cached) 1
checking return type of signal handlers... (cached) void
checking whether signal handlers are one-shot... (cached) cross
checking how to run the C preprocessor... /opt/rtems/bin/sparc-rtems-gcc -E
checking for ANSI C header files... (cached) yes
checking for size_t... (cached) yes
checking for ssize_t... (cached) yes
checking for _mwvalidcheckl in -lmw... (cached) no
checking for sin in -lm... (cached) yes
checking for gethostname... (cached) no
checking for gethostname in -lnsl... (cached) no
checking for gethostbyname... (cached) no
checking for gethostbyname in -lnsl... (cached) no
checking for connect... (cached) no
checking for connect in -lsocket... (cached) no
checking for deflate in -lz... (cached) no
checking for mpz_add in -lgmp... (cached) no
checking for X... disabled
checking for ANSI C header files... (cached) yes
checking for fcntl.h... (cached) yes
checking for sys/time.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/socket.h... (cached) yes
checking for winnt.h... (cached) no
checking for wintypes.h... (cached) no
checking for wtypes.h... (cached) no
checking for winbase.h... (cached) no
checking for windows.h... (cached) no
checking for winsock.h... (cached) no
checking for dlfcn.h... (cached) no
checking for sys/ioctl.h... (cached) yes
checking for sys/filio.h... (cached) yes
checking for malloc.h... (cached) yes
checking for alloca.h... (cached) no
checking for sys/param.h... (cached) yes
checking for sys/utsname.h... (cached) yes
checking for pwd.h... (cached) yes
checking for asm/sigcontext.h... (cached) no
checking for sigcontext.h... (cached) no
checking for asm/signal.h... (cached) no
checking for signal.h... (cached) yes
checking for mach-o/rld.h... (cached) no
checking for sys/types.h... (cached) yes
checking for sys/stat.h... (cached) yes
checking for string.h... (cached) yes
checking for sys/select.h... (cached) yes
checking for poll.h... (cached) yes
checking for sys/poll.h... (cached) no
checking for memory.h... (cached) no
checking for bsd/libc.h... (cached) no
checking for dl.h... (cached) no
checking for features.h... (cached) no
checking for sys/wait.h... (cached) yes
checking for zlib.h... (cached) no
checking for netinet/tcp.h... (cached) yes
checking for netinet/in_systm.h... (cached) yes
checking for netinet/in.h... (cached) yes
checking for netdb.h... (cached) yes
checking for jpeglib.h... (cached) no
checking for png.h... (cached) no
checking for gmp.h... (cached) no
checking for kernel/OS.h... (cached) no
checking for dirent.h that defines DIR... (cached) yes
checking for opendir in -ldir... (cached) no
checking for gif_lib.h... (cached) no, not found or bad version
checking for sys/resource.h... (cached) yes
checking for getrusage... (cached) no
checking whether time.h and sys/time.h may both be included... (cached) yes
checking whether struct tm is in sys/time.h or time.h... (cached) time.h
checking for tm_zone in struct tm... (cached) no
checking for tzname... (cached) no
checking whether byte ordering is bigendian... (cached) yes
checking whether char is unsigned... (cached) yes
checking for inline... (cached) inline
checking for struct sigcontext... (cached) no
checking for struct sigcontext_struct (without asm/sigcontext.h)... (cached) no
checking for struct sigcontext_struct (with asm/sigcontext.h)... (cached) no
checking for strftime... (cached) no
checking for strftime in -lintl... (cached) no
checking for unistd.h... (cached) yes
checking for getpagesize... (cached) no
checking for working mmap... (cached) no
checking for select... (cached) no
checking for socket... (cached) no
checking for getsockname... (cached) no
checking for memcpy... (cached) yes
checking for memmove... (cached) yes
checking for mkdir... (cached) no
checking for getcwd... (cached) yes
checking for getwd... (cached) no
checking for gettimeofday... (cached) no
checking for ftime... (cached) no
checking for time... (cached) no
checking for uname... (cached) yes
checking for getuid... (cached) no
checking for remainder... (cached) yes
checking for remainderf... (cached) yes
checking for fmod... (cached) yes
checking for fmodf... (cached) yes
checking for drem... (cached) yes
checking for rint... (cached) yes
checking for floor... (cached) yes
checking for ceil... (cached) yes
checking for finite... (cached) yes
checking for isinf... (cached) yes
checking for isnan... (cached) yes
checking for strtod... (cached) no
checking for strerror... (cached) yes
checking for hstrerror... (cached) yes
checking for fcntl... (cached) yes
checking for ioctl... (cached) yes
checking for alarm... (cached) yes
checking for setitimer... (cached) no
checking for sigprocmask... (cached) yes
checking for sigsetmask... (cached) no
checking for sigemptyset... (cached) yes
checking for sigaddset... (cached) yes
checking for signal... (cached) yes
checking for sigaction... (cached) yes
checking for sbrk... (cached) yes
checking for valloc... (cached) no
checking for memalign... (cached) no
checking for mallopt... (cached) no
checking for mprotect... (cached) no
checking for madvise... (cached) no
checking for waitpid... (cached) no
checking for kill... (cached) yes
checking for fork... (cached) yes
checking for execve... (cached) yes
checking for execvp... (cached) yes
checking for sync... (cached) no
checking for fsync... (cached) yes
checking for atexit... (cached) no
checking for on_exit... (cached) no
checking for vsnprintf... (cached) no
checking for snprintf... (cached) no
checking for __throw... (cached) yes
checking for __terminate_func... (cached) yes
checking for __get_eh_info... (cached) yes
checking for declaration of select... (cached) no
configure: warning: when cross compiling, you may want to set ac_cv_c_char_unsigned to yes or no
checking for kaffeh... (cached) /home/omt/kaffe-1.0b4/kaffe/kaffeh/kaffeh
checking how to run the C preprocessor... /opt/rtems/bin/sparc-rtems-gcc -E
checking for path separator... (cached) path_separator
checking for directory separator... (cached) file_separator
creating ./config.status
creating Makefile
creating config/Makefile
creating include/Makefile
creating kaffe/Makefile
creating libraries/Makefile
creating kaffe/kaffevm/Makefile
creating kaffe/kaffevm/intrp/Makefile
creating kaffe/kaffevm/jit/Makefile
creating kaffe/kaffevm/gcj/Makefile
creating kaffe/kaffevm/systems/Makefile
creating kaffe/kaffevm/systems/unix-jthreads/Makefile
creating kaffe/kaffevm/systems/oskit-pthreads/Makefile
creating kaffe/kaffevm/systems/linux-threads/Makefile
creating kaffe/kaffevm/systems/beos-native/Makefile
creating kaffe/kaffe/Makefile
creating kaffe/kaffeh/Makefile
creating kaffe/man/Makefile
creating kaffe/scripts/Makefile
creating kaffe/scripts/bat/Makefile
creating kaffe/scripts/compat/Makefile
creating libraries/javalib/Makefile
creating libraries/clib/Makefile
creating libraries/clib/native/Makefile
creating libraries/clib/io/Makefile
creating libraries/clib/net/Makefile
creating libraries/clib/zip/Makefile
creating libraries/clib/math/Makefile
creating libraries/clib/management/Makefile
creating libraries/clib/awt/Makefile
creating libraries/clib/awt/X/Makefile
creating libraries/extensions/Makefile
creating libraries/extensions/comm/Makefile
creating libraries/extensions/comm/javalib/Makefile
creating libraries/extensions/pjava/Makefile
creating libraries/extensions/pjava/javalib/Makefile
creating libraries/extensions/servlet/Makefile
creating libraries/extensions/servlet/javalib/Makefile
creating kaffe/man/kaffe.1
creating libraries/javalib/rebuildLib
creating kaffe/scripts/install-jar
creating kaffe/scripts/kaffe
creating kaffe/scripts/javac
creating kaffe/scripts/javakey
creating kaffe/scripts/jar
creating kaffe/scripts/javap
creating kaffe/scripts/jdb
creating kaffe/scripts/pizza
creating kaffe/scripts/javadoc
creating kaffe/scripts/pizzadoc
creating kaffe/scripts/appletviewer
creating kaffe/scripts/rmic
creating kaffe/scripts/rmiregistry
creating kaffe/scripts/serialver
creating kaffe/scripts/native2ascii
creating kaffe/scripts/compat/java
creating kaffe/scripts/compat/javac
creating kaffe/scripts/compat/appletviewer
creating kaffe/scripts/compat/javadoc
creating test/Makefile
creating test/regression/Makefile
creating test/regression/TestScript
creating config/config.h
config/config.h is unchanged
creating include/jtypes.h
include/jtypes.h is unchanged
configuring in libltdl
running /bin/sh ./configure  --target=rtems-sparc --host=i386-linux --with-staticlib --with-staticvm --with-engine=intrp --without-x --enable-ltdl-convenience --cache-file=.././config.cache --srcdir=.
loading cache .././config.cache
checking for a BSD compatible install... (cached) /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... (cached) yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking for gnutar... (cached) tar
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... (cached) /opt/rtems/bin/sparc-rtems-gcc
checking whether the C compiler (/opt/rtems/bin/sparc-rtems-gcc -B/opt/rtems/erc32/lib/include -B/opt/rtems/sparc-rtems/include -I/opt/rtems/erc32/lib/include -I/opt/rtems/sparc-rtems/include -L/opt/rtems/erc32/lib -L/opt/rtems/sparc-rtems/lib -specs /opt/rtems/erc32/lib/bsp_specs -qrtems -g -Wall -ansi -fasm -O4 -mcpu=cypress -Wall -Wstrict-prototypes ) works... yes
checking whether the C compiler (/opt/rtems/bin/sparc-rtems-gcc -B/opt/rtems/erc32/lib/include -B/opt/rtems/sparc-rtems/include -I/opt/rtems/erc32/lib/include -I/opt/rtems/sparc-rtems/include -L/opt/rtems/erc32/lib -L/opt/rtems/sparc-rtems/lib -specs /opt/rtems/erc32/lib/bsp_specs -qrtems -g -Wall -ansi -fasm -O4 -mcpu=cypress -Wall -Wstrict-prototypes ) is a cross-compiler... yes
checking whether we are using GNU C... (cached) yes
checking whether /opt/rtems/bin/sparc-rtems-gcc accepts -g... (cached) yes
checking for working const... (cached) no
checking for inline... (cached) inline
checking host system type... i386-pc-linux-gnu
checking build system type... i386-pc-linux-gnu
checking for ranlib... (cached) /opt/rtems/bin/sparc-rtems-ranlib
checking for ld used by GCC... (cached) /opt/rtems/bin/sparc-rtems-ld
checking if the linker (/opt/rtems/bin/sparc-rtems-ld) is GNU ld... (cached) yes
checking for BSD-compatible nm... (cached) /opt/rtems/bin/sparc-rtems-nm
checking whether ln -s works... (cached) yes
loading cache .././config.cache within ltconfig
checking for object suffix... o
checking for /opt/rtems/bin/sparc-rtems-gcc option to produce PIC... -fPIC
checking if /opt/rtems/bin/sparc-rtems-gcc PIC flag -fPIC works... yes
checking if /opt/rtems/bin/sparc-rtems-gcc supports -c -o file.o... no
checking if we can lock with hard links... yes
checking if /opt/rtems/bin/sparc-rtems-gcc supports -fno-rtti -fno-exceptions ... no
checking if /opt/rtems/bin/sparc-rtems-gcc static flag -static works... none
checking if the linker (/opt/rtems/bin/sparc-rtems-ld) is GNU ld... yes
checking whether the linker (/opt/rtems/bin/sparc-rtems-ld) supports shared libraries... yes
checking command to parse /opt/rtems/bin/sparc-rtems-nm output... failed
checking how to hardcode library paths into programs... immediate
checking for /opt/rtems/bin/sparc-rtems-ld option to reload object files... -r
checking dynamic linker characteristics... Linux ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for objdir... .libs
creating libtool
loading cache .././config.cache
checking which extension is used for shared libraries... (cached) .so
checking which variable specifies run-time library path... (cached) LD_LIBRARY_PATH
checking for objdir... (cached) .libs
checking how to run the C preprocessor... /opt/rtems/bin/sparc-rtems-gcc -E
checking for ANSI C header files... (cached) yes
checking for malloc.h... (cached) yes
checking for memory.h... (cached) no
checking for stdlib.h... (cached) yes
checking for stdio.h... (cached) yes
checking for ctype.h... (cached) yes
checking for dlfcn.h... (cached) no
checking for dl.h... (cached) no
checking for dld.h... (cached) no
checking for string.h... (cached) yes
checking for strdup... (cached) no
checking for strchr... (cached) no
checking for strrchr... (cached) no
checking for index... (cached) no
checking for rindex... (cached) no
checking whether libtool supports -dlopen/-dlpreopen... (cached) no
checking for dlopen... (cached) no
checking for dlopen in -ldl... (cached) no
checking for dld_link in -ldld... (cached) no
checking for shl_load... (cached) no
checking command to parse /opt/rtems/bin/sparc-rtems-nm output... (cached) no
checking for _ prefix in compiled symbols... (cached) no
creating ./config.status
creating Makefile
creating config.h
config.h is unchanged


More information about the kaffe mailing list