Commit d5ee5049 authored by tsmith@maint2.mysql.com's avatar tsmith@maint2.mysql.com

Merge maint2.mysql.com:/data/localhome/tsmith/bk/bfx/41

into  maint2.mysql.com:/data/localhome/tsmith/bk/bfx/50
parents 61482f35 e80741b3
#!/bin/sh #!/bin/sh
if ! test -f sql/mysqld.cc if test ! -f sql/mysqld.cc
then then
echo "You must run this script from the MySQL top-level directory" echo "You must run this script from the MySQL top-level directory"
exit 1 exit 1
...@@ -122,12 +122,6 @@ fi ...@@ -122,12 +122,6 @@ fi
# (returns 0 if finds lines) # (returns 0 if finds lines)
if ccache -V > /dev/null 2>&1 if ccache -V > /dev/null 2>&1
then then
if ! (echo "$CC" | grep "ccache" > /dev/null) echo "$CC" | grep "ccache" > /dev/null || CC="ccache $CC"
then echo "$CXX" | grep "ccache" > /dev/null || CXX="ccache $CXX"
CC="ccache $CC"
fi
if ! (echo "$CXX" | grep "ccache" > /dev/null)
then
CXX="ccache $CXX"
fi
fi fi
...@@ -3,209 +3,212 @@ ...@@ -3,209 +3,212 @@
# Check cpu of current machine and find the # Check cpu of current machine and find the
# best compiler optimization flags for gcc # best compiler optimization flags for gcc
# #
#
if test -r /proc/cpuinfo ; then check_cpu () {
# on Linux (and others?) we can get detailed CPU information out of /proc if test -r /proc/cpuinfo ; then
cpuinfo="cat /proc/cpuinfo" # on Linux (and others?) we can get detailed CPU information out of /proc
cpuinfo="cat /proc/cpuinfo"
# detect CPU family # detect CPU family
cpu_family=`$cpuinfo | grep 'family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1` cpu_family=`$cpuinfo | grep 'family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
if test -z "$cpu_family" ; then if test -z "$cpu_family" ; then
cpu_family=`$cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1` cpu_family=`$cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
fi fi
# detect CPU vendor and model # detect CPU vendor and model
cpu_vendor=`$cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1` cpu_vendor=`$cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
model_name=`$cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -1` model_name=`$cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -1`
if test -z "$model_name" ; then if test -z "$model_name" ; then
model_name=`$cpuinfo | grep 'cpu model' | cut -d ':' -f 2 | head -1` model_name=`$cpuinfo | grep 'cpu model' | cut -d ':' -f 2 | head -1`
fi fi
# fallback: get CPU model from uname output
if test -z "$model_name" ; then
model_name=`uname -m`
fi
# fallback: get CPU model from uname output # parse CPU flags
if test -z "$model_name" ; then for flag in `$cpuinfo | grep '^flags' | sed -e 's/^flags.*: //'`; do
model_name=`uname -m` eval cpu_flag_$flag=yes
done
else
# Fallback when there is no /proc/cpuinfo
case "`uname -s`" in
FreeBSD|OpenBSD)
cpu_family=`uname -m`;
model_name=`sysctl -n hw.model`
;;
Darwin)
cpu_family=`uname -p`
model_name=`machine`
;;
*)
cpu_family=`uname -m`;
model_name=`uname -p`;
;;
esac
fi fi
# parse CPU flags # detect CPU shortname as used by gcc options
for flag in `$cpuinfo | grep '^flags' | sed -e 's/^flags.*: //'`; do # this list is not complete, feel free to add further entries
eval cpu_flag_$flag=yes cpu_arg=""
done case "$cpu_family--$model_name" in
else # DEC Alpha
# Fallback when there is no /proc/cpuinfo Alpha*EV6*)
case "`uname -s`" in cpu_arg="ev6";
FreeBSD|OpenBSD)
cpu_family=`uname -m`;
model_name=`sysctl -n hw.model`
;;
Darwin)
cpu_family=`uname -p`
model_name=`machine`
;; ;;
*)
cpu_family=`uname -m`; # Intel ia32
model_name=`uname -p`; *Xeon*)
# a Xeon is just another pentium4 ...
# ... unless it has the "lm" (long-mode) flag set,
# in that case it's a Xeon with EM64T support
if [ -z "$cpu_flag_lm" ]; then
cpu_arg="pentium4";
else
cpu_arg="nocona";
fi
;; ;;
esac *Pentium*4*Mobile*)
fi cpu_arg="pentium4m";
# detect CPU shortname as used by gcc options
# this list is not complete, feel free to add further entries
cpu_arg=""
case "$cpu_family--$model_name" in
# DEC Alpha
Alpha*EV6*)
cpu_arg="ev6";
;; ;;
*Pentium*4*)
# Intel ia32
*Xeon*)
# a Xeon is just another pentium4 ...
# ... unless it has the "lm" (long-mode) flag set,
# in that case it's a Xeon with EM64T support
if [ -z "$cpu_flag_lm" ]; then
cpu_arg="pentium4"; cpu_arg="pentium4";
else ;;
cpu_arg="nocona"; *Pentium*III*Mobile*)
fi cpu_arg="pentium3m";
;;
*Pentium*4*Mobile*)
cpu_arg="pentium4m";
;;
*Pentium*4*)
cpu_arg="pentium4";
;;
*Pentium*III*Mobile*)
cpu_arg="pentium3m";
;;
*Pentium*III*)
cpu_arg="pentium3";
;;
*Pentium*M*pro*)
cpu_arg="pentium-m";
;;
*Athlon*64*)
cpu_arg="athlon64";
;; ;;
*Athlon*) *Pentium*III*)
cpu_arg="athlon"; cpu_arg="pentium3";
;; ;;
*Opteron*) *Pentium*M*pro*)
cpu_arg="opteron"; cpu_arg="pentium-m";
;; ;;
*Athlon*64*)
cpu_arg="athlon64";
;;
*Athlon*)
cpu_arg="athlon";
;;
*Opteron*)
cpu_arg="opteron";
;;
# Intel ia64 # Intel ia64
*Itanium*) *Itanium*)
# Don't need to set any flags for itanium(at the moment) # Don't need to set any flags for itanium(at the moment)
cpu_arg=""; cpu_arg="";
;; ;;
# #
*ppc*) *ppc*)
cpu_arg='powerpc' cpu_arg='powerpc'
;; ;;
*powerpc*) *powerpc*)
cpu_arg='powerpc' cpu_arg='powerpc'
;; ;;
# unknown # unknown
*) *)
cpu_arg=""; cpu_arg="";
;; ;;
esac esac
if test -z "$cpu_arg"; then if test -z "$cpu_arg"; then
echo "BUILD/check-cpu: Oops, could not find out what kind of cpu this machine is using." echo "BUILD/check-cpu: Oops, could not find out what kind of cpu this machine is using." >&2
check_cpu_cflags=""
return
fi
# different compiler versions have different option names
# for CPU specific command line options
if test -z "$CC" ; then
cc="gcc";
else
cc=$CC
fi
cc_ver=`$cc --version | sed 1q`
cc_verno=`echo $cc_ver | sed -e 's/[^0-9. ]//g; s/^ *//g; s/ .*//g'`
case "$cc_ver--$cc_verno" in
*GCC*)
# different gcc backends (and versions) have different CPU flags
case `gcc -dumpmachine` in
i?86-*)
case "$cc_verno" in
3.4*|3.5*|4.*)
check_cpu_args='-mtune=$cpu_arg -march=$cpu_arg'
;;
*)
check_cpu_args='-mcpu=$cpu_arg -march=$cpu_arg'
;;
esac
;;
ppc-*)
check_cpu_args='-mcpu=$cpu_arg -mtune=$cpu_arg'
;;
x86_64-*)
check_cpu_args='-mtune=$cpu_arg'
;;
*)
check_cpu_cflags=""
return
;;
esac
;;
2.95.*)
# GCC 2.95 doesn't expose its name in --version output
check_cpu_args='-m$cpu_arg'
;;
*)
check_cpu_cflags="" check_cpu_cflags=""
return return
;;
esac
# now we check whether the compiler really understands the cpu type
touch __test.c
while [ "$cpu_arg" ] ; do
echo -n testing $cpu_arg "... "
# compile check
check_cpu_cflags=`eval echo $check_cpu_args`
if $cc -c $check_cpu_cflags __test.c 2>/dev/null; then
echo ok
break;
fi fi
echo failed # different compiler versions have different option names
check_cpu_cflags="" # for CPU specific command line options
if test -z "$CC" ; then
cc="gcc";
else
cc=$CC
fi
# if compile failed: check whether it supports a predecessor of this CPU cc_ver=`$cc --version | sed 1q`
# this list is not complete, feel free to add further entries cc_verno=`echo $cc_ver | sed -e 's/[^0-9. ]//g; s/^ *//g; s/ .*//g'`
case "$cpu_arg" in
# Intel ia32 case "$cc_ver--$cc_verno" in
nocona) cpu_arg=pentium4 ;; *GCC*)
prescott) cpu_arg=pentium4 ;; # different gcc backends (and versions) have different CPU flags
pentium4m) cpu_arg=pentium4 ;; case `gcc -dumpmachine` in
pentium4) cpu_arg=pentium3 ;; i?86-*)
pentium3m) cpu_arg=pentium3 ;; case "$cc_verno" in
pentium3) cpu_arg=pentium2 ;; 3.4*|3.5*|4.*)
pentium2) cpu_arg=pentiumpro ;; check_cpu_args='-mtune=$cpu_arg -march=$cpu_arg'
pentiumpro) cpu_arg=pentium ;; ;;
pentium) cpu_arg=i486 ;; *)
i486) cpu_arg=i386 ;; check_cpu_args='-mcpu=$cpu_arg -march=$cpu_arg'
;;
# power / powerPC esac
7450) cpu_arg=7400 ;; ;;
ppc-*)
*) cpu_arg="" ;; check_cpu_args='-mcpu=$cpu_arg -mtune=$cpu_arg'
;;
x86_64-*)
check_cpu_args='-mtune=$cpu_arg'
;;
*)
check_cpu_cflags=""
return
;;
esac
;;
2.95.*)
# GCC 2.95 doesn't expose its name in --version output
check_cpu_args='-m$cpu_arg'
;;
*)
check_cpu_cflags=""
return
;;
esac esac
done
rm __test.* # now we check whether the compiler really understands the cpu type
touch __test.c
while [ "$cpu_arg" ] ; do
# FIXME: echo -n isn't portable - see contortions autoconf goes through
echo -n testing $cpu_arg "... " >&2
# compile check
check_cpu_cflags=`eval echo $check_cpu_args`
if $cc -c $check_cpu_cflags __test.c 2>/dev/null; then
echo ok >&2
break;
fi
echo failed >&2
check_cpu_cflags=""
# if compile failed: check whether it supports a predecessor of this CPU
# this list is not complete, feel free to add further entries
case "$cpu_arg" in
# Intel ia32
nocona) cpu_arg=pentium4 ;;
prescott) cpu_arg=pentium4 ;;
pentium4m) cpu_arg=pentium4 ;;
pentium4) cpu_arg=pentium3 ;;
pentium3m) cpu_arg=pentium3 ;;
pentium3) cpu_arg=pentium2 ;;
pentium2) cpu_arg=pentiumpro ;;
pentiumpro) cpu_arg=pentium ;;
pentium) cpu_arg=i486 ;;
i486) cpu_arg=i386 ;;
# power / powerPC
7450) cpu_arg=7400 ;;
*) cpu_arg="" ;;
esac
done
rm __test.*
}
check_cpu
...@@ -734,26 +734,26 @@ drop table if exists bug20536; ...@@ -734,26 +734,26 @@ drop table if exists bug20536;
set names latin1; set names latin1;
create table bug20536 (id bigint not null auto_increment primary key, name create table bug20536 (id bigint not null auto_increment primary key, name
varchar(255) character set ucs2 not null); varchar(255) character set ucs2 not null);
insert into `bug20536` (`id`,`name`) values (1, _latin1 x'74657374311a'), (2, "'test\\_2'"); insert into `bug20536` (`id`,`name`) values (1, _latin1 x'7465737431'), (2, "'test\\_2'");
select md5(name) from bug20536; select md5(name) from bug20536;
md5(name) md5(name)
3417d830fe24ffb2f81a28e54df2d1b3 f4b7ce8b45a20e3c4e84bef515d1525c
48d95db0d8305c2fe11548a3635c9385 48d95db0d8305c2fe11548a3635c9385
select sha1(name) from bug20536; select sha1(name) from bug20536;
sha1(name) sha1(name)
72228a6d56efb7a89a09543068d5d8fa4c330881 e0b52f38deddb9f9e8d5336b153592794cb49baf
677d4d505355eb5b0549b865fcae4b7f0c28aef5 677d4d505355eb5b0549b865fcae4b7f0c28aef5
select make_set(3, name, upper(name)) from bug20536; select make_set(3, name, upper(name)) from bug20536;
make_set(3, name, upper(name)) make_set(3, name, upper(name))
test1,TEST1 test1,TEST1
'test\_2','TEST\_2' 'test\_2','TEST\_2'
select export_set(5, name, upper(name)) from bug20536; select export_set(5, name, upper(name)) from bug20536;
export_set(5, name, upper(name)) export_set(5, name, upper(name))
test1,TEST1,test1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1 test1,TEST1,test1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1
'test\_2','TEST\_2','test\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2' 'test\_2','TEST\_2','test\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2'
select export_set(5, name, upper(name), ",", 5) from bug20536; select export_set(5, name, upper(name), ",", 5) from bug20536;
export_set(5, name, upper(name), ",", 5) export_set(5, name, upper(name), ",", 5)
test1,TEST1,test1,TEST1,TEST1 test1,TEST1,test1,TEST1,TEST1
'test\_2','TEST\_2','test\_2','TEST\_2','TEST\_2' 'test\_2','TEST\_2','test\_2','TEST\_2','TEST\_2'
select password(name) from bug20536; select password(name) from bug20536;
password(name) password(name)
...@@ -769,7 +769,7 @@ SA5pDi1UPZdys ...@@ -769,7 +769,7 @@ SA5pDi1UPZdys
SA5pDi1UPZdys SA5pDi1UPZdys
select quote(name) from bug20536; select quote(name) from bug20536;
quote(name) quote(name)
?????????? ????????
???????????????? ????????????????
drop table bug20536; drop table bug20536;
End of 4.1 tests End of 4.1 tests
......
...@@ -477,7 +477,7 @@ drop table if exists bug20536; ...@@ -477,7 +477,7 @@ drop table if exists bug20536;
set names latin1; set names latin1;
create table bug20536 (id bigint not null auto_increment primary key, name create table bug20536 (id bigint not null auto_increment primary key, name
varchar(255) character set ucs2 not null); varchar(255) character set ucs2 not null);
insert into `bug20536` (`id`,`name`) values (1, _latin1 x'74657374311a'), (2, "'test\\_2'"); insert into `bug20536` (`id`,`name`) values (1, _latin1 x'7465737431'), (2, "'test\\_2'");
select md5(name) from bug20536; select md5(name) from bug20536;
select sha1(name) from bug20536; select sha1(name) from bug20536;
select make_set(3, name, upper(name)) from bug20536; select make_set(3, name, upper(name)) from bug20536;
......
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