List:Commits« Previous MessageNext Message »
From:Joerg Bruehe Date:November 6 2008 4:25pm
Subject:bzr commit into mysql-5.0-bugteam branch (joerg:2704) Bug#40546
View as plain text  
#At file:///MySQL/REPO/V50/bug40546-5.0/

 2704 Joerg Bruehe	2008-11-06
      Bug #40546  Debug server in RPM is built with compiler optimization
      
      Prevent this by modifying CFLAGS and CXXFLAGS.
modified:
  support-files/mysql.spec.sh

per-file messages:
  support-files/mysql.spec.sh
    Bug #40546  Debug server in RPM is built with compiler optimization
    
    Modify CFLAGS and CXXFLAGS for the duration of the debug server build
    (implemented by doing it in a subshell)
    so that they do not contain any optimization flag.
    Play it safe and prepare for both gcc and icc.
=== modified file 'support-files/mysql.spec.sh'
--- a/support-files/mysql.spec.sh	2008-08-25 19:07:41 +0000
+++ b/support-files/mysql.spec.sh	2008-11-06 15:24:58 +0000
@@ -240,10 +240,8 @@ BuildMySQL() {
 sh -c  "PATH=\"${MYSQL_BUILD_PATH:-$PATH}\" \
 	CC=\"${CC:-$MYSQL_BUILD_CC}\" \
 	CXX=\"${CXX:-$MYSQL_BUILD_CXX}\" \
-	CFLAGS=\"${MYSQL_BUILD_CFLAGS:-$RPM_OPT_FLAGS}\" \
-	CXXFLAGS=\"${MYSQL_BUILD_CXXFLAGS:-$RPM_OPT_FLAGS \
-	          -felide-constructors -fno-exceptions -fno-rtti \
-		  }\" \
+	CFLAGS=\"$CFLAGS\" \
+	CXXFLAGS=\"$CXXFLAGS\" \
 	LDFLAGS=\"$MYSQL_BUILD_LDFLAGS\" \
 	./configure \
  	    $* \
@@ -307,6 +305,10 @@ then
 	export CXX="gcc"
 fi
 
+# Prepare compiler flags
+CFLAGS=${MYSQL_BUILD_CFLAGS:-$RPM_OPT_FLAGS}
+CXXFLAGS=${MYSQL_BUILD_CXXFLAGS:-$RPM_OPT_FLAGS -felide-constructors -fno-exceptions -fno-rtti }
+
 #
 # Only link statically on our i386 build host (which has a specially
 # patched static glibc installed) - ia64 and x86_64 run glibc-2.3 (unpatched)
@@ -314,6 +316,14 @@ fi
 #
 for servertype in '--with-debug=full' ' '
 do
+  (
+  # We are in a subshell, so we can modify variables just for one run.
+  if test "$servertype" != ' '
+  then
+	CFLAGS=`echo $CFLAGS | sed -e 's/-O[0-9]* //' -e 's/-unroll2 //' -e 's/-ip //'`
+	CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-O[0-9]* //' -e 's/-unroll2 //' -e 's/-ip //'`
+  fi
+
   BuildMySQL "\
 %if %{STATIC_BUILD}
 		--disable-shared \
@@ -335,6 +345,7 @@ do
 		--with-blackhole-storage-engine \
 		--with-federated-storage-engine \
 		--with-big-tables $servertype"
+
   if test "$servertype" != ' '
   then
     # if this is not the regular build, we save the server binary
@@ -344,6 +355,7 @@ do
     make test-bt-debug
     make clean
   fi
+  )
 done
 
 ./libtool --mode=execute nm --numeric-sort sql/mysqld > sql/mysqld.sym
@@ -795,6 +807,11 @@ fi
 # itself - note that they must be ordered by date (important when
 # merging BK trees)
 %changelog
+* Thu Nov 06 2008 Joerg Bruehe <joerg@stripped>
+
+- Modify CFLAGS and CXXFLAGS such that a debug build is not optimized.
+  This should cover both gcc and icc flags.  Fixes bug#40546.
+
 * Mon Aug 18 2008 Joerg Bruehe <joerg@stripped>
 
 - Get rid of the "warning: Installed (but unpackaged) file(s) found:"

Thread
bzr commit into mysql-5.0-bugteam branch (joerg:2704) Bug#40546Joerg Bruehe6 Nov