summaryrefslogtreecommitdiff
path: root/support-files
diff options
context:
space:
mode:
authorJoerg Bruehe <joerg@mysql.com>2008-11-06 16:24:58 +0100
committerJoerg Bruehe <joerg@mysql.com>2008-11-06 16:24:58 +0100
commit723b92054c20d4bc5b37650b99c74d2136b7aa60 (patch)
tree054626037ba4530233c62d28036caec35de4356f /support-files
parenta83f5b18efaa54df3b56c86c1ab9244280447f24 (diff)
downloadmariadb-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.sh25
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:"