<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/a4218824607fea3e95eadf63cd06ba075f9e2d9d">https://github.com/macports/macports-ports/commit/a4218824607fea3e95eadf63cd06ba075f9e2d9d</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit a4218824607fea3e95eadf63cd06ba075f9e2d9d
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Fri Aug 18 21:04:42 2023 -0500
<span style='display:block; white-space:pre;color:#404040;'> libvmime: Update to 0.9.2
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/41292
</span>---
mail/libvmime/Portfile | 65 +++---
.../3878c6b691a66cdc96cb3ab72d534d84a212433f.diff | 32 ---
.../files/expected-value-in-expression.patch | 64 ++++++
mail/libvmime/files/patch-automake-1.13.diff | 11 -
mail/libvmime/files/patch-m4-acx_pthread.m4.diff | 238 ---------------------
.../files/templates-must-have-C++-linkage.patch | 24 +++
.../files/use-of-undeclared-identifier-FALSE.patch | 44 ++++
7 files changed, 168 insertions(+), 310 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/libvmime/Portfile b/mail/libvmime/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 0ca72de79d8..b1a14aedf6f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mail/libvmime/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mail/libvmime/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,13 +1,17 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup kisli vmime 0.9.2 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 93e0ff43ba0221df62fc50198dd494dfc4b6a82e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 9874bf911a7dbc257297ab00f7541875da221ee8251a4218cc65abff6e362399 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 528830
</span>
name libvmime
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 0.9.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set branch [join [lrange [split ${version} .] 0 1] .]
</span> categories mail devel
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms darwin
</span> maintainers nomaintainer
license GPL-2+
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -15,41 +19,44 @@ description library for dealing with RFC-822, 2822, MIME messages
</span>
long_description VMime is a C++ class library for parsing, generating, or \
editing Internet RFC-822, 2822 and MIME messages. It is \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- designed to provide a fast and an easy way to manipulate \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ designed to provide a fast and easy way to manipulate \
</span> Internet mail messages.
homepage https://www.vmime.org/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites sourceforge:project/vmime/vmime/${branch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use_bzip2 yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 ebdca890dee9466e63cf43dced40d5527bb3fc4e \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 3b66cb76d9bc7da80ef1f271cc29d3a183b5ff8b560ef60e85ff006bffb4d1ae
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles 3878c6b691a66cdc96cb3ab72d534d84a212433f.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-automake-1.13.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-m4-acx_pthread.m4.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from archive
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_build port:autoconf \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:automake \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libtool \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:pkgconfig \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:scons
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ path:bin/pkg-config:pkgconfig
</span>
depends_lib path:lib/pkgconfig/gnutls.pc:gnutls \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ path:lib/pkgconfig/icu-uc.pc:icu \
</span> port:libgsasl
<span style='display:block; white-space:pre;background:#ffe0e0;'>-pre-configure {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath} "${prefix}/bin/scons autotools"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # DOS to UNIX line endings so we can patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -W ${worksrcpath} "s|\r||g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/vmime/charsetConverter_icu.cpp
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# disable static library because it doesn't seem to get built very well
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args --disable-static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles expected-value-in-expression.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ templates-must-have-C++-linkage.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ use-of-undeclared-identifier-FALSE.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2011
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args -DVMIME_BUILD_DOCUMENTATION=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DVMIME_BUILD_SAMPLES=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DVMIME_CHARSETCONV_LIB=icu \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DVMIME_TLS_SUPPORT_LIB=gnutls
</span>
post-destroot {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${destroot}${prefix}/share/doc/vmime \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set docdir ${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${docdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0644 -W ${worksrcpath} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AUTHORS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ COPYING \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HACKING \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ README \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${docdir}
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.type regex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.url http://www.vmime.org/downloads.html
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex ${name}-(\[0-9.\]+)${extract.suffix}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/libvmime/files/3878c6b691a66cdc96cb3ab72d534d84a212433f.diff b/mail/libvmime/files/3878c6b691a66cdc96cb3ab72d534d84a212433f.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index b37c20baa0a..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mail/libvmime/files/3878c6b691a66cdc96cb3ab72d534d84a212433f.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,32 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-https://github.com/kisli/vmime/commit/3878c6b691a66cdc96cb3ab72d534d84a212433f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- vmime/address.hpp.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ vmime/address.hpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -41,8 +41,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class address : public headerFieldValue
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- friend class addressList;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- protected:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- address();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -65,8 +63,6 @@ class address : public headerFieldValue
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- virtual ref <component> clone() const = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--protected:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /** Parse an address from an input buffer.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * @param buffer input buffer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- vmime/base.hpp.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ vmime/base.hpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -251,7 +251,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- template <class X, class Y>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ref <X> dynamicCast(ref <Y> y)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return y.dynamicCast <X>();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return y.template dynamicCast <X>();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /** Inherit from this class to indicate the subclass is not copyable,
</span>\ No newline at end of file
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/libvmime/files/expected-value-in-expression.patch b/mail/libvmime/files/expected-value-in-expression.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..5bbd4eee44c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mail/libvmime/files/expected-value-in-expression.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,64 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+error: expected value in expression
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+error: no matching constructor for initialization of 'const std::string' (aka 'const basic_string<char>')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/kisli/vmime/issues/138
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/kisli/vmime/commit/8d3ea37b554d1a9f3d98d72eac1d8e539c223454
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/vmime/platforms/posix/posixSocket.cpp.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/vmime/platforms/posix/posixSocket.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -59,6 +59,32 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// Workaround for detection of strerror_r variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if VMIME_HAVE_STRERROR_R
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++namespace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char* vmime_strerror_r_result(int /* res */, char* buf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // XSI-compliant prototype:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // int strerror_r(int errnum, char *buf, size_t buflen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char* vmime_strerror_r_result(char* res, char* /* buf */)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // GNU-specific prototype:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // char *strerror_r(int errnum, char *buf, size_t buflen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return res;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif // VMIME_HAVE_STRERROR_R
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace vmime {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace platforms {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace posix {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -872,20 +898,7 @@ void posixSocket::throwSocketError(const int err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if VMIME_HAVE_STRERROR_R
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char errbuf[512];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- #if (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // XSI-compliant strerror_r()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- strerror_r(err, errbuf, sizeof(errbuf));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- throw exceptions::socket_exception(errbuf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // GNU-specific strerror_r()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- const std::string strmsg(strerror_r(err, errbuf, sizeof(errbuf)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- throw exceptions::socket_exception(strmsg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ throw exceptions::socket_exception(vmime_strerror_r_result(strerror_r(err, errbuf, sizeof(errbuf)), errbuf));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else // !VMIME_HAVE_STRERROR_R
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/libvmime/files/patch-automake-1.13.diff b/mail/libvmime/files/patch-automake-1.13.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index ea3bc7f2ba1..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mail/libvmime/files/patch-automake-1.13.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- SConstruct.orig 2010-05-20 04:33:00.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ SConstruct 2013-01-09 17:27:57.000000000 -0600
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1287,7 +1287,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AM_INIT_AUTOMAKE(""" + packageGenericName + """, """ + packageVersion + """)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_CONFIG_SRCDIR([src/base.cpp])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--AM_CONFIG_HEADER([config.h])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_CONFIG_HEADERS([config.h])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AM_MAINTAINER_MODE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/libvmime/files/patch-m4-acx_pthread.m4.diff b/mail/libvmime/files/patch-m4-acx_pthread.m4.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 94f29cd41b8..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mail/libvmime/files/patch-m4-acx_pthread.m4.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,238 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- m4/acx_pthread.m4 (revision 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ m4/acx_pthread.m4 (revision 445)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,235 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl This macro figures out how to build C programs using POSIX threads.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl It sets the PTHREAD_LIBS output variable to the threads library and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl linker flags, and the PTHREAD_CFLAGS output variable to any special
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl C compiler flags that are needed. (The user can also force certain
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl compiler flags/libs to be tested by setting these environment
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl variables.)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl Also sets PTHREAD_CC to any special C compiler that is needed for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl multi-threaded programs (defaults to the value of CC otherwise).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl (This is necessary on AIX to use the special cc_r compiler alias.)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl NOTE: You are assumed to not only compile your program with these
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl flags, but also link it with them as well. e.g. you should link
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl $LIBS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl If you are only building threads programs, you may wish to use
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl these variables in your default LIBS, CFLAGS, and CC:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl LIBS="$PTHREAD_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl CC="$PTHREAD_CC"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl ACTION-IF-FOUND is a list of shell commands to run if a threads
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl library is found, and ACTION-IF-NOT-FOUND is a list of commands to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl run it if it is not found. If ACTION-IF-FOUND is not specified, the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl default action will define HAVE_PTHREAD.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl Please let the authors know if this macro fails on any platform, or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl if you have any other suggestions or comments. This macro was based
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl on work by SGJ on autoconf scripts for FFTW (www.fftw.org) (with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl help from M. Frigo), as well as ac_pthread and hb_pthread macros
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl posted by Alejandro Forero Cuervo to the autoconf macro repository.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl We are also grateful for the helpful feedback of numerous users.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl @category InstalledPackages
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl @author Steven G. Johnson <stevenj@alum.mit.edu>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl @version 2005-01-14
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+dnl @license GPLWithACException
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_DEFUN([ACX_PTHREAD], [
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_REQUIRE([AC_CANONICAL_HOST])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_LANG_SAVE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_LANG_C
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+acx_pthread_ok=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# We used to check for pthread.h first, but this fails if pthread.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# requires special compiler flags (e.g. on True64 or Sequent).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# It gets checked for in the link test anyway.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# First of all, check if the user has set any of the PTHREAD_LIBS,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# etcetera environment variables, and if threads linking works using
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# them:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ save_CFLAGS="$CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ save_LIBS="$LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ LIBS="$PTHREAD_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_MSG_RESULT($acx_pthread_ok)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if test x"$acx_pthread_ok" = xno; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PTHREAD_LIBS=""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PTHREAD_CFLAGS=""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ LIBS="$save_LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CFLAGS="$save_CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# We must check for the threads library under a number of different
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# names; the ordering is very important because some systems
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# libraries is broken (non-POSIX).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Create a list of thread flags to try. Items starting with a "-" are
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# C compiler flags, and other items are library names, except for "none"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# which indicates that we try without any flags at all, and "pthread-config"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# which is a program returning the flags for the Pth emulation library.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# The ordering *is* (sometimes) important. Some notes on the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# individual items follow:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# pthreads: AIX (must check this before -lpthread)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# none: in case threads are in libc; should be tried before -Kthread and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# other compiler flags to prevent continual compiler warnings
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# -pthreads: Solaris/gcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# -mthreads: Mingw32/gcc, Lynx/gcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# doesn't hurt to check since this sometimes defines pthreads too;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# also defines -D_REENTRANT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# pthread: Linux, etcetera
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# --thread-safe: KAI C++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# pthread-config: use pthread-config program (for GNU Pth library)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+case "${host_cpu}-${host_os}" in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *solaris*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # On Solaris (at least, for some versions), libc contains stubbed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # (non-functional) versions of the pthreads routines, so link-based
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # tests will erroneously succeed. (We need to link with -pthread or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # a function called by this macro, so we could check for that, but
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # who knows whether they'll stub that too in a future libc.) So,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # we'll just look for -pthreads and -lpthread first:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+esac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test x"$acx_pthread_ok" = xno; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+for flag in $acx_pthread_flags; do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case $flag in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ none)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_MSG_CHECKING([whether pthreads work without any flags])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ -*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_MSG_CHECKING([whether pthreads work with $flag])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PTHREAD_CFLAGS="$flag"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pthread-config)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if test x"$acx_pthread_config" = xno; then continue; fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PTHREAD_CFLAGS="`pthread-config --cflags`"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_MSG_CHECKING([for the pthreads library -l$flag])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PTHREAD_LIBS="-l$flag"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ esac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ save_LIBS="$LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ save_CFLAGS="$CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ LIBS="$PTHREAD_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # Check for various functions. We must include pthread.h,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # since some functions may be macros. (On the Sequent, we
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # need a special flag -Kthread to make this header compile.)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # We check for pthread_join because it is in -lpthread on IRIX
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # while pthread_create is in libc. We check for pthread_attr_init
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # due to DEC craziness with -lpthreads. We check for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # pthread_cleanup_push because it is one of the few pthread
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # functions on Solaris that doesn't have a non-functional libc stub.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # We try pthread_create on general principles.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_TRY_LINK([#include <pthread.h>],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ [pthread_t th; pthread_join(th, 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pthread_attr_init(0); pthread_cleanup_push(0, 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ [acx_pthread_ok=yes])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ LIBS="$save_LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CFLAGS="$save_CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_MSG_RESULT($acx_pthread_ok)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if test "x$acx_pthread_ok" = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PTHREAD_LIBS=""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PTHREAD_CFLAGS=""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+done
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Various other checks:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test "x$acx_pthread_ok" = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ save_LIBS="$LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ LIBS="$PTHREAD_LIBS $LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ save_CFLAGS="$CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_MSG_CHECKING([for joinable pthread attribute])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ attr_name=unknown
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_TRY_LINK([#include <pthread.h>], [int attr=$attr;],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ [attr_name=$attr; break])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ done
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_MSG_RESULT($attr_name)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ [Define to necessary symbol if this constant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ uses a non-standard name on your system.])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_MSG_CHECKING([if more special flags are required for pthreads])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ flag=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case "${host_cpu}-${host_os}" in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ esac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_MSG_RESULT(${flag})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if test "x$flag" != xno; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ LIBS="$save_LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CFLAGS="$save_CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # More AIX lossage: must compile with cc_r
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PTHREAD_CC="$CC"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_SUBST(PTHREAD_LIBS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_SUBST(PTHREAD_CFLAGS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_SUBST(PTHREAD_CC)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test x"$acx_pthread_ok" = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ acx_pthread_ok=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ $2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_LANG_RESTORE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+])dnl ACX_PTHREAD
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/libvmime/files/templates-must-have-C++-linkage.patch b/mail/libvmime/files/templates-must-have-C++-linkage.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b8812102749
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mail/libvmime/files/templates-must-have-C++-linkage.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+error: templates must have C++ linkage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/kisli/vmime/issues/218
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/kisli/vmime/commit/7168f3c4eebcdc0c27d715adbf3d2a22a93d800b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/vmime/charsetConverter_icu.cpp.orig 2023-08-17 18:21:08.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/vmime/charsetConverter_icu.cpp 2023-08-17 18:21:38.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,15 +34,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "vmime/utility/outputStreamStringAdapter.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-extern "C"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef VMIME_BUILDING_DOC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/ucnv.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/ucnv_err.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif // VMIME_BUILDING_DOC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/unistr.h>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/libvmime/files/use-of-undeclared-identifier-FALSE.patch b/mail/libvmime/files/use-of-undeclared-identifier-FALSE.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b3b001de6b5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mail/libvmime/files/use-of-undeclared-identifier-FALSE.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+error: use of undeclared identifier 'FALSE'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/kisli/vmime/issues/247
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/kisli/vmime/commit/ec5b8f7cfe38e58b38eb5613b63b4b8f1a8343e0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/vmime/charsetConverter_icu.cpp.orig 2023-08-18 17:47:14.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/vmime/charsetConverter_icu.cpp 2023-08-18 17:48:50.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -359,7 +359,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toErr = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ucnv_toUnicode(m_from, &uniTarget, uniTargetLimit,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- &uniSource, uniSourceLimit, NULL, /* flush */ FALSE, &toErr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ &uniSource, uniSourceLimit, NULL, /* flush */ UBool(0), &toErr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (U_FAILURE(toErr) && toErr != U_BUFFER_OVERFLOW_ERROR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -396,7 +396,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fromErr = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ucnv_fromUnicode(m_to, &cpTarget, cpTargetLimit,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- &cpSource, cpSourceLimit, NULL, /* flush */ FALSE, &fromErr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ &cpSource, cpSourceLimit, NULL, /* flush */ UBool(0), &fromErr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (fromErr != U_BUFFER_OVERFLOW_ERROR && U_FAILURE(fromErr))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -448,7 +448,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toErr = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ucnv_toUnicode(m_from, &uniTarget, uniTargetLimit,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- &uniSource, uniSourceLimit, NULL, /* flush */ TRUE, &toErr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ &uniSource, uniSourceLimit, NULL, /* flush */ UBool(1), &toErr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (U_FAILURE(toErr) && toErr != U_BUFFER_OVERFLOW_ERROR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -476,7 +476,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fromErr = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ucnv_fromUnicode(m_to, &cpTarget, cpTargetLimit,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- &cpSource, cpSourceLimit, NULL, /* flush */ TRUE, &fromErr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ &cpSource, cpSourceLimit, NULL, /* flush */ UBool(1), &fromErr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (fromErr != U_BUFFER_OVERFLOW_ERROR && U_FAILURE(fromErr))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span></pre><pre style='margin:0'>
</pre>