[libcxx-commits] [libcxx] [libc++][RFC] Always define internal feature test macros (PR #89178)

Nikolas Klauser via libcxx-commits libcxx-commits at lists.llvm.org
Thu Apr 18 12:15:47 PDT 2024


philnik777 wrote:

As I said in the commit message, this only changes FTMs configured in `<__config>`. `<__config_site>` will be a follow-up patch. Re. some of the macros:

> _LIBCPP_HAS_NO_FILESYSTEM_LIBRARY
> _LIBCPP_HAS_NO_STDIN
> _LIBCPP_HAS_NO_STDOUT

We don't use these macro names anymore, so any code that checks the macro is already broken.

> _LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION
> _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS
> _LIBCPP_HAS_NO_INT128

I don't know why anybody would ever want to define that. Maybe some workaround for a bug?

> _LIBCPP_HAS_NO_LOCALIZATION
> _LIBCPP_HAS_NO_THREADS
> _LIBCPP_HAS_NO_TIME_ZONE_DATABASE
> _LIBCPP_HAS_NO_UNICODE

I'd be really interested what the reasoning for these is. Maybe not properly configured libc++ builds and people try to work around it?

> _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER

I don't plan to change that one, but it should really only be set by our tests. OTOH I don't really care if people can't configure their warnings correctly because they define library-internal macros.


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


More information about the libcxx-commits mailing list