On Tue, Apr 6, 2021 at 11:04 AM Blaise A Bourdin <[email protected]> wrote:
> Hi, > > I am having the following warning when compiling any fortran example > (currently on main, but it’s been going on for a little while) on a ARM > mac. > > > *******************Error detected during compile or > link!******************* > See http://www.mcs.anl.gov/petsc/documentation/faq.html > /opt/HPC/petsc-main/src/snes/tutorials ex5f > ********************************************************* > mpif90 -Wl,-bind_at_load -Wl,-multiply_defined,suppress > -Wl,-multiply_defined -Wl,suppress -Wl,-commons,use_dylibs > -Wl,-search_paths_first -Wl,-no_compact_unwind -ffree-line-length-none > -fallow-argument-mismatch -fPIC -g -ffree-line-length-none > -fallow-argument-mismatch -fPIC -g -I/opt/HPC/petsc-main/include > -I/opt/HPC/petsc-main/bigsur-gcc10.2-arm64-reallybasic-g/include > -I/opt/X11/include ex5f.F90 > -Wl,-rpath,/opt/HPC/petsc-main/bigsur-gcc10.2-arm64-reallybasic-g/lib > -L/opt/HPC/petsc-main/bigsur-gcc10.2-arm64-reallybasic-g/lib > -Wl,-rpath,/opt/X11/lib -L/opt/X11/lib > -Wl,-rpath,/opt/homebrew/Cellar/mpich/3.4.1_2/lib > -L/opt/homebrew/Cellar/mpich/3.4.1_2/lib > -Wl,-rpath,/opt/homebrew/Cellar/gcc/10.2.0_4/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1 > -L/opt/homebrew/Cellar/gcc/10.2.0_4/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1 > -Wl,-rpath,/opt/homebrew/Cellar/gcc/10.2.0_4/lib/gcc/10 > -L/opt/homebrew/Cellar/gcc/10.2.0_4/lib/gcc/10 > -lpetsc -llapack -lblas -lX11 -lc++ -ldl -lmpifort -lmpi -lpmpi -lgfortran > -lemutls_w -lm -lc++ -ldl -o ex5f > warning: (arm64) could not find object file symbol for symbol muldc3 > Fortran example src/snes/tutorials/ex5f run successfully with 1 MPI process > > > For reference, here is how I configured petsc: > ./configure --CFLAGS='-Wimplicit-function-declaration' > --FFLAGS="-ffree-line-length-none -fallow-argument-mismatch" > --with-debugging=1 --with-shared-libraries=1 > --with-x11=1 > > It looks like this symbol is referenced in: sfpack.o > > *SiMini*:petsc-main (main)$ grep -ri muldc3 > bigsur-gcc10.2-arm64-reallybasic-g/* > Binary file bigsur-gcc10.2-arm64-reallybasic-g/lib/libpetsc.3.015.0.dylib > matches > Binary file bigsur-gcc10.2-arm64-reallybasic-g/lib/libpetsc.3.015.dylib > matches > bigsur-gcc10.2-arm64-reallybasic-g/lib/petsc/conf/check.log:warning: > (arm64) could not find object file symbol for symbol ___muldc3 > Binary file bigsur-gcc10.2-arm64-reallybasic-g/lib/libpetsc.dylib matches > Binary file > bigsur-gcc10.2-arm64-reallybasic-g/obj/vec/is/sf/impls/basic/sfpack.o > matches > > *SiMini*:petsc-main (main)$ nm > bigsur-gcc10.2-arm64-reallybasic-g/obj/vec/is/sf/impls/basic/sfpack.o | > grep muldc3 > U ___muldc3 > Google tells me it is a gcc thing for complex multiplication. Ah, I think this is the problem: https://lists.mcs.anl.gov/pipermail/mpich-discuss/2012-August/012920.html It is in the C library and you are linking from Fortran, so the compatibility libraries are not correct. Thanks, Matt > Any idea? > Blaise > > > -- > A.K. & Shirley Barton Professor of Mathematics > Adjunct Professor of Mechanical Engineering > Adjunct of the Center for Computation & Technology > Louisiana State University, Lockett Hall Room 344, Baton Rouge, LA 70803, > USA > Tel. +1 (225) 578 1612, Fax +1 (225) 578 4276 Web > http://www.math.lsu.edu/~bourdin > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
