Description:
Unable to build on Windows, line endings in mysql-source\strings\uca9-dump.cc is not working as intended.
The extension of the file is .txt and git has a feature to auto-convert line-endings on checkout.
Build crashes in:
418 // All these Japanese Han characters should be 3 bytes.
419 if ((ja_length % 3)) {
420 fprintf(stderr, "Wrong UTF8 Han character bytes.\n");
421 return 1;
422 }
comp_err.dir\Debug\comp_err.obj
strings.lib(ctype-uca.obj) : error LNK2001: unresolved external symbol "unsigned short * * ja_han_pages" (?ja_han_pages@@3PAPEAGA) [C:\ade\mysql-build\utilities\comp_err.vcxproj]
strings.lib(ctype-uca.obj) : error LNK2001: unresolved external symbol "int const MIN_JA_HAN_PAGE" (?MIN_JA_HAN_PAGE@@3HB) [C:\ade\mysql-build\utilities\comp_err.vcxproj]
strings.lib(ctype-uca.obj) : error LNK2001: unresolved external symbol "int const MAX_JA_HAN_PAGE" (?MAX_JA_HAN_PAGE@@3HB) [C:\ade\mysql-build\utilities\comp_err.vcxproj]
C:\ade\mysql-build\runtime_output_directory\Debug\comp_err.exe : fatal error LNK1120: 3 unresolved externals [C:\ade\mysql-build\utilities\comp_err.vcxproj]
Done Building Project "C:\ade\mysql-build\utilities\comp_err.vcxproj" (default targets) -- FAILED.
Done Building Project "C:\ade\mysql-build\utilities\GenError.vcxproj" (default targets) -- FAILED.
Build FAILED.
"C:\ade\mysql-build\utilities\GenError.vcxproj" (default target) (1) ->
"C:\ade\mysql-build\utilities\comp_err.vcxproj" (default target) (3) ->
(Link target) ->
strings.lib(ctype-uca.obj) : error LNK2001: unresolved external symbol "unsigned short * * ja_han_pages" (?ja_han_pages@@3PAPEAGA) [C:\ade\mysql-build\utilities\comp_err.vcxproj
]
strings.lib(ctype-uca.obj) : error LNK2001: unresolved external symbol "int const MIN_JA_HAN_PAGE" (?MIN_JA_HAN_PAGE@@3HB) [C:\ade\mysql-build\utilities\comp_err.vcxproj]
strings.lib(ctype-uca.obj) : error LNK2001: unresolved external symbol "int const MAX_JA_HAN_PAGE" (?MAX_JA_HAN_PAGE@@3HB) [C:\ade\mysql-build\utilities\comp_err.vcxproj]
C:\ade\mysql-build\runtime_output_directory\Debug\comp_err.exe : fatal error LNK1120: 3 unresolved externals [C:\ade\mysql-build\utilities\comp_err.vcxproj]
0 Warning(s)
4 Error(s)
Time Elapsed 00:00:03.12
"C:\ade\mysql-build\utilities\comp_err.vcxproj" (default target) (1) ->
(Link target) ->
strings.lib(ctype-uca.obj) : error LNK2001: unresolved external symbol "unsigned short * * ja_han_pages" (?ja_han_pag
es@@3PAPEAGA) [C:\ade\mysql-build\utilities\comp_err.vcxproj]
strings.lib(ctype-uca.obj) : error LNK2001: unresolved external symbol "int const MIN_JA_HAN_PAGE" (?MIN_JA_HAN_PAGE@
@3HB) [C:\ade\mysql-build\utilities\comp_err.vcxproj]
strings.lib(ctype-uca.obj) : error LNK2001: unresolved external symbol "int const MAX_JA_HAN_PAGE" (?MAX_JA_HAN_PAGE@
@3HB) [C:\ade\mysql-build\utilities\comp_err.vcxproj]
C:\ade\mysql-build\runtime_output_directory\Debug\comp_err.exe : fatal error LNK1120: 3 unresolved externals [C:\ade\
mysql-build\utilities\comp_err.vcxproj]
6 Warning(s)
4 Error(s)
Time Elapsed 00:00:29.26
How to repeat:
On Windows:
C:\ade\mysql-build>C:/ade/mysql-build/runtime_output_directory/Debug/uca9dump.exe ja --in_file=C:/ade/mysql-source/strings/lang_data/ja_hans.txt --out_file=C:/ade/mysql-build/strings/uca900_ja_tbls.cc
Wrong UTF8 Han character bytes.
Suggested fix:
uca9-dump.cc
int dump_ja_hans
if (ja_u8_bytes[ja_length - 1] == '\r') {
ja_u8_bytes[ja_length - 1] = '\0';
ja_length--;
}