Description
WebAssembly's emscripten toolchain (https://github.com/emscripten-core/emscripten) has been using _LIBCPP_AVAILABILITY_HAS_NO_VERBOSE_ABORT
not to pay for the increased code size of __libcpp_verbose_abort
so far. But after #71002, that macro does not exist. We don't provide our own vendor annotation, and defining _LIBCPP_AVAILABILITY_HAS_VERBOSE_ABORT
as 0 is overridden by this line:
llvm-project/libcxx/include/__availability
Line 138 in 38f5596
I read the discussions in that PR that it is recommended to create our own availability markup like Apple:
llvm-project/libcxx/include/__availability
Line 163 in 38f5596
But to do that it looks we have to copy the whole list of macros here
llvm-project/libcxx/include/__availability
Lines 86 to 161 in 38f5596
and copy-paste them to our section in order to just change the one line (
_LIBCPP_AVAILABILITY_HAS_VERBOSE_ABORT
). Is this the recommended way of changing one setting? Is there a way we can control this elsewhere?
This doesn't necessarily have to be about _LIBCPP_AVAILABILITY_HAS_VERBOSE_ABORT
, but it can be more general question about what is the recommended way of toggling one setting without copy-pasting dozens of settings to add another ifdef (__SOMEPLATFORM__)
in __availability
.
A similar concern was posted in #71002 (comment) by @wang-bin.