...
 
Commits (5)
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -96,6 +96,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \
$(top_srcdir)/m4/cxx_have_namespaces.m4 \
$(top_srcdir)/m4/cxx_have_std_libs.m4 \
$(top_srcdir)/m4/cxx_have_std_namespace.m4 \
$(top_srcdir)/m4/cxx_have_std_thread.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 \
......@@ -188,7 +189,7 @@ am__recursive_targets = \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir dist dist-all distcheck
cscope distdir distdir-am dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
$(LISP)config.h.in
# Read a list of newline-separated strings from the standard input,
......@@ -222,8 +223,8 @@ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/src/xercesc/util/XercesVersion.hpp.in \
$(top_srcdir)/src/xercesc/util/Xerces_autoconf_config.hpp.in \
INSTALL README config/compile config/config.guess \
config/config.sub config/install-sh config/ltmain.sh \
config/missing
config/config.sub config/depcomp config/install-sh \
config/ltmain.sh config/missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
......@@ -460,8 +461,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
......@@ -646,7 +647,10 @@ distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
distdir: $(DISTFILES)
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
......
This diff is collapsed.
......@@ -32,6 +32,7 @@ endif()
set(XERCES_PLATFORM_EXPORT)
set(XERCES_PLATFORM_IMPORT)
set(XERCES_TEMPLATE_EXTERN extern)
set(XERCES_DLL_EXPORT)
set(XERCES_STATIC_LIBRARY)
if(NOT BUILD_SHARED_LIBS)
......@@ -40,6 +41,9 @@ else()
if(WIN32)
set(XERCES_PLATFORM_EXPORT "__declspec(dllexport)")
set(XERCES_PLATFORM_IMPORT "__declspec(dllimport)")
if (MSVC)
set(XERCES_TEMPLATE_EXTERN)
endif()
set(XERCES_DLL_EXPORT 1)
endif()
endif()
......@@ -32,7 +32,6 @@ check_function_exists(clock_gettime HAVE_CLOCK_GETTIME)
check_function_exists(ftime HAVE_FTIME)
check_function_exists(gettimeofday HAVE_GETTIMEOFDAY)
check_function_exists(gmtime_r HAVE_GMTIME_R)
check_function_exists(timegm HAVE_TIMEGM)
check_function_exists(memmove HAVE_MEMMOVE)
check_function_exists(memset HAVE_MEMSET)
check_function_exists(nl_langinfo HAVE_NL_LANGINFO)
......
......@@ -62,7 +62,7 @@ if(SIZEOF_SIZE_T)
set(XERCES_SIZE_T size_t)
set(XERCES_SIZE_MAX SIZE_MAX)
else()
set(XERCES_SIZE_T unsigned long)
set(XERCES_SIZE_T "unsigned long")
set(XERCES_SIZE_MAX ULONG_MAX)
endif()
if(SIZEOF_SSIZE_T)
......
......@@ -21,16 +21,60 @@
option(threads "Threading support" ON)
include(CheckCXXSourceCompiles)
find_package(Threads REQUIRED)
function(thread_test outvar)
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
check_cxx_source_compiles(
"#include <thread>
#include <mutex>
#include <iostream>
namespace
{
std::mutex m1;
std::recursive_mutex m2;
void
threadmain()
{
std::lock_guard<std::mutex> lock1(m1);
std::lock_guard<std::recursive_mutex> lock2(m2);
std::cout << \"In thread\" << std::endl;
}
}
int main() {
std::thread foo(threadmain);
foo.join();
return 0;
}"
${outvar})
set(${outvar} ${${outvar}} PARENT_SCOPE)
endfunction(thread_test)
if(threads)
set(THREADS_PREFER_PTHREAD_FLAG ON)
add_definitions(-D_THREAD_SAFE=1)
find_package(Threads)
thread_test(XERCES_HAVE_STD_THREAD)
if(XERCES_HAVE_STD_THREAD)
list(APPEND mutexmgrs standard)
endif()
if(TARGET Threads::Threads)
if(WIN32)
list(APPEND mutexmgrs windows)
else()
list(APPEND mutexmgrs POSIX)
list(APPEND mutexmgrs posix)
set(HAVE_PTHREAD 1)
endif()
endif()
......@@ -49,10 +93,13 @@ if(mutexmgr_found EQUAL -1)
message(FATAL_ERROR "${mutexmgr} mutexmgr unavailable")
endif()
set(XERCES_USE_MUTEXMGR_STD 0)
set(XERCES_USE_MUTEXMGR_POSIX 0)
set(XERCES_USE_MUTEXMGR_WINDOWS 0)
set(XERCES_USE_MUTEXMGR_NOTHREAD 0)
if(mutexmgr STREQUAL "POSIX")
if(mutexmgr STREQUAL "standard")
set(XERCES_USE_MUTEXMGR_STD 1)
elseif(mutexmgr STREQUAL "posix")
set(XERCES_USE_MUTEXMGR_POSIX 1)
elseif(mutexmgr STREQUAL "windows")
set(XERCES_USE_MUTEXMGR_WINDOWS 1)
......
......@@ -31,7 +31,7 @@ if(network)
# Requires select() which is UNIX only
if(UNIX)
find_package(CURL COMPONENTS uc data)
find_package(CURL)
if(CURL_FOUND)
list(APPEND netaccessors curl)
endif()
......
......@@ -61,6 +61,10 @@ macro(add_generic_xerces_test name)
${xerces_test_extra_args}
-P "${xerces_test_dir}/RunTest.cmake"
)
if(AXT_STDIN)
set_property(TEST "${name}" PROPERTY RUN_SERIAL 1)
endif()
endmacro()
macro(add_xerces_test name)
......
......@@ -448,6 +448,9 @@
/* Define to use the NoThread mutex mgr */
#cmakedefine XERCES_USE_MUTEXMGR_NOTHREAD 1
/* Define to use the C++11 standard mutex mgr */
#cmakedefine XERCES_USE_MUTEXMGR_STD 1
/* Define to use the POSIX mutex mgr */
#cmakedefine XERCES_USE_MUTEXMGR_POSIX 1
......
......@@ -186,6 +186,9 @@
/* define if the compiler supports the std namespace */
#undef HAVE_STD_NAMESPACE
/* define if the compiler supports ISO C++11 <thread> and <mutex> */
#undef HAVE_STD_THREAD
/* Define to 1 if you have the `strcasecmp' function. */
#undef HAVE_STRCASECMP
......@@ -431,6 +434,9 @@
/* Define if the std namespace is supported */
#undef XERCES_STD_NAMESPACE
/* Define as the platform's template extern attribute */
#undef XERCES_TEMPLATE_EXTERN
/* An appropriate unsigned 16 bit integer type */
#undef XERCES_U16BIT_INT
......@@ -461,6 +467,9 @@
/* Define to use the POSIX mutex mgr */
#undef XERCES_USE_MUTEXMGR_POSIX
/* Define to use the C++ standard mutex mgr (requires C++11) */
#undef XERCES_USE_MUTEXMGR_STD
/* Define to use the Windows mutex mgr */
#undef XERCES_USE_MUTEXMGR_WINDOWS
......
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2016-01-11.22; # UTC
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -17,7 +17,7 @@ scriptversion=2016-01-11.22; # UTC
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
......@@ -340,7 +340,7 @@ exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
......
This diff is collapsed.
This diff is collapsed.
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2016-01-11.22; # UTC
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -16,7 +16,7 @@ scriptversion=2016-01-11.22; # UTC
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
......@@ -783,7 +783,7 @@ exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
......
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2016-01-11.22; # UTC
scriptversion=2018-03-11.20; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
......@@ -271,15 +271,18 @@ do
fi
dst=$dst_arg
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
# If destination is a directory, append the input filename.
if test -d "$dst"; then
if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstbase=`basename "$src"`
case $dst in
*/) dst=$dst$dstbase;;
*) dst=$dst/$dstbase;;
esac
dstdir_status=0
else
dstdir=`dirname "$dst"`
......@@ -288,6 +291,11 @@ do
fi
fi
case $dstdir in
*/) dstdirslash=$dstdir;;
*) dstdirslash=$dstdir/;;
esac
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
......@@ -324,34 +332,43 @@ do
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
# Note that $RANDOM variable is not portable (e.g. dash); Use it
# here however when possible just to lower collision chance.
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
# Because "mkdir -p" follows existing symlinks and we likely work
# directly in world-writeable /tmp, make sure that the '$tmpdir'
# directory is successfully created first before we actually test
# 'mkdir -p' feature.
if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
$mkdirprog $mkdir_mode "$tmpdir" &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"`
test_tmpdir="$tmpdir/a"
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/d" "$tmpdir"
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi
trap '' 0;;
esac;;
......@@ -427,8 +444,8 @@ do
else
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
dsttmp=${dstdirslash}_inst.$$_
rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
......@@ -493,7 +510,7 @@ do
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
......
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
scriptversion=2016-01-11.22; # UTC
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
......@@ -17,7 +17,7 @@ scriptversion=2016-01-11.22; # UTC
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
......@@ -101,9 +101,9 @@ else
exit $st
fi
perl_URL=http://www.perl.org/
flex_URL=http://flex.sourceforge.net/
gnu_software_URL=http://www.gnu.org/software
perl_URL=https://www.perl.org/
flex_URL=https://github.com/westes/flex
gnu_software_URL=https://www.gnu.org/software
program_details ()
{
......@@ -207,7 +207,7 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \
exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
......
#! /bin/sh
# test-driver - basic testsuite driver script.
scriptversion=2016-01-11.22; # UTC
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 2011-2017 Free Software Foundation, Inc.
# Copyright (C) 2011-2018 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -16,7 +16,7 @@ scriptversion=2016-01-11.22; # UTC
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
......@@ -140,7 +140,7 @@ echo ":copy-in-global-log: $gcopy" >> $trs_file
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
......
This diff is collapsed.
......@@ -20,11 +20,11 @@
#
#
# $Id: configure.ac 1824713 2018-02-18 23:07:07Z rleigh $
# $Id: configure.ac 1840430 2018-09-09 18:57:49Z rleigh $
#
AC_PREREQ(2.60)
AC_INIT([xerces-c],[3.2.1])
AC_INIT([xerces-c],[3.2.2])
INTERFACE_VERSION=3.2
GRAMMAR_SERIALIZATION_LEVEL=7
......@@ -350,15 +350,18 @@ case $host in
*-*-msdos* | *-*-mingw32* | *-*-cygwin* | *-*-windows* )
platform_export="__declspec(dllexport)"
platform_import="__declspec(dllimport)"
template_extern=""
;;
* )
platform_export=""
platform_import=""
template_extern="extern"
;;
esac
AC_DEFINE_UNQUOTED([XERCES_PLATFORM_EXPORT], [$platform_export], [Define as the platform's export attribute])
AC_DEFINE_UNQUOTED([XERCES_PLATFORM_IMPORT], [$platform_import], [Define as the platform's import attribute])
AC_DEFINE_UNQUOTED([XERCES_TEMPLATE_EXTERN], [$template_extern], [Define as the platform's template extern attribute])
AS_IF([test ! $ac_cv_cxx_have_bool],
AC_DEFINE([XERCES_NO_NATIVE_BOOL], 1, [Define if there is no native bool support in this environment]))
......
xerces-c (3.2.2+debian-1) unstable; urgency=medium
* New upstream version 3.2.2+debian Closes: 909202
* Add gbp.conf
* Update VCS URLs
* Update maintainer email
* Remove duplicate VCS URL
* Update standards to 4.2.1 (no changes needed)
-- William Blough <bblough@debian.org> Wed, 19 Sep 2018 15:19:49 -0400
xerces-c (3.2.1+debian-2) unstable; urgency=medium
* Fixes regression related to SSE2 detection/support, which
......
......@@ -11,9 +11,10 @@ Build-Depends: debhelper (>> 11),
libxerces2-java
Build-Depends-Indep: doxygen
Maintainer: William Blough <bblough@debian.org>
Standards-Version: 4.1.4
Standards-Version: 4.2.1
Vcs-Browser: https://salsa.debian.org/bblough/xerces-c
Vcs-Git: https://salsa.debian.org/bblough/xerces-c.git
Homepage: https://xerces.apache.org/xerces-c/
Package: libxerces-c3.2
......
......@@ -44,4 +44,3 @@ override_dh_auto_build-indep:
override_dh_auto_clean:
rm -rf doc/html
dh_auto_clean
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -112,6 +112,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \
$(top_srcdir)/m4/cxx_have_namespaces.m4 \
$(top_srcdir)/m4/cxx_have_std_libs.m4 \
$(top_srcdir)/m4/cxx_have_std_namespace.m4 \
$(top_srcdir)/m4/cxx_have_std_thread.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 \
......@@ -431,8 +432,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
......@@ -458,7 +459,10 @@ ctags CTAGS:
cscope cscopelist:
distdir: $(DISTFILES)
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
......
......@@ -178,7 +178,31 @@
<p>Thread support is enabled by default and can be disabled
with the <code>-Dthreads:BOOL=OFF</code> option. If disabled,
it will not be possible to select a mutex manager other than
<code>nothreads</code>.</p>
<code>nothreads</code>. If enabled, one of the following
mutex managers may be selected:</p>
<table>
<tr>
<th>Option</th>
<th>Description</th>
</tr>
<tr>
<td><code>-Dmutex-manager=standard</code></td>
<td>Use Standard C++ mutex (requires a C++11 compiler)</td>
</tr>
<tr>
<td><code>-Dmutex-manager=posix</code></td>
<td>Use POSIX threads (pthreads) mutex (only on UNIX and Cygwin)</td>
</tr>
<tr>
<td><code>-Dmutex-manager=windows</code></td>
<td>Use Windows threads mutex (Windows and MinGW only)</td>
</tr>
<tr>
<td><code>-Dmutex-manager=nothreads</code></td>
<td>Use dummy implementation (default if threading is disabled)</td>
</tr>
</table>
<p>Shared libraries are built by default. You can use the
<code>-DBUILD_SHARED_LIBS:BOOL=OFF</code> option to build
......@@ -434,7 +458,33 @@
</table>
<p>Thread support is enabled by default and can be disabled with the
<code>--disable-threads</code> option.</p>
<code>--disable-threads</code> option. If disabled,
it will not be possible to select a mutex manager other than
<code>nothreads</code>. If enabled, one of the following
mutex managers may be selected:</p>
<table>
<tr>
<th>Option</th>
<th>Description</th>
</tr>
<tr>
<td><code>--enable-mutexmgr-standard</code></td>
<td>Use Standard C++ mutex (requires a C++11 compiler)</td>
</tr>
<tr>
<td><code>--enable-mutexmgr-posix</code></td>
<td>Use POSIX threads (pthreads) mutex (only on UNIX and Cygwin)</td>
</tr>
<tr>
<td><code>--enable-mutexmgr-windows</code></td>
<td>Use Windows threads mutex (Windows and MinGW only)</td>
</tr>
<tr>
<td><code>--enable-mutexmgr-nothreads</code></td>
<td>Use dummy implementation (default if threading is disabled)</td>
</tr>
</table>
<p>By default <code>configure</code> selects both shared and static
libraries. You can use the <code>--disable-shared</code> and
......
......@@ -36,7 +36,7 @@ please refer to <jump href="releases_plan.html">Releases Plan</jump>.
<s2 title="Release Information for &XercesCName; &XercesCLatest;">
<p>For a list of bug fixes in &XercesCName; &XercesCLatest;, see the
<jump href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12341423&amp;styleName=Text&amp;projectId=10510">Release Notes</jump>
<jump href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12342890&amp;styleName=Text&amp;projectId=10510">Release Notes</jump>
</p>
</s2>
......
......@@ -21,7 +21,8 @@
<s1 title="Releases Archive">
<s2 title="Release Information for earlier releases">
<ul>
<li><link anchor="Release320">Release Information for &XercesCName; 3.2.0</link></li>
<li><link anchor="Release321">Release Information for &XercesCName; 3.2.1</link></li>
<li><link anchor="Release320">Release Information for &XercesCName; 3.2.0</link></li>
<li><link anchor="Release314">Release Information for &XercesCName; 3.1.4</link></li>
<li><link anchor="Release313">Release Information for &XercesCName; 3.1.3</link></li>
<li><link anchor="Release312">Release Information for &XercesCName; 3.1.2</link></li>
......@@ -53,6 +54,14 @@
</ul>
</s2>
<anchor name="Release321"/>
<s2 title="Release Information for &XercesCName; 3.2.1">
<p>For a list of bug fixes in &XercesCName; 3.2.1, see the
<jump href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12341423&amp;projectId=10510">Release Notes</jump>
</p>
</s2>
<anchor name="Release320"/>
<s2 title="Release Information for &XercesCName; 3.2.0">
......
......@@ -20,6 +20,14 @@
<s1 title="Security Advisories">
<s2 title="Addressed in 3.2.1 and Later Releases">
<p>The following security advisories apply to versions of
Xerces-C older than V3.2.1:</p>
<ul>
<li><jump href="secadv/CVE-2017-12627.txt">CVE-2017-12627: Apache Xerces-C DTD vulnerability processing external paths</jump></li>
</ul>
</s2>
<s2 title="Addressed in 3.1.4 and Later Releases">
<p>The following security advisories apply to versions of
Xerces-C older than V3.1.4:</p>
......
dnl @synopsis AC_CXX_HAVE_STD_THREAD
dnl
dnl If the compiler supports ISO C++11 <thread> and <mutex>, define
dnl HAVE_STD_THREAD.
dnl
dnl @category Cxx
dnl @author Roger Leigh
dnl @author Roger Leigh <rleigh@codelibre.net>
dnl @version 2017-06-09
dnl @license AllPermissive
AC_DEFUN([AC_CXX_HAVE_STD_THREAD],
[AC_CACHE_CHECK(whether the compiler supports ISO C++11 <thread> and <mutex>,
ac_cv_cxx_have_std_thread,
[AC_REQUIRE([AC_CXX_HAVE_NAMESPACES])
AC_REQUIRE([ACX_PTHREAD])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
AC_TRY_COMPILE([#include <thread>
#include <mutex>
#include <iostream>
namespace
{
std::mutex m1;
std::recursive_mutex m2;
void
threadmain()
{
std::lock_guard<std::mutex> lock1(m1);
std::lock_guard<std::recursive_mutex> lock2(m2);
std::cout << "In thread" << std::endl;
}
}
],[std::thread foo(threadmain);
foo.join();
return 0;],
ac_cv_cxx_have_std_thread=yes, ac_cv_cxx_have_std_thread=no)
CFLAGS="$save_CFLAGS"
AC_LANG_RESTORE
])
if test "$ac_cv_cxx_have_std_thread" = yes; then
AC_DEFINE(HAVE_STD_THREAD,,[define if the compiler supports ISO C++11 <thread> and <mutex>])
fi
])
......@@ -7,64 +7,182 @@ dnl @author James Berry
dnl @version 2005-05-25
dnl @license AllPermissive
dnl
dnl $Id: xerces_mutexmgr_selection.m4 467302 2006-10-24 10:45:35Z amassari $
dnl $Id: xerces_mutexmgr_selection.m4 1826421 2018-03-10 21:07:56Z rleigh $
AC_DEFUN([XERCES_MUTEXMGR_SELECTION],
[
AC_REQUIRE([XERCES_NO_THREADS])
######################################################
# Test for availability of each mutex manager on this host.
# For each mutex manager that's available, and hasn't been
# disabled, add it to our list. If the mutex manager has been
# explicitly "enable"d, then vote for it strongly, in upper
# case.
######################################################
ml_list=
AC_REQUIRE([XERCES_NO_THREADS])
AC_REQUIRE([ACX_PTHREAD])
AC_MSG_CHECKING([for which Mutex Manager to use])
mutexmgr=
# If no threads is specified, use the NoThread Mutex Mgr
AS_IF([test x$xerces_cv_no_threads = xyes],
[
mutexmgr=NoThreads
AC_DEFINE([XERCES_USE_MUTEXMGR_NOTHREAD], 1, [Define to use the NoThread mutex mgr])
AC_REQUIRE([AC_CXX_HAVE_STD_THREAD])
# Use Standard C++11 threads if available
list_add=
AC_MSG_CHECKING([whether we can support the Standard C++11 threads-based MutexMgr])
AS_IF([test x$xerces_cv_no_threads = xno && test x$ac_cv_cxx_have_std_thread = xyes], [
AC_ARG_ENABLE([mutexmgr-standard],
AS_HELP_STRING([--enable-mutexmgr-standard],
[Enable Standard C++11 threads mutex manager support]),
[AS_IF([test x"$enableval" = xyes],
[list_add=STANDARD])],
[list_add=standard])
])
AS_IF([test x"$list_add" != x],
[mm_list="$mm_list -$list_add-"; AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)]
)
# Check for OS-specific mutex managers
case $host_os in
windows* | mingw*)
# Native Windows threads
list_add=
AC_MSG_CHECKING([whether we can support the Windows threads-based MutexMgr])
AS_IF([test x$xerces_cv_no_threads = xno], [
AC_ARG_ENABLE([mutexmgr-windows],
AS_HELP_STRING([--enable-mutexmgr-windows],
[Enable Windows mutex manager support]),
[AS_IF([test x"$enableval" = xyes],
[list_add=WINDOWS])],
[list_add=windows])
])
# Platform specific checks
AS_IF([test -z "$mutexmgr"],
[
AS_IF([test x"$list_add" != x],
[mm_list="$mm_list -$list_add-"; AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)]
)
break
;;
*)
# Native POSIX threads
list_add=
AC_MSG_CHECKING([whether we can support the POSIX threads (pthreads)-based MutexMgr])
AS_IF([test x$xerces_cv_no_threads = xno], [
AC_ARG_ENABLE([mutexmgr-posix],
AS_HELP_STRING([--enable-mutexmgr-posix],
[Enable POSIX mutex manager support]),
[AS_IF([test x"$enableval" = xyes],
[list_add=POSIX])],
[list_add=posix])
])
AS_IF([test x"$list_add" != x],
[mm_list="$mm_list -$list_add-"; AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)]
)
break
;;
esac
# If no threads is specified, use the NoThread Mutex Mgr
list_add=
AC_MSG_CHECKING([whether we can support the NoThreads MutexMgr])
AC_ARG_ENABLE([mutexmgr-nothreads],
AS_HELP_STRING([--enable-mutexmgr-nothreads],
[Enable NoThreads mutex manager support (no threading)]),
[AS_IF([test x"$enableval" = xyes],
[list_add=NOTHREADS])],
[list_add=nothreads])
AS_IF([test x"$list_add" != x],
[mm_list="$mm_list -$list_add-"; AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)]
)
######################################################
# Determine which mutex manager to use.
#
# We do this in two passes. Mutex managers that have been
# enabled with "yes", and which start out in upper case, get
# the top priority on the first pass. On the second pass, we
# consider those which are simply available, but which were
# not "disable"d (these won't even be in our list).
######################################################
mutexmgr=
az_lower=abcdefghijklmnopqrstuvwxyz
az_upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
AC_MSG_CHECKING([for which mutex manager to use (choices:$mm_list)])
for i in 1 2; do
# Swap upper/lower case in the mm_list. Cannot use tr ranges
# because of the portability issues.
#
mm_list=`echo $mm_list | tr "$az_lower$az_upper" "$az_upper$az_lower"`
# Check for each mutexmgr, in implicit rank order
case $mm_list in
*-standard-*)
mutexmgr=standard;
AC_DEFINE([XERCES_USE_MUTEXMGR_STD], 1, [Define to use the C++ standard mutex mgr (requires C++11)])
case $host_os in
windows* | cygwin* | mingw*)
mutexmgr=Windows;
AC_DEFINE([XERCES_USE_MUTEXMGR_WINDOWS], 1, [Define to use the Windows mutex mgr])
case $host_os in
mingw*)
CXXFLAGS="${CXXFLAGS} -mthreads"
;;
esac
mingw*)
CXXFLAGS="${CXXFLAGS} -mthreads"
;;
esac
])
# Fall back to using posix mutex id we can
AS_IF([test -z "$mutexmgr" && test x$acx_pthread_ok = xyes],
[
if test "$acx_pthread_ok" = yes; then
LIBS="${LIBS} ${PTHREAD_LIBS}"
CXXFLAGS="${CXXFLAGS} ${PTHREAD_CFLAGS}"
fi
break
;;
*-posix-*)
mutexmgr=POSIX;
AC_DEFINE([XERCES_USE_MUTEXMGR_POSIX], 1, [Define to use the POSIX mutex mgr])
# Set additional flags for link and compile
LIBS="${LIBS} ${PTHREAD_LIBS}"
CXXFLAGS="${CXXFLAGS} ${PTHREAD_CFLAGS}"
])
# If we still didn't find a mutex package, bail
AS_IF([test -z "$mutexmgr"],
[AC_MSG_ERROR([Xerces cannot function without mutex support. You may want to --disable-threads.])])
break
;;
*-windows-*)
mutexmgr=Windows;
AC_DEFINE([XERCES_USE_MUTEXMGR_WINDOWS], 1, [Define to use the Windows mutex mgr])
case $host_os in
mingw*)
CXXFLAGS="${CXXFLAGS} -mthreads"
;;
esac
break
;;
*-nothreads-*)
mutexmgr=NoThreads
AC_DEFINE([XERCES_USE_MUTEXMGR_NOTHREAD], 1, [Define to use the NoThread mutex mgr])
break
;;
*)
AS_IF([test $i -eq 2], [
AC_MSG_RESULT([Xerces cannot function without mutex support. You may want to --disable-threads.])
]
)
;;
esac
done
if test x"$mutexmgr" != x; then
AC_MSG_RESULT($mutexmgr)
fi
AC_MSG_RESULT($mutexmgr)
# Define the auto-make conditionals which determine what actually gets compiled
# Note that these macros can't be executed conditionally, which is why they're here, not above.
AM_CONDITIONAL([XERCES_USE_MUTEXMGR_NOTHREAD], [test x"$mutexmgr" = xNoThreads])
AM_CONDITIONAL([XERCES_USE_MUTEXMGR_STD], [test x"$mutexmgr" = xstandard])
AM_CONDITIONAL([XERCES_USE_MUTEXMGR_POSIX], [test x"$mutexmgr" = xPOSIX])
AM_CONDITIONAL([XERCES_USE_MUTEXMGR_WINDOWS], [test x"$mutexmgr" = xWindows])
]
)
......
This diff is collapsed.
......@@ -603,6 +603,7 @@ set(util_sources
xercesc/util/EncodingValidator.cpp
xercesc/util/HeaderDummy.cpp
xercesc/util/HexBin.cpp
xercesc/util/JanitorExports.cpp
xercesc/util/KVStringPair.cpp
xercesc/util/Mutexes.cpp
xercesc/util/PanicHandler.cpp
......@@ -1008,6 +1009,14 @@ set(nothreadmmgr_sources
xercesc/util/MutexManagers/NoThreadMutexMgr.cpp
)
set(stdmmgr_headers
xercesc/util/MutexManagers/StdMutexMgr.hpp
)
set(stdmmgr_sources
xercesc/util/MutexManagers/StdMutexMgr.cpp
)
set(posixmmgr_headers
xercesc/util/MutexManagers/PosixMutexMgr.hpp
)
......@@ -1200,6 +1209,12 @@ if(XERCES_USE_MUTEXMGR_NOTHREAD)
list(APPEND libxerces_c_HEADERS ${nothreadmmgr_headers})
endif()
if(XERCES_USE_MUTEXMGR_STD)
list(APPEND libxerces_c_SOURCES ${stdmmgr_sources})
list(APPEND libxerces_c_HEADERS ${stdmmgr_headers})
list(APPEND libxerces_c_DEPS Threads::Threads)
endif()
if(XERCES_USE_MUTEXMGR_POSIX)
list(APPEND libxerces_c_SOURCES ${posixmmgr_sources})
list(APPEND libxerces_c_HEADERS ${posixmmgr_headers})
......@@ -1224,6 +1239,16 @@ if(XERCES_USE_FILEMGR_WINDOWS)
list(APPEND libxerces_c_HEADERS ${winfmgr_headers})
endif()
# Windows resource. With some additional work to clean it up, it
# might be possible to use with Cygwin and MinGW.
if(MSVC)
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/xercesc/util/version.rc.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/xercesc/util/version.rc"
@ONLY)
list(APPEND libxerces_c_RESOURCES "${CMAKE_CURRENT_BINARY_DIR}/xercesc/util/version.rc")
endif()
# Definitions required for building
add_definitions(
-DHAVE_CONFIG_H=1
......@@ -1244,7 +1269,8 @@ add_custom_target(xerces-c-headers SOURCES ${libxerces_c_HEADERS})
set_target_properties(xerces-c-headers PROPERTIES FOLDER "Library")
add_library(xerces-c
${libxerces_c_SOURCES})
${libxerces_c_SOURCES}
${libxerces_c_RESOURCES})
target_link_libraries(xerces-c ${libxerces_c_DEPS})
if(XERCES_USE_NETACCESSOR_CURL)
target_include_directories(xerces-c SYSTEM PRIVATE ${CURL_INCLUDE_DIRS})
......
......@@ -16,7 +16,7 @@
#
#
# $Id: Makefile.am 1824713 2018-02-18 23:07:07Z rleigh $
# $Id: Makefile.am 1840539 2018-09-11 10:40:26Z rleigh $
#
DEFS += -DXERCES_BUILDING_LIBRARY
......@@ -61,6 +61,7 @@ EXTRA_DIST = CMakeLists.txt \
xercesc/NLS \
xercesc/util/Xerces_autoconf_config.hpp.cmake.in \
xercesc/util/XercesVersion.hpp.cmake.in \
xercesc/util/version.rc.cmake.in \
xercesc/util/MsgLoaders/ICU/resources
libxerces_c_la_LIBADD = ${LTLIBOBJS}
......@@ -173,6 +174,11 @@ libxerces_c_la_SOURCES += ${nothreadmmgr_sources}
nobase_libxerces_c_la_HEADERS += ${nothreadmmgr_headers}
endif
if XERCES_USE_MUTEXMGR_STD
libxerces_c_la_SOURCES += ${stdmmgr_sources}
nobase_libxerces_c_la_HEADERS += ${stdmmgr_headers}
endif
if XERCES_USE_MUTEXMGR_POSIX
libxerces_c_la_SOURCES += ${posixmmgr_sources}
nobase_libxerces_c_la_HEADERS += ${posixmmgr_headers}
......@@ -743,6 +749,7 @@ util_sources = \
xercesc/util/EncodingValidator.cpp \
xercesc/util/HeaderDummy.cpp \
xercesc/util/HexBin.cpp \
xercesc/util/JanitorExports.cpp \
xercesc/util/KVStringPair.cpp \
xercesc/util/Mutexes.cpp \
xercesc/util/PanicHandler.cpp \
......@@ -1117,6 +1124,12 @@ nothreadmmgr_headers = \
nothreadmmgr_sources = \
xercesc/util/MutexManagers/NoThreadMutexMgr.cpp
stdmmgr_headers = \
xercesc/util/MutexManagers/StdMutexMgr.hpp
stdmmgr_sources = \
xercesc/util/MutexManagers/StdMutexMgr.cpp
posixmmgr_headers = \
xercesc/util/MutexManagers/PosixMutexMgr.hpp
......
This diff is collapsed.
......@@ -16,7 +16,7 @@
*/
/*
* $Id: DOMNode.hpp 932889 2010-04-11 13:10:10Z borisk $
* $Id: DOMNode.hpp 1840502 2018-09-10 23:11:13Z scantor $
*/
#if !defined(XERCESC_INCLUDE_GUARD_DOMNODE_HPP)
......@@ -738,7 +738,10 @@ public:
virtual short compareDocumentPosition(const DOMNode* other) const = 0;
/**
* This attribute returns the text content of this node and its
* <strong>WARNING:</strong> This method is known to be buggy and does
* not produce accurate results under a variety of conditions.
*
* <br>This attribute returns the text content of this node and its
* descendants. No serialization is performed, the returned string
* does not contain any markup. No whitespace normalization is
* performed and the returned string does not contain the white
......
......@@ -16,7 +16,7 @@
*/
/*
* $Id: Janitor.hpp 1449010 2013-02-22 12:02:22Z amassari $
* $Id: Janitor.hpp 1826420 2018-03-10 21:01:56Z rleigh $
*/
#if !defined(XERCESC_INCLUDE_GUARD_JANITOR_HPP)
......@@ -155,6 +155,8 @@ private :
};
XERCES_TEMPLATE_EXTERN template class XMLUTIL_EXPORT ArrayJanitor<XMLByte>;
XERCES_TEMPLATE_EXTERN template class XMLUTIL_EXPORT ArrayJanitor<XMLCh>;
XERCES_CPP_NAMESPACE_END
......
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <xercesc/util/Janitor.hpp>
XERCES_CPP_NAMESPACE_BEGIN
template class ArrayJanitor<XMLByte>;
template class ArrayJanitor<XMLCh>;
XERCES_CPP_NAMESPACE_END
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* $Id$
*/
#include <mutex>
#include <xercesc/util/MutexManagers/StdMutexMgr.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/util/RuntimeException.hpp>
#include <xercesc/util/PanicHandler.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// Wrap up the mutex with XMemory
class StdMutexWrap : public XMemory {
public:
std::recursive_mutex m;
};
StdMutexMgr::StdMutexMgr()
{
}
StdMutexMgr::~StdMutexMgr()
{
}
XMLMutexHandle
StdMutexMgr::create(MemoryManager* const manager)
{
StdMutexWrap* mutex = new (manager) StdMutexWrap;
return (void*)(mutex);
}
void
StdMutexMgr::destroy(XMLMutexHandle mtx, MemoryManager* const manager)
{
StdMutexWrap* mutex = (StdMutexWrap*)(mtx);
if (mutex != NULL)
{
delete mutex;
}
}
void
StdMutexMgr::lock(XMLMutexHandle mtx)
{
StdMutexWrap* mutex = (StdMutexWrap*)(mtx);
if (mutex != NULL)
{
mutex->m.lock();
}
}
void
StdMutexMgr::unlock(XMLMutexHandle mtx)
{
StdMutexWrap* mutex = (StdMutexWrap*)(mtx);
if (mutex != NULL)
{
mutex->m.unlock();
}
}
XERCES_CPP_NAMESPACE_END
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* $Id$
*/
#if !defined(XERCESC_INCLUDE_GUARD_STDMUTEXMGR_HPP)
#define XERCESC_INCLUDE_GUARD_STDMUTEXMGR_HPP
#include <xercesc/util/XMLMutexMgr.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// Std mutex implementation.
class StdMutexMgr : public XMLMutexMgr
{
public:
StdMutexMgr();
virtual ~StdMutexMgr();
// Mutex operations
virtual XMLMutexHandle create(MemoryManager* const manager);
virtual void destroy(XMLMutexHandle mtx, MemoryManager* const manager);
virtual void lock(XMLMutexHandle mtx);
virtual void unlock(XMLMutexHandle mtx);
};
XERCES_CPP_NAMESPACE_END
#endif
......@@ -16,7 +16,7 @@
*/
/*
* $Id: CurlURLInputStream.cpp 936317 2010-04-21 14:20:51Z borisk $
* $Id: CurlURLInputStream.cpp 1840352 2018-09-08 10:42:56Z rleigh $
*/
#if HAVE_CONFIG_H
......@@ -333,8 +333,14 @@ bool CurlURLInputStream::readMore(int *runningHandles)
// Wait on the file descriptors
timeval tv;
tv.tv_sec = 2;
tv.tv_usec = 0;
long multi_timeout = 0;
curl_multi_timeout(fMulti, &multi_timeout);
if (multi_timeout < 0)
multi_timeout = 1000;
tv.tv_sec = multi_timeout / 1000;
tv.tv_usec = (multi_timeout % 1000) * 1000;
select(fdcnt+1, &readSet, &writeSet, &exceptSet, &tv);
}
......
......@@ -16,7 +16,7 @@
*/
/*
* $Id: PlatformUtils.cpp 1823971 2018-02-12 14:02:05Z rleigh $
* $Id: PlatformUtils.cpp 1826421 2018-03-10 21:07:56Z rleigh $
*
*/
......@@ -69,6 +69,9 @@
#if XERCES_USE_MUTEXMGR_NOTHREAD
# include <xercesc/util/MutexManagers/NoThreadMutexMgr.hpp>
#endif
#if XERCES_USE_MUTEXMGR_STD
# include <xercesc/util/MutexManagers/StdMutexMgr.hpp>
#endif
#if XERCES_USE_MUTEXMGR_POSIX
# include <xercesc/util/MutexManagers/PosixMutexMgr.hpp>
#endif
......@@ -721,6 +724,8 @@ XMLMutexMgr* XMLPlatformUtils::makeMutexMgr(MemoryManager* const memmgr)
#if XERCES_USE_MUTEXMGR_NOTHREAD
mgr = new (memmgr) NoThreadMutexMgr;
#elif XERCES_USE_MUTEXMGR_STD
mgr = new (memmgr) StdMutexMgr;
#elif XERCES_USE_MUTEXMGR_POSIX
mgr = new (memmgr) PosixMutexMgr;
#elif XERCES_USE_MUTEXMGR_WINDOWS
......
......@@ -16,7 +16,7 @@
*/
/*
* $Id: TransService.hpp 1820126 2018-01-04 16:48:15Z rleigh $
* $Id: TransService.hpp 1826420 2018-03-10 21:01:56Z rleigh $
*/
#if !defined(XERCESC_INCLUDE_GUARD_TRANSSERVICE_HPP)
......@@ -461,9 +461,6 @@ private :
XMLLCPTranscoder& operator=(const XMLLCPTranscoder&);
};
template class XMLUTIL_EXPORT ArrayJanitor<XMLByte>;
template class XMLUTIL_EXPORT ArrayJanitor<XMLCh>;
//
// This class can be used to transcode to a target encoding. It manages the
// memory allocated for the transcode in an exception safe manner, automatically
......
......@@ -84,6 +84,7 @@
#cmakedefine XERCES_STATIC_LIBRARY 1
#define XERCES_PLATFORM_EXPORT @XERCES_PLATFORM_EXPORT@
#define XERCES_PLATFORM_IMPORT @XERCES_PLATFORM_IMPORT@
#define XERCES_TEMPLATE_EXTERN @XERCES_TEMPLATE_EXTERN@
#ifdef XERCES_DLL_EXPORT
# define DLL_EXPORT
#endif
......
......@@ -16,7 +16,7 @@
*/
/*
* $Id: Xerces_autoconf_config.hpp.in 1824295 2018-02-15 11:17:15Z rleigh $
* $Id: Xerces_autoconf_config.hpp.in 1826420 2018-03-10 21:01:56Z rleigh $
*/
//
......@@ -80,6 +80,7 @@
#undef XERCES_PLATFORM_EXPORT
#undef XERCES_PLATFORM_IMPORT
#undef XERCES_TEMPLATE_EXTERN
#undef XERCES_NO_MATCHING_DELETE_OPERATOR
......
#include <windows.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION @xerces-c_VERSION_MAJOR@,@xerces-c_VERSION_MINOR@,@xerces-c_VERSION_PATCH@,0
PRODUCTVERSION @xerces-c_VERSION_MAJOR@,@xerces-c_VERSION_MINOR@,@xerces-c_VERSION_PATCH@,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
#else
FILEFLAGS 0x0L
#endif
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "Comments", "Dynamic linked library for Xerces-C++\0"
VALUE "CompanyName", "Apache Software Foundation\0"
VALUE "FileDescription", "Shared Library for Xerces-C++ Version @xerces-c_VERSION@\0"
VALUE "FileVersion", "@xerces-c_VERSION_MAJOR@, @xerces-c_VERSION_MINOR@, @xerces-c_VERSION_PATCH@\0"
VALUE "InternalName", XERCES_DLL_NAME
VALUE "LegalCopyright", "Copyright 1999-2018 Apache Software Foundation; subject to licensing terms\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", XERCES_DLL_NAME
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "Xerces-C++ Version @xerces-c_VERSION@\0"
VALUE "ProductVersion", "@xerces-c_VERSION_MAJOR@, @xerces-c_VERSION_MINOR@, @xerces-c_VERSION_PATCH@\0"
VALUE "SpecialBuild", "\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 0x04e4
END
END
This diff is collapsed.
Summary: Xerces-C++ validating XML parser
Name: xerces-c
Version: 3.2.1
Version: 3.2.2
Release: 1
URL: http://xerces.apache.org/xerces-c/
Source0: %{name}-%{version}.tar.gz
Source0: %{name}-%{version}.tar.bz2
License: Apache
Group: Libraries
BuildRoot: %{_tmppath}/%{name}-root
......