Bug #53802 mysqltest_embedded is linked with shared and static library
Submitted: 19 May 2010 12:15 Modified: 22 Jan 2014 10:16
Reporter: Jørgen Austvik Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.1 OS:Windows
Assigned to: Daniel Fischer CPU Architecture:Any
Tags: cmake 5.1 windows mysqltest embedded

[19 May 2010 12:15] Jørgen Austvik
Description:
Hi, Wlad.

The fix for BUG#52301 in mysql-5.1-mtr fails Windows on 5.1, but not other platforms or next-mr-mtr.

The diff does not add any #imports, but calls find_type_or_exit() and uses the sql_protocol_typelib variable.

Error messages are like this:

----------8<--------------------8<--------------------8<--------------------8<----------
57>mysqlserver.lib(client.obj) : error LNK2005: _mysql_free_result@4 already defined in libmysqld.lib(LIBMYSQLD.dll)
57>mysqlserver.lib(client.obj) : error LNK2005: _mysql_init@4 already defined in libmysqld.lib(LIBMYSQLD.dll)
57>mysqlserver.lib(client.obj) : error LNK2005: _mysql_send_query@12 already defined in libmysqld.lib(LIBMYSQLD.dll)
...
57>mysqlserver.lib(libmysql.obj) : error LNK2005: _mysql_thread_init@0 already defined in libmysqld.lib(LIBMYSQLD.dll)
57>mysqlserver.lib(libmysql.obj) : error LNK2005: _mysql_thread_end@0 already defined in libmysqld.lib(LIBMYSQLD.dll)
57>mysqlserver.lib(libmysql.obj) : error LNK2005: _mysql_enable_rpl_parse@4 already defined in libmysqld.lib(LIBMYSQLD.dll)
...
57>mysqltest_embedded - 49 error(s), 0 warning(s)
----------8<--------------------8<--------------------8<--------------------8<----------

How to repeat:
Build mysq1-5.1-mtr on Windows
[19 May 2010 13:03] MySQL Verification Team
Thank you for the bug report.

58>completion_hash.cc
58>Generating Code...
59>Linking...
57>Linking...
58>Linking...
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_free_result already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_init already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_close already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_send_query already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_real_query already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_store_result already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_fetch_row already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_fetch_lengths already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_options already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_num_rows already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_num_fields already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_errno already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_error already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(client.obj) : error LNK2005: mysql_get_server_version already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_server_init already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_server_end already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_thread_init already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_thread_end already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_enable_rpl_parse already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_disable_rpl_parse already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_rpl_parse_enabled already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_rpl_probe already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_change_user already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_query already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_shutdown already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_ping already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_fetch_fields already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_field_count already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_affected_rows already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_sqlstate already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_warning_count already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_info already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_init already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_prepare already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_result_metadata already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_attr_set already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_execute already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_field_count already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_bind_result already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_fetch already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_store_result already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_close already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_errno already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_sqlstate already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_stmt_error already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_more_results already defined in libmysqld.lib(LIBMYSQLD.dll)
59>mysqlserver.lib(libmysql.obj) : error LNK2005: mysql_next_result already defined in libmysqld.lib(LIBMYSQLD.dll)
[22 Jan 2014 10:16] Ståle Deraas
This issue it not reproducible in any of the relevant trees now.