Bug 214965

Summary: Mk/Uses/fortran.mk lang/gcc: bump PORTREVISION of ports using gfortran
Product: Ports & Packages Reporter: Thierry Thomas <thierry>
Component: Ports FrameworkAssignee: Gerald Pfeifer <gerald>
Status: Closed FIXED    
Severity: Affects Only Me CC: ports-bugs
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Example from french/aster configure
none
Example for math/lapack none

Description Thierry Thomas freebsd_committer freebsd_triage 2016-11-30 21:41:45 UTC
Created attachment 177558 [details]
Example from french/aster configure

After the upgrade of lang/gcc to gcc-4.9.4, and thus the upgrade of gfortran, all PORTREVISION of ports installing libraries built with gfortran should have been bumped.

Without that, packages built with the previous version and mixed with the current version abort with the following message:

/lib/libgcc_s.so.1: version GCC_4.6.0 required by /usr/local/lib/gcc49/libgfortran.so.3 not found

How to reproduce the error, e.g. with blas lapack:

- compile the attached test.c with
cc -c -O2 -pipe -fstack-protector -fno-strict-aliasing -fPIC  test.c -c -o test.c.1.o

- link it with
cc -Wl,--allow-multiple-definition -Wl,-rpath=/usr/local/lib/gcc49 -Wl,-rpath=/usr/local/lib/gcc49 -L/usr/local/lib/gcc49 -B/usr/local/bin -L/usr/local/lib test.c.1.o -o testprog -Wl,-Bstatic -Wl,-Bdynamic -L/usr/local/lib -lblas -llapack -lgfortran -lm -lkvm -Xlinker -export-dynamic -lutil -lpthread -lz

- run
./testprog
/lib/libgcc_s.so.1: version GCC_4.6.0 required by /usr/local/lib/gcc49/libgfortran.so.3 not found

- Bump PORTREVISION of math/lapack
- rebuild math/lapack and math/blas
- redo the previous test
  => no more error!
Comment 1 Thierry Thomas freebsd_committer freebsd_triage 2016-11-30 21:42:34 UTC
Created attachment 177559 [details]
Example for math/lapack
Comment 2 Thierry Thomas freebsd_committer freebsd_triage 2016-11-30 21:44:13 UTC
Assign to maintainer.
Comment 3 Gerald Pfeifer freebsd_committer freebsd_triage 2016-12-07 13:22:43 UTC
Thanks for the fine report and the analysis, very helpful, Thierry!

Unfortunately I could not get to this earlier, but do now finally have
a patchset that I plan on committing shortly.
Comment 4 commit-hook freebsd_committer freebsd_triage 2016-12-07 13:25:33 UTC
A commit references this bug:

Author: gerald
Date: Wed Dec  7 13:25:07 UTC 2016
New revision: 428057
URL: https://svnweb.freebsd.org/changeset/ports/428057

Log:
  Bump PORTREVISIONS for ports depending on the canonical version of GCC and
  lang/gcc which have moved from GCC 4.8.5 to GCC 4.9.4 (at least under some
  circumstances such as versions of FreeBSD or platforms), part II.

  The first part covered  ports with USE_GCC=yes, USE_GCC=any, or one of
  gcc-c++11-lib, openmp, nestedfct, c++11-lib as well as c++14-lang,
  c++11-lang, c++0x, c11 requested via USES=compiler.

  This adds ports with USES=fortran and ports using Mk/bsd.octave.mk
  which in turn has USES=fortran.

  PR:		214965
  Reported by:	thierry

Changes:
  head/astro/nightfall/Makefile
  head/astro/wcslib/Makefile
  head/benchmarks/himenobench/Makefile
  head/benchmarks/hpl/Makefile
  head/benchmarks/octave-forge-benchmark/Makefile
  head/biology/crux/Makefile
  head/biology/molden/Makefile
  head/biology/mopac/Makefile
  head/biology/plink/Makefile
  head/biology/psi88/Makefile
  head/biology/t_coffee/Makefile
  head/biology/tinker/Makefile
  head/cad/NASTRAN-95/Makefile
  head/cad/calculix/Makefile
  head/cad/elmerfem/Makefile
  head/cad/feappv/Makefile
  head/cad/gmsh/Makefile
  head/cad/pdnmesh/Makefile
  head/cad/sceptre/Makefile
  head/cad/scotch/Makefile
  head/cad/tochnog/Makefile
  head/comms/gr-osmosdr/Makefile
  head/comms/sdr-wspr/Makefile
  head/comms/wsjt/Makefile
  head/comms/wsjtx/Makefile
  head/comms/wspr/Makefile
  head/databases/grass/Makefile
  head/devel/ocaml-lacaml/Makefile
  head/devel/papi/Makefile
  head/devel/py-llvmlite/Makefile
  head/devel/py-numba/Makefile
  head/devel/py-tables/Makefile
  head/french/aster/Makefile
  head/french/med/Makefile
  head/games/py-mnemosyne/Makefile
  head/graphics/cimg/Makefile
  head/graphics/dataplot/Makefile
  head/graphics/mypaint/Makefile
  head/graphics/p5-PGPLOT/Makefile
  head/graphics/pgplot/Makefile
  head/graphics/py-gdal/Makefile
  head/graphics/qgis/Makefile
  head/graphics/raster3d/Makefile
  head/graphics/xd3d/Makefile
  head/lang/p5-ExtUtils-F77/Makefile
  head/lang/ratfor/Makefile
  head/math/R/Makefile
  head/math/R-cran-KFAS/Makefile
  head/math/algae/Makefile
  head/math/arpack/Makefile
  head/math/arpack-ng/Makefile
  head/math/atlas/Makefile
  head/math/blacs/Makefile
  head/math/blocksolve95/Makefile
  head/math/cantor/Makefile
  head/math/cblas/Makefile
  head/math/ceres-solver/Makefile
  head/math/clp/Makefile
  head/math/cmlib/Makefile
  head/math/dynare/Makefile
  head/math/eispack/Makefile
  head/math/fflas-ffpack/Makefile
  head/math/fftw/Makefile
  head/math/freemat/Makefile
  head/math/giacxcas/Makefile
  head/math/gotoblas/Makefile
  head/math/gretl/Makefile
  head/math/ipopt/Makefile
  head/math/jags/Makefile
  head/math/kktdirect/Makefile
  head/math/lapack/Makefile
  head/math/lapack++/Makefile
  head/math/lapack95/Makefile
  head/math/levmar/Makefile
  head/math/libRmath/Makefile
  head/math/librsb/Makefile
  head/math/libtsnnls/Makefile
  head/math/linpack/Makefile
  head/math/math77/Makefile
  head/math/mumps/Makefile
  head/math/octave/Makefile
  head/math/octave-forge-actuarial/Makefile
  head/math/octave-forge-audio/Makefile
  head/math/octave-forge-bim/Makefile
  head/math/octave-forge-bioinfo/Makefile
  head/math/octave-forge-cgi/Makefile
  head/math/octave-forge-civil-engineering/Makefile
  head/math/octave-forge-communications/Makefile
  head/math/octave-forge-control/Makefile
  head/math/octave-forge-data-smoothing/Makefile
  head/math/octave-forge-database/Makefile
  head/math/octave-forge-dataframe/Makefile
  head/math/octave-forge-divand/Makefile
  head/math/octave-forge-doctest/Makefile
  head/math/octave-forge-econometrics/Makefile
  head/math/octave-forge-engine/Makefile
  head/math/octave-forge-fenv/Makefile
  head/math/octave-forge-financial/Makefile
  head/math/octave-forge-fits/Makefile
  head/math/octave-forge-fl-core/Makefile
  head/math/octave-forge-fpl/Makefile
  head/math/octave-forge-fuzzy-logic-toolkit/Makefile
  head/math/octave-forge-ga/Makefile
  head/math/octave-forge-general/Makefile
  head/math/octave-forge-generate_html/Makefile
  head/math/octave-forge-geometry/Makefile
  head/math/octave-forge-gnuplot/Makefile
  head/math/octave-forge-gsl/Makefile
  head/math/octave-forge-ident/Makefile
  head/math/octave-forge-image/Makefile
  head/math/octave-forge-informationtheory/Makefile
  head/math/octave-forge-integration/Makefile
  head/math/octave-forge-interval/Makefile
  head/math/octave-forge-io/Makefile
  head/math/octave-forge-irsa/Makefile
  head/math/octave-forge-level-set/Makefile
  head/math/octave-forge-linear-algebra/Makefile
  head/math/octave-forge-lssa/Makefile
  head/math/octave-forge-ltfat/Makefile
  head/math/octave-forge-mapping/Makefile
  head/math/octave-forge-mechanics/Makefile
  head/math/octave-forge-miscellaneous/Makefile
  head/math/octave-forge-missing-functions/Makefile
  head/math/octave-forge-msh/Makefile
  head/math/octave-forge-multicore/Makefile
  head/math/octave-forge-mvn/Makefile
  head/math/octave-forge-nan/Makefile
  head/math/octave-forge-ncarray/Makefile
  head/math/octave-forge-netcdf/Makefile
  head/math/octave-forge-nlwing2/Makefile
  head/math/octave-forge-nnet/Makefile
  head/math/octave-forge-nurbs/Makefile
  head/math/octave-forge-ocs/Makefile
  head/math/octave-forge-oct2mat/Makefile
  head/math/octave-forge-octcdf/Makefile
  head/math/octave-forge-octclip/Makefile
  head/math/octave-forge-octproj/Makefile
  head/math/octave-forge-odebvp/Makefile
  head/math/octave-forge-odepkg/Makefile
  head/math/octave-forge-optics/Makefile
  head/math/octave-forge-optim/Makefile
  head/math/octave-forge-optiminterp/Makefile
  head/math/octave-forge-outliers/Makefile
  head/math/octave-forge-parallel/Makefile
  head/math/octave-forge-pdb/Makefile
  head/math/octave-forge-plot/Makefile
  head/math/octave-forge-pt_br/Makefile
  head/math/octave-forge-quaternion/Makefile
  head/math/octave-forge-queueing/Makefile
  head/math/octave-forge-secs1d/Makefile
  head/math/octave-forge-secs2d/Makefile
  head/math/octave-forge-secs3d/Makefile
  head/math/octave-forge-signal/Makefile
  head/math/octave-forge-simp/Makefile
  head/math/octave-forge-sockets/Makefile
  head/math/octave-forge-sparsersb/Makefile
  head/math/octave-forge-specfun/Makefile
  head/math/octave-forge-special-matrix/Makefile
  head/math/octave-forge-splines/Makefile
  head/math/octave-forge-statistics/Makefile
  head/math/octave-forge-stk/Makefile
  head/math/octave-forge-strings/Makefile
  head/math/octave-forge-struct/Makefile
  head/math/octave-forge-symband/Makefile
  head/math/octave-forge-symbolic/Makefile
  head/math/octave-forge-tcl-octave/Makefile
  head/math/octave-forge-tisean/Makefile
  head/math/octave-forge-tsa/Makefile
  head/math/octave-forge-video/Makefile
  head/math/octave-forge-zenity/Makefile
  head/math/octave-forge-zeromq/Makefile
  head/math/openblas/Makefile
  head/math/plplot/Makefile
  head/math/py-numpy/Makefile
  head/math/py-pysparse/Makefile
  head/math/py-symeig/Makefile
  head/math/qd/Makefile
  head/math/qrupdate/Makefile
  head/math/rkward-kde4/Makefile
  head/math/rpy2/Makefile
  head/math/scalapack/Makefile
  head/math/scilab/Makefile
  head/math/sdpa/Makefile
  head/math/sdpara/Makefile
  head/math/slatec/Makefile
  head/math/suitesparse/Makefile
  head/math/superlu/Makefile
  head/math/superlu_mt/Makefile
  head/math/taucs/Makefile
  head/math/trlan/Makefile
  head/math/x12arima/Makefile
  head/net/mpich/Makefile
  head/net/mpich2/Makefile
  head/net/openmpi/Makefile
  head/net/openmpi2/Makefile
  head/science/cdf/Makefile
  head/science/cgnslib/Makefile
  head/science/dcl/Makefile
  head/science/dlpoly-classic/Makefile
  head/science/fvcom/Makefile
  head/science/fvm/Makefile
  head/science/getdp/Makefile
  head/science/ghemical/Makefile
  head/science/gromacs/Makefile
  head/science/harminv/Makefile
  head/science/hdf/Makefile
  head/science/hdf5/Makefile
  head/science/hdf5-18/Makefile
  head/science/isaac-cfd/Makefile
  head/science/libctl/Makefile
  head/science/libghemical/Makefile
  head/science/libxc/Makefile
  head/science/mbdyn/Makefile
  head/science/meep/Makefile
  head/science/mpb/Makefile
  head/science/mpqc/Makefile
  head/science/ncs/Makefile
  head/science/netcdf-fortran/Makefile
  head/science/openkim/Makefile
  head/science/pnetcdf/Makefile
  head/science/psychopy/Makefile
  head/science/py-obspy/Makefile
  head/science/py-scikit-learn/Makefile
  head/science/py-scikit-sparse/Makefile
  head/science/py-scipy/Makefile
  head/science/silo/Makefile
  head/science/v_sim/Makefile
Comment 5 commit-hook freebsd_committer freebsd_triage 2016-12-08 02:35:42 UTC
A commit references this bug:

Author: mandree
Date: Thu Dec  8 02:34:45 UTC 2016
New revision: 428093
URL: https://svnweb.freebsd.org/changeset/ports/428093

Log:
  Fix up math/blas's PORTREVISION going backwards, broken in r428057.

  PR:		214965
  Approved by:	portmgr ('just fix it' blanket)

Changes:
  head/math/lapack/Makefile