DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=27707>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=27707

patches required to build Xalan-C++ on BeOS R5

           Summary: patches required to build Xalan-C++ on BeOS R5
           Product: XalanC
           Version: 1.7
          Platform: PC
        OS/Version: BeOS
            Status: NEW
          Severity: Enhancement
          Priority: Other
         Component: XalanC
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


I have created a preliminary set of patches that enable version 1.7.0 to build
on beos.  I have run some of the tests and some succeed.

The BeOS threading model is significantly different from pthreads, so the 
threading used is none.

-------------------- begin patch file ---------------------------
diff -ru xml-xalan/c/Makefile.incl.in 
xalan-c-bin1_7_0_beos/xml-xalan/c/Makefile.incl.in
--- xml-xalan/c/Makefile.incl.in        Thu Jan  8 22:04:52 2004
+++ xalan-c-bin1_7_0_beos/xml-xalan/c/Makefile.incl.in  Thu Feb 19 20:10:29 
2004
@@ -471,9 +471,28 @@
 
 endif
 
+#=============== BeOS SPECIFIC OPTIONS =========================
+
+ifeq ($(PLATFORM), BEOS)
+
+  SUPPORTED = TRUE
+  ALLLIBS = ${LIBS} -lbe -L${HOME}/config/lib -L/boot/beos/system/lib
+  SHLIBSUFFIX=.so
+  PLATFORM_COMPILE_OPTIONS = -fpic -instances=static -D${PLATFORM} -D_REENTRANT
+  EXTRA_LINK_OPTIONS= -lstdc++.r4
+  CC1 = $(CXX) $(CXXFLAGS) $(PLATFORM_COMPILE_OPTIONS)
+  CC4 = $(CC) $(CXXFLAGS) $(PLATFORM_COMPILE_OPTIONS)
+  MAKE_SHARED = ${CC} -nostart -Xlinker -soname=$(SO_NAME)
+  LINK = g++ -D${PLATFORM} -fpic
+    
+  export LD_LIBRARY_PATH := $(XERCESCROOT)/lib:$(ICUROOT)/lib:
$(LD_LIBRARY_PATH)
+  MAKE_SHARED_LOC= ${CC} -nostart -Xlinker -soname=$(LOC_SONAME)
+
+endif
+
 ifndef SUPPORTED
   nogood:
-         @echo Linux, Solaris, AIX, Compaq Tru64, OS/390, MacOSX, and HP-UX are the 
only platforms supported.
+         @echo Linux, Solaris, AIX, Compaq Tru64, OS/390, MacOSX, HP-UX and BeOS 
are the only platforms supported.
 endif
 
 
diff -ru xml-xalan/c/configure xalan-c-bin1_7_0_beos/xml-xalan/c/configure
--- xml-xalan/c/configure       Mon Dec 29 01:26:53 2003
+++ xalan-c-bin1_7_0_beos/xml-xalan/c/configure Mon Feb 16 22:11:17 2004
@@ -2690,6 +2690,7 @@
         *-apple-darwin*)       platform=MACOSX ;;
         *-*-os400*)     platform=OS400 ;;
         *-*-OS400*)     platform=OS400 ;;
+        *-*-beos*)             platform=BEOS ;;
         *)              platform=UNKNOWN ;;
 esac
 
diff -ru xml-xalan/c/configure.in xalan-c-bin1_7_0_beos/xml-xalan/c/configure.in
--- xml-xalan/c/configure.in    Mon Dec 29 01:26:53 2003
+++ xalan-c-bin1_7_0_beos/xml-xalan/c/configure.in      Sun Mar 14 23:32:42 2004
@@ -59,6 +59,7 @@
         *-apple-darwin*)       platform=MACOSX ;;
         *-*-os400*)     platform=OS400 ;;
         *-*-OS400*)     platform=OS400 ;;
+        *-*-beos*)        platform=BEOS ;;
         *)              platform=UNKNOWN ;;
 esac
 
diff -ru xml-xalan/c/runConfigure xalan-c-bin1_7_0_beos/xml-xalan/c/runConfigure
--- xml-xalan/c/runConfigure    Tue Jan  6 03:41:25 2004
+++ xalan-c-bin1_7_0_beos/xml-xalan/c/runConfigure      Mon Feb 16 21:46:54 2004
@@ -301,7 +301,7 @@
 #
 
 case $platform in
-   aix | linux | freebsd | netbsd | solaris | hp-10 | hp-11 | irix | tru64 | 
macosx | os400)
+   aix | linux | freebsd | netbsd | solaris | hp-10 | hp-11 | irix | tru64 | 
macosx | os400 | beos)
        # platform has been recognized
        ;;
    *)
@@ -477,6 +477,8 @@
     threadingLibs="-lcma"
     threadingDefines="-DXML_USE_DCE"
 elif test $platform = "os400"; then
+    threadingLibs=""
+elif test $platform = "beos"; then
     threadingLibs=""
 fi
 
Only in xalan-c-bin1_7_0_beos/xml-xalan/c/src/xalanc/Include: BeOSDefinitions.
hpp
diff -ru xml-xalan/c/src/xalanc/Include/PlatformDefinitions.hpp 
xalan-c-bin1_7_0_beos/xml-xalan/c/src/xalanc/Include/PlatformDefinitions.hpp
--- xml-xalan/c/src/xalanc/Include/PlatformDefinitions.hpp      Tue Jan  6 03:41:
28 2004
+++ xalan-c-bin1_7_0_beos/xml-xalan/c/src/xalanc/Include/PlatformDefinitions.
hpp     Sun Mar 14 20:27:39 2004
@@ -59,6 +59,8 @@
 
 #if defined(_MSC_VER)
 #include "VCPPDefinitions.hpp"
+#elif defined(__BEOS__)
+#include "BeOSDefinitions.hpp"
 #elif defined(__GNUC__)
 #include "GCCDefinitions.hpp"
 #elif defined(_AIX)
diff -ru xml-xalan/c/src/xalanc/Include/STLHelper.hpp 
xalan-c-bin1_7_0_beos/xml-xalan/c/src/xalanc/Include/STLHelper.hpp
--- xml-xalan/c/src/xalanc/Include/STLHelper.hpp        Tue Jan  6 03:41:28 2004
+++ xalan-c-bin1_7_0_beos/xml-xalan/c/src/xalanc/Include/STLHelper.hpp  Sun 
Mar 14 20:25:25 2004
@@ -362,7 +362,7 @@
 };
 
 
-
+#ifndef __BEOS__
 template<class CollectionType, class DeleteFunctorType>
 class CollectionDeleteGuard
 {
@@ -405,7 +405,7 @@
        // Data members...
        CollectionType*         m_collection;
 };
-
+#endif
 
 
 template<class T>
diff -ru xml-xalan/c/src/xalanc/PlatformSupport/AttributeListImpl.cpp 
xalan-c-bin1_7_0_beos/xml-xalan/c/src/xalanc/PlatformSupport/AttributeListImpl.
cpp
--- xml-xalan/c/src/xalanc/PlatformSupport/AttributeListImpl.cpp        Tue Jan  6 
03:41:28 2004
+++ 
xalan-c-bin1_7_0_beos/xml-xalan/c/src/xalanc/PlatformSupport/AttributeListImpl.
cpp     Sun Mar 14 20:24:32 2004
@@ -152,11 +152,11 @@
                {
                        // Reserve the appropriate capacity right now...
                        tempVector.reserve(theLength);
-
+#ifndef __BEOS__
                        // This will delete everything in tempVector when we're done...
                        CollectionDeleteGuard<AttributeVectorType,
                                                                  
DeleteFunctor<AttributeVectorEntry> 
>               theGuard(tempVector);
-
+#endif
                        typedef AttributeVectorType::const_iterator             
const_iterator;
 
                        const const_iterator    theEnd = 
theRHS.m_AttributeVector.end();
@@ -179,6 +179,11 @@
                        // OK, we're safe, so swap the contents of the
                        // containers.  This is guaranteed not to throw.
                        m_AttributeVector.swap(tempVector);
+#ifdef __BEOS__        
+                       for_each(tempVector.begin(),
+                                        tempVector.end(),
+                                        DeleteFunctor<AttributeVectorEntry>());
+#endif
                }
 
                assert(getLength() == theLength);
diff -ru xml-xalan/c/src/xalanc/PlatformSupport/AttributesImpl.cpp 
xalan-c-bin1_7_0_beos/xml-xalan/c/src/xalanc/PlatformSupport/AttributesImpl.cpp
--- xml-xalan/c/src/xalanc/PlatformSupport/AttributesImpl.cpp   Tue Jan  6 03:
41:28 2004
+++ xalan-c-bin1_7_0_beos/xml-xalan/c/src/xalanc/PlatformSupport/AttributesImpl.
cpp     Sun Mar 14 20:24:03 2004
@@ -152,11 +152,11 @@
                {
                        // Reserve the appropriate capacity right now...
                        tempVector.reserve(theLength);
-
+#ifndef __BEOS__       
                        // This will delete everything in tempVector when we're done...
                        CollectionDeleteGuard<AttributesVectorType,
                                                                  
DeleteFunctor<AttributeVectorEntryExtended> 
>               theGuard(tempVector);
-
+#endif
                        typedef AttributesVectorType::const_iterator            
const_iterator;
 
                        const const_iterator    theEnd = 
theRHS.m_attributesVector.end();
@@ -181,6 +181,11 @@
                        // OK, we're safe, so swap the contents of the
                        // containers.  This is guaranteed not to throw.
                        m_attributesVector.swap(tempVector);
+#ifdef __BEOS__        
+                       for_each(tempVector.begin(),
+                                        tempVector.end(),
+                                        DeleteFunctor<AttributeVectorEntry>());
+#endif
                }
 
                assert(getLength() == theLength);
diff -ru xml-xalan/c/src/xalanc/PlatformSupport/DirectoryEnumerator.hpp 
xalan-c-bin1_7_0_beos/xml-xalan/c/src/xalanc/PlatformSupport/DirectoryEnumerator.
hpp
--- xml-xalan/c/src/xalanc/PlatformSupport/DirectoryEnumerator.hpp      Tue Jan  
6 03:41:28 2004
+++ 
xalan-c-bin1_7_0_beos/xml-xalan/c/src/xalanc/PlatformSupport/DirectoryEnumerator.
hpp     Sun Mar 14 20:37:02 2004
@@ -178,7 +178,7 @@
         */
        bool isDirectory() const
        {
-#if defined(AIX) || defined(HPUX) || defined(SOLARIS) || defined(OS390) || 
defined(OS400) || defined(TRU64)
+#if defined(AIX) || defined(BEOS) || defined(HPUX) || defined(SOLARIS) || 
defined(OS390) || defined(OS400) || defined(TRU64)
                return false;
 #else          
                if (d_type == DT_DIR || d_type == DT_UNKNOWN)

Reply via email to