Bug #70558 Konvertierung von 'Query_arena::enum_state' in 'm_state' nicht möglich
Submitted: 8 Oct 2013 22:48 Modified: 20 Nov 2018 11:29
Reporter: Matthias Güntert Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:5.6.14 OS:Windows (Windows 7 x64)
Assigned to: CPU Architecture:Any

[8 Oct 2013 22:48] Matthias Güntert
Description:
Hello 

I am receiving the errors bellow when trying to build mysql under windows 7 using visual studio 2012 express. Please let me know how to fix this and if more information is needed.

Thanks
Matthias

Fehler	2601	error C2664: 'Statement::Statement(LEX *,MEM_ROOT *,m_state,ulong)': Konvertierung des Parameters 3 von 'Query_arena::enum_state' in 'm_state' nicht möglich	C:\Temp\mysql-5.6.14-lin\sql\sql_class.cc	923	1	sql
Fehler	2604	error C2511: 'Statement::Statement(LEX *,MEM_ROOT *,Query_arena::enum_state,ulong)': Überladene Memberfunktion nicht in 'Statement' gefunden	C:\Temp\mysql-5.6.14-lin\sql\sql_class.cc	3326	1	sql
Fehler	2605	error C1004: Unerwartetes Dateiende gefunden.	C:\Temp\mysql-5.6.14-lin\sql\sql_class.cc	4943	1	sql
Fehler	2777	error C2664: 'Statement::Statement(LEX *,MEM_ROOT *,m_state,ulong)': Konvertierung des Parameters 3 von 'Query_arena::enum_state' in 'm_state' nicht möglich	C:\Temp\mysql-5.6.14-lin\sql\sql_prepare.cc	3196	1	sql
Fehler	3241	error LNK1104: Datei "..\..\..\sql\Debug\sql.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\storage\perfschema\unittest\LINK	pfs_connect_attr-t
Fehler	3242	error LNK1181: Eingabedatei "Debug\sql.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\sql\LINK	mysqld
Fehler	3303	error LNK1104: Datei "..\..\sql\Debug\sql.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\unittest\gunit\LINK	merge_large_tests-t
Fehler	3305	error LNK1104: Datei "..\..\sql\Debug\mysqld.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\plugin\audit_null\LINK	audit_null
Fehler	3306	error LNK1104: Datei "..\..\sql\Debug\mysqld.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\plugin\auth\LINK	auth
Fehler	3308	error LNK1104: Datei "..\..\sql\Debug\mysqld.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\plugin\auth\LINK	auth_test_plugin
Fehler	3310	error LNK1104: Datei "..\..\sql\Debug\mysqld.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\plugin\password_validation\LINK	validate_password
Fehler	3313	error LNK1104: Datei "..\..\sql\Debug\mysqld.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\plugin\fulltext\LINK	ftexample
Fehler	3314	error LNK1104: Datei "..\..\sql\Debug\mysqld.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\plugin\auth\LINK	qa_auth_interface
Fehler	3315	error LNK1104: Datei "..\..\sql\Debug\mysqld.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\plugin\daemon_example\LINK	daemon_example
Fehler	3317	error LNK1104: Datei "..\..\sql\Debug\mysqld.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\plugin\auth\LINK	qa_auth_server
Fehler	3318	error LNK1104: Datei "..\..\sql\Debug\mysqld.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\plugin\auth\LINK	qa_auth_client
Fehler	3323	error LNK1104: Datei "..\..\sql\Debug\mysqld.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\plugin\semisync\LINK	semisync_slave
Fehler	3326	error LNK1104: Datei "..\..\sql\Debug\mysqld.lib" kann nicht geöffnet werden.	C:\Temp\build-lin\plugin\semisync\LINK	semisync_master

How to repeat:
1)
Download "Windows (Architecture Independent), ZIP Archive" or "Generic Linux (Architecture Independent), Compressed TAR Archive" 

2)
run cmake with the following options

Commandline options:
-DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" -DENABLE_DOWNLOADS:BOOL="1" -DWITH_EXAMPLE_STORAGE_ENGINE:BOOL="1" -DWITH_EMBEDDED_SERVER:BOOL="0" 

Cache file:
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
ENABLE_DOWNLOADS:BOOL=1
WITH_EXAMPLE_STORAGE_ENGINE:BOOL=1
WITH_EMBEDDED_SERVER:BOOL=0

3)
Open MySQL.sln using Visual Studio Express 2012 for Windows Desktop. Hit F7 to build...
[8 Oct 2013 22:49] Matthias Güntert
CMakeCache.txt

Attachment: CMakeCache.txt (text/plain), 51.43 KiB.

[9 Oct 2013 12:50] MySQL Verification Team
I couldn't repeat with Visual Studio 8:

C:\tmp\mysql-5.6.14>sql\Debug\mysqld --version
sql\Debug\mysqld  Ver 5.6.14-debug for Win64 on x86_64 (Source distribution)

C:\tmp\mysql-5.6.14>
[9 Oct 2013 17:25] Matthias Güntert
Thanks for testing. Could you reproduce this issue by using visual studio 2012 express?
[9 Oct 2013 17:42] Matthias Güntert
It seems compiling is not supported using visual studio 2012 express

http://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.0/en/windows-source-build.html
[11 Oct 2013 0:50] MySQL Verification Team
I get compiler errors with VS 2012. The workaround is to use VS 2008 i.e. Thanks.
[11 Oct 2013 18:41] Matthias Güntert
Compiling 32bit binaries using Visual C++ 2008 Express works. Unfortunately a lot of errors are getting thrown when I try to configure for 64bit issuing: 

C:\Temp\build-64>cmake ..\mysql-5.6.14 -G "Visual Studio 9 2008 Win64" -DWITH_EXAMPLE_STORAGE_ENGINE=on

Basically the output consists of errors like this:

" [...] The project consists entirely of configurations that require support for platforms which are not installed on this machine. The project cannot be loaded. [...] "

It seems Visual Studio 2008 Express is not capable to produce 64bit binaries. There is a "Visual Studio 2008 SDK 1.1" which can only be used in conjunction with VS2008 Standard and above... 

So what other posibilites are left to get mysql compiled for 64bit?
[20 Nov 2018 11:29] Dyre Tjeldvoll
Posted by developer:
 
Thank you for bringing this to our attention. Since the bug was filed we have changed the compiler requirements for all platforms several times. Using the currently supported version of Visual Studio it is possible to build both 32 and 64 bit binaries, so we choose to close this bug now.