Tested powerpc64le-linux, pushed to trunk. Backports needed too.
<ext/bitmap_allocator.h> includes <function>, and since C++17 that includes <unordered_map>. If std::allocator is defined in terms of __gnu_cxx::bitmap_allocator then you get a circular reference and bootstrap fails when compiling src/c++17/*.cc. libstdc++-v3/ChangeLog: PR libstdc++/103381 * include/ext/bitmap_allocator.h: Include <bits/stl_function.h> instead of <functional>. --- libstdc++-v3/include/ext/bitmap_allocator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libstdc++-v3/include/ext/bitmap_allocator.h b/libstdc++-v3/include/ext/bitmap_allocator.h index cc80593764c..0444deb479c 100644 --- a/libstdc++-v3/include/ext/bitmap_allocator.h +++ b/libstdc++-v3/include/ext/bitmap_allocator.h @@ -31,7 +31,7 @@ #include <utility> // For std::pair. #include <bits/functexcept.h> // For __throw_bad_alloc(). -#include <functional> // For greater_equal, and less_equal. +#include <bits/stl_function.h> // For greater_equal, and less_equal. #include <new> // For operator new. #include <debug/debug.h> // _GLIBCXX_DEBUG_ASSERT #include <ext/concurrence.h> -- 2.31.1