<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>