harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Enrico Migliore <enrico.migli...@fatti.com>
Subject Re: [jchevm] Cygwin issues
Date Mon, 20 Feb 2006 16:11:25 GMT
snowdosker wrote:

> Hello, Enrico
>
> 2) in order to proceed, let's "align" our development environment in 
> terms
>
>> of source code modifications. In fact, to build jchevm, just like 
>> you, I had
>> to add some declarations in some header files, and modify the pread()
>> call into a read(). My proposal is the following:
>> let's install the new versions of Cygwin, Classpath, and jchevm,
>> build them from scratch, produce a written document with all the steps
>> and modifications, and post it this mailing list.
>> Afterwards, we will be able to write and debug some test cases.
>>
>> what do you think?
>>
>
> I think that I already did this since started.. Just recorded all (or 
> I hope all)  I did
> Below is copy of my records....
>
>
> Install  Cygwin  ( 
> http://developer.classpath.org/mediation/ClasspathOnCygwin )
>    + gcc-core
>    + gcc-g++
>    + gcc-java
>    + make
>    + zip
>    + GTK
>    + pkgconfig
>    + autocofig
>    + automake
>    + libtool
> (not sure that I recorded all optional packages I installed)
>
>
> Download  jikes  from
> http://prdownloads.sourceforge.net/jikes/jikes-1.22.tar.bz2?download
>
> Apply this patch
> http://sourceforge.net/tracker/index.php?func=detail&aid=1202863&group_id=128803&atid=712760

>
>
>
> build jikes ( cygwin version )
> -----------------
> $ tar -xjf jikes-1.22.tar.bz2
> $ cd jikes-1.22
> $ ./configure
> $ make && make install
>
>
>
> Build Classpth-0.20
> -----------------
> $ ./configure --with-jikes --enable-gtk-peer --enable-jni
> $ make
> $install
>
>
> Build JCHEVM
> -----------------
> $ ./configure --with-classpath=/usr/local/classpath
> Add cache clean to  autogen.sh  before each call automake or autoconfig
> -- 
> rm -rf autom4te*.cache
> echo "running automake"
> ....
> rm -rf autom4te*.cache
> echo "running autoconf"
> ---
>
>
> libjc/definitions.h    ADD
> --------------------
> #if defined (__CYGWIN__)
> #define PTHREAD_STACK_MIN 1024
> #endif
>
>
> libjc/properties.c    ADD
> --------------------
> #if defined(__CYGWIN__)
>    if (_jc_set_property(env,
>        "user.timezone", _tzname[0]) != JNI_OK)
>        return JNI_ERR;
> #else
>
>    if (_jc_set_property(env,
>        "user.timezone", localtime(&now)->tm_zone) != JNI_OK)
>        return JNI_ERR;
> #endif
>
>
> libjc/os_functions.c  ADD
> --------------------
> /************************************************************************
> *                CYGWIN                    *
> ************************************************************************/
>
> #elif defined(__CYGWIN__)
>
> #include <unistd.h>
>
> int
> _jc_num_cpus(_jc_env *env)
> {
>
>       return (int)sysconf(_SC_NPROCESSORS_ONLN);
> }
>
>
>
> in libjc/zip.c   replace
> ---------------------------------
> pread(3) with  lseek,read
>
>
> libjc/arch/arch_definitions.h
> -----------------------------------
> Remove:
> #define _JC_LIBRARY_FMT        "lib%s.so"
>
> Add:
> #define _JC_LIBRARY_FMT        "lib%s.dll.a"
>
>
>
> libjc/arch/i386/i386_libjc.h    ( not sure for this is correct! )
> -------------------
> #elif defined(__CYGWIN__)
> extern inline const void *
> _jc_jmpbuf_sp(const sigjmp_buf buf)
> {
>    return (const void *)buf[7];
> }
>
>
>
>
> libjc\native\java_lang_VMThread.c  ADD
> --------------------------------------------
> /* Cygwin pthread_create() with supplied attributes is completely 
> broken! */
> #ifdef __CYGWIN__
> #define _JC_NO_THREAD_ATTRIBUTES    1
> #endif
>
>
>
> libjc\jc_invoke.c
> ---------------------------------------------
> in "static const struct poptOption jc_popt_options[] = {" remove   
> POPT_AUTOHELP
>  
>
> in libjc\arch\arch_definitions.h
> redefine dll name format for cygwin
> --------------------------------
> #if defined(__CYGWIN__)
>  #define _JC_LIBRARY_FMT        "cyg%s-0.dll"
> #elif
>  #define _JC_LIBRARY_FMT        "lib%s.dll.a"
> #endif

Hi Ivan,

ok, in order to double check these guidelines, I'll do the whole
build from scratch and see if they lead me to the point where you are now.
I'll have the time to do it tomorrow or wednsday, though.

In the mean time, could you try to: apply the latest Archie's patch, 
enable the assertions,
and see where jchevm exits?

Enrico

Mime
View raw message