Bug 1957142 - wxGTK3 libraries must be recompiled with F34 stock g++11 ABI (1016)
Summary: wxGTK3 libraries must be recompiled with F34 stock g++11 ABI (1016)
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: wxGTK3
Version: 34
Hardware: x86_64
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Scott Talbert
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-05-05 09:08 UTC by Jochen
Modified: 2021-05-17 06:42 UTC (History)
5 users (show)

Fixed In Version: wxGTK3-3.0.5.1-4.fc34
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-05-14 17:49:43 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
wxWidgets minimal example program (6.22 KB, text/x-csrc)
2021-05-05 09:08 UTC, Jochen
no flags Details
makefile to compile the wxWidgets sample program (2.69 KB, text/plain)
2021-05-05 09:09 UTC, Jochen
no flags Details

Description Jochen 2021-05-05 09:08:28 UTC
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)

Comment 1 Jochen 2021-05-05 09:09:49 UTC
Created attachment 1779699 [details]
makefile to compile the wxWidgets sample program

Comment 2 Fedora Update System 2021-05-06 23:53:09 UTC
FEDORA-2021-dc1127b018 has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-dc1127b018

Comment 3 Fedora Update System 2021-05-07 02:07:45 UTC
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.

Comment 4 Fedora Update System 2021-05-14 17:49:43 UTC
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.

Comment 5 Jochen 2021-05-17 06:42:05 UTC
Fix confirmed: The new libraries are working as expected now.
Thanks a lot.


Note You need to log in before you can comment on or make changes to this bug.