Package: g++-mingw-w64-i686
Version: 8.2.0-21+21.1
Severity: normal

Unfortunately, std::filesystem still can't be used with the latest version
of the package: after the fix for the compilation problems previously
reported as #907369, any attempt to use this library results in linking
problems because libstdc++fs.a file is nowhere to be found.

To reproduce, compile this trivial example:

% cat -n fs.cpp
     1  #include <iostream>
     2  #include <filesystem>
     3  namespace fs = std::filesystem;
     4
     5  int main(int argc, char *argv[])
     6  {
     7      fs::path p(argv[1]);
     8      std::cout << "Native:\t" << p.string() << "\n"
     9                << "Generic:\t" << p.generic_string() << "\n";
    10      return 0;
    11  }
% i686-w64-mingw32-g++ -std=c++17 fs.cpp
/usr/bin/i686-w64-mingw32-ld: 
fs.o:fs.cpp:(.text$_ZNSt10filesystem7__cxx114pathC1IPcS1_EERKT_NS1_6formatE[__ZNSt10filesystem7__cxx114pathC1IPcS1_EERKT_NS1_6formatE]+0x93):
 undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
[... and other similar errors ...]
collect2: error: ld returned 1 exit status
% i686-w64-mingw32-g++ -std=c++17 fs.o -lstdc++fs
/usr/bin/i686-w64-mingw32-ld: cannot find -lstdc++fs
collect2: error: ld returned 1 exit status

The latter command line works when using the native g++-8, which does
provide the library.

I don't really know if this is supposed to work or not, but it seems a bit
strange to provide the headers for the library, but not the library itself.

Note that according to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78870
--enable-libstdcxx-filesystem-ts must be used to enable it, could it be
that it simply needs to be added to configure arguments?

Thanks in advance!

-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (500, 'unstable-debug'), (100, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.6.0-0.bpo.1-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_UNSIGNED_MODULE
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to 
C.UTF-8), LANGUAGE=C.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to C.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: unable to detect

Versions of packages g++-mingw-w64-i686 depends on:
ii  gcc-mingw-w64-base  8.2.0-21+21.1
ii  gcc-mingw-w64-i686  8.2.0-21+21.1
ii  libc6               2.28-8
ii  libgcc1             1:8.3.0-3
ii  libgmp10            2:6.1.2+dfsg-4
ii  libisl19            0.20-2
ii  libmpc3             1.1.0-1
ii  libmpfr6            4.0.2-1
ii  libstdc++6          8.3.0-3
ii  zlib1g              1:1.2.11.dfsg-1

g++-mingw-w64-i686 recommends no packages.

Versions of packages g++-mingw-w64-i686 suggests:
pn  gcc-8-locales  <none>

-- no debconf information

Attachment: pgpm68nLZfxbU.pgp
Description: PGP signature

Reply via email to