[MOAB-dev] Disable fortran in moab-5.0.0

Paul Wilson paul.wilson at wisc.edu
Fri Nov 10 14:19:55 CST 2017


Hi Vijay

I'm not sure if I follow how to actually do what you are suggesting.  If 
I wanted to rely on Eigen instead of both BLAS/LAPACK, is there a set of 
options I can pass to either autoconf or CMAKE to do that?

It would definitely make my life easier for a windows install that has a 
limited scope.

Paul


On 11/09/2017 10:17 PM, Vijay S. Mahadevan wrote:
> Hi Paul,
>
> The presence of AC_PROG_F77, AC_PROG_FC in our autoconf scripts
> informs autoreconf and the configure system to test for a fortran
> compiler. This is true even if someone explicitly says
> --without-fortran. Its probably a autoconf quirk but I haven't been
> able to figure out how to do this cleanly.
>
> With Eigen, all the relevant BLAS/LAPACK routines can be used directly
> [1] if you have them installed and used with appropriate defines. But
> in the absence of BLAS, Eigen usually provides its custom
> implementation which may not be optimal for your system. But that does
> potentially remove a dependency on BLAS and substitute it with Eigen.
> So I don't see how that helps.
>
> Vijay
>
> [1] https://eigen.tuxfamily.org/dox/TopicUsingBlasLapack.html
>
> On Thu, Nov 9, 2017 at 9:52 PM, Paul Wilson <paul.wilson at wisc.edu> wrote:
>> Hi Vijay,
>>
>> Is it possible to compile with the optional Eigen dependency, thus not
>> relying on BLAS/LAPACK at all, and also avoiding the need for FC?
>>
>> I didn't think so, but this message seems to imply that it is.
>>
>> Paul
>>
>>
>>
>> On 11/09/2017 03:22 PM, Vijay S. Mahadevan wrote:
>>> We used to have Eigen as a required dependency, and many of users
>>> didn't specifically like this (especially distributing our own copy of
>>> Eigen causing header/version conflicts). Its much easier to impose
>>> BLAS/LAPACK as a dependency since on 90% of all machines, the
>>> libraries are available, and now Eigen is an optional dependency. The
>>> only downside is that the symbol is indecipherable without a proper FC
>>> compiler. We can try something less rigorous like grepping the symbol
>>> table of the library etc. If this is a very hard restriction, I can
>>> look into doing a different configure check for the BLAS symbols.
>>>
>>> Will keep you updated.
>>>
>>> Vijay
>>>
>>> On Thu, Nov 9, 2017 at 2:57 PM, Lorenzo Botti <bottilorenzo at gmail.com>
>>> wrote:
>>>> Dear all,
>>>> thank you for the prompt reply.
>>>> May I ask you why we need blas/lapack. I've seen that you also have an
>>>> eigen
>>>> configure option. Maybe some blas/lapack functionality could be replaced
>>>> by
>>>> an eigen alternative for those who prefer to avoid fortran linking.
>>>> Of coarse a OSX fix would be welcome!
>>>> Bests
>>>> Lorenzo
>>>>
>>>>
>>>> On Nov 9, 2017 17:11, "Vijay S. Mahadevan" <vijay.m at gmail.com> wrote:
>>>>
>>>> Hi Lorenzo,
>>>>
>>>> Yes like Paul mentioned, we require BLAS/LAPACK libraries now for
>>>> configuring MOAB, and that unfortunately imposes requirements on the
>>>> Fortran compiler to see how the symbol mangling works.
>>>>
>>>> I am unsure whether we can make an exception with OSX here since the
>>>> -framework vecLib linker options should take care of everything we
>>>> need. I'll play with this today and let you know whether we can push a
>>>> fix for this right away (specific for OSX).
>>>>
>>>> Vijay
>>>>
>>>> On Thu, Nov 9, 2017 at 6:46 AM, Paul Wilson <paul.wilson at wisc.edu> wrote:
>>>>> Hello Lorenzo
>>>>>
>>>>> As of v5.0 MOAB requires FORTRAN to link to lapack/blas.  I discovered
>>>>> this
>>>>> issue with building and the master branch does have this change in the
>>>>> CMAKE
>>>>> files.
>>>>>
>>>>> Paul
>>>>>
>>>>> -- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --
>>>>> Paul P.H. Wilson
>>>>> Grainger Professor of Nuclear Engineering
>>>>> 608-263-0807
>>>>> paul.wilson at wisc.edu
>>>>> 443 Engineering Research Bldg
>>>>> 1500 Engineering Dr, Madison, WI 53706
>>>>> calendar: http://go.wisc.edu/pphw-cal
>>>>>
>>>>> Computational Nuclear Engineering Research Group
>>>>> cnerg.engr.wisc.edu
>>>>>
>>>>> [sent from my iPad]
>>>>>
>>>>> On Nov 9, 2017, at 03:57, Lorenzo Botti <bottilorenzo at gmail.com> wrote:
>>>>>
>>>>> Dear all,
>>>>> I’d like to move to the latest moab but I’m having trouble disabling
>>>>> fortran.
>>>>> I tried to modify compiler.m4 but it seems that this is not enough, see
>>>>> below
>>>>>
>>>>> dlm249-190:moab-5.0.0 digihabia$ ./configure --disable-fortran
>>>>> --disable-imesh --with-mpi=/Users/digihabia/src2/openmpi-3.0.0/openmpi/
>>>>> --download-hdf5 --prefix=/Users/digihabia/src2/moab-5.0.0/moab/
>>>>> checking build system type... x86_64-apple-darwin17.2.0
>>>>> checking host system type... x86_64-apple-darwin17.2.0
>>>>> checking target system type... x86_64-apple-darwin17.2.0
>>>>> checking for a BSD-compatible install... /usr/bin/install -c
>>>>> checking whether build environment is sane... yes
>>>>> checking for a thread-safe mkdir -p... config/install-sh -c -d
>>>>> checking for gawk... no
>>>>> checking for mawk... no
>>>>> checking for nawk... no
>>>>> checking for awk... awk
>>>>> checking whether make sets $(MAKE)... yes
>>>>> checking whether make supports nested variables... yes
>>>>> checking whether make supports nested variables... (cached) yes
>>>>> checking for sed... sed
>>>>> checking for readlink... yes
>>>>> checking for dirname... yes
>>>>> checking for basename... yes
>>>>> checking for rsync... yes
>>>>> checking for wget... no
>>>>> checking for scp... yes
>>>>> checking for curl... yes
>>>>> checking for tar... yes
>>>>> checking for unzip... yes
>>>>> checking for bzip2... yes
>>>>> checking for md5sum... no
>>>>> checking for shasum... yes
>>>>> checking for shasum... /usr/bin/shasum
>>>>> checking whether ln -s works... yes
>>>>> checking for mkdir... /bin/mkdir
>>>>> checking whether make sets $(MAKE)... (cached) yes
>>>>> checking for style of include used by make... GNU
>>>>> checking for gcc...
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc
>>>>> 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... yes
>>>>> checking whether /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc
>>>>> accepts -g... yes
>>>>> checking for /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc
>>>>> option
>>>>> to accept ISO C89... none needed
>>>>> checking whether /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc
>>>>> understands -c and -o together... yes
>>>>> checking dependency style of
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc... gcc3
>>>>> checking how to run the C preprocessor...
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc -E
>>>>> checking whether we are using the GNU C++ compiler... yes
>>>>> checking whether /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx
>>>>> accepts -g... yes
>>>>> checking dependency style of
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx... gcc3
>>>>> checking how to run the C++ preprocessor...
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx -E
>>>>> checking how to get verbose linking output from ... configure: WARNING:
>>>>> compilation failed
>>>>>
>>>>> checking for Fortran 77 libraries of ...
>>>>> checking how to get verbose linking output from ... configure: WARNING:
>>>>> compilation failed
>>>>>
>>>>> checking for Fortran libraries of ...
>>>>> checking for known C compilers... Clang
>>>>> checking for known compiler/OS combinations... Clang:x86_64
>>>>> checking for known c++ compilers... Clang
>>>>> checking for known compiler/CPU/OS combinations...
>>>>> Clang:darwin17.2.0:x86_64
>>>>> checking if platform is IBM BlueGene... no
>>>>> checking whether ln -s works... yes
>>>>> checking whether make sets $(MAKE)... (cached) yes
>>>>> checking how to print strings... printf
>>>>> checking for a sed that does not truncate output... sed
>>>>> checking for grep that handles long lines and -e... /usr/bin/grep
>>>>> checking for egrep... /usr/bin/grep -E
>>>>> checking for fgrep... /usr/bin/grep -F
>>>>> checking for ld used by
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc...
>>>>> /Library/Developer/CommandLineTools/usr/bin/ld
>>>>> checking if the linker (/Library/Developer/CommandLineTools/usr/bin/ld)
>>>>> is
>>>>> GNU ld... no
>>>>> checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
>>>>> checking the name lister (/usr/bin/nm -B) interface... BSD nm
>>>>> checking the maximum length of command line arguments... 196608
>>>>> checking how to convert x86_64-apple-darwin17.2.0 file names to
>>>>> x86_64-apple-darwin17.2.0 format... func_convert_file_noop
>>>>> checking how to convert x86_64-apple-darwin17.2.0 file names to
>>>>> toolchain
>>>>> format... func_convert_file_noop
>>>>> checking for /Library/Developer/CommandLineTools/usr/bin/ld option to
>>>>> reload
>>>>> object files... -r
>>>>> checking for objdump... objdump
>>>>> checking how to recognize dependent libraries... pass_all
>>>>> checking for dlltool... no
>>>>> checking how to associate runtime and link libraries... printf %s\n
>>>>> checking for ar... ar
>>>>> checking for archiver @FILE support... no
>>>>> checking for strip... strip
>>>>> checking for ranlib... ranlib
>>>>> checking command to parse /usr/bin/nm -B output from
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc object... ok
>>>>> checking for sysroot... no
>>>>> checking for a working dd... /bin/dd
>>>>> checking how to truncate binary pipes... /bin/dd bs=4096 count=1
>>>>> checking for mt... no
>>>>> checking if : is a manifest tool... no
>>>>> checking for dsymutil... dsymutil
>>>>> checking for nmedit... nmedit
>>>>> checking for lipo... lipo
>>>>> checking for otool... otool
>>>>> checking for otool64... no
>>>>> checking for -single_module linker flag... yes
>>>>> checking for -exported_symbols_list linker flag... yes
>>>>> checking for -force_load linker flag... yes
>>>>> checking for ANSI C header files... yes
>>>>> checking for sys/types.h... yes
>>>>> checking for sys/stat.h... yes
>>>>> checking for stdlib.h... yes
>>>>> checking for string.h... yes
>>>>> checking for memory.h... yes
>>>>> checking for strings.h... yes
>>>>> checking for inttypes.h... yes
>>>>> checking for stdint.h... yes
>>>>> checking for unistd.h... yes
>>>>> checking for dlfcn.h... yes
>>>>> checking for objdir... .libs
>>>>> checking if /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc
>>>>> supports
>>>>> -fno-rtti -fno-exceptions... yes
>>>>> checking for /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc
>>>>> option
>>>>> to produce PIC... -fno-common -DPIC
>>>>> checking if /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc PIC
>>>>> flag
>>>>> -fno-common -DPIC works... yes
>>>>> checking if /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc
>>>>> static
>>>>> flag -static works... no
>>>>> checking if /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc
>>>>> supports
>>>>> -c -o file.o... yes
>>>>> checking if /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc
>>>>> supports
>>>>> -c -o file.o... (cached) yes
>>>>> checking whether the
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicc
>>>>> linker (/Library/Developer/CommandLineTools/usr/bin/ld) supports shared
>>>>> libraries... yes
>>>>> checking dynamic linker characteristics... darwin17.2.0 dyld
>>>>> checking how to hardcode library paths into programs... immediate
>>>>> checking for dlopen in -ldl... yes
>>>>> checking whether a program can dlopen itself... yes
>>>>> checking whether a statically linked program can dlopen itself... yes
>>>>> checking whether stripping libraries is possible... yes
>>>>> checking if libtool supports shared libraries... yes
>>>>> checking whether to build shared libraries... no
>>>>> checking whether to build static libraries... yes
>>>>> checking how to run the C++ preprocessor...
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx -E
>>>>> checking for ld used by
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx...
>>>>> /Library/Developer/CommandLineTools/usr/bin/ld
>>>>> checking if the linker (/Library/Developer/CommandLineTools/usr/bin/ld)
>>>>> is
>>>>> GNU ld... no
>>>>> checking whether the
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx
>>>>> linker (/Library/Developer/CommandLineTools/usr/bin/ld) supports shared
>>>>> libraries... yes
>>>>> checking for /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx
>>>>> option
>>>>> to produce PIC... -fno-common -DPIC
>>>>> checking if /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx PIC
>>>>> flag
>>>>> -fno-common -DPIC works... yes
>>>>> checking if /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx
>>>>> static
>>>>> flag -static works... no
>>>>> checking if /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx
>>>>> supports
>>>>> -c -o file.o... yes
>>>>> checking if /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx
>>>>> supports
>>>>> -c -o file.o... (cached) yes
>>>>> checking whether the
>>>>> /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx
>>>>> linker (/Library/Developer/CommandLineTools/usr/bin/ld) supports shared
>>>>> libraries... yes
>>>>> checking dynamic linker characteristics... darwin17.2.0 dyld
>>>>> checking how to hardcode library paths into programs... immediate
>>>>> checking whether byte ordering is bigendian... no
>>>>> checking for gunzip... gunzip -c
>>>>> checking for gzip... (cached) gunzip -c
>>>>> checking for zcat... (cached) gunzip -c
>>>>> checking if C++ compiler supports template class specialization... yes
>>>>> checking if C++ compiler supports template function specialization...
>>>>> yes
>>>>> checking if /Users/digihabia/src2/openmpi-3.0.0/openmpi//bin/mpicxx
>>>>> works...
>>>>> yes
>>>>> checking for vsnprintf... yes
>>>>> checking for vsprintf... yes
>>>>> checking for clock... yes
>>>>> checking for times... yes
>>>>> checking for cbrt... yes
>>>>> checking if std::vector has templatized insert method... yes
>>>>> checking if std::copy must be old SGI format... no
>>>>> checking for ANSI C header files... (cached) yes
>>>>> checking fcntl.h usability... yes
>>>>> checking fcntl.h presence... yes
>>>>> checking for fcntl.h... yes
>>>>> checking for strings.h... (cached) yes
>>>>> checking sys/file.h usability... yes
>>>>> checking sys/file.h presence... yes
>>>>> checking for sys/file.h... yes
>>>>> checking sys/time.h usability... yes
>>>>> checking sys/time.h presence... yes
>>>>> checking for sys/time.h... yes
>>>>> checking for unistd.h... (cached) yes
>>>>> checking for inttypes.h... (cached) yes
>>>>> checking for stdint.h... (cached) yes
>>>>> checking stddef.h usability... yes
>>>>> checking stddef.h presence... yes
>>>>> checking for stddef.h... yes
>>>>> checking for stdlib.h... (cached) yes
>>>>> checking ieeefp.h usability... no
>>>>> checking ieeefp.h presence... no
>>>>> checking for ieeefp.h... no
>>>>> checking termios.h usability... yes
>>>>> checking termios.h presence... yes
>>>>> checking for termios.h... yes
>>>>> checking for sys/types.h... (cached) yes
>>>>> checking sys/ioctl.h usability... yes
>>>>> checking sys/ioctl.h presence... yes
>>>>> checking for sys/ioctl.h... yes
>>>>> checking size of void *... 8
>>>>> checking for size_t... yes
>>>>> checking for ptrdiff_t... yes
>>>>> checking for dlopen in -ldl... (cached) yes
>>>>> checking for compress in -lz... yes
>>>>> checking for pow in -lm... yes
>>>>> checking for dummy main to link with Fortran libraries... none
>>>>> checking for Fortran name-mangling scheme... configure: error: in
>>>>> `/Users/digihabia/src2/moab-5.0.0':
>>>>> configure: error: cannot compile a simple Fortran program
>>>>> See `config.log' for more details
>>>>
>> --
>> -- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --
>>
>> Paul P.H. Wilson
>> Grainger Professor of Nuclear Engineering
>> 608-263-0807
>> paul.wilson at wisc.edu
>> 443 Engineering Research Bldg
>> 1500 Engineering Dr, Madison, WI 53706
>> calendar: http://go.wisc.edu/pphw-cal
>>
>> Computational Nuclear Engineering Research Group
>> cnerg.engr.wisc.edu
>>

-- 
-- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --

Paul P.H. Wilson
Grainger Professor of Nuclear Engineering
608-263-0807
paul.wilson at wisc.edu
443 Engineering Research Bldg
1500 Engineering Dr, Madison, WI 53706
calendar: http://go.wisc.edu/pphw-cal

Computational Nuclear Engineering Research Group
cnerg.engr.wisc.edu



More information about the moab-dev mailing list