Bug #56852 mysql source 5.1.39/39 can't be build successfully in visual studio 2005/2008
Submitted: 18 Sep 2010 15:39 Modified: 20 Sep 2010 14:34
Reporter: Justin Xu Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Compiling Severity:S1 (Critical)
Version:5.1 OS:Windows
Assigned to: CPU Architecture:Any

[18 Sep 2010 15:39] Justin Xu
Description:
MySQL source code can't be build in Visual Studio 2005/2008 following win/README.

19>Running...
18>Log in “file://d:\JavaEE\LAMP\mysql-5.1.39\sql\GenServerSource.dir\Debug\BuildLog.htm”
18>GenServerSource - 0 errors,0 warnings
19>sql_builtin.cc
19>sql_yacc.cc
19>event_parse_data.cc
19>sql_profile.cc
19>scheduler.cc
19>sql_connect.cc
19>sql_servers.cc
19>rpl_mi.cc
19>rpl_rli.cc
19>sql_locale.cc
19>.\sql_locale.cc(585) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
19>.\sql_locale.cc(668) : error C2146: syntax error : missing '}' before identifier '嗒忇喃嵿嗒苦'
19>.\sql_locale.cc(668) : error C2146: syntax error : missing ';' before identifier '嗒忇喃嵿嗒苦'
19>.\sql_locale.cc(668) : error C2143: syntax error : missing ';' before 'string'
19>.\sql_locale.cc(668) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
19>.\sql_locale.cc(668) : error C2143: syntax error : missing ';' before '}'
19>.\sql_locale.cc(668) : error C2059: syntax error : '}'
19>.\sql_locale.cc(670) : error C2146: syntax error : missing '}' before identifier '嗒珖嗒'
19>.\sql_locale.cc(670) : error C2146: syntax error : missing ';' before identifier '嗒珖嗒'
19>.\sql_locale.cc(670) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
19>.\sql_locale.cc(670) : error C2059: syntax error : 'string'
19>.\sql_locale.cc(670) : error C2143: syntax error : missing ';' before '}'
19>.\sql_locale.cc(670) : error C2059: syntax error : '}'
19>.\sql_locale.cc(672) : error C2146: syntax error : missing '}' before identifier '嗒多珌嗒曕珝嗒班嗒距'
19>.\sql_locale.cc(672) : error C2146: syntax error : missing ';' before identifier '嗒多珌嗒曕珝嗒班嗒距'
19>.\sql_locale.cc(672) : error C2143: syntax error : missing ';' before 'string'
19>.\sql_locale.cc(672) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
19>.\sql_locale.cc(672) : error C2001: newline in constant
19>.\sql_locale.cc(674) : error C2143: syntax error : missing ';' before '{'
19>.\sql_locale.cc(674) : error C2447: '{' : missing function header (old-style formal list?)
19>.\sql_locale.cc(682) : error C2065: 'my_locale_ab_day_names_gu_IN' : undeclared identifier
19>.\sql_locale.cc(682) : error C2070: ''unknown-type'': illegal sizeof operand
19>.\sql_locale.cc(682) : error C2440: 'initializing' : cannot convert from 'const char [1]' to 'unsigned int'
19> There is no context in which this conversion is possible
19>.\sql_locale.cc(732) : error C2146: syntax error : missing '}' before identifier '啶呧お啷嵿ぐ啷囙げ'
19>.\sql_locale.cc(732) : error C2146: syntax error : missing ';' before identifier '啶呧お啷嵿ぐ啷囙げ'
19>.\sql_locale.cc(732) : error C2143: syntax error : missing ';' before 'string'
19>.\sql_locale.cc(732) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
19>.\sql_locale.cc(732) : error C2001: newline in constant
19>.\sql_locale.cc(734) : error C2143: syntax error : missing ';' before '{'
19>.\sql_locale.cc(734) : error C2447: '{' : missing function header (old-style formal list?)
19>.\sql_locale.cc(734) : error C2001: newline in constant
19>.\sql_locale.cc(928) : error C2001: newline in constant
19>.\sql_locale.cc(930) : error C2001: newline in constant
19>.\sql_locale.cc(960) : error C2001: newline in constant
19>.\sql_locale.cc(962) : error C2001: newline in constant
19>.\sql_locale.cc(1176) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
19>.\sql_locale.cc(1570) : error C2001: newline in constant
19>.\sql_locale.cc(1600) : error C2001: newline in constant
19>.\sql_locale.cc(1602) : error C2001: newline in constant
19>.\sql_locale.cc(1628) : error C2001: newline in constant
19>.\sql_locale.cc(1632) : error C2001: newline in constant
19>.\sql_locale.cc(1754) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
19>.\sql_locale.cc(1788) : error C2001: newline in constant
19>.\sql_locale.cc(1820) : error C2001: newline in constant
19>.\sql_locale.cc(2831) : fatal error C1004: unexpected end-of-file found
19>rpl_injector.cc
19>rpl_utility.cc
19>partition_info.cc
19>events.cc
19>sql_tablespace.cc
19>event_db_repository.cc
19>event_queue.cc
19>event_data_objects.cc
19>event_scheduler.cc
19>sql_binlog.cc
19>Generating Code...
19>Compiling...
19>rpl_tblmap.cc
19>item_xmlfunc.cc
19>unireg.cc
19>uniques.cc
19>tztime.cc
19>time.cc
19>thr_malloc.cc
19>table.cc
19>strfunc.cc
19>sql_view.cc
19>sql_update.cc
19>sql_union.cc
19>sql_udf.cc
19>sql_trigger.cc
19>.\sql_trigger.cc(1891) : warning C4390: ';' : empty controlled statement found; is this the intent?
19>sql_test.cc
19>sql_table.cc
19>sql_string.cc
19>sql_show.cc
19>sql_select.cc
19>sql_repl.cc
19>Generating Code...
19>Compiling...
19>sql_rename.cc
19>sql_prepare.cc
19>sql_plugin.cc
19>sql_partition.cc
19>sql_parse.cc
19>sql_map.cc
19>sql_manager.cc
19>sql_load.cc
19>sql_list.cc
19>sql_lex.cc
19>sql_insert.cc
19>sql_help.cc
19>sql_handler.cc
19>sql_error.cc
19>sql_do.cc
19>sql_derived.cc
19>sql_delete.cc
19>sql_db.cc
19>sql_cursor.cc
19>sql_crypt.cc
19>Generating Code...
19>Compiling...
19>sql_client.cc
19>sql_class.cc
19>sql_cache.cc
19>sql_base.cc
19>sql_analyse.cc
19>sql_acl.cc
19>spatial.cc
19>sp_rcontext.cc
19>sp_pcontext.cc
19>sp_head.cc
19>sp_cache.cc
19>sp.cc
19>slave.cc
19>set_var.cc
19>rpl_filter.cc
19>repl_failsafe.cc
19>records.cc
19>protocol.cc
19>procedure.cc
19>parse_file.cc
19>Generating Code...
19>Compiling...
19>opt_sum.cc
19>opt_range.cc
19>nt_servc.cc
19>net_serv.cc
19>mysqld.cc
19>my_decimal.cc
19>mf_iocache.cc
19>rpl_record_old.cc
19>log_event_old.cc
19>rpl_reporting.cc
19>rpl_record.cc
19>log_event.cc
19>lock.cc
19>log.cc
19>key.cc
19>item_timefunc.cc
19>item_sum.cc
19>item_subselect.cc
19>item_strfunc.cc
19>item_row.cc
19>Generating Code...
19>Compiling...
19>item_geofunc.cc
19>item_func.cc
19>item_create.cc
19>item_cmpfunc.cc
19>item_buff.cc
19>item.cc
19>init.cc
19>hostname.cc
19>hash_filo.cc
19>handler.cc
19>ha_partition.cc
19>gstream.cc
19>filesort.cc
19>field_conv.cc
19>field.cc
19>discover.cc
19>des_key_file.cc
19>derror.cc
19>Generating Code...
19>Log in “file://d:\JavaEE\LAMP\mysql-5.1.39\sql\sql.dir\Debug\BuildLog.htm”
19>sql - 42 errors,4 warnings
20>------ Finish: Project: mysqld, Config: Debug Win32 ------
20>Running...
20>cmake_dummy.cc
20>pre-link event...
20>Executing dumpbin @dumpsymbols.rsp
20>Linking...
20>LINK : fatal error LNK1181: Can't open the input file “Debug\sql.lib”
20>Log in “file://d:\JavaEE\LAMP\mysql-5.1.39\sql\mysqld.dir\Debug\BuildLog.htm”
20>mysqld - 1 errors,0 warnings
========== : 18 Successs, 2 Fails, 1 News, 0 Skipped ==========

Project ha_innodb_plugin, ha_archive, ha_example can't be build successfully. The error: LINK : fatal error LNK1104:  Can't open the input file“..\..\sql\Debug\mysqld.lib”

SOS, any ideas. Following the README in mysql-5.1.39/win, and i change some versions of MySQL, like 5.1.49, 5.1.50, but the error is the same. Thanks.

How to repeat:
Downs MySQL source code 5.1.39/49, following source_dir/win/README to bulid it
[19 Sep 2010 9:26] Peter Laursen
Just a comment from an outsider:

the error: 
"warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss"

.. tells users locale is 'simplified chines' (http://en.wikipedia.org/wiki/Code_page_936).  I assume that on a Western locale this problem would not occur.

-- 'unicode format' in Windows/Microsoft terminlogy is 'UTF16 with little endian byte order' ('Windows unicode' and not UTF8).  I don't know is Visual Studio handles UFT8-files, but if not the only safe solution seems to bee to distribute the source for Windows with all files encoded with 'Windows Unicode'.

.. or maybe a few files have some non-ASCII characters causing this.  It may work on any locale if such characters can be avoided.
[20 Sep 2010 14:34] Vladislav Vaintroub
Duplicate of Bug#36281