bugGNU Octave - Bugs: bug #54276, Linking issues

 
 

bug #54276: Linking issues

Submitter:  None
Submitted:  Mon 09 Jul 2018 12:02:35 PM UTC
   
 
Category:  None Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  Invalid / Not an Octave Bug Assigned to:  None
Originator Name:  Simon Originator Email:  -email is unavailable-
Open/Closed:  * Closed Release:  * 4.4.0
Operating System:  * GNU/Linux Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Tue 10 Jul 2018 02:46:15 PM UTC, comment #10: 

I tried to configure as suggested with:

--with-lapack=-llapack --with-blas=-lblas

And it works !

I was configuring this way before:

--with-lapack=/work/logiciels/rh7/lapack/3.6.1/lib/liblapack.so --with-blas=/work/logiciels/rh7/lapack/3.6.1/lib/libblas.so


Thank you very much for your help.

Anonymous
Tue 10 Jul 2018 01:47:48 PM UTC, comment #9: 

I'm not sure, but the errors seem to indicate that liboctave is not properly linked with the lapack and blas libraries.

Was liboctave relinked after you reconfigured with the


LDFLAGS=-L/work/logiciels/rh7/lapack/3.6.1/lib --with-lapack=-llapack --with-blas=-lblas


options?

What happens if you delete liboctave/liboctave.la and run make again?  I see the following output for relinking liboctave on my system:


/bin/bash ./libtool  --tag=CXX   --mode=link g++ -fPIC -pthread -fopenmp -Wall -W -Wshadow -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -version-info 5:0:0 -no-undefined -bindir /usr/local/bin    -o liboctave/liboctave.la -rpath /usr/local/lib/octave/4.4.0 liboctave/liboctave_liboctave_la-liboctave-build-info.lo liboctave/array/libarray.la liboctave/external/ranlib/libranlib.la liboctave/external/libexternal.la liboctave/numeric/libnumeric.la liboctave/operators/liboperators.la liboctave/system/libsystem.la liboctave/util/libutil.la liboctave/wrappers/libwrappers.la libgnu/libgnu.la -lcurl -lcholmod -lumfpack -lamd -lcamd -lcolamd -lccolamd -lcxsparse -lsuitesparseconfig -larpack -lqrupdate -lfftw3_threads -lfftw3 -lfftw3f_threads -lfftw3f -llapack -lblas -lreadline -lncurses  -lpcre -ldl   -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lm -lquadmath -lutil -lm               -lutil -lm
libtool: link: rm -fr  liboctave/.libs/liboctave.la liboctave/.libs/liboctave.lai liboctave/.libs/liboctave.so liboctave/.libs/liboctave.so.5 liboctave/.libs/liboctave.so.5.0.0
libtool: link: g++  -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/7/crtoffloadbegin.o  liboctave/.libs/liboctave_liboctave_la-liboctave-build-info.o  -Wl,--whole-archive liboctave/array/.libs/libarray.a liboctave/external/ranlib/.libs/libranlib.a liboctave/external/.libs/libexternal.a liboctave/numeric/.libs/libnumeric.a liboctave/operators/.libs/liboperators.a liboctave/system/.libs/libsystem.a liboctave/util/.libs/libutil.a liboctave/wrappers/.libs/libwrappers.a libgnu/.libs/libgnu.a -Wl,--no-whole-archive  /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so -lcholmod -lumfpack -lamd -lcamd -lcolamd -lccolamd -lcxsparse -lsuitesparseconfig -larpack -lqrupdate -lfftw3_threads -lfftw3 -lfftw3f_threads -lfftw3f -llapack -lblas -lreadline -lncurses -lpcre -ldl -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lquadmath -lutil -lstdc++ -lm -lgomp -lpthread -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/7/crtoffloadend.o  -pthread -fopenmp -g -O2   -pthread -fopenmp -Wl,-soname -Wl,liboctave.so.5 -o liboctave/.libs/liboctave.so.5.0.0
libtool: link: (cd "liboctave/.libs" && rm -f "liboctave.so.5" && ln -s "liboctave.so.5.0.0" "liboctave.so.5")
libtool: link: (cd "liboctave/.libs" && rm -f "liboctave.so" && ln -s "liboctave.so.5.0.0" "liboctave.so")
libtool: link: ( cd "liboctave/.libs" && rm -f "liboctave.la" && ln -s "../liboctave.la" "liboctave.la" )


Note that in the link command includes -llapack and -lblas.  What happens for you?

John W. Eaton <jwe>
Group administrator
Tue 10 Jul 2018 08:56:29 AM UTC, comment #8: 

I tried to build it with LDFLAGS set as you said. Also, LD_LIBRARY_PATH includes those path.

It is still failing:

/bin/sh ./libtool  --tag=CXX   --mode=link g++ -std=gnu++11 -fPIC -pthread -fopenmp -Wall -W -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -no-undefined   -L/work/logiciels/rh7/lapack/3.6.1/lib -L/work/logiciels/rh7/hdf5/1.8.17/lib -o src/octave-gui src/src_octave_gui-main-gui.o src/src_octave_gui-octave-build-info.o libgui/liboctgui.la libinterp/liboctinterp.la liboctave/liboctave.la libgnu/libgnu.la  -lutil -lm
libtool: link: g++ -std=gnu++11 -fPIC -pthread -fopenmp -Wall -W -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -o src/.libs/octave-gui src/src_octave_gui-main-gui.o src/src_octave_gui-octave-build-info.o  -L/work/logiciels/rh7/lapack/3.6.1/lib -L/work/logiciels/rh7/hdf5/1.8.17/lib libgui/.libs/liboctgui.so libinterp/.libs/liboctinterp.so liboctave/.libs/liboctave.so libgnu/.libs/libgnu.a -lutil -lm -fopenmp -pthread -Wl,-rpath -Wl,/work/scratch/ettouas/logiciels/octave/INSTALL/rh7/octave/4.4.0/lib/octave/4.4.0
liboctave/.libs/liboctave.so: undefined reference to `lsame_'
liboctave/.libs/liboctave.so: undefined reference to `zgemm_'
liboctave/.libs/liboctave.so: undefined reference to `sdot_'
liboctave/.libs/liboctave.so: undefined reference to `sgebak_'
liboctave/.libs/liboctave.so: undefined reference to `zgetrs_'
liboctave/.libs/liboctave.so: undefined reference to `cgeesx_'
liboctave/.libs/liboctave.so: undefined reference to `zgemv_'
liboctave/.libs/liboctave.so: undefined reference to `dgehrd_'
liboctave/.libs/liboctave.so: undefined reference to `zgehrd_'
liboctave/.libs/liboctave.so: undefined reference to `zgetrf_'
liboctave/.libs/liboctave.so: undefined reference to `zggev_'
liboctave/.libs/liboctave.so: undefined reference to `dgbcon_'
liboctave/.libs/liboctave.so: undefined reference to `slartg_'
libinterp/.libs/liboctinterp.so: undefined reference to `dlag2_'
liboctave/.libs/liboctave.so: undefined reference to `zpotrf_'
liboctave/.libs/liboctave.so: undefined reference to `sgesdd_'
liboctave/.libs/liboctave.so: undefined reference to `sgeqrf_'
liboctave/.libs/liboctave.so: undefined reference to `cunghr_'
liboctave/.libs/liboctave.so: undefined reference to `sgeqp3_'
libinterp/.libs/liboctinterp.so: undefined reference to `dgghrd_'
liboctave/.libs/liboctave.so: undefined reference to `cgelsd_'
liboctave/.libs/liboctave.so: undefined reference to `ssyev_'
liboctave/.libs/liboctave.so: undefined reference to `cgesdd_'
liboctave/.libs/liboctave.so: undefined reference to `sgesvd_'
liboctave/.libs/liboctave.so: undefined reference to `dsyev_'
liboctave/.libs/liboctave.so: undefined reference to `zptsv_'
liboctave/.libs/liboctave.so: undefined reference to `csyrk_'
liboctave/.libs/liboctave.so: undefined reference to `ztrtrs_'
libinterp/.libs/liboctinterp.so: undefined reference to `dggbal_'
liboctave/.libs/liboctave.so: undefined reference to `dorgqr_'
liboctave/.libs/liboctave.so: undefined reference to `sgehrd_'
liboctave/.libs/liboctave.so: undefined reference to `ztrtri_'
liboctave/.libs/liboctave.so: undefined reference to `zheev_'
liboctave/.libs/liboctave.so: undefined reference to `dgelsd_'
liboctave/.libs/liboctave.so: undefined reference to `dpocon_'
liboctave/.libs/liboctave.so: undefined reference to `dpotri_'
liboctave/.libs/liboctave.so: undefined reference to `dtrcon_'
liboctave/.libs/liboctave.so: undefined reference to `dgtsv_'
liboctave/.libs/liboctave.so: undefined reference to `dtrsyl_'
liboctave/.libs/liboctave.so: undefined reference to `dgeqp3_'
libinterp/.libs/liboctinterp.so: undefined reference to `dhgeqz_'
liboctave/.libs/liboctave.so: undefined reference to `cgecon_'
liboctave/.libs/liboctave.so: undefined reference to `cgebal_'
liboctave/.libs/liboctave.so: undefined reference to `sggbal_'
liboctave/.libs/liboctave.so: undefined reference to `ztrsyl_'
liboctave/.libs/liboctave.so: undefined reference to `dlange_'
liboctave/.libs/liboctave.so: undefined reference to `zgelsd_'
liboctave/.libs/liboctave.so: undefined reference to `zpocon_'
liboctave/.libs/liboctave.so: undefined reference to `cgetri_'
liboctave/.libs/liboctave.so: undefined reference to `cherk_'
liboctave/.libs/liboctave.so: undefined reference to `zsyrk_'
liboctave/.libs/liboctave.so: undefined reference to `cgetrs_'
liboctave/.libs/liboctave.so: undefined reference to `strsyl_'
liboctave/.libs/liboctave.so: undefined reference to `dgbtrf_'
liboctave/.libs/liboctave.so: undefined reference to `dpbtrs_'
liboctave/.libs/liboctave.so: undefined reference to `dcopy_'
liboctave/.libs/liboctave.so: undefined reference to `cpotrf_'
liboctave/.libs/liboctave.so: undefined reference to `cdotc_'
liboctave/.libs/liboctave.so: undefined reference to `zgebak_'
liboctave/.libs/liboctave.so: undefined reference to `dgeesx_'
libinterp/.libs/liboctinterp.so: undefined reference to `zhgeqz_'
liboctave/.libs/liboctave.so: undefined reference to `sgemm_'
liboctave/.libs/liboctave.so: undefined reference to `dsyrk_'
liboctave/.libs/liboctave.so: undefined reference to `dtrtrs_'
liboctave/.libs/liboctave.so: undefined reference to `sorgqr_'
liboctave/.libs/liboctave.so: undefined reference to `dtrtri_'
liboctave/.libs/liboctave.so: undefined reference to `spocon_'
liboctave/.libs/liboctave.so: undefined reference to `cggev_'
liboctave/.libs/liboctave.so: undefined reference to `spotrs_'
liboctave/.libs/liboctave.so: undefined reference to `sgetri_'
liboctave/.libs/liboctave.so: undefined reference to `cpotri_'
liboctave/.libs/liboctave.so: undefined reference to `zlartg_'
liboctave/.libs/liboctave.so: undefined reference to `dgebal_'
liboctave/.libs/liboctave.so: undefined reference to `sgetrs_'
liboctave/.libs/liboctave.so: undefined reference to `caxpy_'
liboctave/.libs/liboctave.so: undefined reference to `dpotrf_'
liboctave/.libs/liboctave.so: undefined reference to `zpbtrf_'
liboctave/.libs/liboctave.so: undefined reference to `dgttrs_'
liboctave/.libs/liboctave.so: undefined reference to `zgttrs_'
liboctave/.libs/liboctave.so: undefined reference to `zgeevx_'
libinterp/.libs/liboctinterp.so: undefined reference to `ctrsen_'
liboctave/.libs/liboctave.so: undefined reference to `dgetri_'
liboctave/.libs/liboctave.so: undefined reference to `classq_'
liboctave/.libs/liboctave.so: undefined reference to `sggev_'
liboctave/.libs/liboctave.so: undefined reference to `sgbtrf_'
liboctave/.libs/liboctave.so: undefined reference to `cgetrf_'
liboctave/.libs/liboctave.so: undefined reference to `dgbtrs_'
libinterp/.libs/liboctinterp.so: undefined reference to `dtrsen_'
libinterp/.libs/liboctinterp.so: undefined reference to `dggbak_'
liboctave/.libs/liboctave.so: undefined reference to `zgetri_'
liboctave/.libs/liboctave.so: undefined reference to `zgesdd_'
liboctave/.libs/liboctave.so: undefined reference to `cgemv_'
liboctave/.libs/liboctave.so: undefined reference to `zgeqrf_'
liboctave/.libs/liboctave.so: undefined reference to `zherk_'
liboctave/.libs/liboctave.so: undefined reference to `sgeevx_'
liboctave/.libs/liboctave.so: undefined reference to `dptsv_'
liboctave/.libs/liboctave.so: undefined reference to `dggev_'
liboctave/.libs/liboctave.so: undefined reference to `daxpy_'
liboctave/.libs/liboctave.so: undefined reference to `dgeqrf_'
liboctave/.libs/liboctave.so: undefined reference to `zpbtrs_'
liboctave/.libs/liboctave.so: undefined reference to `cgehrd_'
liboctave/.libs/liboctave.so: undefined reference to `zdotc_'
liboctave/.libs/liboctave.so: undefined reference to `dsygv_'
liboctave/.libs/liboctave.so: undefined reference to `sgebal_'
liboctave/.libs/liboctave.so: undefined reference to `chegv_'
liboctave/.libs/liboctave.so: undefined reference to `sorghr_'
liboctave/.libs/liboctave.so: undefined reference to `cgebak_'
liboctave/.libs/liboctave.so: undefined reference to `dpbtrf_'
liboctave/.libs/liboctave.so: undefined reference to `zaxpy_'
liboctave/.libs/liboctave.so: undefined reference to `sggbak_'
liboctave/.libs/liboctave.so: undefined reference to `srot_'
liboctave/.libs/liboctave.so: undefined reference to `zgesvd_'
liboctave/.libs/liboctave.so: undefined reference to `cpotrs_'
liboctave/.libs/liboctave.so: undefined reference to `dorghr_'
liboctave/.libs/liboctave.so: undefined reference to `ctrtri_'
libinterp/.libs/liboctinterp.so: undefined reference to `zggbak_'
liboctave/.libs/liboctave.so: undefined reference to `ssygv_'
liboctave/.libs/liboctave.so: undefined reference to `dgeevx_'
liboctave/.libs/liboctave.so: undefined reference to `strtrs_'
liboctave/.libs/liboctave.so: undefined reference to `cggbal_'
liboctave/.libs/liboctave.so: undefined reference to `dgemv_'
libinterp/.libs/liboctinterp.so: undefined reference to `ztrsen_'
liboctave/.libs/liboctave.so: undefined reference to `ctrcon_'
liboctave/.libs/liboctave.so: undefined reference to `zungqr_'
libinterp/.libs/liboctinterp.so: undefined reference to `zggbal_'
liboctave/.libs/liboctave.so: undefined reference to `zdotu_'
liboctave/.libs/liboctave.so: undefined reference to `zlassq_'
liboctave/.libs/liboctave.so: undefined reference to `dpotrs_'
liboctave/.libs/liboctave.so: undefined reference to `sgbtrs_'
liboctave/.libs/liboctave.so: undefined reference to `scnrm2_'
liboctave/.libs/liboctave.so: undefined reference to `dscal_'
liboctave/.libs/liboctave.so: undefined reference to `zgbcon_'
liboctave/.libs/liboctave.so: undefined reference to `dnrm2_'
liboctave/.libs/liboctave.so: undefined reference to `dgemm_'
liboctave/.libs/liboctave.so: undefined reference to `zpotrs_'
liboctave/.libs/liboctave.so: undefined reference to `slamch_'
libinterp/.libs/liboctinterp.so: undefined reference to `strsen_'
liboctave/.libs/liboctave.so: undefined reference to `zpotri_'
liboctave/.libs/liboctave.so: undefined reference to `zgecon_'
liboctave/.libs/liboctave.so: undefined reference to `cgesvd_'
liboctave/.libs/liboctave.so: undefined reference to `cpocon_'
liboctave/.libs/liboctave.so: undefined reference to `cungqr_'
liboctave/.libs/liboctave.so: undefined reference to `dgetrf_'
liboctave/.libs/liboctave.so: undefined reference to `cgeqrf_'
liboctave/.libs/liboctave.so: undefined reference to `ilaenv_'
liboctave/.libs/liboctave.so: undefined reference to `sgetrf_'
libinterp/.libs/liboctinterp.so: undefined reference to `ztgevc_'
liboctave/.libs/liboctave.so: undefined reference to `ctrtrs_'
liboctave/.libs/liboctave.so: undefined reference to `ssyrk_'
liboctave/.libs/liboctave.so: undefined reference to `zgttrf_'
liboctave/.libs/liboctave.so: undefined reference to `sgelsd_'
liboctave/.libs/liboctave.so: undefined reference to `cdotu_'
liboctave/.libs/liboctave.so: undefined reference to `dgesvd_'
liboctave/.libs/liboctave.so: undefined reference to `spotrf_'
liboctave/.libs/liboctave.so: undefined reference to `cgemm_'
liboctave/.libs/liboctave.so: undefined reference to `dznrm2_'
liboctave/.libs/liboctave.so: undefined reference to `strtri_'
liboctave/.libs/liboctave.so: undefined reference to `dgetrs_'
liboctave/.libs/liboctave.so: undefined reference to `clartg_'
liboctave/.libs/liboctave.so: undefined reference to `dgecon_'
liboctave/.libs/liboctave.so: undefined reference to `dgesdd_'
liboctave/.libs/liboctave.so: undefined reference to `saxpy_'
liboctave/.libs/liboctave.so: undefined reference to `spotri_'
liboctave/.libs/liboctave.so: undefined reference to `strcon_'
liboctave/.libs/liboctave.so: undefined reference to `zgeesx_'
liboctave/.libs/liboctave.so: undefined reference to `sgemv_'
liboctave/.libs/liboctave.so: undefined reference to `zgeqp3_'
liboctave/.libs/liboctave.so: undefined reference to `ddot_'
liboctave/.libs/liboctave.so: undefined reference to `zpbcon_'
liboctave/.libs/liboctave.so: undefined reference to `zgtsv_'
liboctave/.libs/liboctave.so: undefined reference to `snrm2_'
liboctave/.libs/liboctave.so: undefined reference to `sgecon_'
liboctave/.libs/liboctave.so: undefined reference to `cgeqp3_'
liboctave/.libs/liboctave.so: undefined reference to `dlamch_'
liboctave/.libs/liboctave.so: undefined reference to `zgbtrs_'
liboctave/.libs/liboctave.so: undefined reference to `dlartg_'
liboctave/.libs/liboctave.so: undefined reference to `ztrcon_'
libinterp/.libs/liboctinterp.so: undefined reference to `zgghrd_'
liboctave/.libs/liboctave.so: undefined reference to `cheev_'
liboctave/.libs/liboctave.so: undefined reference to `drot_'
liboctave/.libs/liboctave.so: undefined reference to `dgebak_'
liboctave/.libs/liboctave.so: undefined reference to `zhegv_'
liboctave/.libs/liboctave.so: undefined reference to `zunghr_'
liboctave/.libs/liboctave.so: undefined reference to `cgeevx_'
liboctave/.libs/liboctave.so: undefined reference to `dgttrf_'
liboctave/.libs/liboctave.so: undefined reference to `slange_'
liboctave/.libs/liboctave.so: undefined reference to `dpbcon_'
libinterp/.libs/liboctinterp.so: undefined reference to `dtgevc_'
liboctave/.libs/liboctave.so: undefined reference to `zgebal_'
liboctave/.libs/liboctave.so: undefined reference to `sgeesx_'
liboctave/.libs/liboctave.so: undefined reference to `ctrsyl_'
liboctave/.libs/liboctave.so: undefined reference to `zgbtrf_'
collect2: error: ld returned 1 exit status
make[2]: *** [src/octave-gui] Error 1
make[2]: Leaving directory `/work/scratch/ettouas/logiciels/octave/SOURCE/octave/sources/rh7/octave-4.4.0'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/work/scratch/ettouas/logiciels/octave/SOURCE/octave/sources/rh7/octave-4.4.0'
make: *** [all] Error 2


libblas.so and liblapack.so files should be dynamic libraries:

file /work/logiciels/rh7/lapack/3.6.1/lib/libblas.so /work/logiciels/rh7/lapack/3.6.1/lib/liblapack.so
/work/logiciels/rh7/lapack/3.6.1/lib/libblas.so:   ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
/work/logiciels/rh7/lapack/3.6.1/lib/liblapack.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped


Anonymous
Tue 10 Jul 2018 12:00:08 AM UTC, comment #7: 

Is it possible that the libblas.so and liblapack.so files in /work/logiciels/rh7/lapack/3.6.1/lib are actually static library archives with a .so extension or symbolic link for some reason?

Mike Miller <mtmiller>
Group Member
Mon 09 Jul 2018 06:25:58 PM UTC, comment #6: 

Yes, this should work and the '-lblas' and '-llapack' are not needed because they are already linked with liboctave.so. On GNU/Linux systems, if a shared library liboctave.so already references libblas.so, then I only need to link with '-loctave' to implicitly link with the other.

Please try building again with LDFLAGS such that it includes '-L/work/logiciels/rh7/lapack/3.6.1/lib -L/work/logiciels/rh7/hdf5/1.8.17/lib'. That should allow all link commands to search these directories. The way you are configuring with a full path to the library file name is better suited to static libraries. Can you show the failing link command line with that configuration?

Have you tried also setting LD_LIBRARY_PATH to include the lib directories, e.g. 'LD_LIBRARY_PATH=/work/logiciels/rh7/lapack/3.6.1/lib:/work/logiciels/rh7/hdf5/1.8.17/lib'?

Mike Miller <mtmiller>
Group Member
Mon 09 Jul 2018 06:01:33 PM UTC, comment #5: 

I don't understand why this happens.  I don't see the issue on my Debian system.  The link command is the same.  There is no explicit mention of the lapack or blas libraries in that command because functions from those libraries are not referenced directly by the octave-cli program.  They are linked to liboctinterp and liboctave, so as I understand and at least with the tools I'm using, they don't need to be linked directly with octave-cli.  If the linker on your system works differently, then maybe you do need --enable-link-all-dependencies.  Perhaps someone else can provide more insight.

John W. Eaton <jwe>
Group administrator
Mon 09 Jul 2018 05:08:25 PM UTC, comment #4: 

The link command that fails is the following:

libtool: link: g++ -std=gnu++11 -fPIC -pthread -fopenmp -Wall -W -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -o src/.libs/octave-cli src/src_octave_cli-main-cli.o src/src_octave_cli-octave-build-info.o  -L/work/logiciels/rh7/lapack/3.6.1/lib libinterp/.libs/liboctinterp.so liboctave/.libs/liboctave.so libgnu/.libs/libgnu.a -lutil -lm -fopenmp -pthread -Wl,-rpath -Wl,/work/scratch/ettouas/logiciels/octave/INSTALL/rh7/octave/4.4.0/lib/octave/4.4.0


It seems that '-lblas' and '-llapack' are not positionned properly here.

The errors are:

liboctave/.libs/liboctave.so: undefined reference to `lsame_'
liboctave/.libs/liboctave.so: undefined reference to `zgemm_'
...
libinterp/.libs/liboctinterp.so: undefined reference to `dlag2_'
...
liboctave/.libs/liboctave.so: undefined reference to `zgbtrf_'
collect2: error: ld returned 1 exit status
make[2]: *** [src/octave-cli] Error 1


Anonymous
Mon 09 Jul 2018 04:27:19 PM UTC, comment #3: 

Can you provide the complete link command that is executed and results in the errors?

John W. Eaton <jwe>
Group administrator
Mon 09 Jul 2018 04:19:15 PM UTC, comment #2: 

When I try your suggestion, without '--enable-link-all-dependencies', I have the same issue as previously mentionned.

The BLAS/LAPACK libraries are installed in our system at a non-standard location. I do not have root permissions on the system. The selection of a particular version of BLAS/LAPACK is done thanks to environment modules.

Anonymous
Mon 09 Jul 2018 02:13:10 PM UTC, comment #1: 

I think a better way to indicate the blas library location is


./configure LDFLAGS=-L/work/logiciels/rh7/lapack/3.6.1/lib ...


The build system will already look for -lblas and -llapack.

You should not need --enable-link-all-dependencies on a Linux system.

What is special about these lapack and blas libraries?  Why do you need them instead of the ones packaged for your system?

John W. Eaton <jwe>
Group administrator
Mon 09 Jul 2018 12:02:35 PM UTC, original submission:  

I used the following configure command:

./configure --prefix=/work/scratch/ettouas/logiciels/octave/INSTALL/rh7/octave/4.4.0 --enable-shared --disable-docs --with-blas=/work/logiciels/rh7/lapack/3.6.1/lib/libblas.so --with-lapack=/work/logiciels/rh7/lapack/3.6.1/lib/liblapack.so --with-java-homedir=/work/logiciels/rhall/jdk/1.8.0_112 --with-hdf5-includedir=/work/logiciels/rh7/hdf5/1.8.17/include --with-hdf5-libdir=/work/logiciels/rh7/hdf5/1.8.17/lib --disable-silent-rules


After typing 'make', I get the following errors:
liboctave/.libs/liboctave.so: undefined reference to `lsame_'
liboctave/.libs/liboctave.so: undefined reference to `zgemm_'
...
libinterp/.libs/liboctinterp.so: undefined reference to `dlag2_'
...
liboctave/.libs/liboctave.so: undefined reference to `zgbtrf_'
collect2: error: ld returned 1 exit status
make[2]: * [src/octave-cli] Error 1
-verbatim-

It looks like some BLAS/LAPACK methods were not linked properly.
When I add the flag '--enable-link-all-dependencies' in the configure options, it fixes this issue.

However, I have to mention that I did not need to add this flag to get a working build for octave-4.2.1

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mtmiller (Posted a comment)
  • -email is unavailable- added by jwe (Posted a comment)
  • -email is unavailable- added by None (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2018-07-10 jwe StatusNone Invalid / Not an Octave Bug
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code