Hi ! I've found a bug in Qemu x86_64 under a sles 64 10: conversion of floats to strings fails in some cases. For example, Ganglia (cluster monitoring software), shows random values and as well as PHP5 programs.
I've trace a conversion and it seems that the modf() function is buggy under QEMU. The same code run a real system is OK. ========= #include <stdio.h> #include <math.h> int main() { double x = 1.1; double y; double z; printf("Calling modf() for %f\n", x); z = modf(x,&y); printf("fractional part = %f\ninteger part = %f\n", z, y); return 0; } ========= Under QEMU you get: Calling modf() for 1.100000 fractional part = 1.100000 integer part = 1.000000 And on a real system: Calling modf() for 1.100000 fractional part = 0.100000 integer part = 1.000000 So it's a QEMU bug, maybe cause by bogus instructions generated by the SLES gcc compiler (gcc 4.1.0 !). If anyone has an idea on how to fix this, let me know. Cheers, Ludovic. _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel