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

Reply via email to