Re: [kbuild-all] Re: include/linux/compiler_types.h:315:38: error: call to '__compiletime_assert_536' declared with attribute error: BUILD_BUG_ON failed: offsetof(struct can_frame, len) != offsetof(struct canfd_frame, len) || offsetof(struct can_frame, data) != offsetof(struc...
From: Oliver Hartkopp
Date: Tue Mar 23 2021 - 04:33:33 EST
Answering myself ...
On 23.03.21 08:45, Oliver Hartkopp wrote:
On 23.03.21 08:34, Marc Kleine-Budde wrote:
On 23.03.2021 10:54:40, Rong Chen wrote:
I tried arm-linux-gnueabi (gcc version 10.2.0) and the problem still
exists, btw we prefer to not use the latest gcc compiler to avoid
false positives.
FWIW:
I'm using latest debian arm compiler and the BUILD_BUG never triggered.
gcc version 10.2.1 20210110 (Debian 10.2.1-6)
@Rong / Marc:
I wonder if the compiler configurations (gcc -v) or the options used at
kernel build time are identical.
Maybe there is a different optimization option selected which causes the
compiler to extend the u8 union to a 32 bit space?!?
And maybe Debian is a bit more conservative in selecting their
optimizations than the setup that Rong was using for the build ...
Best,
Oliver
Thanks Marc!
IMO we facing a compiler problem here - and we should be very happy that
the BUILD_BUG_ON() triggered an issue after years of silence.
I do not have a good feeling about what kind of strange effects this
compiler issue might have in other code of other projects.
So I would explicitly suggest NOT to change the af_can.c code to work
around this compiler issue.
Let the gcc people fix their product and let them thank all of us for
detecting it.
Regards,
Oliver