Created attachment 1779698 [details] wxWidgets minimal example program Description of problem: ----------------------- After in-place upgrade from F33 to F34 I end up with wxGTK3 libraries in `/usr/lib64/libwx*` compiled with a different C++ ABI - perhaps g++ 10?) than the g++ stock compiler. Compiling a wxWidgets GUI app on this system with stock g++ 11(1.1) and linking it to the installed wxGTK3 libraries succeeds, but creates a run-time warning like this: 10:44:24: Warning: Mismatch between the program and library build versions detected. The library used 3.0 (wchar_t,compiler with C++ ABI 1015,wx containers,compatible with 2.8), and your program used 3.0 (wchar_t,compiler with C++ ABI 1016,wx containers,compatible with 2.8). Version-Release number of selected component (if applicable): ------------------------------------------------------------- # dnf info wxGTK3 Last metadata expiration check: 0:20:49 ago on Mi 05 Mai 2021 10:26:34 CEST. Installed Packages Name : wxGTK3 Version : 3.0.5.1 Release : 3.fc34 Architecture : x86_64 Size : 15 M Source : wxGTK3-3.0.5.1-3.fc34.src.rpm Repository : @System From repo : fedora Summary : GTK port of the wxWidgets GUI library URL : https://www.wxwidgets.org/ License : wxWidgets Description : wxWidgets is the GTK port of the C++ cross-platform wxWidgets : GUI library, offering classes for all common GUI controls as well as a : comprehensive set of helper classes for most common application tasks, : ranging from networking to HTML display and image manipulation. How reproducible: ----------------- Compile any wxWidgets program using F34 default g++ compiler (version 11.1.1) and link against the system's wxGTK3 libraries. On execution you get above ABI incompatibility warning. Steps to Reproduce: 1. compile attached minimal.cpp wxWidget sample application: # make -f makefile.unx This should compile and link without any problems/warnings. 2. run it: # ./minimal 11:04:33: Warning: Mismatch between the program and library build versions detected. The library used 3.0 (wchar_t,compiler with C++ ABI 1015,wx containers,compatible with 2.8), and your program used 3.0 (wchar_t,compiler with C++ ABI 1016,wx containers,compatible with 2.8). Actual results: --------------- A warning printed to the console at run-time when executing a self-compiled wxWidgets (GTK3) application. The installed wxGTK3 libraries are compiled with an outdated C++ ABI: # for f in `ls /usr/lib64/libwx*`; do strings $f | grep 'ABI '; done 3.0 (wchar_t,compiler with C++ ABI 1015,wx containers,compatible with 2.8) 3.0 (wchar_t,compiler with C++ ABI 1015,wx containers,compatible with 2.8) 3.0 (wchar_t,compiler with C++ ABI 1015,wx containers,compatible with 2.8) ... Expected results: ----------------- No warning at run-time of self-compiled wxWidgets (GTK3) application. The wxGTK3 libraries should be ABI compatible with the stock g++ compiler: # for f in `ls /usr/lib64/libwx*`; do strings $f | grep 'ABI '; done 3.0 (wchar_t,compiler with C++ ABI 1016,wx containers,compatible with 2.8) 3.0 (wchar_t,compiler with C++ ABI 1016,wx containers,compatible with 2.8) 3.0 (wchar_t,compiler with C++ ABI 1016,wx containers,compatible with 2.8) ... # touch foo.h; cpp -dM foo.h | grep __GXX_ABI_VERSION #define __GXX_ABI_VERSION 1016 Additional info: ---------------- # g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/11/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-redhat-linux Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-11.1.1-20210428/obj-x86_64-redhat-linux/isl-install --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.1.1 20210428 (Red Hat 11.1.1-1) (GCC) # uname -a Linux inspiron14l 5.11.17-300.fc34.x86_64 #1 SMP Wed Apr 28 14:21:28 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux # cat /etc/fedora-release Fedora release 34 (Thirty Four)
Created attachment 1779699 [details] makefile to compile the wxWidgets sample program
FEDORA-2021-dc1127b018 has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-dc1127b018
FEDORA-2021-dc1127b018 has been pushed to the Fedora 34 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-dc1127b018` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-dc1127b018 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2021-dc1127b018 has been pushed to the Fedora 34 stable repository. If problem still persists, please make note of it in this bug report.
Fix confirmed: The new libraries are working as expected now. Thanks a lot.