1. This particular #ifdef is used to wrap 'strdup', and NativeCMM.c is the only place where 'strdup' is used in Classlib.
2. Most changes are casting from jlong to void* through size_t to pass void* from JNI method to API function, and casting void* to jlong through size_t (for return values). Few other changes (except #ifdef you've pointed) are changing char* to const char* where it's needed, fixing wrong assignment in hysock.c, and small changes in time zone operations to fit FreeBSD API. 2008/9/3 Alexei Fedotov <[EMAIL PROTECTED]>: > Hello Ilya, > I like this nice and simple patch. > > 1. Let me address the following line of your patch as a part of my review: > > -#if defined(ZOS) || defined(LINUX) > +#if defined(ZOS) || defined(LINUX) || defined(FREEBSD) > > I notice that there are more files which have LINUX specific defines > (see below). Could you please ensure me that all these locations > should not be patched for FREEBSD? Well, I found one argument for > keeping them as is: Mark did not add ZOS there as well. > > 2. Do I understand correctly that all other changes are (size_t) casts? > > Thanks! > > fixed >> > working_classlib/modules/awt/src/main/native/lcmm/shared/NativeCMM.c:#if > defined(ZOS) || defined(LINUX) > working_classlib/modules/luni/src/main/native/launcher/unix/main_hlp.c:#if > defined(LINUX) > working_classlib/modules/luni/src/main/native/luni/shared/OSNetworkSystem.c:#ifdefined(LINUX) > working_classlib/modules/luni/src/main/native/luni/shared/luniglob.c:#if > defined(LINUX) && !defined(HY_NO_SIG) > working_classlib/modules/portlib/src/main/native/port/unix/hycpu.c:#elif > defined(LINUX) > working_classlib/modules/portlib/src/main/native/port/unix/hycpu.c:#if > defined(LINUX) && defined(ARMGNU) > working_classlib/modules/portlib/src/main/native/port/unix/hynlshelpers.c:#if > defined(LINUX) > working_classlib/modules/portlib/src/main/native/port/unix/hyosdump.c:#if > defined(LINUX) > working_classlib/modules/portlib/src/main/native/port/unix/hysock.c:#if > defined(LINUX) > working_classlib/modules/portlib/src/main/native/port/unix/hysysinfo.c:#if > !defined(LINUX) > working_classlib/modules/portlib/src/main/native/port/unix/hysysinfo.c:#if > defined(LINUX) > working_classlib/modules/portlib/src/main/native/sig/unix/hysiglinux.c:#if > defined(LINUX) > working_classlib/modules/portlib/src/main/native/sig/unix/hysigunix.c:#if > defined(LINUX) > working_classlib/modules/portlib/src/main/native/thread/shared/hythread.c:#if > !defined(LINUX) > working_classlib/modules/portlib/src/main/native/thread/shared/hythread.c:#if > defined(LINUX) > working_classlib/modules/portlib/src/main/native/thread/shared/thrprof.c:#if > defined(LINUX) > working_classlib/modules/portlib/src/main/native/thread/unix/linuxonexit.c:#if > defined(LINUX) > working_classlib/modules/portlib/src/main/native/thread/unix/thrcreate.c:#if > defined(LINUX) > working_classlib/modules/portlib/src/main/native/thread/unix/thrdsup.c:#if > defined(LINUX) > working_classlib/modules/portlib/src/main/native/thread/unix/thrdsup.c:#if > defined(LINUX) && defined(HYX86) > > > On Wed, Sep 3, 2008 at 7:54 PM, Ilya Berezhniuk > <[EMAIL PROTECTED]> wrote: >> Hi all, >> >> I prepared a patch to fix Harmony build on my FreeBSD 6.3 machine. >> >> Could anyone of classlib gurus review and approve Classlib part of >> this patch [1], as I'm not familiar with Classlib coding rules? >> >> Most of the problems were caused by casting jlong to void*, because >> sizes of these types are different, and -Werror was specified. >> In the patch I used double casting like (void*)(size_t)(jlong value). >> >> [1] https://issues.apache.org/jira/browse/HARMONY-5967 >> >> -- >> Ilya. >> > > > > -- > With best regards, > Alexei > -- Ilya.
