Commit c0b41941 authored by Joerg Bruehe's avatar Joerg Bruehe

Bug #40546 Debug server in RPM is built with compiler optimization

Prevent this by modifying CFLAGS and CXXFLAGS.

Upmerge from 5.0, modified according to the different spec file structure.

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.
parents 48450308 44acff23
...@@ -306,8 +306,6 @@ mkdir -p $RBR%{_libdir}/mysql ...@@ -306,8 +306,6 @@ mkdir -p $RBR%{_libdir}/mysql
PATH=${MYSQL_BUILD_PATH:-/bin:/usr/bin} PATH=${MYSQL_BUILD_PATH:-/bin:/usr/bin}
export PATH export PATH
# Build the Debug binary.
# Use gcc for C and C++ code (to avoid a dependency on libstdc++ and # Use gcc for C and C++ code (to avoid a dependency on libstdc++ and
# including exceptions into the code # including exceptions into the code
if [ -z "$CXX" -a -z "$CC" ] if [ -z "$CXX" -a -z "$CC" ]
...@@ -316,16 +314,25 @@ then ...@@ -316,16 +314,25 @@ then
export CXX="gcc" export CXX="gcc"
fi fi
# Prepare compiler flags
CFLAGS=${MYSQL_BUILD_CFLAGS:-$RPM_OPT_FLAGS}
CXXFLAGS=${MYSQL_BUILD_CXXFLAGS:-$RPM_OPT_FLAGS -felide-constructors -fno-exceptions -fno-rtti }
############################################################################## ##############################################################################
# #
# Build the debug version # Build the debug version
# #
############################################################################## ##############################################################################
# Strip -Oxxx, add -g and --with-debug. (
(cd mysql-debug-%{mysql_version} && # We are in a subshell, so we can modify variables just for one run.
CFLAGS=`echo "${MYSQL_BUILD_CFLAGS:-$RPM_OPT_FLAGS} -g" | sed -e 's/-O[0-9]*//g'` \ CFLAGS=`echo $CFLAGS | sed -e 's/-O[0-9]* //' -e 's/-unroll2 //' -e 's/-ip //' -e 's/$/ -g/'`
CXXFLAGS=`echo "${MYSQL_BUILD_CXXFLAGS:-$RPM_OPT_FLAGS -felide-constructors -fno-exceptions -fno-rtti} -g" | sed -e 's/-O[0-9]*//g'` \ CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-O[0-9]* //' -e 's/-unroll2 //' -e 's/-ip //' -e 's/$/ -g/'`
# Add -g and --with-debug.
cd mysql-debug-%{mysql_version} &&
CFLAGS=\"$CFLAGS\" \
CXXFLAGS=\"$CXXFLAGS\" \
BuildMySQL "--enable-shared \ BuildMySQL "--enable-shared \
--with-debug \ --with-debug \
--with-innodb \ --with-innodb \
...@@ -357,8 +364,8 @@ fi ...@@ -357,8 +364,8 @@ fi
############################################################################## ##############################################################################
(cd mysql-release-%{mysql_version} && (cd mysql-release-%{mysql_version} &&
CFLAGS="${MYSQL_BUILD_CFLAGS:-$RPM_OPT_FLAGS} -g" \ CFLAGS=\"$CFLAGS\" \
CXXFLAGS="${MYSQL_BUILD_CXXFLAGS:-$RPM_OPT_FLAGS -felide-constructors -fno-exceptions -fno-rtti} -g" \ CXXFLAGS=\"$CXXFLAGS\" \
BuildMySQL "--enable-shared \ BuildMySQL "--enable-shared \
--with-innodb \ --with-innodb \
%if %{CLUSTER_BUILD} %if %{CLUSTER_BUILD}
...@@ -833,6 +840,11 @@ fi ...@@ -833,6 +840,11 @@ fi
# itself - note that they must be ordered by date (important when # itself - note that they must be ordered by date (important when
# merging BK trees) # merging BK trees)
%changelog %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.
* Fri Aug 29 2008 Kent Boortz <kent@mysql.com> * Fri Aug 29 2008 Kent Boortz <kent@mysql.com>
- Removed the "Federated" storage engine option, and enabled in all - Removed the "Federated" storage engine option, and enabled in all
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment