Hi

The only program that uses mysql-connector-c++ I know of is
mysql-workbench [1], but that's a bit bloated to build only to test if
connector-c++ is working correctly (and I don't know which parts of
workbench use it, so that's rather uncertain).

I cannot build the ctemplate package because I've no access to the Google Code SVN repository here, therefore I'm unable to check the mysql-connector-c++ package using mysql-workbench.


I think the best you can do is test the examples in examples/ of
mysql-connector-c++.

I built the example source using:
g++ -o prepared_statement -Wl,-Bdynamic -lmysqlcppconn \
  -I ~/mysql-connector-c++/src/mysql-connector-c++-1.1.4/ \
  prepared_statement.cpp

The results of the command is exactly the same [1] rebuilding the prepared_statement against libmariadbclient or libmysqlclient packages with any of the following patches.

The package libmysqlclient provides a mysql_config command which *HAS* the --cxxflags option. The package libmariadbclient provides a mysql_config command which *HAS NOT* the --cxxflags option.

When the package mysql-connection-c++ is built against the libmariasqlclient it cannot get the build flags because it uses the missing --cxxflags option and then fallbacks to --cflags.

When the package mysql-connection-c++ is built against the libmysqlclient it receives the build flags using the --cxxflags option and then builds the software including the -fno-rtti option.

There are two different ways to fix the issue with the mysql-connector-c++ package:

a) remove the -fno-rtti option from the cxxflags offered by mysql_config, see [2]

b) fix the broken FindMySQL.cmake source which assumes that since the version 5.6.3 MySQL is *ALWAYS* built with the MYSQL_CXX_LINKAGE option set when cmake is run but it doesn't make anything to solve if the no-rtti flag was used. See [3] how to honor the MYSQL_CXX_LINKAGE option. The latter patch allows you to build your package with -DMYSQL_CXX_LINKAGE set to 0 (to disable the use of cxxflags) or to 1 to use the cxxflags. Without this patch the option MYSQL_CXX_LINKAGE is ignored at all since MySQL 5.6.3.

Please update your PKGBUILD accordingly to these suggestions.
I don't plan to change the build process in a way too much different from the libmariadbclient build process, therefore I will not remove the no-rtti flag until I can find a valid reason to do that.

Best regards

[1] http://paste.muflone.com/147
[2] https://gist.github.com/muflone/c6641fc1acce22583235/b92d41d44d11bbf9bd621f428947932187c6da54 [3] https://gist.github.com/muflone/c6641fc1acce22583235/384d1a350e246092b57ad66853454b114f949bf1

--
Muflone

Reply via email to