Re: [lttng-dev] New TLS usage in libgcc_s.so.1, compatibility impact

2024-01-15 Thread Mathieu Desnoyers via Gcc
On 2024-01-15 14:42, Florian Weimer wrote: * Mathieu Desnoyers: [...] General use of lttng should be fine, I think, only the malloc wrapper has this problem. The purpose of the nesting counter TLS variable in the malloc wrapper is to catch situations like this where a global-dynamic TLS acc

Re: [lttng-dev] New TLS usage in libgcc_s.so.1, compatibility impact

2024-01-15 Thread Mathieu Desnoyers via Gcc
On 2024-01-13 07:49, Florian Weimer via lttng-dev wrote: This commit commit 8abddb187b33480d8827f44ec655f45734a1749d Author: Andrew Burgess Date: Sat Aug 5 14:31:06 2023 +0200 libgcc: support heap-based trampolines Add support for heap-based trampolines on x86_64-linux, aarch

Re: [RFC] Bridging the gap between the Linux Kernel Memory Consistency Model (LKMM) and C11/C++11 atomics

2023-08-16 Thread Mathieu Desnoyers via Gcc
On 7/10/23 10:32, Jonas Oberhauser wrote: Am 7/7/2023 um 7:25 PM schrieb Olivier Dion: On Fri, 07 Jul 2023, Jonas Oberhauser wrote: [...] This is a request for comments on extending the atomic builtins API to help avoiding redundant memory barriers.  Indeed, there are discrepancies between t

Re: [RFC] Bridging the gap between the Linux Kernel Memory Consistency Model (LKMM) and C11/C++11 atomics

2023-07-07 Thread Mathieu Desnoyers via Gcc
On 7/4/23 06:23, Jonathan Wakely wrote: On Tue, 4 Jul 2023 at 10:47, Peter Zijlstra wrote: On Mon, Jul 03, 2023 at 03:20:31PM -0400, Olivier Dion wrote: int x = 0; int y = 0; int r0, r1; int dummy; void t0(void) { __atomic_store_n(&x, 1, __ATOMIC_RELAXED);

Re: [RFC] Bridging the gap between the Linux Kernel Memory Consistency Model (LKMM) and C11/C++11 atomics

2023-07-05 Thread Mathieu Desnoyers via Gcc
On 7/5/23 03:05, Boqun Feng wrote: On Mon, Jul 03, 2023 at 03:20:31PM -0400, Olivier Dion wrote: [...] NOTE: On x86-64, we found at least one corner case [7] with Clang where a RELEASE exchange is optimized to a RELEASE store, when the returned value of the exchange is unused, breaking the above