Ashley Zinyk wrote:
David Bertoni <[EMAIL PROTECTED]> wrote on 12/22/2007 11:18:24 AM:
Ashley Zinyk wrote:
/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-
suse_91_zOS_64-gcc_333/icu/sbin/genccode
-n xalanMsg_.. -d ../../../nls/icu ../../../nls/icu/xalanMsg_en_US.res
-f
.._.._.._nls_icu_xalanMsg_en_US_res
generating C code for ../../../nls/icu/xalanMsg_en_US.res
I think that the arguments passed to genccode and gcc, like
.._.._.._nls_icu_xalanMsg_en_US_res, are wrong, but I'm not sure what's
causing the problem.
I think that's a result of the call to pkgdata, since it calls gencode.
Yes, I narrowed it down to that call (to pkgdata). I can't figure out,
however, how pkgdata calls genccode, or where it generates the arguments.
Googling "pkgdata" and "genccode" doesn't help much. In previous builds,
the arguments looked like this:
"xml4c5_6_3-suse_91_zOS_64-gcc_333/icu/sbin/genccode -d ../../../nls/icu
../../../nls/icu/xalanMsg_en_US.res". There weren't any -n or -f
arguments. If I knew where those arguments were being generated, I would
have a place to start.
I assume it calls it by spawning a process using the system() call, but I
don't know for sure. Why don't you take a look at the source code for the
ICU if you're curious.
If you're using any version of ICU later than 3.2.1, the Makefiles for
using ICU message bundles are broken. What version are you using?
I'm trying to use ICU version 3.8. In what way are the Makefiles broken,
and which ones? What can I do to update them to use ICU 3.8?
We were relying (unknowingly) on an option that was deprecated in ICU 3.2
and has since disappeared. If you take a look at a build on Windows using
3.2.1, you'll see the following:
2>------ Build started: Project: XalanMsgLibICU, Configuration: Debug Win32
------
2>Processing XLIFF file
2>Processing ICU resource file
2>Processing file "..\..\..\..\..\Build\Win32\VC8\Debug\Nls\Include\en_US.txt"
2>autodetected encoding UTF-16LE
2> parsing table (null) at line 20
2> resource xalanc at line 21
2> array xalanc at line 21
2>Creating resource list
2>Building resource DLL
2>Microsoft (R) Program Maintenance Utility Version 8.00.50727.762
2>Copyright (C) Microsoft Corporation. All rights reserved.
2> "V:\icu\bin\gencmn.exe" -d "..\..\..\..\..\Build\Win32\VC8\Debug" -E -n
"XalanMessages_1_10" 0 C:\DOCUME~1\dbertoni\LOCALS~1\Temp\nm3C4.tmp
2>generating object code for
..\..\..\..\..\Build\Win32\VC8\Debug\XalanMessages_1_10.dat
2> link.exe /nologo
/out:"..\..\..\..\..\Build\Win32\VC8\Debug\XalanMessages_1_10.DLL" /DLL
/NOENTRY /base:"0x4ad00000"
/implib:"..\..\..\..\..\Build\Win32\VC8\Debug\XalanMessages_1_10.lib"
"..\..\..\..\..\Build\Win32\VC8\Debug\Utils\XalanMsgLibICU\XalanMessages_1_10_dat.obj"
2> Creating library
..\..\..\..\..\Build\Win32\VC8\Debug\XalanMessages_1_10.lib and object
..\..\..\..\..\Build\Win32\VC8\Debug\XalanMessages_1_10.exp
2># ICUROOT is V:\icu
2># Reading
..\..\..\..\..\Build\Win32\VC8\Debug\Utils\XalanMsgLibICU\XalanMessages_1_10_en_US.lst..
2># Output .DLL file:
..\..\..\..\..\Build\Win32\VC8\Debug\XalanMessages_1_10.DLL
2># Output file: ..\..\..\..\..\Build\Win32\VC8\Debug\XalanMessages_1_10.dat
2>nmake -f
"..\..\..\..\..\Build\Win32\VC8\Debug\Utils\XalanMsgLibICU\XalanMessages_1_10_dll.mak"
2>Warning: You are using the deprecated -O option
2> You can fix this warning by installing pkgdata, gencmn and genccode
2> into the same directory and not specifying the -O option to pkgdata.
2>Warning: Found path 'XalanMessages_1_10_' in file name. Assuming
compatibility (-E) mode.
It's this last warning that indicates the problem. if you look at the
intermediate file XalanMessages_1_10_en_US.lst, you'll see this:
..\..\..\..\..\Build\Win32\VC8\Debug\Utils\XalanMsgLibICU\XalanMessages_1_10_en_US.res
That's what's causing the warning, and turning out "compatibility mode."
In newer versions of the ICU, the _entire_ path becomes the name of the
resource. You can see that if you take a look at the messages shared
library using a hex editor.
I think we need to modify the build process so we no longer use the full
relative path in XalanMessages_1_10_en_US.lst, although I'm not sure of
that. At any rate, it needs some investigation, but I just don't have time
to do it right now.
If you really need to get this fixed, I suggest you read the ICU user guide
to see if there's more information about naming resources.
Dave