diff options
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 | |||
2 | inherit native | 2 | inherit native |
3 | 3 | ||
4 | PROVIDES += "mysql5-native" | 4 | PROVIDES += "mysql5-native" |
5 | DEPENDS = "ncurses-native zlib-native bison-native libpcre2-native" | 5 | DEPENDS = "ncurses-native zlib-native bison-native libpcre2-native \ |
6 | gnutls-native fmt-native \ | ||
7 | " | ||
6 | 8 | ||
7 | RDEPENDS:${PN} = "" | 9 | RDEPENDS:${PN} = "" |
8 | PACKAGES = "" | 10 | PACKAGES = "" |
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 | " |
23 | SRC_URI:append:libc-musl = " file://ppc-remove-glibc-dep.patch" | 25 | SRC_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 | ||
63 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} lz4 openssl" | 65 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} lz4 openssl" |
66 | EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'" | ||
67 | |||
64 | PACKAGECONFIG:class-native = "" | 68 | PACKAGECONFIG:class-native = "" |
65 | PACKAGECONFIG[pam] = ",-DWITHOUT_AUTH_PAM=TRUE,libpam" | 69 | PACKAGECONFIG[pam] = ",-DWITHOUT_AUTH_PAM=TRUE,libpam" |
66 | PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITH_VALGRIND=FALSE,valgrind" | 70 | PACKAGECONFIG[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 | ||
99 | EXTRA_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 | ||
123 | do_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 "\$@" | ||
130 | EOF | ||
131 | chmod +x ${WORKDIR}/qemuwrapper | ||
132 | } | ||
133 | 127 | ||
134 | do_compile:prepend:class-target () { | 128 | do_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 @@ | |||
1 | From f92f657973997df30afdb0032c88ad3a14ead46b Mon Sep 17 00:00:00 2001 | ||
2 | From: Mingli Yu <mingli.yu@windriver.com> | ||
3 | Date: Fri, 23 Sep 2022 15:48:21 +0800 | ||
4 | Subject: [PATCH] sql/CMakeLists.txt: fix gen_lex_hash not found | ||
5 | |||
6 | Fix 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 | |||
10 | Upstream-Status: Inappropriate [oe build specific] | ||
11 | |||
12 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | ||
13 | --- | ||
14 | sql/CMakeLists.txt | 30 ++++++++++++++++++++++-------- | ||
15 | 1 file changed, 22 insertions(+), 8 deletions(-) | ||
16 | |||
17 | diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt | ||
18 | index 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 | -- | ||
68 | 2.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 @@ | |||
1 | From 80be37351d995654f86b838f6b5ed47e8a90261b Mon Sep 17 00:00:00 2001 | ||
2 | From: Mingli Yu <mingli.yu@windriver.com> | ||
3 | Date: Fri, 23 Sep 2022 12:05:17 +0800 | ||
4 | Subject: [PATCH] CMakeLists.txt: not include import_executables.cmake | ||
5 | |||
6 | building failed since native does not generate import_executables.cmake | ||
7 | In fact, our building system will export the needed commands. | ||
8 | |||
9 | Upstream-Status: Inappropriate [oe specific] | ||
10 | |||
11 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | ||
12 | --- | ||
13 | CMakeLists.txt | 5 ----- | ||
14 | 1 file changed, 5 deletions(-) | ||
15 | |||
16 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
17 | index 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 | -- | ||
33 | 2.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 @@ | |||
1 | require mariadb.inc | 1 | require mariadb.inc |
2 | 2 | ||
3 | inherit qemu | 3 | DEPENDS += "mariadb-native bison-native boost libpcre2 curl ncurses \ |
4 | |||
5 | DEPENDS += "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 | ||
8 | PROVIDES += "mysql5 libmysqlclient" | 6 | PROVIDES += "mysql5 libmysqlclient" |