Commit 723b9205 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.

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.
parent a83f5b18
...@@ -240,10 +240,8 @@ BuildMySQL() { ...@@ -240,10 +240,8 @@ BuildMySQL() {
sh -c "PATH=\"${MYSQL_BUILD_PATH:-$PATH}\" \ sh -c "PATH=\"${MYSQL_BUILD_PATH:-$PATH}\" \
CC=\"${CC:-$MYSQL_BUILD_CC}\" \ CC=\"${CC:-$MYSQL_BUILD_CC}\" \
CXX=\"${CXX:-$MYSQL_BUILD_CXX}\" \ CXX=\"${CXX:-$MYSQL_BUILD_CXX}\" \
CFLAGS=\"${MYSQL_BUILD_CFLAGS:-$RPM_OPT_FLAGS}\" \ CFLAGS=\"$CFLAGS\" \
CXXFLAGS=\"${MYSQL_BUILD_CXXFLAGS:-$RPM_OPT_FLAGS \ CXXFLAGS=\"$CXXFLAGS\" \
-felide-constructors -fno-exceptions -fno-rtti \
}\" \
LDFLAGS=\"$MYSQL_BUILD_LDFLAGS\" \ LDFLAGS=\"$MYSQL_BUILD_LDFLAGS\" \
./configure \ ./configure \
$* \ $* \
...@@ -307,6 +305,10 @@ then ...@@ -307,6 +305,10 @@ 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 }
# #
# Only link statically on our i386 build host (which has a specially # 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) # patched static glibc installed) - ia64 and x86_64 run glibc-2.3 (unpatched)
...@@ -314,6 +316,14 @@ fi ...@@ -314,6 +316,14 @@ fi
# #
for servertype in '--with-debug=full' ' ' for servertype in '--with-debug=full' ' '
do 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 "\ BuildMySQL "\
%if %{STATIC_BUILD} %if %{STATIC_BUILD}
--disable-shared \ --disable-shared \
...@@ -335,6 +345,7 @@ do ...@@ -335,6 +345,7 @@ do
--with-blackhole-storage-engine \ --with-blackhole-storage-engine \
--with-federated-storage-engine \ --with-federated-storage-engine \
--with-big-tables $servertype" --with-big-tables $servertype"
if test "$servertype" != ' ' if test "$servertype" != ' '
then then
# if this is not the regular build, we save the server binary # if this is not the regular build, we save the server binary
...@@ -344,6 +355,7 @@ do ...@@ -344,6 +355,7 @@ do
make test-bt-debug make test-bt-debug
make clean make clean
fi fi
)
done done
./libtool --mode=execute nm --numeric-sort sql/mysqld > sql/mysqld.sym ./libtool --mode=execute nm --numeric-sort sql/mysqld > sql/mysqld.sym
...@@ -795,6 +807,11 @@ fi ...@@ -795,6 +807,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.
* Mon Aug 18 2008 Joerg Bruehe <joerg@mysql.com> * Mon Aug 18 2008 Joerg Bruehe <joerg@mysql.com>
- Get rid of the "warning: Installed (but unpackaged) file(s) found:" - Get rid of the "warning: Installed (but unpackaged) file(s) found:"
......
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