X
13712

32-bit IDL not working on 64-bit Linux system

NOTE: Starting with IDL 8.3, 32 bit IDL is no longer supported on Linux. 

Discussion

If you are using a 64-bit Linux system, you might find that -32 argument does not work when you try to start 32-bit IDL. For example:

$ idl -32
/usr/local/exelis/idl82/bin/idl: 452: exec:
/usr/local/exelis/idl82/bin/bin.linux.x86/idl: not found

Most of the new distributions of Linux do not come with many of the 32-bit libraries. Thus, the system will not recognize the 32-bit IDL binary. 

To get 32-bit IDL to work, you need install the 32-bit libraries that are missing from the system. The libraries that you need to install and how you go about installing them might vary depending on which Linux distribution you are using.  You may be able to find the missing dependencies using a program like ldd. If you need assistance please contact Tech Support (support@exelis.com ).

Examples

 A couple example cases are discussed below. The libraries that need to be installed may be different on individual systems.

CentOS 6.1

 To get 32-bit IDL working on the CentOS 6.1, the following packages may need to be installed:

libXp.so.6
libgcc_s.so.1
libXpm.so.4
libXmu.so.6
libz.so.1

The YUM package manager was used to install these dependencies. An example is shown below (first become the root using by issuing the "su"  command) :

su
yum install libXp.so.6
yum install libgcc_s.so.1
yum install libXpm.so.4
yum install libXmu.so.6
yum install libz.so.1

Ubuntu

If you are using Ubuntu, the following libraries may need to be installed to get 32-bit IDL to work:


lib32stdc++6 
ia32-libs


To install them, you can use the "apt-get" command. For example:

sudo apt-get install  lib32stdc++6 ia32-libs

CentOS 7.0

Below are 32-bit library packages which we found were needed to be installed on a 64-bit CentOS 7.0 system in order to allow 32-bit IDL 8.2.3 ("idl -32" and "idlde -32") to run successfully. In this case, the packages were installed using the "yum install ..." command, for example:  sudo yum install freetype.i686

Packages needed for idl -32

    freetype.i686
    libgcc.i686
    libXpm.i686
    libXmu.i686
    libstdc++.i686

Packages needed for idlde -32

    glib2.i686
    gdk-pixbuf2.i686
    gtk2.i686
    libXtst.i686
    gnome-themes-standard.i686
    gnome-themes.i686
    adwaita-gtk2-theme.i686

 

Additional note:

For newer versions of IDL (8.3 or later) for which 32-bit IDL sessions are not supported, attempting to launch IDL in 32-bit mode will be ignored and IDL will start in 64-bit mode. To determine if you are using a 32-bit IDL session, examine the !VERSION IDL system structure variable. Notice that for a 32-bit Linux session, the !VERSION.ARCH field shows 'x86' and the !VERSION.MEMORY_BITS field shows 32. For a 64-bit IDL session on Linux, these fields would show 'x86_64' and 64, respectively.

IDL> help, !version
** Structure !VERSION, 8 tags, length=76, data length=76:
   ARCH            STRING    'x86'
   OS              STRING    'linux'
   OS_FAMILY       STRING    'unix'
   OS_NAME         STRING    'linux'
   RELEASE         STRING    '8.2.3'
   BUILD_DATE      STRING    'May  2 2013'
   MEMORY_BITS     INT             32
   FILE_OFFSET_BITS
                   INT             64

 

  


Reviewed by DS 9/17/2014; Updated/reviewed by JU 5/5/2015