Opened 9 years ago
Closed 8 years ago
#49824 closed defect (fixed)
Cannot install octave-control due to missing symbols in slicot library
Reported by: | rolf.lochbuehler@… | Owned by: | Schamschula (Marius Schamschula) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.4 |
Keywords: | Cc: | ken.huynh7455@…, shaeffer@…, jsalort (Julien Salort), shapovalow@…, crossd@…, fredowski | |
Port: | octave-control |
Description
(System: OS X 10.11.1, MacPorts 2.3.4)
Installation of octave-control aborts with the following message:
$ sudo port install octave-control ---> Computing dependencies for octave-control ---> Fetching archive for octave-control ---> Attempting to fetch octave-control-2.8.5_0+gcc5.darwin_15.x86_64.tbz2 from http://nue.de.packages.macports.org/macports/packages/octave-control ---> Attempting to fetch octave-control-2.8.5_0+gcc5.darwin_15.x86_64.tbz2 from http://lil.fr.packages.macports.org/octave-control ---> Attempting to fetch octave-control-2.8.5_0+gcc5.darwin_15.x86_64.tbz2 from http://mse.uk.packages.macports.org/sites/packages.macports.org/octave-control ---> Fetching distfiles for octave-control ---> Verifying checksums for octave-control ---> Extracting octave-control ---> Configuring octave-control Error: org.macports.configure for port octave-control returned: configure failure: command execution failed Please see the log file for port octave-control for details: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave-control/octave-control/main.log To report a bug, follow the instructions in the guide: http://guide.macports.org/#project.tickets Error: Processing of port octave-control failed
/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave-control/octave-control/main.log tells me this:
... :info:configure mkdir sltmp :info:configure mv slicot/src/*.f ./sltmp :info:configure mv slicot/src_aux/*.f ./sltmp :info:configure cp TG04BX.fortran ./sltmp/TG04BX.f :info:configure cp TB01ZD.fortran ./sltmp/TB01ZD.f :info:configure cd sltmp; /opt/local/bin/mkoctfile-3.8.2 -c *.f :info:configure ar -rc slicotlibrary.a ./sltmp/*.o :info:configure rm -rf sltmp slicot :info:configure LFLAGS="-L/opt/local/lib/octave/3.8.2 -L/opt/local/lib -L/opt/local/lib -L/opt/local/lib/gcc5/gcc/x86_64-apple-darwin15/5.2.0 -L/opt/local/lib/gcc5/gcc/x86_64-apple-darwin15/5.2.0/../../.. -lgfortran -lquadmath -lm -llapack -lcblas -lf77blas -latlas -L/opt/local/lib -L/opt/local/lib/gcc5/gcc/x86_64-apple-darwin15/5.2.0 -L/opt/local/lib/gcc5/gcc/x86_64-apple-darwin15/5.2.0/../../.. -lgfortran -lquadmath -lm" \ :info:configure /opt/local/bin/mkoctfile-3.8.2 __control_slicot_functions__.cc common.cc slicotlibrary.a :info:configure ld: warning: could not create compact unwind for _dhseqr_: stack subq instruction is too different from dwarf stack size :info:configure Undefined symbols for architecture x86_64: :info:configure "_dgegs_", referenced from: :info:configure _sg03ad_ in slicotlibrary.a(SG03AD.o) :info:configure _sg03bd_ in slicotlibrary.a(SG03BD.o) :info:configure "_dlatzm_", referenced from: :info:configure _ab08nx_ in slicotlibrary.a(AB08NX.o) :info:configure _ag08by_ in slicotlibrary.a(AG08BY.o) :info:configure _sb01by_ in slicotlibrary.a(SB01BY.o) :info:configure _sb01fy_ in slicotlibrary.a(SB01FY.o) :info:configure ld: symbol(s) not found for architecture x86_64 :info:configure clang: error: linker command failed with exit code 1 (use -v to see invocation) :info:configure make: *** [__control_slicot_functions__.oct] Error 1 :info:configure :info:configure pkg: error running `make' for the control package. :info:configure error: called from 'configure_make' in file /opt/local/share/octave/3.8.2/m/pkg/private/configure_make.m near line 82, column 9 :info:configure error: called from: :info:configure error: /opt/local/share/octave/3.8.2/m/pkg/private/install.m at line 199, column 5 :info:configure error: /opt/local/share/octave/3.8.2/m/pkg/private/build.m at line 50, column 3 :info:configure error: /opt/local/share/octave/3.8.2/m/pkg/pkg.m at line 516, column 7 :info:configure Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave-control/octave-control/work/control" && /opt/local/bin/octave -q -f --eval 'pkg build -verbose -nodeps /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave-control/octave-control/work/control /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave-control/octave-control/work/.tmp/control.tar.gz' :info:configure Exit code: 1 :error:configure org.macports.configure for port octave-control returned: configure failure: command execution failed :debug:configure Error code: NONE :debug:configure Backtrace: configure failure: command execution failed while executing "portconfigure::configure_main org.macports.configure" ("eval" body line 1) invoked from within "eval $procedure $targetname" :info:configure Warning: targets not executed for octave-control: org.macports.activate org.macports.configure org.macports.build org.macports.destroot org.macports.install :notice:configure Please see the log file for port octave-control for details: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave-control/octave-control/main.log
Attachments (1)
Change History (18)
Changed 9 years ago by rolf.lochbuehler@…
comment:1 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Owner: | changed from macports-tickets@… to mschamschula@… |
---|---|
Port: | octave-control added |
comment:3 Changed 9 years ago by Schamschula (Marius Schamschula)
I'm running octave-control 3.0.0, which is waiting to be committed to MacPorts: #49540 under octave 4.0.0 (#48622). However, it experiences the same build failure under octave 3.8.2 as does version 2.8.5.
The release notes for control 2.8.0 only mention that it had an compatibility fix for octave 4.0.0, but does not mention that it no longer supports octave 3.8.2.
I have e-mailed the octave-maintainer list.
comment:5 follow-up: 7 Changed 9 years ago by hraftery@…
This is a showstopper for me, since the very popular octave-signal requires octave-control.
I see that the release notes for slicot state that calls to the deprecated DGEG have been replaced with DGGES so maybe the resolution is to update the version of slicot used in octave-control.
comment:6 follow-up: 8 Changed 9 years ago by Schamschula (Marius Schamschula)
This issue seems to be connected with LAPACK. Are you using octave +atlas? If so what version of atlas?
comment:7 Changed 9 years ago by hraftery@…
I found a workaround: the slicot source package can be manually patched to replace the deprecated calls, and the octave-control will build just fine.
After a failed {{{sudo port install octave-control}} execute the following:
$ cd `port dir octave-control`/work/ $ sudo rmdir control/install/ $ sudo rmdir control/ $ sudo -u macports tar zxvf .tmp/control.tar.gz $ cd control/src $ sudo -u macports tar zxvf slicot.tar.gz $ sudo -u macports sed -i '.orig' 's/DGEGS/DGGES/g' slicot/src/SG03AD.f slicot/src/SG03BD.f $ sudo -u macports sed -i '.orig' 's/DLATZM/DORMRZ/g' slicot/src/AB08NX.f slicot/src/AG08BY.f slicot/src/SB01BY.f slicot/src/SB01FY.f $ sudo -u macports sed -i '.orig' '/tar -xzf slicot.tar.gz/d' Makefile $ cd ../../.. $ sudo port install octave-control
I elected not to provide a patch file because un-tarring slicot makes for a 17MB diff.
This is clearly just a workaround, as the non-deprecated versions are not guaranteed to be backwards compatible. In fact, now that I've signed up to download the latest slicot, I see that the call to DGEGS/DGGES now looks like this:
IF ( LDWORK .LT. MINGG ) THEN C C Use DGEGS for backward compatibilty with LDWORK value. C ( Workspace: >= MAX(1,4*N) ) C CALL DGEGS( 'Vectors', 'Vectors', N, A, LDA, E, LDE, ALPHAR, $ ALPHAI, BETA, Q, LDQ, Z, LDZ, DWORK, LDWORK, $ INFO1 ) ELSE C C Use DGGES. The workspace is increased to avoid an error C return, while it should not really be larger than above. C ( Workspace: >= MAX(1,8*N+16) ) C CALL DGGES( 'Vectors', 'Vectors', 'Not ordered', DELCTG, N, $ A, LDA, E, LDE, I, ALPHAR, ALPHAI, BETA, Q, LDQ, $ Z, LDZ, DWORK, LDWORK, BWORK, INFO1 ) END IF
I was not able to get octave-control to compile with this latest version of slicot, so the workaround remains my best solution.
comment:8 Changed 9 years ago by hraftery@…
Replying to mschamschula@…:
This issue seems to be connected with LAPACK. Are you using octave +atlas? If so what version of atlas?
Yes, the default octave port seems to be the +atlas one (which took a loooooong time to build). I simply did port install octave
and got:
octave @3.8.2_14+atlas+gcc5+glgui (active) atlas @3.10.2_2 (active)
comment:15 Changed 9 years ago by ifernandolopez (Fernando López Hernández)
The workaround of hraftery has failed for me with this message:
Error: Requested variants "+gcc5" do not match those the build was started with: "+gcc49".
But worked after issuing:
$sudo port install octave-control +gcc49
comment:16 Changed 9 years ago by fredowski
I tested yesterday with octave-devel-release (which is 4.0.1). There I can install the package.
comment:17 Changed 8 years ago by Schamschula (Marius Schamschula)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed in r153772.
/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_octave-control/octave-control/main.log