[libcxx-commits] [PATCH] D111323: [SystemZ][z/OS] ASCII/EBCDIC support for libc++

Muiez Ahmed via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Nov 30 10:48:28 PST 2021


muiez added a comment.

Thanks @ldionne for your detailed feedback and suggestions.

> To make progress on this:
>
> 1. Have you tried using `_LIBCPP_ABI_NAMESPACE`?

I prototyped with your suggestion to build the whole library twice, once with `_LIBCPP_ABI_NAMESPACE=__ascii` and once with `_LIBCPP_ABI_NAMESPACE=__ebcdic`; however, some symbols (with this approach) should not end up having  `__ascii` / `__ebcdic` variations. In particular, we need to make sure there is only one variation generated, outside the A/E  namespace. For example, we want the `*error_category` to be independent of A/E.  These can be passed and thrown around.  We want a `system_error_category` to be handled the same regardless whether it came from A or E. With that being said, would it be okay to move these instances to the c++abi (like `std::exception` was)? Or should we exclude them from the `_LIBCPP_ABI_NAMESPACE` part, for example using:

  namespace std  // purposefully not using versioning namespace
  {
  ...
  }

We can gather a list of candidates to cross check with you; however, the first ones that come to mind are the exception derived classes and mutex's.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D111323/new/

https://reviews.llvm.org/D111323



More information about the libcxx-commits mailing list