User Tools

Site Tools


hpc:32bit

This is an old revision of the document!


32 bit on HPC

Most of our applications are 64 bit so we don't need the 32-bit versions installed. There are almost 300 32-bit applications installed, most of which can be safely removed.

One exception is the compat-libstdc++.i386 and related libraries which simple 32-bit applications need in order to run (we can reinstall it later). nest is one such application:

$ ldd /paracel/paracel/biosoft/PSPP/software/jackal/nest/nest 
        linux-gate.so.1 =>  (0xffffe000)
        libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0xf7ef0000)
        libm.so.6 => /lib/libm.so.6 (0x00b3f000)
        libc.so.6 => /lib/libc.so.6 (0x009e0000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00b6e000)
        /lib/ld-linux.so.2 (0x009c2000)

Compare that with a native 64-bit application:

$ ldd /bin/ls
        librt.so.1 => /lib64/librt.so.1 (0x00000039ace00000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00000039aca00000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00000039ad200000)
        libc.so.6 => /lib64/libc.so.6 (0x00000039aba00000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00000039ac600000)
        /lib64/ld-linux-x86-64.so.2 (0x00000039ab600000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00000039b0200000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00000039ac200000)
        libsepol.so.1 => /lib64/libsepol.so.1 (0x00000039ad600000)

We will make a list of installed 32-bit packages just in case we need to reinstall one: 32bit_packages.txt

# yum list installed \*.i\?86 > 32bit_packages.txt

Then we can remove them:

# yum remove \*.i\?86

There's a few packages and their dependencies we need to reinstall:

# yum install foundation-redhat glibc.i686 redhat-lsb.i386 compat-libstdc++-33.i386 compat-libstdc++-296.i386 libxml2.i386

If you get errors about missing libraries (certain 32 bit apps):

# sbadmin 
-bash: /usr/bin/sbadmin: /lib/ld-lsb.so.1: bad ELF interpreter: No such file or directory

You can fix that by creating the correct symbolic link to the new version of the library:

# ln -s /lib/ld-2.5.so /lib/ld-lsb.so.1

I don't know which Redhat/CentOS package was originally providing that file, but the symlinks works, and is the solution to a common problem as according to the LSB itself: http://www.linuxbase.org/test/lsb-runtime-test-faq.html

Reinstall the 32-bit X libs:

# yum install $(egrep -i "^libX" 32bit_packages.txt | awk {'print $1'} | xargs)
hpc/32bit.1267024744.txt.gz · Last modified: (external edit)