summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb-native_10.8.3.bb4
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb.inc20
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch69
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch34
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb_10.8.3.bb4
5 files changed, 116 insertions, 15 deletions
diff --git a/meta-oe/recipes-dbs/mysql/mariadb-native_10.8.3.bb b/meta-oe/recipes-dbs/mysql/mariadb-native_10.8.3.bb
index e38726d3f9..17a06349b0 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb-native_10.8.3.bb
+++ b/meta-oe/recipes-dbs/mysql/mariadb-native_10.8.3.bb
@@ -2,7 +2,9 @@ require mariadb.inc
2inherit native 2inherit native
3 3
4PROVIDES += "mysql5-native" 4PROVIDES += "mysql5-native"
5DEPENDS = "ncurses-native zlib-native bison-native libpcre2-native" 5DEPENDS = "ncurses-native zlib-native bison-native libpcre2-native \
6gnutls-native fmt-native \
7"
6 8
7RDEPENDS:${PN} = "" 9RDEPENDS:${PN} = ""
8PACKAGES = "" 10PACKAGES = ""
diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-oe/recipes-dbs/mysql/mariadb.inc
index 7bd4ac0ba3..2ef0d1aa3b 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -19,6 +19,8 @@ SRC_URI = "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \
19 file://ssize_t.patch \ 19 file://ssize_t.patch \
20 file://mm_malloc.patch \ 20 file://mm_malloc.patch \
21 file://sys_futex.patch \ 21 file://sys_futex.patch \
22 file://cross-compiling.patch \
23 file://0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch \
22 " 24 "
23SRC_URI:append:libc-musl = " file://ppc-remove-glibc-dep.patch" 25SRC_URI:append:libc-musl = " file://ppc-remove-glibc-dep.patch"
24 26
@@ -61,6 +63,8 @@ FILES:${PN}-setupdb = "${sysconfdir}/init.d/install_db \
61 " 63 "
62 64
63PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} lz4 openssl" 65PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} lz4 openssl"
66EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'"
67
64PACKAGECONFIG:class-native = "" 68PACKAGECONFIG:class-native = ""
65PACKAGECONFIG[pam] = ",-DWITHOUT_AUTH_PAM=TRUE,libpam" 69PACKAGECONFIG[pam] = ",-DWITHOUT_AUTH_PAM=TRUE,libpam"
66PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITH_VALGRIND=FALSE,valgrind" 70PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITH_VALGRIND=FALSE,valgrind"
@@ -94,9 +98,9 @@ EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \
94 -DINSTALL_SYSCONFDIR:PATH=${sysconfdir} \ 98 -DINSTALL_SYSCONFDIR:PATH=${sysconfdir} \
95 -DMYSQL_DATADIR:PATH=/var/mysql \ 99 -DMYSQL_DATADIR:PATH=/var/mysql \
96 -DCAT_EXECUTABLE=`which cat` \ 100 -DCAT_EXECUTABLE=`which cat` \
101 -DSTACK_DIRECTION=1 \
97 -DCMAKE_AR:FILEPATH=${AR}" 102 -DCMAKE_AR:FILEPATH=${AR}"
98 103
99EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper "
100 104
101# With Ninja it fails with: 105# With Ninja it fails with:
102# make: *** No rule to make target `install'. Stop. 106# make: *** No rule to make target `install'. Stop.
@@ -120,18 +124,12 @@ do_generate_toolchain_file:append:class-native () {
120 sed -i "/set( CMAKE_SYSTEM_PROCESSOR/d" ${WORKDIR}/toolchain.cmake 124 sed -i "/set( CMAKE_SYSTEM_PROCESSOR/d" ${WORKDIR}/toolchain.cmake
121} 125}
122 126
123do_configure:prepend:class-target () {
124 # Write out a qemu wrapper that will be used by cmake
125 # so that it can run target helper binaries through that.
126 qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
127 cat > ${WORKDIR}/qemuwrapper << EOF
128#!/bin/sh
129$qemu_binary "\$@"
130EOF
131 chmod +x ${WORKDIR}/qemuwrapper
132}
133 127
134do_compile:prepend:class-target () { 128do_compile:prepend:class-target () {
129 # These need to be in-tree or make will think they need to be built,
130 # and since we're cross-compiling that is disabled
131 cp ${STAGING_BINDIR_NATIVE}/comp_err ${S}/extra
132 cp ${STAGING_BINDIR_NATIVE}/comp_sql ${S}/scripts
135 if [ "${@bb.utils.contains('PACKAGECONFIG', 'krb5', 'yes', 'no', d)}" = "no" ]; then 133 if [ "${@bb.utils.contains('PACKAGECONFIG', 'krb5', 'yes', 'no', d)}" = "no" ]; then
136 if ! [ -e ${B}/include/openssl/kssl.h ] ; then 134 if ! [ -e ${B}/include/openssl/kssl.h ] ; then
137 mkdir -p ${B}/include/openssl 135 mkdir -p ${B}/include/openssl
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch
new file mode 100644
index 0000000000..456a2bad64
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch
@@ -0,0 +1,69 @@
1From f92f657973997df30afdb0032c88ad3a14ead46b Mon Sep 17 00:00:00 2001
2From: Mingli Yu <mingli.yu@windriver.com>
3Date: Fri, 23 Sep 2022 15:48:21 +0800
4Subject: [PATCH] sql/CMakeLists.txt: fix gen_lex_hash not found
5
6Fix the below do_compile issue in cross-compiling env.
7| make[2]: *** No rule to make target '/build/tmp/work/aarch64-poky-linux/mariadb/10.3.13-r0/mariadb-10.3.13/sql/gen_lex_hash', needed by 'sql/lex_hash.h'. Stop.
8| make[2]: *** No rule to make target '/build/tmp/work/aarch64-poky-linux/mariadb/10.3.13-r0/mariadb-10.3.13/sql/gen_lex_token', needed by 'sql/lex_token.h'. Stop.
9
10Upstream-Status: Inappropriate [oe build specific]
11
12Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
13---
14 sql/CMakeLists.txt | 30 ++++++++++++++++++++++--------
15 1 file changed, 22 insertions(+), 8 deletions(-)
16
17diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
18index 241b482..27a3991 100644
19--- a/sql/CMakeLists.txt
20+++ b/sql/CMakeLists.txt
21@@ -60,11 +60,18 @@ ${CMAKE_BINARY_DIR}/sql
22 ${CMAKE_SOURCE_DIR}/tpool
23 )
24
25-ADD_CUSTOM_COMMAND(
26- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h
27- COMMAND gen_lex_token > lex_token.h
28- DEPENDS gen_lex_token
29+IF(NOT CMAKE_CROSSCOMPILING)
30+ ADD_CUSTOM_COMMAND(
31+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h
32+ COMMAND gen_lex_token > lex_token.h
33+ DEPENDS gen_lex_token
34+)
35+ELSE()
36+ ADD_CUSTOM_COMMAND(
37+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h
38+ COMMAND gen_lex_token > lex_token.h
39 )
40+ENDIF()
41
42 FIND_PACKAGE(BISON 2.4)
43
44@@ -372,11 +379,18 @@ IF(NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
45 ADD_EXECUTABLE(gen_lex_hash gen_lex_hash.cc)
46 ENDIF()
47
48-ADD_CUSTOM_COMMAND(
49- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h
50- COMMAND gen_lex_hash > lex_hash.h
51- DEPENDS gen_lex_hash
52+IF(NOT CMAKE_CROSSCOMPILING)
53+ ADD_CUSTOM_COMMAND(
54+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h
55+ COMMAND gen_lex_hash > lex_hash.h
56+ DEPENDS gen_lex_hash
57+)
58+ELSE()
59+ ADD_CUSTOM_COMMAND(
60+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h
61+ COMMAND gen_lex_hash > lex_hash.h
62 )
63+ENDIF()
64
65 MYSQL_ADD_EXECUTABLE(mariadb-tzinfo-to-sql tztime.cc)
66 SET_TARGET_PROPERTIES(mariadb-tzinfo-to-sql PROPERTIES COMPILE_FLAGS "-DTZINFO2SQL")
67--
682.25.1
69
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch b/meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch
new file mode 100644
index 0000000000..d0d6e3c730
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch
@@ -0,0 +1,34 @@
1From 80be37351d995654f86b838f6b5ed47e8a90261b Mon Sep 17 00:00:00 2001
2From: Mingli Yu <mingli.yu@windriver.com>
3Date: Fri, 23 Sep 2022 12:05:17 +0800
4Subject: [PATCH] CMakeLists.txt: not include import_executables.cmake
5
6building failed since native does not generate import_executables.cmake
7In fact, our building system will export the needed commands.
8
9Upstream-Status: Inappropriate [oe specific]
10
11Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
12---
13 CMakeLists.txt | 5 -----
14 1 file changed, 5 deletions(-)
15
16diff --git a/CMakeLists.txt b/CMakeLists.txt
17index f9e2b1b..34924ba 100644
18--- a/CMakeLists.txt
19+++ b/CMakeLists.txt
20@@ -394,11 +394,6 @@ CHECK_LIBFMT()
21 ADD_SUBDIRECTORY(tpool)
22 CHECK_SYSTEMD()
23
24-IF(CMAKE_CROSSCOMPILING AND NOT DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
25- SET(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Path to import_executables.cmake from a native build")
26- INCLUDE(${IMPORT_EXECUTABLES})
27-ENDIF()
28-
29 #
30 # Setup maintainer mode options. Platform checks are
31 # not run with the warning options as to not perturb fragile checks
32--
332.25.1
34
diff --git a/meta-oe/recipes-dbs/mysql/mariadb_10.8.3.bb b/meta-oe/recipes-dbs/mysql/mariadb_10.8.3.bb
index 20bb5fc1fe..87faabfa27 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb_10.8.3.bb
+++ b/meta-oe/recipes-dbs/mysql/mariadb_10.8.3.bb
@@ -1,8 +1,6 @@
1require mariadb.inc 1require mariadb.inc
2 2
3inherit qemu 3DEPENDS += "mariadb-native bison-native boost libpcre2 curl ncurses \
4
5DEPENDS += "qemu-native bison-native boost libpcre2 curl ncurses \
6 zlib libaio libedit libevent libxml2 gnutls fmt lzo zstd" 4 zlib libaio libedit libevent libxml2 gnutls fmt lzo zstd"
7 5
8PROVIDES += "mysql5 libmysqlclient" 6PROVIDES += "mysql5 libmysqlclient"