Bug 23086
Summary: | REGRESSION(r39540/r39541): Windows build fails due to ICU errors | ||
---|---|---|---|
Product: | WebKit | Reporter: | Brent Fulgham <bfulgham> |
Component: | WebKit Misc. | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | ap, aroben, darin, dev+webkit, mrowe, sfalken |
Priority: | P2 | Keywords: | Regression |
Version: | 528+ (Nightly build) | ||
Hardware: | PC | ||
OS: | Windows XP |
Brent Fulgham
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 | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Mark Rowe (bdash)
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
(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
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
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.