Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#7550 closed defect (invalid)

lapack ignores setting of SAGE_FORTRAN and uses 'gfortran'

Reported by: drkirkby Owned by: tbd
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: build Keywords:
Cc: Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description

Many packages ignore CC and CXX, but lapack-20071123.p0 is ignoring SAGE_FORTRAN.

With SAGE_FORTRAN set to a Sun Fortran compiler,

export SAGE_FORTRAN=/opt/xxxsunstudio12.1/bin/f95

lapack builds with 'sage_fortran'

sage_fortran -fPIC  -c sgbbrd.f -o sgbbrd.o
sage_fortran -fPIC  -c sgbcon.f -o sgbcon.o
sage_fortran -fPIC  -c sgbequ.f -o sgbequ.o

It's not clear what compiler is being used here, but when checking what processes are running, I noted that 'gfortran' (the GNU fortran compiler) was running. I then killed that (pkill -9 gfortran) and so the build of lapack immediately stopped.

This does not need to be reported upstream, as it is the file patches/make.inc which is setting the compiler to be 'sage_fortran' and not to whatever the environment variable SAGE_FORTRAN is set to. This file clearly shows that the fortran compiler is being set to 'sage_fortran'.

#  Modify the FORTRAN and OPTS definitions to refer to the
#  compiler and desired compiler options for your machine.  NOOPT
#  refers to the compiler options desired when NO OPTIMIZATION is
#  selected.  Define LOADER and LOADOPTS to refer to the loader and 
#  desired load options for your machine.
#
FORTRAN  = sage_fortran -fPIC
#OPTS     = -funroll-all-loops -O3

Dave

Change History (2)

comment:1 Changed 12 years ago by drkirkby

  • Resolution set to invalid
  • Status changed from new to closed

This was an error on my part. William's explanation is clear and correct. I will mark it as closed and invalid.

---

SAGE_FORTRAN is an environment variable that is *ONLY* supposed to impact one spkg, and one spkg only -- the fortran spkg. It is not supposed to do anything at all ever to the lapack or any other spkg. If it does, that is a mistake. So in one sense lapack is ignoring SAGE_FORTRAN, as it should. However, it is making indirect use of the fact that SAGE_FORTRAN was set when the fortran spkg was installed.

The SAGE_FORTRAN environment variable does not mean "build any spkg that uses fortran using this fortran". It means "when installing the fortran spkg, setup the the sage_fortran script run the fortran specified by the !SAGE_FORTRAN variable".

William

comment:2 Changed 12 years ago by mvngu

  • Milestone changed from sage-4.3 to sage-duplicate/invalid/wontfix
Note: See TracTickets for help on using tickets.