Hello, Am 01.01.2011 13:04, schrieb Dirk Behme: > On 22.12.2010 12:04, Alexander Holler wrote: >> gcc 4.5.1 seems to ignore (at least some) volatile definitions, >> avoid that as done in the kernel. >> >> Reading C99 6.7.3 8 and the comment 114) there, I think it is a bug of >> that >> gcc version to ignore the volatile type qualifier used e.g. in >> __arch_getl(). >> Anyway, using a definition as in the kernel headers avoids such >> optimizations when >> gcc 4.5.1 is used. >> >> Maybe the headers as used in the current linux-kernel should be used, >> but to avoid large changes, I've just added a small change to the >> current headers.
> Do you like to test the patch in the attachment? I named it 'v4'. > > After some thinking and testing, it seems to me that the volatile > optimization issue this patch shall fix is only with the readx() macros. > So the idea is to drop all writex() changes done in the v3 version of > this patch. With dropping the writex() changes, we would drop all issues > we discussed with e.g. the GCC statement-expression and the do while > workaround, too. I've come across a bug which reads as the problem might be fixed in gcc 4.5.2: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45052 I will test gcc 4.5.2 in the next days. Besides that I still think the correct solution would be to use the arm-headers as found in the current linux kernel. The problem is, that I don't know (haven't looked up) the reasons for changes in the arm-linux-headers as currently found in u-boot. And because updating those headers might require some more changes in various other places in u-boot, I think it would be good if one of the u-boot-arm-maintainers would do that. I'm not that much involved in u-boot-development, don't follow the ml closely and therefor might miss necessary changes when taking the current arm-headers from the kernel and dropping them into u-boot. Regards, Alexander _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot