Opened 14 years ago
Last modified 13 years ago
#26640 closed defect
octave-devel @3.3.52 +gcc44: mkoctfile doesn't find BLAS and LAPACK — at Initial Version
Reported by: | lukas.reichlin@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.9.1 |
Keywords: | Cc: | ||
Port: | octave-devel |
Description
Hello,
There is a problem with mkoctfile in octave-devel 3.3.52 when Fortran code requires BLAS and LAPACK: If I don't add the options "-Wl,-framework" "-Wl,vecLib" to each call of mkoctfile in Makefile [2], the control package [1] fails to build. However, adding these options would break package installation on non-macintosh platforms. This is not an option. Therefore, it looks like a modified Portfile or a patch to octave-devel is needed which includes "-Wl,-framework" "-Wl,vecLib" by default.
BTW:
- 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 and they include the "-Wl,-framework" "-Wl,vecLib" option
- The only thing that works for me without "-Wl,-framework" "-Wl,vecLib" 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.
Please let me know if you have any questions or comments.
Best Regards,
Lukas
[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
## transmission zeros of state-space models
mkoctfile slab08nd.cc \
AB08ND.f AB08NX.f TB01ID.f MB03OY.f MB03PY.f
## transmission zeros of state-space models
mkoctfile "-Wl,-framework" "-Wl,vecLib" \
slab08nd.cc \
AB08ND.f AB08NX.f TB01ID.f MB03OY.f MB03PY.f
running "pkg install control*" from octave results in errors like
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
Package Download Link: http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/control/?view=tar
You can get my package from [1] by clicking the "Download GNU tarball" link. Rename the file from octave-control.tar.gz to control.tar.gz and install it inside octave by
cd <location of the package>
pkg install control*
If installation succeeds, try "pkg list" and "test_control". Please be patient, the installation may take several minutes. There's no output during a (successful) installation, just wait until the next octave:#> prompt shows up.
Sorry for the bad formatting!