Hi, This patch fixes an issue in r194725. The call to atmoic builtin is emmitted ...
12 years, 3 months ago
(2013-01-03 00:58:08 UTC)
#1
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 <xur@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
Ok for google branch, but it might be better to warn this at compile time ...
12 years, 3 months ago
(2013-01-03 01:10:28 UTC)
#2
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 <xur@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 <xur@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
Issue 7031051: [google 4_7] fix unsat for target w/o atomic builtins
Created 12 years, 3 months ago by xur
Modified 12 years, 3 months ago
Reviewers: davidxl
Base URL: svn+ssh://gcc.gnu.org/svn/gcc/branches/google/gcc-4_7/
Comments: 0