From 8375e6684db2a33c14c1cfaaf7e00a160443cc7a Mon Sep 17 00:00:00 2001
From: "df@kahlann.erinye.com" <>
Date: Fri, 8 Dec 2006 10:23:03 +0100
Subject: [PATCH 01/12] BUG#24896 mysql_upgrade -p fix
---
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 b9cce096a2bc21bc5237c1f98dba8105662c0d06 Mon Sep 17 00:00:00 2001
From: "df@kahlann.erinye.com" <>
Date: Tue, 12 Dec 2006 15:47:02 +0100
Subject: [PATCH 02/12] 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 6b27694ac8b3283904a8ece44ce826415f938f0c Mon Sep 17 00:00:00 2001
From: "df@kahlann.erinye.com" <>
Date: Tue, 19 Dec 2006 15:10:15 +0100
Subject: [PATCH 03/12] remove hard-coded socket paths from some tests
---
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 dbf5fe90a63424f70dcf9bf3a9f347e0588c61a5 Mon Sep 17 00:00:00 2001
From: "df@kahlann.erinye.com" <>
Date: Wed, 20 Dec 2006 13:23:33 +0100
Subject: [PATCH 04/12] add file to VC++ project file
---
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 05/12] 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 | 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 473b0c7287b5980e61bf66fe99f900d0a3d1ff47 Mon Sep 17 00:00:00 2001
From: "kent@mysql.com/kent-amd64.(none)" <>
Date: Mon, 1 Jan 2007 07:22:57 +0100
Subject: [PATCH 06/12] 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 fd833d70377d947d59169aa45ff7c2ce637ae6ec Mon Sep 17 00:00:00 2001
From: "kent@mysql.com/kent-amd64.(none)" <>
Date: Mon, 1 Jan 2007 08:49:17 +0100
Subject: [PATCH 07/12] 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 344599948d2867ddd13ba6045faaa08a6129386a Mon Sep 17 00:00:00 2001
From: "kent@mysql.com/kent-amd64.(none)" <>
Date: Mon, 1 Jan 2007 09:54:41 +0100
Subject: [PATCH 08/12] mysqld.cc, configure.in: 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 0bc6df6a2496f46af30a27c46a230a5b36d16cb0 Mon Sep 17 00:00:00 2001
From: "kent@mysql.com/kent-amd64.(none)" <>
Date: Mon, 1 Jan 2007 10:50:39 +0100
Subject: [PATCH 09/12] Many files: 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 37ae5bbbbeb8ed892bf53cf0ff4ab1b5f671aa00 Mon Sep 17 00:00:00 2001
From: "mmj@tiger.mmj.dk" <>
Date: Thu, 4 Jan 2007 22:22:25 +0100
Subject: [PATCH 10/12] 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 f61a873c60c2e619b402a1add2d95a75ddc95b58 Mon Sep 17 00:00:00 2001
From: "mmj@tiger.mmj.dk" <>
Date: Thu, 4 Jan 2007 23:18:04 +0100
Subject: [PATCH 11/12] 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 528b457644eb6907c9b25c5842d9824451ca6091 Mon Sep 17 00:00:00 2001
From: "kent@mysql.com/kent-amd64.(none)" <>
Date: Fri, 5 Jan 2007 16:53:03 +0100
Subject: [PATCH 12/12] 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 | 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"