[petsc-dev] Possible error running C/C++ src/snes/examples/tutorials/ex19 with 1 MPI process

Satish Balay balay at mcs.anl.gov
Tue Oct 11 12:53:15 CDT 2016


On Tue, 11 Oct 2016, Antonio Trande wrote:

> On 10/11/2016 12:14 AM, Satish Balay wrote:
> > On Mon, 10 Oct 2016, Antonio Trande wrote:
> > 
> >> On 10/10/2016 07:28 PM, Satish Balay wrote:
> >>> On Mon, 10 Oct 2016, Antonio Trande wrote:
> > 
> >>
> >> New builds:
> >>
> >> 32bit:
> >> https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-24-i386/00463215-petsc/build.log.gz
> >> Section with errors: https://paste.fedoraproject.org/448011/
> > 
> > https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-i386/00463045-petsc/build.log.gz
> > 
> > Previosly you sent the above - and that was fine. Whats the difference between the above 2 builds?
> 
> https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-i386/00463045-petsc/build.log.gz
> :
> petsc is built for debugging (note compiler flags are '-O0 -g')
> 
> 32bit:
> https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-24-i386/00463215-petsc/build.log.gz
> :
> petsc is built with default compiler flags for Fedora (note the flags
> '-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
> -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
> -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
> -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -O3')
> 
> I know that sometimes optimization level can influence functionality
> (could it be a cause in this case?).
> 

Nope - this shouldn't make a differene - unless the otimization flags are incompatible on the hardware that the code is run on.

However - I'm seeing some bugs in the build - not sure if they are causing grief...

>>>>>>
+ CFLAGS='-O2 -g -pipe -Wall -Werror=format-security =2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld'
+ export CFLAGS
<<<<

Hm - you are seeting CFLAGS env variable..


>>>>>>>>>>>
+ ./configure 
<snip>
CFLAGS=-O2 -g -pipe -Wall -Werror=format-security =2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables CXXFLAGS=-O2 -g -pipe -Wall -Werror=format-security =2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables FCFLAGS=-O2 -g -pipe -Wall -Werror=format-security =2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables
<snip>
'COPTFLAGS=-O2 -g -pipe -Wall -Werror=format-security =2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -s\
pecs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld'
<<<<<<<<<<

Hm - the quotes are missing for CFLAGS - and are at the wrong place for COPTFLAGS [and perhaps other options?]

And BTW: - you can avoid passing these options multiple times by using:
CFLAGS='-O2 -g -pipe ....' COPTFLAGS=''

>>>>>>>>>
Compilers:
  C Compiler:         gcc -O2   
  C++ Compiler:       g++ -O2      
<<<<<<<<<<

Clearly PETSc configure is running tests with slightly different
options. [sometimes this causes grief - as compilers can link to
system different libraries - thus the configure tests can produce
inconsistant results]

And its good to check configure.log to see if things are
consistant. Not sure how easy its to grab these logs from the build
and make them available [without doing 'cat configure.log' - these
logs tend to be huge].

>>>>>>>>>
+ export 'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -O3 -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld'

<snip>
+ make V=1 MAKE_NP=2 PETSC_DIR=/builddir/build/BUILD/petsc-3.7.4/petsc-3.7.4 'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -O3 -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' 'CXXFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -O3' 'FCFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -O3 -I/usr/lib/gfortran/modules' 'FFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -O3 -I/usr/lib/gfortran/modules' 'FOPTFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -O3 -I/usr/lib/gfortran/modules' 'LDFLAGS=-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' PETSC_ARCH=i386 all
<snip>
gcc -c -O2    -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -O3 -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -I/builddir/build/BUILD/petsc-3.7.4/petsc-3.7.4/include -I/builddir/build/BUILD/petsc-3.7.4/petsc-3.7.4/i386/include -I/usr/include/suitesparse -I/builddir/build/BUILD/petsc-3.7.4/petsc-3.7.4/include/petsc/mpiuni    -MMD -MP /builddir/build/BUILD/petsc-3.7.4/petsc-3.7.4/src/sys/info/ftn-auto/verboseinfof.c -o i386/obj/src/sys/info/ftn-auto/verboseinfof.o
<<<<<<<<<<<

And once flags are set at configure time - we don't recommend
overriding them with CFLAGS - either through make env variable or make
command line variable..

> Are executable files for testing (ex5f, ex19, ...) compiled with same
> compiler flags used for 'libpetsc'?

yes. [the env variables affect 'make test the same way..]

Satish

> 
> > you can replace the previous progname.patch with the following two.. [these should be in the next patch update]
> > 
> > https://bitbucket.org/petsc/petsc/commits/1a5f81e5a142bc6fde36c3a51c072ace33ca0cf8
> > https://bitbucket.org/petsc/petsc/commits/9350f85d4de3048e6e39df431416aa18087af8b6
> 
> Okay; i wait to know what you think about compiler flags, then i will
> rebuild petsc with these new patches.
> 
> Thank you.
> 
> 


More information about the petsc-dev mailing list