From 2c42c481b14b148aa89a11a9f9aaa7edae09fb6d Mon Sep 17 00:00:00 2001 From: David Abram Cargill <cargilld@apache.org> Date: Thu, 18 Nov 2004 16:20:06 +0000 Subject: [PATCH] Changes for linker problems with linux build using xlc. git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@176204 13f79535-47bb-0310-9956-ffa450edef68 --- src/xercesc/Makefile.incl | 23 ++----- src/xercesc/runConfigure | 10 ++- src/xercesc/util/AutoSense.hpp | 25 ++++--- src/xercesc/util/OutOfMemoryException.hpp | 2 +- .../Transcoders/Iconv/IconvTransService.cpp | 2 +- src/xercesc/util/regx/RegxDefs.hpp | 68 +++++++++---------- .../schema/GeneralAttributeCheck.cpp | 13 ++-- .../validators/schema/TraverseSchema.cpp | 26 +++---- 8 files changed, 86 insertions(+), 83 deletions(-) diff --git a/src/xercesc/Makefile.incl b/src/xercesc/Makefile.incl index 035037561..828c63b90 100644 --- a/src/xercesc/Makefile.incl +++ b/src/xercesc/Makefile.incl @@ -324,29 +324,18 @@ ifeq (${PLATFORM}, LINUX) ifeq (${CXX}, xlC_r) + PLATFORM_COMPILE_OPTIONS = -qpic -qnotempinc -D${PLATFORM} + MAKE_SHARED = ${CXX} -D${PLATFORM} -qpic -qmkshrobj -G ${LDFLAGS} + MAKE_SHARED_C = ${CC} -D${PLATFORM} -qpic -qmkshrobj -G ${LDFLAGS} + ifeq (${TRANSCODER}, ICU) - ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc -licudata - else - ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib + ALLLIBS = ${LIBS} -licuuc -licudata endif ifeq (${MESSAGELOADER}, ICU) - ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc -licudata -lXercesMessages - endif - - PLATFORM_COMPILE_OPTIONS = -w -O -qproto -qroconst -DPIC -qpic=large -D_THREAD_SAFE - - ifeq (${BITSTOBUILD}, 64) - MAKE_SHARED = xlC_r -w -O -qproto -qroconst -qmkshrobj -G ${LDFLAGS} -X64 - MAKE_SHARED_C = xlc_r -w -O -qproto -qroconst -qmkshrobj -G ${LDFLAGS} -X64 - else - MAKE_SHARED = xlC_r -w -O -qproto -qroconst -qmkshrobj -G ${LDFLAGS} - MAKE_SHARED_C = xlc_r -w -O -qproto -qroconst -qmkshrobj -G ${LDFLAGS} + ALLLIBS = ${LIBS} -licuuc -licudata -lXercesMessages endif - #EXTRA_LINK_OPTIONS = -bmap:$(XML_OBJ)/${LIBNAME}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}.map - #DEPDOM_LINK_OPTIONS = -bmap:$(XML_OBJ)/${LIBDEPDOM}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}.map - ## Compiler switch to embed a library name LD_SONAME = diff --git a/src/xercesc/runConfigure b/src/xercesc/runConfigure index a8ad5dd23..525e09f69 100755 --- a/src/xercesc/runConfigure +++ b/src/xercesc/runConfigure @@ -449,7 +449,15 @@ if test $bitsToBuild = 64; then esac fi ;; linux) - bitstobuildDefines=" $bitstobuildDefines " ;; + if test $cppcompiler; then + case $cppcompiler in + xlC*) + bitstobuildDefines=" $bitstobuildDefines -q64 -qwarn64 " + bitstobuildLink=" -q64 " ;; + *) + ;; + esac + fi ;; *) ;; esac diff --git a/src/xercesc/util/AutoSense.hpp b/src/xercesc/util/AutoSense.hpp index 698ba8330..4368ecf06 100644 --- a/src/xercesc/util/AutoSense.hpp +++ b/src/xercesc/util/AutoSense.hpp @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.16 2004/11/18 16:20:04 cargilld + * Changes for linker problems with linux build using xlc. + * * Revision 1.15 2004/09/08 13:56:21 peiyongz * Apache License Version 2.0 * @@ -266,6 +269,17 @@ #endif #elif defined (__QNXNTO__) #define XML_QCC +#elif defined(__IBMC__) || defined(__IBMCPP__) + #if defined(XML_WIN32) + #define XML_IBMVAW32 + #elif defined(XML_OS2) + #define XML_IBMVAOS2 + #if (__IBMC__ >= 400 || __IBMCPP__ >= 400) + #define XML_IBMVA4_OS2 + #endif + #elif defined(XML_AIX) || defined(__linux__) + #define XML_CSET + #endif #elif defined (__GNUG__) || defined(__BEOS__) || defined(__linux__) || defined(__CYGWIN__) #define XML_GCC #elif defined(XML_HPUX) @@ -286,17 +300,6 @@ #define XML_MVSCPP #elif defined(EXM_OS390) && defined(__cplusplus) #define XML_MVSCPP -#elif defined(__IBMC__) || defined(__IBMCPP__) - #if defined(XML_WIN32) - #define XML_IBMVAW32 - #elif defined(XML_OS2) - #define XML_IBMVAOS2 - #if (__IBMC__ >= 400 || __IBMCPP__ >= 400) - #define XML_IBMVA4_OS2 - #endif - #elif defined(XML_AIX) - #define XML_CSET - #endif #elif defined(XML_TRU64) && defined(__DECCXX) #define XML_DECCXX #elif defined(__MWERKS__) diff --git a/src/xercesc/util/OutOfMemoryException.hpp b/src/xercesc/util/OutOfMemoryException.hpp index a04536ec1..451b4b3b1 100755 --- a/src/xercesc/util/OutOfMemoryException.hpp +++ b/src/xercesc/util/OutOfMemoryException.hpp @@ -27,7 +27,7 @@ XERCES_CPP_NAMESPACE_BEGIN -const XMLCh gDefOutOfMemoryErrMsg[] = +static const XMLCh gDefOutOfMemoryErrMsg[] = { chLatin_O, chLatin_u, chLatin_t, chLatin_O , chLatin_f, chLatin_M, chLatin_e, chLatin_m diff --git a/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp b/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp index 9995db2a0..f14fa14fd 100644 --- a/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp +++ b/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp @@ -28,7 +28,7 @@ #include <xercesc/framework/MemoryManager.hpp> #include <wchar.h> -#if defined (XML_GCC) || defined (XML_PTX) || defined (XML_IBMVAOS2) +#if defined (XML_GCC) || defined (XML_PTX) || defined (XML_IBMVAOS2) || defined(XML_LINUX) #if defined(XML_BEOS) wint_t towlower(wint_t wc) { return ((wc>'A')&&(wc<'Z') ? wc+'a'-'A' : wc); diff --git a/src/xercesc/util/regx/RegxDefs.hpp b/src/xercesc/util/regx/RegxDefs.hpp index b673ae596..df4906ee7 100644 --- a/src/xercesc/util/regx/RegxDefs.hpp +++ b/src/xercesc/util/regx/RegxDefs.hpp @@ -29,53 +29,53 @@ XERCES_CPP_NAMESPACE_BEGIN -const XMLCh fgXMLCategory[] = +static const XMLCh fgXMLCategory[] = { chLatin_X, chLatin_M, chLatin_L, chNull }; -const XMLCh fgASCIICategory[] = +static const XMLCh fgASCIICategory[] = { chLatin_A, chLatin_S, chLatin_C, chLatin_I, chLatin_I, chNull }; -const XMLCh fgUnicodeCategory[] = +static const XMLCh fgUnicodeCategory[] = { chLatin_U, chLatin_N, chLatin_I, chLatin_C, chLatin_O, chLatin_D, chLatin_E, chNull }; -const XMLCh fgBlockCategory[] = +static const XMLCh fgBlockCategory[] = { chLatin_B, chLatin_L, chLatin_O, chLatin_C, chLatin_K, chNull }; -const XMLCh fgXMLSpace[] = +static const XMLCh fgXMLSpace[] = { chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_S, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chNull }; -const XMLCh fgXMLDigit[] = +static const XMLCh fgXMLDigit[] = { chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_D, chLatin_i, chLatin_g, chLatin_i, chLatin_t, chNull }; -const XMLCh fgXMLWord[] = +static const XMLCh fgXMLWord[] = { chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_W, chLatin_o, chLatin_r, chLatin_d, chNull }; -const XMLCh fgXMLNameChar[] = +static const XMLCh fgXMLNameChar[] = { chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_C, chLatin_h, chLatin_a, chLatin_r, chNull }; -const XMLCh fgXMLInitialNameChar[] = +static const XMLCh fgXMLInitialNameChar[] = { chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_I, chLatin_n, chLatin_i, chLatin_t, chLatin_i, chLatin_a, chLatin_l, @@ -83,31 +83,31 @@ const XMLCh fgXMLInitialNameChar[] = chLatin_a, chLatin_r, chNull }; -const XMLCh fgASCII[] = +static const XMLCh fgASCII[] = { chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i, chLatin_s, chLatin_A, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chNull }; -const XMLCh fgASCIIDigit[] = +static const XMLCh fgASCIIDigit[] = { chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i, chLatin_s, chLatin_D, chLatin_i, chLatin_g, chLatin_i, chLatin_t, chNull }; -const XMLCh fgASCIIWord[] = +static const XMLCh fgASCIIWord[] = { chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i, chLatin_s, chLatin_W, chLatin_o, chLatin_r, chLatin_d, chNull }; -const XMLCh fgASCIISpace[] = +static const XMLCh fgASCIISpace[] = { chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i, chLatin_s, chLatin_S, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chNull }; -const XMLCh fgASCIIXDigit[] = +static const XMLCh fgASCIIXDigit[] = { chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i, chLatin_s, chLatin_X, chLatin_D, chLatin_i, chLatin_g, chLatin_i, @@ -115,115 +115,115 @@ const XMLCh fgASCIIXDigit[] = }; -const XMLCh fgUniAll[] = +static const XMLCh fgUniAll[] = { chLatin_A, chLatin_L, chLatin_L, chNull }; -const XMLCh fgUniIsAlpha[] = +static const XMLCh fgUniIsAlpha[] = { chLatin_I, chLatin_s, chLatin_A, chLatin_l, chLatin_p, chLatin_h, chLatin_a, chNull }; -const XMLCh fgUniIsAlnum[] = +static const XMLCh fgUniIsAlnum[] = { chLatin_I, chLatin_s, chLatin_A, chLatin_l, chLatin_n, chLatin_u, chLatin_m, chNull }; -const XMLCh fgUniIsWord[] = +static const XMLCh fgUniIsWord[] = { chLatin_I, chLatin_s, chLatin_W, chLatin_o, chLatin_r, chLatin_d, chNull }; -const XMLCh fgUniIsDigit[] = +static const XMLCh fgUniIsDigit[] = { chLatin_I, chLatin_s, chLatin_D, chLatin_i, chLatin_g, chLatin_i, chLatin_t, chNull }; -const XMLCh fgUniIsUpper[] = +static const XMLCh fgUniIsUpper[] = { chLatin_I, chLatin_s, chLatin_U, chLatin_p, chLatin_p, chLatin_e, chLatin_r, chNull }; -const XMLCh fgUniIsLower[] = +static const XMLCh fgUniIsLower[] = { chLatin_I, chLatin_s, chLatin_L, chLatin_o, chLatin_w, chLatin_e, chLatin_r, chNull }; -const XMLCh fgUniIsPunct[] = +static const XMLCh fgUniIsPunct[] = { chLatin_I, chLatin_s, chLatin_P, chLatin_u, chLatin_n, chLatin_c, chLatin_t, chNull }; -const XMLCh fgUniIsSpace[] = +static const XMLCh fgUniIsSpace[] = { chLatin_I, chLatin_s, chLatin_S, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chNull }; -const XMLCh fgUniAssigned[] = +static const XMLCh fgUniAssigned[] = { chLatin_A, chLatin_S, chLatin_S, chLatin_I, chLatin_G, chLatin_N, chLatin_E, chLatin_D, chNull }; -const XMLCh fgUniDecimalDigit[] = +static const XMLCh fgUniDecimalDigit[] = { chLatin_N, chLatin_d, chNull }; -const XMLCh fgBlockIsSpecials[] = +static const XMLCh fgBlockIsSpecials[] = { chLatin_I, chLatin_s, chLatin_S, chLatin_p, chLatin_e, chLatin_c, chLatin_i, chLatin_a, chLatin_l, chLatin_s, chNull }; -const XMLCh fgBlockIsPrivateUse[] = +static const XMLCh fgBlockIsPrivateUse[] = { chLatin_I, chLatin_s, chLatin_P, chLatin_r, chLatin_i, chLatin_v, chLatin_a, chLatin_t, chLatin_e, chLatin_U, chLatin_s, chLatin_e, chNull }; -const XMLCh fgUniLetter[] = +static const XMLCh fgUniLetter[] = { chLatin_L, chNull }; -const XMLCh fgUniNumber[] = +static const XMLCh fgUniNumber[] = { chLatin_N, chNull }; -const XMLCh fgUniMark[] = +static const XMLCh fgUniMark[] = { chLatin_M, chNull }; -const XMLCh fgUniSeparator[] = +static const XMLCh fgUniSeparator[] = { chLatin_Z, chNull }; -const XMLCh fgUniPunctuation[] = +static const XMLCh fgUniPunctuation[] = { chLatin_P, chNull }; -const XMLCh fgUniControl[] = +static const XMLCh fgUniControl[] = { chLatin_C, chNull }; -const XMLCh fgUniSymbol[] = +static const XMLCh fgUniSymbol[] = { chLatin_S, chNull }; diff --git a/src/xercesc/validators/schema/GeneralAttributeCheck.cpp b/src/xercesc/validators/schema/GeneralAttributeCheck.cpp index 4b36b4d25..4ab143a8c 100644 --- a/src/xercesc/validators/schema/GeneralAttributeCheck.cpp +++ b/src/xercesc/validators/schema/GeneralAttributeCheck.cpp @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.26 2004/11/18 16:20:06 cargilld + * Changes for linker problems with linux build using xlc. + * * Revision 1.25 2004/10/20 15:19:07 knoaman * Allow option of initializing static data in XMLPlatformUtils::Initialize * @@ -167,28 +170,28 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // Local const data // --------------------------------------------------------------------------- -const XMLCh fgValueZero[] = +static const XMLCh fgValueZero[] = { chDigit_0, chNull }; -const XMLCh fgValueOne[] = +static const XMLCh fgValueOne[] = { chDigit_1, chNull }; -const XMLCh fgUnbounded[] = +static const XMLCh fgUnbounded[] = { chLatin_u, chLatin_n, chLatin_b, chLatin_o, chLatin_u, chLatin_n, chLatin_d, chLatin_e, chLatin_d, chNull }; -const XMLCh fgLocal[] = +static const XMLCh fgLocal[] = { chLatin_l, chLatin_o, chLatin_c, chLatin_a, chLatin_l, chNull }; -const XMLCh fgGlobal[] = +static const XMLCh fgGlobal[] = { chLatin_g, chLatin_l, chLatin_o, chLatin_b, chLatin_a, chLatin_l, chNull }; diff --git a/src/xercesc/validators/schema/TraverseSchema.cpp b/src/xercesc/validators/schema/TraverseSchema.cpp index 689ccbeeb..c77b673ee 100644 --- a/src/xercesc/validators/schema/TraverseSchema.cpp +++ b/src/xercesc/validators/schema/TraverseSchema.cpp @@ -75,70 +75,70 @@ typedef RefVectorOf<DatatypeValidator> DVRefVector; // --------------------------------------------------------------------------- // TraverseSchema: Local const data // --------------------------------------------------------------------------- -const XMLCh fgAnonSNamePrefix[] = +static const XMLCh fgAnonSNamePrefix[] = { chLatin_S, chNull }; -const XMLCh fgAnonCNamePrefix[] = +static const XMLCh fgAnonCNamePrefix[] = { chLatin_C, chNull }; -const XMLCh fgUnbounded[] = +static const XMLCh fgUnbounded[] = { chLatin_u, chLatin_n, chLatin_b, chLatin_o, chLatin_u, chLatin_n, chLatin_d, chLatin_e, chLatin_d, chNull }; -const XMLCh fgSkip[] = +static const XMLCh fgSkip[] = { chLatin_s, chLatin_k, chLatin_i, chLatin_p, chNull }; -const XMLCh fgLax[] = +static const XMLCh fgLax[] = { chLatin_l, chLatin_a, chLatin_x, chNull }; -const XMLCh fgStrict[] = +static const XMLCh fgStrict[] = { chLatin_s, chLatin_t, chLatin_r, chLatin_i, chLatin_c, chLatin_t, chNull }; -const XMLCh fgValueOne[] = +static const XMLCh fgValueOne[] = { chDigit_1, chNull }; -const XMLCh fgValueZero[] = +static const XMLCh fgValueZero[] = { chDigit_0, chNull }; -const XMLCh fgForwardSlash[] = +static const XMLCh fgForwardSlash[] = { chForwardSlash, chNull }; -const XMLCh fgDot[] = +static const XMLCh fgDot[] = { chPeriod, chNull }; -const XMLCh fgDotForwardSlash[] = +static const XMLCh fgDotForwardSlash[] = { chPeriod, chForwardSlash, chNull }; -const XMLCh* fgIdentityConstraints[] = +static const XMLCh* fgIdentityConstraints[] = { SchemaSymbols::fgELT_UNIQUE, SchemaSymbols::fgELT_KEY, SchemaSymbols::fgELT_KEYREF }; -const XMLCh fgSynthetic_Annotation[] = +static const XMLCh fgSynthetic_Annotation[] = { chLatin_S, chLatin_y, chLatin_n, chLatin_t, chLatin_h, chLatin_e, chLatin_t , chLatin_i, chLatin_c, chUnderscore -- GitLab