This was fixed upstream, but the fix clashes with Ubuntu's
reintroduction of my_bool as a bool.

Ubuntu has:
typedef bool my_bool;

When isc-kea finds my_bool, it does this:
#define HAVE_MYSQL_MY_BOOL
typedef my_bool my_bools;
const my_bool MLM_FALSE = 0;
const my_bool MLM_TRUE = 1;

So now we have my_bools as a bool.

The code later does this (one example, there other places):
    static void setErrorIndicators(std::vector<MYSQL_BIND>& bind,
                                   std::vector<my_bools>& error) {
        for (size_t i = 0; i < error.size(); ++i) {
            error[i] = MLM_FALSE;
#ifdef HAVE_MYSQL_MY_BOOL
            bind[i].error = reinterpret_cast<char*>(&error[i]);
#else
            bind[i].error = reinterpret_cast<bool*>(&error[i]);
#endif

Since HAVE_MYSQL_MY_BOOL was defined (because of Ubuntu's workaround),
this is executed:

    bind[i].error = reinterpret_cast<char*>(&error[i]);

And it fails because MYSQL_BIND.error is, in mysql 8, a bool, not a
char.

** Changed in: isc-kea (Ubuntu)
       Status: New => In Progress

** Changed in: isc-kea (Ubuntu)
     Assignee: (unassigned) => Andreas Hasenack (ahasenack)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1795314

Title:
  FTBFS with MySQL 8.0

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/isc-kea/+bug/1795314/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to