Subject: bug#15258: Fortran tests in configure script seem questionable

From: Dennis Clarke <[email-masked]>
Date: Tue, 03 Sep 2013 10:36:02 -0400

I am going to try to build automake-13.4 on Solaris with the Oracle Solaris 12.3
dev tools and within configure I see that Fortran tests fail : 

node002$ ./configure 
checking whether /usr/local/bin/gmake supports nested variables... yes
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking for a BSD-compatible install... lib/install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... lib/install-sh -c -d
checking for gawk... gawk
checking whether /usr/local/bin/gmake sets $(MAKE)... yes
checking whether ln -s works... yes
checking for perl... /usr/local/bin/perl
checking whether /usr/local/bin/perl supports ithreads... no
checking for tex... tex
checking for yacc... yacc
checking for lex... lex
checking whether autoconf is installed... yes
checking whether autoconf works... yes
checking whether autoconf is recent enough... yes
checking whether ln works... yes
checking for grep that handles long lines and -e... /usr/xpg4/bin/grep
checking for egrep... /usr/xpg4/bin/grep -E
checking for fgrep... /usr/xpg4/bin/grep -F
configure: will now look for a sturdy POSIX shell, for our testsuite
checking for sh... /usr/xpg4/bin/sh
checking for sh5... no
checking for dash... no
checking for ash... no
checking for bash... /usr/local/bin/bash
checking for zsh... /usr/bin/zsh
checking for ksh... /usr/bin/ksh
checking for pdksh... no
checking whether /usr/local/bin/bash supports $(cmd)... yes
checking whether /usr/local/bin/bash supports $((expr))... yes
checking whether /usr/local/bin/bash supports ${#var}... yes
checking whether /usr/local/bin/bash supports ${var#glob} and ${var%glob}... yes
checking whether /usr/local/bin/bash preserves exit traps with "set -e"... yes
checking whether /usr/local/bin/bash can define exit traps in a shell function... yes
checking whether /usr/local/bin/bash corrupts stderr with "set -x"... no
checking whether /usr/local/bin/bash can return early from "dot-sourced" files... yes
checking whether /usr/local/bin/bash supports alias named like shell builtins... yes
checking whether /usr/local/bin/bash supports "test -e"... yes
configure: shell /usr/local/bin/bash is good enough, stop looking
configure: will use /usr/local/bin/bash as the testsuite shell
configure: will now look for generic compilers
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether /opt/solarisstudio12.3/bin/cc accepts -g... yes
checking for /opt/solarisstudio12.3/bin/cc option to accept ISO C89... none needed
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... no
checking whether /opt/solarisstudio12.3/bin/CC accepts -g... yes
checking for xlf95... no
checking for f95... f95
checking whether the Fortran compiler works... no
configure: WARNING: Fortran compiler cannot create executables
configure: tests requiring the Fortran compiler will be skipped
checking for xlf... no
checking for f77... f77
checking whether the Fortran 77 compiler works... no
configure: WARNING: Fortran 77 compiler cannot create executables
configure: tests requiring the Fortran 77 compiler will be skipped
configure: will now look for GNU compilers
checking for gcc... no
checking for g++... no
checking for gpp... no
checking for gfortran... no
checking for g77... no
checking for gfortran... no
checking for gcj... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating t/wrap/aclocal-1.13
config.status: creating t/wrap/automake-1.13
node002$ 

This is highly suspect given that I have a full Fortran 77, 90 and 95
compiler in the Oracle software : 

node002$ wget http://www.personal.psu.edu/faculty/j/h/jhm/f90/examples/array2.f

node002$ ls -l 
total 5
-rw-r--r-- 1 dclarke adbs 2832 Dec 19 1996 array2.f
node002$ 
node002$ f90 -\# -m64 -o array2 array2.f 
### f90: Note: NLSPATH = /opt/solarisstudio12.3/prod/bin/../lib/locale/%L/LC_MESSAGES/%N.cat:/opt/solarisstudio12.3/prod/bin/../../lib/locale/%L/LC_MESSAGES/%N.cat
### command line files and options (expanded):
### -# -m64 -o array2 array2.f
/opt/solarisstudio12.3/prod/bin/f90comp -m3 -ev -dq -xall -xivdep=loop -H "/opt/solarisstudio12.3/prod/bin/f90 -m64 " -I/opt/solarisstudio12.3/prod/include/f95/v9 -p/opt/solarisstudio12.3/prod/lib/modules/v9 -xarch=v9 -y-xarch=v9 -xmemalign=8f -iorounding=processor-defined -xhasc=yes -xcache=generic -y-xcache=generic -y-xassume_control=optimize -xassume_control=optimize -y-xdbggen=no%stabs+dwarf2 -y-xdbggen=incl -y-fbe -y/opt/solarisstudio12.3/prod/bin/fbe -y-xcode=abs44 -y-ftrap=division,invalid,overflow -y-xmemalign=8f -y-verbose -y-comdat -y-xarch=sparc -y-m64 -y-comdat -y-xthreadvar=no%dynamic -y-xannotate=yes -y-o -yarray2.o -y-s array2.f
### f90: Note: LD_LIBRARY_PATH = (null)
### f90: Note: LD_LIBRARY_PATH_64 = (null)
### f90: Note: LD_RUN_PATH = /usr/local/lib
### f90: Note: LD_OPTIONS = -64 -R/usr/local/lib/$ISALIST:/usr/local/lib -L/usr/local/lib/$ISALIST:/usr/local/lib
ln -s /opt/solarisstudio12.3/prod/lib /tmp/lib_link.1378217103.8276.01
/usr/ccs/bin/ld -zld32=-S/tmp/lib_link.1378217103.8276.01/libldstab_ws.so -zld64=-S/tmp/lib_link.1378217103.8276.01/v9/libldstab_ws.so -zld32=-S/tmp/lib_link.1378217103.8276.01/libld_annotate.so -zld64=-S/tmp/lib_link.1378217103.8276.01/v9/libld_annotate.so /opt/solarisstudio12.3/prod/lib/v9/crti.o /opt/solarisstudio12.3/prod/lib/v9/crt1.o /opt/solarisstudio12.3/prod/lib/v9/wordalignI8.o /opt/solarisstudio12.3/prod/lib/v9/values-xi.o array2.o -o array2 -Y "P,/opt/solarisstudio12.3/lib/sparc/64:/opt/solarisstudio12.3/lib/v9:/opt/solarisstudio12.3/prod/lib/sparc/64:/opt/solarisstudio12.3/prod/lib/v9:/usr/ccs/lib/sparcv9:/lib/64:/usr/lib/64" -Qy "-R/usr/local/lib:/opt/solarisstudio12.3/lib/sparc/64:/opt/solarisstudio12.3/lib/v9" -t -lifai -lsunimath -lfai -lfai2 -lfsumai -lfprodai -lfminlai -lfmaxlai -lfminvai -lfmaxvai -lfui -lfsu -lsunmath -lmtsk -lm -lc /opt/solarisstudio12.3/prod/lib/v9/crtn.o
node002$ 
node002$ file array2
array2: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked, not stripped
node002$ 
node002$ ./array2
 RESULTS FOR FULL C ARRAY
 AVERAGE OF ALL ELEMENTS IN C = 7.500
 MINIMUM OF ALL ELEMENTS IN C = 2.000
 MAXIMUM OF ALL ELEMENTS IN C = 13.000
 C = 
 0.20E+01 0.30E+01 0.40E+01 0.60E+01 0.70E+01 0.80E+01 0.90E+01 0.11E+02
 0.12E+02 0.13E+02

 RESULTS FOR ELEMENTS 2 THROUGH 9 OF C
 AVERAGE OF SELECTED ELEMENTS IN C = 7.500
 MINIMUM OF SELECTED ELEMENTS IN C = 3.000
 MAXIMUM OF SELECTED ELEMENTS IN C = 12.000
 C = 
 3.00E+00 4.00E+00 6.00E+00 7.00E+00 8.00E+00 9.00E+00 1.10E+01 1.20E+01
 
 RESULTS OF LOG(A)
 C = 
 0.00E+00 6.93E-01 1.10E+00 0.00E+00 1.61E+00 1.79E+00 1.95E+00 2.08E+00
 2.20E+00 2.30E+00
node002$ 

Also f95 : 

node002$ f95 -m64 -o array2 array2.f 
node002$ ls -lapb array2
-rwxr-xr-x 1 dclarke adbs 18016 Sep 3 14:06 array2
node002$ ./array2 
 RESULTS FOR FULL C ARRAY
 AVERAGE OF ALL ELEMENTS IN C = 7.500
 MINIMUM OF ALL ELEMENTS IN C = 2.000
 MAXIMUM OF ALL ELEMENTS IN C = 13.000
 C = 
 0.20E+01 0.30E+01 0.40E+01 0.60E+01 0.70E+01 0.80E+01 0.90E+01 0.11E+02
 0.12E+02 0.13E+02

 RESULTS FOR ELEMENTS 2 THROUGH 9 OF C
 AVERAGE OF SELECTED ELEMENTS IN C = 7.500
 MINIMUM OF SELECTED ELEMENTS IN C = 3.000
 MAXIMUM OF SELECTED ELEMENTS IN C = 12.000
 C = 
 3.00E+00 4.00E+00 6.00E+00 7.00E+00 8.00E+00 9.00E+00 1.10E+01 1.20E+01
 
 RESULTS OF LOG(A)
 C = 
 0.00E+00 6.93E-01 1.10E+00 0.00E+00 1.61E+00 1.79E+00 1.95E+00 2.08E+00
 2.20E+00 2.30E+00

So perhaps the configure script is looking for GNU Fortran only? 

The Fortran compilers provided, as well as everything else, are installed 
in the bizarre location /opt/solarisstudio12.3/bin. For many many years
the "defacto" standard location for the vendor compilers in Solaris was
at /opt/SUNWspro and then someone at Sun or Oracle made the brilliant
move to change the path and thus break twenty years of scripts. Perhaps
that is the issue here.

Dennis