[oe] [meta-oe][PATCH 2/2] libdbd-mysql-perl: fix do_compile failure

mingli.yu at windriver.com mingli.yu at windriver.com
Tue Mar 5 05:28:59 UTC 2019


From: Mingli Yu <mingli.yu at windriver.com>

After mariadb upgrade to 10.3.13, there comes
below do_compile failure for libdbd-mysql-perl:
| dbdimp.c: In function 'mysql_dr_connect':
| dbdimp.c:2000:13: error: 'MYSQL' {aka 'struct st_mysql'} has no member named 'reconnect'
|        result->reconnect=0;

Backport a patch to fix it.

Signed-off-by: Mingli Yu <mingli.yu at windriver.com>
---
 .../0001-Use-API-function-for-reconnect.patch | 53 +++++++++++++++++++
 .../perl/libdbd-mysql-perl_4.043.bb           |  1 +
 2 files changed, 54 insertions(+)
 create mode 100644 meta-oe/recipes-devtools/perl/libdbd-mysql-perl/0001-Use-API-function-for-reconnect.patch

diff --git a/meta-oe/recipes-devtools/perl/libdbd-mysql-perl/0001-Use-API-function-for-reconnect.patch b/meta-oe/recipes-devtools/perl/libdbd-mysql-perl/0001-Use-API-function-for-reconnect.patch
new file mode 100644
index 000000000..60d88c3d1
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libdbd-mysql-perl/0001-Use-API-function-for-reconnect.patch
@@ -0,0 +1,53 @@
+From edb6b202b7e233864aa5dd84532646c50097b0b8 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu at windriver.com>
+Date: Mon, 4 Mar 2019 00:49:17 -0800
+Subject: [PATCH] Use API function for reconnect
+
+For configuring reconnect functionality use standard API function
+MYSQL_OPT_RECONNECT instead of direct modification of internal structures
+which does not work for MariaDB. Fixes compilation with MariaDB 10.2.6+.
+
+Upstream-Status: Backport [https://github.com/perl5-dbi/DBD-mysql/commit/0b1884f4153d3de0a91bae4d3b3cc1771ffdf4f3]
+
+Signed-off-by: Mingli Yu <mingli.yu at windriver.com>
+---
+ dbdimp.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/dbdimp.c b/dbdimp.c
+index 9b8b313..3bed213 100644
+--- a/dbdimp.c
++++ b/dbdimp.c
+@@ -1979,6 +1979,16 @@ MYSQL *mysql_dr_connect(
+ 
+     if (result)
+     {
++      /*
++        we turn off Mysql's auto reconnect and handle re-connecting ourselves
++        so that we can keep track of when this happens.
++      */
++#if MYSQL_VERSION_ID >= 50013
++      my_bool reconnect = FALSE;
++      mysql_options(result, MYSQL_OPT_RECONNECT, &reconnect);
++#else
++      result->reconnect = 0;
++#endif
+ #if MYSQL_VERSION_ID >=SERVER_PREPARE_VERSION
+       /* connection succeeded. */
+       /* imp_dbh == NULL when mysql_dr_connect() is called from mysql.xs
+@@ -1992,12 +2002,6 @@ MYSQL *mysql_dr_connect(
+           imp_dbh->async_query_in_flight = NULL;
+       }
+ #endif
+-
+-      /*
+-        we turn off Mysql's auto reconnect and handle re-connecting ourselves
+-        so that we can keep track of when this happens.
+-      */
+-      result->reconnect=0;
+     }
+     else {
+       /* 
+-- 
+2.17.1
+
diff --git a/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb b/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb
index bd8ba780a..e185f48f7 100644
--- a/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb
+++ b/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb
@@ -15,6 +15,7 @@ DEPENDS += "libdbi-perl-native libmysqlclient"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d0a06964340e5c0cde88b7af611f755c"
 
 SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MICHIELB/DBD-mysql-${PV}.tar.gz \
+           file://0001-Use-API-function-for-reconnect.patch \
 "
 
 SRC_URI[md5sum] = "4a00dd7f1c057931147c65dfc4901c36"
-- 
2.17.1



More information about the Openembedded-devel mailing list