On 1/24/19 1:20 PM, Jonathan Wakely wrote:
On 24/01/19 11:53 -0700, Sandra Loosemore wrote:
BTW, I'm more worried about the link errors introduced by the patch
for PR 86756. Those are regressions and apparently a problem that
could affect user code, not just broken test cases for half-baked new
features.
If I understand correctly(*) it can only affect user code that uses
the std::filesystem library, which was new in GCC 8.1, and if those
tests are failing for nios2-elf then it was never usable anyway. The
tests run by default now, but previously they were only run if gcc was
configured with --enable-libstdcxx-filesystem-ts, so this isn't really
a regression in what users can do with the library. I agree they're
more important than the experimental/net/ tests though.
(*) only a few of the 27_io/filesystem/path tests are showing these
linker errors, right? Or are tests outside 27_io/filesystem also
affected?
Other tests are affected. This appears to be the full list:
FAIL: 19_diagnostics/error_code/cons/39882.cc (test for excess errors)
FAIL: 19_diagnostics/error_code/modifiers/39882.cc (test for excess errors)
FAIL: 19_diagnostics/error_condition/cons/39881.cc (test for excess errors)
FAIL: 19_diagnostics/error_condition/modifiers/39881.cc (test for excess
errors)
FAIL: 19_diagnostics/system_error/cons_virtual_derivation.cc (test for
excess errors)
FAIL: 20_util/hash/operators/size_t.cc (test for excess errors)
FAIL: 27_io/filesystem/operations/all.cc (test for excess errors)
FAIL: 27_io/filesystem/operations/resize_file.cc (test for excess errors)
FAIL: 27_io/filesystem/path/generation/normal2.cc (test for excess errors)
FAIL: experimental/net/buffer/arithmetic.cc (test for excess errors)
FAIL: experimental/net/buffer/const.cc (test for excess errors)
FAIL: experimental/net/buffer/creation.cc (test for excess errors)
FAIL: experimental/net/buffer/mutable.cc (test for excess errors)
FAIL: experimental/net/buffer/size.cc (test for excess errors)
In GCC 8 the 19_diagnostics and 20_util tests in that list PASSed. The
other tests are new in GCC 9, but in GCC 8 all the other
27_io/filesystem tests showed up as UNSUPPORTED on this target.
BTW, here's a snippet from the link map for the first FAIL on that list.
AFAICT there is nothing that references the libstdc++ functions that
call mkdir, etc; those functions are only getting sucked into the link
because of a reference to some template function in that compilation unit.
/scratch/sandra/nios2-elf-fsf-gcc/install/opt/codesourcery/bin/../lib/gcc/nios2-elf/9.0.0/../../../../nios2-elf/lib/libstdc++.a(fs_ops.o)
/scratch/sandra/nios2-elf-fsf-gcc/install/opt/codesourcery/bin/../lib/gcc/nios2-elf/9.0.0/../../../../nios2-elf/lib/libstdc++.a(system_error.o)
(void std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >::_M_construct<char const*>(char const*, char
const*, std::forward_iterator_tag))
-Sandra