On Sat, Dec 27, 2014 at 7:45 AM, H.J. Lu <hjl.to...@gmail.com> wrote: > Oops. Hit the wrong button. I will check it in. > > Thanks. > > > ---------- Forwarded message ---------- > From: Uros Bizjak <ubiz...@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.to...@gmail.com> > > > On Sat, Dec 27, 2014 at 3:54 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >> On Sat, Dec 27, 2014 at 12:44 AM, Uros Bizjak <ubiz...@gmail.com> wrote: >>> On Fri, Dec 26, 2014 at 7:38 PM, H.J. Lu <hjl.to...@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. -- H.J. ---- 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...@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 <tkoe...@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]; };