gcov: Fix __LIBGCC_HAVE_LIBATOMIC definition

Message ID 20231130162054.89738-1-sebastian.huber@embedded-brains.de
State New
Headers
Series gcov: Fix __LIBGCC_HAVE_LIBATOMIC definition |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gcc_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gcc_check--master-aarch64 success Testing passed

Commit Message

Sebastian Huber Nov. 30, 2023, 4:20 p.m. UTC
  In libgcov we use defined (__LIBGCC_HAVE_LIBATOMIC), so we must define it only
if needed (vs. #if __LIBGCC_HAVE_LIBATOMIC).

gcc/c-family/ChangeLog:

	PR target/112777

	* c-cppbuiltin.cc (c_cpp_builtins):  Define __LIBGCC_HAVE_LIBATOMIC
	only if targetm.have_libatomic is true.
---
 gcc/c-family/c-cppbuiltin.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Richard Biener Dec. 1, 2023, 6:56 a.m. UTC | #1
On Thu, Nov 30, 2023 at 5:21 PM Sebastian Huber
<sebastian.huber@embedded-brains.de> wrote:
>
> In libgcov we use defined (__LIBGCC_HAVE_LIBATOMIC), so we must define it only
> if needed (vs. #if __LIBGCC_HAVE_LIBATOMIC).

For consistency wouldn't it be better to change the user side in libgcc?

> gcc/c-family/ChangeLog:
>
>         PR target/112777
>
>         * c-cppbuiltin.cc (c_cpp_builtins):  Define __LIBGCC_HAVE_LIBATOMIC
>         only if targetm.have_libatomic is true.
> ---
>  gcc/c-family/c-cppbuiltin.cc | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gcc/c-family/c-cppbuiltin.cc b/gcc/c-family/c-cppbuiltin.cc
> index e536429fa4c..f8ec6f1747c 100644
> --- a/gcc/c-family/c-cppbuiltin.cc
> +++ b/gcc/c-family/c-cppbuiltin.cc
> @@ -1570,8 +1570,8 @@ c_cpp_builtins (cpp_reader *pfile)
>        /* For libgcov.  */
>        builtin_define_with_int_value ("__LIBGCC_VTABLE_USES_DESCRIPTORS__",
>                                      TARGET_VTABLE_USES_DESCRIPTORS);
> -      builtin_define_with_int_value ("__LIBGCC_HAVE_LIBATOMIC",
> -                                    targetm.have_libatomic);
> +      if (targetm.have_libatomic)
> +       cpp_define (pfile, "__LIBGCC_HAVE_LIBATOMIC");
>      }
>
>    /* For use in assembly language.  */
> --
> 2.35.3
>
  

Patch

diff --git a/gcc/c-family/c-cppbuiltin.cc b/gcc/c-family/c-cppbuiltin.cc
index e536429fa4c..f8ec6f1747c 100644
--- a/gcc/c-family/c-cppbuiltin.cc
+++ b/gcc/c-family/c-cppbuiltin.cc
@@ -1570,8 +1570,8 @@  c_cpp_builtins (cpp_reader *pfile)
       /* For libgcov.  */
       builtin_define_with_int_value ("__LIBGCC_VTABLE_USES_DESCRIPTORS__",
 				     TARGET_VTABLE_USES_DESCRIPTORS);
-      builtin_define_with_int_value ("__LIBGCC_HAVE_LIBATOMIC",
-				     targetm.have_libatomic);
+      if (targetm.have_libatomic)
+	cpp_define (pfile, "__LIBGCC_HAVE_LIBATOMIC");
     }
 
   /* For use in assembly language.  */