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

--- Comment #10 from James K. Lowden <jklowden at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #0)
> In stagefeedback I see
> 
> [ 3253s] /usr/x86_64-suse-linux/bin/ld:
> /home/abuild/rpmbuild/BUILD/gcc16-16.0.1+git7689-build/gcc-16.0.1+git7689/
> obj-x86_64-suse-linux/prev-x86_64-suse-linux/libstdc++-v3/src/.libs/
> libstdc++.a(ext11-inst.o): in function `__gnu_cxx::stdio_filebuf<char,
> std::char_traits<char> >::stdio_filebuf(int, std::_Ios_Openmode, unsigned
> long)':
> [ 3253s]
> /home/abuild/rpmbuild/BUILD/gcc16-16.0.1+git7689-build/gcc-16.0.1+git7689/
> obj-x86_64-suse-linux/x86_64-suse-linux/libstdc++-v3/include/ext/
> stdio_filebuf.h:141:(.text.
> _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC2EiSt13_Ios_Openmodem[_ZN9_
> _gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC5EiSt13_Ios_Openmodem]+0x31):
> undefined reference to `vtable for __gnu_cxx::stdio_filebuf<char,
> std::char_traits<char> >'
> [ 3254s] collect2: error: ld returned 1 exit status
> [ 3254s] make[3]: *** [../../gcc/cobol/Make-lang.in:278: cobol1] Error 1
> 
> configured/built with
> 
> [   63s] + ../configure 'CFLAGS= -O2 -funwind-tables
> -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type
> -g' 'CXXFLAGS= -O2 -funwind-tables -fasynchronous-unwind-tables
> -fstack-clash-protection -Werror=return-type -g' 'XCFLAGS= -O2
> -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
> -Werror=return-type -g' 'TCFLAGS= -O2 -funwind-tables
> -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type
> -g' 'GDCFLAGS= -O2 -funwind-tables -fasynchronous-unwind-tables
> -fstack-clash-protection -g' --prefix=/usr --infodir=/usr/share/info
> --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64
> --enable-languages=c,c++,objc,fortran,obj-c++,ada,go,d,jit,rust,m2,cobol,
> algol68 --enable-offload-targets=nvptx-none,amdgcn-amdhsa,
> --enable-offload-defaulted --without-cuda-driver --enable-host-shared
> --enable-checking=yes --disable-werror
> --with-gxx-include-dir=/usr/include/c++/16
> --with-libstdcxx-zoneinfo=/usr/share/zoneinfo --enable-ssp --disable-libssp
> --disable-libvtv --enable-cet=auto --disable-libcc1 --enable-plugin
> --with-bugurl=https://bugs.opensuse.org/ '--with-pkgversion=SUSE Linux'
> --with-slibdir=/lib64 --with-system-zlib --enable-libstdcxx-allocator=new
> --disable-libstdcxx-pch --enable-libphobos
> --enable-version-specific-runtime-libs --with-gcc-major-version-only
> --enable-linker-build-id --enable-linux-futex --enable-gnu-indirect-function
> --program-suffix=-16 --without-system-libunwind --enable-multilib
> --with-arch-32=x86-64 --with-tune=generic
> --with-build-config=bootstrap-lto-lean --enable-link-serialization
> --build=x86_64-suse-linux --host=x86_64-suse-linux
> ...
> [   66s] + setarch x86_64 -R make -Oline profiledbootstrap 'STAGE1_CFLAGS=-g
> -O2' 'BOOT_CFLAGS=-O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3
> -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
> -fstack-clash-protection -Werror=return-type  -g' -j24

Would I be correct that what the linker is missing is associated with this line
from gcc/cobol/lexio.cc ?

__gnu_cxx::stdio_filebuf<char> outbuf(fdopen(output, "a"), std::ios::out);

If so, the question is why it's sometimes excluded from the link.

Reply via email to