aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2021-04-22 11:10:06 +0100
committerJonathan Wakely <jwakely@redhat.com>2021-04-22 13:59:32 +0100
commit4b2db8077136d2f8b5a0db026e6161810be327b3 (patch)
tree5c86688c28a7b9b509ff44be0b612dfcb4a68ae2
parentd44d8ed6b4e6fb2d0cf7566214e2e8281dd44cf0 (diff)
downloadgcc-4b2db8077136d2f8b5a0db026e6161810be327b3.zip
gcc-4b2db8077136d2f8b5a0db026e6161810be327b3.tar.gz
gcc-4b2db8077136d2f8b5a0db026e6161810be327b3.tar.bz2
libstdc++: Remove #error from <semaphore> implementation [PR 100179]
This removes the #error from <bits/semaphore_base.h> for the case where neither __atomic_semaphore nor __platform_semaphore is defined. Also rename the _GLIBCXX_REQUIRE_POSIX_SEMAPHORE macro to _GLIBCXX_USE_POSIX_SEMAPHORE for consistency with the similar _GLIBCXX_USE_CXX11_ABI macro that can be used to request an alternative (ABI-changing) implementation. libstdc++-v3/ChangeLog: PR libstdc++/100179 * include/bits/semaphore_base.h: Remove #error. * include/std/semaphore: Do not define anything unless one of the implementations is available.
-rw-r--r--libstdc++-v3/include/bits/semaphore_base.h6
-rw-r--r--libstdc++-v3/include/std/semaphore2
2 files changed, 4 insertions, 4 deletions
diff --git a/libstdc++-v3/include/bits/semaphore_base.h b/libstdc++-v3/include/bits/semaphore_base.h
index 84b3342..4948f0f 100644
--- a/libstdc++-v3/include/bits/semaphore_base.h
+++ b/libstdc++-v3/include/bits/semaphore_base.h
@@ -263,14 +263,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
#endif // __cpp_lib_atomic_wait
-// Note: the _GLIBCXX_REQUIRE_POSIX_SEMAPHORE macro can be used to force the
+// Note: the _GLIBCXX_USE_POSIX_SEMAPHORE macro can be used to force the
// use of Posix semaphores (sem_t). Doing so however, alters the ABI.
-#if defined __cpp_lib_atomic_wait && !_GLIBCXX_REQUIRE_POSIX_SEMAPHORE
+#if defined __cpp_lib_atomic_wait && !_GLIBCXX_USE_POSIX_SEMAPHORE
using __semaphore_impl = __atomic_semaphore;
#elif _GLIBCXX_HAVE_POSIX_SEMAPHORE
using __semaphore_impl = __platform_semaphore;
-#else
-# error "No suitable semaphore implementation available"
#endif
_GLIBCXX_END_NAMESPACE_VERSION
diff --git a/libstdc++-v3/include/std/semaphore b/libstdc++-v3/include/std/semaphore
index a156091..52addca 100644
--- a/libstdc++-v3/include/std/semaphore
+++ b/libstdc++-v3/include/std/semaphore
@@ -34,6 +34,7 @@
#if __cplusplus > 201703L
#include <bits/semaphore_base.h>
+#if __cpp_lib_atomic_wait || _GLIBCXX_HAVE_POSIX_SEMAPHORE
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -89,5 +90,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
+#endif // cpp_lib_atomic_wait || _GLIBCXX_HAVE_POSIX_SEMAPHORE
#endif // C++20
#endif // _GLIBCXX_SEMAPHORE