Bug 958060

Summary: filezilla does not start due to "Mismatch between the program and library build versions detected"
Product: [openSUSE] openSUSE Distribution Reporter: Forgotten User SklfznsZvc <forgotten_SklfznsZvc>
Component: X11 ApplicationsAssignee: Luigi Baldoni <aloisio>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P5 - None CC: jengelh, tchvatal, yunhe.guo
Version: Leap 42.1   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 42.1   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Forgotten User SklfznsZvc 2015-12-05 06:52:24 UTC
User-Agent:       Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/45.0.2454.101 Chrome/45.0.2454.101 Safari/537.36
Build Identifier: 

Not sure if I should file this one against libwx or filezilla. This is new, since previous version of filezilla uses libwx 2, not version 3.

The filezilla package from the Network project and a custome build from home:fl3sk3.1 both demonstrate the same behaviour.
http://software.opensuse.org/package/filezilla?search_term=filezilla

Reproducible: Always

Steps to Reproduce:
1. start filezilla
2. get error:

> filezilla 
Fatal Error: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1002,STL containers,compatible with 2.8),
and your program used 3.0 (wchar_t,compiler with C++ ABI 1009,STL containers,compatible with 2.8).
Aborted
Comment 1 Bernhard Wiedemann 2015-12-05 15:19:33 UTC
Can reproduce it with
zypper ar http://download.opensuse.org/repositories/network/openSUSE_Leap_42.1/ network
zypper in filezilla
filezilla
Comment 2 Alexei Sorokin 2015-12-05 16:12:08 UTC
FileZilla demands C++14, meaning it won't work when wxWidgets is build with GCC 4.8 (default compiler in openSUSE Leap 42.1) unless wxWidgets will stop demanding applications to be compiled with the same compiler as it itself was (rh#1200611).
Comment 3 Jan Engelhardt 2015-12-05 16:30:48 UTC
/* foo.h */
struct foo {
    std::string z;
};
void bar(const struct foo *);


The library depends on a particular layout of std::string, so any program using that class/struct needs to use the same. This is why you cannot mix -D_GLIBCXX_USE_CXX11_ABI=0|1 code at all (making the flag quite useless if a program has to link to libraries you cannot control).
Now, -D_GLIBCXX_USE_CXX11_ABI is set to 0 for both gcc 4.8 and 5.x in Leap, so that's probably not the issue.

wxWidgets checks for __GXX_ABI_VERSION, which is different between 4.8 and 5.x and is not influenced by GLIBCXX_USE_CXX11_ABI. Best ask some compiler guys how that factors in and whether it can be changed, and whether -fabi-version= or -fabi-version-compat= or anything is even the right thing for Filezilla to use.
Comment 4 Alexei Sorokin 2015-12-05 20:23:47 UTC
"-fabi-version=2 -fabi-version-compat=2" did the trick.
Comment 5 Jan Engelhardt 2015-12-05 21:05:59 UTC
Don't remove others from the Cc list.
Comment 6 Forgotten User SklfznsZvc 2015-12-05 22:25:14 UTC
It's the bug reporter. Confirm that this is fixed from
 http://download.opensuse.org/repositories/network/openSUSE_Leap_42.1/network

This is amazing efficiency! Consider that I reported the bug in weekend!
Comment 7 Andreas Stieger 2015-12-16 12:19:04 UTC
*** Bug 953949 has been marked as a duplicate of this bug. ***
Comment 8 Swamp Workflow Management 2018-04-25 19:21:34 UTC
This is an autogenerated message for OBS integration:
This bug (958060) was mentioned in
https://build.opensuse.org/request/show/601055 15.0 / filezilla
Comment 9 Swamp Workflow Management 2019-02-12 13:30:11 UTC
This is an autogenerated message for OBS integration:
This bug (958060) was mentioned in
https://build.opensuse.org/request/show/673757 15.1 / filezilla