UPDATE: databases/mariadb 10.9.8 -> 11.4.4
This commit is contained in:
parent
08e19bea27
commit
9b4bbf16fe
22 changed files with 1394 additions and 833 deletions
|
@ -2,16 +2,19 @@ COMMENT-main= multithreaded SQL database (client)
|
|||
COMMENT-server= multithreaded SQL database (server)
|
||||
COMMENT-tests= multithreaded SQL database (regression test suite/benchmark)
|
||||
|
||||
VERSION= 10.9.8
|
||||
VERSION= 11.4.4
|
||||
DISTNAME= mariadb-${VERSION}
|
||||
PKGNAME-main= mariadb-client-${VERSION}
|
||||
REVISION-server= 1
|
||||
EPOCH= 1
|
||||
CATEGORIES= databases
|
||||
SITES= https://downloads.mariadb.com/MariaDB/${DISTNAME}/source/ \
|
||||
https://ftp.osuosl.org/pub/mariadb/${DISTNAME}/source/
|
||||
https://ftp.osuosl.org/pub/mariadb/${DISTNAME}/source/ \
|
||||
https://archive.mariadb.org/${DISTNAME}/source/
|
||||
|
||||
LIB_VERSION= 30
|
||||
DISTFILES.fmt= fmt-11.0.2.zip
|
||||
SITES.fmt= https://github.com/fmtlib/fmt/releases/download/11.0.2/
|
||||
|
||||
LIB_VERSION= 31
|
||||
SHARED_LIBS= mysqlclient_r ${LIB_VERSION}.0 \
|
||||
mysqlclient ${LIB_VERSION}.0 \
|
||||
mariadb ${LIB_VERSION}.0
|
||||
|
@ -38,12 +41,13 @@ SOCKET_DIR= /var/run/mysql
|
|||
SUBST_VARS= SOCKET_DIR
|
||||
|
||||
MODULES= devel/cmake
|
||||
BUILD_DEPENDS= devel/bison \
|
||||
devel/fmt
|
||||
BUILD_DEPENDS= devel/bison
|
||||
|
||||
LIB_DEPENDS-main= ${LIB_DEPENDS}
|
||||
RUN_DEPENDS-server= ${BASE_PKGPATH},-main>=10.9v1,<10.10v1 \
|
||||
databases/p5-DBD-MariaDB
|
||||
RUN_DEPENDS-server= ${BASE_PKGPATH},-main>=11.4v1,<11.5v1 \
|
||||
databases/p5-DBD-MariaDB \
|
||||
misc/findutils \
|
||||
sysutils/coreutils
|
||||
LIB_DEPENDS-server= ${LIB_DEPENDS} \
|
||||
archivers/bzip2 \
|
||||
archivers/lz4 \
|
||||
|
@ -54,7 +58,7 @@ LIB_DEPENDS-server= ${LIB_DEPENDS} \
|
|||
devel/pcre2 \
|
||||
net/curl \
|
||||
textproc/libxml
|
||||
RUN_DEPENDS-tests= ${BASE_PKGPATH},-main>=10.9v1,<10.10v1
|
||||
RUN_DEPENDS-tests= ${BASE_PKGPATH},-main>=11.4v1,<11.5v1
|
||||
LIB_DEPENDS-tests= ${LIB_DEPENDS} \
|
||||
devel/pcre2
|
||||
|
||||
|
@ -78,6 +82,7 @@ CONFIGURE_ARGS+=-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
|
|||
-DCOMPILATION_COMMENT='SecBSD port: ${FULLPKGNAME-server}' \
|
||||
-DPLUGIN_OQGRAPH=NO \
|
||||
-DWITH_EXTERNAL_ZLIB=On \
|
||||
-DWITH_LIBFMT=bundled \
|
||||
-DWITH_PCRE=system \
|
||||
-DWITH_SSL=system \
|
||||
-DWITH_WSREP=On \
|
||||
|
@ -127,6 +132,8 @@ PKG_ARGS+= -Drocksdb=0
|
|||
.endif
|
||||
|
||||
pre-configure:
|
||||
mkdir -p ${WRKBUILD}/extra/libfmt/src
|
||||
cp -f ${DISTDIR}/fmt-11.0.2.zip ${WRKBUILD}/extra/libfmt/src
|
||||
@${SUBST_CMD} ${WRKSRC}/cmake/mysql_version.cmake \
|
||||
${WRKSRC}/libmariadb/mariadb_config/mariadb_config.c.in \
|
||||
${WRKSRC}/scripts/mysql_config.sh
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
SHA256 (mariadb-10.9.8.tar.gz) = /Nxvc4gkd8IDEOeVoC90blSTSqeos2iQC9ReeKXa9u0=
|
||||
SIZE (mariadb-10.9.8.tar.gz) = 99099072
|
||||
SHA256 (fmt-11.0.2.zip) = QPxYvrzzjHWeEae9j9wWNQfSQj71BYu6fyYoDFucVGU=
|
||||
SHA256 (mariadb-11.4.4.tar.gz) = lvvS5uk/t+izc+6nXYW2/qV8DhEaAgkMu+/tUlmdx3s=
|
||||
SIZE (fmt-11.0.2.zip) = 1422604
|
||||
SIZE (mariadb-11.4.4.tar.gz) = 111017581
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Index: cmake/install_macros.cmake
|
||||
--- cmake/install_macros.cmake.orig
|
||||
+++ cmake/install_macros.cmake
|
||||
@@ -175,6 +175,36 @@ IF(UNIX)
|
||||
@@ -157,6 +157,36 @@ IF(UNIX)
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
MDEV-31963 cmake: fix libfmt usage
|
||||
|
||||
`fmt::detail::make_arg` does not accept temporaries, so the code snippet
|
||||
checking system libfmt needs to be adjusted.
|
||||
|
||||
f4cec369a392c8a6056207012992ad4a5639965a
|
||||
|
||||
Index: cmake/libfmt.cmake
|
||||
--- cmake/libfmt.cmake.orig
|
||||
+++ cmake/libfmt.cmake
|
||||
@@ -33,8 +33,9 @@ MACRO (CHECK_LIBFMT)
|
||||
#include <fmt/format-inl.h>
|
||||
#include <iostream>
|
||||
int main() {
|
||||
+ int answer= 42;
|
||||
fmt::format_args::format_arg arg=
|
||||
- fmt::detail::make_arg<fmt::format_context>(42);
|
||||
+ fmt::detail::make_arg<fmt::format_context>(answer);
|
||||
std::cout << fmt::vformat(\"The answer is {}.\",
|
||||
fmt::format_args(&arg, 1));
|
||||
}" HAVE_SYSTEM_LIBFMT)
|
|
@ -1,12 +1,12 @@
|
|||
Index: extra/mariabackup/xtrabackup.cc
|
||||
--- extra/mariabackup/xtrabackup.cc.orig
|
||||
+++ extra/mariabackup/xtrabackup.cc
|
||||
@@ -7144,6 +7144,8 @@ static int get_exepath(char *buf, size_t size, const c
|
||||
if (sysctl(mib, 4, buf, &size, NULL, 0) == 0) {
|
||||
return 0;
|
||||
@@ -1061,6 +1061,8 @@ static std::string filename_to_spacename(const void *f
|
||||
if (f[i] == '\\')
|
||||
f[i] = '/';
|
||||
}
|
||||
+#elif defined(__OpenBSD__)
|
||||
+ return 0;
|
||||
#endif
|
||||
|
||||
return my_realpath(buf, argv0, 0);
|
||||
/* Remove extension, if exists */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Index: libmariadb/libmariadb/CMakeLists.txt
|
||||
--- libmariadb/libmariadb/CMakeLists.txt.orig
|
||||
+++ libmariadb/libmariadb/CMakeLists.txt
|
||||
@@ -481,15 +481,6 @@ INCLUDE(${CC_SOURCE_DIR}/cmake/symlink.cmake)
|
||||
@@ -487,15 +487,6 @@ INCLUDE(${CC_SOURCE_DIR}/cmake/symlink.cmake)
|
||||
# of the config program. To make sure these programs can
|
||||
# use mariadb client library we provide libmysql symlinks
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Index: scripts/mysql_install_db.sh
|
||||
--- scripts/mysql_install_db.sh.orig
|
||||
+++ scripts/mysql_install_db.sh
|
||||
@@ -30,8 +30,8 @@ args=""
|
||||
@@ -29,8 +29,8 @@ args=""
|
||||
defaults=""
|
||||
defaults_group_suffix=""
|
||||
mysqld_opt=""
|
||||
|
@ -10,43 +10,9 @@ Index: scripts/mysql_install_db.sh
|
|||
+user="_mysql"
|
||||
+group="_mysql"
|
||||
silent_startup="--silent-startup"
|
||||
log_error=""
|
||||
|
||||
force=0
|
||||
@@ -341,7 +341,6 @@ then
|
||||
srcpkgdatadir="$srcdir/scripts"
|
||||
buildpkgdatadir="$builddir/scripts"
|
||||
plugindir="$builddir/plugin/auth_socket"
|
||||
- pamtooldir="$builddir/plugin/auth_pam"
|
||||
elif test -n "$basedir"
|
||||
then
|
||||
bindir="$basedir/bin" # only used in the help text
|
||||
@@ -370,8 +369,7 @@ then
|
||||
cannot_find_file fill_help_tables.sql @pkgdata_locations@
|
||||
exit 1
|
||||
fi
|
||||
- plugindir=`find_in_dirs --dir auth_pam.so $basedir/lib*/plugin $basedir/lib*/mysql/plugin $basedir/lib/*/mariadb19/plugin`
|
||||
- pamtooldir=$plugindir
|
||||
+ plugindir=`find_in_dirs --dir auth_ed25519.so $basedir/lib*/plugin $basedir/lib*/mysql/plugin $basedir/lib/*/mariadb19/plugin`
|
||||
# relative from where the script was run for a relocatable install
|
||||
elif test -n "$dirname0" -a -x "$rel_mysqld" -a ! "$rel_mysqld" -ef "@sbindir@/mariadbd"
|
||||
then
|
||||
@@ -382,7 +380,6 @@ then
|
||||
srcpkgdatadir="$basedir/@INSTALL_MYSQLSHAREDIR@"
|
||||
buildpkgdatadir="$basedir/@INSTALL_MYSQLSHAREDIR@"
|
||||
plugindir="$basedir/@INSTALL_PLUGINDIR@"
|
||||
- pamtooldir=$plugindir
|
||||
else
|
||||
basedir="@prefix@"
|
||||
bindir="@bindir@"
|
||||
@@ -391,7 +388,6 @@ else
|
||||
srcpkgdatadir="@pkgdatadir@"
|
||||
buildpkgdatadir="@pkgdatadir@"
|
||||
plugindir="@pkgplugindir@"
|
||||
- pamtooldir="@pkgplugindir@"
|
||||
fi
|
||||
|
||||
# Set up paths to SQL scripts required for bootstrap
|
||||
@@ -490,13 +486,13 @@ do
|
||||
@@ -482,13 +482,13 @@ do
|
||||
then
|
||||
if test -z "$group"
|
||||
then
|
||||
|
@ -63,33 +29,7 @@ Index: scripts/mysql_install_db.sh
|
|||
echo "user. Check that you have the necessary permissions and try again."
|
||||
exit 1
|
||||
fi
|
||||
@@ -505,25 +501,6 @@ done
|
||||
|
||||
if test -n "$user"
|
||||
then
|
||||
- if test -z "$srcdir" -a "$in_rpm" -eq 0
|
||||
- then
|
||||
- chown 0 "$pamtooldir/auth_pam_tool_dir/auth_pam_tool" && \
|
||||
- chmod 04755 "$pamtooldir/auth_pam_tool_dir/auth_pam_tool"
|
||||
- if test $? -ne 0
|
||||
- then
|
||||
- echo "Couldn't set an owner to '$pamtooldir/auth_pam_tool_dir/auth_pam_tool'."
|
||||
- echo "It must be root, the PAM authentication plugin doesn't work otherwise.."
|
||||
- echo
|
||||
- fi
|
||||
- chown $user "$pamtooldir/auth_pam_tool_dir" && \
|
||||
- chmod 0700 "$pamtooldir/auth_pam_tool_dir"
|
||||
- if test $? -ne 0
|
||||
- then
|
||||
- echo "Cannot change ownership of the '$pamtooldir/auth_pam_tool_dir' directory"
|
||||
- echo "to the '$user' user. Check that you have the necessary permissions and try again."
|
||||
- echo
|
||||
- fi
|
||||
- fi
|
||||
args="$args --user=$user"
|
||||
fi
|
||||
|
||||
@@ -641,10 +618,6 @@ fi
|
||||
@@ -652,10 +652,6 @@ fi
|
||||
# the screen.
|
||||
if test "$cross_bootstrap" -eq 0 && test -z "$srcdir"
|
||||
then
|
||||
|
@ -100,13 +40,13 @@ Index: scripts/mysql_install_db.sh
|
|||
if test "$auth_root_authentication_method" = normal
|
||||
then
|
||||
echo
|
||||
@@ -676,10 +649,7 @@ then
|
||||
@@ -687,10 +683,7 @@ then
|
||||
then
|
||||
echo
|
||||
echo "You can start the MariaDB daemon with:"
|
||||
- echo "cd '$basedir' ; $bindir/mariadb-safe --datadir='$ldata'"
|
||||
- echo "cd '$basedir' ; $bindir/mariadbd-safe --datadir='$ldata'"
|
||||
- echo
|
||||
- echo "You can test the MariaDB daemon with mysql-test-run.pl"
|
||||
- echo "You can test the MariaDB daemon with mariadb-test-run.pl"
|
||||
- echo "cd '$basedir/@INSTALL_MYSQLTESTDIR@' ; perl mariadb-test-run.pl"
|
||||
+ echo "/etc/rc.d/mysqld start"
|
||||
fi
|
||||
|
|
|
@ -12,7 +12,7 @@ Index: scripts/mysqld_safe.sh
|
|||
pid_file=
|
||||
err_log=
|
||||
err_log_base=
|
||||
@@ -734,7 +734,7 @@ then
|
||||
@@ -740,7 +740,7 @@ then
|
||||
[ "$user" ] && chown $user $mysql_unix_port_dir
|
||||
[ "$group" ] && chgrp $group $mysql_unix_port_dir
|
||||
fi
|
||||
|
|
|
@ -1,56 +1,82 @@
|
|||
Index: scripts/wsrep_sst_common.sh
|
||||
--- scripts/wsrep_sst_common.sh.orig
|
||||
+++ scripts/wsrep_sst_common.sh
|
||||
@@ -23,6 +23,11 @@ trap 'exit 3' INT QUIT TERM
|
||||
# Setting the path for some utilities on CentOS
|
||||
export PATH="$PATH:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
@@ -79,6 +79,16 @@ wsrep_log_info()
|
||||
wsrep_log "[INFO] $*"
|
||||
}
|
||||
|
||||
+find()
|
||||
+{
|
||||
+ gfind "$@"
|
||||
+}
|
||||
+
|
||||
+du()
|
||||
+{
|
||||
+ gdu "$@"
|
||||
+}
|
||||
+
|
||||
trim_string()
|
||||
{
|
||||
if [ -n "$BASH_VERSION" ]; then
|
||||
@@ -1166,9 +1171,9 @@ is_local_ip()
|
||||
# the domain name check:
|
||||
if [ "${2:-0}" -eq 0 ]; then
|
||||
# We consider all the names of a given host to be local addresses:
|
||||
- [ "$1" = "$(hostname -s)" -o \
|
||||
- "$1" = "$(hostname -f)" -o \
|
||||
- "$1" = "$(hostname -d)" ] && return 0
|
||||
+ [ "$1" = "$(hostname -s 2>/dev/null)" -o \
|
||||
+ "$1" = "$(hostname -f 2>/dev/null)" -o \
|
||||
+ "$1" = "$(hostname -d 2>/dev/null)" ] && return 0
|
||||
fi
|
||||
# If the address contains anything other than digits
|
||||
# and separators, it is not a local address:
|
||||
@@ -1199,14 +1204,17 @@ check_sockets_utils()
|
||||
@@ -1212,6 +1222,7 @@ check_sockets_utils()
|
||||
lsof_available=0
|
||||
sockstat_available=0
|
||||
ss_available=0
|
||||
+ fstat_available=0
|
||||
|
||||
[ -n "$(commandex lsof)" ] && lsof_available=1
|
||||
[ -n "$(commandex sockstat)" ] && sockstat_available=1
|
||||
[ -n "$(commandex ss)" ] && ss_available=1
|
||||
+ [ -n "$(commandex fstat)" ] && fstat_available=1
|
||||
|
||||
if [ $lsof_available -eq 0 -a \
|
||||
$sockstat_available -eq 0 -a \
|
||||
- $ss_available -eq 0 ]
|
||||
+ $ss_available -eq 0 -a \
|
||||
+ $fstat_available -eq 0 ]
|
||||
then
|
||||
wsrep_log_error "Neither lsof, nor sockstat or ss tool was found in" \
|
||||
"the PATH. Make sure you have it installed."
|
||||
@@ -1249,6 +1257,8 @@ check_port()
|
||||
elif [ $ss_available -ne 0 ]; then
|
||||
ss -nlpH "( sport = :$port )" 2>/dev/null | \
|
||||
grep -q -E "users:\\(.*\\(\"($utils)[^[:space:]]*\"[^)]*,pid=$pid(,[^)]*)?\\)" && rc=0
|
||||
+ elif [ $fstat_available -ne 0 ]; then
|
||||
+ fstat -n 2>/dev/null | grep -q -E ".*$pid.*:$port\$" && rc=0
|
||||
socket_utility="$(commandex ss)"
|
||||
if [ -n "$socket_utility" ]; then
|
||||
@@ -1236,23 +1247,30 @@ check_sockets_utils()
|
||||
sockstat_opts='-46lq -P tcp -p'
|
||||
fi
|
||||
else
|
||||
wsrep_log_error "Unknown sockets utility"
|
||||
exit 2 # ENOENT
|
||||
- socket_utility="$(commandex lsof)"
|
||||
+ socket_utility="$(commandex fstat)"
|
||||
if [ -n "$socket_utility" ]; then
|
||||
- socket_uname='lsof'
|
||||
- lsof_available=1
|
||||
- lsof_opts='-Pnl'
|
||||
- # Let's check that lsof has an option to bypass blocking:
|
||||
- if $socket_utility -h 2>&1 | grep -qw -F -- '-b'; then
|
||||
- lsof_available=2
|
||||
- lsof_opts="$lsof_opts -b -w"
|
||||
+ socket_uname='fstat'
|
||||
+ fstat_available=1
|
||||
+ fstat_opts='-n'
|
||||
+ else
|
||||
+ socket_utility="$(commandex lsof)"
|
||||
+ if [ -n "$socket_utility" ]; then
|
||||
+ socket_uname='lsof'
|
||||
+ lsof_available=1
|
||||
+ lsof_opts='-Pnl'
|
||||
+ # Let's check that lsof has an option to bypass blocking:
|
||||
+ if $socket_utility -h 2>&1 | grep -qw -F -- '-b'; then
|
||||
+ lsof_available=2
|
||||
+ lsof_opts="$lsof_opts -b -w"
|
||||
+ else
|
||||
+ lsof_opts="$lsof_opts -S 10"
|
||||
+ fi
|
||||
else
|
||||
- lsof_opts="$lsof_opts -S 10"
|
||||
+ wsrep_log_error "Neither lsof, nor sockstat, nor ss, nor fstat tool" \
|
||||
+ "were found in the path. Make sure you have" \
|
||||
+ "at least one of them installed."
|
||||
+ exit 2 # ENOENT
|
||||
fi
|
||||
- else
|
||||
- wsrep_log_error "Neither lsof, nor sockstat, nor ss tool" \
|
||||
- "were found in the path. Make sure you have" \
|
||||
- "at least one of them installed."
|
||||
- exit 2 # ENOENT
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -1302,6 +1320,8 @@ check_port()
|
||||
$socket_utility $sockstat_opts "$port" 2>/dev/null | \
|
||||
grep -q -E "^[^[:space:]]+[[:space:]]+($utils)[^[:space:]]*[[:space:]]+$pid([[:space:]].+)?[[:space:]]LISTEN([[:space:]]|\$)" && rc=0
|
||||
fi
|
||||
+ elif [ $fstat_available -ne 0 ]; then
|
||||
+ $socket_utility $fstat_opts 2>/dev/null | grep -q -E ".*$pid.*:$port\$" && rc=0
|
||||
elif [ $lsof_available -ne 0 ]; then
|
||||
$socket_utility $lsof_opts -i ":$port" 2>/dev/null | \
|
||||
grep -q -E "^($utils)[^[:space:]]*[[:space:]]+$pid([[:space:]].+)?[[:space:]]\\(LISTEN\\)([[:space:]]|\$)" && rc=0
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Index: scripts/wsrep_sst_mariabackup.sh
|
||||
--- scripts/wsrep_sst_mariabackup.sh.orig
|
||||
+++ scripts/wsrep_sst_mariabackup.sh
|
||||
@@ -101,6 +101,12 @@ if [ -z "$BACKUP_BIN" ]; then
|
||||
@@ -33,6 +33,18 @@ if [ -z "$BACKUP_BIN" ]; then
|
||||
exit 42
|
||||
fi
|
||||
|
||||
|
@ -11,33 +11,12 @@ Index: scripts/wsrep_sst_mariabackup.sh
|
|||
+ exit 42
|
||||
+fi
|
||||
+
|
||||
DATA="$WSREP_SST_OPT_DATA"
|
||||
INFO_FILE='xtrabackup_galera_info'
|
||||
IST_FILE='xtrabackup_ist'
|
||||
@@ -441,7 +447,7 @@ get_footprint()
|
||||
cd "$DATA_DIR"
|
||||
local payload_data=$(find . \
|
||||
-regex '.*undo[0-9]+$\|.*\.ibd$\|.*\.MYI$\|.*\.MYD$\|.*ibdata1$' \
|
||||
- -type f -print0 | du --files0-from=- --block-size=1 -c -s | \
|
||||
+ -type f -print0 | xargs -0 du -c -s | \
|
||||
awk 'END { print $1 }')
|
||||
local payload_undo=0
|
||||
if [ -n "$ib_undo_dir" -a "$ib_undo_dir" != '.' -a \
|
||||
@@ -449,7 +455,7 @@ get_footprint()
|
||||
then
|
||||
cd "$ib_undo_dir"
|
||||
payload_undo=$(find . -regex '.*undo[0-9]+$' -type f -print0 | \
|
||||
- du --files0-from=- --block-size=1 -c -s | awk 'END { print $1 }')
|
||||
+ xargs -0 du -c -s | awk 'END { print $1 }')
|
||||
fi
|
||||
cd "$OLD_PWD"
|
||||
+GDU_BIN=$(commandex 'gdu')
|
||||
+if [ -z "$GDU_BIN" ]; then
|
||||
+ wsrep_log_error 'gdu binary not found in path'
|
||||
+ exit 42
|
||||
+fi
|
||||
+
|
||||
BACKUP_PID=""
|
||||
|
||||
@@ -798,7 +804,7 @@ recv_joiner()
|
||||
local ltcmd="$tcmd"
|
||||
if [ $tmt -gt 0 ]; then
|
||||
if [ -n "$(commandex timeout)" ]; then
|
||||
- if timeout --help | grep -qw -F -- '-k'; then
|
||||
+ if timeout --help 2>/dev/null | grep -qw -F -- '-k'; then
|
||||
ltcmd="timeout -k $(( tmt+10 )) $tmt $tcmd"
|
||||
else
|
||||
ltcmd="timeout -s9 $tmt $tcmd"
|
||||
INFO_FILE='mariadb_backup_galera_info'
|
||||
|
|
|
@ -1,40 +1,22 @@
|
|||
Index: scripts/wsrep_sst_rsync.sh
|
||||
--- scripts/wsrep_sst_rsync.sh.orig
|
||||
+++ scripts/wsrep_sst_rsync.sh
|
||||
@@ -117,9 +117,14 @@ check_pid_and_port()
|
||||
@@ -127,9 +127,15 @@ check_pid_and_port()
|
||||
fi
|
||||
port_info=$(sockstat "$opts" "$port" 2>/dev/null | \
|
||||
grep -E '[[:space:]]LISTEN' | grep -o -E "$filter")
|
||||
- else
|
||||
+ elif [ $ss_available -ne 0 ]; then
|
||||
port_info=$(ss -nlpH "( sport = :$port )" 2>/dev/null | \
|
||||
grep -F 'users:(' | grep -o -E "$filter")
|
||||
+ elif [ $fstat_available -ne 0 ]; then
|
||||
+ port_info=$(fstat -n 2>/dev/null | grep -E "[[:space:]](\\*|\\[?::\\]?):$port\$")
|
||||
+ else
|
||||
+ wsrep_log_error "Unknown sockets utility"
|
||||
+ exit 2 # ENOENT
|
||||
fi
|
||||
echo "$port_info" | \
|
||||
grep -q -E "[[:space:]](\\*|\\[?::\\]?):$port\$" && busy=1
|
||||
@@ -474,9 +479,9 @@ EOF
|
||||
# Preparing binlog files for transfer:
|
||||
wsrep_log_info "Preparing binlog files for transfer:"
|
||||
tar_type=0
|
||||
- if tar --help | grep -qw -F -- '--transform'; then
|
||||
+ if tar --help 2>/dev/null | grep -qw -F -- '--transform'; then
|
||||
tar_type=1
|
||||
- elif tar --version | grep -qw -E '^bsdtar'; then
|
||||
+ elif tar --version 2>/dev/null | grep -qw -E '^bsdtar'; then
|
||||
tar_type=2
|
||||
fi
|
||||
if [ $tar_type -eq 2 ]; then
|
||||
@@ -974,7 +979,7 @@ EOF
|
||||
fi
|
||||
# Extracting binlog files:
|
||||
wsrep_log_info "Extracting binlog files:"
|
||||
- if tar --version | grep -qw -E '^bsdtar'; then
|
||||
+ if tar --version 2>/dev/null | grep -qw -E '^bsdtar'; then
|
||||
tar -tf "$BINLOG_TAR_FILE" > "$tmpfile" && \
|
||||
tar -xvf "$BINLOG_TAR_FILE" > /dev/null || RC=$?
|
||||
final='$'
|
||||
else
|
||||
- port_info=$($socket_utility $lsof_opts -i ":$port" 2>/dev/null | \
|
||||
- grep -w -F '(LISTEN)' || :)
|
||||
- final='[[:space:]]'
|
||||
+ if [ $fstat_available -ne 0 ]; then
|
||||
+ port_info=$($socket_utility $fstat_opts 2>/dev/null | \
|
||||
+ grep -E "[[:space:]](\\*|\\[?::\\]?):$port\$")
|
||||
+ final=''
|
||||
+ else
|
||||
+ port_info=$($socket_utility $lsof_opts -i ":$port" 2>/dev/null | \
|
||||
+ grep -w -F '(LISTEN)' || :)
|
||||
+ final='[[:space:]]'
|
||||
+ fi
|
||||
fi
|
||||
|
||||
local busy=0
|
||||
|
|
|
@ -1,116 +0,0 @@
|
|||
- [PATCH] MDEV-31963 Fix libfmt usage in SFORMAT
|
||||
|
||||
`fmt::detail::make_arg` does not accept temporaries. Make it happy by
|
||||
storing the format arg values in a temporary array first.
|
||||
|
||||
cd5808eb8da13c5626d4bdeb452cef6ada29cb1d
|
||||
|
||||
- MDEV-34206 compile failure: fmt use incompatible with libfmt-10.2.[2]+
|
||||
|
||||
Upstream libfmt commit fmtlib/fmt@d707292
|
||||
now requires the format function to be const.
|
||||
|
||||
Adjust the function prototype so it is const and can compile.
|
||||
|
||||
4375245d5d9f01cabb6e3fd6c637535e724eae38
|
||||
|
||||
Index: sql/item_strfunc.cc
|
||||
--- sql/item_strfunc.cc.orig
|
||||
+++ sql/item_strfunc.cc
|
||||
@@ -1367,7 +1367,7 @@ bool Item_func_sformat::fix_length_and_dec(THD *thd)
|
||||
namespace fmt {
|
||||
template <> struct formatter<String>: formatter<string_view> {
|
||||
template <typename FormatContext>
|
||||
- auto format(String c, FormatContext& ctx) -> decltype(ctx.out()) {
|
||||
+ auto format(String c, FormatContext& ctx) const -> decltype(ctx.out()) {
|
||||
string_view name = { c.ptr(), c.length() };
|
||||
return formatter<string_view>::format(name, ctx);
|
||||
};
|
||||
@@ -1382,11 +1382,24 @@ namespace fmt {
|
||||
*/
|
||||
String *Item_func_sformat::val_str(String *res)
|
||||
{
|
||||
+ /*
|
||||
+ A union that stores a numeric format arg value.
|
||||
+ fmt::detail::make_arg does not accept temporaries, so all of its numeric
|
||||
+ args are temporarily stored in the fmt_args array.
|
||||
+ See: https://github.com/fmtlib/fmt/issues/3596
|
||||
+ */
|
||||
+ union Format_arg_store {
|
||||
+ longlong val_int;
|
||||
+ float val_float;
|
||||
+ double val_double;
|
||||
+ };
|
||||
+
|
||||
DBUG_ASSERT(fixed());
|
||||
- using ctx= fmt::format_context;
|
||||
- String *fmt_arg= NULL;
|
||||
- String *parg= NULL;
|
||||
- fmt::format_args::format_arg *vargs= NULL;
|
||||
+ using ctx= fmt::format_context;
|
||||
+ String *fmt_arg= NULL;
|
||||
+ String *parg= NULL;
|
||||
+ fmt::format_args::format_arg *vargs= NULL;
|
||||
+ Format_arg_store *fmt_args= NULL;
|
||||
|
||||
null_value= true;
|
||||
if (!(fmt_arg= args[0]->val_str(res)))
|
||||
@@ -1395,25 +1408,39 @@ String *Item_func_sformat::val_str(String *res)
|
||||
if (!(vargs= new fmt::format_args::format_arg[arg_count - 1]))
|
||||
return NULL;
|
||||
|
||||
+ if (!(fmt_args= new Format_arg_store[arg_count - 1]))
|
||||
+ {
|
||||
+ delete [] vargs;
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
/* Creates the array of arguments for vformat */
|
||||
for (uint carg= 1; carg < arg_count; carg++)
|
||||
{
|
||||
switch (args[carg]->result_type())
|
||||
{
|
||||
case INT_RESULT:
|
||||
- vargs[carg-1]= fmt::detail::make_arg<ctx>(args[carg]->val_int());
|
||||
+ fmt_args[carg-1].val_int= args[carg]->val_int();
|
||||
+ vargs[carg-1]= fmt::detail::make_arg<ctx>(fmt_args[carg-1].val_int);
|
||||
break;
|
||||
case DECIMAL_RESULT: // TODO
|
||||
case REAL_RESULT:
|
||||
if (args[carg]->field_type() == MYSQL_TYPE_FLOAT)
|
||||
- vargs[carg-1]= fmt::detail::make_arg<ctx>((float)args[carg]->val_real());
|
||||
+ {
|
||||
+ fmt_args[carg-1].val_float= (float)args[carg]->val_real();
|
||||
+ vargs[carg-1]= fmt::detail::make_arg<ctx>(fmt_args[carg-1].val_float);
|
||||
+ }
|
||||
else
|
||||
- vargs[carg-1]= fmt::detail::make_arg<ctx>(args[carg]->val_real());
|
||||
+ {
|
||||
+ fmt_args[carg-1].val_double= args[carg]->val_real();
|
||||
+ vargs[carg-1]= fmt::detail::make_arg<ctx>(fmt_args[carg-1].val_double);
|
||||
+ }
|
||||
break;
|
||||
case STRING_RESULT:
|
||||
if (!(parg= args[carg]->val_str(&val_arg[carg-1])))
|
||||
{
|
||||
delete [] vargs;
|
||||
+ delete [] fmt_args;
|
||||
return NULL;
|
||||
}
|
||||
vargs[carg-1]= fmt::detail::make_arg<ctx>(*parg);
|
||||
@@ -1423,6 +1450,7 @@ String *Item_func_sformat::val_str(String *res)
|
||||
default:
|
||||
DBUG_ASSERT(0);
|
||||
delete [] vargs;
|
||||
+ delete [] fmt_args;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@@ -1446,6 +1474,7 @@ String *Item_func_sformat::val_str(String *res)
|
||||
null_value= true;
|
||||
}
|
||||
delete [] vargs;
|
||||
+ delete [] fmt_args;
|
||||
return null_value ? NULL : res;
|
||||
}
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
Unbreak build with libxml >=2.12.0
|
||||
|
||||
Index: storage/connect/libdoc.cpp
|
||||
--- storage/connect/libdoc.cpp.orig
|
||||
+++ storage/connect/libdoc.cpp
|
||||
@@ -93,7 +93,7 @@ class LIBXMLDOC : public XMLDOCUMENT {
|
||||
xmlXPathContextPtr Ctxp;
|
||||
xmlXPathObjectPtr Xop;
|
||||
xmlXPathObjectPtr NlXop;
|
||||
- xmlErrorPtr Xerr;
|
||||
+ const xmlError * Xerr;
|
||||
char *Buf; // Temporary
|
||||
bool Nofreelist;
|
||||
}; // end of class LIBXMLDOC
|
||||
@@ -366,7 +366,7 @@ bool LIBXMLDOC::ParseFile(PGLOBAL g, char *fn)
|
||||
|
||||
return false;
|
||||
} else if ((Xerr = xmlGetLastError()))
|
||||
- xmlResetError(Xerr);
|
||||
+ xmlResetLastError();
|
||||
|
||||
return true;
|
||||
} // end of ParseFile
|
||||
@@ -505,9 +505,9 @@ int LIBXMLDOC::DumpDoc(PGLOBAL g, char *ofn)
|
||||
#if 1
|
||||
// This function does not crash (
|
||||
if (xmlSaveFormatFileEnc((const char *)ofn, Docp, Encoding, 0) < 0) {
|
||||
- xmlErrorPtr err = xmlGetLastError();
|
||||
+ const xmlError * err = xmlGetLastError();
|
||||
strcpy(g->Message, (err) ? err->message : "Error saving XML doc");
|
||||
- xmlResetError(Xerr);
|
||||
+ xmlResetLastError();
|
||||
rc = -1;
|
||||
} // endif Save
|
||||
// rc = xmlDocDump(of, Docp);
|
||||
@@ -547,7 +547,7 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
|
||||
xmlXPathFreeNodeSet(Nlist);
|
||||
|
||||
if ((Xerr = xmlGetLastError()))
|
||||
- xmlResetError(Xerr);
|
||||
+ xmlResetLastError();
|
||||
|
||||
Nlist = NULL;
|
||||
} // endif Nlist
|
||||
@@ -556,7 +556,7 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
|
||||
xmlXPathFreeObject(Xop);
|
||||
|
||||
if ((Xerr = xmlGetLastError()))
|
||||
- xmlResetError(Xerr);
|
||||
+ xmlResetLastError();
|
||||
|
||||
Xop = NULL;
|
||||
} // endif Xop
|
||||
@@ -565,7 +565,7 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
|
||||
xmlXPathFreeObject(NlXop);
|
||||
|
||||
if ((Xerr = xmlGetLastError()))
|
||||
- xmlResetError(Xerr);
|
||||
+ xmlResetLastError();
|
||||
|
||||
NlXop = NULL;
|
||||
} // endif NlXop
|
||||
@@ -574,7 +574,7 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
|
||||
xmlXPathFreeContext(Ctxp);
|
||||
|
||||
if ((Xerr = xmlGetLastError()))
|
||||
- xmlResetError(Xerr);
|
||||
+ xmlResetLastError();
|
||||
|
||||
Ctxp = NULL;
|
||||
} // endif Ctxp
|
||||
@@ -651,7 +651,7 @@ xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNod
|
||||
|
||||
if ((Xerr = xmlGetLastError())) {
|
||||
strcpy(g->Message, Xerr->message);
|
||||
- xmlResetError(Xerr);
|
||||
+ xmlResetLastError();
|
||||
return NULL;
|
||||
} // endif Xerr
|
||||
|
||||
@@ -1079,7 +1079,7 @@ void XML2NODE::AddText(PGLOBAL g, PCSZ txtp)
|
||||
/******************************************************************/
|
||||
void XML2NODE::DeleteChild(PGLOBAL g, PXNODE dnp)
|
||||
{
|
||||
- xmlErrorPtr xerr;
|
||||
+ const xmlError * xerr;
|
||||
|
||||
if (trace(1))
|
||||
htrc("DeleteChild: node=%p\n", dnp);
|
||||
@@ -1122,7 +1122,7 @@ err:
|
||||
if (trace(1))
|
||||
htrc("DeleteChild: errmsg=%-.256s\n", xerr->message);
|
||||
|
||||
- xmlResetError(xerr);
|
||||
+ xmlResetLastError();
|
||||
} // end of DeleteChild
|
||||
|
||||
/* -------------------- class XML2NODELIST ---------------------- */
|
|
@ -1,7 +1,24 @@
|
|||
Index: storage/rocksdb/CMakeLists.txt
|
||||
--- storage/rocksdb/CMakeLists.txt.orig
|
||||
+++ storage/rocksdb/CMakeLists.txt
|
||||
@@ -58,15 +58,6 @@ IF(MSVC_ARM64)
|
||||
@@ -32,6 +32,16 @@ IF(HAVE_SCHED_GETCPU)
|
||||
ADD_DEFINITIONS(-DHAVE_SCHED_GETCPU=1 -DROCKSDB_SCHED_GETCPU_PRESENT)
|
||||
ENDIF()
|
||||
|
||||
+CHECK_FUNCTION_EXISTS(getauxval "sys/auvx.h" HAVE_AUXV_GETAUXVAL)
|
||||
+if(HAVE_AUXV_GETAUXVAL)
|
||||
+ add_definitions(-DROCKSDB_AUXV_GETAUXVAL_PRESENT)
|
||||
+endif()
|
||||
+
|
||||
+CHECK_FUNCTION_EXISTS(elf_aux_info "sys/auxv.h" HAVE_AUXV_ELF_AUX_INFO)
|
||||
+if(HAVE_AUXV_ELF_AUX_INFO)
|
||||
+ add_definitions(-DROCKSDB_AUXV_ELF_AUX_INFO_PRESENT)
|
||||
+endif()
|
||||
+
|
||||
IF(WITH_VALGRIND)
|
||||
ADD_DEFINITIONS(-DROCKSDB_VALGRIND_RUN=1)
|
||||
ENDIF()
|
||||
@@ -64,15 +74,6 @@ IF(MSVC_ARM64)
|
||||
SKIP_ROCKSDB_PLUGIN("Windows ARM64 not supported")
|
||||
ENDIF()
|
||||
|
||||
|
@ -17,16 +34,16 @@ Index: storage/rocksdb/CMakeLists.txt
|
|||
# This plugin needs recent C++ compilers (it is using C++11 features)
|
||||
# Skip build for the old compilers
|
||||
SET(CXX11_FLAGS)
|
||||
@@ -198,7 +189,7 @@ ADD_DEPENDENCIES(rocksdb_aux_lib GenError)
|
||||
@@ -206,7 +207,7 @@ ADD_DEPENDENCIES(rocksdb_aux_lib GenError)
|
||||
|
||||
# MARIAROCKS-TODO: how to properly depend on -lrt ?
|
||||
TARGET_LINK_LIBRARIES(rocksdb_aux_lib rocksdblib ${ZLIB_LIBRARY})
|
||||
TARGET_LINK_LIBRARIES(rocksdb_aux_lib rocksdblib ${ZLIB_LIBRARIES})
|
||||
-if (UNIX AND NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
|
||||
+if (UNIX AND NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "SecBSD")
|
||||
TARGET_LINK_LIBRARIES(rocksdb_aux_lib -lrt)
|
||||
endif()
|
||||
TARGET_LINK_LIBRARIES(rocksdb_aux_lib ${ATOMIC_EXTRA_LIBS})
|
||||
@@ -249,7 +240,7 @@ ENDIF()
|
||||
@@ -257,7 +258,7 @@ ENDIF()
|
||||
# ADD_SUBDIRECTORY(unittest)
|
||||
#ENDIF()
|
||||
|
||||
|
|
|
@ -6,15 +6,15 @@
|
|||
https://github.com/facebook/rocksdb/commit/ee4bd4780b321ddb5f92a0f4eb956f2a2ebd60dc
|
||||
- Adding ARM AT_HWCAP support for FreeBSD
|
||||
https://github.com/facebook/rocksdb/commit/93c6c18cf9731f47b386dd445dc13363423c507e
|
||||
- Add OpenBSD/arm64 support for detection of CRC32 and PMULL
|
||||
https://github.com/facebook/rocksdb/commit/4a6906e28ce058f6cea085b394a1adbd19aa468e
|
||||
- Add elf_aux_info() support for OpenBSD
|
||||
https://github.com/facebook/rocksdb/pull/12967
|
||||
|
||||
https://jira.mariadb.org/browse/MDEV-29875
|
||||
|
||||
Index: storage/rocksdb/rocksdb/util/crc32c_arm64.cc
|
||||
--- storage/rocksdb/rocksdb/util/crc32c_arm64.cc.orig
|
||||
+++ storage/rocksdb/rocksdb/util/crc32c_arm64.cc
|
||||
@@ -5,13 +5,26 @@
|
||||
@@ -5,13 +5,21 @@
|
||||
|
||||
#include "util/crc32c_arm64.h"
|
||||
|
||||
|
@ -24,25 +24,20 @@ Index: storage/rocksdb/rocksdb/util/crc32c_arm64.cc
|
|||
+#if defined(__linux__)
|
||||
#include <asm/hwcap.h>
|
||||
+#endif
|
||||
+#ifdef ROCKSDB_AUXV_GETAUXVAL_PRESENT
|
||||
+#if defined(ROCKSDB_AUXV_GETAUXVAL_PRESENT) || \
|
||||
+ defined(ROCKSDB_AUXV_ELF_AUX_INFO_PRESENT)
|
||||
#include <sys/auxv.h>
|
||||
+#endif
|
||||
#ifndef HWCAP_CRC32
|
||||
#define HWCAP_CRC32 (1 << 7)
|
||||
#endif
|
||||
+#ifndef HWCAP_PMULL
|
||||
+#define HWCAP_PMULL (1 << 4)
|
||||
+#endif
|
||||
+#if defined(__OpenBSD__)
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/sysctl.h>
|
||||
+#include <machine/cpu.h>
|
||||
+#include <machine/armreg.h>
|
||||
+#endif
|
||||
|
||||
#ifdef HAVE_ARM64_CRYPTO
|
||||
/* unfolding to compute 8 * 3 = 24 bytes parallelly */
|
||||
@@ -33,18 +46,72 @@
|
||||
@@ -33,18 +41,52 @@
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
|
@ -50,25 +45,15 @@ Index: storage/rocksdb/rocksdb/util/crc32c_arm64.cc
|
|||
+
|
||||
uint32_t crc32c_runtime_check(void) {
|
||||
- uint64_t auxv = getauxval(AT_HWCAP);
|
||||
+#if defined(ROCKSDB_AUXV_GETAUXVAL_PRESENT) || defined(__FreeBSD__)
|
||||
+#if defined(ROCKSDB_AUXV_GETAUXVAL_PRESENT) || \
|
||||
+ defined(ROCKSDB_AUXV_ELF_AUX_INFO_PRESENT)
|
||||
+ uint64_t auxv = 0;
|
||||
+#if defined(ROCKSDB_AUXV_GETAUXVAL_PRESENT)
|
||||
+ auxv = getauxval(AT_HWCAP);
|
||||
+#elif defined(__FreeBSD__)
|
||||
+#elif defined(ROCKSDB_AUXV_ELF_AUX_INFO_PRESENT)
|
||||
+ elf_aux_info(AT_HWCAP, &auxv, sizeof(auxv));
|
||||
+#endif
|
||||
return (auxv & HWCAP_CRC32) != 0;
|
||||
+#elif defined(__OpenBSD__)
|
||||
+ int r = 0;
|
||||
+ const int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 };
|
||||
+ uint64_t isar0;
|
||||
+ size_t len = sizeof(isar0);
|
||||
+
|
||||
+ if (sysctl(isar0_mib, 2, &isar0, &len, NULL, 0) != -1) {
|
||||
+ if (ID_AA64ISAR0_CRC32(isar0) >= ID_AA64ISAR0_CRC32_BASE)
|
||||
+ r = 1;
|
||||
+ }
|
||||
+ return r;
|
||||
+#else
|
||||
+ return 0;
|
||||
+#endif
|
||||
|
@ -77,25 +62,15 @@ Index: storage/rocksdb/rocksdb/util/crc32c_arm64.cc
|
|||
-uint32_t crc32c_arm64(uint32_t crc, unsigned char const *data,
|
||||
- unsigned len) {
|
||||
+bool crc32c_pmull_runtime_check(void) {
|
||||
+#if defined(ROCKSDB_AUXV_GETAUXVAL_PRESENT) || defined(__FreeBSD__)
|
||||
+#if defined(ROCKSDB_AUXV_GETAUXVAL_PRESENT) || \
|
||||
+ defined(ROCKSDB_AUXV_ELF_AUX_INFO_PRESENT)
|
||||
+ uint64_t auxv = 0;
|
||||
+#if defined(ROCKSDB_AUXV_GETAUXVAL_PRESENT)
|
||||
+ auxv = getauxval(AT_HWCAP);
|
||||
+#elif defined(__FreeBSD__)
|
||||
+#elif defined(ROCKSDB_AUXV_ELF_AUX_INFO_PRESENT)
|
||||
+ elf_aux_info(AT_HWCAP, &auxv, sizeof(auxv));
|
||||
+#endif
|
||||
+ return (auxv & HWCAP_PMULL) != 0;
|
||||
+#elif defined(__OpenBSD__)
|
||||
+ bool r = false;
|
||||
+ const int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 };
|
||||
+ uint64_t isar0;
|
||||
+ size_t len = sizeof(isar0);
|
||||
+
|
||||
+ if (sysctl(isar0_mib, 2, &isar0, &len, NULL, 0) != -1) {
|
||||
+ if (ID_AA64ISAR0_AES(isar0) >= ID_AA64ISAR0_AES_PMULL)
|
||||
+ r = true;
|
||||
+ }
|
||||
+ return r;
|
||||
+#else
|
||||
+ return false;
|
||||
+#endif
|
||||
|
@ -118,7 +93,7 @@ Index: storage/rocksdb/rocksdb/util/crc32c_arm64.cc
|
|||
#ifdef HAVE_ARM64_CRYPTO
|
||||
/* Crc32c Parallel computation
|
||||
* Algorithm comes from Intel whitepaper:
|
||||
@@ -55,51 +122,53 @@ uint32_t crc32c_arm64(uint32_t crc, unsigned char cons
|
||||
@@ -55,51 +97,53 @@ uint32_t crc32c_arm64(uint32_t crc, unsigned char cons
|
||||
* One Block: 42(BLK_LENGTH) * 8(step length: crc32c_u64) bytes
|
||||
*/
|
||||
#define BLK_LENGTH 42
|
||||
|
|
|
@ -2,13 +2,27 @@
|
|||
https://github.com/facebook/rocksdb/commit/29f7bbef995bdf83098963799c66af742e95373f
|
||||
- Fix compilation on Apple Silicon
|
||||
https://github.com/facebook/rocksdb/commit/ee4bd4780b321ddb5f92a0f4eb956f2a2ebd60dc
|
||||
- Fix build on FreeBSD/powerpc64(le)
|
||||
https://github.com/facebook/rocksdb/commit/66e54c59847e316bb78dce786d2206d500bf8a90
|
||||
- Add elf_aux_info() support for OpenBSD
|
||||
https://github.com/facebook/rocksdb/pull/12967
|
||||
|
||||
https://jira.mariadb.org/browse/MDEV-29875
|
||||
|
||||
Index: storage/rocksdb/rocksdb/util/crc32c.cc
|
||||
--- storage/rocksdb/rocksdb/util/crc32c.cc.orig
|
||||
+++ storage/rocksdb/rocksdb/util/crc32c.cc
|
||||
@@ -39,6 +39,10 @@
|
||||
@@ -35,10 +35,20 @@
|
||||
#define AT_HWCAP2 26
|
||||
#endif
|
||||
|
||||
+#elif __FreeBSD__ && ROCKSDB_AUXV_ELF_AUX_INFO_PRESENT
|
||||
+#include <machine/cpu.h>
|
||||
+#include <sys/auxv.h>
|
||||
+#include <sys/elf_common.h>
|
||||
+#elif __OpenBSD__ && ROCKSDB_AUXV_ELF_AUX_INFO_PRESENT
|
||||
+#include <sys/auxv.h>
|
||||
#endif /* __linux__ */
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -19,7 +33,26 @@ Index: storage/rocksdb/rocksdb/util/crc32c.cc
|
|||
namespace ROCKSDB_NAMESPACE {
|
||||
namespace crc32c {
|
||||
|
||||
@@ -468,7 +472,7 @@ static bool isAltiVec() {
|
||||
@@ -457,6 +467,18 @@ static int arch_ppc_probe(void) {
|
||||
|
||||
return arch_ppc_crc32;
|
||||
}
|
||||
+#elif __FreeBSD__ || __OpenBSD__
|
||||
+static int arch_ppc_probe(void) {
|
||||
+ unsigned long cpufeatures;
|
||||
+ arch_ppc_crc32 = 0;
|
||||
+
|
||||
+#if defined(__powerpc64__) && defined(ROCKSDB_AUXV_ELF_AUX_INFO_PRESENT)
|
||||
+ elf_aux_info(AT_HWCAP2, &cpufeatures, sizeof(cpufeatures));
|
||||
+ if (cpufeatures & PPC_FEATURE2_HAS_VEC_CRYPTO) arch_ppc_crc32 = 1;
|
||||
+#endif /* __powerpc64__ */
|
||||
+
|
||||
+ return arch_ppc_crc32;
|
||||
+}
|
||||
#endif // __linux__
|
||||
|
||||
static bool isAltiVec() {
|
||||
@@ -468,7 +490,7 @@ static bool isAltiVec() {
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -28,7 +61,7 @@ Index: storage/rocksdb/rocksdb/util/crc32c.cc
|
|||
uint32_t ExtendARMImpl(uint32_t crc, const char *buf, size_t size) {
|
||||
return crc32c_arm64(crc, (const unsigned char *)buf, size);
|
||||
}
|
||||
@@ -488,10 +492,11 @@ std::string IsFastCrc32Supported() {
|
||||
@@ -488,10 +510,11 @@ std::string IsFastCrc32Supported() {
|
||||
has_fast_crc = false;
|
||||
arch = "PPC";
|
||||
#endif
|
||||
|
@ -41,7 +74,7 @@ Index: storage/rocksdb/rocksdb/util/crc32c.cc
|
|||
} else {
|
||||
has_fast_crc = false;
|
||||
arch = "Arm64";
|
||||
@@ -1220,8 +1225,9 @@ uint32_t crc32c_3way(uint32_t crc, const char* buf, si
|
||||
@@ -1220,8 +1243,9 @@ uint32_t crc32c_3way(uint32_t crc, const char* buf, si
|
||||
static inline Function Choose_Extend() {
|
||||
#ifdef HAVE_POWER8
|
||||
return isAltiVec() ? ExtendPPCImpl : ExtendImpl<Slow_CRC32>;
|
||||
|
|
|
@ -3,7 +3,7 @@ Adjust the pkg-config file path since the port puts the shared libs in a sub dir
|
|||
Index: support-files/CMakeLists.txt
|
||||
--- support-files/CMakeLists.txt.orig
|
||||
+++ support-files/CMakeLists.txt
|
||||
@@ -96,7 +96,7 @@ IF(UNIX AND NOT WITHOUT_SERVER)
|
||||
@@ -109,7 +109,7 @@ IF(UNIX AND NOT WITHOUT_SERVER)
|
||||
ENDIF()
|
||||
|
||||
CONFIGURE_FILE(mariadb.pc.in ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc @ONLY)
|
||||
|
|
|
@ -240,9 +240,7 @@ share/mysql-test/plugin/mroonga/mroonga/storage/r/create_table_index_normalizer_
|
|||
share/mysql-test/plugin/mroonga/mroonga/storage/r/create_table_index_normalizer_no_utf8_charset_with_utf8_normalizer.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/r/create_table_index_normalizer_none.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/r/create_table_index_normalizer_parameter.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/r/create_table_index_parser_comment.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/r/create_table_index_parser_default.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/r/create_table_index_parser_off.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/r/create_table_index_token_filters_multiple_token_filters.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/r/create_table_index_token_filters_one_token_filter.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/r/create_table_index_token_filters_parameter.result
|
||||
|
@ -842,9 +840,7 @@ share/mysql-test/plugin/mroonga/mroonga/storage/t/create_table_index_normalizer_
|
|||
share/mysql-test/plugin/mroonga/mroonga/storage/t/create_table_index_normalizer_no_utf8_charset_with_utf8_normalizer.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/t/create_table_index_normalizer_none.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/t/create_table_index_normalizer_parameter.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/t/create_table_index_parser_comment.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/t/create_table_index_parser_default.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/t/create_table_index_parser_off.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/t/create_table_index_token_filters_multiple_token_filters.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/t/create_table_index_token_filters_one_token_filter.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/storage/t/create_table_index_token_filters_parameter.test
|
||||
|
@ -1318,7 +1314,6 @@ share/mysql-test/plugin/mroonga/mroonga/wrapper/r/create_table_index_flags_with_
|
|||
share/mysql-test/plugin/mroonga/mroonga/wrapper/r/create_table_normalizer_comment.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/r/create_table_normalizer_fulltext_index_bin.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/r/create_table_normalizer_parameter.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/r/create_table_parser_comment.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/r/create_table_token_filters_index_multiple_token_filters.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/r/create_table_token_filters_index_one_token_filter.result
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/r/create_table_token_filters_index_parameter.result
|
||||
|
@ -1449,7 +1444,6 @@ share/mysql-test/plugin/mroonga/mroonga/wrapper/t/create_table_index_flags_with_
|
|||
share/mysql-test/plugin/mroonga/mroonga/wrapper/t/create_table_normalizer_comment.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/t/create_table_normalizer_fulltext_index_bin.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/t/create_table_normalizer_parameter.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/t/create_table_parser_comment.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/t/create_table_token_filters_index_multiple_token_filters.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/t/create_table_token_filters_index_one_token_filter.test
|
||||
share/mysql-test/plugin/mroonga/mroonga/wrapper/t/create_table_token_filters_index_parameter.test
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
@conflict mariadb-client-<11.4.3p0v1
|
||||
@bin bin/mariadb-ldb
|
||||
bin/myrocks_hotbackup
|
||||
bin/mysql_ldb
|
||||
@bin bin/sst_dump
|
||||
@so lib/mysql/plugin/ha_rocksdb.so
|
||||
@man man/man1/mariadb-ldb.1
|
||||
@man man/man1/myrocks_hotbackup.1
|
||||
@man man/man1/mysql_ldb.1
|
||||
|
|
|
@ -54,7 +54,6 @@ include/mysql/mysql/
|
|||
include/mysql/mysql.h
|
||||
include/mysql/mysql/client_plugin.h
|
||||
include/mysql/mysql/plugin_auth.h
|
||||
include/mysql/mysql/plugin_auth_common.h
|
||||
include/mysql/mysql_com.h
|
||||
include/mysql/mysql_version.h
|
||||
include/mysql/mysqld_error.h
|
||||
|
@ -84,7 +83,6 @@ lib/pkgconfig/mariadb.pc
|
|||
@man man/man1/mariadb-find-rows.1
|
||||
@man man/man1/mariadb-hotcopy.1
|
||||
@man man/man1/mariadb-import.1
|
||||
@man man/man1/mariadb-ldb.1
|
||||
@man man/man1/mariadb-plugin.1
|
||||
@man man/man1/mariadb-service-convert.1
|
||||
@man man/man1/mariadb-setpermission.1
|
||||
|
@ -100,7 +98,6 @@ lib/pkgconfig/mariadb.pc
|
|||
@man man/man1/mysql_config.1
|
||||
@man man/man1/mysql_embedded.1
|
||||
@man man/man1/mysql_find_rows.1
|
||||
@man man/man1/mysql_ldb.1
|
||||
@man man/man1/mysql_waitpid.1
|
||||
@man man/man1/mysqlaccess.1
|
||||
@man man/man1/mysqladmin.1
|
||||
|
|
|
@ -125,6 +125,7 @@ include/mysql/server/mysql/service_md5.h
|
|||
include/mysql/server/mysql/service_my_crypt.h
|
||||
include/mysql/server/mysql/service_my_print_error.h
|
||||
include/mysql/server/mysql/service_my_snprintf.h
|
||||
include/mysql/server/mysql/service_print_check_msg.h
|
||||
include/mysql/server/mysql/service_progress_report.h
|
||||
include/mysql/server/mysql/service_sha1.h
|
||||
include/mysql/server/mysql/service_sha2.h
|
||||
|
@ -158,17 +159,21 @@ include/mysql/server/private/atomic/solaris.h
|
|||
include/mysql/server/private/authors.h
|
||||
include/mysql/server/private/backup.h
|
||||
include/mysql/server/private/bounded_queue.h
|
||||
include/mysql/server/private/char_buffer.h
|
||||
include/mysql/server/private/charset_collations.h
|
||||
include/mysql/server/private/client_settings.h
|
||||
include/mysql/server/private/compat56.h
|
||||
include/mysql/server/private/config.h
|
||||
include/mysql/server/private/contributors.h
|
||||
include/mysql/server/private/create_options.h
|
||||
include/mysql/server/private/create_tmp_table.h
|
||||
include/mysql/server/private/cset_narrowing.h
|
||||
include/mysql/server/private/custom_conf.h
|
||||
include/mysql/server/private/datadict.h
|
||||
include/mysql/server/private/ddl_log.h
|
||||
include/mysql/server/private/debug.h
|
||||
include/mysql/server/private/debug_sync.h
|
||||
include/mysql/server/private/deprecation.h
|
||||
include/mysql/server/private/derived_handler.h
|
||||
include/mysql/server/private/derror.h
|
||||
include/mysql/server/private/des_key_file.h
|
||||
|
@ -190,6 +195,7 @@ include/mysql/server/private/gcalc_tools.h
|
|||
include/mysql/server/private/grant.h
|
||||
include/mysql/server/private/group_by_handler.h
|
||||
include/mysql/server/private/gstream.h
|
||||
include/mysql/server/private/gtid_index.h
|
||||
include/mysql/server/private/ha_handler_stats.h
|
||||
include/mysql/server/private/ha_partition.h
|
||||
include/mysql/server/private/ha_sequence.h
|
||||
|
@ -216,18 +222,22 @@ include/mysql/server/private/item_timefunc.h
|
|||
include/mysql/server/private/item_vers.h
|
||||
include/mysql/server/private/item_windowfunc.h
|
||||
include/mysql/server/private/item_xmlfunc.h
|
||||
include/mysql/server/private/json_schema.h
|
||||
include/mysql/server/private/json_schema_helper.h
|
||||
include/mysql/server/private/json_table.h
|
||||
include/mysql/server/private/key.h
|
||||
include/mysql/server/private/keycaches.h
|
||||
include/mysql/server/private/lex.h
|
||||
include/mysql/server/private/lex_charset.h
|
||||
include/mysql/server/private/lex_ident.h
|
||||
include/mysql/server/private/lex_string.h
|
||||
include/mysql/server/private/lex_symbol.h
|
||||
include/mysql/server/private/lf.h
|
||||
include/mysql/server/private/lock.h
|
||||
include/mysql/server/private/log.h
|
||||
include/mysql/server/private/log_cache.h
|
||||
include/mysql/server/private/log_event.h
|
||||
include/mysql/server/private/log_event_old.h
|
||||
include/mysql/server/private/log_event_data_type.h
|
||||
include/mysql/server/private/log_slow.h
|
||||
include/mysql/server/private/maria.h
|
||||
include/mysql/server/private/mariadb.h
|
||||
|
@ -235,7 +245,6 @@ include/mysql/server/private/mdl.h
|
|||
include/mysql/server/private/mem_root_array.h
|
||||
include/mysql/server/private/message.h
|
||||
include/mysql/server/private/multi_range_read.h
|
||||
include/mysql/server/private/my_alarm.h
|
||||
include/mysql/server/private/my_apc.h
|
||||
include/mysql/server/private/my_atomic.h
|
||||
include/mysql/server/private/my_atomic_wrapper.h
|
||||
|
@ -261,6 +270,7 @@ include/mysql/server/private/my_service_manager.h
|
|||
include/mysql/server/private/my_stack_alloc.h
|
||||
include/mysql/server/private/my_stacktrace.h
|
||||
include/mysql/server/private/my_time.h
|
||||
include/mysql/server/private/my_tracker.h
|
||||
include/mysql/server/private/my_tree.h
|
||||
include/mysql/server/private/my_uctype.h
|
||||
include/mysql/server/private/my_user.h
|
||||
|
@ -274,9 +284,12 @@ include/mysql/server/private/mysqld_suffix.h
|
|||
include/mysql/server/private/mysys_err.h
|
||||
include/mysql/server/private/opt_histogram_json.h
|
||||
include/mysql/server/private/opt_range.h
|
||||
include/mysql/server/private/opt_rewrite_date_cmp.h
|
||||
include/mysql/server/private/opt_subselect.h
|
||||
include/mysql/server/private/opt_trace.h
|
||||
include/mysql/server/private/opt_trace_context.h
|
||||
include/mysql/server/private/optimizer_costs.h
|
||||
include/mysql/server/private/optimizer_defaults.h
|
||||
include/mysql/server/private/parse_file.h
|
||||
include/mysql/server/private/partition_element.h
|
||||
include/mysql/server/private/partition_info.h
|
||||
|
@ -317,7 +330,6 @@ include/mysql/server/private/rpl_injector.h
|
|||
include/mysql/server/private/rpl_mi.h
|
||||
include/mysql/server/private/rpl_parallel.h
|
||||
include/mysql/server/private/rpl_record.h
|
||||
include/mysql/server/private/rpl_record_old.h
|
||||
include/mysql/server/private/rpl_reporting.h
|
||||
include/mysql/server/private/rpl_rli.h
|
||||
include/mysql/server/private/rpl_tblmap.h
|
||||
|
@ -332,11 +344,14 @@ include/mysql/server/private/semisync_slave.h
|
|||
include/mysql/server/private/service_versions.h
|
||||
include/mysql/server/private/session_tracker.h
|
||||
include/mysql/server/private/set_var.h
|
||||
include/mysql/server/private/simple_tokenizer.h
|
||||
include/mysql/server/private/slave.h
|
||||
include/mysql/server/private/socketpair.h
|
||||
include/mysql/server/private/source_revision.h
|
||||
include/mysql/server/private/sp.h
|
||||
include/mysql/server/private/sp_cache.h
|
||||
include/mysql/server/private/sp_head.h
|
||||
include/mysql/server/private/sp_instr.h
|
||||
include/mysql/server/private/sp_pcontext.h
|
||||
include/mysql/server/private/sp_rcontext.h
|
||||
include/mysql/server/private/span.h
|
||||
|
@ -423,9 +438,11 @@ include/mysql/server/private/sql_type_int.h
|
|||
include/mysql/server/private/sql_type_json.h
|
||||
include/mysql/server/private/sql_type_real.h
|
||||
include/mysql/server/private/sql_type_string.h
|
||||
include/mysql/server/private/sql_type_timeofday.h
|
||||
include/mysql/server/private/sql_udf.h
|
||||
include/mysql/server/private/sql_union.h
|
||||
include/mysql/server/private/sql_update.h
|
||||
include/mysql/server/private/sql_used.h
|
||||
include/mysql/server/private/sql_view.h
|
||||
include/mysql/server/private/sql_window.h
|
||||
include/mysql/server/private/ssl_compat.h
|
||||
|
@ -435,7 +452,6 @@ include/mysql/server/private/sys_vars_shared.h
|
|||
include/mysql/server/private/t_ctype.h
|
||||
include/mysql/server/private/table.h
|
||||
include/mysql/server/private/table_cache.h
|
||||
include/mysql/server/private/thr_alarm.h
|
||||
include/mysql/server/private/thr_lock.h
|
||||
include/mysql/server/private/thr_malloc.h
|
||||
include/mysql/server/private/thr_timer.h
|
||||
|
@ -452,20 +468,22 @@ include/mysql/server/private/vers_string.h
|
|||
include/mysql/server/private/violite.h
|
||||
include/mysql/server/private/waiting_threads.h
|
||||
include/mysql/server/private/welcome_copyright_notice.h
|
||||
include/mysql/server/private/win_tzname_data.h
|
||||
include/mysql/server/private/winservice.h
|
||||
include/mysql/server/private/wqueue.h
|
||||
include/mysql/server/private/wsrep.h
|
||||
include/mysql/server/private/wsrep_allowlist_service.h
|
||||
include/mysql/server/private/wsrep_applier.h
|
||||
include/mysql/server/private/wsrep_binlog.h
|
||||
include/mysql/server/private/wsrep_client_service.h
|
||||
include/mysql/server/private/wsrep_client_state.h
|
||||
include/mysql/server/private/wsrep_condition_variable.h
|
||||
include/mysql/server/private/wsrep_event_service.h
|
||||
include/mysql/server/private/wsrep_high_priority_service.h
|
||||
include/mysql/server/private/wsrep_mutex.h
|
||||
include/mysql/server/private/wsrep_mysqld.h
|
||||
include/mysql/server/private/wsrep_mysqld_c.h
|
||||
include/mysql/server/private/wsrep_on.h
|
||||
include/mysql/server/private/wsrep_plugin.h
|
||||
include/mysql/server/private/wsrep_priv.h
|
||||
include/mysql/server/private/wsrep_schema.h
|
||||
include/mysql/server/private/wsrep_server_service.h
|
||||
|
@ -576,6 +594,7 @@ libexec/mysqld
|
|||
@man man/man1/replace.1
|
||||
@man man/man1/resolve_stack_dump.1
|
||||
@man man/man1/resolveip.1
|
||||
@man man/man1/wsrep_sst_backup.1
|
||||
@man man/man1/wsrep_sst_common.1
|
||||
@man man/man1/wsrep_sst_mariabackup.1
|
||||
@man man/man1/wsrep_sst_mysqldump.1
|
||||
|
@ -597,10 +616,10 @@ share/examples/login.conf.d/mysqld
|
|||
share/examples/mysql/
|
||||
share/examples/mysql/binary-configure
|
||||
share/examples/mysql/magic
|
||||
share/examples/mysql/mariadb.logrotate
|
||||
share/examples/mysql/mini-benchmark
|
||||
share/examples/mysql/my.cnf
|
||||
@sample ${SYSCONFDIR}/my.cnf
|
||||
share/examples/mysql/mysql-log-rotate
|
||||
share/examples/mysql/mysql.server
|
||||
share/examples/mysql/mysqld_multi.server
|
||||
share/examples/mysql/policy/
|
||||
|
@ -655,12 +674,13 @@ share/mysql/dutch/
|
|||
share/mysql/dutch/errmsg.sys
|
||||
share/mysql/english/
|
||||
share/mysql/english/errmsg.sys
|
||||
share/mysql/errmsg-utf8.txt
|
||||
share/mysql/estonian/
|
||||
share/mysql/estonian/errmsg.sys
|
||||
share/mysql/fill_help_tables.sql
|
||||
share/mysql/french/
|
||||
share/mysql/french/errmsg.sys
|
||||
share/mysql/georgian/
|
||||
share/mysql/georgian/errmsg.sys
|
||||
share/mysql/german/
|
||||
share/mysql/german/errmsg.sys
|
||||
share/mysql/greek/
|
||||
|
@ -678,12 +698,12 @@ share/mysql/korean/errmsg.sys
|
|||
share/mysql/maria_add_gis_sp.sql
|
||||
share/mysql/maria_add_gis_sp_bootstrap.sql
|
||||
%%rocksdb%%
|
||||
share/mysql/mysql_performance_tables.sql
|
||||
share/mysql/mysql_sys_schema.sql
|
||||
share/mysql/mysql_system_tables.sql
|
||||
share/mysql/mysql_system_tables_data.sql
|
||||
share/mysql/mysql_test_data_timezone.sql
|
||||
share/mysql/mysql_test_db.sql
|
||||
share/mysql/mariadb_performance_tables.sql
|
||||
share/mysql/mariadb_sys_schema.sql
|
||||
share/mysql/mariadb_system_tables.sql
|
||||
share/mysql/mariadb_system_tables_data.sql
|
||||
share/mysql/mariadb_test_data_timezone.sql
|
||||
share/mysql/mariadb_test_db.sql
|
||||
share/mysql/norwegian/
|
||||
share/mysql/norwegian-ny/
|
||||
share/mysql/norwegian-ny/errmsg.sys
|
||||
|
@ -702,6 +722,8 @@ share/mysql/slovak/
|
|||
share/mysql/slovak/errmsg.sys
|
||||
share/mysql/spanish/
|
||||
share/mysql/spanish/errmsg.sys
|
||||
share/mysql/swahili/
|
||||
share/mysql/swahili/errmsg.sys
|
||||
share/mysql/swedish/
|
||||
share/mysql/swedish/errmsg.sys
|
||||
share/mysql/ukrainian/
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue