octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Calling BLAS and LAPACK libraries in Octave 3.3


From: Lukas Reichlin
Subject: Re: Calling BLAS and LAPACK libraries in Octave 3.3
Date: Sun, 19 Sep 2010 13:13:49 +0200

On 18.09.2010, at 16:56, Ben Abbott wrote:

> On Sep 18, 2010, at 9:16 AM, Lukas Reichlin wrote:
> 
>> Dear Octave Community,
>> 
>> I noticed the NEWS entry
>> 
>> ** BLAS and LAPACK libraries are now required to build Octave.  The
>>   subset of the reference BLAS and LAPACK libraries has been removed
>>   from the Octave sources.
>> 
>> Since I have problems with mkoctfile (it doesn't find routines like  
>> DLAMCH, see below) when building the control package [1] with MacPorts' 
>> octave- 
>> devel 3.3.52, my question is:
>> 
>> Do I need to change something in my package (e.g. src/Makefile [2]) or  
>> does it seem like a MacPorts-related problem?
>> 
>> Thanks in advance for any hints!
>> Best Regards,
>> Lukas
>> 
>> PS:
>> * There are no problems building "control" when using MacPorts octave-3.2.4, 
>> neither PPC nor Intel.
>> * Note that is possible to compile individual oct-files by src/makefile_*.m
>> * The only thing that works for me with octave 3.3.52 is 
>> src/makefile_helpers.m, probably because those functions are pure C++.
>> * inst/test_control.m executes all tests at once.
>> 
>> [1] 
>> http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/control/
>> 
>> [2] 
>> http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/control/src/Makefile
>> 
>> octave:4> makefile_zero
>> Undefined symbols:
>> "_dlaset_", referenced from:
>>     _ab08nd_ in AB08ND.o
>>     _ab08nd_ in AB08ND.o
>>     _ab08nx_ in AB08NX.o
>>     _ab08nx_ in AB08NX.o
>>     _ab08nx_ in AB08NX.o
>>     _ab08nx_ in AB08NX.o
>> "_dggev_", referenced from:
>>     Fslab08nd(octave_value_list const&, int) in slab08nd.o
>> "_dlapmt_", referenced from:
>>     _ab08nx_ in AB08NX.o
>> "_dlarfg_", referenced from:
>>     _ab08nx_ in AB08NX.o
>>     _mb03oy_ in MB03OY.o
>>     _mb03py_ in MB03PY.o
>> "_dlatzm_", referenced from:
>>     _ab08nx_ in AB08NX.o
>> "_dlacpy_", referenced from:
>>     _ab08nd_ in AB08ND.o
>>     _ab08nd_ in AB08ND.o
>>     _ab08nd_ in AB08ND.o
>>     _ab08nd_ in AB08ND.o
>>     _ab08nd_ in AB08ND.o
>>     _ab08nd_ in AB08ND.o
>> "_dtzrzf_", referenced from:
>>     _ab08nd_ in AB08ND.o
>> "_dormqr_", referenced from:
>>     _ab08nx_ in AB08NX.o
>> "_dormrq_", referenced from:
>>     _ab08nx_ in AB08NX.o
>>     _ab08nx_ in AB08NX.o
>> "_dlaic1_", referenced from:
>>     _mb03oy_ in MB03OY.o
>>     _mb03oy_ in MB03OY.o
>>     _mb03py_ in MB03PY.o
>>     _mb03py_ in MB03PY.o
>> "_dlamch_", referenced from:
>>     _ab08nd_ in AB08ND.o
>>     _tb01id_ in TB01ID.o
>>     _tb01id_ in TB01ID.o
>> "_dormrz_", referenced from:
>>     _ab08nd_ in AB08ND.o
>>     _ab08nd_ in AB08ND.o
>> "_dlange_", referenced from:
>>     _ab08nd_ in AB08ND.o
>> "_dlarf_", referenced from:
>>     _mb03oy_ in MB03OY.o
>>     _mb03py_ in MB03PY.o
>> "_ilaenv_", referenced from:
>>     _ab08nd_ in AB08ND.o
>>     _ab08nd_ in AB08ND.o
>>     _ab08nx_ in AB08NX.o
>>     _ab08nx_ in AB08NX.o
>>     _ab08nx_ in AB08NX.o
>> ld: symbol(s) not found
>> collect2: ld returned 1 exit status
>> Undefined symbols:
>> "_dlartg_", referenced from:
>>     _ag08by_ in AG08BY.o
>>     _ag08by_ in AG08BY.o
>> "_dlaset_", referenced from:
>>     _ag08bd_ in AG08BD.o
>>     _ag08by_ in AG08BY.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>> "_dggev_", referenced from:
>>     Fslag08bd(octave_value_list const&, int) in slag08bd.o
>> "_dlapmt_", referenced from:
>>     _ag08by_ in AG08BY.o
>> "_dlarfg_", referenced from:
>>     _ag08by_ in AG08BY.o
>>     _mb03oy_ in MB03OY.o
>> "_dlatzm_", referenced from:
>>     _ag08by_ in AG08BY.o
>> "_dlacpy_", referenced from:
>>     _ag08bd_ in AG08BD.o
>>     _ag08bd_ in AG08BD.o
>>     _ag08bd_ in AG08BD.o
>>     _ag08bd_ in AG08BD.o
>>     _ag08bd_ in AG08BD.o
>>     _ag08bd_ in AG08BD.o
>>     _ag08bd_ in AG08BD.o
>>     _ag08bd_ in AG08BD.o
>>     _ag08bd_ in AG08BD.o
>> "_dtzrzf_", referenced from:
>>     _ag08bd_ in AG08BD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>> "_dormqr_", referenced from:
>>     _ag08by_ in AG08BY.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>> "_dlaic1_", referenced from:
>>     _ag08by_ in AG08BY.o
>>     _ag08by_ in AG08BY.o
>>     _mb03oy_ in MB03OY.o
>>     _mb03oy_ in MB03OY.o
>> "_dlamch_", referenced from:
>>     _ag08bd_ in AG08BD.o
>>     _ag08by_ in AG08BY.o
>>     _tg01ad_ in TG01AD.o
>>     _tg01fd_ in TG01FD.o
>> "_dormrz_", referenced from:
>>     _ag08bd_ in AG08BD.o
>>     _ag08bd_ in AG08BD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>> "_dlange_", referenced from:
>>     _ag08bd_ in AG08BD.o
>>     _ag08bd_ in AG08BD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>> "_dlarf_", referenced from:
>>     _mb03oy_ in MB03OY.o
>> "_ilaenv_", referenced from:
>>     _ag08bd_ in AG08BD.o
>>     _ag08bd_ in AG08BD.o
>>     _ag08by_ in AG08BY.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>>     _tg01fd_ in TG01FD.o
>> ld: symbol(s) not found
>> collect2: ld returned 1 exit status
>> octave:5> 
> 
> I'm a Mac user but have no experience with mkoctfile. So my thoughts might 
> not be worth much.
> 
> After looking at the help text for mkoctfile, I'd try adding "-Wl,-framework 
> -Wl,vecLib" to each mkoctfile command.
> 
> Ben
> 
> 


Thank you very much for your reply, Ben. I have tried out some oct-files like

mkoctfile -Wl,-framework -Wl,vecLib \
          slag08bd.cc \
          AG08BD.f AG08BY.f TG01AD.f TB01XD.f MA02CD.f \
          TG01FD.f MA02BD.f MB03OY.f

(the example above is the second mkoctfile call in src/makefile_zero.m)

and it worked fine when I called mkoctfile from bash. However, running 
mkoctfile inside octave leads to

octave:1> cd (fileparts (which ("makefile_zero")))
octave:2> mkoctfile -Wl,-framework -Wl,vecLib \
>           slag08bd.cc \
>           AG08BD.f AG08BY.f TG01AD.f TB01XD.f MA02CD.f \
>           TG01FD.f MA02BD.f MB03OY.f
usage: basename string [suffix]
       basename [-a] [-s suffix] string [...]
error: `framework' undefined near line 2 column 16
octave:2> 

which means that makefile_*.m and (just guessing) pkg install don't work.

There seems to be another problem:
Since googling framework veclib returns only Macintosh-related hits, it looks 
like a mac-specific option. Therefore, adding "-Wl,-framework -Wl,vecLib" to 
src/Makefile would break installation on other platforms (unless they ignore 
unknown options, which is IMHO unlikely).

BTW: Where did you find those options? My help mkoctfile doesn't mention them, 
neither does
/scripts/miscellaneous/mkoctfile.m
on hg.savannah.gnu.org


Thanks again and best regards,
Lukas


reply via email to

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