Tuesday, March 18, 2008

Compiling Octave on IA64

My research work involves signal processing analysis. A lot of work in signal processing is done with Matlab. However, there is not free license of Matlab for Linux. Hence, I use Octave. Octave is a Matlab clone for free and open source. Many of the non-advanced scripts developed for Matlab works under Octave. For example: scripts for handling images and sounds, work pretty well in Octave.

However, in order to run Octave on IA64 architecture a little modification must be done. The configure script does a good job for x86 architecture but not so good for IA64. During the compilation procedure I got this error:

unresolved reference to `?1__serial_memmove'

I solved the problem modifying the Makeconf file located in the root directory of the source code. Then, look for the line that contains the FLIBS variable and add the following strings:
  • -L/opt/intel/cc/9.1.046/lib
  • -lirc
My resulting line was:

FLIBS = -L/opt/intel/cc/9.1.046/lib -L/usr/lib/gcc/ia64-redhat-linux/3.4.5 -L/usr/lib/gcc/ia64-redhat-linux/3.4.5/../../.. -lz -lfrtbegin -lg2c -lirc -lm

The ?1__serial_memmove definition is given in the libirc.[so|a] library, and it's located at /opt/intel/cc/9.1.046/lib directory.

Some data:
uname -a: Linux volatile.ece.uprm.edu 2.6.9-42.0.3.EL #1 SMP Mon Oct 9 16:02:20 EEST 2006 ia64 ia64 ia64 GNU/Linux
icc --version: icc (ICC) 9.1 20070111


No comments: