diff --git a/libs/xmlrpc-c/Makefile.common b/libs/xmlrpc-c/Makefile.common index d0e77f04b4..bf510401a6 100644 --- a/libs/xmlrpc-c/Makefile.common +++ b/libs/xmlrpc-c/Makefile.common @@ -23,11 +23,15 @@ GCC_C_WARNINGS = $(GCC_WARNINGS) \ GCC_CXX_WARNINGS = $(GCC_WARNINGS) -Woverloaded-virtual -Wsynth ifeq ($(C_COMPILER_GNU),yes) - CFLAGS_COMMON = $(GCC_C_WARNINGS) -fno-common -g + CFLAGS_COMMON = $(GCC_C_WARNINGS) $(COMPILER_CFLAGS) -fno-common -g +else + CFLAGS_COMMON = $(COMPILER_CFLAGS) endif ifeq ($(CXX_COMPILER_GNU),yes) - CXXFLAGS_COMMON = $(GCC_CXX_WARNINGS) + CXXFLAGS_COMMON = $(GCC_CXX_WARNINGS) $(COMPILER_CXXFLAGS) +else + CXXFLAGS_COMMON = $(COMPILER_CXXFLAGS) endif DISTDIR = $(BUILDDIR)/$(PACKAGE)-$(VERSION)/$(SUBDIR) diff --git a/libs/xmlrpc-c/Makefile.config.in b/libs/xmlrpc-c/Makefile.config.in index 536805cdd2..efdcf4f8c2 100644 --- a/libs/xmlrpc-c/Makefile.config.in +++ b/libs/xmlrpc-c/Makefile.config.in @@ -57,6 +57,8 @@ INSTALL = @INSTALL@ C_COMPILER_GNU = @C_COMPILER_GNU@ CXX_COMPILER_GNU = @CXX_COMPILER_GNU@ +COMPILER_CFLAGS = @COMPILER_CFLAGS@ +COMPILER_CXXFLAGS = @COMPILER_CXXFLAGS@ # Here are the commands 'make install' uses to install various kinds of files: diff --git a/libs/xmlrpc-c/configure.in b/libs/xmlrpc-c/configure.in index d88ef8f2d6..3837ccf09d 100644 --- a/libs/xmlrpc-c/configure.in +++ b/libs/xmlrpc-c/configure.in @@ -633,6 +633,40 @@ AC_SUBST(CPP_WARN_FLAGS) BUILDDIR=`pwd` AC_SUBST(BUILDDIR) + + +AC_DEFUN([AX_COMPILER_VENDOR], +[ +AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor, + [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown + # note: don't check for gcc first since some other compilers define __GNUC__ + for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do + vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[ +#if !($vencpp) + thisisanerror; +#endif +])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break]) + done + ]) +]) + +AX_COMPILER_VENDOR + +# Enable 64 bit build +AC_ARG_ENABLE(64, +[AC_HELP_STRING([--enable-64],[build with 64 bit support])],[enable_64="$enable_64"],[enable_64="no"]) + +if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then + if test "${enable_64}" = "yes"; then + COMPILER_CFLAGS=-m64 + COMPILER_CXXFLAGS=-m64 + fi +fi + +AC_SUBST(COMPILER_CFLAGS) +AC_SUBST(COMPILER_CXXFLAGS) + dnl ======================================================================= dnl Libtool dnl ======================================================================= diff --git a/libs/xmlrpc-c/lib/expat/gennmtab/Makefile b/libs/xmlrpc-c/lib/expat/gennmtab/Makefile index 8795e72aae..f39a02351f 100644 --- a/libs/xmlrpc-c/lib/expat/gennmtab/Makefile +++ b/libs/xmlrpc-c/lib/expat/gennmtab/Makefile @@ -40,6 +40,6 @@ gennmtab.o:%.o:%.c $(CC) -c $< -o $@ $(CFLAGS) $(INCLUDES) gennmtab:%:%.o - $(LINK) -o $@ $(LDFLAGS) $^ + $(LINK) -o $@ $(LDFLAGS) $(CFLAGS) $^ include Makefile.depend diff --git a/libs/xmlrpc-c/src/xmlrpc_builddecomp.c b/libs/xmlrpc-c/src/xmlrpc_builddecomp.c index 95b02ad273..e96091691b 100644 --- a/libs/xmlrpc-c/src/xmlrpc_builddecomp.c +++ b/libs/xmlrpc-c/src/xmlrpc_builddecomp.c @@ -27,8 +27,12 @@ typedef double va_double; #if VA_LIST_IS_ARRAY #define VA_LIST_COPY(dest,src) memcpy((dest), (src), sizeof(va_list)) #else +#if __sun +#define VA_LIST_COPY(dest,src) (*(dest) = *(src)) +#else #define VA_LIST_COPY(dest,src) ((dest) = (src)) #endif +#endif /*========================================================================= ** Creating XML-RPC values.