On 16/10/18 13:38 +0200, Rainer Orth wrote:
Some of the new Networking TS tests FAIL before Solaris 11.4 like this:

FAIL: experimental/net/internet/address/v4/members.cc (test for excess errors)
Excess errors:
Undefined                       first referenced
symbol                             in file
inet_ntop                           /var/tmp//ccpcIRXj.o
gai_strerror                        /var/tmp//ccpcIRXj.o
ld: fatal: symbol referencing errors. No output written to ./members.exe
collect2: error: ld returned 1 exit status

This happens because until the socket etc. functions were integrated
into libc in Solaris 11.4, they only lived in libsocket and libnsl.

The following patch fixes this by introducing a new dg-add-options
keyword net_ts (I'm open for suggestions for the name, of course;
networking_ts might be an option, too) and adding the requirement to the
tests involved.

With the patch below, all but one of the tests PASS on
i386-pc-solaris2.10:

FAIL: experimental/net/internet/resolver/ops/lookup.cc execution test

/vol/gcc/src/hg/trunk/local/libstdc++-v3/testsuite/experimental/net/internet/res
olver/ops/lookup.cc:35: void test01(): Assertion '!ec' failed.

The code in question is

 auto addrs = resolv.resolve("localhost", "http", ec);
 VERIFY( !ec );

but "http" is missing from /etc/services before Solaris 11.4.

Ok for mainline?

Btw., one may want to do similarly for the Filesystem TS tests,
introducing dg-add-options fs_ts (or filesystem_ts) instead of repeating
dg-options "-DUSE_FILESYSTEM_TS -lstdc++fs" over and over again.

I tried to add this:

diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp 
b/libstdc++-v3/testsuite/lib/dg-options.exp
index f73ce06..fae0b0d 100644
--- a/libstdc++-v3/testsuite/lib/dg-options.exp
+++ b/libstdc++-v3/testsuite/lib/dg-options.exp
@@ -254,6 +254,9 @@ proc add_options_for_net_ts { flags } {
    if { [istarget *-*-solaris2*] } {
       return "$flags -lsocket -lnsl"
    }
+    if { [istarget *-*-aix*] } {
+       return "$flags -pthread"
+    }
    return $flags
}

But it doesn't work. It seems to be ignored, as the test log shows:

extra_tool_flags are:
 -Wl,-bmaxdata:0x20000000

That suggests I need to add:

{ dg-additional-options "-pthread" { target *-*-aix* } }

Which is a shame, given that we have your new net_ts that should work.


Reply via email to