>>Before submitting the changes, how about just giving everyone a discussion
>>of what was required to make it work. This would give us a chance to
>>comment on what you've done and, if we feel something needs to be changed
>>before accepting it, that you can make those changes and test them out
>>before submitting.
Sorry for the lack of info in the original post. I was none too sure what the
protocol was and didn't want to bombard the list with a very lengthy (and
probably unwanted) initial posting. (Takes a deep breath, here goes ...)
The Tru64 port is currently being hosted on an AlphaServer 4100 5/400 running
Digital Unix/Compaq Tru64 V4.0f (Rev 1229) with 2048Mb of physical memory.
The latest version of Xerces-C was used (1.1.0).
The build environment consists of :-
Compaq C++ V6.2-024 for Digital Unix V40.f
GNU Make V3.77
GNU autoconf V2.13
GNU m4 V1.4
1) Compiler Support
Created src/util/Compilers/DECCXXDefs.hpp and DECCXXDefs.cpp
Standard typedefs for XMLCh et al, plus implementation of stricmp &
strnicmp.
2) Platform Support
Created src/util/Platform/Tru64/Tru64Defs.hpp and Tru64PlatformUtils.cpp
Defines ENDIANMODE_LITTLE (Tru64Defs.hpp) and the required Platform
utilities. I based these on the Solaris version; the only major change
required was to base XMLPlatformUtils::getCurrentMillis () on the use
of clock_gettime (CLOCK_REALTIME, &) rather than ftime which requires
_XOPEN_SOURCE_EXTENDED to be defined and thus messes up thread support.
3) Overall XML and Autosense Support
Modified src/util/XML4CDefs.hpp
Includes Tru64Defs.hpp and DECCXXDefs.hpp if XML_TRU64 is defined.
Modified src/util/AutoSense.hpp
Defines XML_TRU64 if __alpha and __osf__ are defined.
Defines XML_DECCXX is XML_TRU64 and __DECCXX are defined.
4) Makefile Changes
Modified src/util/Platforms/Makefile.in
Added macro definitions for SUBMODULE, CPP_PUBHEADERS and CPP_OBJECTS
if the PLATFORM macro is set to TRU64
Modified src/util/Compilers/Makefile.in
Added DECCXXDefs.hpp to CPP_PUBHEADERS macro
Added macro definition for CPP_OBJECTS if CXX macro is set to cxx
and the PLATFORM macro is set to TRU64.
Modified src/Makefile.incl
Added compiler options if the PLATFORM macro is set to TRU64. The main
additional compiler switch required was to create a (hidden) template
instantiation directory ($XERCESCROOT/.cxx_repository using the -ptr
switch. Other macro definition are as for Solaris.
Modified src/configure.in
Added trapping of *-*-osf* and setting the PLATFORM macro to TRU64
when checking for the host type.
Modified src/runConfigure
Added support for -p tru64 and -x cxx.
5) Building
With the above changes in place I built the system as follows
$ make distclean
$ autoconf
$ ./runConfigure -ptru64 -ccc -xcxx -minmem -nfileonly -tnative
$ make
$ make install
6) Samples
Modified samples/runConfigure, configure.in and Makefile.incl.
As discussed above.
>>On the subject of the mixed signed/unsigned stuff, yes those are being
>>removed as time goes by. I think that most of them are gone in the current
>>code base. And, BTW, what code base have you been working against? We'd
>>definitely want any submitted changes to be against the most recent code
>>base.
For the code base stuff see right at the top of this post.
These are the source/header files that DEC CXX got stroppy about.
Signed/unsigned integer conversions and pointless comparisons
IConvTransService.cpp
XMLScanner2.cpp
XMLValidator.cpp
DOMString.cpp
NodeVector.cpp
TextImpl.cpp
CMNode.hpp
CMLeaf.hpp
DFAContentModel.cpp
Unreachable statements:
XMLReader.cpp
XMLScanner2.cpp
NamedNodeMapImpl.cpp
DTDValidator2.cpp
Let me know what you think.
All the best
Gary
--
Gary Gale Mail: [EMAIL PROTECTED]
UK Server Group Phone: +44 (0) 171 542 8814
Factiva, A Dow Jones & Reuters Company Web: www.factiva.com