Re: signal 8 (floating point exception) upon resume

Adrian Chadd <[email protected]>
Newsgroups gmane.os.freebsd.current,gmane.os.freebsd.devel.mobile
Message-ID <CAJ-VmokcE06B6B-81r88wHKf=3Ao5VmMo3CYaJmP=SbMU6uKPQ@mail.gmail.com>
On 25 March 2014 12:46, John Baldwin <[email protected]> wrote:
> On Sunday, March 23, 2014 4:41:24 pm Adrian Chadd wrote:
>> [snip]
>>
>> Hi,
>>
>> As part of this thread, a whole lot of stuff was thrown around to try
>> and fix / improve the correctness of this.
>>
>> But it still happens to me in -HEAD i386. I updated to r263418 and
>> it's now doing it around 30-50% of the time I resume.
>
> Yes, nothing has changed in HEAD.
>
>> So, since I really am trying to avoid getting neck deep in learning
>> (by myself) a new thing right now, would someone be willing to help me
>> through the process of (a) learning how this is all supposed to work
>> (which thanks to jhb and bde, I think I've learnt from the posts in
>> this thread) and (b) some things to try out? I'll be able to report
>> the results of this pretty quickly.
>
> You can try www.freebsd.org/~jhb/patches/i386_fpu_suspend2.patch.  You
> could have tried the first patch I posted here earlier when I first
> posted it as well. :)

There was a lot of chatter, I thought it was prudent to let it all
settle before jumping in.

Anyway:

--- npx.o ---
/usr/home/adrian/work/freebsd/head/src/sys/i386/isa/npx.c:769:18:
error: declaration of 'union safefpu' will not be visible outside of
this function [-Werror,-Wvisibility]
npxsuspend(union safefpu *addr)
                 ^
/usr/home/adrian/work/freebsd/head/src/sys/i386/isa/npx.c:769:1:
error: conflicting types for 'npxsuspend'
npxsuspend(union safefpu *addr)
^
./machine/npx.h:59:6: note: previous declaration is here
void    npxsuspend(union savefpu *addr);
        ^
/usr/home/adrian/work/freebsd/head/src/sys/i386/isa/npx.c:776:9:
error: incomplete type 'union safefpu' is not assignable
                *addr = npx_initialstate;
                ~~~~~ ^
/usr/home/adrian/work/freebsd/head/src/sys/i386/isa/npx.c:769:18:
note: forward declaration of 'union safefpu'
npxsuspend(union safefpu *addr)
                 ^
/usr/home/adrian/work/freebsd/head/src/sys/i386/isa/npx.c:779:8:
error: implicit declaration of function 'rcr' is invalid in C99
[-Werror,-Wimplicit-function-declaration]
        cr0 = rcr(0);
              ^
/usr/home/adrian/work/freebsd/head/src/sys/i386/isa/npx.c:781:10:
error: incompatible pointer types passing 'union safefpu *' to
parameter of type 'union savefpu *'
[-Werror,-Wincompatible-pointer-types]
        fpusave(addr);
                ^~~~
/usr/home/adrian/work/freebsd/head/src/sys/i386/isa/npx.c:160:36:
note: passing argument to parameter here
static  void    fpusave(union savefpu *);
                                       ^
/usr/home/adrian/work/freebsd/head/src/sys/i386/isa/npx.c:782:2:
error: implicit declaration of function 'load_cr' is invalid in C99
[-Werror,-Wimplicit-function-declaration]
        load_cr(0, cr0);
        ^
6 errors generated.
*** [npx.o] Error code 1



-a
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.