On Sun, Jan 15, 2023 at 09:46:36PM -0700, Nathan Chancellor wrote:
Hi Greg and Sasha,
Clang 16 (current main, next major release) errors when offsetof() has a type defintion in it, in response to language in newer C standards stating it is undefined behavior.
https://github.com/llvm/llvm-project/commit/e327b52766ed497e4779f4e652b9ad23... https://reviews.llvm.org/D133574
While this might be eventually demoted to just a warning, the kernel has already cleaned up places that had this construct, so we can apply them to the stable trees and avoid the issue altogether.
Please find attached mbox files for all supported stable trees, which fix up the relevant instances for each tree using the upstream commits:
55228db2697c ("x86/fpu: Use _Alignof to avoid undefined behavior in TYPE_ALIGN") 09794a5a6c34 ("tracing: Use alignof__(struct {type b;}) instead of offsetof()")
The fpu commit uses _Alignof, which as far as I can tell was only supported in GCC 4.7.0+. This is not a problem for mainline due to requiring GCC 5.1.0+ but it could be relevant for old trees like 4.14, which have an older minimum supported version. I hope people are not using ancient compilers like that but I suppose if they are using 4.14, they might just be stuck with old software...
If there are any issues or comments, please let me know.
Now queued up, thanks.
greg k-h