You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by bu...@apache.org on 2002/09/10 20:25:28 UTC
DO NOT REPLY [Bug 12490] New: -
patches required to build Xerces-C++ on BeOS R5
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12490>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12490
patches required to build Xerces-C++ on BeOS R5
Summary: patches required to build Xerces-C++ on BeOS R5
Product: Xerces-C++
Version: 2.1.0
Platform: PC
OS/Version: BeOS
Status: NEW
Severity: Enhancement
Priority: Other
Component: Build
AssignedTo: xerces-c-dev@xml.apache.org
ReportedBy: shatty@myrealbox.com
I have created a preliminary set of patches that enable version 2.1.0 to build
on beos. I have run some of the tests and some succeed. There are still a
number of outstanding issues which I will try to address if these patches are
accepted.
For example: BeOS is lacking wctype.h support, so I wrote 3 patch functions to
cover the 3 functions that are used from wctype.h. However, a full
implementation of these functions is desirable. Maybe someone can point me to a
suitably licensed (apache, MIT) implementation, or otherwise I will try to
find/implement it myself.
The BeOS threading model is significantly different from pthreads, so it will
require some work to get multithreading working. Also the BeOS networking stack
is a bit finicky and I haven't had a chance yet to test whether the parser will
work with networking.
Andrew Bachmann
-------------------- begin patch file ---------------------------
diff -ur xerces-c-src2_1_0-clean/samples/Makefile.incl
xerces-c-src2_1_0-beos/samples/Makefile.incl
--- xerces-c-src2_1_0-clean/samples/Makefile.incl Tue Aug 27 00:24:24 2002
+++ xerces-c-src2_1_0-beos/samples/Makefile.incl Thu Sep 5 15:45:22 2002
@@ -179,6 +179,16 @@
EXTRA_LINK_OPTIONS=-q OPTION='*DUPPROC *DUPVAR' ${EXTRA_LIBS}
endif
+#=============== BEOS SPECIFIC OPTIONS =========================
+ifeq (${PLATFORM}, BEOS)
+CMP= -c ${CXXFLAGS}
+CC= ${COMPILER} -c -D${PLATFORM} -DAPP_NO_THREADS -fpic
+LINK = ${COMPILER} -D${PLATFORM} -fpic ${LDFLAGS}
+PLATFORM_LIB_LINK_OPTIONS=-L/boot/develop/lib/x86 -L/boot/home/config/lib
+EXTRA_LINK_OPTIONS=-lbe ${EXTRA_LIBS}
+SHLIBSUFFIX=.so
+endif
+
#=============== LINUX SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, LINUX)
CMP= -c ${CXXFLAGS}
diff -ur xerces-c-src2_1_0-clean/samples/configure.in
xerces-c-src2_1_0-beos/samples/configure.in
--- xerces-c-src2_1_0-clean/samples/configure.in Tue Aug 27 00:24:24 2002
+++ xerces-c-src2_1_0-beos/samples/configure.in Thu Sep 5 15:10:32 2002
@@ -36,6 +36,7 @@
*-*-UnixWare*) platform=UNIXWARE ;;
*-*-*unixware*) platform=UNIXWARE ;;
*-*-sysv5uw7*) platform=UNIXWARE ;;
+ *-*-beos*) platform=BEOS ;;
*-*-linux*) platform=LINUX ;;
*-*-freebsd*) platform=FREEBSD ;;
*-*-irix*) platform=IRIX ;;
diff -ur xerces-c-src2_1_0-clean/samples/runConfigure
xerces-c-src2_1_0-beos/samples/runConfigure
--- xerces-c-src2_1_0-clean/samples/runConfigure Tue Aug 27 00:24:26 2002
+++ xerces-c-src2_1_0-beos/samples/runConfigure Thu Sep 5 15:12:45 2002
@@ -82,7 +82,7 @@
echo "runConfigure: Helper script to run \"configure\" for one of the
supported platforms"
echo "Usage: runConfigure \"options\""
echo " where options may be any of the following:"
- echo " -p <platform> (accepts 'aix', 'linux', 'freebsd', 'solaris',
+ echo " -p <platform> (accepts 'aix', 'beos', 'linux', 'freebsd',
'solaris',
'hp-10', 'hp-11', 'openserver', 'unixware', 'os400', 'irix',
'ptx', 'tru64', 'macosx', 'cygwin')"
echo " -c <C compiler name> (e.g. gcc, cc, xlc_r, icc or ecc)"
@@ -196,7 +196,7 @@
# Now check if the options are correct or not, bail out if incorrect
#
case $platform in
- aix | openserver | unixware | linux | freebsd | solaris | hp-10 | hp-11 |
os400 | irix | ptx | tru64 | macosx | cygwin)
+ aix | openserver | unixware | beos | linux | freebsd | solaris | hp-10 |
hp-11 | os400 | irix | ptx | tru64 | macosx | cygwin)
# platform has been recognized
;;
*)
@@ -342,7 +342,7 @@
#
#
-# aix | linux | hp-11 | solaris |
+# aix | beos | linux | hp-11 | solaris |
# hp-10 | freebsd | irix | openserver | unixware | os400 | ptx | tru64 | macosx
#
if test $bitsToBuild = 64; then
diff -ur xerces-c-src2_1_0-clean/scripts/packageBinaries.pl
xerces-c-src2_1_0-beos/scripts/packageBinaries.pl
--- xerces-c-src2_1_0-clean/scripts/packageBinaries.pl Tue Aug 27 00:24:26 2002
+++ xerces-c-src2_1_0-beos/scripts/packageBinaries.pl Thu Sep 5 15:17:48 2002
@@ -223,6 +223,7 @@
util\\Platforms
util\\Platforms\\AIX
util\\Platforms\\HPUX
+ util\\Platforms\\BeOS
util\\Platforms\\Linux
util\\Platforms\\MacOS
util\\Platforms\\OS2
@@ -522,6 +523,7 @@
util/Platforms
util/Platforms/AIX
util/Platforms/HPUX
+ util/Platforms/BeOS
util/Platforms/Linux
util/Platforms/MacOS
util/Platforms/OS2
@@ -674,7 +676,7 @@
#
# UNIX builds happen here ...
#
-if ( ($platform =~ m/AIX/i) || ($platform =~ m/HP-UX/i) ||
+if ( ($platform =~ m/AIX/i) || ($platform =~ m/HP-UX/i) || ($platform =~
m/BeOS/i) ||
($platform =~ m/SunOS/i) || ($platform =~ m/Linux/i) || ($platform =~
m/ptx/i) ) {
# Echo the current PATH to see what compiler it picks up
@@ -731,6 +733,13 @@
psystem ("echo SHLIB_PATH=$ENV{'SHLIB_PATH'}");
}
+ if ($platform =~ m/BeOS/i) {
+ $platform = "beos";
+ if ($opt_c eq "") {$opt_c = "gcc";}
+ if ($opt_x eq "") {$opt_x = "g++";}
+ $icuCompileFlags = 'CC=gcc CXX=g++ CXXFLAGS="-w -O" CFLAGS="-w -O"';
+ psystem ("echo LIBRARY_PATH=$ENV{'LIBRARY_PATH'}");
+ }
if ($platform =~ m/Linux/i) {
$platform = "linux";
if ($opt_c eq "") {$opt_c = "gcc";}
diff -ur xerces-c-src2_1_0-clean/src/xercesc/Makefile.incl
xerces-c-src2_1_0-beos/src/xercesc/Makefile.incl
--- xerces-c-src2_1_0-clean/src/xercesc/Makefile.incl Tue Aug 27 00:24:32 2002
+++ xerces-c-src2_1_0-beos/src/xercesc/Makefile.incl Thu Sep 5 17:19:37 2002
@@ -283,6 +283,22 @@
endif
+#=============== BEOS SPECIFIC OPTIONS =========================
+ifeq (${PLATFORM}, BEOS)
+PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -DAPP_NO_THREADS
+MAKE_SHARED = ${CXX} -D${PLATFORM} -nostart -fPIC ${LDFLAGS}
+MAKE_SHARED_C = ${CC} -D${PLATFORM} -nostart -fPIC ${LDFLAGS}
+ifeq (${TRANSCODER}, ICU)
+ ALLLIBS = ${LIBS} -L/boot/develop/lib/x86 -L/boot/home/config/lib -lbe
-licuuc -licudata
+else
+ ALLLIBS = ${LIBS} -L/boot/develop/lib/x86 -L/boot/home/config/lib -lbe
+endif
+EXTRA_LINK_OPTIONS = -Xlinker -Map -Xlinker $(XML_OBJ)/${SO_NAME}.map
+SHLIBSUFFIX=.so
+## Compiler switch to embed a library name
+LD_SONAME = -Wl,-soname,${SO_NAME}
+endif
+
#=============== LINUX SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, LINUX)
PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -D_REENTRANT
diff -ur xerces-c-src2_1_0-clean/src/xercesc/configure.in
xerces-c-src2_1_0-beos/src/xercesc/configure.in
--- xerces-c-src2_1_0-clean/src/xercesc/configure.in Tue Aug 27 00:24:26 2002
+++ xerces-c-src2_1_0-beos/src/xercesc/configure.in Thu Sep 5 15:31:37 2002
@@ -32,6 +32,7 @@
*-*-sysv5*) platform=UNIXWARE ;;
*-*-UnixWare*) platform=UNIXWARE ;;
*-*-unixware*) platform=UNIXWARE ;;
+ *-*-beos*) platform=BEOS ;;
*-*-linux*) platform=LINUX ;;
*-*-freebsd*) platform=FREEBSD ;;
*-*-irix*) platform=IRIX ;;
@@ -120,6 +121,7 @@
util/Platforms/Makefile \
util/Platforms/Solaris/Makefile \
util/Platforms/AIX/Makefile \
+util/Platforms/BeOS/Makefile \
util/Platforms/Linux/Makefile \
util/Platforms/FreeBSD/Makefile \
util/Platforms/HPUX/Makefile \
diff -ur xerces-c-src2_1_0-clean/src/xercesc/runConfigure
xerces-c-src2_1_0-beos/src/xercesc/runConfigure
--- xerces-c-src2_1_0-clean/src/xercesc/runConfigure Tue Aug 27 00:24:32 2002
+++ xerces-c-src2_1_0-beos/src/xercesc/runConfigure Thu Sep 5 16:43:24 2002
@@ -84,7 +84,7 @@
echo "runConfigure: Helper script to run \"configure\" for one of the
supported platforms"
echo "Usage: runConfigure \"options\""
echo " where options may be any of the following:"
- echo " -p <platform> (accepts 'aix', 'linux', 'freebsd', 'solaris',
+ echo " -p <platform> (accepts 'aix', 'beos', 'linux', 'freebsd',
'solaris',
'hp-10', 'hp-11', 'openserver', 'unixware', 'os400', 'irix',
'ptx', 'tru64', 'macosx'. 'cygwin')"
echo " -c <C compiler name> (e.g. gcc, cc, xlc_r, icc or ecc)"
@@ -227,7 +227,7 @@
#
case $platform in
- aix | openserver | unixware | linux | freebsd | solaris | hp-10 | hp-11 |
os400 | irix | ptx | tru64 | macosx | cygwin)
+ aix | openserver | unixware | beos | linux | freebsd | solaris | hp-10 |
hp-11 | os400 | irix | ptx | tru64 | macosx | cygwin)
# platform has been recognized
;;
*)
@@ -382,7 +382,7 @@
#
#
-# aix | linux | hp-11 | solaris |
+# aix | beos | linux | hp-11 | solaris |
# hp-10 | freebsd | irix | openserver | unixware | os400 | ptx | tru64 | macosx
#
if test $bitsToBuild = 64; then
@@ -524,6 +524,8 @@
aix)
#netaccessorLibs="-lbsd";;
netaccessorLibs="";;
+ beos)
+ netaccessorLibs="-lnet";;
solaris)
netaccessorLibs="-lnsl -lsocket"
if test $thread = "dce"; then
diff -ur xerces-c-src2_1_0-clean/src/xercesc/util/AutoSense.hpp
xerces-c-src2_1_0-beos/src/xercesc/util/AutoSense.hpp
--- xerces-c-src2_1_0-clean/src/xercesc/util/AutoSense.hpp Tue Aug 27 00:24:32 2002
+++ xerces-c-src2_1_0-beos/src/xercesc/util/AutoSense.hpp Thu Sep 5 15:33:08 2002
@@ -188,6 +188,9 @@
#elif defined(__UNIXWARE__) || defined(__USLC__)
#define XML_UNIXWARE
#define XML_UNIX
+#elif defined(__BEOS__)
+ #define XML_BEOS
+ #define XML_UNIX
#elif defined(__linux__)
#define XML_LINUX
#define XML_UNIX
@@ -259,7 +262,7 @@
#else
#error Code requires port to current development environment
#endif
-#elif defined (__GNUG__) || defined(__linux__) || defined(__CYGWIN__)
+#elif defined (__GNUG__) || defined(__BEOS__) || defined(__linux__) ||
defined(__CYGWIN__)
#define XML_GCC
#elif defined(XML_HPUX)
#if defined(EXM_HPUX)
diff -ur xerces-c-src2_1_0-clean/src/xercesc/util/Compilers/Makefile.in
xerces-c-src2_1_0-beos/src/xercesc/util/Compilers/Makefile.in
--- xerces-c-src2_1_0-clean/src/xercesc/util/Compilers/Makefile.in Tue Aug 27 00:24:32 2002
+++ xerces-c-src2_1_0-beos/src/xercesc/util/Compilers/Makefile.in Thu Sep 5 15:33:34 2002
@@ -134,6 +134,9 @@
ifeq (${PLATFORM},PTX)
CPP_OBJECTS = PTXCCDefs.$(TO)
endif
+ ifeq (${PLATFORM},BEOS)
+ CPP_OBJECTS = GCCDefs.$(TO)
+ endif
ifeq (${PLATFORM},LINUX)
CPP_OBJECTS = GCCDefs.$(TO)
endif
diff -ur
xerces-c-src2_1_0-clean/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp
xerces-c-src2_1_0-beos/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp
--- xerces-c-src2_1_0-clean/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp Tue Aug 27 00:24:36 2002
+++ xerces-c-src2_1_0-beos/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp Thu Sep 5 16:52:02 2002
@@ -109,8 +109,10 @@
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
+#if !defined(XML_BEOS)
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+#endif
#include <netdb.h>
#include <errno.h>
Only in xerces-c-src2_1_0-beos/src/xercesc/util/Platforms: BeOS
diff -ur xerces-c-src2_1_0-clean/src/xercesc/util/Platforms/Makefile.in
xerces-c-src2_1_0-beos/src/xercesc/util/Platforms/Makefile.in
--- xerces-c-src2_1_0-clean/src/xercesc/util/Platforms/Makefile.in Tue Aug 27 00:24:36 2002
+++ xerces-c-src2_1_0-beos/src/xercesc/util/Platforms/Makefile.in Thu Sep 5 15:40:39 2002
@@ -151,6 +151,9 @@
ifeq (${PLATFORM}, AIX)
SUBMODULE = AIX
endif
+ifeq (${PLATFORM}, BEOS)
+ SUBMODULE = BeOS
+endif
ifeq (${PLATFORM}, LINUX)
SUBMODULE = Linux
endif
diff -ur
xerces-c-src2_1_0-clean/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
xerces-c-src2_1_0-beos/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
--- xerces-c-src2_1_0-clean/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp Tue Aug 27 00:24:38 2002
+++ xerces-c-src2_1_0-beos/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp Thu Sep 5 16:35:48 2002
@@ -67,7 +67,17 @@
#include "IconvTransService.hpp"
#include <wchar.h>
#if defined (XML_GCC) || defined (XML_PTX) || defined (XML_IBMVAOS2)
- #if !defined(XML_OPENSERVER)
+ #if defined(XML_BEOS)
+ wint_t towlower(wint_t wc) {
+ return ((wc>'A')&&(wc<'Z') ? wc+'a'-'A' : wc);
+ }
+ wint_t towupper(wint_t wc) {
+ return ((wc>'a')&&(wc<'z') ? wc-'a'+'A' : wc);
+ }
+ wint_t iswspace(wint_t wc) {
+ return (wc==(wint_t)' ');
+ }
+ #elif !defined(XML_OPENSERVER)
#include <wctype.h>
#endif
#endif
diff -ur xerces-c-src2_1_0-clean/src/xercesc/util/XercesDefs.hpp
xerces-c-src2_1_0-beos/src/xercesc/util/XercesDefs.hpp
--- xerces-c-src2_1_0-clean/src/xercesc/util/XercesDefs.hpp Tue Aug 27 00:24:38 2002
+++ xerces-c-src2_1_0-beos/src/xercesc/util/XercesDefs.hpp Thu Sep 5 15:41:55 2002
@@ -247,6 +247,10 @@
#include <xercesc/util/Platforms/Tandem/TandemDefs.hpp>
#endif
+#if defined(XML_BEOS)
+#include <xercesc/util/Platforms/BeOS/BeOSDefs.hpp>
+#endif
+
#if defined(XML_LINUX)
#include <xercesc/util/Platforms/Linux/LinuxDefs.hpp>
#endif
diff -ur xerces-c-src2_1_0-clean/tests/Makefile.incl
xerces-c-src2_1_0-beos/tests/Makefile.incl
--- xerces-c-src2_1_0-clean/tests/Makefile.incl Tue Aug 27 00:24:40 2002
+++ xerces-c-src2_1_0-beos/tests/Makefile.incl Thu Sep 5 15:26:51 2002
@@ -178,6 +178,16 @@
EXTRA_LINK_OPTIONS=-q OPTION='*DUPPROC *DUPVAR' ${EXTRA_LIBS}
endif
+#=============== BEOS SPECIFIC OPTIONS =========================
+ifeq (${PLATFORM}, BEOS)
+CMP= -c ${CXXFLAGS}
+CC= ${COMPILER} -c -D${PLATFORM} -DAPP_NO_THREADS -fpic
+LINK = ${COMPILER} -D${PLATFORM} -fpic ${LDFLAGS}
+PLATFORM_LIB_LINK_OPTIONS=-L/boot/develop/lib/x86 -L/boot/home/config/lib
+EXTRA_LINK_OPTIONS=-lbe ${EXTRA_LIBS}
+SHLIBSUFFIX=.so
+endif
+
#=============== LINUX SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, LINUX)
CMP= -c ${CXXFLAGS}
diff -ur xerces-c-src2_1_0-clean/tests/configure
xerces-c-src2_1_0-beos/tests/configure
--- xerces-c-src2_1_0-clean/tests/configure Tue Aug 27 00:24:40 2002
+++ xerces-c-src2_1_0-beos/tests/configure Thu Sep 5 15:20:11 2002
@@ -1308,6 +1308,7 @@
*-*-UnixWare*) platform=UNIXWARE ;;
*-*-*unixware*) platform=UNIXWARE ;;
*-*-sysv5uw7*) platform=UNIXWARE ;;
+ *-*-beos*) platform=BEOS ;;
*-*-linux*) platform=LINUX ;;
*-*-freebsd*) platform=FREEBSD ;;
*-*-irix*) platform=IRIX ;;
diff -ur xerces-c-src2_1_0-clean/tests/configure.in
xerces-c-src2_1_0-beos/tests/configure.in
--- xerces-c-src2_1_0-clean/tests/configure.in Tue Aug 27 00:24:40 2002
+++ xerces-c-src2_1_0-beos/tests/configure.in Thu Sep 5 15:19:52 2002
@@ -36,6 +36,7 @@
*-*-UnixWare*) platform=UNIXWARE ;;
*-*-*unixware*) platform=UNIXWARE ;;
*-*-sysv5uw7*) platform=UNIXWARE ;;
+ *-*-beos*) platform=BEOS ;;
*-*-linux*) platform=LINUX ;;
*-*-freebsd*) platform=FREEBSD ;;
*-*-irix*) platform=IRIX ;;
diff -ur xerces-c-src2_1_0-clean/tests/runConfigure
xerces-c-src2_1_0-beos/tests/runConfigure
--- xerces-c-src2_1_0-clean/tests/runConfigure Tue Aug 27 00:24:40 2002
+++ xerces-c-src2_1_0-beos/tests/runConfigure Thu Sep 5 15:19:22 2002
@@ -82,7 +82,7 @@
echo "runConfigure: Helper script to run \"configure\" for one of the
supported platforms"
echo "Usage: runConfigure \"options\""
echo " where options may be any of the following:"
- echo " -p <platform> (accepts 'aix', 'linux', 'freebsd', 'solaris',
+ echo " -p <platform> (accepts 'aix', 'beos', 'linux', 'freebsd',
'solaris',
'hp-10', 'hp-11', 'openserver', 'unixware', 'os400', 'irix',
'ptx', 'tru64', 'macosx', 'cygwin')"
echo " -c <C compiler name> (e.g. gcc, cc, xlc_r, icc or ecc)"
@@ -196,7 +196,7 @@
# Now check if the options are correct or not, bail out if incorrect
#
case $platform in
- aix | openserver | unixware | linux | freebsd | solaris | hp-10 | hp-11 |
os400 | irix | ptx | tru64 | macosx | cygwin)
+ aix | openserver | unixware | beos | linux | freebsd | solaris | hp-10 |
hp-11 | os400 | irix | ptx | tru64 | macosx | cygwin)
# platform has been recognized
;;
*)
@@ -342,7 +342,7 @@
#
#
-# aix | linux | hp-11 | solaris |
+# aix | beos | linux | hp-11 | solaris |
# hp-10 | freebsd | irix | openserver | unixware | os400 | ptx | tru64 | macosx
#
if test $bitsToBuild = 64; then
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org