On Tue, Sep 06, 2016 at 03:45:09PM +0200, Martin Liška wrote: > --- a/libgcc/libgcov-profiler.c > +++ b/libgcc/libgcov-profiler.c > @@ -24,8 +24,20 @@ see the files COPYING3 and COPYING.RUNTIME respectively. > If not, see > <http://www.gnu.org/licenses/>. */ > > #include "libgcov.h" > +#include "auto-target.h" > #if !defined(inhibit_libc) > > +/* Detect whether target can support atomic update of profilers. */ > +#if LONG_LONG_TYPE_SIZE <= 32 && __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 > +#define GCOV_SUPPORTS_ATOMIC 1 > +#else > +#if LONG_LONG_TYPE_SIZE > 32 && __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 > +#define GCOV_SUPPORTS_ATOMIC 1 > +#else > +#define GCOV_SUPPORTS_ATOMIC 0 > +#endif > +#endif
One more thing. This is always compiled by gcc, so I think you don't want to include auto-target.h and use __SIZEOF_LONG_LONG__ == 4 and __SIZEOF_LONG_LONG__ == 8 tests instead of LONG_LONG_TYPE_SIZE <= 32 or LONG_LONG_TYPE_SIZE > 32. Ok with that change. Jakub