Hi,
On Mon Apr 27, 2009 at 18:08:33 +0400, Alexey Zaytsev wrote:
Alexander Valitov wrote:
Hi,
I found the source of problem. It is GCC bug. The bug is DSE (dead storage elimination) related. The issue is valid for GCC 4.3.x, 4.4.x, 4.5.x. In 4.2.x and earlier problem does not exist.
I was wrong. It's not GCC bug. "GCC guys" told that problem is in l4sys package. Please see file: /l4/pkg/l4sys/include/ARCH-x86/L4API-l4v2/ipc-l42-gcc3-nopic.h here l4_ipc_send_tag() misses "memory" constraint in clobber list. It definitely must have one. Please fix it.
At the same time following file contains correct l4_ipc_send_tag() implementation: /l4/pkg/l4sys/include/ARCH-x86/L4API-l4v2/ipc-l42-gcc3-nopic.h So i guess the bug is just oversight. Anyway I think it's wise to look through l4sys for similar errors.
Thanks for the fix!
Best Regards, Alexander Valitov
And, by the way, we even got a patch with this and a few other missing asm hints added. It mostly covers ia32 code, and not all packages, but these are the cases I was able to locate quickly, and this potentially might save someone some gray hair.
Thanks, I'll work through the list.
Adam