diff options
author | Alexandre Oliva <oliva@adacore.com> | 2022-06-27 10:34:14 -0300 |
---|---|---|
committer | Alexandre Oliva <oliva@gnu.org> | 2022-06-27 10:34:14 -0300 |
commit | 250b95a99487b5d19f54067c0b420fe252062aac (patch) | |
tree | 5d09d2033861963c47213e3ee576229d71142bc1 | |
parent | b06a282921c71bbc5cab69bc515804bd80f55e92 (diff) | |
download | gcc-250b95a99487b5d19f54067c0b420fe252062aac.zip gcc-250b95a99487b5d19f54067c0b420fe252062aac.tar.gz gcc-250b95a99487b5d19f54067c0b420fe252062aac.tar.bz2 |
libstdc++: xfail experimental/net tests on rtems
Some net/timer/waitable tests fail on rtems because poll() is not
available.
The above, as well as net/internet/resolver/ops tests and
net/timer/waitable/cons.cc, will fail early at runtime unless mkfifo
is enabled in the RTEMS configuration, because the io_context ctor
throws when pipe() fails.
However, even enabling pipes and adjusting the net_ts link command to
use --gc-sections for -lbsd as recommended, both
net/internet/resolver/ops still fail at runtime.
for libstdc++-v3/ChangeLog
* testsuite/lib/dg-options.exp (add_options_for_net_ts):
Add -Wl,--gc-sections for RTEMS targets.
* testsuite/experimental/net/timer/waitable/dest.cc: Link-time
xfail on RTEMS.
* testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
Execution-time xfail on RTEMS.
* testsuite/experimental/net/internet/resolver/ops/reverse.cc:
Likewise.
5 files changed, 5 insertions, 5 deletions
diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc index eb411de..0ac9cb3 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc @@ -18,6 +18,7 @@ // { dg-do run { target c++14 } } // { dg-require-effective-target net_ts_ip } // { dg-add-options net_ts } +// { dg-xfail-run-if "io_context requires a working pipe" { *-*-rtems* } } #include <experimental/internet> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc index 361df26..dfdf855 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc @@ -18,6 +18,7 @@ // { dg-do run { target c++14 } } // { dg-require-effective-target net_ts_ip } // { dg-add-options net_ts } +// { dg-xfail-run-if "io_context requires a working pipe" { *-*-rtems* } } #include <experimental/internet> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc b/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc index f571f4a..384f768 100644 --- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc +++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc @@ -17,6 +17,7 @@ // { dg-do run { target c++14 } } // { dg-add-options libatomic } +// { dg-xfail-if "poll not available" { *-*-rtems* } } #include <experimental/timer> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc b/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc index 97ab629..815ad71 100644 --- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc +++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc @@ -17,6 +17,7 @@ // { dg-do run { target c++14 } } // { dg-add-options libatomic } +// { dg-xfail-if "poll not available" { *-*-rtems* } } #include <experimental/timer> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp index b61c4c0..cc312ed 100644 --- a/libstdc++-v3/testsuite/lib/dg-options.exp +++ b/libstdc++-v3/testsuite/lib/dg-options.exp @@ -281,11 +281,7 @@ proc add_options_for_net_ts { flags } { if { [istarget *-*-solaris2*] } { return "$flags -lsocket -lnsl" } elseif { [istarget *-*-rtems*] } { - # Adding -Wl,--gc-sections would enable a few more tests to - # link, but all of them fail at runtime anyway, because the - # io_context ctor calls pipe(), which always fails, and thus - # the ctor throws a system error. - return "$flags -lbsd" + return "$flags -lbsd -Wl,--gc-sections" } return $flags } |