mariadb: upgrade to 10.5.4

* Remove one backported patch
* Remove SRC_URI[md5sum]
* Rebase two patches to fix fuzz warnings
* Add curl depends to fix below error:
  | ./mariadb-10.5.4/storage/maria/libmarias3/libmarias3/marias3.h:26:10: fatal error: curl/curl.h: No such file or directory

* update the pam_user_map.so install logic as below commit introduced in this new
  mariadb version
  236aed3f5f0 MDEV-21656: Wrong directory for pam_user_map.so JIRA:https://jira.mariadb.org/browse/MDEV-17292

* Backport a patch to fix the undefined reference to `crc32c_arm64' on arm64

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Mingli Yu 2020-07-28 01:36:03 -07:00 committed by Khem Raj
parent 4a1e05154f
commit 8fa0a3ace6
7 changed files with 97 additions and 61 deletions

View File

@ -18,11 +18,10 @@ SRC_URI = "https://downloads.mariadb.org/interstitial/${BP}/source/${BP}.tar.gz
file://c11_atomics.patch \
file://clang_version_header_conflict.patch \
file://fix-arm-atomic.patch \
file://0001-Fix-build-breakage-from-lock_guard-error-6161.patch \
file://0001-Fix-library-LZ4-lookup.patch \
file://0001-MDEV-23137-RocksDB-undefined-reference-to-crc32c_arm.patch \
"
SRC_URI[md5sum] = "97d7c0f508c04a31c138fdb24e95dbc4"
SRC_URI[sha256sum] = "fef1e1d38aa253dd8a51006bd15aad184912fce31c446bb69434fcde735aa208"
SRC_URI[sha256sum] = "26db2becc9cec37e99a4e73390bd2eaa74568e21f9cf110359f4f68b37154c72"
UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases"
@ -169,8 +168,12 @@ do_install() {
mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/
fi
if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
mv ${D}/lib/security ${D}/${libdir}
rmdir --ignore-fail-on-non-empty ${D}/lib
pam_so=$(find ${D} -name pam_user_map.so)
if [ x"${pam_so}" != x ]; then
pam_dir=$(dirname ${pam_so})
mv ${pam_dir} ${D}/${libdir}
rmdir --ignore-fail-on-non-empty ${pam_dir%security}
fi
fi
}

View File

@ -1,32 +0,0 @@
Subject: [PATCH] Fix build breakage from lock_guard error (#6161)
Summary:
This change fixes a source issue that caused compile time error which
breaks build for many fbcode services in that setup. The size() member
function of channel is a const member, so member variables accessed
within it are implicitly const as well. This caused error when clang
fails to resolve to a constructor that takes std::mutex because the
suitable constructor got rejected due to loss of constness for its
argument. The fix is to add mutable modifier to the lock_ member of
channel.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6161
Differential Revision: D18967685
Pulled By: maysamyabandeh
Upstream-Status: Backport
fbshipit-source-id:698b6a5153c3c92eeacb842c467aa28cc350d432
--- a/storage/rocksdb/rocksdb/util/channel.h
+++ b/storage/rocksdb/rocksdb/util/channel.h
@@ -60,7 +60,7 @@ class channel {
private:
std::condition_variable cv_;
- std::mutex lock_;
+ mutable std::mutex lock_;
std::queue<T> buffer_;
bool eof_;
};

View File

@ -0,0 +1,48 @@
From d88ea260882ca414e940cd6af225617f00503f71 Mon Sep 17 00:00:00 2001
From: Krunal Bauskar <krunalbauskar@gmail.com>
Date: Mon, 27 Jul 2020 18:38:10 +0800
Subject: [PATCH] MDEV-23137: RocksDB: undefined reference to crc32c_arm64
RocksDB fails to build on arm64: undefined reference to
`crc32c_arm64(unsigned int, unsigned char const*, unsigned int)'
MariaDB uses storage/rocksdb/build_rocksdb.cmake to compile RocksDB.
Said cmake missed adding crc32c_arm64 compilation target so if
machine native architecture supported crc32 then complier would enable
usage of function defined in crc32c_arm64 causing the listed error.
Added crc32c_arm64 complition target.
closes #1642
Upstream-Status: Backport
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
storage/rocksdb/build_rocksdb.cmake | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/storage/rocksdb/build_rocksdb.cmake b/storage/rocksdb/build_rocksdb.cmake
index 3f3dca7e990..7d2252c5f77 100644
--- a/storage/rocksdb/build_rocksdb.cmake
+++ b/storage/rocksdb/build_rocksdb.cmake
@@ -442,6 +442,16 @@ else()
util/crc32c_ppc.c
util/crc32c_ppc_asm.S)
endif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64")
+ # aarch
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64")
+ CHECK_CXX_COMPILER_FLAG("-march=armv8-a+crc+crypto" HAS_ARMV8_CRC)
+ if(HAS_ARMV8_CRC)
+ message(STATUS " HAS_ARMV8_CRC yes")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a+crc+crypto -Wno-unused-function")
+ list(APPEND ROCKSDB_SOURCES
+ util/crc32c_arm64.cc)
+ endif(HAS_ARMV8_CRC)
+ endif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64")
endif()
SET(SOURCES)
FOREACH(s ${ROCKSDB_SOURCES})
--
2.17.1

View File

@ -1,7 +1,7 @@
Author: Vicențiu Ciorbaru <vicentiu@mariadb.org>
Date: Fri Dec 21 19:14:04 2018 +0200
Link with libatomic to enable C11 atomics support
From 976468458d53d8bb71acf48ddfc852a60557acb9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= <vicentiu@mariadb.org>
Date: Thu, 23 Jul 2020 00:02:21 -0700
Subject: [PATCH] Link with libatomic to enable C11 atomics support
Some architectures (mips) require libatomic to support proper
atomic operations. Check first if support is available without
@ -9,10 +9,18 @@ Date: Fri Dec 21 19:14:04 2018 +0200
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
configure.cmake | 20 +++++++++++++++++++-
mysys/CMakeLists.txt | 4 ++++
sql/CMakeLists.txt | 4 ++++
3 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/configure.cmake b/configure.cmake
index a355214..6ee595f 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -926,7 +926,25 @@ int main()
@@ -865,7 +865,25 @@ int main()
long long int *ptr= &var;
return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
}"
@ -39,10 +47,12 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
IF(WITH_VALGRIND)
SET(HAVE_valgrind 1)
diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt
index 3d8a20e..42f1441 100644
--- a/mysys/CMakeLists.txt
+++ b/mysys/CMakeLists.txt
@@ -78,6 +78,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings
${LIBNSL} ${LIBM} ${LIBRT} ${LIBDL} ${LIBSOCKET} ${LIBEXECINFO} ${CRC32_LIBRARY})
@@ -129,6 +129,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY}
${LIBNSL} ${LIBM} ${LIBRT} ${LIBDL} ${LIBSOCKET} ${LIBEXECINFO})
DTRACE_INSTRUMENT(mysys)
+IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
@ -52,9 +62,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
IF(HAVE_BFD_H)
TARGET_LINK_LIBRARIES(mysys bfd)
ENDIF(HAVE_BFD_H)
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
index 616017b..53575f6 100644
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -178,6 +178,10 @@ ELSE()
@@ -219,6 +219,10 @@ ELSE()
SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL})
ENDIF()
@ -62,6 +74,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
+ TARGET_LINK_LIBRARIES(sql atomic)
+ENDIF()
+
IF(MSVC AND NOT WITHOUT_DYNAMIC_PLUGINS)
IF(MSVC)
SET(libs_to_export_symbols sql mysys dbug strings)
# Create shared library of already compiled object
--
2.17.1

View File

@ -1,6 +1,6 @@
From 796464015bffe6e0beca9e1c355b223512803c3e Mon Sep 17 00:00:00 2001
From cfce1491827e5a581878b5e166bf4d30e6d90e07 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Wed, 27 Feb 2019 23:01:00 -0800
Date: Thu, 23 Jul 2020 00:08:16 -0700
Subject: [PATCH] sql/CMakeLists.txt: fix gen_lex_hash not found
Fix the below do_compile issue in cross-compiling env.
@ -10,18 +10,17 @@ Fix the below do_compile issue in cross-compiling env.
Upstream-Status: Inappropriate [oe build specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
sql/CMakeLists.txt | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
index c6910f46..bf51f4cb 100644
index 0dc3caa..616017b 100644
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -50,11 +50,16 @@ ${WSREP_INCLUDES}
@@ -52,11 +52,16 @@ ${CMAKE_BINARY_DIR}/sql
${CMAKE_SOURCE_DIR}/tpool
)
-ADD_CUSTOM_COMMAND(
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h
@ -39,9 +38,9 @@ index c6910f46..bf51f4cb 100644
+ COMMAND gen_lex_token > lex_token.h)
+ENDIF()
ADD_DEFINITIONS(-DMYSQL_SERVER -DHAVE_EVENT_SCHEDULER)
@@ -370,11 +375,16 @@ IF(NOT CMAKE_CROSSCOMPILING)
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sql_yacc_ora.yy
@@ -345,11 +350,16 @@ IF(NOT CMAKE_CROSSCOMPILING)
ADD_EXECUTABLE(gen_lex_hash gen_lex_hash.cc)
ENDIF()
@ -61,5 +60,8 @@ index c6910f46..bf51f4cb 100644
+ COMMAND gen_lex_hash > lex_hash.h)
+ENDIF()
MYSQL_ADD_EXECUTABLE(mysql_tzinfo_to_sql tztime.cc COMPONENT Server)
SET_TARGET_PROPERTIES(mysql_tzinfo_to_sql PROPERTIES COMPILE_FLAGS "-DTZINFO2SQL")
MYSQL_ADD_EXECUTABLE(mariadb-tzinfo-to-sql tztime.cc COMPONENT Server)
SET_TARGET_PROPERTIES(mariadb-tzinfo-to-sql PROPERTIES COMPILE_FLAGS "-DTZINFO2SQL")
--
2.17.1

View File

@ -2,7 +2,7 @@ require mariadb.inc
EXTRA_OECMAKE += "-DSTACK_DIRECTION=-1"
DEPENDS += "mariadb-native bison-native openssl ncurses zlib libaio libedit libevent libxml2"
DEPENDS += "mariadb-native bison-native curl openssl ncurses zlib libaio libedit libevent libxml2"
PROVIDES += "mysql5 libmysqlclient"