On 01/05/2011 13.38, Tuomo Keskitalo wrote: Hi,
I'm compiling the latest 1.15 using MinGW+Msys in a Win XP platform. I've got a problem related to ode-initval2. I used GCC version 4.5.2 (MinGW latest official version) with CFLAGS="-fexceptions -mthreads" and make -k check completed successfully. The issue is appearing turning on optimization, with CFLAGS="-O2 -fexceptions -mthreads" the only failing test is related to ode-initval2 reported as make[2]: Leaving directory `/home/emasgas/gsl-1.15/ode-initval' make[1]: Leaving directory `/home/emasgas/gsl-1.15/ode-initval' Making check in ode-initval2 make[1]: Entering directory `/home/emasgas/gsl-1.15/ode-initval2' make test.exe make[2]: Entering directory `/home/emasgas/gsl-1.15/ode-initval2' make[2]: `test.exe' is up to date. make[2]: Leaving directory `/home/emasgas/gsl-1.15/ode-initval2' make check-TESTS make[2]: Entering directory `/home/emasgas/gsl-1.15/ode-initval2' FAIL: bsimp/msbdf e5_bigt [1] (1.0190909463048507e-020 observed vs 1.020144070808528e-020 expected) [1214] FAIL: bsimp/msbdf e5_bigt [2] (1.0194255784181719e-020 observed vs 1.0183729939450725e-020 expected) [1215] FAIL: bsimp/msbdf e5_bigt [3] (3.7405084513304344e-065 observed vs 3.7366884728539915e-065 expected) [1216] FAIL: test.exe ================== 1 of 1 test failed ================== even worse with CFLAGS="-mfpmath=sse -msse2 -O2 -fexceptions -mthreads" (using sse2 the IEEE float is (shuold be) used without extra precision) I've got make[1]: Entering directory `/home/emasgas/gsl-1.15/ode-initval2' make test.exe make[2]: Entering directory `/home/emasgas/gsl-1.15/ode-initval2' gcc -DHAVE_CONFIG_H -I. -I.. -I.. -mfpmath=sse -msse2 -O2 -fexceptions -mthreads -MT test.o -MD -MP -MF .deps/test.Tpo -c -o test.o test.c mv -f .deps/test.Tpo .deps/test.Po /bin/sh ../libtool --tag=CC --mode=link gcc -mfpmath=sse -msse2 -O2 -fexceptions -mthreads -o test.exe test.o libgslodeiv2.la ../linalg/libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../permutation/libgslpermutation.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la -lm libtool: link: gcc -mfpmath=sse -msse2 -O2 -fexceptions -mthreads -o test.exe test.o ./.libs/libgslodeiv2.a ../linalg/.libs/libgsllinalg.a ../blas/.libs/libgslblas.a ../cblas/.libs/libgslcblas.a ../matrix/.libs/libgslmatrix.a ../permutation/.libs/libgslpermutation.a ../vector/.libs/libgslvector.a ../block/.libs/libgslblock.a ../complex/.libs/libgslcomplex.a ../ieee-utils/.libs/libgslieeeutils.a ../err/.libs/libgslerr.a ../test/.libs/libgsltest.a ../sys/.libs/libgslsys.a ../utils/.libs/libutils.a -mthreads make[2]: Leaving directory `/home/emasgas/gsl-1.15/ode-initval2' make check-TESTS make[2]: Entering directory `/home/emasgas/gsl-1.15/ode-initval2' -- order change -2 gsl: msbdf.c:1336: ERROR: msbdf_apply too large order change Default GSL error handler invoked. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. FAIL: test.exe ================== 1 of 1 test failed ================== make[2]: *** [check-TESTS] Error 1 make[2]: Leaving directory `/home/emasgas/gsl-1.15/ode-initval2' make[1]: *** [check-am] Error 2 make[1]: Leaving directory `/home/emasgas/gsl-1.15/ode-initval2' make: *** [check-recursive] Error 1 I also changed the compiler version (using CFLAGS="-O2 -fexceptions -mthreads" ) and GCC 3.4.5 => OK GCC 4.2.1 => OK GCC 4.4.0 => Failing GCC 4.5.2 => Failing I don't know if the test limits are too much stringent or there is a bug or incompatibility with GCC 4.4.x onwards. At the moment I'm using the library compiled (and make check passed) with GCC 4.5.2 removing the -O2 from the Makefile in ode-initval2, but any patch to permit optimization is welcome. Should I submit a bug officially to trace the issue? Regards Max
