From 51a360a0051323837c2885d29c92bd7cd2072341 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 6 Nov 2006 11:41:52 +0100 Subject: [PATCH 01/16] Bug#23010 _my_b_read() passing illegal file handles to my_seek() - The io cache flag seek_not_done was not set properly in the reinit_io_cache function call and this led my_seek to be called desipite an invalid file handle. - Added a test in reinit_io_cache to ensure we have a valid file handle before setting seek_not_done flag. mysys/mf_iocache.c: Added a test to only trigger my_seek function calls if we have a valid file descriptor. mysys/my_seek.c: Refactored incomplete condition into an assertion. This also ensures that variable newpos is initialized properly. --- mysys/mf_iocache.c | 6 +++++- mysys/my_seek.c | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mysys/mf_iocache.c b/mysys/mf_iocache.c index a7937da0cc2..5f0069d9bed 100644 --- a/mysys/mf_iocache.c +++ b/mysys/mf_iocache.c @@ -313,7 +313,11 @@ my_bool reinit_io_cache(IO_CACHE *info, enum cache_type type, if (info->type == READ_CACHE) { info->write_end=info->write_buffer+info->buffer_length; - info->seek_not_done=1; + /* + Trigger a new seek only if we have a valid + file handle. + */ + info->seek_not_done= (info->file >= 0); } info->end_of_file = ~(my_off_t) 0; } diff --git a/mysys/my_seek.c b/mysys/my_seek.c index ec24a26b3d9..f47383b7ace 100644 --- a/mysys/my_seek.c +++ b/mysys/my_seek.c @@ -30,6 +30,11 @@ my_off_t my_seek(File fd, my_off_t pos, int whence, whence, MyFlags)); DBUG_ASSERT(pos != MY_FILEPOS_ERROR); /* safety check */ + /* + Make sure we are using a valid file descriptor + */ + DBUG_ASSERT(fd >= 0); + newpos=lseek(fd, pos, whence); if (newpos == (os_off_t) -1) { From 12ac165c2f856ca8e8bf10a85b60722c9cbade64 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 8 Dec 2006 10:23:03 +0100 Subject: [PATCH 02/16] BUG#24896 mysql_upgrade -p fix client/mysql_upgrade.c: BUG#24896 mysql_upgrade core dumps on RHEL3 using 5.0.30 commerical binaries --- client/mysql_upgrade.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c index 520d87b5ed7..309b532051c 100644 --- a/client/mysql_upgrade.c +++ b/client/mysql_upgrade.c @@ -142,6 +142,7 @@ void set_extra_default(int id, const struct my_option *opt) case 'f': /* --force is ours */ case 'u': /* --user passed on cmdline */ case 'T': /* --debug-info is not accepted by mysqlcheck */ + case 'p': /* --password may change yet */ /* so, do nothing */ break; default: @@ -173,7 +174,7 @@ void set_extra_default(int id, const struct my_option *opt) d->id= id; d->name= opt->name; d->n_len= strlen(opt->name); - if (opt->arg_type != NO_ARG) + if (opt->arg_type != NO_ARG && opt->value) switch (opt->var_type & GET_TYPE_MASK) { case GET_BOOL: if (*((int *)opt->value)) @@ -319,6 +320,15 @@ static int create_defaults_file(const char *path, const char *forced_path) } dynstr_set(&buf, "\n[client]"); + if (opt_password) + { + if (dynstr_append_mem(&buf, "\npassword=", 10) + || dynstr_append_mem(&buf, opt_password, strlen(opt_password))) + { + ret = 1; + goto error; + } + } while (extra_defaults) { int len; From c6e421bc451e92db86980acc495bfdddd3058d0f Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 12 Dec 2006 15:47:02 +0100 Subject: [PATCH 03/16] BUG#24896 magnus' suggestion --- client/mysql_upgrade.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c index 309b532051c..0f3f307a26d 100644 --- a/client/mysql_upgrade.c +++ b/client/mysql_upgrade.c @@ -322,8 +322,8 @@ static int create_defaults_file(const char *path, const char *forced_path) dynstr_set(&buf, "\n[client]"); if (opt_password) { - if (dynstr_append_mem(&buf, "\npassword=", 10) - || dynstr_append_mem(&buf, opt_password, strlen(opt_password))) + if (dynstr_append(&buf, "\npassword=") + || dynstr_append(&buf, opt_password)) { ret = 1; goto error; From 2eeeb9b4d390b438e0c3eac7143255dc10e979ca Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 19 Dec 2006 15:10:15 +0100 Subject: [PATCH 04/16] remove hard-coded socket paths from some tests mysql-test/t/grant_cache.test: replace hard-coded socket paths with variable containing the appropriate path mysql-test/t/myisam.test: replace hard-coded socket paths with variable containing the appropriate path mysql-test/t/query_cache_notembedded.test: replace hard-coded socket paths with variable containing the appropriate path mysql-test/t/rpl000015.test: replace hard-coded socket paths with variable containing the appropriate path mysql-test/t/rpl000017.test: replace hard-coded socket paths with variable containing the appropriate path mysql-test/t/rpl_rotate_logs.test: replace hard-coded socket paths with variable containing the appropriate path --- mysql-test/t/grant_cache.test | 14 +++++++------- mysql-test/t/myisam.test | 2 +- mysql-test/t/query_cache_notembedded.test | 4 ++-- mysql-test/t/rpl000015.test | 4 ++-- mysql-test/t/rpl000017.test | 4 ++-- mysql-test/t/rpl_rotate_logs.test | 4 ++-- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/mysql-test/t/grant_cache.test b/mysql-test/t/grant_cache.test index 703ad5d8004..7e17a03ec21 100644 --- a/mysql-test/t/grant_cache.test +++ b/mysql-test/t/grant_cache.test @@ -14,7 +14,7 @@ set GLOBAL query_cache_size=1355776; reset query cache; flush status; -connect (root,localhost,root,,test,$MASTER_MYPORT,master.sock); +connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK); connection root; show grants for current_user; show grants; @@ -29,7 +29,7 @@ insert into mysqltest.t2 values (3,3,3); create table test.t1 (a char (10)); insert into test.t1 values ("test.t1"); select * from t1; -connect (root2,localhost,root,,mysqltest,$MASTER_MYPORT,master.sock); +connect (root2,localhost,root,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK); connection root2; # put queries in cache select * from t1; @@ -47,7 +47,7 @@ grant SELECT on test.t1 to mysqltest_2@localhost; grant SELECT(a) on mysqltest.t1 to mysqltest_3@localhost; # The following queries should be fetched from cache -connect (user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,master.sock); +connect (user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK); connection user1; show grants for current_user(); show status like "Qcache_queries_in_cache"; @@ -72,12 +72,12 @@ show status like "Qcache_hits"; show status like "Qcache_not_cached"; # Don't use '' as user because it will pick Unix login -connect (unkuser,localhost,unkuser,,,$MASTER_MYPORT,master.sock); +connect (unkuser,localhost,unkuser,,,$MASTER_MYPORT,$MASTER_MYSOCK); connection unkuser; show grants for current_user(); # The following queries should be fetched from cache -connect (user2,localhost,mysqltest_2,,mysqltest,$MASTER_MYPORT,master.sock); +connect (user2,localhost,mysqltest_2,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK); connection user2; select "user2"; select * from t1; @@ -92,7 +92,7 @@ show status like "Qcache_hits"; show status like "Qcache_not_cached"; # The following queries should not be fetched from cache -connect (user3,localhost,mysqltest_3,,mysqltest,$MASTER_MYPORT,master.sock); +connect (user3,localhost,mysqltest_3,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK); connection user3; select "user3"; --replace_result 127.0.0.1 localhost @@ -113,7 +113,7 @@ show status like "Qcache_hits"; show status like "Qcache_not_cached"; # Connect without a database -connect (user4,localhost,mysqltest_1,,*NO-ONE*,$MASTER_MYPORT,master.sock); +connect (user4,localhost,mysqltest_1,,*NO-ONE*,$MASTER_MYPORT,$MASTER_MYSOCK); connection user4; select "user4"; show grants; diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test index 745e3a2e377..c3269084c6f 100644 --- a/mysql-test/t/myisam.test +++ b/mysql-test/t/myisam.test @@ -495,7 +495,7 @@ insert into t1 values (1),(2),(3),(4),(5),(6); insert into t2 values (1,1),(2,1); lock tables t1 read local, t2 read local; select straight_join * from t1,t2 force index (primary) where t1.a=t2.a; -connect (root,localhost,root,,test,$MASTER_MYPORT,master.sock); +connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK); insert into t2 values(2,0); disconnect root; connection default; diff --git a/mysql-test/t/query_cache_notembedded.test b/mysql-test/t/query_cache_notembedded.test index fd4785ffe95..20baf3450e2 100644 --- a/mysql-test/t/query_cache_notembedded.test +++ b/mysql-test/t/query_cache_notembedded.test @@ -81,12 +81,12 @@ drop table t1, t2, t3, t11, t21; # # do not use QC if tables locked (BUG#12385) # -connect (root,localhost,root,,test,$MASTER_MYPORT,master.sock); +connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK); connection root; CREATE TABLE t1 ( a INT NOT NULL PRIMARY KEY AUTO_INCREMENT ) ENGINE = MyISAM; LOCK TABLE t1 READ LOCAL; -connect (root2,localhost,root,,test,$MASTER_MYPORT,master.sock); +connect (root2,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK); connection root2; INSERT INTO t1 VALUES (), (), (); connection root; diff --git a/mysql-test/t/rpl000015.test b/mysql-test/t/rpl000015.test index 4e329fc87ea..a23a4b0ba5f 100644 --- a/mysql-test/t/rpl000015.test +++ b/mysql-test/t/rpl000015.test @@ -1,5 +1,5 @@ -connect (master,localhost,root,,test,$MASTER_MYPORT,master.sock); -connect (slave,localhost,root,,test,$SLAVE_MYPORT,slave.sock); +connect (master,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK); +connect (slave,localhost,root,,test,$SLAVE_MYPORT,$SLAVE_MYSOCK); connection master; reset master; show master status; diff --git a/mysql-test/t/rpl000017.test b/mysql-test/t/rpl000017.test index 7b4e6bf4d3a..ea3aba8fb75 100644 --- a/mysql-test/t/rpl000017.test +++ b/mysql-test/t/rpl000017.test @@ -1,5 +1,5 @@ -connect (master,localhost,root,,test,$MASTER_MYPORT,master.sock); -connect (slave,localhost,root,,test,$SLAVE_MYPORT,slave.sock); +connect (master,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK); +connect (slave,localhost,root,,test,$SLAVE_MYPORT,$SLAVE_MYSOCK); connection master; reset master; grant replication slave on *.* to replicate@localhost identified by 'aaaaaaaaaaaaaaab'; diff --git a/mysql-test/t/rpl_rotate_logs.test b/mysql-test/t/rpl_rotate_logs.test index 891582a167c..8d751e43958 100644 --- a/mysql-test/t/rpl_rotate_logs.test +++ b/mysql-test/t/rpl_rotate_logs.test @@ -9,11 +9,11 @@ # changes # - Test creating a duplicate key error and recover from it -connect (master,localhost,root,,test,$MASTER_MYPORT,master.sock); +connect (master,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK); --disable_warnings drop table if exists t1, t2, t3, t4; --enable_warnings -connect (slave,localhost,root,,test,$SLAVE_MYPORT,slave.sock); +connect (slave,localhost,root,,test,$SLAVE_MYPORT,$SLAVE_MYSOCK); system cat /dev/null > var/slave-data/master.info; system chmod 000 var/slave-data/master.info; connection slave; From a1ecbab689ed475ce61c05c7b02609b1efe5e660 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 20 Dec 2006 13:23:33 +0100 Subject: [PATCH 05/16] add file to VC++ project file VC++Files/mysys/mysys.vcproj: add my_getpagesize.c to mysys.vcproj --- VC++Files/mysys/mysys.vcproj | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/VC++Files/mysys/mysys.vcproj b/VC++Files/mysys/mysys.vcproj index 3f2c5e755ac..87100ce8e5e 100644 --- a/VC++Files/mysys/mysys.vcproj +++ b/VC++Files/mysys/mysys.vcproj @@ -3417,6 +3417,49 @@ PreprocessorDefinitions=""/> + + + + + + + + + + + + + + + + + Date: Mon, 1 Jan 2007 05:30:31 +0100 Subject: [PATCH 06/16] mysql_secure_installation.sh: Portable handling of "echo" without newline (bug#24605) check-cpu: In developer script safe to use "printf", not "echo -n" BUILD/check-cpu: In developer script safe to use "printf", not "echo -n" scripts/mysql_secure_installation.sh: Portable handling of "echo" without newline (bug#24605) --- BUILD/check-cpu | 3 +-- scripts/mysql_secure_installation.sh | 29 +++++++++++++++++++--------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/BUILD/check-cpu b/BUILD/check-cpu index e207d12d972..9dd10b8ec3e 100755 --- a/BUILD/check-cpu +++ b/BUILD/check-cpu @@ -167,8 +167,7 @@ check_cpu () { touch __test.c while [ "$cpu_arg" ] ; do - # FIXME: echo -n isn't portable - see contortions autoconf goes through - echo -n testing $cpu_arg "... " >&2 + printf "testing $cpu_arg ... " >&2 # compile check check_cpu_cflags=`eval echo $check_cpu_args` diff --git a/scripts/mysql_secure_installation.sh b/scripts/mysql_secure_installation.sh index 1c7ca34ad59..e42e83233c3 100644 --- a/scripts/mysql_secure_installation.sh +++ b/scripts/mysql_secure_installation.sh @@ -22,6 +22,16 @@ command=".mysql.$$" trap "interrupt" 2 rootpass="" +echo_n= +echo_c= + +set_echo_compat() { + case `echo "testing\c"`,`echo -n testing` in + *c*,-n*) echo_n= echo_c= ;; + *c*,*) echo_n=-n echo_c= ;; + *) echo_n= echo_c='\c' ;; + esac +} prepare() { touch $config $command @@ -45,7 +55,7 @@ get_root_password() { status=1 while [ $status -eq 1 ]; do stty -echo - echo -n "Enter current password for root (enter for none): " + echo $echo_n "Enter current password for root (enter for none): $echo_c" read password echo stty echo @@ -65,10 +75,10 @@ get_root_password() { set_root_password() { stty -echo - echo -n "New password: " + echo $echo_n "New password: $echo_c" read password1 echo - echo -n "Re-enter new password: " + echo $echo_n "Re-enter new password: $echo_c" read password2 echo stty echo @@ -173,6 +183,7 @@ cleanup() { # The actual script starts here prepare +set_echo_compat echo echo @@ -201,11 +212,11 @@ echo "root user without the proper authorisation." echo if [ $hadpass -eq 0 ]; then - echo -n "Set root password? [Y/n] " + echo $echo_n "Set root password? [Y/n] $echo_c" else echo "You already have a root password set, so you can safely answer 'n'." echo - echo -n "Change the root password? [Y/n] " + echo $echo_n "Change the root password? [Y/n] $echo_c" fi read reply @@ -232,7 +243,7 @@ echo "go a bit smoother. You should remove them before moving into a" echo "production environment." echo -echo -n "Remove anonymous users? [Y/n] " +echo $echo_n "Remove anonymous users? [Y/n] $echo_c" read reply if [ "$reply" = "n" ]; then @@ -251,7 +262,7 @@ echo "Normally, root should only be allowed to connect from 'localhost'. This" echo "ensures that someone cannot guess at the root password from the network." echo -echo -n "Disallow root login remotely? [Y/n] " +echo $echo_n "Disallow root login remotely? [Y/n] $echo_c" read reply if [ "$reply" = "n" ]; then echo " ... skipping." @@ -270,7 +281,7 @@ echo "access. This is also intended only for testing, and should be removed" echo "before moving into a production environment." echo -echo -n "Remove test database and access to it? [Y/n] " +echo $echo_n "Remove test database and access to it? [Y/n] $echo_c" read reply if [ "$reply" = "n" ]; then echo " ... skipping." @@ -288,7 +299,7 @@ echo "Reloading the privilege tables will ensure that all changes made so far" echo "will take effect immediately." echo -echo -n "Reload privilege tables now? [Y/n] " +echo $echo_n "Reload privilege tables now? [Y/n] $echo_c" read reply if [ "$reply" = "n" ]; then echo " ... skipping." From 190a79c7f0e3f656bca932c213b3c48d5f4c8fd4 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 1 Jan 2007 07:22:57 +0100 Subject: [PATCH 07/16] configure.in: Don't build server when configured --without-server (bug#23973) configure.in: Don't build server when configured --without-server (bug#23973) --- configure.in | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/configure.in b/configure.in index 4ac0637e42c..8457a2dcad0 100644 --- a/configure.in +++ b/configure.in @@ -2990,10 +2990,14 @@ AM_CONDITIONAL(HAVE_NETWARE, test "$netware_dir" = "netware") export CC CXX CFLAGS CXXFLAGS LD LDFLAGS AR ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS'" -if test "$with_server" = "yes" -o "$THREAD_SAFE_CLIENT" != "no" +if test "$with_server" != "no" -o "$THREAD_SAFE_CLIENT" != "no" then AC_DEFINE([THREAD], [1], [Define if you want to have threaded code. This may be undef on client code]) +fi + +if test "$with_server" != "no" +then # Avoid _PROGRAMS names THREAD_LPROGRAMS="test_thr_alarm\$(EXEEXT) test_thr_lock\$(EXEEXT)" AC_SUBST(THREAD_LPROGRAMS) From 6c2883fc2eeb8d108e981f8ecb020ce2720f14c8 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 1 Jan 2007 08:49:17 +0100 Subject: [PATCH 08/16] configure.in: Build "mysqld_error.h" even if configured --withouth-server (bug#21265) configure.in: Build "mysqld_error.h" even if configured --withouth-server (bug#21265) --- configure.in | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/configure.in b/configure.in index 3cf7327d185..26ccd3f4155 100644 --- a/configure.in +++ b/configure.in @@ -2494,12 +2494,14 @@ thread_dirs= dnl This probably should be cleaned up more - for now the threaded dnl client is just using plain-old libs. -sql_client_dirs="strings regex mysys libmysql client" +sql_client_dirs= linked_client_targets="linked_libmysql_sources" -if test "$THREAD_SAFE_CLIENT" != "no" +if test "$THREAD_SAFE_CLIENT" = "no" then - sql_client_dirs="libmysql_r $sql_client_dirs" + sql_client_dirs="strings regex mysys extra libmysql client" +else + sql_client_dirs="strings regex mysys extra libmysql libmysql_r client" linked_client_targets="$linked_client_targets linked_libmysql_r_sources" AC_CONFIG_FILES(libmysql_r/Makefile) AC_DEFINE([THREAD_SAFE_CLIENT], [1], [Should be client be thread safe]) @@ -2532,13 +2534,13 @@ if test "$with_server" != "no" -o "$THREAD_SAFE_CLIENT" != "no" then AC_DEFINE([THREAD], [1], [Define if you want to have threaded code. This may be undef on client code]) + # Avoid _PROGRAMS names + THREAD_LOBJECTS="thr_alarm.o thr_lock.o thr_mutex.o thr_rwlock.o my_pthread.o my_thr_init.o mf_keycache.o" + AC_SUBST(THREAD_LOBJECTS) fi if test "$with_server" != "no" then - # Avoid _PROGRAMS names - THREAD_LOBJECTS="thr_alarm.o thr_lock.o thr_mutex.o thr_rwlock.o my_pthread.o my_thr_init.o mf_keycache.o" - AC_SUBST(THREAD_LOBJECTS) server_scripts="mysqld_safe mysql_install_db" sql_server_dirs="strings mysys dbug extra regex" From 690404db2eb2d90b5286b5adc89533e8cea13f8a Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 1 Jan 2007 09:54:41 +0100 Subject: [PATCH 09/16] mysqld.cc, configure.in: Don't use thread priority by default on Mac OS X (bug#18526) configure.in: Don't use thread priority by default on Mac OS X (bug#18526) sql/mysqld.cc: Don't use thread priority by default on Mac OS X (bug#18526) --- configure.in | 2 ++ sql/mysqld.cc | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 26ccd3f4155..69a0f9b576e 100644 --- a/configure.in +++ b/configure.in @@ -1073,6 +1073,8 @@ case $SYSTEM_TYPE in fi ;; *darwin*) + AC_DEFINE([DEFAULT_SKIP_THREAD_PRIORITY], [1], [default to skip thread priority]) + CPPFLAGS="-D" if test "$ac_cv_prog_gcc" = "yes" then FLAGS="-D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT" diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 95de1f91ecf..783bca70739 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -51,6 +51,10 @@ #define OPT_NDBCLUSTER_DEFAULT 0 #endif +#ifndef DEFAULT_SKIP_THREAD_PRIORITY +#define DEFAULT_SKIP_THREAD_PRIORITY 0 +#endif + #include #include #include @@ -5384,8 +5388,8 @@ Can't be set to 1 if --log-slave-updates is used.", {"skip-symlink", OPT_SKIP_SYMLINKS, "Don't allow symlinking of tables. Deprecated option. Use --skip-symbolic-links instead.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, {"skip-thread-priority", OPT_SKIP_PRIOR, - "Don't give threads different priorities.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, - 0, 0, 0, 0, 0}, + "Don't give threads different priorities.", 0, 0, 0, GET_NO_ARG, NO_ARG, + DEFAULT_SKIP_THREAD_PRIORITY, 0, 0, 0, 0, 0}, #ifdef HAVE_REPLICATION {"slave-load-tmpdir", OPT_SLAVE_LOAD_TMPDIR, "The location where the slave should put its temporary files when \ From 19a33e08f2da6692e4f1e18b8b0b627df4ae5ac5 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 1 Jan 2007 10:50:39 +0100 Subject: [PATCH 10/16] Many files: Renamed hash_create() not to clash with imap using embedded server (bug#13859) innobase/buf/buf0buf.c: Renamed hash_create() not to clash with imap using embedded server (bug#13859) innobase/dict/dict0dict.c: Renamed hash_create() not to clash with imap using embedded server (bug#13859) innobase/fil/fil0fil.c: Renamed hash_create() not to clash with imap using embedded server (bug#13859) innobase/ha/ha0ha.c: Renamed hash_create() not to clash with imap using embedded server (bug#13859) innobase/ha/hash0hash.c: Renamed hash_create() not to clash with imap using embedded server (bug#13859) innobase/include/hash0hash.h: Renamed hash_create() not to clash with imap using embedded server (bug#13859) innobase/lock/lock0lock.c: Renamed hash_create() not to clash with imap using embedded server (bug#13859) innobase/log/log0recv.c: Renamed hash_create() not to clash with imap using embedded server (bug#13859) innobase/thr/thr0loc.c: Renamed hash_create() not to clash with imap using embedded server (bug#13859) --- innobase/buf/buf0buf.c | 2 +- innobase/dict/dict0dict.c | 6 +++--- innobase/fil/fil0fil.c | 4 ++-- innobase/ha/ha0ha.c | 2 +- innobase/ha/hash0hash.c | 2 +- innobase/include/hash0hash.h | 2 +- innobase/lock/lock0lock.c | 2 +- innobase/log/log0recv.c | 4 ++-- innobase/thr/thr0loc.c | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/innobase/buf/buf0buf.c b/innobase/buf/buf0buf.c index 31a581d2ba8..704b8e0a5c7 100644 --- a/innobase/buf/buf0buf.c +++ b/innobase/buf/buf0buf.c @@ -621,7 +621,7 @@ buf_pool_init( } } - buf_pool->page_hash = hash_create(2 * max_size); + buf_pool->page_hash = hash0_create(2 * max_size); buf_pool->n_pend_reads = 0; diff --git a/innobase/dict/dict0dict.c b/innobase/dict/dict0dict.c index 4b23ce047b2..5e55a44ce56 100644 --- a/innobase/dict/dict0dict.c +++ b/innobase/dict/dict0dict.c @@ -703,13 +703,13 @@ dict_init(void) mutex_create(&(dict_sys->mutex)); mutex_set_level(&(dict_sys->mutex), SYNC_DICT); - dict_sys->table_hash = hash_create(buf_pool_get_max_size() / + dict_sys->table_hash = hash0_create(buf_pool_get_max_size() / (DICT_POOL_PER_TABLE_HASH * UNIV_WORD_SIZE)); - dict_sys->table_id_hash = hash_create(buf_pool_get_max_size() / + dict_sys->table_id_hash = hash0_create(buf_pool_get_max_size() / (DICT_POOL_PER_TABLE_HASH * UNIV_WORD_SIZE)); - dict_sys->col_hash = hash_create(buf_pool_get_max_size() / + dict_sys->col_hash = hash0_create(buf_pool_get_max_size() / (DICT_POOL_PER_COL_HASH * UNIV_WORD_SIZE)); dict_sys->size = 0; diff --git a/innobase/fil/fil0fil.c b/innobase/fil/fil0fil.c index b576e4f5a70..269c25833a4 100644 --- a/innobase/fil/fil0fil.c +++ b/innobase/fil/fil0fil.c @@ -1295,8 +1295,8 @@ fil_system_create( mutex_set_level(&(system->mutex), SYNC_ANY_LATCH); - system->spaces = hash_create(hash_size); - system->name_hash = hash_create(hash_size); + system->spaces = hash0_create(hash_size); + system->name_hash = hash0_create(hash_size); UT_LIST_INIT(system->LRU); diff --git a/innobase/ha/ha0ha.c b/innobase/ha/ha0ha.c index ad1391ff83e..a64fb13a5bb 100644 --- a/innobase/ha/ha0ha.c +++ b/innobase/ha/ha0ha.c @@ -32,7 +32,7 @@ ha_create( hash_table_t* table; ulint i; - table = hash_create(n); + table = hash0_create(n); if (in_btr_search) { table->adaptive = TRUE; diff --git a/innobase/ha/hash0hash.c b/innobase/ha/hash0hash.c index facdea66198..18b5b3cefd6 100644 --- a/innobase/ha/hash0hash.c +++ b/innobase/ha/hash0hash.c @@ -74,7 +74,7 @@ Creates a hash table with >= n array cells. The actual number of cells is chosen to be a prime number slightly bigger than n. */ hash_table_t* -hash_create( +hash0_create( /*========*/ /* out, own: created table */ ulint n) /* in: number of array cells */ diff --git a/innobase/include/hash0hash.h b/innobase/include/hash0hash.h index 51315e40875..3abc05f174c 100644 --- a/innobase/include/hash0hash.h +++ b/innobase/include/hash0hash.h @@ -23,7 +23,7 @@ Creates a hash table with >= n array cells. The actual number of cells is chosen to be a prime number slightly bigger than n. */ hash_table_t* -hash_create( +hash0_create( /*========*/ /* out, own: created table */ ulint n); /* in: number of array cells */ diff --git a/innobase/lock/lock0lock.c b/innobase/lock/lock0lock.c index 1c08d3defaa..19a285ed3f3 100644 --- a/innobase/lock/lock0lock.c +++ b/innobase/lock/lock0lock.c @@ -550,7 +550,7 @@ lock_sys_create( { lock_sys = mem_alloc(sizeof(lock_sys_t)); - lock_sys->rec_hash = hash_create(n_cells); + lock_sys->rec_hash = hash0_create(n_cells); /* hash_create_mutexes(lock_sys->rec_hash, 2, SYNC_REC_LOCK); */ diff --git a/innobase/log/log0recv.c b/innobase/log/log0recv.c index ddb33de6fa6..37d9f5883b2 100644 --- a/innobase/log/log0recv.c +++ b/innobase/log/log0recv.c @@ -147,7 +147,7 @@ recv_sys_init( recv_sys->len = 0; recv_sys->recovered_offset = 0; - recv_sys->addr_hash = hash_create(available_memory / 64); + recv_sys->addr_hash = hash0_create(available_memory / 64); recv_sys->n_addrs = 0; recv_sys->apply_log_recs = FALSE; @@ -186,7 +186,7 @@ recv_sys_empty_hash(void) hash_table_free(recv_sys->addr_hash); mem_heap_empty(recv_sys->heap); - recv_sys->addr_hash = hash_create(buf_pool_get_curr_size() / 256); + recv_sys->addr_hash = hash0_create(buf_pool_get_curr_size() / 256); } /************************************************************ diff --git a/innobase/thr/thr0loc.c b/innobase/thr/thr0loc.c index 033bb22807f..f71048af2ba 100644 --- a/innobase/thr/thr0loc.c +++ b/innobase/thr/thr0loc.c @@ -224,7 +224,7 @@ thr_local_init(void) ut_a(thr_local_hash == NULL); - thr_local_hash = hash_create(OS_THREAD_MAX_N + 100); + thr_local_hash = hash0_create(OS_THREAD_MAX_N + 100); mutex_create(&thr_local_mutex); mutex_set_level(&thr_local_mutex, SYNC_THR_LOCAL); From c9f42a9bfaad60fd480feb9c1dde72c826ccfe6b Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 4 Jan 2007 22:22:25 +0100 Subject: [PATCH 11/16] my_global.h: Add patch from Alfredo for TARGET_FAT_BINARY include/my_global.h: Add patch from Alfredo for TARGET_FAT_BINARY --- include/my_global.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/include/my_global.h b/include/my_global.h index 19ba37fd58b..2a2b4a2ba99 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -92,6 +92,42 @@ #define NETWARE_SET_SCREEN_MODE(A) #endif +/* + The macros below are used to allow build of Universal/fat binaries of + MySQL and MySQL applications under darwin. +*/ +#ifdef TARGET_FAT_BINARY +# undef SIZEOF_CHARP +# undef SIZEOF_INT +# undef SIZEOF_LONG +# undef SIZEOF_LONG_LONG +# undef SIZEOF_OFF_T +# undef SIZEOF_SHORT + +#if defined(__i386__) +# undef WORDS_BIGENDIAN +# define SIZEOF_CHARP 4 +# define SIZEOF_INT 4 +# define SIZEOF_LONG 4 +# define SIZEOF_LONG_LONG 8 +# define SIZEOF_OFF_T 8 +# define SIZEOF_SHORT 2 + +#elif defined(__ppc__) +# define WORDS_BIGENDIAN +# define SIZEOF_CHARP 4 +# define SIZEOF_INT 4 +# define SIZEOF_LONG 4 +# define SIZEOF_LONG_LONG 8 +# define SIZEOF_OFF_T 8 +# define SIZEOF_SHORT 2 + +#else +# error Building FAT binary for an unknown architecture. +#endif +#endif /* TARGET_FAT_BINARY */ + + /* The macros below are borrowed from include/linux/compiler.h in the Linux kernel. Use them to indicate the likelyhood of the truthfulness From 679402dab66b96a6f815f33342127384b1b4af58 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 4 Jan 2007 23:18:04 +0100 Subject: [PATCH 12/16] my_global.h: Patch from Alfredo for TARGET_FAT_BINARY include/my_global.h: Patch from Alfredo for TARGET_FAT_BINARY --- include/my_global.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/include/my_global.h b/include/my_global.h index 41b660227b5..2de54e521b5 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -84,6 +84,42 @@ #define NETWARE_SET_SCREEN_MODE(A) #endif +/* + The macros below are used to allow build of Universal/fat binaries of + MySQL and MySQL applications under darwin. +*/ +#ifdef TARGET_FAT_BINARY +# undef SIZEOF_CHARP +# undef SIZEOF_INT +# undef SIZEOF_LONG +# undef SIZEOF_LONG_LONG +# undef SIZEOF_OFF_T +# undef SIZEOF_SHORT + +#if defined(__i386__) +# undef WORDS_BIGENDIAN +# define SIZEOF_CHARP 4 +# define SIZEOF_INT 4 +# define SIZEOF_LONG 4 +# define SIZEOF_LONG_LONG 8 +# define SIZEOF_OFF_T 8 +# define SIZEOF_SHORT 2 + +#elif defined(__ppc__) +# define WORDS_BIGENDIAN +# define SIZEOF_CHARP 4 +# define SIZEOF_INT 4 +# define SIZEOF_LONG 4 +# define SIZEOF_LONG_LONG 8 +# define SIZEOF_OFF_T 8 +# define SIZEOF_SHORT 2 + +#else +# error Building FAT binary for an unknown architecture. +#endif +#endif /* TARGET_FAT_BINARY */ + + /* The macros below are borrowed from include/linux/compiler.h in the Linux kernel. Use them to indicate the likelyhood of the truthfulness From 7fb6aa34a0b5ff6f1323164f6fe43c6c1b3ce834 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 5 Jan 2007 16:53:03 +0100 Subject: [PATCH 13/16] mysql.spec.sh, make_binary_distribution.sh: Add CFLAGS to gcc call with --print-libgcc-file, to make sure the correct "libgcc.a" path is returned for the 32/64 bit architecture scripts/make_binary_distribution.sh: Add CFLAGS to gcc call with --print-libgcc-file, to make sure the correct "libgcc.a" path is returned for the 32/64 bit architecture support-files/mysql.spec.sh: Add CFLAGS to gcc call with --print-libgcc-file, to make sure the correct "libgcc.a" path is returned for the 32/64 bit architecture --- scripts/make_binary_distribution.sh | 2 +- support-files/mysql.spec.sh | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh index 6359eb009ce..917ac0a19c1 100644 --- a/scripts/make_binary_distribution.sh +++ b/scripts/make_binary_distribution.sh @@ -322,7 +322,7 @@ BASE=$BASE2 # if [ x"@GXX@" = x"yes" ] ; then - gcclib=`@CC@ --print-libgcc-file` + gcclib=`@CC@ @CFLAGS@ --print-libgcc-file` if [ $? -ne 0 ] ; then echo "Warning: Couldn't find libgcc.a!" else diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 083b89d9275..02176ea0b41 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -340,7 +340,7 @@ install -m 644 libmysqld/libmysqld.a $RBR%{_libdir}/mysql/ # Include libgcc.a in the devel subpackage (BUG 4921) if expr "$CC" : ".*gcc.*" > /dev/null ; then - libgcc=`$CC --print-libgcc-file` + libgcc=`$CC $CFLAGS --print-libgcc-file` if [ -f $libgcc ] then %define have_libgcc 1 @@ -726,6 +726,11 @@ fi # itself - note that they must be ordered by date (important when # merging BK trees) %changelog +* Fri Jan 05 2007 Kent Boortz + +- Add CFLAGS to gcc call with --print-libgcc-file, to make sure the + correct "libgcc.a" path is returned for the 32/64 bit architecture. + * Thu Dec 14 2006 Joerg Bruehe - Include the new man pages for "my_print_defaults" and "mysql_tzinfo_to_sql" From d7e9fd07efe17f5fe08c3a32d1a39b927aa87545 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 9 Jan 2007 12:28:46 +0100 Subject: [PATCH 14/16] Cset exclude: thek@kpdesk.mysql.com|ChangeSet|20061106104152|07628 mysys/mf_iocache.c: Exclude mysys/my_seek.c: Exclude --- mysys/mf_iocache.c | 6 +----- mysys/my_seek.c | 5 ----- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/mysys/mf_iocache.c b/mysys/mf_iocache.c index 5f0069d9bed..a7937da0cc2 100644 --- a/mysys/mf_iocache.c +++ b/mysys/mf_iocache.c @@ -313,11 +313,7 @@ my_bool reinit_io_cache(IO_CACHE *info, enum cache_type type, if (info->type == READ_CACHE) { info->write_end=info->write_buffer+info->buffer_length; - /* - Trigger a new seek only if we have a valid - file handle. - */ - info->seek_not_done= (info->file >= 0); + info->seek_not_done=1; } info->end_of_file = ~(my_off_t) 0; } diff --git a/mysys/my_seek.c b/mysys/my_seek.c index f47383b7ace..ec24a26b3d9 100644 --- a/mysys/my_seek.c +++ b/mysys/my_seek.c @@ -30,11 +30,6 @@ my_off_t my_seek(File fd, my_off_t pos, int whence, whence, MyFlags)); DBUG_ASSERT(pos != MY_FILEPOS_ERROR); /* safety check */ - /* - Make sure we are using a valid file descriptor - */ - DBUG_ASSERT(fd >= 0); - newpos=lseek(fd, pos, whence); if (newpos == (os_off_t) -1) { From 4374848c820467d7b854f0b483919635c6cd6a0e Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 10 Jan 2007 00:36:41 +0100 Subject: [PATCH 15/16] support-files/MySQL-shared-compat.spec.sh : Dummy, irrelevant change - just trigger a new build. support-files/MySQL-shared-compat.spec.sh: Dummy, irrelevant change - just trigger a new build. --- support-files/MySQL-shared-compat.spec.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support-files/MySQL-shared-compat.spec.sh b/support-files/MySQL-shared-compat.spec.sh index 37733141451..14a98616863 100644 --- a/support-files/MySQL-shared-compat.spec.sh +++ b/support-files/MySQL-shared-compat.spec.sh @@ -29,7 +29,7 @@ # Change this to match the version of the shared libs you want to include # %define version50 @MYSQL_NO_DASH_VERSION@ -%define version41 4.1.16 +%define version41 4.1.17 %define version40 4.0.26 %define version3 3.23.58 From 4ffd49d31101a0832dcf54a353e1ba48b31690e8 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 10 Jan 2007 14:50:09 +0100 Subject: [PATCH 16/16] configure.in: Removed line accidently inserted when correcting bug#18526 configure.in: Removed line accidently inserted when correcting bug#18526 --- configure.in | 1 - 1 file changed, 1 deletion(-) diff --git a/configure.in b/configure.in index 69a0f9b576e..99a9f3b74ea 100644 --- a/configure.in +++ b/configure.in @@ -1074,7 +1074,6 @@ case $SYSTEM_TYPE in ;; *darwin*) AC_DEFINE([DEFAULT_SKIP_THREAD_PRIORITY], [1], [default to skip thread priority]) - CPPFLAGS="-D" if test "$ac_cv_prog_gcc" = "yes" then FLAGS="-D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT"