Ok for google branch, but it might be better to warn this at compile time (more discussion needed for the trunk version).
David On Wed, Jan 2, 2013 at 4:58 PM, Rong Xu <x...@google.com> wrote: > Hi, > > This patch fixes an issue in r194725. The call to atmoic builtin > is emmitted regardless of -fprofile-gen-atomic -- which results > in link unsat for targets without sync builtin support. > > Tested with regression test in x86 (with builtin support.) > and powerpc32 (without builtin support). > > Thanks, > > -Rong > > 2013-01-02 Rong Xu <x...@google.com> > > * gcc/gcov-io.h: Make __atomic_fetch_add weak for these > target without sync builtin support. > > Index: gcc/gcov-io.h > =================================================================== > --- gcc/gcov-io.h (revision 194739) > +++ gcc/gcov-io.h (working copy) > @@ -308,6 +308,10 @@ typedef unsigned gcov_type_unsigned __attribute__ > #define GCOV_TYPE_ATOMIC_FETCH_ADD_FN __atomic_fetch_add_4 > #define GCOV_TYPE_ATOMIC_FETCH_ADD BUILT_IN_ATOMIC_FETCH_ADD_4 > #endif > +/* Make the atomic builtin weak. Otherwise we get link unsat > + if the builtin is not available. */ > +extern gcov_type GCOV_TYPE_ATOMIC_FETCH_ADD_FN > + (gcov_type*, gcov_type, int) __attribute__ ((weak)); > > #undef EXTRACT_MODULE_ID_FROM_GLOBAL_ID > #undef EXTRACT_FUNC_ID_FROM_GLOBAL_ID > > -- > This patch is available for review at http://codereview.appspot.com/7031051