help-octave
[Top][All Lists]
Advanced

[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).


reply via email to

[Prev in Thread] Current Thread [Next in Thread]