This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

undefined references to mkdir, etc in libstdc++ testing


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]