libstdc++: Don't use gstdint.h anymore
Checks
Commit Message
libstdc++-v3/ChangeLog:
* configure.ac: Stop generating gstdint.h.
* src/c++11/compatibility-atomic-c++0x.cc: Stop using gstdint.h.
---
Tested on x86_64-pc-linux-gnu.
libstdc++-v3/configure.ac | 6 ------
libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc | 9 +++++----
2 files changed, 5 insertions(+), 10 deletions(-)
Comments
On Thu, 20 Oct 2022 at 13:58, Arsen Arsenović via Libstdc++
<libstdc++@gcc.gnu.org> wrote:
>
> libstdc++-v3/ChangeLog:
>
> * configure.ac: Stop generating gstdint.h.
> * src/c++11/compatibility-atomic-c++0x.cc: Stop using gstdint.h.
> ---
> Tested on x86_64-pc-linux-gnu.
>
> libstdc++-v3/configure.ac | 6 ------
> libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc | 9 +++++----
> 2 files changed, 5 insertions(+), 10 deletions(-)
>
> diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
> index 81d914b434a..c5ec976c026 100644
> --- a/libstdc++-v3/configure.ac
> +++ b/libstdc++-v3/configure.ac
> @@ -440,12 +440,6 @@ GCC_CHECK_UNWIND_GETIPINFO
>
> GCC_LINUX_FUTEX([AC_DEFINE(HAVE_LINUX_FUTEX, 1, [Define if futex syscall is available.])])
>
> -if test "$is_hosted" = yes; then
> -# TODO: remove this and change src/c++11/compatibility-atomic-c++0x.cc to
> -# use <stdint.h> instead of <gstdint.h>.
> -GCC_HEADER_STDINT(include/gstdint.h)
> -fi
> -
Yes, I said in r12-6409-g68c2e9e9234cb3 that removing that could wait
for stage 1, so let's do it now.
> GLIBCXX_ENABLE_SYMVERS([yes])
> AC_SUBST(libtool_VERSION)
>
> diff --git a/libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc b/libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
> index 5a0c5459088..2065eb517db 100644
> --- a/libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
> +++ b/libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
> @@ -22,10 +22,11 @@
> // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
> // <http://www.gnu.org/licenses/>.
>
> -#include "gstdint.h"
> #include <atomic>
> #include <mutex>
>
> +using guintptr_t = __UINTPTR_TYPE__;
I think this should be local in the only function that uses it.
> +
> // XXX GLIBCXX_ABI Deprecated
> // gcc-4.7.0
>
> @@ -119,13 +120,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> _GLIBCXX_CONST __atomic_flag_base*
> __atomic_flag_for_address(const volatile void* __z) _GLIBCXX_NOTHROW
> {
> - uintptr_t __u = reinterpret_cast<uintptr_t>(__z);
> + guintptr_t __u = reinterpret_cast<guintptr_t>(__z);
> __u += (__u >> 2) + (__u << 4);
> __u += (__u >> 7) + (__u << 5);
> __u += (__u >> 17) + (__u << 13);
> - if (sizeof(uintptr_t) > 4)
> + if (sizeof(guintptr_t) > 4)
> __u += (__u >> 31);
> - __u &= ~((~uintptr_t(0)) << LOGSIZE);
> + __u &= ~((~guintptr_t(0)) << LOGSIZE);
> return flag_table + __u;
> }
>
> --
> 2.38.1
>
@@ -440,12 +440,6 @@ GCC_CHECK_UNWIND_GETIPINFO
GCC_LINUX_FUTEX([AC_DEFINE(HAVE_LINUX_FUTEX, 1, [Define if futex syscall is available.])])
-if test "$is_hosted" = yes; then
-# TODO: remove this and change src/c++11/compatibility-atomic-c++0x.cc to
-# use <stdint.h> instead of <gstdint.h>.
-GCC_HEADER_STDINT(include/gstdint.h)
-fi
-
GLIBCXX_ENABLE_SYMVERS([yes])
AC_SUBST(libtool_VERSION)
@@ -22,10 +22,11 @@
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
// <http://www.gnu.org/licenses/>.
-#include "gstdint.h"
#include <atomic>
#include <mutex>
+using guintptr_t = __UINTPTR_TYPE__;
+
// XXX GLIBCXX_ABI Deprecated
// gcc-4.7.0
@@ -119,13 +120,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_CONST __atomic_flag_base*
__atomic_flag_for_address(const volatile void* __z) _GLIBCXX_NOTHROW
{
- uintptr_t __u = reinterpret_cast<uintptr_t>(__z);
+ guintptr_t __u = reinterpret_cast<guintptr_t>(__z);
__u += (__u >> 2) + (__u << 4);
__u += (__u >> 7) + (__u << 5);
__u += (__u >> 17) + (__u << 13);
- if (sizeof(uintptr_t) > 4)
+ if (sizeof(guintptr_t) > 4)
__u += (__u >> 31);
- __u &= ~((~uintptr_t(0)) << LOGSIZE);
+ __u &= ~((~guintptr_t(0)) << LOGSIZE);
return flag_table + __u;
}