Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS
I'm not sure what to suggest. Blaise gets a successful build with: --with-cxx=0 --with-clib-autodetect=0 --with-fortranlib-autodetect=0 LIBS="/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib/libifcore.a" The next thing Blaise could try is: --with-cxx=0 --with-clib-autodetect=0 --with-fortranlib-autodetect=0 LIBS=-lifcore [and if this fails - see which ifcore the binary is using - via 'otool -l petscbinary |grep ifore'] If not - what I would do - is try compiling an example with a petsc makefile. [with the broken build] And then copy/paste the link line - removing stuff - until the binary created by that link line works. [and identify the linker option is making the difference]. Again - this would be for Blaise to try. Intel compilers (esp on Mac) had workarrounds to system issues encoded in the link command. [I remember the first generation of intel compilers on Mac had such issues]. And the way PETSc configure, and checkFortranLibraries() process/use this 'ifort -v' info can break these encoded workarrounds.. [Its a hacky piece of code - and not easy to get right] Ideally compilers should provide equivalent of 'mpicc -show' - so that configure tools can grab and use this info for language interoperable linking. [Jed suggested we should 'always use FC as linker' and not do any such detection. But then we still have to worry about C++. Previously we had machines where we had to use C++ linker - but perhaps such machines don't exist anymore] Satish On Tue, 22 Sep 2015, Richard Mills wrote:
Blaise and Satish,
I'm a bit slow to pick up on this thread as I was busy traveling, but since I use a Mac and work for Intel, I thought I should see if I could reproduce the problems that Blaise is seeing. I installed the 16.0 compilers and built a simple configuration ('--with-debugging=1 COPTFLAGS="-g -O0" FOPTFLAGS="-g -O0" CXXOPTFLAGS="-g -O0" --with-blas-lapack-dir=/opt/intel/compilers_and_libraries_2016/mac/mkl --with-mpi-dir=/Users/rtmills/packages/mpich-3.1.4-intel') using a very recent revision of 'master' (09b4d96fa5749f82a0af9a914729f77a4ef2b2fd, Sun Sep 20 22:51:31 2015 -0500). When I try running SNES ex5f and passing various command-line options, everything appears to work fine. Any suggestions for digging deeping into this to try to determine the difference between what Blaise and I are seeing?
Best regards, Richard
On Mon, Sep 21, 2015 at 10:21 AM, Blaise A Bourdin <[email protected]> wrote:
On Sep 20, 2015, at 9:04 AM, Satish Balay <[email protected]> wrote:
Hm - I would suggest doing a minimal build build with:
--with-cxx=0 --with-clib-autodetect=0 --with-fortranlib-autodetect=0 LIBS="/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib/libifcore.a"
And see if that makes a difference. Satish,
It does help. Turning off auto detect leads to a functional build, turning it back on leads to a non-functioning one.
The configure.log without auto detect is here:
https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/61967j4XaVp The one with auto detect there: https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/691pPOSRU
The petscconf.h are attached
participants (1)
-
Satish Balay