<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=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Oct 3, 2018, at 18:27, Petr Hosek via libcxx-dev <<a href="mailto:libcxx-dev@lists.llvm.org" class="">libcxx-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class="">Thanks Marshall and Eric, this clarifies the situation.<br class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Mon, Oct 1, 2018 at 9:23 PM Marshall Clow <<a href="mailto:mclow.lists@gmail.com" class="">mclow.lists@gmail.com</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class="gmail_quote"><div class="">Since you link libc++ statically, and have no abi concerns, I would use `_LIBCPP_ABI_UNSTABLE`.</div><div class="">This contains changes/improvements/bug fixes that we were unable to ship generally, because of ABI concerns.</div></div></div></div></div></blockquote><div class=""><br class=""></div><div class="">I've tried this and I think it'd work for us but there is one issue, with LIBCXX_ABI_UNSTABLE, libc++ build uses 1 as SOVERSION so we end up with libc++.so.1.0 as the filename which is technically incorrect. However, I don't know what would be the best solution here.</div><div class=""><br class=""></div><div class="">We could use a string instead, e.g. 'unstable' but that might break clients who assume it's a number (even though in ELF it's an arbitrary string). We could also choose a meaningless number, e.g. 0, so the filename would be libc++.so.0.0.</div><div class=""><br class=""></div><div class="">Alternatively, we could disable the use of SOVERSION and VERSION for unstable ABI, SOVERSION is primarily needed using the library as part of the system installation, but for unstable ABI that's unlikely to be the case. So the name of the library would be just libc++.so. However, that introduces another issue with the linkerscript which currently uses that name and uses the actual library as the input. We could rename the library to libc++_internal.so or we could make the Clang driver pass -lc++abi explicitly and avoid the need for the linkerscript. The latter is fine for Fuchsia since we don't currently support other C++ ABI libraries, but may not work for other targets.</div><div class=""><br class=""></div><div class="">Do you have any opinions on this?</div></div></div></div></div></blockquote><div><br class=""></div><div>I would personally be more comfortable with explicitly encoding the fact that the library is unstable in its name. Exactly how we do that is not my primary concern, but just  naming it `libc++.so` would not be great IMO.</div><div><br class=""></div><div>Louis</div><br class=""><blockquote type="cite" class=""><div class="">
_______________________________________________<br class="">libcxx-dev mailing list<br class=""><a href="mailto:libcxx-dev@lists.llvm.org" class="">libcxx-dev@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/libcxx-dev<br class=""></div></blockquote></div><br class=""></body></html>