Commit 069d313f authored by serg@serg.mysql.com's avatar serg@serg.mysql.com
Browse files

Merge work:/home/bk/mysql-4.0

into serg.mysql.com:/usr/home/serg/Abk/mysql-4.0
parents 5d79a1ed 440197b6
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
AM_MAKEFLAGS="-j 2"
make -k clean
gmake -k clean || true
/bin/rm -f */.deps/*.P config.cache
 
aclocal; autoheader; aclocal; automake; autoconf
aclocal && autoheader && aclocal && automake && autoconf
(cd bdb/dist && sh s_all)
(cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
if [ -d gemini ]
then
   (cd gemini && aclocal && autoheader && aclocal && automake && autoconf)
fi
 
export PATH=/usr/local/pgcc/bin:$PATH
CFLAGS="-O6 -mpentiumpro -fomit-frame-pointer -mstack-align-double" CXX=gcc CXXFLAGS="-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti -mstack-align-double" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --with-extra-charsets=complex --enable-thread-safe-client
make -j 2
CFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused  -O6 -mpentiumpro -fomit-frame-pointer -mstack-align-double" CXX=gcc CXXFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O6 -fomit-frame-pointer -mpentiumpro -mstack-align-double" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-mysqld-ldflags=-all-static  --with-client-ldflags=-all-static
 
gmake -j 4
 
mkdir -p tmp
nm --numeric-sort sql/mysqld  > tmp/mysqld.sym
objdump -d sql/mysqld > tmp/mysqld.S
strip sql/mysqld
+50 −8
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ if ($opt_innodb || $opt_bdb)

chomp($host=`hostname`);
$full_host_name=$host;
info("Compiling MySQL$version_suffix at $host$suffix, stage: $opt_stage\n");
info("Compiling MySQL$version_suffix at $host, stage: $opt_stage\n");
$connect_option= ($opt_tcpip ? "--host=$host" : "");
$host =~ /^([^.-]*)/;
$host=$1 . $opt_suffix;
@@ -65,10 +65,11 @@ $sendmail=find("/usr/lib/sendmail","/usr/sbin/sendmail");
$sur= $opt_sur ? "/my/local/bin/sur" : "";
delete $ENV{'MYSQL_PWD'};	# Reset possibly password
delete $ENV{'MY_BASEDIR_VERSION'};
$ENV{'MYSQL_TCP_PORT'}= $mysql_tcp_port= 3334 + $opt_build_thread;
$ENV{'MYSQL_TCP_PORT'}= $mysql_tcp_port= 3334 + $opt_build_thread*2;
$ENV{'MYSQL_UNIX_PORT'}=$mysql_unix_port="$opt_tmp/mysql$opt_suffix.build";
$ENV{"PERL5LIB"}="$pwd/$host/perl5:$pwd/$host/perl5/site_perl";
$slave_port=$mysql_tcp_port+16;
$manager_port=$mysql_tcp_port+1;

if (-x "$host/bin/mysqladmin")
{
@@ -78,6 +79,7 @@ if (-x "$host/bin/mysqladmin")
  log_system("$host/bin/mysqladmin --no-defaults -u root -P 9306 -h $host -s shutdown");
  log_system("$host/bin/mysqladmin --no-defaults -u root -P 9307 -h $host -s shutdown");
}
kill_all("mysqlmanager");

if ($opt_stage == 0)
{
@@ -110,7 +112,7 @@ if ($opt_stage == 0 && ! $opt_use_old_distribution)

  # Fix file times; This is needed because the time for files may be
  # in the future
  system("touch timestamp; find $var -newer timestamp -print | xargs touch; rm -f timestamp");
  system("touch timestamp; find . -newer timestamp -print | xargs touch; rm -f timestamp");
  sleep(2);
  # Ensure that files we don't want to rebuild are newer than other files
  foreach $name ("configure",
@@ -207,13 +209,13 @@ if ($opt_stage <= 4 && !$opt_no_test)
$tar_file =~ /(mysql-[^\/]*)\.tar/;
$ver=$1;
$test_dir="$pwd/$host/test/$ver";
$ENV{"LD_LIBRARY_PATH"}= "$testdir/lib:" . $ENV{"LD_LIBRARY_PATH"};
$ENV{"LD_LIBRARY_PATH"}= "$test_dir/lib:" . $ENV{"LD_LIBRARY_PATH"};

if ($opt_stage <= 5 && !$opt_no_test && !$opt_no_mysqltest)
{
  system("mkdir $bench_tmpdir") if (! -d $bench_tmpdir);
  safe_cd("${test_dir}/mysql-test");
  check_system("./mysql-test-run --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --sleep=10", "tests were successful");
  check_system("./mysql-test-run --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --manager-port=$manager_port --sleep=10", "tests were successful");
}

# Start the server if we are going to run any of the benchmarks
@@ -235,7 +237,7 @@ if (!$opt_no_test)
  {
    $extra.=" --innodb_data_file_path=ibdata1:100M";
  }
  safe_system("./bin/mysqld --no-defaults --basedir . --datadir ./data --skip-l\ocking $extra >> $log 2>&1 &");
  safe_system("./bin/mysqld --no-defaults --basedir . --datadir ./data --skip-locking $extra >> $log 2>&1 &");
  sleep(2);
}

@@ -315,7 +317,7 @@ exit 0;
sub usage
{
print <<EOF;
$0  version 1.2
$0  version 1.3

$0 takes the following options:

@@ -329,7 +331,7 @@ Compile with support for Innodb tables
Compile with support for Berkeley DB tables

--user 'user_name'
Mail 'user_name'\@analytikerna.se if something went wrong.
Mail 'user_name'\@mysql.com if something went wrong.
If user is empty then no mail is sent.

--distribution 'distribution_file'
@@ -528,3 +530,43 @@ sub rm_all
    }
  }
}

sub kill_all
{
  my ($pattern) = @_;
  my ($USER,$BSD,$LINUX,$pscmd, $user, $pid);
  $user=$ENV{'USER'};
  $BSD = -f '/vmunix' || $ENV{"OS"} eq "SunOS4";
  $LINUX = $^O eq 'linux';
  $pscmd = $BSD ? "/bin/ps -auxww" : $LINUX ? "/bin/ps axuw" : "/bin/ps -ef";

  open(PS, "$pscmd|") || die "can't run $pscmd: $!";

  # Catch any errors with eval.  A bad pattern, for instance.
 process:
  while ($cand = <PS>)
  {
    chop($cand);
    ($pid_user, $pid) = split(' ', $cand);
    next if $pid == $$;
    next process if (! ($cand =~ $pattern) || $pid_user ne $user)
    &killpid($pid);
  }
}

sub killpid
{
  local($pid) = @_;
  kill 15, $pid;
  for (1..5)
  {
    sleep 2;
    return if kill(0, $pid) == 0;
  }
  kill 9, $pid;
  for (1..5) {
    sleep 2;
    return if kill(0, $pid) == 0;
  }
  print LOG "$pid will not die!\n";
}
+18 −7
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
function copy_to_bmachine
{
 if [ x$local_build = x1 ]; then
  rm -f $2
  cp $1 $2
 else
  scp $1 $owner@$bmachine:$2
@@ -14,6 +15,7 @@ function copy_to_bmachine
function copy_from_bmachine
{
 if [ x$local_build = x1 ]; then
  rm -f $2
  cp $1 $2
 else
  scp $owner@$bmachine:$1 $2
@@ -90,10 +92,7 @@ while test $# -gt 0; do
done

echo "Removing old MySQL packages"
rm -rf $rpmdir/BUILD/mysql-*
rm -f $rpmdir/SOURCES/mysql-*
rm -f $rpmdir/SRPMS/MySQL-*
rm -f $rpmdir/SPEC/mysql-*
rm -f $bpath/NEW-RPMS/MySQL-*rpm

if [ ! -d "$logdir" ]; then
 echo "$logdir does not exist, creating"
@@ -105,12 +104,20 @@ if [ ! -f "$tarball" ]; then
 exit 1
fi

echo "Building RPM for MySQL version $VER on $bmachine"

log=$logdir/Log-RPM-`date +%y%m%d-%H%M`

echo "Building RPM for MySQL version $VER on $bmachine"
echo "Details in $log"

(
set -x
# remove old stuff
rm -rf $rpmdir/BUILD/mysql-*
rm -f $rpmdir/SOURCES/mysql-*
rm -f $rpmdir/SRPMS/MySQL-*
rm -f $rpmdir/SPECS/mysql-*
rm -rf /var/tmp/mysql

# Copy MySQL source and spec files

#Sasha: I left the scp stuff commented out instead of deleted to make it
@@ -156,7 +163,7 @@ if [ ! x$skip_perl=x1 ]; then
  set -x

  # First clean up so we do not get old versions when wildcard matching
  rm -f $rpmdir/SOURCES/DBI-*.spec
  rm -f $rpmdir/SOURCES/DBI-*.spec $rpmdir/SOURCES/mysql*
  rm -f $rpmdir/RPMS/i386/Perl-*.rpm
  rm -f $rpmdir/SRPMS/Perl-*.rpm
  rm -f $rpmdir/RPMS/i386/MySQL*-$VER_NO_DASH*.rpm
@@ -226,5 +233,9 @@ if [ x$local_build != x1 ]; then
 # And the perl ones
 #scp $owner@$bmachine:$rpmdir/RPMS/i386/Perl*-*.rpm $bpath/NEW-RPMS
 #scp $owner@$bmachine:$rpmdir/SRPMS/Perl*-*.rpm $bpath/NEW-RPMS

 #Remove some of the files that can interfere with future builds

 rm -rf /var/tmp/mysql
fi 
)  > $log 2>&1
+16 −12
Original line number Diff line number Diff line
@@ -7605,6 +7605,10 @@ compile step will still try to build @code{mysql}, but you can ignore any
warnings about @file{mysql.cc}.  (If @code{make} stops, try @code{make -k}
to tell it to continue with the rest of the build even if errors occur.)
@item
If you want to get a embedded MySQL library (@code{libmysqld.a}) you should
use the @code{--with-embedded-server} option.
@item
If you don't want your log files and database directories located under
@file{/usr/local/var}, use a @code{configure} command, something like one
@@ -7621,7 +7625,8 @@ installed under @file{/usr/local/mysql} rather than the default of
@file{/usr/local}.  The second command preserves the default installation
prefix, but overrides the default location for database directories
(normally @file{/usr/local/var}) and changes it to
@code{/usr/local/mysql/data}.
@code{/usr/local/mysql/data}.  After you have compiled MySQL, you can
change these options with option files. @xref{Option files}.
@cindex changing socket location
@cindex socket location, changing
@@ -24201,17 +24206,11 @@ for most systems, but one should be aware of it.
@cindex design, limitations
@cindex limitations, design
Because MySQL uses extremely fast table locking (multiple readers /
single writers) the biggest remaining problem is a mix of a steady stream of
inserts and slow selects on the same table.
We believe that for a huge number of systems the extremely fast
performance in other cases make this choice a win. This case is usually
also possible to solve by having multiple copies of the table, but it
takes more effort and hardware.
We are also working on some extensions to solve this problem for some
common application niches.
When using the MyISAM table handler, MySQL uses extremely fast table
locking (multiple readers / single writers). The biggest problem with
this table type is a if you have a mix of a steady stream of updates and
slow selects on the same table.  If this is a problem with some tables,
you can use another table type for these. @xref{Table types}.
MySQL can work with both transactional and not transactional tables.  To
be able to work smoothly with not transactional tables (which can't
@@ -42350,6 +42349,9 @@ library. @xref{mysql_server_init}.
@node libmysqld compiling, libmysqld restrictions, libmysqld overview, libmysqld
@subsubsection Compiling Programs with @code{libmysqld}
To get a @code{libmysqld} library you should configure MySQL with the
@code{--with-embedded-server} option.
When you link your program with @code{libmysqld}, you must also include
the system specific @code{pthread} libraries and some libraries that
@code{mysqld} uses.  You can get the full list of libraries by executing
@@ -47361,6 +47363,8 @@ Added documentation for @code{libmysqld}, the embedded MySQL server
library.  Also added example programs (a @code{mysql} client and
@code{mysqltest} test program) which use @code{libmysqld}.
@item
Removed all Gemini hooks from MySQL.
@item
Removed @code{my_thread_init()} and @code{my_thread_end()}
from mysql_com.h, and added @code{mysql_thread_init()} and
@code{mysql_thread_end()} to mysql.h.
+3 −0
Original line number Diff line number Diff line
@@ -81,6 +81,9 @@
/* Using Innobase DB */
#undef HAVE_INNOBASE_DB

/* Using old ISAM tables */
#undef HAVE_ISAM

/* Define if we have GNU readline */
#undef HAVE_LIBREADLINE

Loading