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

Reply via email to