On Apr 11, 2004, at 7:12 AM, Alberto Manuel Brandao Simoes wrote:

If it's still failing, then something else is going on.
If it is, then there's one more thing to try:
1) cd into icu/source/data/out/build
2) Execute this (which will create ja.res in /var/tmp if it succeeds):
../../../tools/genrb/genrb -k -s ../../locales -i . -d /var/tmp ja.txt
If that succeeds, then the above should have also works. If it fails, then send me the message it outputs, which should be similar to your above-reported output, but with a little additional diagnostic information.

Yes, fails!


[EMAIL PROTECTED] build]$ ../../../tools/genrb/genrb -k -s ../../locales -i . -d /var/tmp ja.txt
../../locales/ja.txt:17: warning: %Collation could not be constructed from CollationElements - check context!
../../locales/ja.txt:15: parse error. Stopped parsing with U_INVALID_FORMAT_ERROR
couldn't parse the file ja.txt. Error:U_INVALID_FORMAT_ERROR

Hmm, strange indeed. Looking at the ICU code, it appears that it's not finding a data file it needs at this stage (the error message is misleading)--I wonder if something failed to create it, but 'make' continued on?


What ".icu" files are in that directory (icu/source/data/out/build) for you? I have these (and I'd expect you'd have "l" rather than "b" in your prefix [little v. big endian]):

% ls *.icu
icudt26b_cnvalias.icu   icudt26b_tz.icu         icudt26b_unames.icu
icudt26b_invuca.icu     icudt26b_ucadata.icu    icudt26b_unorm.icu
icudt26b_pnames.icu     icudt26b_uidna.icu      icudt26b_uprops.icu

I believe it's the "*_ucadata.icu" that it's failing to find.

So if that file's missing for you, we need to look for an earlier failure in the build. If it's there, then we can do some gdb investigating. Starting from the same directory as before:

% gdb ../../../tools/genrb/genrb

(gdb) b udata_pathiter_init

(gdb) r -k -s ../../locales -i . -d /var/tmp ja.txt

Breakpoint 1, udata_pathiter_init (iter=0xbfffe3d0, path=0x900140 ".", item=0xcdf68 "icudt26b", suffix=0xbfffebf8 "_cnvalias.icu", doCheckLastFour=0 '\0') at udata.c:357
357 if(path == NULL) {
(gdb) c
Continuing.


Breakpoint 1, udata_pathiter_init (iter=0xbfffdb80, path=0x900140 ".", item=0xcdf68 "icudt26b", suffix=0xbfffe3a8 "_ucadata.icu", doCheckLastFour=0 '\0') at udata.c:357
357 if(path == NULL) {


The second time you hit the breakpoint should be the one we are interested in--the "item" and "suffix" parameters should concatenate to that file name from above, and "path" is where it's going to look for the file. So if the file is there, and that path is correct, then it must be failing somewhere else, so I'll be back to being confused.

JEff



Reply via email to