[Bug 937038] New: "GLIBCXX_3.4.21" not found
http://bugzilla.suse.com/show_bug.cgi?id=937038 Bug ID: 937038 Summary: "GLIBCXX_3.4.21" not found Classification: openSUSE Product: openSUSE Factory Version: 201505* Hardware: x86-64 OS: SUSE Other Status: NEW Severity: Major Priority: P5 - None Component: libzypp Assignee: zypp-maintainers@forge.provo.novell.com Reporter: Markus.Elfring@web.de QA Contact: qa-bugs@suse.de Found By: --- Blocker: --- I have updated a few software packages on my Tumbleweed system a moment ago. zypper 1.12.4-1.2 libzypp 15.6.0-1.1 Now I wonder about error messages like the following. Sonne:~ # zypper se mozilla zypper: /usr/local/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by zypper) zypper: /usr/local/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib64/libzypp.so.1505) Should the corresponding RPM packages express such a dependency explicitly so that the needed software libraries will stay consistent? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.suse.com/show_bug.cgi?id=937038
http://bugzilla.suse.com/show_bug.cgi?id=937038#c1
--- Comment #1 from Michael Andres
# ldd /usr/bin/zypper | grep zypp libzypp.so.1505 => /usr/lib64/libzypp.so.1505
-- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.suse.com/show_bug.cgi?id=937038
http://bugzilla.suse.com/show_bug.cgi?id=937038#c2
--- Comment #2 from Markus Elfring
Looks like you are using a custom libstdc++ which seems to be different than Tumbleweeds one?
I admit that I am also using the self-built software "GCC 4.9.2".
The distribution packages do not use any path below /usr/local/ (other would be a packaging bug). Installing a custom lib there supersedes the one in /usr/lib64.
I assume that I stumble on a side-effect from another update. I dared to activate the package "libstdc++6-gcc5 5.1.1+r223279-1.1" on 26 June which replaced a previous one. I see that there is a specific version published for the software "The standard C++ shared library". https://software.opensuse.org/package/libstdc++43 How are the chances to restore the missed version "GLIBCXX_3.4.21" from a similar repository interface? Do I need to build this myself so that it can be installed to the expected directory again? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.suse.com/show_bug.cgi?id=937038
http://bugzilla.suse.com/show_bug.cgi?id=937038#c3
--- Comment #3 from Markus Elfring
http://bugzilla.suse.com/show_bug.cgi?id=937038
http://bugzilla.suse.com/show_bug.cgi?id=937038#c4
--- Comment #4 from Michael Andres
# zypper se -s -i gcc libstdc++ Loading repository data... Reading installed packages...
S | Name | Type | Version | Arch | Repository --+-----------------------+---------+-------------------+--------+----------- i | gcc | package | 5-1.23 | x86_64 | repo-oss i | gcc-c++ | package | 5-1.23 | x86_64 | repo-oss i | gcc5 | package | 5.1.1+r224716-1.2 | x86_64 | repo-oss i | gcc5-c++ | package | 5.1.1+r224716-1.2 | x86_64 | repo-oss i | libgcc_s1 | package | 5.1.1+r224716-1.2 | x86_64 | repo-oss i | libgcc_s1-32bit | package | 5.1.1+r224716-1.2 | x86_64 | repo-oss i | libstdc++-devel | package | 5-1.23 | x86_64 | repo-oss i | libstdc++6 | package | 5.1.1+r224716-1.2 | x86_64 | repo-oss i | libstdc++6-32bit | package | 5.1.1+r224716-1.2 | x86_64 | repo-oss i | libstdc++6-devel-gcc5 | package | 5.1.1+r224716-1.2 | x86_64 | repo-oss
The above is what's currently provided by Tumbleweed. "GLIBCXX_3.4.21" is the latest libstdc++6 ABI version, provided by the above libstdc++6. The package should be installed, as it is what libzypp requires. If you check the libstdc++.so.6 symlink in /usr/lib64 it should point to the highest version (.21):
# ls -l /usr/lib64/libstdc++.so.6* /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6.0.21
------------------ Now if you have an older version installed in /usr/local/lib64 (e.g. .19) and run ldconfig, the libstdc++.so.6 symlink there points to the libstdc++.so.6.0.19:
# ls -l /usr/local/lib64/libstdc++.so.6* /usr/local/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19 /usr/local/lib64/libstdc++.so.6.0.19
This way the systems libstdc++.so.6.0.21 is hidden. ------------------ If you need your old compiler and it's libs, you could link the newer system libs into /usr/local/lib64, so they stay visible:
# ln -s /usr/lib64/libstdc++.so.6.0.21 /usr/local/lib64/ # ldconfig # ls -l /usr/local/lib64/libstdc++.so.6* /usr/local/lib64/libstdc++.so.6 -> libstdc++.so.6.0.21 /usr/local/lib64/libstdc++.so.6.0.19 /usr/local/lib64/libstdc++.so.6.0.21 -> /usr/lib64/libstdc++.so.6.0.21
-- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.suse.com/show_bug.cgi?id=937038
http://bugzilla.suse.com/show_bug.cgi?id=937038#c5
--- Comment #5 from Michael Andres
My package information worked as usual by a command like "zypper list-updates" before I dared to update the corresponding software once more on Friday. Which components do still depend on the version "GLIBCXX_3.4.21"?
Not still! "GLIBCXX_3.4.21" is the latest one :) -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.suse.com/show_bug.cgi?id=937038
http://bugzilla.suse.com/show_bug.cgi?id=937038#c6
--- Comment #6 from Markus Elfring
Not still! "GLIBCXX_3.4.21" is the latest one :)
I hope that we can clarify my surprises around the involved application binary interface versions a bit more. Does information like the following need any further considerations? -rwxr-xr-x 1 root root 5321400 Jun 30 10:42 /usr/lib64/libzypp.so.1505.1.0 -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.suse.com/show_bug.cgi?id=937038
http://bugzilla.suse.com/show_bug.cgi?id=937038#c7
--- Comment #7 from Markus Elfring
If you check the libstdc++.so.6 symlink in /usr/lib64 it should point to the highest version (.21):
This storage area looks as expected. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.suse.com/show_bug.cgi?id=937038
http://bugzilla.suse.com/show_bug.cgi?id=937038#c8
--- Comment #8 from Michael Andres
http://bugzilla.suse.com/show_bug.cgi?id=937038
http://bugzilla.suse.com/show_bug.cgi?id=937038#c9
--- Comment #9 from Markus Elfring
But it's important what /usr/local/lib64/ defines,
-rwxr-xr-x 1 root root 6683465 Dec 15 2014 /usr/local/lib64/libstdc++.so.6.0.20
as this may overrule /usr/lib64.
Why does my system configuration result in ABI difficulties only since the update for the zypper software on Friday? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.suse.com/show_bug.cgi?id=937038
http://bugzilla.suse.com/show_bug.cgi?id=937038#c10
--- Comment #10 from Michael Andres
http://bugzilla.suse.com/show_bug.cgi?id=937038
http://bugzilla.suse.com/show_bug.cgi?id=937038#c11
Markus Elfring
Because Tumbleweed has switched to gcc5. Before that your libstdc++.so.6.0.20 was new enough.
Thanks for your explanation.
The problem may occur with any C++ program on Tumbleweed that was recompiled with gcc5.
I was not so used to such a temporary mismatch in the mentioned application binary interface version from the usual software evolution. If I adjust the symbolic link "/usr/local/lib64/libstdc++.so.6" for a moment so that it points to a file "libstdc++.so.6.0.21", the command like "zypper list-updates" works again as expected. -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@novell.com