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