On 06/26/2016 11:25 PM, Satish Balay wrote: > On Sun, 26 Jun 2016, Antonio Trande wrote: > >> On 06/26/2016 02:24 AM, Satish Balay wrote: >>> On Sat, 25 Jun 2016, Antonio Trande wrote: >>> >>>> On 06/25/2016 09:41 PM, Antonio Trande wrote: >>>>> On 06/25/2016 03:59 PM, Matthew Knepley wrote: >>>>>> On Sat, Jun 25, 2016 at 8:21 AM, Antonio Trande <[email protected] >>>>>> <mailto:[email protected]>> wrote: >>>>>> >>>>>> Hi all, >>>>>> >>>>>> is it possible to compile serial PETSc library ? >>>>>> I'm trying to compile PETSc without MPI by configuring with options: >>>>>> >>>>>> --with-mpi=0 --with-mpiuni-fortran-binding=0 >>>>>> >>>>>> but compiler uses -I/.../petsc-3.7.2/include/petsc/mpiuni flag anyway >>>>>> and libpetsc.so contains an "undefined symbol": >>>>>> >>>>>> undefined symbol: mpi_init_ (/usr/lib64/libpetsc.so.3.7.2) >>>>>> >>>>>> How I can fix this issue ? >>>>>> Full log: >>>>>> >>>>>> https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-24-x86_64/00362302-petsc/build.log.gz >>>>>> >>>>>> >>>>>> 1) Why are you giving --with-mpiuni-fortran-binding=0 if you still have >>>>>> Fortran turned on? If you want to turn off Fortran, use --with-fc=0. >>>>> >>>>> I did't know what it does. If I active --with-mpiuni-fortran-binding, >>>>> 'undefined symbol' disappears. >>>>> >>>>>> >>>>>> 2) You did not send configure.log which is what I need, not a screen >>>>>> capture. >>>>>> >>>>>> 3) I cannot see the error you sent anywhere. It would be more useful to >>>>>> send the output from 'make test'. >>>>>> >>>>>> Matt >>>>>> >>>>>> >>>>> >>>>> I send you all config.log; petsc-serial, petsc-serial (64bit integer), >>>>> petsc-openmpi and petsc-mpich are compiled from an own fresh source >>>>> directory, respectively from petsc-3.7.2, build64, buildopenmpi_dir, >>>>> buildmpich_dir. >>>>> >>>>> All libraries look compiled fine and related test passed. >>>>> I will send you latest builds log from Fedora Copr build-system. >>>>> >>>> >>>> No, tests not passed with >>>> >>>> [0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, >>>> probably memory access out of range >>>> >>>> This is a build log from Fedora 24 64 bit: >>>> https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-24-x86_64/00362535-petsc/build.log.gz >>> >>>>>>>>>>> >>> + echo 'Patch #1 (petsc-lib64.patch):' >>> + /usr/bin/patch -p0 --fuzz=0 >>> patching file config/BuildSystem/config/setCompilers.py >>> patching file gmakefile >>> >>> Patch #0 (petsc-3.7-no-rpath.patch): >>> + /usr/bin/patch -p0 --fuzz=0 >>> patching file config/BuildSystem/config/setCompilers.py >>> <<<<<<<<<<< >>> >>> Well looks like there were some modifications done to get the >>> 'multi-variant' build working. >> >> Yes. >> >>> >>>>>>>>>>>>> >>> + make test -C petsc-3.7.2 >>> make: Entering directory '/builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2' >>> Running test examples to verify correct installation >>> Using PETSC_DIR=/builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2 and >>> PETSC_ARCH=x86_64 >>> *******************Error detected during compile or link!******************* >>> See http://www.mcs.anl.gov/petsc/documentation/faq.html >>> /builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2/src/snes/examples/tutorials >>> ex19 >>> ********************************************************************************* >>> gcc -o ex19.o -c -O2 -fPIC -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 -m64 -mtune=generic -fopenmp >>> -I/builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2/include >>> -I/builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2/x86_64/include >>> -I/usr/include -I/usr/include/suitesparse >>> -I/builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2/include/petsc/mpiuni >>> `pwd`/ex19.c >>> gcc -Wl,-z,relro -O2 -fPIC -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 -m64 -mtune=generic -fopenmp >>> -o ex19 ex19.o -L/builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2/x86_64/lib >>> -L/builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2/x86_64/lib -lpetsc -lmetis >>> -L/usr/lib64 -lumfpack -lklu -lcholmod -lbtf -lccolamd -lcolamd -lcamd >>> -lamd -lsuitesparseconfig -llapack -lblas -lOpenCL -lhwloc -lpapi -lgmp >>> -lpthread -ljpeg -lpng -lm -L/usr/lib/gcc/x86_64-redhat-linux/6.1.1 >>> -lgfortran -lm -lgfortran -lm -lquadmath -lm -lstdc++ >>> -L/usr/lib/gcc/x86_64-redhat-linux/6.1.1 -ldl -lgcc_s -ldl >>> /usr/bin/rm -f ex19.o >>> Possible error running C/C++ src/snes/examples/tutorials/ex19 with 1 MPI >>> process >>> See http://www.mcs.anl.gov/petsc/documentation/faq.html >>> [0]PETSC ERROR: #1 PetscLogInitialize() line 219 in >>> /builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2/src/sys/logging/plog.c >>> [0]PETSC ERROR: #2 PetscInitialize() line 891 in >>> /builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2/src/sys/objects/pinit.c >>> /usr/bin/sh: line 13: 16933 Aborted (core dumped) >>> <<<<<<<<<< >>> >>> So there is no -rpath here. Which -lpetsc variant is getting used at >>> runtime? >>> >> >> Yes, no rpaths for the serial libraries, so 'libpetsc.so' and >> 'libpetsc64.so' (renamed for mine needs). >> >> Test reported is for PETSc (32 bit integer) serial library: libpetsc.so > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > > + mkdir -p /builddir/build/BUILDROOT/petsc-3.7.2-2.fc24.x86_64/usr/lib64 > /builddir/build/BUILDROOT/petsc-3.7.2-2.fc24.x86_64/usr/share/petsc > /builddir/build/BUILDROOT/petsc-3.7.2-2.fc24.x86_64/usr/include/petsc > + mkdir -p > /builddir/build/BUILDROOT/petsc-3.7.2-2.fc24.x86_64/usr/lib64/gfortran/modules/petsc-3.7.2 > > /builddir/build/BUILDROOT/petsc-3.7.2-2.fc24.x86_64/usr/share/Modules/modulefiles > + install -pm 755 x86_64/lib/libpetsc.so x86_64/lib/libpetsc.so.3.7 > x86_64/lib/libpetsc.so.3.7.2 > /builddir/build/BUILDROOT/petsc-3.7.2-2.fc24.x86_64/usr/lib64 > > + umask 022 > + cd /builddir/build/BUILD > + cd petsc-3.7.2 > + export > LD_LIBRARY_PATH=/usr/lib64:/builddir/build/BUILDROOT/petsc-3.7.2-2.fc24.x86_64/usr/lib64 > + > LD_LIBRARY_PATH=/usr/lib64:/builddir/build/BUILDROOT/petsc-3.7.2-2.fc24.x86_64/usr/lib64 > + export PETSC_DIR=/builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2 > + PETSC_DIR=/builddir/build/BUILD/petsc-3.7.2/petsc-3.7.2 > + export PETSC_ARCH=x86_64 > + PETSC_ARCH=x86_64 > + make test -C petsc-3.7.2 > > <<<<<<<<<<<<<<<<<<<<<<<<<<<<< > > Ok - I see libpetsc.so is copied over to > /builddir/build/BUILDROOT/petsc-3.7.2-2.fc24.x86_64/usr/lib64. And > this path is set in LD_LIBRARY_PATH - so the correct -lpetsc should be > found at runtime for 'make test' > > I attempted to do a build similar to what done here. > >>>>>>>>>>>>>>>>>>>> > $ cat x86_64.py > #!/usr/bin/python > if __name__ == '__main__': > import sys > import os > sys.path.insert(0, os.path.abspath('config')) > import configure > configure_options = [ > > '--prefix=/usr', > '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 -m64 -mtune=generic', > '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 -m64 -mtune=generic', > '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 -m64 -mtune=generic', > 'LDFLAGS=-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld', > '--with-default-arch=0', > '--with-make=1', > '--with-single-library=1', > '--with-precision=double', > '--with-petsc-arch=x86_64', > '--with-clanguage=C', > '--with-shared-libraries=1', > '--with-64-bit-indices=0', > '--with-fortran-interfaces=1', > '--with-windows-graphics=0', > '--CC=gcc', > '--CXX=g++', > '--FC=gfortran', > '--with-gnu-compilers=1', > '--with-vendor-compilers=0', > '--with-shared-ld=ld', > '--with-pic=1', > '--sharedLibraryFlags=', > '--dynamicLibraryFlags=', > '--with-cxx-dialect=', > '--with-debugging=0', > 'COPTFLAGS=-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 -m64 -mtune=generic', > 'CXXOPTFLAGS=-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 -m64 -mtune=generic', > '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 -m64 -mtune=generic > -I/usr/lib64/gfortran/modules', > > '--with-blas-lib=libblas.so', > '--with-lapack-lib=liblapack.so', > '--with-blas-lapack-suffix=', > '--known-64-bit-blas-indices=0', > '--with-mpi=0', > '--with-mpiuni-fortran-binding=1', > '--with-pthread=1', > '--with-valgrind=1', > '--with-valgrind-dir=/usr', > > ] > configure.petsc_configure(configure_options) > > <<<<<<<<<<< > $ > > But I can't reprodue this error - with the above build.. The suggestions I > have for debugging are: > > Somehow get the following through the build - and verify if the includes, > libraries are picked up correctly > > cd src/snes/examples/tutorials > make PETSC_DIR=/home/balay/petsc PETSC_ARCH=x86_64 ex19 > ldd ex19 |grep libpetsc > <verify the correct libpetsc.so is used> > make PETSC_DIR=/home/balay/petsc PETSC_ARCH=x86_64 ex19.o CFLAGS=-E > grep petscconf.h ex19.o > <verify the correct petscconf.h is used hre> > > > Or you could somehow try to do a minimal build - and see if the problem is > reproduceable. > [say just build 1 variant of PETSc, fewer externalpackages].
Just an additional note: changing build-system from Fedora to EPEL7 (http://fedoraproject.org/wiki/EPEL), I do not see any error: https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/epel-7-x86_64/00362535-petsc/build.log.gz > > BTW: you have: > > ++ sed -e s/-D_FORTIFY_SOURCE/-D-FORTIFY-SOURCE/g > > 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 -m64 > -mtune=generic > > However -Wp,-D-FORTIFY-SOURCE=2 gives me compile errors. > > $ gcc -Wp,-D-FORTIFY-SOURCE=2 conftest.c > <command-line>:0:1: error: macro names must be identifiers > $ > Yes, PETSc's 'configure' does not like -D_FORTIFY_SOURCE (this flag comes from default compiler flags of Fedora's '%configure' macro), I had to change to -D-FORTIFY-SOURCE; however 'make' command uses -D_FORTIFY_SOURCE without error. -- --- 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/
signature.asc
Description: OpenPGP digital signature
