RESOLVED FIXED 23086
REGRESSION(r39540/r39541): Windows build fails due to ICU errors
https://bugs.webkit.org/show_bug.cgi?id=23086
Summary REGRESSION(r39540/r39541): Windows build fails due to ICU errors
Brent Fulgham
Reported 2009-01-02 21:50:50 PST
Windows builds now fail with the following errors: 4>TextIterator.cpp 4>..\editing\TextIterator.cpp(1193) : error C3861: 'usearch_open_3_6': identifier not found 4>..\editing\TextIterator.cpp(1236) : error C3861: 'usearch_getCollator_3_6': identifier not found 4>..\editing\TextIterator.cpp(1238) : error C2065: 'UCollationStrength' : undeclared identifier 4>..\editing\TextIterator.cpp(1238) : error C2146: syntax error : missing ';' before identifier 'strength' 4>..\editing\TextIterator.cpp(1238) : error C2065: 'strength' : undeclared identifier 4>..\editing\TextIterator.cpp(1238) : error C2065: 'UCOL_TERTIARY' : undeclared identifier 4>..\editing\TextIterator.cpp(1238) : error C2065: 'UCOL_PRIMARY' : undeclared identifier 4>..\editing\TextIterator.cpp(1239) : error C3861: 'ucol_getStrength_3_6': identifier not found 4>..\editing\TextIterator.cpp(1240) : error C3861: 'ucol_setStrength_3_6': identifier not found 4>..\editing\TextIterator.cpp(1241) : error C3861: 'usearch_reset_3_6': identifier not found 4>..\editing\TextIterator.cpp(1245) : error C3861: 'usearch_setPattern_3_6': identifier not found 4>..\editing\TextIterator.cpp(1291) : error C3861: 'usearch_setText_3_6': identifier not found 4>..\editing\TextIterator.cpp(1294) : error C3861: 'usearch_first_3_6': identifier not found 4>..\editing\TextIterator.cpp(1297) : error C2065: 'USEARCH_DONE' : undeclared identifier 4>..\editing\TextIterator.cpp(1315) : error C3861: 'usearch_getMatchedLength_3_6': identifier not found The link libraries provided in the 'update-webkit' download do not seem to export these symbols.
Attachments
Mark Rowe (bdash)
Comment 1 2009-01-02 22:30:23 PST
I think the problem here is that WebKitAuxiliaryLibrary.zip contains out of date headers and link libraries for ICU. The headers have UCONFIG_NO_COLLATION defaulting to 1, which I believe matches the version of ICU that shipped with Safari 3.0. The version of ICU that shipped with Safari 3.2 (and perhaps even Safari 3.1) has UCONFIG_NO_COLLATION defaulting to 0 (that is, it has collation support). We just need to get the appropriate versions of the ICU headers and link libraries into WebKitAuxiliaryLibrary.zip.
Brent Fulgham
Comment 2 2009-01-02 22:45:13 PST
(In reply to comment #1) > I think the problem here is that WebKitAuxiliaryLibrary.zip contains out of > date headers and link libraries for ICU. I can confirm that changing the setting of UCONFIG_NO_COLLATION to 0 does allow TextIterator.cpp to compile without errors or warnings. Of course, the overall link still fails due to missing symbols.
Brent Fulgham
Comment 3 2009-01-03 16:48:54 PST
WORKAROUND: For any Windows users, until Apple corrects the libraries distributed with update-webkit, you can grab the two Windows link libraries you will need from here: http://idisk.mac.com/bfulgham-Public/icu_36_libs.zip. 1. Please the two files (icuuc.lib, icuin.lib) in %WEBKITLIBRARIES%/win/lib. 2. Please note that you will also need to change the header file "include/unicode/uconfig.h": change the line: #define UCONFIG_NO_COLLATION 1 to: #define UCONFIG_NO_COLLATION 0
Darin Adler
Comment 4 2009-01-04 21:41:41 PST
http://trac.webkit.org/changeset/39594 Since this is a build fix I checked it in without waiting for review. Please let me know if this doesn't work.
Note You need to log in before you can comment on or make changes to this bug.