Archived

This forum has been archived. Please start a new discussion on GitHub.

misc build problems on Suse 8.1

changes to Ice when building under Linux

Validator failed to compile due to missing include for XMLException.
This was when building against Xercesc-2.2.

src/slice2xsd/Validate.cpp
Added #include <xercesc/util/XMLException.hpp>
Also added XERCES_CPP_NAMESPACE_USE after 'using namespace std;'

src/IceSSL/ConfigParser.h
Added XERCES_CPP_NAMESPACE_USE after last #include
Note: it is not good to do this in a header file!

src/IceSSL/ConfigParserErrorReporter.h
Ditto

src/IceXML/StreamI.cpp
Also added XERCES_CPP_NAMESPACE_USE after last 'using namespace ...;'

src/IceStorm/Admin.cpp
Also added XERCES_CPP_NAMESPACE_USE after last 'using namespace ...;'

src/IceStorm/WeightedGraph.cpp
Also added XERCES_CPP_NAMESPACE_USE after last 'using namespace ...;'

src/IceStorm/Makefile
src/IcePack/Makefile
demo/Freeze/phonebook/Makefile
demo/Freeze/library/Makefile
There is a dependency on the curses library in the build of
icestormadmin, icepackadmin, phonebook/{client,server},
library/{client,server}.
curses does not seem to exist in Suse 8.1. I changed the Makefiles to
refer to ncurses (which is open source curses so should be portable,
even though it creates a dependency).

src/IcePack/ComponentBuilder.h
Added XERCES_CPP_NAMESPACE_USE after last #include
Note: it is not good to do this in a header file!

src/IcePack/IcePackNode.cpp
Also added XERCES_CPP_NAMESPACE_USE after last 'using namespace ...;'

src/IcePack/IcePackRegistry.cpp
Also added XERCES_CPP_NAMESPACE_USE after last 'using namespace ...;'

src/XMLTransform/ErrorReporter.h
Added XERCES_CPP_NAMESPACE_USE after last #include
Note: it is not good to do this in a header file!

include/XMLTransform/XMLTransform.h
Added XERCES_CPP_NAMESPACE_USE after last #include
Note: it is not good to do this in a header file!

include/Ice/Outgoing.h
The enum at line 81 has a trailing comma. This is legal (sigh)
but you get a warning when you compile with -Wall --pedantic.
I changed this so that there is a leading comma instead (except
on the first enumeration).

test/IceUtil/inputUtil/Client.cpp
lines 81,88,95 have a long long constant. When compiling with -Wall --pedantic
it issues a warning that this constant will not fit into an unsigned long.
I added 'LL' to the constant to make this warning go away.
The warning about 'long long' being forbidden by ISO C89 is unavoidable.

test/Ice/operations/{Twoways, TwowaysAMI}.cpp
same as above but on lines 519, 523, 532, 533
and lines 619, 626, 627-629, 958, 962 respectively.

(the warning when compiling demo/Freeze/PhoneBookI.cpp, that the 'll'
printf length is non-standard, is unavoidable).

Regards

Andrew M.

Comments

  • Thanks a lot for the detailed feedback!

    We decided to install all kinds of different Linux distributions at ZeroC. So expect the pain of using a non-RedHat distribution to go away soon.