Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS

2022-06-27 Thread Alexandre Oliva via Gcc-patches
On Jun 23, 2022, Alexandre Oliva  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 
 #include 
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 
 #include 
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 
 #include 
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 
 #include 
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 hac

Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS

2022-06-23 Thread Alexandre Oliva via Gcc-patches
On Jun 23, 2022, Jonathan Wakely  wrote:

> On Thu, 23 Jun 2022 at 12:26, Alexandre Oliva via Libstdc++
>  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 

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 
 #include 
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 
 #include 
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 
 #include 
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 
 #include 
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 
 #include 


-- 
Alexandre Oliva, happy hackerhttps://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 


Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS

2022-06-23 Thread Jonathan Wakely via Gcc-patches
On Thu, 23 Jun 2022 at 12:26, Alexandre Oliva via Libstdc++
 wrote:
>
> On Jun 23, 2022, Jonathan Wakely  wrote:
>
> > On Thu, 23 Jun 2022, 10:02 Sebastian Huber, <
> > sebastian.hu...@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 
>
> 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 
>  #include 
> 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 
>  #include 
> 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 
>  #include 
> 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 
>  #include 
> 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 }
> +//

Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS

2022-06-23 Thread Alexandre Oliva via Gcc-patches
On Jun 23, 2022, Jonathan Wakely  wrote:

> On Thu, 23 Jun 2022, 10:02 Sebastian Huber, <
> sebastian.hu...@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 

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 
 #include 
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 
 #include 
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 
 #include 
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 
 #include 
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 
 #include 


-- 
Alexandre Oliva, happy hackerhttps://FSFLA.org/blogs/lxo/
   Free Software Activist   GNU Toolchain Engineer
Disinformation flourishes because many people care deeply 

Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS

2022-06-23 Thread Jonathan Wakely via Gcc-patches
On Thu, 23 Jun 2022, 10:02 Sebastian Huber, <
sebastian.hu...@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.


Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS

2022-06-23 Thread Sebastian Huber

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.hu...@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/


Re: [PATCH] libstdc++: testsuite: use -lbsd for net_ts on RTEMS

2022-06-22 Thread Jonathan Wakely via Gcc-patches
On Wed, 22 Jun 2022 at 06:25, Alexandre Oliva via Libstdc++
 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.