diff mbox

PATC: PR target/64409: ICE building Mesa 10.4.0 for x32 ABI

Message ID CAMe9rOpsSx_1edxuVj0=6nYyTyMwmJ+KRuYiLooiObG9TGTcqw@mail.gmail.com
State New
Headers show

Commit Message

H.J. Lu Dec. 28, 2014, 3:04 p.m. UTC
On Sat, Dec 27, 2014 at 7:45 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> Oops.  Hit the wrong button.  I will check it in.
>
> Thanks.
>
>
> ---------- Forwarded message ----------
> From: Uros Bizjak <ubizjak@gmail.com>
> Date: Sat, Dec 27, 2014 at 7:41 AM
> Subject: Re: PATC: PR target/64409: ICE building Mesa 10.4.0 for x32 ABI
> To: "H.J. Lu" <hjl.tools@gmail.com>
>
>
> On Sat, Dec 27, 2014 at 3:54 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Sat, Dec 27, 2014 at 12:44 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>>> On Fri, Dec 26, 2014 at 7:38 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>> There is no counter part of x32 in MS ABI.   Issue an error when ms_abi
>>>> attribute is used with x32.  OK for trunk and branches?
>>>
>>> Is there a fundamental reason that x32 doesn't support ms_abi? IIRC,
>>> x32 uses x86_64 ABI, so I see no reason why ms_abi should be disabled.
>>>
>>> I think that from the user perspective, ms_abi should "just work" on
>>> x32 in the same way as on x86_64.
>>
>> The ms_abi attribute is used to call functions written/compiled for
>> win64 from the Linux code.  You can't call functions written/compiled
>> for win64, which is LLP64(LP64?), from the Linux/x32 code since pointer
>> size is different. The ms_abi attribute makes no senses in x32.
>
> The patch is OK then, but please post the explanation on the
> gcc-patches@ list for archiving purposes.
>
> Thanks,
> Uros.
>

I checked the following patch to skip ms_abi attribute tests on x32.
diff mbox

Patch

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ebcfdc4..ef6ddcc 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@ 
+2014-12-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+ * gcc.target/i386/pr57003.c: Skip on x32.
+ * gcc.target/i386/pr59927.c: Likewise.
+ * gcc.target/i386/pr60516.c: Likewise.
+
 2014-12-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

  PR fortran/56867
diff --git a/gcc/testsuite/gcc.target/i386/pr57003.c
b/gcc/testsuite/gcc.target/i386/pr57003.c
index 7300c2d..841deb9 100644
--- a/gcc/testsuite/gcc.target/i386/pr57003.c
+++ b/gcc/testsuite/gcc.target/i386/pr57003.c
@@ -1,5 +1,5 @@ 
 /* PR rtl-optimization/57003 */
-/* { dg-do run } */
+/* { dg-do run { target { ! x32 } } } */
 /* { dg-options "-O2" } */

 #define N 2001
diff --git a/gcc/testsuite/gcc.target/i386/pr59927.c
b/gcc/testsuite/gcc.target/i386/pr59927.c
index 693c765..afb5306 100644
--- a/gcc/testsuite/gcc.target/i386/pr59927.c
+++ b/gcc/testsuite/gcc.target/i386/pr59927.c
@@ -1,5 +1,5 @@ 
 /* PR target/59927 */
-/* { dg-do compile } */
+/* { dg-do compile { target { ! x32 } } } */
 /* { dg-options "-O2 -g" } */

 extern void baz (int) __attribute__ ((__ms_abi__));
diff --git a/gcc/testsuite/gcc.target/i386/pr60516.c
b/gcc/testsuite/gcc.target/i386/pr60516.c
index 575c8b6..d7e1116 100644
--- a/gcc/testsuite/gcc.target/i386/pr60516.c
+++ b/gcc/testsuite/gcc.target/i386/pr60516.c
@@ -1,5 +1,5 @@ 
 /* PR target/60516 */
-/* { dg-do compile } */
+/* { dg-do compile { target { ! x32 } } } */
 /* { dg-options "-O2" } */

 struct S { char c[65536]; };