[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87mu42bepq.fsf@oldenburg2.str.redhat.com>
Date: Tue, 14 Jul 2020 11:58:25 +0200
From: Florian Weimer <fweimer@...hat.com>
To: Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
Cc: Peter Zijlstra <peterz@...radead.org>,
linux-kernel@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
"Paul E . McKenney" <paulmck@...ux.ibm.com>,
Boqun Feng <boqun.feng@...il.com>,
"H . Peter Anvin" <hpa@...or.com>, Paul Turner <pjt@...gle.com>,
linux-api@...r.kernel.org,
Christian Brauner <christian.brauner@...ntu.com>,
carlos@...hat.com
Subject: Re: [RFC PATCH 2/4] rseq: Allow extending struct rseq
* Mathieu Desnoyers:
> + /*
> + * Very last field of the structure, to calculate size excluding padding
> + * with offsetof().
> + */
> + char end[];
> } __attribute__((aligned(4 * sizeof(__u64))));
This makes the header incompatible with standard C++.
How are extensions going to affect the definition of struct rseq,
including its alignment?
As things stand now, glibc 2.32 will make the size and alignment of
struct rseq part of its ABI, so it can't really change after that.
With a different approach, we can avoid making the symbol size part of
the ABI, but then we cannot use the __rseq_abi TLS symbol. As a result,
interoperability with early adopters would be lost.
One way to avoid this problem would be for every library to register its
own rseq area, of the appropriate size. Then process-wide coordination
in userspace would not be needed.
Thanks,
Florian
Powered by blists - more mailing lists