[MOAB-dev] Disable fortran in moab-5.0.0

Vijay S. Mahadevan vijay.m at gmail.com
Thu Nov 9 15:22:54 CST 2017


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
>
>


More information about the moab-dev mailing list