Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Hannes Domani <ssbssa@yahoo.de>
To: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>,
	 "simon.marchi@polymtl.ca" <simon.marchi@polymtl.ca>
Subject: Re: [PATCH] gdbsupport: bump unordered_dense library to 4.6.0
Date: Wed, 8 Oct 2025 17:48:30 +0000 (UTC)	[thread overview]
Message-ID: <1362579628.1523332.1759945710904@mail.yahoo.com> (raw)
In-Reply-To: <20251008161047.1381033-1-simon.marchi@polymtl.ca>

Am Mittwoch, 8. Oktober 2025 um 18:11:57 MESZ hat simon.marchi@polymtl.ca <simon.marchi@polymtl.ca> Folgendes geschrieben:

> From: Simon Marchi <simon.marchi@polymtl.ca>
> 
> This version brings a fix made by Pedro [1] to fix compilation on some
> Windows systems.
> 
> [1] https://github.com/martinus/unordered_dense/pull/132
> 
> Change-Id: I5cedec0e644074e2274346ecc1c73e5be00f84b0
> ---
> gdbsupport/unordered_dense.h | 479 +++++++++++++++++++++++++----------
> 1 file changed, 343 insertions(+), 136 deletions(-)
> 
> diff --git a/gdbsupport/unordered_dense.h b/gdbsupport/unordered_dense.h
> index 73dc9ace732a..64766f254fcd 100644
> --- a/gdbsupport/unordered_dense.h
> +++ b/gdbsupport/unordered_dense.h
> @@ -1,12 +1,12 @@
> ///////////////////////// ankerl::unordered_dense::{map, set} /////////////////////////
> 
> // A fast & densely stored hashmap and hashset based on robin-hood backward shift deletion.
> -// Version 4.4.0
> +// Version 4.6.0
> // https://github.com/martinus/unordered_dense
> //
> // Licensed under the MIT License <http://opensource.org/licenses/MIT>.
> // SPDX-License-Identifier: MIT
> -// Copyright (c) 2022-2023 Martin Leitner-Ankerl <martin.ankerl@gmail.com>
> +// Copyright (c) 2022-2024 Martin Leitner-Ankerl <martin.ankerl@gmail.com>
> //
> // Permission is hereby granted, free of charge, to any person obtaining a copy
> // of this software and associated documentation files (the "Software"), to deal
> @@ -31,7 +31,7 @@
> 
> // see https://semver.org/spec/v2.0.0.html
> #define ANKERL_UNORDERED_DENSE_VERSION_MAJOR 4 // NOLINT(cppcoreguidelines-macro-usage) incompatible API changes
> -#define ANKERL_UNORDERED_DENSE_VERSION_MINOR 4 // NOLINT(cppcoreguidelines-macro-usage) backwards compatible functionality
> +#define ANKERL_UNORDERED_DENSE_VERSION_MINOR 6 // NOLINT(cppcoreguidelines-macro-usage) backwards compatible functionality
> #define ANKERL_UNORDERED_DENSE_VERSION_PATCH 0 // NOLINT(cppcoreguidelines-macro-usage) backwards compatible bug fixes
> 
> // API versioning with inline namespace, see https://www.foonathan.net/2018/11/inline-namespaces/
> @@ -70,6 +70,17 @@
> #    define ANKERL_UNORDERED_DENSE_NOINLINE __attribute__((noinline))
> #endif
> 
> +#if defined(__clang__) && defined(__has_attribute)
> +#    if __has_attribute(__no_sanitize__)
> +#        define ANKERL_UNORDERED_DENSE_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK \
> +            __attribute__((__no_sanitize__("unsigned-integer-overflow")))
> +#    endif
> +#endif
> +
> +#if !defined(ANKERL_UNORDERED_DENSE_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK)
> +#    define ANKERL_UNORDERED_DENSE_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK
> +#endif
> +
> // defined in unordered_dense.cpp
> #if !defined(ANKERL_UNORDERED_DENSE_EXPORT)
> #    define ANKERL_UNORDERED_DENSE_EXPORT
> @@ -98,8 +109,27 @@
> #        include <cstdlib> // for abort
> #    endif
> 
> -#    if defined(__has_include)
> -#        if __has_include(<memory_resource>)
> +// <memory_resource> includes <mutex>, which fails to compile if
> +// targeting GCC >= 13 with the (rewritten) win32 thread model, and
> +// targeting Windows earlier than Vista (0x600).  GCC predefines
> +// _REENTRANT when using the 'posix' model, and doesn't when using the
> +// 'win32' model.
> +#    if defined __MINGW64__ && defined __GNUC__ && __GNUC__ >= 13 && !defined _REENTRANT
> +// _WIN32_WINNT is guaranteed to be defined here because of the
> +// <cstdint> inclusion above.
> +#        ifndef _WIN32_WINNT
> +#            error "_WIN32_WINNT not defined"
> +#        endif
> +#        if _WIN32_WINNT < 0x600
> +#            define ANKERL_MEMORY_RESOURCE_IS_BAD() 1 // NOLINT(cppcoreguidelines-macro-usage)
> +#        endif
> +#    endif
> +#    ifndef ANKERL_MEMORY_RESOURCE_IS_BAD
> +#        define ANKERL_MEMORY_RESOURCE_IS_BAD() 0 // NOLINT(cppcoreguidelines-macro-usage)
> +#    endif

This mentions '(rewritten) win32' and 'posix' thread models.
What about the 'mcf' thread model, or is that meant with 'rewritten win32'?


Regards
Hannes

  parent reply	other threads:[~2025-10-08 17:49 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-08 16:10 simon.marchi
2025-10-08 17:19 ` Tom Tromey
2025-10-08 17:48 ` Hannes Domani [this message]
2025-10-08 19:19   ` Pedro Alves
2025-10-27 16:03     ` Simon Marchi
2025-10-27 17:13       ` Hannes Domani

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1362579628.1523332.1759945710904@mail.yahoo.com \
    --to=ssbssa@yahoo.de \
    --cc=gdb-patches@sourceware.org \
    --cc=simon.marchi@polymtl.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox