harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ilya Berezhniuk" <ilya.berezhn...@gmail.com>
Subject Re: [classlib][build][freebsd] Fix Classlib build for FreeBSD 6.3 x86
Date Thu, 04 Sep 2008 19:12:09 GMT
Mark,

Sorry, I missed your r691951 commit - I think it will fix all my DRLVM
build problems for FreeBSD/x86_64.


2008/9/4 Ilya Berezhniuk <ilya.berezhniuk@gmail.com>:
> Tim, Mark,
>
> Thanks a lot for your help!
>
> BTW, I'm already started porting to FreeBSD x86_64 (7.0 release), and
> also met mincore problem in OSMemoryLinux32.c; my patch looked like
> ===================================================================
> @@ -35,6 +35,13 @@
>  #define MAP_FAILED      ((void *) -1)
>  #endif
>
> +/* FreeBSD has 'char*' type for 'vec' argument */
> +#if defined(FREEBSD)
> +typedef char* mincore_vec_type_t;
> +#else
> +typedef unsigned char* mincore_vec_type_t;
> +#endif
> +
>  #define        OS_JNI(func) JNICALL
> Java_org_apache_harmony_luni_platform_OSMemory_##func
>
>  JNIEXPORT jboolean JNICALL
> Java_org_apache_harmony_luni_platform_OSMemory_isLittleEndianImpl(JNIEnv
> * env, jclass clazz)
> @@ -102,7 +109,7 @@
>          size   += align_offset;
>          page_count = (size+page_size-1)/page_size;
>          vec = (char *) hymem_allocate_memory(page_count*sizeof(char));
> -         if(mincore((void *)m_addr, size , (unsigned char *)vec)==0)
> //or else there is error about the mincore and return false;
> +         if(mincore((void *)m_addr, size ,
> (mincore_vec_type_t)vec)==0) //or else there is error about the
> mincore and return false;
>          {
>                  int i;
>                  for(i=0 ;i<page_count;i++)
> ===================================================================
>
> I also had some problems with hysigunix.c and hysignal_context.* that
> disappeared at all now, and still have some problems with DRLVM build.
> Also I was forced to build ICU for x86_64.
>
> I'm going to finish DRLVM changes and suggest a patch for
> FreeBSD/x86_64 (and I'll split it into small patches if it become too
> large).
>
> Thanks,
> Ilya.
>
>
> 2008/9/4 Mark Hindess <mark.hindess@googlemail.com>:
>>
>> In message <48BFC49C.6010509@gmail.com>, Tim Ellison writes:
>>>
>>> Mark Hindess wrote:
>>> > In message <48BFAB84.2090000@gmail.com>, Tim Ellison writes:
>>> >> Mark Hindess wrote:
>>> >>> +#if defined(FREEBSD)
>>> >>> +#define HY_VEC_T char
>>> >>> +#else
>>> >>> +#define HY_VEC_T unsigned char
>>> >>> +#endif
>>> >>> +         HY_VEC_T* vec = NULL;
>>> >> Am I misreading this?  It used to be char* on non-FREEBSD systems, and
>>> >> you needed to change it to be unsigned char* ?
>>> >
>>> > Not exactly.  But your confusion is understandable.  I should have explaine
>>> d
>>> > this change.  I'm fixing two things:
>>> >
>>> >    a) vec was a char* but the only place it was used as char* was in the
>>> >       cast from the void* returned by hymem_allocate_memory.  It was then
>>> >       forced to unsigned char*.  Logically it made more sense to just
>>> >       change vec to unsigned char* and fix the cast.
>>> >
>>> >    b) The type of the third parameter to mincore on freebsd needs to be
cha
>>> r*.
>>> >
>>> > That should make more sense now?
>>>
>>> Yes, thanks.  I had not figured out the 'double step'.
>>>
>>> > (Of course, if I'd committed it I would
>>> > have explained that in the commit message.)
>>>
>>> Of course ;-)
>>
>> I found an old Freebsd 6.2 qemu image and checked the change myself so
>> I've committed it as two trivial changes, rather than one complex change,
>> in r691981 and r691987.
>>
>> -Mark.
>>
>>
>>
>>
>>
>



-- 
Ilya.

Mime
View raw message