gcc/libstdc++-v3/include/std
Arsen Arsenović 18f176d0b2 libstdc++: Mark headers that must be hosted as such [PR103626]
PR libstdc++/103626 - _GLIBCXX_HOSTED should respect -ffreestanding

Co-authored-by: Jonathan Wakely <jwakely@redhat.com>

libstdc++-v3/ChangeLog:

	PR libstdc++/103626
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/requires_hosted.h: New header.
	* include/experimental/algorithm: Include
	<bits/requires_hosted.h>.
	* include/experimental/any: Likewise.
	* include/experimental/array: Likewise.
	* include/experimental/buffer: Likewise.
	* include/experimental/chrono: Likewise.
	* include/experimental/deque: Likewise.
	* include/experimental/executor: Likewise.
	* include/experimental/filesystem: Likewise.
	* include/experimental/forward_list: Likewise.
	* include/experimental/functional: Likewise.
	* include/experimental/internet: Likewise.
	* include/experimental/io_context: Likewise.
	* include/experimental/iterator: Likewise.
	* include/experimental/list: Likewise.
	* include/experimental/map: Likewise.
	* include/experimental/memory: Likewise.
	* include/experimental/memory_resource: Likewise.
	* include/experimental/net: Likewise.
	* include/experimental/netfwd: Likewise.
	* include/experimental/numeric: Likewise.
	* include/experimental/optional: Likewise.
	* include/experimental/propagate_const: Likewise.
	* include/experimental/random: Likewise.
	* include/experimental/ratio: Likewise.
	* include/experimental/regex: Likewise.
	* include/experimental/scope: Likewise.
	* include/experimental/set: Likewise.
	* include/experimental/simd: Likewise.
	* include/experimental/socket: Likewise.
	* include/experimental/source_location: Likewise.
	* include/experimental/string: Likewise.
	* include/experimental/string_view: Likewise.
	* include/experimental/system_error: Likewise.
	* include/experimental/timer: Likewise.
	* include/experimental/tuple: Likewise.
	* include/experimental/unordered_map: Likewise.
	* include/experimental/unordered_set: Likewise.
	* include/experimental/utility: Likewise.
	* include/experimental/vector: Likewise.
	* include/std/barrier: Likewise.
	* include/std/chrono: Likewise.
	* include/std/condition_variable: Likewise.
	* include/std/deque: Likewise.
	* include/std/execution: Likewise.
	* include/std/filesystem: Likewise.
	* include/std/forward_list: Likewise.
	* include/std/fstream: Likewise.
	* include/std/future: Likewise.
	* include/std/iomanip: Likewise.
	* include/std/ios: Likewise.
	* include/std/iosfwd: Likewise.
	* include/std/iostream: Likewise.
	* include/std/istream: Likewise.
	* include/std/latch: Likewise.
	* include/std/list: Likewise.
	* include/std/locale: Likewise.
	* include/std/map: Likewise.
	* include/std/memory_resource: Likewise.
	* include/std/mutex: Likewise.
	* include/std/ostream: Likewise.
	* include/std/queue: Likewise.
	* include/std/random: Likewise.
	* include/std/regex: Likewise.
	* include/std/semaphore: Likewise.
	* include/std/set: Likewise.
	* include/std/shared_mutex: Likewise.
	* include/std/spanstream: Likewise.
	* include/std/sstream: Likewise.
	* include/std/stack: Likewise.
	* include/std/stacktrace: Likewise.
	* include/std/stop_token: Likewise.
	* include/std/streambuf: Likewise.
	* include/std/string: Likewise.
	* include/std/syncstream: Likewise.
	* include/std/system_error: Likewise.
	* include/std/thread: Likewise.
	* include/std/unordered_map: Likewise.
	* include/std/unordered_set: Likewise.
	* include/std/valarray: Likewise.
	* include/std/vector: Likewise.
	* include/tr1/array: Likewise.
	* include/tr1/ccomplex: Likewise.
	* include/tr1/cctype: Likewise.
	* include/tr1/cfenv: Likewise.
	* include/tr1/cfloat: Likewise.
	* include/tr1/cinttypes: Likewise.
	* include/tr1/climits: Likewise.
	* include/tr1/cmath: Likewise.
	* include/tr1/complex: Likewise.
	* include/tr1/complex.h: Likewise.
	* include/tr1/cstdarg: Likewise.
	* include/tr1/cstdbool: Likewise.
	* include/tr1/cstdint: Likewise.
	* include/tr1/cstdio: Likewise.
	* include/tr1/cstdlib: Likewise.
	* include/tr1/ctgmath: Likewise.
	* include/tr1/ctime: Likewise.
	* include/tr1/ctype.h: Likewise.
	* include/tr1/cwchar: Likewise.
	* include/tr1/cwctype: Likewise.
	* include/tr1/fenv.h: Likewise.
	* include/tr1/float.h: Likewise.
	* include/tr1/functional: Likewise.
	* include/tr1/inttypes.h: Likewise.
	* include/tr1/limits.h: Likewise.
	* include/tr1/math.h: Likewise.
	* include/tr1/memory: Likewise.
	* include/tr1/random: Likewise.
	* include/tr1/regex: Likewise.
	* include/tr1/stdarg.h: Likewise.
	* include/tr1/stdbool.h: Likewise.
	* include/tr1/stdint.h: Likewise.
	* include/tr1/stdio.h: Likewise.
	* include/tr1/stdlib.h: Likewise.
	* include/tr1/tgmath.h: Likewise.
	* include/tr1/tuple: Likewise.
	* include/tr1/type_traits: Likewise.
	* include/tr1/unordered_map: Likewise.
	* include/tr1/unordered_set: Likewise.
	* include/tr1/utility: Likewise.
	* include/tr1/wchar.h: Likewise.
	* include/tr1/wctype.h: Likewise.
	* include/c_global/cmath: Likewise.
	* include/ext/algorithm: Include <bits/requires_hosted.h>.
	* include/ext/bitmap_allocator.h: Likewise.
	* include/ext/cmath: Likewise.
	* include/ext/codecvt_specializations.h: Likewise.
	* include/ext/debug_allocator.h: Likewise.
	* include/ext/enc_filebuf.h: Likewise.
	* include/ext/extptr_allocator.h: Likewise.
	* include/ext/functional: Likewise.
	* include/ext/malloc_allocator.h: Likewise.
	* include/ext/memory: Likewise.
	* include/ext/mt_allocator.h: Likewise.
	* include/ext/new_allocator.h: Likewise.
	* include/ext/numeric: Likewise.
	* include/ext/pod_char_traits.h: Likewise.
	* include/ext/pool_allocator.h: Likewise.
	* include/ext/random: Likewise.
	* include/ext/random.tcc: Likewise.
	* include/ext/rb_tree: Likewise.
	* include/ext/rc_string_base.h: Likewise.
	* include/ext/rope: Likewise.
	* include/ext/ropeimpl.h: Likewise.
	* include/ext/slist: Likewise.
	* include/ext/sso_string_base.h: Likewise.
	* include/ext/stdio_filebuf.h: Likewise.
	* include/ext/stdio_sync_filebuf.h: Likewise.
	* include/ext/string_conversions.h: Likewise.
	* include/ext/throw_allocator.h: Likewise.
	* include/ext/vstring.h: Likewise.
	* include/ext/vstring.tcc: Likewise.
	* include/ext/vstring_fwd.h: Likewise.
	* include/ext/vstring_util.h: Likewise.
	* include/std/charconv: Likewise.
	(__cpp_lib_to_chars): Do not define for freestanding.
	* include/std/version: Adjust which macros get defined in
	freestanding.
	* include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream
	functionality from freestanding.
	* include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos.
	* include/std/memory [!_GLIBCXX_HOSTED]: Omit
	<bits/stl_tempbuf.h> in freestanding
	* include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover
	random_shuffle and stable_partition definition.
	* include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit
	random_shuffle and stable_partition from freestanding.
	* include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit
	stable_partition from freestanding.
	* include/bits/concept_check.h: Remove needless HOSTED check.
	* include/std/iterator: Include <bits/ranges_base.h>.
	* include/std/numeric (__cpp_lib_parallel_algorithms): Do not
	define for freestanding.
	* include/std/functional (__cpp_lib_boyer_moore_searcher):
	Likewise.
	* testsuite/lib/prune.exp: Match error for hosted-only libstdc++
	tests.
2022-10-03 15:43:48 +01:00
..
algorithm libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
any libstdc++: Simplify constraints for std::any construction [PR104242] 2022-03-18 15:40:03 +00:00
array libstdc++: Add always_inline to the simplest std::array accessors [PR104719] 2022-05-04 16:24:56 +01:00
atomic libstdc++: Clear padding bits in atomic compare_exchange 2022-09-08 19:29:12 +01:00
barrier libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
bit libstdc++: Add preprocessor conditions for freestanding [PR106953] 2022-09-16 21:47:19 +01:00
bitset libstdc++: Optimize operator>> for std::bitset 2022-09-30 21:52:02 +01:00
charconv libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
chrono libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
codecvt Update copyright years. 2022-01-03 10:42:10 +01:00
complex libstdc++: Ensure all feature test macros have type long [PR87193] 2022-01-21 16:07:34 +00:00
concepts Update copyright years. 2022-01-03 10:42:10 +01:00
condition_variable libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
coroutine libstdc++: Install <coroutine> header for freestanding [PR103726] 2022-01-11 13:28:46 +00:00
deque libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
execution libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
expected libstdc++: Rename data members of std::unexpected and std::bad_expected_access 2022-08-04 13:10:33 +01:00
filesystem libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
forward_list libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
fstream libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
functional libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
future libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
iomanip libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
ios libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
iosfwd libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
iostream libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
istream libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
iterator libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
latch libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
limits Update copyright years. 2022-01-03 10:42:10 +01:00
list libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
locale libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
map libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
memory libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
memory_resource libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
mutex libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
numbers Update copyright years. 2022-01-03 10:42:10 +01:00
numeric libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
optional libstdc++: Fix missing and incorrect feature test macros [PR105269] 2022-04-14 11:02:37 +01:00
ostream libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
queue libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
random libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
ranges libstdc++: Add preprocessor conditions for freestanding [PR106953] 2022-09-16 21:47:19 +01:00
ratio Update copyright years. 2022-01-03 10:42:10 +01:00
regex libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
scoped_allocator libstdc++: Improve doxygen docs for some of <memory> 2022-05-13 13:32:23 +01:00
semaphore libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
set libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
shared_mutex libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
source_location libstdc++: Tweak source_location for clang trunk [PR105128] 2022-04-02 12:49:38 +02:00
span Update copyright years. 2022-01-03 10:42:10 +01:00
spanstream libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
sstream libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
stack libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
stacktrace libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
stdexcept Update copyright years. 2022-01-03 10:42:10 +01:00
stop_token libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
streambuf libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
string libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
string_view libstdc++: Add [[nodiscard]] attribute to <string> and <string_view> 2022-08-31 10:28:46 +01:00
syncstream libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
system_error libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
thread libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
tuple libstdc++: Consistently use ::type when deriving from __and/or/not_ 2022-09-02 15:16:37 -04:00
type_traits libstdc++: Guard use of new built-in with __has_builtin 2022-09-29 12:47:37 +01:00
typeindex Update copyright years. 2022-01-03 10:42:10 +01:00
unordered_map libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
unordered_set libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
utility libstdc++: Implement std::unreachable() for C++23 (P0627R6) 2022-04-01 13:17:18 +01:00
valarray libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
variant libstdc++: Fix visit<void>(v) for non-void visitors [PR106589] 2022-08-23 16:35:07 +01:00
vector libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00
version libstdc++: Mark headers that must be hosted as such [PR103626] 2022-10-03 15:43:48 +01:00