[petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-16 Thread Blaise A Bourdin
Hi,

I am testing intel 16 compilers under mac OS, and notice that options handling 
for all past and current versions of petsc is broken in fortran (options are 
not parsed).
I narrowed it down to *argc at start.c:168 always being 0 when intel 16 is used 
(but taking the right value using intel 15 or gcc 5), but I can’t find my way 
through the multiple macros to figure out what is really the matter…
The problem does not seem to arise under linux with the same compilers.

Any idea of what is going on? Any test I can run to help (I assume that you 
don’t have a test box with the latest intel compilers)? Is it a petsc bug or an 
intel bug?

I use an up to date pets-dev master, and the configure.log file is available at 
https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/89329uFByT9

Thanks,

Blaise

-- 
Department of Mathematics and Center for Computation & Technology
Louisiana State University, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin









Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-16 Thread Satish Balay
Do you have configure.log fr intel-15 compiler - on the same machine?

It would be good to compare petscconf.h between intel-15 and intel-16.

Satish

On Wed, 16 Sep 2015, Blaise A Bourdin wrote:

> Hi,
> 
> I am testing intel 16 compilers under mac OS, and notice that options 
> handling for all past and current versions of petsc is broken in fortran 
> (options are not parsed).
> I narrowed it down to *argc at start.c:168 always being 0 when intel 16 is 
> used (but taking the right value using intel 15 or gcc 5), but I can’t find 
> my way through the multiple macros to figure out what is really the matter…
> The problem does not seem to arise under linux with the same compilers.
> 
> Any idea of what is going on? Any test I can run to help (I assume that you 
> don’t have a test box with the latest intel compilers)? Is it a petsc bug or 
> an intel bug?
> 
> I use an up to date pets-dev master, and the configure.log file is available 
> at https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/89329uFByT9
> 
> Thanks,
> 
> Blaise
> 
> 


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-16 Thread Blaise A Bourdin
Hi Satish,

It is at 
https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/38806CDddLJ

> On Sep 16, 2015, at 10:34 AM, Satish Balay  wrote:
> 
> Do you have configure.log fr intel-15 compiler - on the same machine?
> 
> It would be good to compare petscconf.h between intel-15 and intel-16.

bourdin@galerkin:petsc-dev (master)$ diff 
Darwin-intel15.0-g//include/petscconf.h Darwin-intel16.0-g//include/petscconf.h
85c85
< #define PETSC_LIB_DIR "/opt/HPC/petsc-dev/Darwin-intel15.0-g/lib"
---
> #define PETSC_LIB_DIR "/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib"
489c489
< #define PETSC_ARCH "Darwin-intel15.0-g"
---
> #define PETSC_ARCH "Darwin-intel16.0-g”
Not very exciting!

I am attaching the one for intel16



petscconf.h
Description: petscconf.h


Regards,

Blaise

> 
> Satish
> 
> On Wed, 16 Sep 2015, Blaise A Bourdin wrote:
> 
>> Hi,
>> 
>> I am testing intel 16 compilers under mac OS, and notice that options 
>> handling for all past and current versions of petsc is broken in fortran 
>> (options are not parsed).
>> I narrowed it down to *argc at start.c:168 always being 0 when intel 16 is 
>> used (but taking the right value using intel 15 or gcc 5), but I can’t 
>> find my way through the multiple macros to figure out what is really the 
>> matter…
>> The problem does not seem to arise under linux with the same compilers.
>> 
>> Any idea of what is going on? Any test I can run to help (I assume that you 
>> don’t have a test box with the latest intel compilers)? Is it a petsc bug 
>> or an intel bug?
>> 
>> I use an up to date pets-dev master, and the configure.log file is available 
>> at https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/89329uFByT9
>> 
>> Thanks,
>> 
>> Blaise
>> 
>> 

-- 
Department of Mathematics and Center for Computation & Technology
Louisiana State University, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin









Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-16 Thread Satish Balay
Well - the petscconf.h is identicall for both builds. So the change in
behavior must be due to some internal changes in ifort on Mac [as you
say - it works fine on linux]

Can you try using the branch 'balay/ftn-command_argument' - and see if
that works for you?

Satish

On Wed, 16 Sep 2015, Blaise A Bourdin wrote:

> Hi Satish,
> 
> It is at 
> https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/38806CDddLJ
> 
> > On Sep 16, 2015, at 10:34 AM, Satish Balay  wrote:
> > 
> > Do you have configure.log fr intel-15 compiler - on the same machine?
> > 
> > It would be good to compare petscconf.h between intel-15 and intel-16.
> 
> bourdin@galerkin:petsc-dev (master)$ diff 
> Darwin-intel15.0-g//include/petscconf.h 
> Darwin-intel16.0-g//include/petscconf.h
> 85c85
> < #define PETSC_LIB_DIR "/opt/HPC/petsc-dev/Darwin-intel15.0-g/lib"
> ---
> > #define PETSC_LIB_DIR "/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib"
> 489c489
> < #define PETSC_ARCH "Darwin-intel15.0-g"
> ---
> > #define PETSC_ARCH "Darwin-intel16.0-g”
> Not very exciting!
> 
> I am attaching the one for intel16
> 
> 


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-17 Thread Jeff Hammond
Please report this via premier.intel.com.

Jeff

On Wed, Sep 16, 2015 at 11:13 AM, Blaise A Bourdin  wrote:

> Hi,
>
> I am testing intel 16 compilers under mac OS, and notice that options
> handling for all past and current versions of petsc is broken in fortran
> (options are not parsed).
> I narrowed it down to *argc at start.c:168 always being 0 when intel 16 is
> used (but taking the right value using intel 15 or gcc 5), but I can’t find
> my way through the multiple macros to figure out what is really the matter…
> The problem does not seem to arise under linux with the same compilers.
>
> Any idea of what is going on? Any test I can run to help (I assume that
> you don’t have a test box with the latest intel compilers)? Is it a petsc
> bug or an intel bug?
>
> I use an up to date pets-dev master, and the configure.log file is
> available at
> https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/89329uFByT9
>
> Thanks,
>
> Blaise
>
> --
> Department of Mathematics and Center for Computation & Technology
> Louisiana State University, Baton Rouge, LA 70803, USA
> Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276
> http://www.math.lsu.edu/~bourdin
>
>
>
>
>
>
>
>


-- 
Jeff Hammond
jeff.scie...@gmail.com
http://jeffhammond.github.io/


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-19 Thread Satish Balay
This change is now merged master [Its setup as the prefered mode to
get fortran command line arguments]

Satish

On Wed, 16 Sep 2015, Satish Balay wrote:

> Well - the petscconf.h is identicall for both builds. So the change in
> behavior must be due to some internal changes in ifort on Mac [as you
> say - it works fine on linux]
> 
> Can you try using the branch 'balay/ftn-command_argument' - and see if
> that works for you?
> 
> Satish
> 
> On Wed, 16 Sep 2015, Blaise A Bourdin wrote:
> 
> > Hi Satish,
> > 
> > It is at 
> > https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/38806CDddLJ
> > 
> > > On Sep 16, 2015, at 10:34 AM, Satish Balay  wrote:
> > > 
> > > Do you have configure.log fr intel-15 compiler - on the same machine?
> > > 
> > > It would be good to compare petscconf.h between intel-15 and intel-16.
> > 
> > bourdin@galerkin:petsc-dev (master)$ diff 
> > Darwin-intel15.0-g//include/petscconf.h 
> > Darwin-intel16.0-g//include/petscconf.h
> > 85c85
> > < #define PETSC_LIB_DIR "/opt/HPC/petsc-dev/Darwin-intel15.0-g/lib"
> > ---
> > > #define PETSC_LIB_DIR "/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib"
> > 489c489
> > < #define PETSC_ARCH "Darwin-intel15.0-g"
> > ---
> > > #define PETSC_ARCH "Darwin-intel16.0-g”
> > Not very exciting!
> > 
> > I am attaching the one for intel16
> > 
> > 
> 


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-19 Thread Satish Balay
[from the available logs] its not clear what the issue is.

PETSc fortran interface attempts to use getarg_() and iargc_() [fortran
library functions] - or its variants - directly from C.

This usage is non-standard and messy [and some compiler folks - said -
its unsupported usage].

Also - configure attempts to guess the fortran link libraries - and
constructs a link command cCompilerLibs + cxxCompilerLibs +
fortranCompilerLibs.

Perhaps there is a bug in this detection code - thats triggering this
error. Its verifyable by attempting to use:

--with-clib-autodetect=0 --with-clib-autodetect=0 --with-cxxlib-autodetect=0 
LIBS='liblist'

where 'liblist' should be determined manually - for the linking of
C/fortran/CXX to work correctly.

My fix attempts to call command_argument_count(),
get_command_argument() directly from fortran - and if that doesn't
work - then its likely a compiler bug..

[which one can try to replicate with a simple test code]

Satish

On Thu, 17 Sep 2015, Jeff Hammond wrote:

> Please report this via premier.intel.com.
> 
> Jeff
> 
> On Wed, Sep 16, 2015 at 11:13 AM, Blaise A Bourdin  wrote:
> 
> > Hi,
> >
> > I am testing intel 16 compilers under mac OS, and notice that options
> > handling for all past and current versions of petsc is broken in fortran
> > (options are not parsed).
> > I narrowed it down to *argc at start.c:168 always being 0 when intel 16 is
> > used (but taking the right value using intel 15 or gcc 5), but I can’t find
> > my way through the multiple macros to figure out what is really the matter…
> > The problem does not seem to arise under linux with the same compilers.
> >
> > Any idea of what is going on? Any test I can run to help (I assume that
> > you don’t have a test box with the latest intel compilers)? Is it a petsc
> > bug or an intel bug?
> >
> > I use an up to date pets-dev master, and the configure.log file is
> > available at
> > https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/89329uFByT9
> >
> > Thanks,
> >
> > Blaise
> >
> > --
> > Department of Mathematics and Center for Computation & Technology
> > Louisiana State University, Baton Rouge, LA 70803, USA
> > Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276
> > http://www.math.lsu.edu/~bourdin
> >
> >
> >
> >
> >
> >
> >
> >
> 
> 
> 


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-19 Thread Blaise A Bourdin
Hi,

I was traveling and did not have time to finish investigating, but there seems 
to be an issue with fortran get_command_argument and friends in mixed language 
mode. I will continue to investigate and will report back.

Blaise

> On Sep 19, 2015, at 10:18 AM, Satish Balay  wrote:
> 
> [from the available logs] its not clear what the issue is.
> 
> PETSc fortran interface attempts to use getarg_() and iargc_() [fortran
> library functions] - or its variants - directly from C.
> 
> This usage is non-standard and messy [and some compiler folks - said -
> its unsupported usage].
> 
> Also - configure attempts to guess the fortran link libraries - and
> constructs a link command cCompilerLibs + cxxCompilerLibs +
> fortranCompilerLibs.
> 
> Perhaps there is a bug in this detection code - thats triggering this
> error. Its verifyable by attempting to use:
> 
> --with-clib-autodetect=0 --with-clib-autodetect=0 --with-cxxlib-autodetect=0 
> LIBS='liblist'
> 
> where 'liblist' should be determined manually - for the linking of
> C/fortran/CXX to work correctly.
> 
> My fix attempts to call command_argument_count(),
> get_command_argument() directly from fortran - and if that doesn't
> work - then its likely a compiler bug..
> 
> [which one can try to replicate with a simple test code]
> 
> Satish
> 
> On Thu, 17 Sep 2015, Jeff Hammond wrote:
> 
>> Please report this via premier.intel.com.
>> 
>> Jeff
>> 
>> On Wed, Sep 16, 2015 at 11:13 AM, Blaise A Bourdin  wrote:
>> 
>>> Hi,
>>> 
>>> I am testing intel 16 compilers under mac OS, and notice that options
>>> handling for all past and current versions of petsc is broken in fortran
>>> (options are not parsed).
>>> I narrowed it down to *argc at start.c:168 always being 0 when intel 16 is
>>> used (but taking the right value using intel 15 or gcc 5), but I can’t find
>>> my way through the multiple macros to figure out what is really the matter…
>>> The problem does not seem to arise under linux with the same compilers.
>>> 
>>> Any idea of what is going on? Any test I can run to help (I assume that
>>> you don’t have a test box with the latest intel compilers)? Is it a petsc
>>> bug or an intel bug?
>>> 
>>> I use an up to date pets-dev master, and the configure.log file is
>>> available at
>>> https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/89329uFByT9
>>> 
>>> Thanks,
>>> 
>>> Blaise
>>> 
>>> --
>>> Department of Mathematics and Center for Computation & Technology
>>> Louisiana State University, Baton Rouge, LA 70803, USA
>>> Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276
>>> http://www.math.lsu.edu/~bourdin
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> 
>> 

-- 
Department of Mathematics and Center for Computation & Technology
Louisiana State University, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin









Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-20 Thread Satish Balay
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

On Sat, 19 Sep 2015, Blaise A Bourdin wrote:

> Hi,
> 
> I was traveling and did not have time to finish investigating, but there 
> seems to be an issue with fortran get_command_argument and friends in mixed 
> language mode. I will continue to investigate and will report back.
> 
> Blaise
> 
> > On Sep 19, 2015, at 10:18 AM, Satish Balay  wrote:
> > 
> > [from the available logs] its not clear what the issue is.
> > 
> > PETSc fortran interface attempts to use getarg_() and iargc_() [fortran
> > library functions] - or its variants - directly from C.
> > 
> > This usage is non-standard and messy [and some compiler folks - said -
> > its unsupported usage].
> > 
> > Also - configure attempts to guess the fortran link libraries - and
> > constructs a link command cCompilerLibs + cxxCompilerLibs +
> > fortranCompilerLibs.
> > 
> > Perhaps there is a bug in this detection code - thats triggering this
> > error. Its verifyable by attempting to use:
> > 
> > --with-clib-autodetect=0 --with-clib-autodetect=0 
> > --with-cxxlib-autodetect=0 LIBS='liblist'
> > 
> > where 'liblist' should be determined manually - for the linking of
> > C/fortran/CXX to work correctly.
> > 
> > My fix attempts to call command_argument_count(),
> > get_command_argument() directly from fortran - and if that doesn't
> > work - then its likely a compiler bug..
> > 
> > [which one can try to replicate with a simple test code]
> > 
> > Satish
> > 
> > On Thu, 17 Sep 2015, Jeff Hammond wrote:
> > 
> >> Please report this via premier.intel.com.
> >> 
> >> Jeff
> >> 
> >> On Wed, Sep 16, 2015 at 11:13 AM, Blaise A Bourdin  wrote:
> >> 
> >>> Hi,
> >>> 
> >>> I am testing intel 16 compilers under mac OS, and notice that options
> >>> handling for all past and current versions of petsc is broken in fortran
> >>> (options are not parsed).
> >>> I narrowed it down to *argc at start.c:168 always being 0 when intel 16 is
> >>> used (but taking the right value using intel 15 or gcc 5), but I can’t 
> >>> find
> >>> my way through the multiple macros to figure out what is really the 
> >>> matter…
> >>> The problem does not seem to arise under linux with the same compilers.
> >>> 
> >>> Any idea of what is going on? Any test I can run to help (I assume that
> >>> you don’t have a test box with the latest intel compilers)? Is it a petsc
> >>> bug or an intel bug?
> >>> 
> >>> I use an up to date pets-dev master, and the configure.log file is
> >>> available at
> >>> https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/89329uFByT9
> >>> 
> >>> Thanks,
> >>> 
> >>> Blaise
> >>> 
> >>> --
> >>> Department of Mathematics and Center for Computation & Technology
> >>> Louisiana State University, Baton Rouge, LA 70803, USA
> >>> Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276
> >>> http://www.math.lsu.edu/~bourdin
> >>> 
> >>> 
> >>> 
> >>> 
> >>> 
> >>> 
> >>> 
> >>> 
> >> 
> >> 
> >> 
> 
> 


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-21 Thread Blaise A Bourdin

> On Sep 20, 2015, at 9:04 AM, Satish Balay  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



petscconf-autodetect.h
Description: petscconf-autodetect.h


petscconf-noautodetect.h
Description: petscconf-noautodetect.h


I thought I had found something fishy with command line argument handling in 
mixed languages, but that does not seem to be the case.

Regards,

Blaise

> 
> Satish
> 
> On Sat, 19 Sep 2015, Blaise A Bourdin wrote:
> 
>> Hi,
>> 
>> I was traveling and did not have time to finish investigating, but there 
>> seems to be an issue with fortran get_command_argument and friends in mixed 
>> language mode. I will continue to investigate and will report back.
>> 
>> Blaise
>> 
>>> On Sep 19, 2015, at 10:18 AM, Satish Balay  wrote:
>>> 
>>> [from the available logs] its not clear what the issue is.
>>> 
>>> PETSc fortran interface attempts to use getarg_() and iargc_() [fortran
>>> library functions] - or its variants - directly from C.
>>> 
>>> This usage is non-standard and messy [and some compiler folks - said -
>>> its unsupported usage].
>>> 
>>> Also - configure attempts to guess the fortran link libraries - and
>>> constructs a link command cCompilerLibs + cxxCompilerLibs +
>>> fortranCompilerLibs.
>>> 
>>> Perhaps there is a bug in this detection code - thats triggering this
>>> error. Its verifyable by attempting to use:
>>> 
>>> --with-clib-autodetect=0 --with-clib-autodetect=0 
>>> --with-cxxlib-autodetect=0 LIBS='liblist'
>>> 
>>> where 'liblist' should be determined manually - for the linking of
>>> C/fortran/CXX to work correctly.
>>> 
>>> My fix attempts to call command_argument_count(),
>>> get_command_argument() directly from fortran - and if that doesn't
>>> work - then its likely a compiler bug..
>>> 
>>> [which one can try to replicate with a simple test code]
>>> 
>>> Satish
>>> 
>>> On Thu, 17 Sep 2015, Jeff Hammond wrote:
>>> 
 Please report this via premier.intel.com.
 
 Jeff
 
 On Wed, Sep 16, 2015 at 11:13 AM, Blaise A Bourdin  wrote:
 
> Hi,
> 
> I am testing intel 16 compilers under mac OS, and notice that options
> handling for all past and current versions of petsc is broken in fortran
> (options are not parsed).
> I narrowed it down to *argc at start.c:168 always being 0 when intel 16 is
> used (but taking the right value using intel 15 or gcc 5), but I can’t 
> find
> my way through the multiple macros to figure out what is really the 
> matter…
> The problem does not seem to arise under linux with the same compilers.
> 
> Any idea of what is going on? Any test I can run to help (I assume that
> you don’t have a test box with the latest intel compilers)? Is it a 
> petsc
> bug or an intel bug?
> 
> I use an up to date pets-dev master, and the configure.log file is
> available at
> https://filestogeaux.lsu.edu/public/download.php?FILE=bourdin/89329uFByT9
> 
> Thanks,
> 
> Blaise
> 
> --
> Department of Mathematics and Center for Computation & Technology
> Louisiana State University, Baton Rouge, LA 70803, USA
> Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276
> http://www.math.lsu.edu/~bourdin
> 
> 
> 
> 
> 
> 
> 
> 
 
 
 
>> 
>> 

-- 
Department of Mathematics and Center for Computation & Technology
Louisiana State University, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin









Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-22 Thread Richard Mills
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  wrote:

>
> > On Sep 20, 2015, at 9:04 AM, Satish Balay  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
>
>


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-22 Thread Satish Balay
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  wrote:
> 
> >
> > > On Sep 20, 2015, at 9:04 AM, Satish Balay  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
> >
> >
> 



Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-22 Thread Jed Brown
Satish Balay  writes:
> [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]

We might only need to distinguish -lstdc++ and -lc++.  It's certainly
simpler and more consistent than finding Fortran run-time libraries.


signature.asc
Description: PGP signature


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-22 Thread Satish Balay
On Tue, 22 Sep 2015, Jed Brown wrote:

> Satish Balay  writes:
> > [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]
> 
> We might only need to distinguish -lstdc++ and -lc++.  It's certainly
> simpler and more consistent than finding Fortran run-time libraries.

And then the MPI c++ libraries..

Satish



Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-22 Thread Jed Brown
Satish Balay  writes:
> And then the MPI c++ libraries..

The current MPI standard does not contain C++ bindings.


signature.asc
Description: PGP signature


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-22 Thread Blaise A Bourdin

On Sep 22, 2015, at 3:50 PM, Satish Balay 
mailto:ba...@mcs.anl.gov>> wrote:

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

This works.

bourdin@galerkin:tutorials (master)$  otool -l ex5f90 |grep ifor
 name /opt/HPC/mpich-3.1.4-intel16.0/lib/libmpifort.12.dylib (offset 24)

In contrast, with the build command suggested with richard, I get a 
non-functioning build:

bourdin@galerkin:petsc-dev (master)$ ./configure --with-debugging=1 
COPTFLAGS="-g -O0" FOPTFLAGS="-g -O0”
CXXOPTFLAGS="-g -O0" 
--with-blas-lapack-dir=/opt/intel-16.0/compilers_and_libraries_2016/mac/mkl 
--with-mpi-dir=$MPI_HOME

bourdin@galerkin:tutorials (master)$  otool -l ex5f90 |grep ifor
 name /opt/HPC/mpich-3.1.4-intel16.0/lib/libmpifort.12.dylib (offset 24)


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

With the later configuration, it looks like what matters is the order in which  
-lmpifort and -lifcore are listed:
This one works:
mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress 
-Wl,-commons,use_dylibs -Wl,-search_paths_first   -g -O0  
-I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o 
-Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib 
-L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc 
-Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
-L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
-Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
-lifcore -lmpifort

This one does not:
mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress 
-Wl,-commons,use_dylibs -Wl,-search_paths_first   -g -O0  
-I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o 
-Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib 
-L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc 
-Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
-L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
-Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
-lmpifort -lifcore

Same goes with the lengthy link line from the petsc makefile:
mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress 
-Wl,-commons,use_dylibs -Wl,-search_paths_first   -g -O0  
-I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o 
-Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib 
-L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc 
-Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016/mac/mkl 
-L/opt/intel-16.0/compilers_and_libraries_2016/mac/mkl -lmkl_intel 
-lmkl_sequential -lmkl_core -lpthread -lm -Wl,-rpath,/opt/X11/lib 
-L/opt/X11/lib -lX11 -lssl -lcrypto 
-Wl,-rpath,/opt/HPC/mpich-3.1.4-intel16.0/lib 
-L/opt/HPC/mpich-3.1.4-intel16.0/lib 
-Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
-L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
-Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
-L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
-Wl,-rpath,/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.1.0/lib/darwin
 
-L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.1.0/lib/darwin
 -lifcore -lmpifort -lifport  -limf -lsvml -lipgo -lirc -lpthread 
-Wl,-rpath,/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.1.0/lib/darwin
 
-L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.1.0/lib/darwin
 -lclang_rt.osx -limf -lsvml -lirng -lipgo -ldecimal -lirc -lclang_rt.osx 
-lmpicxx -limf -lsvml -lirng -lipgo -ldecimal -lirc -lclang_rt.osx -ldl 
-Wl,-rpath,/opt/HPC/mpich-3.1.4-intel16.0/lib 
-L/opt/HPC/mpich-3.1.4-intel16.0/lib -lmpi -lpmpi 
-Wl,-rpath,/opt/HPC/mpich-3.1.4-intel16.0/lib 
-L/opt/HPC/mpich-3.1.4-intel16.0/lib 
-Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
-L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
-Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
-L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
-Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
-L/opt/intel-16.0/compilers_and_libraries

Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-22 Thread Satish Balay
On Tue, 22 Sep 2015, Blaise A Bourdin wrote:

> With the later configuration, it looks like what matters is the order in 
> which  -lmpifort and -lifcore are listed:
> This one works:
> mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress 
> -Wl,-commons,use_dylibs -Wl,-search_paths_first   -g -O0  
> -I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o 
> -Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib 
> -L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc 
> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib
>  -L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
> -lifcore -lmpifort
> 
> This one does not:
> mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress 
> -Wl,-commons,use_dylibs -Wl,-search_paths_first   -g -O0  
> -I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o 
> -Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib 
> -L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc 
> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib
>  -L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
> -lmpifort -lifcore

Does linking with -lifcore vs
/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib/libifcore.a
make a difference?

And what do you have for:

cd /opt/HPC/mpich-3.1.4-intel16.0/lib
ls
nm -Ao libmpiifort.* |grep get_command_argument

BTW: I'm assuming you have sept 20 or newer petsc master branch.

Satish


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-23 Thread Blaise A Bourdin

> On Sep 22, 2015, at 11:16 PM, Satish Balay  wrote:
> 
> On Tue, 22 Sep 2015, Blaise A Bourdin wrote:
> 
>> With the later configuration, it looks like what matters is the order in 
>> which  -lmpifort and -lifcore are listed:
>> This one works:
>> mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress 
>> -Wl,-commons,use_dylibs -Wl,-search_paths_first   -g -O0  
>> -I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o 
>> -Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib 
>> -L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc 
>> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib
>>  -L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
>> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
>> -lifcore -lmpifort
>> 
>> This one does not:
>> mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress 
>> -Wl,-commons,use_dylibs -Wl,-search_paths_first   -g -O0  
>> -I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o 
>> -Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib 
>> -L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc 
>> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib
>>  -L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
>> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
>> -lmpifort -lifcore
> 
> Does linking with -lifcore vs
> /opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib/libifcore.a
> make a difference?
It does. When I specify the path explicitly, the build works, regardless of the 
order in which libmpifort and libifcore are listed. 
> 
> And what do you have for:
> 
> cd /opt/HPC/mpich-3.1.4-intel16.0/lib
> ls
> nm -Ao libmpiifort.* |grep get_command_argument
This gives nothing at all:
bourdin@galerkin:lib $ nm -Ao lib* |grep -i command
bourdin@galerkin:lib $ 


> 
> BTW: I'm assuming you have sept 20 or newer petsc master branch.

Yes. I have checked out your changes before testing.

Out of curiosity: it looks like linking with -lpetsc is enough, so why use this 
very complicated link command?
i.e. this is enough to produce a perfectly fine binary:
mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress 
-Wl,-commons,use_dylibs -Wl,-search_paths_first -g -O0  
-I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o 
-Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib 
-L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc


Blaise

-- 
Department of Mathematics and Center for Computation & Technology
Louisiana State University, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin









Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-23 Thread Satish Balay
On Wed, 23 Sep 2015, Blaise A Bourdin wrote:

> 
> > On Sep 22, 2015, at 11:16 PM, Satish Balay  wrote:
> > 
> > On Tue, 22 Sep 2015, Blaise A Bourdin wrote:
> > 
> >> With the later configuration, it looks like what matters is the order in 
> >> which  -lmpifort and -lifcore are listed:
> >> This one works:
> >> mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress 
> >> -Wl,-commons,use_dylibs -Wl,-search_paths_first   -g -O0  
> >> -I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o 
> >> -Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib 
> >> -L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc 
> >> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib
> >>  -L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
> >> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
> >> -lifcore -lmpifort
> >> 
> >> This one does not:
> >> mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress 
> >> -Wl,-commons,use_dylibs -Wl,-search_paths_first   -g -O0  
> >> -I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o 
> >> -Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib 
> >> -L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc 
> >> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib
> >>  -L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib 
> >> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib 
> >> -lmpifort -lifcore
> > 
> > Does linking with -lifcore vs
> > /opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib/libifcore.a
> > make a difference?
> It does. When I specify the path explicitly, the build works, regardless of 
> the order in which libmpifort and libifcore are listed. 
> > 
> > And what do you have for:
> > 
> > cd /opt/HPC/mpich-3.1.4-intel16.0/lib
> > ls
> > nm -Ao libmpiifort.* |grep get_command_argument
> This gives nothing at all:
> bourdin@galerkin:lib $ nm -Ao lib* |grep -i command
> bourdin@galerkin:lib $ 
> 

Here is my guess:

Presumably you have libmpifort.dylib

When libmpifort.dylib was created 'libifcore.a' was used in the link
linke - thus some of the compiler symbols were pulled into
libmpifort.dylib.

When libpetsc.dylib [or an example binary] is created the duplcate
symbols in libmpifort.dylib is causing grief with libifcore.dylib [but
not libifcore.a]

Such issues sometimes come up when linking to static libraries for creating a 
shared/dylib.

> > 
> > BTW: I'm assuming you have sept 20 or newer petsc master branch.
> 
> Yes. I have checked out your changes before testing.
> 
> Out of curiosity: it looks like linking with -lpetsc is enough, so why use 
> this very complicated link command?
> i.e. this is enough to produce a perfectly fine binary:
> mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress 
> -Wl,-commons,use_dylibs -Wl,-search_paths_first -g -O0  
> -I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o 
> -Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib 
> -L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc

There is no [easy] automatic way of figuring out this reduced link
command that might work.

Satish


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-23 Thread Jed Brown
Satish Balay  writes:
> There is no [easy] automatic way of figuring out this reduced link
> command that might work.

Almost all such problems are caused by shared libraries being broken or
improperly linked on too many HPC systems.  If shared libraries are used
correctly, then using PETSc amounts to passing -lpetsc.  If you call
another library, you also link it directly (even if PETSc also links to
it transitively).  That's all.  Note that almost all HPC machines are
based on Linux and that shared libraries have had well-defined
fully-functional semantics on Linux for 20+ years, so functionality is
not a matter of a new implementation, but rather just not breaking
something that works.  Facilities and vendors need constant reminders
that functional and properly-used shared libraries are important.

As for PETSc, I actually attempt a simplified link line (e.g., in
FindPETSc.cmake) and only fall back to the unwieldy beast when it fails.
(This happens for static libraries, but also when shared libraries are
foobared.)


signature.asc
Description: PGP signature


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-23 Thread Jeff Hammond
What the specification document says is irrelevant, since every
implementation still supports the C++ bindings.  They can be disabled
explicitly in MPICH (and derivatives) via MPICH_SKIP_MPICXX and in OpenMPI
with OMPI_SKIP_MPICXX.

Jeff

On Tue, Sep 22, 2015 at 2:11 PM, Jed Brown  wrote:

> Satish Balay  writes:
> > And then the MPI c++ libraries..
>
> The current MPI standard does not contain C++ bindings.
>



-- 
Jeff Hammond
jeff.scie...@gmail.com
http://jeffhammond.github.io/


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-23 Thread Jeff Hammond
For what it's worth, I have actually used get_command_argument in my own
code and just now confirmed that it works just fine with Intel 16 in a
small test program.  It would be helpful to disambiguate that from all the
shared library discussion.

The other solution is to use ISO C11* as God intended and stop mucking
around with all these flowery languages.

Jeff

* It is true that no compiler yet supports C11 threads, but that is because
C compiler developers know better than to troll the PETSc team with
programming atrocities like threads.

On Tue, Sep 22, 2015 at 9:16 PM, Satish Balay  wrote:

> On Tue, 22 Sep 2015, Blaise A Bourdin wrote:
>
> > With the later configuration, it looks like what matters is the order in
> which  -lmpifort and -lifcore are listed:
> > This one works:
> > mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress
> -Wl,-commons,use_dylibs -Wl,-search_paths_first   -g -O0
> -I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o
> -Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib
> -L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc
> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib
> -L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib
> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib
> -lifcore -lmpifort
> >
> > This one does not:
> > mpif90 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress
> -Wl,-commons,use_dylibs -Wl,-search_paths_first   -g -O0
> -I/opt/HPC/petsc-dev/include/petsc/finclude -o ex5f90 ex5f90.o
> -Wl,-rpath,/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib
> -L/opt/HPC/petsc-dev/Darwin-intel16.0-g/lib  -lpetsc
> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib
> -L/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib
> -Wl,-rpath,/opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/mkl/lib
> -lmpifort -lifcore
>
> Does linking with -lifcore vs
>
> /opt/intel-16.0/compilers_and_libraries_2016.0.083/mac/compiler/lib/libifcore.a
> make a difference?
>
> And what do you have for:
>
> cd /opt/HPC/mpich-3.1.4-intel16.0/lib
> ls
> nm -Ao libmpiifort.* |grep get_command_argument
>
> BTW: I'm assuming you have sept 20 or newer petsc master branch.
>
> Satish
>



-- 
Jeff Hammond
jeff.scie...@gmail.com
http://jeffhammond.github.io/


Re: [petsc-dev] broken options handling with intel 16.0 compilers on mac OS

2015-09-23 Thread Jed Brown
Jeff Hammond  writes:

> What the specification document says is irrelevant, since every
> implementation still supports the C++ bindings.  They can be disabled
> explicitly in MPICH (and derivatives) via MPICH_SKIP_MPICXX and in OpenMPI
> with OMPI_SKIP_MPICXX.

It's a linking discussion, and you would only need to link libmpicxx.so
(or whatever) if you actually used those bindings.  We certainly don't
do that and any other project that still uses them should be chastised.

BTW, PETSc defines the above macros for simplicity and to avoid the
unfortunate messes that used to plague the C++ implementations.


signature.asc
Description: PGP signature