IBM Support

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

Troubleshooting


Problem

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

[{"Product":{"code":"SSGU8G","label":"Informix Servers"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Not Applicable","Platform":[{"code":"PF016","label":"Linux"}],"Version":"10.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
16 June 2018

UID

swg21244766