Bug 347970 - Qt compilation fails with mingw-w64
Summary: Qt compilation fails with mingw-w64
Status: RESOLVED FIXED
Alias: None
Product: kde-windows
Classification: Miscellaneous
Component: buildsystem (show other bugs)
Version: unspecified
Platform: Other Microsoft Windows
: NOR grave
Target Milestone: ---
Assignee: KDE-Windows
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-19 21:46 UTC by Asuka Langley
Modified: 2015-05-20 09:29 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Asuka Langley 2015-05-19 21:46:35 UTC
Cannot compile Qt with mingw-w64 using build system  with "./emerge qt" command and due of it all building fails.

Reproducible: Always

Steps to Reproduce:
1. get emerge tool with git clone  git://anongit.kde.org/emerge.git
2. copy ini file to KDEROOT/etc/ at set compiler to mingw-w64
3.  use kdeenv.bat or kdeenv.ps1 and go to emerge/bin and input "emerge qt"

Actual Results:  
Error, Last message: g++ -shared -pipe -fno-keep-inline-dllexport -Ir:/build/binary/mysql-pkg/image-mingw-w64-RelWithDebInfo-5.6.24/include -std=c++0x -fno-exceptions -frtti -Wl,-subsystem,windows -Wl,--out-implib,R:\build\libs\qtbase\work\mingw-w64-RelWithDebInfo-5.4\plugins\sqldrivers\libqsqlmysql.a -o ..\..\..\..\plugins\sqldrivers\qsqlmysql.dll .obj/release/main.o  .obj/release/qsql_mysql.o  .obj/release/moc_qsql_mysql_p.o  -Lr:/build/win32libs/icu/image-mingw-w64-RelWithDebInfo-55.1/lib -Lr:/build/binary/mysql-pkg/image-mingw-w64-RelWithDebInfo-5.6.24/lib -LR:/build/libs/qtbase/work/mingw-w64-RelWithDebInfo-5.4/lib -lQt5Sql -lQt5Core .obj\release\qsqlmysql_resource_res.o
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x353): undefined reference to `mysql_character_set_name@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x394): undefined reference to `mysql_error@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x3af): undefined reference to `mysql_errno@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x68d): undefined reference to `mysql_stmt_error@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x69e): undefined reference to `mysql_stmt_errno@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x8d4): undefined reference to `mysql_stmt_result_metadata@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x901): undefined reference to `mysql_num_fields@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0xaab): undefined reference to `mysql_fetch_field@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0xc41): undefined reference to `mysql_free_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0xc61): undefined reference to `mysql_store_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0xc78): undefined reference to `mysql_free_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0xcba): undefined reference to `mysql_next_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0xcf3): undefined reference to `mysql_stmt_close@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0xd63): undefined reference to `mysql_free_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0xf9b): undefined reference to `mysql_stmt_data_seek@12'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0xfaf): undefined reference to `mysql_stmt_fetch@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1079): undefined reference to `mysql_data_seek@12'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1093): undefined reference to `mysql_fetch_row@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x111b): undefined reference to `mysql_stmt_fetch@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x11df): undefined reference to `mysql_fetch_row@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x12ae): undefined reference to `mysql_stmt_num_rows@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x12ca): undefined reference to `mysql_num_rows@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x158d): undefined reference to `mysql_fetch_lengths@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1bdb): undefined reference to `mysql_real_query@12'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1ca3): undefined reference to `mysql_store_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1cd1): undefined reference to `mysql_field_count@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1d9e): undefined reference to `mysql_field_count@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1dff): undefined reference to `mysql_affected_rows@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1e3a): undefined reference to `mysql_fetch_field_direct@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1f31): undefined reference to `mysql_stmt_num_rows@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1f47): undefined reference to `mysql_num_rows@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1fcf): undefined reference to `mysql_stmt_insert_id@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x201b): undefined reference to `mysql_insert_id@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x20f9): undefined reference to `mysql_errno@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x211c): undefined reference to `mysql_field_seek@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x212a): undefined reference to `mysql_fetch_field@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x2187): undefined reference to `mysql_fetch_field@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x21a6): undefined reference to `mysql_field_seek@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x2248): undefined reference to `mysql_free_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x22ec): undefined reference to `mysql_next_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x23c4): undefined reference to `mysql_store_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x23e5): undefined reference to `mysql_field_count@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x24f8): undefined reference to `mysql_affected_rows@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x252f): undefined reference to `mysql_fetch_field_direct@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x275d): undefined reference to `mysql_stmt_init@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x2865): undefined reference to `mysql_stmt_prepare@12'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x291e): undefined reference to `mysql_stmt_param_count@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x2941): undefined reference to `mysql_stmt_param_count@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x2a81): undefined reference to `mysql_stmt_reset@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x2b51): undefined reference to `mysql_stmt_param_count@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x2b6c): undefined reference to `mysql_stmt_param_count@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x2fa2): undefined reference to `mysql_stmt_bind_param@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x306e): undefined reference to `mysql_stmt_execute@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x3171): undefined reference to `mysql_stmt_affected_rows@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x31b9): undefined reference to `mysql_stmt_bind_result@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x329a): undefined reference to `mysql_stmt_attr_set@12'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x32b1): undefined reference to `mysql_stmt_store_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x33a1): undefined reference to `mysql_stmt_bind_result@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x3f0e): undefined reference to `mysql_init@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x40b6): undefined reference to `mysql_real_connect@32'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x417b): undefined reference to `mysql_select_db@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x4290): undefined reference to `mysql_close@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x42ef): undefined reference to `mysql_options@12'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x4381): undefined reference to `mysql_close@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x43d1): undefined reference to `mysql_set_character_set@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x43ef): undefined reference to `mysql_get_client_version@0'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x4404): undefined reference to `mysql_get_server_version@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x4425): undefined reference to `mysql_thread_init@0'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x44c6): undefined reference to `mysql_thread_end@0'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x44d4): undefined reference to `mysql_close@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x4583): undefined reference to `mysql_get_server_version@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x45d8): undefined reference to `mysql_list_tables@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x45fe): undefined reference to `mysql_data_seek@12'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x460c): undefined reference to `mysql_fetch_row@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x467a): undefined reference to `mysql_free_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x4ef0): undefined reference to `mysql_list_fields@12'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x4f52): undefined reference to `mysql_fetch_field@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x4f6e): undefined reference to `mysql_free_result@4'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x503e): undefined reference to `mysql_query@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x515a): undefined reference to `mysql_query@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x5276): undefined reference to `mysql_query@8'
.obj/release/qsql_mysql.o:qsql_mysql.cpp:(.text+0x54cc): undefined reference to `mysql_real_escape_string@16'
r:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: .obj/release/qsql_mysql.o: bad reloc address 0x4 in section `.data'
collect2.exe: error: ld returned 1 exit status

Expected Results:  
Compiled Qt

My system is Windows 10 Technical Preview Build 10074 so I can't use older MSVS, but ICU builing fails with latest MSVS 2015, so the only way to build KDE for me is to use mingw-w64.
Comment 1 Hannah von Reth 2015-05-20 09:29:00 UTC
the problem was that our patch to configure was not applied.
http://quickgit.kde.org/?p=emerge.git&a=commit&h=9f1ea6f634c24f99ca04981e567fd73d64f983fc

fixes that problem.