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.
signature.asc
Description: This is a digitally signed message part