NetBSD Problem Report #51783

From www@NetBSD.org  Thu Jan  5 20:38:06 2017
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.netbsd.org", Issuer "Postmaster NetBSD.org" (verified OK))
	by mollari.NetBSD.org (Postfix) with ESMTPS id AC2077A217
	for <gnats-bugs@gnats.NetBSD.org>; Thu,  5 Jan 2017 20:38:06 +0000 (UTC)
Message-Id: <20170105203805.CB0E87A27E@mollari.NetBSD.org>
Date: Thu,  5 Jan 2017 20:38:05 +0000 (UTC)
From: bjarne.backstrom@hjomail.se
Reply-To: bjarne.backstrom@hjomail.se
To: gnats-bugs@NetBSD.org
Subject: fsck crashes with a "floating point excepton" error message.
X-Send-Pr-Version: www-1.0

>Number:         51783
>Category:       port-mac68k
>Synopsis:       fsck crashes with a "floating point excepton" error message.
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    port-mac68k-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jan 05 20:40:00 +0000 2017
>Last-Modified:  Thu Feb 23 18:00:00 +0000 2017
>Originator:     Bjarne Bäckström
>Release:        NetBSD 7.0.2/mac68k
>Organization:
n.a.
>Environment:
NetBSD 7.0.2 (GENERICSBC,201610210724Z) mac68k
>Description:
fsck will crash, both when run "manually" and at "root file system check" when going multiuser, iff it finds that the file system has an error. If run "manually", the computer will "freese", and it takes a cold restart to get it running. If it happens while going multiuser, it will just write "fsck: /dev/rsd0a: Floating point exception". "Automatic file system check failed: help!" "/etc/rc.d/fsck_root exited with code 1" Then it will just continue with the startup.
>How-To-Repeat:
Run fsck on a faulty file system.
>Fix:

>Audit-Trail:
From: Martin Husemann <martin@duskware.de>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: port-mac68k/51783: fsck crashes with a "floating point excepton"
 error message.
Date: Thu, 5 Jan 2017 21:48:36 +0100

 Can you show the first page of output from dumpfs for your file system please?

 Thanks,

 Martin

From: Hauke Fath <hauke@Espresso.Rhein-Neckar.DE>
To: gnats-bugs@NetBSD.org
Cc: port-mac68k-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
        hauke@Espresso.Rhein-Neckar.DE
Subject: Re: port-mac68k/51783: fsck crashes with a "floating point
 excepton" error message.
Date: Thu, 5 Jan 2017 22:06:00 +0100

 On Thu,  5 Jan 2017 20:40:00 +0000 (UTC), bjarne.backstrom@hjomail.se 
 wrote:
 > If it happens while going multiuser, it will just write "fsck: 
 > /dev/rsd0a: Floating point exception".

 That wouldn't, per chance, be an fpu-less 68LC040 cpu? Which Macintosh 
 model is this?

 Cheerio,
 Hauke

From: =?utf-8?B?Qmphcm5lIELDpGNrc3Ryw7Zt?= <bjarne.backstrom@hjomail.se>
To: gnats-bugs@NetBSD.org
Cc: port-mac68k-maintainer@netbsd.org,
 gnats-admin@netbsd.org,
 netbsd-bugs@netbsd.org
Subject: Re: port-mac68k/51783: fsck crashes with a "floating point excepton"
 error message.
Date: Thu, 5 Jan 2017 22:30:15 +0100

 > 5 jan. 2017 kl. 21:50 skrev Martin Husemann <martin@duskware.de>:
 >=20
 > The following reply was made to PR port-mac68k/51783; it has been =
 noted by GNATS.
 >=20
 > From: Martin Husemann <martin@duskware.de>
 > To: gnats-bugs@NetBSD.org
 > Cc:=20
 > Subject: Re: port-mac68k/51783: fsck crashes with a "floating point =
 excepton"
 > error message.
 > Date: Thu, 5 Jan 2017 21:48:36 +0100
 >=20
 > Can you show the first page of output from dumpfs for your file system =
 please?
 >=20
 > Thanks,
 >=20
 > Martin
 >=20

 Hi, Martin, and thanks for replying: I don=E2=80=99t know if this is =
 what you wanted, I can dump with other arguments if you wish.

 Best regards,
 /Bjarne.

 =E2=80=94=20

 enoch# dumpfs -s / | more
 file system: /dev/rsd0a
 format  FFSv1
 endian  big-endian
 magic   11954           time    Thu Jan  5 22:13:26 2017
 superblock location     8192    id      [ 5869a2f8 3b244a36 ]
 cylgrp  dynamic inodes  4.4BSD  sblock  FFSv2   fslevel 4
 nbfree  1089963 ndir    44592   nifree  2194424 nffree  17337
 ncg     216     size    10061554        blocks  9752222
 bsize   8192    shift   13      mask    0xffffe000
 fsize   1024    shift   10      mask    0xfffffc00
 frag    8       shift   3       fsbtodb 1
 bpg     5823    fpg     46584   ipg     11328
 minfree 5%      optim   time    maxcontig 8     maxbpg  2048
 symlinklen 60   contigsumsize 8
 maxfilesize 0x0000400801017fff
 nindir  2048    inopb   64
 avgfilesize 16384       avgfpdir 64
 sblkno  16      cblkno  24      iblkno  32      dblkno  1448
 sbsize  2048    cgsize  8192
 csaddr  1448    cssize  4096
 cgrotor 0       fmod    0       ronly   0       clean   0x40
 wapbl version 0x0       location 0      flags 0x0
 wapbl loc0 0    loc1 0  loc2 0  loc3 0
 flags   none
 fsmnt   /
 volname         swuid   0

 =E2=80=94

From: =?utf-8?B?Qmphcm5lIELDpGNrc3Ryw7Zt?= <bjarne.backstrom@hjomail.se>
To: gnats-bugs@NetBSD.org
Cc: port-mac68k-maintainer@netbsd.org,
 gnats-admin@netbsd.org,
 netbsd-bugs@netbsd.org
Subject: Re: port-mac68k/51783: fsck crashes with a "floating point excepton"
 error message.
Date: Thu, 5 Jan 2017 22:35:29 +0100

 > 5 jan. 2017 kl. 22:30 skrev Hauke Fath =
 <hauke@Espresso.Rhein-Neckar.DE>:
 >=20
 > The following reply was made to PR port-mac68k/51783; it has been =
 noted by GNATS.
 >=20
 > From: Hauke Fath <hauke@Espresso.Rhein-Neckar.DE>
 > To: gnats-bugs@NetBSD.org
 > Cc: port-mac68k-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
 >        hauke@Espresso.Rhein-Neckar.DE
 > Subject: Re: port-mac68k/51783: fsck crashes with a "floating point
 > excepton" error message.
 > Date: Thu, 5 Jan 2017 22:06:00 +0100
 >=20
 > On Thu,  5 Jan 2017 20:40:00 +0000 (UTC), bjarne.backstrom@hjomail.se=20=

 > wrote:
 >> If it happens while going multiuser, it will just write "fsck:=20
 >> /dev/rsd0a: Floating point exception".
 >=20
 > That wouldn't, per chance, be an fpu-less 68LC040 cpu? Which Macintosh=20=

 > model is this?
 >=20
 > Cheerio,
 > Hauke
 >=20

 This is running on an LC III with an fpu.

 Best regards,
 /Bjarne.

From: Martin Husemann <martin@duskware.de>
To: Bjarne =?iso-8859-1?B?QuRja3N0cvZt?= <bjarne.backstrom@hjomail.se>
Cc: gnats-bugs@NetBSD.org
Subject: Re: port-mac68k/51783: fsck crashes with a "floating point excepton"
 error message.
Date: Fri, 6 Jan 2017 09:24:55 +0100

 On Thu, Jan 05, 2017 at 10:35:29PM +0100, Bjarne Bäckström wrote:
 > This is running on an LC III with an fpu.

 Nothing obvious here - did you by chance get a fsck_ffs core and have it
 still around? Or can you reproduce it and get that? Not quite easy if it
 is your root filesystem, I guess.

 Martin

From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
To: gnats-bugs@NetBSD.org
Cc: tsutsui@ceres.dti.ne.jp
Subject: Re: port-mac68k/51783: fsck crashes with a "floating point excepton"
	 error message.
Date: Fri, 6 Jan 2017 22:39:20 +0900

 > >Synopsis:       fsck crashes with a "floating point excepton" error message.

 I saw this trouble several times with "unclean" fs on luna68k and x68k.

 /rescue/fsck_ffs worked around, so it might be caused by m68k gcc -O2
 optimization bug (but hard to reproduce and confirm)...

 ---
 Izumi Tsutsui

From: =?utf-8?B?Qmphcm5lIELDpGNrc3Ryw7Zt?= <bjarne.backstrom@hjomail.se>
To: Martin Husemann <martin@duskware.de>
Cc: gnats-bugs@NetBSD.org
Subject: Re: port-mac68k/51783: fsck crashes with a "floating point excepton"
 error message.
Date: Fri, 6 Jan 2017 19:40:25 +0100

 --Apple-Mail=_F0436F93-59FB-4E2D-BB19-DA4C7BB51A01
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/plain;
 	charset=utf-8


 > 6 jan. 2017 kl. 09:24 skrev Martin Husemann <martin@duskware.de>:
 >=20
 > On Thu, Jan 05, 2017 at 10:35:29PM +0100, Bjarne B=C3=A4ckstr=C3=B6m =
 wrote:
 >> This is running on an LC III with an fpu.
 >=20
 > Nothing obvious here - did you by chance get a fsck_ffs core and have =
 it
 > still around? Or can you reproduce it and get that? Not quite easy if =
 it
 > is your root filesystem, I guess.
 >=20
 > Martin

 Yes, there is a fsck_ffs.core, but it=E2=80=99s about 1.7 MB, and I =
 think that I=E2=80=99ll have to activate ftp to get a compressed version =
 over to OS X. Alas, I have some =E2=80=9DThings That Have To Be Done =
 FIRST=E2=80=9D=E2=80=A6 Hopefully later tonight or tomorrow. Meanwhile, =
 I=E2=80=99ve attached a copy of /var/run/rc.log, in case it can be of =
 any use.

 Best regards,
 /Bjarne.


 --Apple-Mail=_F0436F93-59FB-4E2D-BB19-DA4C7BB51A01
 Content-Disposition: attachment;
 	filename=rc.log.txt.bz2
 Content-Type: application/x-bzip2;
 	x-unix-mode=0644;
 	name="rc.log.txt.bz2"
 Content-Transfer-Encoding: base64

 QlpoOTFBWSZTWamKE/cABIdfgEAQaAf5uT//34q/7//wUAYZ7NTd68d5hAkFFFWGgQJhNRgSaIA0
 AAAAGgaRGJqbKZAAaAaAGgBpoABIiEaCaASaMp6nomg2oGj0gAAIjUyeqAGJpkaYmmEaaAMRoNAB
 KahIDRo0n6iDCYjJkaMgDIxMI30x/LyD+HMQNgG5z5wiGH6uGDaFvYoaSbCrV3LbKRCG2xjbGwG0
 A/fENNgoOqufCBCuivKU6WwlBtiZIBgSGATfPG7uWDdA9YqOrq/UNh9whCx/Wi6qi1S5ffrVsqL+
 TFadJOQTcD/K1gPwyyCtBZscWA5PJpdZueeGEMaB72LZuloMv2o/eTFO7o5qo2vnahgJsfsOEzm+
 OB/cerl6+XQWnO6J2d/goY6IzPQBA2HdPIgREVzEenX9ihEBbiECq/5Ugl83thJJFAAMgADlCXVq
 7UJpFQaQym3H3FKhMDfNnEjlJGExJfje3kwi1wmj6MdkhTLyHj276qJ/HuLjWRMaHaDOw/b/ajXR
 KY65eR2JHdbUVTHljIMPN28wEGEEJnBbjIGAiQEkDCZDAmMAAASuOxbcjyTvac6UCMBwlVJSAS1o
 LKlJyttkDzymqDgQApGtxpiRGdW91LpQpO+YLNRML5myHAhkW/C732QXMQMhjdyjK+jRyeGnPPzu
 Gvp83n4a0GhnPo+A8GHGNUk/wTDci0z7VBu+b3iJeG+HQDGAkgoGiZj8CCXnDsBSluT1TRYsRBUo
 vcyexW4TMc8ZCbDJtnZ9IlluUgo8VNGNiDuCLVKL09MABMAAOnJOgqWmkSlny0m0VXjFTBRm1c4v
 Q5DaZasYezHBNboxw2kxNWYlniVvrU3JvPrnkKJi5WmXmhJLELFrVtL/3fk9DJw1OEr4PM6PDlad
 Vg30gg5nzMUEcikVMqvHbkmm3bT3HyB05WSgBkagwKzNseh2O1sYCUqqBWbaCw2OZyBMNEm892WE
 YhmNjP/CIdjwgC2DExrKQhXlBkmiot+tsJTQTkQ34sopuJ7TE12zO+GmIpHLZRTPtfR3iLuZZk1o
 dNQACCvh1xGUWyKsNZ38GQbloSe/nrYKC+Dwd3DFTIgOdOmIWGaeqQSShiIYgh73OL5sb5LfCx7L
 m7J4qIjcEkeTF5jnTteRoU7Y6znvc1UW3FMJ9YdrSqxll8RnZ78wElVauWLucMzamsBLCctOVzrZ
 GGYtjOyJM3fs1Novi1r3cTLlUabhr16ZShrTYG4Bgc86GmUdzMi2wQP21jNH6bMJn/GpaGXAGV3l
 wrG16C6Bn2KAMy31VzJplg6SAzM4LQ3RRSNDIWqXBszKxWL0Y1W0ItbHC+ReucYrfpYZYoKYGISC
 vRAkoI1QJK2SaMMGZYYWWFWQ6DWBgUDQvbw8+CKJ8/QQtzFw49OQV0xNFQvwksXsj0c8Jyd0uos3
 WSpRmNlUZl6VWtuBH+bg4IYdRmY02MPhpBtuCS/Ka+hkvVyMrO2kdafZfK6sSGh4V0e3+HKhjQz7
 l7UYc2F4B981eXki6HvHaxKM+ImcpWvfBeRqq9RMFGgALN1NKJd8LbsHnhBwLnXIz8BxaLXNJYY6
 hQ5GbVNB03xd3avALOT2oEllJNa6bIznphmzxZR9j7Hwi0TT5NaI7o0iOalB7O4uxGcwjb2GQd1B
 hLU2FKFjHOj1tTQKFPK4qG1KnFbvTShrEMVM8cyOMmqYqR3yqFYiriNudMdz+URhCxAAMcKGCpDc
 Vgh1ycRbhBZGj0xMZsYyqV1mbmqc4QQxsltzTppaDmgrrgDpUJFz5Z2qoWqRK0VKlpkO7WbMUMDP
 HDs6oGBMEJLYGzyOPdyuRnYw3aKUbHu8VwR/2OKttvLXK1kjSq53BarZXxmchiTFCGaKaIge6kaG
 sQ3jWJHMhqhzF3JFOFCQqYoT9w==
 --Apple-Mail=_F0436F93-59FB-4E2D-BB19-DA4C7BB51A01
 Content-Transfer-Encoding: 7bit
 Content-Type: text/plain;
 	charset=us-ascii




 --Apple-Mail=_F0436F93-59FB-4E2D-BB19-DA4C7BB51A01--

From: =?utf-8?B?Qmphcm5lIELDpGNrc3Ryw7Zt?= <bjarne.backstrom@hjomail.se>
To: Martin Husemann <martin@duskware.de>
Cc: gnats-bugs@NetBSD.org
Subject: Re: port-mac68k/51783: fsck crashes with a "floating point excepton"
 error message.
Date: Thu, 19 Jan 2017 03:27:58 +0100

 > 6 jan. 2017 kl. 09:24 skrev Martin Husemann <martin@duskware.de>:
 >=20
 > On Thu, Jan 05, 2017 at 10:35:29PM +0100, Bjarne B=C3=A4ckstr=C3=B6m =
 wrote:
 >> This is running on an LC III with an fpu.
 >=20
 > Nothing obvious here - did you by chance get a fsck_ffs core and have =
 it
 > still around? Or can you reproduce it and get that? Not quite easy if =
 it
 > is your root filesystem, I guess.
 >=20
 > Martin

    Ok, I sent a copy of  fsck_ffs core to Martin Husemann, but didn=E2=80=99=
 t send it to the list because the list seems to automatically expand =
 compressed file attachments, and this one will expand to 1.7 MB or so. =
 If anyone wants to have a copy, just let me know.

    Anyway, as an =E2=80=9Dacid test=E2=80=9D I=E2=80=99ve installed lynx =
 from pkgsrc, and it (including the dependencies) ran to completion =
 without a single hiccup in 8 * 24 + 15 =3D 207 hours. I had =E2=80=9Dtop=E2=
 =80=9D running on the LC III=E2=80=99s CRT, and ran the commands =
 remotely via XQuartz ( ssh -x ) on my Mac Mini. I=E2=80=99m a bit =
 familiar with lynx, and it seems to work as advertised, although I =
 haven=E2=80=99t had time to run =E2=80=9Dda shit=E2=80=9D out of it yet.

    Summa summarum:  So far only fsck has shown any problem. Difficult to =
 troubleshoot, since the computer will freeze when fsck crashes.

 Best regards,

 /Bjarne.

From: mlelstv@serpens.de (Michael van Elst)
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: port-mac68k/51783: fsck crashes with a "floating point excepton" error message.
Date: Thu, 19 Jan 2017 19:22:03 +0000 (UTC)

 bjarne.backstrom@hjomail.se (=?utf-8?B?Qmphcm5lIELDpGNrc3Ryw7Zt?=) writes:

 >    Ok, I sent a copy of  fsck_ffs core to Martin Husemann, but didn=E2=80=99=
 > t send it to the list because the list seems to automatically expand =
 > compressed file attachments, and this one will expand to 1.7 MB or so. =
 > If anyone wants to have a copy, just let me know.

 Just saw a similar issue on NetBSD/amiga.

 The statically linked fsck_ffs from /rescue seems to work, also
 fsck_ffs from current.

 The faulty fsck_ffs gets the SIGFPE in:

 Program received signal SIGFPE, Arithmetic exception.
 0x0e047f32 in __udivdi3 () from /lib/libutil.so.7
 (gdb) bt
 #0  0x0e047f32 in __udivdi3 () from /lib/libutil.so.7
 #1  0x00006a60 in iblock ()
 #2  0x00007362 in ckinode ()
 #3  0x0000afe4 in checkinode ()
 #4  0x0000b9c0 in pass1 ()
 #5  0x000099cc in checkfilesys.part ()
 #6  0x00019520 in main ()

 This is the place in iblock():

         if (howmany(isize, sizepb) > (size_t)FFS_NINDIR(sblock))
                 nif = FFS_NINDIR(sblock);
         else
                 nif = howmany(isize, sizepb);

 where the first howmany() macro calls __udivdi3

 0x6a5a <iblock+214>: jsr 0x391c <__udivdi3@plt>

 0x391c <__udivdi3@plt>: jmp %pc@(0x201b0 <__udivdi3@got.plt>)@(00000000)

 0x201b0 <__udivdi3@got.plt>:    0x0e047efc

 (gdb) x/20i 0x0e047efc
    0xe047efc <__udivdi3>:       linkw %fp,#0
    0xe047f00 <__udivdi3+4>:     moveml %d2-%d7,%sp@-
    0xe047f04 <__udivdi3+8>:     movel %fp@(8),%d0
    0xe047f08 <__udivdi3+12>:    movel %fp@(12),%d1
    0xe047f0c <__udivdi3+16>:    movel %fp@(16),%d3
    0xe047f10 <__udivdi3+20>:    movel %fp@(20),%d2
    0xe047f14 <__udivdi3+24>:    movel %d2,%d4
    0xe047f16 <__udivdi3+26>:    tstl %d3
    0xe047f18 <__udivdi3+28>:    bnes 0xe047f3e <__udivdi3+66>
    0xe047f1a <__udivdi3+30>:    cmpl %d2,%d0
    0xe047f1c <__udivdi3+32>:    bccs 0xe047f26 <__udivdi3+42>
    0xe047f1e <__udivdi3+34>:    divul %d2,%d0,%d1
    0xe047f22 <__udivdi3+38>:    clrl %d0
    0xe047f24 <__udivdi3+40>:    bras 0xe047f9a <__udivdi3+158>
    0xe047f26 <__udivdi3+42>:    tstl %d2
    0xe047f28 <__udivdi3+44>:    bnes 0xe047f32 <__udivdi3+54>
    0xe047f2a <__udivdi3+46>:    moveq #1,%d4
    0xe047f2c <__udivdi3+48>:    clrl %d3
    0xe047f2e <__udivdi3+50>:    divull %d3,%d4,%d4
 => 0xe047f32 <__udivdi3+54>:    clrl %d2
 ...

 This is the beginning of the __udivdi3 version provided by libgcc2.c.

 d3 is zero. This is the code in __udivdi3 that causes a SIGFPE when
 called with a zero divisor (d3 == high 32bit, d2 == low 32bit),
 which is the sizepb value above.

 d2             0x0      0
 d3             0x0      0

 or all values from the stack.

 (gdb) x/4x $fp+8
 0x1dfed54c:     0x00000000      0x02e10946      0x00000000      0x00000000

 -- 
 -- 
                                 Michael van Elst
 Internet: mlelstv@serpens.de
                                 "A potential Snark may lurk in every tree."

From: =?utf-8?B?Qmphcm5lIELDpGNrc3Ryw7Zt?= <bjarne.backstrom@hjomail.se>
To: gnats-bugs@NetBSD.org
Cc: port-mac68k-maintainer@netbsd.org,
 gnats-admin@netbsd.org,
 netbsd-bugs@netbsd.org
Subject: Re: port-mac68k/51783: fsck crashes with a "floating point excepton"
 error message.
Date: Fri, 20 Jan 2017 17:43:30 +0100

 > 19 jan. 2017 kl. 20:25 skrev Michael van Elst <mlelstv@serpens.de>:
 >=20
 > The following reply was made to PR port-mac68k/51783; it has been =
 noted by GNATS.
 >=20
 > From: mlelstv@serpens.de (Michael van Elst)
 > To: gnats-bugs@netbsd.org
 > Cc:=20
 > Subject: Re: port-mac68k/51783: fsck crashes with a "floating point =
 excepton" error message.
 > Date: Thu, 19 Jan 2017 19:22:03 +0000 (UTC)
 >=20
 > bjarne.backstrom@hjomail.se (=3D?utf-8?B?Qmphcm5lIELDpGNrc3Ryw7Zt?=3D) =
 writes:
 >=20
 >>   Ok, I sent a copy of  fsck_ffs core to Martin Husemann, but =
 didn=3DE2=3D80=3D99=3D
 >> t send it to the list because the list seems to automatically expand =
 =3D
 >> compressed file attachments, and this one will expand to 1.7 MB or =
 so. =3D
 >> If anyone wants to have a copy, just let me know.
 >=20
 > Just saw a similar issue on NetBSD/amiga.
 >=20
 > The statically linked fsck_ffs from /rescue seems to work, also
 > fsck_ffs from current.

    Thank you very much! Yes, both /rescue/fsck_ffs and /rescue/fsck seem =
 to work on this machine. Will test them more thoroughly during the =
 weekend.

 Best regards,
 /Bjarne.

From: Michael van Elst <mlelstv@serpens.de>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: port-mac68k/51783 fsck crashes with a "floating point excepton"
 error message.
Date: Sun, 12 Feb 2017 10:22:27 +0100

 It's a compiler bug. gcc translates the following loop

 	for (sizepb = sblock->fs_bsize, i = 0; i < ilevel; i++)
 		sizepb *= FFS_NINDIR(sblock);

 into

    0x6aa0 <iblock+124>: movel %a0@(48),%d3         sblock->fs_bsize
    0x6aa4 <iblock+128>: smi %d2
    0x6aa6 <iblock+130>: extbl %d2
    ...

    0x6ab8 <iblock+148>: movel %a0@(116),%d6        sblock->fs_nindir
    0x6abc <iblock+152>: movel %d6,%d1
    0x6abe <iblock+154>: smi %d0
    0x6ac0 <iblock+156>: extbl %d0

    0x6ac2 <iblock+158>: subal %a1,%a1              i = 0

 d0:d1 is sblock->fs_nindir
 d2:d3 is sizepb

 res = ((mul32(d1,d2) + mul32(d0,d3)) << 32) + mul64(d1,d3)

    0x6ac4 <iblock+160>: mulsl %d1,%d2              
    0x6ac8 <iblock+164>: mulsl %d0,%d3 
    0x6acc <iblock+168>: moveal %d2,%a0
    0x6ace <iblock+170>: addal %d3,%a0              

 computed mul32(d1,d2) + mul32(d0,d3), however d2 and d3 are now trashed

    0x6ad0 <iblock+172>: mulul %d1,%d2,%d3

 computed mul64(d1,d3) with result in d2:d3, however d3 was trashed before

    0x6ad4 <iblock+176>: addl %a0,%d2

 computed added first intermediate result to high longword

    0x6ad6 <iblock+178>: addql #1,%a1               i++
    0x6ad8 <iblock+180>: cmpal %fp@(-2084),%a1      i != ilevel
    0x6adc <iblock+184>: bnes 0x6ac4 <iblock+160>



 -- 
                                 Michael van Elst
 Internet: mlelstv@serpens.de
                                 "A potential Snark may lurk in every tree."

From: Chuck Silvers <chuq@chuq.com>
To: gnats-bugs@NetBSD.org
Cc: port-mac68k-maintainer@netbsd.org, gnats-admin@netbsd.org,
	netbsd-bugs@netbsd.org, bjarne.backstrom@hjomail.se,
	Michael van Elst <mlelstv@serpens.de>
Subject: Re: port-mac68k/51783 fsck crashes with a "floating point excepton"
 error message.
Date: Thu, 23 Feb 2017 09:55:41 -0800

 this was fixed in -current by revs 1.5 and 1.6 of
 src/external/gpl3/gcc/dist/gcc/config/m68k/m68k.md.

 it turns out that the local patch that christos reverted there
 hadn't been necessary for over a decade:
 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=12792

 so it should be fine to apply the same change to the older version
 of gcc in the netbsd 7.x tree.  that would be equivalent to
 going back to rev 1.1.1.2 of m68k.md in the netbsd-7 branch.

 -Chuck

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2014 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.