Control: retitle -1 FP arithmetic not supported
Control: severity -1 wishlist
Control: tag -1 wontfix

On Mon, 23 Jan 2017 17:13:36 +0100 (CET) Thorsten Glaser <t...@mirbsd.de> wrote:
> Package: libklibc-dev
> Version: 2.0.4-9
> Severity: important
> 
> (sid-amd64)tglase@tglase:~ $ cat x.c
> #include <stdlib.h>
> typedef struct BW BW;
> double calc(BW *bw, unsigned char *s);
> int foo(void) {
>         return (calc(NULL, NULL) == 1.0);
> }
> (sid-amd64)tglase@tglase:~ $ klcc -c x.c
> x.c: In function ‘foo’:
> x.c:5:10: error: SSE register return with SSE disabled
>   return (calc(NULL, NULL) == 1.0);
>           ^~~~~~~~~~~~~~~~
> 
> As this used to work, my guess is that GCC recently defaults
> to -mfpmath=sse (IIRC), and klcc needs to manually disable that.

It's not a compiler change - i686 does not imply any vector support.
You're using amd64/x86_64, which implies SSE2 support.

It's an intentional change in klibc itself:

commit 6eb77ce795189d39fc0f7bc12eb8d7be11e46718
Author: H. Peter Anvin <h...@linux.intel.com>
Date:   Tue Apr 15 13:29:30 2014 -0700

    [klibc] x86-64: disable the use of SSE
    
    Disable the use of SSE registers.  This reduces the size of the code
    because it means the varadic functions don't need to marshall
    parameters in the SSE registers.  Since klibc doesn't support floating
    point, this is a significant size win.
    
    Signed-off-by: H. Peter Anvin <h...@linux.intel.com>

Ben.
 
-- 
Ben Hutchings
The two most common things in the universe are hydrogen and stupidity.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to