On Thu, Jun 16, 2011 at 3:04 AM, Paolo Pisati p.pisati@gmail.com wrote:
On 06/08/2011 12:29 AM, Michael Hope wrote:
Hi Paolo. Could you please treat this as an application problem and try to track it down further? It would be great if you could track it down to an individual function or chunk of mis-compiled code and supply the preprocessed source that goes with it, then we can jump right onto it.
Does the same fault occur with a FSF 4.6.0 toolchain?
I didn't know where to find a vanilla FSF 4.6 toolchain for arm, so i rolled my own 4.6 toolchain using the Debian 4.6 source packages inside a sid chroot and i can confirm the problem is there too.
Meanwhile while googling around i found i was not the only one experiencing this issue:
https://lists.yoctoproject.org/pipermail/poky/2011-April/005703.html
and
https://lists.yoctoproject.org/pipermail/poky/2011-May/005763.html
then the thread continued in June with some disassembly/low level debugging and a couple of workarounds (neither of them worked for me anyway):
https://lists.yoctoproject.org/pipermail/poky/2011-June/006634.html
Last but not least, i can confim this issue is present in linaro, ubuntu and vanilla kernels going back to at least .35.x (actually the only .35 i tested was ubuntu maverick), and it affects omap4 too.
I couldn't test 3.0 since it kernel panics at boot (but that should be another issue).
Hi Paolo. I've had a look into this and updated the ticket. The problem is due to a change in behaviour between 4.5 and 4.6 when accessing strcuts marked with __attribute__((packed)). 4.5 would do a word-wise access where 4.6 assumes the worst and does a byte-by-byte access.
There was a discussion on the GCC list: http://gcc.gnu.org/ml/gcc/2011-02/msg00035.html
which petered out unfortunately. IMO the compiler is working correctly and the problem should be fixed in the kernel initially and then a long term plan worked out between the kernel and compiler.
Arnd, do you want to pick up that thread? Both Ubuntu and Debian are now 4.6 based so this problem will come up more often. I think Patrik said there's a fix for this specific problem pending.
-- Michael