FreeBSD 9.1, Mariadb55, and strfill()
Please give me a hint.
Under FreeBSD my application cannot find strfill(). It can be found in libmysqlclient.a and libmysqlclient_r.a but NOT in the shared library libmysqlclient.so. Oddly, strcend() can be found in all of those libraries but I cannot find a difference in CMake between the two.
Answer
strfill() is not part of the client-server API, so it's not explicitly added to the list of exported symbols of libmysqlclient.so.
If you check libmysql/CMakeLists.txt of the latest 5.5 you'll see that we do export strfill on Ubuntu, because de-facto libmyodbc on Ubuntu needs it. But otherwise we don't export it, and the linker removes this unused symbol when building the dynamic library.
strcend() is different. It's not explicitly exported (even on Ubuntu), but it is used by the libmysqlclient.so itself, internally, so the linker cannot remove it.