Hi, all,

Here is a list of minor bugs present in release 0.07:

- compilation fails (at least on Solaris) if zlib is not
  installed before building japhar. libtool complains with
  the following message:
  libtool: link: libtool library `libruntime.la' may not depend 
  on uninstalled libraries: ../../lib/zlib/libzlib.la

  Modifying lib/libruntime/Makefile.am as follow seems
  to solve the problem:

devl58:libruntime> diff Makefile.am.ini Makefile.am
49c49
< libruntime_la_LDFLAGS = -version-info 1:0:0 $(ZLIB)
---
> libruntime_la_LDFLAGS = -version-info 1:0:0
  
  (Please note that i'm not that familiar with libtool, and i can't
  clearly evaluate the consequences of this modification. It seems to
  work on Linux, where zlib is correctly installed, and on Solaris,
  where zlib isn't.)
  

- there is a typo in lib/libnative/java.lang/system.c that prevent Japhar
  from being compiled on systems that do not have tm_zone (but that have
  tm_isdst) in struct tm.
  
devl58:java.lang> diff system.c.ini system.c
323c323
<   value = (*env)->NewStringUTF(env, tzname[tm->tm_isdst]);   
---
>   value = (*env)->NewStringUTF(env, tzname[tminfo->tm_isdst]);   


- in arch/dynamic_loading.c, function DLL_findAlongPath() should return
  DLL_handle instead of DLL_handle*.
  
- also in arch/dynamic_loading.c, some incorrect tests are performed
  in DLL_load(), when lookding for static native library mappings:
  strstr() returns a NON-null pointer when the library name is matched.
    
devl58:arch> diff dynamic_loading.c.ini dynamic_loading.c
248c248
<   else if (!strstr(lib_path, "zip"))
---
>   else if (strstr(lib_path, "zip"))
253c253
<   else if (!strstr(lib_path, "sysresource"))
---
>   else if (strstr(lib_path, "sysresource"))
259c259
<   else if (!strstr(lib_path, "awt"))
---
>   else if (strstr(lib_path, "awt"))
274c274
< static DLL_LibHandle*
---
> static DLL_LibHandle
277c277
<   DLL_LibHandle *handle = NULL;
---
>   DLL_LibHandle handle = NULL;

    
- something more serious, now: as in Japhar 0.06, JThreadInfo->thread_id
  is never set, except in the case of the main thread.
  this leads a null pointer to be passed to threading functions
  such as THREAD_setPriority() when dealing with another thread than main.
  
  thread_id might be set in real_thread_start(), just after allocation
  of the JThreadInfo structure, in lib/libruntime/java.lang/thread.c,
  as follow:

devl58:java.lang>diff thread.c.ini thread.c
118a119
>   native_thread_info->thread_id = THREAD_getCurrent();


Hope this helps,

--Christophe

Reply via email to