[libcxx-commits] [libcxx] [libc++] Split up ABI and platform configuration to their own headers (PR #90863)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Wed May 22 11:06:04 PDT 2024


ldionne wrote:

> Would you mind being explicit about the dependency graph between the various units?

I don't know what the final state will look like. However, I imagine having a small number of headers that are dependency-free (apart from including `__config_site`) since they only need to use compiler-provided macros to detect stuff, and then a few headers that build on top of that (like the ABI configuration) which basically include what they use like we do in the rest of the library.

> > For example, we never noticed that the string layout used on arm64 was only enabled for the Clang compiler, as the setting being in the compiler == clang block was probably never intentional.
> 
> I see that this underlying issue hasn't been addressed and still exists in this change. What's the plan for addressing it? Since that bug is the cited motivation for this change, I would like to see how this change would have improved things, which is hard to imagine when the issue remains.

That's right, this change doesn't attempt to change that, since that would break the ABI of libc++ on GCC / arm64. I'll have to think about whether this is something we want to (and can) do, but that change belongs in a separate patch due to how tricky it is.


https://github.com/llvm/llvm-project/pull/90863


More information about the libcxx-commits mailing list