I suspect this is due to some distinction between libmysqlclient18, libmysqlclient20, and MariaDB's "drop-in" replacement of libmysqlclient18 (which in Debian we call libmariadbclient18 to disambiguate).
I don't believe MariaDB ever went beyond attempted compatibility against MySQL 5.6 (ie. libmysqlclient18's API). When you try against libmysqlclient-dev, you're probably building against MySQL 5.7 which is a different API revision.
I don't know if this is a bug or not either. It depends on whether upstream MariaDB expects to be shipping a my_load_defaults function in their API that they forked from libmysqlclient18 but didn't rename upstream.
I suspect this is due to some distinction between libmysqlclient18, libmysqlclient20, and MariaDB's "drop-in" replacement of libmysqlclient18 (which in Debian we call libmariadbclient18 to disambiguate).
I don't believe MariaDB ever went beyond attempted compatibility against MySQL 5.6 (ie. libmysqlclient18's API). When you try against libmysqlclient-dev, you're probably building against MySQL 5.7 which is a different API revision.
I don't know if this is a bug or not either. It depends on whether upstream MariaDB expects to be shipping a my_load_defaults function in their API that they forked from libmysqlclient18 but didn't rename upstream.