NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-atari/45831: devel/libffi-3.0.9 fails it's test on m68k (atari)



On 17/01/12 08:25, Alan Hourihane wrote:
The following reply was made to PR port-atari/45831; it has been noted by GNATS.

From: Alan Hourihane<alanh%fairlite.co.uk@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: port-atari-maintainer%netbsd.org@localhost, 
gnats-admin%netbsd.org@localhost,
  netbsd-bugs%netbsd.org@localhost
Subject: Re: port-atari/45831: devel/libffi-3.0.9 fails it's test on m68k
  (atari)
Date: Tue, 17 Jan 2012 08:24:01 +0000

  On 16/01/12 18:45, Alan Hourihane wrote:
  >  The following reply was made to PR port-atari/45831; it has been noted by 
GNATS.
  >
  >  From: Alan Hourihane<alanh%fairlite.co.uk@localhost>
  >  To: gnats-bugs%NetBSD.org@localhost
  >  Cc: David Holland<dholland-bugs%netbsd.org@localhost>,
  >    port-atari-maintainer%netbsd.org@localhost, 
gnats-admin%netbsd.org@localhost,
  >    netbsd-bugs%netbsd.org@localhost
  >  Subject: Re: port-atari/45831: devel/libffi-3.0.9 fails it's test on m68k
  >    (atari)
  >  Date: Mon, 16 Jan 2012 17:24:23 +0000
  >
  >    On 15/01/12 07:50, David Holland wrote:
  >    >   The following reply was made to PR port-atari/45831; it has been 
noted by GNATS.
  >    >
  >    >   From: David Holland<dholland-bugs%netbsd.org@localhost>
  >    >   To: gnats-bugs%NetBSD.org@localhost
  >    >   Cc:
  >    >   Subject: Re: port-atari/45831: devel/libffi-3.0.9 fails it's test on 
m68k
  >    >     (atari)
  >    >   Date: Sun, 15 Jan 2012 07:47:41 +0000
  >    >
  >    >     On Fri, Jan 13, 2012 at 10:05:00AM +0000, 
alanh%fairlite.co.uk@localhost wrote:
  >    >      >    When executing the testsuite in devel/libffi, NetBSD 5.1.1 
for m68k
  >    >      >    fails some of the tests with the following output.
  >    >
  >    >     Do you know if it works on any other m68k netbsd (or non-netbsd)
  >    >     platform?
  >    >
  >    Yes, I posted to the Linux debian-m68k lists and there's only a couple
  >    of failures there.
  >
  >    return_sc.c (only when not -O0 - could be a compiler bug)
  >    nested_struct2.c
  >
  >    All others pass.
  >
  >    I've not tested another NetBSD m68k system though, but I'd expect to be
  >    similar problems.
  >
  >

  I've re-tested with libffi 3.0.10 and the NetBSD m68k patch as well as
  they additional ones I mentioned. Unfortunately these are still failures....

  FAIL: libffi.call/cls_12byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_16byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_18byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_19byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_1_1byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_20byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_20byte1.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_24byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_2byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_3_1byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_3byte1.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_3byte2.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_4_1byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_4byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_5_1_byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_5byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_64byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_6_1_byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_6byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_7_1_byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_7byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_8byte.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_9byte1.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_9byte2.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_double.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_float.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_longdouble.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_longdouble_split.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_longdouble_split2.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_pointer.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_sint16.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_sint32.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_sint64.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_uint16.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_uint32.c -O0 -W -Wall execution test
  FAIL: libffi.call/cls_align_uint64.c -O0 -W -Wall execution test
  FAIL: libffi.call/huge_struct.c -O0 -W -Wall execution test
  FAIL: libffi.call/nested_struct.c -O0 -W -Wall execution test
  FAIL: libffi.call/nested_struct1.c -O0 -W -Wall execution test
  FAIL: libffi.call/nested_struct10.c -O0 -W -Wall execution test
  FAIL: libffi.call/nested_struct2.c -O0 -W -Wall execution test
  FAIL: libffi.call/nested_struct3.c -O0 -W -Wall execution test
  FAIL: libffi.call/nested_struct4.c -O0 -W -Wall execution test
  FAIL: libffi.call/nested_struct5.c -O0 -W -Wall execution test
  FAIL: libffi.call/nested_struct6.c -O0 -W -Wall execution test
  FAIL: libffi.call/nested_struct7.c -O0 -W -Wall execution test
  FAIL: libffi.call/nested_struct8.c -O0 -W -Wall execution test
  FAIL: libffi.call/nested_struct9.c -O0 -W -Wall execution test
  FAIL: libffi.call/problem1.c -O0 -W -Wall execution test
  FAIL: libffi.call/stret_large.c -O0 -W -Wall execution test
  FAIL: libffi.call/stret_large2.c -O0 -W -Wall execution test
  FAIL: libffi.call/stret_medium.c -O0 -W -Wall execution test
  FAIL: libffi.call/stret_medium2.c -O0 -W -Wall execution test
  FAIL: libffi.call/struct1.c -O0 -W -Wall execution test
  FAIL: libffi.call/struct2.c -O0 -W -Wall execution test
  FAIL: libffi.call/struct3.c -O0 -W -Wall execution test
  FAIL: libffi.call/struct4.c -O0 -W -Wall execution test
  FAIL: libffi.call/struct5.c -O0 -W -Wall execution test
  FAIL: libffi.call/struct6.c -O0 -W -Wall execution test
  FAIL: libffi.call/struct7.c -O0 -W -Wall execution test
  FAIL: libffi.call/struct8.c -O0 -W -Wall execution test
  FAIL: libffi.call/struct9.c -O0 -W -Wall execution test

  It seems the calling convention used for NetBSD is different from Linux
  and therefore this will need investigation and fixing.


I'm convinced most (if not all) of these are because of this in GCC, and therefore libffi needs fixing for the different mode of structs.

On Linux m68k, this is done...

/* For m68k SVR4, structures are returned using the reentrant
   technique.  */
#undef PCC_STATIC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0

On NetBSD m68k, this is done...

/* The svr4 ABI for the m68k says that records and unions are returned
   in memory.  */

#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 1

Alan.


Home | Main Index | Thread Index | Old Index