How to resolve oninit error: /lib64/libstdc++.so.5: version `CXXABI_1.2' not found

Technote (troubleshooting)


Problem(Abstract)

This article describes a possible problem on a Linux distribution with a kernel version of 2.6 depending on the version of library libstdc++

Symptom

The oninit executable can at startup return an error on some Linux distributions like Redhat Entreprise Server 4 x86_64 ( Kernel 2.6.9-34.0.2.ELsmp #1 SMP) with IBM® Informix® Dynamic Server™ 10.00.FC4 and 10.00.FC5

Example

$ oninit
oninit: /lib64/libstdc++.so.5: version `CXXABI_1.2' not found (required by oninit)


On some Linux distributions, libstdc++.so.5 does not exist or is linked with
/usr/lib64/libstdc++.so.6.0.3 like libstdc++.so.6. On Redhat Linux
Entreprise Server x86_64 the rpm package installed is
libstdc++-3.4.5-2.x86_64.rpm (64bits package) and
compat-libstdc++-33-3.2.3-47.3 (32bits package) and the following files are installed:

$ rpm -ql libstdc++
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.3
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.3
/usr/lib/libstdc++.so.5
/usr/lib/libstdc++.so.5.0.7



Cause

Check the strings CXXABI in /usr/lib64/libstdc++.so.6.0.3:

$ ls -l /usr/lib64/libstdc++.so.6.0.3
-rwxr-xr-x  1 root root 910744 Dec 20  2005 /usr/lib64/libstdc++.so.6.0.3
$ strings /usr/lib64/libstdc++.so.6.0.3 | grep CXXABI
CXXABI_1.3


Version for this library is CXXABI_1.3 instead of CXXABI_1.2, so oninit will not start.


Resolving the problem

1. Find the correct package.

It is mandatory to install the 64bits rpm package libstdc++ including CXXABI_1.2. Connect tohttp://rpm.pbone.net to get the lastest release including CXXABI_1.2.

Example

Name : libstdc++  
Version : 3.3.4  Vendor : SuSE Linux AG, Nuernberg, Germany  
Release : 11  Date : 2004-10-02 02:51:27  
Group : System/Libraries  Source RPM : gcc-3.3.4-11.src.rpm  
Size : 2044198  
Packager :
www_suse_de   
Summary : The standard C++ shared library  
Description :
The standard C++ library, needed for dynamically linked C++ programs.

Provides :
gppshare
libstdc++.so.5
libstdc++.so.5()(64bit)
libstdc++.so.5(CXXABI_1.2)
libstdc++.so.5(CXXABI_1.2)(64bit)
libstdc++.so.5(CXXABI_1.2.1)
libstdc++.so.5(CXXABI_1.2.1)(64bit)
libstdc++.so.5(CXXABI_1.2.2)
libstdc++.so.5(CXXABI_1.2.2)(64bit)
libstdc++.so.5(GLIBCPP_3.2)
libstdc++.so.5(GLIBCPP_3.2)(64bit)
libstdc++.so.5(GLIBCPP_3.2.1)
libstdc++.so.5(GLIBCPP_3.2.1)(64bit)
libstdc++.so.5(GLIBCPP_3.2.2)
libstdc++.so.5(GLIBCPP_3.2.2)(64bit)
libstdc++.so.5(GLIBCPP_3.2.3)
libstdc++.so.5(GLIBCPP_3.2.3)(64bit)
libstdc++.so.5(GLIBCPP_3.2.4)
libstdc++.so.5(GLIBCPP_3.2.4)(64bit)
libstdc++.so.5(libstdc++.so.5)
libstdc++.so.5(libstdc++.so.5)(64bit)
libstdc++


2. Install the rpm

Example

$ rpm --install --force libstdc++-3.3.4-11.x86_64.rpm
warning: libstdc++-3.3.4-11.x86_64.rpm: V3 DSA signature: NOKEY, key ID 9c800aca

3. Check for the library /usr/lib64/libstdc++.so.5

Example

$ rpm -ql libstdc++
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.3
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.3
/usr/lib/libstdc++.so.5
/usr/lib/libstdc++.so.5.0.7
/usr/lib64/libstdc++.so.5
/usr/lib64/libstdc++.so.5.0.7
/usr/share/locale/de/LC_MESSAGES/libstdc++.mo
/usr/share/locale/fr/LC_MESSAGES/libstdc++.mo


$ strings /usr/lib64/libstdc++.so.5 | grep CXXABI
CXXABI_1.2
CXXABI_1.2.1
CXXABI_1.2.2


4. Create a symbolic link /lib64/libstdc++.so.5

Example

$ ln -s /usr/lib64/libstdc++.so.5 /lib64/libstdc++.so.5


Rate this page:

(0 users)Average rating

Document information


More support for:

Informix Servers

Software version:

10.0

Operating system(s):

Linux

Reference #:

1244766

Modified date:

2006-11-06

Translate my page

Machine Translation

Content navigation