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)
