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 Jay Berkenbilt <ej...@ql.org> on 2008/04/09 04:41:02 UTC

xerces-c 3.0.0.b1 failing to build on most debian platforms

I haven't had a chance to look into this, but with the exception of
i386, amd64, and alpha, xerces-c 3.0.0.b1 has failed to build on all
of the debian platforms.

The failure looks like this:

(cd .libs && rm -f libxerces-c.so && ln -s libxerces-c-3.0.so libxerces-c.so)
ar cru .libs/libxerces-c.a  xercesc/util/Base64.o xercesc/util/BinFileInputStream.o ... (long list of .o files omitted) xercesc/util/MutexManagers/PosixMutexMgr.o xercesc/util/FileManagers/PosixFileMgr.o stricmp.o strnicmp.o xercesc/util/MsgLoaders/ICU/resources/xercesc_messages_3_0_dat.o
ar: xercesc/util/MsgLoaders/ICU/resources/xercesc_messages_3_0_dat.o: No such file or directory

For the full build logs, you can follow this link.  Perhaps this has
been fixed in the current svn.  I haven't checked.

http://experimental.debian.net/build.php?pkg=xerces-c

-- 
Jay Berkenbilt <ej...@ql.org>

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


Re: xerces-c 3.0.0.b1 failing to build on most debian platforms

Posted by Jay Berkenbilt <ej...@ql.org>.
Boris Kolpackov <bo...@codesynthesis.com> wrote:

> Hi David, Jay,
>
> David Bertoni <db...@apache.org> writes:
>
>> Note that in the AMD64 case, the output file is
>> xercesc_messages_3_0_dat.o, while for s390, it's
>> xercesc_messages_3_0_dat.ao. That would explain why the object file
>> wasn't found.
>>
>> Can you look at the makefiles the ICU generated on these two platforms
>> to see if there are any differences?
>
> It appears that ICU can generate two types of makefiles: one that goes
> through assembler (which uses .o for non-PIC object files) and one that
> goes through C (which uses .ao). Since we are trying to guess which file
> it is going to generate (we are not using the resulting library, only the
> object file) and I didn't know about the second type of makefiles until
> now, things broke. I've committed the fix which should account for this
> variance.
>
> Jay, will you be able to pull the source code from SVN or do you want
> me to make a snapshot?

I can pull from SVN.  It probably won't be until the weekend though
since I'll have to figure out which parts to make into a patch for
upload and then build the new package.  Anyway, I'm sure I won't have
any trouble creating a correct patch from svn.  Doing this will be
better than using a snapshot....it will just be an update 3.0.0.b1.
Anyway, thanks for the fix -- I'll let you know if there's a problem.

--Jay

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


Re: xerces-c 3.0.0.b1 failing to build on most debian platforms

Posted by Boris Kolpackov <bo...@codesynthesis.com>.
Hi David, Jay,

David Bertoni <db...@apache.org> writes:

> Note that in the AMD64 case, the output file is
> xercesc_messages_3_0_dat.o, while for s390, it's
> xercesc_messages_3_0_dat.ao. That would explain why the object file
> wasn't found.
>
> Can you look at the makefiles the ICU generated on these two platforms
> to see if there are any differences?

It appears that ICU can generate two types of makefiles: one that goes
through assembler (which uses .o for non-PIC object files) and one that
goes through C (which uses .ao). Since we are trying to guess which file
it is going to generate (we are not using the resulting library, only the
object file) and I didn't know about the second type of makefiles until
now, things broke. I've committed the fix which should account for this
variance.

Jay, will you be able to pull the source code from SVN or do you want
me to make a snapshot?

Thanks,
Boris

--
Boris Kolpackov, Code Synthesis Tools
Open source XML data binding for C++:   http://codesynthesis.com/products/xsd
Mobile/embedded validating XML parsing: http://codesynthesis.com/products/xsde

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


Re: xerces-c 3.0.0.b1 failing to build on most debian platforms

Posted by David Bertoni <db...@apache.org>.
Jay Berkenbilt wrote:
> I haven't had a chance to look into this, but with the exception of
> i386, amd64, and alpha, xerces-c 3.0.0.b1 has failed to build on all
> of the debian platforms.
> 
> The failure looks like this:
> 
> (cd .libs && rm -f libxerces-c.so && ln -s libxerces-c-3.0.so libxerces-c.so)
> ar cru .libs/libxerces-c.a  xercesc/util/Base64.o xercesc/util/BinFileInputStream.o ... (long list of .o files omitted) xercesc/util/MutexManagers/PosixMutexMgr.o xercesc/util/FileManagers/PosixFileMgr.o stricmp.o strnicmp.o xercesc/util/MsgLoaders/ICU/resources/xercesc_messages_3_0_dat.o
> ar: xercesc/util/MsgLoaders/ICU/resources/xercesc_messages_3_0_dat.o: No such file or directory
> 
> For the full build logs, you can follow this link.  Perhaps this has
> been fixed in the current svn.  I haven't checked.
> 
> http://experimental.debian.net/build.php?pkg=xerces-c
This is weird.  I looked at the ouput for AMD64, and here are the 
relevant lines in the log for created the archive with that object file:

LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH  /usr/sbin/genccode -a gcc -n 
xercesc_messages_3_0 -e xercesc_messages_3_0 -d . xercesc_messages_3_0.dat
generating assembly code for xercesc_messages_3_0.dat
cc -g -Wall -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

and here are the corresponding lines for the s390 build:

LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH  /usr/sbin/gencmn -e 
xercesc_messages_3_0 -n xercesc_messages_3_0 -S -s . -d . 0 
./xercesc_messages_3_0_static.lst
cc -g -Wall -O2     -c -o xercesc_messages_3_0_dat.ao 
xercesc_messages_3_0_dat.c
LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH  /usr/sbin/genccode -n 
xercesc_messages_3_0 -d . root.res
generating C code for root.res
ar rv libxercesc_messages_3_0.a xercesc_messages_3_0_dat.ao root_res.ao
ar: creating libxercesc_messages_3_0.a
a - xercesc_messages_3_0_dat.ao
a - root_res.ao
ranlib libxercesc_messages_3_0.a

Note that in the AMD64 case, the output file is 
xercesc_messages_3_0_dat.o, while for s390, it's 
xercesc_messages_3_0_dat.ao. That would explain why the object file 
wasn't found.

The ICU's utilities are generating the makefiles, and that code is 
common between the successful and failing platforms, so I don't think 
this is an ICU bug.

Can you look at the makefiles the ICU generated on these two platforms 
to see if there are any differences?

Dave

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