https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97729

            Bug ID: 97729
           Summary: Link failure due to basic_stringbuf and others when
                    building DLL on MinGW
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: markus.boeck02 at gmail dot com
  Target Milestone: ---

Current trunk of libstdc++ is not able to be built when building a shared
library on the i686-w64-mingw32 and x86_64-w64-mingw32 targets. Following
configure arguments were used:

../configure --target=x86_64-w64-mingw32 --disable-bootstrap
--with-sysroot=/mnt/c/GCC-Build/NewestLinux
--prefix=/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install
--disable-multilib --with-tune=znver1 --disable-libstdcxx-verbose --disable-nls
--enable-shared --with-gnu-ld --enable-threads=posix --enable-__cxa_atexit
--enable-libgomp --with-gnu-as
--with-as=/mnt/c/GCC-Build/NewestLinux/bin/x86_64-w64-mingw32-as
--with-ld=/mnt/c/GCC-Build/NewestLinux/bin/x86_64-w64-mingw32-ld
--enable-languages=c,c++,fortran,lto,objc,obj-c++ --with-cross-host

The last relevant lines of stdout are:

/bin/bash ../libtool --tag CXX   --mode=link
/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/./gcc/xgcc -shared-libgcc
-B/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/./gcc -nostdinc++
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/src
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/src/.libs
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/libsupc++/.libs
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/lib
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/mingw/lib -isystem
/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/include
-isystem /mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/mingw/include
-B/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/bin/
-B/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/lib/
-isystem
/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/include
-isystem
/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/sys-include
    -Wl,-O1  -no-undefined -bindir
"/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/lib/../lib"
-Wl,--gc-sections  -std=gnu++98 -DDLL_EXPORT -DPIC -fno-implicit-templates 
-Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2 
-fdiagnostics-show-location=once   -ffunction-sections -fdata-sections 
-frandom-seed=libstdc++.la  -o libstdc++.la -version-info 6:29:0
-Wl,--version-script=libstdc++-symbols.ver -lm -no-undefined -bindir
"/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/lib/../lib"
-rpath
/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/lib/../lib
compatibility.lo compatibility-debug_list.lo compatibility-debug_list-2.lo 
compatibility-c++0x.lo compatibility-atomic-c++0x.lo
compatibility-thread-c++0x.lo compatibility-chrono.lo compatibility-condvar.lo 
../libsupc++/libsupc++convenience.la ../src/c++98/libc++98convenience.la
../src/c++11/libc++11convenience.la ../src/c++17/libc++17convenience.la
../src/c++20/libc++20convenience.la 
make  all-am
make[3]: Entering directory
'/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libgfortran'
libtool: link: rm -fr  .libs/libstdc++.dll.a
libtool: link:  /mnt/c/GCC-Build-Array/gcc/build-host-x86_64/./gcc/xgcc
-shared-libgcc -B/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/./gcc -nostdinc++
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/src
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/src/.libs
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/libsupc++/.libs
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/lib
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/mingw/lib -isystem
/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/include
-isystem /mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/mingw/include
-B/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/bin/
-B/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/lib/
-isystem
/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/include
-isystem
/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/sys-include
   -shared -nostdlib /mnt/c/GCC-Build/NewestLinux/mingw/lib/../lib/dllcrt2.o
/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/./gcc/crtbegin.o 
.libs/compatibility.o .libs/compatibility-debug_list.o
.libs/compatibility-debug_list-2.o .libs/compatibility-c++0x.o
.libs/compatibility-atomic-c++0x.o .libs/compatibility-thread-c++0x.o
.libs/compatibility-chrono.o .libs/compatibility-condvar.o  -Wl,--whole-archive
../libsupc++/.libs/libsupc++convenience.a
../src/c++98/.libs/libc++98convenience.a
../src/c++11/.libs/libc++11convenience.a
../src/c++17/.libs/libc++17convenience.a
../src/c++20/.libs/libc++20convenience.a -Wl,--no-whole-archive 
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/libsupc++/.libs
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/src
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/src/.libs
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/x86_64-w64-mingw32/lib
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/install/mingw/lib
-L/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/./gcc
-L/mnt/c/GCC-Build/NewestLinux/mingw/lib/../lib
-L/mnt/c/GCC-Build/NewestLinux/mingw/lib -lmingw32 -lgcc_s -lgcc -lmoldname
-lmingwex -lmsvcrt -lkernel32 -lpthread -ladvapi32 -lshell32 -luser32
-lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -lkernel32
/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/./gcc/crtend.o  -Wl,-O1
-Wl,--gc-sections -Wl,--version-script=libstdc++-symbols.ver   -o
.libs/libstdc++-6.dll -Wl,--enable-auto-image-base -Xlinker --out-implib
-Xlinker .libs/libstdc++.dll.a
:
:
:
true  DO=all multi-do # make
make[3]: Leaving directory
'/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libgfortran'
make[2]: Leaving directory
'/mnt/c/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libgfortran'
/mnt/c/GCC-Build/NewestLinux/bin/x86_64-w64-mingw32-ld:
../libsupc++/.libs/libsupc++convenience.a(nested_exception.o): in function
`std::__exception_ptr::exception_ptr::~exception_ptr()':
C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/libsupc++/C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/include/bits/exception_ptr.h:194:
multiple definition of `std::__exception_ptr::exception_ptr::~exception_ptr()';
../libsupc++/.libs/libsupc++convenience.a(eh_ptr.o):C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/libsupc++/C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/include/bits/exception_ptr.h:194:
first defined here
/mnt/c/GCC-Build/NewestLinux/bin/x86_64-w64-mingw32-ld:
../src/c++11/.libs/libc++11convenience.a(future.o): in function
`std::__exception_ptr::exception_ptr::exception_ptr()':
C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/src/c++11/C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/include/bits/std_mutex.h:105:
multiple definition of `std::__exception_ptr::exception_ptr::exception_ptr()';
../libsupc++/.libs/libsupc++convenience.a(eh_ptr.o):C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/libsupc++/C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/include/bits/exception_ptr.h:176:
first defined here
/mnt/c/GCC-Build/NewestLinux/bin/x86_64-w64-mingw32-ld:
../src/c++20/.libs/libc++20convenience.a(sstream-inst.o): in function
`std::__cxx11::basic_stringbuf<char, std::char_traits<char>,
std::allocator<char> >::basic_stringbuf(std::__cxx11::basic_stringbuf<char,
std::char_traits<char>, std::allocator<char> >&&, std::allocator<char>
const&)':
C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/src/c++20/C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/include/sstream:210:
undefined reference to `std::__cxx11::basic_stringbuf<char,
std::char_traits<char>, std::allocator<char>
>::basic_stringbuf(std::__cxx11::basic_stringbuf<char, std::char_traits<char>,
std::allocator<char> >&&, std::allocator<char> const&,
std::__cxx11::basic_stringbuf<char, std::char_traits<char>,
std::allocator<char> >::__xfer_bufptrs&&)'
/mnt/c/GCC-Build/NewestLinux/bin/x86_64-w64-mingw32-ld:
../src/c++20/.libs/libc++20convenience.a(sstream-inst.o): in function
`std::__cxx11::basic_stringbuf<char, std::char_traits<char>,
std::allocator<char> >::basic_stringbuf(std::__cxx11::basic_stringbuf<char,
std::char_traits<char>, std::allocator<char> >&&, std::allocator<char>
const&)':
C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/src/c++20/C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/include/sstream:210:
undefined reference to `std::__cxx11::basic_stringbuf<char,
std::char_traits<char>, std::allocator<char>
>::basic_stringbuf(std::__cxx11::basic_stringbuf<char, std::char_traits<char>,
std::allocator<char> >&&, std::allocator<char> const&,
std::__cxx11::basic_stringbuf<char, std::char_traits<char>,
std::allocator<char> >::__xfer_bufptrs&&)'
/mnt/c/GCC-Build/NewestLinux/bin/x86_64-w64-mingw32-ld:
../src/c++20/.libs/libc++20convenience.a(sstream-inst.o): in function
`std::__cxx11::basic_stringbuf<wchar_t, std::char_traits<wchar_t>,
std::allocator<wchar_t>
>::basic_stringbuf(std::__cxx11::basic_stringbuf<wchar_t,
std::char_traits<wchar_t>, std::allocator<wchar_t> >&&, std::allocator<wchar_t>
const&)':
C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/src/c++20/C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/include/sstream:210:
undefined reference to `std::__cxx11::basic_stringbuf<wchar_t,
std::char_traits<wchar_t>, std::allocator<wchar_t>
>::basic_stringbuf(std::__cxx11::basic_stringbuf<wchar_t,
std::char_traits<wchar_t>, std::allocator<wchar_t> >&&, std::allocator<wchar_t>
const&, std::__cxx11::basic_stringbuf<wchar_t, std::char_traits<wchar_t>,
std::allocator<wchar_t> >::__xfer_bufptrs&&)'
/mnt/c/GCC-Build/NewestLinux/bin/x86_64-w64-mingw32-ld:
../src/c++20/.libs/libc++20convenience.a(sstream-inst.o): in function
`std::__cxx11::basic_stringbuf<wchar_t, std::char_traits<wchar_t>,
std::allocator<wchar_t>
>::basic_stringbuf(std::__cxx11::basic_stringbuf<wchar_t,
std::char_traits<wchar_t>, std::allocator<wchar_t> >&&, std::allocator<wchar_t>
const&)':
C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/src/c++20/C:/GCC-Build-Array/gcc/build-host-x86_64/x86_64-w64-mingw32/libstdc++-v3/include/sstream:210:
undefined reference to `std::__cxx11::basic_stringbuf<wchar_t,
std::char_traits<wchar_t>, std::allocator<wchar_t>
>::basic_stringbuf(std::__cxx11::basic_stringbuf<wchar_t,
std::char_traits<wchar_t>, std::allocator<wchar_t> >&&, std::allocator<wchar_t>
const&, std::__cxx11::basic_stringbuf<wchar_t, std::char_traits<wchar_t>,
std::allocator<wchar_t> >::__xfer_bufptrs&&)'
collect2: error: ld returned 1 exit status
make[5]: *** [libstdc++.la] Error 1

Reply via email to