public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build
@ 2021-11-23 12:28 redi at gcc dot gnu.org
  2021-11-23 12:58 ` [Bug libstdc++/103381] " cvs-commit at gcc dot gnu.org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-23 12:28 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103381

            Bug ID: 103381
           Summary: [9/10/11/12 Regression]
                    --enable-libstdcxx-allocator=bitmap doesn't build
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: build
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

<ext/bitmap_allocator.h> includes <function> which includes <unordered_map> in
C++17 mode. If std::allocator is defined in terms of bitmap_allocator then you
get a circular reference and bootstrap fails.

Clearly nobody has tried to use --enable-libstdcxx-allocator=bitmap in several
years.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libstdc++/103381] [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build
  2021-11-23 12:28 [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build redi at gcc dot gnu.org
@ 2021-11-23 12:58 ` cvs-commit at gcc dot gnu.org
  2021-11-23 12:58 ` rguenth at gcc dot gnu.org
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-23 12:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103381

--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

https://gcc.gnu.org/g:5459fa132a99e6037e5ccf1b49d617677a584ff8

commit r12-5470-g5459fa132a99e6037e5ccf1b49d617677a584ff8
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Nov 23 12:28:22 2021 +0000

    libstdc++: Fix circular dependency for bitmap_allocator [PR103381]

    <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>.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libstdc++/103381] [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build
  2021-11-23 12:28 [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build redi at gcc dot gnu.org
  2021-11-23 12:58 ` [Bug libstdc++/103381] " cvs-commit at gcc dot gnu.org
@ 2021-11-23 12:58 ` rguenth at gcc dot gnu.org
  2021-11-23 12:59 ` [Bug libstdc++/103381] [9/10/11 " redi at gcc dot gnu.org
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-11-23 12:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103381

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |9.5

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libstdc++/103381] [9/10/11 Regression] --enable-libstdcxx-allocator=bitmap doesn't build
  2021-11-23 12:28 [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build redi at gcc dot gnu.org
  2021-11-23 12:58 ` [Bug libstdc++/103381] " cvs-commit at gcc dot gnu.org
  2021-11-23 12:58 ` rguenth at gcc dot gnu.org
@ 2021-11-23 12:59 ` redi at gcc dot gnu.org
  2021-11-23 13:02 ` redi at gcc dot gnu.org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-23 12:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103381

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2021-11-23
           Assignee|unassigned at gcc dot gnu.org      |redi at gcc dot gnu.org

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libstdc++/103381] [9/10/11 Regression] --enable-libstdcxx-allocator=bitmap doesn't build
  2021-11-23 12:28 [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build redi at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2021-11-23 12:59 ` [Bug libstdc++/103381] [9/10/11 " redi at gcc dot gnu.org
@ 2021-11-23 13:02 ` redi at gcc dot gnu.org
  2021-11-23 21:17 ` cvs-commit at gcc dot gnu.org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-23 13:02 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103381

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This fixes bootstrap, but there are still hundreds of FAILs.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libstdc++/103381] [9/10/11 Regression] --enable-libstdcxx-allocator=bitmap doesn't build
  2021-11-23 12:28 [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build redi at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2021-11-23 13:02 ` redi at gcc dot gnu.org
@ 2021-11-23 21:17 ` cvs-commit at gcc dot gnu.org
  2021-11-23 23:24 ` redi at gcc dot gnu.org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-23 21:17 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103381

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jonathan Wakely
<redi@gcc.gnu.org>:

https://gcc.gnu.org/g:9a7308bac8c9a90c153a6f25f0c9bf7e2a0f2e73

commit r11-9269-g9a7308bac8c9a90c153a6f25f0c9bf7e2a0f2e73
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Nov 23 12:28:22 2021 +0000

    libstdc++: Fix circular dependency for bitmap_allocator [PR103381]

    <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>.

    (cherry picked from commit 5459fa132a99e6037e5ccf1b49d617677a584ff8)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libstdc++/103381] [9/10/11 Regression] --enable-libstdcxx-allocator=bitmap doesn't build
  2021-11-23 12:28 [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build redi at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-11-23 21:17 ` cvs-commit at gcc dot gnu.org
@ 2021-11-23 23:24 ` redi at gcc dot gnu.org
  2021-11-23 23:49 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-23 23:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103381

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Every test fails with:

/usr/bin/ld: .../libstdc++-v3/src/.libs/libstdc++.so: undefined reference to
`__gnu_cxx::bitmap_allocator<unsigned int>::_S_last_request'
/usr/bin/ld: .../libstdc++-v3/src/.libs/libstdc++.so: undefined reference to
`__gnu_cxx::bitmap_allocator<std::_Sp_counted_ptr_inplace<std::mutex,
std::allocator<std::mutex>, (__gnu_cxx::_Lock_policy)2> >::_S_mut'
/usr/bin/ld: .../libstdc++-v3/src/.libs/libstdc++.so: undefined reference to
`__gnu_cxx::bitmap_allocator<std::_Sp_counted_ptr_inplace<std::__future_base::_State_baseV2,
std::allocator<std::__future_base::_State_baseV2>, (__gnu_cxx::_Lock_policy)2>
>::_S_mut'
/usr/bin/ld: .../libstdc++-v3/src/.libs/libstdc++.so: undefined reference to
`__gnu_cxx::bitmap_allocator<std::_Sp_counted_ptr_inplace<std::mutex,
std::allocator<std::mutex>, (__gnu_cxx::_Lock_policy)2> >::_S_mem_blocks'
/usr/bin/ld: .../libstdc++-v3/src/.libs/libstdc++.so: undefined reference to
`__gnu_cxx::bitmap_allocator<std::_Sp_counted_ptr_inplace<std::__future_base::_State_baseV2,
std::allocator<std::__future_base::_State_baseV2>, (__gnu_cxx::_Lock_policy)2>
>::_S_last_request'
/usr/bin/ld: .../libstdc++-v3/src/.libs/libstdc++.so: undefined reference to
`__gnu_cxx::bitmap_allocator<unsigned int>::_S_mut'
/usr/bin/ld: .../libstdc++-v3/src/.libs/libstdc++.so: undefined reference to
`__gnu_cxx::bitmap_allocator<unsigned int>::_S_mem_blocks'
/usr/bin/ld: .../libstdc++-v3/src/.libs/libstdc++.so: undefined reference to
`__gnu_cxx::bitmap_allocator<std::_Sp_counted_ptr_inplace<std::mutex,
std::allocator<std::mutex>, (__gnu_cxx::_Lock_policy)2> >::_S_last_request'
/usr/bin/ld: .../libstdc++-v3/src/.libs/libstdc++.so: undefined reference to
`__gnu_cxx::bitmap_allocator<std::_Sp_counted_ptr_inplace<std::__future_base::_State_baseV2,
std::allocator<std::__future_base::_State_baseV2>, (__gnu_cxx::_Lock_policy)2>
>::_S_mem_blocks'

So this configure option seems broken, and nobody seems to have noticed.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libstdc++/103381] [9/10/11 Regression] --enable-libstdcxx-allocator=bitmap doesn't build
  2021-11-23 12:28 [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build redi at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2021-11-23 23:24 ` redi at gcc dot gnu.org
@ 2021-11-23 23:49 ` cvs-commit at gcc dot gnu.org
  2021-11-24  0:01 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-23 23:49 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103381

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jonathan Wakely
<redi@gcc.gnu.org>:

https://gcc.gnu.org/g:0a7a68872b425afb015d499c879e709fdd32616b

commit r10-10290-g0a7a68872b425afb015d499c879e709fdd32616b
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Nov 23 12:28:22 2021 +0000

    libstdc++: Fix circular dependency for bitmap_allocator [PR103381]

    <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>.

    (cherry picked from commit 5459fa132a99e6037e5ccf1b49d617677a584ff8)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libstdc++/103381] [9/10/11 Regression] --enable-libstdcxx-allocator=bitmap doesn't build
  2021-11-23 12:28 [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build redi at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-11-23 23:49 ` cvs-commit at gcc dot gnu.org
@ 2021-11-24  0:01 ` cvs-commit at gcc dot gnu.org
  2021-11-24  0:02 ` redi at gcc dot gnu.org
  2021-12-02 16:53 ` cvs-commit at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-24  0:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103381

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Jonathan Wakely
<redi@gcc.gnu.org>:

https://gcc.gnu.org/g:4a641becb2c8fdca4e9c113b2dcf6cc5e8a6c04a

commit r9-9840-g4a641becb2c8fdca4e9c113b2dcf6cc5e8a6c04a
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Nov 23 12:28:22 2021 +0000

    libstdc++: Fix circular dependency for bitmap_allocator [PR103381]

    <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>.

    (cherry picked from commit 5459fa132a99e6037e5ccf1b49d617677a584ff8)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libstdc++/103381] [9/10/11 Regression] --enable-libstdcxx-allocator=bitmap doesn't build
  2021-11-23 12:28 [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build redi at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2021-11-24  0:01 ` cvs-commit at gcc dot gnu.org
@ 2021-11-24  0:02 ` redi at gcc dot gnu.org
  2021-12-02 16:53 ` cvs-commit at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-24  0:02 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103381

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The bootstrap failure is fixed. The linker error can be tracked by PR 103400

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libstdc++/103381] [9/10/11 Regression] --enable-libstdcxx-allocator=bitmap doesn't build
  2021-11-23 12:28 [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build redi at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2021-11-24  0:02 ` redi at gcc dot gnu.org
@ 2021-12-02 16:53 ` cvs-commit at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-12-02 16:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103381

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

https://gcc.gnu.org/g:e2e98f524fdb80c16e3395f20fee930fbcad5562

commit r12-5754-ge2e98f524fdb80c16e3395f20fee930fbcad5562
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Dec 1 16:30:30 2021 +0000

    libstdc++: Remove broken std::allocator base classes [PR103340]

    The bitmap_allocator, __mt_alloc and __pool_alloc extensions are no
    longer suitable for use as the base class of std::allocator, because
    they have not been updated to meet the C++20 requirements.  There is a
    patch attached to PR 103340 which addresses that, but more work would be
    needed to solve the linking errors that occur when the library is
    configured to use them.

    Using --enable-libstdcxx-allocator=bitmap wouldn't even bootstrap for
    the past few years, and I can't find any gcc-testresults reports using
    any of these allocators. This patch removes the configure option to use
    these as the std::allocator base class. The allocators are still in the
    tree and can be used directly, you just can't configure the library to
    use one of them as the base class of std::allocator.

    libstdc++-v3/ChangeLog:

            PR libstdc++/103340
            PR libstdc++/103400
            PR libstdc++/103381
            * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Remove mt, bitmap
            and pool options.
            * configure: Regenerate.
            * config/allocator/bitmap_allocator_base.h: Removed.
            * config/allocator/mt_allocator_base.h: Removed.
            * config/allocator/pool_allocator_base.h: Removed.
            * doc/xml/manual/allocator.xml: Update.
            * doc/xml/manual/configure.xml: Update.
            * doc/xml/manual/evolution.xml: Document removal.
            * doc/xml/manual/mt_allocator.xml: Editorial tweaks.
            * doc/html/manual/*: Regenerate.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-12-02 16:53 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-23 12:28 [Bug libstdc++/103381] New: [9/10/11/12 Regression] --enable-libstdcxx-allocator=bitmap doesn't build redi at gcc dot gnu.org
2021-11-23 12:58 ` [Bug libstdc++/103381] " cvs-commit at gcc dot gnu.org
2021-11-23 12:58 ` rguenth at gcc dot gnu.org
2021-11-23 12:59 ` [Bug libstdc++/103381] [9/10/11 " redi at gcc dot gnu.org
2021-11-23 13:02 ` redi at gcc dot gnu.org
2021-11-23 21:17 ` cvs-commit at gcc dot gnu.org
2021-11-23 23:24 ` redi at gcc dot gnu.org
2021-11-23 23:49 ` cvs-commit at gcc dot gnu.org
2021-11-24  0:01 ` cvs-commit at gcc dot gnu.org
2021-11-24  0:02 ` redi at gcc dot gnu.org
2021-12-02 16:53 ` cvs-commit at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).