|
From: <Ero...@li...> - 2012-03-02 13:39:27
|
Hi, thank you for you reply. I have found the solution i.e. the developers of GCC have found it. The latest version of GCC 4.6.3 can be used with Helgrind. See here for more detail http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug. html#debug.races. Best Regards Salvatore >----Messaggio originale---- >Da: js...@ac... >Data: 02/03/2012 13.06 >A: <val...@li...>, "Ero...@li..." <Ero...@li...> >Ogg: Re: [Valgrind-users] Helgrind and OpenMP on GCC > >On Friday, February 24, 2012, Ero...@li... wrote: >> Hi all, >> >> I would like to use Helgrind tool of Valgrind but I read on the manual the >> following statement: Runtime support library for GNU OpenMP (part of GCC), >> at least for GCC versions 4.2 and 4.3. The GNU OpenMP runtime library >> (libgomp.so) constructs its own synchronisation primitives using >> combinations of atomic memory instructions and the futex syscall, which >> causes total chaos since in Helgrind since it cannot "see" those. >> >> The current version of GCC 4.6.2 still uses the futex syscall. Can I use >> Helgrind or the problem is still present?. > >The problem is almost certainly still present. However, I developed a >patch for GCC 4.5 that modifies its libgomp.so (the runtime support >library for GNU OpenMP) so that it passes information about >inter thread synchronisation events to Helgrind (and maybe, DRD). >Using that, it was possible to run quite large OpenMP apps on Helgrind >without false positives. > >It does mean you have to patch and build your own gcc, and use that >to compile your app, but in the grand scheme of things that's no >big deal. If you want to try it out, and/or try to update the patch >for gcc 4.6, I'm happy to make it available. > >J > |