[MOAB-dev] Disable fortran in moab-5.0.0

Paul Wilson paul.wilson at wisc.edu
Thu Nov 9 21:52:10 CST 2017


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



More information about the moab-dev mailing list