On 24/01/19 17:14 -0700, Sandra Loosemore wrote:
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))
Thanks. I wonder if this is caused by using -fimplicit-templates in
src/c++17/Makefile.