undefined references to mkdir, etc in libstdc++ testing

Sandra Loosemore sandra@codesourcery.com
Fri Jan 25 00:15:00 GMT 2019


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



More information about the Libstdc++ mailing list