mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge 10.4 to 10.5
This commit is contained in:
@ -437,25 +437,10 @@ mysqld_ld_preload_text() {
|
||||
echo "$text"
|
||||
}
|
||||
|
||||
|
||||
mysql_config=
|
||||
get_mysql_config() {
|
||||
if [ -z "$mysql_config" ]; then
|
||||
mysql_config=`echo "$0" | sed 's,/[^/][^/]*$,/mysql_config,'`
|
||||
if [ ! -x "$mysql_config" ]; then
|
||||
log_error "Can not run mysql_config $@ from '$mysql_config'"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
"$mysql_config" "$@"
|
||||
}
|
||||
|
||||
|
||||
# set_malloc_lib LIB
|
||||
# - If LIB is empty, do nothing and return
|
||||
# - If LIB starts with 'tcmalloc' or 'jemalloc', look for the shared library in
|
||||
# /usr/lib, /usr/lib64 and then pkglibdir.
|
||||
# - If LIB starts with 'tcmalloc' or 'jemalloc', look for the shared library
|
||||
# using `ldconfig`.
|
||||
# tcmalloc is part of the Google perftools project.
|
||||
# - If LIB is an absolute path, assume it is a malloc shared library
|
||||
#
|
||||
@ -463,28 +448,28 @@ get_mysql_config() {
|
||||
# running mysqld. See ld.so for details.
|
||||
set_malloc_lib() {
|
||||
malloc_lib="$1"
|
||||
|
||||
if expr "$malloc_lib" : "\(tcmalloc\|jemalloc\)" > /dev/null ; then
|
||||
pkglibdir=`get_mysql_config --variable=pkglibdir`
|
||||
where=''
|
||||
# This list is kept intentionally simple. Simply set --malloc-lib
|
||||
# to a full path if another location is desired.
|
||||
for libdir in /usr/lib /usr/lib64 "$pkglibdir" "$pkglibdir/mysql"; do
|
||||
tmp=`echo "$libdir/lib$malloc_lib.so".[0-9]`
|
||||
where="$where $libdir"
|
||||
# log_notice "DEBUG: Checking for malloc lib '$tmp'"
|
||||
[ -r "$tmp" ] || continue
|
||||
malloc_lib="$tmp"
|
||||
where=''
|
||||
break
|
||||
done
|
||||
|
||||
if [ -n "$where" ]; then
|
||||
log_error "no shared library for lib$malloc_lib.so.[0-9] found in$where"
|
||||
if ! my_which ldconfig > /dev/null 2>&1
|
||||
then
|
||||
log_error "ldconfig command not found, required for ldconfig -p"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
# format from ldconfig:
|
||||
# "libjemalloc.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libjemalloc.so.1"
|
||||
libmalloc_path="$(ldconfig -p | sed -n "/lib${malloc_lib}/p" | cut -d '>' -f2)"
|
||||
|
||||
if [ -z "$libmalloc_path" ]; then
|
||||
log_error "no shared library for lib$malloc_lib.so.[0-9] found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for f in $libmalloc_path; do
|
||||
if [ -f "$f" ]; then
|
||||
malloc_lib=$f # get the first path if many
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
# Allow --malloc-lib='' to override other settings
|
||||
[ -z "$malloc_lib" ] && return
|
||||
|
||||
@ -501,7 +486,6 @@ set_malloc_lib() {
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
add_mysqld_ld_preload "$malloc_lib"
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user