[petsc-users] multiple definition of `main' with intel compilers

Alfredo Jaramillo ajaramillopalma at gmail.com
Thu May 21 19:41:01 CDT 2020


In fact, removing -lifcore_pic from PETSC_DIR/PETSC_ARCH/lib/petscvariables
solved the problem (this was the first I traied and it worked), it compiles
and the program runs fine.

Also, -lpetsc was being listed some times when compiling .c to .o, I fixed
that in the scripts.

Now, I'm a bit lost about when fcoremt_pic is being linked or if it is
necessary at all?

thank you very much!
alfredo

On Thu, May 21, 2020 at 7:21 PM Satish Balay <balay at mcs.anl.gov> wrote:

> For one - PETSc is built without -qopenmp flag - but your makefile is
> using it. Intel compiler can link in with
> different [incompatible] compiler libraries when some flags change this
> way [causing conflict].
>
> However - the issue could be:
>
> your makefile is listing PETSC_LIB [or however you are accessing petsc
> info from petsc makefiles] redundantly.
>
> i.e
>
>  - its listing -lpetsc  etc when compiling .c to .o files [this should not
> happen]
>  - its listing -lpetsc  etc twice [-lifcore_pic is listed once though] -
> don't know if this is the reason for the problem.
>
> You can try [manually] removing -lifcore_pic from
> PETSC_DIR/PETSC_ARCH/lib/petscvariables - and see if this problem goes away
>
> Satish
>
> On Thu, 21 May 2020, Alfredo Jaramillo wrote:
>
> > here is the output:
> >
> > alfredo.jaramillo at sdumont11 tutorials]$ make ex19
> > mpiicc -fPIC -O3 -march=native -mtune=native  -fPIC -O3 -march=native
> > -mtune=native  -I/scratch/simulreserv/softwares/petsc-3.13.0/include
> >
> -I/scratch/simulreserv/softwares/petsc-3.13.0/x64-O3-3.13-intel2016-64/include
> > -I/scratch/simulreserv/softwares/valgrind-3.15.0/include
> >  -I/scratch/app/zlib/1.2.11/include    ex19.c
> >
> -Wl,-rpath,/scratch/simulreserv/softwares/petsc-3.13.0/x64-O3-3.13-intel2016-64/lib
> >
> -L/scratch/simulreserv/softwares/petsc-3.13.0/x64-O3-3.13-intel2016-64/lib
> >
> -Wl,-rpath,/scratch/simulreserv/softwares/petsc-3.13.0/x64-O3-3.13-intel2016-64/lib
> >
> -L/scratch/simulreserv/softwares/petsc-3.13.0/x64-O3-3.13-intel2016-64/lib
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mpi/intel64/lib/release_mt
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mpi/intel64/lib/release_mt
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mpi/intel64/lib
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mpi/intel64/lib
> > -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/clck/
> > 3.1.2.006/lib/intel64 -L/opt/intel/parallel_studio_xe_2016_update2/clck/
> > 3.1.2.006/lib/intel64
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/ipp/lib/intel64
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/ipp/lib/intel64
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mkl/lib/intel64
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mkl/lib/intel64
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/tbb/lib/intel64/gcc4.4
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/tbb/lib/intel64/gcc4.4
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/daal/lib/intel64_lin
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/daal/lib/intel64_lin
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/tbb/lib/intel64_lin/gcc4.4
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/tbb/lib/intel64_lin/gcc4.4
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64_lin
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64_lin
> > -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.8.5
> > -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5
> > -Wl,-rpath,/opt/intel/mpi-rt/5.1/intel64/lib/release_mt
> > -Wl,-rpath,/opt/intel/mpi-rt/5.1/intel64/lib -lpetsc -lHYPRE -lcmumps
> > -ldmumps -lsmumps -lzmumps -lmumps_common -lpord -lscalapack -lopenblas
> > -lstdc++ -ldl -lmpifort -lmpi -lmpigi -lrt -lpthread -lifport
> -lifcore_pic
> > -limf -lsvml -lm -lipgo -lirc -lgcc_s -lirc_s -lquadmath -lstdc++ -ldl -o
> > ex19
> > [alfredo.jaramillo at sdumont11 tutorials]$ make ex5f
> > mpiifort -fPIC -O3 -march=native -mtune=native
> > -I/scratch/simulreserv/softwares/petsc-3.13.0/include
> >
> -I/scratch/simulreserv/softwares/petsc-3.13.0/x64-O3-3.13-intel2016-64/include
> > -I/scratch/simulreserv/softwares/valgrind-3.15.0/include      ex5f.F90
> >
> -Wl,-rpath,/scratch/simulreserv/softwares/petsc-3.13.0/x64-O3-3.13-intel2016-64/lib
> >
> -L/scratch/simulreserv/softwares/petsc-3.13.0/x64-O3-3.13-intel2016-64/lib
> >
> -Wl,-rpath,/scratch/simulreserv/softwares/petsc-3.13.0/x64-O3-3.13-intel2016-64/lib
> >
> -L/scratch/simulreserv/softwares/petsc-3.13.0/x64-O3-3.13-intel2016-64/lib
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mpi/intel64/lib/release_mt
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mpi/intel64/lib/release_mt
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mpi/intel64/lib
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mpi/intel64/lib
> > -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/clck/
> > 3.1.2.006/lib/intel64 -L/opt/intel/parallel_studio_xe_2016_update2/clck/
> > 3.1.2.006/lib/intel64
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/ipp/lib/intel64
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/ipp/lib/intel64
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mkl/lib/intel64
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/mkl/lib/intel64
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/tbb/lib/intel64/gcc4.4
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/tbb/lib/intel64/gcc4.4
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/daal/lib/intel64_lin
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/daal/lib/intel64_lin
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/tbb/lib/intel64_lin/gcc4.4
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/tbb/lib/intel64_lin/gcc4.4
> >
> -Wl,-rpath,/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64_lin
> >
> -L/opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64_lin
> > -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.8.5
> > -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5
> > -Wl,-rpath,/opt/intel/mpi-rt/5.1/intel64/lib/release_mt
> > -Wl,-rpath,/opt/intel/mpi-rt/5.1/intel64/lib -lpetsc -lHYPRE -lcmumps
> > -ldmumps -lsmumps -lzmumps -lmumps_common -lpord -lscalapack -lopenblas
> > -lstdc++ -ldl -lmpifort -lmpi -lmpigi -lrt -lpthread -lifport
> -lifcore_pic
> > -limf -lsvml -lm -lipgo -lirc -lgcc_s -lirc_s -lquadmath -lstdc++ -ldl -o
> > ex5f
> >
> > [alfredo.jaramillo at sdumont11 tutorials]$ ./ex5f
> > Number of SNES iterations =     4
> >
> > [alfredo.jaramillo at sdumont11 tutorials]$ ./ex19
> > lid velocity = 0.0625, prandtl # = 1., grashof # = 1.
> > Number of SNES iterations = 2
> >
> > On Thu, May 21, 2020 at 6:53 PM Satish Balay <balay at mcs.anl.gov> wrote:
> >
> > > Please copy/paste complete [compile] commands from:
> > >
> > > src/snes/tutorials/
> > > make clean
> > > make ex19
> > > make ex5f
> > >
> > > Likely the link command used in your code is different than what is
> used
> > > here - triggering errors.
> > >
> > > Satish
> > >
> > > On Thu, 21 May 2020, Alfredo Jaramillo wrote:
> > >
> > > > hello Satish, no the tests seem to be ok altough some error related
> to
> > > mpd.
> > > >
> > > > ==============THE TESTS===================
> > > >
> > > > Running check examples to verify correct installation
> > > > Using PETSC_DIR=/scratch/simulreserv/softwares/petsc-3.13.0 and
> > > > PETSC_ARCH=x64-O3-3.13-intel2016-64
> > > > Possible error running C/C++ src/snes/tutorials/ex19 with 1 MPI
> process
> > > > See http://www.mcs.anl.gov/petsc/documentation/faq.html
> > > > mpiexec_sdumont11: cannot connect to local mpd
> > > > (/tmp/mpd2.console_alfredo.jaramillo); possible causes:
> > > >   1. no mpd is running on this host
> > > >   2. an mpd is running but was started without a "console" (-n
> option)
> > > > Possible error running C/C++ src/snes/tutorials/ex19 with 2 MPI
> processes
> > > > See http://www.mcs.anl.gov/petsc/documentation/faq.html
> > > > mpiexec_sdumont11: cannot connect to local mpd
> > > > (/tmp/mpd2.console_alfredo.jaramillo); possible causes:
> > > >   1. no mpd is running on this host
> > > >   2. an mpd is running but was started without a "console" (-n
> option)
> > > > 1,5c1,3
> > > > < lid velocity = 0.0016, prandtl # = 1., grashof # = 1.
> > > > <   0 SNES Function norm 0.0406612
> > > > <   1 SNES Function norm 4.12227e-06
> > > > <   2 SNES Function norm 6.098e-11
> > > > < Number of SNES iterations = 2
> > > > ---
> > > > > mpiexec_sdumont11: cannot connect to local mpd
> > > > (/tmp/mpd2.console_alfredo.jaramillo); possible causes:
> > > > >   1. no mpd is running on this host
> > > > >   2. an mpd is running but was started without a "console" (-n
> option)
> > > > /scratch/simulreserv/softwares/petsc-3.13.0/src/snes/tutorials
> > > > Possible problem with ex19 running with hypre, diffs above
> > > > =========================================
> > > > 1,9c1,3
> > > > < lid velocity = 0.0625, prandtl # = 1., grashof # = 1.
> > > > <   0 SNES Function norm 0.239155
> > > > <     0 KSP Residual norm 0.239155
> > > > <     1 KSP Residual norm < 1.e-11
> > > > <   1 SNES Function norm 6.81968e-05
> > > > <     0 KSP Residual norm 6.81968e-05
> > > > <     1 KSP Residual norm < 1.e-11
> > > > <   2 SNES Function norm < 1.e-11
> > > > < Number of SNES iterations = 2
> > > > ---
> > > > > mpiexec_sdumont11: cannot connect to local mpd
> > > > (/tmp/mpd2.console_alfredo.jaramillo); possible causes:
> > > > >   1. no mpd is running on this host
> > > > >   2. an mpd is running but was started without a "console" (-n
> option)
> > > > /scratch/simulreserv/softwares/petsc-3.13.0/src/snes/tutorials
> > > > Possible problem with ex19 running with mumps, diffs above
> > > > =========================================
> > > > Possible error running Fortran example src/snes/tutorials/ex5f with
> 1 MPI
> > > > process
> > > > See http://www.mcs.anl.gov/petsc/documentation/faq.html
> > > > mpiexec_sdumont11: cannot connect to local mpd
> > > > (/tmp/mpd2.console_alfredo.jaramillo); possible causes:
> > > >   1. no mpd is running on this host
> > > >   2. an mpd is running but was started without a "console" (-n
> option)
> > > > Completed test examples
> > > >
> > > > ===============================
> > > >
> > > > I entered in src/snes/tutorials/ and executed "make ex5f". The binary
> > > exf5
> > > > was created
> > > >
> > > >
> > > >
> > > > On Thu, May 21, 2020 at 6:37 PM Satish Balay <balay at mcs.anl.gov>
> wrote:
> > > >
> > > > > Do you get this error when building PETSc examples [C and/or
> fortran] -
> > > > > when you build them with the corresponding petsc makefile?
> > > > >
> > > > > Can you send the log of the example compiles?
> > > > >
> > > > > Satish
> > > > >
> > > > > ---
> > > > >
> > > > > [the attachment got deleted - don't know by who..]
> > > > >
> > > > > DENIAL OF SERVICE ALERT
> > > > >
> > > > > A denial of service protection limit was exceeded. The file has
> been
> > > > > removed.
> > > > > Context: 'configure.log.7z'
> > > > > Reason: The data size limit was exceeded
> > > > > Limit: 10 MB
> > > > > Ticket Number : 0c9c-5ec6-f30f-0001
> > > > >
> > > > >
> > > > > For further information, contact your system administrator.
> > > > > Copyright 1999-2014 McAfee, Inc.
> > > > > All Rights Reserved.
> > > > > http://www.mcafee.com
> > > > >
> > > > >
> > > > >
> > > > > On Thu, 21 May 2020, Alfredo Jaramillo wrote:
> > > > >
> > > > > > dear PETSc team,
> > > > > >
> > > > > > I have compiled PETSc with a 2016 version of the intel
> compilers. The
> > > > > > installation went well, but when I tried to compile my code the
> > > following
> > > > > > error appears in the final step of compilation (linking with ld)
> > > > > >
> > > > > > ../build/linux_icc/obj_linux_icc_opt/main.o: In function `main':
> > > > > > main.c:(.text+0x0): multiple definition of `main'
> > > > > >
> > > > >
> > >
> /opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64/libifcore_pic.a(for_main.o):for_main.c:(.text+0x0):
> > > > > > first defined here
> > > > > >
> > > > >
> > >
> /opt/intel/parallel_studio_xe_2016_update2/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64/libifcore_pic.a(for_main.o):
> > > > > > In function `main':
> > > > > > for_main.c:(.text+0x3e): undefined reference to `MAIN__'
> > > > > >
> > > > > > I searched for this and I found that the option "-nofor_main"
> should
> > > be
> > > > > > added when compiling with ifort, but our code is written only in
> C an
> > > > > C++.
> > > > > > The FORTRAN compiler is used when PETSc compiles MUMPS. So I dont
> > > know if
> > > > > > this would work for this case.
> > > > > >
> > > > > > The configure.log file and the log of the compilation giving the
> > > error
> > > > > are
> > > > > > attached to this message. These logs were obtained in a cluster,
> I'm
> > > > > > getting the same error on my personal computer with a 2020
> version
> > > of the
> > > > > > Intel Parallel Studio.
> > > > > >
> > > > > > thank you for any help on this
> > > > > > Alfredo
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> > >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200521/c66c1b7f/attachment-0001.html>


More information about the petsc-users mailing list