* [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS @ 2022-06-22 5:24 Alexandre Oliva 2022-06-22 9:11 ` Jonathan Wakely 2022-06-23 9:01 ` Sebastian Huber 0 siblings, 2 replies; 8+ messages in thread From: Alexandre Oliva @ 2022-06-22 5:24 UTC (permalink / raw) To: gcc-patches, libstdc++ Networking functions that net_ts tests rely on are defined in libbsd on RTEMS, so link with it. Regstrapped on x86_64-linux-gnu, also tested with a cross to aarch64-rtems6. Ok to install? for libstdc++-v3/ChangeLog * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add -lbsd for RTEMS targets. --- libstdc++-v3/testsuite/lib/dg-options.exp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp index 203bb0dfed505..15f37da468a5b 100644 --- a/libstdc++-v3/testsuite/lib/dg-options.exp +++ b/libstdc++-v3/testsuite/lib/dg-options.exp @@ -253,6 +253,12 @@ proc add_options_for_net_ts { flags } { # libsocket and libnsl for networking applications. 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 } -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS 2022-06-22 5:24 [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS Alexandre Oliva @ 2022-06-22 9:11 ` Jonathan Wakely 2022-06-23 9:01 ` Sebastian Huber 1 sibling, 0 replies; 8+ messages in thread From: Jonathan Wakely @ 2022-06-22 9:11 UTC (permalink / raw) To: Alexandre Oliva; +Cc: gcc Patches, libstdc++ On Wed, 22 Jun 2022 at 06:25, Alexandre Oliva via Libstdc++ <libstdc++@gcc.gnu.org> wrote: > > > Networking functions that net_ts tests rely on are defined in libbsd > on RTEMS, so link with it. > > Regstrapped on x86_64-linux-gnu, also tested with a cross to > aarch64-rtems6. Ok to install? OK, thanks. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS 2022-06-22 5:24 [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS Alexandre Oliva 2022-06-22 9:11 ` Jonathan Wakely @ 2022-06-23 9:01 ` Sebastian Huber 2022-06-23 9:06 ` Jonathan Wakely 1 sibling, 1 reply; 8+ messages in thread From: Sebastian Huber @ 2022-06-23 9:01 UTC (permalink / raw) To: Alexandre Oliva, gcc-patches, libstdc++ On 22/06/2022 07:24, Alexandre Oliva via Gcc-patches wrote: > + } 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" Using -Wl,--gc-sections is mandatory if you want to link against libbsd.a. In general, it is recommended for RTEMS applications. For pipe() support in RTEMS, you currently need the #define CONFIGURE_IMFS_ENABLE_MKFIFO application configuration option. -- embedded brains GmbH Herr Sebastian HUBER Dornierstr. 4 82178 Puchheim Germany email: sebastian.huber@embedded-brains.de phone: +49-89-18 94 741 - 16 fax: +49-89-18 94 741 - 08 Registergericht: Amtsgericht München Registernummer: HRB 157899 Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler Unsere Datenschutzerklärung finden Sie hier: https://embedded-brains.de/datenschutzerklaerung/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS 2022-06-23 9:01 ` Sebastian Huber @ 2022-06-23 9:06 ` Jonathan Wakely 2022-06-23 11:26 ` Alexandre Oliva 0 siblings, 1 reply; 8+ messages in thread From: Jonathan Wakely @ 2022-06-23 9:06 UTC (permalink / raw) To: Sebastian Huber; +Cc: Alexandre Oliva, gcc-patches, libstdc++ On Thu, 23 Jun 2022, 10:02 Sebastian Huber, < sebastian.huber@embedded-brains.de> wrote: > On 22/06/2022 07:24, Alexandre Oliva via Gcc-patches wrote: > > + } 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" > > Using -Wl,--gc-sections is mandatory if you want to link against > libbsd.a. In general, it is recommended for RTEMS applications. > > For pipe() support in RTEMS, you currently need the > > #define CONFIGURE_IMFS_ENABLE_MKFIFO > > application configuration option. > It would also be fine to just xfail the networking tests for rtems. Our implementation of the Networking TS is incomplete, buggy, and unlikely to evolve much until the C++ committee makes progress on standardized networking. Anybody who wants to use the Networking TS model has to use Boost.Asio for real work, our partial implementation isn't good enough. So making it work and pass tests on rtems isn't important. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS 2022-06-23 9:06 ` Jonathan Wakely @ 2022-06-23 11:26 ` Alexandre Oliva 2022-06-23 11:40 ` Jonathan Wakely 0 siblings, 1 reply; 8+ messages in thread From: Alexandre Oliva @ 2022-06-23 11:26 UTC (permalink / raw) To: Jonathan Wakely; +Cc: Sebastian Huber, gcc-patches, libstdc++ On Jun 23, 2022, Jonathan Wakely <jwakely.gcc@gmail.com> wrote: > On Thu, 23 Jun 2022, 10:02 Sebastian Huber, < > sebastian.huber@embedded-brains.de> wrote: >> On 22/06/2022 07:24, Alexandre Oliva via Gcc-patches wrote: >> > + } 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" >> >> Using -Wl,--gc-sections is mandatory if you want to link against >> libbsd.a. Weirdly, it worked for all other testcases. >> For pipe() support in RTEMS, you currently need the >> #define CONFIGURE_IMFS_ENABLE_MKFIFO Thanks, I'll reach out to the person in charge of our rtems configuration for this project, and suggest enabling it on our end. > It would also be fine to just xfail the networking tests for rtems. I was using something like this internally. Regstrapped on x86_64-linux-gnu, also tested with a cross to aarch64-rtems6. Ok to install? libstdc++: xfail io_context/pipe users on rtems From: Alexandre Oliva <oliva@adacore.com> A handful of tests fail on rtems because pipe() always returns -1, and the io_context ctor throws a system error when pipe() fails. for libstdc++-v3/ChangeLog * testsuite/experimental/net/timer/waitable/cons.cc: xfail on RTEMS. * testsuite/experimental/net/timer/waitable/dest.cc: Likewise. * testsuite/experimental/net/timer/waitable/ops.cc: Likewise. * testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise. * testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise. TN: V617-003 --- .../net/internet/resolver/ops/lookup.cc | 1 + .../net/internet/resolver/ops/reverse.cc | 1 + .../experimental/net/timer/waitable/cons.cc | 1 + .../experimental/net/timer/waitable/dest.cc | 1 + .../experimental/net/timer/waitable/ops.cc | 1 + 5 files changed, 5 insertions(+) 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 eb411dea8369c..7684c21012dfb 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-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 361df2676efc8..3ef51f9ebe848 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-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/cons.cc b/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc index 40ae5b965a2b0..4e055eadb20a0 100644 --- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc +++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc @@ -17,6 +17,7 @@ // { dg-do run { target c++14 } } // { dg-add-options libatomic } +// { dg-xfail-if "io_context requires a working pipe" { *-*-rtems* } } #include <experimental/timer> #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 f571f4a8d861a..2f2e425fa0b33 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 "io_context requires a working pipe" { *-*-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 97ab629b893a9..a52f3259193c4 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 "io_context requires a working pipe" { *-*-rtems* } } #include <experimental/timer> #include <testsuite_hooks.h> -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS 2022-06-23 11:26 ` Alexandre Oliva @ 2022-06-23 11:40 ` Jonathan Wakely 2022-06-23 12:39 ` Alexandre Oliva 0 siblings, 1 reply; 8+ messages in thread From: Jonathan Wakely @ 2022-06-23 11:40 UTC (permalink / raw) To: Alexandre Oliva; +Cc: Jonathan Wakely, libstdc++, gcc-patches On Thu, 23 Jun 2022 at 12:26, Alexandre Oliva via Libstdc++ <libstdc++@gcc.gnu.org> wrote: > > On Jun 23, 2022, Jonathan Wakely <jwakely.gcc@gmail.com> wrote: > > > On Thu, 23 Jun 2022, 10:02 Sebastian Huber, < > > sebastian.huber@embedded-brains.de> wrote: > > >> On 22/06/2022 07:24, Alexandre Oliva via Gcc-patches wrote: > >> > + } 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" > >> > >> Using -Wl,--gc-sections is mandatory if you want to link against > >> libbsd.a. > > Weirdly, it worked for all other testcases. > > >> For pipe() support in RTEMS, you currently need the > > >> #define CONFIGURE_IMFS_ENABLE_MKFIFO > > Thanks, I'll reach out to the person in charge of our rtems > configuration for this project, and suggest enabling it on our end. > > > > It would also be fine to just xfail the networking tests for rtems. > > I was using something like this internally. Regstrapped on > x86_64-linux-gnu, also tested with a cross to aarch64-rtems6. Ok to > install? OK, thanks. > > > libstdc++: xfail io_context/pipe users on rtems > > From: Alexandre Oliva <oliva@adacore.com> > > A handful of tests fail on rtems because pipe() always returns -1, and > the io_context ctor throws a system error when pipe() fails. > > > for libstdc++-v3/ChangeLog > > * testsuite/experimental/net/timer/waitable/cons.cc: xfail on > RTEMS. > * testsuite/experimental/net/timer/waitable/dest.cc: Likewise. > * testsuite/experimental/net/timer/waitable/ops.cc: Likewise. > * testsuite/experimental/net/internet/resolver/ops/lookup.cc: > Likewise. > * testsuite/experimental/net/internet/resolver/ops/reverse.cc: > Likewise. > > TN: V617-003 > --- > .../net/internet/resolver/ops/lookup.cc | 1 + > .../net/internet/resolver/ops/reverse.cc | 1 + > .../experimental/net/timer/waitable/cons.cc | 1 + > .../experimental/net/timer/waitable/dest.cc | 1 + > .../experimental/net/timer/waitable/ops.cc | 1 + > 5 files changed, 5 insertions(+) > > 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 eb411dea8369c..7684c21012dfb 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-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 361df2676efc8..3ef51f9ebe848 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-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/cons.cc b/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc > index 40ae5b965a2b0..4e055eadb20a0 100644 > --- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc > +++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc > @@ -17,6 +17,7 @@ > > // { dg-do run { target c++14 } } > // { dg-add-options libatomic } > +// { dg-xfail-if "io_context requires a working pipe" { *-*-rtems* } } > > #include <experimental/timer> > #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 f571f4a8d861a..2f2e425fa0b33 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 "io_context requires a working pipe" { *-*-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 97ab629b893a9..a52f3259193c4 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 "io_context requires a working pipe" { *-*-rtems* } } > > #include <experimental/timer> > #include <testsuite_hooks.h> > > > -- > Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ > Free Software Activist GNU Toolchain Engineer > Disinformation flourishes because many people care deeply about injustice > but very few check the facts. Ask me about <https://stallmansupport.org> > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS 2022-06-23 11:40 ` Jonathan Wakely @ 2022-06-23 12:39 ` Alexandre Oliva 2022-06-27 13:29 ` Alexandre Oliva 0 siblings, 1 reply; 8+ messages in thread From: Alexandre Oliva @ 2022-06-23 12:39 UTC (permalink / raw) To: Jonathan Wakely; +Cc: Jonathan Wakely, libstdc++, gcc-patches On Jun 23, 2022, Jonathan Wakely <jwakely@redhat.com> wrote: > On Thu, 23 Jun 2022 at 12:26, Alexandre Oliva via Libstdc++ > <libstdc++@gcc.gnu.org> wrote: >> I was using something like this internally. Regstrapped on >> x86_64-linux-gnu, also tested with a cross to aarch64-rtems6. Ok to >> install? > OK, thanks. Sorry, I goofed when testing this, and another internal xfail machinery hid the bug: I had to use dg-xfail-run-if instead. I caught that later, but it looks like I failed to refresh the xfail patchfiles I posted :-( I'm going ahead and check it in assuming this is what you meant to approve, but only after catching some sleep, because it's been a long day and I don't want any more goofs ;-) libstdc++: xfail io_context/pipe users on rtems From: Alexandre Oliva <oliva@adacore.com> A handful of tests fail on rtems because pipe() always returns -1, and the io_context ctor throws a system error when pipe() fails. for libstdc++-v3/ChangeLog * testsuite/experimental/net/timer/waitable/cons.cc: xfail on RTEMS. * testsuite/experimental/net/timer/waitable/dest.cc: Likewise. * testsuite/experimental/net/timer/waitable/ops.cc: Likewise. * testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise. * testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise. TN: V617-003 --- .../net/internet/resolver/ops/lookup.cc | 1 + .../net/internet/resolver/ops/reverse.cc | 1 + .../experimental/net/timer/waitable/cons.cc | 1 + .../experimental/net/timer/waitable/dest.cc | 1 + .../experimental/net/timer/waitable/ops.cc | 1 + 5 files changed, 5 insertions(+) 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 eb411dea8369c..0ac9cb3513d7e 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 361df2676efc8..dfdf855c68cd7 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/cons.cc b/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc index 40ae5b965a2b0..f013278675d33 100644 --- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc +++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc @@ -17,6 +17,7 @@ // { dg-do run { target c++14 } } // { dg-add-options libatomic } +// { dg-xfail-run-if "io_context requires a working pipe" { *-*-rtems* } } #include <experimental/timer> #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 f571f4a8d861a..dc557d01a9136 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-run-if "io_context requires a working pipe" { *-*-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 97ab629b893a9..f7549def38925 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-run-if "io_context requires a working pipe" { *-*-rtems* } } #include <experimental/timer> #include <testsuite_hooks.h> -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS 2022-06-23 12:39 ` Alexandre Oliva @ 2022-06-27 13:29 ` Alexandre Oliva 0 siblings, 0 replies; 8+ messages in thread From: Alexandre Oliva @ 2022-06-27 13:29 UTC (permalink / raw) To: Jonathan Wakely; +Cc: Jonathan Wakely, libstdc++, gcc-patches On Jun 23, 2022, Alexandre Oliva <oliva@adacore.com> wrote: > Sorry, I goofed when testing this, and another internal xfail machinery > hid the bug: I had to use dg-xfail-run-if instead. And then, having enabled pipe(), disabled the internal xfail machinery, and added -Wl,--gc-sections after -lbsd as recommended, I found that net/timer/waitable/cons.cc passed; that the other waitable tests failed to link because of poll(), not pipes; and that the resolver tests failed for other reasons. So here's the adjusted patch I'm using now, and that I'll check in shortly. 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. Regstrapped on x86_64-linux-gnu, also tested with a cross to aarch64-rtems6. Ok to install? 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. --- .../net/internet/resolver/ops/lookup.cc | 1 + .../net/internet/resolver/ops/reverse.cc | 1 + .../experimental/net/timer/waitable/dest.cc | 1 + .../experimental/net/timer/waitable/ops.cc | 1 + libstdc++-v3/testsuite/lib/dg-options.exp | 6 +----- 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 eb411dea8369c..0ac9cb3513d7e 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 361df2676efc8..dfdf855c68cd7 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 f571f4a8d861a..384f768c2b56d 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 97ab629b893a9..815ad71578035 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 b61c4c0cb8fcd..cc312edc172e4 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 } -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-06-27 13:29 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-06-22 5:24 [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS Alexandre Oliva 2022-06-22 9:11 ` Jonathan Wakely 2022-06-23 9:01 ` Sebastian Huber 2022-06-23 9:06 ` Jonathan Wakely 2022-06-23 11:26 ` Alexandre Oliva 2022-06-23 11:40 ` Jonathan Wakely 2022-06-23 12:39 ` Alexandre Oliva 2022-06-27 13:29 ` Alexandre Oliva
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).