<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi,<div class=""><br class=""></div><div class="">I just updated <a href="http://llvm.org/PR43749" class="">http://llvm.org/PR43749</a>, which I wasn't aware of. As I explain in the bug report:</div><div class=""><br class=""></div><div class=""><div class="">    The issue is that the compiler emits type information for fundamental types in libc++abi, and your compiler doesn't know about char8_t yet, so it doesn't emit the type information for those. libc++abi tries to export these symbols and it fails to do so, because they haven't been generated in the dylib by the compiler.</div><div class=""><br class=""></div><div class="">    Getting a linker error is quite nice, because otherwise you'd be producing a libc++abi.dylib that doesn't work properly at runtime (say if you try to use typeid(char8_t) in your program).</div><div class=""><br class=""></div><div class="">I hope that answers your question. The problem should go away if you use a recent Clang. If it doesn't please ping me again.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Louis</div><div><br class=""><blockquote type="cite" class=""><div class="">On Jun 1, 2020, at 15:39, <a href="mailto:llvm@dyatkovskiy.com" class="">llvm@dyatkovskiy.com</a> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi Louis!</div><div class=""> </div><div class="">I found your commit in llvm-project, libcxxabi, namely this one:</div><div class=""><div class=""> </div><div class="">commit 223df5b54021cfa4c67d4e09e1dc1b3b9e6a9de7 (refs/bisect/bad)</div><div class="">Author: Louis Dionne <<a href="mailto:ldionne@apple.com" class="">ldionne@apple.com</a>></div><div class="">Date: Thu Jun 27 20:17:22 2019 +0000</div><div class=""> </div><div class="">In this commit you added exported symbols for different platforms for libcxxabi, for apple:</div><div class=""> </div><div class="">I'm currently trying to build it for Mac OS 10.13.6, x86_64, and bumped into unresolved symbols errors:</div><div class=""> </div><div class=""><div class=""><div class="">Undefined symbols for architecture x86_64:</div><div class="">"__ZTIDu", referenced from:</div><div class="">-exported_symbol[s_list] command line option</div><div class="">"__ZTIPDu", referenced from:</div><div class="">-exported_symbol[s_list] command line option</div></div></div><div class=""> </div><div class="">I noticed that you added itanium-base.exp for APPLE platforms by default (no other conditions):</div><div class=""> </div><div class="">> if (APPLE)</div><div class=""><div class="">> target_link_libraries(cxxabi_shared PRIVATE "-Wl,-exported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/itanium-base.exp")</div><div class=""> </div><div class="">I'm not expert of x86_64 arch, especially for darwin. Are we using Itanium ABI by default on Mac OS 10.13 for x86_64 arch?</div><div class="">If so, what did I miss, for there are symbols which must be exported, but absent in my compilation. I compile libcxxabi with following commands:</div><div class=""> </div><div class="">cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$BUILD_DIR/install -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi" $SRC_DIR</div><div class="">ninja -j8</div><div class=""> </div><div class="">There is also bug, which seems to be related to this commit:</div><div class=""><a href="https://bugs.llvm.org/show_bug.cgi?id=43749" class="">https://bugs.llvm.org/show_bug.cgi?id=43749</a></div><div class=""> </div><div class="">Thanks!</div><div class="">Stepan Dyatkovskiy</div><div class=""> </div></div></div></div></blockquote></div><br class=""></div></body></html>