If I change file mysqlStubInit.c to also accept libmariadb.so.3, it works:
static const char *const mysqlStubLibNames[] = {
/* @LIBNAMES@: DO NOT EDIT THESE NAMES */
"mysqlclient_r", "mysqlclient", "mysql", "mariadb", NULL
/* @END@ */
};
/* ABI Version numbers of the MySQL API that we can cope with */
static const char mysqlSuffixes[][5] = {
"", ".18", ".17", ".16", ".15", ".3"
};
...
status = Tcl_LoadFile(interp, path, mysqlSymbolNames, 0,
&mysqlStubsTable, &handle);
printf("%d -> %s\n", status, Tcl_GetString(path));
Gives:
1 -> libmysqlclient_r.so
1 -> libmysqlclient_r.so.18
1 -> libmysqlclient_r.so.17
1 -> libmysqlclient_r.so.16
1 -> libmysqlclient_r.so.15
1 -> libmysqlclient_r.so.3
1 -> libmysqlclient.so
1 -> libmysqlclient.so.18
1 -> libmysqlclient.so.17
1 -> libmysqlclient.so.16
1 -> libmysqlclient.so.15
1 -> libmysqlclient.so.3
1 -> libmysql.so
1 -> libmysql.so.18
1 -> libmysql.so.17
1 -> libmysql.so.16
1 -> libmysql.so.15
1 -> libmysql.so.3
1 -> libmariadb.so
1 -> libmariadb.so.18
1 -> libmariadb.so.17
1 -> libmariadb.so.16
1 -> libmariadb.so.15
0 -> libmariadb.so.3
The directory containing libmariadb.so.3, also contains
libmysqlclient.so.18:
> ls -laF /usr/lib64/mysql/
-rwxr-xr-x. 1 root root 338792 ??? 6 02:22 libmariadb.so.3*
lrwxrwxrwx. 1 root root 15 ??? 6 02:18 libmysqlclient.so.18 ->
libmariadb.so.3*
But it is not loaded.
George