hi, I encountered a weird issue on kfreebsd i386 using pthreads. It seems to change the x87 fpu precision mode (bits 8 and 9 of the control word) in threads compared to the master. In the master its set to extended precision, in child threads it changes to double precision. This breaks equality of e.g. python-numpy's threaded and serial random number generator.
Is this expected? it doesn't happen on linux i386. To reproduce use this simple file and gdb on fischer.debian.org: $ cat test.c #include <pthread.h> #include <stdio.h> void *thread_fun(void *x_void_ptr) { printf("thread\n"); return NULL; } int main() { pthread_t thread; if(pthread_create(&thread, NULL, thread_fun, NULL)) { fprintf(stderr, "Error creating thread\n"); return 1; } if(pthread_join(thread, NULL)) { fprintf(stderr, "Error joining thread\n"); return 2; } return 0; } $ gcc test.c -g -pthreads $ gdb ./a.out (gdb) break main Breakpoint 1 at 0x8048589: file test.c, line 14. (gdb) break thread_fun Breakpoint 2 at 0x8048561: file test.c, line 6. (gdb) r Starting program: /home/jtaylor/a.out Breakpoint 1, main () at test.c:14 14 if(pthread_create(&thread, NULL, thread_fun, NULL)) { (gdb) p $fctrl $1 = 4991 (gdb) c Continuing. Breakpoint 2, thread_fun (x_void_ptr=0x0) at test.c:6 6 printf("thread\n"); (gdb) p $fctrl $2 = 4735 -- To UNSUBSCRIBE, email to debian-bsd-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/540afae0.4010...@googlemail.com