Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 674648 - dev-perl/Wx - Wx library ABI 1010 program ABI 1011
Summary: dev-perl/Wx - Wx library ABI 1010 program ABI 1011
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Perl team
Depends on:
Reported: 2019-01-06 06:01 UTC by Daiajo Tibdixious
Modified: 2019-07-17 09:52 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---

emerge --info (info,5.81 KB, text/plain)
2019-01-06 06:01 UTC, Daiajo Tibdixious

Note You need to log in before you can comment on or make changes to this bug.
Description Daiajo Tibdixious 2019-01-06 06:01:41 UTC
Created attachment 560062 [details]
emerge --info

This perl program:

#!/usr/bin/perl -w
use Wx ;

Gives these errors:

Fatal Error: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1010,wx containers,compatible with 2.8),
and your program used 3.0 (wchar_t,compiler with C++ ABI 1011,wx containers,compatible with 2.8).

I know this usually means something needs relinking, but can't tell what.
I rebuilt dev-perl/Wx (version 0.993.200-r1) without that helping.

This started happening after the big perl update (dev-lang/perl 5.24.3-r1) which seemed to update most of perl anyway.
Comment 1 Mart Raudsepp gentoo-dev 2019-01-06 11:06:32 UTC
You need to recompile wxGTK:3.0, because you've compiled Wx against a newer libstdc++ (C++ standard library, comes with the compiler typically, so you probably upgraded GCC), but not wxGTK, and wxGTK is picky about it.
Note the SLOT :3.0, which isn't :3.0-gtk3 that you get with emerge -1va wxGTK; try emerge -1va wxGTK:3.0
Comment 2 Daiajo Tibdixious 2019-01-06 21:41:19 UTC
I rebuilt x11-libs/wxGTK-3.0.4-r300::gentoo
but still getting the same error. The real problem is the obscurity of the error message. Instead of saying "the library", "the program", the actual file names would be better.

All I knew was a largish perl program was dying. It took about 45 minutes to track it to the "use Wx" line. Even then its not straight forward finding out which library/program is out of date.
Comment 3 Mart Raudsepp gentoo-dev 2019-01-06 21:48:15 UTC
You rebuilt the wrong thing. I specifically said you need to rebuild :3.0, not :3.0-gtk3. wxGTK-3.0.4-r300 is :3.0-gtk3.
Comment 4 Daiajo Tibdixious 2019-01-06 23:32:24 UTC
Sorry, rebuilding the right one did fix it.
Comment 5 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2019-07-17 09:52:39 UTC
This looks like something that can't be fixed automatically, I don't believe there's any mechanism we can employ in ebuilds to trigger automatic rebuilds when you switch your C++ ABI.

To the best of my understanding, the only "fix" here is to follow the "so, you've just upgraded GCC" guides.

If this is clearly not the case, please re-open this bug with more information.