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

Antonio Trande anto.trande at gmail.com
Tue Oct 11 14:28:25 CDT 2016


On 10/11/2016 07:53 PM, Satish Balay wrote:
> 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..

'configure' does not recognize '-D_FORTIFY_SOURCE=2' flag (it says that
should be -D-FORTIFY-SOURCE=2) that comes from default flags used on
Fedora and automatically set when package is built. I'm forced to
exclude it with 'configure' and re-introduce it with 'make'.
This is the reason because flags are set more times.
It's good if you can fix this problem with 'configure'.

However, i don't understand why errors appear from 'make test' by
building on Fedora 32bit systems only.


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

Patches included.

fedora 32bit:
https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-i386/00463934-petsc/build.log.gz

fedora 64bit:
https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-x86_64/00463934-petsc/build.log.gz

-- 
---
Antonio Trande
mailto: sagitter 'at' fedoraproject 'dot' org
http://fedoraos.wordpress.com/
https://fedoraproject.org/wiki/User:Sagitter
GPG Key: 0x6CE6D08A
Check on https://keys.fedoraproject.org/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20161011/995fc98f/attachment.sig>


More information about the petsc-dev mailing list