Uploaded image for project: 'Xerces-C++'
  1. Xerces-C++
  2. XERCESC-1265

Cannot build Mach-O library using CW Pro 9 and BSD C headers

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 2.5.0
    • 3.0.1
    • Build
    • None
    • Mac OS X 10.3. Codewarrior 9.3

    Description

      It should be possible to build Xerces as a static Mach-O library using the BSD C headers instead of the MSL C Headers. With the latest source code distribution, this is not possible. It can, however, be done by making two small changes to the source.

      The changes I made may not be the best way to accomplish this goal. My interest is in touching as few files as possible to get the Mach-O libary to build. Other parties may be interested in doing it right.

      Here is the diff to MacOSDefs.hpp:

      [tpatton@TPatton_Mac TMXL]\$ p4 diff /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp#4 /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp#3
      /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp#4 - file(s) up-to-date.
      ==== //depot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp#3 - /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp ====
      77a78,109
      > //-- Creo Change 8/24/04
      > // [ tpatton ]
      > //
      > // Code in <xercesc/util/platforms/MacOS/> expects some function and types
      > // to be in the std:: namespace, which is where the MSL C headers put them.
      > // However, the BSD header put them in global namesapce. If we're using
      > // the BSD C headers, move them into std:: namespace.
      >
      > #if defined( _MACH_ ) && ! _MSL_USING_MW_C_HEADERS
      >
      > #include <cstring>
      >
      > namespace std
      > {
      > typedef unsigned long size_t;
      > using ::memcpy;
      > using ::memmove;
      > using ::strlen;
      > using ::wint_t;
      >
      > //-- towupper() is a macro defined in <wctype.h>
      >
      > static wint_t towupper(wint_t wc )
      >

      { > return __toupper( wc ); > }

      > }
      >
      > #endif
      >
      > //-- END Creo change.
      >
      [tpatton@TPatton_Mac TMXL]\$

      and here is the diff to MacOSUnicodeConverter.cpp:

      [tpatton@TPatton_Mac TMXL]\$ p4 diff /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp#3
      /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp - file(s) not opened on this client.
      ==== //depot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp#3 - /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp ====
      73c73,80
      < #include <cwctype>

      >
      > //-- Creo Change 8/24/04
      > // [ tpatton ]
      > #if _MSL_USING_MW_C_HEADERS
      > #include <cwctype>
      > #endif
      > //
      > // END Creo Change
      [tpatton@TPatton_Mac TMXL]\$

      Attachments

        Activity

          People

            Unassigned Unassigned
            tobiaspatton Tobias Patton
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: