diff options
author | Joerg Bruehe <joerg@mysql.com> | 2008-11-06 16:24:58 +0100 |
---|---|---|
committer | Joerg Bruehe <joerg@mysql.com> | 2008-11-06 16:24:58 +0100 |
commit | 723b92054c20d4bc5b37650b99c74d2136b7aa60 (patch) | |
tree | 054626037ba4530233c62d28036caec35de4356f /support-files | |
parent | a83f5b18efaa54df3b56c86c1ab9244280447f24 (diff) | |
download | mariadb-git-723b92054c20d4bc5b37650b99c74d2136b7aa60.tar.gz |
Bug #40546 Debug server in RPM is built with compiler optimization
Prevent this by modifying CFLAGS and CXXFLAGS.
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.
Diffstat (limited to 'support-files')
-rw-r--r-- | support-files/mysql.spec.sh | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 2f09ebc61b2..dc80d379b83 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -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@mysql.com> + +- 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@mysql.com> - Get rid of the "warning: Installed (but unpackaged) file(s) found:" |