<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/a6a321c3be0395f4fc884cbfb607234e4fb7eb1f">https://github.com/macports/macports-ports/commit/a6a321c3be0395f4fc884cbfb607234e4fb7eb1f</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new a6a321c  icu: fix build on 10.9
</span>a6a321c is described below

<span style='display:block; white-space:pre;color:#808000;'>commit a6a321c3be0395f4fc884cbfb607234e4fb7eb1f
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Tue Oct 22 03:49:45 2019 +1100

<span style='display:block; white-space:pre;color:#404040;'>    icu: fix build on 10.9
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    C++11 does not guarantee that max_align_t will be defined unless you
</span><span style='display:block; white-space:pre;color:#404040;'>    but under the std namespace.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Technically 10.9 is broken in that it doesn't implement the C
</span><span style='display:block; white-space:pre;color:#404040;'>    compatibility header <stddef.h> correctly in C++, but that is
</span><span style='display:block; white-space:pre;color:#404040;'>    deprecated anyway, so using std::max_align_t is better all round.
</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/59391
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://github.com/macports/macports-ports/pull/5564
</span>---
 devel/icu/Portfile                |  2 +
 devel/icu/files/max_align_t.patch | 89 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 91 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/icu/Portfile b/devel/icu/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 3e2dc61..7deed66 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/icu/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/icu/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -67,6 +67,8 @@ if { [vercmp ${version} 59] < 0 } {
</span>                             size    34655619
 } else {
     compiler.cxx_standard   2011
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://trac.macports.org/ticket/59391
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append       max_align_t.patch
</span> }
 
 worksrcdir      icu-release-[join [split ${version} .] -]/${my_name}/source
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/icu/files/max_align_t.patch b/devel/icu/files/max_align_t.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..d761b6a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/icu/files/max_align_t.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,89 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- tools/toolutil/toolutil.cpp.orig       2019-10-03 07:30:54.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ tools/toolutil/toolutil.cpp    2019-10-22 03:07:00.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -60,6 +60,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <errno.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <cstddef>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/errorcode.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/putil.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "cmemory.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -243,7 +245,7 @@ struct UToolMemory {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     char name[64];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int32_t capacity, maxCapacity, size, idx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void *array;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    alignas(max_align_t) char staticArray[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    alignas(std::max_align_t) char staticArray[1];
</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;'>+ U_CAPI UToolMemory * U_EXPORT2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- common/uarrsort.cpp.orig       2019-10-03 07:30:54.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ common/uarrsort.cpp    2019-10-22 03:10:45.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,6 +18,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *   Internal function for sorting arrays.
</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 <cstddef>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/utypes.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "cmemory.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "uarrsort.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,7 +37,7 @@ enum {
</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;'>+ static constexpr int32_t sizeInMaxAlignTs(int32_t sizeInBytes) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return (sizeInBytes + sizeof(max_align_t) - 1) / sizeof(max_align_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return (sizeInBytes + sizeof(std::max_align_t) - 1) / sizeof(std::max_align_t);
</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;'>+ /* UComparator convenience implementations ---------------------------------- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -139,7 +141,7 @@ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ insertionSort(char *array, int32_t length, int32_t itemSize,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               UComparator *cmp, const void *context, UErrorCode *pErrorCode) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    icu::MaybeStackArray<max_align_t, sizeInMaxAlignTs(STACK_ITEM_SIZE)> v;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    icu::MaybeStackArray<std::max_align_t, sizeInMaxAlignTs(STACK_ITEM_SIZE)> v;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (sizeInMaxAlignTs(itemSize) > v.getCapacity() &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             v.resize(sizeInMaxAlignTs(itemSize)) == nullptr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         *pErrorCode = U_MEMORY_ALLOCATION_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -233,7 +235,7 @@ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ quickSort(char *array, int32_t length, int32_t itemSize,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             UComparator *cmp, const void *context, UErrorCode *pErrorCode) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /* allocate two intermediate item variables (x and w) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    icu::MaybeStackArray<max_align_t, sizeInMaxAlignTs(STACK_ITEM_SIZE) * 2> xw;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    icu::MaybeStackArray<std::max_align_t, sizeInMaxAlignTs(STACK_ITEM_SIZE) * 2> xw;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(sizeInMaxAlignTs(itemSize)*2 > xw.getCapacity() &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             xw.resize(sizeInMaxAlignTs(itemSize) * 2) == nullptr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- common/utext.cpp.orig  2019-10-03 07:30:54.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ common/utext.cpp       2019-10-22 03:13:50.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16,6 +16,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *   created by: Markus W. Scherer
</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 <cstddef>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/utypes.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/ustring.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/unistr.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -566,8 +568,8 @@ enum {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //    when a provider asks for a UText to be allocated with extra storage.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct ExtendedUText {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    UText          ut;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    max_align_t    extension;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    UText               ut;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    std::max_align_t    extension;
</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;'>+ static const UText emptyText = UTEXT_INITIALIZER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -582,7 +584,7 @@ utext_setup(UText *ut, int32_t extraSpac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // We need to heap-allocate storage for the new UText
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         int32_t spaceRequired = sizeof(UText);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (extraSpace > 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            spaceRequired = sizeof(ExtendedUText) + extraSpace - sizeof(max_align_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            spaceRequired = sizeof(ExtendedUText) + extraSpace - sizeof(std::max_align_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ut = (UText *)uprv_malloc(spaceRequired);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (ut == NULL) {
</span></pre><pre style='margin:0'>

</pre>