19548
IDL Segmentation fault or fatal error when incompatible version of libstdc++.so.6 is used
The new graphical system in IDL 8.0 requires the libstdc++ library to work properly. The libstdc++ library that is available by default on newer Linux distributions has been shown to cause the new graphical system in IDL to not work properly. Some symptoms of this problem include a segmentation fault or fatal error causing the IDL 8.0 session to crash. The purpose of this article is to discuss the work around that should resolve this issue.
NOTE: This issue appears to only impact debian based Linux platforms. The instructions that are provided are generalized and have been found to work when applied to a variety of test environments.
|
A. Possible Error Messages
B. Download the packages containing the necessary libraries
C. Unpack the libraries
D. Move the libraries to the correct IDL bin directory
E. Test the IDL 8.0 Workbench
Possible Error Messages
There are several IDL error messages associated with the missing library that have been found during our testing that you might see when attempting to run IDL 8.0. The general findings have shown that libstdc++.so.6 greater than libstdc++.so.6.0.3 cause the issues being experienced when using the IDL graphics system.
For example, the following may occur when you attempt to run ITTLICENSE for IDL 8.0 on Ubuntu 10.04 LTS (where is the name of the local computer)
root@:/usr/local/itt/idl/bin# ittlicense
IDL Version 8.0 (linux x86 m32). (c) 2009, ITT Visual Information Solutions
% Embedded IDL: ITT Visual Information Solutions, License Wizard.
% Embedded IDL: ITT Visual Information Solutions, License Wizard.
% Loaded DLM: XML.
Segmentation fault
Here is an error message that may appear when the IDL command line is being used to access the new IDL graphics system
IDL> p = plot(/test)
% Loaded DLM: XML.
Segmentation fault
This is an error that may appear when using the IDL Workbench to access the IDL graphics system
IDL> p = plot(/test)
Workbench crashes and this is left in the console:
tech_support@tekubuntu1004x64v:~$ idlde
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f30d658e7e4, pid=6172, tid=139847778703120
#
# JRE version: 6.0_17-b04
# Java VM: Java HotSpot(TM) 64-Bit Server VM (14.3-b01 mixed mode linux-amd64 )
# Problematic frame:
# C [libstdc++.so.6+0xc97e4] __cxa_allocate_exception+0x24
#
# An error report file with more information is saved as:
# /home/tech_support/hs_err_pid6172.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Download the packages containing the necessary libraries
NOTE: The files that you will be downloading are being provided by a third party source which we do not control. It is possible that the location of the files may change or the resource may become inactive.
- Open a web browser and navigate to http://rpm.pbone.net/index.php3/stat/2/simple/2
- Enter libstdc++.so.6.0.3 in the text box to the left of the Search button
- Make sure that the only box checked in the list of options is RedHat EL 4
- Click the Search button
- For 64-bit IDL
- Select libstdc++-3.4.6-3.1.x86_64.rpm and look for the section that says Download
- Choose one of the mirrors listed to download to the desktop on your system
- Hit the back button on the browser to get back to the original list of search results
- For 32-bit IDL
- Select libstdc++-3.4.6-3.1.i386.rpm and look for the section that says Download
- Choose one of the mirrors listed to download to the desktop on your system
Unpack the libraries
- Open a File Browser and navigate to the file download location
- For 64-bit IDL
- Right click on libstdc++-3.4.6-3.1.x86_64.rpm and select Extract Here from the drop down list
- For 32-bit IDL
- Right click on libstdc++-3.4.6-3.1.i386.rpm and select Extract Here from the drop down list
Move the libraries to the correct IDL bin directory
- Open a terminal
- Login as root
- Navigate to the directory containing the 32-bit libraries
- Move the following 32-bit libraries to the .../idl80/bin/bin.linux.x86 directory
- libstdc++.so
- libstdc++.so.6.0.3
- Navigate to the directory containing the 64-bit libraries
- Move the following 64-bit libraries to the .../idl80/bin/bin.linux.x86_64 directory
- libstdc++.so
- libstdc++.so.6.0.3
Test the IDL 8.0 Workbench
- Log out as root
- Launch the IDL 8.0 Workbench
- Enter at the IDL prompt: a = plot(/test)
|