-
- Downloads
[libstdc++] add _GLIBCXX_CLANG to workaround predefined __clang__
A proprietary embedded operating system that uses clang as its primary compiler ships headers that require __clang__ to be defined. Defining that macro causes libstdc++ to adopt workarounds that work for clang but that break for GCC. So, introduce a _GLIBCXX_CLANG macro, and a convention to test for it rather than for __clang__, so that a GCC variant that adds -D__clang__ to satisfy system headers can also -D_GLIBCXX_CLANG=0 to avoid workarounds that are not meant for GCC. I've left fast_float and ryu files alone, their tests for __clang__ don't seem to be harmful for GCC, they don't include bits/c++config, and patching such third-party files would just make trouble for updating them without visible benefit. pstl_config.h, though also imported, required adjustment. for libstdc++-v3/ChangeLog * include/bits/c++config (_GLIBCXX_CLANG): Define or undefine. * include/bits/locale_facets_nonio.tcc: Test for it. * include/bits/stl_bvector.h: Likewise. * include/c_compatibility/stdatomic.h: Likewise. * include/experimental/bits/simd.h: Likewise. * include/experimental/bits/simd_builtin.h: Likewise. * include/experimental/bits/simd_detail.h: Likewise. * include/experimental/bits/simd_x86.h: Likewise. * include/experimental/simd: Likewise. * include/std/complex: Likewise. * include/std/ranges: Likewise. * include/std/variant: Likewise. * include/pstl/pstl_config.h: Likewise.
Showing
- libstdc++-v3/include/bits/c++config 12 additions, 1 deletionlibstdc++-v3/include/bits/c++config
- libstdc++-v3/include/bits/locale_facets_nonio.tcc 1 addition, 1 deletionlibstdc++-v3/include/bits/locale_facets_nonio.tcc
- libstdc++-v3/include/bits/stl_bvector.h 1 addition, 1 deletionlibstdc++-v3/include/bits/stl_bvector.h
- libstdc++-v3/include/c_compatibility/stdatomic.h 1 addition, 1 deletionlibstdc++-v3/include/c_compatibility/stdatomic.h
- libstdc++-v3/include/experimental/bits/simd.h 5 additions, 5 deletionslibstdc++-v3/include/experimental/bits/simd.h
- libstdc++-v3/include/experimental/bits/simd_builtin.h 2 additions, 2 deletionslibstdc++-v3/include/experimental/bits/simd_builtin.h
- libstdc++-v3/include/experimental/bits/simd_detail.h 4 additions, 4 deletionslibstdc++-v3/include/experimental/bits/simd_detail.h
- libstdc++-v3/include/experimental/bits/simd_x86.h 6 additions, 6 deletionslibstdc++-v3/include/experimental/bits/simd_x86.h
- libstdc++-v3/include/experimental/simd 1 addition, 1 deletionlibstdc++-v3/include/experimental/simd
- libstdc++-v3/include/pstl/pstl_config.h 2 additions, 2 deletionslibstdc++-v3/include/pstl/pstl_config.h
- libstdc++-v3/include/std/complex 2 additions, 2 deletionslibstdc++-v3/include/std/complex
- libstdc++-v3/include/std/ranges 4 additions, 4 deletionslibstdc++-v3/include/std/ranges
- libstdc++-v3/include/std/variant 1 addition, 1 deletionlibstdc++-v3/include/std/variant
Loading
Please register or sign in to comment