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