https://gcc.gnu.org/g:3494bc7b03997f96e84e84f6904917854466d5ea
commit r12-10541-g3494bc7b03997f96e84e84f6904917854466d5ea Author: Jonathan Wakely <jwak...@redhat.com> Date: Fri Jun 9 12:15:21 2023 +0100 libstdc++: Add preprocessor checks to <experimental/internet> [PR100285] We can't define endpoints and resolvers without the relevant OS support. If IPPROTO_TCP and IPPROTO_UDP are both undefined then we won't need basic_endpoint and basic_resolver anyway, so make them depend on those macros. libstdc++-v3/ChangeLog: PR libstdc++/100285 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP] (basic_endpoint, basic_resolver_entry, resolver_base) (basic_resolver_results, basic_resolver): Only define if the tcp or udp protocols will be defined. (cherry picked from commit 793ed718b522b15e2d758eca953feeec1979fe2c) Diff: --- libstdc++-v3/include/experimental/internet | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libstdc++-v3/include/experimental/internet b/libstdc++-v3/include/experimental/internet index 4be4bfb731e5..5b05b0f37af7 100644 --- a/libstdc++-v3/include/experimental/internet +++ b/libstdc++-v3/include/experimental/internet @@ -1457,6 +1457,7 @@ namespace ip operator<<(basic_ostream<_CharT, _Traits>& __os, const network_v6& __net) { return __os << __net.to_string(); } +#if defined IPPROTO_TCP || defined IPPROTO_UDP /// An IP endpoint. template<typename _InternetProtocol> class basic_endpoint @@ -2091,6 +2092,7 @@ namespace ip __ec = std::make_error_code(errc::operation_not_supported); #endif } +#endif // IPPROTO_TCP || IPPROTO_UDP /** The name of the local host. * @{