Patchwork Define FFI_SIZEOF_JAVA_RAW to 4 for x32

login
register
mail settings
Submitter H.J. Lu
Date July 18, 2012, 4:27 p.m.
Message ID <20120718162727.GA23420@intel.com>
Download mbox | patch
Permalink /patch/171741/
State New
Headers show

Comments

H.J. Lu - July 18, 2012, 4:27 p.m.
On Mon, Jul 16, 2012 at 01:14:08PM -0700, H.J. Lu wrote:
> Hi,
> 
> This patch defines FFI_SIZEOF_JAVA_RAW to 4 for x32, similar to MIPS n32.
> It fixed:
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53982
> 
> 

Hi,

Here is the patch with updated ChangeLog entry.  X32 has the same issue
as MIPS n32, which was fixed by FFI_SIZEOF_JAVA_RAW:

http://gcc.gnu.org/ml/gcc-patches/2007-11/msg01612.html
http://gcc.gnu.org/ml/gcc-patches/2007-12/msg00005.html

The same fix is needed for x32.  OK for trunk?

Thanks.


H.J.
---
2012-07-16  H.J. Lu  <hongjiu.lu@intel.com>

	* src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for
	x32.
	(FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
Uros Bizjak - July 18, 2012, 6:44 p.m.
On Wed, Jul 18, 2012 at 6:27 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:

>> This patch defines FFI_SIZEOF_JAVA_RAW to 4 for x32, similar to MIPS n32.
>> It fixed:
>>
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53982
>
> Here is the patch with updated ChangeLog entry.  X32 has the same issue
> as MIPS n32, which was fixed by FFI_SIZEOF_JAVA_RAW:
>
> http://gcc.gnu.org/ml/gcc-patches/2007-11/msg01612.html
> http://gcc.gnu.org/ml/gcc-patches/2007-12/msg00005.html
>
> The same fix is needed for x32.  OK for trunk?
>
> 2012-07-16  H.J. Lu  <hongjiu.lu@intel.com>
>
>         * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for
>         x32.
>         (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.

How did you tested this patch? Does it fix all the problems from
PR53982, including the one that is not 100% reproducible?

Uros.
H.J. Lu - July 18, 2012, 7:10 p.m.
On Wed, Jul 18, 2012 at 11:44 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Wed, Jul 18, 2012 at 6:27 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>
>>> This patch defines FFI_SIZEOF_JAVA_RAW to 4 for x32, similar to MIPS n32.
>>> It fixed:
>>>
>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53982
>>
>> Here is the patch with updated ChangeLog entry.  X32 has the same issue
>> as MIPS n32, which was fixed by FFI_SIZEOF_JAVA_RAW:
>>
>> http://gcc.gnu.org/ml/gcc-patches/2007-11/msg01612.html
>> http://gcc.gnu.org/ml/gcc-patches/2007-12/msg00005.html
>>
>> The same fix is needed for x32.  OK for trunk?
>>
>> 2012-07-16  H.J. Lu  <hongjiu.lu@intel.com>
>>
>>         * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for
>>         x32.
>>         (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
>
> How did you tested this patch? Does it fix all the problems from
> PR53982, including the one that is not 100% reproducible?
>

I tested it on Linux/x32. All libjava tests are passing now for x32 with
this patch.
Uros Bizjak - July 18, 2012, 7:13 p.m.
On Wed, Jul 18, 2012 at 9:10 PM, H.J. Lu <hjl.tools@gmail.com> wrote:

>>>> This patch defines FFI_SIZEOF_JAVA_RAW to 4 for x32, similar to MIPS n32.
>>>> It fixed:
>>>>
>>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53982
>>>
>>> Here is the patch with updated ChangeLog entry.  X32 has the same issue
>>> as MIPS n32, which was fixed by FFI_SIZEOF_JAVA_RAW:
>>>
>>> http://gcc.gnu.org/ml/gcc-patches/2007-11/msg01612.html
>>> http://gcc.gnu.org/ml/gcc-patches/2007-12/msg00005.html
>>>
>>> The same fix is needed for x32.  OK for trunk?
>>>
>>> 2012-07-16  H.J. Lu  <hongjiu.lu@intel.com>
>>>
>>>         * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for
>>>         x32.
>>>         (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
>>
>> How did you tested this patch? Does it fix all the problems from
>> PR53982, including the one that is not 100% reproducible?
>>
>
> I tested it on Linux/x32. All libjava tests are passing now for x32 with
> this patch.

OK then.

Thanks,
Uros.

Patch

diff --git a/src/x86/ffitarget.h b/src/x86/ffitarget.h
index f442654..46f294c 100644
--- a/src/x86/ffitarget.h
+++ b/src/x86/ffitarget.h
@@ -61,8 +61,9 @@  typedef unsigned long long     ffi_arg;
 typedef long long              ffi_sarg;
 #endif
 #else
-#if defined __x86_64__ && !defined __LP64__
+#if defined __x86_64__ && defined __ILP32__
 #define FFI_SIZEOF_ARG 8
+#define FFI_SIZEOF_JAVA_RAW  4
 typedef unsigned long long     ffi_arg;
 typedef long long              ffi_sarg;
 #else