diff mbox series

[libstdc++,testsuite] no libatomic for vxworks

Message ID or5xty6wwj.fsf@lxoliva.fsfla.org
State New
Headers show
Series [libstdc++,testsuite] no libatomic for vxworks | expand

Commit Message

Alexandre Oliva June 24, 2024, 6:03 p.m. UTC
libatomic hasn't been ported to vxworks.  Most of the stdatomic.h and
<atomic> underlying requirements are provided by builtins and libgcc,
and the vxworks libc already provides remaining __atomic symbols, so
porting libatomic doesn't seem to make sense.

However, some of the target arch-only tests in
add_options_for_libatomic cover vxworks targets, so we end up
attempting to link libatomic in, even though it's not there.
Preempt those too-broad tests.

We've long been using a workaround very similar to this on ppc, and now
that we've made sure there's nothing in libatomic that we'd need on any
vxworks targets, we're ready to contribute this change.  Regstrapping on
x86_64-linux-gnu, just to be sure.  Ok to install?


Co-Authored-By: Marc Poulhiès <poulhies@adacore.com>

for  libstdc++-v3/ChangeLog

	* testsuite/lib/dg-options.exp (add_options_for_libatomic):
	None for *-*-vxworks*.
---
 libstdc++-v3/testsuite/lib/dg-options.exp |    5 +++++
 1 file changed, 5 insertions(+)

Comments

Jonathan Wakely June 24, 2024, 9:51 p.m. UTC | #1
On Mon, 24 Jun 2024 at 21:33, Alexandre Oliva <oliva@adacore.com> wrote:
>
>
> libatomic hasn't been ported to vxworks.  Most of the stdatomic.h and
> <atomic> underlying requirements are provided by builtins and libgcc,
> and the vxworks libc already provides remaining __atomic symbols, so
> porting libatomic doesn't seem to make sense.
>
> However, some of the target arch-only tests in
> add_options_for_libatomic cover vxworks targets, so we end up
> attempting to link libatomic in, even though it's not there.
> Preempt those too-broad tests.
>
> We've long been using a workaround very similar to this on ppc, and now
> that we've made sure there's nothing in libatomic that we'd need on any
> vxworks targets, we're ready to contribute this change.  Regstrapping on
> x86_64-linux-gnu, just to be sure.  Ok to install?

OK, thanks.


>
>
> Co-Authored-By: Marc Poulhiès <poulhies@adacore.com>
>
> for  libstdc++-v3/ChangeLog
>
>         * testsuite/lib/dg-options.exp (add_options_for_libatomic):
>         None for *-*-vxworks*.
> ---
>  libstdc++-v3/testsuite/lib/dg-options.exp |    5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp
> index 84f9e3ebc730c..0d77fb029b09b 100644
> --- a/libstdc++-v3/testsuite/lib/dg-options.exp
> +++ b/libstdc++-v3/testsuite/lib/dg-options.exp
> @@ -338,6 +338,11 @@ proc atomic_link_flags { paths } {
>  }
>
>  proc add_options_for_libatomic { flags } {
> +    # We don't (need to) build libatomic for vxworks.  Don't try to
> +    # link it in, even on arches that support libatomic.
> +    if { [istarget *-*-vxworks*] } {
> +       return $flags
> +    }
>      if { [istarget hppa*-*-hpux*]
>          || ([istarget powerpc*-*-*] && [check_effective_target_ilp32])
>          || [istarget riscv*-*-*]
>
> --
> Alexandre Oliva, happy hacker            https://FSFLA.org/blogs/lxo/
>    Free Software Activist                   GNU Toolchain Engineer
> More tolerance and less prejudice are key for inclusion and diversity
> Excluding neuro-others for not behaving ""normal"" is *not* inclusive
>
diff mbox series

Patch

diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp
index 84f9e3ebc730c..0d77fb029b09b 100644
--- a/libstdc++-v3/testsuite/lib/dg-options.exp
+++ b/libstdc++-v3/testsuite/lib/dg-options.exp
@@ -338,6 +338,11 @@  proc atomic_link_flags { paths } {
 }
 
 proc add_options_for_libatomic { flags } {
+    # We don't (need to) build libatomic for vxworks.  Don't try to
+    # link it in, even on arches that support libatomic.
+    if { [istarget *-*-vxworks*] } {
+	return $flags
+    }
     if { [istarget hppa*-*-hpux*]
 	 || ([istarget powerpc*-*-*] && [check_effective_target_ilp32])
 	 || [istarget riscv*-*-*]