[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compile Octave to use ACML on RHEL 6.1 x86_64 with GCC 4.4.5?
From: |
Christopher Lott |
Subject: |
Re: Compile Octave to use ACML on RHEL 6.1 x86_64 with GCC 4.4.5? |
Date: |
Sun, 12 Aug 2012 07:43:26 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20120713 Thunderbird/14.0 |
Many thanks to Ed Meyer for telling me to look into the config.log file.
That let me see my problem before was from ld:
/usr/bin/ld: cannot find -lacml_mp
This bit of output does NOT appear on the console when config runs, and
I didn't know how to get this detail. That told me the link step was
failing for a silly reason, not some tricky library incompatibility.
So with this help I was able to get ACML 4.4 and Octave 3.6.2 to play
together nicely on RHEL 6.1, just had to avoid the errors between the
keyboard and the chair :-)
My base configuration is RHEL 6.1 installed as a "software development
workstation" (Anaconda adds lots of extra packages). It has readline
and curl. The system has this gcc/gfortran suite:
gcc (GCC) 4.4.5 20110214 (Red Hat 4.4.5-6)
I downloaded ACML 4.4 and let it install itself in /opt (needed root
privs here). I set a shell variable:
$ export LD_LIBRARY_PATH=/opt/acml4.4.0/gfortran64_mp_int64/lib
I did *not* change /etc/ld.so.conf and I did *not* add a file to
/etc/ld.so.conf.d to tell the system to search the /opt/acml-4.4 area
automatically. Then checked the dependencies of the multi-processing
ACML shared libs:
$ ldd /opt/acml4.4.0/gfortran64_mp_int64/lib/libacml_mv.so
linux-vdso.so.1 => (0x00007fffaabff000)
libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00007f6a39441000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6a39223000)
libc.so.6 => /lib64/libc.so.6 (0x00007f6a38e92000)
librt.so.1 => /lib64/librt.so.1 (0x00007f6a38c8a000)
/lib64/ld-linux-x86-64.so.2 (0x0000003cf2400000)
$ ldd /opt/acml4.4.0/gfortran64_mp_int64/lib/libacml_mp.so
linux-vdso.so.1 => (0x00007fff076ca000)
librt.so.1 => /lib64/librt.so.1 (0x00007f5b3d1ef000)
libacml_mv.so =>
/opt/acml4.4.0/gfortran64_mp_int64/lib/libacml_mv.so (0x00007f5b3cfa0000)
libgfortran.so.3 => /usr/lib64/libgfortran.so.3
(0x00007f5b3ccae000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5b3ca2a000)
libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00007f5b3c81c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5b3c5ff000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5b3c26e000)
/lib64/ld-linux-x86-64.so.2 (0x0000003cf2400000)
That output told me every dependency is satisfied. The system has PCRE
but not PCRE devel (headers) required by Octave, so installed it (need
root privs again):
sudo yum install pcre-devel
I downloaded Octave 3.6.2, unpacked. Configured Octave with this
incantation:
./configure --enable-64 --disable-docs --with-blas=acml_mp
--with-lapack=acml_mp \
LDFLAGS="-L/opt/acml4.4.0/gfortran64_mp_int64/lib"
And configure ran to completion! The octave make built a binary
successfully (altho blew up when it tried to run makeinfo, grr).
Octave launches!
If I unset LD_LIBRARY_PATH then octave does not start (no surprise there).