public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/106953] New: C++23 add new headers for freestanding
@ 2022-09-16  8:39 unlvsur at live dot com
  2022-09-16  8:53 ` [Bug libstdc++/106953] " redi at gcc dot gnu.org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: unlvsur at live dot com @ 2022-09-16  8:39 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 106953
           Summary: C++23 add new headers for freestanding
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: unlvsur at live dot com
  Target Milestone: ---

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1642r11.html

It now requires utility, tuple, ratio to be fully freestanding. memory,
functional, iterator and ranges to be partial freestanding.

https://en.cppreference.com/w/cpp/freestanding

Time to add them.

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

* [Bug libstdc++/106953] C++23 add new headers for freestanding
  2022-09-16  8:39 [Bug libstdc++/106953] New: C++23 add new headers for freestanding unlvsur at live dot com
@ 2022-09-16  8:53 ` redi at gcc dot gnu.org
  2022-09-16 22:33 ` cvs-commit at gcc dot gnu.org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: redi at gcc dot gnu.org @ 2022-09-16  8:53 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |106749

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Yes, work has already started on this.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106749
[Bug 106749] Implement C++23 library features

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

* [Bug libstdc++/106953] C++23 add new headers for freestanding
  2022-09-16  8:39 [Bug libstdc++/106953] New: C++23 add new headers for freestanding unlvsur at live dot com
  2022-09-16  8:53 ` [Bug libstdc++/106953] " redi at gcc dot gnu.org
@ 2022-09-16 22:33 ` cvs-commit at gcc dot gnu.org
  2022-09-17  3:28 ` unlvsur at live dot com
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-09-16 22:33 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 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:cf0fded5d837bad590eb091d8a3dc4898872560f

commit r13-2705-gcf0fded5d837bad590eb091d8a3dc4898872560f
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Sep 15 21:02:32 2022 +0100

    libstdc++: Add preprocessor conditions for freestanding [PR106953]

    This adds checks for _GLIBCXX_HOSTED to a number of headers which are
    not currently installed for freestanding, but need to be for P1642R11
    support. For example, <iterator> needs to be installed for C++23
    freestanding mode, but without stream iterators and streambuf iterators.
    Similarly, <memory> needs to be installed, but without std::allocator
    and std::shared_ptr. This change disables the non-freestanding parts of
    those headers.

    libstdc++-v3/ChangeLog:

            PR libstdc++/106953
            * include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define
            shared_ptr members.
            * include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare
            std::allocator_traits<std::allocator<T>> specializations for
            freestanding.
            * include/bits/memoryfwd.h [!_GLIBCXX_HOSTED] (allocator): Do
            not declare for freestanding.
            * include/bits/stl_algo.h [!_GLIBCXX_HOSTED] (stable_partition):
            Do not define for freestanding.
            [!_GLIBCXX_HOSTED] (merge, stable_sort): Do not use temporary
            buffers for freestanding.
            * include/bits/stl_algobase.h [!_GLIBCXX_HOSTED]: Do not declare
            streambuf iterators and overloaded algorithms using them.
            * include/bits/stl_uninitialized.h [!_GLIBCXX_HOSTED]: Do not
            define specialized overloads for std::allocator.
            * include/bits/unique_ptr.h [!_GLIBCXX_HOSTED] (make_unique)
            (make_unique_for_overwrite, operator<<): Do not define for
            freestanding.
            * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (_Exit): Declare.
            Use _GLIBCXX_NOTHROW instead of throw().
            * include/debug/assertions.h [!_GLIBCXX_HOSTED]: Ignore
            _GLIBCXX_DEBUG for freestanding.
            * include/debug/debug.h [!_GLIBCXX_DEBUG]: Likewise.
            * include/std/bit [!_GLIBCXX_HOSTED]: Do not use the custom
            __int_traits if <ext/numeric_traits.h> is available.
            * include/std/functional [!_GLIBCXX_HOSTED]: Do not include
            headers that aren't valid for freestanding.
            (boyer_moore_searcher, boyer_moore_horspool_searcher): Do not
            define for freestanding.
            * include/std/iterator [!_GLIBCXX_HOSTED]: Do not include
            headers that aren't valid for freestanding.
            * include/std/memory [!_GLIBCXX_HOSTED]: Likewise.
            * include/std/ranges [!_GLIBCXX_HOSTED] (istream_view): Do not
            define for freestanding.
            (views::__detail::__is_basic_string_view) [!_GLIBCXX_HOSTED]:
            Do not define partial specialization for freestanding.

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

* [Bug libstdc++/106953] C++23 add new headers for freestanding
  2022-09-16  8:39 [Bug libstdc++/106953] New: C++23 add new headers for freestanding unlvsur at live dot com
  2022-09-16  8:53 ` [Bug libstdc++/106953] " redi at gcc dot gnu.org
  2022-09-16 22:33 ` cvs-commit at gcc dot gnu.org
@ 2022-09-17  3:28 ` unlvsur at live dot com
  2022-09-17  3:29 ` unlvsur at live dot com
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: unlvsur at live dot com @ 2022-09-17  3:28 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from cqwrteur <unlvsur at live dot com> ---
(In reply to Jonathan Wakely from comment #1)
> Yes, work has already started on this.

https://github.com/cplusplus/draft/releases/download/n4917/n4917.pdf

I've tried but those headers are not installed. no utility etc.

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

* [Bug libstdc++/106953] C++23 add new headers for freestanding
  2022-09-16  8:39 [Bug libstdc++/106953] New: C++23 add new headers for freestanding unlvsur at live dot com
                   ` (2 preceding siblings ...)
  2022-09-17  3:28 ` unlvsur at live dot com
@ 2022-09-17  3:29 ` unlvsur at live dot com
  2022-09-20  9:54 ` redi at gcc dot gnu.org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: unlvsur at live dot com @ 2022-09-17  3:29 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from cqwrteur <unlvsur at live dot com> ---
(In reply to Jonathan Wakely from comment #1)
> Yes, work has already started on this.

BTW TR1_STDINT is still not defined for freestanding without libc. cstdint does
not import any types like std::uint_least64_t.

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

* [Bug libstdc++/106953] C++23 add new headers for freestanding
  2022-09-16  8:39 [Bug libstdc++/106953] New: C++23 add new headers for freestanding unlvsur at live dot com
                   ` (3 preceding siblings ...)
  2022-09-17  3:29 ` unlvsur at live dot com
@ 2022-09-20  9:54 ` redi at gcc dot gnu.org
  2022-10-03 14:45 ` cvs-commit at gcc dot gnu.org
  2022-10-03 14:51 ` redi at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: redi at gcc dot gnu.org @ 2022-09-20  9:54 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to cqwrteur from comment #3)
> I've tried but those headers are not installed. no utility etc.

I said work has started, not finished.

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

* [Bug libstdc++/106953] C++23 add new headers for freestanding
  2022-09-16  8:39 [Bug libstdc++/106953] New: C++23 add new headers for freestanding unlvsur at live dot com
                   ` (4 preceding siblings ...)
  2022-09-20  9:54 ` redi at gcc dot gnu.org
@ 2022-10-03 14:45 ` cvs-commit at gcc dot gnu.org
  2022-10-03 14:51 ` redi at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-10-03 14:45 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 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:6885e7e4eef65c657cd8baa0f5e7ebe7231ac984

commit r13-3038-g6885e7e4eef65c657cd8baa0f5e7ebe7231ac984
Author: Arsen ArsenoviÄ <arsen@aarsen.me>
Date:   Fri Sep 16 10:38:41 2022 +0200

    libstdc++: Rework how freestanding install works [PR106953]

    In light of there being far more freestanding headers now, ad-hoc
    maintenance of a subset of the install implementation has become
    unsustainable. Instead, we gate off a part of the normal install routine
    so that it works without HOSTED enabled, as well as subdivide lists of
    headers into freestanding and hosted components, according to the HOSTED
    flag.

    libstdc++-v3/ChangeLog:

            PR libstdc++/106953
            * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
            install-freestanding-headers, unifying it with the usual
            install-headers
            * include/Makefile.in: Regenerate.

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

* [Bug libstdc++/106953] C++23 add new headers for freestanding
  2022-09-16  8:39 [Bug libstdc++/106953] New: C++23 add new headers for freestanding unlvsur at live dot com
                   ` (5 preceding siblings ...)
  2022-10-03 14:45 ` cvs-commit at gcc dot gnu.org
@ 2022-10-03 14:51 ` redi at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: redi at gcc dot gnu.org @ 2022-10-03 14:51 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
   Target Milestone|---                         |13.0
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Done for GCC 13.

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

end of thread, other threads:[~2022-10-03 14:51 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-16  8:39 [Bug libstdc++/106953] New: C++23 add new headers for freestanding unlvsur at live dot com
2022-09-16  8:53 ` [Bug libstdc++/106953] " redi at gcc dot gnu.org
2022-09-16 22:33 ` cvs-commit at gcc dot gnu.org
2022-09-17  3:28 ` unlvsur at live dot com
2022-09-17  3:29 ` unlvsur at live dot com
2022-09-20  9:54 ` redi at gcc dot gnu.org
2022-10-03 14:45 ` cvs-commit at gcc dot gnu.org
2022-10-03 14:51 ` redi 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).