3

I work on an Ubuntu 16.04 LTS system, which comes with native gcc-5 and gfortran-5 compilers. I am working on building a project, that recommends gfortran 6.3 and above. So I installed the PPA Test Toolchain and downloaded gcc-7 and gfortran-7 compilers. And made them system default.

My program uses Lapack and Blas libraries as well, which I downloaded via apt-get (Synaptic package manager).

$ gfortran --version
GNU Fortran (Ubuntu 7.2.0-1ubuntu1~16.04) 7.2.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc --version
gcc (Ubuntu 7.2.0-1ubuntu1~16.04) 7.2.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

However, when compiling the program, I get the following warning:

/usr/bin/ld: warning: libgfortran.so.3, needed by /usr/lib/lapack/liblapack.so,
may conflict with libgfortran.so.4

libgfortran.so.3

$ strings /usr/lib/gcc/x86_64-linux-gnu/5.4.1/libgfortran.so | grep "GFORTRAN_"
GFORTRAN_1.0
GFORTRAN_1.1
GFORTRAN_1.2
GFORTRAN_1.3
GFORTRAN_1.4
GFORTRAN_1.5
GFORTRAN_1.6
GFORTRAN_1.7
GFORTRAN_C99_1.0
GFORTRAN_C99_1.1
GFORTRAN_STDIN_UNIT
GFORTRAN_STDOUT_UNIT
GFORTRAN_STDERR_UNIT
GFORTRAN_UNBUFFERED_ALL
GFORTRAN_SHOW_LOCUS
GFORTRAN_OPTIONAL_PLUS
GFORTRAN_DEFAULT_RECL
GFORTRAN_LIST_SEPARATOR
GFORTRAN_CONVERT_UNIT
GFORTRAN_ERROR_BACKTRACE
GFORTRAN_UNBUFFERED_PRECONNECTED

libgfortran.so.4

$ strings /usr/lib/gcc/x86_64-linux-gnu/7.2.0/libgfortran.so | grep "GFORTRAN_"
GFORTRAN_7
GFORTRAN_F2C_7
GFORTRAN_C99_7
GFORTRAN_STDIN_UNIT
GFORTRAN_STDOUT_UNIT
GFORTRAN_STDERR_UNIT
GFORTRAN_UNBUFFERED_ALL
GFORTRAN_SHOW_LOCUS
GFORTRAN_OPTIONAL_PLUS
GFORTRAN_DEFAULT_RECL
GFORTRAN_LIST_SEPARATOR
GFORTRAN_CONVERT_UNIT
GFORTRAN_ERROR_BACKTRACE
GFORTRAN_UNBUFFERED_PRECONNECTED

Is there a way to force (and I am using this term loosely as I am new to this and maybe overlooking something obvious) the lapack and blas libraries to use gfortran-7?

dessert
  • 39,982
Ravi
  • 31
  • I think you can set it from sudo update-alternatives --all. But be careful here, do not touch the stuff which is unrelated to BLAS, LAPACK, gfortran, GCC and so on. – N0rbert Nov 25 '17 at 21:17
  • you see, what happens is that.. using the synaptic package manager to download libblas-dev or liblapack-dev (in addition to libblas3, liblapack3, libblas-common,) makes it a requirement to download gfortran-5 and gfortran5-dev, so i think somehow the native versions of blas and lapack are intimately linked with gfortran-5.. I worry about this being a natural outcome of using standard Ubuntu repository (which so far supports upto gfortran-5.4. I may have to build lapack and blas from source using gfortran-7.. do you know of any guidelines for the same posted online? – Ravi Nov 25 '17 at 22:27

0 Answers0