You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by "Lacoste, Dana (TSG Software San Diego)" <da...@hp.com> on 2009/08/14 01:48:09 UTC

Build Error with root_res[_dummy]

Hi!  I'm trying to get 3.0.1 (latest from http://xerces.apache.org/xerces-c/download.cgi) to build and I'm seeing something odd:

I run:
../src/configure
--enable-transcoder-icu
--enable-msgloader-icu
--disable-network
--with-icu=${ICU_PATH}i686-suse-linux2.6-gcc3.3

(This is a SLES 9 system, and ICU isn't installed: it's built and "make install"'ed into ${ICU_PATH} but I need to add ${ICU_PATH}/lib to my LD_LIBRARY_PATH to get the contents of ${ICU_PATH}/bin and sbin to work, if that makes sense)

Anyways, everything seems to work fine through configure, but when I run gmake afterwards I get the following:

...(much output)...
generating assembly code for xercesc_messages_3_0.dat
gcc -g -O2   -c   -o xercesc_messages_3_0_dat.o ./xercesc_messages_3_0_dat.s
rm -rf ./xercesc_messages_3_0_dat.s
ar rv libxercesc_messages_3_0.a xercesc_messages_3_0_dat.o
ar: creating libxercesc_messages_3_0.a
a - xercesc_messages_3_0_dat.o
ranlib libxercesc_messages_3_0.a
gmake[4]: Leaving directory `/home/dlacoste/XercesC/3.0.1/build/src/xercesc/util/MsgLoaders/ICU/resources'
g++: root_res_dummy.cpp: No such file or directory
g++: no input files
gmake[3]: *** [xercesc_messages.lo] Error 1
gmake[3]: Leaving directory `/home/dlacoste/XercesC/3.0.1/build/src/xercesc/util/MsgLoaders/ICU/resources'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/home/dlacoste/XercesC/3.0.1/build/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/home/dlacoste/XercesC/3.0.1/build'
gmake: *** [all] Error 2

OK, it' can't "find" root_res_dummy.cpp.  It's in the ../src directory (in the tree where configure is, not where configure was run from, if that makes sense), but it's not anywhere else.  I don't really know what it's for (it's basically empty anyways) so I'll just ignore it, if possible :)

So I run gmake again.  Well, the dummy really wasn't necessary: it's not a dependency, so the build continues fine and dandy.  Ummmm, unexpected, but I'll live with it.... until much much later:

gmake[2]: *** No rule to make target `xercesc/util/MsgLoaders/ICU/resources/root_res.lo', needed by `libxerces-c.la'.  Stop.
gmake[2]: Leaving directory `/home/dlacoste/XercesC/3.0.1/build/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/home/dlacoste/XercesC/3.0.1/build
gmake: *** [all] Error 2

OK, so it DOES need the file.

But I'm not patient, see?  The root_res_dummy is empty, so if root_res.o isn't there, the build should still work, shouldn't it?
So I edit src/Makefile and remove the dependency on root_res.lo

And continue with my gmake, gmake install, etc. and everything seems fine.

Am I missing something obvious?  I don't think this is how it was supposed to work, but I can't figure out what isn't working right: the code that compiles root_res_dummy and renames it into root_res.o doesn't appear to be working, but I don't understand it well enough to know _why_ :)

Thanks for your time!

Dana Lacoste

PS: this exact behavior is happening for me on SLES9, HP-UX 11.23, Solaris 9, and AIX 5.2 (I have to build for all platforms)

Re: Build Error with root_res[_dummy]

Posted by Alberto Massari <am...@datadirect.com>.
Hi Dana,
the ICU message loader is a tricky part, and can work only if you build 
Xerces from within the source tree (i.e. don't do an out-of-tree build)

Alberto

Lacoste, Dana (TSG Software San Diego) wrote:
>
> Hi!  I'm trying to get 3.0.1 (latest from 
> http://xerces.apache.org/xerces-c/download.cgi) to build and I'm 
> seeing something odd:
>
>  
>
> I run:
>
> ../src/configure
>
> --enable-transcoder-icu
>
> --enable-msgloader-icu
>
> --disable-network
>
> --with-icu=${ICU_PATH}i686-suse-linux2.6-gcc3.3
>
>  
>
> (This is a SLES 9 system, and ICU isn't installed: it's built and 
> "make install"'ed into ${ICU_PATH} but I need to add ${ICU_PATH}/lib 
> to my LD_LIBRARY_PATH to get the contents of ${ICU_PATH}/bin and sbin 
> to work, if that makes sense)
>
>  
>
> Anyways, everything seems to work fine through configure, but when I 
> run gmake afterwards I get the following:
>
>  
>
> ...(much output)...
>
> generating assembly code for xercesc_messages_3_0.dat
>
> gcc -g -O2   -c   -o xercesc_messages_3_0_dat.o 
> ./xercesc_messages_3_0_dat.s
>
> rm -rf ./xercesc_messages_3_0_dat.s
>
> ar rv libxercesc_messages_3_0.a xercesc_messages_3_0_dat.o
>
> ar: creating libxercesc_messages_3_0.a
>
> a - xercesc_messages_3_0_dat.o
>
> ranlib libxercesc_messages_3_0.a
>
> gmake[4]: Leaving directory 
> `/home/dlacoste/XercesC/3.0.1/build/src/xercesc/util/MsgLoaders/ICU/resources'
>
> g++: root_res_dummy.cpp: No such file or directory
>
> g++: no input files
>
> gmake[3]: *** [xercesc_messages.lo] Error 1
>
> gmake[3]: Leaving directory 
> `/home/dlacoste/XercesC/3.0.1/build/src/xercesc/util/MsgLoaders/ICU/resources'
>
> gmake[2]: *** [all-recursive] Error 1
>
> gmake[2]: Leaving directory `/home/dlacoste/XercesC/3.0.1/build/src'
>
> gmake[1]: *** [all-recursive] Error 1
>
> gmake[1]: Leaving directory `/home/dlacoste/XercesC/3.0.1/build'
>
> gmake: *** [all] Error 2
>
>  
>
> OK, it' can't "find" root_res_dummy.cpp.  It's in the ../src directory 
> (in the tree where configure is, not where configure was run from, if 
> that makes sense), but it's not anywhere else.  I don't really know 
> what it's for (it's basically empty anyways) so I'll just ignore it, 
> if possible :)
>
>  
>
> So I run gmake again.  Well, the dummy really wasn't necessary: it's 
> not a dependency, so the build continues fine and dandy.  Ummmm, 
> unexpected, but I'll live with it.... until much much later:
>
>  
>
> gmake[2]: *** No rule to make target 
> `xercesc/util/MsgLoaders/ICU/resources/root_res.lo', needed by 
> `libxerces-c.la'.  Stop.
>
> gmake[2]: Leaving directory `/home/dlacoste/XercesC/3.0.1/build/src'
>
> gmake[1]: *** [all-recursive] Error 1
>
> gmake[1]: Leaving directory `/home/dlacoste/XercesC/3.0.1/build
>
> gmake: *** [all] Error 2
>
>  
>
> OK, so it DOES need the file.
>
>  
>
> But I'm not patient, see?  The root_res_dummy is empty, so if 
> root_res.o isn't there, the build should still work, shouldn't it?
>
> So I edit src/Makefile and remove the dependency on root_res.lo
>
>  
>
> And continue with my gmake, gmake install, etc. and everything seems fine.
>
>  
>
> Am I missing something obvious?  I don't think this is how it was 
> supposed to work, but I can't figure out what isn't working right: the 
> code that compiles root_res_dummy and renames it into root_res.o 
> doesn't appear to be working, but I don't understand it well enough to 
> know _/why/_ J
>
>  
>
> Thanks for your time!
>
>  
>
> Dana Lacoste
>
>  
>
> PS: this exact behavior is happening for me on SLES9, HP-UX 11.23, 
> Solaris 9, and AIX 5.2 (I have to build for all platforms)
>


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org