From 476cbeda792322fb66600eeb7022d303bd55d7c7 Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Mon, 20 Apr 2009 00:00:44 -0500 Subject: [svn-r16789] Bug Fix (Bug 1398): For gcc v4.3 and v4.4, with production mode, if -O3 is used, H5Tinit.c would fail to compile. Actually bad H5Tinit.c is produced. If -O (same as -O1) is used, H5Tinit.c compiled okay but test/dt_arith would fail with: Testing hard normalized long double -> signed char conversions time: comm and terminated abnormally When -O0 (no optimizatio) is used, H5Tinit.c compilete okay and all tests passed. Solution: Changed the config/gnu-flags to use -O0 for gcc v4.3 and 4.4 for production flags for now so that build and tests would work. Still need to investigate if the error is due to Gcc optimization bug or our code errors. Tested: In liberty with gcc43 and gcc44. Also, tested in jam and smirom with older versions of gcc. There are no gcc 43 or 44 compilers installed in other THG machines that I know. --- config/gnu-flags | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/config/gnu-flags b/config/gnu-flags index 5fd72f2..c99a664 100644 --- a/config/gnu-flags +++ b/config/gnu-flags @@ -145,7 +145,17 @@ case "$cc_vendor-$cc_version" in gcc-2.95.[34]) PROD_CFLAGS="-O3" ;; - gcc-3.[0-4]*|gcc-4.[0123]*) + gcc-4.[34]*) + # The optimization level is reduced for gcc 4.[34] due to problems + # with code generation for src/H5Tconv.c with the -O (same -O1) + # optimization levels (which shows up as failures for long double + # types -> signed char conversion in the test/dt_arith test). + # There's either a bug in gcc or our code. Need further investigation. + # Turn off all optimizations to allow the tests to pass for now. + # - AKC - 2009/04/19 + PROD_CFLAGS="-O0" + ;; + gcc-3.[0-4]*|gcc-4.[012]*) # The optimization level is reduced for gcc 3.* and 4.* due to problems # with code generation for src/H5Tconv.c with the -O2 & -O3 # optimization levels (which shows up as failures for various integer @@ -153,10 +163,6 @@ case "$cc_vendor-$cc_version" in # later versions of gcc will fix this bug... - QAK - 2003/10/20 PROD_CFLAGS="-O" ;; - gcc-4*) - # Be optimistic about future versions of gcc.. :-) - QAK - 2003/10/20 - PROD_CFLAGS="-O3" - ;; *) PROD_CFLAGS="-O" ;; -- cgit v0.12