Ashley Zinyk wrote:
I'm trying to build Xalan (the latest code from SVN), and although it works
on most of my platforms, the build fails on SuSE Linux 9.1 (64-bit zOS).
I'm using GCC 3.3.3.
The error message looks like this:
../../lib/libxalanMsg.so: undefined reference to
`xalanMsg__________nls_icu_xalanMsg_en_US_res' (that's ten underscores in a
row)
Hi Ashley,
I think that's a result of the call to pkgdata, since it calls gencode.
Much earlier in the build, we have this:
g++ -DLINUX -fPIC -m64 -DXALAN_ICU_MSG_LOADER
-Wl,-rpath,/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-suse_91_zOS_64-gcc_333/icu/lib
\
-lm -lpthread
-L/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-suse_91_zOS_64-gcc_333/lib
-lxml4c ../../../../obj/MsgFileOutputStream.o
../../../../obj/ICUResHandler.o ../../../../obj/InMemHandler.o
../../../../obj/MsgCreator.o ../../../../obj/NLSHandler.o
../../../../obj/SAX2Handler.o -o ../../../../bin/MsgCreator
gmake[3]: Leaving directory
`/home/torxslt/xsltbts_client/working/20071219205227/2187/xslt4c1_11_0-suse_91_zOS_64-gcc_333/c/src/xalanc/Utils/MsgCreator'
../../../bin/MsgCreator
/home/torxslt/xsltbts_client/working/20071219205227/2187/xml-xalan/c/src/xalanc/NLS/en_US/XalanMsg_en_US.xlf
-TYPE icu -LOCALE en_US
mv LocalMsgIndex.hpp ../../../nls/include
mv en_US.txt ../../../nls/icu
/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-suse_91_zOS_64-gcc_333/icu/bin/genrb
-p xalanMsg -d ../../../nls/icu -i ../../../nls/icu
../../../nls/icu/en_US.txt
echo ../../../nls/icu/xalanMsg_en_US.res >
../../../nls/icu/res-file-list.txt
/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-suse_91_zOS_64-gcc_333/icu/bin/pkgdata
--name xalanMsg -T ../../../nls/icu -v -O
/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-suse_91_zOS_64-gcc_333/icu/lib/icu/Makefile.inc
--mode dll -d ../../../lib ../../../nls/icu/res-file-list.txt -M
"prefix=/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-suse_91_zOS_64-gcc_333/icu
TARGET=libxalanMsg.so.111.0"
gmake[3]: Entering directory
`/home/torxslt/xsltbts_client/working/20071219205227/2187/xslt4c1_11_0-suse_91_zOS_64-gcc_333/c/src/xalanc/Utils'
cat ../../../nls/icu/res-file-list.txt > ../../../nls/icu/xalanMsg_dll.lst
LD_LIBRARY_PATH=/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-suse_91_zOS_64-gcc_333/icu/lib:$LD_LIBRARY_PATH
/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-suse_91_zOS_64-gcc_333/icu/sbin/gencmn
-e xalanMsg -n xalanMsg -S -s . -d ../../../nls/icu 0
../../../nls/icu/xalanMsg_dll.lst
gcc -w -O -m64 -D_REENTRANT
-I/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-suse_91_zOS_64-gcc_333/icu/include
-c -DPIC -fPIC -o ../../../nls/icu/xalanMsg_dat.o
../../../nls/icu/xalanMsg_dat.c
LD_LIBRARY_PATH=/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-suse_91_zOS_64-gcc_333/icu/lib:$LD_LIBRARY_PATH
/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
gcc -DHAVE_CONFIG_H -D_REENTRANT
-I/home/torxslt/xsltbts_client/working/20071219205227/2187/xml4c5_7_0-suse_91_zOS_64-gcc_333/icu/include
-w -O -m64 -shared -o ../../../lib/libxalanMsg.so.111.0
../../../nls/icu/xalanMsg_dat.o
../../../nls/icu/.._.._.._nls_icu_xalanMsg_en_US_res.o -Wl,-Bsymbolic
ls -l ../../../lib/libxalanMsg.so.111.0
-rwxr-xr-x 1 torxslt users 29000 2007-12-19 20:53
../../../lib/libxalanMsg.so.111.0
gmake[3]: Leaving directory
`/home/torxslt/xsltbts_client/working/20071219205227/2187/xslt4c1_11_0-suse_91_zOS_64-gcc_333/c/src/xalanc/Utils'
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.
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? Also,
it looks like you've either modified the Makefile, or there are some
differences for the zOS version.
I've been trying to get a patch together to fix the ICU issues, but I
haven't had time so far. I may get a chance next week, but you might want
to investigate yourself, if this is a high priority.
Dave