[libcxx-commits] [PATCH] D103960: [libc++] Towards a simpler extern template story in libc++

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Jun 9 06:01:28 PDT 2021


ldionne created this revision.
Herald added subscribers: arichardson, mgorny.
ldionne requested review of this revision.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.

The flexibility around extern template instantiation declarations in
libc++ result in a very complicated model, especially when support for
slightly different configurations (like the debug mode or assertions
in the dylib) are taken into account. That results in unexpected bugs
like http://llvm.org/PR50534 (and there have been multiple similar
bugs in the past, notably around the debug mode).

This patch gets rid of the _LIBCPP_DISABLE_EXTERN_TEMPLATE knob, which
I don't think is fundamental. Indeed, the motivation for that knob is to
avoid taking a dependency on the library, however that can be done better
by linking against the static library instead.

Should fix http://llvm.org/PR50534.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D103960

Files:
  libcxx/cmake/caches/Generic-assertions.cmake
  libcxx/docs/DesignDocs/VisibilityMacros.rst
  libcxx/docs/ReleaseNotes.rst
  libcxx/docs/UsingLibcxx.rst
  libcxx/include/__config
  libcxx/include/__locale
  libcxx/include/algorithm
  libcxx/include/fstream
  libcxx/include/istream
  libcxx/include/locale
  libcxx/include/ostream
  libcxx/include/sstream
  libcxx/include/streambuf
  libcxx/include/string
  libcxx/include/valarray
  libcxx/include/vector
  libcxx/src/string.cpp
  libcxx/utils/ci/buildkite-pipeline.yml
  libcxx/utils/ci/run-buildbot

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D103960.350871.patch
Type: text/x-patch
Size: 33220 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210609/7d9968b7/attachment-0001.bin>


More information about the libcxx-commits mailing list