<div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_extra"><br><div class="gmail_quote">2018-01-17 17:32 GMT+02:00 Richard Koch <span dir="ltr"><<a href="mailto:koch@uoregon.edu" target="_blank">koch@uoregon.edu</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
Notice that in modern C++, char16_t is a BUILT-IN type. So it seems to me that efforts to tell compilers to equate it to something else are likely not to work. (Maybe a naive opinion!)<br>
<br></blockquote></div><br clear="all"><div style="font-size:small" class="gmail_default">​This is absolutely true. However, in mu case, ​compilation stops as follows:<br><br>gcc64 -std=gnu99 -D_REENTRANT  -DU_HAVE_ELF_H=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_ATOMIC=1 -DU_HAVE_TIMEZONE=0 -DU_HAVE_STRTOD_L=0  -I/container/source/texlive/source/Work/libs/icu/../../../libs/icu/icu-src/source/common   "-DDEFAULT_ICU_PLUGINS=\"/usr/local/lib/icu\" " -DU_ATTRIBUTE_DEPRECATED= -DU_COMMON_IMPLEMENTATION  -O2 -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings    -c   -o <a href="http://umapfile.ao">umapfile.ao</a> /container/source/texlive/source/Work/libs/icu/../../../libs/icu/icu-src/source/common/umapfile.c<br>In file included from /container/source/texlive/source/Work/libs/icu/../../../libs/icu/icu-src/source/common/unicode/utypes.h:38:0,<br>                 from /container/source/texlive/source/Work/libs/icu/../../../libs/icu/icu-src/source/common/unicode/putil.h:29,<br>                 from /container/source/texlive/source/Work/libs/icu/../../../libs/icu/icu-src/source/common/umapfile.c:24:<br>/container/source/texlive/source/Work/libs/icu/../../../libs/icu/icu-src/source/common/unicode/umachine.h:343:13: error: unknown type name ‘char16_t’<br>     typedef char16_t UChar;<br><br></div><div style="font-size:small" class="gmail_default">​It is the C compiler that cannot find the symbol not the C++ compiler. ​ In particular, the problem appears in the following code in <br>source/libs/icu/icu-src/source/common/unicode/umachine.h<br><br>#if defined(U_COMBINED_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION) || \<br>        defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION)<br>    // Inside the ICU library code, never configurable.<br>    typedef char16_t UChar;     //<------------------------------------------HERE <br>#elif defined(UCHAR_TYPE)<br>    typedef UCHAR_TYPE UChar;<br>#elif defined(__cplusplus)<br>    typedef char16_t UChar;<br>#else<br>    typedef uint16_t UChar;<br>#endif<br><br></div><div style="font-size:small" class="gmail_default">​​In my case the following patch allows compilation of icu<br></div><br><div style="font-size:small" class="gmail_default">​--- umachine.h.old      2018-01-17 17:47:03.110703298 +0000<br>+++ umachine.h  2018-01-17 17:58:59.936513757 +0000<br>@@ -340,7 +340,12 @@<br> #if defined(U_COMBINED_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION) || \<br>         defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION)<br>     // Inside the ICU library code, never configurable.<br>+#ifdef __cplusplus<br>     typedef char16_t UChar;<br>+#else<br>+    typedef uint16_t char16_t;<br>+    typedef uint16_t UChar;<br>+#endif<br> #elif defined(UCHAR_TYPE)<br>     typedef UCHAR_TYPE UChar;<br> #elif defined(__cplusplus)<br>​</div><div style="font-size:small" class="gmail_default">​A.S.​</div><br>-- <br><div class="gmail_signature"><div dir="ltr">Apostolos Syropoulos<br>Xanthi, GREECE<br><br></div></div>
</div></div>