Expat, Release 2.0.0
Open Watcom OS/2-eCS and NT/2000/XP
SUMMARY
=======
This is the first effort of adding Open Watcom (www.openwatcom.org) build
capability to the expat project. The included changes and makefiles are
verified to work with Open Watcom 1.5, however, it might build with
version 1.4.
HISTORY
=======
June 2006 - First successful compile with Open Watcom 1.5
July 2006 - Submit as patch
BUILDING
========
The makefile system is based on a multi-platform system provided by
Mat Nieuwenhoven. In the watcom directory is the main makefile which
accepts the following options:
os2 - OS/2-ECS Release
nt - WinNT/2000/XP Release
linux - Linux Release
os2d - OS/2-ECS Debug
ntd - WinNT/2000/XP Debug
linuxd - Linux Debug
full - all release
fulld - all debug
fullall - all release and debug
cleanall - remove all
clean - remove build keep release
xmlts.zip - download test suite and unzip
The options for the OW build of expat are set in watcom\buildopts.inc.
The following expat options are available:
XML_DTD (Note 1)
Include support for using and reporting DTD-based content. If this
is defined, default attribute values from an external DTD subset are
reported and attribute value normalization occurs based on the type of
attributes defined in the external subset. Without this, Expat has a
smaller memory footprint and can be faster, but will not load external
entities or process conditional sections. This does not affect the set
of functions available in the API.
XML_NS (Note 1)
When defined, support for the Namespaces in XML specification is included.
XML_UNICODE (Note 2)
When defined, character data reported to the application is encoded
in UTF-16 using wide characters of the type XML_Char. This is implied
if XML_UNICODE_WCHAR_T is defined.
XML_UNICODE_WCHAR_T (Note 2)
If defined, causes the XML_Char character type to be defined using the
wchar_t type; otherwise, unsigned short is used. Defining this implies
XML_UNICODE.
XML_LARGE_SIZE (Note 3)
(OS/2 and Windows) [optional] If defined, causes the XML_Size and XML_Index
integer types to be at least 64 bits in size. This is intended to support
processing of very large input streams, where the return values of
XML_GetCurrentByteIndex, XML_GetCurrentLineNumber and
XML_GetCurrentColumnNumber could overflow. It may not be supported by all
compilers, and is turned off by default.
XML_CONTEXT_BYTES (Note 1)
The number of input bytes of markup context which the parser will ensure are
available for reporting via XML_GetInputContext. This is normally set to 1024,
and must be set to a positive interger. If this is not defined, the input
context will not be available and XML_GetInputContext will always report NULL.
Without this, Expat has a smaller memory footprint and can be faster.
XML_MIN_SIZE (Note 3)
(OS/2 and Windows) [optional] Makes a parser that's smaller but that,
in general, will run slower.
Note 1: Define by default in watcomconfig.h - XML_CONTEXT_BYTES define as 1024.
Note 2: Not yet supported
Note 3: Not defined by default, but supported by Open Watcom
XML_TEST_SUITE
==============
While you are welcome to run the tests, however, it will require downloading and
setting up additional unix type utilitiy/tools on OS/2-ECS and Windows platforms.
I have added the target xmlts.zip to the makefile which will use wget to dowload
and unzip to setup the test files. The tests/xmltest.sh file will have to be
modified, changing XMLWF= to the location of the xmlwwf.exe file.
The ouput from both OS2-ECS and WinNT/2000/XP builds is listed below. I have
built expat 2.0.0 on a Linux gcc system and verified that the output is the same
result for OS/2-ECS and Windows platforms. So, I feel confident that the Open Watcom
build is working as well as the other compiler builds.
The test results should be:
Output differs: ibm/valid/P02/ibm02v01.xml
Output differs: ibm/valid/P28/ibm28v02.xml
Output differs: ibm/valid/P29/ibm29v01.xml
Output differs: ibm/valid/P29/ibm29v02.xml
Output differs: ibm/valid/P54/ibm54v01.xml
Output differs: ibm/valid/P56/ibm56v08.xml
Output differs: ibm/valid/P57/ibm57v01.xml
Output differs: ibm/valid/P58/ibm58v01.xml
Output differs: ibm/valid/P58/ibm58v02.xml
Output differs: ibm/valid/P70/ibm70v01.xml
Output differs: ibm/valid/P82/ibm82v01.xml
E:/expat-2.0.0/tests/XML-Test-Suite/out/ibm/invalid/P29//*.xml: No such file or directory
ibm49i02.dtd: No such file or directory
In ibm/invalid/P49/: ibm49i02.xml:4:1: error in processing external entity reference
Output differs: ibm/invalid/P58/ibm58i01.xml
Output differs: ibm/invalid/P58/ibm58i02.xml
Output differs: xmltest/valid/sa/069.xml
Output differs: xmltest/valid/sa/076.xml
Output differs: xmltest/valid/sa/090.xml
Output differs: xmltest/valid/sa/091.xml
Output differs: sun/valid/not-sa01.xml
Output differs: sun/valid/not-sa02.xml
Output differs: sun/valid/not-sa03.xml
Output differs: sun/valid/not-sa04.xml
Output differs: sun/valid/notation01.xml
Output differs: sun/valid/sa02.xml
Output differs: sun/valid/sa03.xml
Output differs: sun/valid/sa04.xml
Output differs: sun/valid/sa05.xml
Expected well-formed: ibm/not-wf/misc/432gewf.xml
Expected well-formed: xmltest/not-wf/not-sa/005.xml
Expected well-formed: sun/not-wf/uri01.xml
Expected well-formed: oasis/p06fail1.xml
Expected well-formed: oasis/p08fail1.xml
Expected well-formed: oasis/p08fail2.xml
Passed: 1776
Failed: 34