diff --git a/BUILD/compile-pentium-max b/BUILD/compile-pentium-max index 5fb4c1f89d2..55f88ef4748 100755 --- a/BUILD/compile-pentium-max +++ b/BUILD/compile-pentium-max @@ -7,6 +7,7 @@ extra_flags="$pentium_cflags $fast_cflags" extra_configs="$pentium_configs" strip=yes -extra_configs="$extra_configs --with-innodb --with-berkeley-db" +extra_configs="$extra_configs --with-innodb --with-berkeley-db \ + --enable-thread-safe-client" . "$path/FINISH.sh" diff --git a/Build-tools/Do-rpm b/Build-tools/Do-rpm index 31f0d14802c..138953ab188 100755 --- a/Build-tools/Do-rpm +++ b/Build-tools/Do-rpm @@ -1,5 +1,36 @@ #!/bin/bash +#helper functions + +function copy_to_bmachine +{ + if [ x$local_build = x1 ]; then + cp $1 $2 + else + scp $1 $owner@$bmachine:$2 + fi +} + +function copy_from_bmachine +{ + if [ x$local_build = x1 ]; then + cp $1 $2 + else + scp $owner@$bmachine:$1 $2 + fi +} + +function run_command +{ + if [ x$local_build = x1 ]; then + bash $1 + else + cat $1 | ssh $owner@$bmachine bash + fi +} + +#Supply defaults + # We built on one of two machines bmachine=work smachine=work @@ -8,6 +39,7 @@ owner=my # Hard path!! bpath=`/bin/pwd` rpmdir="/usr/src/redhat" +logdir="$bpath/Logs" ###### Perl STUFF ##### @@ -24,6 +56,38 @@ AM_MAKEFLAGS="-j 2" VER=`grep "AM_INIT_AUTOMAKE(mysql, " $bpath/configure.in | \ sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;'` VER_NO_DASH=`echo $VER | sed -e "s|-.*$||"` +tarball=$bpath/mysql-$VER.tar.gz + +while test $# -gt 0; do + case "$1" in + --rpmdir=*) + rpmdir=`echo $1 | sed -e "s;--rpmdir=;;"` + ;; + --smachine=*) + smachine=`echo $1 | sed -e "s;--smachine=;;"` + ;; + --bmachine=*) + bmachine=`echo $1 | sed -e "s;--bmachine=;;"` + ;; + --owner=*) + owner=`echo $1 | sed -e "s;--owner=;;"` + ;; + --tarball=*) + tarball=`echo $1 | sed -e "s;--tarball=;;"` + ;; + --logdir=*) + logdir=`echo $1 | sed -e "s;--logdir=;;"` + ;; + --local ) + local_build=1 + ;; + --skip-perl ) + skip_perl=1 + ;; + * ) break ;; + esac + shift +done echo "Removing old MySQL packages" rm -rf $rpmdir/BUILD/mysql-* @@ -31,16 +95,34 @@ rm -f $rpmdir/SOURCES/mysql-* rm -f $rpmdir/SRPMS/MySQL-* rm -f $rpmdir/SPEC/mysql-* +if [ ! -d "$logdir" ]; then + echo "$logdir does not exist, creating" + mkdir -p $logdir +fi + +if [ ! -f "$tarball" ]; then + echo "Tarball file $tarball does not exist, please make one first" + exit 1 +fi + echo "Building RPM for MySQL version $VER on $bmachine" -log=$bpath/Logs/Log-RPM-`date +%y%m%d-%H%M` +log=$logdir/Log-RPM-`date +%y%m%d-%H%M` ( set -x # Copy MySQL source and spec files -scp $bpath/mysql-$VER.tar.gz $owner@$bmachine:$rpmdir/SOURCES -scp $bpath/Docs/Images/mysql-logo.gif $owner@$bmachine:$rpmdir/SOURCES/mysql.gif -scp $bpath/support-files/mysql-$VER.spec $owner@$bmachine:$rpmdir/SPECS + +#Sasha: I left the scp stuff commented out instead of deleted to make it +#easy to revert in a hurry, if there is a need. Once everything is tested +#and works perfectly, the scp stuff should be deleted to avoid confusion + +#scp $bpath/mysql-$VER.tar.gz $owner@$bmachine:$rpmdir/SOURCES +copy_to_bmachine $tarball $rpmdir/SOURCES +#scp $bpath/Docs/Images/mysql-logo.gif $owner@$bmachine:$rpmdir/SOURCES/mysql.gif +copy_to_bmachine $bpath/Docs/Images/mysql-logo.gif $rpmdir/SOURCES/mysql.gif +#scp $bpath/support-files/mysql-$VER.spec $owner@$bmachine:$rpmdir/SPECS +copy_to_bmachine $bpath/support-files/mysql-$VER.spec $rpmdir/SPECS # Copy perl things. Has to be uncompressed since Compress.pm is not # installed yet. Set CEXT to .gz when we support compression. @@ -52,7 +134,7 @@ CEXT= # cd /usr/lib/perl5/site_perl/5.005; ln -s ../* .; rm -f 5.005 TMP_SCRIPT_MYSQL=00-temp-for-do-rpm.$$ -cat > $bpath/Logs/$TMP_SCRIPT_MYSQL < $logdir/$TMP_SCRIPT_MYSQL < $bpath/Logs/$TMP_SCRIPT_PERL < $logdir/$TMP_SCRIPT_PERL < $log 2>&1 + + diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 6912953495e..3245908c9b0 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -151,9 +151,9 @@ BuildMySQL() { # The --enable-assembler simply does nothing on systems that does not # support assembler speedups. sh -c "PATH=\"${MYSQL_BUILD_PATH:-/bin:/usr/bin}\" \ - CC=\"${MYSQL_BUILD_CC:-egcs}\" \ + CC=\"${MYSQL_BUILD_CC:-gcc}\" \ CFLAGS=\"${MYSQL_BUILD_CFLAGS:- -O3}\" \ - CXX=\"${MYSQL_BUILD_CXX:-egcs}\" \ + CXX=\"${MYSQL_BUILD_CXX:-gcc}\" \ CXXFLAGS=\"${MYSQL_BUILD_CXXFLAGS:- -O3 \ -felide-constructors -fno-exceptions -fno-rtti \ }\" \ @@ -204,6 +204,7 @@ BuildMySQL "--enable-shared --enable-thread-safe-client --with-berkeley-db --wit # Save shared libraries and mysqld-max mv sql/mysqld sql/mysqld-max +nm --numeric-sort sql/mysqld-max > sql/mysqld-max.sym (cd libmysql/.libs; tar cf $RBR/shared-libs.tar *.so*) (cd libmysql_r/.libs; tar rf $RBR/shared-libs.tar *.so*) @@ -219,6 +220,7 @@ BuildMySQL "--disable-shared" \ "--with-mysqld-ldflags='-all-static'" \ "--with-client-ldflags='-all-static'" \ "--without-berkeley-db --without-innodb" +nm --numeric-sort sql/mysqld > sql/mysqld.sym %install -n mysql-%{mysql_version} RBR=$RPM_BUILD_ROOT @@ -240,6 +242,10 @@ make install DESTDIR=$RBR benchdir_root=/usr/share/ # install saved mysqld-max install -m755 $MBD/sql/mysqld-max $RBR/usr/sbin/mysqld-max +# install symbol files ( for stack trace resolution) +install -m644 $MBD/sql/mysqld-max.sym $RBR/usr/lib/mysql/mysqld-max.sym +install -m644 $MBD/sql/mysqld.sym $RBR/usr/lib/mysql/mysqld.sym + # Install logrotate and autostart install -m644 $MBD/support-files/mysql-log-rotate $RBR/etc/logrotate.d/mysql install -m755 $MBD/support-files/mysql.server $RBR/etc/rc.d/init.d/mysql @@ -349,6 +355,7 @@ fi %attr(644, root, root) /usr/info/mysql.info* %attr(755, root, root) /usr/sbin/mysqld +%attr(644, root, root) /usr/lib/mysql/mysqld.sym %attr(644, root, root) /etc/logrotate.d/mysql %attr(755, root, root) /etc/rc.d/init.d/mysql @@ -403,6 +410,7 @@ fi %files Max %attr(755, root, root) /usr/sbin/mysqld-max +%attr(644, root, root) /usr/lib/mysql/mysqld-max.sym %changelog